{
  "title": "Stain Removal Guide — 40 Stains | The Swiss Laundry Kolkata",
  "description": "How to remove 40 stain types at home and when to call The Swiss Laundry. Advice on curry, blood, wine, oil, ink and more. Kolkata dry cleaning since 2013.",
  "keywords": "",
  "robots": "index,follow,max-snippet:-1,max-image-preview:large",
  "canonical": "https://www.theswisslaundry.com/stain-removal",
  "hreflangs": [
    {
      "hreflang": "en-IN",
      "href": "https://www.theswisslaundry.com/stain-removal"
    }
  ],
  "og": {
    "title": "Stain Removal Guide — 40 Stains | The Swiss Laundry",
    "description": "How to remove curry, blood, wine, oil, ink and 35 more stains — and when to call us. From The Swiss Laundry, Kolkata.",
    "url": "https://www.theswisslaundry.com/stain-removal",
    "image": "https://www.theswisslaundry.com/images/og-stain-removal.svg",
    "image:width": "1200",
    "image:height": "630",
    "site_name": "The Swiss Laundry",
    "type": "article",
    "locale": "en_IN"
  },
  "geo": {
    "region": "IN-WB",
    "placename": "Kolkata"
  },
  "jsonLd": [
    [
      {
        "@context": "https://schema.org",
        "@type": "Article",
        "headline": "The Complete Stain Removal Guide | The Swiss Laundry Kolkata",
        "description": "Professional advice on removing 40 types of stains. Know when to treat at home and when to call The Swiss Laundry.",
        "author": {
          "@type": "Organization",
          "name": "The Swiss Laundry",
          "url": "https://www.theswisslaundry.com"
        },
        "publisher": {
          "@type": "Organization",
          "name": "The Swiss Laundry",
          "logo": {
            "@type": "ImageObject",
            "url": "https://www.theswisslaundry.com/images/logo.svg"
          }
        },
        "datePublished": "2024-01-01",
        "dateModified": "2026-05-19",
        "mainEntityOfPage": {
          "@type": "WebPage",
          "@id": "https://www.theswisslaundry.com/stain-removal"
        },
        "inLanguage": "en-IN"
      },
      {
        "@context": "https://schema.org",
        "@type": "HowTo",
        "name": "How to Remove Stains from Fabric",
        "description": "Step-by-step stain removal with clear guidance on when professional dry cleaning is needed.",
        "step": [
          {
            "@type": "HowToStep",
            "name": "Act immediately",
            "text": "Treat the stain as quickly as possible. The longer it sits, the harder it becomes — and the more likely it will need professional treatment."
          },
          {
            "@type": "HowToStep",
            "name": "Identify the stain type",
            "text": "Oil-based, protein-based, and tannin stains need different treatments. Misidentifying a stain is the most common reason home treatment fails."
          },
          {
            "@type": "HowToStep",
            "name": "Check the care label",
            "text": "Silk, wool, embroidered and structured garments should go straight to a dry cleaner. Home treatment on these fabrics causes irreversible damage."
          },
          {
            "@type": "HowToStep",
            "name": "Treat carefully",
            "text": "Blot from outside in. Never rub. Use cold water on protein stains. Test any solution on a hidden area first."
          },
          {
            "@type": "HowToStep",
            "name": "Know your limits",
            "text": "If the stain is set, the fabric is delicate, or you are unsure — stop. Incorrect treatment permanently sets stains. The Swiss Laundry team can assess any stain."
          }
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "FAQPage",
        "mainEntity": [
          {
            "@type": "Question",
            "name": "Can all stains be removed at home?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "No. Many stains can be reduced at home if treated immediately. But set stains, delicate fabrics, and certain stain types require professional dry cleaning. Attempting home treatment on the wrong fabric or with the wrong method can make a stain permanent."
            }
          },
          {
            "@type": "Question",
            "name": "When should I take a stained garment to a dry cleaner?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Immediately for silk, wool, embroidered, or heavily structured garments. Also for any stain older than 24 hours, any stain you cannot identify, and any stain that home treatment has not shifted. The Swiss Laundry offers doorstep pickup across Kolkata."
            }
          },
          {
            "@type": "Question",
            "name": "Should I use hot or cold water on stains?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Always cold water on protein stains — blood, egg, dairy, sweat. Hot water permanently sets protein. For oil and tannin stains, warm water is fine. When unsure, cold water is always the safer choice."
            }
          },
          {
            "@type": "Question",
            "name": "Does rubbing a stain make it worse?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Yes. Rubbing spreads the stain, pushes it deeper into the fibres, and can damage the surface of the fabric. Always blot from the outside edge towards the centre with a clean white cloth."
            }
          },
          {
            "@type": "Question",
            "name": "How do I remove curry or turmeric stains?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Scrape off solids, flush with cold water from the back of the fabric, and apply liquid dish soap. Rinse and leave in sunlight. However, turmeric on silk or wool should go to a dry cleaner immediately — it is one of the most damaging stains on delicate fabric."
            }
          }
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Home",
            "item": "https://www.theswisslaundry.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Guides",
            "item": "https://www.theswisslaundry.com/stain-removal"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Stain Removal Guide",
            "item": "https://www.theswisslaundry.com/stain-removal"
          }
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "LocalBusiness",
        "name": "The Swiss Laundry",
        "telephone": "+919836233354",
        "address": {
          "@type": "PostalAddress",
          "streetAddress": "P-4 Kasba Industrial Estate, Phase III, E.M. Bypass (East)",
          "addressLocality": "Kolkata",
          "addressRegion": "West Bengal",
          "postalCode": "700107",
          "addressCountry": "IN"
        },
        "url": "https://www.theswisslaundry.com",
        "openingHours": "Mo-Sa 10:00-17:00"
      },
      {
        "@context": "https://schema.org",
        "@type": "SpeakableSpecification",
        "cssSelector": [
          "h1",
          ".lh-meta",
          ".legal-intro",
          ".chapter-title",
          ".pro-trigger"
        ]
      }
    ]
  ],
  "styleCss": "[data-reveal]{opacity:1!important;transform:none!important}\n[data-reveal]{opacity:1!important;transform:none!important}\n/* NAV */\nnav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:0 3rem;height:70px;transition:background 0.5s,border-color 0.5s,box-shadow 0.5s;border-bottom:0.5px solid transparent}\nnav.on-dark{background:rgba(12,11,10,0.2);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom-color:rgba(255,255,255,0.07)}\nnav.on-light{background:rgba(245,240,232,0.97);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom-color:rgba(0,0,0,0.08);box-shadow:0 2px 28px rgba(0,0,0,0.07)}\n.nav-logo a{display:block;line-height:0}\n.nav-logo img{height:46px;width:auto;display:block}\n\n\nnav.on-dark \nnav.on-dark \nnav.on-light \nnav.on-light \n.nav-right{display:flex;align-items:center;gap:0.7rem;flex-shrink:0}\n.btn-track{font-family:var(--sans);font-size:9px;letter-spacing:0.15em;text-transform:uppercase;text-decoration:none;padding:9px 20px;transition:all 0.3s;white-space:nowrap}.btn-connect{font-family:var(--sans);font-size:9px;letter-spacing:0.15em;text-transform:uppercase;text-decoration:none;padding:9px 20px;transition:all 0.3s;white-space:nowrap}\nnav.on-dark .btn-track{border:1px solid rgba(255,255,255,0.35);color:rgba(255,255,255,0.9)}.btn-connect{border:1px solid rgba(255,255,255,0.35);color:rgba(255,255,255,0.9)}\nnav.on-dark .btn-track:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,0.08)}.btn-connect:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,0.08)}\nnav.on-light .btn-track{border:1px solid rgba(192,65,90,0.5);color:var(--pink)}.btn-connect{border:1px solid rgba(192,65,90,0.5);color:var(--pink)}\nnav.on-light .btn-track:hover{border-color:var(--pink);background:rgba(192,65,90,0.05)}.btn-connect:hover{border-color:var(--pink);background:rgba(192,65,90,0.05)}\n.btn-book{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:0.15em;text-transform:uppercase;text-decoration:none;padding:10px 22px;background:var(--pink);color:#fff;border:1px solid var(--pink);transition:background 0.25s;white-space:nowrap}\n.btn-book:hover{background:var(--pink2);border-color:var(--pink2)}\n\n\nnav.on-dark \nnav.on-light \n.mob-menu{display:none;position:fixed;top:70px;left:0;right:0;background:var(--cream);z-index:199;flex-direction:column;border-bottom:0.5px solid rgba(0,0,0,0.1);box-shadow:0 8px 24px rgba(0,0,0,0.08)}\n.mob-menu.open{display:flex}\n.mob-menu a{font-family:var(--sans);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--dark2);text-decoration:none;padding:1rem 2rem;border-bottom:0.5px solid rgba(0,0,0,0.07);transition:color 0.2s}\n.mob-menu a:hover{color:var(--pink)}\n.mob-menu .mob-track{color:var(--pink)}\n.mob-menu .mob-book{background:var(--pink);color:#fff;text-align:center;border-bottom:none;font-weight:500}\n.mob-menu .mob-book:hover{background:var(--pink2);color:#fff}\n/* ═══════════════════════════════════════\n   THE SWISS LAUNDRY — /stain-removal\n   ═══════════════════════════════════════ */\n*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}\n*{-webkit-tap-highlight-color:transparent}\n:root{\n  --cream:#F5F0E8;--dark:#0c0b0a;--dark2:#1a1918;\n  --pink:#C0415A;--pink2:#a8324a;\n  --gold:#C9A84C;--gold-l:#E2C97E;\n  --serif:'Cormorant Garamond',Georgia,serif;\n  --sans:'Jost','Helvetica Neue',Arial,sans-serif;\n  --bg:#1a1918;--bg2:#201e1d;\n  --surf:rgba(255,255,255,.05);--surf-b:rgba(255,255,255,.1);\n  --txt:#fff;--txt2:rgba(255,255,255,.82);--txt3:rgba(255,255,255,.55);\n}\n/* theme: dark default */\n:root{--bg:#1a1918;--bg2:#201e1d;--surf:rgba(255,255,255,.05);--surf-b:rgba(255,255,255,.1);--txt:#fff;--txt2:rgba(255,255,255,.82);--txt3:rgba(255,255,255,.55);}\n@media(prefers-color-scheme:light){\n  :root{--bg:#F5F0E8;--bg2:#EDE7D9;--surf:#fff;--surf-b:rgba(26,25,24,.1);--txt:#1a1918;--txt2:#3d3a36;--txt3:#7a7168;}\n}\nhtml{scroll-behavior:smooth;overflow-x:hidden}\nbody{font-family:var(--sans);background:var(--bg);color:var(--txt);overflow-x:hidden;-webkit-font-smoothing:antialiased}\n::-webkit-scrollbar{width:4px}\n::-webkit-scrollbar-thumb{background:rgba(201,168,76,.3);border-radius:2px}\n:focus-visible{outline:2px solid var(--gold);outline-offset:3px}\n.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}\n.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:var(--gold);color:var(--dark);padding:.5rem 1rem;z-index:9999;border-radius:4px}\nbody::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.018;background-image:url(\"data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E\");background-size:128px;mix-blend-mode:multiply}\n.scroll-bar{position:fixed;top:0;left:0;height:3px;background:var(--gold);z-index:9999;width:0}\n.read-progress{position:fixed;top:0;left:0;height:2px;background:var(--pink);z-index:10000;width:0;transition:width .1s linear}\n[data-reveal]{transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)}\n.seo-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}\n\n/* Hero */\n.legal-hero{background:var(--dark2);padding:10rem 6rem 5rem;position:relative;overflow:hidden}\n.lh-ghost{position:absolute;right:-2rem;top:50%;transform:translateY(-50%);font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(120px,18vw,240px);color:rgba(255,255,255,.025);line-height:1;pointer-events:none;user-select:none;white-space:nowrap}\n.lh-inner{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;max-width:1100px;margin:0 auto}\n.lh-left{flex:1}\n.lh-eye{font-family:var(--sans);font-size:9px;letter-spacing:.38em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:.6rem;margin-bottom:1.2rem}\n.lh-eye::before{content:'';width:24px;height:.5px;background:var(--gold)}\n.lh-title{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(44px,7vw,88px);color:#fff;line-height:.95;letter-spacing:-.03em;margin-bottom:1.5rem}\n.lh-title em{color:var(--gold)}\n.lh-meta{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.3)}\n.lh-right{text-align:right;font-family:var(--sans);font-size:12px;font-weight:300;line-height:1.9;color:rgba(255,255,255,.35);flex-shrink:0}\n.lh-right strong{color:rgba(255,255,255,.6);font-weight:400;display:block}\n.legal-threshold{width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(201,168,76,.5) 50%,transparent)}\n\n/* Layout */\n.page-wrap{background:var(--bg);padding:0 6rem}\n.legal-outer{display:grid;grid-template-columns:260px 1fr;max-width:1100px;margin:0 auto;padding:5rem 2rem 8rem;gap:4rem;align-items:start}\n\n/* Sidebar */\n.legal-sidebar{position:sticky;top:88px;max-height:calc(100vh - 110px);overflow-y:auto;scrollbar-width:none}\n.legal-sidebar::-webkit-scrollbar{width:0}\n.sidebar-label{font-family:var(--sans);font-size:8px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--txt3);margin-bottom:1rem;display:block}\n.toc-list{list-style:none;display:flex;flex-direction:column;gap:.15rem}\n.toc-link{font-family:var(--sans);font-size:12px;font-weight:300;color:var(--txt3);text-decoration:none;display:flex;align-items:center;gap:.6rem;padding:.35rem .5rem;border-radius:4px;transition:color .2s,background .2s;line-height:1.4;border-left:2px solid transparent}\n.toc-link:hover{color:var(--txt);background:rgba(192,65,90,.04)}\n.toc-link.active{color:var(--pink);border-left-color:var(--pink);background:rgba(192,65,90,.04)}\n.toc-num{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--pink);flex-shrink:0;width:16px}\n.mob-sidebar-toggle{display:none}\n\n/* Sidebar CTA — persistent */\n.sidebar-cta{display:block;margin-top:2rem;padding:1.4rem;background:var(--dark2);border-radius:8px;text-decoration:none;transition:background .2s;border:.5px solid rgba(201,168,76,.2)}\n.sidebar-cta:hover{background:#252320;border-color:rgba(201,168,76,.4)}\n.sidebar-cta-eye{font-family:var(--sans);font-size:8px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:.3rem}\n.sidebar-cta-title{font-family:var(--serif);font-style:italic;font-weight:300;font-size:18px;color:#fff;display:block;margin-bottom:.3rem;line-height:1.2}\n.sidebar-cta-sub{font-family:var(--sans);font-size:10px;font-weight:300;color:rgba(255,255,255,.38);line-height:1.6;display:block;margin-bottom:.8rem}\n.sidebar-cta-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;background:var(--pink);color:#fff;font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:.65rem;border-radius:5px;transition:background .2s}\n.sidebar-cta:hover .sidebar-cta-btn{background:var(--pink2)}\n\n/* Content */\n.legal-content{max-width:700px}\n.legal-intro{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(16px,2vw,22px);line-height:1.7;color:var(--txt2);margin-bottom:3rem;padding-bottom:3rem;border-bottom:1px solid var(--surf-b)}\n\n/* Chapter */\n.chapter{margin-bottom:4.5rem;scroll-margin-top:100px}\n.chapter-header{display:flex;align-items:flex-start;gap:1.2rem;margin-bottom:1.2rem}\n.chapter-num{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(36px,4vw,52px);color:var(--pink);line-height:1;flex-shrink:0;width:52px}\n.chapter-title{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(22px,3vw,32px);color:var(--txt);line-height:1.1;padding-top:.4rem}\n.chapter-lead{font-family:var(--sans);font-size:13px;font-weight:300;color:var(--txt2);line-height:1.9;margin-bottom:1.5rem}\n.chapter-divider{width:100%;height:.5px;background:linear-gradient(90deg,var(--pink),transparent);margin-bottom:4.5rem;opacity:.25}\n\n/* Stain grid */\n.stain-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.8rem;margin-bottom:1.5rem}\n.stain-card{background:var(--surf);border:1px solid var(--surf-b);border-radius:8px;padding:1.2rem 1.4rem;transition:border-color .2s,box-shadow .2s}\n.stain-card:hover{border-color:rgba(192,65,90,.2);box-shadow:0 2px 12px rgba(26,25,24,.06)}\n@media(prefers-color-scheme:dark){\n  .stain-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}\n  .stain-card:hover{border-color:rgba(192,65,90,.25)}\n}\n.stain-name{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(16px,1.8vw,20px);color:var(--txt);display:flex;align-items:center;gap:.6rem;margin-bottom:.7rem;flex-wrap:wrap}\n.stain-badge{font-family:var(--sans);font-size:7px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding:.2rem .5rem;border-radius:3px;flex-shrink:0}\n.badge-fresh{background:rgba(37,211,102,.1);color:#1a8a3e}\n.badge-tough{background:rgba(192,65,90,.1);color:var(--pink)}\n.badge-delicate{background:rgba(201,168,76,.1);color:#8a6a1a}\n.stain-step{font-family:var(--sans);font-size:12px;font-weight:300;color:var(--txt2);line-height:1.8;padding-left:1rem;border-left:2px solid var(--surf-b);margin-bottom:.4rem}\n.stain-step:last-of-type{margin-bottom:.6rem}\n.stain-step strong{color:var(--txt);font-weight:400}\n\n/* Pro trigger — the upsell moment */\n.pro-trigger{display:flex;align-items:flex-start;gap:.6rem;margin-top:.6rem;padding:.65rem .9rem;background:rgba(192,65,90,.05);border:.5px solid rgba(192,65,90,.15);border-radius:6px}\n.pro-trigger-icon{font-size:13px;flex-shrink:0;margin-top:.1rem}\n.pro-trigger-text{font-family:var(--sans);font-size:11px;font-weight:300;color:var(--pink);line-height:1.6}\n.pro-trigger-text a{color:var(--pink);font-weight:500;text-decoration:underline;text-underline-offset:2px}\n\n/* Boxes */\n.tip-box,.warning-box,.note-box{border-radius:6px;padding:1.2rem 1.4rem;margin:1.5rem 0;display:flex;gap:1rem;align-items:flex-start}\n.tip-box{background:rgba(201,168,76,.07);border:.5px solid rgba(201,168,76,.2)}\n.warning-box{background:rgba(192,65,90,.06);border:.5px solid rgba(192,65,90,.2)}\n.note-box{background:rgba(26,25,24,.04);border:.5px solid rgba(26,25,24,.1)}\n@media(prefers-color-scheme:dark){\n  .tip-box{background:rgba(201,168,76,.06);border-color:rgba(201,168,76,.15)}\n  .warning-box{background:rgba(192,65,90,.08);border-color:rgba(192,65,90,.2)}\n  .note-box{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}\n}\n.box-icon{font-size:18px;flex-shrink:0;margin-top:.1rem}\n.box-title{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--txt3);display:block;margin-bottom:.3rem}\n.tip-box .box-title{color:rgba(201,168,76,.8)}\n.warning-box .box-title{color:var(--pink)}\n.box-body{font-family:var(--sans);font-size:13px;font-weight:300;color:var(--txt2);line-height:1.8}\n.box-body a{color:var(--pink);text-decoration:none;font-weight:400}\n.box-body a:hover{text-decoration:underline}\n\n/* Reference table */\n.rule-table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-family:var(--sans);font-size:12px}\n.rule-table th{font-size:8px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--txt3);padding:.8rem 1rem;border-bottom:1px solid var(--surf-b);text-align:left}\n.rule-table td{padding:.7rem 1rem;border-bottom:1px solid var(--surf-b);color:var(--txt2);font-weight:300;line-height:1.6;vertical-align:top}\n.rule-table tr:last-child td{border-bottom:none}\n.rule-table tr:hover td{background:rgba(192,65,90,.02)}\n@media(prefers-color-scheme:dark){\n  .rule-table th,.rule-table td{border-color:rgba(255,255,255,.07)}\n  .rule-table td{color:rgba(255,255,255,.65)}\n}\n.td-name{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--txt);font-weight:300}\n.td-us{color:var(--pink);font-style:italic;font-size:11px}\n\n/* Chapter-level pro pull */\n.chapter-pro{margin-top:1.5rem;padding:1.4rem 1.6rem;background:var(--dark2);border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}\n.chapter-pro-text{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(15px,1.8vw,19px);color:#fff;line-height:1.3}\n.chapter-pro-text span{color:var(--gold)}\n.chapter-pro-links{display:flex;gap:.6rem;flex-shrink:0;flex-wrap:wrap}\n.pro-link-pill{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;padding:.6rem 1.1rem;border-radius:4px;text-decoration:none;transition:all .2s;white-space:nowrap}\n.pro-link-pink{background:var(--pink);color:#fff}\n.pro-link-pink:hover{background:var(--pink2)}\n.pro-link-ghost{background:rgba(255,255,255,.08);color:rgba(255,255,255,.7);border:.5px solid rgba(255,255,255,.15)}\n.pro-link-ghost:hover{background:rgba(255,255,255,.14)}\n\n/* FAQ */\n.guide-faq{margin-top:2rem}\n.gfaq-item{border-bottom:.5px solid var(--surf-b)}\n.gfaq-item:first-of-type{border-top:.5px solid var(--surf-b)}\n.gfaq-q{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(14px,1.6vw,18px);color:var(--txt);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:none;border:none;width:100%;text-align:left;padding:.75rem 0;transition:color .2s}\n.gfaq-q:hover,.gfaq-item.open .gfaq-q{color:var(--pink)}\n.gfaq-icon{width:16px;height:16px;color:var(--txt3);flex-shrink:0;transition:transform .3s,color .2s}\n.gfaq-item.open .gfaq-icon{transform:rotate(45deg);color:var(--pink)}\n.gfaq-a{display:none;font-family:var(--sans);font-size:13px;font-weight:300;line-height:1.9;color:var(--txt2);padding-bottom:1rem}\n.gfaq-item.open .gfaq-a{display:block}\n\n/* Helpful */\n.helpful-block{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:1.2rem 0;margin-top:2rem;border-top:1px solid var(--surf-b)}\n.helpful-label{font-family:var(--sans);font-size:12px;font-weight:300;color:var(--txt3)}\n.helpful-btn{font-family:var(--sans);font-size:10px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;padding:.4rem 1rem;border-radius:4px;cursor:pointer;border:.5px solid rgba(128,128,128,.2);background:none;color:var(--txt3);transition:all .2s}\n.helpful-btn:hover,.helpful-btn.active{border-color:var(--pink);color:var(--pink);background:rgba(192,65,90,.05)}\n.helpful-thanks{font-family:var(--sans);font-size:11px;color:var(--pink);display:none}\n.helpful-thanks.show{display:block}\n\n/* WA share */\n.wa-share{display:inline-flex;align-items:center;gap:.5rem;background:#25D366;color:#fff;font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;padding:.65rem 1.2rem;border-radius:6px;text-decoration:none;transition:background .2s}\n.wa-share:hover{background:#1da851}\n.wa-share svg{width:14px;height:14px;flex-shrink:0}\n.reading-time{font-family:var(--sans);font-size:10px;font-weight:300;color:var(--txt3);letter-spacing:.08em;display:inline-flex;align-items:center;gap:.35rem}\n\n/* WA float */\n.wa-float{position:fixed;bottom:2rem;right:2rem;width:56px;height:56px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:9990;box-shadow:0 4px 20px rgba(37,211,102,.4);transition:transform .3s,box-shadow .3s;text-decoration:none}\n.wa-float:hover{transform:scale(1.1) translateY(-2px);box-shadow:0 8px 30px rgba(37,211,102,.5)}\n.wa-float svg{width:28px;height:28px;fill:#fff}\n.wa-float::before{content:'';position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(37,211,102,.4);animation:waPulse 2.5s ease-out infinite}\n@keyframes waPulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.5);opacity:0}}\n.wa-tooltip{position:absolute;right:68px;background:#1a1918;color:#fff;font-family:var(--sans);font-size:11px;letter-spacing:.08em;white-space:nowrap;padding:6px 12px;border-radius:4px;opacity:0;transform:translateX(8px);transition:opacity .3s,transform .3s;pointer-events:none}\n.wa-float:hover .wa-tooltip{opacity:1;transform:translateX(0)}\n\n/* Responsive */\n@media(max-width:900px){\n  .legal-hero{padding:8rem 5vw 4rem}\n  .lh-inner{flex-direction:column;align-items:flex-start}\n  .lh-right{text-align:left}\n  .lh-ghost{font-size:18vw;right:-1rem}\n  .legal-outer{grid-template-columns:1fr;padding:3rem 5vw 6rem;gap:0}\n  .legal-sidebar{position:static;max-height:none;margin-bottom:2rem}\n  .mob-sidebar-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--surf);border:1px solid var(--surf-b);border-radius:6px;padding:.8rem 1rem;cursor:pointer;margin-bottom:1rem;font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--txt3)}\n  .mob-sidebar-toggle svg{width:14px;height:14px;transition:transform .3s}\n  .mob-sidebar-toggle.open svg{transform:rotate(180deg)}\n  .toc-list,.sidebar-label{display:none}\n  .toc-list.open,.sidebar-label.open{display:flex}\n  .legal-content{max-width:100%}\n  .stain-grid{grid-template-columns:1fr}\n  .page-wrap{padding:0 5vw}\n  .chapter-pro{flex-direction:column;gap:1rem}\n}\n@media(max-width:640px){\n  .rule-table{font-size:11px}\n  .rule-table th,.rule-table td{padding:.55rem .6rem}\n}\n\n/* ═══════════════════════════════════════════════\n   GLOBAL FEATURES — added to every page\n   ═══════════════════════════════════════════════ */\n\n/* ── Sticky booking pill (mobile only) ── */\n.book-pill{\n  display:none;\n  position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);\n  background:var(--pink);color:#fff;\n  font-family:var(--sans);font-size:10px;font-weight:500;\n  letter-spacing:.18em;text-transform:uppercase;\n  padding:.75rem 1.8rem;border-radius:30px;\n  text-decoration:none;white-space:nowrap;\n  box-shadow:0 4px 20px rgba(192,65,90,.4);\n  z-index:9985;\n  animation:pillIn .4s cubic-bezier(.16,1,.3,1);\n  transition:opacity .3s,transform .3s;\n}\n.book-pill:hover{background:var(--pink2,#a8324a);transform:translateX(-50%) translateY(-2px)}\n.book-pill.hidden{opacity:0;pointer-events:none;transform:translateX(-50%) translateY(8px)}\n@keyframes pillIn{from{opacity:0;transform:translateX(-50%) translateY(16px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}\n@media(max-width:768px){.book-pill{display:flex;align-items:center;gap:.5rem}}\n/* Hide pill on the pickup page itself */\nbody.page-pickup .book-pill{display:none!important}\n\n/* ── Seasonal banner ── */\n.seasonal-banner{\n  background:var(--dark2,#1a1918);color:rgba(255,255,255,.75);\n  font-family:var(--sans);font-size:10px;font-weight:400;letter-spacing:.08em;\n  text-align:center;padding:.45rem 3rem;position:relative;z-index:10000;\n  border-bottom:.5px solid rgba(255,255,255,.08);\n}\n.seasonal-banner a{color:var(--gold,#C9A84C);text-decoration:none;margin-left:.5rem;font-weight:500}\n.seasonal-banner a:hover{text-decoration:underline}\n.banner-close{position:absolute;right:1rem;top:50%;transform:translateY(-50%);\n  background:none;border:none;color:rgba(255,255,255,.4);cursor:pointer;\n  font-size:14px;line-height:1;padding:.2rem;transition:color .2s}\n.banner-close:hover{color:#fff}\n.seasonal-banner.hidden{display:none}\n@media(prefers-color-scheme:light){\n  .seasonal-banner{background:var(--dark2,#1a1918)}\n}\n\n/* ── Dark/light toggle in nav ── */\n.theme-toggle{\n  width:32px;height:32px;border-radius:50%;\n  background:none;border:.5px solid rgba(128,128,128,.25);\n  cursor:pointer;display:flex;align-items:center;justify-content:center;\n  transition:border-color .2s,background .2s;flex-shrink:0;\n}\n.theme-toggle:hover{border-color:var(--gold,#C9A84C);background:rgba(201,168,76,.08)}\n.theme-toggle svg{width:14px;height:14px;transition:opacity .2s}\n.theme-toggle .icon-dark{display:block}\n.theme-toggle .icon-light{display:none}\n[data-theme=\"light\"] .theme-toggle .icon-dark{display:none}\n[data-theme=\"light\"] .theme-toggle .icon-light{display:block}\n\n/* ── Google rating badge in footer ── */\n.g-rating-badge{\n  display:inline-flex;align-items:center;gap:.5rem;\n  text-decoration:none;\n  font-family:var(--sans);\n  padding:.5rem .8rem;\n  border-radius:6px;\n  border:.5px solid rgba(255,255,255,.12);\n  background:rgba(255,255,255,.04);\n  transition:border-color .2s,background .2s;\n  margin-bottom:.8rem;\n}\n.g-rating-badge:hover{border-color:rgba(201,168,76,.3);background:rgba(201,168,76,.05)}\n.g-rating-stars{color:#FBBC04;font-size:13px;letter-spacing:.05em;line-height:1}\n.g-rating-num{font-family:var(--sans);font-size:13px;font-weight:500;color:#fff}\n.g-rating-label{font-family:var(--sans);font-size:9px;font-weight:300;\n  color:rgba(255,255,255,.45);letter-spacing:.08em}\n.g-rating-logo{font-family:var(--sans);font-size:9px;font-weight:700;\n  color:#4285F4;letter-spacing:-.02em}\n@media(prefers-color-scheme:light){\n  .g-rating-badge{border-color:rgba(26,25,24,.12);background:#fff}\n  .g-rating-num{color:#1a1918}\n  .g-rating-label{color:rgba(26,25,24,.45)}\n}\n\n/* ── WhatsApp share button (blogs/guides) ── */\n.wa-share{\n  display:inline-flex;align-items:center;gap:.5rem;\n  background:#25D366;color:#fff;\n  font-family:var(--sans);font-size:9px;font-weight:500;\n  letter-spacing:.15em;text-transform:uppercase;\n  padding:.65rem 1.2rem;border-radius:6px;text-decoration:none;\n  transition:background .2s;\n}\n.wa-share:hover{background:#1da851}\n.wa-share svg{width:14px;height:14px;flex-shrink:0}\n\n/* ── Reading time indicator ── */\n.reading-time{\n  font-family:var(--sans);font-size:10px;font-weight:300;\n  color:var(--txt3,rgba(255,255,255,.4));letter-spacing:.08em;\n  display:inline-flex;align-items:center;gap:.35rem;\n}\n.reading-time svg{width:11px;height:11px;opacity:.6}\n\n/* ── Was this helpful ── */\n.helpful-block{\n  display:flex;align-items:center;gap:1rem;flex-wrap:wrap;\n  padding:1.2rem 0;margin-top:2rem;\n  border-top:1px solid rgba(128,128,128,.12);\n}\n.helpful-label{font-family:var(--sans);font-size:12px;font-weight:300;\n  color:var(--txt3,rgba(255,255,255,.4))}\n.helpful-btn{\n  font-family:var(--sans);font-size:10px;font-weight:400;letter-spacing:.1em;\n  text-transform:uppercase;padding:.4rem 1rem;border-radius:4px;cursor:pointer;\n  border:.5px solid rgba(128,128,128,.2);background:none;\n  color:var(--txt3,rgba(255,255,255,.4));transition:all .2s;\n}\n.helpful-btn:hover,.helpful-btn.active{\n  border-color:var(--pink);color:var(--pink);background:rgba(192,65,90,.06)}\n.helpful-thanks{font-family:var(--sans);font-size:11px;color:var(--pink);display:none}\n.helpful-thanks.show{display:block}\n\n/* ── Page reading progress (long guides) ── */\n.read-progress{\n  position:fixed;top:0;left:0;height:2px;\n  background:var(--gold,#C9A84C);z-index:9999;width:0;\n  transition:width .1s linear;\n}\n/* FOOTER */\n/* ═══ FOOTER BASE ═══ */\n.site-footer{\n  background:#0a0906;\n  position:relative;\n}\n\n/* ── CONTACT FORM STRIP ── */\n.footer-form-strip{\n  border-bottom:0.5px solid rgba(201,168,76,0.1);\n  padding:5rem 4rem;\n  background:rgba(255,255,255,0.01);\n}\n.footer-form-wrap{\n  max-width:1000px;\n  margin:0 auto;\n}\n.footer-form-header{\n  margin-bottom:2.5rem;\n}\n.footer-form-eye{\n  font-family:var(--sans);font-size:9px;\n  letter-spacing:0.32em;text-transform:uppercase;\n  color:var(--gold);margin-bottom:0.8rem;\n}\n.footer-form-title{\n  font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(20px,2.5vw,32px);\n  color:#fff;line-height:1.3;letter-spacing:-0.01em;\n}\n\n/* Form grid */\n.footer-form-row{\n  display:grid;\n  grid-template-columns:repeat(4,1fr);\n  gap:1rem;\n  margin-bottom:1rem;\n}\n.footer-form-field{\n  display:flex;flex-direction:column;gap:0.4rem;\n}\n.footer-form-field-full{\n  margin-bottom:1.2rem;\n}\n.footer-form-label{\n  font-family:var(--sans);font-size:9px;\n  letter-spacing:0.18em;text-transform:uppercase;\n  color:rgba(255,255,255,0.4);\n}\n.footer-form input,\n.footer-form select,\n.footer-form textarea{\n  background:rgba(255,255,255,0.04);\n  border:0.5px solid rgba(255,255,255,0.1);\n  color:#fff;\n  font-family:var(--sans);font-size:13px;font-weight:300;\n  padding:10px 14px;\n  outline:none;\n  transition:border-color 0.3s,background 0.3s;\n  width:100%;\n  appearance:none;\n  -webkit-appearance:none;\n}\n.footer-form input::placeholder,\n.footer-form textarea::placeholder{\n  color:rgba(255,255,255,0.2);\n}\n.footer-form input:focus,\n.footer-form select:focus,\n.footer-form textarea:focus{\n  border-color:rgba(201,168,76,0.5);\n  background:rgba(255,255,255,0.06);\n}\n.footer-form select{\n  background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='rgba(201,168,76,0.6)'/%3E%3C/svg%3E\");\n  background-repeat:no-repeat;\n  background-position:right 14px center;\n  padding-right:32px;\n  cursor:pointer;\n}\n.footer-form select option{\n  background:#1a1918;color:#fff;\n}\n.footer-form textarea{\n  resize:vertical;min-height:80px;\n}\n\n/* Submit row */\n.footer-form-submit-row{\n  display:flex;align-items:center;\n  justify-content:space-between;\n  gap:1rem;flex-wrap:wrap;\n}\n.footer-form-legal{\n  font-family:var(--sans);font-size:10px;\n  color:rgba(255,255,255,0.2);line-height:1.6;\n}\n.footer-form-legal a{\n  color:rgba(255,255,255,0.35);\n  text-decoration:none;\n}\n.footer-form-btn{\n  display:inline-flex;align-items:center;gap:0.6rem;\n  background:var(--pink);border:none;cursor:pointer;\n  font-family:var(--sans);font-size:10px;\n  font-weight:500;letter-spacing:0.2em;text-transform:uppercase;\n  color:#fff;padding:12px 28px;\n  transition:background 0.25s,gap 0.3s;\n  white-space:nowrap;\n}\n.footer-form-btn:hover{background:var(--pink2);gap:0.9rem}\n.footer-form-btn-arrow{\n  display:inline-block;transition:transform 0.3s;\n}\n.footer-form-btn:hover .footer-form-btn-arrow{transform:translateX(4px)}\n\n/* Success message */\n.footer-form-success{\n  padding:1rem 0;\n  font-family:var(--serif);font-style:italic;\n  font-size:16px;color:var(--gold-l);\n}\n\n/* ── MAIN COLUMNS ── */\n.footer-main{\n  display:grid;\n  grid-template-columns:1.5fr 1fr 1fr 1.2fr;\n  gap:3rem;\n  max-width:1200px;margin:0 auto;\n  padding:5rem 4rem;\n  border-bottom:0.5px solid rgba(201,168,76,0.1);\n}\n\n/* Brand col */\n.footer-logo{\n  display:block;height:40px;width:auto;\n  margin-bottom:1.6rem;\n  opacity:0.85;\n}\n.footer-seo-text{\n  font-family:var(--sans);font-size:11px;\n  font-weight:300;line-height:1.85;\n  color:rgba(255,255,255,0.38);\n  margin-bottom:2rem;\n}\n\n/* Chotusingh */\n.footer-chotu{\n  margin-bottom:1.2rem;\n}\n.footer-chotu-img{\n  display:block;height:100px;width:auto;\n  object-fit:contain;\n  mix-blend-mode:lighten;\n  filter:brightness(1.1) contrast(1.05);\n  margin-bottom:0.4rem;\n}\n.footer-chotu-line{\n  font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:11px;color:rgba(255,255,255,0.22);\n  line-height:1.5;\n}\n\n/* Nav cols */\n.footer-col{\n  display:flex;flex-direction:column;\n}\n.footer-col-brand{\n  display:flex;\n  flex-direction:column;\n}\n.footer-col-title{\n  font-family:var(--sans);font-size:9px;\n  font-weight:500;letter-spacing:0.28em;text-transform:uppercase;\n  color:var(--gold);\n  margin-bottom:1.4rem;\n  padding-bottom:0.8rem;\n  border-bottom:0.5px solid rgba(201,168,76,0.15);\n}\n.footer-links{\n  list-style:none;\n  display:flex;flex-direction:column;gap:0.65rem;\n}\n.footer-links a{\n  font-family:var(--sans);font-size:12px;font-weight:300;\n  color:rgba(255,255,255,0.42);text-decoration:none;\n  transition:color 0.3s ease, padding-left 0.3s ease;\n  line-height:1.4;display:block;\n}\n.footer-links a:hover{\n  color:rgba(255,255,255,0.85);\n  padding-left:4px;\n}\n\n/* Contact col */\n.footer-col-contact{\n  justify-content:space-between;\n  display:flex;\n  flex-direction:column;\n}\n.footer-col-contact .footer-apps{\n  margin-top:auto;\n}\n.footer-contact-item{margin-bottom:1.1rem}\n.footer-contact-lbl{\n  display:block;\n  font-family:var(--sans);font-size:8px;\n  letter-spacing:0.22em;text-transform:uppercase;\n  color:var(--gold);opacity:0.65;margin-bottom:0.25rem;\n}\n.footer-address{\n  font-family:var(--sans);font-size:11px;font-weight:300;\n  line-height:1.7;color:rgba(255,255,255,0.38);\n  font-style:normal;\n}\n.footer-contact-val{\n  display:block;\n  font-family:var(--sans);font-size:12px;font-weight:300;\n  color:rgba(255,255,255,0.42);text-decoration:none;\n  line-height:1.7;transition:color 0.25s;\n}\na.footer-contact-val:hover{color:rgba(255,255,255,0.8)}\n\n/* Social */\n.footer-social{\n  display:flex;gap:0.6rem;flex-wrap:wrap;\n  margin-top:1.2rem;margin-bottom:1.6rem;\n}\n.footer-social-ico{\n  width:32px;height:32px;\n  border:0.5px solid rgba(255,255,255,0.12);\n  display:flex;align-items:center;justify-content:center;\n  color:rgba(255,255,255,0.4);text-decoration:none;\n  transition:border-color 0.3s,color 0.3s;\n}\n.footer-social-ico:hover{\n  border-color:rgba(201,168,76,0.5);color:var(--gold-l);\n}\n.footer-social-ico svg{width:14px;height:14px}\n.footer-social-wa:hover{\n  border-color:rgba(37,211,102,0.5);color:#25D366;\n}\n\n/* App badges */\n.footer-apps{margin-top:auto}\n.footer-apps-label{\n  font-family:var(--sans);font-size:8px;\n  letter-spacing:0.22em;text-transform:uppercase;\n  color:var(--gold);opacity:0.65;margin-bottom:0.8rem;\n}\n.footer-apps-row{display:flex;flex-direction:column;gap:0.5rem}\n.footer-app-badge{\n  display:block;text-decoration:none;\n  border:0.5px solid rgba(255,255,255,0.15);\n  padding:8px 14px;\n  transition:border-color 0.3s,background 0.3s;\n}\n.footer-app-badge:hover{\n  border-color:rgba(201,168,76,0.4);\n  background:rgba(255,255,255,0.03);\n}\n.footer-app-inner{\n  display:flex;align-items:center;gap:10px;\n}\n.footer-app-icon{\n  font-size:22px;color:#fff;\n  line-height:1;flex-shrink:0;\n}\n.footer-app-text{\n  display:flex;flex-direction:column;gap:1px;\n}\n.footer-app-sub{\n  font-family:var(--sans);font-size:8px;\n  color:rgba(255,255,255,0.45);letter-spacing:0.06em;\n}\n.footer-app-name{\n  font-family:var(--sans);font-size:13px;\n  font-weight:500;color:#fff;letter-spacing:0.02em;\n}\n\n/* Legal strip */\n.footer-legal{\n  background:#070604;\n  padding:1.4rem 4rem;\n}\n.footer-legal-inner{\n  max-width:1200px;margin:0 auto;\n  display:flex;flex-direction:column;\n  align-items:center;gap:0.5rem;text-align:center;\n}\n.footer-legal-links{\n  display:flex;flex-wrap:wrap;align-items:center;\n  justify-content:center;gap:0.5rem;\n}\n.footer-legal-links a,\n.footer-legal-txt{\n  font-family:var(--sans);font-size:10px;\n  color:rgba(255,255,255,0.28);text-decoration:none;\n  transition:color 0.25s;\n}\n.footer-legal-links a:hover{color:rgba(255,255,255,0.6)}\n.footer-sep{color:rgba(255,255,255,0.18);font-size:10px}\n.footer-copyright{\n  font-family:var(--sans);font-size:10px;\n  color:rgba(255,255,255,0.18);line-height:1.6;\n}\n\n/* Mobile */\n@media(max-width:1024px){\n  .footer-form-row{grid-template-columns:1fr 1fr;}\n  .footer-main{grid-template-columns:1fr 1fr;padding:4rem 3rem;}\n  .footer-col-brand{grid-column:1/-1;}\n  .footer-form-strip{padding:4rem 3rem;}\n}\n@media(max-width:640px){\n  .footer-form-row{grid-template-columns:1fr;}\n  .footer-main{grid-template-columns:1fr;padding:3rem 1.5rem;gap:2.5rem;}\n  .footer-form-strip{padding:3rem 1.5rem;}\n  .footer-legal{padding:1.2rem 1.5rem;}\n  .footer-form-submit-row{flex-direction:column;align-items:flex-start;}\n  .footer-form-btn{width:100%;justify-content:center;}\n}\n\n\n\n\n\n/* ── Footer SEO text — hidden from visitors, present for Google ── */\n.footer-seo-hidden{\n  position:absolute !important;\n  width:1px !important;\n  height:1px !important;\n  overflow:hidden !important;\n  clip:rect(0,0,0,0) !important;\n  white-space:nowrap !important;\n  pointer-events:none !important;\n  visibility:hidden !important;\n  opacity:0 !important;\n  display:block !important;\n  font-size:0 !important;\n  line-height:0 !important;\n}\n/* ── Footer brand statement — visible, premium ── */\n.footer-brand-statement{\n  font-family:var(--serif);\n  font-style:italic;\n  font-weight:300;\n  font-size:clamp(14px,1.3vw,17px);\n  line-height:1.7;\n  color:rgba(255,255,255,0.45);\n  margin-bottom:1.8rem;\n}\n\n\n\n\n \n \n \n\n\n\n.back-to-top{\n  position:fixed;\n  bottom:2rem;\n  left:2rem;\n  width:44px;height:44px;\n  border:0.5px solid rgba(201,168,76,0.35);\n  display:flex;align-items:center;justify-content:center;\n  color:rgba(255,255,255,0.5);\n  background:rgba(12,11,10,0.85);\n  backdrop-filter:blur(8px);\n  text-decoration:none;\n  z-index:998;\n  opacity:0;\n  transform:translateY(8px);\n  transition:opacity 0.3s ease,transform 0.3s ease,\n             border-color 0.3s ease,color 0.3s ease;\n  pointer-events:none;\n}\n.back-to-top.visible{\n  opacity:1;\n  transform:translateY(0);\n  pointer-events:auto;\n}\n.back-to-top:hover{\n  border-color:rgba(201,168,76,0.7);\n  color:var(--gold-l);\n}\n.back-to-top svg{\n  width:16px;height:16px;\n}\n@media(max-width:768px){\n  .back-to-top{\n    bottom:5.5rem;\n    left:1rem;\n    width:40px;height:40px;\n  }\n}\n\n\n\n\n\n\n/* ── Compact contact ── */\n.footer-contact-compact{\n  display:flex;flex-direction:column;gap:0.55rem;\n  margin-bottom:1rem;\n}\n.footer-contact-row{\n  font-family:var(--sans);font-size:11px;font-weight:300;\n  color:rgba(255,255,255,0.42);line-height:1.5;\n  display:flex;align-items:baseline;gap:0.5rem;\n  flex-wrap:wrap;\n}\n.footer-contact-row a{\n  color:rgba(255,255,255,0.42);text-decoration:none;\n  transition:color 0.25s;\n}\n.footer-contact-row a:hover{color:rgba(255,255,255,0.8)}\n.fcc-lbl{font-size:10px;flex-shrink:0;opacity:0.6}\n.fcc-sep{opacity:0.35;margin:0 2px}\n\n/* ── App icon buttons ── */\n.footer-apps-row{\n  display:flex;gap:0.8rem;\n  flex-direction:row !important;\n}\n.footer-app-icon-btn{\n  display:flex;align-items:center;justify-content:center;\n  width:40px;height:40px;\n  border:0.5px solid rgba(255,255,255,0.15);\n  color:rgba(255,255,255,0.5);\n  text-decoration:none;\n  transition:border-color 0.3s,color 0.3s;\n}\n.footer-app-icon-btn:hover{\n  border-color:rgba(201,168,76,0.5);\n  color:var(--gold-l);\n}\n.footer-app-icon-btn svg{width:20px;height:20px}\n\n\n\n.footer-threshold{\n  width:100%;height:1px;\n  background:linear-gradient(90deg,\n    transparent,rgba(201,168,76,0.4) 50%,transparent);\n}\n\n\n</html\n.seo-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;pointer-events:none}\n.footer-form-btn-txt{font-family:'Jost',sans-serif;font-size:9px;font-weight:500;letter-spacing:0.22em;text-transform:uppercase}\n.footer-social-wa{display:inline-flex;align-items:center;gap:0.5rem;font-family:'Jost',sans-serif;font-size:11px;font-weight:300;color:rgba(255,255,255,0.5);transition:color 0.2s}\n.footer-social-wa:hover{color:#25D366}\n\n/* Pin toggle */\n.pin-toggle{\n  font-family:var(--sans);font-size:10px;font-weight:400;\n  letter-spacing:.12em;text-transform:uppercase;\n  color:rgba(201,168,76,.6);background:none;border:none;\n  cursor:pointer;padding:0;margin-bottom:1rem;\n  display:block;transition:color .2s;\n}\n.pin-toggle:hover{color:var(--gold);}\n#pinGrid[style*=\"display: grid\"]{display:grid!important;}\n\n/* ══ GARMENT CARE SYMBOLS — floating background ══ */\n.garment-bg{\n  position:absolute;inset:0;\n  pointer-events:none;overflow:hidden;\n  z-index:0;\n  opacity:.06; /* very subtle on light bg */\n}\n@media(prefers-color-scheme:dark){.garment-bg{opacity:.04}}\n\n.garment-symbol{\n  position:absolute;\n  font-size:clamp(20px,3vw,36px);\n  color:var(--pink);\n  animation:garmentFloat var(--gd,20s) ease-in-out infinite var(--gdelay,0s);\n  user-select:none;\n  line-height:1;\n}\n@keyframes garmentFloat{\n  0%   {transform:translateY(0) rotate(0deg);   opacity:0}\n  5%   {opacity:1}\n  45%  {transform:translateY(-18px) rotate(3deg);opacity:1}\n  55%  {transform:translateY(-18px) rotate(-3deg);opacity:1}\n  95%  {opacity:.8}\n  100% {transform:translateY(0) rotate(0deg);   opacity:0}\n}\n\n/* Sections that get the garment background */\n.how-section,.speed-section,.cov-section,.free-section,\n.app-section,.faq-section,.other-ways{position:relative;overflow:hidden}\n\n/* ── SECTION TEXT — explicit contrast on light bg ── */\n.how-h2,.speed-h2,.cov-h2,.free-h2,.app-h2,.faq-h2{color:var(--txt)}\n.how-title{color:var(--txt);font-size:clamp(18px,2vw,24px)}\n.how-desc,.speed-desc,.speed-note,.cov-lead,.cov-note,.app-body,.free-body,.faq-a{color:var(--txt2)}\n.speed-time{color:var(--pink)}\n.speed-name{color:var(--txt)}\n.eyebrow-m{color:var(--pink);opacity:1}\n.pin-num{color:var(--pink)}\n.pin-area{color:var(--txt2)}\n.thresh-val{color:var(--pink)}\n.thresh-lbl{color:var(--txt3)}\n.thresh-or{color:var(--txt3)}\n.ow-hl{color:var(--txt)}\n.ow-name{color:var(--txt)}\n.ow-detail{color:var(--txt3)}\n.ow-hours{background:rgba(192,65,90,.05);border-color:rgba(192,65,90,.15)}\n.ow-hours strong{color:var(--pink)}\n.app-feat{color:var(--txt2)}\n/* pin tag on cream */\n.pin-tag{background:rgba(26,25,24,.04);border-color:rgba(26,25,24,.1)}\n.pin-tag:hover{border-color:rgba(192,65,90,.25);background:rgba(192,65,90,.03)}\n/* speed card on cream */\n.speed-card{background:#fff;border-color:rgba(26,25,24,.1)}\n.speed-card:hover{background:rgba(192,65,90,.03);border-color:rgba(192,65,90,.2)}\n.speed-card.popular{background:rgba(192,65,90,.05);border-color:rgba(192,65,90,.3)}\n.speed-icon{background:rgba(192,65,90,.06);border-color:rgba(192,65,90,.15);color:var(--pink)}\n.speed-note{border-color:rgba(26,25,24,.08);color:var(--txt3)}\n/* thresh items on cream */\n.thresh-item{background:#fff;border-color:rgba(201,168,76,.2)}\n/* faq on cream */\n.faq-item,.faq-item:first-of-type{border-color:rgba(26,25,24,.1)}\n.faq-q{color:var(--txt)}\n.faq-icon{color:var(--txt3)}\n/* how step */\n.how-num{background:var(--pink)}\n/* app btn on cream */\n.app-btn{background:#fff;color:var(--txt);border-color:rgba(26,25,24,.12)}\n.app-btn:hover{background:#f0ece4}\n.app-feat svg{color:var(--pink)}\n/* ow methods on cream */\n.ow-method{border-color:rgba(26,25,24,.08)}\n.ow-icon{background:rgba(192,65,90,.05);border-color:rgba(192,65,90,.1)}\n.ow-icon svg{color:var(--pink)}\n.ow-method:hover .ow-name{color:var(--pink)}\n.ow-arrow{color:rgba(26,25,24,.2)}\n/* other-ways section */\n.other-ways{border-color:rgba(26,25,24,.08)}\n/* how grid connector line */\n.how-grid::before{background:linear-gradient(90deg,transparent,rgba(192,65,90,.15) 20%,rgba(192,65,90,.15) 80%,transparent)}\n\n/* DARK MODE overrides */\n@media(prefers-color-scheme:dark){\n  .how-section,.cov-section,.app-section{background:var(--bg2)!important}\n  .speed-section,.free-section,.faq-section,.other-ways{background:var(--bg)!important}\n  .how-h2,.speed-h2,.cov-h2,.free-h2,.app-h2,.faq-h2{color:#fff}\n  .how-title,.speed-name,.ow-hl,.ow-name,.faq-q{color:var(--txt,var(--ink,var(--dark2,#1a1918)))}\n  .how-desc,.speed-desc,.speed-note,.cov-lead,.cov-note,.app-body,.free-body,.faq-a{color:var(--txt2)}\n  .eyebrow-m{color:rgba(201,168,76,.75)}\n  .pin-num{color:var(--gold)}\n  .pin-area{color:var(--txt3)}\n  .pin-tag{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}\n  .speed-card{background:var(--surf);border-color:var(--surf-b)}\n  .speed-card.popular{background:rgba(201,168,76,.05);border-color:rgba(201,168,76,.35)}\n  .speed-icon{background:rgba(201,168,76,.08);border-color:rgba(201,168,76,.15);color:var(--gold)}\n  .speed-time{color:var(--gold)}\n  .thresh-item{background:var(--surf);border-color:rgba(201,168,76,.15)}\n  .thresh-val{color:var(--gold)}\n  .faq-item,.faq-item:first-of-type{border-color:var(--surf-b)}\n  .faq-icon{color:var(--txt3)}\n  .app-btn{background:var(--surf);color:#fff;border-color:var(--surf-b)}\n  .app-btn:hover{background:rgba(255,255,255,.09)}\n  .app-feat svg{color:var(--pink)}\n  .ow-method{border-color:var(--surf-b)}\n  .ow-icon{background:rgba(201,168,76,.05);border-color:rgba(201,168,76,.15)}\n  .ow-icon svg{color:var(--gold)}\n  .ow-hours{background:rgba(201,168,76,.05);border-color:rgba(201,168,76,.12)}\n  .ow-hours strong{color:rgba(201,168,76,.7)}\n  .other-ways{border-color:var(--surf-b)}\n  .how-grid::before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1) 20%,rgba(255,255,255,.1) 80%,transparent)}\n}\n\n/* ══ GARMENT CARE SYMBOLS — floating background ══ */\n.garment-bg{\n  position:absolute;inset:0;\n  pointer-events:none;overflow:hidden;\n  z-index:0;\n  opacity:.06; /* very subtle on light bg */\n}\n@media(prefers-color-scheme:dark){.garment-bg{opacity:.04}}\n\n.garment-symbol{\n  position:absolute;\n  font-size:clamp(20px,3vw,36px);\n  color:var(--pink);\n  animation:garmentFloat var(--gd,20s) ease-in-out infinite var(--gdelay,0s);\n  user-select:none;\n  line-height:1;\n}\n@keyframes garmentFloat{\n  0%   {transform:translateY(0) rotate(0deg);   opacity:0}\n  5%   {opacity:1}\n  45%  {transform:translateY(-18px) rotate(3deg);opacity:1}\n  55%  {transform:translateY(-18px) rotate(-3deg);opacity:1}\n  95%  {opacity:.8}\n  100% {transform:translateY(0) rotate(0deg);   opacity:0}\n}\n\n/* Sections that get the garment background */\n.how-section,.speed-section,.cov-section,.free-section,\n.app-section,.faq-section,.other-ways{position:relative;overflow:hidden}\n\n/* ── SECTION TEXT — explicit contrast on light bg ── */\n.how-h2,.speed-h2,.cov-h2,.free-h2,.app-h2,.faq-h2{color:var(--txt)}\n.how-title{color:var(--txt);font-size:clamp(18px,2vw,24px)}\n.how-desc,.speed-desc,.speed-note,.cov-lead,.cov-note,.app-body,.free-body,.faq-a{color:var(--txt2)}\n.speed-time{color:var(--pink)}\n.speed-name{color:var(--txt)}\n.eyebrow-m{color:var(--pink);opacity:1}\n.pin-num{color:var(--pink)}\n.pin-area{color:var(--txt2)}\n.thresh-val{color:var(--pink)}\n.thresh-lbl{color:var(--txt3)}\n.thresh-or{color:var(--txt3)}\n.ow-hl{color:var(--txt)}\n.ow-name{color:var(--txt)}\n.ow-detail{color:var(--txt3)}\n.ow-hours{background:rgba(192,65,90,.05);border-color:rgba(192,65,90,.15)}\n.ow-hours strong{color:var(--pink)}\n.app-feat{color:var(--txt2)}\n/* pin tag on cream */\n.pin-tag{background:rgba(26,25,24,.04);border-color:rgba(26,25,24,.1)}\n.pin-tag:hover{border-color:rgba(192,65,90,.25);background:rgba(192,65,90,.03)}\n/* speed card on cream */\n.speed-card{background:#fff;border-color:rgba(26,25,24,.1)}\n.speed-card:hover{background:rgba(192,65,90,.03);border-color:rgba(192,65,90,.2)}\n.speed-card.popular{background:rgba(192,65,90,.05);border-color:rgba(192,65,90,.3)}\n.speed-icon{background:rgba(192,65,90,.06);border-color:rgba(192,65,90,.15);color:var(--pink)}\n.speed-note{border-color:rgba(26,25,24,.08);color:var(--txt3)}\n/* thresh items on cream */\n.thresh-item{background:#fff;border-color:rgba(201,168,76,.2)}\n/* faq on cream */\n.faq-item,.faq-item:first-of-type{border-color:rgba(26,25,24,.1)}\n.faq-q{color:var(--txt)}\n.faq-icon{color:var(--txt3)}\n/* how step */\n.how-num{background:var(--pink)}\n/* app btn on cream */\n.app-btn{background:#fff;color:var(--txt);border-color:rgba(26,25,24,.12)}\n.app-btn:hover{background:#f0ece4}\n.app-feat svg{color:var(--pink)}\n/* ow methods on cream */\n.ow-method{border-color:rgba(26,25,24,.08)}\n.ow-icon{background:rgba(192,65,90,.05);border-color:rgba(192,65,90,.1)}\n.ow-icon svg{color:var(--pink)}\n.ow-method:hover .ow-name{color:var(--pink)}\n.ow-arrow{color:rgba(26,25,24,.2)}\n/* other-ways section */\n.other-ways{border-color:rgba(26,25,24,.08)}\n/* how grid connector line */\n.how-grid::before{background:linear-gradient(90deg,transparent,rgba(192,65,90,.15) 20%,rgba(192,65,90,.15) 80%,transparent)}\n\n/* DARK MODE overrides */\n@media(prefers-color-scheme:dark){\n  .how-section,.cov-section,.app-section{background:var(--bg2)!important}\n  .speed-section,.free-section,.faq-section,.other-ways{background:var(--bg)!important}\n  .how-h2,.speed-h2,.cov-h2,.free-h2,.app-h2,.faq-h2{color:#fff}\n  .how-title,.speed-name,.ow-hl,.ow-name,.faq-q{color:var(--txt,var(--ink,var(--dark2,#1a1918)))}\n  .how-desc,.speed-desc,.speed-note,.cov-lead,.cov-note,.app-body,.free-body,.faq-a{color:var(--txt2)}\n  .eyebrow-m{color:rgba(201,168,76,.75)}\n  .pin-num{color:var(--gold)}\n  .pin-area{color:var(--txt3)}\n  .pin-tag{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}\n  .speed-card{background:var(--surf);border-color:var(--surf-b)}\n  .speed-card.popular{background:rgba(201,168,76,.05);border-color:rgba(201,168,76,.35)}\n  .speed-icon{background:rgba(201,168,76,.08);border-color:rgba(201,168,76,.15);color:var(--gold)}\n  .speed-time{color:var(--gold)}\n  .thresh-item{background:var(--surf);border-color:rgba(201,168,76,.15)}\n  .thresh-val{color:var(--gold)}\n  .faq-item,.faq-item:first-of-type{border-color:var(--surf-b)}\n  .faq-icon{color:var(--txt3)}\n  .app-btn{background:var(--surf);color:#fff;border-color:var(--surf-b)}\n  .app-btn:hover{background:rgba(255,255,255,.09)}\n  .app-feat svg{color:var(--pink)}\n  .ow-method{border-color:var(--surf-b)}\n  .ow-icon{background:rgba(201,168,76,.05);border-color:rgba(201,168,76,.15)}\n  .ow-icon svg{color:var(--gold)}\n  .ow-hours{background:rgba(201,168,76,.05);border-color:rgba(201,168,76,.12)}\n  .ow-hours strong{color:rgba(201,168,76,.7)}\n  .other-ways{border-color:var(--surf-b)}\n  .how-grid::before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1) 20%,rgba(255,255,255,.1) 80%,transparent)}\n}\n\n/* ── Hero is always dark regardless of system setting ── */\nsection#book-form,section#book-form *{--bg:#1a1918}\nsection#book-form{background:#1a1918!important}\nsection#book-form .f-brand-tag{color:var(--gold)!important}\nsection#book-form .f-title{color:#fff!important}\nsection#book-form .f-badge{color:rgba(255,255,255,.4)!important}\nsection#book-form .f-q{color:#fff!important}\nsection#book-form .f-q em{color:var(--gold)!important}\nsection#book-form .f-step-txt{color:rgba(255,255,255,.35)!important}\nsection#book-form .f-step-txt strong{color:#fff!important}\nsection#book-form .f-dot{background:rgba(255,255,255,.2)!important}\nsection#book-form .f-dot.cur{background:var(--gold)!important}\nsection#book-form .f-dot.done{background:var(--pink)!important}\nsection#book-form .f-box{background:rgba(255,255,255,.06)!important;border-color:rgba(255,255,255,.12)!important}\nsection#book-form .f-in{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.12)!important;color:#fff!important}\nsection#book-form .f-in::placeholder{color:rgba(255,255,255,.3)!important}\nsection#book-form .f-lbl{color:rgba(255,255,255,.4)!important}\nsection#book-form .f-pfx{color:rgba(255,255,255,.35)!important}\nsection#book-form .f-hint{color:rgba(255,255,255,.3)!important}\nsection#book-form .f-hint kbd{color:rgba(255,255,255,.35)!important;background:rgba(255,255,255,.1)!important;border-color:rgba(255,255,255,.15)!important}\nsection#book-form .f-bar-row{border-color:rgba(255,255,255,.1)!important}\nsection#book-form .f-sub{color:rgba(255,255,255,.3)!important}\nsection#book-form .f-sub a{color:rgba(201,168,76,.5)!important}\nsection#book-form .f-back{color:rgba(255,255,255,.3)!important}\nsection#book-form .profile-card{background:rgba(201,168,76,.08)!important;border-color:rgba(201,168,76,.2)!important}\nsection#book-form .profile-name{color:#fff!important}\nsection#book-form .profile-detail{color:rgba(255,255,255,.45)!important}\nsection#book-form .edit-btn{color:rgba(201,168,76,.55)!important}\nsection#book-form .choice-card{background:rgba(255,255,255,.05)!important;border-color:rgba(255,255,255,.1)!important}\nsection#book-form .choice-card:hover,section#book-form .choice-card.on{background:rgba(201,168,76,.1)!important;border-color:rgba(201,168,76,.4)!important}\nsection#book-form .choice-name{color:#fff!important}\nsection#book-form .choice-sub{color:rgba(255,255,255,.4)!important}\nsection#book-form .tnc-wrap{background:rgba(255,255,255,.03)!important;border-color:rgba(255,255,255,.08)!important}\nsection#book-form .tnc-hd{color:rgba(255,255,255,.4)!important}\nsection#book-form .tnc-body{border-color:rgba(255,255,255,.06)!important}\nsection#book-form .tnc-item{color:rgba(255,255,255,.45)!important}\nsection#book-form .agree-txt{color:rgba(255,255,255,.4)!important}\nsection#book-form .agree-box{border-color:rgba(255,255,255,.2)!important}\nsection#book-form .captcha-row{background:rgba(255,255,255,.03)!important;border-color:rgba(255,255,255,.08)!important}\nsection#book-form .cap-check{border-color:rgba(255,255,255,.2)!important}\nsection#book-form .cap-lbl{color:rgba(255,255,255,.45)!important}\nsection#book-form .cap-logo{color:rgba(255,255,255,.2)!important}\nsection#book-form .otp-d{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.12)!important;color:#fff!important}\nsection#book-form .otp-hint{color:rgba(255,255,255,.4)!important}\nsection#book-form .otp-resend{color:rgba(201,168,76,.55)!important}\nsection#book-form .otp-timer{color:rgba(255,255,255,.3)!important}\nsection#book-form .f-err{color:var(--pink)!important}\nsection#book-form .f-alert{color:var(--pink)!important;background:rgba(192,65,90,.08)!important;border-color:rgba(192,65,90,.2)!important}\nsection#book-form .f-confirm-note{color:rgba(255,255,255,.2)!important}\n\n.faq-a{color:var(--txt2,#3d3a36);line-height:2}\n\nbody{color:#1a1918}\n@media(prefers-color-scheme:dark){body{color:#fff}}\n\n/* ── Quick-find navigation bar ── */\n.quick-find{background:var(--dark2);border-bottom:.5px solid rgba(255,255,255,.06);position:sticky;top:64px;z-index:90}\n.qf-inner{max-width:1100px;margin:0 auto;padding:.6rem 6rem;display:flex;align-items:center;gap:.5rem;overflow-x:auto;scrollbar-width:none}\n.qf-inner::-webkit-scrollbar{height:0}\n.qf-label{font-family:var(--sans);font-size:8px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.3);white-space:nowrap;margin-right:.5rem;flex-shrink:0}\n.qf-btn{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--sans);font-size:9px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.45);background:rgba(255,255,255,.05);border:.5px solid rgba(255,255,255,.1);border-radius:20px;padding:.4rem .9rem;text-decoration:none;white-space:nowrap;transition:all .2s;flex-shrink:0}\n.qf-btn svg{width:13px;height:13px;flex-shrink:0}\n.qf-btn:hover,.qf-btn.active{background:rgba(192,65,90,.15);border-color:rgba(192,65,90,.4);color:#fff}\n.chapter{scroll-margin-top:140px}\n@media(max-width:900px){.qf-inner{padding:.6rem 5vw}.quick-find{top:58px}}\n\n@media print{\n  .wa-float,.wa-float-btn,.bookPill,.seasonal-banner,.scroll-bar,.read-progress,\n  .mob-sidebar-toggle,.sidebar-cta-btn,.loc-ctas,.loc-cta-primary,.loc-cta-wa,\n  nav#nav,.nav-cta,.global-pill{display:none!important}\n  body{font-size:11pt;color:#000;background:#fff}\n  a[href]::after{content:\" (\" attr(href) \")\";font-size:9pt;color:#666}\n  a[href^=\"#\"]::after,a[href^=\"tel:\"]::after,a[href^=\"https://wa.me\"]::after{content:\"\"}\n  h1,h2,h3{page-break-after:avoid}\n  .chapter,.loc-section{page-break-inside:avoid}\n}\n\n\n/* ── Custom cursor ── */\n@media(hover:hover) and (pointer:fine){\n  *{cursor:none!important}\n  .cursor-dot{\n    position:fixed;top:0;left:0;z-index:99999;\n    pointer-events:none;\n    width:8px;height:8px;\n    background:var(--gold,#C9A84C);\n    border-radius:50%;\n    transform:translate(-50%,-50%);\n    transition:width .2s,height .2s,background .2s,opacity .3s;\n    mix-blend-mode:difference;\n  }\n  .cursor-ring{\n    position:fixed;top:0;left:0;z-index:99998;\n    pointer-events:none;\n    width:32px;height:32px;\n    border:1px solid rgba(201,168,76,.4);\n    border-radius:50%;\n    transform:translate(-50%,-50%);\n    transition:width .35s cubic-bezier(.16,1,.3,1),\n               height .35s cubic-bezier(.16,1,.3,1),\n               border-color .2s,opacity .3s;\n  }\n  body.cursor-hover .cursor-dot{width:6px;height:6px;background:#fff}\n  body.cursor-hover .cursor-ring{width:44px;height:44px;border-color:rgba(201,168,76,.6)}\n  body.cursor-link .cursor-dot{width:12px;height:12px;background:var(--pink,#C0415A)}\n  body.cursor-link .cursor-ring{width:48px;height:48px;border-color:rgba(192,65,90,.5)}\n  body.cursor-hidden .cursor-dot,\n  body.cursor-hidden .cursor-ring{opacity:0}\n}\n\n/* ── Intro / loading screen ── */\n.intro-screen{\n  position:fixed;inset:0;z-index:99997;\n  background:var(--dark2,#1a1918);\n  display:flex;align-items:center;justify-content:center;\n  flex-direction:column;gap:1.2rem;\n  transition:opacity .6s ease,transform .6s cubic-bezier(.16,1,.3,1);\n}\n.intro-screen.hidden{\n  opacity:0;pointer-events:none;\n  transform:translateY(-8px);\n}\n.intro-monogram{\n  font-family:'Cormorant Garamond',Georgia,serif;\n  font-style:italic;font-weight:300;\n  font-size:clamp(48px,8vw,96px);\n  color:var(--gold,#C9A84C);\n  letter-spacing:-.04em;\n  opacity:0;\n  animation:introFadeIn .8s cubic-bezier(.16,1,.3,1) .1s forwards;\n}\n.intro-wordmark{\n  font-family:'Jost','Helvetica Neue',Arial,sans-serif;\n  font-size:9px;font-weight:300;\n  letter-spacing:.35em;text-transform:uppercase;\n  color:rgba(255,255,255,.25);\n  opacity:0;\n  animation:introFadeIn .6s ease .5s forwards;\n}\n.intro-line{\n  width:0;height:.5px;background:var(--gold,#C9A84C);opacity:.3;\n  animation:introLine .8s cubic-bezier(.16,1,.3,1) .3s forwards;\n}\n@keyframes introFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}\n@keyframes introLine{from{width:0}to{width:80px}}\n\n\n.tsl-crumbs{max-width:1200px;margin:0 auto;padding:14px 8vw 0;position:relative;z-index:5}\n.tsl-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;font-family:var(--sans,'Jost',sans-serif);font-size:11px;letter-spacing:.06em}\n.tsl-crumbs li{display:flex;align-items:center;gap:6px;color:inherit;opacity:.55}\n.tsl-crumbs li:not(:last-child)::after{content:'›';opacity:.6}\n.tsl-crumbs a{color:inherit;text-decoration:none;transition:opacity .2s}\n.tsl-crumbs a:hover{opacity:1;text-decoration:underline}\n.tsl-crumbs li:last-child{opacity:.85}\n@media(max-width:600px){.tsl-crumbs{padding:12px 6vw 0}}\n\n\n\n/* breadcrumb contrast */\n.tsl-crumbs a,.tsl-crumbs li{color:rgba(255,255,255,.75)!important}\n.tsl-crumbs a:hover{color:var(--gold,#C9A84C)!important}\n.tsl-crumbs li[aria-current=\"page\"]{color:rgba(255,255,255,.95)!important}\n[data-theme=\"light\"] .tsl-crumbs a,\n[data-theme=\"light\"] .tsl-crumbs li,\n.s-cream .tsl-crumbs a,\n.s-cream .tsl-crumbs li{\n  color:rgba(26,25,24,.75)!important;\n}\n[data-theme=\"light\"] .tsl-crumbs a:hover,\n.s-cream .tsl-crumbs a:hover{color:var(--pink,#C0415A)!important}\n@media (prefers-color-scheme: light){\n  /* crumbs sit on cream body above dark heroes */\n  body > .tsl-crumbs a,\n  body > .tsl-crumbs li,\n  main > .tsl-crumbs a,\n  .scroll-bar + .tsl-crumbs a,\n  .scroll-bar + .tsl-crumbs li,\n  #introScreen + .tsl-crumbs a,\n  div > .tsl-crumbs a,\n  div > .tsl-crumbs li{\n    color:rgba(26,25,24,.75)!important;\n  }\n}\n\n\n\n/* ═══ Force dark-default shell ═══ */\n:root{\n  --off:#1a1918 !important;\n  --pink-pale:#1a1918 !important;\n}\nbody{\n  background:var(--bg,var(--off,#1a1918))!important;\n  color:var(--txt,#fff)!important;\n}\n/* When a page hardcodes cream body vars, keep body dark unless OS wants light */\n@media (prefers-color-scheme: light){\n  :root{\n    --off:#FAFAF8 !important;\n    --pink-pale:#fdf0f2 !important;\n  }\n  body{\n    background:var(--cream,var(--off,#F5F0E8))!important;\n    color:var(--dark2,var(--ink,#1a1918))!important;\n  }\n}\n\n\n/* ═══ Legal template dark readability v3 ═══ */\n.legal-outer,.legal-content,.legal-sidebar{\n  background:#1a1918!important;\n  color:#fff!important;\n}\n.legal-hero{background:#1a1918!important}\n.lh-title{color:#fff!important}\n.lh-title em{color:var(--pink,#C0415A)!important}\n.lh-eye{color:var(--gold,#C9A84C)!important}\n.lh-meta,.lh-right,.pl-hero-note{color:rgba(255,255,255,.72)!important}\n.lh-right strong{color:rgba(255,255,255,.95)!important}\n\n.tsl-crumbs a,.tsl-crumbs li{color:rgba(255,255,255,.75)!important}\n.tsl-crumbs a:hover{color:var(--gold,#C9A84C)!important}\n\n.sidebar-nav a{color:rgba(255,255,255,.72)!important}\n.sidebar-nav a:hover,\n.sidebar-nav a.active{color:var(--gold,#C9A84C)!important}\n.sidebar-nav li{border-bottom-color:rgba(255,255,255,.1)!important}\n.sn-num{color:var(--gold,#C9A84C)!important}\n\n.ctrl-btn{\n  color:rgba(255,255,255,.8)!important;\n  border-color:rgba(255,255,255,.3)!important;\n  background:transparent!important;\n}\n.ctrl-btn:hover{\n  color:#fff!important;\n  border-color:var(--gold,#C9A84C)!important;\n}\n\n.clause{border-bottom-color:rgba(255,255,255,.12)!important}\n.clause-title{color:#fff!important}\n.clause-num{color:var(--gold,#C9A84C)!important;opacity:1!important}\n.clause-icon{color:rgba(255,255,255,.45)!important}\n.clause-body,\n.clause-body p,\n.clause-body li,\n.clause-body td,\n.clause-body th,\n.clause-body span{\n  color:rgba(255,255,255,.78)!important;\n}\n.clause-body a{color:var(--gold,#C9A84C)!important}\n.clause-body strong,\n.clause-body b{color:#fff!important}\n\n.legal-intro{color:rgba(255,255,255,.8)!important}\n.legal-close,\n.legal-close p,\n.legal-close-note,\n.legal-close-sub{color:rgba(255,255,255,.75)!important}\n.legal-close h2,\n.legal-close-contact h2{color:#fff!important}\n.legal-close-links a{color:var(--gold,#C9A84C)!important}\n\n/* FAQ / price list only inside legal shells (care guides keep cream FAQ blocks) */\n.legal-outer .faq-q,\n.legal-content .faq-q{color:#fff!important}\n.legal-outer .faq-a,\n.legal-content .faq-a{color:rgba(255,255,255,.75)!important}\n.legal-outer .pl-item,\n.legal-content .pl-item{\n  color:rgba(255,255,255,.78)!important;\n  border-bottom-color:rgba(255,255,255,.1)!important;\n}\n.legal-outer .pl-tier-name,\n.legal-outer .pl-factor-h3,\n.legal-outer .pl-factors h2,\n.legal-outer .pl-factors h3,\n.legal-content .pl-tier-name,\n.legal-content .pl-factor-h3{color:#fff!important}\n.legal-outer .pl-tier-note,\n.legal-outer .pl-factor-p,\n.legal-content .pl-tier-note,\n.legal-content .pl-factor-p{color:rgba(255,255,255,.65)!important}\n.legal-outer .pl-factor,\n.legal-content .pl-factor{\n  background:rgba(255,255,255,.04)!important;\n  border-color:rgba(255,255,255,.12)!important;\n}\n\n@media (prefers-color-scheme: light){\n  .legal-outer,.legal-content,.legal-sidebar{\n    background:var(--cream,#F5F0E8)!important;\n    color:var(--dark2,#1a1918)!important;\n  }\n  .legal-hero{background:var(--cream,#F5F0E8)!important}\n  .lh-title{color:var(--dark2,#1a1918)!important}\n  .lh-meta,.lh-right,.pl-hero-note{color:rgba(26,25,24,.65)!important}\n  .tsl-crumbs a,.tsl-crumbs li{color:rgba(26,25,24,.75)!important}\n  .sidebar-nav a{color:rgba(26,25,24,.72)!important}\n  .sidebar-nav a:hover,.sidebar-nav a.active{color:var(--pink,#C0415A)!important}\n  .ctrl-btn{color:rgba(26,25,24,.75)!important;border-color:rgba(26,25,24,.3)!important}\n  .clause-title{color:var(--dark2,#1a1918)!important}\n  .clause-num{color:var(--pink,#C0415A)!important}\n  .clause-body,.clause-body p,.clause-body li,.clause-body td,.clause-body th,.clause-body span{\n    color:rgba(26,25,24,.72)!important;\n  }\n  .legal-intro{color:rgba(26,25,24,.75)!important}\n  .legal-outer .faq-q,.legal-content .faq-q{color:var(--dark2,#1a1918)!important}\n  .legal-outer .faq-a,.legal-content .faq-a{color:rgba(26,25,24,.65)!important}\n  .legal-outer .pl-item,.legal-content .pl-item{color:rgba(26,25,24,.65)!important}\n  .legal-outer .pl-tier-name,.legal-outer .pl-factor-h3,\n  .legal-content .pl-tier-name,.legal-content .pl-factor-h3{color:var(--dark2,#1a1918)!important}\n  .legal-outer .pl-factor,.legal-content .pl-factor{\n    background:rgba(245,240,232,.5)!important;\n    border-color:rgba(26,25,24,.08)!important;\n  }\n}\n\n\n\n\n\n\n\n\n\n/* ═══ Universal dark-default content readability v3 ═══ */\n.faq-a{color:rgba(255,255,255,.78)!important}\n.faq-q{color:rgba(255,255,255,.92)!important}\n.faq-item.open .faq-q,.faq-q:hover{color:var(--gold,#C9A84C)!important}\n\n.hub-faq,.hub-faq-inner{background:#1a1918!important;color:#fff!important}\n.hub-faq-h2{color:#fff!important}\n.hub-faq-h2 em{color:var(--gold,#C9A84C)!important}\n.hub-faq-ey{color:var(--gold,#C9A84C)!important}\n\n/* cream hub sections */\n.hub-grid-sec.cream .hub-sec-h2{color:var(--ink,#1a1918)!important}\n.hub-grid-sec.cream .hub-sec-h2 em{color:var(--gold,#C9A84C)!important}\n.hub-grid-sec.cream .hub-sec-sub{color:rgba(26,25,24,.65)!important}\n.hub-grid-sec.cream .hub-sec-ey{color:var(--gold,#C9A84C)!important}\n/* dark/off hub sections */\n.hub-grid-sec.off .hub-sec-h2,.hub-grid-sec.off .hub-sec-h2,\n.off .hub-sec-h2{color:#fff!important}\n.hub-grid-sec.off .hub-sec-h2 em{color:var(--gold,#C9A84C)!important}\n.hub-grid-sec.off .hub-sec-sub,.off .hub-sec-sub{color:rgba(255,255,255,.65)!important}\n.hub-grid-sec.off .hub-sec-ey{color:var(--gold,#C9A84C)!important}\n\n/* Cream FAQ bands */\n.aeo-faq .faq-q,.bsc-faq .faq-q,.dcm-faq .faq-q,.dpc-faq .faq-q,.g-faq .faq-q,\n.sp-faq .faq-q,.sscg-faq .faq-q,.wcg-faq .faq-q,.wcs-faq .faq-q,\n.guide-faq .faq-q,.csr-faq .faq-q,.ex-faq .faq-q{\n  color:rgba(26,25,24,.92)!important;\n}\n.aeo-faq .faq-a,.bsc-faq .faq-a,.dcm-faq .faq-a,.dpc-faq .faq-a,.g-faq .faq-a,\n.sp-faq .faq-a,.sscg-faq .faq-a,.wcg-faq .faq-a,.wcs-faq .faq-a,\n.guide-faq .faq-a,.csr-faq .faq-a,.ex-faq .faq-a{\n  color:rgba(26,25,24,.7)!important;\n}\n.aeo-faq .faq-item.open .faq-q,.aeo-faq .faq-q:hover,\n.bsc-faq .faq-item.open .faq-q,.bsc-faq .faq-q:hover,\n.g-faq .faq-item.open .faq-q,.g-faq .faq-q:hover,\n.dcm-faq .faq-item.open .faq-q,.dpc-faq .faq-item.open .faq-q,\n.sp-faq .faq-item.open .faq-q,.sscg-faq .faq-item.open .faq-q,\n.wcg-faq .faq-item.open .faq-q,.wcs-faq .faq-item.open .faq-q,\n.guide-faq .faq-item.open .faq-q,.csr-faq .faq-item.open .faq-q,\n.ex-faq .faq-item.open .faq-q{color:var(--gold,#C9A84C)!important}\n\n/* Dark FAQ shells */\n.dvw-faq .faq-q,.lk-faq .faq-q,.to-faq .faq-q,.hub-faq .faq-q{color:rgba(255,255,255,.92)!important}\n.dvw-faq .faq-a,.lk-faq .faq-a,.to-faq .faq-a,.hub-faq .faq-a{color:rgba(255,255,255,.78)!important}\n.dvw-faq .faq-item.open .faq-q,.lk-faq .faq-item.open .faq-q,.to-faq .faq-item.open .faq-q,\n.hub-faq .faq-item.open .faq-q,.hub-faq .faq-q:hover{color:var(--gold,#C9A84C)!important}\n\n/* AEO */\n.aeo-h2,.aeo-h3,.aeo-title{color:#fff!important}\n.aeo-p,.aeo-lead,.aeo-li,.aeo-body,.aeo-text{color:rgba(255,255,255,.78)!important}\n.aeo-section td,.aeo-section th,.aeo-body td,.aeo-body th,\n.care-cell,.yes-cell,.exp-cell,.warn-cell{\n  color:rgba(255,255,255,.8)!important;border-color:rgba(255,255,255,.12)!important;\n}\n\n/* Guide cards on dark */\n.guide-card,.gc-card{\n  background:rgba(255,255,255,.05)!important;\n  border-color:rgba(255,255,255,.12)!important;\n  color:rgba(255,255,255,.85)!important;\n}\n.gc-title,.gc-tag,.gc-meta,.gc-desc{color:rgba(255,255,255,.8)!important}\n.gc-title{color:#fff!important}\n.gc-tag{color:var(--gold,#C9A84C)!important}\n\n/* Guides index grid */\n.gd-grid{background:transparent!important;border-color:rgba(255,255,255,.1)!important}\n.gd-grid a,.gd-grid a:visited{\n  background:rgba(255,255,255,.05)!important;\n  color:rgba(255,255,255,.85)!important;\n}\n.gd-grid a:hover{background:rgba(255,255,255,.08)!important}\n.gd-grid .t{color:#fff!important}\n.gd-grid .d{color:rgba(255,255,255,.6)!important}\n.gd-label{color:var(--gold,#C9A84C)!important}\n\n/* Callouts + inline links on dark */\n.box-title,.garment-fabric,.sym-pro,.lw-method-note,.lw-fab-note,\n.garment-note-text{color:rgba(255,255,255,.85)!important}\n.box-title a,.sym-pro a,.garment-note-text a,.warn-box a,.fact-box a,\n.clause-body a,.aeo-p a,.aeo-li a{\n  color:var(--gold,#C9A84C)!important;\n}\n\n/* Site map */\n.sm-grid a,.sm-grid a:visited{color:rgba(255,255,255,.85)!important}\n.sm-grid a:hover{color:var(--gold,#C9A84C)!important}\n.sm-sec h2,.sm-hero h1{color:#fff!important}\n.sm-sec .note,.sm-sub,.sm-sec h2 .cnt{color:rgba(255,255,255,.55)!important}\n\n.to-section-h2,.lk-h2{color:#fff!important}\n\n\n/* cream hub guide cards = dark text on light cards */\n.hub-grid-sec.cream .guide-card,\n.cream .guide-card{\n  background:#fff!important;\n  border-color:rgba(26,25,24,.08)!important;\n  color:rgba(26,25,24,.85)!important;\n}\n.hub-grid-sec.cream .gc-title,\n.cream .gc-title{color:#1a1918!important}\n.hub-grid-sec.cream .gc-desc,\n.cream .gc-desc{color:rgba(26,25,24,.55)!important}\n.hub-grid-sec.cream .gc-tag,\n.cream .gc-tag{color:var(--gold,#C9A84C)!important}\n.hub-grid-sec.cream .gc-meta,\n.cream .gc-meta{color:rgba(26,25,24,.45)!important}\n/* off/dark hub guide cards stay light-on-dark */\n.hub-grid-sec.off .guide-card,\n.off .guide-card{\n  background:rgba(255,255,255,.05)!important;\n  color:rgba(255,255,255,.85)!important;\n}\n.hub-grid-sec.off .gc-title,.off .gc-title{color:#fff!important}\n.hub-grid-sec.off .gc-desc,.off .gc-desc{color:rgba(255,255,255,.7)!important}\n/* pink CTA links on dark — brighten */\n.pro-trigger-text a,.sym-pro a,.garment-note-text a{\n  color:#E8A0AD!important;\n  text-decoration:underline;\n}\n",
  "scriptJs": "function acceptCookies(){\n  try {\n    localStorage.setItem('tsl_cookies','accepted');\n    document.querySelectorAll('.cookie-bar').forEach(function(bar){ bar.classList.remove('show'); bar.style.display='none'; });\n  } catch(e){}\n}\nwindow.addEventListener('DOMContentLoaded', function(){\n  try {\n    if(!localStorage.getItem('tsl_cookies')){\n      setTimeout(function(){\n        var bar = document.getElementById('cookieBar')\n        if(bar) bar.classList.add('show')\n      }, 2000)\n    }\n  } catch(e){}\n})\n;\nwindow.addEventListener('load', function(){\n  setTimeout(function(){\n    var pl = document.getElementById('preloader')\n    if(pl) pl.classList.add('hidden')\n  }, 1200)\n})\n;\n\nwindow.addEventListener('scroll',function(){var b=document.getElementById('scrollBar');if(b)b.style.width=(window.scrollY/(document.documentElement.scrollHeight-window.innerHeight)*100)+'%';},{passive:true});\n/* nav theme: Header.tsx + data-theme */\nif(window.Lenis){var lenis=new window.Lenis({duration:1.2,smoothWheel:true});(function raf(t){lenis.raf(t);requestAnimationFrame(raf)})(0)}\n;(function(){var els=document.querySelectorAll('[data-reveal]');if(!els.length)return;var obs=new IntersectionObserver(function(evts){evts.forEach(function(e){if(!e.isIntersecting)return;e.target.style.opacity='1';e.target.style.transform='translateY(0)';obs.unobserve(e.target);});},{threshold:0.15});requestAnimationFrame(function(){els.forEach(function(el){el.style.opacity='0';el.style.transform='translateY(16px)';el.style.transition='opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)';obs.observe(el);});});})();\ndocument.querySelectorAll('.faq-item').forEach(function(item){item.querySelector('.faq-q').addEventListener('click',function(){var open=item.classList.contains('open');document.querySelectorAll('.faq-item').forEach(function(i){i.classList.remove('open');});if(!open)item.classList.add('open');});});\n\n;\n\n(function(){\n'use strict';\n/* scroll progress */\nvar rp=document.getElementById('readProgress');\nif(rp){window.addEventListener('scroll',function(){var h=document.documentElement;rp.style.width=((h.scrollTop||document.body.scrollTop)/(h.scrollHeight-h.clientHeight)*100)+'%';},{passive:true});}\n/* scroll bar */\nwindow.addEventListener('scroll',function(){var b=document.getElementById('scrollBar');if(b)b.style.width=(window.scrollY/(document.documentElement.scrollHeight-window.innerHeight)*100)+'%';},{passive:true});\n/* nav dark/light */\n(function(){var nav=document.getElementById('nav');if(!nav)return;function u(){nav.classList.toggle('on-dark',window.scrollY<80);nav.classList.toggle('on-light',window.scrollY>=80);}window.addEventListener('scroll',u,{passive:true});u();})();\n/* lenis */\nif(window.Lenis){var lenis=new window.Lenis({duration:1.2,smoothWheel:true});(function raf(t){lenis.raf(t);requestAnimationFrame(raf)})(0);}\n/* reveal */\n(function(){var els=document.querySelectorAll('[data-reveal]');if(!els.length)return;var obs=new IntersectionObserver(function(evts){evts.forEach(function(e){if(!e.isIntersecting)return;e.target.style.opacity='1';e.target.style.transform='translateY(0)';obs.unobserve(e.target);});},{threshold:0.15});requestAnimationFrame(function(){els.forEach(function(el){el.style.opacity='0';el.style.transform='translateY(16px)';el.style.transition='opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)';obs.observe(el);});});})();\n/* TOC active */\nvar tocLinks=document.querySelectorAll('.toc-link');\nvar chapters=document.querySelectorAll('.chapter');\nif(chapters.length&&tocLinks.length){\n  var obs2=new IntersectionObserver(function(entries){entries.forEach(function(e){if(e.isIntersecting){tocLinks.forEach(function(l){l.classList.remove('active');});var a=document.querySelector('.toc-link[data-target=\"'+e.target.id+'\"]');if(a)a.classList.add('active');}});},{rootMargin:'-20% 0px -70% 0px'});\n  chapters.forEach(function(ch){obs2.observe(ch);});\n}\n/* mobile TOC */\nvar mobBtn=document.getElementById('mobSidebarToggle');\nvar tocList=document.querySelector('.toc-list');\nif(mobBtn&&tocList){mobBtn.addEventListener('click',function(){var open=tocList.classList.toggle('open');mobBtn.classList.toggle('open',open);mobBtn.setAttribute('aria-expanded',open);});}\n/* FAQ */\ndocument.querySelectorAll('.gfaq-q').forEach(function(btn){\n  btn.addEventListener('click',function(){\n    var item=btn.closest('.gfaq-item');\n    var was=item.classList.contains('open');\n    document.querySelectorAll('.gfaq-item').forEach(function(i){i.classList.remove('open');i.querySelector('.gfaq-q').setAttribute('aria-expanded','false');});\n    if(!was){item.classList.add('open');btn.setAttribute('aria-expanded','true');}\n  });\n});\n/* helpful */\ndocument.querySelectorAll('.helpful-btn').forEach(function(btn){\n  btn.addEventListener('click',function(){\n    var block=btn.closest('.helpful-block');\n    var thanks=block&&block.querySelector('.helpful-thanks');\n    if(thanks)thanks.classList.add('show');\n    if(btn.dataset.helpful==='no'){\n      var a=document.createElement('a');\n      a.href='https://wa.me/919836233354?text=I+have+a+stain+question';\n      a.target='_blank';a.rel='noopener';\n      a.style.cssText='font-family:var(--sans);font-size:11px;color:#25D366;margin-left:.5rem';\n      a.textContent='Chat with us →';\n      if(thanks)thanks.appendChild(a);\n    }\n    document.querySelectorAll('.helpful-btn').forEach(function(b){b.classList.remove('active');});\n    btn.classList.add('active');\n  });\n});\n})();\n\n;\n\n/* ── Global features JS ── */\n(function(){\n  /* Seasonal banner */\n  var banner=document.getElementById('seasonalBanner');\n  var bannerClose=document.getElementById('bannerClose');\n  if(banner && bannerClose){\n    var dismissed=sessionStorage.getItem('bannerDismissed');\n    if(dismissed) banner.classList.add('hidden');\n    bannerClose.addEventListener('click',function(){\n      banner.classList.add('hidden');\n      sessionStorage.setItem('bannerDismissed','1');\n    });\n  }\n\n  /* Sticky booking pill — show after 5s, hide when near footer */\n  var pill=document.getElementById('bookPill');\n  if(pill){\n    var pillTimer=setTimeout(function(){\n      pill.classList.remove('hidden');\n    },5000);\n    /* Hide pill when footer is visible */\n    var footer=document.querySelector('footer');\n    if(footer){\n      var pillObs=new IntersectionObserver(function(entries){\n        entries.forEach(function(e){\n          pill.classList.toggle('hidden',e.isIntersecting);\n        });\n      },{threshold:0.1});\n      pillObs.observe(footer);\n    }\n  }\n\n  /* Dark/light theme toggle */\n  var toggle=document.getElementById('themeToggle');\n  if(toggle){\n    var stored=localStorage.getItem('theme');\n    if(stored) document.documentElement.setAttribute('data-theme',stored);\n    toggle.addEventListener('click',function(){\n      var current=document.documentElement.getAttribute('data-theme');\n      var next=current==='light'?'dark':'light';\n      document.documentElement.setAttribute('data-theme',next);\n      localStorage.setItem('theme',next);\n    });\n  }\n\n  /* Reading progress bar */\n  var prog=document.getElementById('readProgress');\n  if(prog){\n    window.addEventListener('scroll',function(){\n      var h=document.documentElement;\n      var pct=(h.scrollTop||document.body.scrollTop)/(h.scrollHeight-h.clientHeight)*100;\n      prog.style.width=Math.min(100,pct)+'%';\n    },{passive:true});\n  }\n\n  /* Was this helpful */\n  document.querySelectorAll('.helpful-btn').forEach(function(btn){\n    btn.addEventListener('click',function(){\n      var block=btn.closest('.helpful-block');\n      var thanks=block && block.querySelector('.helpful-thanks');\n      if(thanks){thanks.classList.add('show');}\n      if(btn.dataset.helpful==='no'){\n        var wa=document.createElement('a');\n        wa.href='https://wa.me/919836233354?text=I+had+a+question+about+your+guide';\n        wa.target='_blank';wa.rel='noopener';\n        wa.style.cssText='font-family:var(--sans);font-size:11px;color:#25D366;margin-left:.5rem';\n        wa.textContent='Chat with us →';\n        if(thanks) thanks.appendChild(wa);\n      }\n      document.querySelectorAll('.helpful-btn').forEach(function(b){b.classList.remove('active')});\n      btn.classList.add('active');\n    });\n  });\n\n})();\n\n;\n\n(function(){\n  var qfBtns=document.querySelectorAll('.qf-btn');\n  var chapters=document.querySelectorAll('.chapter');\n  if(!chapters.length||!qfBtns.length)return;\n  var obs=new IntersectionObserver(function(entries){\n    entries.forEach(function(e){\n      if(e.isIntersecting){\n        qfBtns.forEach(function(b){b.classList.toggle('active',b.getAttribute('href')==='#'+e.target.id);});\n      }\n    });\n  },{rootMargin:'-15% 0px -75% 0px'});\n  chapters.forEach(function(ch){obs.observe(ch);});\n})();\n;\n\n(function(){\n'use strict';\n\n/* ── Intro screen — runs once per session ── */\nvar SESSION_KEY = 'tsl_intro_shown';\nvar introEl = document.getElementById('introScreen');\nif(introEl){\n  if(sessionStorage.getItem(SESSION_KEY)){\n    introEl.style.display = 'none';\n  } else {\n    setTimeout(function(){\n      introEl.classList.add('hidden');\n      setTimeout(function(){\n        introEl.style.display = 'none';\n        sessionStorage.setItem(SESSION_KEY,'1');\n      }, 700);\n    }, 1400);\n  }\n}\n\n/* ── Custom cursor — desktop only ── */\nif(window.matchMedia('(hover:hover) and (pointer:fine)').matches){\n  var dot  = document.createElement('div'); dot.className  = 'cursor-dot';\n  var ring = document.createElement('div'); ring.className = 'cursor-ring';\n  document.body.appendChild(dot);\n  document.body.appendChild(ring);\n\n  var mx=0,my=0,rx=0,ry=0;\n  document.addEventListener('mousemove',function(e){\n    mx=e.clientX; my=e.clientY;\n    dot.style.left  = mx+'px'; dot.style.top  = my+'px';\n  },{passive:true});\n\n  /* Ring follows with spring lag */\n  (function lerp(){\n    rx+=(mx-rx)*.12; ry+=(my-ry)*.12;\n    ring.style.left=rx+'px'; ring.style.top=ry+'px';\n    requestAnimationFrame(lerp);\n  })();\n\n  /* Hover states */\n  document.addEventListener('mouseover',function(e){\n    var t=e.target;\n    var isLink=t.closest('a,button,[role=\"button\"],[tabindex]');\n    var isText=t.closest('p,h1,h2,h3,h4,li,span');\n    document.body.classList.toggle('cursor-link',!!isLink);\n    document.body.classList.toggle('cursor-hover',!!isText && !isLink);\n  },{passive:true});\n\n  document.addEventListener('mouseleave',function(){\n    document.body.classList.add('cursor-hidden');\n  },{passive:true});\n  document.addEventListener('mouseenter',function(){\n    document.body.classList.remove('cursor-hidden');\n  },{passive:true});\n}\n\n/* ── Page transition fade ── */\nvar style=document.createElement('style');\nstyle.textContent=[\n  '.page-transition-overlay{',\n  'position:fixed;inset:0;z-index:99996;',\n  'background:var(--dark2,#1a1918);',\n  'opacity:0;pointer-events:none;',\n  'transition:opacity .35s ease;}',\n  '.page-transition-overlay.active{opacity:1;pointer-events:all}'\n].join('');\ndocument.head.appendChild(style);\n\nvar overlay=document.createElement('div');\noverlay.className='page-transition-overlay';\ndocument.body.appendChild(overlay);\n\n/* Fade out on click, fade in on load */\ndocument.addEventListener('click',function(e){\n  var a=e.target.closest('a');\n  if(!a||!a.href||a.target==='_blank'||a.href.startsWith('tel:')||\n     a.href.startsWith('mailto:')||a.href.startsWith('https://wa.me')||\n     a.href.includes('#')||e.metaKey||e.ctrlKey)return;\n  var dest=a.href;\n  if(new URL(dest).host!==location.host)return;\n  e.preventDefault();\n  overlay.classList.add('active');\n  setTimeout(function(){location.href=dest;},320);\n});\n\n/* Fade in on arrival */\noverlay.classList.add('active');\nrequestAnimationFrame(function(){\n  requestAnimationFrame(function(){\n    overlay.classList.remove('active');\n  });\n});\n\n})();\n",
  "bodyHtml": "<div id=\"introScreen\" class=\"intro-screen\" role=\"status\" aria-label=\"Loading The Swiss Laundry\">\n  <p class=\"intro-monogram\" aria-hidden=\"true\">TSL</p>\n  <div class=\"intro-line\" aria-hidden=\"true\"></div>\n  <p class=\"intro-wordmark\" aria-hidden=\"true\">The Swiss Laundry</p>\n</div>\n<a href=\"#main\" class=\"skip-link\">Skip to main content</a>\n<div class=\"seasonal-banner\" id=\"seasonalBanner\" role=\"banner\" aria-label=\"Free pickup offer\">\n  🧺 Want a home pickup? Complimentary pickup on invoices above ₹1,000.\n  <a href=\"/pickup\">Book Now →</a>\n  <button class=\"banner-close\" id=\"bannerClose\" aria-label=\"Close banner\">✕</button>\n</div>\n<div class=\"read-progress\" id=\"readProgress\" aria-hidden=\"true\"></div>\n<div class=\"scroll-bar\" id=\"scrollBar\"></div>\n\n<nav class=\"tsl-crumbs\" aria-label=\"Breadcrumb\"><ol><li><a href=\"/\">Home</a></li><li><a href=\"/stain-removal\">Guides</a></li><li aria-current=\"page\">Stain Removal Guide</li></ol></nav>\n\n<nav class=\"quick-find\" aria-label=\"Jump to stain category\">\n  <div class=\"qf-inner\">\n    <span class=\"qf-label\">Jump to</span>\n    <a href=\"#rules\" class=\"qf-btn\" data-cat=\"rules\"><svg viewBox=\"0 0 52 52\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M26 8 L26 8\"></path><rect x=\"10\" y=\"10\" width=\"32\" height=\"32\" rx=\"3\"></rect><line x1=\"18\" y1=\"22\" x2=\"34\" y2=\"22\"></line><line x1=\"18\" y1=\"30\" x2=\"34\" y2=\"30\"></line></svg> The Rules</a>\n    <a href=\"#food-drink\" class=\"qf-btn\" data-cat=\"food-drink\"><svg viewBox=\"0 0 52 52\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 12 Q20 8 24 8 Q28 8 28 12 L26 38 L22 38 Z\"></path><path d=\"M33 12 L33 22 Q33 26 29 28 L30 38 L26 38\"></path></svg> Food &amp; Drink</a>\n    <a href=\"#body-stains\" class=\"qf-btn\" data-cat=\"body-stains\"><svg viewBox=\"0 0 52 52\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M26 10 C20 10 14 16 14 26 C14 36 20 42 26 42 C32 42 38 36 38 26 C38 16 32 10 26 10\"></path><line x1=\"20\" y1=\"26\" x2=\"32\" y2=\"26\" stroke-width=\"2\"></line></svg> Blood &amp; Body</a>\n    <a href=\"#ink-dye\" class=\"qf-btn\" data-cat=\"ink-dye\"><svg viewBox=\"0 0 52 52\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 38 L18 18 Q18 14 22 14 L22 38 Z\"></path><line x1=\"18\" y1=\"22\" x2=\"28\" y2=\"16\"></line><line x1=\"18\" y1=\"28\" x2=\"32\" y2=\"20\"></line></svg> Ink &amp; Dye</a>\n    <a href=\"#outdoor\" class=\"qf-btn\" data-cat=\"outdoor\"><svg viewBox=\"0 0 52 52\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 38 L26 14 L38 38 Z\"></path><line x1=\"26\" y1=\"14\" x2=\"26\" y2=\"8\"></line><line x1=\"20\" y1=\"8\" x2=\"32\" y2=\"8\"></line></svg> Outdoor</a>\n    <a href=\"#wax-adhesive\" class=\"qf-btn\" data-cat=\"wax-adhesive\"><svg viewBox=\"0 0 52 52\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M26 10 L26 32\"></path><path d=\"M20 32 Q20 40 26 40 Q32 40 32 32 Z\"></path></svg> Wax &amp; Glue</a>\n    <a href=\"#limits\" class=\"qf-btn\" data-cat=\"limits\"><svg viewBox=\"0 0 52 52\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"26\" cy=\"26\" r=\"16\"></circle><line x1=\"16\" y1=\"16\" x2=\"36\" y2=\"36\" stroke-width=\"3\"></line></svg> Know Your Limits</a>\n    <a href=\"#quick-ref\" class=\"qf-btn\" data-cat=\"quick-ref\"><svg viewBox=\"0 0 52 52\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"10\" y=\"10\" width=\"32\" height=\"32\" rx=\"2\"></rect><line x1=\"17\" y1=\"20\" x2=\"35\" y2=\"20\"></line><line x1=\"17\" y1=\"26\" x2=\"35\" y2=\"26\"></line><line x1=\"17\" y1=\"32\" x2=\"28\" y2=\"32\"></line></svg> Quick Ref</a>\n  </div>\n</nav>\n<p class=\"seo-hidden\">Stain removal guide Kolkata dry cleaning laundry curry blood wine oil ink grass mould mildew silk wool professional doorstep pickup The Swiss Laundry.</p>\n\n<main id=\"main\">\n\n  <div class=\"legal-hero\" data-theme=\"dark\" role=\"banner\">\n    <span class=\"lh-ghost\" aria-hidden=\"true\">Stains</span>\n    <div class=\"lh-inner\">\n      <div class=\"lh-left\">\n        <p class=\"lh-eye\">The Swiss Laundry · Field Guide</p>\n        <h1 class=\"lh-title\">A Complete Guide<br>to <em>Stain Removal.</em></h1>\n        <p class=\"lh-meta\">8 chapters · 40 stains · 15 min read · The Swiss Laundry · Kolkata · Est. 2013</p>\n      </div>\n      <div class=\"lh-right\" aria-label=\"Contact information\">\n        <strong>The Swiss Laundry</strong>\n        Kasba Industrial Estate<br>\n        E.M. Bypass (East), Kolkata 700107<br><br>\n        Mon–Sat · 10AM–5PM<br>\n        +91 98362 33354\n      </div>\n    </div>\n  </div>\n  <div class=\"legal-threshold\" aria-hidden=\"true\"></div>\n\n  <div class=\"page-wrap\">\n    <div class=\"legal-outer\" data-theme=\"dark\">\n\n      <aside class=\"legal-sidebar\" aria-label=\"Guide navigation\">\n        <button class=\"mob-sidebar-toggle\" id=\"mobSidebarToggle\" aria-expanded=\"false\" aria-controls=\"tocList\">\n          Contents\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"></path></svg>\n        </button>\n        <span class=\"sidebar-label\">In this guide</span>\n        <ul class=\"toc-list\" id=\"tocList\" role=\"list\">\n          <li><a href=\"#rules\" class=\"toc-link\" data-target=\"rules\"><span class=\"toc-num\" aria-hidden=\"true\">1</span>The Rules That Matter Most</a></li><li><a href=\"#food-drink\" class=\"toc-link\" data-target=\"food-drink\"><span class=\"toc-num\" aria-hidden=\"true\">2</span>Food and Drink Stains</a></li><li><a href=\"#body-stains\" class=\"toc-link\" data-target=\"body-stains\"><span class=\"toc-num\" aria-hidden=\"true\">3</span>Blood and Body Stains</a></li><li><a href=\"#ink-dye\" class=\"toc-link\" data-target=\"ink-dye\"><span class=\"toc-num\" aria-hidden=\"true\">4</span>Ink and Dye Stains</a></li><li><a href=\"#outdoor\" class=\"toc-link\" data-target=\"outdoor\"><span class=\"toc-num\" aria-hidden=\"true\">5</span>Outdoor and Environmental Stains</a></li><li><a href=\"#wax-adhesive\" class=\"toc-link\" data-target=\"wax-adhesive\"><span class=\"toc-num\" aria-hidden=\"true\">6</span>Wax and Adhesive Stains</a></li><li><a href=\"#limits\" class=\"toc-link\" data-target=\"limits\"><span class=\"toc-num\" aria-hidden=\"true\">7</span>Knowing Your Limits</a></li><li><a href=\"#quick-ref\" class=\"toc-link\" data-target=\"quick-ref\"><span class=\"toc-num\" aria-hidden=\"true\">8</span>Quick Reference and FAQs</a></li>\n        </ul>\n        <a href=\"/pickup\" class=\"sidebar-cta\" aria-label=\"Book a laundry pickup with The Swiss Laundry\">\n          <span class=\"sidebar-cta-eye\">Got a stain?</span>\n          <span class=\"sidebar-cta-title\">We collect from your door.</span>\n          <span class=\"sidebar-cta-sub\">Doorstep pickup across all of Kolkata. Mon–Sat, 10AM–5PM.</span>\n          <span class=\"sidebar-cta-btn\">Book a Pickup <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" style=\"width:13px;height:13px\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg></span>\n        </a>\n      </aside>\n\n      <article class=\"legal-content\" aria-label=\"Stain removal guide\">\n        \n<p class=\"legal-intro\">Most stains can be treated at home — if you act quickly, use the right method, and know when to stop. This guide covers what you can do yourself and, just as importantly, when the garment belongs with us. The Swiss Laundry has been treating Kolkata's most difficult stains since 2013. We are always here when home treatment reaches its limit.</p>\n<div class=\"chapter\" id=\"rules\">\n  <div class=\"chapter-header\">\n    <span class=\"chapter-num\" aria-hidden=\"true\">1</span>\n    <h2 class=\"chapter-title\">The Rules That Matter Most</h2>\n  </div>\n  <p class=\"chapter-lead\">Before you touch a stain, read these. Breaking any one of them can make a removable stain permanent.</p>\n  \n<div class=\"warning-box\" role=\"alert\"><span class=\"box-icon\" aria-hidden=\"true\">⚠</span><div><span class=\"box-title\">The most important rule of all</span><p class=\"box-body\">If the garment is silk, wool, embroidered, structured, or labelled Dry Clean Only — do not treat it at home. Bring it to us immediately and tell us what the stain is. Every hour counts.</p></div></div>\n\n<table class=\"rule-table\" aria-label=\"Stain removal rules\">\n  <thead><tr><th>Rule</th><th>Why it matters</th><th>When to call us instead</th></tr></thead>\n  <tbody>\n    <tr><td class=\"td-name\">Act immediately</td><td>Fresh stains are almost always treatable. Stains left 24 hours begin to bond permanently with fibres.</td><td class=\"td-us\">If it has been more than 24 hours — we have professional solvents you do not.</td></tr>\n    <tr><td class=\"td-name\">Blot, never rub</td><td>Rubbing spreads the stain laterally and pushes it deeper into the weave. It also damages fabric surface.</td><td class=\"td-us\">If rubbing has already occurred — the stain may have spread. Tell us what happened.</td></tr>\n    <tr><td class=\"td-name\">Cold water on protein stains</td><td>Blood, egg, dairy, and sweat are protein-based. Hot water cooks the protein into the fibre — permanently.</td><td class=\"td-us\">If hot water has already touched a blood or egg stain — the protein may be set. Bring it to us.</td></tr>\n    <tr><td class=\"td-name\">Test any solution first</td><td>Apply to a hidden seam allowance. Wait 2 minutes. Some solutions remove dye from certain fabrics.</td><td class=\"td-us\">If a home solution has altered the fabric colour — bring it immediately. We may be able to correct it.</td></tr>\n    <tr><td class=\"td-name\">Know your limits</td><td>Some stains, fabrics, and combinations are beyond home treatment. Incorrect treatment permanently sets stains.</td><td class=\"td-us\">Always. Our 12-step process uses professional solvents, techniques, and equipment unavailable at home.</td></tr>\n  </tbody>\n</table>\n\n<div class=\"chapter-pro\">\n  <p class=\"chapter-pro-text\">When you are unsure — <span>stop</span>. An incorrect treatment is worse than no treatment. WhatsApp us a photo and our team will advise within working hours.</p>\n  <div class=\"chapter-pro-links\">\n    <a href=\"https://wa.me/919836233354?text=Hi+I+need+help+with+a+stain\" class=\"pro-link-pill pro-link-ghost\" target=\"_blank\" rel=\"noopener\"><svg style=\"width:14px;height:14px\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.99.574 3.842 1.565 5.404L2 22l4.596-1.565A9.96 9.96 0 0011.999 22C17.522 22 22 17.523 22 12s-4.478-10-10.001-10z\"></path></svg> WhatsApp a photo</a>\n    <a href=\"/pickup\" class=\"pro-link-pill pro-link-pink\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" style=\"width:13px;height:13px\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg> Book a pickup</a>\n  </div>\n</div>\n</div>\n<div class=\"chapter-divider\" aria-hidden=\"true\"></div><div class=\"chapter\" id=\"food-drink\">\n  <div class=\"chapter-header\">\n    <span class=\"chapter-num\" aria-hidden=\"true\">2</span>\n    <h2 class=\"chapter-title\">Food and Drink Stains</h2>\n  </div>\n  <p class=\"chapter-lead\">The most common category. The key is understanding whether you are dealing with an oil-based stain, a tannin stain, or a protein stain — each requires a different approach.</p>\n  \n<div class=\"stain-grid\">\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Curry &amp; Turmeric<span class=\"stain-badge badge-tough\">Difficult</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Scrape off any solids gently — do not rub.</p><p class=\"stain-step\"><strong>2.</strong> Flush with cold water from the back of the fabric.</p><p class=\"stain-step\"><strong>3.</strong> Apply a small amount of liquid dish soap. Work in with your fingertip.</p><p class=\"stain-step\"><strong>4.</strong> Rinse thoroughly. Repeat once if needed.</p><p class=\"stain-step\"><strong>5.</strong> Dry in direct sunlight — UV naturally fades turmeric.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Turmeric is one of the most aggressive stains on delicate fabric. On silk, wool, or anything embroidered — <a href=\"/pickup\">book a pickup immediately</a>. Do not attempt home treatment.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Red Wine<span class=\"stain-badge badge-tough\">Tannin</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Blot immediately with a clean white cloth. Do not rub.</p><p class=\"stain-step\"><strong>2.</strong> Pour cold sparkling water onto the stain — the carbonation helps lift it.</p><p class=\"stain-step\"><strong>3.</strong> Blot again from outside in.</p><p class=\"stain-step\"><strong>4.</strong> Apply a paste of salt and cold water. Leave 2 minutes, then rinse.</p><p class=\"stain-step\"><strong>5.</strong> If faint colour remains, dilute white vinegar in cold water and blot briefly.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">If on silk, linen, or a structured garment like a saree or suit — <a href=\"/pickup\">bring it to us</a>. We treat wine stains regularly and our results on delicate fabric are significantly better than home treatment.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Tea &amp; Coffee<span class=\"stain-badge badge-tough\">Tannin</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Blot immediately.</p><p class=\"stain-step\"><strong>2.</strong> Rinse with cold water from the back of the fabric.</p><p class=\"stain-step\"><strong>3.</strong> Mix one tablespoon liquid dish soap with two cups cold water. Apply and blot.</p><p class=\"stain-step\"><strong>4.</strong> Rinse thoroughly.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Old or dried tea stains on fine fabric are very stubborn. If this is on a saree, tablecloth, or formal wear — <a href=\"/pickup\">let us handle it</a>.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Oil &amp; Grease<span class=\"stain-badge badge-tough\">No water first</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Do not add water — it spreads oil further.</p><p class=\"stain-step\"><strong>2.</strong> Cover with talcum powder or cornstarch. Leave 15 minutes to absorb.</p><p class=\"stain-step\"><strong>3.</strong> Brush off gently. Apply dish soap directly to the stain.</p><p class=\"stain-step\"><strong>4.</strong> Work in with a soft brush. Rinse with warm water.</p><p class=\"stain-step\"><strong>5.</strong> Wash as the care label permits.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Old oil stains and oil on formal or structured garments belong with us. <a href=\"/pickup\">Book a pickup</a> — our solvent-based process removes oil stains that home treatment leaves behind.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Chocolate<span class=\"stain-badge badge-fresh\">Fresh</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Let it dry completely — wet chocolate spreads when touched.</p><p class=\"stain-step\"><strong>2.</strong> Once dry, scrape off the solid residue gently.</p><p class=\"stain-step\"><strong>3.</strong> Apply cold water from the back. Treat with dish soap.</p><p class=\"stain-step\"><strong>4.</strong> Rinse thoroughly.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">On fine fabric or if it has dried and been rubbed in — <a href=\"/pickup\">we will do better</a>.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Tomato Sauce<span class=\"stain-badge badge-fresh\">Fresh</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Remove solids with a spoon. Blot the excess.</p><p class=\"stain-step\"><strong>2.</strong> Rinse with cold water from the back.</p><p class=\"stain-step\"><strong>3.</strong> Apply liquid dish soap and work in gently.</p><p class=\"stain-step\"><strong>4.</strong> Rinse. If faint stain remains, dilute white vinegar in cold water and blot.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Tomato stains on white or pale fabric that do not fully clear with home treatment — we can take it further. <a href=\"/pickup\">Book a pickup</a>.</span>\n  </div>\n</div>\n</div>\n\n<div class=\"chapter-pro\">\n  <p class=\"chapter-pro-text\">Food stains on silk, wool, or occasion wear? <span>We collect from your door.</span> The sooner you send it, the better our result.</p>\n  <div class=\"chapter-pro-links\">\n    <a href=\"https://wa.me/919836233354?text=Hi+I+need+help+with+a+stain\" class=\"pro-link-pill pro-link-ghost\" target=\"_blank\" rel=\"noopener\"><svg style=\"width:14px;height:14px\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.99.574 3.842 1.565 5.404L2 22l4.596-1.565A9.96 9.96 0 0011.999 22C17.522 22 22 17.523 22 12s-4.478-10-10.001-10z\"></path></svg> Send us a photo first</a>\n    <a href=\"/pickup\" class=\"pro-link-pill pro-link-pink\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" style=\"width:13px;height:13px\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg> Book a pickup</a>\n  </div>\n</div>\n</div>\n<div class=\"chapter-divider\" aria-hidden=\"true\"></div><div class=\"chapter\" id=\"body-stains\">\n  <div class=\"chapter-header\">\n    <span class=\"chapter-num\" aria-hidden=\"true\">3</span>\n    <h2 class=\"chapter-title\">Blood and Body Stains</h2>\n  </div>\n  <p class=\"chapter-lead\">All body stains are protein-based. The single most important rule: cold water only. Hot water sets these permanently and no amount of professional treatment can fully reverse it.</p>\n  \n<div class=\"warning-box\" role=\"alert\"><span class=\"box-icon\" aria-hidden=\"true\">⚠</span><div><span class=\"box-title\">Cold water — always</span><p class=\"box-body\">Blood, sweat, egg, and dairy stains are protein-based. Hot water cooks the protein into the fabric permanently. This cannot be undone — not at home, not by us. Cold water only.</p></div></div>\n\n<div class=\"stain-grid\">\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Fresh Blood<span class=\"stain-badge badge-fresh\">Act within minutes</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Rinse immediately with cold water from the back of the fabric.</p><p class=\"stain-step\"><strong>2.</strong> Apply a small amount of 3% hydrogen peroxide. It will bubble — this is the protein reacting.</p><p class=\"stain-step\"><strong>3.</strong> Blot the foam with a clean white cloth.</p><p class=\"stain-step\"><strong>4.</strong> Rinse thoroughly with cold water. Repeat if needed.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">If blood has dried, or this is on silk, wool, or structured fabric — <a href=\"/pickup\">bring it to us immediately</a>. Tell us when it occurred and whether any hot water touched it.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Dried Blood<span class=\"stain-badge badge-tough\">Difficult</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Soak the area in cold salt water for 30 minutes.</p><p class=\"stain-step\"><strong>2.</strong> Work in a small amount of liquid detergent gently.</p><p class=\"stain-step\"><strong>3.</strong> Rinse with cold water. Repeat if needed.</p><p class=\"stain-step\"><strong>4.</strong> For stubborn dried blood: a paste of meat tenderiser powder and cold water applied for 30 minutes can break down the protein.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Dried blood on fine fabric is very likely to need professional treatment. <a href=\"/pickup\">Book a pickup</a> and tell us the approximate age of the stain.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Sweat &amp; Perspiration<span class=\"stain-badge badge-fresh\">Common</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Soak in cold water with a small amount of white vinegar for 30 minutes.</p><p class=\"stain-step\"><strong>2.</strong> Wash at the highest temperature the care label permits.</p><p class=\"stain-step\"><strong>3.</strong> For yellow underarm staining: apply a paste of bicarbonate of soda and water. Leave 1 hour before washing.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Persistent yellow underarm staining on formal shirts, sherwanis, or white garments — our process removes it reliably. <a href=\"/pickup\">Book a pickup</a>.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Makeup &amp; Foundation<span class=\"stain-badge badge-tough\">Oil-based</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Do not add water first — foundation is oil-based.</p><p class=\"stain-step\"><strong>2.</strong> Place a clean cloth behind the stain.</p><p class=\"stain-step\"><strong>3.</strong> Apply dish soap or micellar water directly.</p><p class=\"stain-step\"><strong>4.</strong> Work in gently with a soft brush.</p><p class=\"stain-step\"><strong>5.</strong> Rinse with cold water, then wash as normal.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Foundation on bridal wear, evening garments, or structured collars — these need professional care. <a href=\"/pickup\">We collect and return</a>.</span>\n  </div>\n</div>\n</div>\n\n<div class=\"chapter-pro\">\n  <p class=\"chapter-pro-text\">Body stains on your wedding outfit, sherwani, or silk? <span>Do not experiment.</span> Book a pickup and tell us everything — stain type, when it happened, what touched it.</p>\n  <div class=\"chapter-pro-links\">\n    <a href=\"https://wa.me/919836233354?text=Hi+I+need+help+with+a+stain\" class=\"pro-link-pill pro-link-ghost\" target=\"_blank\" rel=\"noopener\"><svg style=\"width:14px;height:14px\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.99.574 3.842 1.565 5.404L2 22l4.596-1.565A9.96 9.96 0 0011.999 22C17.522 22 22 17.523 22 12s-4.478-10-10.001-10z\"></path></svg> WhatsApp us first</a>\n    <a href=\"/pickup\" class=\"pro-link-pill pro-link-pink\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" style=\"width:13px;height:13px\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg> Book a pickup</a>\n  </div>\n</div>\n</div>\n<div class=\"chapter-divider\" aria-hidden=\"true\"></div><div class=\"chapter\" id=\"ink-dye\">\n  <div class=\"chapter-header\">\n    <span class=\"chapter-num\" aria-hidden=\"true\">4</span>\n    <h2 class=\"chapter-title\">Ink, Dye and Colour Stains</h2>\n  </div>\n  <p class=\"chapter-lead\">Ink and dye stains are among the hardest to treat at home. Act within seconds if you can — the bonding process with fabric fibres begins almost immediately.</p>\n  \n<div class=\"stain-grid\">\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Ballpoint Pen<span class=\"stain-badge badge-tough\">Oil-based ink</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Place a clean cloth beneath the stain to absorb.</p><p class=\"stain-step\"><strong>2.</strong> Apply a small amount of rubbing alcohol or hand sanitiser.</p><p class=\"stain-step\"><strong>3.</strong> Blot — do not rub. The alcohol dissolves the oil carrier in the ink.</p><p class=\"stain-step\"><strong>4.</strong> Rinse with cold water. Repeat until the stain fades.</p><p class=\"stain-step\"><strong>5.</strong> Wash as normal.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Test alcohol on a hidden seam first — it can remove dye on some synthetics. On silk or delicate fabric, <a href=\"/pickup\">bring it to us</a>.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Gel Pen &amp; Marker<span class=\"stain-badge badge-fresh\">Water-based</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Rinse immediately with cold water from the back of the fabric.</p><p class=\"stain-step\"><strong>2.</strong> Apply liquid detergent and work in gently.</p><p class=\"stain-step\"><strong>3.</strong> Rinse thoroughly. Wash as normal.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Marker ink that has dried or is on fine fabric — <a href=\"/pickup\">professional treatment is more effective</a>.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Printer Ink<span class=\"stain-badge badge-tough\">Difficult</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Blot immediately — do not rub.</p><p class=\"stain-step\"><strong>2.</strong> Apply rubbing alcohol carefully. Blot and rinse.</p><p class=\"stain-step\"><strong>3.</strong> Repeat. Printer ink is very difficult to remove completely at home.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Printer cartridge ink almost always requires professional solvents to remove fully. <a href=\"/pickup\">Book a pickup</a> and tell us the printer type if you know it.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Colour Bleed / Dye Transfer<span class=\"stain-badge badge-tough\">Very difficult</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Soak in cold water immediately.</p><p class=\"stain-step\"><strong>2.</strong> Do not put in the dryer — heat permanently sets transferred dye.</p><p class=\"stain-step\"><strong>3.</strong> Oxygen-based stain remover may help on white or light fabrics.</p><p class=\"stain-step\"><strong>4.</strong> For coloured fabrics: dye transfer is extremely difficult to reverse.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Once heat-dried, dye transfer is usually permanent. If it has not been dried yet — <a href=\"/pickup\">book an urgent pickup</a>. Speed is everything here.</span>\n  </div>\n</div>\n</div>\n\n<div class=\"chapter-pro\">\n  <p class=\"chapter-pro-text\">Ink on a formal shirt, uniform, or fine fabric? <span>We use professional solvents</span> that are not available over the counter. WhatsApp a photo — we will be honest about what is achievable.</p>\n  <div class=\"chapter-pro-links\">\n    <a href=\"https://wa.me/919836233354?text=Hi+I+need+help+with+a+stain\" class=\"pro-link-pill pro-link-ghost\" target=\"_blank\" rel=\"noopener\"><svg style=\"width:14px;height:14px\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.99.574 3.842 1.565 5.404L2 22l4.596-1.565A9.96 9.96 0 0011.999 22C17.522 22 22 17.523 22 12s-4.478-10-10.001-10z\"></path></svg> WhatsApp a photo</a>\n    <a href=\"/pickup\" class=\"pro-link-pill pro-link-pink\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" style=\"width:13px;height:13px\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg> Book a pickup</a>\n  </div>\n</div>\n</div>\n<div class=\"chapter-divider\" aria-hidden=\"true\"></div><div class=\"chapter\" id=\"outdoor\">\n  <div class=\"chapter-header\">\n    <span class=\"chapter-num\" aria-hidden=\"true\">5</span>\n    <h2 class=\"chapter-title\">Outdoor and Environmental Stains</h2>\n  </div>\n  <p class=\"chapter-lead\">Grass, mud, rust, and mildew. In Kolkata, humidity between June and September makes mildew a particular concern — garments that are stored even slightly damp can develop mould within days.</p>\n  \n<div class=\"stain-grid\">\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Grass<span class=\"stain-badge badge-tough\">Tannin + protein</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Do not wet the stain first.</p><p class=\"stain-step\"><strong>2.</strong> Apply rubbing alcohol or white vinegar. Blot gently.</p><p class=\"stain-step\"><strong>3.</strong> Rinse with cold water.</p><p class=\"stain-step\"><strong>4.</strong> Apply liquid detergent and work in gently.</p><p class=\"stain-step\"><strong>5.</strong> Wash at the highest temperature the care label permits.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Grass on light-coloured or fine fabric that does not fully clear — <a href=\"/pickup\">bring it to us</a>. Avoid bleach on coloured fabric.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Mud<span class=\"stain-badge badge-fresh\">Let it dry first</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Allow the mud to dry completely before touching it — treating wet mud spreads it significantly.</p><p class=\"stain-step\"><strong>2.</strong> Brush off the dried mud with a soft brush.</p><p class=\"stain-step\"><strong>3.</strong> Apply liquid detergent to the remaining mark.</p><p class=\"stain-step\"><strong>4.</strong> Wash as normal.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Mud on leather shoes, suede, or structured fabric — do not attempt home treatment. <a href=\"/pickup\">We handle leather and suede professionally</a>.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Rust<span class=\"stain-badge badge-tough\">Metallic</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Apply lemon juice to the stain. Leave in direct sunlight for 30–45 minutes.</p><p class=\"stain-step\"><strong>2.</strong> Alternatively, use a fabric-safe rust remover (available at chemists).</p><p class=\"stain-step\"><strong>3.</strong> Rinse thoroughly with cold water.</p><p class=\"stain-step\"><strong>4.</strong> Wash as normal.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Never use chlorine bleach on rust — it permanently sets the stain. Old rust on fine fabric should come to us. <a href=\"/pickup\">Book a pickup</a>.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Mildew &amp; Mould<span class=\"stain-badge badge-tough\">Monsoon problem</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Brush off surface mould outside — never indoors, as spores spread.</p><p class=\"stain-step\"><strong>2.</strong> Soak in 1 part white vinegar to 2 parts water for 1 hour.</p><p class=\"stain-step\"><strong>3.</strong> Wash at the highest temperature the care label permits.</p><p class=\"stain-step\"><strong>4.</strong> Dry completely in direct sunlight — UV kills remaining spores.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Extensive mildew, or mildew on silk, wool, or structured garments, causes permanent fibre damage if untreated. <a href=\"/pickup\">Send it to us immediately</a> and tell us how long it has been affected.</span>\n  </div>\n</div>\n</div>\n\n<div class=\"tip-box\" role=\"note\"><span class=\"box-icon\" aria-hidden=\"true\">💡</span><div><span class=\"box-title\">Monsoon storage in Kolkata</span><p class=\"box-body\">Store garments only when completely dry. Use moisture absorbers in wardrobes. Check stored garments every 3–4 weeks during monsoon months. If you find mildew, contact us before it spreads further.</p></div></div>\n\n<div class=\"chapter-pro\">\n  <p class=\"chapter-pro-text\">Monsoon has affected your stored garments? <span>Early treatment makes all the difference.</span> We collect, assess, and advise before proceeding.</p>\n  <div class=\"chapter-pro-links\">\n    <a href=\"https://wa.me/919836233354?text=Hi+I+need+help+with+a+stain\" class=\"pro-link-pill pro-link-ghost\" target=\"_blank\" rel=\"noopener\"><svg style=\"width:14px;height:14px\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.99.574 3.842 1.565 5.404L2 22l4.596-1.565A9.96 9.96 0 0011.999 22C17.522 22 22 17.523 22 12s-4.478-10-10.001-10z\"></path></svg> WhatsApp a photo</a>\n    <a href=\"/pickup\" class=\"pro-link-pill pro-link-pink\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" style=\"width:13px;height:13px\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg> Book a pickup</a>\n  </div>\n</div>\n</div>\n<div class=\"chapter-divider\" aria-hidden=\"true\"></div><div class=\"chapter\" id=\"wax-adhesive\">\n  <div class=\"chapter-header\">\n    <span class=\"chapter-num\" aria-hidden=\"true\">6</span>\n    <h2 class=\"chapter-title\">Wax, Glue and Adhesive Stains</h2>\n  </div>\n  <p class=\"chapter-lead\">These stains need a different approach — hardening or dissolving before removal. Never try to pull off wax or glue while warm.</p>\n  \n<div class=\"stain-grid\">\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Candle Wax<span class=\"stain-badge badge-fresh\">Freeze first</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Place the garment in the freezer for 30 minutes to harden the wax completely.</p><p class=\"stain-step\"><strong>2.</strong> Gently break off the hardened wax with your fingers.</p><p class=\"stain-step\"><strong>3.</strong> Place absorbent paper above and below the stain.</p><p class=\"stain-step\"><strong>4.</strong> Apply a warm iron over the paper — residual wax transfers into the paper.</p><p class=\"stain-step\"><strong>5.</strong> Replace paper and repeat until no more wax transfers.</p><p class=\"stain-step\"><strong>6.</strong> Treat any remaining colour with a small amount of rubbing alcohol.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Wax on silk, embroidered fabric, or formal wear — <a href=\"/pickup\">bring it to us</a>. The heat required for wax removal can damage delicate fabric if applied incorrectly.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Chewing Gum<span class=\"stain-badge badge-fresh\">Harden first</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Harden with ice or place the garment in the freezer.</p><p class=\"stain-step\"><strong>2.</strong> Peel or scrape off the hardened gum.</p><p class=\"stain-step\"><strong>3.</strong> Treat any residue with a small amount of rubbing alcohol.</p><p class=\"stain-step\"><strong>4.</strong> Wash as normal.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Residue that does not clear with alcohol on fine fabric — <a href=\"/pickup\">we can take it further</a>.</span>\n  </div>\n</div>\n\n<div class=\"stain-card\">\n  <h3 class=\"stain-name\">Super Glue<span class=\"stain-badge badge-tough\">Very difficult</span></h3>\n  <p class=\"stain-step\"><strong>1.</strong> Do not try to peel dry super glue — it will tear the fabric.</p><p class=\"stain-step\"><strong>2.</strong> Apply acetone (nail polish remover) carefully. Test on a hidden area first.</p><p class=\"stain-step\"><strong>3.</strong> Work gently from outside in.</p><p class=\"stain-step\"><strong>4.</strong> Rinse thoroughly after.</p>\n  <div class=\"pro-trigger\">\n    <span class=\"pro-trigger-icon\" aria-hidden=\"true\">🧵</span>\n    <span class=\"pro-trigger-text\">Acetone damages acetate, triacetate, and modacrylic fabrics. Any super glue on silk or wool must come to us. <a href=\"/pickup\">Book a pickup</a>.</span>\n  </div>\n</div>\n</div>\n\n<div class=\"chapter-pro\">\n  <p class=\"chapter-pro-text\">Wax, glue, or adhesive on occasion wear? <span>One wrong step can damage the fabric permanently.</span> Let us assess it first.</p>\n  <div class=\"chapter-pro-links\">\n    <a href=\"https://wa.me/919836233354?text=Hi+I+need+help+with+a+stain\" class=\"pro-link-pill pro-link-ghost\" target=\"_blank\" rel=\"noopener\"><svg style=\"width:14px;height:14px\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.99.574 3.842 1.565 5.404L2 22l4.596-1.565A9.96 9.96 0 0011.999 22C17.522 22 22 17.523 22 12s-4.478-10-10.001-10z\"></path></svg> Send us a photo</a>\n    <a href=\"/pickup\" class=\"pro-link-pill pro-link-pink\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" style=\"width:13px;height:13px\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg> Book a pickup</a>\n  </div>\n</div>\n</div>\n<div class=\"chapter-divider\" aria-hidden=\"true\"></div><div class=\"chapter\" id=\"limits\">\n  <div class=\"chapter-header\">\n    <span class=\"chapter-num\" aria-hidden=\"true\">7</span>\n    <h2 class=\"chapter-title\">Knowing Your Limits</h2>\n  </div>\n  <p class=\"chapter-lead\">Home treatment is appropriate for many stains on washable everyday cotton and synthetic fabrics. The table below tells you clearly when to stop and call us. No shame in it — professional cleaning exists precisely for these situations.</p>\n  \n<table class=\"rule-table\" aria-label=\"When to use professional dry cleaning\">\n  <thead><tr><th>Situation</th><th>The risk of home treatment</th><th>What we do</th></tr></thead>\n  <tbody>\n    <tr><td class=\"td-name\">Silk, wool, or embroidered fabric</td><td>Water and common chemicals damage these fabrics irreversibly. Shrinkage, colour loss, pile damage.</td><td class=\"td-us\">Professional dry solvent process. No water. No risk.</td></tr>\n    <tr><td class=\"td-name\">Dry Clean Only label</td><td>The construction or lining requires dry cleaning. Washing can distort the shape permanently.</td><td class=\"td-us\">We follow the label. Every time.</td></tr>\n    <tr><td class=\"td-name\">Stain older than 24 hours</td><td>The stain has begun bonding with fibres. Household detergents are rarely strong enough.</td><td class=\"td-us\">Professional solvents matched to the stain type.</td></tr>\n    <tr><td class=\"td-name\">You have already tried at home</td><td>Previous treatment affects which solvents we can safely use. Tell us exactly what you applied.</td><td class=\"td-us\">We assess first, then choose the right method.</td></tr>\n    <tr><td class=\"td-name\">Wedding or occasion wear</td><td>These garments have zero margin for error. One wrong treatment and the damage cannot be undone.</td><td class=\"td-us\">We have cleaned lehengas, sherwanis, and bridal sarees for over a decade.</td></tr>\n    <tr><td class=\"td-name\">Stain type unknown</td><td>Treating an oil stain with a protein method — or vice versa — sets it permanently.</td><td class=\"td-us\">We identify before we treat. Always.</td></tr>\n    <tr><td class=\"td-name\">Stain has not shifted after two attempts</td><td>Repeated home treatment can lock the stain in further. Two attempts is enough.</td><td class=\"td-us\">Stop at home. Call us. We often succeed where home treatment has failed.</td></tr>\n  </tbody>\n</table>\n\n<div class=\"tip-box\" role=\"note\"><span class=\"box-icon\" aria-hidden=\"true\">💡</span><div><span class=\"box-title\">Tell us everything when you bring a garment</span><p class=\"box-body\">What the stain is, when it happened, and what you have already applied. This information directly determines what we can use and what we can achieve. The more we know, the better our result.</p></div></div>\n\n<div class=\"chapter-pro\">\n  <p class=\"chapter-pro-text\">Stain that has not moved? <span>Two home attempts is the limit.</span> After that, every attempt locks it further. Book a pickup and let our team take over.</p>\n  <div class=\"chapter-pro-links\">\n    <a href=\"https://wa.me/919836233354?text=Hi+I+need+help+with+a+stain\" class=\"pro-link-pill pro-link-ghost\" target=\"_blank\" rel=\"noopener\"><svg style=\"width:14px;height:14px\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.99.574 3.842 1.565 5.404L2 22l4.596-1.565A9.96 9.96 0 0011.999 22C17.522 22 22 17.523 22 12s-4.478-10-10.001-10z\"></path></svg> WhatsApp a photo first</a>\n    <a href=\"/pickup\" class=\"pro-link-pill pro-link-pink\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" style=\"width:13px;height:13px\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg> Book a pickup</a>\n  </div>\n</div>\n</div>\n<div class=\"chapter-divider\" aria-hidden=\"true\"></div><div class=\"chapter\" id=\"quick-ref\">\n  <div class=\"chapter-header\">\n    <span class=\"chapter-num\" aria-hidden=\"true\">8</span>\n    <h2 class=\"chapter-title\">Quick Reference and FAQs</h2>\n  </div>\n  <p class=\"chapter-lead\">A one-page lookup for the most common stains, and the questions we are most often asked.</p>\n  \n<table class=\"rule-table\" aria-label=\"Quick stain removal reference\">\n  <thead><tr><th>Stain</th><th>First action</th><th>Use at home</th><th>Come to us if...</th></tr></thead>\n  <tbody>\n    <tr><td class=\"td-name\">Blood</td><td>Cold water immediately</td><td>Cold water, hydrogen peroxide</td><td class=\"td-us\">Dried, on silk or wool, or hot water has touched it</td></tr>\n    <tr><td class=\"td-name\">Red wine</td><td>Blot — do not rub</td><td>Salt, soda water, vinegar</td><td class=\"td-us\">On fine fabric, or home treatment has not shifted it</td></tr>\n    <tr><td class=\"td-name\">Curry / turmeric</td><td>Scrape, cold water</td><td>Dish soap, sunlight</td><td class=\"td-us\">On silk, wool, or any delicate fabric — immediately</td></tr>\n    <tr><td class=\"td-name\">Oil / grease</td><td>Talcum powder — no water first</td><td>Talc, dish soap</td><td class=\"td-us\">On formal or structured garments, or if it has dried</td></tr>\n    <tr><td class=\"td-name\">Ink</td><td>Blot immediately</td><td>Rubbing alcohol (ballpoint)</td><td class=\"td-us\">On silk or delicate fabric, or printer / marker ink</td></tr>\n    <tr><td class=\"td-name\">Mud</td><td>Let it dry — do not touch</td><td>Brush when dry, then detergent</td><td class=\"td-us\">On leather, suede, or structured fabric</td></tr>\n    <tr><td class=\"td-name\">Wax</td><td>Freeze to harden</td><td>Ice, paper and warm iron</td><td class=\"td-us\">On silk, embroidered, or formal wear</td></tr>\n    <tr><td class=\"td-name\">Mildew</td><td>Brush off outside</td><td>White vinegar, sunlight</td><td class=\"td-us\">Extensive growth, or on silk and wool</td></tr>\n    <tr><td class=\"td-name\">Rust</td><td>Lemon juice in sunlight</td><td>Fabric-safe rust remover</td><td class=\"td-us\">Old rust stains, or on fine fabric</td></tr>\n    <tr><td class=\"td-name\">Lipstick</td><td>No water first</td><td>Dish soap, micellar water</td><td class=\"td-us\">On bridal or evening wear</td></tr>\n  </tbody>\n</table>\n\n<div class=\"guide-faq\" role=\"region\" aria-label=\"Frequently asked questions\">\n  <h3 style=\"font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(20px,2.5vw,28px);color:var(--txt);margin-bottom:1.2rem\">Common questions</h3>\n  <div class=\"gfaq-item open\">\n  <button class=\"gfaq-q\" aria-expanded=\"true\">Can all stains be removed at home?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" class=\"gfaq-icon\"><path d=\"M12 5v14M5 12h14\"></path></svg></button>\n  <p class=\"gfaq-a\">No. Many fresh stains on washable fabric respond well to home treatment. But set stains, stains on delicate fabric, and certain stain types require professional dry cleaning. Attempting the wrong treatment at home can make a stain permanent — which is why knowing your limits matters as much as knowing the technique.</p>\n</div>\n  <div class=\"gfaq-item\">\n  <button class=\"gfaq-q\" aria-expanded=\"false\">When should I take a stained garment to The Swiss Laundry?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" class=\"gfaq-icon\"><path d=\"M12 5v14M5 12h14\"></path></svg></button>\n  <p class=\"gfaq-a\">Immediately for silk, wool, embroidered, or structured garments. Also for any stain older than 24 hours, any stain you cannot identify, and any stain that has not responded to two home attempts. We offer doorstep pickup across all of Kolkata — call 9836233354 or book online.</p>\n</div>\n  <div class=\"gfaq-item\">\n  <button class=\"gfaq-q\" aria-expanded=\"false\">Should I use hot or cold water?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" class=\"gfaq-icon\"><path d=\"M12 5v14M5 12h14\"></path></svg></button>\n  <p class=\"gfaq-a\">Always cold water on protein stains — blood, egg, dairy, sweat. Hot water permanently sets protein. For oil and tannin stains, warm water is fine. When unsure, cold water is always the safer choice.</p>\n</div>\n  <div class=\"gfaq-item\">\n  <button class=\"gfaq-q\" aria-expanded=\"false\">Does rubbing make it worse?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" class=\"gfaq-icon\"><path d=\"M12 5v14M5 12h14\"></path></svg></button>\n  <p class=\"gfaq-a\">Yes — significantly. Rubbing spreads the stain, pushes it deeper into the weave, and abrades the fabric surface. Always blot gently from the outer edge towards the centre.</p>\n</div>\n  <div class=\"gfaq-item\">\n  <button class=\"gfaq-q\" aria-expanded=\"false\">What should I tell The Swiss Laundry when I bring a stained garment?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" class=\"gfaq-icon\"><path d=\"M12 5v14M5 12h14\"></path></svg></button>\n  <p class=\"gfaq-a\">Tell us everything: what the stain is, when it happened, whether you applied anything at home and what it was. This directly determines what treatment we use and what result we can achieve.</p>\n</div>\n</div>\n\n<div class=\"helpful-block\" role=\"group\">\n  <span class=\"helpful-label\">Was this guide useful?</span>\n  <button class=\"helpful-btn\" data-helpful=\"yes\">Yes, very helpful</button>\n  <button class=\"helpful-btn\" data-helpful=\"no\">I still have a question</button>\n  <span class=\"helpful-thanks\">Thank you — share this with someone who needs it.</span>\n</div>\n\n<div style=\"margin-top:1.5rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap\">\n  <span style=\"font-family:var(--sans);font-size:11px;color:var(--txt3)\">Share this guide</span>\n  <a href=\"https://wa.me/?text=Stain+Removal+Guide+by+The+Swiss+Laundry+Kolkata+https://www.theswisslaundry.com/stain-removal\" class=\"wa-share\" target=\"_blank\" rel=\"noopener\"><svg style=\"width:14px;height:14px\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.99.574 3.842 1.565 5.404L2 22l4.596-1.565A9.96 9.96 0 0011.999 22C17.522 22 22 17.523 22 12s-4.478-10-10.001-10z\"></path></svg> Share on WhatsApp</a>\n</div>\n</div>\n<div class=\"chapter-divider\" aria-hidden=\"true\"></div>\n      </article>\n\n    </div>\n  </div>\n\n</main>\n\n<a href=\"https://wa.me/919836233354?text=Hi%2C+I+need+help+with+a+stain\" class=\"wa-float\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Chat on WhatsApp\">\n  <svg viewBox=\"0 0 24 24\" fill=\"#fff\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.99.574 3.842 1.565 5.404L2 22l4.596-1.565A9.96 9.96 0 0011.999 22C17.522 22 22 17.523 22 12s-4.478-10-10.001-10z\"></path></svg>\n  <span class=\"wa-tooltip\">Chat on WhatsApp</span>\n</a>\n<!-- Sticky booking pill — mobile only, hidden on /pickup -->\n<a href=\"/pickup\" class=\"book-pill\" id=\"bookPill\" aria-label=\"Book a pickup\">\n  <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg>\n  Book Pickup · 2 min\n</a>\n\n\n<script src=\"https://cdn.jsdelivr.net/npm/@studio-freight/lenis@1.0.42/dist/lenis.min.js\"></script>\n<script src=\"https://cdn.jsdelivr.net/npm/@studio-freight/lenis@1.0.42/dist/lenis.min.js\"></script>"
}
