{
  "title": "About The Swiss Laundry — Told by Chotusingh | Kolkata",
  "description": "The Swiss Laundry Kolkata since 2013 — told by Chotusingh, the Indie breed dog of the workshop. The team, the clients, twelve years, one standard.",
  "keywords": "",
  "robots": "index,follow",
  "canonical": "https://www.theswisslaundry.com/about",
  "hreflangs": [
    {
      "hreflang": "en-IN",
      "href": "https://www.theswisslaundry.com/about"
    }
  ],
  "og": {
    "title": "About The Swiss Laundry — Told by Chotusingh",
    "description": "The Swiss Laundry Kolkata since 2013. Told by Chotusingh, the Indie breed dog. The team, the clients, twelve years, one standard.",
    "url": "https://www.theswisslaundry.com/about",
    "image": "https://www.theswisslaundry.com/images/og-about.svg",
    "image:width": "1200",
    "image:height": "630",
    "site_name": "The Swiss Laundry",
    "type": "website",
    "locale": "en_IN"
  },
  "geo": {
    "region": "IN-WB"
  },
  "jsonLd": [
    [
      {
        "@context": "https://schema.org",
        "@type": "LocalBusiness",
        "name": "The Swiss Laundry",
        "dateModified": "2025-05-12",
        "hasMap": "https://www.google.com/maps/place/The+Swiss+Laundry/@22.5129956,88.4067293,17z",
        "telephone": "+919836233354",
        "email": "info@theswisslaundry.com",
        "url": "https://www.theswisslaundry.com",
        "foundingDate": "2013-10-07",
        "inLanguage": "en-IN",
        "currenciesAccepted": "INR",
        "paymentAccepted": "Cash, UPI, Credit Card, Debit Card, Razorpay, Net Banking",
        "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.5129956",
          "longitude": "88.4067293"
        },
        "openingHours": "Mo-Sa 10:00-17:00",
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": "4.5",
          "reviewCount": "1247",
          "bestRating": "5"
        },
        "sameAs": [
          "https://www.facebook.com/TheSwissLaundry",
          "https://www.instagram.com/theswisslaundry_drycleaners/",
          "https://www.youtube.com/@TheSwissLaundry"
        ],
        "employee": {
          "@type": "Person",
          "worksFor": {
            "@type": "Organization",
            "name": "The Swiss Laundry"
          }
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "AboutPage",
        "name": "About The Swiss Laundry — Narrated by Chotusingh",
        "description": "The story of The Swiss Laundry Kolkata since 2013, told by Chotusingh, the Indie breed dog of the workshop.",
        "url": "https://www.theswisslaundry.com/about",
        "dateModified": "2025-05-12",
        "speakable": {
          "@type": "SpeakableSpecification",
          "cssSelector": [
            ".ab-hero-h1",
            ".ab-signoff-text",
            ".ab-intro-pull"
          ]
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Home",
            "item": "https://www.theswisslaundry.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "About",
            "item": "https://www.theswisslaundry.com/about"
          }
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "SiteNavigationElement",
        "name": [
          "Home",
          "Dry Cleaning",
          "Laundry",
          "Carpet & Home Care",
          "Our Process",
          "FAQ"
        ],
        "url": [
          "https://www.theswisslaundry.com/",
          "https://www.theswisslaundry.com/dry-cleaning",
          "https://www.theswisslaundry.com/laundry",
          "https://www.theswisslaundry.com/carpet-home-care",
          "https://www.theswisslaundry.com/our-process",
          "https://www.theswisslaundry.com/faq"
        ]
      }
    ]
  ],
  "styleCss": "body{cursor:auto!important}.ab-cursor{display:none!important}.ab-road-cho{display:none}\n/* ═══════════════════════════════════════════════\n   GLOBAL FEATURES — added to every page\n   ═══════════════════════════════════════════════ */\n\n/* ── Sticky booking pill (mobile only) ── */\n.book-pill{\n  display:none;\n  position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);\n  background:var(--pink);color:#fff;\n  font-family:var(--sans);font-size:10px;font-weight:500;\n  letter-spacing:.18em;text-transform:uppercase;\n  padding:.75rem 1.8rem;border-radius:30px;\n  text-decoration:none;white-space:nowrap;\n  box-shadow:0 4px 20px rgba(192,65,90,.4);\n  z-index:9985;\n  animation:pillIn .4s cubic-bezier(.16,1,.3,1);\n  transition:opacity .3s,transform .3s;\n}\n.book-pill:hover{background:var(--pink2,#a8324a);transform:translateX(-50%) translateY(-2px)}\n.book-pill.hidden{opacity:0;pointer-events:none;transform:translateX(-50%) translateY(8px)}\n@keyframes pillIn{from{opacity:0;transform:translateX(-50%) translateY(16px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}\n@media(max-width:768px){.book-pill{display:flex;align-items:center;gap:.5rem}}\n/* Hide pill on the pickup page itself */\nbody.page-pickup .book-pill{display:none!important}\n\n/* ── Seasonal banner ── */\n.seasonal-banner{\n  background:var(--dark2,#1a1918);color:rgba(255,255,255,.75);\n  font-family:var(--sans);font-size:10px;font-weight:400;letter-spacing:.08em;\n  text-align:center;padding:.45rem 3rem;position:relative;z-index:10000;\n  border-bottom:.5px solid rgba(255,255,255,.08);\n}\n.seasonal-banner a{color:var(--gold,#C9A84C);text-decoration:none;margin-left:.5rem;font-weight:500}\n.seasonal-banner a:hover{text-decoration:underline}\n.banner-close{position:absolute;right:1rem;top:50%;transform:translateY(-50%);\n  background:none;border:none;color:rgba(255,255,255,.4);cursor:pointer;\n  font-size:14px;line-height:1;padding:.2rem;transition:color .2s}\n.banner-close:hover{color:#fff}\n.seasonal-banner.hidden{display:none}\n@media(prefers-color-scheme:light){\n  .seasonal-banner{background:var(--dark2,#1a1918)}\n}\n\n/* ── Dark/light toggle in nav ── */\n.theme-toggle{\n  width:32px;height:32px;border-radius:50%;\n  background:none;border:.5px solid rgba(128,128,128,.25);\n  cursor:pointer;display:flex;align-items:center;justify-content:center;\n  transition:border-color .2s,background .2s;flex-shrink:0;\n}\n.theme-toggle:hover{border-color:var(--gold,#C9A84C);background:rgba(201,168,76,.08)}\n.theme-toggle svg{width:14px;height:14px;transition:opacity .2s}\n.theme-toggle .icon-dark{display:block}\n.theme-toggle .icon-light{display:none}\n[data-theme=\"light\"] .theme-toggle .icon-dark{display:none}\n[data-theme=\"light\"] .theme-toggle .icon-light{display:block}\n\n/* ── Google rating badge in footer ── */\n.g-rating-badge{\n  display:inline-flex;align-items:center;gap:.5rem;\n  text-decoration:none;\n  font-family:var(--sans);\n  padding:.5rem .8rem;\n  border-radius:6px;\n  border:.5px solid rgba(255,255,255,.12);\n  background:rgba(255,255,255,.04);\n  transition:border-color .2s,background .2s;\n  margin-bottom:.8rem;\n}\n.g-rating-badge:hover{border-color:rgba(201,168,76,.3);background:rgba(201,168,76,.05)}\n.g-rating-stars{color:#FBBC04;font-size:13px;letter-spacing:.05em;line-height:1}\n.g-rating-num{font-family:var(--sans);font-size:13px;font-weight:500;color:#fff}\n.g-rating-label{font-family:var(--sans);font-size:9px;font-weight:300;\n  color:rgba(255,255,255,.45);letter-spacing:.08em}\n.g-rating-logo{font-family:var(--sans);font-size:9px;font-weight:700;\n  color:#4285F4;letter-spacing:-.02em}\n@media(prefers-color-scheme:light){\n  .g-rating-badge{border-color:rgba(26,25,24,.12);background:#fff}\n  .g-rating-num{color:#1a1918}\n  .g-rating-label{color:rgba(26,25,24,.45)}\n}\n\n/* ── WhatsApp share button (blogs/guides) ── */\n.wa-share{\n  display:inline-flex;align-items:center;gap:.5rem;\n  background:#25D366;color:#fff;\n  font-family:var(--sans);font-size:9px;font-weight:500;\n  letter-spacing:.15em;text-transform:uppercase;\n  padding:.65rem 1.2rem;border-radius:6px;text-decoration:none;\n  transition:background .2s;\n}\n.wa-share:hover{background:#1da851}\n.wa-share svg{width:14px;height:14px;flex-shrink:0}\n\n/* ── Reading time indicator ── */\n.reading-time{\n  font-family:var(--sans);font-size:10px;font-weight:300;\n  color:var(--txt3,rgba(255,255,255,.4));letter-spacing:.08em;\n  display:inline-flex;align-items:center;gap:.35rem;\n}\n.reading-time svg{width:11px;height:11px;opacity:.6}\n\n/* ── Was this helpful ── */\n.helpful-block{\n  display:flex;align-items:center;gap:1rem;flex-wrap:wrap;\n  padding:1.2rem 0;margin-top:2rem;\n  border-top:1px solid rgba(128,128,128,.12);\n}\n.helpful-label{font-family:var(--sans);font-size:12px;font-weight:300;\n  color:var(--txt3,rgba(255,255,255,.4))}\n.helpful-btn{\n  font-family:var(--sans);font-size:10px;font-weight:400;letter-spacing:.1em;\n  text-transform:uppercase;padding:.4rem 1rem;border-radius:4px;cursor:pointer;\n  border:.5px solid rgba(128,128,128,.2);background:none;\n  color:var(--txt3,rgba(255,255,255,.4));transition:all .2s;\n}\n.helpful-btn:hover,.helpful-btn.active{\n  border-color:var(--pink);color:var(--pink);background:rgba(192,65,90,.06)}\n.helpful-thanks{font-family:var(--sans);font-size:11px;color:var(--pink);display:none}\n.helpful-thanks.show{display:block}\n\n/* ── Page reading progress (long guides) ── */\n.read-progress{\n  position:fixed;top:0;left:0;height:2px;\n  background:var(--gold,#C9A84C);z-index:9999;width:0;\n  transition:width .1s linear;\n}\n/* 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*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}\n*{-webkit-tap-highlight-color:transparent}\n:root{\n  --pink:#C0415A;--pink2:#a8324a;--pink-pale:#fdf0f2;\n  --white:#ffffff;--dark:#0c0b0a;--dark2:#1a1918;\n  --gold:#C9A84C;--gold-l:#E2C97E;\n  --serif:'Cormorant Garamond',Georgia,serif;\n  --sans:'Jost','Helvetica Neue',Arial,sans-serif;\n}\nhtml{overflow-x:hidden}\nbody{font-family:var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased;background:var(--pink-pale);cursor:none}\n::-webkit-scrollbar{width:0}\n:focus-visible{outline:2px solid var(--pink);outline-offset:3px}\nbutton,a,[role=button]{touch-action:manipulation;cursor:none}\n.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}\n.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:var(--pink);color:#fff;padding:.5rem 1rem;z-index:9999}\nbody::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.02;\n  background-image:url(\"data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E\");\n  background-size:128px;mix-blend-mode:multiply}\n.scroll-bar{position:fixed;top:0;left:0;height:3px;background:var(--pink);z-index:9999;width:0}\n\n/* ── CUSTOM CURSOR ── */\n.ab-cursor{position:fixed;top:0;left:0;z-index:99999;pointer-events:none}\n.ab-cursor-paw{position:absolute;transform:translate(-50%,-50%);width:26px;height:26px;color:var(--pink);transition:color .3s ease}\n.ab-cursor-ring{position:absolute;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;border:1.5px solid rgba(192,65,90,.3);transition:width .2s,height .2s,border-color .3s}\n.ab-cursor-ring.big{width:62px;height:62px}\n/* Cursor white mode on pink sections */\n.ab-cursor.on-pink .ab-cursor-paw{color:rgba(255,255,255,.9)}\n.ab-cursor.on-pink .ab-cursor-ring{border-color:rgba(255,255,255,.4)}\n.ab-paw-drop{position:fixed;pointer-events:none;z-index:99997;width:18px;height:18px;color:var(--pink);animation:pawDrop 1s ease forwards;transition:color .3s}\n.ab-paw-drop.on-pink{color:rgba(255,255,255,.6)}\n@keyframes pawDrop{0%{opacity:.5;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(.4)}}\n\n/* Section paw marker */\n.ab-section-cho{width:28px;height:28px;margin-bottom:.6rem;opacity:.6}\n\n/* Section slide-in — starts visible, JS enhances */\n.ab-slide{transition:transform .8s cubic-bezier(.16,1,.3,1),opacity .8s ease}\n\n/* ── §01 HERO ── */\n.ab-hero{min-height:100svh;background:var(--pink);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:0 8vw}\n.ab-hero-dots{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.1) 1px,transparent 1px);background-size:32px 32px;animation:dotsMove 20s linear infinite;pointer-events:none}\n@keyframes dotsMove{0%{background-position:0 0}100%{background-position:32px 32px}}\n.ab-hero-stars{position:absolute;inset:0;pointer-events:none;z-index:1}\n.ab-star{position:absolute;color:rgba(255,255,255,.5);animation:twinkle 2.5s ease-in-out infinite}\n@keyframes twinkle{0%,100%{opacity:.15;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}\n.ab-float-paw{position:absolute;pointer-events:none;animation:floatUp 7s ease-in-out infinite;color:rgba(255,255,255,.12)}\n@keyframes floatUp{0%,100%{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-18px) rotate(var(--r,0deg))}}\n.ab-hero-split{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;max-width:1100px;width:100%;position:relative;z-index:2;padding:7rem 0 4rem}\n.ab-hero-left{display:flex;flex-direction:column;align-items:flex-start;gap:1.3rem}\n.ab-hero-h1{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(34px,5vw,68px);color:#fff;line-height:1.1;letter-spacing:-.03em}\n.ab-hero-sub{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(16px,2vw,22px);color:rgba(255,255,255,.65);line-height:1.7;max-width:420px}\n.ab-scroll-hint{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;margin-top:.5rem}\n.ab-scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.45));animation:scrollP 2s ease-in-out infinite}\n@keyframes scrollP{0%,100%{opacity:.3}50%{opacity:1}}\n.ab-scroll-txt{font-family:var(--sans);font-size:7px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.35)}\n.ab-hero-right{display:flex;flex-direction:column;align-items:center;gap:.9rem;position:relative}\n.ab-spotlight{position:absolute;top:-50px;left:50%;transform:translateX(-50%);width:240px;height:70px;background:radial-gradient(ellipse at center,rgba(201,168,76,.55),transparent 70%);filter:blur(16px);animation:spotP 3.5s ease-in-out infinite;pointer-events:none;z-index:0}\n@keyframes spotP{0%,100%{opacity:.5;width:220px}50%{opacity:.9;width:260px}}\n.ab-speech{background:#fff;border-radius:22px;padding:1rem 1.5rem;position:relative;z-index:2;box-shadow:0 8px 40px rgba(0,0,0,.15);max-width:260px;animation:bubbleF 4s ease-in-out infinite;text-align:center}\n@keyframes bubbleF{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}\n.ab-speech p{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(14px,1.6vw,18px);color:var(--pink);line-height:1.5;margin:0}\n.ab-speech-tail{position:absolute;bottom:-13px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-top:13px solid #fff}\n.ab-cho-circle{width:clamp(180px,22vw,260px);height:clamp(180px,22vw,260px);border-radius:50%;border:4px solid rgba(255,255,255,.5);overflow:hidden;background:var(--pink2);box-shadow:0 0 0 10px rgba(255,255,255,.1),0 0 0 22px rgba(255,255,255,.05),0 24px 80px rgba(0,0,0,.25);position:relative;z-index:2;animation:choB 4s ease-in-out infinite}\n@keyframes choB{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}\n.ab-cho-circle img{width:100%;height:100%;object-fit:cover}\n\n/* ── §02 INTRO ── */\n.ab-intro{background:var(--white);padding:7rem 8vw}\n.ab-intro-inner{max-width:960px;margin:0 auto;display:grid;grid-template-columns:200px 1fr;gap:5rem;align-items:center}\n.ab-eyebrow{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--pink);display:block;margin-bottom:.6rem}\n.ab-eyebrow-light{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.45);display:block;margin-bottom:.6rem}\n.ab-intro-h2{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(24px,3.5vw,44px);color:var(--dark2);letter-spacing:-.02em;line-height:1.15;margin-bottom:1.4rem}\n.ab-intro-body p{font-family:var(--sans);font-size:14px;font-weight:300;line-height:2;color:rgba(26,25,24,.6);margin-bottom:.9rem}\n.ab-intro-body strong{color:var(--dark2);font-weight:500}\n.ab-intro-pull{font-family:var(--serif)!important;font-style:italic;font-size:16px!important;color:var(--dark2)!important;border-left:3px solid rgba(192,65,90,.3);padding-left:1.2rem!important;line-height:1.75!important;font-weight:300}\n.ab-intro-cho-line{font-family:var(--serif)!important;font-style:italic!important;font-size:15px!important;color:rgba(192,65,90,.65)!important;margin-bottom:0!important}\n.ab-flip-card{width:180px;height:180px;position:relative;cursor:pointer;flex-shrink:0}\n.ab-flip-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--pink-pale);border-radius:22px;border:2px solid rgba(192,65,90,.12);padding:14px;transition:opacity .35s ease,transform .35s ease}\n.ab-flip-face svg{width:100%;height:auto;max-height:128px}\n.ab-flip-hint{font-family:var(--sans);font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:rgba(192,65,90,.4);flex-shrink:0}\n.ab-flip-face.hidden{opacity:0;transform:scale(.92)}\n\n/* ── §03 TIMELINE ── */\n.ab-timeline{background:var(--pink-pale);padding:0 0 5rem;position:relative;overflow:hidden}\n.ab-tl-head{padding:6rem 8vw 3rem;max-width:1100px;margin:0 auto}\n.ab-tl-h2{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(28px,4.5vw,56px);color:var(--dark2);letter-spacing:-.02em;line-height:1.05}\n.ab-road-wrap{position:absolute;left:50%;top:200px;bottom:60px;transform:translateX(-50%);width:60px;margin-left:-30px;pointer-events:none;z-index:1}\n.ab-road-svg{width:60px;height:100%}\n.ab-road-cho{position:absolute;left:50%;width:88px;transform:translateX(-50%);z-index:10;top:0;pointer-events:none;transition:top .12s linear}\n.ab-road-cho svg{width:100%;height:auto;filter:drop-shadow(0 4px 12px rgba(192,65,90,.2))}\n.ab-tl-entries{position:relative;z-index:2;padding-bottom:2rem}\n.ab-tl-entry{display:grid;grid-template-columns:1fr 60px 1fr;min-height:130px;align-items:center;padding:.5rem 8vw}\n.ab-tl-odd .ab-tl-content{grid-column:1;text-align:right;padding-right:2rem}\n.ab-tl-odd .ab-tl-mid{grid-column:2}\n.ab-tl-odd .ab-tl-space{grid-column:3}\n.ab-tl-even .ab-tl-space{grid-column:1}\n.ab-tl-even .ab-tl-mid{grid-column:2}\n.ab-tl-even .ab-tl-content{grid-column:3;text-align:left;padding-left:2rem}\n.ab-tl-mid{display:flex;align-items:center;justify-content:center}\n.ab-tl-dot{width:24px;height:24px;color:rgba(192,65,90,.25);transition:color .4s,transform .4s}\n.ab-tl-entry.lit .ab-tl-dot{color:var(--pink);transform:scale(1.3)}\n.ab-tl-ghost{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(48px,8vw,92px);color:rgba(192,65,90,.08);line-height:1;letter-spacing:-.03em;user-select:none;transition:color .5s}\n.ab-tl-entry.lit .ab-tl-ghost{color:rgba(192,65,90,.2)}\n.ab-tl-title{display:block;font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(15px,1.8vw,21px);color:var(--dark2);margin-bottom:.3rem;line-height:1.2}\n.ab-tl-desc{font-family:var(--sans);font-size:12px;font-weight:300;line-height:1.85;color:rgba(26,25,24,.5)}\n\n/* ── §04 CLIENTS — ACCORDION ── */\n.ab-clients{background:var(--pink);padding:6rem 8vw;position:relative;overflow:hidden}\n.ab-clients::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}\n.ab-clients-inner{max-width:860px;margin:0 auto;position:relative;z-index:1}\n.ab-clients-h2{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(26px,4vw,50px);color:#fff;letter-spacing:-.02em;line-height:1.1;margin-bottom:2.5rem}\n/* Accordion item */\n.ab-story{border-bottom:1px solid rgba(255,255,255,.15)}\n.ab-story:first-of-type{border-top:1px solid rgba(255,255,255,.15)}\n.ab-story-header{\n  display:flex;align-items:center;justify-content:space-between;\n  padding:1.4rem 0;cursor:pointer;cursor:none;\n  gap:1rem;list-style:none;\n}\n.ab-story-header::-webkit-details-marker{display:none}\n.ab-story-hl{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(18px,2.5vw,30px);color:#fff;line-height:1.1}\n.ab-story-icon{\n  width:28px;height:28px;flex-shrink:0;\n  color:rgba(255,255,255,.5);\n  transition:transform .35s cubic-bezier(.16,1,.3,1),color .2s;\n}\ndetails[open] .ab-story-icon{transform:rotate(45deg);color:#fff}\n.ab-story-body{padding:0 0 1.4rem}\n.ab-story-text{font-family:var(--sans);font-size:13px;font-weight:300;line-height:2;color:rgba(255,255,255,.65);margin-bottom:1rem}\n.ab-story-link-wrap{\n  display:flex;align-items:center;gap:.6rem;\n  padding-top:.8rem;border-top:1px solid rgba(255,255,255,.1);\n}\n.ab-story-link-ctx{font-family:var(--serif);font-style:italic;font-size:13px;color:rgba(255,255,255,.4)}\n.ab-story-link{\n  font-family:var(--sans);font-size:9px;font-weight:500;\n  letter-spacing:.18em;text-transform:uppercase;\n  color:#fff;text-decoration:none;\n  border-bottom:1px solid rgba(255,255,255,.3);\n  padding-bottom:1px;\n  transition:border-color .2s,color .2s;\n  white-space:nowrap;\n}\n.ab-story-link:hover{border-color:#fff}\n/* Top internal links bar */\n.ab-clients-top-links{\n  display:flex;flex-wrap:wrap;gap:.5rem;\n  margin-bottom:2rem;\n}\n.ab-top-link{\n  font-family:var(--sans);font-size:8px;font-weight:500;\n  letter-spacing:.18em;text-transform:uppercase;\n  color:rgba(255,255,255,.6);text-decoration:none;\n  border:1px solid rgba(255,255,255,.2);\n  padding:.4rem .9rem;border-radius:2px;\n  transition:background .2s,color .2s;\n  cursor:none;\n}\n.ab-top-link:hover{background:rgba(255,255,255,.1);color:#fff}\n\n/* ── §05 TEAM ── */\n.ab-team-section{background:var(--dark2);padding:6rem 8vw;position:relative}\n.ab-team-section::before{content:'';position:absolute;top:0;left:8vw;right:8vw;height:1px;background:linear-gradient(90deg,transparent,rgba(192,65,90,.3),transparent)}\n.ab-team-h2{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(26px,4vw,50px);color:#fff;letter-spacing:-.02em;line-height:1.1;margin-bottom:.6rem}\n.ab-team-sub{font-family:var(--sans);font-size:13px;font-weight:300;color:rgba(255,255,255,.4);margin-bottom:2.5rem;line-height:1.7}\n.ab-team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1.5rem}\n.ab-team-card{\n  background:rgba(255,255,255,.04);\n  border:1px solid rgba(255,255,255,.07);\n  border-radius:4px;\n  overflow:hidden;\n  transition:border-color .3s,transform .3s;\n}\n.ab-team-card:hover{border-color:rgba(192,65,90,.3);transform:translateY(-4px)}\n.ab-team-photo{\n  width:100%;aspect-ratio:1;background:rgba(255,255,255,.06);\n  display:flex;align-items:center;justify-content:center;\n  position:relative;overflow:hidden;\n}\n.ab-team-photo img{width:100%;height:100%;object-fit:cover}\n.ab-team-photo-ph{font-size:48px;opacity:.3}\n.ab-team-id-badge{\n  position:absolute;top:8px;right:8px;\n  background:rgba(192,65,90,.8);\n  font-family:var(--sans);font-size:7px;font-weight:500;\n  letter-spacing:.1em;color:#fff;padding:2px 6px;border-radius:2px;\n}\n.ab-team-info{padding:.9rem 1rem}\n.ab-team-name{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(14px,1.6vw,18px);color:#fff;display:block;margin-bottom:.2rem}\n.ab-team-role{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.1em;color:rgba(255,255,255,.4);display:block;margin-bottom:.5rem}\n.ab-team-quote{\n  display:block;padding-top:2rem;font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(15px,2vw,20px);color:rgba(255,255,255,.5);\n  border-top:1px solid rgba(255,255,255,.07);margin-top:2.5rem;\n  line-height:1.6;\n}\n.ab-team-quote em{color:rgba(255,255,255,.8)}\n\n/* ── §06 SIGN-OFF ── */\n.ab-signoff{background:var(--pink);padding:7rem 8vw;text-align:center;position:relative;overflow:hidden}\n.ab-signoff::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.07) 1px,transparent 1px);background-size:30px 30px}\n.ab-signoff-cho{width:100px;margin:0 auto 1.5rem;position:relative;z-index:1;animation:choB 4s ease-in-out infinite}\n.ab-signoff-cho svg{width:100%;height:auto}\n.ab-signoff-text{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(22px,4vw,52px);color:#fff;letter-spacing:-.02em;line-height:1.25;max-width:660px;margin:0 auto;position:relative;z-index:1}\n.ab-signoff-sig{font-family:var(--sans);font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-top:1.5rem;display:block;position:relative;z-index:1}\n.ab-cta-row{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-top:2.5rem;position:relative;z-index:1}\n.btn-main{display:inline-block;padding:.9rem 2rem;background:#fff;color:var(--pink);font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;transition:background .2s;cursor:none}\n.btn-main:hover{background:rgba(255,255,255,.9)}\n.btn-ghost{display:inline-block;padding:.9rem 2rem;border:1px solid rgba(255,255,255,.3);color:#fff;font-family:var(--sans);font-size:9px;font-weight:400;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;transition:border-color .2s;cursor:none}\n.btn-ghost:hover{border-color:#fff}\n\n/* ── §07 NUMBERS ── */\n.ab-numbers{background:var(--white);padding:6rem 8vw}\n.ab-nums-h2{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(24px,3.5vw,44px);color:var(--dark2);letter-spacing:-.02em;line-height:1.1;margin-bottom:2.5rem}\n.ab-nums-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid rgba(192,65,90,.1);max-width:1100px}\n.ab-num-block{padding:2.5rem 2rem 2.5rem 0;border-right:1px solid rgba(192,65,90,.08)}\n.ab-num-block:last-child{border-right:none}\n.ab-num-val{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(28px,4vw,50px);color:var(--pink);display:block;line-height:1;margin-bottom:.3rem;transition:color .3s}\n.ab-num-lbl{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:rgba(26,25,24,.4);display:block;margin-bottom:.4rem}\n.ab-num-note{font-family:var(--serif);font-style:italic;font-size:12px;color:rgba(26,25,24,.35);line-height:1.5}\n.ab-num-live{font-family:var(--sans);font-size:8px;letter-spacing:.12em;color:var(--pink);display:block;margin-top:.3rem;opacity:.6}\n\n/* WhatsApp Float */\n.wa-float{position:fixed;bottom:2rem;right:2rem;width:56px;height:56px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:9990;box-shadow:0 4px 20px rgba(37,211,102,.4);transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease;text-decoration:none;cursor:pointer!important}\n.wa-float:hover{transform:scale(1.1) translateY(-2px);box-shadow:0 8px 30px rgba(37,211,102,.5)}\n.wa-float svg{width:28px;height:28px;fill:#fff}\n.wa-float::before{content:'';position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(37,211,102,.4);animation:waPulse 2.5s ease-out infinite}\n@keyframes waPulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.5);opacity:0}}\n.wa-tooltip{position:absolute;right:68px;background:var(--dark2);color:#fff;font-family:var(--sans);font-size:11px;letter-spacing:.08em;white-space:nowrap;padding:6px 12px;border-radius:2px;opacity:0;transform:translateX(8px);transition:opacity .3s,transform .3s;pointer-events:none}\n.wa-float:hover .wa-tooltip{opacity:1;transform:translateX(0)}\n\n@media(max-width:900px){\n  body{cursor:auto}.ab-cursor{display:none!important}\n  .ab-hero-split{grid-template-columns:1fr;text-align:center;gap:2rem;padding:5rem 0 3rem}\n  .ab-hero-left{align-items:center;order:2}.ab-hero-right{order:1}\n  .ab-hero-sub{max-width:100%;text-align:center}\n  .ab-scroll-hint{align-items:center}\n  .ab-intro-inner{grid-template-columns:1fr;gap:2rem;text-align:center}\n  .ab-flip-card{margin:0 auto}\n  .ab-intro-pull{border-left:none;padding-left:0!important;text-align:center}\n  .ab-tl-entry{grid-template-columns:1fr!important;min-height:auto;padding:1.2rem 6vw}\n  .ab-tl-odd .ab-tl-content,.ab-tl-even .ab-tl-content{grid-column:1;grid-row:1;text-align:left;padding:0}\n  .ab-tl-mid,.ab-tl-space,.ab-road-wrap,.ab-road-cho{display:none!important}\n  .ab-nums-grid{grid-template-columns:1fr 1fr}\n  .ab-num-block:nth-child(2n){border-right:none}\n  .ab-num-block{border-bottom:1px solid rgba(192,65,90,.06)}\n  .ab-team-grid{grid-template-columns:repeat(2,1fr)}\n  .wa-float{bottom:5rem;right:1rem;width:50px;height:50px}\n  .wa-float svg{width:24px;height:24px}\n}\n@media(max-width:480px){\n  .ab-nums-grid{grid-template-columns:1fr}\n  .ab-num-block{border-right:none!important}\n  .ab-team-grid{grid-template-columns:1fr 1fr}\n  .ab-cta-row{flex-direction:column;align-items:center}\n}\n\n/* ═══ FOOTER ═══ */\n/* ═══ FOOTER BASE ═══ */\n.site-footer{\n  background:#0a0906;\n  position:relative;\n}\n\n/* ── CONTACT FORM STRIP ── */\n.footer-form-strip{\n  border-bottom:0.5px solid rgba(201,168,76,0.1);\n  padding:5rem 4rem;\n  background:rgba(255,255,255,0.01);\n}\n.footer-form-wrap{\n  max-width:1000px;\n  margin:0 auto;\n}\n.footer-form-header{\n  margin-bottom:2.5rem;\n}\n.footer-form-eye{\n  font-family:var(--sans);font-size:9px;\n  letter-spacing:0.32em;text-transform:uppercase;\n  color:var(--gold);margin-bottom:0.8rem;\n}\n.footer-form-title{\n  font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(20px,2.5vw,32px);\n  color:#fff;line-height:1.3;letter-spacing:-0.01em;\n}\n\n/* Form grid */\n.footer-form-row{\n  display:grid;\n  grid-template-columns:repeat(4,1fr);\n  gap:1rem;\n  margin-bottom:1rem;\n}\n.footer-form-field{\n  display:flex;flex-direction:column;gap:0.4rem;\n}\n.footer-form-field-full{\n  margin-bottom:1.2rem;\n}\n.footer-form-label{\n  font-family:var(--sans);font-size:9px;\n  letter-spacing:0.18em;text-transform:uppercase;\n  color:rgba(255,255,255,0.4);\n}\n.footer-form input,\n.footer-form select,\n.footer-form textarea{\n  background:rgba(255,255,255,0.04);\n  border:0.5px solid rgba(255,255,255,0.1);\n  color:#fff;\n  font-family:var(--sans);font-size:13px;font-weight:300;\n  padding:10px 14px;\n  outline:none;\n  transition:border-color 0.3s,background 0.3s;\n  width:100%;\n  appearance:none;\n  -webkit-appearance:none;\n}\n.footer-form input::placeholder,\n.footer-form textarea::placeholder{\n  color:rgba(255,255,255,0.2);\n}\n.footer-form input:focus,\n.footer-form select:focus,\n.footer-form textarea:focus{\n  border-color:rgba(201,168,76,0.5);\n  background:rgba(255,255,255,0.06);\n}\n.footer-form select{\n  background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='rgba(201,168,76,0.6)'/%3E%3C/svg%3E\");\n  background-repeat:no-repeat;\n  background-position:right 14px center;\n  padding-right:32px;\n  cursor:pointer;\n}\n.footer-form select option{\n  background:#1a1918;color:#fff;\n}\n.footer-form textarea{\n  resize:vertical;min-height:80px;\n}\n\n/* Submit row */\n.footer-form-submit-row{\n  display:flex;align-items:center;\n  justify-content:space-between;\n  gap:1rem;flex-wrap:wrap;\n}\n.footer-form-legal{\n  font-family:var(--sans);font-size:10px;\n  color:rgba(255,255,255,0.2);line-height:1.6;\n}\n.footer-form-legal a{\n  color:rgba(255,255,255,0.35);\n  text-decoration:none;\n}\n.footer-form-btn{\n  display:inline-flex;align-items:center;gap:0.6rem;\n  background:var(--pink);border:none;cursor:pointer;\n  font-family:var(--sans);font-size:10px;\n  font-weight:500;letter-spacing:0.2em;text-transform:uppercase;\n  color:#fff;padding:12px 28px;\n  transition:background 0.25s,gap 0.3s;\n  white-space:nowrap;\n}\n.footer-form-btn:hover{background:var(--pink2);gap:0.9rem}\n.footer-form-btn-arrow{\n  display:inline-block;transition:transform 0.3s;\n}\n.footer-form-btn:hover .footer-form-btn-arrow{transform:translateX(4px)}\n\n/* Success message */\n.footer-form-success{\n  padding:1rem 0;\n  font-family:var(--serif);font-style:italic;\n  font-size:16px;color:var(--gold-l);\n}\n\n/* ── MAIN COLUMNS ── */\n.footer-main{\n  display:grid;\n  grid-template-columns:1.5fr 1fr 1fr 1.2fr;\n  gap:3rem;\n  max-width:1200px;margin:0 auto;\n  padding:5rem 4rem;\n  border-bottom:0.5px solid rgba(201,168,76,0.1);\n}\n\n/* Brand col */\n.footer-logo{\n  display:block;height:40px;width:auto;\n  margin-bottom:1.6rem;\n  opacity:0.85;\n}\n.footer-seo-text{\n  font-family:var(--sans);font-size:11px;\n  font-weight:300;line-height:1.85;\n  color:rgba(255,255,255,0.38);\n  margin-bottom:2rem;\n}\n\n/* Chotusingh */\n.footer-chotu{\n  margin-bottom:1.2rem;\n}\n.footer-chotu-img{\n  display:block;height:100px;width:auto;\n  object-fit:contain;\n  mix-blend-mode:lighten;\n  filter:brightness(1.1) contrast(1.05);\n  margin-bottom:0.4rem;\n}\n.footer-chotu-line{\n  font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:11px;color:rgba(255,255,255,0.22);\n  line-height:1.5;\n}\n\n/* Nav cols */\n.footer-col{\n  display:flex;flex-direction:column;\n}\n.footer-col-brand{\n  display:flex;\n  flex-direction:column;\n}\n.footer-col-title{\n  font-family:var(--sans);font-size:9px;\n  font-weight:500;letter-spacing:0.28em;text-transform:uppercase;\n  color:var(--gold);\n  margin-bottom:1.4rem;\n  padding-bottom:0.8rem;\n  border-bottom:0.5px solid rgba(201,168,76,0.15);\n}\n.footer-links{\n  list-style:none;\n  display:flex;flex-direction:column;gap:0.65rem;\n}\n.footer-links a{\n  font-family:var(--sans);font-size:12px;font-weight:300;\n  color:rgba(255,255,255,0.42);text-decoration:none;\n  transition:color 0.3s ease, padding-left 0.3s ease;\n  line-height:1.4;display:block;\n}\n.footer-links a:hover{\n  color:rgba(255,255,255,0.85);\n  padding-left:4px;\n}\n\n/* Contact col */\n.footer-col-contact{\n  justify-content:space-between;\n  display:flex;\n  flex-direction:column;\n}\n.footer-col-contact .footer-apps{\n  margin-top:auto;\n}\n.footer-contact-item{margin-bottom:1.1rem}\n.footer-contact-lbl{\n  display:block;\n  font-family:var(--sans);font-size:8px;\n  letter-spacing:0.22em;text-transform:uppercase;\n  color:var(--gold);opacity:0.65;margin-bottom:0.25rem;\n}\n.footer-address{\n  font-family:var(--sans);font-size:11px;font-weight:300;\n  line-height:1.7;color:rgba(255,255,255,0.38);\n  font-style:normal;\n}\n.footer-contact-val{\n  display:block;\n  font-family:var(--sans);font-size:12px;font-weight:300;\n  color:rgba(255,255,255,0.42);text-decoration:none;\n  line-height:1.7;transition:color 0.25s;\n}\na.footer-contact-val:hover{color:rgba(255,255,255,0.8)}\n\n/* Social */\n.footer-social{\n  display:flex;gap:0.6rem;flex-wrap:wrap;\n  margin-top:1.2rem;margin-bottom:1.6rem;\n}\n.footer-social-ico{\n  width:32px;height:32px;\n  border:0.5px solid rgba(255,255,255,0.12);\n  display:flex;align-items:center;justify-content:center;\n  color:rgba(255,255,255,0.4);text-decoration:none;\n  transition:border-color 0.3s,color 0.3s;\n}\n.footer-social-ico:hover{\n  border-color:rgba(201,168,76,0.5);color:var(--gold-l);\n}\n.footer-social-ico svg{width:14px;height:14px}\n.footer-social-wa:hover{\n  border-color:rgba(37,211,102,0.5);color:#25D366;\n}\n\n/* App badges */\n.footer-apps{margin-top:auto}\n.footer-apps-label{\n  font-family:var(--sans);font-size:8px;\n  letter-spacing:0.22em;text-transform:uppercase;\n  color:var(--gold);opacity:0.65;margin-bottom:0.8rem;\n}\n.footer-apps-row{display:flex;flex-direction:column;gap:0.5rem}\n.footer-app-badge{\n  display:block;text-decoration:none;\n  border:0.5px solid rgba(255,255,255,0.15);\n  padding:8px 14px;\n  transition:border-color 0.3s,background 0.3s;\n}\n.footer-app-badge:hover{\n  border-color:rgba(201,168,76,0.4);\n  background:rgba(255,255,255,0.03);\n}\n.footer-app-inner{\n  display:flex;align-items:center;gap:10px;\n}\n.footer-app-icon{\n  font-size:22px;color:#fff;\n  line-height:1;flex-shrink:0;\n}\n.footer-app-text{\n  display:flex;flex-direction:column;gap:1px;\n}\n.footer-app-sub{\n  font-family:var(--sans);font-size:8px;\n  color:rgba(255,255,255,0.45);letter-spacing:0.06em;\n}\n.footer-app-name{\n  font-family:var(--sans);font-size:13px;\n  font-weight:500;color:#fff;letter-spacing:0.02em;\n}\n\n/* Legal strip */\n.footer-legal{\n  background:#070604;\n  padding:1.4rem 4rem;\n}\n.footer-legal-inner{\n  max-width:1200px;margin:0 auto;\n  display:flex;flex-direction:column;\n  align-items:center;gap:0.5rem;text-align:center;\n}\n.footer-legal-links{\n  display:flex;flex-wrap:wrap;align-items:center;\n  justify-content:center;gap:0.5rem;\n}\n.footer-legal-links a,\n.footer-legal-txt{\n  font-family:var(--sans);font-size:10px;\n  color:rgba(255,255,255,0.28);text-decoration:none;\n  transition:color 0.25s;\n}\n.footer-legal-links a:hover{color:rgba(255,255,255,0.6)}\n.footer-sep{color:rgba(255,255,255,0.18);font-size:10px}\n.footer-copyright{\n  font-family:var(--sans);font-size:10px;\n  color:rgba(255,255,255,0.18);line-height:1.6;\n}\n\n/* Mobile */\n@media(max-width:1024px){\n  .footer-form-row{grid-template-columns:1fr 1fr;}\n  .footer-main{grid-template-columns:1fr 1fr;padding:4rem 3rem;}\n  .footer-col-brand{grid-column:1/-1;}\n  .footer-form-strip{padding:4rem 3rem;}\n}\n@media(max-width:640px){\n  .footer-form-row{grid-template-columns:1fr;}\n  .footer-main{grid-template-columns:1fr;padding:3rem 1.5rem;gap:2.5rem;}\n  .footer-form-strip{padding:3rem 1.5rem;}\n  .footer-legal{padding:1.2rem 1.5rem;}\n  .footer-form-submit-row{flex-direction:column;align-items:flex-start;}\n  .footer-form-btn{width:100%;justify-content:center;}\n}\n\n\n\n\n\n/* ── Footer SEO text — hidden from visitors, present for Google ── */\n.footer-seo-hidden{\n  position:absolute !important;\n  width:1px !important;\n  height:1px !important;\n  overflow:hidden !important;\n  clip:rect(0,0,0,0) !important;\n  white-space:nowrap !important;\n  pointer-events:none !important;\n  visibility:hidden !important;\n  opacity:0 !important;\n  display:block !important;\n  font-size:0 !important;\n  line-height:0 !important;\n}\n/* ── Footer brand statement — visible, premium ── */\n.footer-brand-statement{\n  font-family:var(--serif);\n  font-style:italic;\n  font-weight:300;\n  font-size:clamp(14px,1.3vw,17px);\n  line-height:1.7;\n  color:rgba(255,255,255,0.45);\n  margin-bottom:1.8rem;\n}\n\n\n\n\n \n \n \n\n\n\n.back-to-top{\n  position:fixed;\n  bottom:2rem;\n  left:2rem;\n  width:44px;height:44px;\n  border:0.5px solid rgba(201,168,76,0.35);\n  display:flex;align-items:center;justify-content:center;\n  color:rgba(255,255,255,0.5);\n  background:rgba(12,11,10,0.85);\n  backdrop-filter:blur(8px);\n  text-decoration:none;\n  z-index:998;\n  opacity:0;\n  transform:translateY(8px);\n  transition:opacity 0.3s ease,transform 0.3s ease,\n             border-color 0.3s ease,color 0.3s ease;\n  pointer-events:none;\n}\n.back-to-top.visible{\n  opacity:1;\n  transform:translateY(0);\n  pointer-events:auto;\n}\n.back-to-top:hover{\n  border-color:rgba(201,168,76,0.7);\n  color:var(--gold-l);\n}\n.back-to-top svg{\n  width:16px;height:16px;\n}\n@media(max-width:768px){\n  .back-to-top{\n    bottom:5.5rem;\n    left:1rem;\n    width:40px;height:40px;\n  }\n}\n\n\n\n\n\n\n/* ── Compact contact ── */\n.footer-contact-compact{\n  display:flex;flex-direction:column;gap:0.55rem;\n  margin-bottom:1rem;\n}\n.footer-contact-row{\n  font-family:var(--sans);font-size:11px;font-weight:300;\n  color:rgba(255,255,255,0.42);line-height:1.5;\n  display:flex;align-items:baseline;gap:0.5rem;\n  flex-wrap:wrap;\n}\n.footer-contact-row a{\n  color:rgba(255,255,255,0.42);text-decoration:none;\n  transition:color 0.25s;\n}\n.footer-contact-row a:hover{color:rgba(255,255,255,0.8)}\n.fcc-lbl{font-size:10px;flex-shrink:0;opacity:0.6}\n.fcc-sep{opacity:0.35;margin:0 2px}\n\n/* ── App icon buttons ── */\n.footer-apps-row{\n  display:flex;gap:0.8rem;\n  flex-direction:row !important;\n}\n.footer-app-icon-btn{\n  display:flex;align-items:center;justify-content:center;\n  width:40px;height:40px;\n  border:0.5px solid rgba(255,255,255,0.15);\n  color:rgba(255,255,255,0.5);\n  text-decoration:none;\n  transition:border-color 0.3s,color 0.3s;\n}\n.footer-app-icon-btn:hover{\n  border-color:rgba(201,168,76,0.5);\n  color:var(--gold-l);\n}\n.footer-app-icon-btn svg{width:20px;height:20px}\n\n\n\n.footer-threshold{\n  width:100%;height:1px;\n  background:linear-gradient(90deg,\n    transparent,rgba(201,168,76,0.4) 50%,transparent);\n}\n\n\n</html\n.seo-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;pointer-events:none}\n.footer-form-btn-txt{font-family:'Jost',sans-serif;font-size:9px;font-weight:500;letter-spacing:0.22em;text-transform:uppercase}\n.footer-social-wa{display:inline-flex;align-items:center;gap:0.5rem;font-family:'Jost',sans-serif;font-size:11px;font-weight:300;color:rgba(255,255,255,0.5);transition:color 0.2s}\n.footer-social-wa:hover{color:#25D366}\n\n/* ── H1 word entrance ── */\n.ab-h1-line{display:inline}\n.ab-h1-word{\n  display:inline-block;\n  overflow:hidden;\n  vertical-align:bottom;\n}\n.ab-h1-word span{\n  display:inline-block;\n  transform:translateY(110%);\n  opacity:0;\n  animation:wordUp .8s cubic-bezier(.16,1,.3,1) forwards;\n  animation-delay:calc(var(--i) * 0.1s + 0.3s);\n}\n@keyframes wordUp{\n  to{transform:translateY(0);opacity:1}\n}\n\n/* ── Mobile timeline paw trail ── */\n@media(max-width:900px){\n  .ab-tl-entries{position:relative;padding-left:2.5rem}\n  .ab-tl-entry{padding:1.2rem 6vw 1.2rem 0;position:relative}\n  /* Left border line on mobile */\n  .ab-tl-entries::before{\n    content:'';\n    position:absolute;left:.8rem;top:0;bottom:0;\n    width:2px;\n    background:repeating-linear-gradient(\n      to bottom,\n      rgba(192,65,90,.3) 0,rgba(192,65,90,.3) 12px,\n      transparent 12px,transparent 24px\n    );\n  }\n  /* Paw dot on left for each entry */\n  .ab-tl-entry::before{\n    content:'';\n    position:absolute;left:-.45rem;top:50%;\n    transform:translateY(-50%);\n    width:14px;height:14px;\n    background:var(--pink-pale);\n    border:2px solid rgba(192,65,90,.3);\n    border-radius:50%;\n    transition:border-color .4s,background .4s;\n  }\n  .ab-tl-entry.lit::before{\n    background:var(--pink);\n    border-color:var(--pink);\n  }\n  .ab-tl-ghost{font-size:clamp(32px,10vw,52px)}\n}\n\n/* ── Team statement (pre-CRM) ── */\n.ab-team-statement{\n  max-width:700px;\n  padding:2rem 0;\n  margin-bottom:2rem;\n}\n.ab-team-statement p{\n  font-family:var(--sans);font-size:14px;font-weight:300;\n  line-height:2;color:rgba(255,255,255,.5);\n  margin-bottom:.8rem;\n}\n.ab-team-s1{font-family:var(--serif)!important;font-style:italic;\n  font-size:clamp(17px,2vw,22px)!important;\n  color:rgba(255,255,255,.75)!important;line-height:1.7!important}\n.ab-team-s3{color:rgba(255,255,255,.3)!important;font-size:12px!important}\n\n/* ── Video section ── */\n.ab-video-section{background:var(--dark2);padding:6rem 8vw;position:relative}\n.ab-video-section::before{content:'';position:absolute;top:0;left:8vw;right:8vw;height:1px;\n  background:linear-gradient(90deg,transparent,rgba(201,168,76,.3),transparent)}\n.ab-video-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1.4fr;gap:5rem;align-items:center}\n.ab-video-h2{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(26px,4vw,50px);color:#fff;letter-spacing:-.02em;line-height:1.1;margin-bottom:1rem}\n.ab-video-body{font-family:var(--sans);font-size:13px;font-weight:300;line-height:2;color:rgba(255,255,255,.45);margin-bottom:1.8rem}\n.ab-video-btn{\n  display:inline-flex;align-items:center;gap:.7rem;\n  background:transparent;border:1px solid rgba(201,168,76,.5);\n  color:var(--gold-l);font-family:var(--sans);font-size:9px;\n  font-weight:500;letter-spacing:.2em;text-transform:uppercase;\n  padding:.9rem 1.8rem;cursor:none;\n  transition:background .25s,border-color .25s,color .25s;\n}\n.ab-video-btn:hover{background:rgba(201,168,76,.1);border-color:var(--gold);color:var(--gold)}\n.ab-video-btn-icon{width:16px;height:16px;flex-shrink:0}\n.ab-video-right{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:2px;background:var(--dark)}\n.ab-video-thumb{position:absolute;inset:0;cursor:none}\n.ab-video-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n  background:rgba(0,0,0,.25);transition:background .3s}\n.ab-video-thumb:hover .ab-video-overlay{background:rgba(0,0,0,.1)}\n.ab-video-play-ring{\n  width:72px;height:72px;border-radius:50%;\n  border:2px solid rgba(255,255,255,.6);\n  display:flex;align-items:center;justify-content:center;\n  transition:transform .3s,border-color .3s;\n}\n.ab-video-thumb:hover .ab-video-play-ring{transform:scale(1.1);border-color:#fff}\n.ab-video-play-ring svg{width:28px;height:28px;margin-left:4px}\n@media(max-width:900px){\n  .ab-video-inner{grid-template-columns:1fr;gap:2rem}\n}\n\n/* ── Team card updates ── */\n.ab-team-photo{\n  background:linear-gradient(160deg,rgba(192,65,90,.15),rgba(26,25,24,.4));\n  display:flex;align-items:center;justify-content:center;\n}\n.ab-team-crm-note{\n  font-family:var(--sans);font-size:8px;font-weight:300;\n  letter-spacing:.1em;color:rgba(255,255,255,.2);\n  display:block;margin-top:.2rem;font-style:italic;\n}\n.ab-team-name{\n  font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(14px,1.6vw,18px);color:rgba(255,255,255,.4);\n  display:block;margin-bottom:.2rem;letter-spacing:.1em;\n}\n/* When CRM populates — JS removes placeholder class */\n.ab-team-card.crm-loaded .ab-team-name{color:#fff}\n.ab-team-card.crm-loaded .ab-team-crm-note{display:none}\n.ab-team-card.crm-loaded .ab-team-photo svg.ab-silhouette{display:none}\n\n@media print{\n  .wa-float,.wa-float-btn,.bookPill,.seasonal-banner,.scroll-bar,.read-progress,\n  .mob-sidebar-toggle,.sidebar-cta-btn,.loc-ctas,.loc-cta-primary,.loc-cta-wa,\n  nav#nav,.nav-cta,.global-pill{display:none!important}\n  body{font-size:11pt;color:#000;background:#fff}\n  a[href]::after{content:\" (\" attr(href) \")\";font-size:9pt;color:#666}\n  a[href^=\"#\"]::after,a[href^=\"tel:\"]::after,a[href^=\"https://wa.me\"]::after{content:\"\"}\n  h1,h2,h3{page-break-after:avoid}\n  .chapter,.loc-section{page-break-inside:avoid}\n}\n\n\n/* theme: dark default */\n:root{--bg:#1a1918;--bg2:#201e1d;--surf:rgba(255,255,255,.05);--surf-b:rgba(255,255,255,.1);--txt:#fff;--txt2:rgba(255,255,255,.82);--txt3:rgba(255,255,255,.55);}\n@media(prefers-color-scheme:light){\n  :root{--bg:#F5F0E8;--bg2:#EDE7D9;--surf:#fff;--surf-b:rgba(26,25,24,.1);--txt:#1a1918;--txt2:#3d3a36;--txt3:#7a7168;}\n}\n\n\n[data-reveal]{transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)}\n\n\n.honest-statement{padding:4rem 8vw;text-align:center}\n.honest-statement-inner{max-width:680px;margin:0 auto}\n.honest-divider{width:36px;height:1px;background:var(--gold,#C9A84C);margin:0 auto 1.5rem;opacity:.5}\n.honest-line{font-family:var(--serif,'Cormorant Garamond',serif);font-style:italic;font-weight:300;font-size:clamp(16px,2vw,22px);color:var(--txt2,#3d3a36);line-height:1.7;margin-bottom:.8rem}\n.honest-attr{font-family:var(--sans,'Jost',sans-serif);font-size:10px;font-weight:300;color:var(--txt3,#7a7168);letter-spacing:.12em;text-transform:uppercase}\n\n.scroll-hint-wrap{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.4rem;opacity:.28;pointer-events:none;z-index:2}\n.scroll-hint-wrap span{font-family:var(--sans,'Jost',sans-serif);font-size:8px;letter-spacing:.28em;text-transform:uppercase;color:#fff}\n.scroll-hint-line{width:1px;height:28px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.7));animation:shPulse 2.2s ease-in-out infinite}\n@keyframes shPulse{0%,100%{opacity:.3;transform:scaleY(.7)}50%{opacity:.9;transform:scaleY(1)}}\n\n\n/* ── Custom cursor ── */\n@media(hover:hover) and (pointer:fine){\n  *{cursor:none!important}\n  .cursor-dot{\n    position:fixed;top:0;left:0;z-index:99999;\n    pointer-events:none;\n    width:8px;height:8px;\n    background:var(--gold,#C9A84C);\n    border-radius:50%;\n    transform:translate(-50%,-50%);\n    transition:width .2s,height .2s,background .2s,opacity .3s;\n    mix-blend-mode:difference;\n  }\n  .cursor-ring{\n    position:fixed;top:0;left:0;z-index:99998;\n    pointer-events:none;\n    width:32px;height:32px;\n    border:1px solid rgba(201,168,76,.4);\n    border-radius:50%;\n    transform:translate(-50%,-50%);\n    transition:width .35s cubic-bezier(.16,1,.3,1),\n               height .35s cubic-bezier(.16,1,.3,1),\n               border-color .2s,opacity .3s;\n  }\n  body.cursor-hover .cursor-dot{width:6px;height:6px;background:#fff}\n  body.cursor-hover .cursor-ring{width:44px;height:44px;border-color:rgba(201,168,76,.6)}\n  body.cursor-link .cursor-dot{width:12px;height:12px;background:var(--pink,#C0415A)}\n  body.cursor-link .cursor-ring{width:48px;height:48px;border-color:rgba(192,65,90,.5)}\n  body.cursor-hidden .cursor-dot,\n  body.cursor-hidden .cursor-ring{opacity:0}\n}\n\n/* ── Intro / loading screen ── */\n.intro-screen{\n  position:fixed;inset:0;z-index:99997;\n  background:var(--dark2,#1a1918);\n  display:flex;align-items:center;justify-content:center;\n  flex-direction:column;gap:1.2rem;\n  transition:opacity .6s ease,transform .6s cubic-bezier(.16,1,.3,1);\n}\n.intro-screen.hidden{\n  opacity:0;pointer-events:none;\n  transform:translateY(-8px);\n}\n.intro-monogram{\n  font-family:'Cormorant Garamond',Georgia,serif;\n  font-style:italic;font-weight:300;\n  font-size:clamp(48px,8vw,96px);\n  color:var(--gold,#C9A84C);\n  letter-spacing:-.04em;\n  opacity:0;\n  animation:introFadeIn .8s cubic-bezier(.16,1,.3,1) .1s forwards;\n}\n.intro-wordmark{\n  font-family:'Jost','Helvetica Neue',Arial,sans-serif;\n  font-size:9px;font-weight:300;\n  letter-spacing:.35em;text-transform:uppercase;\n  color:rgba(255,255,255,.25);\n  opacity:0;\n  animation:introFadeIn .6s ease .5s forwards;\n}\n.intro-line{\n  width:0;height:.5px;background:var(--gold,#C9A84C);opacity:.3;\n  animation:introLine .8s cubic-bezier(.16,1,.3,1) .3s forwards;\n}\n@keyframes introFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}\n@keyframes introLine{from{width:0}to{width:80px}}\n\n\n\n.tsl-crumbs{max-width:1200px;margin:0 auto;padding:14px 8vw 0;position:relative;z-index:5}\n.tsl-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;font-family:var(--sans,'Jost',sans-serif);font-size:11px;letter-spacing:.06em}\n.tsl-crumbs li{display:flex;align-items:center;gap:6px;color:inherit;opacity:.55}\n.tsl-crumbs li:not(:last-child)::after{content:'›';opacity:.6}\n.tsl-crumbs a{color:inherit;text-decoration:none;transition:opacity .2s}\n.tsl-crumbs a:hover{opacity:1;text-decoration:underline}\n.tsl-crumbs li:last-child{opacity:.85}\n@media(max-width:600px){.tsl-crumbs{padding:12px 6vw 0}}\n\n\n\n/* breadcrumb contrast */\n.tsl-crumbs a,.tsl-crumbs li{color:rgba(255,255,255,.75)!important}\n.tsl-crumbs a:hover{color:var(--gold,#C9A84C)!important}\n.tsl-crumbs li[aria-current=\"page\"]{color:rgba(255,255,255,.95)!important}\n[data-theme=\"light\"] .tsl-crumbs a,\n[data-theme=\"light\"] .tsl-crumbs li,\n.s-cream .tsl-crumbs a,\n.s-cream .tsl-crumbs li{\n  color:rgba(26,25,24,.75)!important;\n}\n[data-theme=\"light\"] .tsl-crumbs a:hover,\n.s-cream .tsl-crumbs a:hover{color:var(--pink,#C0415A)!important}\n@media (prefers-color-scheme: light){\n  /* crumbs sit on cream body above dark heroes */\n  body > .tsl-crumbs a,\n  body > .tsl-crumbs li,\n  main > .tsl-crumbs a,\n  .scroll-bar + .tsl-crumbs a,\n  .scroll-bar + .tsl-crumbs li,\n  #introScreen + .tsl-crumbs a,\n  div > .tsl-crumbs a,\n  div > .tsl-crumbs li{\n    color:rgba(26,25,24,.75)!important;\n  }\n}\n\n/* ═══ Force dark-default shell ═══ */\n:root{\n  --off:#1a1918 !important;\n  --pink-pale:#1a1918 !important;\n}\nbody{\n  background:var(--bg,var(--off,#1a1918))!important;\n  color:var(--txt,#fff)!important;\n}\n/* When a page hardcodes cream body vars, keep body dark unless OS wants light */\n@media (prefers-color-scheme: light){\n  :root{\n    --off:#FAFAF8 !important;\n    --pink-pale:#fdf0f2 !important;\n  }\n  body{\n    background:var(--cream,var(--off,#F5F0E8))!important;\n    color:var(--dark2,var(--ink,#1a1918))!important;\n  }\n}\n",
  "scriptJs": "function acceptCookies(){\n  try {\n    localStorage.setItem('tsl_cookies','accepted');\n    document.querySelectorAll('.cookie-bar').forEach(function(bar){ bar.classList.remove('show'); bar.style.display='none'; });\n  } catch(e){}\n}\nwindow.addEventListener('DOMContentLoaded', function(){\n  try {\n    if(!localStorage.getItem('tsl_cookies')){\n      setTimeout(function(){\n        var bar = document.getElementById('cookieBar')\n        if(bar) bar.classList.add('show')\n      }, 2000)\n    }\n  } catch(e){}\n})\n;\nwindow.addEventListener('load', function(){\n  setTimeout(function(){\n    var pl = document.getElementById('preloader')\n    if(pl) pl.classList.add('hidden')\n  }, 1200)\n})\n;\n(function(){\n'use strict'\n\n/* ── Scroll bar ── */\nwindow.addEventListener('scroll',function(){\n  var b=document.getElementById('scrollBar')\n  if(b) b.style.width=(window.scrollY/(document.documentElement.scrollHeight-window.innerHeight)*100)+'%'\n},{passive:true})\n\n/* ── Lenis smooth scroll ── */\nif(window.Lenis){\n  var lenis=new window.Lenis({duration:1.2,easing:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},smoothWheel:true})\n  function lenisRaf(time){lenis.raf(time);requestAnimationFrame(lenisRaf)}\n  requestAnimationFrame(lenisRaf)\n}\n\n/* ── Nav light/dark ── */\n;(function(){\n  var nav=document.getElementById('nav')\n  if(!nav)return\n  function upd(){\n    var h=document.querySelector('.ab-hero')\n    if(!h)return\n    nav.classList.toggle('on-dark',h.getBoundingClientRect().bottom>60)\n    nav.classList.toggle('on-light',h.getBoundingClientRect().bottom<=60)\n  }\n  window.addEventListener('scroll',upd,{passive:true});upd()\n})()\n\n/* ── Custom paw cursor — desktop only ── */\nif(window.innerWidth>900&&!('ontouchstart' in window)){\n  var cur=document.querySelector('.ab-cursor')\n  var ring=document.querySelector('.ab-cursor-ring')\n  var pawEl=document.querySelector('.ab-cursor-paw')\n  if(cur){\n    var mx=0,my=0,rx=0,ry=0,last=0,isPink=false\n    /* Detect pink sections */\n    var pinkSecs=document.querySelectorAll('.ab-hero,.ab-clients,.ab-signoff')\n    var pinkObs=new IntersectionObserver(function(evts){\n      evts.forEach(function(e){\n        if(e.isIntersecting){\n          cur.classList.add('on-pink')\n          isPink=true\n        }\n      })\n    },{threshold:0.4})\n    var lightObs=new IntersectionObserver(function(evts){\n      evts.forEach(function(e){\n        if(e.isIntersecting){\n          cur.classList.remove('on-pink')\n          isPink=false\n        }\n      })\n    },{threshold:0.4})\n    /* White sections */\n    var whiteSecs=document.querySelectorAll('.ab-intro,.ab-timeline,.ab-numbers,.ab-team-section')\n    pinkSecs.forEach(function(s){pinkObs.observe(s)})\n    whiteSecs.forEach(function(s){lightObs.observe(s)})\n    document.addEventListener('mousemove',function(e){\n      mx=e.clientX;my=e.clientY\n      pawEl.style.left=mx+'px';pawEl.style.top=my+'px'\n      var now=Date.now()\n      if(now-last>380){\n        last=now\n        var d=document.createElement('div')\n        d.className='ab-paw-drop'+(isPink?' on-pink':'')\n        d.style.left=mx+'px';d.style.top=my+'px'\n        d.innerHTML=pawEl.innerHTML\n        document.body.appendChild(d)\n        setTimeout(function(){if(d.parentNode)d.parentNode.removeChild(d)},1000)\n      }\n    })\n    function animR(){rx+=(mx-rx)*.1;ry+=(my-ry)*.1;ring.style.left=rx+'px';ring.style.top=ry+'px';requestAnimationFrame(animR)}\n    animR()\n    document.querySelectorAll('a,button,summary').forEach(function(el){\n      el.addEventListener('mouseenter',function(){ring.classList.add('big')})\n      el.addEventListener('mouseleave',function(){ring.classList.remove('big')})\n    })\n  }\n}\n\n/* ── Flip card ── */\n;(function(){\n  var card=document.getElementById('choFlip')\n  if(!card)return\n  var faces=card.querySelectorAll('.ab-flip-face')\n  var cur=0\n  card.addEventListener('click',function(){cur=(cur+1)%faces.length;show(cur)})\n  card.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();cur=(cur+1)%faces.length;show(cur)}})\n  setInterval(function(){cur=(cur+1)%faces.length;show(cur)},3000)\n  function show(i){faces.forEach(function(f,j){f.classList.toggle('hidden',j!==i)})}\n})()\n\n/* ── Timeline — road draws itself + Chotusingh walks ── */\n;(function(){\n  var cho=document.getElementById('abRoadCho')\n  var tl=document.querySelector('.ab-timeline')\n  var entries=document.querySelectorAll('.ab-tl-entry')\n  var roadPath=document.getElementById('abRoadPath')\n  var roadFill=document.getElementById('abRoadFill')\n  if(!tl)return\n  /* Set road SVG height dynamically */\n  function setRoad(){\n    var wrap=document.querySelector('.ab-road-wrap')\n    if(!wrap)return\n    var h=wrap.offsetHeight\n    if(roadPath){\n      roadPath.setAttribute('d','M30,0 L30,'+h)\n      roadPath.setAttribute('stroke-dasharray','18 10')\n    }\n    if(roadFill){\n      var len=roadFill.getTotalLength?roadFill.getTotalLength():(h*1.2)\n      roadFill.setAttribute('d','M30,0 L30,'+h)\n      roadFill.setAttribute('stroke-dasharray',len+' '+len)\n      roadFill.setAttribute('stroke-dashoffset',len)\n      roadFill._len=len\n    }\n  }\n  setTimeout(setRoad,100)\n  window.addEventListener('resize',setRoad)\n  window.addEventListener('scroll',function(){\n    if(!tl)return\n    var r=tl.getBoundingClientRect()\n    var h=tl.offsetHeight\n    var p=Math.max(0,Math.min(1,(-r.top+120)/(h-window.innerHeight+120)))\n    if(cho) cho.style.top=(160+p*Math.max(0,h-350))+'px'\n    if(roadFill&&roadFill._len){\n      roadFill.style.strokeDashoffset=(roadFill._len-(roadFill._len*p))\n    }\n    /* Highlight nearest entry */\n    if(entries.length){\n      var mid=window.innerHeight/2,best=null,bestD=9999\n      entries.forEach(function(e){var er=e.getBoundingClientRect(),d=Math.abs(er.top+er.height/2-mid);if(d<bestD){bestD=d;best=e}})\n      entries.forEach(function(e){e.classList.toggle('lit',e===best)})\n    }\n  },{passive:true})\n})()\n\n/* ── CRM live fetch for numbers ── */\n;(function(){\n  var STATIC={clients:'12,000+',orders:'48,000+',garments:'1,50,000+'}\n  /* Replace static text immediately */\n  var clientEl=document.getElementById('numClients')\n  var orderEl=document.getElementById('numOrders')\n  var garmentEl=document.getElementById('numGarments')\n  /* Try CRM API */\n  fetch('/api/stats',{method:'GET',headers:{'Accept':'application/json'},signal:AbortSignal.timeout?AbortSignal.timeout(3000):undefined})\n    .then(function(r){if(!r.ok)throw new Error('no api');return r.json()})\n    .then(function(data){\n      if(clientEl&&data.clients) clientEl.textContent=Number(data.clients).toLocaleString('en-IN')+'+'\n      if(orderEl&&data.orders) orderEl.textContent=Number(data.orders).toLocaleString('en-IN')+'+'\n      if(garmentEl&&data.garments) garmentEl.textContent=Number(data.garments).toLocaleString('en-IN')+'+'\n      /* Mark as live */\n      document.querySelectorAll('.ab-num-live').forEach(function(el){el.style.opacity='1'})\n    })\n    .catch(function(){/* Static values already shown — no action needed */})\n})()\n\n/* ── Number counter animation ── */\n;(function(){\n  document.querySelectorAll('[data-count]').forEach(function(el){\n    var obs=new IntersectionObserver(function(evts){\n      evts.forEach(function(e){\n        if(!e.isIntersecting)return\n        var target=parseInt(el.getAttribute('data-count'))\n        var suffix=el.getAttribute('data-sfx')||''\n        var dur=1800,s=performance.now()\n        ;(function tick(now){\n          var p=Math.min((now-s)/dur,1),v=Math.round((1-Math.pow(1-p,3))*target)\n          el.textContent=v.toLocaleString('en-IN')+suffix\n          if(p<1)requestAnimationFrame(tick)\n        })(s)\n        obs.unobserve(el)\n      })\n    },{threshold:0.3})\n    obs.observe(el)\n  })\n})()\n\n/* ── Slide-in enhancement ── */\n;(function(){\n  var els=document.querySelectorAll('.ab-slide')\n  if(!els.length)return\n  /* Set initial state after paint so content stays visible if JS slow */\n  requestAnimationFrame(function(){\n    els.forEach(function(el){\n      el.style.opacity='0'\n      el.style.transform='translateY(20px)'\n    })\n    var obs=new IntersectionObserver(function(evts){\n      evts.forEach(function(e){\n        if(!e.isIntersecting)return\n        e.target.style.opacity='1'\n        e.target.style.transform='translateY(0)'\n        obs.unobserve(e.target)\n      })\n    },{threshold:0.15,rootMargin:'0px 0px -30px 0px'})\n    els.forEach(function(el){obs.observe(el)})\n  })\n})()\n\n})()\n;\n\n(function(){\n  var btn=document.getElementById('abVideoBtn')\n  var thumb=document.getElementById('abVideoThumb')\n  var frame=document.getElementById('abVideoFrame')\n  function playVideo(){\n    if(!frame)return\n    frame.src='https://www.youtube.com/embed/eAGGJ3CBt34?autoplay=1&rel=0'\n    frame.style.display='block'\n    if(thumb)thumb.style.display='none'\n  }\n  if(btn) btn.addEventListener('click',playVideo)\n  if(thumb) thumb.addEventListener('click',playVideo)\n})()\n\n;\n\n/* ── Global features JS ── */\n(function(){\n  /* Seasonal banner */\n  var banner=document.getElementById('seasonalBanner');\n  var bannerClose=document.getElementById('bannerClose');\n  if(banner && bannerClose){\n    var dismissed=sessionStorage.getItem('bannerDismissed');\n    if(dismissed) banner.classList.add('hidden');\n    bannerClose.addEventListener('click',function(){\n      banner.classList.add('hidden');\n      sessionStorage.setItem('bannerDismissed','1');\n    });\n  }\n\n  /* Sticky booking pill — show after 5s, hide when near footer */\n  var pill=document.getElementById('bookPill');\n  if(pill){\n    var pillTimer=setTimeout(function(){\n      pill.classList.remove('hidden');\n    },5000);\n    /* Hide pill when footer is visible */\n    var footer=document.querySelector('footer');\n    if(footer){\n      var pillObs=new IntersectionObserver(function(entries){\n        entries.forEach(function(e){\n          pill.classList.toggle('hidden',e.isIntersecting);\n        });\n      },{threshold:0.1});\n      pillObs.observe(footer);\n    }\n  }\n\n  /* Dark/light theme toggle */\n  var toggle=document.getElementById('themeToggle');\n  if(toggle){\n    var stored=localStorage.getItem('theme');\n    if(stored) document.documentElement.setAttribute('data-theme',stored);\n    toggle.addEventListener('click',function(){\n      var current=document.documentElement.getAttribute('data-theme');\n      var next=current==='light'?'dark':'light';\n      document.documentElement.setAttribute('data-theme',next);\n      localStorage.setItem('theme',next);\n    });\n  }\n\n  /* Reading progress bar */\n  var prog=document.getElementById('readProgress');\n  if(prog){\n    window.addEventListener('scroll',function(){\n      var h=document.documentElement;\n      var pct=(h.scrollTop||document.body.scrollTop)/(h.scrollHeight-h.clientHeight)*100;\n      prog.style.width=Math.min(100,pct)+'%';\n    },{passive:true});\n  }\n\n  /* Was this helpful */\n  document.querySelectorAll('.helpful-btn').forEach(function(btn){\n    btn.addEventListener('click',function(){\n      var block=btn.closest('.helpful-block');\n      var thanks=block && block.querySelector('.helpful-thanks');\n      if(thanks){thanks.classList.add('show');}\n      if(btn.dataset.helpful==='no'){\n        var wa=document.createElement('a');\n        wa.href='https://wa.me/919836233354?text=I+had+a+question+about+your+guide';\n        wa.target='_blank';wa.rel='noopener';\n        wa.style.cssText='font-family:var(--sans);font-size:11px;color:#25D366;margin-left:.5rem';\n        wa.textContent='Chat with us →';\n        if(thanks) thanks.appendChild(wa);\n      }\n      document.querySelectorAll('.helpful-btn').forEach(function(b){b.classList.remove('active')});\n      btn.classList.add('active');\n    });\n  });\n\n})();\n\n;\n\n(function(){var els=document.querySelectorAll('[data-reveal]');if(!els.length)return;var obs=new IntersectionObserver(function(evts){evts.forEach(function(e){if(!e.isIntersecting)return;e.target.style.opacity='1';e.target.style.transform='translateY(0)';obs.unobserve(e.target);});},{threshold:0.12});requestAnimationFrame(function(){els.forEach(function(el){el.style.opacity='0';el.style.transform='translateY(16px)';el.style.transition='opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)';obs.observe(el);});});})();\n\n;\n\n(function(){\n  document.querySelectorAll('[data-count]').forEach(function(el){\n    var triggered=false;\n    var obs=new IntersectionObserver(function(entries){\n      if(!entries[0].isIntersecting||triggered)return;\n      triggered=true;\n      var end=parseFloat(el.dataset.count);\n      var dec=parseInt(el.dataset.dec||'0');\n      var prefix=el.dataset.prefix||'';\n      var suffix=el.dataset.suffix||'';\n      var dur=parseInt(el.dataset.dur||'1200');\n      var start=null;\n      function step(ts){\n        if(!start)start=ts;\n        var p=Math.min((ts-start)/dur,1);\n        var ease=1-Math.pow(1-p,4);\n        var val=end*ease;\n        el.textContent=prefix+(dec===0?Math.round(val).toLocaleString('en-IN'):val.toFixed(dec))+suffix;\n        if(p<1)requestAnimationFrame(step);\n        else el.textContent=prefix+(dec===0?end.toLocaleString('en-IN'):parseFloat(end).toFixed(dec))+suffix;\n      }\n      requestAnimationFrame(step);\n    },{threshold:.5});\n    obs.observe(el);\n  });\n})();\n\n;\n\n(function(){\n'use strict';\n\n/* ── Intro screen — runs once per session ── */\nvar SESSION_KEY = 'tsl_intro_shown';\nvar introEl = document.getElementById('introScreen');\nif(introEl){\n  if(sessionStorage.getItem(SESSION_KEY)){\n    introEl.style.display = 'none';\n  } else {\n    setTimeout(function(){\n      introEl.classList.add('hidden');\n      setTimeout(function(){\n        introEl.style.display = 'none';\n        sessionStorage.setItem(SESSION_KEY,'1');\n      }, 700);\n    }, 1400);\n  }\n}\n\n/* ── Custom cursor — desktop only ── */\nif(window.matchMedia('(hover:hover) and (pointer:fine)').matches){\n  var dot  = document.createElement('div'); dot.className  = 'cursor-dot';\n  var ring = document.createElement('div'); ring.className = 'cursor-ring';\n  document.body.appendChild(dot);\n  document.body.appendChild(ring);\n\n  var mx=0,my=0,rx=0,ry=0;\n  document.addEventListener('mousemove',function(e){\n    mx=e.clientX; my=e.clientY;\n    dot.style.left  = mx+'px'; dot.style.top  = my+'px';\n  },{passive:true});\n\n  /* Ring follows with spring lag */\n  (function lerp(){\n    rx+=(mx-rx)*.12; ry+=(my-ry)*.12;\n    ring.style.left=rx+'px'; ring.style.top=ry+'px';\n    requestAnimationFrame(lerp);\n  })();\n\n  /* Hover states */\n  document.addEventListener('mouseover',function(e){\n    var t=e.target;\n    var isLink=t.closest('a,button,[role=\"button\"],[tabindex]');\n    var isText=t.closest('p,h1,h2,h3,h4,li,span');\n    document.body.classList.toggle('cursor-link',!!isLink);\n    document.body.classList.toggle('cursor-hover',!!isText && !isLink);\n  },{passive:true});\n\n  document.addEventListener('mouseleave',function(){\n    document.body.classList.add('cursor-hidden');\n  },{passive:true});\n  document.addEventListener('mouseenter',function(){\n    document.body.classList.remove('cursor-hidden');\n  },{passive:true});\n}\n\n/* ── Page transition fade ── */\nvar style=document.createElement('style');\nstyle.textContent=[\n  '.page-transition-overlay{',\n  'position:fixed;inset:0;z-index:99996;',\n  'background:var(--dark2,#1a1918);',\n  'opacity:0;pointer-events:none;',\n  'transition:opacity .35s ease;}',\n  '.page-transition-overlay.active{opacity:1;pointer-events:all}'\n].join('');\ndocument.head.appendChild(style);\n\nvar overlay=document.createElement('div');\noverlay.className='page-transition-overlay';\ndocument.body.appendChild(overlay);\n\n/* Fade out on click, fade in on load */\ndocument.addEventListener('click',function(e){\n  var a=e.target.closest('a');\n  if(!a||!a.href||a.target==='_blank'||a.href.startsWith('tel:')||\n     a.href.startsWith('mailto:')||a.href.startsWith('https://wa.me')||\n     a.href.includes('#')||e.metaKey||e.ctrlKey)return;\n  var dest=a.href;\n  if(new URL(dest).host!==location.host)return;\n  e.preventDefault();\n  overlay.classList.add('active');\n  setTimeout(function(){location.href=dest;},320);\n});\n\n/* Fade in on arrival */\noverlay.classList.add('active');\nrequestAnimationFrame(function(){\n  requestAnimationFrame(function(){\n    overlay.classList.remove('active');\n  });\n});\n\n})();\n",
  "bodyHtml": "<div id=\"introScreen\" class=\"intro-screen\" role=\"status\" aria-label=\"Loading The Swiss Laundry\">\n  <p class=\"intro-monogram\" aria-hidden=\"true\">TSL</p>\n  <div class=\"intro-line\" aria-hidden=\"true\"></div>\n  <p class=\"intro-wordmark\" aria-hidden=\"true\">The Swiss Laundry</p>\n</div>\n<div class=\"seasonal-banner\" id=\"seasonalBanner\" role=\"banner\" aria-label=\"Free pickup offer\">\n  🧺 Want a home pickup? Complimentary pickup on invoices above ₹1,000.\n  <a href=\"/pickup\">Book Now →</a>\n  <button class=\"banner-close\" id=\"bannerClose\" aria-label=\"Close banner\">✕</button>\n</div>\n\n<a href=\"#mainContent\" class=\"skip-link\">Skip to main content</a>\n<div class=\"scroll-bar\" id=\"scrollBar\"></div>\n<div class=\"ab-cursor\" aria-hidden=\"true\">\n  <div class=\"ab-cursor-paw\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div>\n  <div class=\"ab-cursor-ring\"></div>\n</div>\n<p style=\"position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)\">About The Swiss Laundry Kolkata. Founded 2013. Chotusingh Indie breed dog mascot. Professional dry cleaning laundry history Kolkata since 2013.</p>\n\n<nav class=\"tsl-crumbs\" aria-label=\"Breadcrumb\"><ol><li><a href=\"/\">Home</a></li><li aria-current=\"page\">About</li></ol></nav>\n\n<main id=\"mainContent\">\n\n<!-- §01 HERO — PINK FAIRYTALE -->\n<section class=\"ab-hero\" aria-label=\"Chotusingh — The Swiss Laundry story\">\n  <div class=\"ab-hero-dots\" aria-hidden=\"true\"></div>\n  <div class=\"ab-hero-stars\" aria-hidden=\"true\">\n    <span class=\"ab-star\" style=\"left:12%;top:18%;animation-delay:0s;font-size:16px\">✦</span>\n    <span class=\"ab-star\" style=\"left:80%;top:12%;animation-delay:.7s;font-size:14px\">✦</span>\n    <span class=\"ab-star\" style=\"left:55%;top:7%;animation-delay:1.2s;font-size:12px\">✧</span>\n    <span class=\"ab-star\" style=\"left:7%;top:42%;animation-delay:1.9s;font-size:11px\">✦</span>\n    <span class=\"ab-star\" style=\"left:90%;top:38%;animation-delay:.4s;font-size:13px\">✧</span>\n    <span class=\"ab-star\" style=\"left:25%;top:80%;animation-delay:2.3s;font-size:10px\">✦</span>\n    <span class=\"ab-star\" style=\"left:76%;top:78%;animation-delay:1.5s;font-size:12px\">✧</span>\n    <span class=\"ab-star\" style=\"left:42%;top:92%;animation-delay:2.8s;font-size:11px\">✦</span>\n  </div>\n  <div class=\"ab-float-paw\" style=\"left:5%;top:22%;width:28px;height:28px;--r:18deg;animation-delay:0s\" aria-hidden=\"true\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div><div class=\"ab-float-paw\" style=\"left:88%;top:14%;width:22px;height:22px;--r:-15deg;animation-delay:1.3s\" aria-hidden=\"true\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div><div class=\"ab-float-paw\" style=\"left:6%;top:68%;width:20px;height:20px;--r:32deg;animation-delay:2.1s\" aria-hidden=\"true\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div><div class=\"ab-float-paw\" style=\"left:87%;top:70%;width:24px;height:24px;--r:-28deg;animation-delay:.7s\" aria-hidden=\"true\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div><div class=\"ab-float-paw\" style=\"left:48%;top:6%;width:18px;height:18px;--r:45deg;animation-delay:1.6s\" aria-hidden=\"true\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div><div class=\"ab-float-paw\" style=\"left:22%;top:88%;width:16px;height:16px;--r:8deg;animation-delay:2.8s\" aria-hidden=\"true\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div>\n  <div class=\"ab-hero-split\">\n    <div class=\"ab-hero-left\">\n      <h1 class=\"ab-hero-h1\" aria-label=\"Hello. Welcome to The Swiss Laundry story.\">\n  <span class=\"ab-h1-line\">\n    <span class=\"ab-h1-word\" style=\"--i:0\"><span>Hello.</span></span>\n    <span class=\"ab-h1-word\" style=\"--i:1\"><span>Welcome</span></span>\n    <span class=\"ab-h1-word\" style=\"--i:2\"><span>to</span></span>\n  </span><br>\n  <span class=\"ab-h1-line\">\n    <em><span class=\"ab-h1-word\" style=\"--i:3\"><span>The</span></span>\n    <span class=\"ab-h1-word\" style=\"--i:4\"><span>Swiss</span></span>\n    <span class=\"ab-h1-word\" style=\"--i:5\"><span>Laundry</span></span></em>\n  </span><br>\n  <span class=\"ab-h1-line\">\n    <span class=\"ab-h1-word\" style=\"--i:6\"><span>story.</span></span>\n  </span>\n</h1>\n      <p class=\"ab-hero-sub\">This is not a company page.<br>It is a story. And every good story<br>needs someone to tell it.</p>\n      <div class=\"ab-scroll-hint\" aria-hidden=\"true\">\n        <span class=\"ab-scroll-txt\">Scroll to begin</span>\n        <div class=\"ab-scroll-line\"></div>\n      </div>\n    </div>\n    <div class=\"ab-hero-right\">\n      <div class=\"ab-spotlight\" aria-hidden=\"true\"></div>\n      <div class=\"ab-speech\">\n        <p>Hello, I am Chotusingh.<br>Little, cute lucky mascot. 🐾</p>\n        <div class=\"ab-speech-tail\" aria-hidden=\"true\"></div>\n      </div>\n      <div class=\"ab-cho-circle\"><img src=\"/images/extracted/14cef7d5cfb78a1b.jpg\" alt=\"Chotusingh — lucky mascot of The Swiss Laundry Kolkata\" loading=\"eager\" decoding=\"async\" fetchpriority=\"high\"></div>\n    </div>\n  </div>\n</section>\n\n<!-- §02 INTRO — WHITE -->\n<section class=\"ab-intro\" aria-label=\"How The Swiss Laundry began\">\n  <div class=\"ab-intro-inner\">\n    <div class=\"ab-flip-card\" id=\"choFlip\" tabindex=\"0\" role=\"button\" aria-label=\"Chotusingh — tap to see different poses\">\n      <div class=\"ab-flip-face\"><svg viewBox=\"0 0 140 100\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"70\" cy=\"58\" rx=\"32\" ry=\"20\" fill=\"#C0415A\"></ellipse><circle cx=\"98\" cy=\"42\" r=\"20\" fill=\"#C0415A\"></circle><ellipse cx=\"112\" cy=\"48\" rx=\"10\" ry=\"7\" fill=\"#a8324a\"></ellipse><ellipse cx=\"118\" cy=\"45\" rx=\"4\" ry=\"3\" fill=\"#1a1918\"></ellipse><circle cx=\"103\" cy=\"38\" r=\"3.5\" fill=\"white\"></circle><circle cx=\"103\" cy=\"38\" r=\"2\" fill=\"#1a1918\"></circle><circle cx=\"104\" cy=\"37\" r=\".8\" fill=\"white\"></circle><ellipse cx=\"90\" cy=\"28\" rx=\"9\" ry=\"13\" fill=\"#a8324a\" transform=\"rotate(-20,90,28)\"></ellipse><path d=\"M50,72 Q45,85 40,95\" stroke=\"#C0415A\" stroke-width=\"9\" fill=\"none\" stroke-linecap=\"round\"></path><path d=\"M62,76 Q60,88 58,98\" stroke=\"#C0415A\" stroke-width=\"9\" fill=\"none\" stroke-linecap=\"round\"></path><path d=\"M78,76 Q80,88 82,98\" stroke=\"#C0415A\" stroke-width=\"9\" fill=\"none\" stroke-linecap=\"round\"></path><path d=\"M90,72 Q95,84 100,93\" stroke=\"#C0415A\" stroke-width=\"9\" fill=\"none\" stroke-linecap=\"round\"></path><path d=\"M38,55 Q20,40 25,22\" stroke=\"#C0415A\" stroke-width=\"8\" fill=\"none\" stroke-linecap=\"round\"></path><path d=\"M82,58 Q98,52 108,56\" stroke=\"#C9A84C\" stroke-width=\"6\" fill=\"none\"></path><circle cx=\"95\" cy=\"55\" r=\"2.5\" fill=\"#E2C97E\"></circle></svg><span class=\"ab-flip-hint\">1 / 3 &nbsp;·&nbsp; tap</span></div>\n      <div class=\"ab-flip-face hidden\"><svg viewBox=\"0 0 120 120\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"60\" cy=\"80\" rx=\"28\" ry=\"22\" fill=\"#C0415A\"></ellipse><circle cx=\"60\" cy=\"48\" r=\"22\" fill=\"#C0415A\"></circle><ellipse cx=\"60\" cy=\"58\" rx=\"12\" ry=\"9\" fill=\"#a8324a\"></ellipse><ellipse cx=\"60\" cy=\"53\" rx=\"5\" ry=\"3.5\" fill=\"#1a1918\"></ellipse><circle cx=\"52\" cy=\"44\" r=\"4\" fill=\"white\"></circle><circle cx=\"68\" cy=\"44\" r=\"4\" fill=\"white\"></circle><circle cx=\"53\" cy=\"44\" r=\"2.5\" fill=\"#1a1918\"></circle><circle cx=\"69\" cy=\"44\" r=\"2.5\" fill=\"#1a1918\"></circle><circle cx=\"54\" cy=\"43\" r=\"1\" fill=\"white\"></circle><circle cx=\"70\" cy=\"43\" r=\"1\" fill=\"white\"></circle><ellipse cx=\"42\" cy=\"32\" rx=\"10\" ry=\"14\" fill=\"#a8324a\" transform=\"rotate(-15,42,32)\"></ellipse><ellipse cx=\"78\" cy=\"32\" rx=\"10\" ry=\"14\" fill=\"#a8324a\" transform=\"rotate(15,78,32)\"></ellipse><ellipse cx=\"45\" cy=\"100\" rx=\"9\" ry=\"7\" fill=\"#C0415A\"></ellipse><ellipse cx=\"75\" cy=\"100\" rx=\"9\" ry=\"7\" fill=\"#C0415A\"></ellipse><path d=\"M88,75 Q105,55 95,40\" stroke=\"#C0415A\" stroke-width=\"8\" fill=\"none\" stroke-linecap=\"round\"></path><rect x=\"44\" y=\"65\" width=\"32\" height=\"7\" rx=\"3\" fill=\"#C9A84C\"></rect><circle cx=\"60\" cy=\"68\" r=\"2.5\" fill=\"#E2C97E\"></circle></svg><span class=\"ab-flip-hint\">2 / 3 &nbsp;·&nbsp; tap</span></div>\n      <div class=\"ab-flip-face hidden\"><svg viewBox=\"0 0 160 110\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"80\" cy=\"90\" rx=\"65\" ry=\"16\" fill=\"#E2C97E\" opacity=\".4\"></ellipse><ellipse cx=\"80\" cy=\"88\" rx=\"55\" ry=\"12\" fill=\"#C9A84C\" opacity=\".25\"></ellipse><ellipse cx=\"80\" cy=\"72\" rx=\"38\" ry=\"18\" fill=\"#C0415A\" transform=\"rotate(-8,80,72)\"></ellipse><circle cx=\"112\" cy=\"62\" r=\"18\" fill=\"#C0415A\"></circle><ellipse cx=\"112\" cy=\"68\" rx=\"10\" ry=\"7\" fill=\"#a8324a\"></ellipse><path d=\"M106,58 Q109,56 112,58\" stroke=\"#1a1918\" stroke-width=\"1.8\" fill=\"none\" stroke-linecap=\"round\"></path><path d=\"M112,58 Q115,56 118,58\" stroke=\"#1a1918\" stroke-width=\"1.8\" fill=\"none\" stroke-linecap=\"round\"></path><ellipse cx=\"100\" cy=\"50\" rx=\"8\" ry=\"12\" fill=\"#a8324a\" transform=\"rotate(-20,100,50)\"></ellipse><path d=\"M42,70 Q30,50 45,40 Q60,30 65,55\" stroke=\"#C0415A\" stroke-width=\"7\" fill=\"none\" stroke-linecap=\"round\"></path><path d=\"M98,68 Q112,63 122,67\" stroke=\"#C9A84C\" stroke-width=\"5\" fill=\"none\"></path><text x=\"125\" y=\"45\" font-size=\"11\" fill=\"#C0415A\" opacity=\".6\" font-style=\"italic\">z</text><text x=\"132\" y=\"36\" font-size=\"9\" fill=\"#C0415A\" opacity=\".4\" font-style=\"italic\">z</text><text x=\"138\" y=\"28\" font-size=\"7\" fill=\"#C0415A\" opacity=\".25\" font-style=\"italic\">z</text></svg><span class=\"ab-flip-hint\">3 / 3 &nbsp;·&nbsp; tap</span></div>\n    </div>\n    <div class=\"ab-slide\">\n      <div class=\"ab-section-cho\" aria-hidden=\"true\" style=\"color:var(--pink)\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div>\n      <span class=\"ab-eyebrow\">Once upon a time in Kolkata</span>\n      <h2 class=\"ab-intro-h2\">Every person has <em>that one garment.</em></h2>\n      <div class=\"ab-intro-body\">\n        <p class=\"ab-intro-pull\">It all started with a simple realisation — everyone has that one garment that is very important to them, maybe because of the price they paid or the occasion it was bought for. And to preserve it, a professional, international-standard dry cleaner was needed in the city.</p>\n        <p>In 2011, a Spanish businessman named <strong>Fernando Arroyo Villuendas</strong> came to Kolkata and saw exactly this gap. He saw silk sarees, embroidered lehengas, hand-stitched sherwanis — and not a single dry cleaner who could care for them the way they deserved.</p>\n        <p>He decided to build one. The best machines were imported from Italy. And on <strong>7th October 2013</strong>, The Swiss Laundry opened its doors at Kasba Industrial Estate, Kolkata.</p>\n        <p class=\"ab-intro-cho-line\">I arrived five years later. But this is where the story began.</p>\n      </div>\n    </div>\n  </div>\n</section>\n\n<!-- §03 TIMELINE — ROADWAY -->\n<section class=\"ab-timeline\" aria-labelledby=\"ab-tl-h2\">\n  <div class=\"ab-tl-head ab-slide\">\n    <div class=\"ab-section-cho\" aria-hidden=\"true\" style=\"color:var(--pink)\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div>\n    <span class=\"ab-eyebrow\">Twelve years on the road</span>\n    <h2 id=\"ab-tl-h2\" class=\"ab-tl-h2\">What happened,<br><em>year by year.</em></h2>\n  </div>\n  <div class=\"ab-road-wrap\" aria-hidden=\"true\">\n    <svg class=\"ab-road-svg\" id=\"abRoadSvg\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"none\">\n      <path id=\"abRoadPath\" d=\"M30,0 L30,1000\" stroke=\"rgba(192,65,90,.15)\" stroke-width=\"3\" stroke-dasharray=\"18 10\" fill=\"none\"></path>\n      <path id=\"abRoadFill\" d=\"M30,0 L30,1000\" stroke=\"rgba(192,65,90,.5)\" stroke-width=\"3\" stroke-dasharray=\"9999 9999\" stroke-dashoffset=\"9999\" fill=\"none\"></path>\n    </svg>\n  </div>\n  <div class=\"ab-road-cho\" id=\"abRoadCho\" aria-hidden=\"true\"><svg viewBox=\"0 0 140 100\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"70\" cy=\"58\" rx=\"32\" ry=\"20\" fill=\"#C0415A\"></ellipse><circle cx=\"98\" cy=\"42\" r=\"20\" fill=\"#C0415A\"></circle><ellipse cx=\"112\" cy=\"48\" rx=\"10\" ry=\"7\" fill=\"#a8324a\"></ellipse><ellipse cx=\"118\" cy=\"45\" rx=\"4\" ry=\"3\" fill=\"#1a1918\"></ellipse><circle cx=\"103\" cy=\"38\" r=\"3.5\" fill=\"white\"></circle><circle cx=\"103\" cy=\"38\" r=\"2\" fill=\"#1a1918\"></circle><circle cx=\"104\" cy=\"37\" r=\".8\" fill=\"white\"></circle><ellipse cx=\"90\" cy=\"28\" rx=\"9\" ry=\"13\" fill=\"#a8324a\" transform=\"rotate(-20,90,28)\"></ellipse><path d=\"M50,72 Q45,85 40,95\" stroke=\"#C0415A\" stroke-width=\"9\" fill=\"none\" stroke-linecap=\"round\"></path><path d=\"M62,76 Q60,88 58,98\" stroke=\"#C0415A\" stroke-width=\"9\" fill=\"none\" stroke-linecap=\"round\"></path><path d=\"M78,76 Q80,88 82,98\" stroke=\"#C0415A\" stroke-width=\"9\" fill=\"none\" stroke-linecap=\"round\"></path><path d=\"M90,72 Q95,84 100,93\" stroke=\"#C0415A\" stroke-width=\"9\" fill=\"none\" stroke-linecap=\"round\"></path><path d=\"M38,55 Q20,40 25,22\" stroke=\"#C0415A\" stroke-width=\"8\" fill=\"none\" stroke-linecap=\"round\"></path><path d=\"M82,58 Q98,52 108,56\" stroke=\"#C9A84C\" stroke-width=\"6\" fill=\"none\"></path><circle cx=\"95\" cy=\"55\" r=\"2.5\" fill=\"#E2C97E\"></circle></svg></div>\n  <div class=\"ab-tl-entries\"><div class=\"ab-tl-entry ab-tl-odd\">\n  <div class=\"ab-tl-content\">\n    <span class=\"ab-tl-ghost\">2011</span>\n    <span class=\"ab-tl-title\">A Spaniard arrives.</span>\n    <p class=\"ab-tl-desc\">Fernando Arroyo Villuendas comes to Kolkata. He stays, observes, and understands what the city is missing.</p>\n  </div>\n  <div class=\"ab-tl-mid\"><div class=\"ab-tl-dot\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div></div>\n  <div class=\"ab-tl-space\"></div>\n</div>\n<div class=\"ab-tl-entry ab-tl-even\">\n  <div class=\"ab-tl-content\">\n    <span class=\"ab-tl-ghost\">2012</span>\n    <span class=\"ab-tl-title\">The gap is spotted.</span>\n    <p class=\"ab-tl-desc\">Fernando and Antonio Fernandez decide to act. Research begins. The plan takes shape.</p>\n  </div>\n  <div class=\"ab-tl-mid\"><div class=\"ab-tl-dot\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div></div>\n  <div class=\"ab-tl-space\"></div>\n</div>\n<div class=\"ab-tl-entry ab-tl-odd\">\n  <div class=\"ab-tl-content\">\n    <span class=\"ab-tl-ghost\"><span class=\"count-up\" data-count=\"2013\" data-dec=\"0\" data-dur=\"1400\">2013</span></span>\n    <span class=\"ab-tl-title\">7 Oct. Doors open.</span>\n    <p class=\"ab-tl-desc\">Machines arrive from Italy. A premium fashion show is held before the workshop opens — the response is overwhelming. On 7th October, The Swiss Laundry opens its doors.</p>\n  </div>\n  <div class=\"ab-tl-mid\"><div class=\"ab-tl-dot\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div></div>\n  <div class=\"ab-tl-space\"></div>\n</div>\n<div class=\"ab-tl-entry ab-tl-even\">\n  <div class=\"ab-tl-content\">\n    <span class=\"ab-tl-ghost\">2014</span>\n    <span class=\"ab-tl-title\">The city responds.</span>\n    <p class=\"ab-tl-desc\">Two vehicles. Two pickup points. Fashion house partnerships begin.</p>\n  </div>\n  <div class=\"ab-tl-mid\"><div class=\"ab-tl-dot\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div></div>\n  <div class=\"ab-tl-space\"></div>\n</div>\n<div class=\"ab-tl-entry ab-tl-odd\">\n  <div class=\"ab-tl-content\">\n    <span class=\"ab-tl-ghost\">2015</span>\n    <span class=\"ab-tl-title\">Hydrocarbon arrives.</span>\n    <p class=\"ab-tl-desc\">First Hydrocarbon dry cleaning in Kolkata. Gentler on delicate fabrics. Better for the environment.</p>\n  </div>\n  <div class=\"ab-tl-mid\"><div class=\"ab-tl-dot\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div></div>\n  <div class=\"ab-tl-space\"></div>\n</div>\n<div class=\"ab-tl-entry ab-tl-even\">\n  <div class=\"ab-tl-content\">\n    <span class=\"ab-tl-ghost\">2017</span>\n    <span class=\"ab-tl-title\">Bigger workshop.</span>\n    <p class=\"ab-tl-desc\">More machines. More capacity. The brand is now known for designer care and stain removal.</p>\n  </div>\n  <div class=\"ab-tl-mid\"><div class=\"ab-tl-dot\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div></div>\n  <div class=\"ab-tl-space\"></div>\n</div>\n<div class=\"ab-tl-entry ab-tl-odd\">\n  <div class=\"ab-tl-content\">\n    <span class=\"ab-tl-ghost\">2018</span>\n    <span class=\"ab-tl-title\">A new chapter.</span>\n    <p class=\"ab-tl-desc\">New ownership. Doorstep focus begins. On Diwali, a puppy named Chotusingh arrives.</p>\n  </div>\n  <div class=\"ab-tl-mid\"><div class=\"ab-tl-dot\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div></div>\n  <div class=\"ab-tl-space\"></div>\n</div>\n<div class=\"ab-tl-entry ab-tl-even\">\n  <div class=\"ab-tl-content\">\n    <span class=\"ab-tl-ghost\">2019</span>\n    <span class=\"ab-tl-title\">Home only.</span>\n    <p class=\"ab-tl-desc\">All pickup points close. Four cars. All of Kolkata. Doorstep, always.</p>\n  </div>\n  <div class=\"ab-tl-mid\"><div class=\"ab-tl-dot\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div></div>\n  <div class=\"ab-tl-space\"></div>\n</div>\n<div class=\"ab-tl-entry ab-tl-odd\">\n  <div class=\"ab-tl-content\">\n    <span class=\"ab-tl-ghost\">2021</span>\n    <span class=\"ab-tl-title\">Lockdown proof.</span>\n    <p class=\"ab-tl-desc\">Every permitted day, they worked. Clients waited for them specifically.</p>\n  </div>\n  <div class=\"ab-tl-mid\"><div class=\"ab-tl-dot\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div></div>\n  <div class=\"ab-tl-space\"></div>\n</div>\n<div class=\"ab-tl-entry ab-tl-even\">\n  <div class=\"ab-tl-content\">\n    <span class=\"ab-tl-ghost\">2023</span>\n    <span class=\"ab-tl-title\">Ten years.</span>\n    <p class=\"ab-tl-desc\">Fashion shows for clients. 12,000+ clients. 1,50,000+ garments cared for.</p>\n  </div>\n  <div class=\"ab-tl-mid\"><div class=\"ab-tl-dot\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div></div>\n  <div class=\"ab-tl-space\"></div>\n</div>\n<div class=\"ab-tl-entry ab-tl-odd\">\n  <div class=\"ab-tl-content\">\n    <span class=\"ab-tl-ghost\">2025</span>\n    <span class=\"ab-tl-title\">New purpose.</span>\n    <p class=\"ab-tl-desc\">From exclusive dry cleaner to extraordinary garment care provider.</p>\n  </div>\n  <div class=\"ab-tl-mid\"><div class=\"ab-tl-dot\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div></div>\n  <div class=\"ab-tl-space\"></div>\n</div>\n</div>\n</section>\n\n<!-- §04 CLIENT STORIES — PINK ACCORDION -->\n<section class=\"ab-clients\" aria-labelledby=\"ab-clients-h2\">\n  <div class=\"ab-clients-inner\">\n    <div class=\"ab-section-cho\" aria-hidden=\"true\" style=\"color:rgba(255,255,255,.4)\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div>\n    <span class=\"ab-eyebrow-light\">What Chotusingh has seen</span>\n    <h2 id=\"ab-clients-h2\" class=\"ab-clients-h2\">The people who trust us<br><em>with what matters.</em></h2>\n    <div class=\"ab-clients-top-links\">\n  <a href=\"/dry-cleaning\" class=\"ab-top-link\">Dry Cleaning</a>\n  <a href=\"/laundry\" class=\"ab-top-link\">Laundry</a>\n  <a href=\"/carpet-home-care\" class=\"ab-top-link\">Carpet &amp; Home Care</a>\n  <a href=\"/our-process\" class=\"ab-top-link\">Our Process</a>\n  <a href=\"/faq\" class=\"ab-top-link\">FAQ</a>\n</div>\n<details class=\"ab-story\" open=\"\" id=\"story-bride\">\n  <summary class=\"ab-story-header\">\n    <span class=\"ab-story-hl\">The bride.</span>\n    <span class=\"ab-story-icon\" aria-hidden=\"true\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M12 5v14M5 12h14\"></path></svg>\n    </span>\n  </summary>\n  <div class=\"ab-story-body\">\n    <p class=\"ab-story-text\">Three days before the wedding. She did not say what it cost or where it came from. She said: please be careful. The lehenga came back the day before the wedding. She cried a little. We think it was relief.</p>\n    <div class=\"ab-story-link-wrap\">\n      <span class=\"ab-story-link-ctx\">Every wedding garment deserves the same care.</span>\n      <a href=\"/dry-cleaning\" class=\"ab-story-link\">Understand bridal lehenga dry cleaning →</a>\n    </div>\n  </div>\n</details>\n<details class=\"ab-story\" id=\"story-professor\">\n  <summary class=\"ab-story-header\">\n    <span class=\"ab-story-hl\">The professor.</span>\n    <span class=\"ab-story-icon\" aria-hidden=\"true\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M12 5v14M5 12h14\"></path></svg>\n    </span>\n  </summary>\n  <div class=\"ab-story-body\">\n    <p class=\"ab-story-text\">His father's kurta. Fifty years old. Silk. A stain from a lunch he could not remember. He brought it in without much explanation. He held it up to the light when it came back and did not speak for a long time.</p>\n    <div class=\"ab-story-link-wrap\">\n      <span class=\"ab-story-link-ctx\">Some garments carry more than fabric.</span>\n      <a href=\"/dry-cleaning\" class=\"ab-story-link\">How we handle delicate and heirloom garments →</a>\n    </div>\n  </div>\n</details>\n<details class=\"ab-story\" id=\"story-family\">\n  <summary class=\"ab-story-header\">\n    <span class=\"ab-story-hl\">The Friday family.</span>\n    <span class=\"ab-story-icon\" aria-hidden=\"true\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M12 5v14M5 12h14\"></path></svg>\n    </span>\n  </summary>\n  <div class=\"ab-story-body\">\n    <p class=\"ab-story-text\">Same garments, same time, same instructions. Every Friday, for years. They never needed to explain. We never needed to ask. That is what trust looks like when it has had time to develop.</p>\n    <div class=\"ab-story-link-wrap\">\n      <span class=\"ab-story-link-ctx\">Weekly care for the garments that matter most.</span>\n      <a href=\"/laundry\" class=\"ab-story-link\">Our laundry and dry cleaning service →</a>\n    </div>\n  </div>\n</details>\n<details class=\"ab-story\" id=\"story-shirt\">\n  <summary class=\"ab-story-header\">\n    <span class=\"ab-story-hl\">The school shirt.</span>\n    <span class=\"ab-story-icon\" aria-hidden=\"true\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M12 5v14M5 12h14\"></path></svg>\n    </span>\n  </summary>\n  <div class=\"ab-story-body\">\n    <p class=\"ab-story-text\">It had to be white again by Monday. Every Monday. For six years straight. It always was. Some things sound simple. They are not always simple to deliver, week after week, without exception.</p>\n    <div class=\"ab-story-link-wrap\">\n      <span class=\"ab-story-link-ctx\">Consistency is its own kind of care.</span>\n      <a href=\"/laundry\" class=\"ab-story-link\">Everyday laundry done properly →</a>\n    </div>\n  </div>\n</details>\n<details class=\"ab-story\" id=\"story-carpet\">\n  <summary class=\"ab-story-header\">\n    <span class=\"ab-story-hl\">The heirloom carpet.</span>\n    <span class=\"ab-story-icon\" aria-hidden=\"true\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M12 5v14M5 12h14\"></path></svg>\n    </span>\n  </summary>\n  <div class=\"ab-story-body\">\n    <p class=\"ab-story-text\">It had been in the family for forty years. Hand-knotted. Brought in rolled up, no explanation needed. They just needed someone who would understand what it was. We did.</p>\n    <div class=\"ab-story-link-wrap\">\n      <span class=\"ab-story-link-ctx\">Not all carpets are just carpets.</span>\n      <a href=\"/carpet-home-care\" class=\"ab-story-link\">How we clean handmade and Persian rugs →</a>\n    </div>\n  </div>\n</details>\n\n  </div>\n</section>\n\n<!-- §05 TEAM — DARK -->\n<section class=\"ab-team-section\" data-reveal=\"\" aria-labelledby=\"ab-team-h2\">\n  <div class=\"ab-slide\">\n    <div class=\"ab-section-cho\" aria-hidden=\"true\" style=\"color:var(--pink)\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div>\n    <span class=\"ab-eyebrow-light\" style=\"color:var(--pink)\">The people behind it</span>\n    <h2 id=\"ab-team-h2\" class=\"ab-team-h2\">The team.</h2>\n    <p class=\"ab-team-sub\">Some of the originals remain. The rest joined because something was already worth joining.<br>They come in every morning. They leave every evening. They know what they are doing.</p>\n    <div class=\"ab-team-grid\" id=\"teamGrid\">\n<div class=\"ab-team-card\" data-eid=\"TSL-001\">\n  <div class=\"ab-team-photo\">\n    <svg viewBox=\"0 0 120 140\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width:60%;opacity:.15\">\n  <circle cx=\"60\" cy=\"42\" r=\"28\" fill=\"white\"></circle>\n  <ellipse cx=\"60\" cy=\"115\" rx=\"46\" ry=\"34\" fill=\"white\"></ellipse>\n</svg>\n    <span class=\"ab-team-id-badge\">TSL-001</span>\n  </div>\n  <div class=\"ab-team-info\">\n    <span class=\"ab-team-name\">— — —</span>\n    <span class=\"ab-team-role\">Laundry Manager</span>\n    <span class=\"ab-team-crm-note\">Photo &amp; name from CRM</span>\n  </div>\n</div>\n<div class=\"ab-team-card\" data-eid=\"TSL-002\">\n  <div class=\"ab-team-photo\">\n    <svg viewBox=\"0 0 120 140\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width:60%;opacity:.15\">\n  <circle cx=\"60\" cy=\"42\" r=\"28\" fill=\"white\"></circle>\n  <ellipse cx=\"60\" cy=\"115\" rx=\"46\" ry=\"34\" fill=\"white\"></ellipse>\n</svg>\n    <span class=\"ab-team-id-badge\">TSL-002</span>\n  </div>\n  <div class=\"ab-team-info\">\n    <span class=\"ab-team-name\">— — —</span>\n    <span class=\"ab-team-role\">Dry Cleaning Specialist</span>\n    <span class=\"ab-team-crm-note\">Photo &amp; name from CRM</span>\n  </div>\n</div>\n<div class=\"ab-team-card\" data-eid=\"TSL-003\">\n  <div class=\"ab-team-photo\">\n    <svg viewBox=\"0 0 120 140\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width:60%;opacity:.15\">\n  <circle cx=\"60\" cy=\"42\" r=\"28\" fill=\"white\"></circle>\n  <ellipse cx=\"60\" cy=\"115\" rx=\"46\" ry=\"34\" fill=\"white\"></ellipse>\n</svg>\n    <span class=\"ab-team-id-badge\">TSL-003</span>\n  </div>\n  <div class=\"ab-team-info\">\n    <span class=\"ab-team-name\">— — —</span>\n    <span class=\"ab-team-role\">Quality Control</span>\n    <span class=\"ab-team-crm-note\">Photo &amp; name from CRM</span>\n  </div>\n</div>\n<div class=\"ab-team-card\" data-eid=\"TSL-004\">\n  <div class=\"ab-team-photo\">\n    <svg viewBox=\"0 0 120 140\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width:60%;opacity:.15\">\n  <circle cx=\"60\" cy=\"42\" r=\"28\" fill=\"white\"></circle>\n  <ellipse cx=\"60\" cy=\"115\" rx=\"46\" ry=\"34\" fill=\"white\"></ellipse>\n</svg>\n    <span class=\"ab-team-id-badge\">TSL-004</span>\n  </div>\n  <div class=\"ab-team-info\">\n    <span class=\"ab-team-name\">— — —</span>\n    <span class=\"ab-team-role\">Stain Removal Expert</span>\n    <span class=\"ab-team-crm-note\">Photo &amp; name from CRM</span>\n  </div>\n</div>\n<div class=\"ab-team-card\" data-eid=\"TSL-005\">\n  <div class=\"ab-team-photo\">\n    <svg viewBox=\"0 0 120 140\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width:60%;opacity:.15\">\n  <circle cx=\"60\" cy=\"42\" r=\"28\" fill=\"white\"></circle>\n  <ellipse cx=\"60\" cy=\"115\" rx=\"46\" ry=\"34\" fill=\"white\"></ellipse>\n</svg>\n    <span class=\"ab-team-id-badge\">TSL-005</span>\n  </div>\n  <div class=\"ab-team-info\">\n    <span class=\"ab-team-name\">— — —</span>\n    <span class=\"ab-team-role\">Pickup &amp; Delivery</span>\n    <span class=\"ab-team-crm-note\">Photo &amp; name from CRM</span>\n  </div>\n</div>\n<div class=\"ab-team-card\" data-eid=\"TSL-006\">\n  <div class=\"ab-team-photo\">\n    <svg viewBox=\"0 0 120 140\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width:60%;opacity:.15\">\n  <circle cx=\"60\" cy=\"42\" r=\"28\" fill=\"white\"></circle>\n  <ellipse cx=\"60\" cy=\"115\" rx=\"46\" ry=\"34\" fill=\"white\"></ellipse>\n</svg>\n    <span class=\"ab-team-id-badge\">TSL-006</span>\n  </div>\n  <div class=\"ab-team-info\">\n    <span class=\"ab-team-name\">— — —</span>\n    <span class=\"ab-team-role\">Customer Relations</span>\n    <span class=\"ab-team-crm-note\">Photo &amp; name from CRM</span>\n  </div>\n</div>\n</div>\n<blockquote class=\"ab-team-quote\">\"I have watched every garment get tagged. I have never seen one leave without being checked.\" <em>— Chotusingh</em></blockquote>\n  </div>\n</section>\n\n\n<!-- VIDEO — FACILITY FILM -->\n<section class=\"ab-video-section\" data-reveal=\"\" aria-label=\"The Swiss Laundry facility film\">\n  <div class=\"ab-video-inner\">\n    <div class=\"ab-video-left\">\n      <span class=\"ab-section-cho\" aria-hidden=\"true\" style=\"color:var(--gold)\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></span>\n      <span class=\"ab-eyebrow-light\" style=\"color:var(--gold)\">The facility</span>\n      <h2 class=\"ab-video-h2\">See where the<br><em>work happens.</em></h2>\n      <p class=\"ab-video-body\">P-4 Kasba Industrial Estate, Kolkata. This is where every garment arrives, gets tagged, assessed, cleaned, pressed, checked, and returned. Twelve steps. Every time.</p>\n      <button class=\"ab-video-btn\" id=\"abVideoBtn\" aria-label=\"Play facility film\">\n        <span class=\"ab-video-btn-icon\" aria-hidden=\"true\">\n          <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M8 5v14l11-7z\"></path></svg>\n        </span>\n        Watch the film\n      </button>\n    </div>\n    <div class=\"ab-video-right\" id=\"abVideoRight\">\n      <div class=\"ab-video-thumb\" id=\"abVideoThumb\">\n        <img src=\"https://img.youtube.com/vi/eAGGJ3CBt34/maxresdefault.jpg\" alt=\"The Swiss Laundry facility film — Kasba Industrial Estate Kolkata\" loading=\"lazy\" decoding=\"async\" style=\"width:100%;height:100%;object-fit:cover\">\n        <div class=\"ab-video-overlay\" aria-hidden=\"true\">\n          <div class=\"ab-video-play-ring\">\n            <svg viewBox=\"0 0 24 24\" fill=\"white\"><path d=\"M8 5v14l11-7z\"></path></svg>\n          </div>\n        </div>\n      </div>\n      <iframe id=\"abVideoFrame\" src=\"\" title=\"The Swiss Laundry Facility Film\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" style=\"display:none;width:100%;height:100%;position:absolute;inset:0\" loading=\"lazy\">\n      </iframe>\n    </div>\n  </div>\n</section>\n<!-- §06 SIGN-OFF — PINK -->\n<section class=\"ab-signoff\" aria-label=\"Chotusingh signs off\">\n  <div class=\"ab-section-cho\" aria-hidden=\"true\" style=\"color:rgba(255,255,255,.3)\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div>\n  <div class=\"ab-signoff-cho\" aria-hidden=\"true\"><svg viewBox=\"0 0 120 120\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"60\" cy=\"80\" rx=\"28\" ry=\"22\" fill=\"#C0415A\"></ellipse><circle cx=\"60\" cy=\"48\" r=\"22\" fill=\"#C0415A\"></circle><ellipse cx=\"60\" cy=\"58\" rx=\"12\" ry=\"9\" fill=\"#a8324a\"></ellipse><ellipse cx=\"60\" cy=\"53\" rx=\"5\" ry=\"3.5\" fill=\"#1a1918\"></ellipse><circle cx=\"52\" cy=\"44\" r=\"4\" fill=\"white\"></circle><circle cx=\"68\" cy=\"44\" r=\"4\" fill=\"white\"></circle><circle cx=\"53\" cy=\"44\" r=\"2.5\" fill=\"#1a1918\"></circle><circle cx=\"69\" cy=\"44\" r=\"2.5\" fill=\"#1a1918\"></circle><circle cx=\"54\" cy=\"43\" r=\"1\" fill=\"white\"></circle><circle cx=\"70\" cy=\"43\" r=\"1\" fill=\"white\"></circle><ellipse cx=\"42\" cy=\"32\" rx=\"10\" ry=\"14\" fill=\"#a8324a\" transform=\"rotate(-15,42,32)\"></ellipse><ellipse cx=\"78\" cy=\"32\" rx=\"10\" ry=\"14\" fill=\"#a8324a\" transform=\"rotate(15,78,32)\"></ellipse><ellipse cx=\"45\" cy=\"100\" rx=\"9\" ry=\"7\" fill=\"#C0415A\"></ellipse><ellipse cx=\"75\" cy=\"100\" rx=\"9\" ry=\"7\" fill=\"#C0415A\"></ellipse><path d=\"M88,75 Q105,55 95,40\" stroke=\"#C0415A\" stroke-width=\"8\" fill=\"none\" stroke-linecap=\"round\"></path><rect x=\"44\" y=\"65\" width=\"32\" height=\"7\" rx=\"3\" fill=\"#C9A84C\"></rect><circle cx=\"60\" cy=\"68\" r=\"2.5\" fill=\"#E2C97E\"></circle></svg></div>\n  <p class=\"ab-signoff-text\">The garments come.<br>The garments go.<br><em>The standard stays the same.</em></p>\n  <span class=\"ab-signoff-sig\">— Chotusingh · Indie Breed · The Swiss Laundry · Est. 7 October 2013</span>\n  <div class=\"ab-cta-row\">\n    <a href=\"/pickup\" class=\"btn-main\">Book a Pickup &nbsp;→</a>\n    <a href=\"/dry-cleaning\" class=\"btn-ghost\">Dry Cleaning</a>\n    <a href=\"/laundry\" class=\"btn-ghost\">Laundry</a>\n    <a href=\"/carpet-home-care\" class=\"btn-ghost\">Carpet &amp; Home Care</a>\n    <a href=\"/our-process\" class=\"btn-ghost\">Our Process</a>\n  </div>\n</section>\n\n<!-- §07 NUMBERS — WHITE, JUST ABOVE FOOTER -->\n<section class=\"ab-numbers\" aria-label=\"The Swiss Laundry in numbers\">\n  <div class=\"ab-slide\">\n    <div class=\"ab-section-cho\" aria-hidden=\"true\" style=\"color:var(--pink)\"><svg viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse cx=\"20\" cy=\"26\" rx=\"10\" ry=\"8\" fill=\"currentColor\"></ellipse><circle cx=\"11\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"20\" cy=\"14\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"29\" cy=\"17\" r=\"4.5\" fill=\"currentColor\"></circle><circle cx=\"6\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle><circle cx=\"34\" cy=\"24\" r=\"3.5\" fill=\"currentColor\" opacity=\".7\"></circle></svg></div>\n    <span class=\"ab-eyebrow\">By the numbers</span>\n    <h2 class=\"ab-nums-h2\">What twelve years<br><em>looks like.</em></h2>\n    <div class=\"ab-nums-grid\"><div class=\"ab-num-block\">\n  <span class=\"ab-num-val\"><span class=\"count-up\" data-count=\"2013\" data-dec=\"0\" data-dur=\"1400\">2013</span></span>\n  <span class=\"ab-num-lbl\">Founded</span>\n  <p class=\"ab-num-note\">The year a gap became a laundry</p>\n</div>\n<div class=\"ab-num-block\">\n  <span class=\"ab-num-val\" id=\"numClients\" data-count=\"12000\" data-sfx=\"+\">12,000+</span>\n  <span class=\"ab-num-lbl\">Clients</span>\n  <p class=\"ab-num-note\">Families, professionals, brides</p>\n  <span class=\"ab-num-live\">● live</span>\n</div>\n<div class=\"ab-num-block\">\n  <span class=\"ab-num-val\" id=\"numOrders\" data-count=\"48000\" data-sfx=\"+\">48,000+</span>\n  <span class=\"ab-num-lbl\">Orders</span>\n  <p class=\"ab-num-note\">Each tagged and tracked</p>\n  <span class=\"ab-num-live\">● live</span>\n</div>\n<div class=\"ab-num-block\">\n  <span class=\"ab-num-val\" id=\"numGarments\" data-count=\"150000\" data-sfx=\"+\">1,50,000+</span>\n  <span class=\"ab-num-lbl\">Garments</span>\n  <p class=\"ab-num-note\">Every one assessed individually</p>\n  <span class=\"ab-num-live\">● live</span>\n</div>\n<div class=\"ab-num-block\">\n  <span class=\"ab-num-val\"><span class=\"count-up\" data-count=\"12\" data-dec=\"0\" data-dur=\"1400\">12</span></span>\n  <span class=\"ab-num-lbl\">Steps</span>\n  <p class=\"ab-num-note\">In every single order, always</p>\n</div></div>\n  </div>\n</section>\n\n</main>\n<h2 style=\"position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)\">The founding story of The Swiss Laundry Kolkata 2013</h2>\n<h2 style=\"position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)\">Chotusingh Indie breed dog lucky mascot The Swiss Laundry</h2>\n<h2 style=\"position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)\">Professional dry cleaning laundry team Kolkata since 2013</h2>\n\n<!-- WhatsApp Floating Button -->\n<a href=\"https://wa.me/919836233354?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<!-- 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\n<!-- Back to Top -->\n\n\n\n\n\n\n<!-- Sticky booking pill — mobile only, hidden on /pickup -->\n<a href=\"/pickup\" class=\"book-pill\" id=\"bookPill\" aria-label=\"Book a pickup\">\n  <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg>\n  Book Pickup · 2 min\n</a>"
}
