{
  "title": "How big is the laundry and dry cleaning | The Swiss Laundry",
  "description": "The Indian laundry and dry cleaning market — ₹28,000 crore, 11% annual growth, organised vs unorganised split, city-wise demand patterns.",
  "keywords": "",
  "robots": "index,follow,max-snippet:-1,max-image-preview:large",
  "canonical": "https://www.theswisslaundry.com/blog-laundry-business-india-market-size",
  "hreflangs": [
    {
      "hreflang": "en-IN",
      "href": "https://www.theswisslaundry.com/blog-laundry-business-india-market-size"
    },
    {
      "hreflang": "en",
      "href": "https://www.theswisslaundry.com/blog-laundry-business-india-market-size"
    }
  ],
  "og": {
    "type": "article",
    "title": "How big is the laundry and dry cleaning business in India? — The Record",
    "description": "The Indian laundry and dry cleaning market — ₹28,000 crore, 11% annual growth, organised vs unorganised split, city-wise demand patterns.",
    "url": "https://www.theswisslaundry.com/blog-laundry-business-india-market-size",
    "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": "How big is the laundry and dry cleaning business in India?",
        "description": "The Indian laundry and dry cleaning market — ₹28,000 crore, 11% annual growth, organised vs unorganised split, city-wise demand patterns.",
        "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-laundry-business-india-market-size",
        "datePublished": "2026-03-25",
        "dateModified": "2026-03-25",
        "mainEntityOfPage": {
          "@type": "WebPage",
          "@id": "https://www.theswisslaundry.com/blog-laundry-business-india-market-size"
        },
        "keywords": "laundry business India market size, dry cleaning market India, laundry industry India 2026, organised laundry market India",
        "articleSection": "Industry",
        "wordCount": 1960
      },
      {
        "@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": "How big is the laundry and dry cleaning business in India?",
            "item": "https://www.theswisslaundry.com/blog-laundry-business-india-market-size"
          }
        ]
      },
      {
        "@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": "How big is the laundry market in India?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Approximately ₹28,000–32,000 crore annually, encompassing all forms of paid garment care. The organised sector — professional equipment, branded services — is 5–10% of this, growing at 11% annually."
            }
          },
          {
            "@type": "Question",
            "name": "Is the dry cleaning business profitable in India?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "The organised dry cleaning business has attractive structural characteristics: recurring non-discretionary demand, local monopoly potential with established customer bases, and low inventory risk. Capital intensity is high (₹8–20 lakhs for equipment) but operating economics with adequate throughput are strong."
            }
          },
          {
            "@type": "Question",
            "name": "Which Indian city has the most dry cleaning demand?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Mumbai and Delhi have the highest organised dry cleaning penetration. Bengaluru is growing fastest. Kolkata is significantly underpenetrated relative to its wardrobe value and present one of the larger opportunities for organised sector growth in India."
            }
          },
          {
            "@type": "Question",
            "name": "What is the organised vs unorganised split in Indian laundry?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Approximately 90–95% unorganised (dhobis, neighbourhood wash and iron, MTO-based dry cleaners) and 5–10% organised (professional equipment, standardised processes). The organised sector grows at 11% annually vs 3–4% for the unorganised sector."
            }
          },
          {
            "@type": "Question",
            "name": "Why is Kolkata's dry cleaning market underpenetrated?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Cultural factors — the embedded dhobi relationship in Bengali households — combined with limited consumer awareness of professional alternatives. Kolkata has one of India's highest per-capita silk saree ownership rates, making the gap between wardrobe value and professional care adoption particularly notable."
            }
          }
        ]
      },
      {
        "@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.65fr;position:relative;overflow:hidden}\n.post-hero::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(201,168,76,.055) 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(90px,16vw,220px);line-height:.85;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px rgba(201,168,76,.28);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:.18em;text-transform:uppercase;color:rgba(245,240,232,.28)}\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.05;letter-spacing:-.03em;color:#F5F0E8;margin-bottom:2rem;max-width:620px}\n.post-h1 em{font-style:normal;color:#C9A84C}\n.post-rule{width:48px;height:1px;background:#C9A84C;margin-bottom:2rem;opacity:.45}\n.post-meta-strip{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;margin-bottom:2.4rem}\n.meta-item{font-family:'Jost',sans-serif;font-size:10px;font-weight:300;letter-spacing:.1em;color:rgba(245,240,232,.32);display:flex;align-items:center;gap:.4rem}\n.meta-item strong{color:rgba(245,240,232,.58);font-weight:400}\n.meta-dot{width:3px;height:3px;border-radius:50%;background:rgba(201,168,76,.4);display:inline-block;flex-shrink:0}\n.hero-summary{border-left:2px solid rgba(201,168,76,.38);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,.52);max-width:500px;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:.3em;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(20px,2.6vw,34px);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:.75rem}\n.glance-points li{font-family:'Jost',sans-serif;font-size:13px;font-weight:300;line-height:1.7;color:rgba(26,25,24,.62);padding-left:1.4rem;position:relative}\n.glance-points li::before{content:'';position:absolute;left:0;top:.58em;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:.22em;text-transform:uppercase;color:rgba(26,25,24,.38);margin-bottom:.8rem;display:block}\n.jump-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.35rem}\n.jump-links li a{font-family:'Jost',sans-serif;font-size:12px;font-weight:300;color:rgba(26,25,24,.52);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,.7);margin-bottom:1.4rem}\n.post-body p:last-child{margin-bottom:0}\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,.32);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(22px,2.8vw,36px);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.post-h3{font-family:'Jost',sans-serif;font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:rgba(26,25,24,.48);margin:2rem 0 .8rem}\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(20px,2.6vw,32px);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,.62);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,.62);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,.58)}\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:.75rem 1rem;background:#0c0b0a;color:rgba(245,240,232,.5);text-align:left;white-space:nowrap}\n.post-table th:first-child{color:#E2C97E}\n.post-table td{padding:.65rem 1rem;font-size:12px;font-weight:300;line-height:1.6;color:rgba(26,25,24,.58);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.td-yes{color:#4A8A4A}.td-no{color:#C0415A}\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:.3em;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(26px,3.5vw,44px);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(14px,1.5vw,18px);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,.22);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,.58);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,.1);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,.32);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,.18);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:.3em;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(22px,2.8vw,36px);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}.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(15px,1.7vw,21px);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,.28);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:540px;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(36px,6.5vw,78px);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:360px;margin:0 auto 2rem}\n.post-cta-btns{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}\n.btn-dk-post{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;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:background .2s}\n.btn-dk-post: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(72px,18vw,120px)}.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{padding-left:5vw;padding-right:5vw}.hero-num-col{padding-left:5vw;padding-right:5vw}.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'),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.left=mx+'px';dot.style.top=my+'px';},{passive:true});(function lerp(){rx+=(mx-rx)*.1;ry+=(my-ry)*.1;ring.style.left=rx+'px';ring.style.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(a.href.startsWith('tel:')||a.href.startsWith('mailto:')||a.href.startsWith('https://wa.me'))return;if(a.href.includes('#')||e.metaKey||e.ctrlKey)return;try{if(new URL(a.href).host!==location.host)return;}catch(err){return;}e.preventDefault();ov.classList.add('visible');setTimeout(function(){location.href=a.href;},320);});})();})();\n;\n\n/* ── Global features JS ── */\n(function(){\n  /* Seasonal banner */\n  var banner=document.getElementById('seasonalBanner');\n  var bannerClose=document.getElementById('bannerClose');\n  if(banner && bannerClose){\n    var dismissed=sessionStorage.getItem('bannerDismissed');\n    if(dismissed) banner.classList.add('hidden');\n    bannerClose.addEventListener('click',function(){\n      banner.classList.add('hidden');\n      sessionStorage.setItem('bannerDismissed','1');\n    });\n  }\n\n  /* Sticky booking pill — show after 5s, hide when near footer */\n  var pill=document.getElementById('bookPill');\n  if(pill){\n    var pillTimer=setTimeout(function(){\n      pill.classList.remove('hidden');\n    },5000);\n    /* Hide pill when footer is visible */\n    var footer=document.querySelector('footer');\n    if(footer){\n      var pillObs=new IntersectionObserver(function(entries){\n        entries.forEach(function(e){\n          pill.classList.toggle('hidden',e.isIntersecting);\n        });\n      },{threshold:0.1});\n      pillObs.observe(footer);\n    }\n  }\n\n  /* Dark/light theme toggle */\n  var toggle=document.getElementById('themeToggle');\n  if(toggle){\n    var stored=localStorage.getItem('theme');\n    if(stored) document.documentElement.setAttribute('data-theme',stored);\n    toggle.addEventListener('click',function(){\n      var current=document.documentElement.getAttribute('data-theme');\n      var next=current==='light'?'dark':'light';\n      document.documentElement.setAttribute('data-theme',next);\n      localStorage.setItem('theme',next);\n    });\n  }\n\n  /* Reading progress bar */\n  var prog=document.getElementById('readProgress');\n  if(prog){\n    window.addEventListener('scroll',function(){\n      var h=document.documentElement;\n      var pct=(h.scrollTop||document.body.scrollTop)/(h.scrollHeight-h.clientHeight)*100;\n      prog.style.width=Math.min(100,pct)+'%';\n    },{passive:true});\n  }\n\n  /* Was this helpful */\n  document.querySelectorAll('.helpful-btn').forEach(function(btn){\n    btn.addEventListener('click',function(){\n      var block=btn.closest('.helpful-block');\n      var thanks=block && block.querySelector('.helpful-thanks');\n      if(thanks){thanks.classList.add('show');}\n      if(btn.dataset.helpful==='no'){\n        var wa=document.createElement('a');\n        wa.href='https://wa.me/919836233354?text=I+had+a+question+about+your+guide';\n        wa.target='_blank';wa.rel='noopener';\n        wa.style.cssText='font-family:var(--sans);font-size:11px;color:#25D366;margin-left:.5rem';\n        wa.textContent='Chat with us →';\n        if(thanks) thanks.appendChild(wa);\n      }\n      document.querySelectorAll('.helpful-btn').forEach(function(b){b.classList.remove('active')});\n      btn.classList.add('active');\n    });\n  });\n\n})();\n\n\n;\n(function(){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\">\n    <span class=\"intro-m\" aria-hidden=\"true\">TSL</span>\n    <div class=\"intro-l\" aria-hidden=\"true\"></div>\n    <span class=\"intro-w\" aria-hidden=\"true\">The Swiss Laundry</span>\n  </div>\n  <a href=\"#main\" class=\"skip-link\">Skip to main content</a>\n  <div class=\"seasonal-banner\" id=\"seasonalBanner\" role=\"banner\" aria-label=\"Free pickup offer\">\n  🧺 Want a home pickup? Complimentary pickup on invoices above ₹1,000.\n  <a href=\"/pickup\">Book Now →</a>\n  <button class=\"banner-close\" id=\"bannerClose\" aria-label=\"Close banner\">✕</button>\n</div>\n  <div class=\"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\">How big is the laundry and dry cleaning business in India?</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\">\n        <span class=\"hero-edition-num\" aria-hidden=\"true\">13</span>\n      </div>\n      <div class=\"hero-content-col\">\n        <div class=\"post-eyebrow\" data-reveal=\"\">\n          <span class=\"post-cat-pill\">Industry</span>\n          <span class=\"post-edition-label\">Edition 13 &nbsp;·&nbsp; The Record</span>\n        </div>\n        <h1 class=\"post-h1\" data-reveal=\"\">How big is the laundry and dry cleaning business in India?</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>25 Mar 2026</span>\n          <span class=\"meta-item\"><span class=\"meta-dot\"></span>8 min read</span>\n          <span class=\"meta-item\"><span class=\"meta-dot\"></span>1,960 words</span>\n        </div>\n        <blockquote class=\"hero-summary\" data-reveal=\"\">The organised laundry sector is growing at 11% annually from a base of approximately ₹28,000 crore. Market size, city-wise demand, the organised vs unorganised split, and why Kolkata's laundry market behaves differently from Delhi and Mumbai.</blockquote>\n      </div>\n    </section>\n    <section class=\"at-a-glance\" aria-label=\"Article summary\">\n      <div class=\"glance-inner\" data-reveal=\"\">\n        <div>\n          <p class=\"glance-label\">At a glance</p>\n          <h2 class=\"glance-h2\">What this article <em>covers.</em></h2>\n          <ul class=\"glance-points\"><li>The Indian laundry market is approximately ₹28,000 crore — primarily unorganised</li>\n<li>Organised sector grows at 11% annually, driven by urban middle-class demand</li>\n<li>Delhi and Mumbai lead organised dry cleaning; Kolkata is underpenetrated relative to wardrobe value</li>\n<li>The transition from dhobi to organised sector is accelerating in Tier 1 cities</li>\n<li>Why the laundry business is structurally better than most retail businesses</li></ul>\n        </div>\n        <div>\n          <div class=\"jump-nav\">\n            <span class=\"jump-nav-label\">Jump to section</span>\n            <ul class=\"jump-links\"><li><a href=\"#market-size\">Market size</a></li>\n<li><a href=\"#organised-split\">Organised vs unorganised</a></li>\n<li><a href=\"#city-wise\">City-wise patterns</a></li>\n<li><a href=\"#kolkata\">Kolkata specifically</a></li>\n<li><a href=\"#opportunity\">The opportunity</a></li>\n<li><a href=\"#faq\">Questions answered</a></li></ul>\n          </div>\n        </div>\n      </div>\n    </section>\n    <article class=\"post-body\" aria-label=\"Article content\">\n      <div class=\"post-body-inner\">\n<h2 class=\"post-h2\" id=\"market-size\">The Indian laundry market — <em>size and structure</em></h2>\n<p>The Indian laundry and dry cleaning market is estimated at approximately ₹28,000–32,000 crore annually. This figure encompasses all forms of paid garment care: traditional dhobi services, neighbourhood laundry and ironing stalls, home pickup laundry services, and professional dry cleaning establishments.</p>\n   <p>The figure is large and growing. India's 1.4 billion population, combined with a cultural tradition of daily dress changes and a textile-intensive lifestyle — particularly in saree-wearing communities — creates per-capita laundry demand that rivals much larger markets in absolute terms.</p>\n   <div class=\"fact-box\"><span class=\"fact-box-label\">Comparison</span><p>The US laundry services market is approximately $11 billion (₹90,000 crore) for a population 25% of India's. India's market is significantly underpenetrated relative to its population — which describes the growth opportunity rather than a failure.</p></div>\n\n<h2 class=\"post-h2\" id=\"organised-split\">Organised vs unorganised — <em>the 95/5 split</em></h2>\n<p>The most important structural characteristic of the Indian laundry market is the dominance of the unorganised sector. Approximately 90–95% of all paid laundry services in India are delivered by unorganised operators: individual dhobis, neighbourhood ironing and wash services, and small shops using open-vat petroleum solvent cleaning.</p>\n   <p>The organised sector — companies with professional equipment, branded services, GST registration, and standardised processes — represents 5–10% of the market by revenue but is growing at approximately 11% annually. The unorganised sector grows at 3–4%.</p>\n   <p>This 90/10 split is unusual for a market of this size. In the UK, the US, Japan, and most of Western Europe, organised laundry services represent 70–80% of market revenue. India's underpenetration of the organised sector is partly a cost sensitivity issue and partly an awareness issue — many consumers do not know that the alternative to the neighbourhood dhobi is a professional service, not a luxury.</p>\n\n<h2 class=\"post-h2\" id=\"city-wise\">City-wise demand patterns — <em>where organised dry cleaning concentrates</em></h2>\n<p>Organised dry cleaning demand concentrates in urban areas with high-income households, significant western-dress adoption, and active corporate and hospitality sectors. The current distribution:</p>\n   <div class=\"post-table-wrap\"><table class=\"post-table\"><thead><tr><th>City</th><th>Organised sector penetration</th><th>Primary drivers</th></tr></thead><tbody>\n   <tr><td>Mumbai</td><td>Highest in India</td><td>Corporate demand, western dress, apartment living</td></tr>\n   <tr><td>Delhi / NCR</td><td>High</td><td>Government and corporate sector, heavy occasion wear use</td></tr>\n   <tr><td>Bengaluru</td><td>High and growing fast</td><td>Tech sector, expatriate population, western dress</td></tr>\n   <tr><td>Chennai</td><td>Medium-high</td><td>Silk saree culture, corporate sector</td></tr>\n   <tr><td>Kolkata</td><td>Medium — underpenetrated relative to wardrobe value</td><td>Silk saree culture, Bengali wedding season, fashion industry</td></tr>\n   <tr><td>Hyderabad</td><td>Medium and growing</td><td>IT sector growth, occasion wear</td></tr>\n   </tbody></table></div>\n\n<h2 class=\"post-h2\" id=\"kolkata\">Kolkata specifically — <em>why it is underpenetrated</em></h2>\n<p>Kolkata presents a specific paradox in the Indian laundry market. The city has one of the highest-value wardrobes per capita of any Indian city — Banarasi sarees, Kanjivaram silk, heavy occasion wear for wedding seasons and Durga Puja, the formal dress culture of Bengal's professional class. These are precisely the garments that most require professional dry cleaning.</p>\n   <p>Yet Kolkata's organised dry cleaning penetration lags behind Mumbai and Delhi, and significantly behind what the wardrobe value would predict. The reasons are partly cultural — the dhobi relationship is deeply embedded in Bengali household culture — and partly awareness. Many Kolkata households that own ₹50,000+ of silk sarees still send them to the neighbourhood MTO dry cleaner because no one has explained the alternative.</p>\n   <p>The Swiss Laundry's decision to establish at Kasba Industrial Estate in 2013 was partly a bet on this underpenetration correcting. Thirteen years later, that correction is happening — slowly, but measurably.</p>\n\n<h2 class=\"post-h2\" id=\"opportunity\">The business opportunity — <em>why laundry is a good business</em></h2>\n<p>The structural characteristics that make laundry attractive as a business:</p>\n   <p><strong>Recurring demand:</strong> people wear clothes every day and need them cleaned regularly. Unlike most retail businesses, there is no customer acquisition cost for repeat orders from an established base.</p>\n   <p><strong>Non-discretionary spend:</strong> even in economic downturns, people continue wearing and cleaning clothes. Laundry demand is relatively inelastic.</p>\n   <p><strong>Local monopoly potential:</strong> a well-run dry cleaning operation with strong local brand recognition in a defined geographic area has significant natural protection from competition. Customers who trust their dry cleaner with valuable garments do not switch lightly.</p>\n   <p><strong>Low inventory risk:</strong> unlike retail, there is no inventory to carry, mark down, or dispose of. The operating working capital requirement is modest relative to revenue.</p>\n</div>\n    \n<div class=\"pro-box\">\n  <span class=\"pro-box-label\">The Swiss Laundry — The Swiss Laundry in the organised sector</span>\n  <p>The Swiss Laundry is part of the small but growing organised professional dry cleaning sector in India. Established 2013, Kasba, Kolkata. Enclosed machines, professional solvent, trained staff, transparent pricing, doorstep service. The market data in this post reflects an industry we work in every day.</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=\"\">Questions answered <em>directly.</em></h2>\n        <div class=\"faq-item open\">\n  <button class=\"faq-q\" aria-expanded=\"true\">How big is the laundry market in India?<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>\n  <p class=\"faq-a\">Approximately ₹28,000–32,000 crore annually, encompassing all forms of paid garment care. The organised sector — professional equipment, branded services — is 5–10% of this, growing at 11% annually.</p>\n</div><div class=\"faq-item\">\n  <button class=\"faq-q\" aria-expanded=\"false\">Is the dry cleaning business profitable in India?<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>\n  <p class=\"faq-a\">The organised dry cleaning business has attractive structural characteristics: recurring non-discretionary demand, local monopoly potential with established customer bases, and low inventory risk. Capital intensity is high (₹8–20 lakhs for equipment) but operating economics with adequate throughput are strong.</p>\n</div><div class=\"faq-item\">\n  <button class=\"faq-q\" aria-expanded=\"false\">Which Indian city has the most dry cleaning demand?<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>\n  <p class=\"faq-a\">Mumbai and Delhi have the highest organised dry cleaning penetration. Bengaluru is growing fastest. Kolkata is significantly underpenetrated relative to its wardrobe value and present one of the larger opportunities for organised sector growth in India.</p>\n</div><div class=\"faq-item\">\n  <button class=\"faq-q\" aria-expanded=\"false\">What is the organised vs unorganised split in Indian laundry?<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>\n  <p class=\"faq-a\">Approximately 90–95% unorganised (dhobis, neighbourhood wash and iron, MTO-based dry cleaners) and 5–10% organised (professional equipment, standardised processes). The organised sector grows at 11% annually vs 3–4% for the unorganised sector.</p>\n</div><div class=\"faq-item\">\n  <button class=\"faq-q\" aria-expanded=\"false\">Why is Kolkata's dry cleaning market underpenetrated?<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>\n  <p class=\"faq-a\">Cultural factors — the embedded dhobi relationship in Bengali households — combined with limited consumer awareness of professional alternatives. Kolkata has one of India's highest per-capita silk saree ownership rates, making the gap between wardrobe value and professional care adoption particularly notable.</p>\n</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\">\n          <span class=\"author-name\">The Swiss Laundry — Editorial Team</span>\n          <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>\n        </div>\n        <div class=\"author-dates\"><span>Published: 25 Mar 2026</span><br><span>Last updated: 25 Mar 2026</span></div>\n      </div>\n    </div>\n    <section class=\"related-sec\" data-reveal=\"\" aria-label=\"Related articles\">\n      <div class=\"related-inner\">\n        <p class=\"related-ey\">Continue reading</p>\n        <h2 class=\"related-h2\">More from <em>The Record.</em></h2>\n        <div class=\"related-grid\"><a href=\"/blog-organised-vs-unorganised-laundry-india\" class=\"related-card\"><span class=\"rc-tag\">Industry</span><span class=\"rc-title\">Organised vs unorganised laundry in India — what the ₹8,000 crore gap looks like</span><span class=\"rc-read\">9 min read</span></a><a href=\"/blog-how-to-start-laundry-business-india\" class=\"related-card\"><span class=\"rc-tag\">Business</span><span class=\"rc-title\">How to start a professional laundry business in India</span><span class=\"rc-read\">12 min read</span></a><a href=\"/blog-dhobi-vs-dry-cleaner-india\" class=\"related-card\"><span class=\"rc-tag\">Industry</span><span class=\"rc-title\">Dhobi vs dry cleaner — which clothes go where</span><span class=\"rc-read\">6 min read</span></a></div>\n      </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\">The organised\n<br><em>standard.</em></h2>\n        <p class=\"post-cta-sub\">Professional dry cleaning since 2013. Doorstep pickup across 30+ areas in Kolkata.</p>\n        <div class=\"post-cta-btns\">\n          <a href=\"/pickup\" class=\"btn-dk-post\"><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+dry+cleaning\" class=\"btn-dk-post\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"#C9A84C\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.89.525 3.66 1.438 5.168L2 22l4.948-1.42A9.956 9.956 0 0012 22c5.523 0 10-4.477 10-10S17.523 2 12 2z\" fill=\"none\" stroke=\"#C9A84C\" stroke-width=\"2\"></path></svg> WhatsApp</a>\n          <a href=\"tel:9836233354\" class=\"btn-dk-post\"><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> 9836233354</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\">\n    <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>\n  </a>\n  <!-- Sticky booking pill — mobile only, hidden on /pickup -->\n<a href=\"/pickup\" class=\"book-pill\" id=\"bookPill\" aria-label=\"Book a pickup\">\n  <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg>\n  Book Pickup · 2 min\n</a>\n  \n\n  \n\n\n\n  <script src=\"https://cdn.jsdelivr.net/npm/@studio-freight/lenis@1.0.42/dist/lenis.min.js\"></script>"
}
