{"id":3679,"date":"2025-08-20T09:51:12","date_gmt":"2025-08-20T01:51:12","guid":{"rendered":"https:\/\/dressgreen.org\/?page_id=3679"},"modified":"2026-10-09T12:51:37","modified_gmt":"2026-10-09T04:51:37","slug":"eco-mat","status":"publish","type":"page","link":"https:\/\/dressgreen.org\/cn\/eco-mat\/","title":{"rendered":"\u74b0\u4fdd\u588a"},"content":{"rendered":"\n<div class=\"wp-block-cover alignfull is-light\" style=\"min-height:380px;aspect-ratio:unset;\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"6000\" height=\"4000\" data-attachment-id=\"3791\" data-permalink=\"https:\/\/dressgreen.org\/cn\/eco-mat\/dsc00347\/\" data-orig-file=\"https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg?fit=6000%2C4000&amp;ssl=1\" data-orig-size=\"6000,4000\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;4.5&quot;,&quot;camera&quot;:&quot;ILCE-7M2&quot;,&quot;created_timestamp&quot;:&quot;1745508920&quot;,&quot;focal_length&quot;:&quot;35&quot;,&quot;iso&quot;:&quot;1000&quot;,&quot;shutter_speed&quot;:&quot;0.008&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"DSC00347\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg?fit=1024%2C683&amp;ssl=1\" class=\"wp-block-cover__image-background wp-image-3791 size-full\" alt=\"\" src=\"https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg?resize=6000%2C4000&#038;ssl=1\" style=\"object-position:59% 19%\" data-object-fit=\"cover\" data-object-position=\"59% 19%\" srcset=\"https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg?w=6000&amp;ssl=1 6000w, https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg?resize=300%2C200&amp;ssl=1 300w, https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg?resize=1024%2C683&amp;ssl=1 1024w, https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg?resize=768%2C512&amp;ssl=1 768w, https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg?resize=2048%2C1365&amp;ssl=1 2048w, https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg?resize=18%2C12&amp;ssl=1 18w, https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg?w=3000&amp;ssl=1 3000w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim\" style=\"background-color:#8b8b8b\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<p class=\"has-text-align-center has-base-color has-text-color has-link-color has-large-font-size wp-elements-1 wp-block-paragraph\">ECO-MAT<\/p>\n<\/div><\/div>\n\n\n\n\n\n\n\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\">\n<!-- Load Inter Font -->\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@400;500;600;700&amp;display=swap\" rel=\"stylesheet\">\n\n<section class=\"ecomat-intro-section\">\n  <div class=\"ecomat-intro-container\">\n    \n    <!-- Top Visual & Main Feature Grid -->\n    <div class=\"ecomat-hero-grid\">\n      \n      <!-- Visual Column -->\n      <div class=\"ecomat-image-col\">\n        <img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2026\/10\/Untitled-design-1.png?ssl=1\" alt=\"Colorful Eco-Mat options and felt textures\" class=\"ecomat-main-img\">\n        <div class=\"ecomat-img-caption\">\n          <span>Material Spotlight<\/span> \u2022 High-Density Downcycled Felt\n        <\/div>\n      <\/div>\n\n      <!-- Content Column -->\n      <div class=\"ecomat-content-col\">\n        <span class=\"ecomat-section-tag\">Sustainable Material Innovation<\/span>\n        <h2 class=\"ecomat-intro-title\">Eco-Mat: The Solution for Achieving Sustainability<\/h2>\n        <p class=\"ecomat-intro-desc\">\n          <strong>Eco-Mat<\/strong> is an eco-friendly material engineered from non-upcyclable textile waste and discarded corporate uniforms. By compressing shredded fabric fibers into durable bonded pads, this sustainable material provides a versatile circular material solution that diverts unwanted textiles away from landfills.\n        <\/p>\n\n        <!-- Feature Spec List -->\n        <div class=\"ecomat-specs-grid\">\n          \n          <div class=\"ecomat-spec-item\">\n            <div class=\"ecomat-icon-wrapper\">\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                <polyline points=\"23 4 23 10 17 10\"><\/polyline>\n                <path d=\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"><\/path>\n              <\/svg>\n            <\/div>\n            <div>\n              <h4 class=\"ecomat-spec-title\">100% Waste-Derived<\/h4>\n              <p class=\"ecomat-spec-text\">Crafted entirely from collected corporate uniforms and discarded fabrics.<\/p>\n            <\/div>\n          <\/div>\n\n          <div class=\"ecomat-spec-item\">\n            <div class=\"ecomat-icon-wrapper\">\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\n                <path d=\"M12 2a7 7 0 0 0 7 7c0 2-2 3-2 3s-1 1-1 3a2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-2-1-3-1-3s-2-1-2-3a7 7 0 0 1 7-7z\"><\/path>\n              <\/svg>\n            <\/div>\n            <div>\n              <h4 class=\"ecomat-spec-title\">Custom Natural Color Blending<\/h4>\n              <p class=\"ecomat-spec-text\">Yields unique earthy tones and custom color variations depending on uniform proportions.<\/p>\n            <\/div>\n          <\/div>\n\n          <div class=\"ecomat-spec-item\">\n            <div class=\"ecomat-icon-wrapper\">\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"><\/path>\n              <\/svg>\n            <\/div>\n            <div>\n              <h4 class=\"ecomat-spec-title\">Durable &amp; Structural<\/h4>\n              <p class=\"ecomat-spec-text\">Dense, resilient felt construction suitable for daily corporate and retail product lines.<\/p>\n            <\/div>\n          <\/div>\n\n          <div class=\"ecomat-spec-item\">\n            <div class=\"ecomat-icon-wrapper\">\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                <line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"10\"><\/line>\n                <line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"4\"><\/line>\n                <line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"14\"><\/line>\n              <\/svg>\n            <\/div>\n            <div>\n              <h4 class=\"ecomat-spec-title\">Measurable ESG Metrics<\/h4>\n              <p class=\"ecomat-spec-text\">Provides figures on diverted textile mass (kg) for corporate sustainability reports.<\/p>\n            <\/div>\n          <\/div>\n\n        <\/div>\n\n        <!-- Call To Action Button (Centered under Text Content) -->\n        <div class=\"ecomat-cta-wrapper\">\n          <div class=\"wp-block-button is-style-fill\">\n            <a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/wa.me\/85236119078?text=Hi+Dress+Green,+I+want+a+quotation\" target=\"_blank\" rel=\"noopener\">Get Your Free Sample &amp; Quote<\/a>\n          <\/div>\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n    <!-- Secondary Feature Banner -->\n    <div class=\"ecomat-feature-strip\">\n      \n      <div class=\"ecomat-strip-item\">\n        <div class=\"ecomat-icon-wrapper\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n            <path d=\"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z\"><\/path>\n          <\/svg>\n        <\/div>\n        <div>\n          <h4>Fire Resistant<\/h4>\n          <p>Formulated to slow flame spread and reduce flammability, making Eco-Mat a reliable and compliant material choice.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"ecomat-strip-divider\"><\/div>\n\n      <div class=\"ecomat-strip-item\">\n        <div class=\"ecomat-icon-wrapper\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n            <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"><\/path>\n            <path d=\"m9 12 2 2 4-4\"><\/path>\n          <\/svg>\n        <\/div>\n        <div>\n          <h4>Bacteria Resistant<\/h4>\n          <p>Hygienic coating limits microbial growth and odor buildup for everyday accessories and homeware.<\/p>\n        <\/div>\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n<\/section>\n\n<style>\n\/* Base Section Styling *\/\n.ecomat-intro-section {\n  width: 100%;\n  padding: 40px 20px;\n  background-color: #fffefa;\n  box-sizing: border-box;\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n}\n\n\/* 1280px Max Width Container *\/\n.ecomat-intro-container {\n  max-width: 1280px;\n  margin: 0 auto;\n  display: flex;\n  flex-direction: column;\n  gap: 36px;\n}\n\n\/* Hero 2-Column Grid *\/\n.ecomat-hero-grid {\n  display: flex;\n  align-items: center;\n  gap: 44px;\n}\n\n\/* Image Column *\/\n.ecomat-image-col {\n  flex: 0 0 460px;\n  max-width: 100%;\n}\n\n.ecomat-main-img {\n  width: 100%;\n  height: 420px;\n  object-fit: cover;\n  display: block;\n  border-radius: 0px !important;\n}\n\n.ecomat-img-caption {\n  margin-top: 10px;\n  font-size: 0.8125rem;\n  color: #6b7280;\n  display: flex;\n  align-items: center;\n  gap: 6px;\n}\n\n.ecomat-img-caption span {\n  color: #1c6a49;\n  font-weight: 600;\n}\n\n\/* Content Column *\/\n.ecomat-content-col {\n  flex: 1;\n  display: flex;\n  flex-direction: column;\n}\n\n.ecomat-section-tag {\n  color: #1c6a49;\n  font-size: 0.8125rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.05em;\n  margin-bottom: 8px;\n}\n\n.ecomat-intro-title {\n  color: #1c6a49;\n  font-size: 1.5rem;\n  font-weight: 700;\n  margin: 0 0 16px 0;\n  line-height: 1.3;\n}\n\n.ecomat-intro-desc {\n  color: #4B5563;\n  font-size: 0.9375rem;\n  line-height: 1.6;\n  margin: 0 0 28px 0;\n}\n\n.ecomat-intro-desc strong {\n  color: #1c6a49;\n}\n\n\/* Icons Grid *\/\n.ecomat-specs-grid {\n  display: grid;\n  grid-template-columns: repeat(2, 1fr);\n  gap: 24px 20px;\n  border-top: 1px solid #e5e7eb;\n  padding-top: 24px;\n}\n\n.ecomat-spec-item {\n  display: flex;\n  align-items: flex-start;\n  gap: 14px;\n}\n\n.ecomat-icon-wrapper {\n  width: 38px;\n  height: 38px;\n  color: #1c6a49;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex-shrink: 0;\n}\n\n.ecomat-icon-wrapper svg {\n  width: 28px;\n  height: 28px;\n}\n\n.ecomat-spec-title {\n  font-size: 0.9375rem;\n  font-weight: 700;\n  color: #1c6a49;\n  margin: 0 0 4px 0;\n  line-height: 1.3;\n}\n\n.ecomat-spec-text {\n  font-size: 0.84375rem;\n  color: #4B5563;\n  line-height: 1.5;\n  margin: 0;\n}\n\n\/* CTA Button Container Centered Under Content (Refined Compact Sizing) *\/\n.ecomat-cta-wrapper {\n  margin-top: 24px;\n  display: flex;\n  justify-content: center;\n}\n\n.ecomat-cta-wrapper .wp-block-button__link {\n  display: inline-block;\n  background-color: #1c6a49;\n  color: #ffffff !important;\n  font-size: 0.875rem; \/* Compact 14px text *\/\n  font-weight: 600;\n  padding: 10px 20px; \/* Reduced vertical & horizontal padding *\/\n  border-radius: 6px;\n  text-decoration: none;\n  transition: background-color 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;\n  box-shadow: 0 3px 8px rgba(28, 106, 73, 0.12);\n  border: none;\n  line-height: 1.4;\n  white-space: nowrap;\n}\n\n.ecomat-cta-wrapper .wp-block-button__link:hover {\n  background-color: #144e35;\n  transform: translateY(-1px);\n  box-shadow: 0 5px 12px rgba(28, 106, 73, 0.2);\n  color: #ffffff !important;\n}\n\n\/* Water & Bacteria Resistance Strip *\/\n.ecomat-feature-strip {\n  display: flex;\n  align-items: center;\n  justify-content: space-around;\n  background-color: #f9fafb;\n  border: 1px solid #e5e7eb;\n  padding: 20px 32px;\n  gap: 32px;\n}\n\n.ecomat-strip-item {\n  display: flex;\n  align-items: center;\n  gap: 16px;\n  flex: 1;\n}\n\n.ecomat-strip-item h4 {\n  font-size: 1rem;\n  font-weight: 700;\n  color: #1c6a49;\n  margin: 0 0 4px 0;\n}\n\n.ecomat-strip-item p {\n  font-size: 0.84375rem;\n  color: #4B5563;\n  margin: 0;\n  line-height: 1.45;\n}\n\n.ecomat-strip-divider {\n  width: 1px;\n  height: 48px;\n  background-color: #e5e7eb;\n}\n\n\/* Responsive Styles for Mobile *\/\n@media (max-width: 900px) {\n  .ecomat-hero-grid {\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 28px;\n  }\n\n  .ecomat-image-col {\n    flex: 1 1 100%;\n    width: 100%;\n  }\n\n  .ecomat-main-img {\n    height: 280px;\n  }\n\n  .ecomat-specs-grid {\n    grid-template-columns: 1fr;\n    gap: 20px;\n  }\n\n  \/* Compact Button Styling on Mobile *\/\n  .ecomat-cta-wrapper {\n    width: 100%;\n    margin-top: 24px;\n    justify-content: center;\n  }\n\n  .ecomat-cta-wrapper .wp-block-button {\n    width: auto;\n    max-width: 320px; \/* Prevents overly wide edge-to-edge buttons on mobile screens *\/\n  }\n\n  .ecomat-cta-wrapper .wp-block-button__link {\n    display: block;\n    width: 100%;\n    text-align: center;\n    box-sizing: border-box;\n    padding: 11px 18px; \/* Tighter mobile padding *\/\n    font-size: 0.8125rem; \/* 13px text for crisp mobile proportions *\/\n    white-space: normal; \/* Allows natural wrapping if screen is very narrow *\/\n  }\n\n  .ecomat-feature-strip {\n    flex-direction: column;\n    align-items: flex-start;\n    padding: 20px;\n    gap: 20px;\n  }\n\n  .ecomat-strip-divider {\n    width: 100%;\n    height: 1px;\n  }\n}\n<\/style>\n<\/div>\n\n\n\n<p class=\"has-text-align-center has-contrast-color has-text-color has-link-color has-large-font-size wp-elements-4 wp-block-paragraph\" style=\"padding-top:0;padding-bottom:0\"><strong>Our Solutions<\/strong><\/p>\n\n\n\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\">\n<!-- ========================================== -->\n<!-- ECO-MAT OUR SOLUTION SECTION               -->\n<!-- ========================================== -->\n<style>\n\/* Global Font & Section Setup *\/\n.ecomat-solution-section {\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif !important;\n  width: 100%;\n  max-width: 1280px;\n  margin: 0 auto;\n  padding: 36px 20px;\n  box-sizing: border-box;\n}\n\n.ecomat-solution-title strong {\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif !important;\n}\n\n.ecomat-solution-container {\n  max-width: 800px;\n  margin: 0 auto;\n}\n\n.ecomat-vertical-list {\n  display: flex;\n  flex-direction: column;\n  gap: 20px;\n  width: 100%;\n}\n\n\/* Vertical Item Card *\/\n.ecomat-step-item {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  background: #ffffff;\n  border: 1px solid #E2E8E4;\n  border-radius: 12px;\n  padding: 24px;\n  gap: 28px;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);\n}\n\n.ecomat-step-content {\n  flex: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: flex-start;\n}\n\n.ecomat-step-badge {\n  display: inline-block;\n  font-size: 11px;\n  font-weight: 700;\n  padding: 3px 8px;\n  border-radius: 4px;\n  background: #EAF0EC;\n  color: #1c6a49;\n  text-transform: uppercase;\n  letter-spacing: 0.5px;\n  margin-bottom: 8px;\n}\n\n.ecomat-step-content h3 {\n  font-size: 17px;\n  font-weight: 700;\n  color: #1c6a49;\n  margin: 0 0 8px 0;\n}\n\n.ecomat-step-content p {\n  font-size: 13.5px;\n  color: #4B5563;\n  line-height: 1.55;\n  margin: 0;\n}\n\n\/* Carousel \/ Gallery Box *\/\n.ecomat-step-gallery {\n  width: 240px;\n  flex-shrink: 0;\n}\n\n.ecomat-step-carousel {\n  position: relative;\n  width: 100%;\n  height: 150px;\n  border-radius: 8px;\n  overflow: hidden;\n}\n\n.ecomat-carousel-track {\n  display: flex;\n  width: 100%;\n  height: 100%;\n  transition: transform 0.3s ease-in-out;\n}\n\n.ecomat-carousel-track img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  flex-shrink: 0;\n}\n\n\/* Reference Arrow Styling *\/\n.ecomat-carousel-prev, \n.ecomat-carousel-next {\n  position: absolute !important;\n  top: 50% !important;\n  transform: translateY(-50%) !important;\n  background: transparent !important;\n  border: none !important;\n  outline: none !important;\n  box-shadow: none !important;\n  filter: drop-shadow(0px 1px 2px rgba(0,0,0,0.4));\n  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), filter 0.2s ease !important;\n  transform-origin: center center;\n  padding: 0.375rem !important;\n  z-index: 10 !important;\n  cursor: pointer !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n}\n\n.ecomat-carousel-prev { left: 0.5rem !important; }\n.ecomat-carousel-next { right: 0.5rem !important; }\n\n.ecomat-carousel-prev:hover, \n.ecomat-carousel-next:hover {\n  transform: translateY(-50%) scale(1.22) !important;\n  filter: drop-shadow(0px 2px 5px rgba(0,0,0,0.6)) !important;\n}\n\n.ecomat-carousel-prev:active, \n.ecomat-carousel-next:active {\n  transform: translateY(-50%) scale(0.95) !important;\n}\n\n\/* PDF Callout Banner Styles *\/\n.ecomat-pdf-banner {\n  margin-top: 28px;\n  padding: 20px 24px;\n  background-color: #F4F7F5;\n  border: 1px dashed #1c6a49;\n  border-radius: 12px;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 16px;\n}\n\n.ecomat-pdf-text {\n  display: flex;\n  align-items: center;\n  gap: 12px;\n}\n\n.ecomat-pdf-icon {\n  width: 32px;\n  height: 32px;\n  flex-shrink: 0;\n  color: #1c6a49;\n}\n\n.ecomat-pdf-text p {\n  font-size: 14px;\n  color: #2D3748;\n  margin: 0;\n  line-height: 1.4;\n}\n\n.ecomat-pdf-text strong {\n  color: #1c6a49;\n}\n\n.ecomat-pdf-btn {\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  background-color: #1c6a49;\n  color: #ffffff !important;\n  font-size: 13.5px;\n  font-weight: 600;\n  padding: 10px 18px;\n  border-radius: 6px;\n  text-decoration: none !important;\n  transition: background-color 0.2s ease, transform 0.2s ease;\n  white-space: nowrap;\n}\n\n.ecomat-pdf-btn:hover {\n  background-color: #144e35;\n  transform: translateY(-1px);\n}\n\n\/* Mobile Responsiveness *\/\n@media (max-width: 768px) {\n  .ecomat-step-item {\n    flex-direction: column;\n    align-items: stretch;\n    gap: 16px;\n    padding: 18px;\n  }\n\n  .ecomat-step-gallery {\n    width: 100%;\n  }\n\n  .ecomat-step-carousel {\n    height: 180px;\n  }\n\n  .ecomat-pdf-banner {\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 14px;\n    padding: 18px;\n  }\n\n  .ecomat-pdf-btn {\n    width: 100%;\n    justify-content: center;\n    box-sizing: border-box;\n  }\n}\n<\/style>\n\n<!-- SECTION: Our Solution (Eco-Mat Transformation Steps) -->\n<div class=\"ecomat-solution-section\">\n  <div class=\"ecomat-solution-container\">\n    <div class=\"ecomat-vertical-list\" id=\"ecomat-solution-grid\">\n      <!-- Dynamically rendered by Javascript -->\n    <\/div>\n\n    <!-- PDF Detailed Process Callout Banner -->\n    <div class=\"ecomat-pdf-banner\">\n      <div class=\"ecomat-pdf-text\">\n        <svg class=\"ecomat-pdf-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n          <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"><\/path>\n          <polyline points=\"14 2 14 8 20 8\"><\/polyline>\n          <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"><\/line>\n          <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"><\/line>\n          <polyline points=\"10 9 9 9 8 9\"><\/polyline>\n        <\/svg>\n        <p>Want to learn more? <strong>View the detailed production process &amp; testing booklet<\/strong> (NU CARPET).<\/p>\n      <\/div>\n      <a href=\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/NU-CARPET-Booklet-25.8.2026.pdf\" target=\"_blank\" class=\"ecomat-pdf-btn\">\n        <span>View PDF Booklet<\/span>\n        <svg style=\"width: 14px; height: 14px;\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n          <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"><\/path>\n          <polyline points=\"15 3 21 3 21 9\"><\/polyline>\n          <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"><\/line>\n        <\/svg>\n      <\/a>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<script>\n(function() {\n  window.ecoMatSolutionSteps = [\n    {\n      stepLabel: \"Step 01\",\n      title: \"Collection, Sorting & Decontamination\",\n      desc: \"Gather discarded garments and textiles from communities and industries. Textiles are sorted, stripped of non-fabric trims (zippers, buttons, branding), and thoroughly sanitized to guarantee high fiber purity.\",\n      images: [\n        \"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/108.png\",\n        \"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/109.png\"\n      ]\n    },\n    {\n      stepLabel: \"Step 02\",\n      title: \"Fiber Shredding, Carding & Functional Blending\",\n      desc: \"Fabrics are mechanically shredded with precision blades into fine micro-fibers, carded and combed into a uniform layer, and blended with functional fibers (such as non-toxic flame retardants) to enhance safety, durability, and texture.\",\n      images: [\n        \"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/08\/DSC00370-2.jpg\",\n        \"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_tvovwktvovwktvov.jpeg\"\n      ]\n    },\n    {\n      stepLabel: \"Step 03\",\n      title: \"Eco Thermal Pressing & Bonding\",\n      desc: \"The loose fiber layer undergoes high-temperature thermal pressing without chemical glues, forming a solid, eco-friendly, and durable carpet backing with exceptional structural integrity.\",\n      images: [\n        \"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/Untitled-design-26.png\",\n        \"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/1-1.png\"\n      ]\n    },\n    {\n      stepLabel: \"Step 04\",\n      title: \"Finished Carpet Rolls & Further Fabrication\",\n      desc: \"High-durability, lab-certified eco-carpet rolls are prepared directly for industrial applications, or further fabricated and customized into corporate lifestyle merchandise and gifts.\",\n      images: [\n        \"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/bbd793ae866ea157f26b658b7f3d8466.jpg\",\n        \"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/2-1.png\"\n      ]\n    }\n  ];\n\n  window.renderEcoMatSolution = function() {\n    var container = document.getElementById('ecomat-solution-grid');\n    if (!container) return;\n\n    var htmlBuilder = '';\n    var steps = window.ecoMatSolutionSteps || [];\n\n    for (var i = 0; i < steps.length; i++) {\n      var step = steps[i];\n      var imagesHtml = '';\n      \n      for (var j = 0; j < step.images.length; j++) {\n        imagesHtml += '<img decoding=\"async\" src=\"' + step.images[j] + '\" alt=\"' + step.title + '\">';\n      }\n\n      var galleryHtml = '';\n      if (step.images.length > 1) {\n        galleryHtml = '<div class=\"ecomat-step-carousel\" data-index=\"0\">' +\n          '<div class=\"ecomat-carousel-track\">' + imagesHtml + '<\/div>' +\n          '<button class=\"ecomat-carousel-prev\" onclick=\"window.moveEcoMatCarousel(this, -1)\" aria-label=\"Previous image\">' +\n            '<svg style=\"width: 1.5rem; height: 1.5rem;\" viewBox=\"0 0 24 24\" fill=\"none\">' +\n              '<path d=\"M15 18L9 12L15 6\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>' +\n              '<path d=\"M15 18L9 12L15 6\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>' +\n            '<\/svg>' +\n          '<\/button>' +\n          '<button class=\"ecomat-carousel-next\" onclick=\"window.moveEcoMatCarousel(this, 1)\" aria-label=\"Next image\">' +\n            '<svg style=\"width: 1.5rem; height: 1.5rem;\" viewBox=\"0 0 24 24\" fill=\"none\">' +\n              '<path d=\"M9 18L15 12L9 6\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>' +\n              '<path d=\"M9 18L15 12L9 6\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>' +\n            '<\/svg>' +\n          '<\/button>' +\n        '<\/div>';\n      } else {\n        galleryHtml = '<div class=\"ecomat-step-carousel\">' +\n          '<div class=\"ecomat-carousel-track\"><img decoding=\"async\" src=\"' + step.images[0] + '\" alt=\"' + step.title + '\"><\/div>' +\n        '<\/div>';\n      }\n\n      htmlBuilder += '<div class=\"ecomat-step-item\">' +\n        '<div class=\"ecomat-step-content\">' +\n          '<span class=\"ecomat-step-badge\">' + step.stepLabel + '<\/span>' +\n          '<h3>' + step.title + '<\/h3>' +\n          '<p>' + step.desc + '<\/p>' +\n        '<\/div>' +\n        '<div class=\"ecomat-step-gallery\">' + galleryHtml + '<\/div>' +\n        '<\/div>';\n    }\n\n    container.innerHTML = htmlBuilder;\n  };\n\n  window.moveEcoMatCarousel = function(btn, direction) {\n    var carousel = btn.closest('.ecomat-step-carousel');\n    var track = carousel.querySelector('.ecomat-carousel-track');\n    var images = track.querySelectorAll('img');\n    \n    var currentIndex = parseInt(carousel.getAttribute('data-index') || '0', 10);\n    currentIndex = (currentIndex + direction + images.length) % images.length;\n    \n    track.style.transform = 'translateX(-' + (currentIndex * 100) + '%)';\n    carousel.setAttribute('data-index', currentIndex);\n  };\n\n  var checkInit = setInterval(function() {\n    if (document.getElementById('ecomat-solution-grid')) {\n      window.renderEcoMatSolution();\n      clearInterval(checkInit);\n    }\n  }, 100);\n})();\n<\/script>\n<\/div>\n\n\n\n<p class=\"has-text-align-center has-contrast-color has-text-color has-link-color has-large-font-size wp-elements-5 wp-block-paragraph\" style=\"padding-top:0;padding-bottom:0\"><strong>Our Products<\/strong><\/p>\n\n\n\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\">\n<link rel=\"preconnect\" href=\"https:\/\/dressgreen.org\" crossorigin=\"\">\n<link rel=\"dns-prefetch\" href=\"https:\/\/dressgreen.org\">\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@400;500;600;700&amp;display=swap\" rel=\"stylesheet\" media=\"print\" onload=\"this.media='all'\">\n\n<style>\n    .showcase-container {\n        --brand-green-900: #1c6a49;\n        --brand-green-hover: #144e35;\n        --text-gray-900: #111827;\n        --text-gray-500: #6b7280;\n        --border-gray-100: #f3f4f6;\n        \n        font-family: 'Inter', system-ui, -apple-system, sans-serif !important;\n        background-color: #fffefa;\n        color: #1f2937;\n        max-width: 1280px;\n        margin-left: auto;\n        margin-right: auto;\n        padding: 2rem 1rem;\n        box-sizing: border-box;\n    }\n\n    .showcase-container *, .showcase-container *::before, .showcase-container *::after {\n        box-sizing: border-box;\n    }\n\n    @media (min-width: 640px) {\n        .showcase-container {\n            padding-left: 1.5rem;\n            padding-right: 1.5rem;\n        }\n    }\n\n    .filter-wrapper {\n        margin-bottom: 2.5rem;\n        border-bottom: 1px solid var(--border-gray-100);\n        padding-bottom: 0.5rem;\n    }\n    .filter-container {\n        display: flex;\n        flex-wrap: wrap;\n        align-items: center;\n        justify-content: center;\n        gap: 1.5rem;\n        overflow-x: auto;\n    }\n    @media (min-width: 640px) {\n        .filter-container {\n            gap: 2.5rem;\n        }\n    }\n\n    .filter-btn {\n        position: relative !important;\n        padding: 0.5rem 0 !important;\n        font-size: 0.875rem !important;\n        font-weight: 600 !important;\n        background: transparent !important;\n        border: none !important;\n        outline: none !important;\n        box-shadow: none !important;\n        cursor: pointer;\n        white-space: nowrap;\n        color: var(--text-gray-500) !important;\n        transition: color 0.2s ease;\n        line-height: 1.5 !important;\n        margin: 0 !important;\n        font-family: inherit !important;\n    }\n\n    .filter-btn::before,\n    .filter-btn::after,\n    .filter-btn .indicator::before,\n    .filter-btn .indicator::after {\n        display: none !important;\n        content: none !important;\n    }\n\n    @media (min-width: 640px) {\n        .filter-btn {\n            font-size: 1rem !important;\n        }\n    }\n    .filter-btn:hover, .filter-btn.active {\n        color: var(--brand-green-900) !important;\n    }\n    .filter-btn .indicator {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        width: 100%;\n        height: 2.5px;\n        background-color: var(--brand-green-900);\n        border-radius: 9999px;\n        border: none !important;\n    }\n\n    .cases-grid {\n        display: grid;\n        grid-template-columns: repeat(1, minmax(0, 1fr));\n        column-gap: 1.5rem;\n        row-gap: 2.5rem;\n        min-height: 400px;\n    }\n    @media (min-width: 640px) {\n        .cases-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n    }\n    @media (min-width: 768px) {\n        .cases-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }\n    }\n    @media (min-width: 1024px) {\n        .cases-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }\n    }\n\n    .case-card {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n    .card-image-wrapper {\n        position: relative;\n        width: 100%;\n        aspect-ratio: 1 \/ 1;\n        overflow: hidden;\n        background-color: #f3f4f6;\n        box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n        margin-bottom: 0.75rem;\n    }\n\n    .slider-track {\n        display: flex;\n        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n        width: 100%;\n        height: 100%;\n        will-change: transform;\n    }\n\n    .slider-slide {\n        flex: 0 0 100%;\n        width: 100%;\n        height: 100%;\n        position: relative;\n        background-color: #e5e7eb;\n    }\n\n    .slider-slide img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        display: block;\n        backface-visibility: hidden;\n        transform: translateZ(0);\n        transition: opacity 0.2s ease-in-out;\n    }\n\n    .showcase-container .hidden { display: none !important; }\n    .no-scrollbar::-webkit-scrollbar { display: none; }\n    .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }\n\n    .green-arrow-btn {\n        position: absolute;\n        top: 50%;\n        transform: translateY(-50%);\n        background: transparent !important;\n        border: none !important;\n        outline: none !important;\n        box-shadow: none !important;\n        filter: drop-shadow(0px 1px 2px rgba(0,0,0,0.4));\n        transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), filter 0.2s ease;\n        transform-origin: center center;\n        padding: 0.375rem;\n        z-index: 10;\n        cursor: pointer;\n    }\n    .green-arrow-btn.left-btn { left: 0.5rem; }\n    .green-arrow-btn.right-btn { right: 0.5rem; }\n\n    .green-arrow-btn:hover {\n        transform: translateY(-50%) scale(1.22) !important;\n        filter: drop-shadow(0px 2px 5px rgba(0,0,0,0.6));\n    }\n    .green-arrow-btn:active {\n        transform: translateY(-50%) scale(0.95) !important;\n    }\n\n    .card-meta {\n        text-align: center;\n        padding-left: 0.25rem;\n        padding-right: 0.25rem;\n        width: 100%;\n    }\n    \n    .showcase-container .card-title {\n        font-weight: 700 !important;\n        color: var(--text-gray-900) !important;\n        font-size: 0.875rem !important;\n        line-height: 1.375 !important;\n        white-space: nowrap;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        margin: 0 !important;\n        padding: 0 !important;\n        text-shadow: none !important;\n    }\n    \n    @media (min-width: 640px) {\n        .showcase-container .card-title { font-size: 15px !important; }\n    }\n    \n    .counter-footer {\n        margin-top: 2.5rem;\n        text-align: center;\n        font-size: 0.75rem !important;\n        font-weight: 500 !important;\n        color: var(--text-gray-500) !important;\n        line-height: 1.5 !important;\n    }\n    \n    .highlight-text {\n        color: var(--brand-green-900) !important;\n        font-weight: 700 !important;\n    }\n\n    \/* Customization CTA Banner Styling *\/\n    .customization-cta-wrapper {\n        margin-top: 1.75rem;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        text-align: center;\n        gap: 1rem;\n    }\n\n    .customization-cta-text {\n        font-size: 0.9375rem;\n        color: #4b5563;\n        margin: 0;\n        line-height: 1.5;\n    }\n\n    .customization-cta-text strong {\n        color: var(--brand-green-900);\n    }\n\n    .customization-cta-btn-container {\n        display: flex;\n        justify-content: center;\n    }\n\n    .customization-btn {\n        display: inline-block;\n        background-color: var(--brand-green-900);\n        color: #ffffff !important;\n        font-size: 0.875rem;\n        font-weight: 600;\n        padding: 10px 20px;\n        border-radius: 6px;\n        text-decoration: none !important;\n        transition: background-color 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;\n        box-shadow: 0 3px 8px rgba(27, 94, 32, 0.12);\n        border: none;\n        line-height: 1.4;\n        white-space: nowrap;\n    }\n\n    .customization-btn:hover {\n        background-color: var(--brand-green-hover);\n        transform: translateY(-1px);\n        box-shadow: 0 5px 12px rgba(27, 94, 32, 0.2);\n        color: #ffffff !important;\n    }\n\n    @media (max-width: 640px) {\n        .customization-cta-btn-container {\n            width: 100%;\n        }\n        .customization-btn {\n            display: block;\n            width: 100%;\n            max-width: 320px;\n            text-align: center;\n            padding: 11px 18px;\n            font-size: 0.8125rem;\n            white-space: normal;\n        }\n    }\n<\/style>\n\n<div class=\"showcase-container\">\n    <div class=\"filter-wrapper\">\n        <div id=\"filter-container\" class=\"filter-container no-scrollbar\"><\/div>\n    <\/div>\n\n    <div id=\"cases-grid\" class=\"cases-grid\"><\/div>\n\n    <div id=\"no-results\" class=\"hidden\" style=\"padding-top: 4rem; padding-bottom: 4rem; text-align: center; color: var(--text-gray-500); font-weight: 500;\">\n        No upcycling projects found in this category.\n    <\/div>\n\n    <div class=\"counter-footer\">\n        Showing <span id=\"showing-count\" class=\"highlight-text\">0<\/span> of <span id=\"total-count\" class=\"highlight-text\">0<\/span> eco-mat products\n    <\/div>\n\n    <!-- Customization Statement & CTA Button -->\n    <div class=\"customization-cta-wrapper\">\n        <p class=\"customization-cta-text\">\n            Looking for something tailored? We accept <strong>custom designs, corporate branding, and bespoke sizing<\/strong> for all Eco-Mat products!\n        <\/p>\n        <div class=\"customization-cta-btn-container\">\n            <div class=\"wp-block-button is-style-fill\">\n                <a class=\"wp-block-button__link wp-element-button customization-btn\" href=\"https:\/\/wa.me\/85236119078?text=Hi+Dress+Green,+I+want+to+inquire+about+custom+Eco-Mat+products\" target=\"_blank\" rel=\"noopener\">\n                    Inquire for Customization\n                <\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n    const CATEGORIES = [\n        \"All\",\n        \"Tote Bags\",\n        \"Office Supplies\",\n        \"Storage\",\n        \"Travel Buddies\"\n    ];\n\n    const CASES_DATA = [\n        { id: 1, title: \"Tote Bag\", category: \"Tote Bags\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/111.png\"] },\n        { id: 2, title: \"Drink Coaster\", category: \"Office Supplies\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/Dress-Green-Product-Manuals-2026-6.png\",\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/Dress-Green-Product-Manuals-2026-7.png\"] },\n        { id: 3, title: \"Bookmark\", category: \"Office Supplies\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/Untitled-design-5.png\"] },\n        { id: 4, title: \"Hanging Bag\", category: \"Storage\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/113.png\"] },\n        { id: 5, title: \"Clutter Storage\", category: \"Storage\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/114.png\"] },\n        { id: 6, title: \"Cord Storage\", category: \"Storage\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/115.png\"] },\n        { id: 7, title: \"Desk Organizer\", category: \"Storage\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/116.png\"] },\n        { id: 8, title: \"Basket\", category: \"Storage\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/117.png\"] },\n        { id: 9, title: \"Pen Case\", category: \"Office Supplies\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/Untitled-design-12.png\"] },\n        { id: 10, title: \"Luggage Tag\", category: \"Travel Buddies\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/119.png\"] },\n        { id: 11, title: \"Portable Slippers\", category: \"Travel Buddies\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/120.png\"] },\n        { id: 12, title: \"Passport Sleeve\", category: \"Travel Buddies\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/121.png\"] },\n        { id: 13, title: \"Cup Sleeve\", category: \"Office Supplies\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/122.png\"] },\n        { id: 14, title: \"Laptop Sleeve\", category: \"Travel Buddies\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/123.png\"] },\n        { id: 15, title: \"Key charm\", category: \"Travel Buddies\", images: [\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/124-1.png\",\"https:\/\/dressgreen.org\/wp-content\/uploads\/2026\/10\/125-1.png\"] },\n    ];\n\n    let activeCategory = \"All\";\n    const slideState = {};\n\n    CASES_DATA.forEach(item => {\n        slideState[item.id] = 0;\n    });\n\n    document.addEventListener(\"DOMContentLoaded\", () => {\n        renderFilters();\n        renderInitialGrid();\n        updateFilterCounts();\n    });\n\n    function renderFilters() {\n        const container = document.getElementById(\"filter-container\");\n        container.innerHTML = CATEGORIES.map(category => {\n            const isActive = category === activeCategory;\n            return `\n                <button \n                    type=\"button\"\n                    data-category=\"${category}\"\n                    onclick=\"setFilter('${category}')\" \n                    class=\"filter-btn ${isActive ? 'active' : ''}\"\n                >\n                    ${category}\n                    <span class=\"indicator ${isActive ? '' : 'hidden'}\"><\/span>\n                <\/button>\n            `;\n        }).join('');\n    }\n\n    function setFilter(category) {\n        if (activeCategory === category) return;\n        activeCategory = category;\n\n        const buttons = document.querySelectorAll('.filter-btn');\n        buttons.forEach(btn => {\n            const btnCat = btn.getAttribute('data-category');\n            const indicator = btn.querySelector('.indicator');\n            if (btnCat === category) {\n                btn.classList.add('active');\n                if (indicator) indicator.classList.remove('hidden');\n            } else {\n                btn.classList.remove('active');\n                if (indicator) indicator.classList.add('hidden');\n            }\n        });\n\n        filterCases();\n    }\n\n    function renderInitialGrid() {\n        const grid = document.getElementById(\"cases-grid\");\n        \n        grid.innerHTML = CASES_DATA.map((item, itemIdx) => {\n            const hasMultipleImages = item.images && item.images.length > 1;\n            const categoryStr = Array.isArray(item.category) ? item.category.join('||') : item.category;\n\n            return `\n                <div id=\"case-card-${item.id}\" data-category=\"${categoryStr}\" class=\"case-card\" onmouseenter=\"preloadCardImages(${item.id})\">\n                    <div class=\"card-image-wrapper\">\n                        <div id=\"slider-track-${item.id}\" class=\"slider-track\" style=\"transform: translateX(0%);\">\n                            ${item.images.map((imgUrl, idx) => {\n                                const isFirstSlide = idx === 0;\n                                \n                                if (isFirstSlide) {\n                                    return `\n                                        <div class=\"slider-slide\">\n                                            <img loading=\"lazy\" \n                                                src=\"${imgUrl}\" \n                                                alt=\"${item.title} image${idx + 1}\"\n                                                width=\"600\"\n                                                height=\"570\"\n                                                decoding=\"async\"\n                                                style=\"opacity: 0;\"\n                                                onload=\"this.style.opacity=1\"\n                                                onerror=\"this.onerror=null; this.src='https:\/\/placehold.co\/600x550\/e2e8f0\/1e293b?text=Workshop+Image'; this.style.opacity=1;\"\n                                            \/>\n                                        <\/div>\n                                    `;\n                                } else {\n                                    return `\n                                        <div class=\"slider-slide\">\n                                            <img \n                                                data-src=\"${imgUrl}\" \n                                                alt=\"${item.title} image${idx + 1}\"\n                                                width=\"600\"\n                                                height=\"570\"\n                                                decoding=\"async\"\n                                                style=\"opacity: 0;\"\n                                                onload=\"this.style.opacity=1\"\n                                                onerror=\"this.onerror=null; this.src='https:\/\/placehold.co\/600x550\/e2e8f0\/1e293b?text=Workshop+Image'; this.style.opacity=1;\"\n                                            \/>\n                                        <\/div>\n                                    `;\n                                }\n                            }).join('')}\n                        <\/div>\n\n                        ${hasMultipleImages ? `\n                            <button \n                                type=\"button\"\n                                onclick=\"prevSlide(${item.id},${item.images.length})\" \n                                class=\"green-arrow-btn left-btn\"\n                                aria-label=\"Previous image\"\n                            >\n                                <svg style=\"width: 1.5rem; height: 1.5rem;\" viewBox=\"0 0 24 24\" fill=\"none\">\n                                    <path d=\"M15 18L9 12L15 6\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                    <path d=\"M15 18L9 12L15 6\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/button>\n\n                            <button \n                                type=\"button\"\n                                onclick=\"nextSlide(${item.id},${item.images.length})\" \n                                class=\"green-arrow-btn right-btn\"\n                                aria-label=\"Next image\"\n                            >\n                                <svg style=\"width: 1.5rem; height: 1.5rem;\" viewBox=\"0 0 24 24\" fill=\"none\">\n                                    <path d=\"M9 18L15 12L9 6\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                    <path d=\"M9 18L15 12L9 6\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/button>\n                        ` : ''}\n                    <\/div>\n\n                    <div class=\"card-meta\">\n                        <h3 class=\"card-title\" title=\"${item.title}\">\n                            ${item.title}\n                        <\/h3>\n                    <\/div>\n                <\/div>\n            `;\n        }).join('');\n    }\n\n    function preloadCardImages(caseId) {\n        const track = document.getElementById(`slider-track-${caseId}`);\n        if (!track) return;\n        const lazyImgs = track.querySelectorAll('img[data-src]');\n        lazyImgs.forEach(img => {\n            img.src = img.getAttribute('data-src');\n            img.removeAttribute('data-src');\n        });\n    }\n\n    function filterCases() {\n        const cards = document.querySelectorAll('.case-card');\n        let showingCount = 0;\n\n        cards.forEach(card => {\n            const categories = card.getAttribute('data-category').split('||');\n            const isMatch = activeCategory === \"All\" || categories.includes(activeCategory);\n\n            if (isMatch) {\n                card.classList.remove('hidden');\n                showingCount++;\n            } else {\n                card.classList.add('hidden');\n            }\n        });\n\n        document.getElementById(\"showing-count\").innerText = showingCount;\n        document.getElementById(\"total-count\").innerText = CASES_DATA.length;\n\n        const noResultsEl = document.getElementById(\"no-results\");\n        if (showingCount === 0) {\n            noResultsEl.classList.remove(\"hidden\");\n        } else {\n            noResultsEl.classList.add(\"hidden\");\n        }\n    }\n\n    function updateFilterCounts() {\n        document.getElementById(\"showing-count\").innerText = CASES_DATA.length;\n        document.getElementById(\"total-count\").innerText = CASES_DATA.length;\n    }\n\n    function prevSlide(caseId, totalImages) {\n        preloadCardImages(caseId);\n        if (!slideState[caseId]) {\n            slideState[caseId] = 0;\n        }\n        slideState[caseId] = (slideState[caseId] - 1 + totalImages) % totalImages;\n        updateSlidePosition(caseId);\n    }\n\n    function nextSlide(caseId, totalImages) {\n        preloadCardImages(caseId);\n        if (slideState[caseId] === undefined) {\n            slideState[caseId] = 0;\n        }\n        slideState[caseId] = (slideState[caseId] + 1) % totalImages;\n        updateSlidePosition(caseId);\n    }\n\n    function updateSlidePosition(caseId) {\n        const track = document.getElementById(`slider-track-${caseId}`);\n        if (track) {\n            const currentIndex = slideState[caseId];\n            track.style.transform = `translateX(-${currentIndex * 100}%)`;\n        }\n    }\n<\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Material Spotlight \u2022 High-Density Downcycled Felt Sustainable Material Innovation Eco-Mat: The Solution for Achieving Sustainability Eco-Mat is an eco-friendly material engineered from non-upcyclable textile waste and discarded corporate uniforms. By compressing shredded fabric fibers into durable bonded pads, this sustainable material provides a versatile circular material solution that diverts unwanted textiles away from landfills. 100% [&hellip;]<\/p>\n","protected":false},"author":260225851,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_wpcom_ai_launchpad_about_page":false,"_wpcom_ai_launchpad_gallery_page":false,"_wpcom_ai_launchpad_contact_page":false,"_wpcom_ai_launchpad_events_page":false,"_wpcom_ai_launchpad_video_page":false,"_wpcom_ai_launchpad_portfolio_piece":false,"footnotes":""},"class_list":["post-3679","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Eco-Mat: Sustainable Recycled Felt Material - Dress Green | Design x Sustainability<\/title>\n<meta name=\"description\" content=\"Eco-Mat by Dress Green transforms discarded corporate uniforms into high-density recycled felt. Flame &amp; bacteria-resistant circular material for B2B products.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dressgreen.org\/cn\/eco-mat\/\" \/>\n<meta property=\"og:locale\" content=\"zh_HK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Eco-Mat: Sustainable Recycled Felt Material - Dress Green | Design x Sustainability\" \/>\n<meta property=\"og:description\" content=\"Eco-Mat by Dress Green transforms discarded corporate uniforms into high-density recycled felt. Flame &amp; bacteria-resistant circular material for B2B products.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dressgreen.org\/cn\/eco-mat\/\" \/>\n<meta property=\"og:site_name\" content=\"Dress Green | Design x Sustainability\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-09T04:51:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u9810\u8a08\u95b1\u8b80\u6642\u9593\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 \u5206\u9418\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dressgreen.org\\\/eco-mat\\\/\",\"url\":\"https:\\\/\\\/dressgreen.org\\\/eco-mat\\\/\",\"name\":\"Eco-Mat: Sustainable Recycled Felt Material - Dress Green | Design x Sustainability\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dressgreen.org\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/dressgreen.org\\\/eco-mat\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/dressgreen.org\\\/eco-mat\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/dressgreen.org\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/DSC00347.jpg\",\"datePublished\":\"2025-08-20T01:51:12+00:00\",\"dateModified\":\"2026-10-09T04:51:37+00:00\",\"description\":\"Eco-Mat by Dress Green transforms discarded corporate uniforms into high-density recycled felt. Flame & bacteria-resistant circular material for B2B products.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dressgreen.org\\\/eco-mat\\\/#breadcrumb\"},\"inLanguage\":\"zh-HK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dressgreen.org\\\/eco-mat\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-HK\",\"@id\":\"https:\\\/\\\/dressgreen.org\\\/eco-mat\\\/#primaryimage\",\"url\":\"https:\\\/\\\/dressgreen.org\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/DSC00347.jpg\",\"contentUrl\":\"https:\\\/\\\/dressgreen.org\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/DSC00347.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dressgreen.org\\\/eco-mat\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dressgreen.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Eco-Mat\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dressgreen.org\\\/#website\",\"url\":\"https:\\\/\\\/dressgreen.org\\\/\",\"name\":\"Dress Green | Design x Sustainability\",\"description\":\"Unleash your uniform waste\",\"publisher\":{\"@id\":\"https:\\\/\\\/dressgreen.org\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dressgreen.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-HK\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dressgreen.org\\\/#organization\",\"name\":\"Dress Green | Design x Sustainability\",\"url\":\"https:\\\/\\\/dressgreen.org\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-HK\",\"@id\":\"https:\\\/\\\/dressgreen.org\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/dressgreen.org\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/dress-green-for-patent_2022.11.28_e5b7a5e4bd9ce58d80e59f9f-1-e8a487e69cac-31-e589afe69cac-1.png?fit=3949%2C3070&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/dressgreen.org\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/dress-green-for-patent_2022.11.28_e5b7a5e4bd9ce58d80e59f9f-1-e8a487e69cac-31-e589afe69cac-1.png?fit=3949%2C3070&ssl=1\",\"width\":3949,\"height\":3070,\"caption\":\"Dress Green | Design x Sustainability\"},\"image\":{\"@id\":\"https:\\\/\\\/dressgreen.org\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Eco-Mat: Sustainable Recycled Felt Material - Dress Green | Design x Sustainability","description":"Eco-Mat by Dress Green transforms discarded corporate uniforms into high-density recycled felt. Flame & bacteria-resistant circular material for B2B products.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dressgreen.org\/cn\/eco-mat\/","og_locale":"zh_HK","og_type":"article","og_title":"Eco-Mat: Sustainable Recycled Felt Material - Dress Green | Design x Sustainability","og_description":"Eco-Mat by Dress Green transforms discarded corporate uniforms into high-density recycled felt. Flame & bacteria-resistant circular material for B2B products.","og_url":"https:\/\/dressgreen.org\/cn\/eco-mat\/","og_site_name":"Dress Green | Design x Sustainability","article_modified_time":"2026-10-09T04:51:37+00:00","og_image":[{"url":"https:\/\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"\u9810\u8a08\u95b1\u8b80\u6642\u9593":"3 \u5206\u9418"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dressgreen.org\/eco-mat\/","url":"https:\/\/dressgreen.org\/eco-mat\/","name":"Eco-Mat: Sustainable Recycled Felt Material - Dress Green | Design x Sustainability","isPartOf":{"@id":"https:\/\/dressgreen.org\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dressgreen.org\/eco-mat\/#primaryimage"},"image":{"@id":"https:\/\/dressgreen.org\/eco-mat\/#primaryimage"},"thumbnailUrl":"https:\/\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg","datePublished":"2025-08-20T01:51:12+00:00","dateModified":"2026-10-09T04:51:37+00:00","description":"Eco-Mat by Dress Green transforms discarded corporate uniforms into high-density recycled felt. Flame & bacteria-resistant circular material for B2B products.","breadcrumb":{"@id":"https:\/\/dressgreen.org\/eco-mat\/#breadcrumb"},"inLanguage":"zh-HK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dressgreen.org\/eco-mat\/"]}]},{"@type":"ImageObject","inLanguage":"zh-HK","@id":"https:\/\/dressgreen.org\/eco-mat\/#primaryimage","url":"https:\/\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg","contentUrl":"https:\/\/dressgreen.org\/wp-content\/uploads\/2025\/07\/DSC00347.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/dressgreen.org\/eco-mat\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dressgreen.org\/"},{"@type":"ListItem","position":2,"name":"Eco-Mat"}]},{"@type":"WebSite","@id":"https:\/\/dressgreen.org\/#website","url":"https:\/\/dressgreen.org\/","name":"Dress Green | Design x Sustainability","description":"Unleash your uniform waste","publisher":{"@id":"https:\/\/dressgreen.org\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dressgreen.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-HK"},{"@type":"Organization","@id":"https:\/\/dressgreen.org\/#organization","name":"Dress Green | Design x Sustainability","url":"https:\/\/dressgreen.org\/","logo":{"@type":"ImageObject","inLanguage":"zh-HK","@id":"https:\/\/dressgreen.org\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2025\/02\/dress-green-for-patent_2022.11.28_e5b7a5e4bd9ce58d80e59f9f-1-e8a487e69cac-31-e589afe69cac-1.png?fit=3949%2C3070&ssl=1","contentUrl":"https:\/\/i0.wp.com\/dressgreen.org\/wp-content\/uploads\/2025\/02\/dress-green-for-patent_2022.11.28_e5b7a5e4bd9ce58d80e59f9f-1-e8a487e69cac-31-e589afe69cac-1.png?fit=3949%2C3070&ssl=1","width":3949,"height":3070,"caption":"Dress Green | Design x Sustainability"},"image":{"@id":"https:\/\/dressgreen.org\/#\/schema\/logo\/image\/"}}]}},"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PfXnBq-Xl","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/dressgreen.org\/cn\/wp-json\/wp\/v2\/pages\/3679","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dressgreen.org\/cn\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dressgreen.org\/cn\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dressgreen.org\/cn\/wp-json\/wp\/v2\/users\/260225851"}],"replies":[{"embeddable":true,"href":"https:\/\/dressgreen.org\/cn\/wp-json\/wp\/v2\/comments?post=3679"}],"version-history":[{"count":99,"href":"https:\/\/dressgreen.org\/cn\/wp-json\/wp\/v2\/pages\/3679\/revisions"}],"predecessor-version":[{"id":8126,"href":"https:\/\/dressgreen.org\/cn\/wp-json\/wp\/v2\/pages\/3679\/revisions\/8126"}],"wp:attachment":[{"href":"https:\/\/dressgreen.org\/cn\/wp-json\/wp\/v2\/media?parent=3679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}