{"id":1148,"date":"2026-10-15T14:59:07","date_gmt":"2026-10-15T13:59:07","guid":{"rendered":"https:\/\/lu.andufit.com\/?page_id=1148"},"modified":"2026-10-16T09:33:40","modified_gmt":"2026-10-16T08:33:40","slug":"stiff-back-morning","status":"publish","type":"page","link":"https:\/\/lu.andufit.com\/fi\/stiff-back-morning\/","title":{"rendered":"Miksi selk\u00e4si on j\u00e4ykempi aamulla kuin illalla"},"content":{"rendered":"\n<!-- ANDUFIT landing page: stiff-back-morning v2 (fi). Paste into ONE Custom HTML block on a blank page template. -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600&display=swap\" rel=\"stylesheet\">\n<style>\n\/* ANDUFIT design tokens, taken from andufit.com (Oct 2026) *\/\n#afx-lp {\n    --ink: #0B0F12;\n    --ink-70: rgba(11, 15, 18, .7);\n    --ink-60: rgba(11, 15, 18, .6);\n    --ink-45: rgba(11, 15, 18, .45);\n    --bg: #FFFFFF;\n    --soft: #F9F8F7;\n    --mist: #E4EEF1;\n    --teal: #00576E;\n    --aqua: #3DB7B0;\n    --deep: #07161C;\n    --line: rgba(11, 15, 18, .15);\n    --line-soft: rgba(11, 15, 18, .06);\n    --font: \"Inter\", system-ui, -apple-system, \"Segoe UI\", Roboto, Arial, sans-serif;\n    color-scheme: light;\n    box-sizing: border-box;\n    padding-top: env(safe-area-inset-top, 0px);\n}\n\n#afx-lp *, #afx-lp *::before, #afx-lp *::after {\n    box-sizing: inherit\n}\n\n#afx-lp {\n    -webkit-text-size-adjust: 100%\n}\n\n#afx-lp {\n    margin: 0;\n    background: var(--bg);\n    color: var(--ink);\n    font-family: var(--font);\n    font-size: 18px;\n    line-height: 1.65;\n    -webkit-font-smoothing: antialiased\n}\n\n#afx-lp img {\n    max-width: 100%;\n    height: auto;\n    display: block\n}\n\n#afx-lp a {\n    color: var(--teal)\n}\n\n#afx-lp :focus-visible {\n    outline: 2px solid var(--teal);\n    outline-offset: 3px;\n    border-radius: 4px\n}\n\n#afx-lp strong {\n    font-weight: 600\n}\n\n#afx-lp .col {\n    max-width: 844px;\n    margin: 0 auto;\n    padding: 0 22px\n}\n\n#afx-lp .wide {\n    max-width: 844px;\n    margin: 0 auto;\n    padding: 0 22px\n}\n\n#afx-lp .band {\n    background: var(--soft)\n}\n\/* header *\/\n\n#afx-lp .top {\n    border-bottom: 1px solid var(--line-soft);\n    background: var(--bg)\n}\n\n#afx-lp .top .wide {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    height: 60px\n}\n\n#afx-lp .logo img {\n    height: 22px;\n    width: auto\n}\n\n#afx-lp .adlabel {\n    font-size: 12px;\n    color: var(--ink-60);\n    border: 1px solid var(--line);\n    border-radius: 9999px;\n    padding: 3px 11px\n}\n\/* eyebrow, as on andufit.com *\/\n\n#afx-lp .eyebrow {\n    font-size: 13px;\n    font-weight: 600;\n    letter-spacing: .12em;\n    text-transform: uppercase;\n    color: var(--teal);\n    margin: 0 0 12px\n}\n\/* hero *\/\n\n#afx-lp .hero {\n    padding: 26px 0 0\n}\n\n#afx-lp h1 {\n    font-weight: 600;\n    font-size: clamp(31px, 6vw, 44px);\n    line-height: 1.1;\n    letter-spacing: -.01em;\n    margin: 0 0 16px\n}\n\n#afx-lp .dek {\n    font-size: 19px;\n    line-height: 1.55;\n    color: var(--ink-70);\n    margin: 0 0 22px\n}\n\n#afx-lp .byline {\n    display: flex;\n    gap: 12px;\n    align-items: center;\n    font-size: 14px;\n    color: var(--ink-60);\n    margin-bottom: 24px\n}\n\n#afx-lp .byline .avatar {\n    width: 44px;\n    height: 44px;\n    border-radius: 50%;\n    object-fit: cover;\n    background: var(--mist);\n    flex: 0 0 44px\n}\n\n#afx-lp .byline b {\n    color: var(--ink);\n    font-weight: 500;\n    display: block\n}\n\n#afx-lp .hero-fig {\n    margin: 0\n}\n\n#afx-lp .hero-fig img {\n    width: 100%;\n    aspect-ratio: 4\/3;\n    object-fit: cover;\n    border-radius: 10px\n}\n\n#afx-lp figcaption, #afx-lp .cap {\n    font-size: 14px;\n    color: var(--ink-60);\n    margin-top: 8px;\n    line-height: 1.5\n}\n\n#afx-lp .stars {\n    color: var(--aqua);\n    letter-spacing: 2px;\n    font-size: 14px;\n    line-height: 1\n}\n\n#afx-lp .stars .off {\n    color: var(--line)\n}\n\/* article *\/\n\n#afx-lp article {\n    padding: 26px 0 0\n}\n\n#afx-lp article p {\n    margin: 0 0 1.05em\n}\n\/* two-tone headings, as on andufit.com *\/\n\n#afx-lp h2 {\n    font-weight: 600;\n    font-size: clamp(25px, 4.4vw, 32px);\n    line-height: 1.18;\n    letter-spacing: -.01em;\n    margin: 2.1em 0 .55em;\n    color: var(--ink)\n}\n\n#afx-lp h3 {\n    font-weight: 600;\n    font-size: 22px;\n    line-height: 1.3;\n    letter-spacing: -.005em;\n    margin: 0 0 8px\n}\n\n#afx-lp .lead::first-letter {\n    font-weight: 600;\n    float: left;\n    font-size: 3.3em;\n    line-height: .9;\n    margin: .05em .09em 0 0;\n    color: var(--teal)\n}\n\n#afx-lp .pull {\n    border-left: 2px solid var(--aqua);\n    padding: 2px 0 2px 18px;\n    margin: 1.6em 0;\n    font-size: 21px;\n    line-height: 1.45;\n    font-weight: 400\n}\n\n#afx-lp .pull small {\n    display: block;\n    font-size: 13px;\n    color: var(--ink-60);\n    margin-top: 8px;\n    line-height: 1.5\n}\n\/* stat card, like the homepage benefit cards *\/\n\n#afx-lp .stat {\n    background: var(--soft);\n    border: 1px solid var(--line-soft);\n    border-radius: 10px;\n    padding: 22px;\n    margin: 1.4em 0\n}\n\n#afx-lp .stat .num {\n    font-weight: 400;\n    font-size: 48px;\n    line-height: 1;\n    color: var(--teal);\n    margin-bottom: 8px\n}\n\n#afx-lp .stat p {\n    margin: 0;\n    font-size: 16px;\n    line-height: 1.5\n}\n\n#afx-lp .stat .src {\n    display: block;\n    font-size: 13px;\n    color: var(--ink-60);\n    margin-top: 6px\n}\n\/* checklist, styled like the BEDCHECK options *\/\n\n#afx-lp .check {\n    background: var(--bg);\n    border: 1px solid var(--line-soft);\n    border-radius: 10px;\n    padding: 16px;\n    margin: 1.2em 0;\n    display: grid;\n    gap: 8px\n}\n\n#afx-lp .check label {\n    display: flex;\n    gap: 12px;\n    align-items: flex-start;\n    padding: 14px 16px;\n    border-radius: 10px;\n    border: 1px solid var(--line);\n    background: var(--soft);\n    cursor: pointer;\n    font-size: 16px;\n    line-height: 1.45;\n    transition: border-color .15s, background .15s\n}\n\n#afx-lp .check label:has(input:checked) {\n    border-color: var(--teal);\n    background: #EEF5F6\n}\n\n#afx-lp .check input {\n    appearance: none;\n    -webkit-appearance: none;\n    flex: 0 0 20px;\n    height: 20px;\n    margin: 1px 0 0;\n    border: 1.5px solid var(--ink-45);\n    border-radius: 50%;\n    display: grid;\n    place-items: center;\n    cursor: pointer;\n    background: var(--bg)\n}\n\n#afx-lp .check input:checked {\n    border-color: var(--teal);\n    background: var(--teal)\n}\n\n#afx-lp .check input:checked::after {\n    content: \"\";\n    width: 5px;\n    height: 9px;\n    border: solid #fff;\n    border-width: 0 2px 2px 0;\n    transform: rotate(45deg) translate(-.5px, -1px)\n}\n\n#afx-lp .check-out {\n    font-size: 14px;\n    color: var(--ink-60);\n    padding: 4px 4px 0;\n    min-height: 2.4em\n}\n\n#afx-lp .check-out.hit {\n    color: var(--teal);\n    font-weight: 500\n}\n\/* night timeline, in the dark science-section style *\/\n\n#afx-lp .night {\n    background: radial-gradient(120% 80% at 50% 110%, rgba(0, 87, 110, .55), transparent 60%), var(--deep);\n    color: #fff;\n    border-radius: 10px;\n    padding: 28px 22px 24px;\n    margin: 1.8em -6px\n}\n\n#afx-lp .night .eyebrow {\n    color: var(--aqua)\n}\n\n#afx-lp .night h3 {\n    margin-bottom: 6px;\n    color: #fff\n}\n\n#afx-lp .night .sub {\n    font-size: 14px;\n    color: rgba(255, 255, 255, .6);\n    margin: 0 0 18px\n}\n\n#afx-lp .toggle {\n    display: inline-grid;\n    grid-template-columns: 1fr 1fr;\n    max-width: 100%;\n    background: rgba(255, 255, 255, .08);\n    border: 1px solid rgba(255, 255, 255, .1);\n    border-radius: 9999px;\n    padding: 4px;\n    margin-bottom: 24px\n}\n\n#afx-lp .toggle button {\n    line-height: 1.3;\n    font-family: var(--font);\n    font-size: 14px;\n    font-weight: 500;\n    border: 0;\n    background: transparent;\n    color: rgba(255, 255, 255, .7);\n    padding: 9px 16px;\n    border-radius: 9999px;\n    cursor: pointer\n}\n\n#afx-lp .toggle button[aria-pressed=\"true\"] {\n    background: #fff;\n    color: var(--deep)\n}\n\n#afx-lp .tl {\n    list-style: none;\n    margin: 0;\n    padding: 0;\n    position: relative\n}\n\n#afx-lp .tl::before {\n    content: \"\";\n    position: absolute;\n    left: 62px;\n    top: 8px;\n    bottom: 8px;\n    width: 1.5px;\n    background: linear-gradient(rgba(255, 255, 255, .15), rgba(61, 183, 176, .7))\n}\n\n#afx-lp .tl li {\n    display: grid;\n    grid-template-columns: 50px 1fr;\n    gap: 24px;\n    padding: 0 0 18px;\n    position: relative\n}\n\n#afx-lp .tl li:last-child {\n    padding-bottom: 0\n}\n\n#afx-lp .tl time {\n    font-size: 13px;\n    font-weight: 500;\n    color: rgba(255, 255, 255, .55);\n    padding-top: 2px;\n    text-align: right;\n    font-variant-numeric: tabular-nums\n}\n\n#afx-lp .tl li::after {\n    content: \"\";\n    position: absolute;\n    left: 57px;\n    top: 7px;\n    width: 12px;\n    height: 12px;\n    border-radius: 50%;\n    background: var(--deep);\n    border: 1.5px solid rgba(255, 255, 255, .5)\n}\n\n#afx-lp .tl li.key::after {\n    background: var(--aqua);\n    border-color: var(--aqua);\n    box-shadow: 0 0 0 5px rgba(61, 183, 176, .2), 0 0 18px rgba(61, 183, 176, .6)\n}\n\n#afx-lp .tl b {\n    font-weight: 500;\n    font-size: 16px;\n    display: block;\n    margin-bottom: 2px;\n    color: #fff\n}\n\n#afx-lp .tl span {\n    font-size: 16px;\n    line-height: 1.55;\n    color: rgba(255, 255, 255, .7)\n}\n\n#afx-lp .tl[hidden] {\n    display: none\n}\n\n#afx-lp .tl.show {\n    animation: fade .35s ease\n}\n\n@keyframes fade {\n    from {\n        opacity:0\n    }\n\n    to {\n        opacity: 1\n    }\n}\n\n#afx-lp .night .verdict {\n    margin: 22px 0 0;\n    padding-top: 16px;\n    border-top: 1px solid rgba(255, 255, 255, .1);\n    font-size: 16px;\n    color: #fff\n}\n\/* tried list *\/\n\n#afx-lp .tried {\n    display: grid;\n    gap: 10px;\n    margin: 1.2em 0\n}\n\n#afx-lp .tried div {\n    background: var(--soft);\n    border: 1px solid var(--line-soft);\n    border-radius: 10px;\n    padding: 16px 18px\n}\n\n#afx-lp .tried h3 {\n    display: flex;\n    justify-content: space-between;\n    gap: 12px;\n    align-items: baseline;\n    font-size: 17px;\n    margin-bottom: 6px\n}\n\n#afx-lp .tried h3 em {\n    font-style: normal;\n    font-size: 13px;\n    font-weight: 500;\n    color: var(--teal);\n    white-space: nowrap;\n    border: 1px solid rgba(0, 87, 110, .3);\n    border-radius: 9999px;\n    padding: 2px 9px\n}\n\n#afx-lp .tried p {\n    margin: 0;\n    font-size: 16px;\n    line-height: 1.55;\n    color: var(--ink-70)\n}\n\/* product *\/\n\n#afx-lp .product {\n    padding: 10px 0 34px;\n    margin: 2.4em 0 0\n}\n\n#afx-lp .product h2 {\n    margin-top: 1.3em\n}\n\n#afx-lp .photo {\n    margin: 1.2em 0 .4em;\n    border-radius: 10px;\n    overflow: hidden;\n    background: var(--deep)\n}\n\n#afx-lp .photo img {\n    width: 100%;\n    aspect-ratio: 16\/10;\n    object-fit: cover\n}\n\n#afx-lp .photo video {\n    display: block;\n    width: 100%;\n    height: auto;\n    object-fit: cover;\n    background: var(--soft)\n}\n\n#afx-lp .photo.video {\n    background: var(--soft)\n}\n\n#afx-lp .specs {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 10px;\n    margin: 18px 0\n}\n\n#afx-lp .specs div {\n    background: var(--bg);\n    border: 1px solid var(--line-soft);\n    border-radius: 10px;\n    padding: 15px 16px\n}\n\n#afx-lp .specs b {\n    font-weight: 600;\n    font-size: 24px;\n    color: var(--teal);\n    display: block;\n    line-height: 1.15\n}\n\n#afx-lp .specs span {\n    font-size: 15px;\n    color: var(--ink-70);\n    line-height: 1.45;\n    display: block;\n    margin-top: 4px\n}\n\/* ritual *\/\n\n#afx-lp .ritual {\n    display: grid;\n    gap: 10px;\n    margin: 1.2em 0\n}\n\n#afx-lp .ritual div {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 10px;\n    align-content: start;\n    align-items: start;\n    background: var(--bg);\n    border: 1px solid var(--line-soft);\n    border-radius: 10px;\n    padding: 16px 18px\n}\n\n#afx-lp .ritual .when {\n    font-size: 15px;\n    font-weight: 500;\n    justify-self: start;\n    color: var(--teal);\n    border: 1px solid rgba(0, 87, 110, .35);\n    border-radius: 9999px;\n    padding: 6px 14px;\n    text-align: center;\n    white-space: nowrap\n}\n\n#afx-lp .ritual p {\n    margin: 0;\n    font-size: 15px;\n    line-height: 1.5;\n    color: var(--ink-70)\n}\n\/* CTA, matches \"Bekijk de prijs\" on andufit.com *\/\n\n#afx-lp .btn {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 100%;\n    min-height: 58px;\n    padding: 16px 32px;\n    background: var(--teal);\n    color: #fff;\n    font-family: var(--font);\n    font-weight: 400;\n    font-size: 17px;\n    border-radius: 8px;\n    text-decoration: none;\n    text-align: center\n}\n\n#afx-lp .btn:hover {\n    background: #00485B\n}\n\n#afx-lp .cta-block {\n    margin: 1.6em 0 0\n}\n\n#afx-lp .cta-note {\n    font-size: 14px;\n    color: var(--ink-60);\n    text-align: center;\n    margin-top: 10px\n}\n\/* study, in the dark science style with the PubMed pill *\/\n\n#afx-lp .study {\n    background: var(--soft);\n    border: 1px solid var(--line-soft);\n    border-radius: 14px;\n    padding: 22px 18px;\n    margin: 1.4em 0 .8em\n}\n\n#afx-lp .pill {\n    display: inline-block;\n    font-size: 13px;\n    font-weight: 600;\n    letter-spacing: .02em;\n    color: var(--teal);\n    background: var(--mist);\n    border-radius: 9999px;\n    padding: 6px 13px;\n    margin-bottom: 14px\n}\n\n#afx-lp .study h3 {\n    font-size: 20px;\n    margin: 0 0 4px\n}\n\n#afx-lp .study .meta {\n    font-size: 14px;\n    color: var(--ink-60);\n    margin: 0 0 16px\n}\n\n#afx-lp .setup {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 10px\n}\n\n#afx-lp .setup div {\n    background: var(--bg);\n    border: 1px solid var(--line-soft);\n    border-radius: 10px;\n    padding: 13px 15px\n}\n\n#afx-lp .setup b {\n    display: block;\n    font-size: 16px;\n    font-weight: 600;\n    line-height: 1.3\n}\n\n#afx-lp .setup span {\n    display: block;\n    font-size: 14px;\n    color: var(--ink-60);\n    margin-top: 2px\n}\n\n#afx-lp .study-grid {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    gap: 10px;\n    margin: 14px 0 0\n}\n\n#afx-lp .study-grid div {\n    border-top: 2px solid var(--aqua);\n    padding: 12px 2px 0\n}\n\n#afx-lp .study-grid b {\n    font-weight: 600;\n    font-size: 26px;\n    color: var(--teal);\n    display: block;\n    line-height: 1.15\n}\n\n#afx-lp .study-grid span {\n    font-size: 14px;\n    color: var(--ink-70);\n    line-height: 1.35;\n    display: block;\n    margin-top: 4px\n}\n\n#afx-lp .fine {\n    font-size: 13px;\n    line-height: 1.55;\n    color: var(--ink-60)\n}\n\/* faq *\/\n\n#afx-lp .faq details {\n    border-bottom: 1px solid var(--line)\n}\n\n#afx-lp .faq summary {\n    list-style: none;\n    cursor: pointer;\n    font-weight: 600;\n    font-size: 17px;\n    padding: 18px 34px 18px 0;\n    position: relative\n}\n\n#afx-lp .faq summary::-webkit-details-marker {\n    display: none\n}\n\n#afx-lp .faq summary::after {\n    content: \"\";\n    position: absolute;\n    right: 6px;\n    top: 24px;\n    width: 9px;\n    height: 9px;\n    border: solid var(--ink-60);\n    border-width: 0 1.5px 1.5px 0;\n    transform: rotate(45deg);\n    transition: transform .2s\n}\n\n#afx-lp .faq details[open] summary::after {\n    transform: rotate(-135deg);\n    top: 28px\n}\n\n#afx-lp .faq details p {\n    margin: 0 0 18px;\n    font-size: 16px;\n    color: var(--ink-70)\n}\n\/* offer *\/\n\n#afx-lp .offer {\n    background: var(--soft);\n    border: 1px solid var(--line-soft);\n    border-radius: 10px;\n    padding: 28px 22px;\n    margin: 2.4em 0 1em\n}\n\n#afx-lp .offer h2 {\n    margin: 0 0 10px\n}\n\n#afx-lp .offer ul {\n    list-style: none;\n    padding: 0;\n    margin: 18px 0 22px;\n    display: grid;\n    gap: 10px\n}\n\n#afx-lp .offer li {\n    display: flex;\n    gap: 12px;\n    font-size: 16px;\n    line-height: 1.45\n}\n\n#afx-lp .offer li svg {\n    flex: 0 0 20px;\n    margin-top: 2px;\n    color: var(--aqua)\n}\n\n#afx-lp .offer h2 {\n    font-size: clamp(24px, 4vw, 30px);\n    line-height: 1.2\n}\n\n#afx-lp .offer > p {\n    margin: 0\n}\n\n#afx-lp .trial {\n    list-style: none;\n    margin: 20px 0 6px;\n    padding: 0;\n    display: grid;\n    gap: 10px\n}\n\n#afx-lp .trial li {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 4px;\n    align-content: start;\n    background: var(--bg);\n    border: 1px solid var(--line-soft);\n    border-radius: 10px;\n    padding: 18px\n}\n\n#afx-lp .trial b {\n    justify-self: start;\n    font-size: 15px;\n    font-weight: 500;\n    color: var(--teal);\n    border: 1px solid rgba(0, 87, 110, .35);\n    border-radius: 9999px;\n    padding: 6px 14px;\n    white-space: nowrap;\n    margin-bottom: 8px\n}\n\n#afx-lp .trial span {\n    font-size: 15px;\n    line-height: 1.5;\n    color: var(--ink-70)\n}\n\n@media (min-width: 760px) {\n    #afx-lp .trial {\n        grid-template-columns: repeat(3, 1fr)\n    }\n\n    #afx-lp .trial li {\n        grid-template-columns: 1fr;\n        gap: 4px;\n        align-content: start;\n        align-items: start\n    }\n}\n\n#afx-lp .signoff {\n    font-family: \"Freestyle Script\", \"Brush Script MT\", cursive;\n    font-size: 34px;\n    color: var(--teal);\n    text-align: center;\n    margin: 20px 0 0\n}\n\n#afx-lp .sources {\n    border-top: 1px solid var(--line-soft);\n    margin-top: 3em;\n    padding: 22px 0 130px\n}\n\n#afx-lp .sources h2 {\n    font-size: 16px;\n    font-weight: 500;\n    margin: 0 0 10px\n}\n\n#afx-lp .sources ol {\n    padding-left: 20px;\n    margin: 0 0 16px\n}\n\n#afx-lp .sources li {\n    font-size: 13px;\n    line-height: 1.55;\n    color: var(--ink-60);\n    margin-bottom: 6px\n}\n\/* floating CTA: same style as the main button, appears in the product section *\/\n\n#afx-lp .sticky {\n    position: fixed;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    z-index: 20;\n    pointer-events: none;\n    background: none;\n    border: 0;\n    box-shadow: none;\n    padding: 0 16px calc(14px + env(safe-area-inset-bottom, 0px));\n    transform: translateY(140%);\n    transition: transform .35s ease\n}\n\n#afx-lp .sticky.on {\n    transform: none\n}\n\n#afx-lp .sticky .inner {\n    max-width: 800px;\n    margin: 0 auto;\n    pointer-events: auto;\n    background: none;\n    border: 0;\n    padding: 0\n}\n\n#afx-lp .sticky .btn {\n    box-shadow: 0 12px 28px -10px rgba(0, 40, 50, .55), 0 2px 6px rgba(0, 40, 50, .15)\n}\n\n@media (min-width: 760px) {\n    #afx-lp .night {\n        padding: 34px 34px 28px\n    }\n}\n\n@media (max-width: 420px) {\n    #afx-lp {\n        font-size: 17px\n    }\n\n    #afx-lp .study-grid b {\n        font-size: 22px\n    }\n}\n\/* ===== Solution section: dark brand band, product image blends into the background ===== *\/\n\n#afx-lp .sol {\n    margin: 2.4em 0 0\n}\n\n#afx-lp .sol-card {\n    background: radial-gradient(90% 40% at 50% 30%, #2a454c 0%, #1e343a 60%, #15272d 100%);\n    color: #fff;\n    border-radius: 14px;\n    padding: 36px 22px 30px;\n    margin: 0 -10px\n}\n\n#afx-lp .sol .eyebrow {\n    color: var(--aqua)\n}\n\n#afx-lp .sol h2 {\n    color: #fff;\n    margin-top: 0\n}\n\n#afx-lp .sol h3 {\n    color: #fff;\n    font-size: 26px;\n    margin: 2.2em 0 .5em\n}\n\n#afx-lp .sol p {\n    color: rgba(255, 255, 255, .78)\n}\n\n#afx-lp .sol .cap {\n    color: rgba(255, 255, 255, .55)\n}\n\n#afx-lp .sol-lead {\n    font-size: 18px;\n    line-height: 1.6\n}\n\n#afx-lp .sol-hero {\n    position: relative;\n    margin: 4px -12px 0;\n    padding: 0\n}\n\n#afx-lp .sol-hero img {\n    width: 100%;\n    height: auto;\n    -webkit-mask-image: radial-gradient(ellipse 72% 70% at 50% 52%, #000 55%, transparent 100%);\n    mask-image: radial-gradient(ellipse 72% 70% at 50% 52%, #000 55%, transparent 100%)\n}\n\n#afx-lp .chip {\n    position: absolute;\n    font-size: 13px;\n    font-weight: 500;\n    color: #fff;\n    background: rgba(7, 22, 28, .55);\n    border: 1px solid rgba(61, 183, 176, .55);\n    border-radius: 9999px;\n    padding: 6px 12px;\n    white-space: nowrap;\n    -webkit-backdrop-filter: blur(6px);\n    backdrop-filter: blur(6px)\n}\n\n#afx-lp .chip::before {\n    content: \"\";\n    display: inline-block;\n    width: 7px;\n    height: 7px;\n    border-radius: 50%;\n    background: var(--aqua);\n    box-shadow: 0 0 10px var(--aqua);\n    margin-right: 8px;\n    vertical-align: 1px\n}\n\n#afx-lp .figures {\n    list-style: none;\n    margin: 0;\n    padding: 22px 0;\n    display: grid;\n    grid-template-columns: repeat(4, 1fr);\n    border-top: 1px solid rgba(255, 255, 255, .12);\n    border-bottom: 1px solid rgba(255, 255, 255, .12)\n}\n\n#afx-lp .figures li {\n    text-align: center;\n    padding: 0 6px\n}\n\n#afx-lp .figures li + li {\n    border-left: 1px solid rgba(255, 255, 255, .12)\n}\n\n#afx-lp .figures b {\n    display: block;\n    font-size: 30px;\n    font-weight: 600;\n    line-height: 1.1;\n    color: var(--aqua)\n}\n\n#afx-lp .figures span {\n    display: block;\n    font-size: 13px;\n    color: rgba(255, 255, 255, .65);\n    margin-top: 4px\n}\n\n#afx-lp .frame {\n    margin: 1em 0 .4em;\n    border-radius: 10px;\n    overflow: hidden;\n    border: 1px solid rgba(255, 255, 255, .1);\n    background: #0f1e23\n}\n\n#afx-lp .frame video {\n    display: block;\n    width: 100%;\n    height: auto;\n    object-fit: cover\n}\n\n#afx-lp .steps {\n    list-style: none;\n    margin: 18px 0 0;\n    padding: 0;\n    display: grid;\n    gap: 14px;\n    counter-reset: st\n}\n\n#afx-lp .steps li {\n    display: grid;\n    grid-template-columns: 32px 1fr;\n    column-gap: 14px;\n    counter-increment: st\n}\n\n#afx-lp .steps li::before {\n    content: counter(st);\n    grid-row: 1\/span 2;\n    width: 32px;\n    height: 32px;\n    border-radius: 50%;\n    border: 1px solid rgba(61, 183, 176, .6);\n    color: var(--aqua);\n    font-size: 14px;\n    font-weight: 600;\n    display: grid;\n    place-items: center\n}\n\n#afx-lp .steps b {\n    font-size: 17px;\n    font-weight: 600;\n    color: #fff;\n    line-height: 1.35;\n    padding-top: 5px\n}\n\n#afx-lp .steps span {\n    font-size: 16px;\n    line-height: 1.55;\n    color: rgba(255, 255, 255, .72)\n}\n\n#afx-lp .sol .specs {\n    margin: 18px 0 0\n}\n\n#afx-lp .sol .specs div {\n    padding: 18px\n}\n\n@media (max-width: 520px) {\n    #afx-lp .sol .specs {\n        grid-template-columns: 1fr\n    }\n}\n\n#afx-lp .sol .specs div {\n    background: rgba(255, 255, 255, .05);\n    border: 1px solid rgba(255, 255, 255, .1)\n}\n\n#afx-lp .sol .specs b {\n    color: var(--aqua);\n    font-size: 20px;\n    line-height: 1.3\n}\n\n#afx-lp .sol .specs span {\n    color: rgba(255, 255, 255, .75);\n    margin-top: 6px;\n    font-size: 15px;\n    line-height: 1.5\n}\n\n#afx-lp .science {\n    margin-top: .6em\n}\n\n#afx-lp .couple {\n    margin-top: .6em\n}\n\n#afx-lp .couple .ritual {\n    margin-top: 1.2em\n}\n\n#afx-lp .couple .ritual div {\n    background: var(--soft)\n}\n\n@media (min-width: 760px) {\n    #afx-lp .couple .ritual {\n        grid-template-columns: 1fr 1fr\n    }\n}\n\n#afx-lp .sol .ritual div {\n    background: rgba(255, 255, 255, .05);\n    border: 1px solid rgba(255, 255, 255, .1)\n}\n\n#afx-lp .sol .ritual p {\n    color: rgba(255, 255, 255, .85)\n}\n\n#afx-lp .sol .ritual .when {\n    color: var(--aqua);\n    border-color: rgba(61, 183, 176, .5)\n}\n\n@media (min-width: 760px) {\n    #afx-lp .steps {\n        grid-template-columns: repeat(3, 1fr);\n        gap: 24px\n    }\n\n    #afx-lp .steps li {\n        grid-template-columns: 1fr;\n        grid-row: span 3;\n        grid-template-rows: subgrid;\n        row-gap: 8px\n    }\n\n    #afx-lp .steps li::before {\n        grid-row: auto\n    }\n\n    #afx-lp .steps b {\n        padding-top: 0\n    }\n\n    #afx-lp .sol .ritual {\n        grid-template-columns: 1fr 1fr\n    }\n\n    #afx-lp .sol-card {\n        padding: 52px 48px 44px;\n        margin: 0 -24px\n    }\n\n    #afx-lp .sol-hero {\n        margin: 4px -24px 0\n    }\n}\n\n@media (max-width: 480px) {\n    #afx-lp .figures {\n        grid-template-columns: 1fr 1fr;\n        row-gap: 18px\n    }\n\n    #afx-lp .figures li:nth-child(3) {\n        border-left: 0\n    }\n\n    #afx-lp .figures b {\n        font-size: 26px\n    }\n\n    #afx-lp .chip {\n        font-size: 11.5px;\n        padding: 4px 9px\n    }\n\n    #afx-lp .sol h3 {\n        font-size: 23px\n    }\n}\n\n@media (prefers-reduced-motion: reduce) {\n    #afx-lp * {\n        animation: none !important;\n        transition: none !important\n    }\n}\n\n\/* resets against theme styles *\/\n#afx-lp img, #afx-lp video {\n    border: 0;\n    box-shadow: none;\n    margin: 0\n}\n\n#afx-lp figure {\n    margin-left: 0;\n    margin-right: 0\n}\n\n#afx-lp ul, #afx-lp ol {\n    margin-left: 0\n}\n\n#afx-lp a.btn, #afx-lp a.btn:hover, #afx-lp a.btn:focus {\n    color: #fff;\n    text-decoration: none\n}\n\n#afx-lp h1, #afx-lp h2, #afx-lp h3 {\n    font-family: var(--font);\n    text-transform: none\n}\n\n\/* hide leftover theme chrome (Shoptimizer header bar, footer, mobile bars) on this page only *\/\nbody #masthead, body .site-header, body .header-4-container, body .col-full-nav, body .site-footer, body #colophon, body .shoptimizer-mobile-menu-bar, body .mobile-footer-bar {\n    display: none !important\n}\n\nhtml, body {\n    background: #fff !important\n}\n\nbody .site-content {\n    padding-top: 0 !important\n}\n\/* ===== Rugcheck survey (flow and scoring as the bedcheck on andufit.com) ===== *\/\n\n.sv {\n    background: var(--bg);\n    border: 1px solid var(--line);\n    border-radius: 14px;\n    padding: 20px 18px 22px;\n    margin: 1.2em 0 .4em;\n    box-shadow: 0 1px 2px rgba(11, 15, 18, .04)\n}\n\n#afx-lp .sv-head {\n    display: flex;\n    justify-content: space-between;\n    align-items: baseline;\n    margin-bottom: 10px\n}\n\n#afx-lp .sv-eyebrow {\n    font-size: 13px;\n    font-weight: 600;\n    letter-spacing: .12em;\n    text-transform: uppercase;\n    color: var(--teal);\n    margin: 0\n}\n\n#afx-lp .sv-count {\n    font-size: 13px;\n    color: var(--ink-60)\n}\n\n#afx-lp .sv-bar {\n    height: 4px;\n    border-radius: 9999px;\n    background: rgba(11, 15, 18, .08);\n    overflow: hidden;\n    margin-bottom: 18px\n}\n\n#afx-lp .sv-bar i {\n    display: block;\n    height: 100%;\n    width: 33%;\n    background: var(--teal);\n    border-radius: 9999px;\n    transition: width .35s ease\n}\n\n#afx-lp .sv-step h3 {\n    font-size: 20px;\n    margin: 0 0 4px\n}\n\n#afx-lp .sv-hint {\n    font-size: 15px;\n    color: var(--ink-60);\n    margin: 0 0 14px\n}\n\n#afx-lp .sv .check {\n    border: 0;\n    padding: 0;\n    margin: 0\n}\n\n#afx-lp .sv-nav {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    margin-top: 18px;\n    gap: 12px\n}\n\n#afx-lp .sv-btn {\n    font-family: var(--font);\n    font-size: 16px;\n    font-weight: 500;\n    color: #fff;\n    background: var(--teal);\n    border: 0;\n    border-radius: 8px;\n    padding: 13px 22px;\n    min-height: 48px;\n    cursor: pointer\n}\n\n#afx-lp .sv-btn:disabled {\n    background: rgba(11, 15, 18, .12);\n    color: var(--ink-45);\n    cursor: default\n}\n\n#afx-lp .sv-back {\n    font-family: var(--font);\n    font-size: 15px;\n    color: var(--ink-60);\n    background: none;\n    border: 0;\n    padding: 10px 0;\n    cursor: pointer\n}\n\n#afx-lp .sv-back:hover {\n    color: var(--teal)\n}\n\n#afx-lp .sv-options {\n    display: grid;\n    gap: 8px\n}\n\n#afx-lp .sv-options button {\n    display: flex;\n    gap: 12px;\n    align-items: center;\n    text-align: left;\n    font-family: var(--font);\n    font-size: 16px;\n    color: var(--ink);\n    background: var(--soft);\n    border: 1px solid var(--line);\n    border-radius: 10px;\n    padding: 14px 16px;\n    min-height: 52px;\n    cursor: pointer;\n    transition: border-color .15s, background .15s\n}\n\n#afx-lp .sv-options button i {\n    flex: 0 0 20px;\n    height: 20px;\n    border: 1.5px solid var(--ink-45);\n    border-radius: 50%;\n    display: grid;\n    place-items: center\n}\n\n#afx-lp .sv-options button[aria-checked=\"true\"] {\n    border-color: var(--teal);\n    background: #EEF5F6\n}\n\n#afx-lp .sv-options button[aria-checked=\"true\"] i {\n    border-color: var(--teal);\n    background: var(--teal);\n    box-shadow: inset 0 0 0 4px #EEF5F6\n}\n\n#afx-lp .sv-scale {\n    margin-top: 16px\n}\n\n#afx-lp .sv-scale p {\n    font-size: 16px;\n    line-height: 1.35;\n    margin: 0 0 8px\n}\n\n#afx-lp .sv-nums {\n    display: flex;\n    gap: 6px\n}\n\n#afx-lp .sv-nums button {\n    flex: 1;\n    min-width: 0;\n    height: 46px;\n    font-family: var(--font);\n    font-size: 16px;\n    color: var(--ink-70);\n    background: var(--soft);\n    border: 1px solid rgba(11, 15, 18, .2);\n    border-radius: 8px;\n    cursor: pointer;\n    transition: all .15s\n}\n\n#afx-lp .sv-nums button:hover {\n    border-color: var(--teal);\n    color: var(--teal);\n    background: #fff\n}\n\n#afx-lp .sv-nums button[aria-pressed=\"true\"] {\n    background: var(--teal);\n    border-color: var(--teal);\n    color: #fff;\n    font-weight: 600\n}\n\n#afx-lp .sv-ends {\n    display: flex;\n    justify-content: space-between;\n    font-size: 13px;\n    color: var(--ink-45);\n    margin-top: 4px\n}\n\n#afx-lp .sv-score {\n    background: #E4EEF1;\n    border: 1px solid rgba(0, 87, 110, .18);\n    border-radius: 12px;\n    padding: 18px\n}\n\n#afx-lp .sv-big {\n    display: flex;\n    align-items: baseline;\n    gap: 8px;\n    margin: 6px 0 10px\n}\n\n#afx-lp .sv-big b {\n    font-size: 56px;\n    font-weight: 500;\n    line-height: 1;\n    color: var(--band-text, #a16207);\n    font-variant-numeric: tabular-nums\n}\n\n#afx-lp .sv-big span {\n    font-size: 15px;\n    color: var(--ink-60)\n}\n\n#afx-lp .sv-meter {\n    height: 8px;\n    border-radius: 9999px;\n    background: #fff;\n    overflow: hidden\n}\n\n#afx-lp .sv-meter i {\n    display: block;\n    height: 100%;\n    width: 0;\n    background: var(--band-bar, #eab308);\n    border-radius: 9999px;\n    transition: width .9s ease\n}\n\n#afx-lp .sv-what {\n    font-size: 14px;\n    color: var(--ink-60);\n    margin: 10px 0 14px\n}\n\n#afx-lp .sv-score h3 {\n    font-size: 19px;\n    margin: 0 0 4px\n}\n\n#afx-lp .sv-score p:last-child {\n    font-size: 15px;\n    color: var(--ink-70);\n    margin: 0\n}\n\n#afx-lp .sv-report {\n    margin-top: 14px;\n    border: 1px solid var(--line);\n    border-radius: 12px;\n    padding: 18px\n}\n\n#afx-lp .sv-author {\n    display: flex;\n    gap: 14px;\n    align-items: center;\n    margin-bottom: 10px\n}\n\n#afx-lp .sv-author img {\n    width: 56px;\n    height: 56px;\n    border-radius: 50%;\n    object-fit: cover;\n    flex: 0 0 56px\n}\n\n#afx-lp .sv-author h3 {\n    font-size: 19px;\n    margin: 0 0 2px\n}\n\n#afx-lp .sv-author p {\n    font-size: 14px;\n    color: var(--teal);\n    margin: 0\n}\n\n#afx-lp .sv-lead {\n    font-size: 15px;\n    color: var(--ink-70);\n    margin: 0 0 14px\n}\n\n#afx-lp .sv-sr {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    overflow: hidden;\n    clip: rect(0 0 0 0)\n}\n\n#afx-lp #svEmail {\n    display: block;\n    width: 100%;\n    font-family: var(--font);\n    font-size: 17px;\n    color: var(--ink);\n    background: #fff;\n    border: 1px solid rgba(11, 15, 18, .2);\n    border-radius: 10px;\n    padding: 14px 16px;\n    margin: 0 0 10px;\n    min-height: 52px\n}\n\n#afx-lp #svEmail:focus {\n    outline: 2px solid var(--teal);\n    outline-offset: 1px;\n    border-color: var(--teal)\n}\n\n#afx-lp .sv-err {\n    font-size: 14px;\n    color: #b3261e;\n    margin: 8px 0 0;\n    min-height: 0\n}\n\n#afx-lp .sv-consent {\n    font-size: 13px;\n    color: var(--ink-60);\n    margin: 10px 0 0\n}\n\n#afx-lp .sv-consent a {\n    color: var(--ink-60)\n}\n\n#afx-lp .sv-done h3 {\n    font-size: 19px;\n    margin: 0 0 4px;\n    color: var(--teal)\n}\n\n#afx-lp .sv-done p {\n    font-size: 15px;\n    color: var(--ink-70);\n    margin: 0\n}\n\n#afx-lp .sv-restart {\n    display: block;\n    margin: 12px auto 0;\n    font-size: 14px\n}\n\n#afx-lp .sv-step {\n    animation: svIn .3s ease\n}\n\n@keyframes svIn {\n    from {\n        opacity: 0;\n        transform:translateY(6px)\n    }\n\n    to {\n        opacity: 1;\n        transform: none\n    }\n}\n\n@media (min-width: 760px) {\n    #afx-lp .sv {\n        padding: 28px 30px 30px\n    }\n\n    #afx-lp .sv-options {\n        grid-template-columns: 1fr 1fr\n    }\n}\n\n#afx-lp .sv-lg button {\n    font-size: 18px;\n    font-weight: 500;\n    min-height: 58px\n}\n\n#afx-lp .sv-chips {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px\n}\n\n#afx-lp .sv-chips button {\n    font-family: var(--font);\n    font-size: 16px;\n    color: var(--ink);\n    background: var(--soft);\n    border: 1px solid var(--line);\n    border-radius: 9999px;\n    padding: 11px 18px;\n    min-height: 46px;\n    cursor: pointer;\n    transition: all .15s\n}\n\n#afx-lp .sv-chips button[aria-pressed=\"true\"] {\n    background: var(--teal);\n    border-color: var(--teal);\n    color: #fff\n}\n\n#afx-lp .sv-step h3 {\n    font-size: 21px\n}\n\n#afx-lp .sv-step .sv-scale {\n    margin-top: 10px\n}\n\n\/* consistent question layout: same title size, same gap to answers, same answer text size *\/\n#afx-lp .sv-step h3 {\n    font-size: 21px;\n    line-height: 1.3;\n    margin: 0 0 16px\n}\n\n#afx-lp .sv-step .sv-hint {\n    margin: -10px 0 16px;\n    font-size: 15px\n}\n\n#afx-lp .sv-step .sv-scale {\n    margin: 0\n}\n\n#afx-lp .sv-options button, #afx-lp .sv-lg button {\n    font-size: 17px;\n    font-weight: 400;\n    min-height: 54px\n}\n\n#afx-lp .sv-nums button {\n    font-size: 17px;\n    height: 54px\n}\n\n#afx-lp .sv-chips button {\n    font-size: 17px;\n    min-height: 48px\n}\n\n#afx-lp .sv-ends {\n    margin-top: 8px\n}\n\n#afx-lp .sv-nav {\n    margin-top: 20px\n}\n\n\/* scale end labels: above the buttons, clearly readable *\/\n#afx-lp .sv-ends {\n    display: flex;\n    justify-content: space-between;\n    margin: 0 0 8px;\n    font-size: 15px;\n    font-weight: 600;\n    color: var(--teal)\n}\n\n#afx-lp .byline-role {\n    display: block;\n    font-size: 13.5px;\n    line-height: 1.4;\n    color: var(--ink-60);\n    margin-top: 2px\n}\n\n#afx-lp .byline {\n    align-items: flex-start\n}\n\n#afx-lp .byline .avatar {\n    margin-top: 2px\n}\n\n#afx-lp .sv-head {\n    flex-wrap: wrap;\n    row-gap: 4px;\n    column-gap: 12px\n}\n\n#afx-lp .sv-head .sv-eyebrow, #afx-lp .sv-head .sv-count {\n    white-space: nowrap\n}\n\n#afx-lp .sv-head .sv-eyebrow {\n    letter-spacing: .1em\n}\n\n\/* iOS Safari tints its bottom toolbar from fixed elements near the bottom edge.\n   Remove the floating button from layout while it is hidden, and drop unused theme drawers. *\/\n#afx-lp .sticky:not(.on) {\n    display: none\n}\n\n#afx-lp .sticky.on {\n    animation: afxStickyIn .35s ease both\n}\n\n@keyframes afxStickyIn {\n    from {\n        transform:translateY(140%)\n    }\n\n    to {\n        transform: none\n    }\n}\n\n#shoptimizerCartDrawer, .shoptimizer-mini-cart-wrap, .col-full-nav {\n    display: none !important\n}\n\n\/* keep the floating button off the screen edge, so Safari does not sample it for its toolbar colour *\/\n#afx-lp .sticky {\n    bottom: calc(14px + env(safe-area-inset-bottom, 0px));\n    padding: 0 16px;\n    background: transparent\n}\n<\/style>\n<div id=\"afx-lp\">\n    <header class=\"top\">\n        <div class=\"wide\">\n            <a class=\"logo\" href=\"https:\/\/www.andufit.com\/\" data-track=\"logo\">\n                <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.andufit.com\/logo-andufit.png\" alt=\"ANDUFIT\" width=\"81\" height=\"22\">\n            <\/a>\n        <\/div>\n    <\/header>\n\n    <main>\n        <section class=\"hero\">\n            <div class=\"col\">\n                <h1>Miksi selk\u00e4si on j\u00e4ykempi aamulla kuin illalla<\/h1>\n                <p class=\"dek\">Mit\u00e4 sel\u00e4ss\u00e4si tapahtuu y\u00f6ll\u00e4, miksi uusi patja ei usein ratkaise asiaa ja miten ANDUFIT, patjan alle asetettava hierontamoduuli, rentouttaa selk\u00e4si jo ennen kuin nouset yl\u00f6s.<\/p>\n                <div class=\"byline\">\n                    <img loading=\"lazy\" decoding=\"async\" class=\"avatar\" src=\"https:\/\/nl.andufit.com\/wp-content\/uploads\/sites\/2\/2026\/10\/dr-roland-portrait.webp\" width=\"44\" height=\"44\" alt=\"\">\n                    <div>\n                        <b>Yhteisty\u00f6ss\u00e4 dr. Roland Stutzin kanssa<\/b>\n                        <span class=\"byline-role\">Liikuntatieteilij\u00e4 ja Andullation\u00ae-tieteellisen neuvottelukunnan puheenjohtaja<\/span>\n                    <\/div>\n                <\/div>\n                <figure class=\"hero-fig\">\n                    <img decoding=\"async\" src=\"https:\/\/nl.andufit.com\/wp-content\/uploads\/sites\/2\/2026\/10\/andufit-man-in-bed-controller.webp\" width=\"1200\" height=\"896\" alt=\"Mies istuu rentoutuneena s\u00e4ngyss\u00e4 ANDUFIT-kaukos\u00e4\u00e4din k\u00e4dess\u00e4\u00e4n, n\u00e4yt\u00f6ll\u00e4 ohjelma P08\" fetchpriority=\"high\">\n                    <figcaption>Her\u00e4\u00e4 ja rentouta selk\u00e4si ensin ANDUFIT-hierontamoduulilla, jo ennen kuin nouset yl\u00f6s.<\/figcaption>\n                <\/figure>\n            <\/div>\n        <\/section>\n\n        <article>\n            <div class=\"col\">\n                <h2 style=\"margin-top:.8em\">P\u00e4iv\u00e4n ensimm\u00e4inen vartti<\/h2>\n                <p class=\"lead\">Her\u00e4tyskello soi. K\u00e4\u00e4nn\u00e4t kylke\u00e4, ja siin\u00e4 se taas on. Selk\u00e4 tuntuu laudalta. Lasket jalat varovasti lattialle, ponnistat itsesi k\u00e4sill\u00e4 yl\u00f6s, ja ensimm\u00e4iset askeleesi kylpyhuoneeseen ovat lyhyempi\u00e4 kuin haluaisit.<\/p>\n                <p>Puoleenp\u00e4iv\u00e4\u00e4n menness\u00e4 se on yleens\u00e4 ohi. P\u00e4iv\u00e4ll\u00e4 et juuri ajattele sit\u00e4. Seuraavaan aamuun asti, jolloin kaikki alkaa alusta.<\/p>\n                <p>Moni syytt\u00e4\u00e4 ik\u00e4\u00e4, patjaa tai nukkumisasentoa. Niill\u00e4kin voi olla osuutta. Taustalla on kuitenkin jotain, mit\u00e4 l\u00e4hes kukaan ei tied\u00e4, ja se selitt\u00e4\u00e4, miksi useimmat ratkaisut toimivat vain puoliksi.<\/p>\n\n                <h2>Et todellakaan ole ainoa<\/h2>\n                <div class=\"stat\">\n                    <div class=\"num\">619 miljoonaa<\/div>\n                    <p>\n                        ihmist\u00e4 maailmassa k\u00e4rsi alaselk\u00e4kivusta vuonna 2020. Se yleistyy i\u00e4n my\u00f6t\u00e4.\n                        <span class=\"src\">Global Burden of Disease -tutkimus, The Lancet Rheumatology, 2023<\/span>\n                    <\/p>\n                <\/div>\n                <p>Alasel\u00e4n vaivat ovat maailmanlaajuisesti yleisin syy arjen rajoitteisiin. Monilla ne alkavat joka p\u00e4iv\u00e4 samaan aikaan: noustessa. Aamuj\u00e4ykkyys on niin tunnistettava merkki, ett\u00e4 tutkijat mittasivat sen erikseen hollantilaisessa BACE-tutkimuksessa, jossa oli mukana selk\u00e4vaivaisia i\u00e4kk\u00e4\u00e4mpi\u00e4 aikuisia.<\/p>\n\n                <h2>Mit\u00e4 sel\u00e4ss\u00e4si tapahtuu y\u00f6ll\u00e4<\/h2>\n                <p>J\u00e4ykk\u00e4 selk\u00e4 aamulla ei synny aamulla. Se rakentuu y\u00f6n aikana kolmen samanaikaisen asian kautta.<\/p>\n                <p>\n                    <strong>Makaat tuntikausia l\u00e4hes liikkumatta.<\/strong>\n                     P\u00e4iv\u00e4ll\u00e4 jokainen liike pit\u00e4\u00e4 veren virtaamassa lihaksiin. Y\u00f6ll\u00e4 se suurelta osin loppuu. Valmiiksi j\u00e4nnittyneet lihakset saavat vain v\u00e4h\u00e4n syyt\u00e4 rentoutua.\n                <\/p>\n                <p>\n                    <strong>Selk\u00e4rankasi venyy hieman y\u00f6ll\u00e4.<\/strong>\n                     P\u00e4iv\u00e4ll\u00e4 kehosi paino painaa selk\u00e4rankaa hiukan kasaan. Heti kun k\u00e4yt makuulle, paine katoaa ja selk\u00e4ranka venyy taas. Siksi olet aamulla hiukan pidempi kuin illalla. Tutkimukset ovat osoittaneet, ett\u00e4 alaselk\u00e4si on t\u00e4m\u00e4n vuoksi aamulla selv\u00e4sti v\u00e4hemm\u00e4n joustava kuin illalla.\n                <\/p>\n                <p>\n                    <strong>P\u00e4iv\u00e4n j\u00e4nnitys tulee mukaan s\u00e4nkyyn.<\/strong>\n                     Jos k\u00e4yt makuulle j\u00e4nnittyneen\u00e4, aloitat y\u00f6n takamatkalta.\n                <\/p>\n\n                <div class=\"night\" id=\"nacht\">\n                    <p class=\"eyebrow\">Y\u00f6 sel\u00e4ss\u00e4si<\/p>\n                    <h3>Mit\u00e4 tapahtuu nukkumaanmenon ja her\u00e4\u00e4misen v\u00e4lill\u00e4<\/h3>\n                    <p class=\"sub\">Vaihda tavallisen y\u00f6n ja ANDUFIT-hierontamoduulin kanssa vietetyn y\u00f6n v\u00e4lill\u00e4.<\/p>\n                    <div class=\"toggle\" role=\"group\" aria-label=\"Valitse y\u00f6\">\n                        <button type=\"button\" aria-pressed=\"true\" data-night=\"zonder\">Tavallinen y\u00f6<\/button>\n                        <button type=\"button\" aria-pressed=\"false\" data-night=\"met\">ANDUFIT-moduulin kanssa<\/button>\n                    <\/div>\n                    <ol class=\"tl show\" data-panel=\"zonder\">\n                        <li>\n                            <time>22:30<\/time>\n                            <div>\n                                <b>K\u00e4yt makuulle<\/b>\n                                <span>Pitk\u00e4n p\u00e4iv\u00e4n j\u00e4nnitys on yh\u00e4 sel\u00e4ss\u00e4 ja hartioissa.<\/span>\n                            <\/div>\n                        <\/li>\n                        <li>\n                            <time>00:00<\/time>\n                            <div>\n                                <b>Makaat paikallasi<\/b>\n                                <span>Lihaksesi tuskin liikkuvat. Verenkierto sel\u00e4n lihaksissa hidastuu.<\/span>\n                            <\/div>\n                        <\/li>\n                        <li>\n                            <time>03:00<\/time>\n                            <div>\n                                <b>Selk\u00e4rankasi venyy<\/b>\n                                <span>Ilman p\u00e4iv\u00e4n painoa selk\u00e4rankasi venyy taas hieman.<\/span>\n                            <\/div>\n                        <\/li>\n                        <li class=\"key\">\n                            <time>07:00<\/time>\n                            <div>\n                                <b>Her\u00e4\u00e4t j\u00e4ykk\u00e4n\u00e4<\/b>\n                                <span>Selk\u00e4rankasi on kire\u00e4mpi, lihaksesi ovat olleet paikallaan koko y\u00f6n, eik\u00e4 p\u00e4iv\u00e4n j\u00e4nnitys ole koskaan hellitt\u00e4nyt.<\/span>\n                            <\/div>\n                        <\/li>\n                    <\/ol>\n                    <ol class=\"tl\" data-panel=\"met\" hidden>\n                        <li>\n                            <time>22:15<\/time>\n                            <div>\n                                <b>Selk\u00e4ohjelma, 15 minuuttia<\/b>\n                                <span>Valitset Selk\u00e4-ohjelman patjasi alla olevasta hierontamoduulista. Pehme\u00e4t, matalataajuiset Andullation\u00ae-v\u00e4r\u00e4htelyt kulkevat selk\u00e4rankaasi pitkin. Lihaksesi rentoutuvat ja verenkierto vilkastuu.<\/span>\n                            <\/div>\n                        <\/li>\n                        <li>\n                            <time>22:30<\/time>\n                            <div>\n                                <b>Nukahdat rentoutunein selin<\/b>\n                                <span>Aloitat y\u00f6n ilman p\u00e4iv\u00e4n j\u00e4nnityksi\u00e4.<\/span>\n                            <\/div>\n                        <\/li>\n                        <li class=\"key\">\n                            <time>06:45<\/time>\n                            <div>\n                                <b>Selk\u00e4ohjelma, 15 minuuttia<\/b>\n                                <span>Kun her\u00e4\u00e4t, k\u00e4ynnist\u00e4t Selk\u00e4-ohjelman uudelleen. Selk\u00e4si rentoutuu, kun viel\u00e4 makaat.<\/span>\n                            <\/div>\n                        <\/li>\n                        <li>\n                            <time>07:00<\/time>\n                            <div>\n                                <b>Nouset s\u00e4ngyst\u00e4<\/b>\n                                <span>Ilman ett\u00e4 sinun tarvitsee ensin ponnistaa itse\u00e4si k\u00e4sill\u00e4 yl\u00f6s.<\/span>\n                            <\/div>\n                        <\/li>\n                    <\/ol>\n                    <p class=\"verdict\" id=\"verdict\">Oikea hetki toimia ei siis ole noustessa, vaan sit\u00e4 ennen.<\/p>\n                <\/div>\n\n                <h2>Miten selk\u00e4si voi?<\/h2>\n                <div class=\"sv\" id=\"rugcheck\" data-step=\"1\">\n                    <div class=\"sv-head\">\n                        <span class=\"sv-eyebrow\">Selk\u00e4testi \u00b7 1 minuutti<\/span>\n                        <span class=\"sv-count\" aria-live=\"polite\">\n                            Kysymys \n                            <b id=\"svNum\">1<\/b>\n                            \/6\n                        <\/span>\n                    <\/div>\n                    <div class=\"sv-bar\" aria-hidden=\"true\">\n                        <i id=\"svBar\"><\/i>\n                    <\/div>\n\n                    <section class=\"sv-step\" data-s=\"1\">\n                        <h3>Milt\u00e4 selk\u00e4si tuntuu noustessa?<\/h3>\n                        <div class=\"sv-options sv-lg\" role=\"radiogroup\" aria-label=\"Milt\u00e4 selk\u00e4si tuntuu noustessa\">\n                            <button type=\"button\" role=\"radio\" aria-checked=\"false\" data-q=\"wakeup\" data-v=\"stiff\">\n                                <i><\/i>\n                                J\u00e4yk\u00e4lt\u00e4\n                            <\/button>\n                            <button type=\"button\" role=\"radio\" aria-checked=\"false\" data-q=\"wakeup\" data-v=\"slightly_stiff\">\n                                <i><\/i>\n                                Hieman j\u00e4yk\u00e4lt\u00e4\n                            <\/button>\n                            <button type=\"button\" role=\"radio\" aria-checked=\"false\" data-q=\"wakeup\" data-v=\"supple\">\n                                <i><\/i>\n                                Notkealta\n                            <\/button>\n                        <\/div>\n                    <\/section>\n\n                    <section class=\"sv-step\" data-s=\"2\" hidden>\n                        <h3>Kuinka kauan kest\u00e4\u00e4, ennen kuin selk\u00e4si tuntuu vetre\u00e4lt\u00e4?<\/h3>\n                        <div class=\"sv-options\" role=\"radiogroup\" aria-label=\"Kuinka kauan selk\u00e4si on j\u00e4ykk\u00e4\">\n                            <button type=\"button\" role=\"radio\" aria-checked=\"false\" data-q=\"duur\" data-v=\"few_minutes\">\n                                <i><\/i>\n                                Muutaman minuutin\n                            <\/button>\n                            <button type=\"button\" role=\"radio\" aria-checked=\"false\" data-q=\"duur\" data-v=\"half_hour\">\n                                <i><\/i>\n                                Enint\u00e4\u00e4n puoli tuntia\n                            <\/button>\n                            <button type=\"button\" role=\"radio\" aria-checked=\"false\" data-q=\"duur\" data-v=\"until_noon\">\n                                <i><\/i>\n                                Puoleenp\u00e4iv\u00e4\u00e4n asti\n                            <\/button>\n                            <button type=\"button\" role=\"radio\" aria-checked=\"false\" data-q=\"duur\" data-v=\"all_day\">\n                                <i><\/i>\n                                Koko p\u00e4iv\u00e4n\n                            <\/button>\n                        <\/div>\n                        <div class=\"sv-nav\">\n                            <button type=\"button\" class=\"sv-back\" data-back>\u2190 Takaisin<\/button>\n                            <span><\/span>\n                        <\/div>\n                    <\/section>\n\n                    <section class=\"sv-step\" data-s=\"3\" hidden>\n                        <h3>Miten nukut t\u00e4ll\u00e4 hetkell\u00e4?<\/h3>\n                        <div class=\"sv-scale\" data-q=\"slaap\">\n                            <div class=\"sv-ends\">\n                                <span>\u2190 Huonosti<\/span>\n                                <span>Hyvin \u2192<\/span>\n                            <\/div>\n                            <div class=\"sv-nums\"><\/div>\n                        <\/div>\n                        <div class=\"sv-nav\">\n                            <button type=\"button\" class=\"sv-back\" data-back>\u2190 Takaisin<\/button>\n                            <span><\/span>\n                        <\/div>\n                    <\/section>\n\n                    <section class=\"sv-step\" data-s=\"4\" hidden>\n                        <h3>Kuinka paljon selk\u00e4 tai j\u00e4nnitys vaivaa sinua?<\/h3>\n                        <div class=\"sv-scale\" data-q=\"klachten\">\n                            <div class=\"sv-ends\">\n                                <span>\u2190 Paljon<\/span>\n                                <span>Ei lainkaan \u2192<\/span>\n                            <\/div>\n                            <div class=\"sv-nums\"><\/div>\n                        <\/div>\n                        <div class=\"sv-nav\">\n                            <button type=\"button\" class=\"sv-back\" data-back>\u2190 Takaisin<\/button>\n                            <span><\/span>\n                        <\/div>\n                    <\/section>\n\n                    <section class=\"sv-step\" data-s=\"5\" hidden>\n                        <h3>Millaisena her\u00e4\u00e4t?<\/h3>\n                        <div class=\"sv-scale\" data-q=\"ochtend\">\n                            <div class=\"sv-ends\">\n                                <span>\u2190 V\u00e4syneen\u00e4<\/span>\n                                <span>Lev\u00e4nneen\u00e4 \u2192<\/span>\n                            <\/div>\n                            <div class=\"sv-nums\"><\/div>\n                        <\/div>\n                        <div class=\"sv-nav\">\n                            <button type=\"button\" class=\"sv-back\" data-back>\u2190 Takaisin<\/button>\n                            <span><\/span>\n                        <\/div>\n                    <\/section>\n\n                    <section class=\"sv-step\" data-s=\"6\" hidden>\n                        <h3>Mit\u00e4 olet jo kokeillut?<\/h3>\n                        <p class=\"sv-hint\">Vapaaehtoinen, valitse sopivat.<\/p>\n                        <div class=\"sv-chips\" role=\"group\" aria-label=\"Mit\u00e4 olet jo kokeillut\">\n                            <button type=\"button\" aria-pressed=\"false\" data-chip=\"stretching\">Venyttely<\/button>\n                            <button type=\"button\" aria-pressed=\"false\" data-chip=\"hot_shower\">L\u00e4mmin suihku<\/button>\n                            <button type=\"button\" aria-pressed=\"false\" data-chip=\"new_mattress\">Uusi patja<\/button>\n                            <button type=\"button\" aria-pressed=\"false\" data-chip=\"painkillers\">Kipul\u00e4\u00e4kkeet<\/button>\n                            <button type=\"button\" aria-pressed=\"false\" data-chip=\"other\">Jotain muuta<\/button>\n                            <button type=\"button\" aria-pressed=\"false\" data-chip=\"nothing\">En viel\u00e4 mit\u00e4\u00e4n<\/button>\n                        <\/div>\n                        <div class=\"sv-nav\">\n                            <button type=\"button\" class=\"sv-back\" data-back>\u2190 Takaisin<\/button>\n                            <button type=\"button\" class=\"sv-btn\" data-finish>Katso pisteeni<\/button>\n                        <\/div>\n                    <\/section>\n\n                    <section class=\"sv-step\" data-s=\"7\" hidden>\n                        <div class=\"sv-score\">\n                            <p class=\"sv-eyebrow\">Palautumispisteesi<\/p>\n                            <p class=\"sv-big\">\n                                <b id=\"svScore\">0<\/b>\n                                <span>\/ 100<\/span>\n                            <\/p>\n                            <div class=\"sv-meter\" aria-hidden=\"true\">\n                                <i id=\"svMeter\"><\/i>\n                            <\/div>\n                            <p class=\"sv-what\">Omat numerosi unelle, vaivoille ja aamuille, yhten\u00e4 lukuna. Mit\u00e4 korkeampi, sit\u00e4 enemm\u00e4n y\u00f6si antavat takaisin.<\/p>\n                            <h3 id=\"svBandTitle\"><\/h3>\n                            <p id=\"svBandText\"><\/p>\n                        <\/div>\n                        <div class=\"sv-report\" id=\"svReport\">\n                            <div class=\"sv-author\">\n                                <img decoding=\"async\" src=\"https:\/\/nl.andufit.com\/wp-content\/uploads\/sites\/2\/2026\/10\/dr-roland-portrait.webp\" width=\"56\" height=\"56\" alt=\"Dr. Roland Stutz\" loading=\"lazy\">\n                                <div>\n                                    <h3>Henkil\u00f6kohtainen raporttisi s\u00e4hk\u00f6postiin<\/h3>\n                                    <p>Laadittu dr. Roland Stutzin johdolla<\/p>\n                                <\/div>\n                            <\/div>\n                            <p class=\"sv-lead\">Pisteesi selitettyn\u00e4, mit\u00e4 voit itse tehd\u00e4 ja vastauksiisi sopivat ohjelmat, kuten ohjelma 8 sel\u00e4llesi.<\/p>\n                            <form id=\"svForm\" novalidate>\n                                <label class=\"sv-sr\" for=\"svEmail\">S\u00e4hk\u00f6postiosoitteesi<\/label>\n                                <input id=\"svEmail\" type=\"email\" inputmode=\"email\" autocomplete=\"email\" placeholder=\"S\u00e4hk\u00f6postiosoitteesi\" required>\n                                <button type=\"submit\" class=\"btn\" id=\"svSubmit\">L\u00e4het\u00e4 raporttini<\/button>\n                                <p class=\"sv-err\" id=\"svErr\" role=\"alert\"><\/p>\n                                <p class=\"sv-consent\">\n                                    Saat raportin ja s\u00e4hk\u00f6postia tarjouksista. Voit perua tilauksen milloin tahansa. Lue lis\u00e4\u00e4 \n                                    <a href=\"https:\/\/www.andufit.com\/privacy-policy\/\" target=\"_blank\" rel=\"noopener\">tietosuojak\u00e4yt\u00e4nn\u00f6st\u00e4mme<\/a>\n                                    .\n                                <\/p>\n                            <\/form>\n                            <div class=\"sv-done\" id=\"svDone\" hidden>\n                                <h3>Raporttisi on matkalla<\/h3>\n                                <p>Katso saapuneet viestisi muutaman minuutin p\u00e4\u00e4st\u00e4 ja roskapostikansio, jos sit\u00e4 ei n\u00e4y. Lue sill\u00e4 v\u00e4lin eteenp\u00e4in: alta n\u00e4et, mit\u00e4 useimmat ovat jo kokeilleet ja mik\u00e4 oikeasti toimii.<\/p>\n                            <\/div>\n                        <\/div>\n                        <button type=\"button\" class=\"sv-back sv-restart\" data-go=\"1\">Aloita alusta<\/button>\n                    <\/section>\n                <\/div>\n\n                <h2>Mit\u00e4 useimmat ovat jo kokeilleet<\/h2>\n                <p>Jos her\u00e4\u00e4t j\u00e4ykk\u00e4n\u00e4 joka aamu, olet luultavasti jo kokeillut muutamia asioita. Mik\u00e4\u00e4n niist\u00e4 ei ole v\u00e4\u00e4rin. Ne vain toimivat v\u00e4\u00e4r\u00e4\u00e4n aikaan tai liian lyhyesti.<\/p>\n                <div class=\"tried\">\n                    <div>\n                        <h3>\n                            Venyttely ja l\u00e4mmin suihku \n                            <em>auttaa hetken<\/em>\n                        <\/h3>\n                        <p>Vetreytt\u00e4minen nousemisen j\u00e4lkeen toimii, mutta aloitat vasta, kun j\u00e4ykkyys on jo olemassa. Seuraavana aamuna olet taas l\u00e4ht\u00f6pisteess\u00e4.<\/p>\n                    <\/div>\n                    <div>\n                        <h3>\n                            Uusi patja \n                            <em>kallis ja ep\u00e4varma<\/em>\n                        <\/h3>\n                        <p>Kannattaa, jos vanha patjasi on todella kulunut. Mutta t\u00e4ydellisell\u00e4kin patjalla makaat liikkumatta kahdeksan tuntia, ja selk\u00e4rankasi venyy silti y\u00f6ll\u00e4.<\/p>\n                    <\/div>\n                    <div>\n                        <h3>\n                            Kipul\u00e4\u00e4kkeet \n                            <em>vaimentavat tuntemusta<\/em>\n                        <\/h3>\n                        <p>Ne tekev\u00e4t aamusta siedett\u00e4v\u00e4mm\u00e4n, mutta eiv\u00e4t vaikuta j\u00e4nnitykseen, jonka viet mukanasi s\u00e4nkyyn.<\/p>\n                    <\/div>\n                    <div>\n                        <h3>\n                            Hieronta tai fysioterapia \n                            <em>ei joka p\u00e4iv\u00e4<\/em>\n                        <\/h3>\n                        <p>Se toimii, ja tutkimus vahvistaa sen. Mutta et voi k\u00e4yd\u00e4 siell\u00e4 joka ilta ja joka aamu, ja juuri siin\u00e4 on ongelma.<\/p>\n                    <\/div>\n                <\/div>\n\n                <h2>Hieronta auttaa. Ongelma on, kuinka usein.<\/h2>\n                <p>Laaja Cochrane-katsaus kokosi yhteen 25 kontrolloitua tutkimusta, joissa oli yhteens\u00e4 yli 3 000 osallistujaa. Johtop\u00e4\u00e4t\u00f6s: hieronta lievitt\u00e4\u00e4 selk\u00e4vaivoja, mutta vaikutus n\u00e4kyy l\u00e4hinn\u00e4 lyhyell\u00e4 aikav\u00e4lill\u00e4.<\/p>\n                <div class=\"pull\">\n                    Toisin sanoen: hieronta toimii, kunhan jatkat sit\u00e4.\n                    <small>Perustuu l\u00e4hteeseen Furlan et al., Cochrane Database of Systematic Reviews, 2015<\/small>\n                <\/div>\n                <p>Ja siin\u00e4 on koukku. Hieronta tai k\u00e4ynti fysioterapeutilla pit\u00e4\u00e4 varata, sinne pit\u00e4\u00e4 menn\u00e4 ja siit\u00e4 pit\u00e4\u00e4 maksaa joka kerta. Kerran viikossa on jo paljon. Sill\u00e4 v\u00e4lin selk\u00e4si j\u00e4ykistyy joka y\u00f6.<\/p>\n                <p>Mit\u00e4 oikeasti tarvitset, on rentoutumista niin\u00e4 kahtena hetken\u00e4, joilla on merkityst\u00e4: juuri ennen nukahtamista ja juuri ennen nousemista. Joka p\u00e4iv\u00e4. Ilman ajanvarausta.<\/p>\n            <\/div>\n\n            <section class=\"sol\" id=\"oplossing\">\n                <div class=\"col\">\n                    <div class=\"sol-card\">\n                        <p class=\"eyebrow\">Ratkaisu<\/p>\n                        <h2>Hierontaa omassa s\u00e4ngyss\u00e4si, joka ilta ja joka aamu<\/h2>\n                        <p class=\"sol-lead\">ANDUFIT on hierontamoduuli, jossa on 20 ohjelmaa ja jonka ty\u00f6nn\u00e4t patjasi tai sijauspatjasi alle. J\u00e4yk\u00e4lle sel\u00e4lle on ohjelma 8, \u201dSelk\u00e4\u201d: illalla se rentouttaa selk\u00e4lihaksesi pitk\u00e4n p\u00e4iv\u00e4n j\u00e4lkeen, aamulla se vetreytt\u00e4\u00e4 selk\u00e4si jo ennen kuin nouset yl\u00f6s. Pid\u00e4t yksinkertaisesti oman s\u00e4nkysi.<\/p>\n\n                        <figure class=\"sol-hero\">\n                            <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/nl.andufit.com\/wp-content\/uploads\/sites\/2\/2026\/10\/andufit-boxspring-two-modules.webp\" width=\"1080\" height=\"810\" alt=\"Jenkkis\u00e4nky, jonka patja on nostettu, ja sen alla kaksi ANDUFIT-moduulia, joiden hierontavy\u00f6hykkeet hehkuvat\">\n                            <span class=\"chip\" style=\"left:6%;top:63%\">Patjan tai sijauspatjan alle<\/span>\n                            <span class=\"chip\" style=\"right:6%;top:80%\">Vain 7 cm korkea<\/span>\n                        <\/figure>\n\n                        <h3>N\u00e4in se toimii<\/h3>\n                        <figure class=\"frame\">\n                            <video autoplay muted loop playsinline preload=\"metadata\" poster=\"https:\/\/nl.andufit.com\/wp-content\/uploads\/sites\/2\/2026\/10\/andufit-how-it-works-mattress-poster.webp\" style=\"aspect-ratio:16\/9\" aria-label=\"Animaatio: patja laskeutuu ANDUFIT-moduulin p\u00e4\u00e4lle ja v\u00e4r\u00e4htelyt kulkevat patjan l\u00e4pi sen p\u00e4\u00e4ll\u00e4 makaavaan naiseen\" data-video=\"werking\">\n                                <source src=\"https:\/\/nl.andufit.com\/wp-content\/uploads\/sites\/2\/2026\/10\/andufit-how-it-works-mattress.mp4\" type=\"video\/mp4\">\n                            <\/video>\n                        <\/figure>\n                        <p>Pehme\u00e4t, matalataajuiset Andullation\u00ae-v\u00e4r\u00e4htelyt kulkevat patjan l\u00e4pi seitsem\u00e4n moottorin avulla viiteen kehon vy\u00f6hykkeeseen hartioista pohkeisiin. Ne auttavat lihaksiasi rentoutumaan ja tukevat verenkiertoa. Samaa teknologiaa k\u00e4ytet\u00e4\u00e4n my\u00f6s fysioterapiassa.<\/p>\n                        <div class=\"specs\">\n                            <div>\n                                <b>Sopii kaikkiin s\u00e4nkyihin<\/b>\n                                <span>Toimii kaikkien enint\u00e4\u00e4n 45 cm paksujen patjojen ja sijauspatjojen l\u00e4pi, jenkkis\u00e4ngyss\u00e4, s\u00e4leikk\u00f6pohjassa tai kiinte\u00e4ss\u00e4 pohjassa.<\/span>\n                            <\/div>\n                            <div>\n                                <b>Asennettu 10 minuutissa<\/b>\n                                <span>Ty\u00f6nn\u00e4 moduuli patjan alle, liit\u00e4 kaukos\u00e4\u00e4din ja valmista. Ty\u00f6kaluja ei tarvita.<\/span>\n                            <\/div>\n                            <div>\n                                <b>20 ohjelmaa<\/b>\n                                <span>Valitse sinulle sopiva ohjelma sel\u00e4n rentoutuksesta helpompaan nukahtamiseen tai palautumiseen urheilun j\u00e4lkeen. 7 voimakkuustasoa pehme\u00e4st\u00e4 voimakkaaseen.<\/span>\n                            <\/div>\n                            <div>\n                                <b>Nauti vain<\/b>\n                                <span>Yksi hoitokerta kest\u00e4\u00e4 15 minuuttia. Sin\u00e4 makaat, ANDUFIT hoitaa loput.<\/span>\n                            <\/div>\n                        <\/div>\n\n                    <\/div>\n                <\/div>\n            <\/section>\n\n            <section class=\"science\">\n                <div class=\"col\">\n                    <h2>Andullation\u00ae-teknologia, joka perustuu tieteeseen<\/h2>\n                    <p>Andullation\u00ae on kehitetty Saksassa yhteisty\u00f6ss\u00e4 yliopistojen kanssa, ja sit\u00e4 k\u00e4ytet\u00e4\u00e4n my\u00f6s fysioterapiassa. Teknologiaa on lis\u00e4ksi tutkittu riippumattomasti.<\/p>\n                    <p>Vertaisarvioitu, PubMediss\u00e4 julkaistu tutkimus seurasi 50 henkil\u00f6\u00e4, jotka saivat viisi puolen tunnin andulaatiohierontaa. Tutkijat mittasivat ennen ja j\u00e4lkeen, miten osallistujat kokivat kivun, milt\u00e4 heist\u00e4 tuntui ja kuinka paljon painetta heid\u00e4n alaselk\u00e4ns\u00e4 kesti.<\/p>\n                    <div class=\"study\">\n                        <span class=\"pill\">Vertaisarvioitu \u00b7 PubMed<\/span>\n                        <h3>Mit\u00e4 muuttui viiden hoitokerran j\u00e4lkeen<\/h3>\n                        <p class=\"meta\">Parras-Molt\u00f3 A, Ribas-Serna J. Dose-Response, 2019;17(2). PMID 31105478.<\/p>\n                        <div class=\"setup\">\n                            <div>\n                                <b>50 henkil\u00f6\u00e4<\/b>\n                                <span>Osallistujat<\/span>\n                            <\/div>\n                            <div>\n                                <b>5 \u00d7 30 min<\/b>\n                                <span>Hieronnat<\/span>\n                            <\/div>\n                            <div>\n                                <b>5\u201340 Hz<\/b>\n                                <span>V\u00e4r\u00e4htelytaajuus<\/span>\n                            <\/div>\n                            <div>\n                                <b>2\u20138 mm<\/b>\n                                <span>V\u00e4r\u00e4htelysyvyys<\/span>\n                            <\/div>\n                        <\/div>\n                        <div class=\"study-grid\">\n                            <div>\n                                <b>-52,3 %<\/b>\n                                <span>kivun kokeminen<\/span>\n                            <\/div>\n                            <div>\n                                <b>+45,1 %<\/b>\n                                <span>hyvinvointi<\/span>\n                            <\/div>\n                            <div>\n                                <b>+34,5 %<\/b>\n                                <span>alasel\u00e4n kipukynnys<\/span>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                    <p class=\"fine\">Tutkimus, jossa oli 50 henkil\u00f6\u00e4 ilman verrokkiryhm\u00e4\u00e4, julkaistu PubMediss\u00e4. Kipukynnys mitattiin painemittarilla: kipuun tarvittiin enemm\u00e4n painetta. ANDUFIT ei ole l\u00e4\u00e4kinn\u00e4llinen laite eik\u00e4 lupaa parantumista. Jos vaivat jatkuvat, ota yhteytt\u00e4 l\u00e4\u00e4k\u00e4riin.<\/p>\n                <\/div>\n            <\/section>\n\n            <section class=\"couple\">\n                <div class=\"col\">\n                    <h2>Yhdess\u00e4 s\u00e4ngyss\u00e4, kummallakin oma hieronta<\/h2>\n                    <p>Jaatko s\u00e4ngyn? Silloin kummallakin on oma moduuli, kummassakin 20 ohjelmaa. Sin\u00e4 valitset Selk\u00e4-ohjelman, kumppanisi jotain aivan muuta.<\/p>\n                    <figure class=\"photo video\">\n                        <video autoplay muted loop playsinline preload=\"metadata\" poster=\"https:\/\/nl.andufit.com\/wp-content\/uploads\/sites\/2\/2026\/10\/andufit-couple-two-modules-poster.webp\" style=\"aspect-ratio:6\/5\" aria-label=\"Animaatio: pariskunta s\u00e4ngyss\u00e4 valitsee kumpikin oman ohjelmansa, kun kaksi ANDUFIT-moduulia toimii patjan alla\" data-video=\"koppel\">\n                            <source src=\"https:\/\/nl.andufit.com\/wp-content\/uploads\/sites\/2\/2026\/10\/andufit-couple-two-modules.mp4\" type=\"video\/mp4\">\n                        <\/video>\n                    <\/figure>\n                    <p class=\"cap\">Kaksi moduulia rinnakkain, kummassakin 20 ohjelmaa.<\/p>\n                    <div class=\"ritual\">\n                        <div>\n                            <span class=\"when\">Ilta<\/span>\n                            <p>15 minuutin ohjelma, kun makaat s\u00e4ngyss\u00e4. Nukahdat ilman p\u00e4iv\u00e4n j\u00e4nnityksi\u00e4.<\/p>\n                        <\/div>\n                        <div>\n                            <span class=\"when\">Aamu<\/span>\n                            <p>15 minuutin Selk\u00e4-ohjelma heti her\u00e4tty\u00e4si, jo ennen kuin nouset yl\u00f6s. Selk\u00e4si rentoutuu, kun viel\u00e4 makaat.<\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n\n            <div class=\"col\">\n\n                <section class=\"offer\" id=\"aanbod\">\n                    <h2>Haluatko tiet\u00e4\u00e4, mit\u00e4 ANDUFIT voi tehd\u00e4 sinulle? Kokeile 14 y\u00f6t\u00e4 omassa s\u00e4ngyss\u00e4si<\/h2>\n                    <p>Sinun ei tarvitse uskoa meit\u00e4 sanomalla. Laita ANDUFIT oman patjasi alle ja k\u00e4yt\u00e4 sit\u00e4 kaksi viikkoa niin kuin k\u00e4ytt\u00e4isit sit\u00e4 joka p\u00e4iv\u00e4 sen j\u00e4lkeenkin: illalla ennen nukkumista ja aamulla ennen nousemista. Kiinnit\u00e4 erityisesti huomiota siihen, milt\u00e4 ensimm\u00e4iset askeleet s\u00e4ngyst\u00e4 tuntuvat.<\/p>\n                    <ol class=\"trial\">\n                        <li>\n                            <b>Y\u00f6 1<\/b>\n                            <span>Valitset Selk\u00e4-ohjelman ja voimakkuuden, joka tuntuu hyv\u00e4lt\u00e4.<\/span>\n                        <\/li>\n                        <li>\n                            <b>Viikko 1<\/b>\n                            <span>Illasta ja aamusta tulee sel\u00e4llesi vakiohetki.<\/span>\n                        <\/li>\n                        <li>\n                            <b>Y\u00f6 14<\/b>\n                            <span>Sin\u00e4 p\u00e4\u00e4t\u00e4t. Jos et huomaa eroa, palautat sen maksutta ja saat koko summan takaisin.<\/span>\n                        <\/li>\n                    <\/ol>\n                    <ul>\n                        <li>\n                            <svg viewBox=\"0 0 20 20\" width=\"20\" height=\"20\" aria-hidden=\"true\">\n                                <path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                            <\/svg>\n                            Ilmainen toimitus ja palautus\n                        <\/li>\n                        <li>\n                            <svg viewBox=\"0 0 20 20\" width=\"20\" height=\"20\" aria-hidden=\"true\">\n                                <path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                            <\/svg>\n                            Maksa eriss\u00e4\n                        <\/li>\n                    <\/ul>\n                    <a class=\"btn\" href=\"#\" data-cta=\"offer\">Katso hinta<\/a>\n                <\/section>\n\n                <section class=\"sources\">\n                    <h2>L\u00e4hteet<\/h2>\n                    <ol>\n                        <li>GBD 2021 Low Back Pain Collaborators. Global, regional, and national burden of low back pain, 1990-2020, its attributable risk factors, and projections to 2050. The Lancet Rheumatology, 2023;5(6):e316-e329. L\u00e4hde luvulle \u201d619 miljoonaa\u201d.<\/li>\n                        <li>Feller D et al. Spinal morning stiffness, lumbar disc degeneration and C-reactive protein: the BACE study. Osteoarthritis and Cartilage Open, 2024. PMID 39554477. L\u00e4hde aamuj\u00e4ykkyydelle erikseen mitattuna merkkin\u00e4.<\/li>\n                        <li>Zander T et al. Diurnal variations in intervertebral disc height affect spine flexibility. Computer Methods in Biomechanics and Biomedical Engineering, 2010. L\u00e4hde aamulla v\u00e4hemm\u00e4n joustavalle sel\u00e4lle.<\/li>\n                        <li>Furlan AD et al. Massage for low-back pain. Cochrane Database of Systematic Reviews, 2015. L\u00e4hde hieronnan lyhytaikaiselle vaikutukselle.<\/li>\n                        <li>Parras-Molt\u00f3 A, Ribas-Serna J. Dose-Response, 2019;17(2). PMID 31105478. L\u00e4hde Andullation\u00ae-tuloksille.<\/li>\n                    <\/ol>\n                    <p class=\"fine\">T\u00e4m\u00e4 artikkeli on ANDUFITin mainos. ANDUFIT ei ole l\u00e4\u00e4kinn\u00e4llinen laite eik\u00e4 korvaa l\u00e4\u00e4k\u00e4rin neuvoja. Tulokset vaihtelevat henkil\u00f6itt\u00e4in.<\/p>\n                <\/section>\n            <\/div>\n        <\/article>\n    <\/main>\n\n    <div class=\"sticky\" id=\"sticky\" aria-hidden=\"true\">\n        <div class=\"inner\">\n            <a class=\"btn\" href=\"#\" data-cta=\"sticky\" tabindex=\"-1\">Katso hinta<\/a>\n        <\/div>\n    <\/div>\n<\/div>\n<script>\n(function() {\n    \/\/ Destination: change once per market\/page\n    \/\/ ---- Page config (same in every language) ----\n    var LP_ID = \"stiff-back-morning\"; \/\/ English page name, identical across all languages\n    var LP_VERSION = \"v2\"; \/\/ bump to v2, v3... for a new version of the same page\n    var CTA_URL = \"https:\/\/www.andufit.com\/checkout\/?width=90&length=200\";\n    \/\/ Language comes from the directory (\/nl\/, \/fr\/, \/de\/...), with the html lang attribute as fallback\n    \/\/ Language: html lang set by WordPress\/WPML (nl-NL, fr-BE, da-DK...), else URL directory (\/fr\/), else subdomain\n    var seg = (location.pathname.split(\"\/\")[1] || \"\").toLowerCase();\n    var sub = location.hostname.split(\".\")[0].toLowerCase();\n    var htmlLang = (document.documentElement.lang || \"\").slice(0, 2).toLowerCase();\n    var PAGE_LANG = \"fi\"; \/\/ language this file is written in, used when the page itself has no lang setting\n    var LP_LANG = htmlLang || (\/^[a-z]{2}(-[a-z]{2})?$\/.test(seg) ? seg : PAGE_LANG);\n\n    \/\/ Tracking: pushes to GTM dataLayer, picked up later for pixel + CAPI\n    window.dataLayer = window.dataLayer || [];\n    function track(name, params) {\n        var p = Object.assign({\n            event: name,\n            lp_id: LP_ID,\n            lp_version: LP_VERSION,\n            lp_lang: LP_LANG,\n            lp_key: LP_ID + \"-\" + LP_VERSION\n        }, params || {});\n        try {\n            window.dataLayer.push(p);\n        } catch (e) {}\n    }\n\n    \/\/ CTA links + click events\n    document.querySelectorAll(\"[data-cta]\").forEach(function(a) {\n        a.href = CTA_URL;\n        a.addEventListener(\"click\", function() {\n            track(\"lp_cta_click\", {\n                cta_position: a.dataset.cta\n            });\n        });\n    });\n\n    \/\/ ---- Rugcheck survey: same score, bands and Klaviyo properties as the bedcheck on andufit.com ----\n    var KLAVIYO = {\n        \"be-nl\": {\n            k: \"VQ3H6i\",\n            l: \"RGkCrC\",\n            taal: \"nl\"\n        },\n        \"be-fr\": {\n            k: \"VQ3H6i\",\n            l: \"RGkCrC\",\n            taal: \"fr\"\n        },\n        \"nl\": {\n            k: \"VWTWCN\",\n            l: \"QRrRwi\",\n            taal: \"nl\"\n        },\n        \"fr\": {\n            k: \"RX49Be\",\n            l: \"TTHgX8\",\n            taal: \"fr\"\n        },\n        \"de\": {\n            k: \"W26WX5\",\n            l: \"RKQdiz\",\n            taal: \"de\"\n        },\n        \"es\": {\n            k: \"Ryu86G\",\n            l: \"TbXjdV\",\n            taal: \"es\"\n        },\n        \"int\": {\n            k: \"U2QKtz\",\n            l: \"WBcW8Z\"\n        } \/\/ ANDUFIT (Luxembourg, Europe)\n    };\n    var SOURCE = \"Survey - \" + LP_ID; \/\/ naming: \"Survey - {page name}\"\n    var BANDS = {\n        high: {\n            t: \"Y\\u00f6si tekev\\u00e4t suurimman osan ty\\u00f6st\\u00e4\",\n            x: \"Nouset useimmiten riitt\\u00e4v\\u00e4ll\\u00e4 varannolla. Raportti n\\u00e4ytt\\u00e4\\u00e4, miss\\u00e4 viimeinen pala palautumista on ja miten pid\\u00e4t sen.\",\n            c: \"#15803d\",\n            b: \"#22c55e\"\n        },\n        ok: {\n            t: \"Menee, mutta ei joka y\\u00f6\",\n            x: \"Toiset y\\u00f6t antavat sinulle sen mit\\u00e4 tarvitset, toiset eiv\\u00e4t. Ero on yleens\\u00e4 siin\\u00e4, kuinka syv\\u00e4lle keho rauhoittuu. Raportti n\\u00e4ytt\\u00e4\\u00e4, mitk\\u00e4 y\\u00f6t maksavat eniten ja mik\\u00e4 auttaa.\",\n            c: \"#a16207\",\n            b: \"#eab308\"\n        },\n        mid: {\n            t: \"\\u00d6iss\\u00e4si on varaa parantaa\",\n            x: \"Osa y\\u00f6st\\u00e4 menee j\\u00e4nnitykseen palautumisen sijaan, ja sen huomaat p\\u00e4iv\\u00e4ll\\u00e4. Raportti n\\u00e4ytt\\u00e4\\u00e4, miss\\u00e4 se tapahtuu ja mist\\u00e4 aloitat.\",\n            c: \"#c2410c\",\n            b: \"#f97316\"\n        },\n        low: {\n            t: \"T\\u00e4ss\\u00e4 on paljon voitettavaa\",\n            x: \"Y\\u00f6si maksavat enemm\\u00e4n kuin antavat, ja se kasautuu. Raportti n\\u00e4ytt\\u00e4\\u00e4, mist\\u00e4 aloitat ja mitk\\u00e4 ohjelmat siihen sopivat.\",\n            c: \"#b3261e\",\n            b: \"#dc2626\"\n        }\n    };\n    var MSG = {\n        invalid: \"Anna kelvollinen s\\u00e4hk\\u00f6postiosoite.\",\n        failed: \"Jokin meni vikaan. Yrit\\u00e4 uudelleen.\",\n        busy: \"Hetkinen\"\n    };\n\n    var sv = document.getElementById(\"rugcheck\");\n    if (sv) {\n        var TOTAL = 6,\n            RESULT = 7;\n        var st = {\n                wakeup: \"\",\n                duur: \"\",\n                slaap: null,\n                klachten: null,\n                ochtend: null,\n                tried: []\n            },\n            started = false,\n            cur = 1;\n        function band(s) {\n            return s >= 80 ? \"high\" : s >= 60 ? \"ok\" : s >= 40 ? \"mid\" : \"low\";\n        }\n        function score() {\n            var v = [st.slaap, st.klachten, st.ochtend].filter(function(x) {\n                return typeof x === \"number\";\n            });\n            return v.length ? Math.round(v.reduce(function(a, b) {\n                return a + b;\n            }, 0) \/ v.length * 20) : 0;\n        }\n        function doelen() {\n            var d = [\"back\"]; \/\/ always back on this page\n            if (st.klachten !== null && st.klachten <= 2)\n                d.push(\"stress\");\n            if (st.slaap !== null && st.slaap <= 3)\n                d.push(\"sleep\");\n            if (st.ochtend !== null && st.ochtend <= 3)\n                d.push(\"energy\");\n            if (st.ochtend !== null && st.ochtend <= 2)\n                d.push(\"recovery\");\n            var order = [\"back\", \"sleep\", \"energy\", \"stress\", \"recovery\", \"muscle\"];\n            return order.filter(function(x) {\n                return d.indexOf(x) > -1;\n            });\n        }\n        function startOnce() {\n            if (!started) {\n                started = true;\n                track(\"lp_survey_start\");\n            }\n        }\n        function go(n) {\n            cur = n;\n            sv.querySelectorAll(\".sv-step\").forEach(function(s) {\n                s.hidden = (+s.dataset.s !== n);\n            });\n            sv.dataset.step = n;\n            document.getElementById(\"svNum\").textContent = Math.min(n, TOTAL);\n            document.getElementById(\"svBar\").style.width = (n >= RESULT ? 100 : n \/ TOTAL * 100) + \"%\";\n            sv.querySelector(\".sv-count\").style.visibility = n >= RESULT ? \"hidden\" : \"visible\";\n            if (n === RESULT)\n                showScore();\n            track(\"lp_survey_step\", {\n                step: n\n            });\n            var top = sv.getBoundingClientRect().top;\n            if (top < 0 || top > innerHeight * 0.6)\n                sv.scrollIntoView({\n                    behavior: \"smooth\",\n                    block: \"start\"\n                });\n        }\n        function next() {\n            setTimeout(function() {\n                go(cur + 1);\n            }, 240);\n        }\n        sv.querySelectorAll(\"[data-back]\").forEach(function(b) {\n            b.addEventListener(\"click\", function() {\n                go(Math.max(1, cur - 1));\n            });\n        });\n        sv.querySelectorAll(\"[data-go]\").forEach(function(b) {\n            b.addEventListener(\"click\", function() {\n                go(+b.dataset.go);\n            });\n        });\n\n        \/\/ single-choice questions (one tap, auto-advance)\n        sv.querySelectorAll(\"[data-q][data-v]\").forEach(function(b) {\n            b.addEventListener(\"click\", function() {\n                startOnce();\n                var q = b.dataset.q;\n                sv.querySelectorAll('[data-q=\"' + q + '\"][data-v]').forEach(function(o) {\n                    o.setAttribute(\"aria-checked\", o === b ? \"true\" : \"false\");\n                });\n                st[q] = b.dataset.v;\n                next();\n            });\n        });\n\n        \/\/ 1-5 scales (one tap, auto-advance)\n        sv.querySelectorAll(\".sv-scale\").forEach(function(q) {\n            var box = q.querySelector(\".sv-nums\"),\n                key = q.dataset.q,\n                label = q.closest(\".sv-step\").querySelector(\"h3\").textContent;\n            for (var i = 1; i <= 5; i++) {\n                (function(v) {\n                    var b = document.createElement(\"button\");\n                    b.type = \"button\";\n                    b.textContent = v;\n                    b.setAttribute(\"aria-pressed\", \"false\");\n                    b.setAttribute(\"aria-label\", label + \" \" + v);\n                    b.addEventListener(\"click\", function() {\n                        startOnce();\n                        st[key] = v;\n                        box.querySelectorAll(\"button\").forEach(function(x) {\n                            x.setAttribute(\"aria-pressed\", x === b ? \"true\" : \"false\");\n                        });\n                        next();\n                    });\n                    box.appendChild(b);\n                })(i);\n            }\n        });\n\n        \/\/ what have you tried (optional, multi-select; \"nothing\" is exclusive)\n        var chips = sv.querySelectorAll(\"[data-chip]\");\n        chips.forEach(function(c) {\n            c.addEventListener(\"click\", function() {\n                var on = c.getAttribute(\"aria-pressed\") !== \"true\";\n                if (on && c.dataset.chip === \"nothing\")\n                    chips.forEach(function(x) {\n                        x.setAttribute(\"aria-pressed\", \"false\");\n                    });\n                if (on && c.dataset.chip !== \"nothing\")\n                    sv.querySelector('[data-chip=\"nothing\"]').setAttribute(\"aria-pressed\", \"false\");\n                c.setAttribute(\"aria-pressed\", on ? \"true\" : \"false\");\n                st.tried = [].filter.call(chips, function(x) {\n                    return x.getAttribute(\"aria-pressed\") === \"true\";\n                }).map(function(x) {\n                    return x.dataset.chip;\n                });\n            });\n        });\n        sv.querySelector(\"[data-finish]\").addEventListener(\"click\", function() {\n            go(RESULT);\n        });\n\n        \/\/ result\n        function showScore() {\n            var s = score(),\n                k = band(s),\n                B = BANDS[k],\n                el = document.getElementById(\"svScore\");\n            sv.style.setProperty(\"--band-text\", B.c);\n            sv.style.setProperty(\"--band-bar\", B.b);\n            document.getElementById(\"svBandTitle\").textContent = B.t;\n            document.getElementById(\"svBandText\").textContent = B.x;\n            var meter = document.getElementById(\"svMeter\");\n            meter.style.width = \"0\";\n            setTimeout(function() {\n                meter.style.width = s + \"%\";\n            }, 60);\n            if (matchMedia(\"(prefers-reduced-motion: reduce)\").matches) {\n                el.textContent = s;\n            }\n            else {\n                var t0 = null;\n                (function f(t) {\n                    if (!t0)\n                        t0 = t;\n                    var p = Math.min((t - t0) \/ 900, 1);\n                    el.textContent = Math.round(s * p);\n                    if (p < 1)\n                        requestAnimationFrame(f);\n                })(performance.now());\n            }\n            track(\"lp_survey_score\", {\n                score: s,\n                band: k,\n                wakeup: st.wakeup,\n                duur: st.duur,\n                tried: st.tried.join(\",\")\n            });\n        }\n\n        var form = document.getElementById(\"svForm\"),\n            err = document.getElementById(\"svErr\"),\n            btn = document.getElementById(\"svSubmit\");\n        \/\/ Country for Klaviyo: browser time zone first, store subdomain as fallback\n        function tz() {\n            try {\n                return Intl.DateTimeFormat().resolvedOptions().timeZone || \"\";\n            } catch (x) {\n                return \"\";\n            }\n        }\n        function market() {\n            var z = tz(),\n                TZ = {\n                    \"Europe\/Brussels\": \"be\",\n                    \"Europe\/Amsterdam\": \"nl\",\n                    \"Europe\/Berlin\": \"de\",\n                    \"Europe\/Vienna\": \"de\",\n                    \"Europe\/Paris\": \"fr\",\n                    \"Europe\/Madrid\": \"es\",\n                    \"Europe\/Dublin\": \"ie\",\n                    \"Europe\/Luxembourg\": \"lu\",\n                    \"Europe\/Copenhagen\": \"dk\",\n                    \"Europe\/Stockholm\": \"se\",\n                    \"Europe\/Helsinki\": \"fi\",\n                    \"Europe\/Rome\": \"it\",\n                    \"Europe\/Lisbon\": \"pt\",\n                    \"Europe\/London\": \"uk\"\n                };\n            if (TZ[z])\n                return TZ[z];\n            if (LP_LANG === \"en\" && z.indexOf(\"America\/\") === 0)\n                return \"us\";\n            return location.hostname.split(\".\")[0].toLowerCase();\n        }\n        \/\/ email submit -> Klaviyo\n        form.addEventListener(\"submit\", function(e) {\n            e.preventDefault();\n            var email = document.getElementById(\"svEmail\").value.trim();\n            if (!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/.test(email)) {\n                err.textContent = MSG.invalid;\n                return;\n            }\n            err.textContent = \"\";\n            btn.disabled = true;\n            var label = btn.textContent;\n            btn.textContent = MSG.busy;\n            var mkt = market();\n            var cfg = KLAVIYO[mkt === \"be\" ? \"be-\" + LP_LANG : mkt];\n            \/\/ only use the country account if it sends emails in this page's language, otherwise the language's home account\n            if (!cfg || (cfg.taal && cfg.taal !== LP_LANG))\n                cfg = KLAVIYO[LP_LANG] || KLAVIYO.int;\n            var s = score();\n            var props = {\n                \/\/ generic: which survey, which version, which market (overwritten by the next survey)\n                language: (mkt === \"us\" ? \"us\" : (cfg.taal || LP_LANG || \"en\")),\n                survey_last: LP_ID,\n                survey_version: LP_VERSION,\n                market: mkt,\n                \/\/ page-specific answers (prefix stays unique per page)\n                stiff_back_wakeup: st.wakeup,\n                stiff_back_duration: st.duur,\n                stiff_back_tried: st.tried.join(\",\"),\n                stiff_back_sleep: st.slaap || 0,\n                stiff_back_complaints: st.klachten || 0,\n                stiff_back_morning: st.ochtend || 0,\n                stiff_back_score: s,\n                \/\/ read by the \"Verslag dr. Stutz\" email template, keep until the template uses the English keys\n                herstelscore: s,\n                check_slaap: st.slaap || 0,\n                check_klachten: st.klachten || 0,\n                check_ochtend: st.ochtend || 0,\n                check_doelen: doelen().join(\",\")\n            };\n            fetch(\"https:\/\/a.klaviyo.com\/client\/subscriptions?company_id=\" + encodeURIComponent(cfg.k), {\n                method: \"POST\",\n                headers: {\n                    \"Content-Type\": \"application\/vnd.api+json\",\n                    \"revision\": \"2024-10-15\"\n                },\n                body: JSON.stringify({\n                    data: {\n                        type: \"subscription\",\n                        attributes: {\n                            custom_source: SOURCE,\n                            profile: {\n                                data: {\n                                    type: \"profile\",\n                                    attributes: {\n                                        email: email,\n                                        properties: props\n                                    }\n                                }\n                            }\n                        },\n                        relationships: {\n                            list: {\n                                data: {\n                                    type: \"list\",\n                                    id: cfg.l\n                                }\n                            }\n                        }\n                    }\n                })\n            }).then(function(r) {\n                if (!r.ok)\n                    throw new Error(\"Klaviyo \" + r.status);\n                form.hidden = true;\n                document.getElementById(\"svDone\").hidden = false;\n                track(\"lp_survey_submit\", {\n                    score: s,\n                    band: band(s)\n                });\n                window.dataLayer.push({\n                    event: \"klaviyo_popup_signup\",\n                    popup_source: SOURCE\n                });\n            }).catch(function() {\n                err.textContent = MSG.failed;\n                btn.disabled = false;\n                btn.textContent = label;\n            });\n        });\n    }\n\n    \/\/ Night timeline toggle\n    var verdicts = {\n        zonder: \"Oikea hetki toimia ei siis ole noustessa, vaan sit\\u00e4 ennen.\",\n        met: \"Lis\\u00e4aikaa ei tarvita: makaat jo valmiiksi s\\u00e4ngyss\\u00e4.\"\n    };\n    document.querySelectorAll(\"[data-night]\").forEach(function(btn) {\n        btn.addEventListener(\"click\", function() {\n            var k = btn.dataset.night;\n            document.querySelectorAll(\"[data-night]\").forEach(function(b) {\n                b.setAttribute(\"aria-pressed\", b === btn ? \"true\" : \"false\");\n            });\n            document.querySelectorAll(\"[data-panel]\").forEach(function(p) {\n                var on = p.dataset.panel === k;\n                p.hidden = !on;\n                p.classList.toggle(\"show\", on);\n            });\n            document.getElementById(\"verdict\").textContent = verdicts[k];\n            track(\"lp_timeline_toggle\", {\n                state: k\n            });\n        });\n    });\n\n    \/\/ Videos: play only when visible, track first view\n    document.querySelectorAll(\"video[data-video]\").forEach(function(v) {\n        var seen = false;\n        if (matchMedia(\"(prefers-reduced-motion: reduce)\").matches) {\n            v.removeAttribute(\"autoplay\");\n            v.pause();\n            v.controls = true;\n        }\n        if (\"IntersectionObserver\" in window) {\n            new IntersectionObserver(function(e) {\n                if (e[0].isIntersecting) {\n                    if (!v.controls)\n                        v.play().catch(function() {});\n                    if (!seen) {\n                        seen = true;\n                        track(\"lp_video_view\", {\n                            video: v.dataset.video\n                        });\n                    }\n                }\n                else\n                    v.pause();\n            }, {\n                threshold: .4\n            }).observe(v);\n        }\n    });\n\n    \/\/ FAQ opens\n    document.querySelectorAll(\"[data-faq]\").forEach(function(d) {\n        d.addEventListener(\"toggle\", function() {\n            if (d.open)\n                track(\"lp_faq_open\", {\n                    faq: d.dataset.faq\n                });\n        });\n    });\n\n    \/\/ Scroll depth\n    var marks = [25, 50, 75, 90],\n        hit = {};\n    function onScroll() {\n        var h = document.documentElement,\n            pct = (h.scrollTop + innerHeight) \/ h.scrollHeight * 100;\n        marks.forEach(function(m) {\n            if (pct >= m && !hit[m]) {\n                hit[m] = 1;\n                track(\"lp_scroll\", {\n                    depth: m\n                });\n            }\n        });\n    }\n    addEventListener(\"scroll\", onScroll, {\n        passive: true\n    });\n\n    \/\/ Floating CTA: appears once the product section is well in view, hides at the offer block\n    var sticky = document.getElementById(\"sticky\"),\n        sol = document.getElementById(\"oplossing\"),\n        started = false,\n        offerIn = false,\n        surveyIn = false;\n    function setSticky() {\n        var on = started && !offerIn && !surveyIn;\n        sticky.classList.toggle(\"on\", on);\n        sticky.setAttribute(\"aria-hidden\", on ? \"false\" : \"true\");\n        sticky.querySelector(\"a\").tabIndex = on ? 0 : -1;\n    }\n    function checkStart() {\n        if (!started && sol && sol.getBoundingClientRect().top < innerHeight * 0.35) {\n            started = true;\n            setSticky();\n        }\n    }\n    addEventListener(\"scroll\", checkStart, {\n        passive: true\n    });\n    checkStart();\n    if (\"IntersectionObserver\" in window) {\n        new IntersectionObserver(function(e) {\n            offerIn = e[0].isIntersecting;\n            setSticky();\n        }).observe(document.getElementById(\"aanbod\"));\n        var rc = document.getElementById(\"rugcheck\");\n        if (rc)\n            new IntersectionObserver(function(e) {\n                surveyIn = e[0].isIntersecting;\n                setSticky();\n            }).observe(rc);\n    }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Miksi selk\u00e4si on j\u00e4ykempi aamulla kuin illalla Mit\u00e4 sel\u00e4ss\u00e4si tapahtuu y\u00f6ll\u00e4, miksi uusi patja ei usein ratkaise asiaa ja miten ANDUFIT, patjan alle asetettava hierontamoduuli, rentouttaa selk\u00e4si jo ennen kuin nouset yl\u00f6s. Yhteisty\u00f6ss\u00e4 dr. Roland Stutzin kanssa Liikuntatieteilij\u00e4 ja Andullation\u00ae-tieteellisen neuvottelukunnan puheenjohtaja Her\u00e4\u00e4 ja rentouta selk\u00e4si ensin ANDUFIT-hierontamoduulilla, jo ennen kuin nouset yl\u00f6s. P\u00e4iv\u00e4n ensimm\u00e4inen [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-blank-canvas.php","meta":{"footnotes":""},"class_list":["post-1148","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/lu.andufit.com\/fi\/wp-json\/wp\/v2\/pages\/1148","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lu.andufit.com\/fi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lu.andufit.com\/fi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lu.andufit.com\/fi\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lu.andufit.com\/fi\/wp-json\/wp\/v2\/comments?post=1148"}],"version-history":[{"count":3,"href":"https:\/\/lu.andufit.com\/fi\/wp-json\/wp\/v2\/pages\/1148\/revisions"}],"predecessor-version":[{"id":1166,"href":"https:\/\/lu.andufit.com\/fi\/wp-json\/wp\/v2\/pages\/1148\/revisions\/1166"}],"wp:attachment":[{"href":"https:\/\/lu.andufit.com\/fi\/wp-json\/wp\/v2\/media?parent=1148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}