{"product_id":"soap-dispenser","title":"Kitchen Sink Dish Soap Dispenser","description":"\u003cdiv class=\"sdp-product-page\"\u003e\n  \u003cstyle\u003e\n    \/* =========================================================\n       DISH SOAP DISPENSER — SHOPIFY PRODUCT DESCRIPTION\n       Container-query responsive layout\n       No theme files required\n    ========================================================== *\/\n\n    .sdp-product-page,\n    .sdp-product-page * {\n      box-sizing: border-box;\n    }\n\n    .sdp-product-page {\n      container-type: inline-size;\n      container-name: soap-description;\n\n      --sdp-navy: #12345b;\n      --sdp-blue: #1769c2;\n      --sdp-blue-dark: #0d4f99;\n      --sdp-blue-soft: #eaf4ff;\n      --sdp-ice: #f5f9fc;\n      --sdp-gray: #667382;\n      --sdp-dark: #17212b;\n      --sdp-line: #d9e4ee;\n      --sdp-green: #3e8b62;\n      --sdp-warm: #f3eee7;\n      --sdp-white: #ffffff;\n\n      width: 100%;\n      max-width: 100%;\n      margin: 0 auto;\n      padding: 0;\n      overflow: hidden;\n      color: var(--sdp-dark);\n      font-family: Arial, Helvetica, sans-serif;\n      font-size: 16px;\n      line-height: 1.58;\n      background: transparent;\n    }\n\n    .sdp-product-page img {\n      display: block;\n      width: 100%;\n      max-width: 100%;\n      height: auto;\n      margin: 0;\n      border: 0;\n      object-fit: cover;\n    }\n\n    .sdp-product-page h2,\n    .sdp-product-page h3,\n    .sdp-product-page p {\n      margin-top: 0;\n    }\n\n    .sdp-section {\n      margin: 0 0 18px;\n      border: 1px solid var(--sdp-line);\n      border-radius: 18px;\n      overflow: hidden;\n      background: var(--sdp-white);\n      box-shadow: 0 8px 26px rgba(24, 58, 91, 0.07);\n    }\n\n    .sdp-inner {\n      padding: 22px 18px;\n    }\n\n    .sdp-eyebrow {\n      display: inline-flex;\n      align-items: center;\n      gap: 7px;\n      margin: 0 0 10px;\n      padding: 7px 11px;\n      border-radius: 999px;\n      background: var(--sdp-blue-soft);\n      color: var(--sdp-blue-dark);\n      font-size: 12px;\n      font-weight: 800;\n      line-height: 1.2;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n    }\n\n    .sdp-h2 {\n      margin: 0 0 12px;\n      color: var(--sdp-navy);\n      font-size: clamp(26px, 6.4cqi, 38px);\n      line-height: 1.12;\n      letter-spacing: -0.025em;\n    }\n\n    .sdp-h3 {\n      margin: 0 0 9px;\n      color: var(--sdp-navy);\n      font-size: clamp(20px, 4.8cqi, 27px);\n      line-height: 1.18;\n    }\n\n    .sdp-copy {\n      margin: 0;\n      color: #45515e;\n      font-size: clamp(15px, 3.8cqi, 18px);\n      line-height: 1.62;\n    }\n\n    \/* HERO *\/\n\n    .sdp-hero {\n      position: relative;\n      background:\n        radial-gradient(circle at 90% 15%, rgba(51, 138, 224, 0.23), transparent 34%),\n        linear-gradient(145deg, #f9fcff 0%, #eaf4ff 57%, #dcecff 100%);\n    }\n\n    .sdp-hero-copy {\n      padding: 25px 18px 18px;\n    }\n\n    .sdp-hero-title {\n      margin: 0 0 12px;\n      color: var(--sdp-navy);\n      font-size: clamp(31px, 8cqi, 50px);\n      line-height: 1.04;\n      letter-spacing: -0.035em;\n    }\n\n    .sdp-hero-subtitle {\n      max-width: 620px;\n      margin: 0 0 17px;\n      color: #3d4c5d;\n      font-size: clamp(16px, 4.2cqi, 20px);\n      line-height: 1.55;\n    }\n\n    .sdp-hero-points {\n      display: grid;\n      grid-template-columns: 1fr;\n      gap: 9px;\n      margin: 0;\n      padding: 0;\n      list-style: none;\n    }\n\n    .sdp-hero-points li {\n      display: flex;\n      align-items: flex-start;\n      gap: 10px;\n      padding: 11px 12px;\n      border: 1px solid rgba(23, 105, 194, 0.16);\n      border-radius: 12px;\n      background: rgba(255, 255, 255, 0.82);\n      color: #263849;\n      font-weight: 700;\n      line-height: 1.35;\n    }\n\n    .sdp-check {\n      display: inline-flex;\n      flex: 0 0 22px;\n      align-items: center;\n      justify-content: center;\n      width: 22px;\n      height: 22px;\n      border-radius: 50%;\n      background: var(--sdp-blue);\n      color: white;\n      font-size: 14px;\n      font-weight: 900;\n    }\n\n    .sdp-hero-image {\n      padding: 0 12px 12px;\n    }\n\n    .sdp-hero-image img {\n      border-radius: 14px;\n      box-shadow: 0 16px 38px rgba(20, 64, 107, 0.15);\n    }\n\n    \/* PAIN BAR *\/\n\n    .sdp-pain {\n      padding: 21px 18px;\n      background: var(--sdp-navy);\n      color: white;\n      text-align: center;\n    }\n\n    .sdp-pain strong {\n      display: block;\n      margin-bottom: 5px;\n      color: white;\n      font-size: clamp(22px, 5.8cqi, 31px);\n      line-height: 1.2;\n    }\n\n    .sdp-pain span {\n      display: block;\n      max-width: 680px;\n      margin: 0 auto;\n      color: #dbeaff;\n      font-size: clamp(15px, 3.7cqi, 18px);\n      line-height: 1.55;\n    }\n\n    \/* FEATURE CARDS *\/\n\n    .sdp-feature-grid {\n      display: grid;\n      grid-template-columns: 1fr;\n      gap: 12px;\n      margin-top: 17px;\n    }\n\n    .sdp-feature {\n      padding: 17px;\n      border: 1px solid var(--sdp-line);\n      border-radius: 15px;\n      background: var(--sdp-ice);\n    }\n\n    .sdp-icon {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: 47px;\n      height: 47px;\n      margin-bottom: 12px;\n      border-radius: 14px;\n      background: linear-gradient(145deg, var(--sdp-blue), var(--sdp-blue-dark));\n      color: white;\n      font-size: 23px;\n      box-shadow: 0 8px 18px rgba(23, 105, 194, 0.2);\n    }\n\n    .sdp-feature h3 {\n      margin: 0 0 7px;\n      color: var(--sdp-navy);\n      font-size: 18px;\n      line-height: 1.3;\n    }\n\n    .sdp-feature p {\n      margin: 0;\n      color: #53606d;\n      font-size: 15px;\n      line-height: 1.55;\n    }\n\n    \/* IMAGE + COPY MODULE *\/\n\n    .sdp-split {\n      display: grid;\n      grid-template-columns: minmax(0, 1fr);\n    }\n\n    .sdp-split-media {\n      min-width: 0;\n      background: #edf4fa;\n    }\n\n    .sdp-split-media img {\n      height: 100%;\n      min-height: 260px;\n      object-fit: cover;\n    }\n\n    .sdp-split-copy {\n      min-width: 0;\n      padding: 23px 18px;\n    }\n\n    .sdp-highlight {\n      margin-top: 15px;\n      padding: 14px;\n      border-left: 4px solid var(--sdp-blue);\n      border-radius: 0 10px 10px 0;\n      background: var(--sdp-blue-soft);\n      color: #28425a;\n      font-weight: 700;\n      line-height: 1.5;\n    }\n\n    \/* BENEFIT LIST *\/\n\n    .sdp-benefit-list {\n      display: grid;\n      gap: 11px;\n      margin: 17px 0 0;\n      padding: 0;\n      list-style: none;\n    }\n\n    .sdp-benefit-list li {\n      position: relative;\n      padding: 13px 13px 13px 46px;\n      border-radius: 12px;\n      background: var(--sdp-ice);\n      color: #344657;\n      font-size: 15px;\n      font-weight: 700;\n      line-height: 1.45;\n    }\n\n    .sdp-benefit-list li::before {\n      content: \"✓\";\n      position: absolute;\n      top: 50%;\n      left: 14px;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: 23px;\n      height: 23px;\n      border-radius: 50%;\n      background: var(--sdp-green);\n      color: white;\n      font-size: 14px;\n      font-weight: 900;\n      transform: translateY(-50%);\n    }\n\n    \/* INSTALLATION *\/\n\n    .sdp-install {\n      background: linear-gradient(145deg, #f8fbfe, #edf5fb);\n    }\n\n    .sdp-steps {\n      display: grid;\n      grid-template-columns: 1fr;\n      gap: 11px;\n      margin-top: 18px;\n    }\n\n    .sdp-step {\n      display: grid;\n      grid-template-columns: 38px minmax(0, 1fr);\n      gap: 11px;\n      align-items: start;\n      padding: 14px;\n      border: 1px solid var(--sdp-line);\n      border-radius: 13px;\n      background: white;\n    }\n\n    .sdp-step-number {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: 38px;\n      height: 38px;\n      border-radius: 50%;\n      background: var(--sdp-blue);\n      color: white;\n      font-size: 18px;\n      font-weight: 900;\n    }\n\n    .sdp-step strong {\n      display: block;\n      margin-bottom: 3px;\n      color: var(--sdp-navy);\n      font-size: 16px;\n    }\n\n    .sdp-step span {\n      display: block;\n      color: #596674;\n      font-size: 14px;\n      line-height: 1.48;\n    }\n\n    \/* FIT CHECK *\/\n\n    .sdp-fit-grid {\n      display: grid;\n      grid-template-columns: 1fr;\n      gap: 10px;\n      margin-top: 16px;\n    }\n\n    .sdp-fit-item {\n      padding: 16px;\n      border: 1px solid #cfe1f1;\n      border-radius: 13px;\n      background: #f5faff;\n      text-align: center;\n    }\n\n    .sdp-fit-item strong {\n      display: block;\n      margin-bottom: 4px;\n      color: var(--sdp-blue-dark);\n      font-size: 22px;\n      line-height: 1.2;\n    }\n\n    .sdp-fit-item span {\n      display: block;\n      color: #506172;\n      font-size: 14px;\n      line-height: 1.4;\n    }\n\n    .sdp-note {\n      margin-top: 13px;\n      padding: 12px 13px;\n      border-radius: 10px;\n      background: #fff8e8;\n      color: #674f22;\n      font-size: 14px;\n      line-height: 1.5;\n    }\n\n    \/* SPECIFICATIONS *\/\n\n    .sdp-specs {\n      width: 100%;\n      margin-top: 16px;\n      border-collapse: separate;\n      border-spacing: 0;\n      overflow: hidden;\n      border: 1px solid var(--sdp-line);\n      border-radius: 13px;\n      background: white;\n    }\n\n    .sdp-specs tr:not(:last-child) td {\n      border-bottom: 1px solid var(--sdp-line);\n    }\n\n    .sdp-specs td {\n      display: block;\n      width: 100%;\n      padding: 8px 13px;\n      vertical-align: top;\n      font-size: 14px;\n      line-height: 1.45;\n    }\n\n    .sdp-specs td:first-child {\n      padding-bottom: 2px;\n      background: #f4f8fb;\n      color: var(--sdp-navy);\n      font-weight: 800;\n    }\n\n    .sdp-specs td:last-child {\n      padding-top: 3px;\n      color: #4f5d6a;\n    }\n\n    \/* FAQ *\/\n\n    .sdp-faq {\n      display: grid;\n      gap: 10px;\n      margin-top: 15px;\n    }\n\n    .sdp-faq details {\n      border: 1px solid var(--sdp-line);\n      border-radius: 12px;\n      background: white;\n      overflow: hidden;\n    }\n\n    .sdp-faq summary {\n      position: relative;\n      padding: 15px 45px 15px 15px;\n      color: var(--sdp-navy);\n      font-size: 15px;\n      font-weight: 800;\n      line-height: 1.4;\n      cursor: pointer;\n      list-style: none;\n    }\n\n    .sdp-faq summary::-webkit-details-marker {\n      display: none;\n    }\n\n    .sdp-faq summary::after {\n      content: \"+\";\n      position: absolute;\n      top: 50%;\n      right: 15px;\n      color: var(--sdp-blue);\n      font-size: 26px;\n      line-height: 1;\n      transform: translateY(-50%);\n    }\n\n    .sdp-faq details[open] summary::after {\n      content: \"−\";\n    }\n\n    .sdp-faq-answer {\n      padding: 0 15px 15px;\n      color: #566371;\n      font-size: 14px;\n      line-height: 1.58;\n    }\n\n    \/* FINAL CTA *\/\n\n    .sdp-final {\n      padding: 27px 18px;\n      background:\n        radial-gradient(circle at 100% 0%, rgba(255,255,255,0.16), transparent 38%),\n        linear-gradient(135deg, var(--sdp-navy), var(--sdp-blue-dark));\n      color: white;\n      text-align: center;\n    }\n\n    .sdp-final h2 {\n      margin: 0 0 9px;\n      color: white;\n      font-size: clamp(27px, 6.6cqi, 38px);\n      line-height: 1.14;\n    }\n\n    .sdp-final p {\n      max-width: 680px;\n      margin: 0 auto;\n      color: #dfeeff;\n      font-size: clamp(15px, 3.8cqi, 18px);\n      line-height: 1.55;\n    }\n\n    .sdp-final-badge {\n      display: inline-block;\n      margin-top: 17px;\n      padding: 11px 18px;\n      border-radius: 999px;\n      background: white;\n      color: var(--sdp-blue-dark);\n      font-size: 15px;\n      font-weight: 900;\n      letter-spacing: 0.01em;\n    }\n\n    \/* =========================================================\n       CONTAINER QUERIES\n       Responds to DESCRIPTION WIDTH, not browser width\n    ========================================================== *\/\n\n    @container soap-description (min-width: 430px) {\n      .sdp-inner,\n      .sdp-hero-copy,\n      .sdp-split-copy,\n      .sdp-final {\n        padding-left: 24px;\n        padding-right: 24px;\n      }\n\n      .sdp-hero-points {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n      }\n\n      .sdp-feature-grid {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n      }\n\n      .sdp-fit-grid {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n      }\n\n      .sdp-steps {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n      }\n\n      .sdp-specs td {\n        display: table-cell;\n        padding: 11px 13px;\n      }\n\n      .sdp-specs td:first-child {\n        width: 37%;\n        padding-bottom: 11px;\n      }\n\n      .sdp-specs td:last-child {\n        width: 63%;\n        padding-top: 11px;\n      }\n    }\n\n    \/*\n      Important:\n      The image\/text modules remain single-column at 450–650px.\n      They only become side-by-side when this specific description\n      container reaches at least 720px.\n    *\/\n\n    @container soap-description (min-width: 720px) {\n      .sdp-hero {\n        display: grid;\n        grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);\n        align-items: center;\n      }\n\n      .sdp-hero-image {\n        padding: 18px 18px 18px 0;\n      }\n\n      .sdp-split {\n        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n        align-items: stretch;\n      }\n\n      .sdp-split.sdp-reverse .sdp-split-media {\n        order: 2;\n      }\n\n      .sdp-split.sdp-reverse .sdp-split-copy {\n        order: 1;\n      }\n\n      .sdp-feature-grid {\n        grid-template-columns: repeat(4, minmax(0, 1fr));\n      }\n\n      .sdp-steps {\n        grid-template-columns: repeat(4, minmax(0, 1fr));\n      }\n\n      .sdp-step {\n        grid-template-columns: 1fr;\n      }\n\n      .sdp-fit-grid {\n        grid-template-columns: repeat(3, minmax(0, 1fr));\n      }\n    }\n\n    @container soap-description (min-width: 940px) {\n      .sdp-inner,\n      .sdp-hero-copy,\n      .sdp-split-copy,\n      .sdp-final {\n        padding-left: 34px;\n        padding-right: 34px;\n      }\n\n      .sdp-section {\n        margin-bottom: 22px;\n      }\n    }\n  \u003c\/style\u003e\n\n  \u003c!-- HERO --\u003e\n  \u003csection class=\"sdp-section sdp-hero\"\u003e\n    \u003cdiv class=\"sdp-hero-copy\"\u003e\n      \u003cdiv class=\"sdp-eyebrow\"\u003eCleaner Sink • Fewer Refills\u003c\/div\u003e\n\n      \u003ch2 class=\"sdp-hero-title\"\u003e\n        Stop Refilling Small Soap Bottles\n      \u003c\/h2\u003e\n\n      \u003cp class=\"sdp-hero-subtitle\"\u003e\n        Draw soap directly from a large container under your sink and keep\n        your countertop clean, organized, and ready for everyday use.\n      \u003c\/p\u003e\n\n      \u003cul class=\"sdp-hero-points\"\u003e\n        \u003cli\u003e\n          \u003cspan class=\"sdp-check\"\u003e✓\u003c\/span\u003e\n          \u003cspan\u003eDirect-to-bottle soap supply\u003c\/span\u003e\n        \u003c\/li\u003e\n\n        \u003cli\u003e\n          \u003cspan class=\"sdp-check\"\u003e✓\u003c\/span\u003e\n          \u003cspan\u003e360° rotating metal spout\u003c\/span\u003e\n        \u003c\/li\u003e\n\n        \u003cli\u003e\n          \u003cspan class=\"sdp-check\"\u003e✓\u003c\/span\u003e\n          \u003cspan\u003eSmooth, easy pump action\u003c\/span\u003e\n        \u003c\/li\u003e\n\n        \u003cli\u003e\n          \u003cspan class=\"sdp-check\"\u003e✓\u003c\/span\u003e\n          \u003cspan\u003eClean brushed-steel finish\u003c\/span\u003e\n        \u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"sdp-hero-image\"\u003e\n      \u003c!-- Replace with your final Shopify CDN hero image if needed --\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0789\/8988\/5672\/files\/3cccff85047f41e08a56fe40b6661845_original.png?v=1785385493\" alt=\"Built-in dish soap dispenser connected to a large soap bottle under the kitchen sink\" loading=\"eager\" width=\"1000\" height=\"1000\"\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- PAIN POINT --\u003e\n  \u003csection class=\"sdp-section sdp-pain\"\u003e\n    \u003cstrong\u003eSmall Bottles Create More Work\u003c\/strong\u003e\n    \u003cspan\u003e\n      Frequent refills, loose bottles, sticky caps, and countertop clutter\n      make a simple kitchen task more frustrating than it needs to be.\n    \u003c\/span\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- FOUR BENEFITS --\u003e\n  \u003csection class=\"sdp-section\"\u003e\n    \u003cdiv class=\"sdp-inner\"\u003e\n      \u003cdiv class=\"sdp-eyebrow\"\u003eEveryday Convenience\u003c\/div\u003e\n\n      \u003ch2 class=\"sdp-h2\"\u003e\n        One Simple Upgrade, Four Useful Benefits\n      \u003c\/h2\u003e\n\n      \u003cp class=\"sdp-copy\"\u003e\n        Built to make soap dispensing cleaner, easier, and more practical\n        without taking up valuable space around your sink.\n      \u003c\/p\u003e\n\n      \u003cdiv class=\"sdp-feature-grid\"\u003e\n        \u003carticle class=\"sdp-feature\"\u003e\n          \u003cdiv class=\"sdp-icon\"\u003e↧\u003c\/div\u003e\n          \u003ch3\u003eEasy to Press\u003c\/h3\u003e\n          \u003cp\u003e\n            The responsive pump delivers soap with a comfortable downward press.\n          \u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"sdp-feature\"\u003e\n          \u003cdiv class=\"sdp-icon\"\u003e↻\u003c\/div\u003e\n          \u003ch3\u003e360° Swivel Spout\u003c\/h3\u003e\n          \u003cp\u003e\n            Turn the spout toward either side of the sink for easier dispensing.\n          \u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"sdp-feature\"\u003e\n          \u003cdiv class=\"sdp-icon\"\u003e💧\u003c\/div\u003e\n          \u003ch3\u003eSmooth Dispensing\u003c\/h3\u003e\n          \u003cp\u003e\n            Designed to provide a steady, controlled flow for everyday washing.\n          \u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"sdp-feature\"\u003e\n          \u003cdiv class=\"sdp-icon\"\u003e▣\u003c\/div\u003e\n          \u003ch3\u003eFewer Refills\u003c\/h3\u003e\n          \u003cp\u003e\n            Connect directly to a large soap container stored below the counter.\n          \u003c\/p\u003e\n        \u003c\/article\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- DIRECT TO BOTTLE --\u003e\n  \u003csection class=\"sdp-section sdp-split\"\u003e\n    \u003cdiv class=\"sdp-split-media\"\u003e\n      \u003cimg src=\"https:\/\/wxalbum-10001658-file.dianxiaomi.com\/wxalbum\/1332898\/20251119173419\/9769c7bed84b1df8885c9784848940ea.jpg\" alt=\"Long extension tube connected directly to a large dish soap bottle\" loading=\"lazy\" width=\"800\" height=\"800\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"sdp-split-copy\"\u003e\n      \u003cdiv class=\"sdp-eyebrow\"\u003eDirect-to-Bottle Design\u003c\/div\u003e\n\n      \u003ch2 class=\"sdp-h2\"\u003e\n        Use the Large Bottle You Already Buy\n      \u003c\/h2\u003e\n\n      \u003cp class=\"sdp-copy\"\u003e\n        The long flexible tube reaches into a full-size soap container beneath\n        the sink. This eliminates the need to repeatedly open, pour, and refill\n        a small built-in reservoir.\n      \u003c\/p\u003e\n\n      \u003cul class=\"sdp-benefit-list\"\u003e\n        \u003cli\u003eKeeps large containers hidden inside the cabinet\u003c\/li\u003e\n        \u003cli\u003eReduces repeated countertop bottle refills\u003c\/li\u003e\n        \u003cli\u003eHelps use soap from deeper inside the container\u003c\/li\u003e\n        \u003cli\u003eCreates a cleaner, more organized sink area\u003c\/li\u003e\n      \u003c\/ul\u003e\n\n      \u003cdiv class=\"sdp-highlight\"\u003e\n        Fewer refills means less interruption during dishes, cleaning, and\n        everyday handwashing.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- PUMP + ROTATION --\u003e\n  \u003csection class=\"sdp-section sdp-split sdp-reverse\"\u003e\n    \u003cdiv class=\"sdp-split-media\"\u003e\n      \u003cimg src=\"https:\/\/wxalbum-10001658-file.dianxiaomi.com\/wxalbum\/1332898\/20251119173420\/db05db069b1b11ddb97ce39d5443e667.jpg\" alt=\"Easy press kitchen soap dispenser with rotating spout\" loading=\"lazy\" width=\"800\" height=\"800\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"sdp-split-copy\"\u003e\n      \u003cdiv class=\"sdp-eyebrow\"\u003eControl Where Soap Goes\u003c\/div\u003e\n\n      \u003ch2 class=\"sdp-h2\"\u003e\n        Easy Pumping With a 360° Rotating Spout\n      \u003c\/h2\u003e\n\n      \u003cp class=\"sdp-copy\"\u003e\n        Rotate the spout toward the sink, sponge, pan, or your hands. The\n        easy-press pump is designed to dispense soap smoothly without requiring\n        awkward lifting or squeezing.\n      \u003c\/p\u003e\n\n      \u003cul class=\"sdp-benefit-list\"\u003e\n        \u003cli\u003eUseful beside single or double-bowl sinks\u003c\/li\u003e\n        \u003cli\u003eDirect the outlet exactly where it is needed\u003c\/li\u003e\n        \u003cli\u003eSimple one-handed operation\u003c\/li\u003e\n        \u003cli\u003eSuitable for daily kitchen or utility-room use\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- MATERIAL --\u003e\n  \u003csection class=\"sdp-section\"\u003e\n    \u003cdiv class=\"sdp-inner\"\u003e\n      \u003cdiv class=\"sdp-eyebrow\"\u003eMade for Everyday Use\u003c\/div\u003e\n\n      \u003ch2 class=\"sdp-h2\"\u003e\n        Clean Stainless-Steel Look\n      \u003c\/h2\u003e\n\n      \u003cp class=\"sdp-copy\"\u003e\n        The brushed 304 stainless-steel pump head blends naturally with many\n        modern kitchen faucets. Durable PE components and a reinforced internal\n        spring support reliable everyday pumping.\n      \u003c\/p\u003e\n\n      \u003cdiv class=\"sdp-feature-grid\"\u003e\n        \u003carticle class=\"sdp-feature\"\u003e\n          \u003cdiv class=\"sdp-icon\"\u003e✦\u003c\/div\u003e\n          \u003ch3\u003eBrushed Finish\u003c\/h3\u003e\n          \u003cp\u003e\n            A clean, neutral appearance that pairs well with stainless fixtures.\n          \u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"sdp-feature\"\u003e\n          \u003cdiv class=\"sdp-icon\"\u003e304\u003c\/div\u003e\n          \u003ch3\u003eMetal Pump Head\u003c\/h3\u003e\n          \u003cp\u003e\n            Made with 304 stainless steel for a solid, finished countertop look.\n          \u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"sdp-feature\"\u003e\n          \u003cdiv class=\"sdp-icon\"\u003e◌\u003c\/div\u003e\n          \u003ch3\u003eFlexible PE Tube\u003c\/h3\u003e\n          \u003cp\u003e\n            The long tube bends easily inside the cabinet without taking much space.\n          \u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"sdp-feature\"\u003e\n          \u003cdiv class=\"sdp-icon\"\u003e↥\u003c\/div\u003e\n          \u003ch3\u003eResponsive Spring\u003c\/h3\u003e\n          \u003cp\u003e\n            The internal spring supports smooth rebound after every press.\n          \u003c\/p\u003e\n        \u003c\/article\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- INSTALLATION IMAGE --\u003e\n  \u003csection class=\"sdp-section sdp-split\"\u003e\n    \u003cdiv class=\"sdp-split-media\"\u003e\n      \u003cimg src=\"https:\/\/wxalbum-10001658-file.dianxiaomi.com\/wxalbum\/1332898\/20251119173420\/b1ea5488e9bb41b48f6f23c5984d3fa3.jpg\" alt=\"Sink hole size and countertop thickness guide for soap dispenser installation\" loading=\"lazy\" width=\"800\" height=\"800\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"sdp-split-copy\"\u003e\n      \u003cdiv class=\"sdp-eyebrow\"\u003eCheck Before Ordering\u003c\/div\u003e\n\n      \u003ch2 class=\"sdp-h2\"\u003e\n        Measure Your Sink Opening\n      \u003c\/h2\u003e\n\n      \u003cp class=\"sdp-copy\"\u003e\n        Confirm the available mounting hole and countertop thickness before\n        installation. The dispenser is intended for common sink or countertop\n        accessory openings.\n      \u003c\/p\u003e\n\n      \u003cdiv class=\"sdp-fit-grid\"\u003e\n        \u003cdiv class=\"sdp-fit-item\"\u003e\n          \u003cstrong\u003e1–1.5 in\u003c\/strong\u003e\n          \u003cspan\u003eRecommended hole diameter\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"sdp-fit-item\"\u003e\n          \u003cstrong\u003eUp to 1.3 in\u003c\/strong\u003e\n          \u003cspan\u003eMaximum countertop thickness\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"sdp-fit-item\"\u003e\n          \u003cstrong\u003e360°\u003c\/strong\u003e\n          \u003cspan\u003eRotating dispenser spout\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sdp-note\"\u003e\n        \u003cstrong\u003eImportant:\u003c\/strong\u003e Measure the installation opening and\n        countertop thickness before ordering. Do not rely only on visual\n        similarity to your current faucet or accessory.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- INSTALLATION STEPS --\u003e\n  \u003csection class=\"sdp-section sdp-install\"\u003e\n    \u003cdiv class=\"sdp-inner\"\u003e\n      \u003cdiv class=\"sdp-eyebrow\"\u003eSimple DIY Setup\u003c\/div\u003e\n\n      \u003ch2 class=\"sdp-h2\"\u003e\n        Install It in Four Basic Steps\n      \u003c\/h2\u003e\n\n      \u003cp class=\"sdp-copy\"\u003e\n        No separate countertop bottle is required. Mount the pump, connect the\n        tube, and place the tube end inside your soap container.\n      \u003c\/p\u003e\n\n      \u003cdiv class=\"sdp-steps\"\u003e\n        \u003cdiv class=\"sdp-step\"\u003e\n          \u003cdiv class=\"sdp-step-number\"\u003e1\u003c\/div\u003e\n          \u003cdiv\u003e\n            \u003cstrong\u003eInsert the Pump\u003c\/strong\u003e\n            \u003cspan\u003ePlace the dispenser through the available sink or countertop hole.\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"sdp-step\"\u003e\n          \u003cdiv class=\"sdp-step-number\"\u003e2\u003c\/div\u003e\n          \u003cdiv\u003e\n            \u003cstrong\u003eTighten Below\u003c\/strong\u003e\n            \u003cspan\u003eSecure the dispenser from underneath using the mounting hardware.\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"sdp-step\"\u003e\n          \u003cdiv class=\"sdp-step-number\"\u003e3\u003c\/div\u003e\n          \u003cdiv\u003e\n            \u003cstrong\u003eAttach the Tube\u003c\/strong\u003e\n            \u003cspan\u003eConnect the flexible extension tube firmly to the pump fitting.\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"sdp-step\"\u003e\n          \u003cdiv class=\"sdp-step-number\"\u003e4\u003c\/div\u003e\n          \u003cdiv\u003e\n            \u003cstrong\u003ePrime the Pump\u003c\/strong\u003e\n            \u003cspan\u003ePlace the tube in the soap and press repeatedly until liquid flows.\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- USES --\u003e\n  \u003csection class=\"sdp-section\"\u003e\n    \u003cdiv class=\"sdp-inner\"\u003e\n      \u003cdiv class=\"sdp-eyebrow\"\u003eMore Than Dish Soap\u003c\/div\u003e\n\n      \u003ch2 class=\"sdp-h2\"\u003e\n        Useful Around the Home\n      \u003c\/h2\u003e\n\n      \u003cp class=\"sdp-copy\"\u003e\n        The built-in dispenser can be used with many common liquid cleaning\n        products, making it a practical addition to more than one room.\n      \u003c\/p\u003e\n\n      \u003cdiv class=\"sdp-feature-grid\"\u003e\n        \u003carticle class=\"sdp-feature\"\u003e\n          \u003cdiv class=\"sdp-icon\"\u003e🍽\u003c\/div\u003e\n          \u003ch3\u003eKitchen Sink\u003c\/h3\u003e\n          \u003cp\u003eKeep dishwashing liquid close without leaving a bottle on display.\u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"sdp-feature\"\u003e\n          \u003cdiv class=\"sdp-icon\"\u003e✋\u003c\/div\u003e\n          \u003ch3\u003eHand Soap\u003c\/h3\u003e\n          \u003cp\u003eCreate a clean built-in handwashing station beside the sink.\u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"sdp-feature\"\u003e\n          \u003cdiv class=\"sdp-icon\"\u003e▤\u003c\/div\u003e\n          \u003ch3\u003eLaundry Room\u003c\/h3\u003e\n          \u003cp\u003eDispense compatible liquid detergent at a utility or laundry sink.\u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"sdp-feature\"\u003e\n          \u003cdiv class=\"sdp-icon\"\u003e⌂\u003c\/div\u003e\n          \u003ch3\u003eUtility Sink\u003c\/h3\u003e\n          \u003cp\u003eKeep frequently used liquid cleaner easy to reach and neatly stored.\u003c\/p\u003e\n        \u003c\/article\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- SPECIFICATIONS --\u003e\n  \u003csection class=\"sdp-section\"\u003e\n    \u003cdiv class=\"sdp-inner\"\u003e\n      \u003cdiv class=\"sdp-eyebrow\"\u003eProduct Details\u003c\/div\u003e\n\n      \u003ch2 class=\"sdp-h2\"\u003e\n        Specifications\n      \u003c\/h2\u003e\n\n      \u003ctable class=\"sdp-specs\"\u003e\n        \u003ctbody\u003e\n          \u003ctr\u003e\n            \u003ctd\u003eProduct Type\u003c\/td\u003e\n            \u003ctd\u003eBuilt-in sink soap dispenser with extension tube\u003c\/td\u003e\n          \u003c\/tr\u003e\n\n          \u003ctr\u003e\n            \u003ctd\u003ePump Material\u003c\/td\u003e\n            \u003ctd\u003e304 stainless-steel pump head\u003c\/td\u003e\n          \u003c\/tr\u003e\n\n          \u003ctr\u003e\n            \u003ctd\u003eFinish\u003c\/td\u003e\n            \u003ctd\u003eBrushed stainless steel\u003c\/td\u003e\n          \u003c\/tr\u003e\n\n          \u003ctr\u003e\n            \u003ctd\u003eExtension Tube\u003c\/td\u003e\n            \u003ctd\u003eApprox. 47 in \/ 120 cm — confirm your shipped version\u003c\/td\u003e\n          \u003c\/tr\u003e\n\n          \u003ctr\u003e\n            \u003ctd\u003eRecommended Hole\u003c\/td\u003e\n            \u003ctd\u003eApprox. 1–1.5 in \/ 25–38 mm diameter\u003c\/td\u003e\n          \u003c\/tr\u003e\n\n          \u003ctr\u003e\n            \u003ctd\u003eCountertop Thickness\u003c\/td\u003e\n            \u003ctd\u003eUp to approximately 1.3 in \/ 33 mm\u003c\/td\u003e\n          \u003c\/tr\u003e\n\n          \u003ctr\u003e\n            \u003ctd\u003eSpout Movement\u003c\/td\u003e\n            \u003ctd\u003e360° rotatable\u003c\/td\u003e\n          \u003c\/tr\u003e\n\n          \u003ctr\u003e\n            \u003ctd\u003eCompatible Liquids\u003c\/td\u003e\n            \u003ctd\u003eDish soap, hand soap, liquid detergent, and similar liquids\u003c\/td\u003e\n          \u003c\/tr\u003e\n\n          \u003ctr\u003e\n            \u003ctd\u003eRecommended Locations\u003c\/td\u003e\n            \u003ctd\u003eKitchen, bathroom, laundry, and utility sinks\u003c\/td\u003e\n          \u003c\/tr\u003e\n        \u003c\/tbody\u003e\n      \u003c\/table\u003e\n\n      \u003cdiv class=\"sdp-note\"\u003e\n        Very thick gel or lotion-style products may dispense slowly. Diluting\n        extremely thick formulas slightly may help prevent clogging.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- FAQ --\u003e\n  \u003csection class=\"sdp-section\"\u003e\n    \u003cdiv class=\"sdp-inner\"\u003e\n      \u003cdiv class=\"sdp-eyebrow\"\u003eHelpful Answers\u003c\/div\u003e\n\n      \u003ch2 class=\"sdp-h2\"\u003e\n        Frequently Asked Questions\n      \u003c\/h2\u003e\n\n      \u003cdiv class=\"sdp-faq\"\u003e\n        \u003cdetails\u003e\n          \u003csummary\u003eWill it fit my kitchen sink?\u003c\/summary\u003e\n          \u003cdiv class=\"sdp-faq-answer\"\u003e\n            Measure the accessory hole before ordering. The recommended hole\n            diameter is approximately 1–1.5 inches, with countertop thickness\n            up to approximately 1.3 inches.\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n\n        \u003cdetails\u003e\n          \u003csummary\u003eWhy is no soap coming out at first?\u003c\/summary\u003e\n          \u003cdiv class=\"sdp-faq-answer\"\u003e\n            Confirm that every tube connection is secure and the tube reaches\n            into the soap. Press the pump repeatedly to pull the liquid through\n            the full tube and prime the system.\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n\n        \u003cdetails\u003e\n          \u003csummary\u003eCan it work with thick dish soap?\u003c\/summary\u003e\n          \u003cdiv class=\"sdp-faq-answer\"\u003e\n            It works with many common liquid soaps. Extremely thick gel formulas\n            may move more slowly and may need slight dilution for smoother flow.\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n\n        \u003cdetails\u003e\n          \u003csummary\u003eHow should I clean the dispenser?\u003c\/summary\u003e\n          \u003cdiv class=\"sdp-faq-answer\"\u003e\n            Place the tube in warm water and pump it through the system to rinse\n            away residue. Wipe the brushed-metal surface with a soft cloth and\n            avoid harsh abrasive cleaners.\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n\n        \u003cdetails\u003e\n          \u003csummary\u003eDoes the spout rotate?\u003c\/summary\u003e\n          \u003cdiv class=\"sdp-faq-answer\"\u003e\n            Yes. The dispenser spout rotates 360 degrees, allowing you to point\n            it toward the sink, your sponge, cookware, or your hands.\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- FINAL CTA --\u003e\n  \u003csection class=\"sdp-section sdp-final\"\u003e\n    \u003ch2\u003eClear the Clutter Around Your Sink\u003c\/h2\u003e\n\n    \u003cp\u003e\n      Keep the large soap bottle hidden below the counter and enjoy convenient,\n      one-handed dispensing exactly where you need it.\n    \u003c\/p\u003e\n\n    \u003cspan class=\"sdp-final-badge\"\u003e\n      Cleaner Counter • Fewer Refills\n    \u003c\/span\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"XHY","offers":[{"title":"Sliver \/ 39in","offer_id":48820403142888,"sku":"NC02072607302620-银色1米套装","price":19.99,"currency_code":"USD","in_stock":true},{"title":"Sliver \/ 47in","offer_id":48820403175656,"sku":"NC02072607302620-银色1.2米套装","price":22.99,"currency_code":"USD","in_stock":true},{"title":"Black \/ 39in","offer_id":48820403208424,"sku":"NC02072607302620-黑色1米套装","price":19.99,"currency_code":"USD","in_stock":true},{"title":"Black \/ 47in","offer_id":48820403241192,"sku":"NC02072607302620-黑色1.2米套装","price":22.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0789\/8988\/5672\/files\/ChatGPT_Image_2026_7_30_02_19_03.png?v=1785392368","url":"https:\/\/sereintis.com\/products\/soap-dispenser","provider":"sereintis.com","version":"1.0","type":"link"}