{
  "title": "The science of stain removal | The Swiss Laundry",
  "description": "Turmeric, wine, blood, oil, rust, ink. Each stain has a different chemistry and responds to different treatment.",
  "keywords": "",
  "robots": "index,follow,max-snippet:-1,max-image-preview:large",
  "canonical": "https://www.theswisslaundry.com/blog-stain-removal-science",
  "hreflangs": [
    {
      "hreflang": "en-IN",
      "href": "https://www.theswisslaundry.com/blog-stain-removal-science"
    },
    {
      "hreflang": "en",
      "href": "https://www.theswisslaundry.com/blog-stain-removal-science"
    }
  ],
  "og": {
    "type": "article",
    "title": "The science of stain removal — why some stains come out and some do not. — The Record",
    "description": "Turmeric, wine, blood, oil, rust, ink. Each stain has a different chemistry and responds to different treatment. The science behind why some stains are permanent and others are not — and what the timing and treatment decisions mean for the outcome.",
    "url": "https://www.theswisslaundry.com/blog-stain-removal-science",
    "image": "https://www.theswisslaundry.com/images/og-default.svg",
    "image:width": "1200",
    "image:height": "630",
    "site_name": "The Swiss Laundry",
    "locale": "en_IN"
  },
  "geo": {
    "region": "IN-WB",
    "placename": "Kolkata"
  },
  "jsonLd": [
    [
      {
        "@context": "https://schema.org",
        "@type": "Article",
        "headline": "The science of stain removal — why some stains come out and some do not.",
        "description": "Turmeric, wine, blood, oil, rust, ink. Each stain has a different chemistry and responds to different treatment. The science behind why some stains are permanent and others are not — and what the timing and treatment decisions mean for the outcome.",
        "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/favicon.svg"
          }
        },
        "url": "https://www.theswisslaundry.com/blog-stain-removal-science",
        "datePublished": "2026-02-11",
        "dateModified": "2026-02-11",
        "mainEntityOfPage": {
          "@type": "WebPage",
          "@id": "https://www.theswisslaundry.com/blog-stain-removal-science"
        },
        "keywords": "stain removal science India, how to remove turmeric stain silk, dry cleaning stain removal, why some stains are permanent, blood stain removal fabric, wine stain silk India",
        "articleSection": "AEO",
        "wordCount": 1850
      },
      {
        "@context": "https://schema.org",
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Home",
            "item": "https://www.theswisslaundry.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "The Record",
            "item": "https://www.theswisslaundry.com/blog"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "The science of stain removal — why some stains come out and some do not.",
            "item": "https://www.theswisslaundry.com/blog-stain-removal-science"
          }
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "LocalBusiness",
        "name": "The Swiss Laundry",
        "telephone": "+919836233354",
        "url": "https://www.theswisslaundry.com",
        "openingHours": "Mo-Sa 10:00-17:00",
        "priceRange": "₹₹",
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": "4.5",
          "reviewCount": "200",
          "bestRating": "5"
        },
        "address": {
          "@type": "PostalAddress",
          "streetAddress": "P-4 Kasba Industrial Estate, Phase III, E.M. Bypass (East)",
          "addressLocality": "Kolkata",
          "addressRegion": "West Bengal",
          "postalCode": "700107",
          "addressCountry": "IN"
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "FAQPage",
        "mainEntity": [
          {
            "@type": "Question",
            "name": "Why can some stains be removed but not others?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Stain removal depends on breaking the chemical bond between the stain molecule and the fabric fibre. Some bonds are weak and break easily with the right solvent or surfactant. Others are strong — turmeric's curcumin forms a covalent bond with silk protein that is very difficult to break without damaging the fibre itself. Age also matters: fresh stains have not yet fully bonded; old stains have."
            }
          },
          {
            "@type": "Question",
            "name": "What is the worst thing you can do to a stain before bringing it to a dry cleaner?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Apply heat — rubbing vigorously (which creates heat), ironing over the stain, or putting the garment in a hot wash. Heat causes protein stains (blood, milk, egg) to denature and permanently bond with the fabric. It also causes some food dyes to set. The second worst thing is applying water to a silk garment with an oil-based stain — water causes the stain area to spread before it sets."
            }
          },
          {
            "@type": "Question",
            "name": "Can turmeric be completely removed from silk?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Rarely, if the stain is old. Curcumin, the active compound in turmeric, forms a strong bond with protein fibres (silk, wool) through multiple interaction points. Fresh turmeric on silk — treated within hours — can often be removed to invisibility. Turmeric that has been on silk for a day or more progressively forms more bonds. After a week, complete removal is unlikely; significant improvement is usually achievable."
            }
          },
          {
            "@type": "Question",
            "name": "Why do dry cleaners say a stain might not come out before cleaning?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Professional dry cleaners who tell you a stain might not come out are giving you honest information about the stain chemistry and the realistic outcome. It is not a disclaimer — it is technical information about what has happened to the fibre at the molecular level. A cleaner who guarantees complete removal of all stains regardless of age or type is either uninformed or dishonest."
            }
          },
          {
            "@type": "Question",
            "name": "Is there anything I can do to a stain immediately after it happens to help the dry cleaner?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Yes. Blot (never rub) with a clean dry cloth to absorb excess liquid. For wet stains on silk, blotting quickly prevents the stain from spreading. Do not apply water or any other liquid. Do not rub. Keep the garment dry and flat until you can bring it to a professional. Call or WhatsApp us on 9836233354 for specific advice on your stain and fabric."
            }
          }
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "SpeakableSpecification",
        "cssSelector": [
          ".hero-summary",
          ".glance-points",
          ".faq-q"
        ]
      }
    ]
  ],
  "styleCss": "[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\n*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}\n*{-webkit-tap-highlight-color:transparent}\n:root{\n  --dark:#0c0b0a;--ink:#1a1918;--gold:#C9A84C;--gold-l:#E2C97E;\n  --gold-b:rgba(201,168,76,.25);--gold-a:rgba(201,168,76,.09);\n  --cream:#F5F0E8;--off:#FAFAF8;--white:#ffffff;\n  --muted:rgba(26,25,24,.48);--pink:#C0415A;\n  --bana:#8B1A1A;--bana-l:rgba(139,26,26,.08);\n  --s:'Cormorant Garamond',Georgia,serif;\n  --ss:'Jost','Helvetica Neue',Arial,sans-serif;\n  --ease:cubic-bezier(.16,1,.3,1);\n  --sh:0 2px 8px rgba(26,25,24,.06),0 8px 28px rgba(26,25,24,.09);\n  --sh2:0 4px 16px rgba(26,25,24,.07),0 20px 56px rgba(26,25,24,.11);\n}\nhtml{scroll-behavior:smooth;overflow-x:hidden}\nbody{font-family:var(--ss);background:var(--off);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}\n::-webkit-scrollbar{width:2px}::-webkit-scrollbar-thumb{background:var(--gold-b)}\n:focus-visible{outline:2px solid var(--gold);outline-offset:3px}\nbody::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9997;opacity:.013;\n  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\");\n  background-size:128px;mix-blend-mode:multiply}\n.skip-link{position:absolute;left:-999px;width:1px;height:1px;overflow:hidden}\n.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;padding:.5rem 1rem;background:var(--gold);color:var(--ink);z-index:9999}\n.seo-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}\n.scroll-bar{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--gold),var(--gold-l));z-index:9999;width:0}\n[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s var(--ease)}\n[data-reveal].in{opacity:1;transform:none}\n@media(scripting:none){[data-reveal]{opacity:1!important;transform:none!important}}\n.btn{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--ss);font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;border:none;cursor:pointer;text-decoration:none;transition:background .2s,transform .15s,box-shadow .2s}\n.btn svg{flex-shrink:0}\n.btn-g{background:var(--gold);color:var(--ink);padding:.8rem 1.8rem}\n.btn-g:hover{background:var(--gold-l);transform:translateY(-1px);box-shadow:0 4px 16px rgba(201,168,76,.3)}\n.btn-dk{background:var(--ink);color:var(--gold);padding:.85rem 2rem}\n.btn-dk:hover{background:#000}\n.btn-ol{background:transparent;color:rgba(245,240,232,.7);padding:.8rem 1.6rem;border:1px solid rgba(245,240,232,.22)}\n.btn-ol:hover{color:var(--cream);border-color:rgba(245,240,232,.5)}\n.btn-row{display:flex;gap:.6rem;flex-wrap:wrap}\n/* hero */\n.bsc-hero{min-height:100svh;background:var(--dark);display:flex;flex-direction:column;justify-content:flex-end;padding:0 8vw 5rem;position:relative;overflow:hidden}\n.bsc-hero::before{content:'';position:absolute;inset:0;pointer-events:none;\n  background:radial-gradient(ellipse 60% 50% at 80% 30%,rgba(139,26,26,.08) 0%,transparent 60%),\n  radial-gradient(circle,rgba(201,168,76,.04) 1px,transparent 1px);\n  background-size:100% 100%,32px 32px}\n.bsc-bg-word{position:absolute;bottom:-0.1em;right:3vw;font-family:var(--s);font-style:italic;font-weight:300;font-size:clamp(130px,20vw,300px);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(201,168,76,.06);pointer-events:none;user-select:none;z-index:1;letter-spacing:-.05em}\n.bsc-eyebrow{font-family:var(--ss);font-size:10px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:.8rem;margin-bottom:1.8rem;position:relative;z-index:2}\n.bsc-eyebrow::before{content:'';width:24px;height:1px;background:var(--gold);flex-shrink:0}\n.bsc-h1{font-family:var(--s);font-style:italic;font-weight:300;font-size:clamp(44px,7vw,100px);line-height:.88;letter-spacing:-.04em;color:var(--cream);margin-bottom:2rem;position:relative;z-index:2;max-width:860px}\n.bsc-h1 em{font-style:normal;color:var(--gold)}\n.bsc-lead{font-size:clamp(14px,1.4vw,17px);font-weight:300;color:rgba(245,240,232,.6);line-height:1.85;max-width:540px;margin-bottom:2.5rem;position:relative;z-index:2}\n.bsc-hero-btns{position:relative;z-index:2}\n.bsc-strip{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(201,168,76,.15);margin-top:4rem}\n.bsc-stat{padding:1.4rem 0;border-right:1px solid rgba(201,168,76,.1)}\n.bsc-stat:last-child{border-right:none}\n.bsc-stat-n{font-family:var(--s);font-style:italic;font-weight:300;font-size:clamp(18px,2.8vw,34px);color:var(--gold);display:block;line-height:1;letter-spacing:-.02em}\n.bsc-stat-l{font-family:var(--ss);font-size:9px;font-weight:300;letter-spacing:.18em;text-transform:uppercase;color:rgba(245,240,232,.35);display:block;margin-top:.3rem}\n/* def box */\n.bsc-def-sec{background:var(--cream);padding:6rem 8vw}\n.bsc-def-inner{max-width:860px;margin:0 auto}\n.bsc-def-box{border:1px solid rgba(201,168,76,.35);border-left:4px solid var(--gold);padding:2.2rem 2.5rem 2.2rem 2.2rem;background:var(--white);margin-bottom:2rem}\n.bsc-def-label{font-family:var(--ss);font-size:9px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:.8rem}\n.bsc-def-text{font-family:var(--s);font-style:italic;font-weight:300;font-size:clamp(17px,2.1vw,24px);line-height:1.55;color:var(--ink)}\n.bsc-def-text em{font-style:normal;color:var(--gold)}\n.bsc-def-source{display:block;margin-top:.9rem;font-family:var(--ss);font-size:10px;font-weight:300;letter-spacing:.1em;color:var(--muted)}\n.bsc-def-note{background:var(--off);padding:1.4rem 1.6rem;font-family:var(--ss);font-size:13px;font-weight:300;line-height:1.85;color:var(--muted)}\n.bsc-def-note strong{color:var(--ink);font-weight:400}\n/* body */\n.bsc-body{background:var(--off);padding:0 8vw 7rem;display:grid;grid-template-columns:220px 1fr;gap:5rem;align-items:start;max-width:1200px;margin:0 auto}\n.bsc-sidebar{position:sticky;top:90px}\n.bsc-sb-label{font-family:var(--ss);font-size:9px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:1.2rem}\n.bsc-sb-list{list-style:none;display:flex;flex-direction:column}\n.bsc-sb-link{display:block;font-family:var(--ss);font-size:11px;font-weight:300;letter-spacing:.06em;color:var(--muted);text-decoration:none;padding:.55rem 0 .55rem .9rem;border-left:2px solid rgba(26,25,24,.08);transition:color .2s,border-color .2s;line-height:1.4}\n.bsc-sb-link:hover,.bsc-sb-link.active{color:var(--ink);border-left-color:var(--gold)}\n.bsc-content{padding-top:5rem}\n/* clauses */\n.clause{margin-bottom:5rem;padding-bottom:5rem;border-bottom:1px solid rgba(26,25,24,.07)}\n.clause:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}\n.clause-num{font-family:var(--s);font-style:italic;font-weight:300;font-size:clamp(44px,6vw,72px);color:rgba(201,168,76,.15);display:block;line-height:1;margin-bottom:.3rem;letter-spacing:-.04em}\n.clause-title{font-family:var(--s);font-style:italic;font-weight:300;font-size:clamp(24px,3vw,40px);color:var(--ink);line-height:1.1;margin-bottom:1.4rem;letter-spacing:-.02em}\n.clause-title em{font-style:normal;color:var(--gold)}\n.clause-body{font-family:var(--ss);font-size:14px;font-weight:300;line-height:1.95;color:var(--muted)}\n.clause-body p{margin-bottom:1.1rem}\n.clause-body p:last-child{margin-bottom:0}\n.clause-body strong{color:var(--ink);font-weight:400}\n.clause-body a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(201,168,76,.3);transition:border-color .2s}\n.clause-body a:hover{border-color:var(--gold)}\n.fact-box{margin:1.8rem 0;padding:1.4rem 1.6rem;border-left:3px solid var(--gold);background:var(--gold-a);font-family:var(--ss);font-size:13px;font-weight:300;line-height:1.75;color:var(--ink)}\n.fact-box strong{font-weight:500}\n.warn-box{margin:1.8rem 0;padding:1.4rem 1.6rem;border-left:3px solid var(--pink);background:rgba(192,65,90,.06);font-family:var(--ss);font-size:13px;font-weight:300;line-height:1.75;color:var(--ink)}\n.warn-box strong{font-weight:500;color:var(--pink)}\n/* banarasi variety grid */\n.variety-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(26,25,24,.08);margin:1.8rem 0}\n.variety-card{background:var(--white);padding:1.8rem 1.6rem;transition:background .2s}\n.variety-card:hover{background:var(--cream)}\n.variety-name{font-family:var(--s);font-style:italic;font-weight:300;font-size:clamp(17px,2vw,23px);color:var(--ink);display:block;margin-bottom:.25rem}\n.variety-weave{font-family:var(--ss);font-size:9px;font-weight:300;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:.5rem}\n.variety-care{font-family:var(--ss);font-size:12px;font-weight:300;color:var(--muted);line-height:1.7}\n.variety-care strong{color:var(--ink);font-weight:400}\n/* stain table */\n.stain-table{width:100%;border-collapse:collapse;font-family:var(--ss);margin:1.8rem 0}\n.stain-table th{font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:.8rem 1rem;background:var(--ink);color:rgba(245,240,232,.6);text-align:left}\n.stain-table th:first-child{color:var(--gold-l)}\n.stain-table td{padding:.75rem 1rem;font-size:12px;font-weight:300;line-height:1.6;color:var(--muted);border-bottom:1px solid rgba(26,25,24,.06);vertical-align:top}\n.stain-table tr:last-child td{border-bottom:none}\n.stain-table td:first-child{color:var(--ink);font-weight:400}\n.stain-table .do-cell{color:#5A8A5A}\n.stain-table .warn-cell{color:var(--pink)}\n/* storage steps */\n.storage-steps{display:flex;flex-direction:column;gap:1rem;margin:1.8rem 0}\n.storage-step{display:flex;gap:1.2rem;align-items:flex-start;padding:1.2rem 1.4rem;background:var(--white);border:1px solid rgba(26,25,24,.07);border-left:3px solid transparent;transition:border-color .2s}\n.storage-step:hover{border-left-color:var(--gold)}\n.storage-step-n{font-family:var(--s);font-style:italic;font-weight:300;font-size:32px;color:rgba(201,168,76,.25);line-height:1;flex-shrink:0;width:2.2rem;text-align:center}\n.storage-step-body{padding-top:.1rem}\n.storage-step-h{font-family:var(--ss);font-size:12px;font-weight:500;color:var(--ink);display:block;margin-bottom:.25rem;letter-spacing:.02em}\n.storage-step-d{font-family:var(--ss);font-size:12px;font-weight:300;color:var(--muted);line-height:1.7}\n/* do/dont */\n.do-dont{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:1.8rem 0}\n.do-list,.dont-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}\n.do-list-h,.dont-list-h{font-family:var(--ss);font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;display:block;margin-bottom:.7rem}\n.do-list-h{color:#5A8A5A}\n.dont-list-h{color:var(--pink)}\n.do-list li,.dont-list li{font-family:var(--ss);font-size:12px;font-weight:300;line-height:1.7;color:var(--muted);padding-left:1.2rem;position:relative}\n.do-list li::before{content:'✓';position:absolute;left:0;color:#5A8A5A;font-size:11px;top:.05em}\n.dont-list li::before{content:'✗';position:absolute;left:0;color:var(--pink);font-size:11px;top:.05em}\n/* kolkata note */\n.kolkata-note{background:var(--dark);padding:2rem 2.2rem;margin:1.8rem 0;border-left:4px solid var(--gold)}\n.kolkata-note-label{font-family:var(--ss);font-size:9px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:.6rem}\n.kolkata-note-text{font-family:var(--ss);font-size:13px;font-weight:300;line-height:1.8;color:rgba(245,240,232,.7)}\n.kolkata-note-text strong{color:var(--cream);font-weight:400}\n/* pressing guide */\n.press-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin:1.8rem 0}\n.press-card{border:1px solid rgba(26,25,24,.08);padding:1.6rem}\n.press-card.correct{border-color:rgba(201,168,76,.3);background:var(--gold-a)}\n.press-card-label{font-family:var(--ss);font-size:9px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;display:block;margin-bottom:.5rem}\n.press-card.correct .press-card-label{color:var(--gold)}\n.press-card:not(.correct) .press-card-label{color:var(--pink)}\n.press-card-title{font-family:var(--s);font-style:italic;font-weight:300;font-size:clamp(16px,1.8vw,22px);color:var(--ink);display:block;margin-bottom:.7rem}\n.press-card-items{list-style:none;display:flex;flex-direction:column;gap:.4rem}\n.press-card-items li{font-family:var(--ss);font-size:12px;font-weight:300;color:var(--muted);padding-left:1rem;position:relative;line-height:1.6}\n.press-card.correct .press-card-items li::before{content:'✓';position:absolute;left:0;color:var(--gold);font-size:11px}\n.press-card:not(.correct) .press-card-items li::before{content:'✗';position:absolute;left:0;color:var(--pink);font-size:11px}\n/* related */\n.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2rem}\n.rel-card{border:1px solid rgba(26,25,24,.08);padding:1.8rem;text-decoration:none;display:flex;flex-direction:column;gap:.6rem;transition:box-shadow .25s,transform .25s,border-color .25s}\n.rel-card:hover{box-shadow:var(--sh2);transform:translateY(-3px);border-color:rgba(201,168,76,.3)}\n.rel-tag{font-family:var(--ss);font-size:9px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}\n.rel-title{font-family:var(--s);font-style:italic;font-weight:300;font-size:clamp(15px,1.8vw,20px);color:var(--ink);line-height:1.2}\n.rel-desc{font-family:var(--ss);font-size:11px;font-weight:300;color:var(--muted);line-height:1.65}\n.rel-arrow{font-family:var(--ss);font-size:9px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:auto;padding-top:.8rem;transition:color .2s}\n.rel-card:hover .rel-arrow{color:var(--gold)}\n/* faq */\n.bsc-faq{background:var(--cream);padding:7rem 8vw}\n.bsc-faq-inner{max-width:860px;margin:0 auto}\n.bsc-ey{font-family:var(--ss);font-size:10px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:.8rem;margin-bottom:1.2rem}\n.bsc-ey::before{content:'';width:24px;height:1px;background:var(--gold);flex-shrink:0}\n.bsc-h2{font-family:var(--s);font-style:italic;font-weight:300;font-size:clamp(28px,4vw,52px);color:var(--ink);line-height:1.05;margin-bottom:2.5rem;letter-spacing:-.02em}\n.bsc-h2 em{font-style:normal;color:var(--gold)}\n.faq-item{border-bottom:1px solid rgba(26,25,24,.09)}\n.faq-item:first-of-type{border-top:1px solid rgba(26,25,24,.09)}\n.faq-q{font-family:var(--s);font-style:italic;font-weight:300;font-size:clamp(14px,1.5vw,18px);color:var(--ink);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:none;border:none;width:100%;text-align:left;padding:.9rem 0;transition:color .2s}\n.faq-q:hover,.faq-item.open .faq-q{color:var(--gold)}\n.faq-ico{width:16px;height:16px;color:rgba(26,25,24,.22);flex-shrink:0;transition:transform .3s,color .2s}\n.faq-item.open .faq-ico{transform:rotate(45deg);color:var(--gold)}\n.faq-a{display:none;font-size:13px;font-weight:300;line-height:1.9;color:var(--muted);padding-bottom:1rem;font-family:var(--ss)}\n.faq-item.open .faq-a{display:block}\n/* cta */\n.bsc-cta{background:var(--gold);padding:8rem 8vw;text-align:center;position:relative;overflow:hidden}\n.bsc-cta::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(-60deg,transparent,transparent 30px,rgba(255,255,255,.04) 30px,rgba(255,255,255,.04) 31px)}\n.bsc-cta-inner{position:relative;z-index:1;max-width:680px;margin:0 auto}\n.bsc-cta-rule{width:36px;height:2px;background:var(--ink);opacity:.2;margin:0 auto 2rem}\n.bsc-cta-h2{font-family:var(--s);font-style:italic;font-weight:300;font-size:clamp(40px,8vw,96px);color:var(--ink);line-height:.88;letter-spacing:-.05em;margin-bottom:.8rem}\n.bsc-cta-sub{font-family:var(--ss);font-size:13px;font-weight:300;color:rgba(26,25,24,.55);line-height:1.8;max-width:440px;margin:0 auto 2rem}\n.bsc-cta-btns{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}\n/* wa/cursor/intro */\n.wa-float{position:fixed;bottom:2rem;right:2rem;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:9990;box-shadow:0 4px 20px rgba(37,211,102,.35);transition:transform .3s;text-decoration:none;background:none}\n.wa-float:hover{transform:scale(1.1) translateY(-2px)}\n.wa-float::before{content:'';position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(37,211,102,.35);animation:waPulse 2.5s ease-out infinite}\n@keyframes waPulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.5);opacity:0}}\n@media(hover:hover) and (pointer:fine){*{cursor:none!important}.cur-d{position:fixed;top:0;left:0;z-index:99999;pointer-events:none;width:8px;height:8px;border-radius:50%;background:var(--gold);transform:translate(-50%,-50%);transition:width .15s,height .15s,opacity .3s}.cur-r{position:fixed;top:0;left:0;z-index:99998;pointer-events:none;width:28px;height:28px;border-radius:50%;border:1.5px solid rgba(201,168,76,.45);transform:translate(-50%,-50%);transition:width .25s var(--ease),height .25s var(--ease),opacity .3s}body.cur-hl .cur-d{width:12px;height:12px}body.cur-hl .cur-r{width:40px;height:40px}body.cur-hd .cur-d,body.cur-hd .cur-r{opacity:0}}\n#introEl{position:fixed;inset:0;z-index:99997;background:var(--dark);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1.2rem;transition:opacity .6s ease}\n#introEl.hidden{opacity:0;pointer-events:none}\n.intro-m{font-family:var(--s);font-style:italic;font-weight:300;font-size:88px;color:var(--gold);letter-spacing:-.04em;opacity:0;animation:iFade .8s var(--ease) .15s forwards}\n.intro-l{width:0;height:1px;background:var(--gold);opacity:.4;animation:iGrow .7s var(--ease) .35s forwards}\n.intro-w{font-size:10px;font-weight:300;letter-spacing:.35em;text-transform:uppercase;color:rgba(245,240,232,.38);opacity:0;animation:iFade .6s ease .55s forwards}\n@keyframes iFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}\n@keyframes iGrow{from{width:0}to{width:64px}}\n.pg-ov{position:fixed;inset:0;z-index:99996;background:var(--cream);opacity:0;pointer-events:none;transition:opacity .35s ease}\n.pg-ov.visible{opacity:1;pointer-events:all}\n@media print{.wa-float,.cur-d,.cur-r,#introEl,.pg-ov,.bookPill,.seasonal-banner,.scroll-bar{display:none!important}body{font-size:11pt;background:#fff;color:#000}}\n@media(max-width:960px){.bsc-body{grid-template-columns:1fr;padding-left:6vw;padding-right:6vw}.bsc-sidebar{position:static;display:none}.bsc-content{padding-top:2rem}.variety-grid{grid-template-columns:1fr}.do-dont{grid-template-columns:1fr}.press-grid{grid-template-columns:1fr}.related-grid{grid-template-columns:1fr}}\n@media(max-width:640px){.bsc-hero{padding:0 6vw 4rem}.bsc-strip{grid-template-columns:1fr 1fr}.bsc-stat:nth-child(3),.bsc-stat:nth-child(4){border-top:1px solid rgba(201,168,76,.1)}.bsc-stat:nth-child(even){border-right:none}.bsc-def-sec,.bsc-faq,.bsc-cta{padding-left:6vw;padding-right:6vw}}\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\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\n\n\n.post-hero{background:#0c0b0a;min-height:100svh;display:grid;grid-template-columns:1fr 1.6fr;position:relative;overflow:hidden}\n.post-hero::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(201,168,76,.06) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;z-index:0}\n.hero-num-col{display:flex;align-items:center;justify-content:flex-end;padding:8rem 3rem 8rem 8vw;position:relative;z-index:1;border-right:1px solid rgba(201,168,76,.12)}\n.hero-edition-num{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(100px,18vw,240px);line-height:.85;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px rgba(201,168,76,.3);display:block;user-select:none}\n.hero-content-col{display:flex;flex-direction:column;justify-content:center;padding:8rem 8vw 8rem 4rem;position:relative;z-index:1}\n.post-eyebrow{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}\n.post-cat-pill{font-family:'Jost',sans-serif;font-size:9px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding:4px 10px;border-radius:2px;border:1px solid rgba(201,168,76,.3);color:#C9A84C;background:rgba(201,168,76,.08)}\n.post-edition-label{font-family:'Jost',sans-serif;font-size:9px;font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:rgba(245,240,232,.3)}\n.post-h1{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(26px,3.5vw,52px);line-height:1.06;letter-spacing:-.03em;color:#F5F0E8;margin-bottom:2rem;max-width:640px}\n.post-h1 em{font-style:normal;color:#C9A84C}\n.post-rule{width:48px;height:1px;background:#C9A84C;margin-bottom:2rem;opacity:.5}\n.post-meta-strip{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-bottom:2.5rem}\n.meta-item{font-family:'Jost',sans-serif;font-size:10px;font-weight:300;letter-spacing:.1em;color:rgba(245,240,232,.35);display:flex;align-items:center;gap:.4rem}\n.meta-item strong{color:rgba(245,240,232,.6);font-weight:400}\n.meta-dot{width:3px;height:3px;border-radius:50%;background:rgba(201,168,76,.4);display:inline-block}\n.hero-summary{border-left:2px solid rgba(201,168,76,.4);padding:.8rem 0 .8rem 1.2rem;font-family:'Jost',sans-serif;font-size:13px;font-weight:300;line-height:1.85;color:rgba(245,240,232,.55);max-width:520px;font-style:italic}\n.at-a-glance{background:#F5F0E8;padding:5rem 8vw;border-bottom:1px solid rgba(26,25,24,.08)}\n.glance-inner{max-width:860px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr;gap:4rem;align-items:start}\n.glance-label{font-family:'Jost',sans-serif;font-size:9px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:#C9A84C;display:flex;align-items:center;gap:.8rem;margin-bottom:1.2rem}\n.glance-label::before{content:'';width:24px;height:1px;background:#C9A84C;flex-shrink:0}\n.glance-h2{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(22px,2.8vw,36px);color:#1a1918;line-height:1.1;letter-spacing:-.02em;margin-bottom:1.4rem}\n.glance-h2 em{font-style:normal;color:#C9A84C}\n.glance-points{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.8rem}\n.glance-points li{font-family:'Jost',sans-serif;font-size:13px;font-weight:300;line-height:1.7;color:rgba(26,25,24,.65);padding-left:1.4rem;position:relative}\n.glance-points li::before{content:'';position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:#C9A84C;opacity:.5}\n.jump-nav{background:rgba(26,25,24,.04);border-radius:8px;padding:1.4rem 1.6rem}\n.jump-nav-label{font-family:'Jost',sans-serif;font-size:9px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:rgba(26,25,24,.4);margin-bottom:.8rem;display:block}\n.jump-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}\n.jump-links li a{font-family:'Jost',sans-serif;font-size:12px;font-weight:300;color:rgba(26,25,24,.55);text-decoration:none;display:flex;align-items:center;gap:.5rem;transition:color .2s;padding:.2rem 0}\n.jump-links li a:hover{color:#C9A84C}\n.jump-links li a::before{content:'';width:12px;height:1px;background:currentColor;flex-shrink:0;opacity:.4}\n.post-body{background:#FAFAF8;padding:6rem 8vw}\n.post-body-inner{max-width:720px;margin:0 auto}\n.post-body p{font-family:'Jost',sans-serif;font-size:15px;font-weight:300;line-height:1.95;color:rgba(26,25,24,.72);margin-bottom:1.4rem}\n.post-body strong{color:#1a1918;font-weight:400}\n.post-body a{color:#C9A84C;text-decoration:none;border-bottom:1px solid rgba(201,168,76,.35);transition:border-color .2s}\n.post-body a:hover{border-bottom-color:#C9A84C}\n.post-h2{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(24px,3vw,38px);line-height:1.1;letter-spacing:-.02em;color:#1a1918;margin:3.5rem 0 1.2rem;padding-top:1rem;border-top:1px solid rgba(26,25,24,.07)}\n.post-h2:first-child{margin-top:0;border-top:none;padding-top:0}\n.post-h2 em{font-style:normal;color:#C9A84C}\n.pull-quote{border-left:3px solid #C9A84C;margin:3rem 0;padding:1.5rem 2rem;background:rgba(201,168,76,.04)}\n.pull-quote p{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(22px,2.8vw,34px);line-height:1.3;letter-spacing:-.02em;color:#1a1918;margin:0}\n.fact-box{background:rgba(201,168,76,.07);border-left:3px solid #C9A84C;padding:1.4rem 1.6rem;margin:2rem 0;border-radius:0 6px 6px 0}\n.fact-box-label{font-family:'Jost',sans-serif;font-size:9px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:#C9A84C;display:block;margin-bottom:.6rem}\n.fact-box p{font-size:13px;line-height:1.8;color:rgba(26,25,24,.65);margin:0}\n.warn-box{background:rgba(192,65,90,.06);border-left:3px solid #C0415A;padding:1.4rem 1.6rem;margin:2rem 0;border-radius:0 6px 6px 0}\n.warn-box-label{font-family:'Jost',sans-serif;font-size:9px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:#C0415A;display:block;margin-bottom:.6rem}\n.warn-box p{font-size:13px;line-height:1.8;color:rgba(26,25,24,.65);margin:0}\n.post-steps{margin:2rem 0;display:flex;flex-direction:column;gap:1.2rem}\n.post-step{display:grid;grid-template-columns:48px 1fr;gap:1rem;align-items:start}\n.step-num{width:36px;height:36px;background:#0c0b0a;color:#C9A84C;font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:18px;font-weight:300;display:flex;align-items:center;justify-content:center;border-radius:2px;flex-shrink:0;margin-top:2px}\n.step-title{font-family:'Jost',sans-serif;font-size:12px;font-weight:500;letter-spacing:.06em;color:#1a1918;margin-bottom:.3rem;text-transform:uppercase}\n.step-body{font-size:13px;line-height:1.8;color:rgba(26,25,24,.6)}\n.post-table-wrap{overflow-x:auto;margin:2rem 0}\n.post-table{width:100%;border-collapse:collapse;font-family:'Jost',sans-serif;font-size:12px}\n.post-table th{font-size:9px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:.8rem 1rem;background:#0c0b0a;color:rgba(245,240,232,.55);text-align:left;white-space:nowrap}\n.post-table th:first-child{color:#E2C97E}\n.post-table td{padding:.7rem 1rem;font-size:12px;font-weight:300;line-height:1.6;color:rgba(26,25,24,.6);border-bottom:1px solid rgba(26,25,24,.06);vertical-align:top}\n.post-table tr:last-child td{border-bottom:none}\n.post-table td:first-child{color:#1a1918;font-weight:400}\n.post-faq{background:#F5F0E8;padding:6rem 8vw}\n.faq-inner{max-width:720px;margin:0 auto}\n.faq-ey{font-family:'Jost',sans-serif;font-size:9px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:#C9A84C;display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}\n.faq-ey::before{content:'';width:24px;height:1px;background:#C9A84C;flex-shrink:0}\n.faq-h2{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(28px,3.8vw,48px);color:#1a1918;line-height:1;letter-spacing:-.03em;margin-bottom:2.5rem}\n.faq-h2 em{font-style:normal;color:#C9A84C}\n.faq-item{border-bottom:1px solid rgba(26,25,24,.09)}\n.faq-item:first-of-type{border-top:1px solid rgba(26,25,24,.09)}\n.faq-q{width:100%;background:none;border:none;cursor:pointer;text-align:left;padding:1.1rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(15px,1.6vw,19px);color:#1a1918;transition:color .2s;line-height:1.3}\n.faq-q:hover,.faq-item.open .faq-q{color:#C9A84C}\n.faq-icon{width:18px;height:18px;flex-shrink:0;color:rgba(26,25,24,.25);transition:transform .3s cubic-bezier(.16,1,.3,1),color .2s}\n.faq-item.open .faq-icon{transform:rotate(45deg);color:#C9A84C}\n.faq-a{display:none;font-family:'Jost',sans-serif;font-size:13px;font-weight:300;line-height:1.9;color:rgba(26,25,24,.6);padding-bottom:1.2rem}\n.faq-item.open .faq-a{display:block}\n.author-strip{background:#0c0b0a;padding:3.5rem 8vw}\n.author-inner{max-width:720px;margin:0 auto;display:flex;align-items:center;gap:2rem;flex-wrap:wrap}\n.author-logo{width:48px;height:48px;background:rgba(201,168,76,.12);border-radius:2px;display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;font-size:20px;color:#C9A84C;flex-shrink:0;letter-spacing:-.04em}\n.author-info{flex:1}\n.author-name{font-family:'Jost',sans-serif;font-size:12px;font-weight:400;letter-spacing:.06em;color:#F5F0E8;display:block;margin-bottom:.2rem}\n.author-bio{font-family:'Jost',sans-serif;font-size:11px;font-weight:300;color:rgba(245,240,232,.35);line-height:1.6}\n.author-dates{font-family:'Jost',sans-serif;font-size:10px;font-weight:300;letter-spacing:.08em;color:rgba(245,240,232,.2);text-align:right;line-height:1.8}\n.related-sec{background:#FAFAF8;padding:5rem 8vw;border-top:1px solid rgba(26,25,24,.07)}\n.related-inner{max-width:960px;margin:0 auto}\n.related-ey{font-family:'Jost',sans-serif;font-size:9px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:#C9A84C;display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}\n.related-ey::before{content:'';width:24px;height:1px;background:#C9A84C;flex-shrink:0}\n.related-h2{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(24px,3vw,38px);color:#1a1918;margin-bottom:2rem;letter-spacing:-.02em}\n.related-h2 em{font-style:normal;color:#C9A84C}\n.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(26,25,24,.08)}\n.related-card{background:#FAFAF8;text-decoration:none;padding:1.8rem;display:flex;flex-direction:column;gap:.6rem;transition:background .2s;position:relative;overflow:hidden}\n.related-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:#C9A84C;transform:scaleX(0);transition:transform .25s cubic-bezier(.16,1,.3,1);transform-origin:left}\n.related-card:hover{background:#F5F0E8}\n.related-card:hover::after{transform:scaleX(1)}\n.rc-tag{font-family:'Jost',sans-serif;font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#C9A84C}\n.rc-title{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(16px,1.8vw,22px);color:#1a1918;line-height:1.2;transition:color .2s}\n.related-card:hover .rc-title{color:#C9A84C}\n.rc-read{font-family:'Jost',sans-serif;font-size:10px;font-weight:300;color:rgba(26,25,24,.3);margin-top:auto}\n.post-cta{background:#C9A84C;padding:6rem 8vw;text-align:center;position:relative;overflow:hidden}\n.post-cta::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(-60deg,transparent,transparent 30px,rgba(255,255,255,.04) 30px,rgba(255,255,255,.04) 31px)}\n.post-cta-inner{position:relative;z-index:1;max-width:560px;margin:0 auto}\n.post-cta-rule{width:36px;height:2px;background:#1a1918;opacity:.2;margin:0 auto 2rem}\n.post-cta-h2{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(38px,7vw,80px);color:#1a1918;line-height:.88;letter-spacing:-.05em;margin-bottom:.8rem}\n.post-cta-sub{font-family:'Jost',sans-serif;font-size:13px;font-weight:300;color:rgba(26,25,24,.5);line-height:1.8;max-width:380px;margin:0 auto 2rem}\n.post-cta-btns{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}\n.btn-dk{font-family:'Jost',sans-serif;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;background:#1a1918;color:#C9A84C;padding:.9rem 2rem;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;transition:background .2s}\n.btn-dk:hover{background:#000}\n@media(max-width:900px){.post-hero{grid-template-columns:1fr;min-height:auto}.hero-num-col{justify-content:flex-start;padding:6rem 8vw 2rem;border-right:none;border-bottom:1px solid rgba(201,168,76,.12)}.hero-edition-num{font-size:clamp(80px,20vw,140px)}.hero-content-col{padding:3rem 8vw 6rem}.glance-inner{grid-template-columns:1fr;gap:2rem}.related-grid{grid-template-columns:1fr}}\n@media(max-width:640px){.post-body,.at-a-glance,.post-faq,.author-strip,.related-sec,.post-cta,.hero-num-col,.hero-content-col{padding-left:5vw;padding-right:5vw}.author-dates{text-align:left}}\n\n.pro-box{background:rgba(26,74,138,.06);border-left:3px solid #1a4a8a;padding:1.4rem 1.6rem;margin:2rem 0;border-radius:0 6px 6px 0}\n.pro-box-label{font-family:'Jost',sans-serif;font-size:9px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:#1a4a8a;display:block;margin-bottom:.6rem}\n.pro-box p{font-size:13px;line-height:1.8;color:rgba(26,25,24,.65);margin:0}\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/* ═══ 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",
  "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(function(){'use strict';\nwindow.addEventListener('scroll',function(){var b=document.getElementById('scrollBar');if(!b)return;b.style.width=(window.scrollY/(document.documentElement.scrollHeight-window.innerHeight)*100)+'%';},{passive:true});\n(function(){var n=document.getElementById('nav');if(!n)return;function u(){var h=document.querySelector('.post-hero');if(!h){n.classList.add('on-light');return;}var below=h.getBoundingClientRect().bottom<=60;n.classList.toggle('on-dark',!below);n.classList.toggle('on-light',below);}window.addEventListener('scroll',u,{passive:true});u();})();\nif(window.Lenis){var L=new window.Lenis({duration:1.2,smoothWheel:true});(function r(t){L.raf(t);requestAnimationFrame(r);})(0);}\n(function(){var obs=new IntersectionObserver(function(e){e.forEach(function(en){if(en.isIntersecting){en.target.classList.add('in');obs.unobserve(en.target);}});},{threshold:0.05});document.querySelectorAll('[data-reveal]').forEach(function(el){obs.observe(el);});})();\ndocument.querySelectorAll('.faq-q').forEach(function(btn){btn.addEventListener('click',function(){var item=btn.closest('.faq-item');var was=item.classList.contains('open');document.querySelectorAll('.faq-item').forEach(function(i){i.classList.remove('open');i.querySelector('.faq-q').setAttribute('aria-expanded','false');});if(!was){item.classList.add('open');btn.setAttribute('aria-expanded','true');}});});\nif(window.matchMedia('(hover:hover) and (pointer:fine)').matches){var dot=document.createElement('div');dot.className='cur-d';var ring=document.createElement('div');ring.className='cur-r';document.body.appendChild(dot);document.body.appendChild(ring);var mx=0,my=0,rx=0,ry=0;document.addEventListener('mousemove',function(e){mx=e.clientX;my=e.clientY;dot.style.cssText='left:'+mx+'px;top:'+my+'px';},{passive:true});(function lerp(){rx+=(mx-rx)*.1;ry+=(my-ry)*.1;ring.style.cssText='left:'+rx+'px;top:'+ry+'px';requestAnimationFrame(lerp);})();document.addEventListener('mouseover',function(e){document.body.classList.toggle('cur-hl',!!e.target.closest('a,button,[role=button]'));},{passive:true});document.addEventListener('mouseleave',function(){document.body.classList.add('cur-hd');},{passive:true});document.addEventListener('mouseenter',function(){document.body.classList.remove('cur-hd');},{passive:true});}\n(function(){var el=document.getElementById('introEl');if(!el)return;el.style.display='none';})();\n(function(){var ov=document.createElement('div');ov.className='pg-ov';document.body.appendChild(ov);document.addEventListener('click',function(e){var a=e.target.closest('a');if(!a||!a.href||a.target==='_blank')return;if(/^(tel:|mailto:|https:\\/\\/wa\\.me)/.test(a.href))return;if(a.href.includes('#')||e.metaKey||e.ctrlKey)return;try{if(new URL(a.href).host!==location.host)return;}catch(_){return;}e.preventDefault();ov.classList.add('visible');setTimeout(function(){location.href=a.href;},320);});})();\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;\n(function(){var f=new Date(\"2013-10-07\");var n=new Date();var y=n.getFullYear()-f.getFullYear();if(n<new Date(n.getFullYear(),9,7))y--;document.querySelectorAll(\".tsl-age\").forEach(function(el){el.textContent=y;});})();",
  "bodyHtml": "<div id=\"introEl\" role=\"status\" aria-label=\"Loading\" style=\"display:none\"><span class=\"intro-m\" aria-hidden=\"true\">TSL</span><div class=\"intro-l\" aria-hidden=\"true\"></div><span class=\"intro-w\" aria-hidden=\"true\">The Swiss Laundry</span></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=\"scroll-bar\" id=\"scrollBar\" aria-hidden=\"true\"></div>\n\n<nav class=\"tsl-crumbs\" aria-label=\"Breadcrumb\"><ol><li><a href=\"/\">Home</a></li><li><a href=\"/blog\">The Record</a></li><li aria-current=\"page\">The science of stain removal — why some stains come out and some do not.</li></ol></nav>\n\n<main id=\"main\">\n<section class=\"post-hero f-hero\" aria-label=\"Article header\">\n  <div class=\"hero-num-col\"><span class=\"hero-edition-num\" aria-hidden=\"true\">49</span></div>\n  <div class=\"hero-content-col\">\n    <div class=\"post-eyebrow\" data-reveal=\"\"><span class=\"post-cat-pill\">AEO</span><span class=\"post-edition-label\">Edition 49 &nbsp;·&nbsp; The Record</span></div>\n    <h1 class=\"post-h1\" data-reveal=\"\">The science of stain removal —<em> why some stains come out and some do not.</em></h1>\n    <div class=\"post-rule\" data-reveal=\"\"></div>\n    <div class=\"post-meta-strip\" data-reveal=\"\">\n      <span class=\"meta-item\"><strong>The Swiss Laundry</strong><span class=\"meta-dot\"></span>Kasba, Kolkata</span>\n      <span class=\"meta-item\"><span class=\"meta-dot\"></span>11 Feb 2026</span>\n      <span class=\"meta-item\"><span class=\"meta-dot\"></span>7 min read</span>\n      <span class=\"meta-item\"><span class=\"meta-dot\"></span>1,850 words</span>\n    </div>\n    <blockquote class=\"hero-summary\" data-reveal=\"\">Stain removal is chemistry, not magic. Whether a stain comes out depends on what caused it, what the fabric is, how long it has been there, and what treatment is applied. This post explains the science behind each common stain category.</blockquote>\n  </div>\n</section>\n<section class=\"at-a-glance\" aria-label=\"Article summary\">\n  <div class=\"glance-inner\" data-reveal=\"\">\n    <div><p class=\"glance-label\">At a glance</p><h2 class=\"glance-h2\">What this article <em>covers.</em></h2><ul class=\"glance-points\"><li>Stains are broadly categorised by chemistry: oil-based, protein-based, tannin-based, pigment-based, and oxidised — each responds to different treatment</li><li>Time is the most important variable in stain removal — fresh stains are almost always removable; set stains may not be</li><li>Turmeric is one of the most difficult stains to remove completely because curcumin bonds chemically with protein fibres</li><li>Blood should never be treated with hot water — heat permanently sets protein stains by causing denaturation</li><li>The treatment applied to a stain at home before professional cleaning is often the primary cause of the stain becoming permanent</li></ul></div>\n    <div><div class=\"jump-nav\"><span class=\"jump-nav-label\">Jump to section</span><ul class=\"jump-links\"><li><a href=\"#stain-chemistry\">Stain chemistry basics</a></li><li><a href=\"#oil-based\">Oil-based stains</a></li><li><a href=\"#protein\">Protein stains</a></li><li><a href=\"#tannin\">Tannin and pigment stains</a></li><li><a href=\"#turmeric\">Turmeric — the hardest</a></li></ul></div></div>\n  </div>\n</section>\n<article class=\"post-body\" aria-label=\"Article content\"><div class=\"post-body-inner\"><h2 class=\"post-h2\" id=\"stain-chemistry\"><em>Stain chemistry</em> basics</h2>\n<p>Every stain is a chemical interaction between a foreign substance and a fabric fibre. The stain is held in the fabric through some combination of physical entrapment (the substance is trapped in the fibre structure), polar attraction (the molecule is held by electrical charge interaction with the fibre), and covalent bonding (the molecule forms a chemical bond with the fibre).</p><p>Physical entrapment is the easiest to reverse — the substance can be dissolved and removed. Polar attraction requires a solvent or surfactant that disrupts the attraction. Covalent bonding is the hardest — breaking a covalent bond without damaging the fibre requires specific chemistry and often cannot be done completely.</p><div class=\"fact-box\"><span class=\"fact-box-label\">Time and bond formation</span><p>Fresh stains are primarily physical entrapment and weak polar interactions. As time passes, the staining compound has more opportunity to form stronger interactions with the fibre — including the covalent bonds that make stains permanent. This is the chemical basis for the rule that fresher is always better for stain treatment.</p></div>\n<h2 class=\"post-h2\" id=\"oil-based\"><em>Oil-based</em> stains</h2>\n<p>Oil-based stains — cooking oils, ghee, body oils, grease, lipstick, oily cosmetics — respond well to dry cleaning solvent. Hydrocarbon solvent is chemically similar to the oils it dissolves; like dissolves like. Fresh oil stains on most fabrics have a very high removal rate with professional dry cleaning.</p><p>The complication arises when oil stains age. Unsaturated oils (like mustard oil or ghee) undergo oxidation over time — they polymerise and form larger molecules that bond more strongly with the fibre. An oxidised oil stain on silk that is 2–3 weeks old is significantly more resistant to solvent treatment than the same stain when fresh.</p><div class=\"pull-quote\"><p>\"Ghee on a silk saree that comes in the next morning has an excellent removal prognosis. The same stain after two weeks of wearing and storage is a genuinely difficult challenge.\"</p></div>\n<h2 class=\"post-h2\" id=\"protein\"><em>Protein</em> stains</h2>\n<p>Protein-based stains — blood, milk, egg, sweat, some body secretions — are chemically complex. The proteins involved are large molecules that interact with fabric fibres through multiple points simultaneously. The critical variable is heat.</p><p>Protein denatures at elevated temperatures — the molecule changes shape and forms new, more permanent bonds with the fibre. This is why blood should never be treated with hot water. A blood stain on cotton treated with cold water before coming to a professional cleaner may be fully removable. The same stain rinsed with hot water — which seemed like the logical thing to do — may be permanently set by the time it arrives for professional treatment.</p><div class=\"warn-box\"><span class=\"warn-box-label\">The heat rule for protein stains</span><p>Never apply heat to a protein stain: no hot water, no ironing, no tumble drying before treatment. Cold water can safely dilute a fresh protein stain to reduce its concentration before professional treatment. Hot water causes the protein to denature and bond permanently with the fabric.</p></div>\n<h2 class=\"post-h2\" id=\"tannin\"><em>Tannin</em> and pigment stains</h2>\n<p>Tannin stains — tea, coffee, red wine, fruit juice, some natural dyes — are acidic and water-soluble in their fresh state. Fresh tannin stains respond well to water-based treatment, which is one reason they are often treated with water immediately after they happen. The problem is that tannin stains oxidise quickly on fabric, particularly in the presence of heat and light, and become progressively harder to remove as they age.</p><p>Pigment stains — sindoor, turmeric, holi colour, ink, some cosmetics — are physically different from dissolved stains. They are solid particles that become trapped in the fibre structure and often carry strong dyes that may bond chemically with the fibre. They require specific treatment rather than general solvent or water cleaning.</p>\n<h2 class=\"post-h2\" id=\"turmeric\">Turmeric —<em> the hardest</em></h2>\n<p>Turmeric deserves specific attention because it is simultaneously one of the most common staining materials in Indian daily life and one of the most chemically challenging stains to remove completely.</p><p>The chemistry: turmeric's colour comes from curcumin, a highly reactive polyphenol. Curcumin is attracted to protein fibres — silk and wool — through multiple interaction mechanisms simultaneously, including hydrogen bonding, hydrophobic interaction, and under some conditions covalent bonding. This multi-point attachment is what makes turmeric on silk so difficult to remove.</p><div class=\"post-table-wrap\"><table class=\"post-table\"><thead><tr><th>Time since staining</th><th>Removal prognosis on silk</th></tr></thead><tbody><tr><td>Under 2 hours</td><td>Excellent — 90%+ removal likely</td></tr><tr><td>2–24 hours</td><td>Good — 70–90% removal, some fading may remain</td></tr><tr><td>1–7 days</td><td>Moderate — significant improvement, complete removal uncertain</td></tr><tr><td>Over 1 week</td><td>Difficult — improvement likely, complete removal unlikely on pure silk</td></tr><tr><td>Over 1 month</td><td>Partial improvement at best — permanent change to fabric likely</td></tr></tbody></table></div><div class=\"fact-box\"><span class=\"fact-box-label\">Why we tell you before cleaning</span><p>Before treating a difficult stain, The Swiss Laundry tells the client the realistic outcome range. This is not a disclaimer — it is the honest communication of what the chemistry allows. We will always attempt the best possible result. We will always tell you what \"best possible\" actually means for your specific stain and fabric.</p></div>\n</div>\n<div class=\"pro-box\">\n  <span class=\"pro-box-label\">The Swiss Laundry — Stain treatment at The Swiss Laundry</span>\n  <p>The stain chemistry described in this post is applied in practice at The Swiss Laundry on every stain we treat. Pre-spotting with targeted chemistry for each stain type, solvent and wet cleaning cycles calibrated to the fabric, honest assessment before and after. <span class=\"tsl-age\">13</span> years of stain treatment from Kasba means we have seen every stain type this city creates.</p>\n</div>\n</article>\n<section class=\"post-faq\" id=\"faq\" aria-label=\"Frequently asked questions\">\n  <div class=\"faq-inner\">\n    <p class=\"faq-ey\">Questions</p>\n    <h2 class=\"faq-h2\" data-reveal=\"\">Stain removal questions<br><em>answered directly.</em></h2>\n    <div class=\"faq-item  open\"><button class=\"faq-q\" aria-expanded=\"true\">Why can some stains be removed but not others?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" width=\"18\" height=\"18\" class=\"faq-icon\"><path d=\"M12 5v14M5 12h14\"></path></svg></button><p class=\"faq-a\">Stain removal depends on breaking the chemical bond between the stain molecule and the fabric fibre. Some bonds are weak and break easily with the right solvent or surfactant. Others are strong — turmeric's curcumin forms a covalent bond with silk protein that is very difficult to break without damaging the fibre itself. Age also matters: fresh stains have not yet fully bonded; old stains have.</p></div><div class=\"faq-item\"><button class=\"faq-q\" aria-expanded=\"false\">What is the worst thing you can do to a stain before bringing it to a dry cleaner?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" width=\"18\" height=\"18\" class=\"faq-icon\"><path d=\"M12 5v14M5 12h14\"></path></svg></button><p class=\"faq-a\">Apply heat — rubbing vigorously (which creates heat), ironing over the stain, or putting the garment in a hot wash. Heat causes protein stains (blood, milk, egg) to denature and permanently bond with the fabric. It also causes some food dyes to set. The second worst thing is applying water to a silk garment with an oil-based stain — water causes the stain area to spread before it sets.</p></div><div class=\"faq-item\"><button class=\"faq-q\" aria-expanded=\"false\">Can turmeric be completely removed from silk?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" width=\"18\" height=\"18\" class=\"faq-icon\"><path d=\"M12 5v14M5 12h14\"></path></svg></button><p class=\"faq-a\">Rarely, if the stain is old. Curcumin, the active compound in turmeric, forms a strong bond with protein fibres (silk, wool) through multiple interaction points. Fresh turmeric on silk — treated within hours — can often be removed to invisibility. Turmeric that has been on silk for a day or more progressively forms more bonds. After a week, complete removal is unlikely; significant improvement is usually achievable.</p></div><div class=\"faq-item\"><button class=\"faq-q\" aria-expanded=\"false\">Why do dry cleaners say a stain might not come out before cleaning?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" width=\"18\" height=\"18\" class=\"faq-icon\"><path d=\"M12 5v14M5 12h14\"></path></svg></button><p class=\"faq-a\">Professional dry cleaners who tell you a stain might not come out are giving you honest information about the stain chemistry and the realistic outcome. It is not a disclaimer — it is technical information about what has happened to the fibre at the molecular level. A cleaner who guarantees complete removal of all stains regardless of age or type is either uninformed or dishonest.</p></div><div class=\"faq-item\"><button class=\"faq-q\" aria-expanded=\"false\">Is there anything I can do to a stain immediately after it happens to help the dry cleaner?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" width=\"18\" height=\"18\" class=\"faq-icon\"><path d=\"M12 5v14M5 12h14\"></path></svg></button><p class=\"faq-a\">Yes. Blot (never rub) with a clean dry cloth to absorb excess liquid. For wet stains on silk, blotting quickly prevents the stain from spreading. Do not apply water or any other liquid. Do not rub. Keep the garment dry and flat until you can bring it to a professional. Call or WhatsApp us on 9836233354 for specific advice on your stain and fabric.</p></div>\n  </div>\n</section>\n<div class=\"author-strip\" data-reveal=\"\">\n  <div class=\"author-inner\">\n    <div class=\"author-logo\">TSL</div>\n    <div class=\"author-info\"><span class=\"author-name\">The Swiss Laundry — Editorial Team</span><span class=\"author-bio\">Written from Kasba, Kolkata. <span class=\"tsl-age\">13</span> years of professional dry cleaning. P-4 Kasba Industrial Estate, Phase III, E.M. Bypass (East), Kolkata 700107.</span></div>\n    <div class=\"author-dates\"><span>Published: 11 Feb 2026</span><br><span>Updated: 11 Feb 2026</span></div>\n  </div>\n</div>\n<section class=\"related-sec\" data-reveal=\"\" aria-label=\"Related articles\">\n  <div class=\"related-inner\"><p class=\"related-ey\">Continue reading</p><h2 class=\"related-h2\">More from <em>The Record.</em></h2><div class=\"related-grid\"><a href=\"/blog-unorganised-dry-cleaners-mto-petrol-harm\" class=\"related-card\"><span class=\"rc-tag\">Safety</span><span class=\"rc-title\">Unorganised dry cleaners use MTO and white petrol.</span><span class=\"rc-read\">7 min read</span></a><a href=\"/blog-can-dry-cleaning-damage-clothes\" class=\"related-card\"><span class=\"rc-tag\">Consumer</span><span class=\"rc-title\">Can dry cleaning damage clothes?</span><span class=\"rc-read\">6 min read</span></a><a href=\"/blog-why-does-dry-cleaning-smell\" class=\"related-card\"><span class=\"rc-tag\">AEO</span><span class=\"rc-title\">Why does dry cleaning smell?</span><span class=\"rc-read\">4 min read</span></a></div></div>\n</section>\n<section class=\"post-cta\" aria-label=\"Book dry cleaning\">\n  <div class=\"post-cta-inner\">\n    <div class=\"post-cta-rule\" aria-hidden=\"true\"></div>\n    <h2 class=\"post-cta-h2\"><span class=\"tsl-age\">13</span> years of\n<br><em>stain chemistry.</em></h2>\n    <p class=\"post-cta-sub\">Pre-spotting with targeted chemistry for every stain type. Honest prognosis before treatment. Professional treatment from Kasba since 2013.</p>\n    <div class=\"post-cta-btns\">\n      <a href=\"/pickup\" class=\"btn-dk\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"14\" height=\"14\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg> Book a Pickup</a>\n      <a href=\"https://wa.me/919836233354?text=Hi+I+would+like+to+book\" class=\"btn-dk\" target=\"_blank\" rel=\"noopener\">WhatsApp Us</a>\n      <a href=\"tel:9836233354\" class=\"btn-dk\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"14\" height=\"14\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg> Call Now</a>\n    </div>\n  </div>\n</section>\n</main>\n<a href=\"https://wa.me/919836233354?text=Hi+I+would+like+to+know+more\" class=\"wa-float\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Chat on WhatsApp\"><svg viewBox=\"0 0 48 48\" width=\"56\" height=\"56\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"24\" cy=\"24\" r=\"24\" fill=\"#25D366\"></circle><path fill=\"#fff\" d=\"M24 10.4C16.5 10.4 10.4 16.5 10.4 24c0 2.4.65 4.7 1.78 6.67L10.4 37.6l7.18-1.75A13.53 13.53 0 0024 37.6c7.5 0 13.6-6.1 13.6-13.6S31.5 10.4 24 10.4z\"></path><path fill=\"#25D366\" d=\"M19.9 17.1c-.38-.86-.78-.88-1.14-.9-.3-.01-.63-.01-.97-.01-.34 0-.88.13-1.34.63-.46.5-1.76 1.72-1.76 4.2s1.8 4.87 2.05 5.21c.25.34 3.51 5.6 8.64 7.63 4.27 1.69 5.14 1.35 6.07 1.27.93-.08 3-.23 3.83-2.12.84-1.88.84-3.5.59-3.83-.25-.34-.59-.51-1.23-.85s-3.81-1.88-4.4-2.09c-.59-.21-1.02-.32-1.44.32-.43.63-1.65 2.09-2.02 2.52-.38.43-.75.48-1.4.16-.64-.32-2.71-1-5.16-3.18-1.91-1.7-3.2-3.8-3.57-4.44-.38-.64-.04-.98.28-1.3.29-.28.64-.73.96-1.1.32-.36.43-.63.64-1.05.21-.42.1-.8-.05-1.12l-.98-2.3z\"></path></svg></a><!-- 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\n\n\n<script src=\"https://cdn.jsdelivr.net/npm/@studio-freight/lenis@1.0.42/dist/lenis.min.js\"></script>"
}
