dekolehti.fi Ads.txt file
<!DOCTYPE html>
<html lang="fi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="profile" href="https://gmpg.org/xfn/11">
<link rel="icon" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/favicon.ico" sizes="any">
<link rel="icon" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/apple-touch-icon.png">
<link rel="manifest" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/manifest.json" crossorigin="use-credentials">
<!-- core preload --><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/dist/main.css?ver=1756903189" as="style"><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/dist/app.js?ver=1756903189" as="script"><!-- end of the core preload --><meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
<!-- This site is optimized with the Yoast SEO Premium plugin v22.2 (Yoast SEO v22.9) - https://yoast.com/wordpress/plugins/seo/ -->
<title>Deko - Kotiliesi.fi</title>
<link rel="canonical" href="https://kotiliesi.fi/avainsana/deko/">
<link rel="next" href="https://kotiliesi.fi/avainsana/deko/page/2/">
<meta property="og:locale" content="fi_FI">
<meta property="og:type" content="article">
<meta property="og:title" content="Deko Archives">
<meta property="og:url" content="https://kotiliesi.fi/avainsana/deko/">
<meta property="og:site_name" content="Kotiliesi.fi">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@kotiliesi_lehti">
<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://kotiliesi.fi/avainsana/deko/","url":"https://kotiliesi.fi/avainsana/deko/","name":"Deko - Kotiliesi.fi","isPartOf":{"@id":"https://kotiliesi.fi/#website"},"primaryImageOfPage":{"@id":"https://kotiliesi.fi/avainsana/deko/#primaryimage"},"image":{"@id":"https://kotiliesi.fi/avainsana/deko/#primaryimage"},"thumbnailUrl":"https://kotiliesi.fi/wp-content/uploads/2025/08/olohuone.jpg","breadcrumb":{"@id":"https://kotiliesi.fi/avainsana/deko/#breadcrumb"},"inLanguage":"fi"},{"@type":"ImageObject","inLanguage":"fi","@id":"https://kotiliesi.fi/avainsana/deko/#primaryimage","url":"https://kotiliesi.fi/wp-content/uploads/2025/08/olohuone.jpg","contentUrl":"https://kotiliesi.fi/wp-content/uploads/2025/08/olohuone.jpg","width":2000,"height":1333,"caption":"Kuvia olohuoneista."},{"@type":"BreadcrumbList","@id":"https://kotiliesi.fi/avainsana/deko/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Kotiliesi","item":"https://kotiliesi.fi/"},{"@type":"ListItem","position":2,"name":"Deko"}]},{"@type":"WebSite","@id":"https://kotiliesi.fi/#website","url":"https://kotiliesi.fi/","name":"Kotiliesi.fi","description":"","publisher":{"@id":"https://kotiliesi.fi/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://kotiliesi.fi/haku/?q={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fi"},{"@type":"Organization","@id":"https://kotiliesi.fi/#organization","name":"Kotiliesi","url":"https://kotiliesi.fi/","logo":{"@type":"ImageObject","inLanguage":"fi","@id":"https://kotiliesi.fi/#/schema/logo/image/","url":"https://kotiliesi.fi/wp-content/uploads/2019/08/ko_logo_black.png","contentUrl":"https://kotiliesi.fi/wp-content/uploads/2019/08/ko_logo_black.png","width":1000,"height":204,"caption":"Kotiliesi"},"image":{"@id":"https://kotiliesi.fi/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/kotiliesi.fi/","https://x.com/kotiliesi_lehti","https://www.instagram.com/kotiliesi/","https://fi.pinterest.com/Kotiliesi/","https://www.youtube.com/channel/UCpIsFDvmbSBZyC63_saDgvA","https://fi.wikipedia.org/wiki/Kotiliesi"]}]}</script>
<!-- / Yoast SEO Premium plugin. -->
<link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/ChronicleSSm/ChronicleSSm-Bold.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/ChronicleSSm/ChronicleSSm-BoldItalic.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/ChronicleSSm/ChronicleSSm-Book.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/ChronicleSSm/ChronicleSSm-BookItalic.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/ChronicleDisplay/ChronicleDisp-Bold.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/ChronicleDisplay/ChronicleDisp-Italic.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/Lato/LatoLatin-Black.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/Lato/LatoLatin-Bold.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/Lato/LatoLatin-BoldItalic.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/Lato/LatoLatin-Italic.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/fonts/Lato/LatoLatin-Regular.woff2" as="font" type="font/woff2" crossorigin>
<script>
window.AsteikkoMagWidgets = {
siteUrl: "https:\/\/kotiliesi.fi" };
</script>
<style id="powerpress-player-block-style-inline-css" type="text/css">
</style>
<style id="classic-theme-styles-inline-css" type="text/css">
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id="global-styles-inline-css" type="text/css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
</style>
<link rel="stylesheet" id="om-footer-css" href="https://kotiliesi.fi/wp-content/plugins/om-footer/assets/css/om-footer.css?ver=1.1.0" type="text/css" media="print" onload="this.media='all';this.onload=null;">
<noscript><link rel="stylesheet" id="om-footer-css" href="https://kotiliesi.fi/wp-content/plugins/om-footer/assets/css/om-footer.css?ver=1.1.0" type="text/css" media="all">
</noscript><link rel="stylesheet" id="om-profile-page-css" href="https://kotiliesi.fi/wp-content/plugins/om-profile-page-plugin/assets/css/om-profile-page.css?ver=1.1.4" type="text/css" media="print" onload="this.media='all';this.onload=null;">
<noscript><link rel="stylesheet" id="om-profile-page-css" href="https://kotiliesi.fi/wp-content/plugins/om-profile-page-plugin/assets/css/om-profile-page.css?ver=1.1.4" type="text/css" media="all">
</noscript><link rel="stylesheet" id="main-css" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/dist/main.css?ver=1756903189" type="text/css" media="all">
<link rel="stylesheet" id="style_login_widget-css" href="https://kotiliesi.fi/wp-content/plugins/miniorange-oauth-oidc-single-sign-on-multi/resources/css/style_login_widget.css?ver=6.6.2" type="text/css" media="print" onload="this.media='all';this.onload=null;">
<noscript><link rel="stylesheet" id="style_login_widget-css" href="https://kotiliesi.fi/wp-content/plugins/miniorange-oauth-oidc-single-sign-on-multi/resources/css/style_login_widget.css?ver=6.6.2" type="text/css" media="all">
</noscript><link rel="stylesheet" id="hion-ai-css-css" href="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/styles.css?ver=1756902933" type="text/css" media="print" onload="this.media='all';this.onload=null;">
<noscript><link rel="stylesheet" id="hion-ai-css-css" href="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/styles.css?ver=1756902933" type="text/css" media="all">
</noscript> <script type="text/javascript" id="om-website-analytics">
analyticsEvent = function() {};
analyticsSocial = function() {};
analyticsVPV = function() {};
analyticsClearVPV = function() {};
analyticsForm = function() {};
window.dataLayer = window.dataLayer || [];
dataLayer.push([]);
</script>
<script type="text/javascript" src="https://kotiliesi.fi/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
<script type="text/javascript" src="https://kotiliesi.fi/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://kotiliesi.fi/wp-content/plugins/om-preact-components/dist/main.js?ver=1749534812" id="om-preact-components-js"></script>
<link rel="https://api.w.org/" href="https://kotiliesi.fi/wp-json/"><link rel="alternate" title="JSON" type="application/json" href="https://kotiliesi.fi/wp-json/wp/v2/tags/18351"><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://kotiliesi.fi/xmlrpc.php?rsd">
<meta name="generator" content="WordPress 6.6.2">
<!-- Head tag start, do not remove -->
<!-- // kotiliesi.fi -->
<script type="text/javascript">
const timerStart = Date.now();
window.timerStart = timerStart;
</script>
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" crossorigin="anonymous"></script>
<script src="https://storage.googleapis.com/om-gravito-cmp/om_gravito_stubScriptTag.js"></script>
<script>
function waitForElement(selector) {
return new Promise(function(resolve, reject) {
var element = document.querySelector(selector);
if(element) {
resolve(element);
return;
}
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
var nodes = Array.from(mutation.addedNodes);
for(var node of nodes) {
if(node.matches && node.matches(selector)) {
observer.disconnect();
resolve(node);
return;
}
};
});
});
observer.observe(document.documentElement, { childList: true, subtree: true });
});
}
waitForElement("body").then(function(element) {
(function(d,s,e,t){e=d.createElement(s);e.type='text/java'+s;e.async='async';
e.src='http'+('https:'===location.protocol?'s://':'://')+'storage.googleapis.com/om-gravito-cmp/otavaScript.js';
t=d.getElementsByTagName(s)[0];t.parentNode.insertBefore(e,t);})(document,'script');
});
// quick fix for removing "Reseptihaku" - 17.06.2025 09.34.55
waitForElement("#aisearch").then(function(element) {
if (jQuery('#aisearch').length > 0) {jQuery('#aisearch').remove()}
});
</script>
<script async="async" src="https://macro.adnami.io/macro/spec/adsm.macro.d1119eb6-8129-4a4d-860e-c8e439bdce09.js"></script>
<script async src="https://target.digitalaudience.io/bakery/scripts/da.js"></script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-P6934W3');</script>
<!-- End Google Tag Manager -->
<!-- Otava Analytiikka -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-TSMVFP56');</script>
<!-- End Google Tag Manager -->
<!-- Otava Business Logic -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-T56W3Z7');</script>
<!-- End Google Tag Manager -->
<script type="text/javascript">
var jonesOverride = 0;
var dfpDebug = false;
if (document.location.href.indexOf("dfpdebug=1") > -1 || dfpDebug) {
dfpDebug = true;
}
var testSRA = true;
if (document.location.href.indexOf("testsra=1") > -1 || testSRA) {
testSRA = true;
}
// Async load of cx.js
(function(d,s,e,t){e=d.createElement(s);e.type='text/java'+s;e.async='async';
e.src='http'+('https:'===location.protocol?'s://s':'://')+'cdn.cxense.com/cx.js';
t=d.getElementsByTagName(s)[0];t.parentNode.insertBefore(e,t);})(document,'script');
var cxContextualIds = [], cxSegmentIds = [];
var contextualIds = [];
var cX = cX || { options: { tcf20: true } }; cX.callQueue = cX.callQueue || [];
if (dfpDebug) {console.log('cXsegmentIds1: ' + cxSegmentIds)}
checkCMPConditions(tcstring_decoded, [1,3,4], [], [412], []).then(result => {
if (result) {
if (dfpDebug) {console.log("Consents met: PIANO IS GOOD TO GO...")}
if (dfpDebug) {console.log("cX can load via tcstring...")}
var checkCxLoaded = setInterval(() => {
if (cX.loaded) {
clearInterval(checkCxLoaded);
if (dfpDebug) {console.log("cX is loaded!")}
cX.getSegments('f1ab28b7c9202ce3defa8bb2979a88f90c7a5ab2', function(segments) {
cX.Array.forEach(segments, function (cxTypedSegment, index) {
if (cxTypedSegment.type == 'contextual') {
cxContextualIds.push(cxTypedSegment.id);
} else if (cxTypedSegment.type == 'traffic') {
cxSegmentIds.push(cxTypedSegment.id);
}
});
if(typeof window.localStorage === 'object' && typeof window.localStorage.getItem === 'function') {
localStorage.setItem("_cX_segmentInfo", cxSegmentIds.join(","));
}
waitForVariable("adslotsDefined").then(() => {
if (dfpDebug) {console.log("adslots has been defined...")}
initDFP(cxSegmentIds);
});
});
}
}, 100);
} else {
if (dfpDebug) {console.log("Consents NOT met: CAN NOT USE PIANO!!!")}
__tcfapi("addEventListener", 2, function (TCData) {
if (dfpDebug) {console.log('Got an answer from TCData...')}
if (TCData.tcString && "cmpuishown" === TCData.eventStatus || 'tcloaded' === TCData.eventStatus || 'useractioncomplete' === TCData.eventStatus) {
initDFP(cxSegmentIds);
}
});
}
});
if (document.location.href.indexOf("debugcmp=1") > -1) {
console.time("consentReady");
console.time("windowloaded");
document.addEventListener('gravito:tcfv2:client', function (event) {
console.time("gravitoCMP");
if (gravitoCMP.currentState) {
console.log('%c Gravito currentState ready...', 'background: blue; color: #fff');
console.timeEnd("gravitoCMP");
console.log('customPurposes: ' + JSON.stringify(gravitoCMP.currentState.customPurposes));
console.log('nonTCFVendors: ' + JSON.stringify(gravitoCMP.currentState.nonTCFVendors));
console.log('Purposes: ' + JSON.stringify(gravitoCMP.currentState.purposes));
}
}, true);
__tcfapi("addEventListener", 2, function (TCData) {
console.log('tcString: ' + TCData.tcString);
console.log('eventStatus: ' + TCData.eventStatus);
if ( TCData.tcString && "cmpuishown" === TCData.eventStatus || 'tcloaded' === TCData.eventStatus || 'useractioncomplete' === TCData.eventStatus ) {
console.log('%c CMP ready...', 'background: green; color: #fff');
console.timeEnd("consentReady");
} else {
console.log('CMP not ready...');
console.timeEnd("consentReady");
}
});
window.onload = (event) => {
console.log('%c Window loaded...', 'background: red; color: #fff');
console.timeEnd("windowloaded");
console.log('%c Gravito currentState on Window loaded...', 'background: red; color: #fff');
console.log(gravitoCMP.currentState);
};
}
var adsmtag = adsmtag || {};
adsmtag.cmd = adsmtag.cmd || [];
var adLocation = 'content';
if (adLocation == '') {adLocation = 'other'}
//if (adLocation == 'content' && location.href.indexOf('/resepti/') > -1) {adLocation = 'recipes'}
var hideAllAds = false;
var showAds = true;
var showVideo = true;
var takeOver = false;
var blockJP = false;
var fpaShown = false;
var fpaIndex = 25;
var userdpbjs = false;
var hb_setup = 'owpbjs';
var targetingValue = '';
var articleCategory = '', articleCategories = '', recipeTheme = '', articleTags = '', articleSection = '';
var useHBM = true;
useHBM = document.location.href.indexOf('/asuntomessut/') > -1 ? false : true;
var paidContent = false, subscriber = false, paywallState = 'closed';
if (window.dataLayer) {
dataLayer.forEach(function (dataLayerItem) {
if (dataLayerItem['PrimaryCategory'] !== '' && dataLayerItem['PrimaryCategory'] !== undefined) {
articleCategory = dataLayerItem['PrimaryCategory'].toLocaleString().toLowerCase().replace(/, /g, ',');
console.log('ArticleCategory: ' + articleCategory);
}
if (dataLayerItem['Categories'] !== '' && dataLayerItem['Categories'] !== undefined) {
articleCategories = dataLayerItem['Categories'].toLocaleString().toLowerCase().replace(/, /g, ',');
console.log('Categories: ' + articleCategories);
}
if (dataLayerItem['Tags'] !== '' && dataLayerItem['Tags'] !== undefined) {
articleTags = dataLayerItem['Tags'].toLocaleString().toLowerCase().replace(/, /g, ',');
console.log('Tags: ' + articleTags);
}
if (dataLayerItem['Section'] !== '' && dataLayerItem['Section'] !== undefined) {
articleSection = dataLayerItem['Section'].toLowerCase().replace(/, /g, ',');
if (dfpDebug) {console.log('ArticleSection: ' + articleSection);}
} else if (location.href.indexOf('/resepti/') > -1) {
articleSection = 'Resepti';
dataLayerItem['Section'] = articleSection;
if (dfpDebug) {console.log('ArticleSection: ' + articleSection);}
}
if (dataLayerItem['RecipeTheme'] !== '' && dataLayerItem['RecipeTheme'] !== undefined) {
recipeTheme = dataLayerItem['RecipeTheme'].toLocaleString().toLowerCase().replace(/, /g, ',');
console.log('RecipeTheme: ' + recipeTheme);
}
if (dataLayerItem['PaidContent'] !== '' && dataLayerItem['PaidContent'] !== undefined) {
paidContent = dataLayerItem['PaidContent'];
}
if (dataLayerItem['PaidUser'] !== '' && dataLayerItem['PaidUser'] !== undefined) {
subscriber = dataLayerItem['PaidUser'];
}
if (dataLayerItem['PaywallState'] !== '' && dataLayerItem['PaywallState'] !== undefined) {
paywallState = dataLayerItem['PaywallState'].toLocaleString().toLowerCase();
}
});
if(articleCategory.indexOf("pääsiäinen") > -1 || articleCategories.indexOf("pääsiäinen") > -1 || recipeTheme.indexOf("pääsiäinen") > -1 || articleTags.indexOf("pääsiäinen") > -1) {
takeOver = true;
targetingValue = 'pääsiäinen';
}
if(articleCategory.indexOf("joulu") > -1 || articleCategories.indexOf("joulu") > -1 || recipeTheme.indexOf("joulu") > -1 || articleTags.indexOf("joulu") > -1) {
takeOver = true;
targetingValue = 'joulu';
}
if(articleCategory.indexOf("grillaus") > -1 || articleCategories.indexOf("grillaus") > -1 || recipeTheme.indexOf("grillaus") > -1 || articleTags.indexOf("grilli kuumaksi") > -1 || articleTags.indexOf("grilli") > -1) {
takeOver = true;
targetingValue = 'grillikuumaksi';
}
if(articleCategory.indexOf("puutarha") > -1 || articleCategories.indexOf("puutarha") > -1 || articleTags.indexOf("ihana puutarha") > -1 || articleTags.indexOf("puutarha") > -1) {
takeOver = true;
targetingValue = 'ihanapuutarha';
}
} else {
console.error('DataLayer is not defined.')
}
if (document.location.href.indexOf('/tilaajille/') > -1) {hideAllAds = true; console.log('Tilaajille hideAllAds = true...');}
if (document.location.href.indexOf('/asuntomessut/') > -1) {blockJP = true;}
if (document.location.href.indexOf("haltuunotto=hampurilainen") > -1) {
takeOver = true;
targetingValue = 'hampurilainen';
}
if (document.location.href.indexOf("haltuunotto=hampurilainen2") > -1) {
takeOver = true;
targetingValue = 'hampurilainen2';
}
var dfpDebug = false;
if (document.location.href.indexOf("dfpdebug=1") > -1 || dfpDebug) {
dfpDebug = true;
}
var rnd = Math.floor(Math.random() * 50);
if (dfpDebug) {console.log('rnd: ' + rnd + ', fpa: ' + cmpGetCookie('fullpagead'));}
var deliveryType = '';
checkCMPConditions(tcstring_decoded, [1,3,4], [2,7,9,10], [], [755]).then(result => {
if (result) {
if (dfpDebug) {console.log("Consent met: GAM IS ALLOWED TO SERVE personalized ads...")}
//googletag.pubads().setTargeting("deliveryType", "normal");
deliveryType = 'normal';
} else {
checkCMPConditions(tcstring_decoded, [1], [2,7,9,10], [], [755]).then(result => {
if (result) {
if (dfpDebug) {console.log("Consent met: GAM IS ALLOWED TO SERVE Non-personalized ads...")}
//googletag.pubads().setTargeting("deliveryType", "npa");
deliveryType = 'npa';
} else {
checkCMPConditions(tcstring_decoded, [], [2,7,9,10], [], [755]).then(result => {
if (result) {
if (dfpDebug) {console.log("Consent met: GAM IS ALLOWED TO SERVE Limited ads...")}
//googletag.pubads().setTargeting("deliveryType", "lads");
deliveryType = 'lads';
useHBM = false;
} else {
if (dfpDebug) {console.log("Consent not met: GAM IS ALLOWED TO SERVE TAD...")}
//googletag.pubads().setTargeting("deliveryType", "tad");
deliveryType = 'tad';
useHBM = false;
}
});
}
});
}
});
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
window.dfp = {
location: 'content',
//location: adLocation,
serviceName: 'kotiliesi',
visibility: (document.documentElement.clientWidth >= 1140 ? 'desktop' : 'mobile'),
isAndroid: (navigator.userAgent.match(/Android/i) ? true : false),
fetchMarginPercent: (document.documentElement.clientWidth >= 1140 ? 200 : 200),
renderMarginPercent: (document.documentElement.clientWidth >= 1140 ? 100 : 100),
networkcode: '135812570',
initialized: false,
definedAds: {},
lazyload: false, // Keep this false
enableAsync: true,
serviceStarted: false,
waypointDFP: [],
// Sizes: array of sizes. If no sizes are defined, it is assumed that the ad unit is an out-of-place ad
// Visibility options: desktop, mobile, all
slots : {
'desk-1' : {
sizes: [[1, 1], [728,90], [980,120], [980,400], [980,552], [980,600]],
visibility: 'desktop'
},
'desk-1-wallpaper' : {
sizes: [[1, 2]],
visibility: 'desktop'
},
'desk-2' : {
sizes: [[980,552], [980,400], [980,120], [728,90], [620,891], [300,300], [300,250], [2,2], [1,2]],
visibility: 'desktop'
},
'desk-3' : {
sizes: [[980,552], [980,400], [980,120], [620,891], [300,300], [300,250]],
visibility: 'desktop'
},
'rectangle-1' : {
sizes: [[300,600], [300,300], [300,250], ['fluid']],
visibility: 'desktop',
},
'rectangle-2' : {
sizes: [[300,600], [300,300], [300,250], ['fluid']],
visibility: 'desktop',
},
'topad-desk': {
sizes: [[1, 2],[2, 2]],
visibility: 'desktop'
},
'interstitial' : {
sizes: [1, 1],
visibility: 'all'
},
'mob-1' : {
sizes: [[320, 600],[320, 320],[300,600], [300,431], [300,300], [300,250], [300,150], ['fluid']],
visibility: 'mobile'
},
'mob-2' : {
sizes: [[320, 600],[320, 320],[300,600], [300,431], [300,300], [300,250], [300,150], ['fluid']],
visibility: 'mobile'
},
'mob-3' : {
sizes: [[320, 600],[320, 320],[300,600], [300,431], [300,300], [300,250], [300,150], ['fluid']],
visibility: 'mobile'
},
'topad-mob': {
sizes: [[1, 2],[2, 2]],
visibility: 'mobile'
},
'native-bottom' : {
sizes: ['fluid'],
visibility: 'all'
},
'native-card-1': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-1-new': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-2': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-parade': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-parade-2': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-1': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-2': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-3': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-4': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-5': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-6': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-7': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-8': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-9': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-card-section-10': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-text-1': {
sizes: [[1, 1], ['fluid']],
visibility: 'all'
},
'native-recipe-1': {
sizes: [[320, 150]],
visibility: 'mobile'
}
},
pbConfig: {
desktop: {
script: "https://otava-cdn.relevant-digital.com/static/tags/5e4c4c2d53ca952a90fa7fde.js",
configId: {
frontpage: "6094fdc6e50f93cf32beac8e",
content: "6094fea655f32ad7abbeac8f",
blogs: "6094ff2d70099c12afbeac90",
recipes: "6094ff6b9c7e9236a0beac91"
}
},
mobile: {
script: "https://otava-cdn.relevant-digital.com/static/tags/5e4c4c2d53ca952a90fa7f8f.js",
configId: {
frontpage: "6098f67c627b20a7020228b6",
content: "6098f6c36faca408510228b7",
blogs: "6098f6d42526a54b500228b8",
recipes: "6098f6e311cec8a7ac0228b9"
}
}
},
displayAdslot: function (id) {
//if (!this.initialized) this.init();
var that = this;
var parts = id.split('__');
var parts = parts[1].split('_');
var slotName = parts[0];
if (testSRA) {
if (!(slotName.includes('native'))) {
return;
}
//return;
}
// Checking that the native adslot is known
if (slotName.includes('native') && this.slots.hasOwnProperty(slotName)) {
googletag.cmd.push(function () {
that.defineNative(id, slotName);
googletag.display(id);
if (dfpDebug) {console.log('googletag.display for ' + slotName + '...')}
});
} else {
// Checking that the adslot is known and visibility matches
if (this.slots.hasOwnProperty(parts[0]) && ["all", this.visibility].indexOf(this.slots[parts[0]]['visibility'] || 'all') >= 0) {
if (parts[0] == 'mob-3') {
setTimeout(function(){
googletag.cmd.push(function () {
var slot = that.defineSlot(parts[0], id);
googletag.display(id);
if (dfpDebug) {console.log('googletag.display for ' + parts[0] + '..')}
});
}, 50)
} else {
googletag.cmd.push(function () {
var slot = that.defineSlot(parts[0], id);
googletag.display(id);
if (dfpDebug) {console.log('googletag.display for ' + parts[0] + '..')}
//if (slotName == 'mob-1' || slotName == 'mob-2') {
// var dfpReady = setInterval(function() {
// if(window.googletag && googletag.pubadsReady) {
// if (dfpDebug) {console.log('//googletag.pubads().refresh([slot]) for ' + id + '..')}
// googletag.pubads().refresh([slot]);
// clearInterval(dfpReady);
// }
// }, 100)
//}
});
}
}
}
},
displayAdslotInfinite: function (id) {
//if (!this.initialized) this.init();
var that = this;
var parts = id.split('__');
var parts = parts[1].split('_');
// Checking that the adslot is known and visibility matches
if (this.slots.hasOwnProperty(parts[0]) && ["all", this.visibility].indexOf(this.slots[parts[0]]['visibility'] || 'all') >= 0) {
googletag.cmd.push(function () {
var slot = that.defineSlot(parts[0], id);
googletag.display(id);
//googletag.pubads().refresh([slot]);
googletag.pubads().refresh([slot], {changeCorrelator: false});
console.log('Infinite slot "' + id + '" refreshed!');
});
}
},
defineSlot: function (slotName, id) {
var id = id || 'dfp__' + slotName;
var path = this.networkcode + '/' + this.serviceName + '/' + this.location + '/' + slotName;
if (slotName == 'interstitial' || slotName.includes('topad-')) {
path = this.networkcode + '/' + window.dfp.serviceName + '/content/' + slotName;
}
this.definedAds[id] = true;
//console.log('defineSlot: ' + slotName + '#' + id);
if (typeof this.slots[slotName]['sizes'] !== 'undefined') {
if (dfpDebug) {console.log('defineSlot for ' + slotName + '...')}
return googletag.defineSlot(path, this.slots[slotName]['sizes'], id).addService(googletag.pubads()).setTargeting('adslotid', id.replace('dfp__',''));
} else {
return googletag.defineOutOfPageSlot(path, id).addService(googletag.pubads());
}
},
defineNative: function(opt_div, slotName) {
var opt_div = opt_div || 'dfp__' + slotName;
var adUnitPath = this.networkcode + '/' + this.serviceName + '/native/' + slotName;
this.definedAds[opt_div] = true;
//console.log('defineNative: ' + slotName + '#' + opt_div;
//return googletag.defineSlot(adUnitPath, 'fluid', opt_div).addService(googletag.pubads());
return googletag.defineSlot(adUnitPath, this.slots[slotName]['sizes'], opt_div).addService(googletag.pubads()).setTargeting('adslotid', opt_div.replace('dfp__',''));
},
init: function (cXsegmentIds) {
//if (dfpDebug) {console.log('Initin segmentit: ' + cXsegmentIds)}
var that = this;
if (!this.serviceStarted) {
googletag.cmd.push(function () {
/*
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
const itemId = event.slot.getSlotElementId();
if (!event.isEmpty && jQuery('#'+itemId).length && jQuery('body.home').length) {
const element = jQuery('#'+itemId).parent();
const items = element.data('items');
if (items > 1 || element.hasClass("grid")) {
element.find('article').last().css({display: "none"});
}
}
});
*/
if (dfpDebug) {
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
if (event.slot.getSlotElementId() == 'dfp__interstitial') {
if (!event.isEmpty) {
console.log('Advertiser ID:', event.advertiserId);
console.log('Campaign ID: ', event.campaignId);
console.log('Line Item ID:', event.lineItemId);
console.log('Creative ID: ', event.creativeId);
console.log('Size:', event.size);
}
}
});
}
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
if (dfpDebug || 1 == 2) {
var origAdSlotId = event.slot.getSlotElementId();
var acceptedSlotIds = ["mob-1_1","mob-2_1","mob-3_1","mob-3_22","mob-3_23","mob-2_1","2_222","3_21","3_24","3_25","3_26","3_27","3_28","3_29"];
if (dfpDebug) {
if (event.slot.getAdUnitPath().indexOf('/recipes/mob-1') > -1) {
console.log('Slot path for slot ' + origAdSlotId + ': ' + event.slot.getAdUnitPath());
console.log('Slot targeting for slot ' + origAdSlotId + ': ' + event.slot.getTargeting("hb_deal"));
}
}
if (acceptedSlotIds.some(value => origAdSlotId.endsWith(value))) {
if (dfpDebug) {console.log('adSlotId is allowed for FRB...')}
var adPath = 'kotiliesi';
if (event.isEmpty) {
setTimeout(function() {
var newAdSlotId = origAdSlotId.replace("-","_") + '_111';
var adSlotName = origAdSlotId.substr(origAdSlotId.indexOf("__")+2);
adSlotName = adSlotName.substr(0, adSlotName.indexOf("_"));
if (dfpDebug) {console.log('adSlotName: ' + adSlotName)};
if (dfpDebug) {console.log('Creating new adslot: ' + '#' + origAdSlotId)};
jQuery('#' + origAdSlotId).after('<div id="' + newAdSlotId + '" class="' + adSlotName + '-article"><script>var ' + newAdSlotId + '; googletag.cmd.push(function(){' + newAdSlotId + ' = googletag.defineSlot("/135812570/'+ adPath +'/' + adLocation + '/' + adSlotName + '", [[300,250],[300,300],[300,431],[300,600],[320,320]], "' + newAdSlotId + '").addService(googletag.pubads()).setTargeting("adslotid", ["' + origAdSlotId.replace("dfp__","") + '-111","frb"])});googletag.cmd.push(function() {googletag.display("' + newAdSlotId + '")});<\/script><\/div>').css('display','none');
if (deliveryType == 'normal') {
relevantDigital.cmd.push(function() {
relevantDigital.loadPrebid({configId: pbjsConf, manageAdserver: false, collapseEmptyDivs: true, collapseBeforeAdFetch: false, noGpt: true, allowedDivIds: [newAdSlotId], noSlotReload: true});
if (dfpDebug) {console.log('Requesting new ad via HBM to: #' + newAdSlotId)};
});
} else {
//googletag.pubads().refresh([newAdSlotId]);
if (dfpDebug) {console.log('Requesting new ad via GAM to: #' + newAdSlotId)};
}
}, 1000);
} else {
if (dfpDebug) {console.log('Ad slot ' + origAdSlotId + ' was not empty...')};
}
}
}
if (event.slot.getSlotElementId().indexOf('dfp__interstitial') > -1) {
if (event.isEmpty) {
if (dfpDebug) {console.log('Fpa is empty, calling webinterstitial...')}
window.canRunWebInterstitial = true;
} else {
if (dfpDebug) {console.log('BBW: preventing sticky player when fpa was shown...')}
window.bluebillywig = window.bluebillywig || {};
window.bluebillywig.cmd = window.bluebillywig.cmd || [];
//window.bluebillywig.cmd.push(function($$api) {
// //const originalStickyMode = $$api.getPlayoutData().stickyMode;
// $$api.updatePlayout({stickyMode: 'none'});
// //$$api.updatePlayout({stickyMode: originalStickyMode});
//});
window.bluebillywig.cmd.push({
playerId: '/p/inarticle/a/kotiliesi',
callback: function($$api) {
$$api.updatePlayout({stickyMode: 'none'});
}
});
}
}
});
if (document.location.href.indexOf("testbbw=1") > -1) {
googletag.pubads().addEventListener('slotResponseReceived', function(event) {
if (event.slot.getSlotElementId() == 'outstream') {
if (!event.isEmpty) {
console.log('Slot ' + event.slot.getSlotElementId() + ' is NOT empty...');
} else {
console.log('Slot ' + event.slot.getSlotElementId() + ' is empty...');
}
}
});
}
if (jQuery('body').hasClass('single-post') && takeOver && targetingValue == 'joulu' && document.location.href.indexOf("shownative=1") > -1) {
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
if (event.slot.getSlotElementId() == 'dfp__native-card-1') {
if (!event.isEmpty) {
if (jQuery('article[data-template-type="nativead"]').length == 1 && jQuery('section.grid .grid__item_lg-1-4').length > 0) {
createAdUnit(2, 'native-card-1', 'native-in-grid template-item template-item_nativead shadowed NativeAdPost ', '', '');
}
//createNativeAdUnit('native-card-1');
//console.log('Calling createNativeAdUnit...');
} else {
if (dfpDebug) {console.log('Slot ' + event.slot.getSlotElementId() + ' is empty...');}
}
}
});
}
// Adding some targeting parameters for adOps
googletag.pubads().setTargeting('url_domain', window.location.host)
googletag.pubads().setTargeting('url_path', window.location.pathname)
googletag.pubads().setTargeting('url_params', window.location.search.substring(1));
if (window.dataLayer) {
if (articleCategory != undefined && articleCategory != '') {
googletag.pubads().setTargeting("articlecategory", articleCategory.toLowerCase());
if (dfpDebug) {console.log('Targeting for articlecategory: ' + articleCategory.toLowerCase());}
}
if (articleCategories != undefined && articleCategories != '') {
googletag.pubads().setTargeting("articlecategories", articleCategories.toLowerCase());
if (dfpDebug) {console.log('Targeting for articlecategories: ' + articleCategories.toLowerCase());}
}
if (articleSection != undefined && articleSection != '') {
googletag.pubads().setTargeting("articlesection", articleSection.toLowerCase());
if (dfpDebug) {console.log('Targeting for articlesection: ' + articleSection.toLowerCase());}
}
if (recipeTheme != undefined && recipeTheme != '') {
googletag.pubads().setTargeting("recipetheme", recipeTheme.toLowerCase().replace(/, /g, ','));
if (dfpDebug) {console.log('Targeting for recipetheme: ' + recipeTheme.toLowerCase().replace(/, /g, ','));}
}
if (articleTags != undefined && articleTags != '') {
googletag.pubads().setTargeting("articlekeywords", articleTags.toLowerCase().replace(/, /g, ','));
if (dfpDebug) {console.log('Targeting for articlekeywords: ' + articleTags.toLowerCase().replace(/, /g, ','));}
}
} else {
console.error('DataLayer not ready for targeting...')
}
if (cXsegmentIds !== null && cXsegmentIds !== undefined) {
var regexPattern = new RegExp("(\\b8nfapah6uu5t\\b|\\b8o1gwyxui6y1\\b)");
if (!regexPattern.test(cXsegmentIds)) {
cXsegmentIds = (Array.isArray(cXsegmentIds) && cXsegmentIds.length === 0) ? '8o1gwyxui6y1,aavib3epzfey' : (cXsegmentIds !== '' ? cXsegmentIds + ',8o1gwyxui6y1,aavib3epzfey' : cXsegmentIds);
if (dfpDebug) {console.log('Additional DFP setTargeting CxSegments: "8o1gwyxui6y1,aavib3epzfey"')}
}
var regexPattern = new RegExp("(\\b18hq77meo1fv5\\b)");
if (!regexPattern.test(cXsegmentIds)) {
cXsegmentIds = cXsegmentIds + (cXsegmentIds !== '' ? ',' : '') + '18hq77meo1fv5';
if (dfpDebug) {console.log('Additional DFP setTargeting CxSegments: "18hq77meo1fv5"')}
}
if (window.dfp.location == 'recipes' || location.href.indexOf('/ruoka/') > -1) {
var regexPattern = new RegExp("(\\b8nqech16gy6q\\b)");
if (!regexPattern.test(cXsegmentIds)) {
cXsegmentIds = cXsegmentIds + (cXsegmentIds !== '' ? ',' : '') + '8nqech16gy6q';
if (dfpDebug) {console.log('Additional DFP setTargeting CxSegments: "8nqech16gy6q"')}
}
}
if (dfpDebug) {console.log('DFP setTargeting CxSegments: ' + cXsegmentIds)}
googletag.pubads().setTargeting("CxSegments", cXsegmentIds);
}
googletag.pubads().setTargeting("CxContext", cxContextualIds.join());
googletag.pubads().setTargeting("deliveryType", deliveryType);
waitForResource('localStorage', 'gravito-microprofile-data').then(function (value) {
if (dfpDebug) {console.log('gravito-microprofile-data exists in local storage with value: ', value)}
var ppid = btoa(JSON.parse(JSON.parse(value)).i);
if (ppid) {
googletag.pubads().setPublisherProvidedId(ppid);
if (dfpDebug) {console.log('ppid: ' + ppid)}
}
});
googletag.pubads().setTargeting("adlocation", adLocation);
if (takeOver && 1 == 2) {
if (targetingValue == 'joulu' || targetingValue == 'pääsiäinen') {
googletag.pubads().collapseEmptyDivs(true, true);
googletag.pubads().setTargeting("haltuunotto", targetingValue);
googletag.pubads().enableLazyLoad({
fetchMarginPercent: 100,
renderMarginPercent: 50,
mobileScaling: 2
});
}
} else {
/*
googletag.pubads().enableLazyLoad({
fetchMarginPercent: dfp.fetchMarginPercent,
renderMarginPercent: dfp.renderMarginPercent,
mobileScaling: 1
});
if (dfpDebug) {console.log('dfp.renderMarginPercent: ' + dfp.renderMarginPercent)}
*/
googletag.pubads().collapseEmptyDivs();
var renderMarginPercent = Math.random() < 1/3 ? 40 : Math.random() < 1/2 ? 40 : 60;
googletag.pubads().setTargeting("experiments", "lazyload_" + renderMarginPercent);
googletag.pubads().enableLazyLoad({
fetchMarginPercent: 100,
renderMarginPercent: renderMarginPercent,
mobileScaling: 1
});
if (dfpDebug) {console.log('renderMarginPercent: ' + renderMarginPercent)}
}
//if (targetingValue == 'grillikuumaksi' || targetingValue == 'ihanapuutarha') {
// Infinite load requires SRA
googletag.pubads().enableSingleRequest();
// Disable initial load, we will use refresh() to fetch ads.
// Calling this function means that display() calls just
// register the slot as ready, but do not fetch ads for it.
googletag.pubads().disableInitialLoad();
//}
// Starting the service
googletag.enableServices();
that.serviceStarted = true;
});
}
this.initialized = true;
if (dfpDebug) {console.log('DFP initialized...')}
}
}
</script>
<script type="text/javascript">
//if (articleTags.indexOf('joulu') > -1 || articleCategories.indexOf('joulu') > -1 || recipeTheme.indexOf('joulu') > -1) {useHBM = false}
//if (targetingValue == 'joulu') {useHBM = false}
//if (targetingValue == 'joulu' && !jonesOverride) {useHBM = false}
//if (articleTags.indexOf('pääsiäinen') > -1 || articleCategories.indexOf('pääsiäinen') > -1 || recipeTheme.indexOf('pääsiäinen') > -1) {useHBM = false}
//if ((adLocation == 'content' || adLocation == 'recipes') && articleTags.indexOf('kevään juhlat') > -1) {useHBM = false}
//if ((adLocation == 'content' || adLocation == 'recipes') && articleTags.match(/kevään juhlat|valmistujaiset|vappu|ylioppilasjuhlat|äitienpäivä/)) {useHBM = false}
//if (targetingValue == 'grillikuumaksi' && jonesOverride) {useHBM = false}
if (useHBM) {
var rdads = document.createElement('script');
rdads.async = true;
var useSSL = 'https:' == document.location.protocol;
rdads.src = window.dfp.pbConfig[window.dfp.visibility].script;
var node = document.getElementsByTagName('script')[0];
node.parentNode.insertBefore(rdads, node);
var pbjsConf = window.dfp.pbConfig[window.dfp.visibility].configId[adLocation];
if (dfpDebug) {console.log('pbjsConf in use ' + pbjsConf);}
}
function initDFP(cXsegmentIds) {
//if (dfpDebug) {console.log('cSsegmentIds: ' + cXsegmentIds)}
if (window.dfp !== undefined) {
//if (dfpDebug) {console.log('initDFP() called by cX.getUserSegmentIds ' + cXsegmentIds + '...')}
setTimeout(function(){
window.dfp.init(cXsegmentIds);
}, 1);
setTimeout(function(){
if (useHBM) {
if (!testSRA) {
if (dfpDebug) {console.log('HBM initialized...')}
initHBM(cXsegmentIds);
}
} else {
console.log('HBM not in use!!!');
googletag.pubads().refresh();
}
}, 100);
} else {
console.log('DFP init failed: window.dfp missing!');
}
}
function initHBM(cXsegmentIds) {
if (dfpDebug) {console.log('initHBM called...')}
var hbArticleTags = articleTags != '' ? articleTags.split() : [];
var hbArticleCategories = articleCategories != '' ? [...new Set(articleCategory.split(',').concat(articleCategories.split(',')))] : [];
window.relevantDigital = window.relevantDigital || {};
relevantDigital.cmd = relevantDigital.cmd || [];
relevantDigital.cmd.push(function() {
if (location.href.indexOf('testi=123') > -1) {
let hasDoneFirstCall;
relevantDigital.addAuctionCallbacks({
onBeforeAuctionSetup: function ({ auction }) {
if (!(window.googletag || {}).pubads) {
console.error('GPT not initialized, this method only works if GPT-slots are created before calling relevantDigital.loadPrebid()');
return;
}
if (hasDoneFirstCall) { // Only do this on page-load and not subsequent auctions
return;
}
hasDoneFirstCall = true;
// Load all slots associated with these div IDs immediately (without waiting for relevantDigital)
const TO_LOAD_NOW = ['dfp__mob-1_1'];
const isLoadNowDiv = (divId) => TO_LOAD_NOW.includes(divId);
const loadNowSlots = [];
googletag.pubads().getSlots().forEach((slot) => {
const divId = slot.getSlotElementId(); // Get the div ID associated with the slot
if (isLoadNowDiv(divId)) {
loadNowSlots.push(slot);
}
});
if (!loadNowSlots.length) {
return; // continue as normal
}
// Requests slots immediately
googletag.pubads().refresh(loadNowSlots);
// Make sure they're not included in the prebid auction
auction.adUnits = auction.adUnits.filter(({ gamPath, divId }) =>
!isLoadNowDiv(divId)
);
// Then manually remove them when Relevant is doing the ad request
auction.googletagCalls = auction.googletagCalls || {};
auction.googletagCalls.refresh = (slots, ...rest) => {
const all = slots || googletag.pubads().getSlots();
const toLoad = all.filter((s) =>
!isLoadNowDiv(s.getSlotElementId())
);
googletag.pubads().refresh(toLoad, ...rest);
};
},
});
}
var blockHeaderTopPlacements = false;
var targetDateTime = new Date('2025-03-30T23:59:00');
var currentDateTime = new Date();
if (currentDateTime > targetDateTime) {
if (dfpDebug) {console.log('Blocking header top placements...')}
blockHeaderTopPlacements = true;
}
if (takeOver && targetingValue == 'grillikuumaksi' && blockHeaderTopPlacements && 1 == 2) {
let hasDoneFirstCall;
relevantDigital.addAuctionCallbacks({
// Code in function below can alternatively be added inside relevantDigital.loadPrebid({ onBeforeAuctionSetup: { ... } })
onBeforeAuctionSetup: function({ auction }) {
if(!(window.googletag || {}).pubads) {
console.error('GPT not initialized, this method only works if GPT-slots are created before calling relevantDigital.loadPrebid()');
return;
}
if(hasDoneFirstCall) { // Only do this on page-load and not subsequent auctions
return;
}
hasDoneFirstCall = true;
// Load all slots containing these strings in ad unit paths immediately (without waiting for prebid)
const TO_LOAD_NOW = ['desk-1','desk-2','mob-1','mob-2'];
const isLoadNowPath = (p) => TO_LOAD_NOW.find((s) => p.includes(s));
const loadNowSlots = [];
googletag.pubads().getSlots().forEach((slot) => {
if (isLoadNowPath(slot.getAdUnitPath())) {
loadNowSlots.push(slot);
}
});
if (!loadNowSlots.length) {
return; // continue as normal
}
// Requests slots immediately
googletag.pubads().refresh(loadNowSlots);
// Make sure they're not included in the prebid auction
auction.adUnits = auction.adUnits.filter(({ gamPath }) => !isLoadNowPath(gamPath));
// Then manually remove them when Relevant is doing the ad request
auction.googletagCalls = auction.googletagCalls || {};
auction.googletagCalls.refresh = (slots, ...rest) => {
const all = slots || googletag.pubads().getSlots();
const toLoad = all.filter((s) => !isLoadNowPath(s.getAdUnitPath()));
googletag.pubads().refresh(toLoad, ...rest);
};
},
});
}
relevantDigital.addPrebidConfig({
ortb2: {
site: {
//keywords: contextualIds.join(),
ext: {
data: {
CxContext: Object.values(cxContextualIds),
articleCategories: hbArticleCategories,
articleTags: hbArticleTags
}
}
}
}
});
relevantDigital.loadPrebid({
configId: pbjsConf,
manageAdserver: false, //Manage adserver set to off.
collapseEmptyDivs: true,
collapseBeforeAdFetch: false,
noGpt: true,
allowedDivIds: null, // set to an array to only load certain <div>s, example - ["divId1", "divId2"]
noSlotReload: false, // set true to only load ad slots that have never been loaded
onBeforeAuctionSetup: function(params) {
params.auction.adUnits.forEach(function(unit) {
unit.bids.forEach(function(bid){
if (bid.bidder == 'appnexus') {
bid.params.keywords = {cxSegments: cXsegmentIds, CxContext: cxContextualIds, articleTags: hbArticleTags, articleCategories: hbArticleCategories};
if (dfpDebug) {console.log('Setting params for Xandr bidder...')}
}
})
})
}
});
});
}
function loadAdSlot(adSlotId) {
if (dfpDebug) {console.log('HAS: runHeaderbid: ' + adSlotId + ', ' + (Date.now() - timerStart) + 'ms...')}
observerHeaderbidRun = true;
var adUnit = adSlotId.split('__')[1].split('_')[0];
var hbArticleTags = articleTags != '' ? articleTags.split() : [];
var hbArticleCategories = articleCategories != '' ? [...new Set(articleCategory.split(',').concat(articleCategories.split(',')))] : [];
googletag.cmd.push(function() {
if (adUnit.includes('native')) {
googletag.defineSlot('/' + window.dfp.networkcode + '/' + window.dfp.serviceName + '/native/' + adUnit + '', window.dfp.slots[adUnit].sizes, adSlotId).addService(googletag.pubads());
if (dfpDebug) {console.log('Defining slot: /' + window.dfp.networkcode + '/' + window.dfp.serviceName + '/native/' + adUnit)}
} else if (adUnit.includes('topad') || adUnit.includes('interstitial')) {
googletag.defineSlot('/' + window.dfp.networkcode + '/' + window.dfp.serviceName + '/content/' + adUnit + '', window.dfp.slots[adUnit].sizes, adSlotId).addService(googletag.pubads());
if (dfpDebug) {console.log('Defining slot: /' + window.dfp.networkcode + '/' + window.dfp.serviceName + '/content/' + adUnit)}
} else {
googletag.defineSlot('/' + window.dfp.networkcode + '/' + window.dfp.serviceName + '/' + adLocation + '/' + adUnit + '', window.dfp.slots[adUnit].sizes, adSlotId).addService(googletag.pubads());
if (dfpDebug) {console.log('Defining slot: /' + window.dfp.networkcode + '/' + window.dfp.serviceName + '/' + adLocation + '/' + adUnit)}
}
});
if (adUnit.includes('native')) {
googletag.cmd.push(function() {
const slot = googletag.pubads().getSlots().find(s => s.getSlotElementId() === adSlotId);
if (slot) {
googletag.pubads().refresh([slot], {changeCorrelator: false});
}
});
} else {
if (dfpDebug) {
console.log('HAS: Existing slots: ');
googletag.pubads().getSlots().forEach((slot) => {
console.log('HAS: ' + slot.getSlotElementId());
});
}
window.relevantDigital = window.relevantDigital || {};
relevantDigital.cmd = relevantDigital.cmd || [];
relevantDigital.cmd.push(function() {
relevantDigital.addPrebidConfig({
ortb2: {
site: {
//keywords: contextualIds.join(),
ext: {
data: {
CxContext: Object.values(cxContextualIds),
articleCategories: hbArticleCategories,
articleTags: hbArticleTags
}
}
}
}
});
relevantDigital.loadPrebid({
configId: pbjsConf,
manageAdserver: false, //Manage adserver set to off.
collapseEmptyDivs: true,
collapseBeforeAdFetch: false,
noGpt: true,
allowedDivIds: Array.isArray(adSlotId) ? adSlotId : [adSlotId], // set to an array to only load certain <div>s, example - ["divId1", "divId2"]
noSlotReload: true, // set true to only load ad slots that have never been loaded
googletagCalls: {
refresh: (slots) => googletag.pubads().refresh(slots, { changeCorrelator: false }),
},
onBeforeAuctionSetup: function(params) {
params.auction.adUnits.forEach(function(unit) {
unit.bids.forEach(function(bid){
if (bid.bidder == 'appnexus') {
bid.params.keywords = {cxSegments: cxSegmentIds, CxContext: cxContextualIds, articleTags: hbArticleTags, articleCategories: hbArticleCategories};
if (dfpDebug) {console.log('Setting params for Xandr bidder...')}
}
})
})
}
});
});
}
}
</script>
<!-- DFP End -->
<script type="text/javascript">
window.dataLayer = window.dataLayer || [];
dataLayer.push({'event': 'adLocation', 'adLocation': adLocation});
</script>
<script type="text/javascript">
var isAsync = true;
try {
eval('async () => {}');
} catch (e) {
if (e instanceof SyntaxError)
isAsync = false;
else
throw e; // throws CSP error
}
var supports = {
ecma: {
IntersectionObserver: 'IntersectionObserver' in window,
fetch: 'fetch' in window,
Promise: 'Promise' in window,
async: isAsync
}
};
dataLayer.push(supports);
</script>
<script async id="ebx" src="//applets.ebxcdn.com/ebx.js"></script>
<!-- Head tag end, do not remove --><!-- AWPO lazy-load marker --> <script type="text/javascript"><!--
function powerpress_pinw(pinw_url){window.open(pinw_url, 'PowerPressPlayer','toolbar=0,status=0,resizable=1,width=460,height=320'); return false;}
//-->
// tabnab protection
window.addEventListener('load', function () {
// make all links have rel="noopener noreferrer"
document.querySelectorAll('a[target="_blank"]').forEach(link => {
link.setAttribute('rel', 'noopener noreferrer');
});
});
</script>
<!-- core preconnect scripts --><link rel="preconnect" href="https://ads.pubmatic.com" crossorigin="anonymous"><link rel="preconnect" href="https://storage.googleapis.com" crossorigin="anonymous"><link rel="preconnect" href="https://www.googletagmanager.com" crossorigin="anonymous"><link rel="preconnect" href="https://www.google-analytics.com" crossorigin="anonymous"><link rel="preconnect" href="https://www.googletagservices.com" crossorigin="anonymous"><link rel="preconnect" href="https://s3-eu-west-1.amazonaws.com" crossorigin="anonymous"><!-- end of the core preconnect scripts --> <script type="text/javascript">
window.om = window.om || {};
window.om.wp_nonce = "5eda5c895d";
window.om.client_id = "34bcda2b-0334-41b4-8274-8760bb0c217f";
window.om.auth_url = "https://tili.otavamedia.fi";
</script>
<link rel="icon" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/favicon.ico" sizes="32x32">
<link rel="icon" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/favicon.ico" sizes="192x192">
<link rel="apple-touch-icon" href="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/favicon.ico">
<meta name="msapplication-TileImage" content="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/assets/images/favicons/favicon.ico">
<style type="text/css" id="wp-custom-css">
.page-list {
overflow-x: hidden;
}
#offer-placeholder::before,
#frosmo_message_id_2::before {
display: none;
} </style>
<meta name="google-site-verification" content="tN7e2qmywWDaz_2pq5boXF8w0k26qq_5svPW2kjVL88"><!-- KO-121 -->
</head>
<body class="archive tag tag-deko tag-18351 blog-1">
<!-- Body tag start, do not remove -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe height="0" width="0" style="display:none;visibility:hidden" data-src="https://www.googletagmanager.com/ns.html?id=GTM-P6934W3" class="awpo-lazy"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe height="0" width="0" style="display:none;visibility:hidden" data-src="https://www.googletagmanager.com/ns.html?id=GTM-TSMVFP56" class="awpo-lazy"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe height="0" width="0" style="display:none;visibility:hidden" data-src="https://www.googletagmanager.com/ns.html?id=GTM-T56W3Z7" class="awpo-lazy"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- Body tag end, do not edit or remove -->
<header id="site-header" class="site-header" role="banner">
<div class="site-header__topbar">
<a class="site-header__logo" href="https://kotiliesi.fi/">
<span class="screen-reader-text">Kotiliesi</span>
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 505 100"><path fill="currentColor" d="M502.3 88.9a6 6 0 0 1-4.5 2c-1.7 0-3.4-.9-3.4-4V22.7h-29.9v4.5c3.1 0 4.3 1.1 4.3 3.1v54.2c0 4.7.7 7.5 3 9.9 2.6 2.7 6.8 4.1 13.5 4.1 7.4 0 14.9-1.7 19.3-7.2l-2.3-2.4zm-171.7 0a6 6 0 0 1-4.5 2c-1.7 0-3.4-.9-3.4-4V22.7h-29.9v4.5c3.1 0 4.3 1.1 4.3 3.1v54.2c0 4.7.7 7.5 3 9.9 2.6 2.7 6.8 4.1 13.5 4.1 7.4 0 14.9-1.7 19.3-7.2l-2.3-2.4zM212.1 9.7c0 7 6 9.7 13.5 9.7s13.5-2.4 13.5-9.7c0-7.2-6-9.7-13.5-9.7-7.6 0-13.5 2.4-13.5 9.7M247 88.9a6 6 0 0 1-4.5 2c-1.7 0-3.4-.9-3.4-4V22.7h-29.9v4.5c3.1 0 4.3 1.1 4.3 3.1v54.2c0 4.7.7 7.5 3 9.9 2.6 2.7 6.8 4.1 13.5 4.1 7.4 0 14.9-1.7 19.3-7.2l-2.3-2.4zM467.4 9.7c0 7 6 9.7 13.5 9.7s13.5-2.4 13.5-9.7c0-7.2-6-9.7-13.5-9.7s-13.5 2.4-13.5 9.7m-171.8 0c0 7 6 9.7 13.5 9.7s13.5-2.4 13.5-9.7c0-7.2-6-9.7-13.5-9.7s-13.5 2.4-13.5 9.7m-41.1 74.9v.6c0 4.4.7 7.1 3 9.4 2.6 2.7 6.8 4.1 13.5 4.1 7.4 0 14.9-1.7 19.3-7.2l-2.1-2.6a6 6 0 0 1-4.5 2c-1.7 0-3.4-.7-3.4-4V1.3l-31.4 1.1v4.3c3.8 0 5.7 1.4 5.7 4.5v73.4zM189.3 3.1H188c-6.5 0-13.5 1.6-20.3 3.1l-4.1 1v15.5l-9.4 1v4.8h9.4v49.3c0 13.3 7.1 20.9 22.4 20.9 11.6 0 17.9-4.8 21-8.8l-2.7-3.4-1.6 1.3c-2.8 2.3-5.1 3.4-8.4 3.3-3.8-.1-5.1-3-5.1-6.7V28.5h17.9v-5.8h-17.9V3.1zM76.8 9.9c1.4-2 3.8-3 6.8-3V3.4H61.2V7c3.1 0 5.1.7 3.3 3.1L45.1 36.2c-4.4 6-8.7 10.1-12.5 10.8V8.4C32.6 7 34.8 7 37.3 7V3.4H0V7c2.7 0 4.7 0 4.7 1.4v82.2c0 3-1.4 3.7-4.7 3.7v3.5h37.3v-3.5c-2.8 0-4.7-.7-4.7-3.7V51.2l17.6 35.1C55.4 96.7 66 99.1 74.7 99.1c12.2 0 18.5-3 18.5-3v-2.8s-5.4 0-10.8-8.9L55.5 39.2 76.8 9.9zm357 11c-18.5 0-28.5 7.9-28.5 19.9 0 10.9 5.1 17.2 16.3 24.3l12.3 7.7c7.5 4.7 10.1 7.8 10.1 12.8 0 4.7-3.7 9.7-13.1 9.7-11.2 0-18.9-5.8-23-21.9h-3.3v17c5.1 5.5 15.3 9.1 26.4 9.1 18.7 0 30.9-9.1 30.9-25.8 0-10.9-7.2-17.5-18.7-24.6L431.7 42c-5.5-3.4-7.2-6.8-7.2-9.7 0-4 3.3-7.4 9.8-7.4 10.2 0 16.7 4.8 19.2 16.6h3.1V25.8a49.8 49.8 0 0 0-22.8-4.9m-66.6 3.9c4.3 0 6.8 5.5 7 29.9h-14.3v-3.4c-.1-20.5 3-26.5 7.3-26.5m28.1 61.4C391 90 386.2 92 378 92c-14.6 0-18.2-9.8-18.2-32.1h34.8c3.5 0 4.7-2.3 4.7-4 0-25-12.3-35.1-32.1-35.1-20.9 0-35.1 16.3-35.1 41 0 24 12.8 37.5 37.9 37.5 13.5 0 21.7-4.7 27.3-9.8l-2-3.3zm-282.5-26c0-22.1 1.4-35.3 8.8-35.3 7.5 0 8.7 11.6 8.7 35.3 0 26-1.1 34.9-8.7 34.9-6.3 0-8.8-9.9-8.8-34.9m-27.9 0c0 23.1 15.8 39.2 36.6 39.2 20.9 0 36.3-17.5 36.3-39.2 0-23.1-15.5-39.3-36.3-39.3-20.9 0-36.6 17.6-36.6 39.3"></path></svg></a>
<div class="navigation-actions">
<button id="aisearch" class="navigation-actions__aisearch-button button" type="button" style="font-size:1.2rem;padding-right:2rem;">
RESEPTIHAKU
</button>
<a id="button-header-order" class="navigation-actions__order-button button button--tertiary" href="/tilaa?promoPosition=header-single">
Tilaa
</a>
<a id="button-header-user" class="navigation-actions__user-button button button--icon" href="https://kotiliesi.fi?option=oauthredirect&app_name=openid&redirect_url=https%3A%2F%2Fkotiliesi.fi%2Favainsana%2Fdeko">
<span class="icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 3a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm0 14.2a7.2 7.2 0 0 1-6-3.22c.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08a7.2 7.2 0 0 1-6 3.22z"></path></svg></span>
<span class="screen-reader-text">
Kirjaudu
</span>
</a>
<button id="button-header-menu" class="navigation-actions__menu-button button button--icon" type="button" aria-expanded="false" aria-controls="navigation-menu">
<span class="icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 32 32" fill="currentColor"><path d="M3 28h26v-4H3v4Zm0-10h26v-4H3v4ZM3 4v4h26V4H3Z"></path></svg>
</span>
<span class="screen-reader-text">Päävalikko</span>
</button>
</div>
</div>
<div class="navigation__wrapper">
<nav id="navigation-menu" class="navigation__menu navigation__menu--hidden" aria-label="Päänavigaatio" role="navigation">
<div class="navigation__inner">
<div class="menu-item close-menu">
<button id="button-close-header-menu" type="button">
<span class="icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor"><path d="M19 6.4 17.6 5 12 10.6 6.4 5 5 6.4l5.6 5.6L5 17.6 6.4 19l5.6-5.6 5.6 5.6 1.4-1.4-5.6-5.6L19 6.4z"></path></svg></span>
<span class="screen-reader-text">Sulje valikko</span>
</button>
</div>
<div class="menu-item search-link">
<a href="https://kotiliesi.fi/haku/">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor"><path d="M15.5 14h-.8l-.3-.3c1-1.1 1.6-2.6 1.6-4.2a6.5 6.5 0 1 0-2.3 5l.3.2v.8l5 5 1.5-1.5-5-5zm-6 0a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9z"></path></svg> Hae
</a>
</div>
<div class="navigation__primary"><ul id="primary-menu-list" class="menu-wrapper"><li id="menu-item-456415" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-456415 menu-page-toukola"><a href="https://kotiliesi.fi/toukola/">Toukola</a></li>
<li id="menu-item-48" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-has-children menu-item-48 menu-category-ruoka"><a href="https://kotiliesi.fi/kategoria/ruoka/">Ruoka</a>
<ul class="sub-menu">
<li id="menu-item-524563" class="ai-reseptihaku-nappi menu-item menu-item-type-custom menu-item-object-custom menu-item-524563"><a href="#">Reseptihaku</a></li>
<li id="menu-item-393715" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-393715"><a href="https://kotiliesi.fi/reseptihaku">Reseptit</a></li>
<li id="menu-item-389469" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-389469"><a href="https://kotiliesi.fi/avainsana/viikon-ruokalista/">Viikon ruokalista</a></li>
<li id="menu-item-307779" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-type-custom menu-item-object-custom menu-item-307779"><a href="https://kotiliesi.fi/arjen-nopeat-ja-helpot/">Arjen nopeat ja helpot</a></li>
<li id="menu-item-481016" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-481016 menu-page-grilli-kuumaksi"><a href="https://kotiliesi.fi/grilli-kuumaksi/">Grilli kuumaksi!</a></li>
</ul>
</li>
<li id="menu-item-77" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-has-children menu-item-77 menu-category-ihmiset"><a href="https://kotiliesi.fi/kategoria/ihmiset/">Ihmiset</a>
<ul class="sub-menu">
<li id="menu-item-186511" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186511 menu-category-tarinat"><a href="https://kotiliesi.fi/kategoria/ihmiset/tarinat/">Tarinat</a></li>
<li id="menu-item-187187" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-187187 menu-category-nostalgia"><a href="https://kotiliesi.fi/kategoria/ihmiset/nostalgia/">Nostalgia</a></li>
<li id="menu-item-147458" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-147458 menu-category-talous"><a href="https://kotiliesi.fi/kategoria/ihmiset/talous/">Talous</a></li>
<li id="menu-item-186512" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186512 menu-category-kulttuuri"><a href="https://kotiliesi.fi/kategoria/ihmiset/kulttuuri/">Kulttuuri</a></li>
<li id="menu-item-229893" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-229893 menu-category-luonto"><a href="https://kotiliesi.fi/kategoria/ihmiset/luonto/">Luonto</a></li>
</ul>
</li>
<li id="menu-item-186513" class="background-accent-3-light menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-has-children menu-item-186513 menu-category-hyvinvointi"><a href="https://kotiliesi.fi/kategoria/hyvinvointi/">Hyvinvointi</a>
<ul class="sub-menu">
<li id="menu-item-186514" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186514 menu-category-liikunta"><a href="https://kotiliesi.fi/kategoria/hyvinvointi/liikunta/">Liikunta</a></li>
<li id="menu-item-186517" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186517 menu-category-suhteet"><a href="https://kotiliesi.fi/kategoria/hyvinvointi/suhteet/">Suhteet</a></li>
<li id="menu-item-186515" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186515 menu-category-terveys"><a href="https://kotiliesi.fi/kategoria/hyvinvointi/terveys/">Terveys</a></li>
</ul>
</li>
<li id="menu-item-186525" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-has-children menu-item-186525 menu-category-koti"><a href="https://kotiliesi.fi/kategoria/koti/">Koti</a>
<ul class="sub-menu">
<li id="menu-item-186527" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186527 menu-category-sisustus"><a href="https://kotiliesi.fi/kategoria/koti/sisustus/">Sisustus</a></li>
<li id="menu-item-186526" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186526 menu-category-kodinhoito"><a href="https://kotiliesi.fi/kategoria/koti/kodinhoito/">Kodinhoito</a></li>
<li id="menu-item-186528" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186528 menu-category-puutarha"><a href="https://kotiliesi.fi/kategoria/koti/puutarha/">Puutarha</a></li>
<li id="menu-item-187189" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-187189 menu-category-lemmikit"><a href="https://kotiliesi.fi/kategoria/koti/lemmikit/">Lemmikit</a></li>
<li id="menu-item-186529" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186529 menu-category-huonekasvit"><a href="https://kotiliesi.fi/kategoria/koti/huonekasvit/">Huonekasvit</a></li>
</ul>
</li>
<li id="menu-item-62" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-has-children menu-item-62 menu-category-kasityo"><a href="https://kotiliesi.fi/kategoria/kasityo/">Käsityö</a>
<ul class="sub-menu">
<li id="menu-item-186508" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186508 menu-category-askartelu"><a href="https://kotiliesi.fi/kategoria/kasityo/askartelu/">Askartelu</a></li>
<li id="menu-item-67" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-67 menu-category-neulonta"><a href="https://kotiliesi.fi/kategoria/kasityo/neulonta/">Neulonta</a></li>
<li id="menu-item-389374" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-389374 menu-category-virkkaus"><a href="https://kotiliesi.fi/kategoria/kasityo/virkkaus/">Virkkaus</a></li>
<li id="menu-item-186509" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-186509 menu-category-ompelu"><a href="https://kotiliesi.fi/kategoria/kasityo/ompelu/">Ompelu</a></li>
</ul>
</li>
<li id="menu-item-380716" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-has-children menu-item-380716 menu-category-juhlat"><a href="https://kotiliesi.fi/kategoria/juhlat/">Juhlat</a>
<ul class="sub-menu">
<li id="menu-item-393629" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-393629 menu-page-unelmien-joulu"><a href="https://kotiliesi.fi/unelmien-joulu/">Unelmien joulu</a></li>
<li id="menu-item-393630" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-393630 menu-page-paras-paasiainen"><a href="https://kotiliesi.fi/paras-paasiainen/">Paras pääsiäinen</a></li>
<li id="menu-item-393631" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-393631 menu-page-kevaan-juhlat"><a href="https://kotiliesi.fi/kevaan-juhlat/">Kevään juhlat</a></li>
</ul>
</li>
<li id="menu-item-405751" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-405751 menu-page-nakoislehdet"><a href="https://kotiliesi.fi/nakoislehdet/">Näköislehdet</a>
<ul class="sub-menu">
<li id="menu-item-239654" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-239654"><a href="https://kotiliesi.fi/nakoislehti/">Kotiliesi näköislehti</a></li>
<li id="menu-item-239656" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-239656"><a href="https://kotiliesi.fi/deko-nakoislehti/">Deko näköislehti</a></li>
<li id="menu-item-404721" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-404721"><a href="https://kotiliesi.fi/maalla-nakoislehti/">Maalla näköislehti</a></li>
<li id="menu-item-404722" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-404722"><a href="https://kotiliesi.fi/kotiliesi-kasityo-nakoislehti/">Kotiliesi Käsityö näköislehti</a></li>
</ul>
</li>
<li id="menu-item-197441" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-197441 menu-category-kilpailut"><a href="https://kotiliesi.fi/kategoria/kilpailut/">Kilpailut</a></li>
<li id="menu-item-405752" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-405752 menu-page-klubi"><a href="https://kotiliesi.fi/klubi/">Kotiliesi Klubi</a></li>
<li id="menu-item-393634" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-393634 menu-page-toimituksen-yhteystiedot"><a href="https://kotiliesi.fi/toimituksen-yhteystiedot/">Ota yhteyttä</a></li>
</ul></div> </div>
</nav>
</div>
<div id="frosmo-notice-bar" class="notice-bar notice-bar--hidden">
<div id="frosmo-notice-bar-text" class="notice-bar__content">
<a href="#promoID=OM_huomio">
<p></p>
</a>
</div>
</div>
</header>
<main>
<div class="page-list">
<header class="archive-header">
<h1 class="archive-header__title">Deko</h1>
</header>
<div class="article-card-grid is-style-standard">
<ul>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Kuvia olohuoneista." data-src="https://kotiliesi.fi/awpo/img/2025/08/olohuone.jpg?s=4bee742c26c637d27d322393255b24d1&fit=crop"><noscript><img class="card__image " alt="Kuvia olohuoneista." src="https://kotiliesi.fi/awpo/img/2025/08/olohuone.jpg?s=4bee742c26c637d27d322393255b24d1&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/olohuoneen-sisustuksen-paivittaminen/" class="card__link-overlay">
Vinkkejä olohuoneen sisustuksen päivittämiseen: Pienilläkin muutoksilla voi olla iso vaikutus </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Pia-Maria Nickström kotonaan." data-src="https://kotiliesi.fi/awpo/img/2025/08/d0a1926_vaaka.jpg?s=182572386d25c7411b518dc080a8522d&fit=crop"><noscript><img class="card__image " alt="Pia-Maria Nickström kotonaan." src="https://kotiliesi.fi/awpo/img/2025/08/d0a1926_vaaka.jpg?s=182572386d25c7411b518dc080a8522d&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<span class="card__subscriber-tag card__meta">
<i class="om-icon om-icon-subscriber" aria-hidden="true" data-role="icon"></i> Tilaajille
</span>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/pia-maria-nickstromin-ja-pyry-itkosen-koti/" class="card__link-overlay">
Siniseksi maalattu katto ja punainen keittiötaso – Pia-Marian ja Pyryn koti on täynnä väripilkkuja! </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Keittiö." data-src="https://kotiliesi.fi/awpo/img/2025/07/majan-koti-7909.jpg?s=9540c94c27f15f9b275ad28602364955&fit=crop"><noscript><img class="card__image " alt="Keittiö." src="https://kotiliesi.fi/awpo/img/2025/07/majan-koti-7909.jpg?s=9540c94c27f15f9b275ad28602364955&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<span class="card__subscriber-tag card__meta">
<i class="om-icon om-icon-subscriber" aria-hidden="true" data-role="icon"></i> Tilaajille
</span>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/majan-koti/" class="card__link-overlay">
Kun Maja aloitti talonsa rakennusprojektin, hän otti huomioon jopa lastensa kaverit </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Valmis terassi." data-src="https://kotiliesi.fi/awpo/img/2025/07/img_1242_vaaka.jpg?s=cbe6ac86f34ba35eb75507a9352228aa&fit=crop"><noscript><img class="card__image " alt="Valmis terassi." src="https://kotiliesi.fi/awpo/img/2025/07/img_1242_vaaka.jpg?s=cbe6ac86f34ba35eb75507a9352228aa&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/puutarha/" class="card__vignette card__meta">
Puutarha</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/puutarha/terassin-uusiminen/" class="card__link-overlay">
Terassin uusiminen vei Sallalta alle 8 000 euroa! Ennen ja jälkeen -kuvat näyttävät huikean muutoksen </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Vilma maalaamassa." data-src="https://kotiliesi.fi/awpo/img/2025/06/vilmapeltonen_hr_kaisu_kaplin_b8a2730.jpg?s=17e9be8f8f3a9a87137ac5a02ae54c17&fit=crop"><noscript><img class="card__image " alt="Vilma maalaamassa." src="https://kotiliesi.fi/awpo/img/2025/06/vilmapeltonen_hr_kaisu_kaplin_b8a2730.jpg?s=17e9be8f8f3a9a87137ac5a02ae54c17&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<span class="card__subscriber-tag card__meta">
<i class="om-icon om-icon-subscriber" aria-hidden="true" data-role="icon"></i> Tilaajille
</span>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/vilma-peltonen-asuu-perheensa-kanssa-pilvenpiirtajassa/" class="card__link-overlay">
Vilma Peltonen asuu pilvenpiirtäjässä: ”Näin korkealla asuminen on ollut paljon ihanampaa kuin ajattelin” </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Hotellit." data-src="https://kotiliesi.fi/awpo/img/2025/06/hotellit-vaaka.jpg?s=1dc91314b6d3a2b107319cea16c44e90&fit=crop"><noscript><img class="card__image " alt="Hotellit." src="https://kotiliesi.fi/awpo/img/2025/06/hotellit-vaaka.jpg?s=1dc91314b6d3a2b107319cea16c44e90&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/suosittelemisen-arvoiset-majoituspaikat-suomessa/" class="card__link-overlay">
11 x suosittelemisen arvoinen majoituspaikka – Suomessa matkaavan kannattaa ottaa lista talteen </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Venla keittiössä." data-src="https://kotiliesi.fi/awpo/img/2025/06/villa-aava_deko-5-of-32_hero-kuva.jpg?s=52027b95612afa0ad669a3eda4758518&fit=crop"><noscript><img class="card__image " alt="Venla keittiössä." src="https://kotiliesi.fi/awpo/img/2025/06/villa-aava_deko-5-of-32_hero-kuva.jpg?s=52027b95612afa0ad669a3eda4758518&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<span class="card__subscriber-tag card__meta">
<i class="om-icon om-icon-subscriber" aria-hidden="true" data-role="icon"></i> Tilaajille
</span>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/oulun-asuntomessujen-villa-aava/" class="card__link-overlay">
Jussi ja Venla aikovat asua Asuntomessuille rakentamassaan talossa loppuelämänsä: ”Juuri tähän haluamme kotimme” </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Kauppoja Oulussa." data-src="https://kotiliesi.fi/awpo/img/2025/06/oulun-kaupat.jpg?s=ee1083f77a8a26681dbae06b9894ac82&fit=crop"><noscript><img class="card__image " alt="Kauppoja Oulussa." src="https://kotiliesi.fi/awpo/img/2025/06/oulun-kaupat.jpg?s=ee1083f77a8a26681dbae06b9894ac82&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/kahville-ja-shoppailemaan-ouluun/" class="card__link-overlay">
Suuntaatko Oulun Asuntomessuille? 8 liikettä ja kahvilaa, joihin kannattaa tutustua samalla reissulla </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Kuvia Asuntomessuilta." data-src="https://kotiliesi.fi/awpo/img/2025/06/asuntomessut-vaaka.jpg?s=8007fd824538866447f246332fbf474b&fit=crop"><noscript><img class="card__image " alt="Kuvia Asuntomessuilta." src="https://kotiliesi.fi/awpo/img/2025/06/asuntomessut-vaaka.jpg?s=8007fd824538866447f246332fbf474b&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/oivalluksia-oulun-asuntomessuilta/" class="card__link-overlay">
9 kiinnostavaa poimintaa Asuntomessuilta – nämä haluat nähdä, kävit paikan päällä tai et </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Manuela makuuhuoneessa." data-src="https://kotiliesi.fi/awpo/img/2025/06/manuelabosco_hr_kaisu_kaplin_b8a2186-1_-vaaka.jpg?s=8ecc5e5b5028eaaab470f7be30444e6f&fit=crop"><noscript><img class="card__image " alt="Manuela makuuhuoneessa." src="https://kotiliesi.fi/awpo/img/2025/06/manuelabosco_hr_kaisu_kaplin_b8a2186-1_-vaaka.jpg?s=8ecc5e5b5028eaaab470f7be30444e6f&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<span class="card__subscriber-tag card__meta">
<i class="om-icon om-icon-subscriber" aria-hidden="true" data-role="icon"></i> Tilaajille
</span>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/manuela-boscon-ja-tuure-kilpelaisen-koti-helsingissa/" class="card__link-overlay">
Manuela Bosco ja Tuure Kilpeläinen löysivät unelmiensa kodin pitkän etsinnän jälkeen: ”Tämä annettiin syliimme valmiiksi räätälöitynä” </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Lotta olohuoneessa." data-src="https://kotiliesi.fi/awpo/img/2025/06/cy5a6908-1.jpg?s=00b6d03c4231d6035480135a3cd36dd9&fit=crop"><noscript><img class="card__image " alt="Lotta olohuoneessa." src="https://kotiliesi.fi/awpo/img/2025/06/cy5a6908-1.jpg?s=00b6d03c4231d6035480135a3cd36dd9&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<span class="card__subscriber-tag card__meta">
<i class="om-icon om-icon-subscriber" aria-hidden="true" data-role="icon"></i> Tilaajille
</span>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/lotan-kasvikoti/" class="card__link-overlay">
Lotan kotona kasvit eivät ole kaikista tavallisimpia: ”Pölyjen puhdistaminen kerran vuodessa riittää” </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Olohuone." data-src="https://kotiliesi.fi/awpo/img/2025/06/olohuone.jpg?s=8d712454b043c56b8da8e47c8de2265a&fit=crop"><noscript><img class="card__image " alt="Olohuone." src="https://kotiliesi.fi/awpo/img/2025/06/olohuone.jpg?s=8d712454b043c56b8da8e47c8de2265a&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<span class="card__subscriber-tag card__meta">
<i class="om-icon om-icon-subscriber" aria-hidden="true" data-role="icon"></i> Tilaajille
</span>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/helenan-kotoa-loytyy-peilisali/" class="card__link-overlay">
Helenan kotoa löytyy oma ”peilisali” – keittiössäkin peilejä on kiinnitetty yllättävällä tavalla </a>
</h3>
</div>
</article>
</li>
<li>
<article class="card article-card">
<figure class="card__image-wrapper">
<img class="card__image awpo-lazy" alt="Voinkeltaisia tuotteita." data-src="https://kotiliesi.fi/awpo/img/2025/06/minitrendi_voinkeltaista.jpg?s=b9774e667c1fb025d263eef9d656267e&fit=crop"><noscript><img class="card__image " alt="Voinkeltaisia tuotteita." src="https://kotiliesi.fi/awpo/img/2025/06/minitrendi_voinkeltaista.jpg?s=b9774e667c1fb025d263eef9d656267e&fit=crop"></noscript>
</figure>
<div class="card__content-wrapper">
<a href="https://kotiliesi.fi/kategoria/koti/sisustus/" class="card__vignette card__meta">
Sisustus</a>
<h3 class="card__title">
<a href="https://kotiliesi.fi/koti/sisustus/voinkeltainen-sisustuksessa/" class="card__link-overlay">
Voinkeltainen on sisustuksen yllättävä trendiväri – näin suosittua sävyä kotiisi </a>
</h3>
</div>
</article>
</li>
</ul>
</div>
<div id="dynamic-archive-list" class="article-card-grid is-style-standard"></div>
<script>
window.omPreactComponents.renderComponent(
"#dynamic-archive-list",
"LoadMore",
{"cache":{"responseId":"5a4ba66496c1cf15241e54497c7fe4b4"},"api":{"baseUrl":"\/wp-json\/om\/v2","path":"posts\/new","perPage":15,"startPage":2,"tag":18351,"post_type":["post","resepti"]},"template":{"templateName":"Card","preset":"KotiliesiCard","showDate":false,"showSubscriberTag":true,"classes":{"article":"preact-card article-card"},"commercialText":"Mainos","vignetteType":"category","defaultImage":{"url":"https:\/\/kotiliesi.fi\/wp-content\/themes\/om-kotiliesi-theme\/assets\/images\/placeholder.svg","alt":""}}} );
</script>
<div id="archive-blocks">
</div>
</div>
</main>
<footer id="footer" class="site-footer" role="contentinfo">
<div class="magazine-footer magazine-footer--deko">
<div class="magazine-footer__content">
<div class="magazine-footer__section">
<div class="magazine-footer__magazine-cover magazine-footer__magazine-cover--deko">
<a href="https://tilaus.dekolehti.fi/tilaus?promoID=OM_tilaa-painike&promoName=OM_DE&promoCreative=onlinetarjous&promoPosition=brandipalkki">
<span class="screen-reader-text">Tilaa Deko-lehti</span>
<img width="213" height="270" alt="Deko kansikuva" data-srcset="https://mediapankki.otavamedia.fi/api/v1/covers/Deko/latest.jpg?maxWidth=426&maxHeight=540 2x, https://mediapankki.otavamedia.fi/api/v1/covers/Deko/latest.jpg?maxWidth=639&maxHeight=810 3x" data-src="https://mediapankki.otavamedia.fi/api/v1/covers/Deko/latest.jpg?maxWidth=213&maxHeight=270" class="awpo-lazy"><noscript><img srcset="https://mediapankki.otavamedia.fi/api/v1/covers/Deko/latest.jpg?maxWidth=426&maxHeight=540 2x, https://mediapankki.otavamedia.fi/api/v1/covers/Deko/latest.jpg?maxWidth=639&maxHeight=810 3x" src="https://mediapankki.otavamedia.fi/api/v1/covers/Deko/latest.jpg?maxWidth=213&maxHeight=270" width="213" height="270" alt="Deko kansikuva"></noscript> </a>
</div>
</div>
<div class="magazine-footer__section">
<div class="magazine-footer__logo magazine-footer__logo--deko">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 538 203"><path fill="currentColor" d="M20.7 14.2c-1.2 0-2.2.3-3 .8-.8.6-1.2 1.2-1.2 2 0 1.4 1.5 2.5 4.5 3.4 1.7.5 3.1 1 4.2 1.5 2.6 1.3 4.4 2.6 5.5 4.1 1 1.5 1.6 3.5 1.6 5.9v138.7c0 2.4-.6 4.4-1.9 6a13.9 13.9 0 0 1-6 4c-1.3.4-3 1-5.2 1.5-3 .9-4.6 2-4.6 3.1 0 1 .5 1.7 1.4 2.2.8.5 2 .7 3.5.7h54c9.5 0 18.8-1 28-3.2a123.9 123.9 0 0 0 26.3-9.2 77.5 77.5 0 0 0 31-27.4A69.3 69.3 0 0 0 170 110c0-12.7-3.3-25.3-10-37.7a100.7 100.7 0 0 0-27.5-32.3 113.9 113.9 0 0 0-40.2-19.3 210.6 210.6 0 0 0-54.9-6.4H20.7zm38.5 9c1-.8 2.7-1.3 5-1.3 22.6 0 41 8 55.1 24.2 14.1 16.1 21.1 37.5 21.1 64 0 23.8-6.1 41.7-18.4 53.9-12.3 12.2-30.5 18.3-54.4 18.3-4.1 0-6.8-.4-8-1-1.3-.8-2-2.7-2-5.9V27.5c0-2 .6-3.4 1.6-4.3zm151.3 105.1h-1.3c-1.4 0-2.5-.5-3-1.6-.5-1-.8-3.3-.8-6.6 0-9.5 2.4-17.3 7.1-23.4 4.8-6.1 11-9.2 18.4-9.2 6.9 0 13 3.3 18.5 9.8a33.4 33.4 0 0 1 8.2 22c0 .7-.3 1.2-1 1.8a4.4 4.4 0 0 1-2.1 1.1l-44 6.1zm71-3.3c.4-.6.7-1.4.7-2.5 0-4.7-1.5-9.6-4.4-14.8a52.1 52.1 0 0 0-27.2-22.9C245 83 239.2 82 232.9 82a47.4 47.4 0 0 0-36 14.5 53.2 53.2 0 0 0-13.9 38.2 55 55 0 0 0 16 40.7 55.7 55.7 0 0 0 59.4 11.8 62.1 62.1 0 0 0 22-18.4 9.3 9.3 0 0 0 1.8-4.3c0-.7-.3-1.2-.8-1.7-.5-.4-1.2-.7-2-.7-1 0-2.9 1.8-5.9 5.3-3 3.5-5.8 6.3-8.6 8.3a36.2 36.2 0 0 1-19.4 5.8c-7.5 0-14.2-2-20-6.2a41 41 0 0 1-13.8-17.8 63.4 63.4 0 0 1-3.5-10 34 34 0 0 1-1.3-8.2c0-1.3.3-2.2 1-2.8.5-.6 1.8-1 3.8-1.3L279 126c1-.1 1.9-.5 2.4-1zm46 17.7V14.5c0-1.1-.1-1.9-.4-2.3-.3-.5-.8-.7-1.6-.7-.4 0-.8.1-1.3.5l-.5.2-27.2 11.5A7 7 0 0 0 294 25c-.3.4-.5 1-.5 1.8 0 1.1 1.4 2 4.3 2.8 2.2.5 3.8 1 5 1.4a7 7 0 0 1 3.5 2.7 9 9 0 0 1 1 4.8v132c0 2.4-.4 4.3-1.3 5.7-1 1.5-2.8 3-5.3 4.3l-3.4 1.4c-3 1-4.6 2.3-4.7 3.7 0 .8.5 1.4 1.2 1.8.8.5 1.7.7 2.9.7h40.5c1.1 0 2-.2 2.6-.7.6-.4 1-1.2 1-2.2 0-.8-2.2-2.3-6.6-4.6-4.5-2.3-6.7-5.6-6.7-10v-20.4l29-25.7 20.6 47.8.9 2c.2.5.2 1 .2 1.4 0 2.5-1.8 4.5-5.4 5.9-3.7 1.3-5.5 2.7-5.5 4 0 .8.3 1.5.9 1.9.6.4 1.5.6 2.8.6h41.3c1 0 2-.2 2.5-.7.7-.4 1-1.2 1.1-2.2 0-.7-2.5-2.4-7.5-5a22 22 0 0 1-10.4-10.7l-26-58.8 13-11a44 44 0 0 1 13.6-8c4.9-1.7 7.4-3.3 7.4-4.6 0-.6-.3-1.1-1-1.5-.5-.4-1.3-.5-2.4-.5h-32c-1.5 0-2.5.1-3.2.5-.6.4-1 1-1 2 0 1.1 1.7 2.5 5 4s5 3 5 4.6c0 1.3-.3 2.4-.9 3.5-.6 1-1.7 2.3-3.5 3.9l-44.5 39.1zm147.9-50c4.5 2.7 8.8 6.4 12.7 11.1A86 86 0 0 1 502 128a74 74 0 0 1 4.8 26c0 9.3-2.2 16.6-6.6 22-4.4 5.3-10.5 8-18.2 8-7 0-13.3-2.1-19-6.5-5.8-4.3-11-11-16-20-3-5.4-5.3-11.6-7-18.4a79.5 79.5 0 0 1-2.6-19.7 34 34 0 0 1 6.8-22.3 22.4 22.4 0 0 1 18.1-8.3 26 26 0 0 1 13 4zM433 97.2a52.1 52.1 0 0 0-15.2 38.6c0 16.2 5.1 29.5 15.3 40a52.4 52.4 0 0 0 39.2 15.5c15.8 0 29-4.8 39.6-14.5a47 47 0 0 0 15.8-36.2 55 55 0 0 0-4-20.2c-2.6-6.8-6.5-13-11.5-19A56 56 0 0 0 493.8 87c-7-3.4-14.2-5-21.8-5-15.9 0-28.9 5-39 15z"></path></svg> </div>
<ul class="magazine-footer__list">
<li class="magazine-footer__list-item">
<a class="button button--primary" href="https://tilaus.dekolehti.fi/tilaus?promoID=OM_tilaa-painike&promoName=OM_DE&promoCreative=onlinetarjous&promoPosition=brandipalkki">Tilaa</a>
</li>
<li class="magazine-footer__list-item">
<a class="magazine-footer__link" href="/toimituksen-yhteystiedot?referer=https://kotiliesi.fi/avainsana/deko#palaute">
Anna palautetta
</a>
</li>
<li class="magazine-footer__list-item">
<a class="magazine-footer__link" href="https://www.minunmedia.fi/login?kotiliesi">Lukijapaneeli</a>
</li>
<li class="magazine-footer__list-item">
<a class="magazine-footer__link" href="https://etuasiakaskauppa.fi/?utm_source=kotiliesi.fi&utm_medium=link&utm_campaign=EAShop_kofi&utm_content=footer">
Etuasiakaskauppa
</a>
</li>
</ul>
</div>
<div class="magazine-footer__section">
<p class="magazine-footer__paragraph">Seuraa meitä</p>
<div class="social-media-icons social-media-icons--has-icon-background">
<a class="social-media-icons__link" href="https://www.facebook.com/dekolehti/" title="Facebookissa">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 27.89 27.72"><path d="M27.89 13.94a13.95 13.95 0 1 0-16.12 13.78v-9.74H8.22v-4.04h3.55v-3.07c0-3.5 2.08-5.42 5.26-5.42a21.46 21.46 0 0 1 3.13.27v3.43H18.4a2.02 2.02 0 0 0-2.28 2.18v2.62H20l-.62 4.03h-3.25v9.74A13.95 13.95 0 0 0 27.9 13.94Z" fill="#3b5998"></path></svg> <span class="screen-reader-text">Seuraa Deko-lehteä Facebookissa</span>
</a>
<a class="social-media-icons__link" href="https://fi.pinterest.com/dekomagazine/" title="Pinterestissä">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 27.89 27.89"><path d="M27.9 13.94A13.95 13.95 0 0 1 9.81 27.27a15.68 15.68 0 0 0 1.73-3.66l.87-3.32a3.73 3.73 0 0 0 3.19 1.6c4.2 0 7.24-3.87 7.24-8.67 0-4.6-3.77-8.05-8.6-8.05-6.02 0-9.22 4.03-9.22 8.44 0 2.04 1.1 4.59 2.83 5.4.26.12.4.06.47-.2l.38-1.57a.42.42 0 0 0-.1-.4 5.5 5.5 0 0 1-1.03-3.18 6.04 6.04 0 0 1 6.3-6.05 5.5 5.5 0 0 1 5.83 5.67c0 3.77-1.9 6.39-4.39 6.39a2.02 2.02 0 0 1-2.06-2.52c.4-1.66 1.15-3.45 1.15-4.65a1.75 1.75 0 0 0-1.76-1.96c-1.4 0-2.53 1.45-2.53 3.39a5.03 5.03 0 0 0 .42 2.07s-1.37 5.84-1.63 6.93a13.5 13.5 0 0 0-.05 4A13.95 13.95 0 1 1 27.9 13.94Z" fill="#e60023"></path></svg> <span class="screen-reader-text">Seuraa Deko-lehteä Pinterestissä</span>
</a>
<a class="social-media-icons__link" href="https://www.instagram.com/dekolehti/" title="Instagramissa">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 132 132">
<defs>
<radialgradient id="c" cx="158.43" cy="578.09" r="65" xlink:href="#a" gradientunits="userSpaceOnUse" gradienttransform="matrix(0 -1.98198 1.8439 0 -1031.4 454)" fx="158.43" fy="578.09"></radialgradient>
<radialgradient id="d" cx="147.69" cy="473.45" r="65" xlink:href="#b" gradientunits="userSpaceOnUse" gradienttransform="matrix(.17394 .86872 -3.5818 .71718 1648.35 -458.5)" fx="147.69" fy="473.45"></radialgradient>
<lineargradient id="b">
<stop offset="0" stop-color="#3771c8"></stop>
<stop stop-color="#3771c8" offset=".13"></stop>
<stop offset="1" stop-color="#60f" stop-opacity="0"></stop>
</lineargradient>
<lineargradient id="a">
<stop offset="0" stop-color="#fd5"></stop>
<stop offset=".1" stop-color="#fd5"></stop>
<stop offset=".5" stop-color="#ff543e"></stop>
<stop offset="1" stop-color="#c837ab"></stop>
</lineargradient>
</defs>
<path fill="url(#c)" d="M65.03 0C37.89 0 29.95.03 28.41.16c-5.57.46-9.04 1.34-12.82 3.22a25.95 25.95 0 0 0-7.47 5.46C4 13.13 1.5 18.4.6 24.66.14 27.7.02 28.32 0 43.84v21.13c0 27.12.03 35.05.16 36.59.45 5.42 1.3 8.83 3.1 12.56a27.39 27.39 0 0 0 17.75 14.5c2.68.69 5.64 1.07 9.44 1.25 1.61.07 18.02.12 34.44.12 16.42 0 32.84-.02 34.41-.1 4.4-.2 6.96-.55 9.78-1.28a27.22 27.22 0 0 0 17.75-14.53c1.77-3.64 2.66-7.18 3.07-12.32.08-1.12.12-18.98.12-36.8 0-17.84-.04-35.67-.13-36.79-.4-5.22-1.3-8.73-3.12-12.44a25.77 25.77 0 0 0-5.57-7.62C116.9 4 111.64 1.5 105.37.6 102.33.16 101.73.03 86.2 0H65.03z" transform="translate(1 1)"></path>
<path fill="url(#d)" d="M65.03 0C37.89 0 29.95.03 28.41.16c-5.57.46-9.04 1.34-12.82 3.22a25.95 25.95 0 0 0-7.47 5.46C4 13.13 1.5 18.4.6 24.66.14 27.7.02 28.32 0 43.84v21.13c0 27.12.03 35.05.16 36.59.45 5.42 1.3 8.83 3.1 12.56a27.39 27.39 0 0 0 17.75 14.5c2.68.69 5.64 1.07 9.44 1.25 1.61.07 18.02.12 34.44.12 16.42 0 32.84-.02 34.41-.1 4.4-.2 6.96-.55 9.78-1.28a27.22 27.22 0 0 0 17.75-14.53c1.77-3.64 2.66-7.18 3.07-12.32.08-1.12.12-18.98.12-36.8 0-17.84-.04-35.67-.13-36.79-.4-5.22-1.3-8.73-3.12-12.44a25.77 25.77 0 0 0-5.57-7.62C116.9 4 111.64 1.5 105.37.6 102.33.16 101.73.03 86.2 0H65.03z" transform="translate(1 1)"></path>
<path fill="#fff" d="M66 18c-13.03 0-14.67.06-19.79.29-5.1.23-8.6 1.04-11.65 2.23a23.5 23.5 0 0 0-8.5 5.54 23.56 23.56 0 0 0-5.54 8.5c-1.2 3.05-2 6.54-2.23 11.65C18.06 51.33 18 52.96 18 66s.06 14.67.29 19.79c.23 5.1 1.04 8.6 2.23 11.65a23.52 23.52 0 0 0 5.54 8.5 23.5 23.5 0 0 0 8.5 5.54c3.05 1.19 6.54 2 11.65 2.23 5.12.23 6.75.29 19.79.29 13.03 0 14.67-.06 19.79-.29 5.1-.23 8.6-1.04 11.65-2.23a23.48 23.48 0 0 0 8.5-5.54 23.56 23.56 0 0 0 5.54-8.5c1.18-3.05 1.99-6.54 2.23-11.65.23-5.12.29-6.75.29-19.79s-.06-14.67-.3-19.8c-.23-5.1-1.04-8.59-2.22-11.64a23.56 23.56 0 0 0-5.54-8.5 23.46 23.46 0 0 0-8.5-5.54c-3.06-1.19-6.55-2-11.66-2.23-5.12-.23-6.75-.29-19.8-.29zm-4.3 8.65H66c12.82 0 14.34.05 19.4.28 4.68.21 7.22 1 8.91 1.65 2.24.87 3.84 1.9 5.52 3.59a14.9 14.9 0 0 1 3.59 5.52c.66 1.69 1.44 4.23 1.65 8.9.23 5.07.28 6.59.28 19.4s-.05 14.33-.28 19.39c-.21 4.68-1 7.22-1.65 8.9a14.84 14.84 0 0 1-3.6 5.52 14.84 14.84 0 0 1-5.5 3.6c-1.7.65-4.24 1.43-8.92 1.65-5.06.23-6.58.28-19.4.28-12.81 0-14.33-.05-19.4-.28-4.67-.22-7.21-1-8.9-1.66a14.87 14.87 0 0 1-5.52-3.59 14.88 14.88 0 0 1-3.6-5.52c-.65-1.69-1.44-4.23-1.65-8.9-.23-5.07-.28-6.59-.28-19.4s.05-14.33.28-19.4c.21-4.67 1-7.21 1.65-8.9a14.87 14.87 0 0 1 3.6-5.53 14.9 14.9 0 0 1 5.52-3.59c1.69-.66 4.23-1.44 8.9-1.65 4.44-.2 6.15-.26 15.1-.27zm29.93 7.97a5.76 5.76 0 1 0 0 11.52 5.76 5.76 0 0 0 0-11.52zM66 41.35a24.65 24.65 0 1 0 0 49.3 24.65 24.65 0 0 0 0-49.3zM66 50a16 16 0 1 1 0 32 16 16 0 0 1 0-32z"></path>
</svg> <span class="screen-reader-text">Seuraa Deko-lehteä Instagramissa</span>
</a>
</div>
</div>
</div>
</div>
<div class="om-footer">
<div class="om-footer__columns">
<div class="om-footer__columns-inner">
<div class="om-footer__column">
<h2 class="om-footer__column-title">
Asiakaspalvelu </h2>
<div class="om-footer__column-content">
<p class="om-footer__paragraph">Digipalvelu <a class="om-footer__link" href="tel:09156%206227">(09) 156 6227</a><br>
Avoinna ma–pe 8–19</p>
<p class="om-footer__paragraph">Painettu lehti <a class="om-footer__link" href="tel:09156665">(09) 156 665</a><br>
Avoinna ma–pe 8–19</p>
<p class="om-footer__paragraph">Otavamedian vaihde <a class="om-footer__link" href="tel:0915661">(09) 156 61</a></p>
<h3 class="om-footer__column-title">SÄHKÖPOSTI</h3>
<address class="om-footer__address"><a class="om-footer__link" href="mailto:digi@otavamedia.fi">digi@otavamedia.fi</a><br>
<a class="om-footer__link" href="mailto:asiakaspalvelu@otavamedia.fi">asiakaspalvelu@otavamedia.fi</a></address>
</div>
</div>
<div class="om-footer__column">
<h2 class="om-footer__column-title">
Postiosoite </h2>
<div class="om-footer__column-content">
<address class="om-footer__address">Uudenmaankatu 10<br>
00015 OTAVAMEDIA</address>
<address> </address>
<ul class="om-footer__list">
<li class="om-footer__list-item"><a class="om-footer__link oba-link" href="https://otavamedia.fi/evasteiden-kaytto/" rel="nofollow help">Tietoa evästeiden käytöstä</a></li>
<li class="om-footer__list-item"><a class="om-footer__link oba-link" href="https://www.youronlinechoices.com/fi/" rel="nofollow help">Käyttäytymiseen perustuva mainonta</a></li>
<li class="om-footer__list-item"><a class="om-footer__link oba-link" href="/usein-kysytyt-kysymykset/" rel="nofollow">Tietoa verkkopalvelun käytöstä</a></li>
<li class="om-footer__list-item"><a class="manageSettings om-footer__link oba-link" href="#">Evästeasetukset</a></li>
</ul>
</div>
</div>
<div class="om-footer__column">
<h2 class="om-footer__column-title">
Mediatiedot </h2>
<div class="om-footer__column-content">
<ul class="om-footer__list">
<li class="om-footer__list-item"><a class="om-footer__link" href="https://yrityksille.otavamedia.fi/tekniset-tiedot-ja-hinnat/" rel="nofollow help">Tekniset tiedot, aikataulut ja ilmoitushinnat</a></li>
<li class="om-footer__list-item"><a class="om-footer__link" href="https://yrityksille.otavamedia.fi/reaaliaikainen-kayttajatieto/" rel="nofollow help">Tietoa verkon kävijöistä</a></li>
<li class="om-footer__list-item"><a class="om-footer__link" href="https://otavamedia.fi/tietosuoja/" rel="nofollow help">Tietosuojaseloste</a></li>
<li class="om-footer__list-item"><a class="om-footer__link" href="https://otavamedia.fi/tilaus-ja-kayttoehdot/" rel="nofollow help">Käyttöehdot</a></li>
</ul>
</div>
<h2 class="om-footer__column-title">
Tuotteet </h2>
<div class="om-footer__column-content">
<ul class="om-footer__list">
<li class="om-footer__list-item"><a class="om-footer__link" href="https://otavamedia.fi/tuotteet-ja-edut/" rel="nofollow">Aikakauslehdet</a></li>
<li class="om-footer__list-item"><a class="om-footer__link" href="https://otavamedia.fi/tuotteet-ja-edut/verkkopalvelut" rel="nofollow">Verkkopalvelut</a></li>
<li class="om-footer__list-item"><a class="om-footer__link" href="https://otavamedia.fi/tuotteet-ja-edut/digilehdet" rel="nofollow">Digilehdet</a></li>
</ul>
</div>
</div>
<div class="om-footer__column">
<h2 class="om-footer__column-title">
Ota yhteyttä </h2>
<div class="om-footer__column-content">
<ul class="om-footer__list">
<li class="om-footer__list-item"><a class="om-footer__link" href="/toimituksen-yhteystiedot/">Toimitus</a></li>
</ul>
<p class="om-footer__paragraph">Vastaava päätoimittaja<br>
<a class="om-footer__link" href="mailto:saija.hakoniemi@otava.fi">saija.hakoniemi@otava.fi</a></p>
<p class="om-footer__paragraph">Sähköpostiosoitteet<br>
etunimi.sukunimi@otava.fi</p>
</div>
</div>
</div>
</div>
<div class="om-footer__logo">
<img width="150" height="65" src="https://kotiliesi.fi/awpo/img/2024/02/otavamedia_logo_valkoinen-150x65.png?w=100&h=43&blur=30&s=aba1ff24e3eba03e8bf406e3a80143ff" class="attachment-thumbnail size-thumbnail awpo-lqip awpo-lazy" alt="" decoding="async" data-src="https://kotiliesi.fi/awpo/img/2024/02/otavamedia_logo_valkoinen-150x65.png?s=aba1ff24e3eba03e8bf406e3a80143ff"><noscript><img width="150" height="65" src="https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-150x65.png" class="attachment-thumbnail size-thumbnail" alt="" decoding="async" loading="lazy" srcset="https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-150x65.png 150w, https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-796x346.png 796w, https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-1180x512.png 1180w, https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-768x334.png 768w, https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-1536x667.png 1536w, https://kotiliesi.fi/wp-content/uploads/2024/02/otavamedia_logo_valkoinen-2048x889.png 2048w" sizes="(max-width: 150px) 100vw, 150px"></noscript> </div>
</div>
</footer>
<div class="brand-footer"><div class="brand-footer__columns"><div class="brand-footer__columns-inner"><div class="brand-footer__column"><div class="brand-footer__column-logo"><a href="https://anna.fi" target="_blank" aria-label="Anna"><svg xmlns="http://www.w3.org/2000/svg" width="128.99" height="33" viewbox="0 0 128.99 33">
<path id="logo_Anna" d="M26.85,33.32h2c.78-3.53,2.54-6.15,6.57-6.15,4.31,0,5.86,3.32,5.86,12.5a11.37,11.37,0,0,0-3.89-.42c-5,0-11.87,2-11.87,8.76,0,5.58,4.1,8.48,7.77,8.48,3.39,0,6.29-1.84,7.06-4.45v-1a3,3,0,0,1-2,.64c-2.47,0-4.1-2-4.1-5.3s2.26-5.58,4.87-5.58a4.56,4.56,0,0,1,2.19.35c0,4,0,7.28-.14,14.62H53.55V54.52H50.44s.21-9.68.21-18.86c0-8-3.53-12.15-10.95-12.15-7.21,0-10.31,3.39-11.44,7.13V24.21H26.85ZM74,55.79H89.15V54.52H86s.21-10.6.21-19.29S83,23.51,77.07,23.51a10.12,10.12,0,0,0-9.54,7.06V24.21H55.17v1.27h3.32v29H56.23v1.27h15V54.52H67.54V36.29c0-4.94,1.48-8.05,5-8.05s4.31,2.4,4.31,8.05c0,6.71,0,11.73-.14,18.23H74Zm35.39,0h15.12V54.52H121.4s.21-10.6.21-19.29-3.25-11.73-9.18-11.73a10.12,10.12,0,0,0-9.54,7.06V24.21H90.56v1.27h3.32v29H91.62v1.27h15V54.52h-3.67V36.29c0-4.94,1.48-8.05,5-8.05s4.31,2.4,4.31,8.05c0,6.71,0,11.73-.14,18.23h-2.68v1.27Zm18.37-22.46h2c.78-3.53,2.54-6.15,6.57-6.15,4.31,0,5.86,3.32,5.86,12.5a11.37,11.37,0,0,0-3.89-.42c-5,0-11.87,2-11.87,8.76,0,5.58,4.1,8.48,7.77,8.48,3.39,0,6.29-1.84,7.06-4.45v-1a3,3,0,0,1-2,.64c-2.47,0-4.1-2-4.1-5.3s2.26-5.58,4.87-5.58a4.56,4.56,0,0,1,2.19.35c0,4,0,7.28-.14,14.62h12.43V54.52H151.4s.21-9.68.21-18.86c0-8-3.53-12.15-10.95-12.15-7.21,0-10.31,3.39-11.44,7.13V24.21h-1.41v9.11Z" transform="translate(-25.52 -23.5)"></path>
</svg></a></div><div class="brand-footer__column-links"><a href="https://anna.fi/kategoria/ihmiset" target="_blank" class="brand-footer__column-link">Ihmiset</a><a href="https://anna.fi/kategoria/hyvinvointi" target="_blank" class="brand-footer__column-link">Hyvinvointi</a><a href="https://anna.fi/kategoria/ruoka" target="_blank" class="brand-footer__column-link">Ruoka</a><a href="https://anna.fi/kategoria/lifestyle" target="_blank" class="brand-footer__column-link">Lifestyle</a><a href="https://anna.fi/kategoria/horoskoopit" target="_blank" class="brand-footer__column-link">Horoskoopit</a><a href="https://anna.fi/keidas" target="_blank" class="brand-footer__column-link">Keidas</a><a href="https://anna.fi/reseptihaku" target="_blank" class="brand-footer__column-link">Reseptit</a></div></div><div class="brand-footer__column"><div class="brand-footer__column-logo"><a href="https://seura.fi" target="_blank" aria-label="Seura"><svg id="logo_seura" xmlns="http://www.w3.org/2000/svg" width="163.855" height="33" viewbox="0 0 163.855 33">
<path id="Path_18" data-name="Path 18" d="M26.484,55.684a7.175,7.175,0,0,1-.889,2.657H20V48.334h6.718c.7,3.371,3.511,4.682,6.952,4.682,3.757,0,5.536-1.428,5.536-3.324,0-3.066-2.914-2.809-8.637-3.839-6.578-1.17-10.416-3.406-10.416-10.182,0-6.519,5.384-9.574,11.271-9.749,2.7-.082,6.484.585,8.076,2.961a7.315,7.315,0,0,1,.936-2.341h5.77v9.234H39.3c-.8-2.341-2.54-3.792-5.957-3.792-3.148,0-4.834,1.252-4.834,3.1,0,3.066,2.914,2.891,9.363,3.886s10.182,3.663,10.182,9.972c0,5.571-4.178,10-12.348,9.972C32.032,58.856,28.357,58.317,26.484,55.684Z" transform="translate(-20 -25.914)"></path>
<path id="Path_19" data-name="Path 19" d="M56.455,32.048V31.72H66.743l.07.246L68.3,37.993h5.735V26.43H44.33v5.29h3.09v21.09H44.33v5.267h29.7V45.894H68.3l-1.58,6.648-.059.269H56.455V45.5h6.25V38.883h-6.25V32.048Z" transform="translate(-15.854 -25.826)"></path>
<path id="Path_20" data-name="Path 20" d="M71.09,26.43H86.949v5.278h-3.16V44.9c0,3.687.843,5.981,4.974,5.981s5.115-2.341,5.068-5.981V31.72H90.554V26.43h15.215v5.278h-2.645V45.028c0,10.241-4.4,13.67-14.372,13.67s-14.372-3.511-14.372-13.05V31.72H71.09Z" transform="translate(-11.295 -25.826)"></path>
<path id="Path_21" data-name="Path 21" d="M134.708,58.091V52.836h-2.692V45.813c0-2.341-2.072-2.727-4.061-3.137l-1.065-.234-1.5-.375,1.521-.281c4.155-.737,6.016-2.984,6.016-7.3,0-3.055-.784-5.056-2.481-6.308s-4.237-1.685-8.193-1.685h-20.4v5.255h2.622v21.09H101.2v5.29h15.554v-5.29h-3.265V45.146h5.77c3.265,0,3.71,2.516,3.71,4.962v7.982Zm-15.168-19.3h-5.7V31.768h5.712a3.522,3.522,0,1,1-.012,7.022Z" transform="translate(-6.164 -25.816)"></path>
<path id="Path_22" data-name="Path 22" d="M163.552,52.846h1.767v5.29H149.765v-5.29h3.956l-.152-.445-1.7-4.81-.082-.222H141.643l-.082.222-1.709,4.8-.152.468h4v5.29H128.78v-5.3h1.931l.094-.234,7.526-20.377.152-.445h-3.675V26.43h24.66v5.349h-3.7l.152.445L163.178,52.6l.082.246ZM146.71,32.2l-2.984,10.112h6.121L146.8,32.2Z" transform="translate(-1.465 -25.826)"></path>
</svg></a></div><div class="brand-footer__column-links"><a href="https://seura.fi/kategoria/asiat/" target="_blank" class="brand-footer__column-link">Asiat</a><a href="https://seura.fi/kategoria/ilmiot/" target="_blank" class="brand-footer__column-link">Ilmiöt</a><a href="https://seura.fi/kategoria/viihde/" target="_blank" class="brand-footer__column-link">Henkilöt & viihde</a><a href="https://seura.fi/kategoria/terveys/" target="_blank" class="brand-footer__column-link">Terveys</a><a href="https://seura.fi/kategoria/horoskoopit/" target="_blank" class="brand-footer__column-link">Horoskoopit</a><a href="https://seura.fi/kategoria/tv/" target="_blank" class="brand-footer__column-link">Tv-Maailma</a><a href="https://seura.fi/blogit/" target="_blank" class="brand-footer__column-link">Kolumnit</a></div></div><div class="brand-footer__column"><div class="brand-footer__column-logo"><a href="https://kaksplus.fi" target="_blank" aria-label="Kaksplus"><svg id="logo_kaksplus" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="186.721" height="40.844" viewbox="0 0 186.721 40.844">
<defs>
<clippath id="clip-path">
<rect id="Rectangle_13" data-name="Rectangle 13" width="186.721" height="40.844" fill="none"></rect>
</clippath>
</defs>
<g id="Group_3" data-name="Group 3" clip-path="url(#clip-path)">
<path id="Path_23" data-name="Path 23" d="M28.17,32.364c-3.629,0-7.047.017-10.464-.031-.28,0-.65-.394-.816-.694-1.9-3.423-3.772-6.863-5.653-10.3-.157-.287-.328-.568-.543-.939-.994.988-1.911,1.811-1.829,3.417.142,2.809.04,5.631.04,8.506H0V.143H8.851V10.692c.354-.372.533-.532.68-.718,2.406-3.053,4.818-6.1,7.2-9.173A1.673,1.673,0,0,1,18.224.06c3.224.036,6.449.016,9.923.016-.423.5-.721.869-1.03,1.226-3.3,3.822-6.59,7.656-9.926,11.449a1.062,1.062,0,0,0-.094,1.521q5.233,8.473,10.419,16.976c.187.305.362.618.654,1.116" transform="translate(0 -0.048)" fill="#1a1818"></path>
<path id="Path_24" data-name="Path 24" d="M509.749,64.259V75.191h-8.27V43.309h8.27V45.8a2.5,2.5,0,0,0,.438-.218c6.1-5.279,15.609-2.443,17.892,6.273a12.552,12.552,0,0,1-4.739,13.428,10.585,10.585,0,0,1-12.483-.18c-.313-.232-.62-.472-1.108-.843m9.82-9.2a4.939,4.939,0,0,0-4.747-5.122c-2.857-.022-4.744,1.933-4.786,4.959a4.78,4.78,0,1,0,9.533.163" transform="translate(-401.3 -34.348)" fill="#1a1818"></path>
<path id="Path_25" data-name="Path 25" d="M263.565,32.613V.416h8.706V16.6l.205.067q1.524-1.874,3.048-3.749c.879-1.084,1.739-2.184,2.648-3.243a1.373,1.373,0,0,1,.881-.484c3.159-.025,6.318,0,9.478.013.05,0,.1.062.245.157-1.548,1.6-3.082,3.2-4.619,4.785-1.2,1.242-2.387,2.5-3.624,3.708a.946.946,0,0,0-.145,1.431c2.594,4.095,5.143,8.219,7.705,12.334.174.28.34.564.57.944-.319.034-.562.083-.8.083-2.661.005-5.322-.015-7.982.017a1.188,1.188,0,0,1-1.234-.739c-1.333-2.555-2.711-5.086-4.123-7.719-1.249,1.124-2.547,2.015-2.282,3.995a33.889,33.889,0,0,1,.037,4.412Z" transform="translate(-210.914 -0.333)" fill="#1a1818"></path>
<path id="Path_26" data-name="Path 26" d="M728.928,44.41V67.82h-8.472l-.353-2.205c-.269.2-.458.316-.624.461A9.472,9.472,0,0,1,710.154,68c-3.121-.87-4.626-3.163-5.16-6.2a17.2,17.2,0,0,1-.249-2.87c-.025-4.516-.012-9.032-.01-13.548,0-.292.031-.584.051-.93h9.139V45.5c0,3.653-.01,7.305.009,10.958a12.716,12.716,0,0,0,.2,2.273c.266,1.415.93,2.11,1.95,2.185a3,3,0,0,0,3.252-1.777,7.84,7.84,0,0,0,.394-2.431c.04-3.752.018-7.5.018-11.256V44.41Z" transform="translate(-563.949 -35.538)" fill="#1a1818"></path>
<path id="Path_27" data-name="Path 27" d="M138.112,43.21a20.146,20.146,0,0,1,14.6-1.935c3.738.881,6.015,3.6,6.422,7.593.235,2.3.2,4.637.225,6.958.034,2.982.008,5.964.008,9.009H151l-.288-2.082c-.5.4-.944.78-1.407,1.126-4.372,3.266-10.467,1.366-11.825-3.682-1.246-4.634,1.29-8.608,6.154-9.405a53.431,53.431,0,0,1,5.661-.343c.328-.018.656-.051.968-.076.559-1.354-.633-2.829-1.953-3.189a10.313,10.313,0,0,0-5.981.3c-.752.242-1.469.59-2.281.922l-1.933-5.194m12.4,11.57a34.771,34.771,0,0,0-4.5,1.01A1.986,1.986,0,0,0,145.281,59a3.215,3.215,0,0,0,3.778.367c.558-.342,1.247-.844,1.391-1.4a14.082,14.082,0,0,0,.062-3.193" transform="translate(-109.762 -32.561)" fill="#1a1818"></path>
<path id="Path_28" data-name="Path 28" d="M386.438,63.468l3.138-5.117a33.228,33.228,0,0,0,4.3,2.017,13.726,13.726,0,0,0,4,.446c.472,0,1.308-.557,1.331-.9a1.944,1.944,0,0,0-.879-1.473,18.677,18.677,0,0,0-2.854-1.123c-1.394-.523-2.831-.955-4.173-1.587-4.5-2.12-4.506-9.3-.268-11.734a13.358,13.358,0,0,1,7.4-1.587,14.87,14.87,0,0,1,8.237,2.876l-2.394,4.76c-1.8-.619-3.494-1.268-5.229-1.766a5.925,5.925,0,0,0-2.362-.115,1.544,1.544,0,0,0-1.052.867c-.1.278.263.884.583,1.1a11.693,11.693,0,0,0,2.136,1.028c1.691.678,3.455,1.2,5.085,2,5.54,2.717,4.144,8.85,1.161,11.347a9.266,9.266,0,0,1-5.817,2.258,19.339,19.339,0,0,1-11.106-2.465c-.392-.24-.766-.507-1.238-.821" transform="translate(-309.241 -33.921)" fill="#1a1818"></path>
<path id="Path_29" data-name="Path 29" d="M851.546,45.434l-2.588,5.119a15.275,15.275,0,0,0-6.294-2.076,4.248,4.248,0,0,0-1.567.127c-.88.277-1.066,1.132-.314,1.657a14.8,14.8,0,0,0,2.555,1.277c1.966.864,4.014,1.57,5.9,2.579a5.019,5.019,0,0,1,2.68,4.2,7.784,7.784,0,0,1-6.3,8.46,18.378,18.378,0,0,1-13.591-2.442,5.753,5.753,0,0,1-.485-.348,2.782,2.782,0,0,1-.262-.292l3.1-5.071c1.212.627,2.35,1.293,3.55,1.816a6.947,6.947,0,0,0,4.829.678c.485-.143,1.21-.565,1.236-.9a1.852,1.852,0,0,0-.8-1.418,15.875,15.875,0,0,0-2.655-1.079c-1.487-.559-3.028-1-4.458-1.679-4.522-2.142-4.542-9.479-.071-11.824a14.294,14.294,0,0,1,11.317-.708,36.36,36.36,0,0,1,4.222,1.931" transform="translate(-665.22 -34.147)" fill="#1a1818"></path>
<rect id="Rectangle_12" data-name="Rectangle 12" width="8.627" height="32.169" transform="translate(128.89 0)" fill="#1a1818"></rect>
</g>
</svg></a></div><div class="brand-footer__column-links"><a href="https://kaksplus.fi/kategoria/vauvahaaveet/" target="_blank" class="brand-footer__column-link">Vauvahaaveet</a><a href="https://kaksplus.fi/kategoria/raskaus/" target="_blank" class="brand-footer__column-link">Raskaus</a><a href="https://kaksplus.fi/kategoria/vauva/" target="_blank" class="brand-footer__column-link">Vauva</a><a href="https://kaksplus.fi/kategoria/lapsi/" target="_blank" class="brand-footer__column-link">Lapsi</a><a href="https://kaksplus.fi/kategoria/vanhemmuus/" target="_blank" class="brand-footer__column-link">Vanhemmuus</a><a href="https://kaksplus.fi/kategoria/perhe-elama/" target="_blank" class="brand-footer__column-link">Perhe-elämä</a><a href="https://keskustelu.kaksplus.fi/" target="_blank" class="brand-footer__column-link">Keskustelu</a></div></div></div></div></div>
<div class="user-session-modal" id="modal-user-info" tabindex="-1" role="dialog">
<article class="user-session-modal__wrapper">
<header class="user-session-modal__header">
<button type="button" class="user-session-modal__close-button" data-dismiss="modal">
<span class="icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor"><path d="M19 6.4 17.6 5 12 10.6 6.4 5 5 6.4l5.6 5.6L5 17.6 6.4 19l5.6-5.6 5.6 5.6 1.4-1.4-5.6-5.6L19 6.4z"></path></svg></span>
<span class="screen-reader-text">Sulje modaali</span>
</button>
</header>
<div class="user-session-modal__content" id="logout-form">
<section class="user-session-modal__section">
<div id="user-info__placeholder" class="user-info__placeholder"></div>
</section>
<section class="user-session-modal__section">
<div class="user-info">
<p class="user-info__label">
Sähköpostiosoite </p>
<p class="user-info__input">
</p>
</div>
<form method="POST" class="form edit-contact-form">
<input type="hidden" name="asauth" value="asauth">
<input type="hidden" name="action" value="edit_contact">
<div class="form__group">
<label for="login_displayname" class="edit-contact-form__label">Nimimerkki</label>
<input id="login_displayname" name="displayname" class="edit-contact-form__input" type="text" required autocomplete="off" value="">
<button type="submit" class="edit-contact-form__button button button--secondary">
Päivitä nimimerkki
</button>
</div>
</form>
<a href="https://kotiliesi.fi/wp-login.php?action=logout&_wpnonce=5eda5c895d&redirect_to=https%3A%2F%2Ftili.otavamedia.fi%2Fauth%2Fsession%2Fend%3Fpost_logout_redirect_uri%3Dhttps%3A%2F%2Fkotiliesi.fi%2Favainsana%2Fdeko%26client_id%3D34bcda2b-0334-41b4-8274-8760bb0c217f" class="user-session-modal__button button button--primary">
Kirjaudu ulos
</a>
</section>
</div>
</article>
</div>
<script>
function convert_to_url(obj) {
return Object
.keys(obj)
.map(k => `${encodeURIComponent(k)}=${encodeURIComponent(obj[k])}`)
.join('&');
}
function pass_to_backend() {
if(window.location.hash) {
var hash = window.location.hash;
var elements = {};
hash.split("#")[1].split("&").forEach(element => {
var vars = element.split("=");
elements[vars[0]] = vars[1];
});
if(("access_token" in elements) || ("id_token" in elements) || ("token" in elements)) {
if(window.location.href.indexOf("?") !== -1) {
window.location = (window.location.href.split("?")[0] + window.location.hash).split('#')[0] + "?" + convert_to_url(elements);
} else {
window.location = window.location.href.split('#')[0] + "?" + convert_to_url(elements);
}
}
}
}
pass_to_backend();
</script>
<script type="text/javascript">
jQuery( function() {
try {
AsteikkoAuth.init( "https:\/\/kotiliesi.fi\/" );
} catch( e ) {
if ( window.console && console.error )
console.error( e );
}
} );
</script> <div id="hion-ai-modal-container" data-ajax="https://kotiliesi.fi/wp-admin/admin-ajax.php">
<div id="hion-ai-backdrop"></div>
<div id="hion-ai-modal">
<div id="hion-ai-modal-header"><h2>Reseptihaku</h2>
<!-- Close Button remains unchanged -->
<button id="hion-ai-modal-close" class="close-btn">
<img alt="Sulje" data-src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/close-icon.svg" class="awpo-lazy"><noscript><img src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/close-icon.svg" alt="Sulje"></noscript>
</button>
</div>
<!-- Chat container -->
<div id="hion-ai-chat-content"></div>
<!-- Input row (only one send button now) -->
<div class="hion-ai-input-area">
<label class="hion-ai-label">
<img class="hion-ai-bubble-icon awpo-lazy" alt="Bubble" data-src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/bubble.svg"><noscript><img src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/bubble.svg" class="hion-ai-bubble-icon" alt="Bubble"></noscript>
<input type="text" id="hion-ai-input">
</label>
<!-- Single send button (icon-only) -->
<button id="hion-ai-send-btn" disabled aria-label="Send message">
<span class="button-content">
<img alt="" data-src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/submit.svg" class="awpo-lazy"><noscript><img src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/submit.svg" alt=""></noscript>
</span>
</button>
</div>
<!-- Results container -->
<div id="hion-ai-results-container"></div>
</div>
</div>
<script defer type="text/javascript" src="https://kotiliesi.fi/wp-content/cache/asauth/fi_blog1.js?ver=78" id="asteikko-auth-lang-fi-js"></script>
<script defer type="text/javascript" src="https://kotiliesi.fi/wp-content/plugins/om-asteikko-auth-wp-plugin/js/asteikko-auth.js?ver=1.5.9" id="asteikko-auth-js"></script>
<script defer type="text/javascript" src="https://kotiliesi.fi/wp-content/plugins/wp-optimizer/assets/dist/awpo.min.js?ver=1722410914" id="awpo-lazyload-js"></script>
<script defer type="text/javascript" src="https://kotiliesi.fi/wp-content/themes/om-kotiliesi-theme/dist/app.js?ver=1756903189" id="app-js"></script>
<script type="text/javascript" id="hion-ai-js-js-extra">
/* <![CDATA[ */
var hion_ai_search_params = {"class_trigger":"ai-reseptihaku-nappi","title":"Reseptihaku","placeholder":"Mit\u00e4 valmistaisin juustosta ja porkkanoista?","followup_placeholder":"Tarkenna kysymyst\u00e4si...","pluginUrl":"https:\/\/kotiliesi.fi\/wp-content\/plugins\/hion-ai-search\/","ajaxUrl":"https:\/\/kotiliesi.fi\/wp-admin\/admin-ajax.php","snippetLimit":"144","featuredImages":"1","preferExcerpts":"1","sortResultsByDate":"1"};
/* ]]> */
</script>
<script type="text/javascript" src="https://kotiliesi.fi/wp-content/plugins/hion-ai-search/assets/scripts.js?ver=1756902933" id="hion-ai-js-js"></script>
</body>
<!-- Body end tag start, do not remove -->
<!-- // kotiliesi.fi -->
<!--script src="https://storage.googleapis.com/digitiimi-cors-bucket/banger.js"></script-->
<script src="https://storage.googleapis.com/digitiimi-cors-bucket/clever_ads.js"></script>
<style>
.frosmo_inline::before {
display: none;
}
#dfp__interstitial {
position: fixed;
z-index: 1000000;
width: 1px;
height: 1px;
margin: 0px;
padding: 0px;
left: 0px;
top: 0px;
}
@media screen and (min-width: 900px) {
div[id*=dfp__desk] {
display: grid;
}
div[id*=dfp__desk] {
--dfp-min-width: 980px;
--dfp-min-height: 250px;
margin-top: 4rem;
margin-bottom: 4rem;
}
.jpx-fi-wrapper, .jpx-hi-wrapper {
max-width: 100% !important;
}
#dfp__desk-1-wallpaper {margin: 0 !important; padding: 0 !important; height: 0px !important; min-height: 0px !important}
#dfp__desk-1-wallpaper::before {display:none}
}
@media screen and (max-width: 900px) {
div[id*=dfp__mob] {
margin-top: 4rem;
margin-bottom: 4rem;
}
.mob-2-article-bbw {margin-bottom: 1rem !important}
#dfp__native-recipe-1_1 {margin-bottom: 20px}
}
@media screen and (max-width: 1140px) {
div[id*=dfp__mob] {
display: flex;
}
div[id*=dfp__mob-3] {
min-height: auto !important;
}
#dfp__topad-mob {
padding: 0px !important;
}
}
div[id*='dfp__native'] {
min-height: auto !important;
}
div[id*=dfp__native-text] {
margin: 3rem auto !important;
min-height: auto !important;
}
div[id*=dfp__native-text] > div {
max-width: min(100vw - 40px, 600px) !important;
}
article.single > [id*=dfp__mob][data-google-query-id]:not(:empty),
article.recipe [id*=dfp__mob][data-google-query-id]:not(:empty),
article.single > #bbwvideo_new > [id*=dfp__mob][data-google-query-id]:not(:empty) {
clear: both;
position: relative;
margin-top: 5rem;
margin-bottom: 5rem;
padding: 2rem 0rem;
border-top-width: 1px;
border-top-style: solid;
border-top-color: rgb(235, 235, 235);
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: rgb(235, 235, 235);
}
article.recipe [id*=dfp__mob-2][data-google-query-id]:not(:empty) {
margin: 1rem 0 2rem;
}
article.single > [id*=dfp__mob][data-google-query-id]:not(:empty) > div::before,
article.recipe [id*=dfp__mob][data-google-query-id]:not(:empty) > div::before,
article.single > #bbwvideo_new > [id*=dfp__mob][data-google-query-id]:not(:empty) > div::before {
display: block;
content: "Artikkeli jatkuu mainoksen jälkeen";
font-size: 11px;
line-height: 1;
text-align: center;
text-transform: uppercase;
position: absolute;
left: 50%;
top: -6px;
transform: translateX(-50%);
white-space: nowrap;
color: rgb(136, 136, 136);
background: rgb(255, 255, 255);
padding: 0px 10px;
font-family: "Chronicle SSm", Georgia, serif;
}
article.single > [id*=dfp__mob][data-google-query-id]:not(:empty) > div::after,
article.recipe [id*=dfp__mob][data-google-query-id]:not(:empty) > div::after,
article.single > #bbwvideo_new > [id*=dfp__mob][data-google-query-id]:not(:empty) > div::after {
display: block;
content: "Artikkeli jatkuu";
font-size: 11px;
line-height: 1;
text-align: center;
text-transform: uppercase;
position: absolute;
left: 50%;
bottom: -6px;
transform: translateX(-50%);
white-space: nowrap;
color: rgb(136, 136, 136);
background: rgb(255, 255, 255);
padding: 0px 10px;
font-family: "Chronicle SSm", Georgia, serif;
}
article.recipe [id*=dfp__mob][data-google-query-id]:not(:empty) > div::before {
content: "Resepti jatkuu mainoksen jälkeen";
}
article.recipe [id*=dfp__mob][data-google-query-id]:not(:empty) > div::after {
content: "Resepti jatkuu";
}
article.single2 > div[data-google-query-id][class=article-continues]::before {
content: "Mainos alkaa";
text-align: left;
font: normal normal normal 1.2rem/1.6 var(--font-family-lato);
letter-spacing: 1.2px;
text-transform: uppercase;
color: var(--black);
border-bottom: 1px solid var(--gray-dark);
width: 100%;
max-width: 600px;
margin: var(--spacing-sm) auto var(--spacing-md);
display: block;
white-space: nowrap;
}
article.single2 > div[data-google-query-id][class=article-continues]::after {
content: "Mainos päättyy";
text-align: left;
font: normal normal normal 1.2rem/1.6 var(--font-family-lato);
letter-spacing: 1.2px;
text-transform: uppercase;
color: var(--black);
border-bottom: 1px solid var(--gray-dark);
width: 100%;
max-width: 600px;
margin: var(--spacing-md) auto var(--spacing-sm);
display: block;
white-space: nowrap;
}
.gform_confirmation_message {
font-size: 20px;
font-family: "Chronicle SSm";
}
body.toukolabg {
background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=),url(https://kotiliesi.fi/wp-content/uploads/2024/05/toukola-kuvio-1-2.png);
background-size: 1280px, cover;
background-repeat: no-repeat;
background-position: top center;
background-attachment: fixed;
}
.bb-float-close-button_old {
border: 0px solid #0f1eb4 !important;
color: #0f1eb4 !important;
width: 100%;
text-align: right;
padding: 12px !important;
border-radius: 0px !important;
bottom: -34px !important;
top: auto !important;
background-color: #000 !important;
font-size: 14px !important;
color: #fff !important;
font-weight: normal !important;
}
.bb-float-close-button {
border: 0px !important;
background-color: #ffffff !important;
width: calc(100% + 0px);
border-radius: 0px !important;
border-top-left-radius: 5px !important;
top: -44px !important;
padding: 9px 1px 7px !important;
}
.bb-float-closeAd {
padding: 5px 0px;
color: #000;
text-align: right;
font-size: 16px;
font-weight: 400;
}
.bb-float-closeAd:after {
background-color: #000;
color: #fff;
font-size: 18px;
content: "\2715";
margin: 0 0 0 5px;
font-weight: 900 !important;
padding: 3px 7px 3px 7px;
border-radius: 5px;
}
.bb_wrapper:has(.bb-float-close-button[style*="display: block"]), .bb_wrapper:has(.bb-float-close-button:not([style*=display])) {
right: 5px !important;
bottom: 5px !important;
border-top: 7px solid #000;
border-bottom: 7px solid #000;
border-bottom-left-radius: 3px !important;
border-bottom-right-radius: 3px !important;
}
@media screen and (min-width: 900px) {
.bb_wrapper:has(.bb-float-close-button[style*="display: block"]), .bb_wrapper:has(.bb-float-close-button:not([style*=display])) {
right: 20px !important;
bottom: 15px !important;
border-top: 7px solid #000;
border-bottom: 7px solid #000;
border-bottom-left-radius: 3px !important;
border-bottom-right-radius: 3px !important;
}
}
</style>
<script type="text/javascript">
async function waitForVariable2(variableName, timeoutMs = 30000, intervalMs = 1000) {
const startTime = Date.now();
for (; !window[variableName]; ) {
if (Date.now() - startTime >= timeoutMs) {
console.warn(`waitForVariable2: Timeout of ${timeoutMs / 1000}s reached for variable "${variableName}".`);
return false;
}
await new Promise(resolve => setTimeout(resolve, intervalMs));
}
return true;
}
if (location.href.indexOf('?toukolabg') >= -1) {
if (window.innerWidth > 1280) {
if (location.href.indexOf('https://kotiliesi.fi/toukola/') > -1 || articleTags.includes('toukola') || recipeTheme.includes('toukola')) {
jQuery('body').addClass('toukolabg')
}
}
}
var adTestParam = 'notinuse';
//if (document.location.href.indexOf('/tilaajille/') > -1) {hideAllAds = true;}
if (takeOver && targetingValue == 'joulu') {
if (dfpDebug) {console.log('Targetointi joulu...');}
jQuery("body").addClass("unelmien-joulu");
/* //Poistettu 18.1.2021
showVideo = false;
waitForElement("#mcn_iframe_7f143646d55faecc").then(function(element) {
if (dfpDebug) {console.log("Element Added", element);}
document.querySelector('#mcn_iframe_7f143646d55faecc').remove();
});
*/
}
if (document.location.href.indexOf("/tilaajille/") > -1) {
console.log('Tilaajille retapikseli...');
var axel = Math.random() + '';
var a = axel * 10000000000000;
document.write('<img src="https://pubads.g.doubleclick.net/activity;dc_iu=/135812570/DFPAudiencePixel;ord=' + a + ';dc_seg=1031967391?" width=1 height=1 style="width:1px;" border=0/>');
}
if(showAds && !hideAllAds){
if (location.href.indexOf('webinterstitial') >= -1) {
waitForVariable2("canRunWebInterstitial", 30000, 1000)
.then((success) => {
if (success) {
if (dfpDebug) {console.log('Defining webinterstitial...')}
var webinterstitialSlot;
googletag.cmd.push(function() {
webinterstitialSlot = googletag.defineOutOfPageSlot('/135812570/kotiliesi/content/webinterstitial', googletag.enums.OutOfPageFormat.INTERSTITIAL);
if (webinterstitialSlot) {webinterstitialSlot.addService(googletag.pubads()); googletag.pubads().refresh([webinterstitialSlot], {changeCorrelator: false});}
});
} else {
if (dfpDebug) { console.log('waitForVariable2 "canRunWebInterstitial" timed out or variable was not found.'); }
}
})
.catch(error => {
if (dfpDebug) { console.error('Error in waitForVariable2:', error); }
});
}
if (!testSRA) {
if (window.dfp.visibility == 'mobile') {
jQuery('body').prepend('<div id=\'dfp__topad-mob\'><script>window.dfp.displayAdslot(\'dfp__topad-mob\')<\/script></div>');
}
if (window.dfp.visibility == 'desktop') {
jQuery('body').prepend('<div id=\'dfp__topad-desk\'><script>window.dfp.displayAdslot(\'dfp__topad-desk\')<\/script></div>');
}
}
if(showVideo && jQuery('body').attr('class').match(/single-post/)){
(function() {
var t = new Date().getTime(); t -= t % (1000*60*60*24*30);
var l = document.createElement('script'); l.type = 'text/javascript'; l.async = true;
l.src = '//otavamedia.bbvms.com/a/kotiliesi.js?t='+t;
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(l, s);
})();
if (dfpDebug) {console.log('BBW initialized without waiting CMP ready...');}
//waitForElement(".bb-float-close-button").then(function(element) {
// jQuery('.bb-float-close-button').text('Sulje mainos X');
//});
var bbFloatCloseAd = '<div class="bb-float-closeAd">Sulje mainos</div>'
waitForElement(".bb-float-close-button").then(function(element) {
jQuery('.bb-float-close-button').html(bbFloatCloseAd);
});
/*
__tcfapi("addEventListener", 2, function (TCData) {
if (TCData.tcString && "cmpuishown" === TCData.eventStatus || 'tcloaded' === TCData.eventStatus || 'useractioncomplete' === TCData.eventStatus) {
(function() {
var t = new Date().getTime(); t -= t % (1000*60*60*24*30);
var l = document.createElement('script'); l.type = 'text/javascript'; l.async = true;
l.src = '//otavamedia.bbvms.com/a/kotiliesi.js?t='+t;
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(l, s);
})();
if (dfpDebug) {console.log('BBW initialized after CMP ready...');}
}
});
*/
//jQuery('article.single > p').eq(5).before('<div id=\"bbwvideo_new\"></div>');
}
jQuery(document).ready(function() {
if(window.dfp.visibility == 'desktop' && document.location.href.indexOf(adTestParam) >= -1 && !takeOver && targetingValue == '' && !blockJP) {
// *** TSEKKAA JP WALLPAPER ***
jQuery('main').prepend('<div id=\"dfp__desk-1-wallpaper\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1-wallpaper\");}<\/script></div>');
}
if ((adLocation == 'content' || adLocation == 'recipes' || adLocation == 'blogs') && jQuery('body').attr('class').match(/single-post|single-resepti/)) {
jQuery('header.article-header').append('<div id=\'dfp__interstitial\'><script>window.dfp.displayAdslot(\'dfp__interstitial\')<\/script></div>');
if (dfpDebug) {console.log('Interstitial after article header...')}
//var newAdSlotId = 'dfp__interstitial';
//jQuery('header.article-header').append('<div id="' + newAdSlotId + '"><script>var ' + newAdSlotId + '; googletag.cmd.push(function(){' + newAdSlotId + ' = googletag.defineOutOfPageSlot("/135812570/kotiliesi/' + adLocation + '/interstitial", "' + newAdSlotId + '").addService(googletag.pubads())});googletag.cmd.push(function() {googletag.display("' + newAdSlotId + '")});<\/script><\/div>');
//window.relevantDigital = window.relevantDigital || {};
//relevantDigital.cmd = relevantDigital.cmd || [];
//relevantDigital.cmd.push(function() {
// relevantDigital.loadPrebid({configId: pbjsConf, manageAdserver: false, collapseEmptyDivs: true, collapseBeforeAdFetch: false, noGpt: true, allowedDivIds: [newAdSlotId], noSlotReload: true});
// if (dfpDebug) {console.log('Requesting ad to: #' + newAdSlotId)};
//});
} else {
jQuery('main').prepend('<div id=\'dfp__interstitial\'><script>window.dfp.displayAdslot(\'dfp__interstitial\')<\/script></div>');
if (dfpDebug) {console.log('Interstitial before main...')}
}
if (adTestParam != 'notinuse' && document.location.href.indexOf(adTestParam) > -1) {
$("body a").each(function() {
var hrefSrc = $(this).attr('href');
if (hrefSrc != null) {
if (hrefSrc.indexOf("jpg") < 0 && hrefSrc.indexOf("gif") < 0 && hrefSrc.indexOf("png") < 0 && hrefSrc.indexOf("javascript") < 0 && hrefSrc.indexOf("debug=1") < 0) {
if (hrefSrc.indexOf("?") < 0) {
var ahreffi = hrefSrc + '?' + adTestParam;
} else {
var ahreffi = hrefSrc + '&' + adTestParam;
}
$(this).attr('href',ahreffi);
}
}
});
}
//*** Uuden saitin mainospaikkojen lisäykset / muutokset alkaa tästä ***
// Unelmien joulun mobi-paikkojen muutokset
if (window.dfp.visibility == 'mobile' && location.href.indexOf('/unelmien-joulu/' && jQuery('body').attr('class').match(/unelmien-joulu/)) > -1) {
jQuery('#section-management-2').after(jQuery('#dfp__mob-2_1'));
jQuery('#dfp__mob-2_1').next('.wp-block-spacer').remove();
jQuery('.page-content > .wp-block-group').eq(0).after('<div id=\"dfp__mob-3_1\" class=\"mob-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-3_1\");}<\/script></div>')
}
// Näköislehden etusivun muutokset
if (location.href.indexOf('nakoislehti') > -1) {
jQuery('#dfp__rectangle-1_1').remove()
if (window.dfp.visibility == 'desktop') {jQuery('.digimagazine').before('<div id=\"dfp__desk-1_1\" class="desk-1-nakoislehti"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1_1\");}<\/script></div>')}
if (window.dfp.visibility == 'mobile') {jQuery('.digimagazine').before('<div id=\"dfp__mob-1_1\" class="mob-1-nakoislehti"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div>')}
}
// Kategoria, asiasana etc. sivujen paikat
if (jQuery('body').attr('class').match(/archive/) && (jQuery('body').attr('class').match(/category|tag|date|tax-recipe_category_extra|tax-recipe_category_cuisine/))) {
if (window.dfp.visibility == 'desktop') {
if (jQuery('body').attr('class').match(/tag|date|tax-recipe_category|tax-recipe_category_cuisine/)) {
//jQuery('.article-card-grid.is-style-standard ul').css('grid-template-areas', '"slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1" "slot2 slot2 slot2 slot2 slot3 slot3 slot3 slot3 slot4 slot4 slot4 slot4" "slot5 slot5 slot5 slot5 slot6 slot6 slot6 slot7 slot7 slot7 slot8 slot8 slot8"');
//jQuery('.article-card-grid > ul > li').eq(0).before('<li><article class=\"card article-card\"><div id=\"dfp__desk-1_1\" class=\"desk-1-category\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul').eq(0).before('<div id=\"dfp__desk-1_1\" class=\"desk-1-category\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1_1\");}<\/script></div>');
jQuery('.article-card-grid > ul > li').eq(1).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_1\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(3).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_2\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_2\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(8).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_3\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_3\");}<\/script></div></article></li>');
} else {
jQuery('.article-card-grid.is-style-archive ul').css('grid-template-areas', '"slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1 slot1" "slot2 slot2 slot2 slot2 slot2 slot2 slot2 slot2 slot2 slot2 slot2 slot2" "slot3 slot3 slot3 slot3 slot4 slot4 slot4 slot4 slot5 slot5 slot5 slot5" "slot6 slot6 slot6 slot7 slot7 slot7 slot8 slot8 slot8 slot9 slot9 slot9"');
jQuery('.article-card-grid > ul > li').eq(1).before('<li><article class=\"card article-card\"><div id=\"dfp__desk-1_1\" class=\"desk-1-category\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(3).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_1\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(6).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_2\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_2\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(11).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_3\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_3\");}<\/script></div></article></li>');
}
} else {
jQuery('.article-card-grid > ul > li').eq(1).before('<li><article class=\"card article-card\"><div id=\"dfp__mob-1_1\" class="mob-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(4).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_1\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(7).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_2\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_2\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(10).before('<li><article class=\"card article-card\"><div id=\"dfp__mob-2_1\" class="mob-2-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(13).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_3\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_3\");}<\/script></div></article></li>');
jQuery('.article-card-grid > ul > li').eq(16).before('<li><article class=\"card article-card\"><div id=\"dfp__native-card-1_4\" class="native-card-1-category"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__native-card-1_4\");}<\/script></div></article></li>');
}
}
// Yksittäisen reseptin paikat
if ((adLocation == 'recipes' && jQuery('body').attr('class').match(/single-resepti/)) && showAds && !hideAllAds) {
if (window.dfp.visibility == 'desktop') {
jQuery('article.recipe > .recipe-instructions').before('<div id=\"dfp__desk-1_1\" class=\"desk-1-recipe\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1_1\");}<\/script></div>');
jQuery('article.recipe > .recipe-instructions').after('<div id=\"dfp__desk-2_1\" class=\"desk-2-recipe\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-2_1\");}<\/script></div>');
} else {
jQuery('article.recipe > .recipe-instructions').before('<div id=\"dfp__mob-1_1\" class=\"mob-1-recipe\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div>');
jQuery('article.recipe > .recipe-instructions > section').eq(1).before('<div id=\"dfp__mob-2_1\" class=\"mob-2-recipe\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div>');
//jQuery('article.recipe > .recipe-instructions').after('<div id=\"dfp__mob-2_1\" class=\"mob-2-recipe\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div>');
//jQuery('article.recipe > div.recipe-instructions > section').eq(1).before('<div id=\"dfp__mob-2_1\" class=\"mob-2-recipe\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div>')
//waitForElement(".content__nativead.article-continues").then(function(element) {
// jQuery('article.recipe > .recipe-instructions').after(jQuery('.content__nativead.article-continues'));
// if (dfpDebug) {console.log('Siirretään reseptin natiivipaikka...');}
//});
//if (document.location.href.indexOf("sokrecipetest=1") >= -1 && document.documentElement.clientWidth < 500) {
if ((adLocation == 'recipes') && jQuery('body').attr('class').match(/single-resepti/) && document.documentElement.clientWidth < 600) {
//jQuery('article.recipe > .recipe-instructions > section').eq(1).before('<div id=\"dfp__native-recipe-1_1\" class=\"dfp__native-recipe\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-recipe-1_1\");}<\/script><\/div>');
waitForElement("#dfp__mob-2_1").then(function(element) {
//jQuery('article.recipe > .recipe-instructions > section').eq(1).before(jQuery('#dfp__mob-2_1').addClass('mob-2-recipe'));
});
if (jQuery('article.recipe > .recipe-instructions > section p > strong:first-child').length > 0) {
jQuery('article.recipe > .recipe-instructions > section p > strong:first-child').first().closest('p').before(jQuery('article.recipe > .recipe-instructions > section > .content__nativead'));
jQuery('.content__nativead').css('margin','20px 0px');
if (dfpDebug) {console.log('Moving native-card-1 after instructions...')}
} else {
jQuery('article.recipe > .recipe-instructions > section').eq(1).after(jQuery('article.recipe > .recipe-instructions > section > .content__nativead'));
if (dfpDebug) {console.log('Moving native-card-1 after recipe...')}
}
}
}
jQuery('article.recipe > .recipe-instructions').after('<div id=\"bbwvideo_new\"></div>')
}
// Yksittäisen artikkelin paikat
if ((adLocation == 'content' || adLocation == 'blogs') && jQuery('body').attr('class').match(/single-post/)) {
var adPeriodFound = true, adPlaceFilled = 0, useh3Placement = false, useh2h3Placement = false, adPlacementSelector = 'article.single > h2', mob2Added = false, mob3AdSotId = 'dfp__mob-3_1';
var pIndexArray = [], h2IndexArray = [], h3IndexArray = [], sectionIndexArray = [], h2h3IndexArray = [], h2h3ElemArray = [];
var nbrOfh2 = jQuery('article.single > h2').length;
var nbrOfh3 = jQuery('article.single > h3').length;
var nbrOfParagraphs = jQuery('article.single > p').length;
var nbrOfSections = jQuery('article.single > section').length;
var nbrOfAllElements = jQuery('article.single > *').length;
var changeOutstreamMob2Order = false;
if (dfpDebug) {console.log('h2 count ' + nbrOfh2 + ', h3 count ' + nbrOfh3 + ', p count ' + nbrOfParagraphs + ', section count ' + nbrOfSections + ', allItems count ' + nbrOfAllElements + '...')}
jQuery('article.single').children().each((index,element) => {
if (dfpDebug) {console.log(index + '#' + element.tagName)}
if (element.tagName.toLowerCase() == 'p') {pIndexArray.push(index+1)}
if (element.tagName.toLowerCase() == 'h2') {h2IndexArray.push(index+1)}
if (element.tagName.toLowerCase() == 'h2' || element.tagName.toLowerCase() == 'h3') {
h2h3IndexArray.push(index+1);
h2h3ElemArray.push(element.tagName.toLowerCase());
}
if (element.tagName.toLowerCase() == 'h3') {h3IndexArray.push(index+1)}
if (element.tagName.toLowerCase() == 'section') {sectionIndexArray.push(index+1)}
});
if (nbrOfh2 < 2 && nbrOfh3 < 2) {
adPeriodFound = false;
}
if (targetingValue.match(/joulu|grilli.*|ihanapuutarha/)) {
changeOutstreamMob2Order = true;
}
if (dfpDebug) {console.log('adPeriodFound: ' + adPeriodFound)}
if (window.dfp.visibility == 'mobile') {
var mob1_adPlace = window.dfp.isAndroid ? 2 : 1;
if (h2IndexArray[0] <= pIndexArray[1]) {
//setTimeout(function() {
// jQuery('article.single > h2').eq(0).before('<div id=\"dfp__mob-1_1\" class=\"mob-1-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div>')
// if (dfpDebug) {console.log('Delayed adding mob-1, v1...')}
//}, 100);
jQuery('article.single > h2').eq(0).before('<div id=\"dfp__mob-1_1\" class=\"mob-1-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div>')
} else {
//setTimeout(function() {
// jQuery('article.single > p').eq(mob1_adPlace).after('<div id=\"dfp__mob-1_1\" class=\"mob-1-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div>')
// if (dfpDebug) {console.log('Delayed adding mob-1, v2...')}
//}, 100);
jQuery('article.single > p').eq(mob1_adPlace).after('<div id=\"dfp__mob-1_1\" class=\"mob-1-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-1_1\");}<\/script></div>')
}
if (paywallState == 'open' || paywallState == 'shared') {
if (adPeriodFound) {
if (nbrOfh3 > nbrOfh2) {
nbrOfh2 = nbrOfh3;
h2IndexArray = h3IndexArray;
useh3Placement = true;
adPlacementSelector = 'article.single > h3';
}
//if (!useh3Placement && nbrOfh3 > 0) {
// useh2h3Placement = true;
// h2IndexArray = h2h3IndexArray;
//}
if (nbrOfh2 >= 2) {
if (dfpDebug) {console.log('h2IndexArray: ' + h2IndexArray.join())}
var mob2_adPlace = 1;
if (h2IndexArray[0] >= 12) {mob2_adPlace = 0};
if (h2IndexArray[0] <= 7 || h2IndexArray[1] <= 12) {mob2_adPlace = 2};
if (nbrOfh2 >= 3 && h2IndexArray[2] <= 12) {mob2_adPlace = 3};
if (dfpDebug) {console.log('h2IndexArray: ' + h2IndexArray[0] + '#' + h2IndexArray[1] + '#' + mob2_adPlace)}
var bbwPlace = mob2_adPlace - 1;
if (dfpDebug) {console.log('h2mob: ' + h2IndexArray[mob2_adPlace] + ', h2bbw: ' + h2IndexArray[bbwPlace])}
if ((h2IndexArray[mob2_adPlace] - h2IndexArray[bbwPlace]) <= 4 && (h2IndexArray.length-1 > mob2_adPlace)) {
bbwPlace = mob2_adPlace;
mob2_adPlace += 1;
}
if (changeOutstreamMob2Order) {
mob2_adPlace -= 1;
bbwPlace += 1;
if (dfpDebug) {console.log('Targeting joulu, grilli kuumaksi, ihana puutarha etc. --> mob2_adPlace: ' + mob2_adPlace + ', bbwPlace: ' + bbwPlace)}
}
if (bbwPlace < 0) {
jQuery('article.single > p').eq(5).after('<div id=\"bbwvideo_new\"></div>');
if (dfpDebug) {console.log('BBW after p.eq(5)...')}
} else {
jQuery(adPlacementSelector).eq(bbwPlace).before('<div id=\"bbwvideo_new\"></div>');
if (dfpDebug) {console.log('BBW before ' + adPlacementSelector + ' at place ' + bbwPlace + '...')}
}
//if (dfpDebug) {console.log('Siirretään artikkelin mob-2 -paikka --> ' + mob2_adPlace + ' ...');}
//jQuery(adPlacementSelector).eq(mob2_adPlace).before(jQuery('#dfp__mob-2_1'));
if (dfpDebug) {
console.log('Adding to article mob-2 slot --> ' + mob2_adPlace + '...');
console.log('mob2-bbw: ' + mob2_adPlace + '-' + bbwPlace + '=' + (mob2_adPlace - bbwPlace))
console.log('==> ' + h2IndexArray[mob2_adPlace] + '-' + h2IndexArray[bbwPlace] + '=' + (h2IndexArray[mob2_adPlace] - h2IndexArray[bbwPlace]))
}
if ((h2IndexArray[mob2_adPlace] - h2IndexArray[bbwPlace]) <= 4 && nbrOfParagraphs > 10 && !changeOutstreamMob2Order) {mob2_adPlace = mob2_adPlace + 1}
jQuery(adPlacementSelector).eq(mob2_adPlace).before('<div id=\"dfp__mob-2_1\" class=\"mob-2-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div>');
//jQuery(adPlacementSelector).eq(mob2_adPlace).before('<div class=\"mob-2_wrapper\"><div id=\"dfp__mob-2_1\" class=\"mob-2-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div></div>')
if (dfpDebug) {console.log('mob2 before ' + adPlacementSelector + ' > ' + mob2_adPlace + ' > ' + jQuery(adPlacementSelector).eq(mob2_adPlace).text())}
adPlaceFilled = mob2_adPlace;
if (changeOutstreamMob2Order) {adPlaceFilled = bbwPlace}
if (dfpDebug) {console.log('adPlaceFilled after bbw and mob-2_1 ' + adPlaceFilled)}
var adPlaceStart = mob2_adPlace;
if (changeOutstreamMob2Order) {adPlaceStart = bbwPlace}
if (adPlaceStart < h2IndexArray.length) {adPlaceStart = adPlaceStart + 1}
//if (adPlaceStart == 2 || h2IndexArray[1] < 10) {adPlaceStart = 3}
for (i=adPlaceStart; i<=nbrOfh2; i++) {
if (dfpDebug) {
console.log('Test: ' + i + adPlaceFilled + (i - adPlaceFilled) + '#' + h2IndexArray[i-1] + '-' + h2IndexArray[i-2] + '-' + (h2IndexArray[i-1] - h2IndexArray[i-2]));
console.log('Test2: ' + i + adPlaceStart + '#' + i+h2IndexArray.length + '#' + (h2IndexArray[i] - h2IndexArray[i-1]) + '#' + (i - adPlaceFilled));
}
if (i >= adPlaceStart && i <= h2IndexArray.length && ((h2IndexArray[i] - h2IndexArray[i-1]) >= 5 || i - adPlaceFilled > 1)) {
if (dfpDebug) {console.log('Should come before ' + jQuery(adPlacementSelector).eq(i).text())}
//jQuery(adPlacementSelector).eq(i).before('<div id=\"dfp__mob-3_2' + i + '\" class=\"dfp__mob-3_2\" style=\"max-width: 320px\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__mob-3_2' + i + '\");}<\/script><\/div>');
jQuery(adPlacementSelector).eq(i).before('<div id=\"dfp__mob-3_2' + i + '\" class=\"dfp__mob-3_2\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__mob-3_2' + i + '\");}<\/script><\/div>');
adPlaceFilled = i;
if (dfpDebug) {console.log('mob-3_2' + i + ' before headline ' + jQuery(adPlacementSelector).eq(i).text())}
} else {
if (dfpDebug) {console.log('Should not come before ' + jQuery(adPlacementSelector).eq(i).text())}
if (dfpDebug) {console.log('adPlaceFilled = false' + i)}
}
}
if (dfpDebug) {
console.log('Not in use: Last value of h2IndexArray: ' + h2IndexArray[h2IndexArray.length - 1]);
console.log('Not in use: Last value of sectionIndexArray: ' + sectionIndexArray[sectionIndexArray.length - 1]);
console.log('Not in use: h2-section: ' + (sectionIndexArray[sectionIndexArray.length - 1] - h2IndexArray[h2IndexArray.length - 1]));
}
if ((sectionIndexArray[sectionIndexArray.length - 1] - h2IndexArray[h2IndexArray.length - 1]) >= 4) {
if (dfpDebug) {console.log('Not in use: mob-3_1 before last section...')}
//jQuery('article.single > section').eq(sectionIndexArray.length - 1).before('<div id=\"dfp__mob-3_1\" class=\"dfp__mob-3_2\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__mob-3_55\");}<\/script><\/div>');
}
}
} else {
/* !adPeriodFound */
jQuery('article.single > p').eq(5).after('<div id=\"bbwvideo_new\"></div>');
if (dfpDebug) {console.log('BBW p.eq(5) after...')}
if (nbrOfParagraphs > 17) {
mob2Added = true;
jQuery('article.single > p').eq(12).after('<div id=\"dfp__mob-2_1\" class=\"mob-2-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-2_1\");}<\/script></div>')
if (dfpDebug) {console.log('mob2 p.eq(12) after...')}
}
//jQuery('article.single > p').eq(pIndexArray[pIndexArray.length-1] - 3).before('<div id=\"dfp__mob-3_1\" class=\"mob-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-3_1\");}<\/script></div>')
//if (dfpDebug) {console.log('mob-3_1 before p.eq(' + (pIndexArray[pIndexArray.length-1] - 3) + ')...')}
}
if (!mob2Added && !adPeriodFound) {
mob3AdSotId = 'dfp__mob-2_1';
if (dfpDebug) {console.log('Too few paragraphs, adding mob-2 instead of mob-3')}
}
if (dfpDebug) {console.log('mob-3_1 section: ' + sectionIndexArray[sectionIndexArray.length-1] + '#' + pIndexArray[pIndexArray.length-1])}
if (sectionIndexArray[sectionIndexArray.length-1] > pIndexArray[pIndexArray.length-1] && sectionIndexArray[sectionIndexArray.length-1] > h2IndexArray[h2IndexArray.length-1]+1) {
//jQuery("#dfp__mob-3_1").insertBefore(jQuery('article.single > section').eq(sectionIndexArray.length-1));
jQuery('article.single > section').eq(sectionIndexArray.length-1).before('<div id=\"' + mob3AdSotId + '\" class=\"mob-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"' + mob3AdSotId + '\");}<\/script></div>')
if (dfpDebug) {console.log('mob-3_1 before last section...')}
} else {
if (dfpDebug) {console.log('mob-3_1 paragraph: ' + pIndexArray[pIndexArray.length-1] + '#' + h2IndexArray[h2IndexArray.length-1] + '#' + nbrOfParagraphs + '#' + pIndexArray.join())}
if (pIndexArray[pIndexArray.length-2] - h2IndexArray[h2IndexArray.length-1] > 5) {
jQuery('article.single > p').eq(nbrOfParagraphs - 2).before('<div id=\"dfp__mob-3_1\" class=\"mob-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__mob-3_1\");}<\/script></div>')
if (dfpDebug) {console.log('mob-3_1 before p.eq(nbrOfParagraphs-3) = ' + (pIndexArray[pIndexArray.length-1] - 2) + '...')}
if (dfpDebug) {
//jQuery('article.single .social-media-icons').before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
}
} else {
//jQuery('article.single > p').eq(nbrOfParagraphs-1).after('<div id=\"' + mob3AdSotId + '\" class=\"mob-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"' + mob3AdSotId + '\");}<\/script></div>')
jQuery('article.single .social-media-icons').before('<div id=\"' + mob3AdSotId + '\" class=\"mob-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"' + mob3AdSotId + '\");}<\/script></div>')
if (dfpDebug) {console.log('mob-3_1 after last p.eq(nbrOfParagraphs) = ' + pIndexArray[pIndexArray.length-1] + '...')}
}
}
//if (dfpDebug) {
if (dfpDebug) {console.log('Last p - last h2: ' + pIndexArray[pIndexArray.length-1] + ' - ' + h2IndexArray[h2IndexArray.length-1])}
if (sectionIndexArray[sectionIndexArray.length-1] > pIndexArray[pIndexArray.length-1]) {
if (pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] >= 3) {
var nativeAdPlace = pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] >= 5 ? 3 : 2;
jQuery('article.single > p').eq(nbrOfParagraphs-nativeAdPlace).before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
} else {
jQuery('article.single .social-media-icons').before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
}
} else if (pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] >= 3 && pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] <= 5) {
jQuery('article.single > p').eq(nbrOfParagraphs-2).before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
} else {
jQuery('article.single .social-media-icons').before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
}
//}
}
}
if (window.dfp.visibility == 'desktop') {
jQuery('article.single > p').eq(0).after('<div id=\"dfp__desk-1_1\" class=\"article-continues desk-1-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-1_1\");}<\/script></div>')
//if (paywallState == 'open') {
if (paywallState == 'open' || paywallState == 'shared') {
if (adPeriodFound) {
if (articleTags.includes('toukola') || recipeTheme.includes('toukola')) {
var desk2placement = parseInt(nbrOfh2/2);
//if (desk2placement == 1) {desk2placement = 2}
jQuery(adPlacementSelector).eq(desk2placement).before('<div id=\"dfp__desk-2_1\" class=\"article-continues desk-2-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-2_1\");}<\/script></div>')
if (h2IndexArray[1] > 5) {
jQuery('article.single > h2').eq(desk2placement+1).before('<div id=\"bbwvideo_new\"></div>');
} else {
jQuery('article.single > p').eq(5).after('<div id=\"bbwvideo_new\"></div>');
}
} else {
if (h2IndexArray[1] > 5) {
jQuery('article.single > h2').eq(1).before('<div id=\"bbwvideo_new\"></div>');
} else {
jQuery('article.single > p').eq(5).after('<div id=\"bbwvideo_new\"></div>');
}
var desk2placement = parseInt(nbrOfh2/2);
if (desk2placement == 1) {desk2placement = 2}
jQuery(adPlacementSelector).eq(desk2placement).before('<div id=\"dfp__desk-2_1\" class=\"article-continues desk-2-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-2_1\");}<\/script></div>')
}
} else {
/* !adPeriodFound */
jQuery('article.single > p').eq(5).after('<div id=\"bbwvideo_new\"></div>');
jQuery('article.single > p').eq(10).before('<div id=\"dfp__desk-2_1\" class=\"article-continues desk-2-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-2_1\");}<\/script></div>')
//jQuery('article.single > p').eq(20).before('<div id=\"dfp__desk-3_1\" class=\"article-continues desk-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-3_1\");}<\/script></div>')
}
if (dfpDebug) {console.log('desk-3_1: ' + sectionIndexArray[sectionIndexArray.length-1] + '#' + pIndexArray[pIndexArray.length-1])}
//if (sectionIndexArray[sectionIndexArray.length-1] > nbrOfParagraphs && ) {
if (sectionIndexArray[sectionIndexArray.length-1] > pIndexArray[pIndexArray.length-1]) {
//jQuery("#dfp__mob-3_1").insertBefore(jQuery('.content__article section.recommended-section').eq(sectionIndexArray.length-1));
//jQuery("#dfp__desk-3_1").insertBefore(jQuery('article.single > section').eq(sectionIndexArray.length-1));
jQuery('article.single > section').eq(sectionIndexArray.length-1).before('<div id=\"dfp__desk-3_1\" class=\"article-continues desk-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-3_1\");}<\/script></div>')
} else {
if (nbrOfAllElements - h2IndexArray[h2IndexArray.length-1] > 5) {
jQuery('article.single > p').eq(nbrOfParagraphs-2).before('<div id=\"dfp__desk-3_1\" class=\"article-continues desk-3-article\"><script>if(undefined!==typeof window.dfp){window.dfp.displayAdslot(\"dfp__desk-3_1\");}<\/script></div>')
}
}
if (dfpDebug) {
if (dfpDebug) {console.log('Last p - last h2: ' + pIndexArray[pIndexArray.length-1] + ' - ' + h2IndexArray[h2IndexArray.length-1])}
if (sectionIndexArray[sectionIndexArray.length-1] > pIndexArray[pIndexArray.length-1]) {
if (pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] >= 3) {
var nativeAdPlace = pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] >= 5 ? 3 : 2;
jQuery('article.single > p').eq(nbrOfParagraphs-nativeAdPlace).before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
} else {
jQuery('article.single .social-media-icons').before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
}
} else if (pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] >= 3 && pIndexArray[pIndexArray.length-1] - h2IndexArray[h2IndexArray.length-1] <= 5) {
jQuery('article.single > p').eq(nbrOfParagraphs-2).before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
} else {
jQuery('article.single .social-media-icons').before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
}
}
// *** TSEKKAA TARPEELLISUUS ***
waitForElement("#dfp__desk-2_1").then(function(element) {
jQuery("#dfp__desk-2_1").before("<div id='jpx-fi-scroller'></div>");
});
if (location.href.indexOf('testjustpremium2') > -1) {
waitForElement(".jpx-fi-wrapper").then(function(element) {
//jQuery(".jpx-fi-wrapper").insertBefore("#dfp__desk-1-wallpaper");
});
}
//if (location.href.indexOf('nativetext=1') >= -1) {
// jQuery('article.single .social-media-icons').before('<div id=\"dfp__native-text-1_1\" class=\"dfp__native-text\"><script>if(\'undefined\'!==typeof dfp){dfp.displayAdslot(\"dfp__native-text-1_1\");}<\/script><\/div>');
//}
}
}
}
if (window.dfp.visibility == 'desktop') {
waitForElement("#dfp__desk-1_1").then(function(element) {
// Remove article-continues style from desktop
jQuery("#dfp__desk-1_1").addClass("not-in-use");
if (dfpDebug) {console.log('desk-1_1 class changed...')}
});
}
})
if (dfpDebug) {
(function getAdSlotData_new() {
if (window.googletag && window.googletag.pubadsReady) {
googletag.pubads().addEventListener("slotRequested", (event) => {
var slotId = event.slot.getSlotElementId();
if (!slotId.match(/native/)) {
if (dfpDebug) {console.log('Slot has been requesteed. (' + Date.now() + ')', slotId)}
dataLayer.push({'event': 'adRequest', 'adSlotData': {'adUnit': slotId}, 'time': Date.now()});
}
});
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
var slot = event.slot;
var slotId = event.slot.getSlotElementId();
if (!slotId.match(/native/)) {
if (!event.isEmpty) {
var adSize = event.size.join('x');
if(adSize == '1x1' && 'undefined' !== typeof slot.getTargeting('hb_size')[0]){
adSize = slot.getTargeting('hb_size')[0];
}
if (dfpDebug) {console.log('Slot has finished rendering. (' + Date.now() + ')', slotId, event.size.join('x'))}
dataLayer.push({'event': 'adImpression', 'adSlotData': {'adSlot': slotId, 'size': event.size.join('x')}, 'time': Date.now()});
}
}
});
googletag.pubads().addEventListener("impressionViewable", (event) => {
var slotId = event.slot.getSlotElementId();
if (!slotId.match(/native/)) {
var bannerTop = Math.round(document.getElementById(slotId).getBoundingClientRect().top);
if (dfpDebug) {console.log('Slot became viewable. (' + Date.now() + ')', slotId)}
dataLayer.push({'event': 'adViewable', 'adSlotData': {'adUnit': slotId, 'distanceFromTop': bannerTop}, 'time': Date.now()});
}
});
} else {
setTimeout(getAdSlotData_new, 100);
}
}());
setTimeout(function() {
function forEach(responses, cb) {
Object.keys(responses).forEach(function(adUnitCode) {
var response = responses[adUnitCode];
response.bids.forEach(function(bid) {
cb(adUnitCode, bid);
});
});
}
var winners = pbjs.getAllWinningBids();
//var winners = owpbjs.getBidsReceived();
var output = [];
forEach(pbjs.getBidResponses(), function(code, bid) {
output.push({
//bid: bid,
adunit: code,
size: bid.size,
adId: bid.adId,
bidder: bid.bidder,
time: bid.timeToRespond,
cpm: bid.cpm,
msg: bid.statusMessage,
rendered: !!winners.find(function(winner) {
return winner.adId==bid.adId;
})
});
});
forEach(pbjs.getNoBids && pbjs.getNoBids() || {}, function(code, bid) {
output.push({
msg: "no bid",
adunit: code,
adId: bid.bidId,
bidder: bid.bidder
});
});
if (output.length) {
if (console.table) {
console.table(output);
} else {
for (var j = 0; j < output.length; j++) {
console.log(output[j]);
}
}
} else {
console.warn('NO prebid responses');
}
}, 8000);
}
var isOutstream = false;
waitForElement(".bb_iawr").then(function(element) {
var outstreamReady = setInterval(function() {
waitForElement("#bb-wr-inarticle-kotiliesi").then(function(element) {
if (document.querySelector("#bb-wr-inarticle-kotiliesi").getAttribute("data-duration") > 0) {
//document.write('<style>.bb_iawr {margin: 50px 0px 70px;}</style>');
console.log('bb-wr duration is ' + document.querySelector("#bb-wr-inarticle-kotiliesi").getAttribute("data-duration") + ' seconds...');
isOutstream = true;
}
});
if (document.querySelector('.teads-inread') != null) {
//document.write('<style>.teads-inread {margin: 40px auto 60px;}</style>');
console.log('teads-inread exists...');
isOutstream = true;
}
if (document.querySelector('.teads-adCall') != null) {
console.log('teads-adCall exists, no os...');
isOutstream = false;
clearInterval(outstreamReady);
}
if (isOutstream) {
window.dataLayer = window.dataLayer || [];
dataLayer.push({'event': 'outstream_visible','visible': 'true'});
console.log('DL push outstream_visible...');
clearInterval(outstreamReady);
}
}, 1000);
});
if (testSRA) {
const observers = new Map();
function observeDFPElements() {
const targets = [...document.querySelectorAll('[id^="dfp__"]:not([data-observed])')].filter(el => el.id !== 'dfp__mob-2_222' && !el.id.includes('native'));
targets.forEach(target => {
target.setAttribute('data-observed', 'true');
const thresholdValue = parseFloat(target.getAttribute('data-threshold')) || 1.5;
let observer = observers.get(thresholdValue);
if (!observer) {
if (dfpDebug) console.log(`Creating new observer for threshold: ${thresholdValue}`);
//const rootMargin = `0px 0px ${thresholdValue * 100}% 0px`;
const rootMargin = `${thresholdValue * 100}% 0px ${thresholdValue * 100}% 0px`;
observer = new IntersectionObserver(
(entries, obs) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
if (dfpDebug) {
console.log('entry.boundingClientRect.height: ' + entry.boundingClientRect.height);
console.log('HAS: calling runHeaderbid: ' + entry.target.id);
}
loadAdSlot(entry.target.id);
obs.unobserve(entry.target);
}
});
},
{
root: null, // relative to the viewport
rootMargin: rootMargin,
threshold: 0.0 // Fire as soon as it enters the margin
}
);
observers.set(thresholdValue, observer);
}
observer.observe(target);
if (dfpDebug) console.log('Observing element: ', target.id, 'with threshold:', thresholdValue);
});
}
let debounceTimeout;
function debouncedObserve() {
clearTimeout(debounceTimeout);
debounceTimeout = setTimeout(observeDFPElements, 100);
}
var dfpReady = setInterval(function() {
if(window.googletag && googletag.pubadsReady) {
if (dfpDebug) {console.log('DFP ready, starting observation...')}
observeDFPElements();
const mutationObserver = new MutationObserver(debouncedObserve);
mutationObserver.observe(document.body, {childList: true, subtree: true});
clearInterval(dfpReady);
}
}, 50)
}
}
if (!fpaShown && rnd > 50) {
var adTestParam = 'ntp=1';
$("body a").each(function() {
var hrefSrc = $(this).attr('href');
if (hrefSrc != null) {
if (hrefSrc.indexOf("jpg") < 0 && hrefSrc.indexOf("gif") < 0 && hrefSrc.indexOf("png") < 0 && hrefSrc.indexOf("javascript") < 0 && hrefSrc.indexOf("debug=1") < 0) {
if (hrefSrc.indexOf("?") < 0) {
var ahreffi = hrefSrc + '?' + adTestParam;
} else {
var ahreffi = hrefSrc + '&' + adTestParam;
}
$(this).attr('href',ahreffi);
}
}
});
}
//if (cmpGetCookie('p_rum') != 1 && rnd >= 40) {
if (rnd >= 31) {
console.log('Calling Pingdom rum...');
var fpa = document.createElement('script'); fpa.type = 'text/javascript'; fpa.async = true;
fpa.src = '//rum-static.pingdom.net/pa-60b0aa7ba4068400110000f4.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(fpa, s);
}
setTimeout(function() {
if(!document.getElementById('FjInuCgeJBLv')){
dataLayer.push({'event': 'ads_blocked'})
if (dfpDebug) {console.log('Adblocker detected...')}
//dataLayer.push({'event': 'adsBlocked', 'adBlock': 'Blocked'});
//ga('send', 'event', 'Advertisement', 'adsBlocked', 'Blocked');
//setTimeout(function() {
// ga('send', 'event', 'Advertisement', 'adsBlocked', 'Blocked');
//}, 1000);
} else {
if (dfpDebug) {console.log('Adblocker not detected...')}
}
}, 1000);
let showConsentManager = function(){__tcfapi("showConsentManager",true,function(data){console.log(data)});}
jQuery('footer#footer ul.otavamedia-footer__list').eq(0).append('<li class="otavamedia-footer__list-item"><a style="display:block;" href="#" class="manageSettings otavamedia-footer__link oba-link" onclick="window.gravitoCMP.openPreferences()">Evästeasetukset</a></li>');
if (window.dfp.visibility == 'desktop') {
jQuery("body").append('<iframe srcdoc=\"\<script src=\'https:\/\/cdn.performax.cz\/acc\/loader.js?aab=loader\'\>\<\/script\>\" style=\"display: none\" data-web=\"kotiliesi.fi\" data-hash=\"b405afad6654d55e647395c1488a1f84\"><\/iframe>');
}
if (document.location.href.indexOf("datesti=1") >= -1) {
function getCommonElements(array1, array2) {
return array1.filter(function(value) {
return array2.includes(value);
});
}
/*
async function waitForVariable(variableName) {
while (!window[variableName]) {
await new Promise(resolve => setTimeout(resolve, 100));
}
return true;
}
*/
if (decodeURIComponent(cmpGetCookie("cX_G"))) {
if (dfpDebug) {console.log('cX_G found...')}
//let omSegmentArr = ['8n485ejzigi9','8nfch1zaxlw6','8mt6a1sm81he','8n485ejzigfp','8o1io4hcqvbf','8nqfato9a0cb','8nfhzm7smash','8nqfm06botn3','8n485ejzigfn','8mt74q0mx5k0','8nqfkl7gdkdg','8o1io4hcqvbe','8nqech16gy9p','8nfc1qnzidza','8o1l9ymij652','8nqech16gyaq','8nfb8yhmklm1','8mt6a1sm81hf','8o1gwyxui6y1','8nfhzm7smasg','8mt7r5sa3rwj','8nqi6elemih4','8n49exzcvb05','8nqexjcx2l1r','8nfainauefpl','8nfdx7xwjjlh','8nffig3logr2','8o1l9ymij65d','8n485ejzigic','8o1h8hno13z9'];
let omSegmentArr = ['adbzpidaf887','8nff2vf2dqge','8n4bzck96z75','8nqi6elemiic','8nqi6elemih4','8n4bzck96z7n','8o1l9ymij652','8n4bzck96z7p','8mt8vs49hkio','8o1l9ymij65d','8nff2vf2dqgf','8nqi6elemih5','8n4cez5ikgch','8nfainauefpl','8nqfm06botjc','8nfc1qnzidza','8o1kscr38zqt','8o1iecry6lob','8nqfato9a0cb','8nqfato9a0cp','8nqfato9a0es','8nfb8yhmklm2','8nfb8yhmklm1','8n485ejzigi9','8o1o6nfnsllv','8nql33nfeh1b','8nffig3logr2','8n485ejzigic','8n485ejzigie','8o1o6nfnslm6','8o1l9ymij65f','8nfhzm7smasj','8o1hg0ie9yt5','8o1hg0ie9yqa','8nfhzm7smasg','8nfhzm7smasf','8nfhzm7smash','8n4fjavk8koj','8o1o6nfnslm3','8o1gwyxui6y1','8nfapah6uu5t','8mt68zrajk3e','8nqfato9a0eg','8nfc7bgdk6l6','8nqfkl7gdkdg','8nfch1zaxlw6','8mt6a1sm81he','8o1io4hcqvbe','8mt6a1sm81hf','8o1io4hcqvbf','8nqech16gy6r','8n4hcd8p9yix','8o1h8hno13z9','8nfc1qnzidze','8nqech16gyaq','8mt74q0mx5k0','8n4ba3nnrwg1','8nqech16gy6q','8nqech16gyak','8nqfm06botdy','8nfeu0oo3dj9','8o1i8us43afa','8n485ejzigfp','8nqf57f2z0a7','8mt64iggbp69','8n485ejzigia','8n485ejzigfo','8nqdm6kvc1s8','8n485ejzigix','8n49exzcvb05','8nqfm06botn3','8o1iecry6ldl','8o1hg0ie9yq9','8nqexjcx2l1r','8nfge70dtt80','8nfb8yhmklm3','8nfdx7xwjjlh','8mt7r5sa3rwj','8mt7r5sa3rwn','8n485ejzigfn','8nfb8yhmklkp','8nfewbexnvg7','8o1l3e22wbdc','8nqech16gy6p','8n485ejzigfm','8o1hg0ie9yq8','8nqech16gy6o','8o1k4bj3ns4a','8nqech16gy9r','8nfb8yhmklmv','8nfb8yhmkloj','8o1hg0ie9yq7','8nfb8yhmklp2','8nfb8yhmklp4','8nfb8yhmklp3','8nfb0g561min','8nqe3z9qdr85','8nfb8yhmkllx','8nfb8yhmklly','18i1a3mftlztn','8mtem2wqwxdl ','aavf5ch5kc6l ','a9yesumpafb6','aakkzy0gqoru','8nqech16gy9p'];
let LS__cX_segmentInfoArr = [];
let LS__cX_segmentInfo = window.localStorage.getItem('_cX_segmentInfo');
if (LS__cX_segmentInfo != null) {
//LS__cX_segmentInfoArr = LS__cX_segmentInfo.substr(LS__cX_segmentInfo.lastIndexOf("_")+1).split('.');
LS__cX_segmentInfoArr = LS__cX_segmentInfo.split(',');
if (dfpDebug) {console.log('Creating LS__cX_segmentInfoArr...')}
} else {
if (dfpDebug) {console.log('LS__cX_segmentInfo does not exist...')}
}
if (typeof(LS__cX_segmentInfoArr) != 'undefined') {
if (dfpDebug) {console.log('LS__cX_segmentInfoArr length ' + LS__cX_segmentInfoArr.length)}
let daSegmentArr = '[' + getCommonElements(omSegmentArr, LS__cX_segmentInfoArr) + ']';
if (dfpDebug) {console.log('daSegmentArr: ' + daSegmentArr)}
//console.timeEnd("daBake");
waitForVariable2("__da", 10000, 1000)
.then((success) => {
if (success) {
if (dfpDebug) {console.log("__da is defined...")}
__da.bake({partner:'PO_221116', parcid:'' + decodeURIComponent(cmpGetCookie("cX_G")) + '', publisher:'Dap_221116', category: daSegmentArr});
} else {
if (dfpDebug) { console.log('waitForVariable2 "__da" timed out or variable was not found.'); }
}
})
.catch(error => {
if (dfpDebug) { console.error('Error in waitForVariable2:', error); }
});
} else {
if (dfpDebug) {console.log('LS__cX_segmentInfoArr does not exist...')}
}
} else {
if (dfpDebug) {console.log('cX_G cookie not detected...')}
}
}
if (document.documentElement.clientWidth >= 600) {
if ((adLocation == 'content') && jQuery('body').attr('class').match(/single-post/)) {
jQuery('article.single').children().each((index, element) => {
if (element.tagName.toLowerCase() == 'section' && jQuery(element).hasClass('embed')) {
if (jQuery(element).find('iframe[src*="screen9.com"]').length > 0 || jQuery(element).find('iframe[data-src*="screen9.com"]').length > 0) {
jQuery(element).css('max-width', '600px');
}
}
});
}
}
var adslotsDefined = true;
if (location.href.indexOf('testaisearch') >= -1 && window.innerWidth <= 500) {
const cssRules = `
#hion-ai-modal {
width: 92vw;
max-width: 92%;
border-radius: 10px;
padding: 1rem 1rem 1.5rem;
height: 96%;
}
#hion-ai-chat-content {
margin-top: 1rem;
}
.related-header {
background: #971567;
color: #ffffff;
border-radius: 10px;
padding: 1rem;
}
#hion-ai-input {
font-size: 1.6rem;
background-color: #e2e2e2;
}
.close-btn {
top: 0.8rem;
right: 1rem;
background-color: #971567;
border-radius: 1rem;
}
#hion-ai-modal-container {
z-index: 999999;
}
.user-bubble {
background: #d6d6d6;
color: #313131;
max-width: 90%;
}
.bot-bubble {
margin-right: 5px;
max-width: 90%
}
.user-bubble p, .bot-bubble p {
font-size: 1.4rem;
}
#hion-ai-chat-content {
max-height: 30vh;
}
#hion-ai-chat-content div.user-bubble:first-child {
margin-top: 0px;
}
.hion-ai-input-area {
margin-top: 2rem;
}
#hion-ai-results-container {
max-height: 55vh;
margin-top: 1rem;
}
#hion-ai-chat-content {
margin-top: 2rem;
}
.hion-result-snippet-wrapper {
gap: 0;
flex-direction: column;
}
.hion-result-snippet-image {
width: 100%;
height: 40vw;
opacity: 1;
}
#hion-ai-results-container .hion-result-box:first-child {
margin-top: 0px;
}
.hion-result-box {
font-family: georgia;
padding: 1rem 0.5rem;
}
.hion-result-snippet {
margin-top: 0;
background-color: #f1f1f1;
padding: 10px;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
color: #313131;
font-size: 1.5rem;
}
.hion-result-display-link {
color: #313131;
margin-top: 0.5rem;
}
.hion-result-title a {
font-size: 1.7rem;
line-height: 2rem;
}
`;
const styleElement = document.createElement('style');
styleElement.textContent = cssRules;
document.head.appendChild(styleElement);
//waitForElement(".related-header").then(function(element) {
// jQuery("#hion-ai-results-container").before(jQuery('.related-header'));
//});
}
</script>
<style>
footer li.otavamedia-footer__list-item a[href*="#"] {display:none;}
footer li.otavamedia-footer__list-item a.manageSettings {display:block;}
@media only screen and (min-width: 1000px) {
.card .recipe-time-and-servings {
justify-content: center;
}
}
body > main > div.page-content.page-toukola > h1, h2, h3 {
scroll-margin-top: 150px;
}
/*videoelementin piilotus etusivun uusimmat-listauksesta*/
#section-management-8 > ul .card__video-wrapper {
display: none;
}
</style>
<!-- Body end tag end, do not remove -->
</html>