{
  "title": "The Swiss Laundry | Premium Dry Cleaning & Garment Care | Kolkata",
  "description": "Kolkata's premier dry cleaning and laundry service since 2013. Doorstep pickup. Silk, bridal and designer garments. The Swiss Laundry.",
  "keywords": "dry cleaning Kolkata, premium laundry Kolkata, carpet cleaning Kolkata, garment care Kolkata, luxury dry cleaners Kolkata",
  "robots": "index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1",
  "canonical": "https://www.theswisslaundry.com/",
  "hreflangs": [
    {
      "hreflang": "en-IN",
      "href": "https://www.theswisslaundry.com/"
    }
  ],
  "og": {
    "type": "website",
    "title": "The Swiss Laundry — Extraordinary Garment Care | Kolkata",
    "description": "Kolkata's premier dry cleaning, laundry and carpet cleaning service. Pristine garment care delivered on time. Pickup and delivery across Kolkata. Est. 2013.",
    "url": "https://www.theswisslaundry.com/",
    "site_name": "The Swiss Laundry",
    "locale": "en_IN",
    "image": "https://www.theswisslaundry.com/og-image.jpg",
    "image:width": "1200",
    "image:height": "630",
    "image:alt": "The Swiss Laundry — Premium Dry Cleaning Kolkata"
  },
  "geo": {
    "region": "IN-WB",
    "placename": "Kolkata",
    "position": "22.5726;88.3639"
  },
  "jsonLd": [
    {
      "@context": "https://schema.org",
      "@graph": [
        {
          "@type": "Organization",
          "@id": "https://www.theswisslaundry.com/#organization",
          "name": "The Swiss Laundry",
          "alternateName": "Swiss Laundry Private Limited",
          "url": "https://www.theswisslaundry.com",
          "logo": {
            "@type": "ImageObject",
            "url": "https://www.theswisslaundry.com/images/favicon.svg"
          },
          "foundingDate": "2013-10-07",
          "telephone": "+919836233354",
          "email": "info@theswisslaundry.com",
          "address": {
            "@type": "PostalAddress",
            "streetAddress": "P-4 Kasba Industrial Estate, Phase III, E.M. Bypass (East)",
            "addressLocality": "Kolkata",
            "addressRegion": "West Bengal",
            "postalCode": "700107",
            "addressCountry": "IN"
          },
          "sameAs": [
            "https://www.facebook.com/TheSwissLaundry",
            "https://www.instagram.com/theswisslaundry_drycleaners/"
          ]
        },
        {
          "@type": "WebSite",
          "@id": "https://www.theswisslaundry.com/#website",
          "name": "The Swiss Laundry",
          "url": "https://www.theswisslaundry.com",
          "publisher": {
            "@id": "https://www.theswisslaundry.com/#organization"
          },
          "inLanguage": "en-IN"
        },
        {
          "@type": "LocalBusiness",
          "@id": "https://www.theswisslaundry.com/#localbusiness",
          "name": "The Swiss Laundry",
          "description": "Kolkata's premier dry cleaning, laundry and carpet cleaning service. Pristine garment care delivered on time. Est. 7 October 2013.",
          "url": "https://www.theswisslaundry.com",
          "logo": {
            "@type": "ImageObject",
            "url": "https://www.theswisslaundry.com/images/favicon.svg"
          },
          "image": "https://www.theswisslaundry.com/images/og-default.svg",
          "telephone": "+919836233354",
          "email": "info@theswisslaundry.com",
          "foundingDate": "2013-10-07",
          "priceRange": "₹₹",
          "openingHours": "Mo-Sa 10:00-17:00",
          "address": {
            "@type": "PostalAddress",
            "streetAddress": "P-4 Kasba Industrial Estate, Phase III, E.M. Bypass (East)",
            "addressLocality": "Kolkata",
            "addressRegion": "West Bengal",
            "postalCode": "700107",
            "addressCountry": "IN"
          },
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": "22.5726",
            "longitude": "88.3639"
          },
          "openingHoursSpecification": {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": [
              "Monday",
              "Tuesday",
              "Wednesday",
              "Thursday",
              "Friday",
              "Saturday"
            ],
            "opens": "10:00",
            "closes": "17:00"
          },
          "aggregateRating": {
            "@type": "AggregateRating",
            "ratingValue": "4.5",
            "reviewCount": "200",
            "bestRating": "5"
          },
          "sameAs": [
            "https://www.facebook.com/TheSwissLaundry",
            "https://www.instagram.com/theswisslaundry_drycleaners/"
          ],
          "hasOfferCatalog": {
            "@type": "OfferCatalog",
            "name": "Garment Care Services",
            "itemListElement": [
              {
                "@type": "Offer",
                "itemOffered": {
                  "@type": "Service",
                  "name": "Dry Cleaning",
                  "description": "Premium dry cleaning using specialist solvents for delicate fabrics including silks, embroideries, lehengas, sherwanis and heritage textiles."
                }
              },
              {
                "@type": "Offer",
                "itemOffered": {
                  "@type": "Service",
                  "name": "Laundry",
                  "description": "Professional laundry service for formal shirts, trousers and everyday wear. Cleaned, pressed and returned within 48 working hours."
                }
              },
              {
                "@type": "Offer",
                "itemOffered": {
                  "@type": "Service",
                  "name": "Carpet and Home Care",
                  "description": "Specialist carpet cleaning, curtain cleaning and home textile care service. Carpets, sofa covers and home furnishings restored to original standard."
                }
              }
            ]
          }
        }
      ]
    },
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "How long does dry cleaning take at The Swiss Laundry?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Our standard dry cleaning service takes 48 working hours. We also offer Same Day, Next Day and Express (within 2 days) delivery options for urgent garment care needs."
          }
        },
        {
          "@type": "Question",
          "name": "Do you offer pickup and delivery for dry cleaning in Kolkata?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. The Swiss Laundry offers home pickup and delivery across Kolkata and suburbs. Book by phone, WhatsApp, our website or app. We confirm same day and notify you by SMS when your team member is on the way."
          }
        },
        {
          "@type": "Question",
          "name": "What types of garments do you dry clean?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "We dry clean all types of garments including bridal lehengas, sarees, sherwanis, bandhgalas, silk garments, embroidered fabrics, heritage textiles, formal shirts, trousers, winter coats and jackets. We also clean carpets, curtains, sofa covers and soft furnishings."
          }
        },
        {
          "@type": "Question",
          "name": "What dry cleaning method does The Swiss Laundry use?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "We use both Hydrocarbon and Perc dry cleaning solvents, chosen based on the specific fabric and garment requirements. For some fabrics we also use wet cleaning. Every garment is individually assessed before treatment."
          }
        },
        {
          "@type": "Question",
          "name": "How much does dry cleaning cost at The Swiss Laundry?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Pricing varies by garment type and service required. Contact us by phone or WhatsApp for a quote. We offer transparent pricing with no hidden charges."
          }
        },
        {
          "@type": "Question",
          "name": "Do you clean carpets and curtains?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Our specialist carpet and home care service cleans, restores and preserves hand-knotted carpets, Persian carpets, curtains, sofa covers, cushion covers and all home textiles."
          }
        },
        {
          "@type": "Question",
          "name": "Do you offer same day dry cleaning in Kolkata?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. We offer Same Day, Next Day and Express (within 2 days) dry cleaning and laundry services in Kolkata, subject to availability. Contact us to confirm availability for your area."
          }
        },
        {
          "@type": "Question",
          "name": "Who is Chotusingh at The Swiss Laundry?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Chotusingh is a beloved member of The Swiss Laundry family. He has been with the team since the early days and has become an unofficial symbol of the care and warmth that defines everything we do. As we say — some members of the family never clock out."
          }
        }
      ]
    },
    {
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://www.theswisslaundry.com"
        }
      ]
    }
  ],
  "styleCss": "*{-webkit-tap-highlight-color:transparent}\nbutton,a,[role=\"button\"]{touch-action:manipulation}\n\n*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}\n:root{\n  --cream:#F5F0E8;--dark:#0c0b0a;--dark2:#1a1918;\n  --pink:#C0415A;--pink2:#a8324a;\n  --gold:#C9A84C;--gold-l:#E2C97E;\n  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;\n  --sans:'Jost','Helvetica Neue',Arial,sans-serif;\n}\nhtml{scroll-behavior:smooth}\nbody{font-family:var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased;background:var(--cream)}\n::-webkit-scrollbar{width:0}\n\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/* ═══ HERO ═══ */\n.hero{position:relative;height:100svh;min-height:680px;overflow:hidden}\n\n.slide{\n  position:absolute;inset:0;overflow:hidden;\n  opacity:0;z-index:1;\n  backface-visibility:hidden;-webkit-backface-visibility:hidden;\n}\n.slide.is-active{opacity:1;z-index:2}\n.slide-img{\n  position:absolute;inset:-3%;width:106%;height:106%;\n  object-fit:cover;object-position:center;will-change:transform;\n}\n.slide.is-active .slide-img{animation:kb 28s ease-in-out forwards}\n@keyframes kb{\n  0%{transform:scale(1) translate(0,0)}\n  100%{transform:scale(1.04) translate(-0.3%,0.2%)}\n}\n\n.slide-overlay{\n  position:absolute;inset:0;z-index:1;\n  background:linear-gradient(\n    to bottom,\n    rgba(0,0,0,0.2) 0%,rgba(0,0,0,0) 15%,\n    rgba(0,0,0,0) 46%,rgba(0,0,0,0.62) 75%,\n    rgba(0,0,0,0.85) 100%\n  );\n}\n\n/* Gold corners */\n.hero-frame{position:absolute;inset:20px;z-index:30;pointer-events:none}\n.corner{position:absolute;width:52px;height:52px}\n.corner-tl{top:0;left:0;border-top:1px solid rgba(201,168,76,0.6);border-left:1px solid rgba(201,168,76,0.6)}\n.corner-tr{top:0;right:0;border-top:1px solid rgba(201,168,76,0.6);border-right:1px solid rgba(201,168,76,0.6)}\n.corner-bl{bottom:0;left:0;border-bottom:1px solid rgba(201,168,76,0.6);border-left:1px solid rgba(201,168,76,0.6)}\n.corner-br{bottom:0;right:0;border-bottom:1px solid rgba(201,168,76,0.6);border-right:1px solid rgba(201,168,76,0.6)}\n\n/* Service label */\n.svc-lbl{\n  position:absolute;top:clamp(90px,12vh,118px);left:clamp(52px,6vw,100px);\n  z-index:40;display:flex;flex-direction:column;gap:0.5rem;\n  opacity:0;transform:translateX(-12px);\n  transition:opacity 0.9s ease 0.4s,transform 0.9s ease 0.4s;\n  pointer-events:none;\n}\n.svc-lbl.active{opacity:1;transform:translateX(0)}\n.svc-cat{display:flex;align-items:center;gap:0.8rem}\n.sl-line{width:22px;height:1px;background:var(--gold);flex-shrink:0}\n.sl-cat-txt{font-family:var(--sans);font-size:9px;letter-spacing:0.26em;text-transform:uppercase;color:rgba(255,255,255,0.65)}\n\n/* Hero text */\n.hero-text{\n  position:absolute;bottom:0;left:0;right:0;z-index:40;\n  display:flex;flex-direction:column;align-items:center;text-align:center;\n  padding:0 2rem 5.5rem;pointer-events:none;\n  background:linear-gradient(to bottom,transparent 0%,transparent 8%,rgba(4,3,2,0) 12%,rgba(4,3,2,0.44) 46%,rgba(4,3,2,0.72) 100%);\n}\n.seo-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n.h-eye{font-family:var(--sans);font-size:9px;letter-spacing:0.32em;text-transform:uppercase;color:var(--gold-l);margin-bottom:1.2rem;margin-top:5.5rem;animation:fadeUp 1s ease 0.3s both}\n.h-eye span{margin:0 0.9rem;color:rgba(201,168,76,0.38)}\n.h-h1{font-family:var(--serif);font-size:clamp(50px,6.5vw,100px);font-weight:300;line-height:1.03;color:#fff;letter-spacing:-0.015em;margin-bottom:0.3rem}\n.word{display:inline-block;opacity:0;transform:translateY(30px);animation:wordUp 1s cubic-bezier(0.16,1,0.3,1) forwards}\n.w1{animation-delay:0.5s}.w2{animation-delay:0.7s}.w3{animation-delay:0.9s}.w4{animation-delay:1.1s}\n.lb{display:block}\n.h-brand{font-family:var(--serif);font-style:italic;font-size:clamp(15px,1.9vw,21px);font-weight:300;color:rgba(255,255,255,0.55);letter-spacing:0.03em;margin-bottom:1.4rem;animation:fadeUp 1s ease 1.3s both}\n.h-rule{width:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:0 auto 1.4rem;animation:ruleExpand 0.9s ease 1.6s forwards}\n@keyframes ruleExpand{to{width:60px}}\n.h-subs{position:relative;height:clamp(28px,4vw,40px);display:flex;align-items:center;justify-content:center;width:100%}\n.h-sub{position:absolute;font-family:var(--serif);font-size:clamp(18px,2.4vw,30px);font-weight:300;font-style:italic;letter-spacing:0.01em;color:#fff;white-space:nowrap;opacity:0;transform:translateY(12px);transition:opacity 0.8s ease,transform 0.8s ease;text-shadow:0 2px 20px rgba(0,0,0,0.4)}\n.h-sub.active{opacity:1;transform:translateY(0)}\n\n/* Arrows */\n.arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:40;width:48px;height:48px;border:1px solid rgba(255,255,255,0.22);background:rgba(0,0,0,0.12);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s;pointer-events:all}\n.arrow:hover{border-color:rgba(255,255,255,0.55);background:rgba(0,0,0,0.28)}\n.arrow-prev{left:clamp(20px,4vw,48px)}\n.arrow-next{right:clamp(20px,4vw,48px)}\n.arrow svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:1.5}\n\n/* Bottom */\n.hero-btm{position:absolute;bottom:1.8rem;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:0 3rem;pointer-events:none}\n.d-dots{display:flex;align-items:center;gap:12px;pointer-events:all}\n.d-dot{width:20px;height:1px;background:rgba(255,255,255,0.28);cursor:pointer;transition:all 0.45s}\n.d-dot.active{width:48px;background:var(--gold-l)}\n.d-ctr{position:absolute;right:3rem;font-family:var(--serif);font-size:12px;color:rgba(255,255,255,0.3);letter-spacing:0.08em;pointer-events:none}\n.d-ctr em{font-style:normal;font-size:20px;color:rgba(255,255,255,0.6)}\n.scroll-hint{position:absolute;left:3rem;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;opacity:0;animation:fadeUp 1s ease 3s forwards}\n.scroll-txt{font-family:var(--sans);font-size:7px;letter-spacing:0.28em;text-transform:uppercase;color:rgba(255,255,255,0.38)}\n.scroll-line{width:1px;height:36px;background:linear-gradient(180deg,rgba(255,255,255,0.38),transparent);animation:scrollPulse 2.5s ease-in-out 3.5s infinite}\n@keyframes scrollPulse{0%,100%{opacity:0.4}50%{opacity:1}}\n.progress{position:absolute;bottom:0;left:0;right:0;height:1.5px;background:rgba(255,255,255,0.05);z-index:45}\n.progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--gold),var(--gold-l))}\n\n@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}\n@keyframes wordUp{to{opacity:1;transform:translateY(0)}}\n\n@media(max-width:768px){\n  nav{padding:0 1.2rem;height:62px}\n  \n  \n  .mob-menu{top:62px}\n  .nav-logo img{height:38px}\n  .btn-track{padding:8px 11px;font-size:8px;letter-spacing:0.1em}.btn-connect{padding:8px 11px;font-size:8px;letter-spacing:0.1em}\n  .btn-book{padding:9px 13px;font-size:8px;letter-spacing:0.1em}\n  .hero-frame{inset:10px}\n  .corner{width:30px;height:30px}\n  .arrow{width:36px;height:36px}\n  .arrow-prev{left:12px}\n  .arrow-next{right:12px}\n  .d-ctr,.scroll-hint{display:none}\n  .h-sub{font-size:clamp(15px,4vw,22px)}\n}\n\n\n\n/* ═══ SECTION 2 — BRAND PHILOSOPHY ═══ */\n.brand-philosophy{\n  position:relative;\n  background:var(--dark2);\n  overflow:hidden;\n  min-height:85vh;\n}\n\n/* Split layout */\n.bp-split{\n  display:grid;\n  grid-template-columns:42% 58%;\n  min-height:85vh;\n  align-items:stretch;\n}\n\n/* LEFT — figure side */\n.bp-figure-side{\n  display:flex;\n  align-items:flex-end;\n  justify-content:center;\n  padding:0 0 0 4rem;\n  position:relative;\n  overflow:hidden;\n}\n\n/* Golden light — expands on scroll via JS class */\n/* Scroll-driven glow — follows scroll position vertically */\n.bp-figure-side::before{\n  content:'';\n  position:absolute;\n  /* Position follows scroll via --glow-y custom property */\n  top:var(--glow-y, 100%);\n  left:50%;\n  transform:translate(-50%, -50%);\n  width:var(--glow-inner, 0px);\n  height:var(--glow-inner, 0px);\n  border-radius:50%;\n  background:radial-gradient(ellipse at center,\n    rgba(201,168,76,var(--glow-inner-opacity, 0)) 0%,\n    rgba(201,168,76,calc(var(--glow-inner-opacity, 0) * 0.35)) 45%,\n    transparent 70%\n  );\n  pointer-events:none;\n  z-index:0;\n}\n\n/* Outer ambient glow — same position, larger and more diffuse */\n.bp-figure-side::after{\n  content:'';\n  position:absolute;\n  top:var(--glow-y, 100%);\n  left:50%;\n  transform:translate(-50%, -50%);\n  width:var(--glow-outer, 0px);\n  height:var(--glow-outer, 0px);\n  border-radius:50%;\n  background:radial-gradient(ellipse at center,\n    rgba(201,168,76,var(--glow-outer-opacity, 0)) 0%,\n    rgba(201,168,76,calc(var(--glow-outer-opacity, 0) * 0.25)) 50%,\n    transparent 70%\n  );\n  pointer-events:none;\n  z-index:0;\n}\n\n/* Stage floor line — gold rule beneath figure */\n.bp-stage-floor{\n  position:absolute;\n  bottom:0;left:0;right:0;\n  height:1px;\n  background:linear-gradient(90deg,\n    transparent 0%,\n    rgba(201,168,76,0.0) 10%,\n    rgba(201,168,76,0.45) 50%,\n    rgba(201,168,76,0.0) 90%,\n    transparent 100%\n  );\n  z-index:2;\n  opacity:0;\n  transition:opacity 1.5s ease 1s;\n}\n\n.bp-figure-wrap{\n  opacity:0;\n  transform:translateY(32px);\n  transition:opacity 1.4s ease 0.2s, transform 1.4s cubic-bezier(0.16,1,0.3,1) 0.2s;\n  position:relative;\n  z-index:1;\n}\n.bp-figure-wrap.visible{\n  opacity:1;\n  transform:translateY(0);\n}\n\n.bp-figure-img{\n  display:block;\n  height:88vh;\n  max-height:760px;\n  width:auto;\n  object-fit:contain;\n  object-position:bottom center;\n  filter:drop-shadow(0 0 40px rgba(201,168,76,0.1));\n}\n\n/* RIGHT — text side */\n.bp-text-side{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  padding:8rem 7rem 8rem 6rem;\n  border-left:0.5px solid rgba(201,168,76,0.12);\n}\n\n.bp-text-inner{\n  max-width:480px;\n  opacity:0;\n  transform:translateY(28px);\n  transition:opacity 1.3s ease 0.5s, transform 1.3s cubic-bezier(0.16,1,0.3,1) 0.5s;\n}\n.bp-text-inner.visible{\n  opacity:1;\n  transform:translateY(0);\n}\n\n/* Eyebrow */\n.bp-eyebrow{\n  font-family:var(--sans);\n  font-size:9px;\n  letter-spacing:0.34em;\n  text-transform:uppercase;\n  color:var(--gold);\n  margin-bottom:1.4rem;\n  opacity:0;\n  transform:translateY(10px);\n  transition:opacity 0.9s ease 0.6s, transform 0.9s ease 0.6s;\n}\n.bp-text-inner.visible .bp-eyebrow{\n  opacity:1;\n  transform:translateY(0);\n}\n\n/* Vertical gold rule */\n.bp-top-rule{\n  width:1px;\n  height:0;\n  background:linear-gradient(180deg,transparent,rgba(201,168,76,0.9),transparent);\n  margin:0 0 3rem;\n  transition:height 1s ease 0.8s;\n}\n.bp-text-inner.visible .bp-top-rule{\n  height:52px;\n}\n\n/* Headline */\n.bp-h2{\n  font-family:var(--serif);\n  font-style:italic;\n  font-weight:300;\n  font-size:clamp(38px,5vw,78px);\n  line-height:1.1;\n  letter-spacing:-0.015em;\n  color:#ffffff;\n  margin-bottom:2.4rem;\n}\n\n/* Gold rule */\n.bp-rule{\n  width:0;height:1px;\n  background:linear-gradient(90deg,var(--gold-l),transparent);\n  margin-bottom:2.4rem;\n  transition:width 1s cubic-bezier(0.16,1,0.3,1) 1s;\n}\n.bp-text-inner.visible .bp-rule{\n  width:64px;\n}\n\n/* Sub line wrap */\n.bp-sub-wrap{\n  display:flex;\n  align-items:center;\n  gap:1rem;\n  opacity:0;\n  transform:translateY(12px);\n  transition:opacity 1s ease 1.2s, transform 1s ease 1.2s;\n}\n.bp-text-inner.visible .bp-sub-wrap{\n  opacity:1;\n  transform:translateY(0);\n}\n.bp-dot{\n  width:3px;height:3px;\n  border-radius:50%;\n  background:var(--gold-l);\n  flex-shrink:0;\n  opacity:0.7;\n}\n.bp-sub{\n  font-family:var(--sans);\n  font-size:clamp(11px,1.1vw,14px);\n  font-weight:400;\n  letter-spacing:0.18em;\n  text-transform:uppercase;\n  color:rgba(255,255,255,0.55);\n  line-height:2;\n}\n\n/* Mobile */\n@media(max-width:900px){\n  .bp-split{\n    grid-template-columns:1fr;\n    min-height:auto;\n  }\n  .bp-figure-side{\n    padding:4rem 2rem 0;\n    justify-content:center;\n    min-height:45vh;\n  }\n  .bp-figure-img{\n    height:48vh;\n    max-height:400px;\n  }\n  .bp-text-side{\n    padding:3rem 2rem 4rem;\n    border-left:none;\n    border-top:0.5px solid rgba(201,168,76,0.12);\n    justify-content:center;\n  }\n  .bp-text-inner{max-width:100%}\n  .bp-h2{font-size:clamp(28px,7vw,48px)}\n}\n@media(max-width:480px){\n  .bp-h2{font-size:28px}\n  .bp-sub{font-size:10px;letter-spacing:0.14em}\n}\n\n\n\n/* ═══ SERVICES — TAJ × OGILVY ═══ */\n.og-services{\n  background:var(--cream);\n  padding:8rem 0 6rem;\n}\n\n/* Section eyebrow */\n.og-header{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  gap:1.4rem;\n  margin-bottom:7rem;\n}\n.og-header-rule{\n  width:48px;height:1px;\n  background:linear-gradient(90deg,transparent,var(--gold));\n}\n.og-header-rule:last-child{\n  background:linear-gradient(90deg,var(--gold),transparent);\n}\n.og-header-eye{\n  font-family:var(--sans);\n  font-size:9px;\n  letter-spacing:0.32em;\n  text-transform:uppercase;\n  color:var(--gold);\n  white-space:nowrap;\n}\n\n/* Panel */\n.og-panel{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  align-items:center;\n  max-width:1200px;\n  margin:0 auto;\n  padding:5rem 6rem;\n  gap:6rem;\n}\n\n/* Panel divider */\n.og-panel-divider{\n  max-width:900px;\n  margin:0 auto;\n  height:0.5px;\n  background:linear-gradient(90deg,transparent,rgba(0,0,0,0.1),transparent);\n}\n\n/* Image side */\n.og-img-side{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n}\n\n/* The precious framed image — like a gallery piece */\n.og-figure{\n  margin:0;\n  position:relative;\n}\n.og-frame{\n  position:relative;\n  padding:10px;\n  background:var(--cream);\n  /* Outer thin gold border */\n  border:0.5px solid rgba(201,168,76,0.45);\n  box-shadow:\n    0 2px 24px rgba(0,0,0,0.07),\n    0 8px 48px rgba(0,0,0,0.05);\n  transition:transform 0.7s cubic-bezier(0.16,1,0.3,1),\n             box-shadow 0.7s ease;\n}\n.og-frame:hover{\n  transform:translateY(-6px);\n  box-shadow:\n    0 4px 32px rgba(0,0,0,0.1),\n    0 16px 64px rgba(0,0,0,0.07);\n}\n/* Gold corner marks — top-left and bottom-right only */\n.og-frame::before,\n.og-frame::after{\n  content:'';\n  position:absolute;\n  width:18px;height:18px;\n}\n.og-frame::before{\n  top:-1px;left:-1px;\n  border-top:1.5px solid var(--gold);\n  border-left:1.5px solid var(--gold);\n}\n.og-frame::after{\n  bottom:-1px;right:-1px;\n  border-bottom:1.5px solid var(--gold);\n  border-right:1.5px solid var(--gold);\n}\n.og-photo{\n  display:block;\n  width:340px;\n  height:340px;\n  object-fit:cover;\n  object-position:center;\n}\n\n/* Text side */\n.og-txt-side{\n  display:flex;\n  align-items:center;\n}\n.og-txt-left{ justify-content:flex-start; }\n.og-txt-right{ justify-content:flex-end; }\n\n.og-txt-inner{\n  max-width:420px;\n  opacity:0;\n  transform:translateY(28px);\n  transition:opacity 1.2s ease, transform 1.2s ease;\n}\n.og-txt-inner.visible{\n  opacity:1;\n  transform:translateY(0);\n}\n\n/* THE OGILVY HEADLINE — large, italic, devastating */\n.og-ogilvy{\n  font-family:var(--serif);\n  font-style:italic;\n  font-weight:300;\n  font-size:clamp(24px,2.8vw,42px);\n  line-height:1.18;\n  color:var(--dark2);\n  letter-spacing:-0.01em;\n  margin-bottom:1.8rem;\n}\n\n/* Service keyword — SEO H3, small gold caps */\n.og-service-kw{\n  font-family:var(--sans);\n  font-size:9px;\n  font-weight:500;\n  letter-spacing:0.28em;\n  text-transform:uppercase;\n  color:var(--gold);\n  margin-bottom:0.6rem;\n}\n\n/* Short gold rule under keyword */\n.og-kw-rule{\n  width:24px;height:1px;\n  background:var(--gold);\n  margin-bottom:1.2rem;\n}\n\n/* Body copy */\n.og-copy{\n  font-family:var(--sans);\n  font-size:clamp(13px,1.05vw,15px);\n  font-weight:300;\n  line-height:1.92;\n  color:rgba(26,25,24,0.62);\n  margin-bottom:2rem;\n}\n\n/* CTA */\n.og-cta{\n  display:inline-flex;\n  align-items:center;\n  gap:0.5rem;\n  font-family:var(--sans);\n  font-size:10px;\n  font-weight:500;\n  letter-spacing:0.2em;\n  text-transform:uppercase;\n  color:var(--dark2);\n  text-decoration:none;\n  border-bottom:1px solid var(--gold);\n  padding-bottom:3px;\n  transition:color 0.3s, gap 0.3s, border-color 0.3s;\n}\n.og-cta:hover{\n  color:var(--pink);\n  border-color:var(--pink);\n  gap:0.9rem;\n}\n.og-arrow{\n  display:inline-block;\n  transition:transform 0.3s;\n}\n.og-cta:hover .og-arrow{\n  transform:translateX(4px);\n}\n\n/* ── MOBILE ── */\n@media(max-width:900px){\n  .og-panel{\n    grid-template-columns:1fr;\n    padding:4rem 2rem;\n    gap:3rem;\n  }\n  /* On mobile — always image on top, text below */\n  .og-panel-2 .og-txt-side{ order:1; }\n  .og-panel-2 .og-img-side{ order:2; }\n  .og-img-side{ justify-content:center; }\n  .og-txt-side{ justify-content:center; }\n  .og-txt-inner{ max-width:100%; }\n  .og-photo{ width:100%; max-width:340px; height:300px; }\n  .og-header{ margin-bottom:4rem; }\n  .og-services{ padding:5rem 0 4rem; }\n}\n@media(max-width:480px){\n  .og-ogilvy{ font-size:22px; }\n  .og-panel{ padding:3rem 1.4rem; gap:2rem; }\n  .og-photo{ height:260px; }\n}\n\n\n\n/* ═══ SECTION 4 — PROCESS — TAJ LEVEL ═══ */\n.proc{\n  background:var(--dark2);\n  padding:0 0 8rem;\n  position:relative;\n  overflow:hidden;\n}\n\n/* Improvement 4: Gold threshold line at very top */\n.proc-threshold{\n  width:100%;\n  height:1px;\n  background:linear-gradient(90deg,\n    transparent 0%,\n    rgba(201,168,76,0.15) 15%,\n    rgba(201,168,76,0.6) 50%,\n    rgba(201,168,76,0.15) 85%,\n    transparent 100%\n  );\n}\n\n.proc-wrap{\n  max-width:1200px;\n  margin:0 auto;\n  padding:8rem 6rem 0;\n  position:relative;\n  z-index:1;\n}\n\n/* Header */\n.proc-hdr{\n  text-align:center;\n  margin-bottom:7rem;\n  opacity:0;\n  transform:translateY(24px);\n  transition:opacity 1.2s ease, transform 1.2s ease;\n}\n.proc-hdr.visible{opacity:1;transform:translateY(0)}\n\n.proc-eye{\n  font-family:var(--sans);\n  font-size:9px;\n  letter-spacing:0.34em;\n  text-transform:uppercase;\n  color:var(--gold);\n  margin-bottom:1.6rem;\n}\n.proc-h2{\n  font-family:var(--serif);\n  font-style:italic;\n  font-weight:300;\n  font-size:clamp(40px,5.5vw,78px);\n  line-height:1.08;\n  color:#fff;\n  letter-spacing:-0.015em;\n  margin-bottom:1.6rem;\n}\n.proc-sub{\n  font-family:var(--sans);\n  font-size:clamp(11px,1.05vw,13px);\n  font-weight:300;\n  letter-spacing:0.14em;\n  color:rgba(255,255,255,0.32);\n  line-height:1.9;\n}\n\n/* Improvement 1: Open layout — no grid, no borders */\n/* 2x2 on desktop using CSS grid but no visible separators */\n.proc-steps{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:6rem 8rem;\n  margin-bottom:6rem;\n}\n\n/* Each step — open, breathing room */\n.proc-step{\n  position:relative;\n  opacity:0;\n  transform:translateY(32px);\n  transition:opacity 1.1s ease, transform 1.1s ease;\n  padding:2.8rem;\n  border:1px solid transparent;\n  cursor:default;\n}\n.proc-step.visible{opacity:1;transform:translateY(0)}\n\n/* Hover — step lifts, gold border glows, number brightens */\n.proc-step.visible:hover{\n  transform:translateY(-6px);\n  border-color:rgba(201,168,76,0.22);\n  background:rgba(255,255,255,0.025);\n  box-shadow:\n    0 20px 60px rgba(0,0,0,0.3),\n    0 0 0 1px rgba(201,168,76,0.08),\n    inset 0 1px 0 rgba(201,168,76,0.1);\n  transition:\n    transform 0.5s cubic-bezier(0.16,1,0.3,1),\n    border-color 0.5s ease,\n    background 0.5s ease,\n    box-shadow 0.5s ease;\n}\n\n/* Improvement 2: Ghost number — enormous, bleeds off edge */\n.proc-ghost{\n  position:absolute;\n  top:-0.3em;\n  right:-0.1em;\n  font-family:var(--serif);\n  font-weight:300;\n  font-size:clamp(160px,20vw,260px);\n  line-height:1;\n  color:transparent;\n  -webkit-text-stroke:1px rgba(201,168,76,0.055);\n  text-stroke:1px rgba(201,168,76,0.055);\n  pointer-events:none;\n  user-select:none;\n  letter-spacing:-0.05em;\n  z-index:0;\n}\n\n.proc-step-body{\n  position:relative;\n  z-index:1;\n}\n\n/* SEO keyword H3 — visually invisible, Google reads it */\n.proc-seo-kw{\n  position:absolute;\n  width:1px;height:1px;\n  overflow:hidden;\n  clip:rect(0,0,0,0);\n  white-space:nowrap;\n}\n\n/* Small gold number */\n.proc-n{\n  display:block;\n  font-family:var(--serif);\n  font-size:11px;\n  letter-spacing:0.28em;\n  color:var(--gold);\n  margin-bottom:1.2rem;\n}\n\n/* Improvement 3: Ogilvy line — dominant, commanding */\n.proc-og{\n  font-family:var(--serif);\n  font-style:italic;\n  font-weight:300;\n  font-size:clamp(28px,3.2vw,46px);\n  line-height:1.15;\n  color:#fff;\n  letter-spacing:-0.01em;\n  margin-bottom:1.6rem;\n  transition:color 0.5s ease;\n}\n/* On hover — Ogilvy line turns gold */\n.proc-step.visible:hover .proc-og{\n  color:var(--gold-l);\n}\n/* Ghost number brightens on hover */\n.proc-step.visible:hover .proc-ghost{\n  -webkit-text-stroke:1px rgba(201,168,76,0.14);\n  text-stroke:1px rgba(201,168,76,0.14);\n  transition:-webkit-text-stroke 0.5s ease;\n}\n/* Copy brightens slightly on hover */\n.proc-step.visible:hover .proc-copy{\n  color:rgba(255,255,255,0.62);\n  transition:color 0.5s ease;\n}\n/* Number brightens on hover */\n.proc-step.visible:hover .proc-n{\n  color:var(--gold-l);\n  transition:color 0.5s ease;\n}\n\n/* Body copy */\n.proc-copy{\n  font-family:var(--sans);\n  font-size:clamp(12px,1vw,14px);\n  font-weight:300;\n  line-height:2;\n  color:rgba(255,255,255,0.45);\n  max-width:420px;\n}\n\n/* Footer */\n.proc-ftr{\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  padding-top:2rem;\n  opacity:0;\n  transform:translateY(16px);\n  transition:opacity 1s ease 0.4s, transform 1s ease 0.4s;\n}\n.proc-ftr.visible{opacity:1;transform:translateY(0)}\n\n.proc-ftr-line{\n  width:40px;height:1px;\n  background:linear-gradient(90deg,transparent,var(--gold),transparent);\n  margin-bottom:2rem;\n}\n.proc-cta{\n  display:inline-flex;\n  align-items:center;\n  gap:0.6rem;\n  font-family:var(--sans);\n  font-size:10px;\n  font-weight:500;\n  letter-spacing:0.22em;\n  text-transform:uppercase;\n  color:rgba(255,255,255,0.55);\n  text-decoration:none;\n  border-bottom:1px solid rgba(201,168,76,0.35);\n  padding-bottom:3px;\n  transition:color 0.3s, gap 0.3s, border-color 0.3s;\n}\n.proc-cta:hover{\n  color:var(--gold-l);\n  border-color:var(--gold);\n  gap:1rem;\n}\n.proc-arr{\n  display:inline-block;\n  transition:transform 0.3s;\n}\n.proc-cta:hover .proc-arr{\n  transform:translateX(4px);\n}\n\n/* Mobile */\n@media(max-width:900px){\n  .proc-wrap{padding:6rem 2rem 0}\n  .proc-steps{\n    grid-template-columns:1fr;\n    gap:5rem;\n  }\n  .proc-ghost{font-size:clamp(120px,32vw,180px)}\n  .proc-hdr{margin-bottom:5rem}\n  .proc-copy{max-width:100%}\n}\n@media(max-width:480px){\n  .proc-wrap{padding:5rem 1.4rem 0}\n  .proc-og{font-size:26px}\n  .proc-h2{font-size:36px}\n  .proc-steps{gap:4rem}\n}\n\n\n\n.tsl-video-block{background:var(--dark2);padding:0 0 4rem;opacity:0;transform:translateY(24px);transition:opacity 1s ease,transform 1s ease}\n.tsl-video-block.visible{opacity:1;transform:translateY(0)}\n.tsl-video-inner{max-width:1200px;margin:0 auto;padding:0 6rem}\n.tsl-video-card{display:flex;align-items:center;justify-content:space-between;width:100%;background:#1a0a0d;border:0.5px solid rgba(201,168,76,0.25);padding:3.5rem 4rem;cursor:pointer;position:relative;overflow:hidden;text-align:left;transition:border-color 0.4s,background 0.4s}\n.tsl-video-card:hover{border-color:rgba(201,168,76,0.55);background:#220d10}\n.tsl-video-card::before{content:'';position:absolute;top:-1px;left:-1px;width:20px;height:20px;border-top:1px solid var(--gold);border-left:1px solid var(--gold);opacity:0;transition:opacity 0.4s}\n.tsl-video-card::after{content:'';position:absolute;bottom:-1px;right:-1px;width:20px;height:20px;border-bottom:1px solid var(--gold);border-right:1px solid var(--gold);opacity:0;transition:opacity 0.4s}\n.tsl-video-card:hover::before,.tsl-video-card:hover::after{opacity:1}\n.tsl-video-texture{position:absolute;inset:0;background:repeating-linear-gradient(-55deg,transparent,transparent 30px,rgba(201,168,76,0.025) 30px,rgba(201,168,76,0.025) 31px);pointer-events:none}\n.tsl-video-text{position:relative;z-index:1}\n.tsl-video-eye{font-family:var(--sans);font-size:9px;letter-spacing:0.28em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem}\n.tsl-video-headline{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(22px,2.8vw,38px);line-height:1.2;color:#fff;letter-spacing:-0.01em;margin-bottom:0.8rem;transition:color 0.4s}\n.tsl-video-card:hover .tsl-video-headline{color:var(--gold-l)}\n.tsl-video-sub{font-family:var(--sans);font-size:12px;font-weight:300;line-height:1.7;color:rgba(255,255,255,0.35)}\n.tsl-video-play-side{display:flex;flex-direction:column;align-items:center;gap:0.8rem;position:relative;z-index:1;flex-shrink:0;margin-left:3rem}\n.tsl-video-ring{width:80px;height:80px;border:0.5px solid rgba(201,168,76,0.35);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:border-color 0.4s,background 0.4s,transform 0.4s}\n.tsl-video-card:hover .tsl-video-ring{border-color:var(--gold);background:rgba(192,65,90,0.1);transform:scale(1.08)}\n.tsl-video-btn-inner{width:52px;height:52px;background:rgba(192,65,90,0.15);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold);transition:background 0.4s,color 0.4s}\n.tsl-video-card:hover .tsl-video-btn-inner{background:rgba(192,65,90,0.28);color:var(--gold-l)}\n.tsl-video-btn-inner svg{width:22px;height:22px;margin-left:3px}\n.tsl-video-yt{font-family:var(--sans);font-size:8px;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.25)}\n.tsl-lightbox{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center}\n.tsl-lb-bg{position:absolute;inset:0;background:rgba(0,0,0,0.94);cursor:pointer}\n.tsl-lb-wrap{position:relative;z-index:1;width:90vw;max-width:900px}\n.tsl-lb-close{position:absolute;top:-44px;right:0;background:none;border:none;color:rgba(255,255,255,0.6);font-size:32px;line-height:1;cursor:pointer;font-family:var(--sans);padding:0;transition:color 0.2s}\n.tsl-lb-close:hover{color:#fff}\n.tsl-lb-video{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;background:#000}\n.tsl-lb-video iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}\n@media(max-width:900px){.tsl-video-inner{padding:0 2rem}.tsl-video-card{flex-direction:column;gap:2rem;padding:2.5rem 2rem}.tsl-video-play-side{margin-left:0}}\n@media(max-width:480px){.tsl-video-headline{font-size:22px}}\n\n\n\n/* ═══ SECTION BRIDGES ═══ */\n.sec-bridge{\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  padding:3rem 2rem 4rem;\n  gap:0.9rem;\n  opacity:0;\n  transform:translateY(12px);\n  transition:opacity 1s ease, transform 1s ease;\n}\n.sec-bridge.visible{\n  opacity:1;\n  transform:translateY(0);\n}\n.sec-bridge-line{\n  width:32px;height:1px;\n  background:var(--gold);\n  opacity:0.5;\n}\n.sec-bridge-txt{\n  font-family:var(--serif);\n  font-style:italic;\n  font-weight:300;\n  font-size:clamp(14px,1.4vw,18px);\n  letter-spacing:0.04em;\n  color:var(--gold);\n  opacity:0.75;\n}\n/* On dark sections bridges are lighter */\n[data-theme=\"dark\"] .sec-bridge-txt{\n  color:var(--gold-l);\n  opacity:0.6;\n}\n\n\n\n.preloader{\n  position:fixed;inset:0;\n  z-index:9999;\n  background:var(--dark2);\n  display:flex;align-items:center;justify-content:center;\n  transition:opacity 0.8s ease, visibility 0.8s ease;\n}\n.preloader.hidden{\n  opacity:0;\n  visibility:hidden;\n}\n.pre-inner{\n  display:flex;flex-direction:column;\n  align-items:center;gap:1rem;\n  animation:preIn 0.6s ease forwards;\n}\n@keyframes preIn{\n  from{opacity:0;transform:translateY(12px)}\n  to{opacity:1;transform:translateY(0)}\n}\n.pre-monogram{\n  font-family:'Cormorant Garamond',Georgia,serif;\n  font-style:italic;\n  font-weight:300;\n  font-size:clamp(48px,8vw,80px);\n  color:transparent;\n  -webkit-text-stroke:1px rgba(201,168,76,0.8);\n  letter-spacing:0.08em;\n}\n.pre-line{\n  width:0;height:1px;\n  background:linear-gradient(90deg,transparent,var(--gold),transparent);\n  animation:preRule 0.8s ease 0.4s forwards;\n}\n@keyframes preRule{to{width:60px}}\n.pre-text{\n  font-family:'Jost',sans-serif;\n  font-size:9px;\n  letter-spacing:0.32em;\n  text-transform:uppercase;\n  color:rgba(201,168,76,0.5);\n}\n\n\n\n.wa-float{\n  position:fixed;\n  bottom:2rem;\n  right:2rem;\n  width:56px;height:56px;\n  background:#25D366;\n  border-radius:50%;\n  display:flex;align-items:center;justify-content:center;\n  z-index:999;\n  box-shadow:0 4px 20px rgba(37,211,102,0.4);\n  transition:transform 0.3s cubic-bezier(0.16,1,0.3,1),\n             box-shadow 0.3s ease;\n  text-decoration:none;\n}\n.wa-float:hover{\n  transform:scale(1.1) translateY(-2px);\n  box-shadow:0 8px 30px rgba(37,211,102,0.5);\n}\n.wa-float svg{\n  width:28px;height:28px;\n  fill:#fff;\n}\n.wa-tooltip{\n  position:absolute;\n  right:68px;\n  background:var(--dark2);\n  color:#fff;\n  font-family:var(--sans);\n  font-size:11px;\n  letter-spacing:0.08em;\n  white-space:nowrap;\n  padding:6px 12px;\n  border-radius:2px;\n  opacity:0;\n  transform:translateX(8px);\n  transition:opacity 0.3s, transform 0.3s;\n  pointer-events:none;\n}\n.wa-float:hover .wa-tooltip{\n  opacity:1;\n  transform:translateX(0);\n}\n/* Pulse animation to draw attention */\n.wa-float::before{\n  content:'';\n  position:absolute;\n  inset:-4px;\n  border-radius:50%;\n  border:2px solid rgba(37,211,102,0.4);\n  animation:waPulse 2.5s ease-out infinite;\n}\n@keyframes waPulse{\n  0%{transform:scale(1);opacity:0.6}\n  100%{transform:scale(1.5);opacity:0}\n}\n@media(max-width:768px){\n  .wa-float{bottom:5.5rem;right:1rem;width:50px;height:50px}\n  .wa-float svg{width:24px;height:24px}\n  .wa-tooltip{display:none}\n}\n\n\n\n.mob-sticky-cta{\n  display:none;\n  position:fixed;\n  bottom:0;left:0;right:0;\n  z-index:998;\n  padding:0.75rem 1rem;\n  background:rgba(245,240,232,0.97);\n  backdrop-filter:blur(12px);\n  border-top:0.5px solid rgba(0,0,0,0.08);\n  box-shadow:0 -4px 24px rgba(0,0,0,0.08);\n}\n.mob-sticky-btn{\n  display:block;\n  width:100%;\n  padding:0.85rem;\n  background:var(--pink);\n  color:#fff;\n  text-align:center;\n  font-family:var(--sans);\n  font-size:11px;\n  font-weight:500;\n  letter-spacing:0.18em;\n  text-transform:uppercase;\n  text-decoration:none;\n  transition:background 0.25s;\n}\n.mob-sticky-btn:hover{background:var(--pink2)}\n@media(max-width:768px){\n  .mob-sticky-cta{display:block}\n}\n\n\n\n.cookie-bar{\n  position:fixed;bottom:0;left:0;right:0;\n  z-index:997;\n  background:var(--dark2);\n  border-top:0.5px solid rgba(201,168,76,0.2);\n  padding:1rem 2rem;\n  display:flex;align-items:center;justify-content:space-between;\n  gap:2rem;\n  transform:translateY(100%);\n  transition:transform 0.5s cubic-bezier(0.16,1,0.3,1);\n}\n.cookie-bar.show{transform:translateY(0)}\n.cookie-txt{\n  font-family:var(--sans);font-size:12px;\n  color:rgba(255,255,255,0.55);\n  line-height:1.6;\n}\n.cookie-link{color:var(--gold);text-decoration:none}\n.cookie-link:hover{text-decoration:underline}\n.cookie-btn{\n  flex-shrink:0;\n  font-family:var(--sans);font-size:9px;\n  font-weight:500;letter-spacing:0.18em;\n  text-transform:uppercase;\n  background:var(--pink);color:#fff;\n  border:none;padding:8px 20px;\n  cursor:pointer;transition:background 0.25s;\n  white-space:nowrap;\n}\n.cookie-btn:hover{background:var(--pink2)}\n@media(max-width:768px){\n  .cookie-bar{flex-direction:column;padding:1rem 1.4rem;gap:0.8rem}\n  .cookie-btn{width:100%;padding:10px}\n}\n\n\n\n/* ═══ SECTION 5A — NUMBERS ═══ */\n.nums-section{\n  background:var(--cream);\n  padding:8rem 0 9rem;\n  position:relative;\n  overflow:hidden;\n}\n\n/* Faint gold watermark texture */\n.nums-section::before{\n  content:'';\n  position:absolute;inset:0;\n  background:radial-gradient(\n    ellipse 60% 60% at 50% 50%,\n    rgba(201,168,76,0.04) 0%,\n    transparent 70%\n  );\n  pointer-events:none;\n}\n\n.nums-wrap{\n  max-width:1100px;\n  margin:0 auto;\n  padding:0 6rem;\n  position:relative;z-index:1;\n  opacity:0;transform:translateY(28px);\n  transition:opacity 1.2s ease,transform 1.2s ease;\n}\n.nums-wrap.visible{opacity:1;transform:translateY(0)}\n\n/* Eyebrow */\n.nums-eyebrow{\n  display:flex;align-items:center;\n  justify-content:center;gap:1.4rem;\n  margin-bottom:6rem;\n}\n.nums-eye-line{\n  width:48px;height:1px;\n  background:var(--gold);opacity:0.45;\n}\n.nums-eye-txt{\n  font-family:var(--sans);font-size:9px;\n  letter-spacing:0.34em;text-transform:uppercase;\n  color:var(--gold);white-space:nowrap;\n}\n\n/* Grid */\n.nums-grid{\n  display:flex;\n  align-items:stretch;\n}\n\n/* Each stat */\n.nums-item{\n  flex:1;\n  padding:3rem 3rem;\n  display:flex;align-items:center;\n  justify-content:center;\n  position:relative;\n  overflow:hidden;\n  cursor:default;\n  min-height:280px;\n}\n\n/* Vertical divider */\n.nums-divider{\n  width:1px;flex-shrink:0;\n  background:linear-gradient(\n    180deg,\n    transparent 0%,\n    rgba(201,168,76,0.25) 20%,\n    rgba(201,168,76,0.25) 80%,\n    transparent 100%\n  );\n}\n\n/* Ghost number — enormous, behind content */\n.nums-ghost{\n  position:absolute;\n  top:50%;left:50%;\n  transform:translate(-50%,-50%);\n  font-family:var(--serif);font-weight:300;\n  font-size:clamp(120px,18vw,200px);\n  letter-spacing:-0.04em;\n  line-height:1;\n  color:transparent;\n  -webkit-text-stroke:1px rgba(201,168,76,0.07);\n  text-stroke:1px rgba(201,168,76,0.07);\n  pointer-events:none;user-select:none;\n  transition:\n    -webkit-text-stroke 0.6s ease,\n    opacity 0.6s ease;\n  white-space:nowrap;\n}\n/* Ghost brightens on hover */\n.nums-item:hover .nums-ghost{\n  -webkit-text-stroke:1px rgba(201,168,76,0.16);\n}\n\n/* Content block */\n.nums-content{\n  position:relative;z-index:1;\n  display:flex;flex-direction:column;\n  align-items:center;text-align:center;\n  gap:0.6rem;\n  padding:2.5rem 0;\n}\n\n/* Number + plus sign */\n.nums-number-wrap{\n  display:flex;align-items:flex-start;\n  line-height:1;\n  transition:transform 0.5s cubic-bezier(0.16,1,0.3,1);\n}\n.nums-item:hover .nums-number-wrap{\n  transform:translateY(-4px);\n}\n\n.nums-num{\n  font-family:var(--serif);font-weight:300;\n  font-size:clamp(60px,7.5vw,100px);\n  color:var(--dark2);\n  letter-spacing:-0.03em;\n  line-height:1;\n  transition:color 0.5s ease;\n}\n.nums-item:hover .nums-num{\n  color:var(--dark);\n}\n.nums-plus{\n  font-family:var(--serif);font-weight:300;\n  font-size:clamp(32px,4vw,52px);\n  color:var(--gold);\n  line-height:1;\n  margin-top:0.1em;\n  margin-left:3px;\n  transition:color 0.5s ease;\n}\n.nums-item:hover .nums-plus{\n  color:var(--gold-l);\n}\n\n/* Stat name — H3 for SEO */\n.nums-name{\n  font-family:var(--sans);font-size:10px;\n  font-weight:500;letter-spacing:0.22em;\n  text-transform:uppercase;\n  color:rgba(26,25,24,0.65);\n  margin-top:0.3rem;\n  transition:color 0.5s ease;\n}\n.nums-item:hover .nums-name{\n  color:var(--gold);\n}\n\n/* Description — always visible */\n.nums-desc{\n  font-family:var(--serif);font-style:italic;\n  font-size:clamp(12px,1.1vw,14px);font-weight:300;\n  color:rgba(26,25,24,0.38);\n  line-height:1.7;\n  max-width:200px;\n  transition:opacity 0.5s ease,transform 0.5s ease;\n}\n.nums-item:hover .nums-desc{\n  opacity:0;\n  transform:translateY(-6px);\n}\n\n/* Taj hover reveal — hidden until hover */\n.nums-reveal{\n  position:absolute;\n  bottom:2.5rem;\n  left:0;right:0;\n  font-family:var(--serif);font-style:italic;\n  font-size:clamp(13px,1.2vw,15px);font-weight:300;\n  color:rgba(26,25,24,0.55);\n  line-height:1.7;text-align:center;\n  opacity:0;\n  transform:translateY(8px);\n  transition:opacity 0.5s ease 0.1s,transform 0.5s ease 0.1s;\n  pointer-events:none;\n}\n.nums-item:hover .nums-reveal{\n  opacity:1;\n  transform:translateY(0);\n}\n\n/* Mobile */\n@media(max-width:900px){\n  .nums-wrap{padding:0 2rem}\n  .nums-grid{\n    flex-direction:column;\n    gap:0;\n  }\n  .nums-divider{\n    width:60%;height:1px;\n    margin:0 auto;\n    background:linear-gradient(\n      90deg,transparent,\n      rgba(201,168,76,0.25),transparent\n    );\n  }\n  .nums-item{padding:3rem 1rem}\n  .nums-reveal{position:relative;bottom:auto;opacity:1;transform:none}\n  .nums-desc{opacity:0;height:0;overflow:hidden;margin:0}\n  .nums-ghost{font-size:clamp(100px,28vw,150px)}\n}\n@media(max-width:480px){\n  .nums-num{font-size:clamp(54px,14vw,76px)}\n  .nums-section{padding:6rem 0 7rem}\n}\n\n\n\n/* ═══ 5A — NUMBERS ═══ */\n.nums-section{\n  background:var(--cream);\n  padding:7rem 0 8rem;\n  position:relative;\n}\n\n.nums-wrap{\n  max-width:1100px;\n  margin:0 auto;\n  padding:0 6rem;\n  opacity:0;transform:translateY(28px);\n  transition:opacity 1.2s ease,transform 1.2s ease;\n}\n.nums-wrap.visible{opacity:1;transform:translateY(0)}\n\n/* Eyebrow */\n.nums-eyebrow{\n  display:flex;align-items:center;\n  justify-content:center;gap:1.4rem;\n  margin-bottom:5rem;\n}\n.nums-eye-line{\n  width:48px;height:1px;\n  background:var(--gold);opacity:0.5;\n}\n.nums-eye-txt{\n  font-family:var(--sans);font-size:9px;\n  letter-spacing:0.34em;text-transform:uppercase;\n  color:var(--gold);white-space:nowrap;\n}\n\n/* Grid */\n.nums-grid{\n  display:flex;\n  align-items:stretch;\n  justify-content:center;\n}\n\n.nums-item{\n  flex:1;\n  padding:0 3.5rem;\n  display:flex;flex-direction:column;\n  align-items:center;text-align:center;\n  gap:0.6rem;\n}\n\n.nums-divider{\n  width:1px;\n  background:linear-gradient(180deg,\n    transparent,\n    rgba(201,168,76,0.3) 20%,\n    rgba(201,168,76,0.3) 80%,\n    transparent\n  );\n  flex-shrink:0;\n}\n\n/* The number */\n.nums-num{\n  font-family:var(--serif);font-weight:300;\n  font-size:clamp(64px,8vw,110px);\n  color:var(--dark2);\n  letter-spacing:-0.03em;\n  line-height:1;\n  display:inline;\n}\n.nums-plus{\n  font-family:var(--serif);font-weight:300;\n  font-size:clamp(36px,4vw,56px);\n  color:var(--gold);\n  line-height:1;\n  display:inline;\n  margin-left:2px;\n}\n\n/* Name */\n.nums-name{\n  font-family:var(--sans);font-size:10px;\n  font-weight:500;letter-spacing:0.22em;\n  text-transform:uppercase;\n  color:var(--dark2);\n  margin-top:0.4rem;\n}\n\n/* Description */\n.nums-desc{\n  font-family:var(--serif);font-style:italic;\n  font-size:clamp(12px,1.1vw,14px);font-weight:300;\n  color:rgba(26,25,24,0.42);\n  line-height:1.7;\n  max-width:220px;\n}\n\n/* ═══ 5B — HERITAGE ═══ */\n.heritage-section{\n  background:var(--dark2);\n  padding:0 0 8rem;\n  position:relative;\n  overflow:hidden;\n}\n\n.heritage-threshold{\n  width:100%;height:1px;\n  background:linear-gradient(90deg,\n    transparent,rgba(201,168,76,0.55) 50%,transparent\n  );\n}\n\n.heritage-wrap{\n  max-width:900px;\n  margin:0 auto;\n  padding:8rem 4rem 0;\n  display:flex;flex-direction:column;\n  align-items:center;text-align:center;\n  gap:0;\n}\n\n/* The line */\n.heritage-line-block{\n  margin-bottom:3.5rem;\n  opacity:0;transform:translateY(24px);\n  transition:opacity 1.2s ease,transform 1.2s ease;\n}\n.heritage-line-block.visible{opacity:1;transform:translateY(0)}\n\n.heritage-h2{\n  font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(30px,4.8vw,68px);\n  line-height:1.12;color:#fff;\n  letter-spacing:-0.015em;margin-bottom:2rem;\n}\n/* Pink signature — 'Swiss Laundry them.' */\n.heritage-pink{\n  color:var(--pink);\n  display:block;\n  transition:color 0.3s ease;\n}\n.heritage-pink:hover{\n  color:var(--pink2);\n}\n.heritage-rule{\n  width:0;height:1px;\n  background:linear-gradient(90deg,transparent,var(--gold),transparent);\n  margin:0 auto;\n  transition:width 1s ease 0.6s;\n}\n.heritage-line-block.visible .heritage-rule{width:56px}\n\n/* Day counter */\n.heritage-since{\n  margin-bottom:3.5rem;\n  opacity:0;transform:translateY(20px);\n  transition:opacity 1.1s ease 0.4s,transform 1.1s ease 0.4s;\n}\n.heritage-since.visible{opacity:1;transform:translateY(0)}\n\n.heritage-since-label{\n  font-family:var(--sans);font-size:9px;\n  letter-spacing:0.3em;text-transform:uppercase;\n  color:rgba(255,255,255,0.3);\n  margin-bottom:1.8rem;\n}\n.heritage-counter-row{\n  display:flex;align-items:center;\n  justify-content:center;gap:2.4rem;\n  margin-bottom:1.2rem;\n}\n.heritage-unit{\n  display:flex;flex-direction:column;\n  align-items:center;gap:0.5rem;\n}\n.heritage-num{\n  font-family:var(--serif);font-weight:300;\n  font-size:clamp(52px,6.5vw,88px);\n  color:#fff;letter-spacing:-0.025em;line-height:1;\n}\n.heritage-word{\n  font-family:var(--sans);font-size:8px;\n  letter-spacing:0.26em;text-transform:uppercase;\n  color:rgba(255,255,255,0.3);\n}\n.heritage-dot{\n  font-family:var(--serif);font-size:36px;\n  color:rgba(201,168,76,0.35);\n  margin-top:-1rem;\n}\n.heritage-since-date{\n  font-family:var(--serif);font-style:italic;\n  font-size:15px;color:rgba(255,255,255,0.22);\n  letter-spacing:0.04em;\n}\n\n/* CTA */\n.heritage-cta{\n  opacity:0;transform:translateY(14px);\n  transition:opacity 1s ease 0.6s,transform 1s ease 0.6s;\n}\n.heritage-cta.visible{opacity:1;transform:translateY(0)}\n.heritage-link{\n  display:inline-flex;align-items:center;gap:0.5rem;\n  font-family:var(--sans);font-size:10px;\n  font-weight:500;letter-spacing:0.2em;text-transform:uppercase;\n  color:rgba(255,255,255,0.4);text-decoration:none;\n  border-bottom:1px solid rgba(201,168,76,0.28);padding-bottom:3px;\n  transition:color 0.3s,gap 0.3s,border-color 0.3s;\n}\n.heritage-link:hover{color:var(--gold-l);border-color:var(--gold);gap:0.9rem}\n.heritage-arrow{display:inline-block;transition:transform 0.3s}\n.heritage-link:hover .heritage-arrow{transform:translateX(4px)}\n\n/* Anniversary */\n.heritage-anniv{\n  position:absolute;top:0;left:50%;\n  transform:translateX(-50%);\n  background:linear-gradient(135deg,var(--gold),var(--gold-l));\n  color:var(--dark2);font-family:var(--sans);\n  font-size:10px;font-weight:600;\n  letter-spacing:0.14em;padding:8px 24px;\n  white-space:nowrap;z-index:5;\n}\n\n/* Mobile */\n@media(max-width:900px){\n  .nums-wrap{padding:0 2rem}\n  .nums-grid{flex-direction:column;gap:3.5rem}\n  .nums-divider{width:40px;height:1px;margin:0 auto;\n    background:linear-gradient(90deg,transparent,rgba(201,168,76,0.3),transparent)\n  }\n  .nums-item{padding:0}\n  .nums-desc{max-width:100%}\n  .heritage-wrap{padding:6rem 2rem 0}\n  .heritage-counter-row{gap:1.5rem}\n  .heritage-num{font-size:clamp(42px,10vw,68px)}\n}\n@media(max-width:480px){\n  .nums-num{font-size:clamp(56px,14vw,80px)}\n  .heritage-h2{font-size:clamp(26px,7vw,40px)}\n  .heritage-counter-row{gap:1rem}\n}\n\n\n\n\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/* ── 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.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/* ── 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/* ═══ Dark-default readable legal/price content ═══ */\nbody{background:var(--bg,#1a1918)!important;color:var(--txt,#fff)!important}\n.legal-outer,.legal-content{background:var(--bg,#1a1918)!important;color:var(--txt,#fff)!important}\n.tsl-crumbs a,.tsl-crumbs li{color:rgba(255,255,255,.72)!important}\n.tsl-crumbs a:hover{color:var(--gold,#C9A84C)!important}\n.tsl-crumbs li[aria-current=\"page\"]{color:rgba(255,255,255,.92)!important}\n.sidebar-nav a{color:rgba(255,255,255,.72)!important;font-weight:400!important}\n.sidebar-nav a:hover,.sidebar-nav a.active{color:var(--gold,#C9A84C)!important}\n.sidebar-nav li{border-bottom-color:rgba(255,255,255,.08)!important}\n.ctrl-btn{color:rgba(255,255,255,.75)!important;border-color:rgba(255,255,255,.28)!important}\n.ctrl-btn:hover{color:#fff!important;border-color:var(--gold,#C9A84C)!important}\n.clause{border-bottom-color:rgba(255,255,255,.1)!important}\n.clause-title{color:#fff!important}\n.clause-num{color:var(--gold,#C9A84C)!important;opacity:1!important}\n.legal-intro{color:rgba(255,255,255,.78)!important}\n.pl-item{color:rgba(255,255,255,.78)!important;border-bottom-color:rgba(255,255,255,.08)!important}\n.pl-tier-name,.pl-factor-h3{color:#fff!important}\n.pl-tier-note,.pl-factor-p{color:rgba(255,255,255,.65)!important}\n.pl-factor{background:rgba(255,255,255,.04)!important;border-color:rgba(255,255,255,.1)!important}\n.pl-tiers{border-top-color:rgba(255,255,255,.1)!important}\n.pl-tier{border-right-color:rgba(255,255,255,.08)!important}\n.legal-close{border-top-color:rgba(255,255,255,.1)!important}\n.legal-close h2,.legal-close-contact h2{color:#fff!important}\n.faq-q{color:#fff!important}\n.faq-a{color:rgba(255,255,255,.75)!important}\n@media (prefers-color-scheme: light){\n  body{background:var(--cream,#F5F0E8)!important;color:var(--dark2,#1a1918)!important}\n  .legal-outer,.legal-content{background:var(--cream,#F5F0E8)!important;color:var(--dark2,#1a1918)!important}\n  .tsl-crumbs a,.tsl-crumbs li{color:rgba(26,25,24,.72)!important}\n  .tsl-crumbs li[aria-current=\"page\"]{color:rgba(26,25,24,.9)!important}\n  .sidebar-nav a{color:rgba(26,25,24,.78)!important}\n  .sidebar-nav a:hover,.sidebar-nav a.active{color:var(--pink,#C0415A)!important}\n  .sidebar-nav li{border-bottom-color:rgba(26,25,24,.06)!important}\n  .ctrl-btn{color:rgba(26,25,24,.75)!important;border-color:rgba(26,25,24,.35)!important}\n  .clause{border-bottom-color:rgba(26,25,24,.07)!important}\n  .clause-title{color:var(--dark2,#1a1918)!important}\n  .legal-intro{color:rgba(26,25,24,.78)!important}\n  .pl-item{color:rgba(26,25,24,.65)!important;border-bottom-color:rgba(26,25,24,.06)!important}\n  .pl-tier-name,.pl-factor-h3{color:var(--dark2,#1a1918)!important}\n  .pl-tier-note,.pl-factor-p{color:rgba(26,25,24,.55)!important}\n  .pl-factor{background:rgba(245,240,232,.5)!important;border-color:rgba(26,25,24,.08)!important}\n  .faq-q{color:var(--dark2,#1a1918)!important}\n  .faq-a{color:rgba(26,25,24,.65)!important}\n}\n\n\n\n/* ═══ Force dark-default shell ═══ */\n:root{\n  --off:#1a1918 !important;\n  --pink-pale:#1a1918 !important;\n}\nbody{\n  background:var(--bg,var(--off,#1a1918))!important;\n  color:var(--txt,#fff)!important;\n}\n/* When a page hardcodes cream body vars, keep body dark unless OS wants light */\n@media (prefers-color-scheme: light){\n  :root{\n    --off:#FAFAF8 !important;\n    --pink-pale:#fdf0f2 !important;\n  }\n  body{\n    background:var(--cream,var(--off,#F5F0E8))!important;\n    color:var(--dark2,var(--ink,#1a1918))!important;\n  }\n}\n",
  "scriptJs": "\n(function(){\n  const fig     = document.getElementById('bpFig')\n  const txt     = document.getElementById('bpTxt')\n  const figSide = document.querySelector('.bp-figure-side')\n  const section = document.querySelector('.brand-philosophy')\n  const stageFloor = document.querySelector('.bp-stage-floor')\n\n  // ── Scroll-driven golden light ──\n  // As visitor scrolls through Section 2, glow grows dynamically\n  function updateGlow(){\n    if(!section || !figSide) return\n    const rect   = section.getBoundingClientRect()\n    const vh     = window.innerHeight\n    const secH   = section.offsetHeight\n\n    // Progress 0→1 as section travels through viewport\n    const progress = Math.min(1, Math.max(0,\n      (vh - rect.top) / (vh + secH * 0.4)\n    ))\n\n    // Glow Y position — starts at bottom (100%), rises to 30% as you scroll\n    // So the light travels UP the gentleman's body as you scroll down\n    const glowY = 100 - (progress * 70)  // 100% → 30%\n\n    // Size — grows as it rises\n    const innerSize    = progress * 480\n    const outerSize    = progress * 780\n\n    // Opacity — peaks at 60% progress then stays\n    const peakProgress = Math.min(progress / 0.6, 1)\n    const innerOpacity = peakProgress * 0.2\n    const outerOpacity = peakProgress * 0.08\n\n    // Stage floor — fades in after 50% progress\n    const floorOpacity = Math.max(0, (progress - 0.5) / 0.5)\n\n    figSide.style.setProperty('--glow-y',              glowY + '%')\n    figSide.style.setProperty('--glow-inner',          innerSize + 'px')\n    figSide.style.setProperty('--glow-outer',          outerSize + 'px')\n    figSide.style.setProperty('--glow-inner-opacity',  innerOpacity)\n    figSide.style.setProperty('--glow-outer-opacity',  outerOpacity)\n    if(stageFloor) stageFloor.style.opacity = floorOpacity\n  }\n\n  window.addEventListener('scroll', updateGlow, {passive:true})\n  updateGlow()\n\n  // ── Intersection for fade-in animations ──\n  const obs = new IntersectionObserver((entries)=>{\n    entries.forEach(e=>{\n      if(e.isIntersecting){\n        e.target.classList.add('visible')\n        obs.unobserve(e.target)\n      }\n    })\n  },{threshold:0.15})\n\n  if(fig) obs.observe(fig)\n  if(txt) obs.observe(txt)\n})()\n\n;\n\ndocument.addEventListener('DOMContentLoaded', function(){\ntry {\nconst nav=document.getElementById('nav')\nfunction updateNav(){const mid=window.scrollY+nav.offsetHeight+20;let t='dark';document.querySelectorAll('[data-theme]').forEach(s=>{if(mid>=s.offsetTop&&mid<s.offsetTop+s.offsetHeight)t=s.dataset.theme});nav.className=t==='dark'?'on-dark':'on-light'}\nwindow.addEventListener('scroll',updateNav,{passive:true});updateNav()\nfunction closeMob(){document.getElementById('mobMenu').classList.remove('open')}\n\nconst TOTAL=5\nconst DURATION=10000  // 10 seconds — luxury breathing room\nconst TURN_DUR=1400   // cube turn duration\nconst EASE='cubic-bezier(0.76,0,0.24,1)'\n\nconst slides=document.querySelectorAll('.slide')\nconst dDots=document.querySelectorAll('.d-dot')\nconst slEls=[0,1,2,3,4].map(i=>document.getElementById('sl'+i))\nconst hSubs=document.querySelectorAll('.h-sub')\nconst dc=document.getElementById('dc'),pf=document.getElementById('pf')\nconst labels=['01','02','03','04','05']\nlet cur=0,isAnimating=false,timer=null\n\nslides.forEach((s,i)=>{\n  s.style.opacity=i===0?'1':'0'\n  s.style.zIndex=i===0?'2':'1'\n  s.style.transform='none'\n})\n\nfunction goTo(idx){\n  if(isAnimating||idx===cur)return\n  isAnimating=true\n  clearTimeout(timer)\n  const dir=idx>cur?1:-1\n  const fromEl=slides[cur],toEl=slides[idx]\n\n  slides[cur].classList.remove('is-active')\n  dDots[cur].classList.remove('active')\n  slEls[cur].classList.remove('active')\n  hSubs[cur].classList.remove('active')\n\n  // Prepare incoming\n  toEl.style.opacity='1'\n  toEl.style.zIndex='3'\n  toEl.style.transition='none'\n  toEl.style.transformOrigin=dir>0?'left center':'right center'\n  toEl.style.transform=dir>0?'perspective(2000px) rotateY(-90deg)':'perspective(2000px) rotateY(90deg)'\n\n  // Prepare outgoing\n  fromEl.style.zIndex='2'\n  fromEl.style.transition='none'\n  fromEl.style.transformOrigin=dir>0?'right center':'left center'\n  fromEl.style.transform='perspective(2000px) rotateY(0deg)'\n\n  toEl.getBoundingClientRect()\n\n  // Animate outgoing\n  fromEl.style.transition=`transform ${TURN_DUR}ms ${EASE}`\n  fromEl.style.transform=dir>0?'perspective(2000px) rotateY(75deg)':'perspective(2000px) rotateY(-75deg)'\n\n  // Animate incoming — slight stagger\n  setTimeout(()=>{\n    toEl.style.transition=`transform ${TURN_DUR}ms ${EASE}`\n    toEl.style.transform='perspective(2000px) rotateY(0deg)'\n  },120)\n\n  cur=idx\n  dDots[cur].classList.add('active')\n  dc.textContent=labels[cur]\n\n  setTimeout(()=>{\n    fromEl.style.opacity='0';fromEl.style.zIndex='1'\n    fromEl.style.transform='none';fromEl.style.transition='none'\n    fromEl.style.transformOrigin=''\n    toEl.style.zIndex='2';toEl.style.transform='none'\n    toEl.style.transition='none';toEl.style.transformOrigin=''\n    slides[cur].classList.add('is-active')\n    isAnimating=false\n    slEls[cur].classList.add('active')\n    hSubs[cur].classList.add('active')\n  },TURN_DUR+160)\n\n  pf.style.transition='none';pf.style.width='0%'\n  requestAnimationFrame(()=>requestAnimationFrame(()=>{\n    pf.style.transition=`width ${DURATION}ms linear`\n    pf.style.width='100%'\n  }))\n  timer=setTimeout(()=>goTo((cur+1)%TOTAL),DURATION)\n}\n\nfunction next(){goTo((cur+1)%TOTAL)}\nfunction prev(){goTo((cur-1+TOTAL)%TOTAL)}\n\nlet tx=0\ndocument.querySelector('.hero').addEventListener('touchstart',e=>{tx=e.touches[0].clientX},{passive:true})\ndocument.querySelector('.hero').addEventListener('touchend',e=>{\n  const dx=e.changedTouches[0].clientX-tx\n  if(Math.abs(dx)>50) dx<0?next():prev()\n},{passive:true})\ndocument.addEventListener('keydown',e=>{\n  if(e.key==='ArrowRight')next()\n  if(e.key==='ArrowLeft')prev()\n})\n\nslEls[0].classList.add('active')\nhSubs[0].classList.add('active')\npf.style.transition=`width ${DURATION}ms linear`\npf.style.width='100%'\ntimer=setTimeout(()=>goTo(1),DURATION)\n} catch(e){}\n})\n\n;\n\n(function(){\n  const els = document.querySelectorAll('.og-txt-inner')\n  const obs = new IntersectionObserver((entries)=>{\n    entries.forEach(e=>{\n      if(e.isIntersecting){\n        e.target.classList.add('visible')\n        obs.unobserve(e.target)\n      }\n    })\n  },{threshold:0.15})\n  els.forEach(el=>obs.observe(el))\n})()\n\n;\n\n(function(){\n  const hdr   = document.getElementById('procHdr')\n  const steps = document.querySelectorAll('.proc-step')\n  const ftr   = document.getElementById('procFtr')\n\n  const obs = new IntersectionObserver((entries)=>{\n    entries.forEach(e=>{\n      if(e.isIntersecting){\n        e.target.classList.add('visible')\n        obs.unobserve(e.target)\n      }\n    })\n  },{threshold:0.12})\n\n  if(hdr) obs.observe(hdr)\n  steps.forEach((s,i)=>{\n    s.style.transitionDelay = (i*0.15)+'s'\n    obs.observe(s)\n  })\n  if(ftr) obs.observe(ftr)\n})()\n\n;\n\n(function(){\n  var VID = 'eAGGJ3CBt34'\n  var block=document.getElementById('tslVideoBlock')\n  var btn=document.getElementById('tslVideoBtn')\n  var lb=document.getElementById('tslLightbox')\n  var lbBg=document.getElementById('tslLbBg')\n  var lbX=document.getElementById('tslLbClose')\n  var frame=document.getElementById('tslVideoFrame')\n  if(block){\n    var obs=new IntersectionObserver(function(e){e.forEach(function(x){if(x.isIntersecting){block.classList.add('visible');obs.disconnect()}})},{threshold:0.15})\n    obs.observe(block)\n  }\n  function open(){if(!lb||!frame)return;frame.src='https://www.youtube.com/embed/'+VID+'?autoplay=1&rel=0';lb.style.display='flex';document.body.style.overflow='hidden'}\n  function close(){if(!lb||!frame)return;frame.src='';lb.style.display='none';document.body.style.overflow=''}\n  if(btn)btn.addEventListener('click',open)\n  if(lbBg)lbBg.addEventListener('click',close)\n  if(lbX)lbX.addEventListener('click',close)\n  document.addEventListener('keydown',function(e){if(e.key==='Escape')close()})\n})()\n\n;\n\n(function(){\n  document.querySelectorAll('.sec-bridge').forEach(el=>{\n    const obs = new IntersectionObserver((entries)=>{\n      entries.forEach(e=>{\n        if(e.isIntersecting){\n          el.classList.add('visible')\n          obs.disconnect()\n        }\n      })\n    },{threshold:0.5})\n    obs.observe(el)\n  })\n})()\n\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;\n\nfunction 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\n;\n\n/* ── Section 5A: Observers + Counters + CRM-ready ── */\n(function(){\n\n  /* Intersection observer for fade-in */\n  const wrap = document.getElementById('numsWrap')\n  if(wrap){\n    const obs = new IntersectionObserver((entries)=>{\n      entries.forEach(e=>{\n        if(e.isIntersecting){\n          wrap.classList.add('visible')\n          obs.disconnect()\n        }\n      })\n    },{threshold:0.12})\n    obs.observe(wrap)\n  }\n\n  /* ── COUNTER ANIMATION ── */\n  function animateCounter(el, target, duration){\n    const start = performance.now()\n    function fmt(n){ return Math.floor(n).toLocaleString('en-IN') }\n    function step(now){\n      const p = Math.min((now-start)/duration, 1)\n      const ease = 1 - Math.pow(1-p, 3)\n      el.textContent = fmt(ease * target)\n      if(p < 1) requestAnimationFrame(step)\n      else el.textContent = fmt(target)\n    }\n    requestAnimationFrame(step)\n  }\n\n  /* Start counters when grid enters view */\n  const grid = document.querySelector('.nums-grid')\n  if(grid){\n    const obs2 = new IntersectionObserver((entries)=>{\n      entries.forEach(e=>{\n        if(e.isIntersecting){\n          const c1 = document.getElementById('ctr1')\n          const c2 = document.getElementById('ctr2')\n          const c3 = document.getElementById('ctr3')\n          if(c1) animateCounter(c1, parseInt(c1.dataset.target), 2000)\n          if(c2) animateCounter(c2, parseInt(c2.dataset.target), 2400)\n          if(c3) animateCounter(c3, parseInt(c3.dataset.target), 2800)\n          obs2.disconnect()\n        }\n      })\n    },{threshold:0.25})\n    obs2.observe(grid)\n  }\n\n  /* ── CRM INTEGRATION POINT ──\n     When your CRM is ready, call this function with live data:\n\n     window.updateSwissLaundryCRM({\n       total_clients:  15234,\n       total_orders:   52890,\n       total_garments: 168000\n     })\n\n     The counters will automatically re-animate to the new numbers.\n  */\n  window.updateSwissLaundryCRM = function(data){\n    document.querySelectorAll('[data-crm-key]').forEach(el=>{\n      const key = el.dataset.crmKey\n      if(data[key] !== undefined){\n        el.dataset.target = data[key]\n        animateCounter(el, data[key], 1800)\n      }\n    })\n  }\n\n})();\n\n;\n\n/* Observers */\n(function(){\n  const pairs = [\n    [document.getElementById('numsWrap'), 0.15],\n    [document.getElementById('hLineBlock'), 0.15],\n    [document.getElementById('hSince'), 0.15],\n    [document.getElementById('hCta'), 0.15],\n  ]\n  const obs = new IntersectionObserver((entries)=>{\n    entries.forEach(e=>{\n      if(e.isIntersecting){\n        e.target.classList.add('visible')\n        obs.unobserve(e.target)\n      }\n    })\n  },{threshold:0.12})\n  pairs.forEach(([el])=>{ if(el) obs.observe(el) })\n})();\n\n/* Counter animation */\n(function(){\n  function animateCounter(el, target, duration){\n    const start = performance.now()\n    function fmt(n){ return Math.floor(n).toLocaleString('en-IN') }\n    function step(now){\n      const p = Math.min((now-start)/duration,1)\n      const ease = 1-Math.pow(1-p,3)\n      el.textContent = fmt(ease*target)\n      if(p<1) requestAnimationFrame(step)\n      else el.textContent = fmt(target)\n    }\n    requestAnimationFrame(step)\n  }\n  const obs = new IntersectionObserver((entries)=>{\n    entries.forEach(e=>{\n      if(e.isIntersecting){\n        animateCounter(document.getElementById('ctr1'),12000,2000)\n        animateCounter(document.getElementById('ctr2'),48000,2400)\n        animateCounter(document.getElementById('ctr3'),150000,2800)\n        obs.disconnect()\n      }\n    })\n  },{threshold:0.25})\n  const g = document.querySelector('.nums-grid')\n  if(g) obs.observe(g)\n})();\n\n/* Live day counter */\n(function(){\n  try {\n    var START = new Date(2013, 9, 7) // October 7, 2013\n    function update(){\n      var now = new Date()\n      var y = now.getFullYear() - START.getFullYear()\n      var m = now.getMonth() - START.getMonth()\n      var d = now.getDate() - START.getDate()\n      if(d < 0){ m--; d += new Date(now.getFullYear(), now.getMonth(), 0).getDate() }\n      if(m < 0){ y--; m += 12 }\n      var yEl = document.getElementById('sinceYears')\n      var mEl = document.getElementById('sinceMonths')\n      var dEl = document.getElementById('sinceDays')\n      if(yEl) yEl.textContent = y\n      if(mEl) mEl.textContent = m\n      if(dEl) dEl.textContent = d\n    }\n    update()\n    setInterval(update, 3600000)\n  } catch(e) {}\n})();\n\n/* Anniversary */\n(function(){\n  try {\n    var now = new Date()\n    var year = now.getFullYear()\n    var anniv = new Date(year, 9, 7) // Month is 0-indexed: 9 = October\n    var diff = Math.abs(now - anniv) / (1000*60*60*24)\n    var banner = document.getElementById('trustAnniv')\n    var txt = document.getElementById('trustAnnivTxt')\n    if(banner && txt && diff <= 10){\n      banner.style.display = 'block'\n      if(diff < 1) txt.textContent = 'Celebrating ' + (year-2013) + ' years of extraordinary care'\n      else if(now < anniv) txt.textContent = 'Our anniversary in ' + Math.ceil(diff) + ' days — Est. 7 Oct 2013'\n      else txt.textContent = 'Celebrating ' + (year-2013) + ' years of extraordinary garment care'\n    }\n  } catch(e) {}\n})();\n",
  "bodyHtml": "<span class=\"seo-hidden\">The Swiss Laundry — Kolkata's premier dry cleaning, laundry and carpet care. Est. 2013.</span>\n\n\n\n\n<section class=\"hero\" data-theme=\"dark\">\n\n <div class=\"slide is-active\" id=\"s0\">\n <img class=\"slide-img\" src=\"images/section1-img-2.jpg\" alt=\"Bridal lehenga dry cleaning Kolkata — The Swiss Laundry\">\n <div class=\"slide-overlay\"></div>\n </div>\n <div class=\"slide\" id=\"s1\">\n <img loading=\"lazy\" class=\"slide-img\" src=\"images/section1-img-3.jpg\" alt=\"Sherwani bandhgala dry cleaning Kolkata — The Swiss Laundry\">\n <div class=\"slide-overlay\"></div>\n </div>\n <div class=\"slide\" id=\"s2\">\n <img loading=\"lazy\" class=\"slide-img\" src=\"images/section1-img-4.jpg\" alt=\"Curtains home textiles Kolkata — The Swiss Laundry\">\n <div class=\"slide-overlay\"></div>\n </div>\n <div class=\"slide\" id=\"s3\">\n <img loading=\"lazy\" class=\"slide-img\" src=\"images/section1-img-5.jpg\" alt=\"Soft toys laundry Kolkata — The Swiss Laundry\">\n <div class=\"slide-overlay\"></div>\n </div>\n <div class=\"slide\" id=\"s4\">\n <img loading=\"lazy\" class=\"slide-img\" src=\"images/section1-img-6.jpg\" alt=\"Dog on luxury carpet bed — The Swiss Laundry pet garment care Kolkata\">\n <div class=\"slide-overlay\"></div>\n </div>\n\n <div class=\"hero-frame\">\n <div class=\"corner corner-tl\"></div><div class=\"corner corner-tr\"></div>\n <div class=\"corner corner-bl\"></div><div class=\"corner corner-br\"></div>\n </div>\n\n <div class=\"svc-lbl\" id=\"sl0\"><div class=\"svc-cat\"><div class=\"sl-line\"></div><span class=\"sl-cat-txt\">Bridal &amp; Occasion Wear</span></div></div>\n <div class=\"svc-lbl\" id=\"sl1\"><div class=\"svc-cat\"><div class=\"sl-line\"></div><span class=\"sl-cat-txt\">Men's Ethnic Wear</span></div></div>\n <div class=\"svc-lbl\" id=\"sl2\"><div class=\"svc-cat\"><div class=\"sl-line\"></div><span class=\"sl-cat-txt\">Home Textiles &amp; Curtains</span></div></div>\n <div class=\"svc-lbl\" id=\"sl3\"><div class=\"svc-cat\"><div class=\"sl-line\"></div><span class=\"sl-cat-txt\">Soft Furnishings &amp; Toys</span></div></div>\n <div class=\"svc-lbl\" id=\"sl4\"><div class=\"svc-cat\"><div class=\"sl-line\"></div><span class=\"sl-cat-txt\">Pet Garment &amp; Carpet Care</span></div></div>\n\n <div class=\"arrow arrow-prev\" onclick=\"prev()\"><svg viewBox=\"0 0 24 24\"><polyline points=\"15,18 9,12 15,6\"></polyline></svg></div>\n <div class=\"arrow arrow-next\" onclick=\"next()\"><svg viewBox=\"0 0 24 24\"><polyline points=\"9,18 15,12 9,6\"></polyline></svg></div>\n\n <div class=\"hero-text\">\n <span class=\"seo-hidden\">The Swiss Laundry — Some garments are irreplaceable. Kolkata's premier dry cleaning, laundry and carpet care service since 2013. Extraordinary garment care delivered on time.</span>\n <p class=\"h-eye\">Exclusive Dry Cleaning <span>·</span> Est. 2013</p>\n <h1 class=\"h-h1\" aria-label=\"Some garments are irreplaceable.\">\n <span class=\"word w1\">Some</span>&nbsp;<span class=\"word w2\">garments</span>&nbsp;<span class=\"word w3\">are</span>\n <span class=\"lb\"></span>\n <span class=\"word w4\">irreplaceable.</span>\n </h1>\n <p class=\"h-brand\">Garment care as it should be.</p>\n <div class=\"h-rule\"></div>\n <div class=\"h-subs\">\n <span class=\"h-sub active\" id=\"hs0\">For the lehenga that holds a lifetime.</span>\n <span class=\"h-sub\" id=\"hs1\">For the suit that commands the room.</span>\n <span class=\"h-sub\" id=\"hs2\">For everything your home holds dear.</span>\n <span class=\"h-sub\" id=\"hs3\">For the things your children treasure most.</span>\n <span class=\"h-sub\" id=\"hs4\">Carpets hold your family's warmth. We keep them that way.</span>\n </div>\n </div>\n\n <div class=\"hero-btm\">\n <div class=\"scroll-hint\"><span class=\"scroll-txt\">Scroll</span><div class=\"scroll-line\"></div></div>\n <div class=\"d-dots\">\n <div class=\"d-dot active\" onclick=\"goTo(0)\"></div>\n <div class=\"d-dot\" onclick=\"goTo(1)\"></div>\n <div class=\"d-dot\" onclick=\"goTo(2)\"></div>\n <div class=\"d-dot\" onclick=\"goTo(3)\"></div>\n <div class=\"d-dot\" onclick=\"goTo(4)\"></div>\n </div>\n <div class=\"d-ctr\"><em id=\"dc\">01</em>&nbsp;/&nbsp;05</div>\n </div>\n <div class=\"progress\"><div class=\"progress-fill\" id=\"pf\"></div></div>\n\n</section>\n\n<section class=\"brand-philosophy\" data-theme=\"dark\">\n\n <div class=\"bp-split\">\n\n <!-- LEFT — Gentleman illustration -->\n <div class=\"bp-figure-side\">\n <div class=\"bp-stage-floor\"></div>\n <div class=\"bp-figure-wrap\" id=\"bpFig\">\n <img loading=\"lazy\" class=\"bp-figure-img\" src=\"images/section1-img-7.png\" alt=\"The Swiss Laundry — gentleman presenting a freshly cared for garment\">\n </div>\n </div>\n\n <!-- RIGHT — Text -->\n <div class=\"bp-text-side\">\n <div class=\"bp-text-inner\" id=\"bpTxt\">\n <div class=\"bp-top-rule\"></div>\n <p class=\"bp-eyebrow\">Our Philosophy</p>\n <h2 class=\"bp-h2\" aria-label=\"Extraordinary care, every time.\">Extraordinary care,<br>every time.</h2>\n <div class=\"bp-rule\"></div>\n <div class=\"bp-sub-wrap\">\n <div class=\"bp-dot\"></div>\n <p class=\"bp-sub\">Pristine dry cleaning and garment care,<br>delivered on time.</p>\n <div class=\"bp-dot\"></div>\n </div>\n </div>\n </div>\n\n </div>\n\n</section>\n\n\n\n\n\n\n\n<div class=\"sec-bridge\" aria-hidden=\"true\">\n <div class=\"sec-bridge-line\"></div>\n <span class=\"sec-bridge-txt\">See how we care for what you love.</span>\n <div class=\"sec-bridge-line\"></div>\n</div>\n<!-- ═══ SECTION 3 — SERVICES ═══ -->\n<section class=\"og-services\" data-theme=\"light\">\n\n <!-- Section eyebrow -->\n <div class=\"og-header\">\n <div class=\"og-header-rule\"></div>\n <p class=\"og-header-eye\">What We Do</p>\n <div class=\"og-header-rule\"></div>\n </div>\n\n <!-- ── PANEL 1: Dry Cleaning ── -->\n <!-- Image LEFT, text RIGHT -->\n <div class=\"og-panel og-panel-1\">\n <div class=\"og-img-side\">\n <figure class=\"og-figure\">\n <div class=\"og-frame\">\n <img loading=\"lazy\" src=\"images/section1-img-8.jpg\" alt=\"Dry cleaning specialist carefully examining a Banarasi silk saree — The Swiss Laundry\" class=\"og-photo\">\n </div>\n </figure>\n </div>\n <div class=\"og-txt-side og-txt-right\">\n <div class=\"og-txt-inner\" id=\"ogsv1\">\n <h2 class=\"og-ogilvy\" aria-label=\"Some fabrics cannot be trusted to water.\">Some fabrics cannot<br>be trusted to water.</h2>\n <h3 class=\"og-service-kw\">Dry Cleaning</h3>\n <div class=\"og-kw-rule\"></div>\n <p class=\"og-copy\">Dry cleaning uses specialist solvents to clean delicate fabrics that water would damage — silks, embroideries, lehengas, sherwanis and heritage textiles. At The Swiss Laundry, every garment is individually assessed before treatment, ensuring the right process for every fabric, every time.</p>\n <a href=\"/dry-cleaning\" class=\"og-cta\" aria-label=\"Explore our dry cleaning service\">Explore Dry Cleaning <span class=\"og-arrow\">→</span></a>\n </div>\n </div>\n </div>\n\n <div class=\"og-panel-divider\"></div>\n\n <!-- ── PANEL 2: Laundry ── -->\n <!-- Text LEFT, image RIGHT -->\n <div class=\"og-panel og-panel-2\">\n <div class=\"og-txt-side og-txt-left\">\n <div class=\"og-txt-inner\" id=\"ogsv2\">\n <h2 class=\"og-ogilvy\" aria-label=\"A perfectly pressed shirt is not vanity. It is a statement.\">A perfectly pressed shirt<br>is not vanity.<br>It is a statement.</h2>\n <h3 class=\"og-service-kw\">Laundry</h3>\n <div class=\"og-kw-rule\"></div>\n <p class=\"og-copy\">Professional laundry care goes far beyond a wash cycle. From formal shirts and trousers to everyday wear, we clean, press and fold every piece to an exacting standard — collected from your door and returned immaculate within 48 working hours.</p>\n <a href=\"/laundry\" class=\"og-cta\" aria-label=\"Explore our professional laundry service\">Explore Laundry <span class=\"og-arrow\">→</span></a>\n </div>\n </div>\n <div class=\"og-img-side\">\n <figure class=\"og-figure\">\n <div class=\"og-frame\">\n <img loading=\"lazy\" src=\"images/section1-img-9.jpg\" alt=\"Professional laundry service — perfectly pressed white shirt and trousers — The Swiss Laundry\" class=\"og-photo\">\n </div>\n </figure>\n </div>\n </div>\n\n <div class=\"og-panel-divider\"></div>\n\n <!-- ── PANEL 3: Carpet & Home Care ── -->\n <!-- Image LEFT, text RIGHT -->\n <div class=\"og-panel og-panel-3\">\n <div class=\"og-img-side\">\n <figure class=\"og-figure\">\n <div class=\"og-frame\">\n <img loading=\"lazy\" src=\"images/section1-img-10.jpg\" alt=\"Specialist carpet cleaning and home textile care — The Swiss Laundry\" class=\"og-photo\">\n </div>\n </figure>\n </div>\n <div class=\"og-txt-side og-txt-right\">\n <div class=\"og-txt-inner\" id=\"ogsv3\">\n <h2 class=\"og-ogilvy\" aria-label=\"Your carpet has been walked on by everyone you love.\">Your carpet has been<br>walked on by everyone<br>you love.</h2>\n <h3 class=\"og-service-kw\">Carpet &amp; Home Care</h3>\n <div class=\"og-kw-rule\"></div>\n <p class=\"og-copy\">Carpets, curtains, sofa covers and home textiles hold your home together — and over time, they hold everything your family has lived through. Our specialist carpet and home care service cleans, restores and preserves them to the standard they were made.</p>\n <a href=\"/carpet-home-care\" class=\"og-cta\" aria-label=\"Explore our carpet and home care service\">Explore Carpet &amp; Home Care <span class=\"og-arrow\">→</span></a>\n </div>\n </div>\n </div>\n\n</section>\n\n\n\n\n\n<div class=\"sec-bridge\" aria-hidden=\"true\">\n <div class=\"sec-bridge-line\"></div>\n <span class=\"sec-bridge-txt\">Every step. Every time. No exceptions.</span>\n <div class=\"sec-bridge-line\"></div>\n</div>\n<!-- ═══ SECTION 4 — PROCESS ═══ -->\n<section class=\"proc\" data-theme=\"dark\">\n\n <!-- Gold threshold line at top -->\n <div class=\"proc-threshold\"></div>\n\n <div class=\"proc-wrap\">\n\n <!-- Header -->\n <div class=\"proc-hdr\" id=\"procHdr\">\n <p class=\"proc-eye\">How It Works</p>\n <h2 class=\"proc-h2\" aria-label=\"Four steps. Zero compromise.\">Four steps.<br>Zero compromise.</h2>\n <p class=\"proc-sub\">From your door to ours and back —<br>extraordinary garment care, delivered on time.</p>\n </div>\n\n <!-- Steps — open layout, no boxes, no borders -->\n <div class=\"proc-steps\">\n\n <!-- 01 -->\n <div class=\"proc-step\" id=\"pst1\">\n <div class=\"proc-ghost\">01</div>\n <!-- SEO H3 — invisible to eye -->\n <h3 class=\"proc-seo-kw\">Book a Garment Care Pickup</h3>\n <div class=\"proc-step-body\">\n <span class=\"proc-n\">01</span>\n <p class=\"proc-og\">Your care begins<br>with a single message.</p>\n <p class=\"proc-copy\">Reach us by phone, WhatsApp, our website or app — whichever suits you. We confirm your pickup same day and notify you by SMS when your slot is assigned and when your team member is on the way.</p>\n </div>\n </div>\n\n <!-- 02 -->\n <div class=\"proc-step\" id=\"pst2\">\n <div class=\"proc-ghost\">02</div>\n <h3 class=\"proc-seo-kw\">Garment Collection Service Kolkata</h3>\n <div class=\"proc-step-body\">\n <span class=\"proc-n\">02</span>\n <p class=\"proc-og\">We come to you.<br>On your schedule.</p>\n <p class=\"proc-copy\">Choose your pickup slot and we arrive at the agreed time. Every order is batch tagged and taken directly to our workshop, where each garment is individually documented, assessed and assigned its own care process before a single drop of solvent touches it.</p>\n </div>\n </div>\n\n <!-- 03 -->\n <div class=\"proc-step\" id=\"pst3\">\n <div class=\"proc-ghost\">03</div>\n <h3 class=\"proc-seo-kw\">Dry Cleaning Laundry Steam Pressing Quality Check</h3>\n <div class=\"proc-step-body\">\n <span class=\"proc-n\">03</span>\n <p class=\"proc-og\">Twelve steps.<br>Every single garment.</p>\n <p class=\"proc-copy\">Segregation, hydrocarbon dry cleaning, Perc dry cleaning or wet cleaning — chosen precisely for each fabric. Stain removal, hand finishing, steam pressing, quality inspection before and after cleaning, and return packaging in our branded garment bag. No shortcuts. No exceptions.</p>\n </div>\n </div>\n\n <!-- 04 -->\n <div class=\"proc-step\" id=\"pst4\">\n <div class=\"proc-ghost\">04</div>\n <h3 class=\"proc-seo-kw\">Same Day Next Day Express Garment Delivery Kolkata</h3>\n <div class=\"proc-step-body\">\n <span class=\"proc-n\">04</span>\n <p class=\"proc-og\">Back at your door.<br>On your schedule.</p>\n <p class=\"proc-copy\">We SMS you before we arrive. Every garment returned in our branded garment bag — pressed, packaged and perfect. Choose from Same Day, Next Day, Express (within 2 days) or Standard delivery. Pay by cash, online or on delivery.</p>\n </div>\n </div>\n\n </div>\n\n <!-- Bottom CTA -->\n <div class=\"proc-ftr\" id=\"procFtr\">\n <div class=\"proc-ftr-line\"></div>\n <a href=\"/our-process\" class=\"proc-cta\">\n        Discover the complete Swiss Standard <span class=\"proc-arr\">→</span>\n </a>\n </div>\n\n </div>\n\n</section>\n\n\n\n\n\n<!-- ═══ VIDEO BLOCK — BETWEEN S4 AND S5A ═══ -->\n<div class=\"tsl-video-block\" id=\"tslVideoBlock\">\n <div class=\"tsl-video-inner\">\n <button class=\"tsl-video-card\" id=\"tslVideoBtn\" aria-label=\"Watch The Swiss Laundry garment care process on YouTube\">\n <div class=\"tsl-video-texture\" aria-hidden=\"true\"></div>\n <div class=\"tsl-video-text\">\n <p class=\"tsl-video-eye\">Behind The Swiss Standard</p>\n <p class=\"tsl-video-headline\">Watch how we care<br>for your garments.</p>\n <p class=\"tsl-video-sub\">From collection to delivery —<br>every step, on camera.</p>\n </div>\n <div class=\"tsl-video-play-side\">\n <div class=\"tsl-video-ring\">\n <div class=\"tsl-video-btn-inner\">\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M8 5.5L19 12L8 18.5V5.5Z\" fill=\"currentColor\"></path>\n </svg>\n </div>\n </div>\n <p class=\"tsl-video-yt\">on YouTube</p>\n </div>\n </button>\n </div>\n</div>\n<div class=\"tsl-lightbox\" id=\"tslLightbox\" role=\"dialog\" aria-modal=\"true\" style=\"display:none\">\n <div class=\"tsl-lb-bg\" id=\"tslLbBg\"></div>\n <div class=\"tsl-lb-wrap\">\n <button class=\"tsl-lb-close\" id=\"tslLbClose\" aria-label=\"Close video\">×</button>\n <div class=\"tsl-lb-video\">\n <iframe id=\"tslVideoFrame\" src=\"\" title=\"The Swiss Laundry Process\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"></iframe>\n </div>\n </div>\n</div>\n\n\n<!-- ═══ END VIDEO BLOCK ═══ -->\n<div class=\"sec-bridge\" aria-hidden=\"true\">\n <div class=\"sec-bridge-line\"></div>\n <span class=\"sec-bridge-txt\">Trusted by those who care most.</span>\n <div class=\"sec-bridge-line\"></div>\n</div>\n\n\n\n\n\n<!-- Page Preloader -->\n<div class=\"preloader\" id=\"preloader\">\n <div class=\"pre-inner\">\n <div class=\"pre-monogram\">TSL</div>\n <div class=\"pre-line\"></div>\n <p class=\"pre-text\">Est. 2013</p>\n </div>\n</div>\n\n\n<!-- WhatsApp Floating Button -->\n<a href=\"https://wa.me/918335888167?text=Hi%2C%20I%20would%20like%20to%20book%20a%20pickup%20with%20The%20Swiss%20Laundry\" class=\"wa-float\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Chat on WhatsApp\">\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <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>\n <path d=\"M12 0C5.373 0 0 5.373 0 12c0 2.123.554 4.118 1.528 5.849L.057 24l6.306-1.654A11.954 11.954 0 0012 24c6.627 0 12-5.373 12-12S18.627 0 12 0zm0 21.818a9.818 9.818 0 01-5.002-1.366l-.359-.213-3.722.976.994-3.632-.234-.373A9.818 9.818 0 1112 21.818z\"></path>\n </svg>\n <span class=\"wa-tooltip\">Chat on WhatsApp</span>\n</a>\n\n\n<!-- Sticky Mobile Book Button -->\n<div class=\"mob-sticky-cta\">\n <a href=\"/pickup\" class=\"mob-sticky-btn\">Book a Pickup</a>\n</div>\n\n<!-- Cookie Consent -->\n<div class=\"cookie-bar\" id=\"cookieBar\">\n <p class=\"cookie-txt\">We use cookies to improve your experience. By continuing you agree to our <a href=\"/privacy-policy\" class=\"cookie-link\">Privacy Policy</a>.</p>\n <button class=\"cookie-btn\" onclick=\"acceptCookies()\">Accept</button>\n</div>\n\n\n\n<!-- ═══ SECTION 5A — NUMBERS ═══ -->\n<section class=\"nums-section\" data-theme=\"light\" aria-label=\"The Swiss Laundry by the numbers\">\n\n <!-- SEO hidden context for crawlers -->\n <p class=\"seo-hidden\">The Swiss Laundry has served over 12,000 clients, completed over 48,000 orders and cared for over 150,000 garments including dry cleaning, laundry and carpet care in Kolkata since 2013.</p>\n\n <div class=\"nums-wrap\" id=\"numsWrap\">\n\n <div class=\"nums-eyebrow\">\n <div class=\"nums-eye-line\"></div>\n <p class=\"nums-eye-txt\">Trusted by Kolkata</p>\n <div class=\"nums-eye-line\"></div>\n </div>\n\n <div class=\"nums-grid\">\n\n <!-- Stat 1 -->\n <div class=\"nums-item\" id=\"ni1\">\n <!-- Ghost number — visual depth -->\n <div class=\"nums-ghost\" aria-hidden=\"true\">12K</div>\n <div class=\"nums-content\">\n <!-- CRM-ready: data-crm-key connects to your CRM API -->\n <div class=\"nums-number-wrap\">\n <span class=\"nums-num\" id=\"ctr1\" data-target=\"12000\" data-crm-key=\"total_clients\" aria-label=\"Over 12,000 clients served\">0</span>\n <span class=\"nums-plus\" aria-hidden=\"true\">+</span>\n </div>\n <h3 class=\"nums-name\">Clients Served</h3>\n <p class=\"nums-desc\">Families who trusted us with their most precious garments</p>\n <!-- Taj hover reveal — fades in on hover -->\n <p class=\"nums-reveal\">Every one of them trusted us<br>with something irreplaceable.</p>\n </div>\n </div>\n\n <div class=\"nums-divider\" aria-hidden=\"true\"></div>\n\n <!-- Stat 2 -->\n <div class=\"nums-item\" id=\"ni2\">\n <div class=\"nums-ghost\" aria-hidden=\"true\">48K</div>\n <div class=\"nums-content\">\n <div class=\"nums-number-wrap\">\n <span class=\"nums-num\" id=\"ctr2\" data-target=\"48000\" data-crm-key=\"total_orders\" aria-label=\"Over 48,000 orders completed\">0</span>\n <span class=\"nums-plus\" aria-hidden=\"true\">+</span>\n </div>\n <h3 class=\"nums-name\">Orders Completed</h3>\n <p class=\"nums-desc\">Dry cleaning, laundry and carpet care — each delivered on time</p>\n <p class=\"nums-reveal\">Each one collected from a home.<br>Each one returned immaculate.</p>\n </div>\n </div>\n\n <div class=\"nums-divider\" aria-hidden=\"true\"></div>\n\n <!-- Stat 3 -->\n <div class=\"nums-item\" id=\"ni3\">\n <div class=\"nums-ghost\" aria-hidden=\"true\">150K</div>\n <div class=\"nums-content\">\n <div class=\"nums-number-wrap\">\n <span class=\"nums-num\" id=\"ctr3\" data-target=\"150000\" data-crm-key=\"total_garments\" aria-label=\"Over 150,000 garments cared for\">0</span>\n <span class=\"nums-plus\" aria-hidden=\"true\">+</span>\n </div>\n <h3 class=\"nums-name\">Garments Cared For</h3>\n <p class=\"nums-desc\">From bridal lehengas and sherwanis to Persian carpets and soft toys</p>\n <p class=\"nums-reveal\">From the lehenga worn once<br>to the carpet walked on every day.</p>\n </div>\n </div>\n\n </div>\n\n </div>\n\n</section>\n\n\n\n\n\n<!-- ═══ SECTION 5B — THE LINE + HERITAGE ═══ -->\n<section class=\"heritage-section\" data-theme=\"dark\">\n\n <div class=\"heritage-threshold\"></div>\n\n <div class=\"heritage-wrap\" id=\"heritageWrap\">\n\n <!-- The line -->\n <div class=\"heritage-line-block\" id=\"hLineBlock\">\n <h2 class=\"heritage-h2\" aria-label=\"Don't just clean your garments. Swiss Laundry them.\">Don't just clean your garments.<br><span class=\"heritage-pink\">Swiss Laundry them.</span></h2>\n <div class=\"heritage-rule\"></div>\n </div>\n\n <!-- Day counter — separate, cinematic -->\n <div class=\"heritage-since\" id=\"hSince\">\n <p class=\"heritage-since-label\">Proudly serving you for</p>\n <div class=\"heritage-counter-row\">\n <div class=\"heritage-unit\">\n <span class=\"heritage-num\" id=\"sinceYears\">11</span>\n <span class=\"heritage-word\">Years</span>\n </div>\n <span class=\"heritage-dot\">·</span>\n <div class=\"heritage-unit\">\n <span class=\"heritage-num\" id=\"sinceMonths\">6</span>\n <span class=\"heritage-word\">Months</span>\n </div>\n <span class=\"heritage-dot\">·</span>\n <div class=\"heritage-unit\">\n <span class=\"heritage-num\" id=\"sinceDays\">29</span>\n <span class=\"heritage-word\">Days</span>\n </div>\n </div>\n <p class=\"heritage-since-date\">Since 7th October 2013</p>\n </div>\n\n <!-- Reviews link -->\n <div class=\"heritage-cta\" id=\"hCta\">\n <a href=\"/reviews\" class=\"heritage-link\">\n        Read what our customers say <span class=\"heritage-arrow\">→</span>\n </a>\n </div>\n\n </div>\n\n <!-- Anniversary banner -->\n <div class=\"heritage-anniv\" id=\"trustAnniv\" style=\"display:none\">\n <span id=\"trustAnnivTxt\"></span>\n </div>\n\n</section>\n\n\n\n\n\n<!-- ═══ SECTION 6 — FOOTER ═══ -->\n\n<div class=\"footer-threshold\"></div>\n\n\n\n\n\n\n\n\n<!-- Back to Top -->"
}
