{"id":5195,"date":"2026-09-02T23:45:26","date_gmt":"2026-09-02T21:45:26","guid":{"rendered":"https:\/\/yourcleanlab.com\/?page_id=5195"},"modified":"2026-09-02T23:45:27","modified_gmt":"2026-09-02T21:45:27","slug":"cart","status":"publish","type":"page","link":"https:\/\/yourcleanlab.com\/nl\/cart\/","title":{"rendered":"Winkelwagen"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5195\" class=\"elementor elementor-5195\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c36df3d e-flex e-con-boxed e-con e-parent\" data-id=\"c36df3d\" 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-200a9cd elementor-widget elementor-widget-html\" data-id=\"200a9cd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@500;600&display=swap');\n  .cl-cart-usps {\n    display: flex;\n    justify-content: center;\n    gap: 30px;\n    padding: 15px 20px;\n    background-color: transparent;\n    font-family: 'Inter', sans-serif;\n    font-size: 13px;\n    color: #2B2829;\n    flex-wrap: wrap;\n    margin-bottom: 10px;\n  }\n  .cl-cart-usp-item {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    font-weight: 500;\n  }\n  .cl-cart-usp-icon {\n    color: #5788B6;\n    display: flex;\n    align-items: center;\n  }\n  .cl-cart-usp-icon svg { width: 16px; height: 16px; }\n\n  \/* --- MOBILE FIXES --- *\/\n  @media screen and (max-width: 600px) {\n    .elementor-element-200a9cd {\n      width: 100% !important;\n      margin-left: 0 !important;\n      margin-right: 0 !important;\n      flex: 1 1 100% !important;\n    }\n    .cl-cart-usps { \n      justify-content: flex-start;\n      flex-direction: column;\n      gap: 2px;\n      padding: 8px 16px 2px 16px; \/* reduced top & bottom padding *\/\n      margin-bottom: 0; \/* kill bottom margin to close whitespace gap *\/\n      width: 100% !important;\n      box-sizing: border-box !important;\n    }\n    .cl-cart-usp-item { \n      font-size: 12px; \n    }\n  }\n<\/style>\n<div class=\"cl-cart-usps\">\n  <div class=\"cl-cart-usp-item\">\n    <span class=\"cl-cart-usp-icon\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle><polyline points=\"12 6 12 12 16 14\"><\/polyline><\/svg><\/span>\n    Flexible pickup - between 07:00 - 22:00\n  <\/div>\n  <div class=\"cl-cart-usp-item\">\n    <span class=\"cl-cart-usp-icon\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"><\/path><path d=\"M9 12l2 2 4-4\"><\/path><\/svg><\/span>\n    +15 years of experience\n  <\/div>\n  <div class=\"cl-cart-usp-item\">\n    <span class=\"cl-cart-usp-icon\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"none\"><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"\/><\/svg><\/span>\n    4.8\/5 on Google\n  <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cd8bb0b e-cart-layout-two-column elementor-widget elementor-widget-woocommerce-cart\" data-id=\"cd8bb0b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;sticky_right_column&quot;:&quot;yes&quot;,&quot;update_cart_automatically&quot;:&quot;yes&quot;}\" data-widget_type=\"woocommerce-cart.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"woocommerce\"><div class=\"woocommerce-notices-wrapper\"><\/div><div class=\"wc-empty-cart-message\">\n\t<div class=\"cart-empty woocommerce-info\" role=\"status\">\n\t\tJe winkelwagen is momenteel leeg.\t<\/div>\n<\/div>\t<p class=\"return-to-shop\">\n\t\t<a class=\"button wc-backward\" href=\"https:\/\/yourcleanlab.com\/nl\/store\/\">\n\t\t\tTerug naar winkel\t\t<\/a>\n\t<\/p>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2bc3a52 e-flex e-con-boxed e-con e-parent\" data-id=\"2bc3a52\" 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-37e9389 elementor-widget elementor-widget-html\" data-id=\"37e9389\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- \n  CLEANLAB CART - CUSTOM HTML (goes in separate HTML widget below Elementor Cart)\n  ================================================================================\n  This block injects:\n  - Service & Delivery box into the totals column\n  - Upsell cards after cart form (desktop) or after cart items (mobile)\n  - Payment icons into the checkout button area\n  \n  IMPORTANT: The upsell\/service\/payment HTML starts hidden (display:none).\n  The JS clones them to the right position and removes the originals.\n-->\n\n<!-- 1. SERVICE BOX (hidden, will be moved by JS) -->\n<div id=\"cl-cart-service-box\" style=\"display:none;\">\n  <div class=\"cl-service-box-inner\">\n    <h4>Service & Delivery<\/h4>\n    <ul>\n      <li>\n        <span class=\"cl-service-icon\">\n          <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle><polyline points=\"12 6 12 12 16 14\"><\/polyline><\/svg>\n        <\/span>\n        Flexible pickup - between 07:00 - 22:00\n      <\/li>\n      <li>\n        <span class=\"cl-service-icon\">\n          <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"><\/path><path d=\"M9 12l2 2 4-4\"><\/path><\/svg>\n        <\/span>\n        Free pickup & delivery\n      <\/li>\n      <li>\n        <span class=\"cl-service-icon\">\n          <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"\/><\/svg>\n        <\/span>\n        Rated 4.8\/5 on Google\n      <\/li>\n    <\/ul>\n  <\/div>\n<\/div>\n\n<!-- 2. UPSELLS (hidden, will be moved by JS) -->\n<div id=\"cl-cart-upsells\" style=\"display:none;\">\n  <div class=\"cl-upsell-wrapper\">\n    <h3 class=\"cl-upsell-title\">Complete your order<\/h3>\n    <div class=\"cl-upsell-grid\">\n      <div class=\"cl-upsell-group cl-group-once\">\n          <div class=\"cl-upsell-card\">\n            <div class=\"cl-upsell-badge badge-express\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"><\/polygon><\/svg><\/div>\n            <div class=\"cl-upsell-info\"><span class=\"cl-upsell-name\">24h Express<\/span><span class=\"cl-upsell-price\">+ <span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&euro;<\/span>&nbsp;4,95<\/bdi><\/span><\/span><\/div>\n            <a href=\"?add-to-cart=741\" class=\"cl-upsell-add\">+<\/a>\n          <\/div>\n          <div class=\"cl-upsell-card\">\n            <div class=\"cl-upsell-badge badge-iron\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20.38 3.46L16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z\"><\/path><\/svg><\/div>\n            <div class=\"cl-upsell-info\"><span class=\"cl-upsell-name\">Ironing Service<\/span><span class=\"cl-upsell-price\">+ <span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&euro;<\/span>&nbsp;14,95<\/bdi><\/span><\/span><\/div>\n            <a href=\"?add-to-cart=748\" class=\"cl-upsell-add\">+<\/a>\n          <\/div>\n      <\/div>\n      <div class=\"cl-upsell-group cl-group-weekly\" style=\"display:none;\">\n          <div class=\"cl-upsell-card\">\n            <div class=\"cl-upsell-badge badge-express\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"><\/polygon><\/svg><\/div>\n            <div class=\"cl-upsell-info\"><span class=\"cl-upsell-name\">Weekly Express<\/span><span class=\"cl-upsell-price\">+ <span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&euro;<\/span>&nbsp;4,95<\/bdi><\/span> <span class=\"subscription-details\"> \/ week<\/span><\/span><\/div>\n            <a href=\"?add-to-cart=1238\" class=\"cl-upsell-add\">+<\/a>\n          <\/div>\n          <div class=\"cl-upsell-card\">\n            <div class=\"cl-upsell-badge badge-iron\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20.38 3.46L16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z\"><\/path><\/svg><\/div>\n            <div class=\"cl-upsell-info\"><span class=\"cl-upsell-name\">Weekly Ironing<\/span><span class=\"cl-upsell-price\">+ <span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&euro;<\/span>&nbsp;14,95<\/bdi><\/span> <span class=\"subscription-details\"> \/ week<\/span><\/span><\/div>\n            <a href=\"?add-to-cart=1241\" class=\"cl-upsell-add\">+<\/a>\n          <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- 3. PAYMENT ICONS (hidden, will be moved by JS) -->\n<div id=\"cl-cart-payment-icons\" style=\"display:none;\">\n  <div class=\"cl-payment-methods\">\n    <img decoding=\"async\" src=\"https:\/\/yourcleanlab.com\/wp-content\/uploads\/2026\/03\/iDEAL_Wero_Lockup_Yellow_Square_RGB.png\" class=\"cl-pay-img\" alt=\"iDeal\">\n    <img decoding=\"async\" src=\"https:\/\/yourcleanlab.com\/wp-content\/uploads\/2025\/12\/Mastercard-logo.svg_.png\" class=\"cl-pay-img\" alt=\"Mastercard\">\n    <img decoding=\"async\" src=\"https:\/\/yourcleanlab.com\/wp-content\/uploads\/2025\/12\/Visa_Inc._logo.svg_.webp\" class=\"cl-pay-img\" alt=\"Visa\">\n    <img decoding=\"async\" src=\"https:\/\/yourcleanlab.com\/wp-content\/uploads\/2025\/12\/Apple_Pay_logo.svg_.png\" class=\"cl-pay-img\" alt=\"Apple Pay\">\n  <\/div>\n<\/div>\n\n<style>\n  \/* ============================================\n     DESKTOP STYLES (unchanged from original)\n     ============================================ *\/\n  .woocommerce-cart-form .coupon { display: none !important; }\n  .cart_totals table.shop_table tr.cart-subtotal,\n  .cart_totals table.shop_table tr.woocommerce-shipping-totals { display: none !important; }\n  .cl-delivery-free { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 700; color: #2B2829; margin: 4px 0 12px 0; display: flex; align-items: center; justify-content: space-between; }\n  .cl-delivery-free .cl-delivery-value { color: #5788B6; font-weight: 800; }\n  .cart_totals table.shop_table tr.order-total { display: flex !important; align-items: baseline !important; justify-content: space-between !important; }\n  .cart_totals table.shop_table tr.order-total th { display: block !important; text-align: left !important; font-weight: 700 !important; font-size: 15px !important; color: #2B2829 !important; padding: 0 !important; border: none !important; }\n  .cart_totals table.shop_table tr.order-total td { display: block !important; text-align: right !important; padding: 0 !important; border: none !important; }\n  .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td::before,\n  .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table tr.order-total td::before,\n  .cart_totals table.shop_table tr.order-total td::before {\n    content: none !important;\n    display: none !important;\n  }\n  .cl-upsell-group { display: contents; } \n  .cl-upsell-wrapper { margin-top: 30px; padding: 20px; border-top: 1px dashed #D0CECA; background: white; border-radius: 8px; border: 1px solid #E5E5E5; }\n  .cl-upsell-title { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 16px; color: #2B2829; margin-bottom: 20px; text-transform: uppercase; }\n  .cl-upsell-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; }\n  .cl-upsell-card { display: flex; align-items: center; background: #FAFAFA; border: 1px solid #E5E5E5; border-radius: 6px; padding: 12px; transition: transform 0.2s; }\n  .cl-upsell-card:hover { border-color: #5788B6; background: #FFFFFF; }\n  .cl-upsell-badge { width: 40px; height: 40px; border-radius: 8px; display: flex; align-items: center; justify-content: center; margin-right: 12px; flex-shrink: 0; }\n  .badge-express { background-color: #F0F6FA; color: #5788B6; }\n  .badge-iron { background-color: #F2FB61; color: #2B2829; }\n  .cl-upsell-badge svg { width: 20px; height: 20px; stroke-width: 2; }\n  .cl-upsell-info { flex: 1; }\n  .cl-upsell-name { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 13px; color: #2B2829; display: block; line-height: 1.2; }\n  .cl-upsell-price { font-family: 'Inter', sans-serif; font-size: 12px; color: #666; display: block; }\n  .cl-upsell-add { width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; text-decoration: none; font-weight: bold; font-size: 18px; background-color: #FFFFFF; border: 1px solid #5788B6; color: #5788B6; transition: all 0.2s; }\n\n  \/* --- PRODUCT TITLE --- *\/\n  .woocommerce-cart-form td.product-name a { \n    font-size: 15px !important; \n    font-weight: 600 !important; \n    color: #5788B6 !important; \n    line-height: 1.3 !important; \n    text-decoration: none !important;\n    display: block;\n    text-align: center;\n  }\n  .woocommerce-cart-form th.product-name { color: #2B2829 !important; text-transform: uppercase; font-size: 13px; }\n  .variation { font-size: 12px !important; color: #888 !important; }\n\n  \/* --- SERVICE BOX --- *\/\n  .cl-service-box-inner { margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid #E5E5E5; }\n  #cl-cart-service-box.cl-service-standalone {\n    margin-top: 30px;\n    padding: 20px;\n    background: #FFFFFF;\n    border: 1px solid #E5E5E5;\n    border-radius: 8px;\n  }\n  #cl-cart-service-box.cl-service-standalone .cl-service-box-inner {\n    margin-bottom: 0;\n    padding-bottom: 0;\n    border-bottom: none;\n  }\n  .cl-service-box-inner h4 { font-family: 'Montserrat', sans-serif !important; font-weight: 700 !important; font-size: 15px; color: #2B2829; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 1px; }\n  .cl-service-box-inner ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }\n  .cl-service-box-inner li { display: flex !important; align-items: center !important; gap: 12px !important; font-family: 'Inter', sans-serif !important; font-size: 13px !important; color: #555 !important; margin-bottom: 10px !important; }\n  .cl-service-icon { color: #5788B6 !important; flex-shrink: 0 !important; width: 18px !important; height: 18px !important; display: flex !important; align-items: center !important; }\n  .cl-service-icon svg { width: 100% !important; height: auto !important; display: block !important; }\n\n  \/* --- PAYMENT ICONS --- *\/\n  .cl-payment-methods { display: flex; justify-content: center; gap: 12px; margin-top: 20px; }\n  .cl-pay-img { height: 24px !important; width: auto !important; }\n\n  \/* ============================================\n     MOBILE OPTIMIZATIONS ONLY (\u2264767px)\n     ============================================ *\/\n  @media screen and (max-width: 767px) {\n\n    \/* --- 1. REDUCE WHITESPACE between USP header and cart --- *\/\n    .cl-cart-usps {\n      margin-bottom: 0px !important;\n      padding-bottom: 4px !important;\n    }\n    .woocommerce-cart-form {\n      margin-top: 0 !important;\n    }\n    .elementor-widget-woocommerce-cart {\n      margin-top: 0 !important;\n      padding-top: 0 !important;\n    }\n    .e-cart .elementor-element,\n    .elementor-widget-woocommerce-cart .elementor-widget-container {\n      margin-top: 0 !important;\n    }\n    .e-cart,\n    .elementor-widget-woocommerce-cart,\n    .woocommerce-cart-form .shop_table {\n      margin-top: 0 !important;\n      padding-top: 0 !important;\n    }\n    .e-cart .elementor-widget-wrap,\n    .e-cart .elementor-element .elementor-widget-wrap {\n      padding-top: 0 !important;\n      gap: 0 !important;\n    }\n\n    \/* --- Hide table headers on mobile --- *\/\n    .woocommerce-cart-form .shop_table thead {\n      display: none !important;\n    }\n\n    \/* --- PRODUCT CARD: grid layout (image spans full height, text stacks tightly) --- *\/\n    .woocommerce-cart-form .shop_table tr.cart_item {\n      display: grid !important;\n      grid-template-columns: 80px 1fr !important;\n      column-gap: 0 !important;\n      row-gap: 2px !important;\n      align-items: start !important;\n      padding: 15px 10px !important;\n      border-bottom: 1px solid #eee;\n      position: relative;\n    }\n\n    \/* Image: left column, spans all stacked rows *\/\n    .woocommerce-cart-form .product-thumbnail {\n      display: block !important;\n      text-align: left !important;\n      padding: 0 !important;\n      width: 80px !important;\n      grid-column: 1 !important;\n      grid-row: 1 \/ span 3 !important;\n    }\n    .woocommerce-cart-form .product-thumbnail img {\n      width: 75px !important;\n      height: auto !important;\n      border-radius: 8px;\n      margin: 0 !important;\n    }\n\n    \/* Product name: right of image, row 1 *\/\n    .woocommerce-cart-form td.product-name {\n      text-align: left !important;\n      display: block !important;\n      width: auto !important;\n      padding: 0 !important;\n      grid-column: 2 !important;\n      grid-row: 1 !important;\n    }\n    .woocommerce-cart-form td.product-name a {\n      text-align: left !important;\n      font-size: 14px !important;\n      padding-right: 30px !important;\n    }\n    .variation {\n      justify-content: flex-start !important;\n      text-align: left !important;\n    }\n\n    \/* Hide ::before responsive labels *\/\n    .shop_table td::before { display: none !important; }\n\n    \/* Hide duplicate unit price column *\/\n    .shop_table td.product-price { display: none !important; }\n\n    \/* X (remove) button: top-right aligned with product title *\/\n    .product-remove {\n      position: absolute !important;\n      top: 15px !important;\n      right: 10px !important;\n      width: auto !important;\n      padding: 0 !important;\n    }\n\n    \/* Force correct order within cart_item flex row *\/\n    .woocommerce-cart-form .shop_table tr.cart_item .product-thumbnail { order: 1 !important; }\n    .woocommerce-cart-form .shop_table tr.cart_item .product-name    { order: 2 !important; }\n    .woocommerce-cart-form .shop_table tr.cart_item .product-quantity { order: 3 !important; }\n    .woocommerce-cart-form .shop_table tr.cart_item .product-price    { order: 4 !important; display: none !important; }\n    .woocommerce-cart-form .shop_table tr.cart_item .product-subtotal { order: 5 !important; }\n    .woocommerce-cart-form .shop_table tr.cart_item .product-remove   { order: 6 !important; }\n\n    \/* Quantity: directly under the title, row 2 *\/\n    .shop_table td.product-quantity,\n    .woocommerce table.shop_table_responsive tr td.product-quantity,\n    .woocommerce-page table.shop_table_responsive tr td.product-quantity {\n      display: block !important;\n      width: auto !important;\n      margin: 0 !important;\n      border: none !important;\n      padding: 0 !important;\n      text-align: left !important;\n      grid-column: 2 !important;\n      grid-row: 2 !important;\n    }\n\n    \/* Price (subtotal): bold, right-aligned, row 3 *\/\n    .shop_table td.product-subtotal {\n      display: block !important;\n      width: auto !important;\n      margin: 0 !important;\n      border: none !important;\n      padding: 2px 0 0 0 !important;\n      font-weight: 800 !important;\n      color: #2B2829 !important;\n      text-align: right !important;\n      font-size: 14px !important;\n      grid-column: 2 !important;\n      grid-row: 3 !important;\n    }\n\n    \/* Title needs room only for the remove (x) icon now *\/\n    .woocommerce-cart-form td.product-name a {\n      padding-right: 30px !important;\n    }\n    .shop_table td.product-quantity .quantity {\n      display: inline-flex !important;\n      margin: 0 !important;\n    }\n\n    \/* --- UPSELL GRID: single column --- *\/\n    .cl-upsell-wrapper {\n      margin-top: 4px !important;\n      margin-bottom: 8px !important;\n      padding: 12px !important;\n    }\n    .woocommerce-cart-form .shop_table {\n      margin-bottom: 0 !important;\n    }\n    #cl-cart-upsells {\n      margin: 0 !important;\n    }\n    .e-cart__container {\n      row-gap: 10px !important;\n    }\n    .cart_totals h2 {\n      line-height: 1.15 !important;\n      margin-top: 0 !important;\n      margin-bottom: 6px !important;\n      padding-bottom: 0 !important;\n    }\n    .cl-delivery-free {\n      margin: 2px 0 8px 0 !important;\n    }\n    .cl-upsell-grid {\n      grid-template-columns: 1fr !important;\n      gap: 10px !important;\n    }\n\n    \/* --- STICKY CONTINUE BUTTON --- *\/\n    .wc-proceed-to-checkout,\n    .e-cart__checkout-button-wrapper {\n      position: fixed !important;\n      bottom: 0 !important;\n      left: 0 !important;\n      right: 0 !important;\n      z-index: 99999 !important;\n      background: #fff !important;\n      padding: 12px 16px !important;\n      margin: 0 !important;\n      box-shadow: 0 -2px 10px rgba(0,0,0,0.1) !important;\n      border-top: 1px solid #E5E5E5 !important;\n      \/* Ensure it's never hidden or repositioned *\/\n      visibility: visible !important;\n      opacity: 1 !important;\n      transform: none !important;\n      display: block !important;\n    }\n    .wc-proceed-to-checkout .checkout-button,\n    .e-cart__checkout-button {\n      width: 100% !important;\n      margin: 0 !important;\n      border-radius: 8px !important;\n    }\n    .wc-proceed-to-checkout .cl-payment-methods {\n      margin-top: 8px !important;\n    }\n\n    \/* Page bottom padding so content isn't hidden behind sticky bar *\/\n    .woocommerce-cart,\n    .e-cart {\n      padding-bottom: 120px !important;\n    }\n\n    \/* Prevent horizontal scroll from wide table cells *\/\n    html, body {\n      overflow-x: hidden !important;\n      max-width: 100vw !important;\n    }\n    .cart_totals table.shop_table {\n      table-layout: fixed !important;\n      width: 100% !important;\n    }\n    .woocommerce-shipping-destination {\n      word-break: break-word !important;\n    }\n\n\n\n    \/* --- FOOTER: force below sticky button --- *\/\n    footer,\n    .site-footer,\n    .elementor-location-footer,\n    #footer,\n    .footer-widget-area,\n    [data-elementor-type=\"footer\"] {\n      z-index: 1 !important;\n      position: relative !important;\n    }\n    .wa-float-btn-wpr,\n    .whatsapp-button,\n    .wa_btn_circle,\n    [class*=\"whatsapp\"],\n    [class*=\"wa-chat\"],\n    #wa-widget,\n    .joinchat,\n    .joinchat__button {\n      bottom: 100px !important;\n    }\n  }\n<\/style>\n\n<script>\njQuery(document).ready(function($) {\n\n  \/* Store original HTML so we can re-inject after WooCommerce AJAX wipes the DOM *\/\n  var svcHTML  = $('#cl-cart-service-box').prop('outerHTML');\n  var upsHTML  = $('#cl-cart-upsells').prop('outerHTML');\n  var payHTML  = $('#cl-cart-payment-icons').prop('outerHTML');\n\n  function clInjectCart() {\n    var $totalsCol = $('.e-cart__column--totals, .cart_totals').first();\n    var $cartForm  = $('.woocommerce-cart-form').first();\n    var $checkout  = $('.wc-proceed-to-checkout').first();\n    var isSub      = $('.recurring-total').length > 0;\n    var isMobile   = window.innerWidth <= 767;\n\n    \/* 1. Subscription toggle *\/\n    if (isSub) {\n      $('.cl-group-once').hide();\n      $('.cl-group-weekly').show();\n    } else {\n      $('.cl-group-once').show();\n      $('.cl-group-weekly').hide();\n    }\n\n    \/* 2. Upsells placement (must run before service box, since desktop service box anchors after it) *\/\n    var $ups = $('#cl-cart-upsells');\n    if (!$ups.length) { $ups = $(upsHTML); }\n\n    if ($ups.length && $cartForm.length) {\n      if (isMobile) {\n        var $coupon = $cartForm.find('.coupon').first();\n        var $couponParent = $coupon.closest('tr, .e-cart__coupon, div.coupon').first();\n\n        if ($couponParent.length && !$couponParent.prev('#cl-cart-upsells').length) {\n          $ups.detach().insertBefore($couponParent).show();\n        } else if (!$coupon.length) {\n          var $table = $cartForm.find('.shop_table').first();\n          if ($table.length && !$table.next('#cl-cart-upsells').length) {\n            $ups.detach().insertAfter($table).show();\n          }\n        }\n      } else {\n        if (!$cartForm.next('#cl-cart-upsells').length) {\n          $ups.detach().insertAfter($cartForm).show();\n        }\n      }\n    }\n\n    \/* 3. Service box: mobile -> top of totals column, desktop -> standalone block after \"Complete your order\" *\/\n    var $svc = $('#cl-cart-service-box');\n    if (!$svc.length) { $svc = $(svcHTML); }\n    if (isMobile) {\n      if ($totalsCol.length && !$totalsCol.find('#cl-cart-service-box').length) {\n        $svc.removeClass('cl-service-standalone');\n        $svc.detach().prependTo($totalsCol).show();\n      }\n    } else {\n      var $upsForSvc = $('#cl-cart-upsells');\n      if ($upsForSvc.length && !$upsForSvc.next('#cl-cart-service-box').length) {\n        $svc.addClass('cl-service-standalone');\n        $svc.detach().insertAfter($upsForSvc).show();\n      }\n    }\n\n    \/* Re-apply subscription toggle on freshly injected HTML *\/\n    if (isSub) {\n      $('.cl-group-once').hide();\n      $('.cl-group-weekly').show();\n    } else {\n      $('.cl-group-once').show();\n      $('.cl-group-weekly').hide();\n    }\n\n    \/* 4. Payment icons \u2192 checkout area *\/\n    if ($checkout.length && !$checkout.find('.cl-payment-methods').length) {\n      var $pay = $('#cl-cart-payment-icons');\n      if (!$pay.length) { $pay = $(payHTML); }\n      $pay.detach().appendTo($checkout).show();\n    }\n\n    \/* 5. Keep totals column in the requested order after re-injection *\/\n    if (window.clReorderTotals) { window.clReorderTotals(); }\n  }\n\n  \/* Run on load *\/\n  setTimeout(clInjectCart, 500);\n\n  \/* Re-run after WooCommerce cart AJAX updates *\/\n  $(document.body).on('updated_cart_totals', function() {\n    setTimeout(clInjectCart, 300);\n  });\n});\n<\/script><style id=\"cl-cart-concept-style\">\n.cl-concept-pickup-banner{display:flex;align-items:center;gap:10px;background:#EAF0FA;color:#2B2829;border-radius:10px;padding:12px 16px;margin:0 0 16px 0;font-size:14px;font-weight:600;}\n.cl-concept-pickup-banner .cl-icon{font-size:18px;}\n.cl-concept-trust-row{display:flex;flex-wrap:wrap;gap:14px;margin:14px 0;padding:12px 0;border-top:1px solid #D0CECA;border-bottom:1px solid #D0CECA;}\n.cl-concept-trust-row .cl-trust-item{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#7A7674;font-weight:600;}\n.cl-concept-trust-row .cl-trust-item .cl-icon{font-size:15px;}\n.checkout-button.button.alt.wc-forward{background:#2B2829 !important;color:#F2FB61 !important;font-weight:800 !important;text-transform:uppercase;letter-spacing:.03em;border-radius:8px !important;padding:14px 20px !important;text-align:center;border:none !important;}\n.checkout-button.button.alt.wc-forward:hover{background:#3d3839 !important;}\n.cart_totals h2{font-size:1.4rem !important;font-weight:800 !important;text-transform:uppercase;color:#2B2829;}\n.coupon .button.e-apply-coupon{background:transparent !important;border:2px solid #5788B6 !important;color:#5788B6 !important;font-weight:700 !important;text-transform:uppercase;}\n.coupon .button.e-apply-coupon:hover{background:#5788B6 !important;color:#fff !important;}\n.cl-qty-stepper{display:inline-flex;align-items:center;gap:6px;}\n.cl-qty-stepper button{width:26px;height:26px;border-radius:50%;border:1.5px solid #5788B6;background:#fff;color:#5788B6;font-weight:800;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;}\n.cl-qty-stepper button:hover{background:#5788B6;color:#fff;}\n.cl-addons-highlight{position:relative;border-top:3px solid #F2FB61;}\n.cl-addons-badge{display:inline-block;background:#2B2829;color:#F2FB61;font-size:11px;font-weight:800;text-transform:uppercase;padding:3px 9px;border-radius:20px;margin-left:8px;vertical-align:middle;}\n.cl-exit-overlay{position:fixed;inset:0;background:rgba(43,40,41,.55);z-index:99999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease;}\n.cl-exit-overlay.cl-show{opacity:1;pointer-events:auto;}\n.cl-exit-card{background:#fff;border-radius:14px;max-width:380px;width:90%;padding:28px 24px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.3);}\n.cl-exit-card .cl-icon{font-size:36px;display:block;margin-bottom:10px;}\n.cl-exit-card h3{margin:0 0 8px;font-size:20px;font-weight:800;color:#2B2829;}\n.cl-exit-card p{margin:0 0 18px;font-size:14px;color:#7A7674;}\n.cl-exit-card button{width:100%;background:#2B2829;color:#F2FB61;border:none;border-radius:8px;padding:14px;font-weight:800;text-transform:uppercase;cursor:pointer;}\n.cl-exit-card{position:relative;}\n.cl-exit-card .cl-exit-x{position:absolute;top:10px;right:12px;width:auto;background:none;border:none;color:#7A7674;font-size:24px;line-height:1;padding:4px 8px;text-transform:none;font-weight:400;cursor:pointer;}\n.cl-exit-card .cl-exit-nudge{display:block;font-size:13px;color:#7A7674;margin-bottom:10px;}\n<\/style>\n\n<div id=\"cl-concept-marker-cart\" style=\"display:none\"><\/div>\n\n<div id=\"cl-exit-overlay\" class=\"cl-exit-overlay\">\n  <div class=\"cl-exit-card\">\n    <span class=\"cl-icon\">\ud83e\uddfa<\/span>\n    <button id=\"cl-exit-close\" class=\"cl-exit-x\" aria-label=\"Close\">&times;<\/button>\n    <h3>It's not going to clean itself.<\/h3>\n    <p>Close your eyes. Think of all the good things you can do now. Dinner, drinks, museum, work.<\/p>\n    <button id=\"cl-exit-continue\">I don't want to do laundry.<\/button>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  function ready(fn){ if(document.readyState !== 'loading'){ fn(); } else { document.addEventListener('DOMContentLoaded', fn); } }\n\n  ready(function(){\n    var cartForm = document.querySelector('.woocommerce-cart-form');\n    if (cartForm && !document.querySelector('.cl-concept-pickup-banner')) {\n      var banner = document.createElement('div');\n      banner.className = 'cl-concept-pickup-banner';\n      cartForm.parentNode.insertBefore(banner, cartForm);\n\n      \/\/ Reuses the same real-slot cutoff logic as the checkout concept banner\n      \/\/ (07:00-10:00, 10:00-14:00, 14:00-18:00, 18:00-22:00, Mon-Sat), but on\n      \/\/ the cart page there is no date\/time picker yet -- that happens on the\n      \/\/ next (checkout) page -- so the message leads with that expectation\n      \/\/ instead of implying you can pick a slot right here.\n      function getCutoffInfo( now ) {\n        var day = now.getDay();\n        var h = now.getHours();\n        if ( day === 0 ) {\n          return { message: 'Order now for pickup Monday morning' };\n        }\n        if ( h < 7 ) {\n          return { message: 'Order before 07:00 for pickup this morning' };\n        }\n        if ( h < 10 ) {\n          return { message: 'Order before 10:00 for pickup at lunch' };\n        }\n        if ( h < 14 ) {\n          return { message: 'Order before 14:00 for pickup this afternoon' };\n        }\n        if ( h < 18 ) {\n          return { message: 'Order before 18:00 for pickup this evening \u2014 last slot today' };\n        }\n        var tomorrow = new Date( now );\n        tomorrow.setDate( tomorrow.getDate() + 1 );\n        if ( tomorrow.getDay() === 0 ) {\n          return { message: 'Order now for pickup Monday morning' };\n        }\n        return { message: 'Order now for pickup tomorrow morning' };\n      }\n\n      function updateBanner() {\n        var info = getCutoffInfo( new Date() );\n        banner.innerHTML = '<span class=\"cl-icon\">\ud83d\udcc5<\/span><span>Pick your time on the next page. ' + info.message + '.<\/span>';\n      }\n      updateBanner();\n      setInterval( updateBanner, 30000 );\n    }\n\n    var checkoutBtn = document.querySelector('.wc-proceed-to-checkout a.checkout-button, a.checkout-button.button.alt.wc-forward');\n    if (checkoutBtn && !document.querySelector('.cl-concept-trust-row')) {\n      var trust = document.createElement('div');\n      trust.className = 'cl-concept-trust-row';\n      trust.innerHTML =\n        '<div class=\"cl-trust-item\"><span class=\"cl-icon\">\ud83d\udd12<\/span>SSL-secured checkout<\/div>' +\n        '<div class=\"cl-trust-item\"><span class=\"cl-icon\">\u2705<\/span>100% secure payment<\/div>' +\n        '<div class=\"cl-trust-item\"><span class=\"cl-icon\">\u21a9\ufe0f<\/span>Not satisfied? We\\'ll wash it again.<\/div>';\n      var wrapEl = checkoutBtn.closest('.wc-proceed-to-checkout') || checkoutBtn.parentNode;\n      wrapEl.parentNode.insertBefore(trust, wrapEl);\n    }\n\n        \/* Reorder the totals column: heading, Delivery: FREE, total table,\n       trust row, Service & Delivery box, checkout button.\n       Re-run after AJAX cart updates since WooCommerce re-renders the totals. *\/\n    window.clReorderTotals = function(){\n      var totalsCol = document.querySelector('.cart_totals');\n      if (!totalsCol) return;\n      var heading = totalsCol.querySelector('h2');\n      var table = totalsCol.querySelector('table.shop_table');\n      var trustRow = totalsCol.querySelector('.cl-concept-trust-row');\n      var serviceBox = totalsCol.querySelector('#cl-cart-service-box');\n      var checkoutWrap = totalsCol.querySelector('.wc-proceed-to-checkout');\n      if (!heading || !table || !checkoutWrap) return;\n\n      var deliveryLine = totalsCol.querySelector('.cl-delivery-free');\n      if (!deliveryLine) {\n        deliveryLine = document.createElement('div');\n        deliveryLine.className = 'cl-delivery-free';\n        deliveryLine.innerHTML = '<span>Delivery<\/span><span class=\"cl-delivery-value\">FREE<\/span>';\n      }\n\n      [heading, deliveryLine, table, trustRow, serviceBox, checkoutWrap].forEach(function(el){\n        if (el) totalsCol.appendChild(el);\n      });\n    };\n    window.clReorderTotals();\n    setTimeout(function(){ if (window.clReorderTotals) window.clReorderTotals(); }, 900);\n\n    function parseEUR(str){ if(!str) return 0; var m = str.replace(\/[^0-9.,]\/g,'').trim(); m = m.replace(\/\\.\/g,'').replace(',', '.'); return parseFloat(m) || 0; }\n    function formatEUR(num){ return '\\u20ac ' + num.toFixed(2).replace('.', ','); }\n    function recalcCart(){\n      var rows = document.querySelectorAll('.woocommerce-cart-form tr.cart_item, .woocommerce-cart-form tr.woocommerce-cart-form__cart-item');\n      var cartTotal = 0;\n      rows.forEach(function(row){\n        var qtyInput = row.querySelector('input.qty');\n        var priceCell = row.querySelector('.product-price .amount, td.product-price .amount');\n        var subtotalCell = row.querySelector('.product-subtotal .amount, td.product-subtotal .amount');\n        if (!qtyInput || !priceCell || !subtotalCell) return;\n        var unitPrice = parseEUR(priceCell.textContent);\n        var qty = parseInt(qtyInput.value || '1', 10);\n        var rowTotal = unitPrice * qty;\n        subtotalCell.textContent = formatEUR(rowTotal);\n        cartTotal += rowTotal;\n      });\n      var subtotalEl = document.querySelector('.cart-subtotal .amount, tr.cart-subtotal .amount');\n      var totalEl = document.querySelector('.order-total .amount, tr.order-total .amount');\n      var vatSmall = document.querySelector('.order-total small.includes_tax, tr.order-total small.includes_tax');\n      if (subtotalEl) subtotalEl.textContent = formatEUR(cartTotal);\n      if (totalEl) totalEl.textContent = formatEUR(cartTotal);\n      if (vatSmall) {\n        var vat = cartTotal * (21\/121);\n        vatSmall.textContent = '(includes ' + formatEUR(vat) + ' VAT)';\n      }\n    }\n    document.querySelectorAll('input.qty').forEach(function(input){\n      if (input.dataset.clStepper) return;\n      input.dataset.clStepper = '1';\n      var wrap = document.createElement('span');\n      wrap.className = 'cl-qty-stepper';\n      var minus = document.createElement('button');\n      minus.type = 'button'; minus.textContent = '\\u2212';\n      var plus = document.createElement('button');\n      plus.type = 'button'; plus.textContent = '+';\n      input.parentNode.insertBefore(wrap, input);\n      wrap.appendChild(minus);\n      wrap.appendChild(input);\n      wrap.appendChild(plus);\n      function change(delta){\n        var min = parseInt(input.min || '1', 10);\n        var max = parseInt(input.max || '999', 10);\n        var val = parseInt(input.value || '1', 10) + delta;\n        if (val < min) val = min;\n        if (val > max) val = max;\n        input.value = val;\n        recalcCart();\n      }\n      minus.addEventListener('click', function(){ change(-1); });\n      plus.addEventListener('click', function(){ change(1); });\n    });\n\n    document.querySelectorAll('h2, h3, h4').forEach(function(h){\n      if (\/complete your order\/i.test(h.textContent)) {\n        var section = h.closest('div');\n        if (section) section.classList.add('cl-addons-highlight');\n      }\n    });\n\n    var overlay = document.getElementById('cl-exit-overlay');\n    var shown = false;\n    try { shown = sessionStorage.getItem('cl_exit_shown_cart') === '1'; } catch(e){}\n    function showOverlay(){\n      if (shown || !overlay) return;\n      overlay.classList.add('cl-show');\n      shown = true;\n      try { sessionStorage.setItem('cl_exit_shown_cart', '1'); } catch(e){}\n    }\n    function hideOverlay(){ if (overlay) overlay.classList.remove('cl-show'); }\n    document.addEventListener('mouseleave', function(e){\n      if (e.clientY <= 0) showOverlay();\n    });\n    var closeBtn = document.getElementById('cl-exit-close');\n    var continueBtn = document.getElementById('cl-exit-continue');\n    if (closeBtn) closeBtn.addEventListener('click', hideOverlay);\n    if (continueBtn) continueBtn.addEventListener('click', function(){\n      var cbtn = document.querySelector('.wc-proceed-to-checkout a.checkout-button, a.checkout-button.button.alt.wc-forward');\n      if (cbtn && cbtn.href) { window.location.href = cbtn.href; } else { hideOverlay(); }\n    });\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>Flexible pickup &#8211; between 07:00 &#8211; 22:00 +15 years of experience 4.8\/5 on Google Remove item Thumbnail image Product Price Quantity Subtotal &times; One-Time Wash &euro;&nbsp;29,95 One-Time Wash quantity &euro;&nbsp;89,85 Apply coupon Total Subtotal &euro;&nbsp;89,85 Shipment Free shipping Shipping to 500 Fifth Avenue, 1012 PV New York. Total &euro;&nbsp;89,85 (includes &euro;&nbsp;15,59 VAT) CONTINUE Service &#038; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5195","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/yourcleanlab.com\/nl\/wp-json\/wp\/v2\/pages\/5195","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=5195"}],"version-history":[{"count":25,"href":"https:\/\/yourcleanlab.com\/nl\/wp-json\/wp\/v2\/pages\/5195\/revisions"}],"predecessor-version":[{"id":5483,"href":"https:\/\/yourcleanlab.com\/nl\/wp-json\/wp\/v2\/pages\/5195\/revisions\/5483"}],"wp:attachment":[{"href":"https:\/\/yourcleanlab.com\/nl\/wp-json\/wp\/v2\/media?parent=5195"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}