{
  "title": "Track Your Laundry Order — The Swiss Laundry Kolkata",
  "description": "Track your order with The Swiss Laundry Kolkata. OTP login. Real-time status, garment list, 12-step tracking and bill details.",
  "keywords": "",
  "robots": "index,follow,max-snippet:-1,max-image-preview:large",
  "canonical": "https://www.theswisslaundry.com/track-order",
  "hreflangs": [
    {
      "hreflang": "en-IN",
      "href": "https://www.theswisslaundry.com/track-order"
    }
  ],
  "og": {
    "title": "Track Your Laundry Order — The Swiss Laundry Kolkata",
    "description": "Track your dry cleaning and laundry order. Secure OTP login. Real-time status updates from The Swiss Laundry, Kolkata.",
    "url": "https://www.theswisslaundry.com/track-order",
    "image": "https://www.theswisslaundry.com/images/og-track.svg",
    "image:width": "1200",
    "image:height": "630",
    "site_name": "The Swiss Laundry",
    "type": "website",
    "locale": "en_IN"
  },
  "geo": {
    "region": "IN-WB",
    "placename": "Kolkata"
  },
  "jsonLd": [
    [
      {
        "@context": "https://schema.org",
        "@type": "WebPage",
        "name": "Track Your Order — The Swiss Laundry Kolkata",
        "description": "Track your dry cleaning and laundry order with The Swiss Laundry Kolkata. Secure OTP login. View order status, garment list, 12-step process tracking and bill details.",
        "url": "https://www.theswisslaundry.com/track-order",
        "dateModified": "2025-05-12",
        "inLanguage": "en-IN",
        "speakable": {
          "@type": "SpeakableSpecification",
          "cssSelector": [
            ".to-h1",
            ".to-hero-desc"
          ]
        },
        "breadcrumb": {
          "@type": "BreadcrumbList",
          "itemListElement": [
            {
              "@type": "ListItem",
              "position": 1,
              "name": "Home",
              "item": "https://www.theswisslaundry.com/"
            },
            {
              "@type": "ListItem",
              "position": 2,
              "name": "Track Your Order",
              "item": "https://www.theswisslaundry.com/track-order"
            }
          ]
        }
      },
      {
        "@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/"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "FAQPage",
        "mainEntity": [
          {
            "@type": "Question",
            "name": "How do I track my Swiss Laundry order?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Enter your registered mobile number on this page. We will send a one-time password (OTP) to your phone. After verification, you can view your complete order history, current order status, garment list, and bill details — all fetched directly from our system."
            }
          },
          {
            "@type": "Question",
            "name": "How long does tracking take to update?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Our order tracking system updates in real time as your garment moves through each of our 12 processing steps. From collection to delivery, every step is logged and reflected immediately in your tracking dashboard."
            }
          },
          {
            "@type": "Question",
            "name": "What information can I see after logging in?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "After OTP verification, you can see your complete order history, current order status (pickup scheduled, in progress, ready for delivery, or delivered), the full garment list for each order with individual pricing, your bill with GST breakdown, and your pickup and delivery dates."
            }
          },
          {
            "@type": "Question",
            "name": "Is my personal data secure?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Yes. The order tracking page uses OTP verification — only the registered phone number owner can access the account. The dashboard page is not indexed by search engines and is not accessible without a verified session. All data is fetched securely from our CRM."
            }
          },
          {
            "@type": "Question",
            "name": "What are the 12 steps in The Swiss Laundry process?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Every order at The Swiss Laundry goes through 12 steps: Booking, Collection, Intake and Tagging, Sorting, Pre-treatment, Cleaning, Post-cleaning Inspection, Drying, Quality Check, Steam Pressing, Final Inspection, and Delivery. You can track which step your garment is at in real time."
            }
          },
          {
            "@type": "Question",
            "name": "What if I did not receive my OTP?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Wait 30 seconds and click Resend OTP. Ensure the mobile number you are entering is the same number registered with The Swiss Laundry. If you continue to face issues, call us on 9836233354 or WhatsApp us on +91 83358 88167 and we will assist you directly."
            }
          }
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "SiteNavigationElement",
        "name": [
          "Home",
          "Dry Cleaning",
          "Laundry",
          "Carpet & Home Care",
          "Our Process",
          "FAQ",
          "Track Order"
        ],
        "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",
          "https://www.theswisslaundry.com/track-order"
        ]
      }
    ]
  ],
  "styleCss": "body{opacity:1!important}\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  --cream:#F5F0E8;--dark:#0c0b0a;--dark2:#1a1918;\n  --pink:#C0415A;--pink2:#a8324a;\n  --gold:#C9A84C;--gold-l:#E2C97E;\n  --serif:'Cormorant Garamond',Georgia,serif;\n  --sans:'Jost','Helvetica Neue',Arial,sans-serif;\n}\nhtml{scroll-behavior:smooth}\nbody{font-family:var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased;background:var(--dark2)}\n::-webkit-scrollbar{width:0}\n:focus-visible{outline:2px solid var(--gold);outline-offset:3px}\nbutton,a,[role=button]{touch-action:manipulation;cursor:pointer}\n.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}\n.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:var(--gold);color:var(--dark);padding:.5rem 1rem;z-index:9999}\nbody::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.025;\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:overlay}\n.scroll-bar{position:fixed;top:0;left:0;height:2px;background:var(--gold);z-index:9999;width:0}\n\n/* ── HERO — split layout ── */\n.to-hero{\n  min-height:100svh;\n  display:flex;align-items:center;\n  padding:8rem 8vw 4rem;\n  position:relative;overflow:hidden;\n  background:radial-gradient(ellipse 80% 60% at 60% 50%,rgba(201,168,76,.05),transparent 70%),var(--dark2);\n}\n.to-hero::before{content:'';position:absolute;inset:16px;border:.5px solid rgba(201,168,76,.07);pointer-events:none}\n.to-hero-inner{max-width:1100px;width:100%;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center;position:relative;z-index:2}\n.to-hero-left{}\n.to-eyebrow{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:1.2rem}\n.to-h1{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(36px,5.5vw,70px);color:#fff;letter-spacing:-.02em;line-height:1.05;margin-bottom:1rem}\n.to-h1 em{font-style:italic}\n.to-hero-desc{font-family:var(--sans);font-size:14px;font-weight:300;color:rgba(255,255,255,.45);line-height:1.9;margin-bottom:2.5rem;max-width:460px}\n/* Trust bar */\n.to-trust-bar{display:flex;flex-direction:column;gap:.8rem}\n.to-trust-item{display:flex;align-items:center;gap:.8rem;font-family:var(--sans);font-size:12px;font-weight:300;color:rgba(255,255,255,.4)}\n.to-trust-icon{width:32px;height:32px;border-radius:50%;background:rgba(201,168,76,.08);border:.5px solid rgba(201,168,76,.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--gold)}\n.to-trust-icon svg{width:14px;height:14px}\n.to-trust-strong{color:rgba(255,255,255,.75);font-weight:400}\n\n/* ── FORM CARD ── */\n.to-card{background:rgba(255,255,255,.04);border:.5px solid rgba(255,255,255,.08);border-radius:4px;padding:2.5rem;position:relative;overflow:hidden}\n.to-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}\n.to-card-title{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(16px,2vw,22px);color:#fff;display:block;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:.5px solid rgba(255,255,255,.07)}\n/* Steps */\n.to-steps{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:2rem}\n.to-step{display:flex;align-items:center;gap:.4rem;font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.2)}\n.to-step.active{color:var(--gold)}\n.to-step.done{color:rgba(255,255,255,.45)}\n.to-step-num{width:22px;height:22px;border-radius:50%;border:1px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:9px;flex-shrink:0}\n.to-step.active .to-step-num{background:var(--gold);border-color:var(--gold);color:var(--dark)}\n.to-step.done .to-step-num{background:rgba(255,255,255,.1)}\n.to-step-div{width:20px;height:1px;background:rgba(255,255,255,.08)}\n/* Form fields */\n.to-field{margin-bottom:1.2rem}\n.to-label{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.35);display:block;margin-bottom:.5rem}\n.to-phone-wrap{position:relative}\n.to-phone-prefix{position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-family:var(--sans);font-size:14px;font-weight:300;color:rgba(255,255,255,.35);pointer-events:none}\n.to-input{width:100%;padding:.85rem 1rem;background:rgba(255,255,255,.05);border:.5px solid rgba(255,255,255,.1);border-radius:2px;color:#fff;font-family:var(--sans);font-size:14px;font-weight:300;outline:none;transition:border-color .2s;-webkit-appearance:none}\n.to-input.with-prefix{padding-left:3.2rem}\n.to-input:focus{border-color:rgba(201,168,76,.5)}\n.to-input::placeholder{color:rgba(255,255,255,.18)}\n/* Captcha */\n.to-captcha-wrap{display:flex;align-items:center;gap:1rem;padding:1rem;background:rgba(255,255,255,.03);border:.5px solid rgba(255,255,255,.07);border-radius:2px;margin-bottom:1.2rem}\n.to-captcha-check{width:22px;height:22px;border-radius:3px;border:2px solid rgba(255,255,255,.2);flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}\n.to-captcha-check.checked{background:#4CAF50;border-color:#4CAF50}\n.to-captcha-check svg{width:14px;height:14px;fill:#fff;display:none}\n.to-captcha-check.checked svg{display:block}\n.to-captcha-label{font-family:var(--sans);font-size:12px;font-weight:300;color:rgba(255,255,255,.45);flex:1}\n.to-captcha-logo{font-family:var(--sans);font-size:7px;font-weight:500;letter-spacing:.06em;color:rgba(255,255,255,.18);text-align:center}\n/* OTP boxes */\n.to-otp-row{display:flex;gap:.6rem;justify-content:center;margin:1.2rem 0}\n.to-otp-box{width:52px;height:60px;text-align:center;background:rgba(255,255,255,.05);border:.5px solid rgba(255,255,255,.1);border-radius:2px;color:#fff;font-family:var(--serif);font-style:italic;font-size:28px;font-weight:300;outline:none;transition:border-color .2s,background .2s;-webkit-appearance:none;caret-color:var(--gold)}\n.to-otp-box:focus{border-color:rgba(201,168,76,.5);background:rgba(201,168,76,.04)}\n.to-otp-box.filled{border-color:rgba(255,255,255,.2)}\n/* Buttons */\n.to-btn{width:100%;padding:1rem;background:var(--gold);color:var(--dark);font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;border:none;border-radius:2px;cursor:pointer;transition:background .25s,opacity .25s;display:flex;align-items:center;justify-content:center;gap:.6rem}\n.to-btn:hover{background:var(--gold-l)}\n.to-btn:disabled{opacity:.4;cursor:not-allowed}\n.to-btn-ghost{width:100%;padding:.85rem;margin-top:.8rem;background:transparent;border:.5px solid rgba(255,255,255,.1);color:rgba(255,255,255,.35);font-family:var(--sans);font-size:9px;letter-spacing:.15em;text-transform:uppercase;border-radius:2px;cursor:pointer;transition:border-color .2s,color .2s}\n.to-btn-ghost:hover{border-color:rgba(255,255,255,.25);color:rgba(255,255,255,.6)}\n.to-timer{font-family:var(--sans);font-size:11px;font-weight:300;color:rgba(255,255,255,.25);text-align:center;margin-top:.8rem}\n.to-timer span{color:var(--gold)}\n.to-msg{font-family:var(--sans);font-size:12px;font-weight:300;padding:.7rem 1rem;border-radius:2px;margin-bottom:1rem;display:none}\n.to-msg.error{background:rgba(192,65,90,.15);color:#ff9999;border:.5px solid rgba(192,65,90,.3)}\n.to-msg.success{background:rgba(37,211,102,.1);color:#90EE90;border:.5px solid rgba(37,211,102,.2)}\n.to-msg.show{display:block}\n.to-spinner{width:16px;height:16px;border:2px solid rgba(26,25,24,.3);border-top-color:var(--dark);border-radius:50%;animation:spin .7s linear infinite;display:none}\n@keyframes spin{to{transform:rotate(360deg)}}\n.to-btn.loading .to-spinner{display:block}\n.to-btn.loading .to-btn-text{display:none}\n\n/* ── §02 HOW IT WORKS ── */\n.to-how{background:var(--dark);padding:7rem 8vw}\n.to-how-inner{max-width:1100px;margin:0 auto}\n.to-section-eyebrow{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:.7rem}\n.to-section-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:3rem}\n.to-how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}\n.to-how-item{padding:2rem;background:rgba(255,255,255,.03);border:.5px solid rgba(255,255,255,.06);border-radius:4px;position:relative;overflow:hidden}\n.to-how-num{font-family:var(--serif);font-style:italic;font-weight:300;font-size:72px;color:rgba(201,168,76,.08);position:absolute;top:-.5rem;right:1rem;line-height:1;user-select:none}\n.to-how-icon{width:40px;height:40px;border-radius:50%;background:rgba(201,168,76,.08);border:.5px solid rgba(201,168,76,.15);display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:var(--gold)}\n.to-how-icon svg{width:18px;height:18px}\n.to-how-title{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(16px,2vw,22px);color:#fff;display:block;margin-bottom:.5rem}\n.to-how-desc{font-family:var(--sans);font-size:12px;font-weight:300;line-height:1.85;color:rgba(255,255,255,.4)}\n\n/* ── §03 12-STEP PROCESS ── */\n.to-process{background:var(--dark2);padding:7rem 8vw}\n.to-process-inner{max-width:1100px;margin:0 auto}\n.to-process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:2.5rem}\n.to-process-step{padding:1.4rem 1.2rem;background:rgba(255,255,255,.03);border:.5px solid rgba(255,255,255,.05);border-radius:2px;position:relative;overflow:hidden;transition:border-color .3s}\n.to-process-step:hover{border-color:rgba(201,168,76,.2)}\n.to-process-step-num{font-family:var(--serif);font-style:italic;font-weight:300;font-size:40px;color:rgba(201,168,76,.12);line-height:1;display:block;margin-bottom:.4rem}\n.to-process-step-name{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(14px,1.6vw,18px);color:#fff;display:block;margin-bottom:.3rem}\n.to-process-step-desc{font-family:var(--sans);font-size:11px;font-weight:300;line-height:1.7;color:rgba(255,255,255,.35)}\n\n/* ── §04 FAQ ── */\n.to-faq{background:var(--dark);padding:7rem 8vw}\n.to-faq-inner{max-width:860px;margin:0 auto}\n.to-faq-item{border-bottom:.5px solid rgba(255,255,255,.07)}\n.to-faq-item:first-of-type{border-top:.5px solid rgba(255,255,255,.07)}\n.to-faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.4rem 0;background:none;border:none;color:#fff;text-align:left;cursor:pointer;font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(15px,1.8vw,20px);line-height:1.3}\n.to-faq-icon{width:20px;height:20px;color:rgba(255,255,255,.3);flex-shrink:0;transition:transform .3s,color .2s}\n.to-faq-item.open .to-faq-icon{transform:rotate(45deg);color:var(--gold)}\n.to-faq-a{display:none;font-family:var(--sans);font-size:13px;font-weight:300;line-height:2;color:rgba(255,255,255,.5);padding-bottom:1.4rem}\n.to-faq-item.open .to-faq-a{display:block}\n\n/* ── §05 CTA ── */\n.to-cta{background:var(--dark2);padding:6rem 8vw;text-align:center;border-top:.5px solid rgba(255,255,255,.05)}\n.to-cta-h2{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(26px,4vw,52px);color:#fff;letter-spacing:-.02em;line-height:1.1;margin-bottom:1rem}\n.to-cta-sub{font-family:var(--sans);font-size:13px;font-weight:300;color:rgba(255,255,255,.35);margin-bottom:2.5rem;line-height:1.8}\n.to-cta-links{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}\n.to-cta-link{display:inline-block;padding:.85rem 1.8rem;border:.5px solid rgba(255,255,255,.12);color:rgba(255,255,255,.5);font-family:var(--sans);font-size:9px;font-weight:400;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;transition:border-color .2s,color .2s}\n.to-cta-link:hover{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.8)}\n.to-cta-link.primary{background:var(--gold);border-color:var(--gold);color:var(--dark)}\n.to-cta-link.primary:hover{background:var(--gold-l);border-color:var(--gold-l)}\n\n/* WA Float */\n.wa-float{position:fixed;bottom:2rem;right:2rem;width:56px;height:56px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:9990;box-shadow:0 4px 20px rgba(37,211,102,.4);transition:transform .3s,box-shadow .3s;text-decoration:none;cursor:pointer}\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  .to-hero-inner{grid-template-columns:1fr;gap:3rem}\n  .to-hero-left{text-align:center}\n  .to-hero-desc,.to-trust-bar{margin-left:auto;margin-right:auto}\n  .to-trust-bar{max-width:360px}\n  .to-how-grid{grid-template-columns:1fr}\n  .to-process-grid{grid-template-columns:1fr 1fr}\n  .to-otp-box{width:44px;height:54px;font-size:24px}\n}\n@media(max-width:480px){\n  .to-process-grid{grid-template-columns:1fr}\n  .to-card{padding:1.5rem}\n  .to-otp-box{width:38px;height:48px;font-size:22px}\n  .to-step-div{width:10px}\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@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/* ── Custom cursor ── */\n@media(hover:hover) and (pointer:fine){\n  *{cursor:none!important}\n  .cursor-dot{\n    position:fixed;top:0;left:0;z-index:99999;\n    pointer-events:none;\n    width:8px;height:8px;\n    background:var(--gold,#C9A84C);\n    border-radius:50%;\n    transform:translate(-50%,-50%);\n    transition:width .2s,height .2s,background .2s,opacity .3s;\n    mix-blend-mode:difference;\n  }\n  .cursor-ring{\n    position:fixed;top:0;left:0;z-index:99998;\n    pointer-events:none;\n    width:32px;height:32px;\n    border:1px solid rgba(201,168,76,.4);\n    border-radius:50%;\n    transform:translate(-50%,-50%);\n    transition:width .35s cubic-bezier(.16,1,.3,1),\n               height .35s cubic-bezier(.16,1,.3,1),\n               border-color .2s,opacity .3s;\n  }\n  body.cursor-hover .cursor-dot{width:6px;height:6px;background:#fff}\n  body.cursor-hover .cursor-ring{width:44px;height:44px;border-color:rgba(201,168,76,.6)}\n  body.cursor-link .cursor-dot{width:12px;height:12px;background:var(--pink,#C0415A)}\n  body.cursor-link .cursor-ring{width:48px;height:48px;border-color:rgba(192,65,90,.5)}\n  body.cursor-hidden .cursor-dot,\n  body.cursor-hidden .cursor-ring{opacity:0}\n}\n\n/* ── Intro / loading screen ── */\n.intro-screen{\n  position:fixed;inset:0;z-index:99997;\n  background:var(--dark2,#1a1918);\n  display:flex;align-items:center;justify-content:center;\n  flex-direction:column;gap:1.2rem;\n  transition:opacity .6s ease,transform .6s cubic-bezier(.16,1,.3,1);\n}\n.intro-screen.hidden{\n  opacity:0;pointer-events:none;\n  transform:translateY(-8px);\n}\n.intro-monogram{\n  font-family:'Cormorant Garamond',Georgia,serif;\n  font-style:italic;font-weight:300;\n  font-size:clamp(48px,8vw,96px);\n  color:var(--gold,#C9A84C);\n  letter-spacing:-.04em;\n  opacity:0;\n  animation:introFadeIn .8s cubic-bezier(.16,1,.3,1) .1s forwards;\n}\n.intro-wordmark{\n  font-family:'Jost','Helvetica Neue',Arial,sans-serif;\n  font-size:9px;font-weight:300;\n  letter-spacing:.35em;text-transform:uppercase;\n  color:rgba(255,255,255,.25);\n  opacity:0;\n  animation:introFadeIn .6s ease .5s forwards;\n}\n.intro-line{\n  width:0;height:.5px;background:var(--gold,#C9A84C);opacity:.3;\n  animation:introLine .8s cubic-bezier(.16,1,.3,1) .3s forwards;\n}\n@keyframes introFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}\n@keyframes introLine{from{width:0}to{width:80px}}\n\n\n.tsl-crumbs{max-width:1200px;margin:0 auto;padding:14px 8vw 0;position:relative;z-index:5}\n.tsl-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;font-family:var(--sans,'Jost',sans-serif);font-size:11px;letter-spacing:.06em}\n.tsl-crumbs li{display:flex;align-items:center;gap:6px;color:inherit;opacity:.55}\n.tsl-crumbs li:not(:last-child)::after{content:'›';opacity:.6}\n.tsl-crumbs a{color:inherit;text-decoration:none;transition:opacity .2s}\n.tsl-crumbs a:hover{opacity:1;text-decoration:underline}\n.tsl-crumbs li:last-child{opacity:.85}\n@media(max-width:600px){.tsl-crumbs{padding:12px 6vw 0}}\n\n\n\n/* breadcrumb contrast */\n.tsl-crumbs a,.tsl-crumbs li{color:rgba(255,255,255,.75)!important}\n.tsl-crumbs a:hover{color:var(--gold,#C9A84C)!important}\n.tsl-crumbs li[aria-current=\"page\"]{color:rgba(255,255,255,.95)!important}\n[data-theme=\"light\"] .tsl-crumbs a,\n[data-theme=\"light\"] .tsl-crumbs li,\n.s-cream .tsl-crumbs a,\n.s-cream .tsl-crumbs li{\n  color:rgba(26,25,24,.75)!important;\n}\n[data-theme=\"light\"] .tsl-crumbs a:hover,\n.s-cream .tsl-crumbs a:hover{color:var(--pink,#C0415A)!important}\n@media (prefers-color-scheme: light){\n  /* crumbs sit on cream body above dark heroes */\n  body > .tsl-crumbs a,\n  body > .tsl-crumbs li,\n  main > .tsl-crumbs a,\n  .scroll-bar + .tsl-crumbs a,\n  .scroll-bar + .tsl-crumbs li,\n  #introScreen + .tsl-crumbs a,\n  div > .tsl-crumbs a,\n  div > .tsl-crumbs li{\n    color:rgba(26,25,24,.75)!important;\n  }\n}\n\n/* ═══ Force dark-default shell ═══ */\n:root{\n  --off:#1a1918 !important;\n  --pink-pale:#1a1918 !important;\n}\nbody{\n  background:var(--bg,var(--off,#1a1918))!important;\n  color:var(--txt,#fff)!important;\n}\n/* When a page hardcodes cream body vars, keep body dark unless OS wants light */\n@media (prefers-color-scheme: light){\n  :root{\n    --off:#FAFAF8 !important;\n    --pink-pale:#fdf0f2 !important;\n  }\n  body{\n    background:var(--cream,var(--off,#F5F0E8))!important;\n    color:var(--dark2,var(--ink,#1a1918))!important;\n  }\n}\n\n\n\n\n\n\n\n\n\n/* ═══ Universal dark-default content readability v3 ═══ */\n.faq-a{color:rgba(255,255,255,.78)!important}\n.faq-q{color:rgba(255,255,255,.92)!important}\n.faq-item.open .faq-q,.faq-q:hover{color:var(--gold,#C9A84C)!important}\n\n.hub-faq,.hub-faq-inner{background:#1a1918!important;color:#fff!important}\n.hub-faq-h2{color:#fff!important}\n.hub-faq-h2 em{color:var(--gold,#C9A84C)!important}\n.hub-faq-ey{color:var(--gold,#C9A84C)!important}\n\n/* cream hub sections */\n.hub-grid-sec.cream .hub-sec-h2{color:var(--ink,#1a1918)!important}\n.hub-grid-sec.cream .hub-sec-h2 em{color:var(--gold,#C9A84C)!important}\n.hub-grid-sec.cream .hub-sec-sub{color:rgba(26,25,24,.65)!important}\n.hub-grid-sec.cream .hub-sec-ey{color:var(--gold,#C9A84C)!important}\n/* dark/off hub sections */\n.hub-grid-sec.off .hub-sec-h2,.hub-grid-sec.off .hub-sec-h2,\n.off .hub-sec-h2{color:#fff!important}\n.hub-grid-sec.off .hub-sec-h2 em{color:var(--gold,#C9A84C)!important}\n.hub-grid-sec.off .hub-sec-sub,.off .hub-sec-sub{color:rgba(255,255,255,.65)!important}\n.hub-grid-sec.off .hub-sec-ey{color:var(--gold,#C9A84C)!important}\n\n/* Cream FAQ bands */\n.aeo-faq .faq-q,.bsc-faq .faq-q,.dcm-faq .faq-q,.dpc-faq .faq-q,.g-faq .faq-q,\n.sp-faq .faq-q,.sscg-faq .faq-q,.wcg-faq .faq-q,.wcs-faq .faq-q,\n.guide-faq .faq-q,.csr-faq .faq-q,.ex-faq .faq-q{\n  color:rgba(26,25,24,.92)!important;\n}\n.aeo-faq .faq-a,.bsc-faq .faq-a,.dcm-faq .faq-a,.dpc-faq .faq-a,.g-faq .faq-a,\n.sp-faq .faq-a,.sscg-faq .faq-a,.wcg-faq .faq-a,.wcs-faq .faq-a,\n.guide-faq .faq-a,.csr-faq .faq-a,.ex-faq .faq-a{\n  color:rgba(26,25,24,.7)!important;\n}\n.aeo-faq .faq-item.open .faq-q,.aeo-faq .faq-q:hover,\n.bsc-faq .faq-item.open .faq-q,.bsc-faq .faq-q:hover,\n.g-faq .faq-item.open .faq-q,.g-faq .faq-q:hover,\n.dcm-faq .faq-item.open .faq-q,.dpc-faq .faq-item.open .faq-q,\n.sp-faq .faq-item.open .faq-q,.sscg-faq .faq-item.open .faq-q,\n.wcg-faq .faq-item.open .faq-q,.wcs-faq .faq-item.open .faq-q,\n.guide-faq .faq-item.open .faq-q,.csr-faq .faq-item.open .faq-q,\n.ex-faq .faq-item.open .faq-q{color:var(--gold,#C9A84C)!important}\n\n/* Dark FAQ shells */\n.dvw-faq .faq-q,.lk-faq .faq-q,.to-faq .faq-q,.hub-faq .faq-q{color:rgba(255,255,255,.92)!important}\n.dvw-faq .faq-a,.lk-faq .faq-a,.to-faq .faq-a,.hub-faq .faq-a{color:rgba(255,255,255,.78)!important}\n.dvw-faq .faq-item.open .faq-q,.lk-faq .faq-item.open .faq-q,.to-faq .faq-item.open .faq-q,\n.hub-faq .faq-item.open .faq-q,.hub-faq .faq-q:hover{color:var(--gold,#C9A84C)!important}\n\n/* AEO */\n.aeo-h2,.aeo-h3,.aeo-title{color:#fff!important}\n.aeo-p,.aeo-lead,.aeo-li,.aeo-body,.aeo-text{color:rgba(255,255,255,.78)!important}\n.aeo-section td,.aeo-section th,.aeo-body td,.aeo-body th,\n.care-cell,.yes-cell,.exp-cell,.warn-cell{\n  color:rgba(255,255,255,.8)!important;border-color:rgba(255,255,255,.12)!important;\n}\n\n/* Guide cards on dark */\n.guide-card,.gc-card{\n  background:rgba(255,255,255,.05)!important;\n  border-color:rgba(255,255,255,.12)!important;\n  color:rgba(255,255,255,.85)!important;\n}\n.gc-title,.gc-tag,.gc-meta,.gc-desc{color:rgba(255,255,255,.8)!important}\n.gc-title{color:#fff!important}\n.gc-tag{color:var(--gold,#C9A84C)!important}\n\n/* Guides index grid */\n.gd-grid{background:transparent!important;border-color:rgba(255,255,255,.1)!important}\n.gd-grid a,.gd-grid a:visited{\n  background:rgba(255,255,255,.05)!important;\n  color:rgba(255,255,255,.85)!important;\n}\n.gd-grid a:hover{background:rgba(255,255,255,.08)!important}\n.gd-grid .t{color:#fff!important}\n.gd-grid .d{color:rgba(255,255,255,.6)!important}\n.gd-label{color:var(--gold,#C9A84C)!important}\n\n/* Callouts + inline links on dark */\n.box-title,.garment-fabric,.sym-pro,.lw-method-note,.lw-fab-note,\n.garment-note-text{color:rgba(255,255,255,.85)!important}\n.box-title a,.sym-pro a,.garment-note-text a,.warn-box a,.fact-box a,\n.clause-body a,.aeo-p a,.aeo-li a{\n  color:var(--gold,#C9A84C)!important;\n}\n\n/* Site map */\n.sm-grid a,.sm-grid a:visited{color:rgba(255,255,255,.85)!important}\n.sm-grid a:hover{color:var(--gold,#C9A84C)!important}\n.sm-sec h2,.sm-hero h1{color:#fff!important}\n.sm-sec .note,.sm-sub,.sm-sec h2 .cnt{color:rgba(255,255,255,.55)!important}\n\n.to-section-h2,.lk-h2{color:#fff!important}\n\n\n/* cream hub guide cards = dark text on light cards */\n.hub-grid-sec.cream .guide-card,\n.cream .guide-card{\n  background:#fff!important;\n  border-color:rgba(26,25,24,.08)!important;\n  color:rgba(26,25,24,.85)!important;\n}\n.hub-grid-sec.cream .gc-title,\n.cream .gc-title{color:#1a1918!important}\n.hub-grid-sec.cream .gc-desc,\n.cream .gc-desc{color:rgba(26,25,24,.55)!important}\n.hub-grid-sec.cream .gc-tag,\n.cream .gc-tag{color:var(--gold,#C9A84C)!important}\n.hub-grid-sec.cream .gc-meta,\n.cream .gc-meta{color:rgba(26,25,24,.45)!important}\n/* off/dark hub guide cards stay light-on-dark */\n.hub-grid-sec.off .guide-card,\n.off .guide-card{\n  background:rgba(255,255,255,.05)!important;\n  color:rgba(255,255,255,.85)!important;\n}\n.hub-grid-sec.off .gc-title,.off .gc-title{color:#fff!important}\n.hub-grid-sec.off .gc-desc,.off .gc-desc{color:rgba(255,255,255,.7)!important}\n/* pink CTA links on dark — brighten */\n.pro-trigger-text a,.sym-pro a,.garment-note-text a{\n  color:#E8A0AD!important;\n  text-decoration:underline;\n}\n",
  "scriptJs": "function acceptCookies(){\n  try {\n    localStorage.setItem('tsl_cookies','accepted');\n    document.querySelectorAll('.cookie-bar').forEach(function(bar){ bar.classList.remove('show'); bar.style.display='none'; });\n  } catch(e){}\n}\nwindow.addEventListener('DOMContentLoaded', function(){\n  try {\n    if(!localStorage.getItem('tsl_cookies')){\n      setTimeout(function(){\n        var bar = document.getElementById('cookieBar')\n        if(bar) bar.classList.add('show')\n      }, 2000)\n    }\n  } catch(e){}\n})\n;\nwindow.addEventListener('load', function(){\n  setTimeout(function(){\n    var pl = document.getElementById('preloader')\n    if(pl) pl.classList.add('hidden')\n  }, 1200)\n})\n;\n(function(){\n'use strict'\n\nvar DASHBOARD_URL='/order-dashboard'\n\n/* Already logged in — go straight to orders */\nif(sessionStorage.getItem('tsl_token')){\n  window.location.replace(DASHBOARD_URL)\n}\n\n\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;(function(){\n  var nav=document.getElementById('nav')\n  if(!nav)return\n  nav.classList.add('on-dark')\n  window.addEventListener('scroll',function(){\n    nav.classList.toggle('on-dark',window.scrollY<100)\n    nav.classList.toggle('on-light',window.scrollY>=100)\n  },{passive:true})\n})()\n\nvar step1El=document.getElementById('step1')\nvar step2El=document.getElementById('step2')\nvar stepPhone=document.getElementById('stepPhone')\nvar stepOtp=document.getElementById('stepOtp')\n\nfunction goStep2(){\n  step1El.classList.remove('active');step1El.classList.add('done')\n  step2El.classList.add('active')\n  stepPhone.style.display='none';stepOtp.style.display='block'\n  startTimer()\n  var first=document.querySelector('.to-otp-box')\n  if(first) setTimeout(function(){first.focus()},100)\n}\n\nvar phoneForm=document.getElementById('phoneForm')\nvar phoneInput=document.getElementById('phoneInput')\nvar sendBtn=document.getElementById('sendOtpBtn')\nvar phoneMsg=document.getElementById('phoneMsg')\nvar captchaCheck=document.getElementById('captchaCheck')\nvar captchaChecked=false\n\ncaptchaCheck.addEventListener('click',function(){\n  captchaChecked=!captchaChecked\n  this.classList.toggle('checked',captchaChecked)\n  this.setAttribute('aria-checked',captchaChecked)\n})\ncaptchaCheck.addEventListener('keydown',function(e){\n  if(e.key==='Enter'||e.key===' '){e.preventDefault();this.click()}\n})\n\nphoneInput.addEventListener('input',function(){this.value=this.value.replace(/[^0-9]/g,'').slice(0,10)})\n\nphoneForm.addEventListener('submit',function(e){\n  e.preventDefault()\n  var phone=phoneInput.value.trim().replace(/\\D/g,'')\n      if(!/^[6-9][0-9]{9}$/.test(phone)){showMsg(phoneMsg,'Please enter a valid 10-digit mobile number.','error');return}\n  if(!captchaChecked){showMsg(phoneMsg,'Please confirm you are not a robot.','error');return}\n  sendBtn.classList.add('loading');sendBtn.disabled=true;\n    var _send=function(tok){return fetch('/api/otp/send',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({phone:'91'+phone,recaptchaToken:tok||''})}).then(function(r){if(!r.ok)throw new Error();return r.json()})\n  .then(function(){sessionStorage.setItem('tsl_phone','91'+phone);goStep2()})\n  .catch(function(){sessionStorage.setItem('tsl_phone','91'+phone);goStep2()})\n  .finally(function(){sendBtn.classList.remove('loading');sendBtn.disabled=false});};\n    if(window.grecaptcha && typeof grecaptcha.execute==='function'){ grecaptcha.ready(function(){ grecaptcha.execute('YOUR_RECAPTCHA_V3_SITE_KEY',{action:'track_otp_send'}).then(_send).catch(function(){_send('');}); }); } else { _send(''); }\n})\n\nvar otpBoxes=document.querySelectorAll('.to-otp-box')\notpBoxes.forEach(function(box,i){\n  box.addEventListener('input',function(){\n    this.value=this.value.replace(/[^0-9]/g,'').slice(0,1)\n    if(this.value&&i<otpBoxes.length-1) otpBoxes[i+1].focus()\n    this.classList.toggle('filled',!!this.value)\n    var otp=getOtp();if(otp.length===5) verifyOtp(otp)\n  })\n  box.addEventListener('keydown',function(e){\n    if(e.key==='Backspace'&&!this.value&&i>0) otpBoxes[i-1].focus()\n  })\n  box.addEventListener('paste',function(e){\n    e.preventDefault()\n    var p=(e.clipboardData||window.clipboardData).getData('text').replace(/[^0-9]/g,'').slice(0,6)\n    p.split('').forEach(function(ch,j){if(otpBoxes[j]){otpBoxes[j].value=ch;otpBoxes[j].classList.add('filled')}})\n    var otp=getOtp();if(otp.length===5) verifyOtp(otp)\n  })\n})\n\nfunction getOtp(){return Array.from(otpBoxes).map(function(b){return b.value}).join('')}\n\nvar otpForm=document.getElementById('otpForm')\nvar otpMsg=document.getElementById('otpMsg')\nvar verifyBtn=document.getElementById('verifyOtpBtn')\n\notpForm.addEventListener('submit',function(e){\n  e.preventDefault()\n  var otp=getOtp()\n  if(otp.length!==5){showMsg(otpMsg,'Please enter the complete 5-digit OTP.','error');return}\n  verifyOtp(otp)\n})\n\nvar verifyingOtp=false\nfunction verifyOtp(otp){\n  if(verifyingOtp) return\n  verifyingOtp=true\n  verifyBtn.classList.add('loading');verifyBtn.disabled=true\n  var phone=sessionStorage.getItem('tsl_phone')||''\n  fetch('/api/otp/verify',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({phone:phone,otp:otp})})\n  .then(function(r){return r.json().then(function(data){return {ok:r.ok,data:data}})})\n  .then(function(res){\n    if(res.ok&&res.data&&res.data.success&&res.data.token){\n      sessionStorage.setItem('tsl_token',res.data.token)\n      sessionStorage.setItem('tsl_verified','1')\n      try{window.dispatchEvent(new Event('tsl-auth-change'))}catch(e){}\n      showMsg(otpMsg,'Verified — redirecting to your orders…','success')\n      setTimeout(function(){window.location.href=DASHBOARD_URL},600)\n    } else {\n      showMsg(otpMsg,(res.data&&res.data.error)||'Incorrect OTP. Please try again.','error')\n    }\n  })\n  .catch(function(){\n    showMsg(otpMsg,'Could not verify right now. Please try again.','error')\n  })\n  .finally(function(){verifyingOtp=false;verifyBtn.classList.remove('loading');verifyBtn.disabled=false})\n}\n\nvar timerInterval=null\nfunction startTimer(){\n  var secs=30,timerEl=document.getElementById('otpTimer'),resendBtn=document.getElementById('resendBtn')\n  timerEl.style.display='block';resendBtn.style.display='none'\n  if(timerInterval) clearInterval(timerInterval)\n  timerInterval=setInterval(function(){\n    secs--;var ts=document.getElementById('timerSecs');if(ts) ts.textContent=secs\n    if(secs<=0){clearInterval(timerInterval);timerEl.style.display='none';resendBtn.style.display='block'}\n  },1000)\n}\n\ndocument.getElementById('resendBtn').addEventListener('click',function(){\n  var phone=sessionStorage.getItem('tsl_phone')||''\n  fetch('/api/otp/send',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({phone:phone})}).catch(function(){})\n  startTimer();showMsg(otpMsg,'OTP resent to your number.','success')\n})\n\ndocument.getElementById('changeNum').addEventListener('click',function(){\n  step2El.classList.remove('active');step1El.classList.remove('done');step1El.classList.add('active')\n  stepOtp.style.display='none';stepPhone.style.display='block'\n  otpBoxes.forEach(function(b){b.value='';b.classList.remove('filled')})\n  phoneInput.value='';captchaChecked=false;captchaCheck.classList.remove('checked')\n  if(timerInterval) clearInterval(timerInterval)\n})\n\ndocument.getElementById('phoneInput').addEventListener('input',function(){\n  var d=document.getElementById('displayPhone');if(d) d.textContent=this.value\n})\n\n/* FAQ accordion */\ndocument.querySelectorAll('.to-faq-item').forEach(function(item){\n  item.querySelector('.to-faq-q').addEventListener('click',function(){\n    var isOpen=item.classList.contains('open')\n    document.querySelectorAll('.to-faq-item').forEach(function(i){i.classList.remove('open')})\n    if(!isOpen) item.classList.add('open')\n  })\n})\n\nfunction showMsg(el,txt,type){\n  el.textContent=txt;el.className='to-msg '+type+' show'\n  setTimeout(function(){el.classList.remove('show')},4000)\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\nif(window.Lenis){var _lenis=new window.Lenis({duration:1.2,smoothWheel:true});(function _raf(t){_lenis.raf(t);requestAnimationFrame(_raf)})(0);}\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'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\n<nav class=\"tsl-crumbs\" aria-label=\"Breadcrumb\"><ol><li><a href=\"/\">Home</a></li><li aria-current=\"page\">Track Your Order</li></ol></nav>\n\n<main id=\"mainContent\">\n\n<!-- §01 HERO — SPLIT: LEFT copy, RIGHT form -->\n<section class=\"to-hero\" aria-label=\"Track your order with The Swiss Laundry\">\n  <div class=\"to-hero-inner\">\n\n    <!-- Left — content -->\n    <div class=\"to-hero-left\">\n      <span class=\"to-eyebrow\">The Swiss Laundry · Order Tracking</span>\n      <h1 class=\"to-h1\">Know exactly where<br><em>your garments are.</em></h1>\n      <p class=\"to-hero-desc\">Real-time order tracking for every dry cleaning, laundry and carpet cleaning order placed with The Swiss Laundry, Kolkata. Your garment's journey — all 12 steps — visible from your phone.</p>\n      <div class=\"to-trust-bar\" role=\"list\">\n        <div class=\"to-trust-item\" role=\"listitem\">\n          <div class=\"to-trust-icon\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"></path></svg>\n          </div>\n          <span><span class=\"to-trust-strong\">OTP secured.</span> Only you can access your order history.</span>\n        </div>\n        <div class=\"to-trust-item\" role=\"listitem\">\n          <div class=\"to-trust-icon\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"12 6 12 12 16 14\"></polyline></svg>\n          </div>\n          <span><span class=\"to-trust-strong\">Real-time updates.</span> Every step logged as it happens.</span>\n        </div>\n        <div class=\"to-trust-icon\" aria-hidden=\"true\" style=\"display:none\"></div>\n        <div class=\"to-trust-item\" role=\"listitem\">\n          <div class=\"to-trust-icon\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 11l3 3L22 4\"></path><path d=\"M21 12v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h11\"></path></svg>\n          </div>\n          <span><span class=\"to-trust-strong\">Full history.</span> Every order, every garment, every bill.</span>\n        </div>\n        <div class=\"to-trust-item\" role=\"listitem\">\n          <div class=\"to-trust-icon\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"></path><circle cx=\"12\" cy=\"10\" r=\"3\"></circle></svg>\n          </div>\n          <span><span class=\"to-trust-strong\">Kolkata-wide.</span> Doorstep pickup and delivery tracked throughout.</span>\n        </div>\n      </div>\n    </div>\n\n    <!-- Right — form -->\n    <div class=\"to-hero-right\">\n      <div class=\"to-card\">\n        <span class=\"to-card-title\">Sign in to view your orders</span>\n        <!-- Step indicators -->\n        <div class=\"to-steps\" aria-label=\"Verification steps\">\n          <div class=\"to-step active\" id=\"step1\"><div class=\"to-step-num\">1</div><span>Mobile</span></div>\n          <div class=\"to-step-div\" aria-hidden=\"true\"></div>\n          <div class=\"to-step\" id=\"step2\"><div class=\"to-step-num\">2</div><span>OTP</span></div>\n          <div class=\"to-step-div\" aria-hidden=\"true\"></div>\n          <div class=\"to-step\" id=\"step3\"><div class=\"to-step-num\">3</div><span>Orders</span></div>\n        </div>\n\n        <!-- Step 1 -->\n        <div id=\"stepPhone\">\n          <div id=\"phoneMsg\" class=\"to-msg\" role=\"alert\"></div>\n          <form id=\"phoneForm\" novalidate=\"\">\n            <div class=\"to-field\">\n              <label class=\"to-label\" for=\"phoneInput\">Registered Mobile Number</label>\n              <div class=\"to-phone-wrap\">\n                <span class=\"to-phone-prefix\" aria-hidden=\"true\">+91</span>\n                <input class=\"to-input with-prefix\" type=\"tel\" id=\"phoneInput\" name=\"phone\" placeholder=\"98765 43210\" maxlength=\"10\" inputmode=\"numeric\" autocomplete=\"tel-national\" required=\"\" aria-label=\"Enter your 10-digit mobile number\">\n              </div>\n            </div>\n            <div class=\"to-captcha-wrap\" role=\"group\" aria-label=\"Human verification\">\n              <div class=\"to-captcha-check\" id=\"captchaCheck\" role=\"checkbox\" aria-checked=\"false\" tabindex=\"0\">\n                <svg viewBox=\"0 0 24 24\"><path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"></path></svg>\n              </div>\n              <span class=\"to-captcha-label\">I am not a robot</span>\n              <div class=\"to-captcha-logo\">reCAPTCHA<br><span style=\"font-size:6px;opacity:.5\">Privacy · Terms</span></div>\n            </div>\n            <button type=\"submit\" class=\"to-btn\" id=\"sendOtpBtn\">\n              <span class=\"to-btn-text\">Send OTP →</span>\n              <div class=\"to-spinner\" aria-hidden=\"true\"></div>\n            </button>\n          </form>\n        </div>\n\n        <!-- Step 2 -->\n        <div id=\"stepOtp\" style=\"display:none\">\n          <p style=\"font-family:var(--sans);font-size:12px;font-weight:300;color:rgba(255,255,255,.35);margin-bottom:1rem\">\n            OTP sent to +91 <span id=\"displayPhone\" style=\"color:rgba(255,255,255,.65)\"></span>\n          </p>\n          <div id=\"otpMsg\" class=\"to-msg\" role=\"alert\"></div>\n          <form id=\"otpForm\" novalidate=\"\">\n            <div class=\"to-otp-row\" role=\"group\" aria-label=\"Enter 5-digit OTP\">\n              <input class=\"to-otp-box\" type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"OTP digit 1\" autocomplete=\"one-time-code\">\n              <input class=\"to-otp-box\" type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"OTP digit 2\">\n              <input class=\"to-otp-box\" type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"OTP digit 3\">\n              <input class=\"to-otp-box\" type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"OTP digit 4\">\n              <input class=\"to-otp-box\" type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"OTP digit 5\">\n              \n            </div>\n            <div id=\"otpTimer\" class=\"to-timer\" style=\"display:none\">\n              Resend OTP in <span id=\"timerSecs\" style=\"color:var(--gold)\">30</span>s\n            </div>\n            <button type=\"button\" id=\"resendBtn\" class=\"to-btn-ghost\" style=\"display:none\">Resend OTP</button>\n            <button type=\"submit\" class=\"to-btn\" id=\"verifyOtpBtn\" style=\"margin-top:.8rem\">\n              <span class=\"to-btn-text\">View My Orders →</span>\n              <div class=\"to-spinner\" aria-hidden=\"true\"></div>\n            </button>\n            <button type=\"button\" id=\"changeNum\" class=\"to-btn-ghost\">← Change number</button>\n          </form>\n        </div>\n      </div>\n    </div>\n\n  </div>\n</section>\n\n<!-- §02 HOW IT WORKS -->\n<section class=\"to-how\" aria-labelledby=\"how-h2\">\n  <div class=\"to-how-inner\">\n    <span class=\"to-section-eyebrow\">Simple. Secure. Instant.</span>\n    <h2 id=\"how-h2\" class=\"to-section-h2\">How order tracking works</h2>\n    <div class=\"to-how-grid\">\n      <div class=\"to-how-item\">\n        <span class=\"to-how-num\" aria-hidden=\"true\">1</span>\n        <div class=\"to-how-icon\" aria-hidden=\"true\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\"></rect><path d=\"M12 18h.01\"></path></svg>\n        </div>\n        <h3 class=\"to-how-title\">Enter your mobile number</h3>\n        <p class=\"to-how-desc\">Use the same mobile number you registered with The Swiss Laundry. This is the number our team calls or messages for pickups and deliveries.</p>\n      </div>\n      <div class=\"to-how-item\">\n        <span class=\"to-how-num\" aria-hidden=\"true\">2</span>\n        <div class=\"to-how-icon\" aria-hidden=\"true\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"></path></svg>\n        </div>\n        <h3 class=\"to-how-title\">Verify with OTP</h3>\n        <p class=\"to-how-desc\">A 5-digit one-time password is sent to your phone via SMS. Enter it to verify your identity. The OTP expires in 10 minutes. Your data is never shared.</p>\n      </div>\n      <div class=\"to-how-item\">\n        <span class=\"to-how-num\" aria-hidden=\"true\">3</span>\n        <div class=\"to-how-icon\" aria-hidden=\"true\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M9 11l3 3L22 4\"></path><path d=\"M21 12v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h11\"></path></svg>\n        </div>\n        <h3 class=\"to-how-title\">View your complete order history</h3>\n        <p class=\"to-how-desc\">See every order — current and past. Real-time step tracking, full garment list, pickup and delivery dates, bill with GST breakdown, and discount applied.</p>\n      </div>\n    </div>\n  </div>\n</section>\n\n<!-- §03 12-STEP PROCESS -->\n<section class=\"to-process\" aria-labelledby=\"process-h2\">\n  <div class=\"to-process-inner\">\n    <span class=\"to-section-eyebrow\">The Swiss Laundry 12-step process</span>\n    <h2 id=\"process-h2\" class=\"to-section-h2\">What happens to your<br><em>garment after pickup.</em></h2>\n    <div class=\"to-process-grid\"><div class=\"to-process-step\">\n  <span class=\"to-process-step-num\">01</span>\n  <h3 class=\"to-process-step-name\">Booking</h3>\n  <p class=\"to-process-step-desc\">Your pickup is confirmed in our system.</p>\n</div>\n<div class=\"to-process-step\">\n  <span class=\"to-process-step-num\">02</span>\n  <h3 class=\"to-process-step-name\">Collection</h3>\n  <p class=\"to-process-step-desc\">Our team arrives at your doorstep.</p>\n</div>\n<div class=\"to-process-step\">\n  <span class=\"to-process-step-num\">03</span>\n  <h3 class=\"to-process-step-name\">Intake &amp; Tagging</h3>\n  <p class=\"to-process-step-desc\">Every garment receives a unique identifier.</p>\n</div>\n<div class=\"to-process-step\">\n  <span class=\"to-process-step-num\">04</span>\n  <h3 class=\"to-process-step-name\">Sorting</h3>\n  <p class=\"to-process-step-desc\">Garments sorted by fabric, colour and care requirement.</p>\n</div>\n<div class=\"to-process-step\">\n  <span class=\"to-process-step-num\">05</span>\n  <h3 class=\"to-process-step-name\">Pre-treatment</h3>\n  <p class=\"to-process-step-desc\">Stains identified and treated before cleaning begins.</p>\n</div>\n<div class=\"to-process-step\">\n  <span class=\"to-process-step-num\">06</span>\n  <h3 class=\"to-process-step-name\">Cleaning</h3>\n  <p class=\"to-process-step-desc\">Dry cleaning, machine wash or hand wash as required.</p>\n</div>\n<div class=\"to-process-step\">\n  <span class=\"to-process-step-num\">07</span>\n  <h3 class=\"to-process-step-name\">Post-cleaning Check</h3>\n  <p class=\"to-process-step-desc\">Garments inspected after cleaning.</p>\n</div>\n<div class=\"to-process-step\">\n  <span class=\"to-process-step-num\">08</span>\n  <h3 class=\"to-process-step-name\">Drying</h3>\n  <p class=\"to-process-step-desc\">Controlled drying at the correct temperature.</p>\n</div>\n<div class=\"to-process-step\">\n  <span class=\"to-process-step-num\">09</span>\n  <h3 class=\"to-process-step-name\">Quality Check</h3>\n  <p class=\"to-process-step-desc\">Our laundry manager inspects every piece.</p>\n</div>\n<div class=\"to-process-step\">\n  <span class=\"to-process-step-num\">10</span>\n  <h3 class=\"to-process-step-name\">Steam Pressing</h3>\n  <p class=\"to-process-step-desc\">Pressed on professional equipment to specification.</p>\n</div>\n<div class=\"to-process-step\">\n  <span class=\"to-process-step-num\">11</span>\n  <h3 class=\"to-process-step-name\">Final Inspection</h3>\n  <p class=\"to-process-step-desc\">Last check before packaging.</p>\n</div>\n<div class=\"to-process-step\">\n  <span class=\"to-process-step-num\">12</span>\n  <h3 class=\"to-process-step-name\">Delivery</h3>\n  <p class=\"to-process-step-desc\">Returned to your doorstep, packaged and ready.</p>\n</div>\n</div>\n  </div>\n</section>\n\n<!-- §04 FAQ -->\n<section class=\"to-faq\" aria-labelledby=\"faq-h2\">\n  <div class=\"to-faq-inner\">\n    <span class=\"to-section-eyebrow\">Frequently asked questions</span>\n    <h2 id=\"faq-h2\" class=\"to-section-h2\">Order tracking — questions answered</h2>\n    <div class=\"to-faq-item open\" id=\"faq-1\">\n  <button class=\"to-faq-q\" aria-expanded=\"true\">How do I track my Swiss Laundry order?\n    <span class=\"to-faq-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  </button>\n  <p class=\"to-faq-a\">Enter your registered mobile number on this page. We will send a one-time password (OTP) to your phone. After verification, you can view your complete order history, current order status, garment list, and bill details — all fetched directly from our system.</p>\n</div>\n<div class=\"to-faq-item\" id=\"faq-2\">\n  <button class=\"to-faq-q\" aria-expanded=\"false\">How long does tracking take to update?\n    <span class=\"to-faq-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  </button>\n  <p class=\"to-faq-a\">Our order tracking system updates in real time as your garment moves through each of our 12 processing steps. From collection to delivery, every step is logged and reflected immediately in your tracking dashboard.</p>\n</div>\n<div class=\"to-faq-item\" id=\"faq-3\">\n  <button class=\"to-faq-q\" aria-expanded=\"false\">What information can I see after logging in?\n    <span class=\"to-faq-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  </button>\n  <p class=\"to-faq-a\">After OTP verification, you can see your complete order history, current order status (pickup scheduled, in progress, ready for delivery, or delivered), the full garment list for each order with individual pricing, your bill with GST breakdown, and your pickup and delivery dates.</p>\n</div>\n<div class=\"to-faq-item\" id=\"faq-4\">\n  <button class=\"to-faq-q\" aria-expanded=\"false\">Is my personal data secure?\n    <span class=\"to-faq-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  </button>\n  <p class=\"to-faq-a\">Yes. The order tracking page uses OTP verification — only the registered phone number owner can access the account. The dashboard page is not indexed by search engines and is not accessible without a verified session. All data is fetched securely from our CRM.</p>\n</div>\n<div class=\"to-faq-item\" id=\"faq-5\">\n  <button class=\"to-faq-q\" aria-expanded=\"false\">What are the 12 steps in The Swiss Laundry process?\n    <span class=\"to-faq-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  </button>\n  <p class=\"to-faq-a\">Every order at The Swiss Laundry goes through 12 steps: Booking, Collection, Intake and Tagging, Sorting, Pre-treatment, Cleaning, Post-cleaning Inspection, Drying, Quality Check, Steam Pressing, Final Inspection, and Delivery. You can track which step your garment is at in real time.</p>\n</div>\n<div class=\"to-faq-item\" id=\"faq-6\">\n  <button class=\"to-faq-q\" aria-expanded=\"false\">What if I did not receive my OTP?\n    <span class=\"to-faq-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  </button>\n  <p class=\"to-faq-a\">Wait 30 seconds and click Resend OTP. Ensure the mobile number you are entering is the same number registered with The Swiss Laundry. If you continue to face issues, call us on 9836233354 or WhatsApp us on +91 83358 88167 and we will assist you directly.</p>\n</div>\n\n<div class=\"to-faq-item\" id=\"faq-62\">\n  <button class=\"to-faq-q\" aria-expanded=\"false\">Can I track my carpet cleaning or upholstery order?\n    <span class=\"to-faq-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  </button>\n  <p class=\"to-faq-a\">Yes. All orders placed with The Swiss Laundry — including carpet cleaning, sofa and upholstery cleaning, curtain cleaning and soft toy cleaning — are tracked through the same system. Log in with your registered mobile number to see the status of every order type.</p>\n</div>\n  </div>\n</section>\n\n<!-- §05 CTA -->\n<section class=\"to-cta\" aria-label=\"Book a pickup or explore services\">\n  <h2 class=\"to-cta-h2\">Not a client yet?<br><em>Book your first pickup.</em></h2>\n  <p class=\"to-cta-sub\">Doorstep collection across Kolkata. Mon–Sat 10AM–5PM.<br>Call 9836233354 or WhatsApp +91 83358 88167.</p>\n  <div class=\"to-cta-links\">\n    <a href=\"/pickup\" class=\"to-cta-link primary\">Book a Pickup →</a>\n    <a href=\"/dry-cleaning\" class=\"to-cta-link\">Dry Cleaning</a>\n    <a href=\"/laundry\" class=\"to-cta-link\">Laundry</a>\n    <a href=\"/carpet-home-care\" class=\"to-cta-link\">Carpet Care</a>\n    <a href=\"/our-process\" class=\"to-cta-link\">Our Process</a>\n    <a href=\"/faq\" class=\"to-cta-link\">FAQ</a>\n  </div>\n</section>\n\n</main>\n<h2 style=\"position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)\">Track laundry and dry cleaning order Kolkata — The Swiss Laundry</h2>\n<h2 style=\"position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)\">How to track your order at The Swiss Laundry Kolkata</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<!-- 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>"
}
