{"id":1499,"date":"2026-01-28T15:17:13","date_gmt":"2026-01-28T15:17:13","guid":{"rendered":"https:\/\/yourcleanlab.com\/?page_id=1499"},"modified":"2026-04-15T12:02:37","modified_gmt":"2026-04-15T12:02:37","slug":"tips-voor-de-was","status":"publish","type":"page","link":"https:\/\/yourcleanlab.com\/nl\/blog\/laundry_tips\/","title":{"rendered":"Tips voor de was"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1499\" class=\"elementor elementor-1499\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d82b6b5 e-flex e-con-boxed e-con e-parent\" data-id=\"d82b6b5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-37ec7ee elementor-widget elementor-widget-html\" data-id=\"37ec7ee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     CleanLab Blog Index \u2014 v1\n     One reusable HTML widget for \/blog\/ AND each category page.\n     Paste into an Elementor HTML widget on every blog page:\n       \/blog\/\n       \/blog\/behind-the-scenes\/\n       \/blog\/client-experiences\/\n       \/blog\/laundry_tips\/\n       \/blog\/general\/\n     The JS auto-detects which page it's on from the URL and fetches\n     the right posts via the WordPress REST API.\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<style>\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@500;600;700;800&family=Poppins:wght@400;500;600&family=Inter:wght@300;400;500;600&display=swap');\n\n  \/* \u2500\u2500\u2500 Brand tokens + category accent \u2500\u2500\u2500 *\/\n  .cl-blog-scope {\n    --beige: #F5F5F5;\n    --sand: #D0CECA;\n    --blue: #97B4DE;\n    --black: #2B2829;\n    --yellow: #F2FB61;\n    --blue-cta: #5788B6;\n    --bg: #ffffff;\n    --muted: #7a7674;\n    --border: #e6e4e0;\n    --accent: var(--yellow);\n    --accent-ink: var(--black);\n    --accent-soft: #fcfde0;\n    --font-display: 'Montserrat', sans-serif;\n    --font-sub: 'Poppins', sans-serif;\n    --font-body: 'Inter', sans-serif;\n  }\n  body.cat-behind  .cl-blog-scope { --accent: #F2FB61; --accent-ink: #2B2829; --accent-soft: #fcfde0; }\n  body.cat-client  .cl-blog-scope { --accent: #5788B6; --accent-ink: #ffffff; --accent-soft: #e8eef4; }\n  body.cat-tips    .cl-blog-scope { --accent: #97B4DE; --accent-ink: #2B2829; --accent-soft: #eaf0fa; }\n  body.cat-general .cl-blog-scope { --accent: #D0CECA; --accent-ink: #2B2829; --accent-soft: #efede9; }\n\n  \/* \u2500\u2500\u2500 Container \u2500\u2500\u2500 *\/\n  .cl-blog-index {\n    font-family: var(--font-body);\n    color: var(--black);\n    max-width: 1200px;\n    margin: 0 auto;\n    padding: 0 20px;\n    box-sizing: border-box;\n  }\n  .cl-blog-index *, .cl-blog-index *::before, .cl-blog-index *::after { box-sizing: border-box; }\n\n  \/* \u2500\u2500\u2500 HERO BANNER \u2500\u2500\u2500 *\/\n  .cl-bi-hero {\n    background: var(--beige);\n    border-radius: 18px;\n    padding: 56px 48px;\n    display: grid;\n    grid-template-columns: 1.1fr 1fr;\n    gap: 60px;\n    align-items: start;\n    margin: 32px 0 40px;\n    border: 1px solid var(--border);\n  }\n  .cl-bi-hero-label {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    background: #fff;\n    color: var(--black);\n    font-family: var(--font-display);\n    font-size: 11px;\n    font-weight: 800;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n    padding: 6px 14px;\n    border-radius: 999px;\n    margin-bottom: 20px;\n    border: 1px solid var(--border);\n  }\n  .cl-bi-hero-label::before {\n    content: '';\n    width: 7px; height: 7px;\n    background: var(--accent);\n    border-radius: 50%;\n  }\n  .cl-bi-hero h1 {\n    font-family: var(--font-display);\n    font-size: 48px; font-weight: 800;\n    line-height: 1.08; letter-spacing: -1.2px;\n    color: var(--black);\n    margin: 0 0 18px;\n  }\n  .cl-bi-hero h1 .accent { color: var(--blue-cta); font-style: normal; }\n  .cl-bi-hero > div > p {\n    font-family: var(--font-sub);\n    font-size: 17px; color: var(--muted);\n    line-height: 1.6;\n    margin: 0 0 28px;\n    max-width: 460px;\n  }\n  .cl-bi-hero-cta {\n    display: inline-block;\n    padding: 13px 26px;\n    background: var(--yellow);\n    color: var(--blue-cta) !important;\n    font-family: var(--font-display);\n    font-size: 13px; font-weight: 800;\n    letter-spacing: 0.08em; text-transform: uppercase;\n    border-radius: 999px;\n    text-decoration: none !important;\n    transition: all 0.2s;\n  }\n  .cl-bi-hero-cta:hover { background: var(--blue-cta); color: var(--yellow) !important; }\n\n  .cl-bi-featured-stack { display: flex; flex-direction: column; gap: 12px; }\n  .cl-bi-feat-row {\n    background: #fff;\n    border: 1px solid var(--border);\n    border-radius: 12px;\n    padding: 16px 20px;\n    display: flex;\n    align-items: center;\n    gap: 16px;\n    transition: all 0.2s;\n    text-decoration: none !important;\n    color: var(--black) !important;\n  }\n  .cl-bi-feat-row:hover {\n    border-color: var(--accent);\n    box-shadow: 0 0 0 3px var(--accent-soft);\n    transform: translateX(4px);\n  }\n  .cl-bi-feat-thumb {\n    width: 56px; height: 56px;\n    border-radius: 8px;\n    background-size: cover;\n    background-position: center;\n    background-color: var(--sand);\n    flex-shrink: 0;\n  }\n  .cl-bi-feat-meta { flex: 1; display: flex; flex-direction: column; gap: 3px; min-width: 0; }\n  .cl-bi-feat-title {\n    font-family: var(--font-sub);\n    font-size: 14px; font-weight: 600;\n    color: var(--black);\n    line-height: 1.35;\n    overflow: hidden;\n    display: -webkit-box;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n  }\n  .cl-bi-feat-sub {\n    font-size: 12px; color: var(--muted);\n  }\n  .cl-bi-feat-badge {\n    font-family: var(--font-display);\n    font-size: 10px; font-weight: 800;\n    letter-spacing: 0.1em; text-transform: uppercase;\n    padding: 4px 10px;\n    border-radius: 999px;\n    border: 1px solid;\n    white-space: nowrap;\n  }\n  .cl-bi-feat-badge.tag-behind   { background: #fcfde0; color: #8a7a00; border-color: #e8ef8f; }\n  .cl-bi-feat-badge.tag-client   { background: #e8eef4; color: #5788B6; border-color: #cddcf0; }\n  .cl-bi-feat-badge.tag-tips     { background: #eaf0fa; color: #5788B6; border-color: #cddcf0; }\n  .cl-bi-feat-badge.tag-general  { background: #efede9; color: #2B2829; border-color: #d8d4ce; }\n\n  \/* \u2500\u2500\u2500 MAIN LAYOUT \u2500\u2500\u2500 *\/\n  .cl-bi-main {\n    display: grid;\n    grid-template-columns: 1fr 320px;\n    gap: 60px;\n    padding-bottom: 80px;\n  }\n  .cl-bi-articles { padding-right: 8px; }\n\n  \/* Featured article card *\/\n  .cl-bi-featured {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 32px;\n    padding: 28px;\n    background: var(--beige);\n    border-radius: 16px;\n    border: 1px solid var(--border);\n    margin-bottom: 36px;\n    text-decoration: none !important;\n    color: var(--black) !important;\n    transition: box-shadow 0.2s;\n  }\n  .cl-bi-featured:hover { box-shadow: 0 10px 30px rgba(43,40,41,0.08); }\n  .cl-bi-featured-img {\n    border-radius: 10px;\n    height: 220px;\n    background-size: cover;\n    background-position: center;\n    background-color: var(--sand);\n  }\n  .cl-bi-featured-meta { display: flex; flex-direction: column; justify-content: center; gap: 12px; }\n  .cl-bi-featured-tag-row { display: flex; gap: 8px; align-items: center; }\n  .cl-bi-read-badge {\n    font-family: var(--font-display);\n    font-size: 11px;\n    background: #fff;\n    padding: 5px 12px;\n    border-radius: 999px;\n    color: var(--muted);\n    font-weight: 800;\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n    border: 1px solid var(--border);\n  }\n  .cl-bi-featured-title {\n    font-family: var(--font-display);\n    font-size: 24px; font-weight: 800;\n    letter-spacing: -0.5px; line-height: 1.2;\n    color: var(--black);\n  }\n  .cl-bi-featured-excerpt {\n    font-family: var(--font-body);\n    font-size: 14px; color: var(--muted);\n    line-height: 1.65;\n    overflow: hidden;\n    display: -webkit-box;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n  }\n  .cl-bi-featured-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 4px; font-family: var(--font-sub); font-size: 12px; color: var(--muted); }\n\n  \/* Article rows *\/\n  .cl-bi-divider {\n    font-family: var(--font-display);\n    font-size: 11px; font-weight: 800;\n    letter-spacing: 0.14em; text-transform: uppercase;\n    color: var(--muted);\n    padding: 20px 0 14px;\n    border-top: 1px solid var(--border);\n    margin-top: 8px;\n  }\n  .cl-bi-article-row {\n    display: flex;\n    gap: 22px;\n    padding: 20px 0;\n    border-bottom: 1px solid var(--border);\n    align-items: center;\n    text-decoration: none !important;\n    color: var(--black) !important;\n    transition: all 0.15s;\n  }\n  .cl-bi-article-row:hover { padding-left: 8px; }\n  .cl-bi-article-row:hover .cl-bi-row-title { color: var(--blue-cta); }\n  .cl-bi-row-thumb {\n    width: 92px; height: 92px;\n    border-radius: 10px;\n    background-size: cover;\n    background-position: center;\n    background-color: var(--sand);\n    flex-shrink: 0;\n  }\n  .cl-bi-row-content { flex: 1; display: flex; flex-direction: column; gap: 8px; min-width: 0; }\n  .cl-bi-row-title {\n    font-family: var(--font-display);\n    font-size: 18px; font-weight: 800;\n    letter-spacing: -0.3px; line-height: 1.3;\n    color: var(--black);\n    transition: color 0.15s;\n    overflow: hidden;\n    display: -webkit-box;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n  }\n  .cl-bi-row-meta { font-family: var(--font-sub); font-size: 12px; color: var(--muted); }\n\n  \/* Loading \/ empty state *\/\n  .cl-bi-loading, .cl-bi-empty {\n    padding: 40px 0;\n    text-align: center;\n    color: var(--muted);\n    font-family: var(--font-sub);\n    font-size: 14px;\n  }\n\n  \/* Pagination *\/\n  .cl-bi-loadmore-wrap { text-align: center; padding: 40px 0 0; }\n  .cl-bi-loadmore {\n    display: inline-block;\n    padding: 12px 28px;\n    background: transparent;\n    color: var(--black);\n    font-family: var(--font-display);\n    font-size: 13px; font-weight: 800;\n    letter-spacing: 0.08em; text-transform: uppercase;\n    border: 1px solid var(--black);\n    border-radius: 999px;\n    cursor: pointer;\n    transition: all 0.2s;\n  }\n  .cl-bi-loadmore:hover { background: var(--black); color: #fff; }\n  .cl-bi-loadmore[disabled] { opacity: 0.5; cursor: not-allowed; }\n\n  \/* \u2500\u2500\u2500 BOTTOM CTA \u2500\u2500\u2500 *\/\n  .cl-bi-cta {\n    margin: 0 0 80px;\n    padding: 64px 48px;\n    background: var(--black);\n    color: #fff;\n    border-radius: 18px;\n    text-align: center;\n    position: relative;\n    overflow: hidden;\n  }\n  .cl-bi-cta::before {\n    content: '';\n    position: absolute;\n    width: 500px; height: 500px;\n    border-radius: 50%;\n    background: radial-gradient(circle, rgba(242,251,97,0.12) 0%, transparent 70%);\n    right: -180px; top: -180px;\n    pointer-events: none;\n  }\n  .cl-bi-cta h3 {\n    font-family: var(--font-display);\n    font-weight: 800; font-size: 34px;\n    letter-spacing: -0.5px; line-height: 1.15;\n    margin: 0 0 14px;\n    color: #fff;\n  }\n  .cl-bi-cta h3 span { color: var(--accent); }\n  .cl-bi-cta p {\n    font-family: var(--font-body);\n    font-size: 16px; color: rgba(255,255,255,0.75);\n    max-width: 460px; margin: 0 auto 26px;\n    line-height: 1.6;\n  }\n  .cl-bi-cta a {\n    display: inline-block;\n    padding: 14px 32px;\n    background: var(--accent); color: var(--accent-ink) !important;\n    text-decoration: none !important;\n    font-family: var(--font-display);\n    font-weight: 800; text-transform: uppercase;\n    letter-spacing: 0.08em; font-size: 13px;\n    border-radius: 999px;\n    transition: 0.2s;\n  }\n  .cl-bi-cta a:hover { background: #fff; color: var(--black) !important; }\n  @media (max-width: 640px) {\n    .cl-bi-cta { padding: 40px 24px; border-radius: 14px; }\n    .cl-bi-cta h3 { font-size: 24px; }\n    .cl-bi-cta p { font-size: 14px; }\n  }\n\n  \/* \u2500\u2500\u2500 SIDEBAR \u2500\u2500\u2500 *\/\n  .cl-bi-sidebar { padding-top: 0; }\n  .cl-bi-side-section { margin-bottom: 40px; }\n  .cl-bi-side-head {\n    font-family: var(--font-display);\n    font-size: 11px; font-weight: 800;\n    letter-spacing: 0.14em; text-transform: uppercase;\n    color: var(--black);\n    margin: 0 0 16px;\n    padding-bottom: 12px;\n    border-bottom: 1px solid var(--border);\n  }\n  .cl-bi-trending-item {\n    display: flex;\n    align-items: flex-start;\n    gap: 16px;\n    padding: 14px 0;\n    border-bottom: 1px solid var(--border);\n    text-decoration: none !important;\n    color: var(--black) !important;\n    transition: all 0.15s;\n  }\n  .cl-bi-trending-item:last-child { border-bottom: none; }\n  .cl-bi-trending-num {\n    font-family: var(--font-display);\n    font-size: 26px; font-weight: 800;\n    color: var(--sand);\n    line-height: 1;\n    min-width: 32px;\n    transition: color 0.15s;\n  }\n  .cl-bi-trending-item:hover .cl-bi-trending-num { color: var(--accent); }\n  .cl-bi-trending-title {\n    font-family: var(--font-sub);\n    font-size: 13px; font-weight: 600;\n    line-height: 1.4;\n    color: var(--black);\n    overflow: hidden;\n    display: -webkit-box;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n  }\n  .cl-bi-trending-meta { font-size: 11px; color: var(--muted); margin-top: 4px; font-family: var(--font-body); }\n  .cl-bi-tag-cloud { display: flex; flex-wrap: wrap; gap: 8px; }\n  .cl-bi-tag-chip {\n    padding: 7px 14px;\n    background: var(--beige);\n    border-radius: 999px;\n    font-family: var(--font-sub);\n    font-size: 12px; font-weight: 500;\n    color: var(--black);\n    text-decoration: none !important;\n    border: 1px solid var(--border);\n    transition: all 0.15s;\n  }\n  .cl-bi-tag-chip:hover { background: var(--blue); color: #fff !important; border-color: var(--blue); }\n\n  \/* \u2500\u2500\u2500 Responsive \u2500\u2500\u2500 *\/\n  @media (max-width: 960px) {\n    .cl-blog-index { padding: 0 16px; }\n    .cl-bi-hero {\n      grid-template-columns: 1fr;\n      gap: 32px;\n      padding: 40px 28px;\n      margin: 20px 0 32px;\n    }\n    .cl-bi-hero h1 { font-size: 36px; }\n    .cl-bi-hero > div > p { max-width: none; }\n    .cl-bi-main { grid-template-columns: 1fr; gap: 0; }\n    .cl-bi-articles { padding-right: 0; padding-bottom: 40px; }\n    .cl-bi-featured { grid-template-columns: 1fr; }\n  }\n\n  @media (max-width: 640px) {\n    .cl-bi-hero {\n      padding: 28px 20px;\n      gap: 26px;\n      border-radius: 14px;\n    }\n    .cl-bi-hero-label {\n      font-size: 10px;\n      padding: 5px 12px;\n      margin-bottom: 16px;\n    }\n    .cl-bi-hero h1 {\n      font-size: 28px;\n      letter-spacing: -0.8px;\n      margin-bottom: 14px;\n    }\n    .cl-bi-hero > div > p {\n      font-size: 15px;\n      margin-bottom: 22px;\n    }\n    .cl-bi-hero-cta {\n      padding: 12px 22px;\n      font-size: 12px;\n    }\n\n    \/* Featured-stack cards \u2014 badge wraps below on narrow screens *\/\n    .cl-bi-feat-row {\n      padding: 12px 14px;\n      gap: 12px;\n      flex-wrap: wrap;\n      align-items: center;\n    }\n    .cl-bi-feat-thumb { width: 48px; height: 48px; border-radius: 8px; }\n    .cl-bi-feat-meta {\n      flex: 1 1 calc(100% - 64px);\n      min-width: 0;\n    }\n    .cl-bi-feat-title { font-size: 13px; -webkit-line-clamp: 2; }\n    .cl-bi-feat-sub { font-size: 11px; }\n    .cl-bi-feat-badge {\n      flex: 0 0 auto;\n      order: 3;\n      width: auto;\n      margin-left: 60px;\n      margin-top: 2px;\n      font-size: 9px;\n      padding: 3px 8px;\n      letter-spacing: 0.08em;\n    }\n    .cl-bi-feat-row:hover { transform: none; }\n\n    \/* Featured article *\/\n    .cl-bi-featured {\n      padding: 18px;\n      gap: 20px;\n      border-radius: 14px;\n      margin-bottom: 28px;\n    }\n    .cl-bi-featured-img { height: 180px; border-radius: 10px; }\n    .cl-bi-featured-meta { gap: 10px; }\n    .cl-bi-featured-title { font-size: 20px; line-height: 1.25; }\n    .cl-bi-featured-excerpt { font-size: 13px; }\n    .cl-bi-featured-tag-row { flex-wrap: wrap; gap: 6px; }\n\n    \/* Article rows *\/\n    .cl-bi-divider { padding: 16px 0 10px; }\n    .cl-bi-article-row { gap: 14px; padding: 16px 0; align-items: flex-start; }\n    .cl-bi-article-row:hover { padding-left: 0; }\n    .cl-bi-row-thumb { width: 72px; height: 72px; border-radius: 8px; }\n    .cl-bi-row-content { gap: 6px; }\n    .cl-bi-row-title { font-size: 15px; }\n\n    \/* Sidebar *\/\n    .cl-bi-side-head { margin-bottom: 14px; padding-bottom: 10px; }\n    .cl-bi-tag-cloud { gap: 6px; }\n    .cl-bi-tag-chip { padding: 6px 12px; font-size: 11px; }\n  }\n\n  @media (max-width: 400px) {\n    .cl-bi-hero h1 { font-size: 26px; }\n    .cl-bi-feat-badge { display: none; }  \/* badge hides on super-narrow devices *\/\n  }\n<\/style>\n\n<!-- Scope wrapper \u2014 CSS vars resolve here -->\n<div class=\"cl-blog-scope\">\n  <div class=\"cl-blog-index\">\n\n    <!-- HERO -->\n    <section class=\"cl-bi-hero\">\n      <div>\n        <div class=\"cl-bi-hero-label\" id=\"cl-bi-hero-label\">The CleanLab Journal<\/div>\n        <h1 id=\"cl-bi-hero-title\">Fresh thinking.<br><span class=\"accent\">Fresh laundry.<\/span><\/h1>\n        <p id=\"cl-bi-hero-sub\">Behind-the-scenes stories, client experiences, and expert tips on ironing and laundry care from the CleanLab team.<\/p>\n        <a href=\"\/services-pricing\/\" class=\"cl-bi-hero-cta\">Plan your laundry<\/a>\n      <\/div>\n      <div class=\"cl-bi-featured-stack\" id=\"cl-bi-featured-stack\">\n        <div class=\"cl-bi-loading\">Loading featured posts\\u2026<\/div>\n      <\/div>\n    <\/section>\n\n    <!-- MAIN -->\n    <div class=\"cl-bi-main\">\n\n      <!-- ARTICLES COLUMN -->\n      <div class=\"cl-bi-articles\">\n        <div id=\"cl-bi-featured-article-slot\"><\/div>\n        <div class=\"cl-bi-divider\" id=\"cl-bi-list-divider\">Latest articles<\/div>\n        <div id=\"cl-bi-article-list\">\n          <div class=\"cl-bi-loading\">Loading articles\\u2026<\/div>\n        <\/div>\n        <div class=\"cl-bi-loadmore-wrap\" id=\"cl-bi-loadmore-wrap\" style=\"display:none;\">\n          <button class=\"cl-bi-loadmore\" id=\"cl-bi-loadmore\">Load more articles<\/button>\n        <\/div>\n      <\/div>\n\n      <!-- SIDEBAR -->\n      <aside class=\"cl-bi-sidebar\">\n        <div class=\"cl-bi-side-section\">\n          <div class=\"cl-bi-side-head\">Most read<\/div>\n          <div id=\"cl-bi-trending\">\n            <div class=\"cl-bi-loading\">Loading\\u2026<\/div>\n          <\/div>\n        <\/div>\n        <div class=\"cl-bi-side-section\">\n          <div class=\"cl-bi-side-head\">Browse topics<\/div>\n          <div class=\"cl-bi-tag-cloud\" id=\"cl-bi-tag-cloud\">\n            <a href=\"\/blog\/behind-the-scenes\/\" class=\"cl-bi-tag-chip\">Behind the scenes<\/a>\n            <a href=\"\/blog\/client-experiences\/\" class=\"cl-bi-tag-chip\">Client experiences<\/a>\n            <a href=\"\/blog\/laundry_tips\/\" class=\"cl-bi-tag-chip\">Laundry tips<\/a>\n            <a href=\"\/blog\/general\/\" class=\"cl-bi-tag-chip\">General<\/a>\n          <\/div>\n        <\/div>\n      <\/aside>\n\n    <\/div>\n\n    <!-- BOTTOM CTA -->\n    <section class=\"cl-bi-cta\">\n      <h3 id=\"cl-bi-cta-title\">Ready to <span>reclaim your time?<\/span><\/h3>\n      <p id=\"cl-bi-cta-sub\">Let CleanLab handle your laundry while you focus on what matters.<\/p>\n      <a href=\"\/services-pricing\/\" id=\"cl-bi-cta-btn\">Schedule your pickup<\/a>\n    <\/section>\n\n  <\/div>\n<\/div>\n\n<script>\n(function() {\n  \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 CONFIG \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  var CATEGORY_SLUGS = {\n    'behind-the-scenes': { class: 'cat-behind',  tag: 'tag-behind',  label_en: 'Behind the scenes',   label_nl: 'Achter de schermen',\n      hero_en: { label: 'Behind the scenes', h1: 'Behind the <em>scenes<\/em>.', sub: 'An inside look at CleanLab \\u2014 our team, our facility, our process.' },\n      hero_nl: { label: 'Achter de schermen', h1: 'Achter de <em>schermen<\/em>.', sub: 'Een kijkje binnen CleanLab \\u2014 ons team, onze locatie, ons proces.' } },\n    'client-experiences': { class: 'cat-client',  tag: 'tag-client',  label_en: 'Client experiences',  label_nl: 'Klantervaringen',\n      hero_en: { label: 'Client experiences', h1: 'Real <em>client<\/em> stories.', sub: 'How people across Amsterdam use CleanLab \\u2014 in their own words.' },\n      hero_nl: { label: 'Klantervaringen', h1: 'Echte <em>klant<\/em>verhalen.', sub: 'Hoe mensen in Amsterdam CleanLab gebruiken \\u2014 in hun eigen woorden.' } },\n    'laundry_tips':      { class: 'cat-tips',    tag: 'tag-tips',    label_en: 'Laundry tips',        label_nl: 'Was-tips',\n      hero_en: { label: 'Laundry tips', h1: 'Laundry tips from <em>the pros<\/em>.', sub: 'Practical advice on stains, fabrics, ironing, and everything in between.' },\n      hero_nl: { label: 'Was-tips', h1: 'Was-tips van <em>de pros<\/em>.', sub: 'Praktisch advies over vlekken, stoffen, strijken en alles daartussen.' } },\n    'general':           { class: 'cat-general', tag: 'tag-general', label_en: 'General',             label_nl: 'Algemeen',\n      hero_en: { label: 'General', h1: 'CleanLab <em>news<\/em>.', sub: 'Announcements, awards, and updates from CleanLab.' },\n      hero_nl: { label: 'Algemeen', h1: 'CleanLab <em>nieuws<\/em>.', sub: 'Aankondigingen, prijzen en updates van CleanLab.' } }\n  };\n\n  var NL_SLUG_ALIASES = {\n    'achter-de-schermen': 'behind-the-scenes',\n    'klantervaringen':    'client-experiences',\n    'was-tips':           'laundry_tips',\n    'algemeen':           'general'\n  };\n\n  var PAGE_SIZE = 4;         \/* 1 featured card + 3 list rows *\/\n  var DISABLE_LOAD_MORE = true;\n\n  \/* Language-specific category slug lists.\n     Root pages (\/blog\/ and \/nl\/blog\/) fetch only posts in these categories. *\/\n  var EN_SLUGS = ['behind-the-scenes', 'client-experiences', 'laundry_tips', 'general'];\n  var NL_SLUGS = ['achter-de-schermen', 'klantervaringen', 'was-tips', 'algemeen'];\n  var FALLBACK_IMG = 'https:\/\/yourcleanlab.com\/wp-content\/uploads\/2025\/12\/CleanLab-04-scaled.webp';\n\n  \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 HELPERS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function getLang() {\n    if (document.body.classList.contains('translatepress-nl_NL')) return 'nl';\n    if (window.location.pathname.indexOf('\/nl\/') === 0) return 'nl';\n    return 'en';\n  }\n  function decode(html) { var t = document.createElement('textarea'); t.innerHTML = html; return t.value; }\n  function stripTags(html) { var t = document.createElement('div'); t.innerHTML = html; return (t.textContent || t.innerText || '').trim(); }\n  function formatDate(dateStr, lang) {\n    var d = new Date(dateStr); if (isNaN(d.getTime())) return '';\n    if (lang === 'nl') {\n      var months = ['jan','feb','mrt','apr','mei','jun','jul','aug','sep','okt','nov','dec'];\n      return d.getDate() + ' ' + months[d.getMonth()] + ' ' + d.getFullYear();\n    }\n    return d.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });\n  }\n\n  \/* Detect which page we're on from the URL *\/\n  function detectPage() {\n    var path = window.location.pathname.toLowerCase().replace(\/\\\/+$\/, '');\n    var segs = path.split('\/').filter(Boolean);\n    \/\/ Strip locale prefix\n    if (segs[0] === 'nl') segs.shift();\n    \/\/ segs[0] should be 'blog'\n    if (segs.length === 1 && segs[0] === 'blog') return { type: 'root', slug: null, meta: null };\n    if (segs.length >= 2 && segs[0] === 'blog') {\n      var slug = segs[1];\n      if (NL_SLUG_ALIASES[slug]) slug = NL_SLUG_ALIASES[slug];\n      if (CATEGORY_SLUGS[slug]) return { type: 'category', slug: slug, meta: CATEGORY_SLUGS[slug] };\n    }\n    return { type: 'root', slug: null, meta: null };\n  }\n\n  \/* Get the primary category for a post from its _embedded terms *\/\n  function getPostCategory(p) {\n    try {\n      var terms = p._embedded['wp:term'][0];\n      for (var i = 0; i < terms.length; i++) {\n        var slug = terms[i].slug;\n        if (NL_SLUG_ALIASES[slug]) slug = NL_SLUG_ALIASES[slug];\n        if (CATEGORY_SLUGS[slug]) return { slug: slug, meta: CATEGORY_SLUGS[slug] };\n      }\n    } catch(e) {}\n    return null;\n  }\n\n  function getPostImage(p) {\n    try { return p._embedded['wp:featuredmedia'][0].source_url; } catch(e) {}\n    return FALLBACK_IMG;\n  }\n\n  \/* Fetch the category ID from the REST API by slug (needed for filtering) *\/\n  function fetchCategoryId(slug) {\n    return fetch('\/wp-json\/wp\/v2\/categories?slug=' + encodeURIComponent(slug))\n      .then(function(r) { return r.json(); })\n      .then(function(arr) { return (Array.isArray(arr) && arr.length) ? arr[0].id : null; })\n      .catch(function() { return null; });\n  }\n\n  \/* Fetch IDs for multiple slugs at once. Returns a comma-separated string\n     or null if none resolved. Used on root pages to restrict to a language. *\/\n  function fetchCategoryIds(slugs) {\n    var query = slugs.map(encodeURIComponent).join(',');\n    return fetch('\/wp-json\/wp\/v2\/categories?slug=' + query + '&per_page=20')\n      .then(function(r) { return r.json(); })\n      .then(function(arr) {\n        if (!Array.isArray(arr) || !arr.length) return null;\n        return arr.map(function(c) { return c.id; }).join(',');\n      })\n      .catch(function() { return null; });\n  }\n\n  \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 INIT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function init() {\n    var lang = getLang();\n    var page = detectPage();\n\n    \/* Apply category class to body for accent colouring *\/\n    if (page.type === 'category') {\n      document.body.classList.add(page.meta.class);\n    }\n\n    \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500 Update hero copy for category pages \u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    if (page.type === 'category') {\n      var hero = lang === 'nl' ? page.meta.hero_nl : page.meta.hero_en;\n      var labelEl = document.getElementById('cl-bi-hero-label');\n      var titleEl = document.getElementById('cl-bi-hero-title');\n      var subEl   = document.getElementById('cl-bi-hero-sub');\n      if (labelEl) labelEl.textContent = hero.label;\n      if (titleEl) titleEl.innerHTML = hero.h1.replace(\/<em>\/g, '<span class=\"accent\">').replace(\/<\\\/em>\/g, '<\/span>');\n      if (subEl)   subEl.textContent = hero.sub;\n    } else if (lang === 'nl') {\n      var labelEl2 = document.getElementById('cl-bi-hero-label'); if (labelEl2) labelEl2.textContent = 'Het CleanLab Journal';\n      var titleEl2 = document.getElementById('cl-bi-hero-title'); if (titleEl2) titleEl2.innerHTML = 'Frisse gedachten.<br><span class=\"accent\">Frisse was.<\/span>';\n      var subEl2   = document.getElementById('cl-bi-hero-sub');   if (subEl2)   subEl2.textContent = 'Verhalen van achter de schermen, klantervaringen en tips over strijken en was van het CleanLab-team.';\n    }\n\n    \/* Bottom CTA translations *\/\n    if (lang === 'nl') {\n      var ctaT = document.getElementById('cl-bi-cta-title'); if (ctaT) ctaT.innerHTML = 'Klaar om <span>je tijd terug te winnen?<\/span>';\n      var ctaS = document.getElementById('cl-bi-cta-sub');   if (ctaS) ctaS.textContent = 'Laat CleanLab je was doen terwijl jij je focust op wat belangrijk is.';\n      var ctaB = document.getElementById('cl-bi-cta-btn');   if (ctaB) { ctaB.textContent = 'Plan je ophaalmoment'; ctaB.setAttribute('href', '\/nl\/services-pricing\/'); }\n    }\n\n    var listDivider = document.getElementById('cl-bi-list-divider');\n    if (listDivider) {\n      if (page.type === 'category') {\n        listDivider.textContent = lang === 'nl' ? 'Alle artikelen' : 'All articles';\n      } else {\n        listDivider.textContent = lang === 'nl' ? 'Laatste artikelen' : 'Latest articles';\n      }\n    }\n\n    \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500 Fetch category IDs based on page type and language \u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    var categoryIdPromise;\n    if (page.type === 'category') {\n      \/* Specific category page \u2014 filter to that single category *\/\n      categoryIdPromise = fetchCategoryId(page.slug);\n    } else {\n      \/* Root page \u2014 filter to all 4 categories of the current language only *\/\n      var slugs = lang === 'nl' ? NL_SLUGS : EN_SLUGS;\n      categoryIdPromise = fetchCategoryIds(slugs);\n    }\n\n    categoryIdPromise.then(function(catId) {\n      loadFeaturedStack(catId, lang, page);\n      loadArticles(catId, lang, page);\n      loadTrending(catId, lang);\n    });\n  }\n\n  \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Featured stack (right side of hero, 3 posts) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function loadFeaturedStack(catId, lang, page) {\n    var url = '\/wp-json\/wp\/v2\/posts?per_page=3&_embed&orderby=date&order=desc';\n    if (catId) url += '&categories=' + catId;\n    var container = document.getElementById('cl-bi-featured-stack');\n    fetch(url).then(function(r) { return r.json(); }).then(function(posts) {\n      if (!Array.isArray(posts) || !posts.length) {\n        container.innerHTML = '<div class=\"cl-bi-empty\">' + (lang === 'nl' ? 'Nog geen artikelen' : 'No articles yet') + '<\/div>';\n        return;\n      }\n      var html = '';\n      for (var i = 0; i < posts.length; i++) {\n        var p = posts[i];\n        var title = decode(p.title.rendered);\n        var img = getPostImage(p);\n        var cat = getPostCategory(p);\n        var tagClass = cat ? cat.meta.tag : 'tag-general';\n        var catLabel = cat ? (lang === 'nl' ? cat.meta.label_nl : cat.meta.label_en) : '';\n        var date = formatDate(p.date, lang);\n        html += '<a class=\"cl-bi-feat-row\" href=\"' + p.link + '\">'\n             +    '<div class=\"cl-bi-feat-thumb\" style=\"background-image:url(' + img + ')\"><\/div>'\n             +    '<div class=\"cl-bi-feat-meta\">'\n             +      '<div class=\"cl-bi-feat-title\">' + title + '<\/div>'\n             +      '<div class=\"cl-bi-feat-sub\">' + date + '<\/div>'\n             +    '<\/div>'\n             +    '<span class=\"cl-bi-feat-badge ' + tagClass + '\">' + catLabel + '<\/span>'\n             +  '<\/a>';\n      }\n      container.innerHTML = html;\n    }).catch(function() {\n      container.innerHTML = '<div class=\"cl-bi-empty\">' + (lang === 'nl' ? 'Laden mislukt' : 'Failed to load') + '<\/div>';\n    });\n  }\n\n  \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Article list \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  var _loadedPostIds = [];\n  var _currentPage = 1;\n  var _catId = null;\n  var _totalPages = 1;\n\n  function loadArticles(catId, lang, page) {\n    _catId = catId;\n    _currentPage = 1;\n    _loadedPostIds = [];\n    var listEl = document.getElementById('cl-bi-article-list');\n    listEl.innerHTML = '<div class=\"cl-bi-loading\">' + (lang === 'nl' ? 'Laden\\u2026' : 'Loading\\u2026') + '<\/div>';\n\n    fetchPage(1, lang, page, true);\n\n    var btn = document.getElementById('cl-bi-loadmore');\n    if (btn) {\n      btn.onclick = function() { fetchPage(_currentPage + 1, lang, page, false); };\n      btn.textContent = lang === 'nl' ? 'Meer artikelen laden' : 'Load more articles';\n    }\n  }\n\n  function fetchPage(pageNum, lang, page, isFirst) {\n    var url = '\/wp-json\/wp\/v2\/posts?per_page=' + PAGE_SIZE + '&page=' + pageNum + '&_embed&orderby=date&order=desc';\n    if (_catId) url += '&categories=' + _catId;\n\n    fetch(url).then(function(r) {\n      _totalPages = parseInt(r.headers.get('X-WP-TotalPages') || '1', 10);\n      return r.json();\n    }).then(function(posts) {\n      var listEl = document.getElementById('cl-bi-article-list');\n      var featSlot = document.getElementById('cl-bi-featured-article-slot');\n      if (!Array.isArray(posts) || !posts.length) {\n        if (isFirst) {\n          listEl.innerHTML = '<div class=\"cl-bi-empty\">' + (lang === 'nl' ? 'Nog geen artikelen in deze categorie' : 'No articles in this category yet') + '<\/div>';\n          featSlot.innerHTML = '';\n        }\n        document.getElementById('cl-bi-loadmore-wrap').style.display = 'none';\n        return;\n      }\n\n      var start = 0;\n\n      \/* On first page, pull out the first post as a featured card *\/\n      if (isFirst && !_loadedPostIds.length) {\n        var featPost = posts[0];\n        _loadedPostIds.push(featPost.id);\n        start = 1;\n        var cat = getPostCategory(featPost);\n        var tagClass = cat ? cat.meta.tag : 'tag-general';\n        var catLabel = cat ? (lang === 'nl' ? cat.meta.label_nl : cat.meta.label_en) : '';\n        var excerpt = stripTags(featPost.excerpt.rendered).slice(0, 180);\n        var featuredLabel = lang === 'nl' ? 'Uitgelicht' : 'Featured';\n        featSlot.innerHTML =\n          '<a class=\"cl-bi-featured\" href=\"' + featPost.link + '\">' +\n            '<div class=\"cl-bi-featured-img\" style=\"background-image:url(' + getPostImage(featPost) + ')\"><\/div>' +\n            '<div class=\"cl-bi-featured-meta\">' +\n              '<div class=\"cl-bi-featured-tag-row\">' +\n                '<span class=\"cl-bi-feat-badge ' + tagClass + '\">' + catLabel + '<\/span>' +\n                '<span class=\"cl-bi-read-badge\">' + featuredLabel + '<\/span>' +\n              '<\/div>' +\n              '<div class=\"cl-bi-featured-title\">' + decode(featPost.title.rendered) + '<\/div>' +\n              (excerpt ? '<div class=\"cl-bi-featured-excerpt\">' + excerpt + '<\/div>' : '') +\n              '<div class=\"cl-bi-featured-footer\">' +\n                '<span>' + formatDate(featPost.date, lang) + '<\/span>' +\n              '<\/div>' +\n            '<\/div>' +\n          '<\/a>';\n        listEl.innerHTML = ''; \/* clear loading *\/\n      }\n\n      \/* Render the rest as article rows *\/\n      var rowsHtml = '';\n      for (var i = start; i < posts.length; i++) {\n        var p = posts[i];\n        if (_loadedPostIds.indexOf(p.id) !== -1) continue;\n        _loadedPostIds.push(p.id);\n        var cat2 = getPostCategory(p);\n        var tagClass2 = cat2 ? cat2.meta.tag : 'tag-general';\n        var catLabel2 = cat2 ? (lang === 'nl' ? cat2.meta.label_nl : cat2.meta.label_en) : '';\n        var title2 = decode(p.title.rendered);\n        var date2 = formatDate(p.date, lang);\n        rowsHtml += '<a class=\"cl-bi-article-row\" href=\"' + p.link + '\">' +\n          '<div class=\"cl-bi-row-thumb\" style=\"background-image:url(' + getPostImage(p) + ')\"><\/div>' +\n          '<div class=\"cl-bi-row-content\">' +\n            '<span class=\"cl-bi-feat-badge ' + tagClass2 + '\" style=\"align-self:flex-start;\">' + catLabel2 + '<\/span>' +\n            '<div class=\"cl-bi-row-title\">' + title2 + '<\/div>' +\n            '<div class=\"cl-bi-row-meta\">' + date2 + '<\/div>' +\n          '<\/div>' +\n        '<\/a>';\n      }\n      if (isFirst) listEl.innerHTML = rowsHtml;\n      else         listEl.insertAdjacentHTML('beforeend', rowsHtml);\n\n      _currentPage = pageNum;\n\n      \/* Toggle load-more visibility *\/\n      var moreWrap = document.getElementById('cl-bi-loadmore-wrap');\n      if (DISABLE_LOAD_MORE) moreWrap.style.display = 'none';\n      else if (_currentPage < _totalPages) moreWrap.style.display = 'block';\n      else moreWrap.style.display = 'none';\n    }).catch(function() {\n      var listEl = document.getElementById('cl-bi-article-list');\n      listEl.innerHTML = '<div class=\"cl-bi-empty\">' + (lang === 'nl' ? 'Laden mislukt' : 'Failed to load') + '<\/div>';\n    });\n  }\n\n  \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Trending \/ Most read \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function loadTrending(catId, lang) {\n    \/* Fall back to recent if no view-count data is available. *\/\n    var url = '\/wp-json\/wp\/v2\/posts?per_page=3&_embed&orderby=date&order=desc';\n    if (catId) url += '&categories=' + catId;\n    var container = document.getElementById('cl-bi-trending');\n    fetch(url).then(function(r) { return r.json(); }).then(function(posts) {\n      if (!Array.isArray(posts) || !posts.length) { container.innerHTML = ''; return; }\n      var html = '';\n      for (var i = 0; i < posts.length; i++) {\n        var p = posts[i];\n        var n = (i + 1).toString().padStart(2, '0');\n        html += '<a class=\"cl-bi-trending-item\" href=\"' + p.link + '\">' +\n          '<div class=\"cl-bi-trending-num\">' + n + '<\/div>' +\n          '<div>' +\n            '<div class=\"cl-bi-trending-title\">' + decode(p.title.rendered) + '<\/div>' +\n            '<div class=\"cl-bi-trending-meta\">' + formatDate(p.date, lang) + '<\/div>' +\n          '<\/div>' +\n        '<\/a>';\n      }\n      container.innerHTML = html;\n    }).catch(function() { container.innerHTML = ''; });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>The CleanLab Journal Fresh thinking.Fresh laundry. Behind-the-scenes stories, client experiences, and expert tips on ironing and laundry care from the CleanLab team. Plan your laundry Loading featured postsu2026 Latest articles Loading articlesu2026 Load more articles Most read Loadingu2026 Browse topics Behind the scenes Client experiences Laundry tips General Ready to reclaim your time? Let CleanLab [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1324,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1499","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/yourcleanlab.com\/nl\/wp-json\/wp\/v2\/pages\/1499","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yourcleanlab.com\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/yourcleanlab.com\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/yourcleanlab.com\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yourcleanlab.com\/nl\/wp-json\/wp\/v2\/comments?post=1499"}],"version-history":[{"count":14,"href":"https:\/\/yourcleanlab.com\/nl\/wp-json\/wp\/v2\/pages\/1499\/revisions"}],"predecessor-version":[{"id":3049,"href":"https:\/\/yourcleanlab.com\/nl\/wp-json\/wp\/v2\/pages\/1499\/revisions\/3049"}],"up":[{"embeddable":true,"href":"https:\/\/yourcleanlab.com\/nl\/wp-json\/wp\/v2\/pages\/1324"}],"wp:attachment":[{"href":"https:\/\/yourcleanlab.com\/nl\/wp-json\/wp\/v2\/media?parent=1499"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}