{
  "title": "Book a Laundry Pickup in Kolkata | The Swiss Laundry",
  "description": "Book a doorstep laundry and dry cleaning pickup in Kolkata. Standard, Express, Same Day service. Free pickup above ₹1,000. Book online, WhatsApp or call.",
  "keywords": "",
  "robots": "index,follow,max-snippet:-1,max-image-preview:large",
  "canonical": "https://www.theswisslaundry.com/pickup",
  "hreflangs": [
    {
      "hreflang": "en-IN",
      "href": "https://www.theswisslaundry.com/pickup"
    }
  ],
  "og": {
    "title": "Book a Laundry Pickup in Kolkata — The Swiss Laundry",
    "description": "Doorstep dry cleaning and laundry pickup across all of Kolkata. Standard, Express, Same Day service. Book in under 1 minute.",
    "url": "https://www.theswisslaundry.com/pickup",
    "image": "https://www.theswisslaundry.com/images/og-pickup.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": "LocalBusiness",
        "name": "The Swiss Laundry",
        "@id": "https://www.theswisslaundry.com/#localbusiness",
        "url": "https://www.theswisslaundry.com",
        "telephone": [
          "+919836233354",
          "+919836233354"
        ],
        "email": "info@theswisslaundry.com",
        "image": "https://www.theswisslaundry.com/images/og-pickup.jpg",
        "logo": "https://www.theswisslaundry.com/images/logo.png",
        "description": "Professional dry cleaning, laundry and carpet cleaning with doorstep pickup and delivery across all of Kolkata. Standard, Express, Same Day and One Hour service.",
        "foundingDate": "2013-10-07",
        "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"
        },
        "hasMap": "https://www.google.com/maps/place/The+Swiss+Laundry",
        "openingHoursSpecification": [
          {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": [
              "Monday",
              "Tuesday",
              "Wednesday",
              "Thursday",
              "Friday",
              "Saturday"
            ],
            "opens": "10:00",
            "closes": "17:00"
          }
        ],
        "paymentAccepted": "Cash, UPI, Credit Card, Debit Card, Net Banking",
        "currenciesAccepted": "INR",
        "inLanguage": "en-IN",
        "areaServed": [
          {
            "@type": "City",
            "name": "Kolkata",
            "addressRegion": "West Bengal",
            "addressCountry": "IN"
          }
        ],
        "serviceArea": {
          "@type": "GeoCircle",
          "geoMidpoint": {
            "@type": "GeoCoordinates",
            "latitude": "22.5726",
            "longitude": "88.3639"
          },
          "geoRadius": "25000"
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": "4.5",
          "reviewCount": "1247",
          "bestRating": "5"
        },
        "speakable": {
          "@type": "SpeakableSpecification",
          "cssSelector": [
            "h1",
            "h2",
            ".faq-a",
            ".speed-desc"
          ]
        },
        "dateModified": "2026-05-15",
        "sameAs": [
          "https://www.facebook.com/TheSwissLaundry",
          "https://www.instagram.com/theswisslaundry_drycleaners/",
          "https://apps.apple.com/app/id1630547588"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Service",
        "name": "Doorstep Laundry and Dry Cleaning Pickup Kolkata",
        "provider": {
          "@id": "https://www.theswisslaundry.com/#localbusiness"
        },
        "serviceType": [
          "Dry Cleaning",
          "Laundry",
          "Carpet Cleaning",
          "Upholstery Cleaning",
          "Doorstep Pickup"
        ],
        "areaServed": {
          "@type": "City",
          "name": "Kolkata"
        },
        "availableChannel": [
          {
            "@type": "ServiceChannel",
            "name": "Online Form",
            "serviceUrl": "https://www.theswisslaundry.com/pickup"
          },
          {
            "@type": "ServiceChannel",
            "name": "WhatsApp",
            "serviceUrl": "https://wa.me/919836233354"
          },
          {
            "@type": "ServiceChannel",
            "name": "iOS App",
            "serviceUrl": "https://apps.apple.com/app/id1630547588"
          },
          {
            "@type": "ServiceChannel",
            "name": "Android App",
            "serviceUrl": "https://play.google.com/store/apps/details?id=com.theswisslaundry.app"
          },
          {
            "@type": "ServiceChannel",
            "name": "Phone",
            "servicePhone": "+919836233354"
          }
        ],
        "offers": {
          "@type": "Offer",
          "description": "Free pickup and delivery for orders above ₹1000 + GST or 5 garments",
          "priceCurrency": "INR",
          "areaServed": "Kolkata"
        },
        "hasOfferCatalog": {
          "@type": "OfferCatalog",
          "name": "Laundry and Dry Cleaning Services",
          "itemListElement": [
            {
              "@type": "Offer",
              "itemOffered": {
                "@type": "Service",
                "name": "Standard Dry Cleaning",
                "description": "Minimum 48 hours turnaround. Full dry cleaning for all fabrics."
              }
            },
            {
              "@type": "Offer",
              "itemOffered": {
                "@type": "Service",
                "name": "Express Dry Cleaning",
                "description": "24 hour turnaround. Priority processing."
              }
            },
            {
              "@type": "Offer",
              "itemOffered": {
                "@type": "Service",
                "name": "Same Day Service",
                "description": "Collected and returned same day. Book before 10AM."
              }
            },
            {
              "@type": "Offer",
              "itemOffered": {
                "@type": "Service",
                "name": "Laundry Service",
                "description": "Cotton, linen and everyday wear cleaning."
              }
            }
          ]
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "FAQPage",
        "mainEntity": [
          {
            "@type": "Question",
            "name": "How do I book a laundry pickup in Kolkata?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Book online via the form on this page, WhatsApp +91 98362 33354, call 9836233354 or 9836233354, download the iOS or Android app, or email info@theswisslaundry.com. We confirm within 30 minutes Mon–Sat 10AM–5PM."
            }
          },
          {
            "@type": "Question",
            "name": "Does The Swiss Laundry collect from all areas of Kolkata?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Yes — we collect from every area of Kolkata with no restrictions. Salt Lake, New Town, Rajarhat, Ballygunge, Gariahat, Behala, Dum Dum, Jadavpur, Kasba, Park Street, Alipore and all other areas. We cover all 93 pincodes in Kolkata."
            }
          },
          {
            "@type": "Question",
            "name": "What is the minimum order for free pickup?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Free pickup and delivery applies for orders above ₹1,000 plus GST or a minimum of 5 garments. For smaller orders a nominal charge applies, confirmed at booking."
            }
          },
          {
            "@type": "Question",
            "name": "What is the difference between Standard, Express and Same Day service?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Standard service takes a minimum 48 hours — our base rate, and the most popular choice. Express service returns garments within 24 hours for a premium. Same Day service collects and returns on the same day, available if booked before 10AM. Timings are estimates and may vary."
            }
          },
          {
            "@type": "Question",
            "name": "What time does the pickup team arrive?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "We offer three pickup windows — 10:30AM to 12:01PM, 12:02PM to 2:00PM, and 2:01PM to 4:00PM. These are preferred windows only. We do not guarantee exact times. Our team calls to confirm before arrival."
            }
          },
          {
            "@type": "Question",
            "name": "Can I track my garments after pickup?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Yes. Every order is tracked through our 12-step process. After pickup, track your order at theswisslaundry.com/track-order using your mobile number and OTP verification. You can also WhatsApp us at any time."
            }
          },
          {
            "@type": "Question",
            "name": "What garments does The Swiss Laundry dry clean?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "We dry clean silk sarees, embroidered lehengas, sherwanis, suits, blazers, woollen garments, leather and suede, curtains, and any delicate fabric. We also provide laundry, carpet cleaning, sofa and upholstery cleaning."
            }
          },
          {
            "@type": "Question",
            "name": "Is The Swiss Laundry available on Sundays?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "We are closed Sundays and public holidays. Pickup and delivery operates Monday to Saturday, 10AM to 5PM."
            }
          }
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Home",
            "item": "https://www.theswisslaundry.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Book a Pickup",
            "item": "https://www.theswisslaundry.com/pickup"
          }
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "SiteNavigationElement",
        "name": [
          "Home",
          "Dry Cleaning",
          "Laundry",
          "Carpet Care",
          "Our Process",
          "FAQ",
          "Track Order",
          "Book Pickup"
        ],
        "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",
          "https://www.theswisslaundry.com/pickup"
        ]
      }
    ]
  ],
  "styleCss": "[data-reveal]{opacity:1!important;transform:none!important}\n/* NAV */\nnav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:0 3rem;height:70px;transition:background 0.5s,border-color 0.5s,box-shadow 0.5s;border-bottom:0.5px solid transparent}\nnav.on-dark{background:rgba(12,11,10,0.2);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom-color:rgba(255,255,255,0.07)}\nnav.on-light{background:rgba(245,240,232,0.97);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom-color:rgba(0,0,0,0.08);box-shadow:0 2px 28px rgba(0,0,0,0.07)}\n.nav-logo a{display:block;line-height:0}\n.nav-logo img{height:46px;width:auto;display:block}\n\n\nnav.on-dark \nnav.on-dark \nnav.on-light \nnav.on-light \n.nav-right{display:flex;align-items:center;gap:0.7rem;flex-shrink:0}\n.btn-track{font-family:var(--sans);font-size:9px;letter-spacing:0.15em;text-transform:uppercase;text-decoration:none;padding:9px 20px;transition:all 0.3s;white-space:nowrap}.btn-connect{font-family:var(--sans);font-size:9px;letter-spacing:0.15em;text-transform:uppercase;text-decoration:none;padding:9px 20px;transition:all 0.3s;white-space:nowrap}\nnav.on-dark .btn-track{border:1px solid rgba(255,255,255,0.35);color:rgba(255,255,255,0.9)}.btn-connect{border:1px solid rgba(255,255,255,0.35);color:rgba(255,255,255,0.9)}\nnav.on-dark .btn-track:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,0.08)}.btn-connect:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,0.08)}\nnav.on-light .btn-track{border:1px solid rgba(192,65,90,0.5);color:var(--pink)}.btn-connect{border:1px solid rgba(192,65,90,0.5);color:var(--pink)}\nnav.on-light .btn-track:hover{border-color:var(--pink);background:rgba(192,65,90,0.05)}.btn-connect:hover{border-color:var(--pink);background:rgba(192,65,90,0.05)}\n.btn-book{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:0.15em;text-transform:uppercase;text-decoration:none;padding:10px 22px;background:var(--pink);color:#fff;border:1px solid var(--pink);transition:background 0.25s;white-space:nowrap}\n.btn-book:hover{background:var(--pink2);border-color:var(--pink2)}\n\n\nnav.on-dark \nnav.on-light \n.mob-menu{display:none;position:fixed;top:70px;left:0;right:0;background:var(--cream);z-index:199;flex-direction:column;border-bottom:0.5px solid rgba(0,0,0,0.1);box-shadow:0 8px 24px rgba(0,0,0,0.08)}\n.mob-menu.open{display:flex}\n.mob-menu a{font-family:var(--sans);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--dark2);text-decoration:none;padding:1rem 2rem;border-bottom:0.5px solid rgba(0,0,0,0.07);transition:color 0.2s}\n.mob-menu a:hover{color:var(--pink)}\n.mob-menu .mob-track{color:var(--pink)}\n.mob-menu .mob-book{background:var(--pink);color:#fff;text-align:center;border-bottom:none;font-weight:500}\n.mob-menu .mob-book:hover{background:var(--pink2);color:#fff}\n\n\n/* ═══════════════════════════════════════════════\n   THE SWISS LAUNDRY — /pickup\n   Light-first colour system. Hero always dark.\n   ═══════════════════════════════════════════════ */\n\n/* ── Brand tokens ── */\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}\n\n/* ── Adaptive tokens — LIGHT DEFAULT ── */\n:root{\n  --bg:#1a1918;--bg2:#201e1d;\n  --surf:rgba(255,255,255,.05);--surf-b:rgba(255,255,255,.1);\n  --txt:#fff;--txt2:rgba(255,255,255,.82);--txt3:rgba(255,255,255,.55);\n  --inp:rgba(255,255,255,.07);--inp-b:rgba(255,255,255,.12);--inp-c:#fff;\n  --hdr-bg:rgba(26,25,24,.9);\n}\n/* ── DARK MODE override ── */\n/* theme: dark default */\n:root{--bg:#1a1918;--bg2:#201e1d;\n    --surf:rgba(255,255,255,.05);--surf-b:rgba(255,255,255,.1);\n    --txt:#fff;--txt2:rgba(255,255,255,.82);--txt3:rgba(255,255,255,.55);\n    --inp:rgba(255,255,255,.07);--inp-b:rgba(255,255,255,.12);--inp-c:#fff;\n    --hdr-bg:rgba(26,25,24,.9);}\n@media(prefers-color-scheme:light){\n  :root{--bg:#F5F0E8;--bg2:#EDE7D9;\n    --surf:#fff;--surf-b:rgba(26,25,24,.1);\n    --txt:#1a1918;--txt2:#3d3a36;--txt3:#7a7168;\n    --inp:#fff;--inp-b:rgba(26,25,24,.15);--inp-c:#1a1918;\n    --hdr-bg:rgba(245,240,232,.93);}\n}\n\n/* ── Base ── */\n*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}\n*{-webkit-tap-highlight-color:transparent}\nhtml{scroll-behavior:smooth;overflow-x:hidden}\nbody{font-family:var(--sans);background:var(--bg);color:var(--txt);overflow-x:hidden;-webkit-font-smoothing:antialiased}\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;border-radius:4px}\nbody::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.018;\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(--gold);z-index:9999;width:0}\n[data-reveal]{transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)}\n.eyebrow{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--pink);display:block;margin-bottom:.6rem}\n\n/* ═══ §01 HERO BOOKING FORM ═══ */\n/* Hero is ALWAYS dark — immersive booking experience */\n.f-hero{\n  background:#1a1918;\n  min-height:100svh;\n  display:flex;flex-direction:column;\n  align-items:center;\n  position:relative;overflow:hidden;\n}\n/* Atmospheric glow */\n.f-hero::before{\n  content:'';position:absolute;inset:0;\n  background:\n    radial-gradient(ellipse 50% 60% at 5% 90%,rgba(192,65,90,.1),transparent 55%),\n    radial-gradient(ellipse 40% 45% at 95% 8%,rgba(201,168,76,.07),transparent 50%);\n  pointer-events:none;z-index:0;\n}\n/* Dot grid */\n.f-dots{position:absolute;inset:0;\n  background-image:radial-gradient(circle,rgba(255,255,255,.04) 1px,transparent 1px);\n  background-size:32px 32px;animation:dotsMove 28s linear infinite;pointer-events:none}\n@keyframes dotsMove{0%{background-position:0 0}100%{background-position:32px 32px}}\n/* Decorative layer — z-index 0 */\n.f-deco-layer{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}\n.particle{position:absolute;width:2px;height:2px;background:var(--gold);border-radius:50%;\n  animation:pRise var(--pd,8s) ease-in-out infinite var(--dd,0s);opacity:0}\n@keyframes pRise{0%{opacity:0;transform:translateY(14px)}10%{opacity:.3}90%{opacity:.08}100%{opacity:0;transform:translateY(-50px)}}\n\n/* Top bar */\n.f-bar{width:100%;max-width:640px;display:flex;align-items:flex-start;justify-content:space-between;\n  padding:1.8rem 0 .5rem;position:relative;z-index:10}\n.f-brand-tag{font-family:var(--sans);font-size:8px;font-weight:500;letter-spacing:.28em;\n  text-transform:uppercase;color:var(--gold);display:block;margin-bottom:.3rem}\n.f-title{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(16px,1.8vw,22px);color:#fff;line-height:1.2;display:block}\n.f-title em{color:var(--gold);font-style:italic}\n.f-trust{font-family:var(--sans);font-size:10px;font-weight:300;\n  color:rgba(255,255,255,.4);margin-top:.25rem;display:block;letter-spacing:.04em}\n.f-progress{display:flex;align-items:center;gap:.6rem;padding-top:.2rem}\n.f-step-txt{font-family:var(--sans);font-size:10px;font-weight:300;\n  letter-spacing:.06em;color:rgba(255,255,255,.3);white-space:nowrap}\n.f-step-txt strong{color:#fff;font-weight:500}\n.f-dots-row{display:flex;gap:.3rem}\n.f-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.18);\n  transition:all .4s cubic-bezier(.16,1,.3,1)}\n.f-dot.cur{background:var(--gold);width:18px;border-radius:3px}\n.f-dot.done{background:var(--pink)}\n\n/* Stage */\n.f-stage{width:100%;max-width:640px;flex:1;\n  display:flex;flex-direction:column;justify-content:center;\n  padding:1rem 0 2rem;position:relative;z-index:1;min-height:440px}\n\n/* Sent bubble */\n.f-sent{display:none;align-self:flex-end;max-width:82%;margin-bottom:.8rem;animation:fadeUp .3s ease}\n.f-sent.show{display:flex;flex-direction:column;align-items:flex-end}\n@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}\n.f-sent-bubble{background:rgba(201,168,76,.12);border:.5px solid rgba(201,168,76,.22);\n  border-radius:14px 14px 4px 14px;padding:.5rem .9rem;\n  font-family:var(--sans);font-size:11px;font-weight:300;color:rgba(255,255,255,.65);line-height:1.5}\n.f-sent-label{font-family:var(--sans);font-size:8px;font-weight:300;letter-spacing:.1em;\n  text-transform:uppercase;color:rgba(255,255,255,.22);margin-top:.2rem;margin-right:.3rem}\n\n/* Card */\n.f-card{width:100%;position:absolute;top:0;left:0;opacity:0;visibility:hidden;pointer-events:none;\n  transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .35s ease,visibility .35s}\n.f-card.active{position:relative;top:auto;left:auto;transform:translateX(0);opacity:1;visibility:visible;pointer-events:auto;animation:fadeUp .4s ease}\n.f-card.out-l{transform:translateX(-108%);opacity:0;pointer-events:none;visibility:hidden}\n.f-card.out-r{transform:translateX(108%);opacity:0;pointer-events:none;visibility:hidden}\n.f-card.in-r{transform:translateX(108%);opacity:0;pointer-events:none;visibility:hidden}\n.f-card.in-l{transform:translateX(-108%);opacity:0;pointer-events:none;visibility:hidden}\n.f-back{display:none;align-items:center;gap:.35rem;font-family:var(--sans);font-size:9px;\n  font-weight:300;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.3);\n  background:none;border:none;cursor:pointer;padding:0;margin-bottom:.7rem;transition:color .2s}\n.f-back:hover{color:rgba(255,255,255,.6)}\n.f-back.show{display:flex}\n.f-back svg{width:13px;height:13px}\n.f-badge{font-family:var(--sans);font-size:9px;font-weight:400;letter-spacing:.2em;\n  text-transform:uppercase;color:rgba(255,255,255,.3);\n  display:flex;align-items:center;gap:.45rem;margin-bottom:.5rem}\n.f-badge-dot{width:5px;height:5px;border-radius:50%;background:var(--pink);\n  animation:bdp 2s ease-in-out infinite;flex-shrink:0}\n@keyframes bdp{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.55)}}\n.f-q{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(22px,3.6vw,44px);color:#fff;\n  letter-spacing:-.025em;line-height:1.05;margin-bottom:1.1rem}\n.f-q em{color:var(--gold)}\n\n/* The box */\n.f-box{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);\n  border-radius:16px;padding:1rem 1rem .8rem;\n  transition:border-color .2s,box-shadow .2s}\n.f-box:focus-within{border-color:rgba(201,168,76,.3);box-shadow:0 0 0 4px rgba(201,168,76,.06)}\n.f-lbl{font-family:var(--sans);font-size:8px;font-weight:500;letter-spacing:.2em;\n  text-transform:uppercase;color:rgba(255,255,255,.38);\n  display:block;margin-bottom:.3rem;margin-top:.5rem}\n.f-lbl:first-child{margin-top:0}\n.f-in{width:100%;padding:.72rem .9rem;background:rgba(255,255,255,.08);\n  border:1px solid rgba(255,255,255,.12);border-radius:10px;\n  color:#fff;font-family:var(--sans);font-size:14px;font-weight:300;\n  outline:none;transition:border-color .2s,background .2s;-webkit-appearance:none;margin-bottom:.5rem}\n.f-in:last-child{margin-bottom:0}\n.f-in:focus{border-color:rgba(201,168,76,.45);background:rgba(201,168,76,.03)}\n.f-in::placeholder{color:rgba(255,255,255,.25)}\n.f-in.ok{border-color:rgba(37,211,102,.4)!important}\n.f-in.bad{border-color:rgba(192,65,90,.5)!important}\ntextarea.f-in{resize:vertical;min-height:64px}\ninput[type=date].f-in{cursor:pointer;color-scheme:dark}\ninput[type=date].f-in::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.5;filter:invert(.6) sepia(.4) hue-rotate(10deg)}\n.f-pfx-wrap{position:relative;margin-bottom:.5rem}\n.f-pfx{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);\n  font-family:var(--sans);font-size:14px;color:rgba(255,255,255,.3);pointer-events:none}\n.f-in.pfx{padding-left:3rem;margin-bottom:0}\n.f-g2{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.5rem}\n.f-g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;margin-bottom:.5rem}\n.f-err{font-family:var(--sans);font-size:10px;color:var(--pink);display:none;margin:.15rem 0 .35rem}\n.f-err.on{display:block}\n.f-bar-row{display:flex;align-items:center;justify-content:space-between;\n  padding-top:.7rem;margin-top:.7rem;border-top:1px solid rgba(255,255,255,.08)}\n.f-hint{font-family:var(--sans);font-size:10px;font-weight:300;color:rgba(255,255,255,.25);\n  display:flex;align-items:center;gap:.35rem}\n.f-hint kbd{background:rgba(255,255,255,.1);border-radius:4px;padding:.1rem .35rem;\n  font-family:var(--sans);font-size:9px;color:rgba(255,255,255,.4);\n  border:.5px solid rgba(255,255,255,.15)}\n.f-send{width:40px;height:40px;background:var(--gold);border:none;border-radius:50%;\n  cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;\n  transition:background .2s,transform .15s,box-shadow .2s;\n  box-shadow:0 2px 10px rgba(201,168,76,.25)}\n.f-send:hover{background:var(--gold-l);transform:scale(1.06);box-shadow:0 4px 16px rgba(201,168,76,.35)}\n.f-send:active{transform:scale(.97)}\n.f-send svg{width:17px;height:17px;color:var(--dark)}\n.f-send:disabled{opacity:.35;cursor:not-allowed;transform:none}\n.f-sub{font-family:var(--sans);font-size:10px;font-weight:300;color:rgba(255,255,255,.28);\n  line-height:1.6;display:block;margin-top:.55rem;padding:0 .1rem}\n.f-sub a{color:rgba(201,168,76,.45);text-decoration:none}\n/* OTP */\n.otp-row{display:flex;gap:.4rem;margin-bottom:.5rem}\n.otp-d{width:44px;height:50px;text-align:center;font-family:var(--sans);font-size:22px;\n  font-weight:400;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);\n  border-radius:10px;color:#fff;outline:none;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none}\n.otp-d:focus{border-color:rgba(201,168,76,.5);box-shadow:0 0 0 3px rgba(201,168,76,.1)}\n.otp-hint{font-family:var(--sans);font-size:11px;font-weight:300;color:rgba(255,255,255,.38);\n  line-height:1.6;margin-bottom:.4rem;display:block}\n.otp-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.4rem}\n.otp-resend{font-family:var(--sans);font-size:10px;color:rgba(201,168,76,.55);\n  background:none;border:none;cursor:pointer;padding:0;transition:color .2s}\n.otp-resend:hover{color:var(--gold)}\n.otp-resend:disabled{opacity:.35;cursor:not-allowed}\n.otp-timer{font-family:var(--sans);font-size:10px;font-weight:300;color:rgba(255,255,255,.28)}\n/* Profile card */\n.profile-card{background:rgba(201,168,76,.08);border:.5px solid rgba(201,168,76,.2);\n  border-radius:12px;padding:1rem 1.1rem;margin-bottom:.6rem}\n.profile-name{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(18px,2.2vw,24px);color:#fff;display:block;margin-bottom:.2rem}\n.profile-detail{font-family:var(--sans);font-size:11px;font-weight:300;\n  color:rgba(255,255,255,.42);line-height:1.6}\n.edit-btn{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.12em;\n  text-transform:uppercase;color:rgba(201,168,76,.55);background:none;border:none;\n  cursor:pointer;padding:0;margin-top:.5rem;display:block;transition:color .2s}\n.edit-btn:hover{color:var(--gold)}\n.edit-fields{display:none;margin-top:.8rem;padding-top:.8rem;border-top:.5px solid rgba(255,255,255,.08)}\n.edit-fields.show{display:block}\n/* Choice cards */\n.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin-bottom:.5rem}\n.choice-card{padding:.8rem .85rem;background:rgba(255,255,255,.05);\n  border:1px solid rgba(255,255,255,.1);border-radius:10px;cursor:pointer;\n  transition:all .18s;user-select:none;text-align:center}\n.choice-card:hover{border-color:rgba(201,168,76,.3);background:rgba(201,168,76,.07);transform:translateY(-1px)}\n.choice-card.on{border-color:rgba(201,168,76,.45);background:rgba(201,168,76,.1);transform:translateY(-1px)}\n.choice-card.wide{grid-column:1/-1;display:flex;align-items:center;gap:.65rem;text-align:left;padding:.65rem .85rem}\n.choice-card.wide .choice-icon{margin-bottom:0;flex-shrink:0}\n.choice-icon{font-size:18px;display:block;margin-bottom:.2rem}\n.choice-name{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(13px,1.5vw,16px);color:#fff;display:block;line-height:1.1}\n.choice-sub{font-family:var(--sans);font-size:8px;font-weight:300;\n  color:rgba(255,255,255,.38);margin-top:.1rem;display:block;line-height:1.4}\n/* T&C */\n.tnc-wrap{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);\n  border-radius:10px;overflow:hidden;margin-bottom:.6rem}\n.tnc-hd{width:100%;display:flex;align-items:center;justify-content:space-between;\n  padding:.65rem .9rem;background:none;border:none;cursor:pointer;\n  font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.14em;\n  text-transform:uppercase;color:rgba(255,255,255,.38);transition:color .2s}\n.tnc-hd:hover{color:rgba(255,255,255,.65)}\n.tnc-hd svg{width:12px;height:12px;transition:transform .3s;flex-shrink:0}\n.tnc-hd.open svg{transform:rotate(180deg)}\n.tnc-body{display:none;padding:.7rem .9rem;border-top:1px solid rgba(255,255,255,.07)}\n.tnc-body.open{display:block}\n.tnc-item{font-family:var(--sans);font-size:10px;font-weight:300;\n  color:rgba(255,255,255,.42);line-height:1.7;padding:.25rem 0;\n  border-bottom:1px solid rgba(255,255,255,.05);display:flex;gap:.5rem}\n.tnc-item:last-child{border-bottom:none}\n.tnc-num{color:var(--pink);flex-shrink:0;font-family:var(--serif);font-style:italic;font-size:13px}\n/* Agree + captcha */\n.agree-row{display:flex;align-items:flex-start;gap:.6rem;margin-bottom:.6rem}\n.agree-box{width:18px;height:18px;border-radius:4px;border:1.5px solid rgba(255,255,255,.2);\n  flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;\n  transition:all .2s;margin-top:1px}\n.agree-box.on{background:var(--pink);border-color:var(--pink)}\n.agree-box svg{width:11px;height:11px;fill:#fff;display:none}\n.agree-box.on svg{display:block}\n.agree-txt{font-family:var(--sans);font-size:10px;font-weight:300;\n  color:rgba(255,255,255,.38);line-height:1.6}\n.agree-txt a{color:var(--pink);text-decoration:none}\n.captcha-row{display:flex;align-items:center;gap:.7rem;padding:.65rem .9rem;\n  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);\n  border-radius:10px;margin-bottom:.6rem}\n.cap-check{width:20px;height:20px;border-radius:4px;border:1.5px solid rgba(255,255,255,.2);\n  flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}\n.cap-check.on{background:#4CAF50;border-color:#4CAF50}\n.cap-check svg{width:12px;height:12px;fill:#fff;display:none}\n.cap-check.on svg{display:block}\n.cap-lbl{font-family:var(--sans);font-size:11px;font-weight:300;color:rgba(255,255,255,.42);flex:1}\n.cap-logo{font-family:var(--sans);font-size:7px;color:rgba(255,255,255,.22);text-align:center;line-height:1.6}\n/* Submit */\n.f-submit{width:100%;padding:.9rem;background:var(--pink);color:#fff;\n  font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.22em;\n  text-transform:uppercase;border:none;border-radius:10px;cursor:pointer;\n  display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background .2s;margin-top:.2rem}\n.f-submit:hover{background:var(--pink2)}\n.f-submit:disabled{opacity:.4;cursor:not-allowed}\n.f-spin{width:13px;height:13px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .65s linear infinite;display:none}\n@keyframes spin{to{transform:rotate(360deg)}}\n.f-submit.loading .f-spin{display:block}\n.f-submit.loading .stxt{display:none}\n.f-alert{font-family:var(--sans);font-size:11px;color:var(--pink);background:rgba(192,65,90,.08);border:1px solid rgba(192,65,90,.2);border-radius:8px;padding:.55rem .9rem;margin-bottom:.6rem;display:none}\n.f-alert.on{display:block}\n.f-confirm-note{font-family:var(--sans);font-size:9px;font-weight:300;color:rgba(255,255,255,.2);text-align:center;margin-top:.5rem;line-height:1.5}\n/* Hours badge in hero */\n.f-hours{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1.2rem;margin-bottom:.5rem}\n.f-hours-pill{display:inline-flex;align-items:center;gap:.5rem;\n  font-family:var(--sans);font-size:9px;font-weight:400;letter-spacing:.1em;\n  color:rgba(255,255,255,.35);border:.5px solid rgba(255,255,255,.12);\n  border-radius:20px;padding:.35rem .8rem}\n.f-hours-dot{width:5px;height:5px;border-radius:50%;background:#4CAF50;flex-shrink:0;\n  box-shadow:0 0 4px #4CAF50;animation:hrPulse 2s ease-in-out infinite}\n@keyframes hrPulse{0%,100%{opacity:1}50%{opacity:.4}}\n/* Success */\n.f-success{display:none;flex:1;align-items:center;justify-content:center;text-align:center;\n  padding:4rem 0;flex-direction:column;gap:1rem;width:100%;max-width:640px}\n.f-success.on{display:flex;animation:fadeUp .5s ease}\n.f-paw{font-size:56px;animation:pawPop .6s cubic-bezier(.16,1,.3,1)}\n@keyframes pawPop{from{transform:scale(.3) rotate(-15deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}\n.f-bubble{background:var(--pink);color:#fff;border-radius:20px 20px 20px 4px;\n  padding:.9rem 1.4rem;font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(15px,2vw,22px);display:inline-block;line-height:1.4;animation:fadeUp .5s .25s both}\n.f-success-h3{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(20px,2.8vw,32px);color:#fff;margin-top:.8rem;line-height:1.2}\n.f-success-body{font-family:var(--sans);font-size:13px;font-weight:300;\n  color:rgba(255,255,255,.55);line-height:1.8;max-width:430px}\n.f-ref{font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.12em;\n  text-transform:uppercase;color:var(--gold);border:.5px solid rgba(201,168,76,.3);\n  padding:.4rem .9rem;border-radius:4px;display:inline-block;margin-top:.3rem}\n.f-success-btns{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center;margin-top:.8rem}\n.f-wa-btn{display:inline-flex;align-items:center;gap:.6rem;background:#25D366;color:#fff;\n  font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.18em;\n  text-transform:uppercase;padding:.8rem 1.6rem;text-decoration:none;border-radius:10px}\n.f-track-btn{display:inline-flex;align-items:center;gap:.5rem;\n  font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.15em;\n  text-transform:uppercase;color:rgba(255,255,255,.45);text-decoration:none;\n  border:.5px solid rgba(255,255,255,.15);padding:.7rem 1.4rem;border-radius:10px;transition:border-color .2s}\n.f-track-btn:hover{border-color:rgba(255,255,255,.3)}\n.f-pad{padding-left:8vw;padding-right:8vw}\n\n/* ═══ GARMENT BACKGROUND — all info sections ═══ */\n.garment-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0;opacity:.055}\n@media(prefers-color-scheme:dark){.garment-bg{opacity:.035}}\n.gs{position:absolute;font-size:clamp(22px,3vw,40px);color:var(--pink);\n  animation:gFloat var(--gd,22s) ease-in-out infinite var(--dl,0s);\n  user-select:none;line-height:1}\n@keyframes gFloat{\n  0%{transform:translateY(0) rotate(0deg);opacity:0}\n  8%{opacity:1}\n  45%{transform:translateY(-20px) rotate(4deg);opacity:.9}\n  55%{transform:translateY(-20px) rotate(-4deg);opacity:.9}\n  92%{opacity:.7}\n  100%{transform:translateY(0) rotate(0deg);opacity:0}\n}\n\n/* ═══ §02 OTHER WAYS ═══ */\n.ow-section{background:var(--bg);padding:5rem 8vw;position:relative;\n  border-top:1px solid rgba(26,25,24,.08)}\n@media(prefers-color-scheme:dark){.ow-section{border-color:rgba(255,255,255,.07)}}\n.ow-inner{max-width:920px;margin:0 auto;display:grid;grid-template-columns:1fr 2fr;gap:4rem;align-items:start}\n.ow-hl{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(22px,3vw,36px);color:var(--txt);letter-spacing:-.01em;line-height:1.15;margin-bottom:.5rem}\n.ow-sub{font-family:var(--sans);font-size:12px;font-weight:300;color:var(--txt3);line-height:1.7;margin-bottom:1.2rem}\n.ow-hours-note{font-family:var(--sans);font-size:10px;font-weight:300;color:var(--txt3);\n  line-height:1.6;padding:.65rem .9rem;\n  background:rgba(192,65,90,.04);border:.5px solid rgba(192,65,90,.12);border-radius:6px}\n.ow-hours-note strong{color:var(--pink);font-weight:400}\n.ow-list{display:flex;flex-direction:column}\n.ow-method{display:flex;align-items:center;gap:.9rem;padding:.9rem 0;\n  border-bottom:1px solid rgba(26,25,24,.08);text-decoration:none;\n  position:relative;transition:padding-left .22s cubic-bezier(.16,1,.3,1)}\n@media(prefers-color-scheme:dark){.ow-method{border-color:rgba(255,255,255,.07)}}\n.ow-method::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);\n  width:2px;height:55%;background:var(--pink);transition:transform .22s}\n.ow-method:hover{padding-left:.8rem}\n.ow-method:hover::before{transform:translateY(-50%) scaleY(1)}\n.ow-method:last-child{border-bottom:none}\n.ow-icon-wrap{width:34px;height:34px;border-radius:50%;flex-shrink:0;\n  display:flex;align-items:center;justify-content:center;\n  background:rgba(192,65,90,.07);border:.5px solid rgba(192,65,90,.15);transition:background .2s}\n.ow-icon-wrap svg{width:14px;height:14px;color:var(--pink)}\n.ow-method:hover .ow-icon-wrap{background:rgba(192,65,90,.12)}\n.ow-name{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(15px,1.6vw,18px);color:var(--txt);display:block;line-height:1.1;transition:color .2s}\n.ow-method:hover .ow-name{color:var(--pink)}\n.ow-detail{font-family:var(--sans);font-size:10px;font-weight:300;color:var(--txt3);\n  display:block;letter-spacing:.04em;margin-top:.1rem}\n.ow-arr{margin-left:auto;width:13px;height:13px;color:rgba(26,25,24,.2);flex-shrink:0;transition:color .2s,transform .2s}\n@media(prefers-color-scheme:dark){.ow-arr{color:rgba(255,255,255,.2)}}\n.ow-method:hover .ow-arr{color:var(--pink);transform:translateX(3px)}\n\n/* ═══ §03 HOW IT WORKS ═══ */\n.how-section{background:var(--bg2);padding:7rem 8vw;position:relative;overflow:hidden}\n.how-inner{max-width:1100px;margin:0 auto;position:relative;z-index:1}\n.how-h2{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(28px,4vw,52px);color:var(--txt);letter-spacing:-.02em;line-height:1.1;margin-bottom:.5rem}\n.how-sub{font-family:var(--sans);font-size:13px;font-weight:300;color:var(--txt3);\n  line-height:1.8;margin-bottom:3.5rem;max-width:560px}\n.how-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative}\n.how-steps::before{content:'';position:absolute;top:27px;left:10%;right:10%;height:1px;\n  background:linear-gradient(90deg,transparent,rgba(192,65,90,.15) 15%,rgba(192,65,90,.15) 85%,transparent);\n  pointer-events:none}\n@media(prefers-color-scheme:dark){.how-steps::before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08) 15%,rgba(255,255,255,.08) 85%,transparent)}}\n.how-step{padding:0 1rem;position:relative;z-index:1}\n.how-step:first-child{padding-left:0}\n.how-step:last-child{padding-right:0}\n.how-num{width:54px;height:54px;border-radius:50%;background:var(--pink);color:#fff;\n  display:flex;align-items:center;justify-content:center;\n  font-family:var(--serif);font-style:italic;font-weight:300;font-size:20px;\n  margin-bottom:1.2rem;flex-shrink:0}\n.how-title{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(14px,1.5vw,18px);color:var(--txt);display:block;margin-bottom:.4rem}\n.how-desc{font-family:var(--sans);font-size:11px;font-weight:300;line-height:1.8;color:var(--txt3)}\n\n/* ═══ §04 SPEED ═══ */\n.speed-section{background:var(--bg);padding:7rem 8vw;position:relative;overflow:hidden}\n.speed-inner{max-width:1100px;margin:0 auto;position:relative;z-index:1}\n.speed-h2{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(28px,4vw,52px);color:var(--txt);letter-spacing:-.02em;line-height:1.1;margin-bottom:.5rem}\n.speed-sub{font-family:var(--sans);font-size:13px;font-weight:300;color:var(--txt3);\n  line-height:1.8;margin-bottom:2.5rem;max-width:560px}\n.speed-disclaimer{font-family:var(--sans);font-size:11px;font-weight:300;color:var(--txt3);\n  font-style:italic;margin-top:2rem;line-height:1.6}\n.speed-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}\n.speed-card{background:var(--surf);border:1px solid rgba(26,25,24,.1);border-radius:8px;\n  padding:2rem 1.5rem;position:relative;overflow:hidden;\n  transition:border-color .25s,transform .25s,box-shadow .25s;\n  box-shadow:0 2px 8px rgba(26,25,24,.04)}\n.speed-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(26,25,24,.08);border-color:rgba(192,65,90,.2)}\n.speed-card.popular{border-color:rgba(192,65,90,.25);background:rgba(192,65,90,.03)}\n.speed-card.popular::before{content:'Most Popular';position:absolute;top:0;right:0;\n  background:var(--pink);color:#fff;font-family:var(--sans);font-size:7px;\n  font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding:.3rem .7rem}\n@media(prefers-color-scheme:dark){\n  .speed-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.09);box-shadow:none}\n  .speed-card:hover{box-shadow:none;border-color:rgba(192,65,90,.3)}\n  .speed-card.popular{background:rgba(192,65,90,.06);border-color:rgba(192,65,90,.3)}\n}\n.speed-icon-wrap{width:44px;height:44px;border-radius:50%;\n  background:rgba(192,65,90,.07);border:.5px solid rgba(192,65,90,.15);\n  display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem;color:var(--pink)}\n.speed-icon-wrap svg{width:20px;height:20px}\n.speed-name{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(20px,2.2vw,28px);color:var(--txt);display:block;margin-bottom:.2rem;line-height:1}\n.speed-time{font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.18em;\n  text-transform:uppercase;color:var(--pink);display:block;margin-bottom:1rem}\n.speed-desc{font-family:var(--sans);font-size:12px;font-weight:300;\n  line-height:1.85;color:var(--txt2);margin-bottom:1.2rem}\n.speed-note{font-family:var(--sans);font-size:10px;font-weight:300;color:var(--txt3);\n  font-style:italic;line-height:1.6;padding-top:.8rem;\n  border-top:1px solid rgba(26,25,24,.08)}\n@media(prefers-color-scheme:dark){.speed-note{border-color:rgba(255,255,255,.08)}}\n\n/* ═══ §05 COVERAGE ═══ */\n.cov-section{background:var(--bg2);padding:7rem 8vw;position:relative;overflow:hidden}\n.cov-inner{max-width:1100px;margin:0 auto;position:relative;z-index:1}\n.cov-h2{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(28px,4vw,52px);color:var(--txt);letter-spacing:-.02em;line-height:1.1;margin-bottom:.6rem}\n.cov-lead{font-family:var(--sans);font-size:13px;font-weight:300;color:var(--txt2);\n  line-height:1.9;margin-bottom:2.5rem;max-width:680px}\n.cov-stats{display:flex;gap:3rem;flex-wrap:wrap;margin-bottom:2.5rem}\n.cov-stat{display:flex;flex-direction:column;gap:.2rem}\n.cov-stat-num{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(36px,5vw,60px);color:var(--pink);line-height:1;display:block}\n.cov-stat-lbl{font-family:var(--sans);font-size:9px;font-weight:500;\n  letter-spacing:.18em;text-transform:uppercase;color:var(--txt3)}\n.pin-toggle{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.14em;\n  text-transform:uppercase;color:var(--pink);background:none;border:none;\n  cursor:pointer;padding:0;margin-bottom:1rem;display:block;transition:opacity .2s}\n.pin-toggle:hover{opacity:.7}\n#pinGrid{display:none;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.35rem;margin-bottom:1rem}\n#pinGrid.open{display:grid}\n.pin-tag{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;\n  background:rgba(26,25,24,.04);border:.5px solid rgba(26,25,24,.1);\n  border-radius:4px;transition:border-color .15s}\n.pin-tag:hover{border-color:var(--pink);background:rgba(192,65,90,.04)}\n@media(prefers-color-scheme:dark){\n  .pin-tag{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}\n}\n.pin-num{font-family:var(--sans);font-size:10px;font-weight:500;\n  letter-spacing:.04em;color:var(--pink);flex-shrink:0}\n.pin-area{font-family:var(--sans);font-size:10px;font-weight:300;color:var(--txt2);line-height:1.3}\n.cov-note{font-family:var(--sans);font-size:11px;font-weight:300;color:var(--txt3);\n  line-height:1.7;font-style:italic;margin-top:.8rem}\n\n/* ═══ §06 FREE PICKUP ═══ */\n.free-section{background:var(--bg);padding:6rem 8vw;text-align:center;position:relative;overflow:hidden}\n.free-inner{max-width:680px;margin:0 auto;position:relative;z-index:1}\n.free-h2{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(26px,4vw,50px);color:var(--txt);letter-spacing:-.02em;line-height:1.1;margin-bottom:.8rem}\n.free-body{font-family:var(--sans);font-size:13px;font-weight:300;color:var(--txt2);\n  line-height:1.9;margin-bottom:2.5rem;max-width:520px;margin-left:auto;margin-right:auto}\n.thresh-row{display:flex;align-items:center;justify-content:center;gap:2rem;flex-wrap:wrap}\n.thresh-item{text-align:center;padding:2rem 2.5rem;background:var(--surf);\n  border:1px solid rgba(26,25,24,.08);border-radius:8px;min-width:180px;\n  box-shadow:0 2px 12px rgba(26,25,24,.05);transition:transform .2s,box-shadow .2s}\n.thresh-item:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(26,25,24,.08)}\n@media(prefers-color-scheme:dark){\n  .thresh-item{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);box-shadow:none}\n  .thresh-item:hover{box-shadow:none}\n}\n.thresh-val{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(32px,4.5vw,52px);color:var(--pink);line-height:1;display:block;margin-bottom:.3rem}\n.thresh-lbl{font-family:var(--sans);font-size:9px;font-weight:500;\n  letter-spacing:.18em;text-transform:uppercase;color:var(--txt3)}\n.thresh-or{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--txt3)}\n\n/* ═══ §07 APP ═══ */\n.app-section{background:var(--bg2);padding:7rem 8vw;position:relative;overflow:hidden}\n.app-inner{max-width:900px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;position:relative;z-index:1}\n.app-h2{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(26px,3.5vw,46px);color:var(--txt);letter-spacing:-.02em;line-height:1.1;margin-bottom:.7rem}\n.app-body{font-family:var(--sans);font-size:13px;font-weight:300;color:var(--txt2);\n  line-height:1.9;margin-bottom:2rem}\n.app-btns{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1.5rem}\n.app-btn{display:inline-flex;align-items:center;gap:.7rem;background:var(--surf);color:var(--txt);\n  font-family:var(--sans);font-size:10px;font-weight:400;letter-spacing:.06em;\n  padding:.85rem 1.4rem;text-decoration:none;border-radius:6px;\n  border:1px solid rgba(26,25,24,.12);transition:background .2s,border-color .2s}\n.app-btn:hover{background:rgba(26,25,24,.05);border-color:rgba(26,25,24,.2)}\n@media(prefers-color-scheme:dark){\n  .app-btn{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.1)}\n  .app-btn:hover{background:rgba(255,255,255,.1)}\n}\n.app-btn svg{width:18px;height:18px;flex-shrink:0}\n.app-feats{display:flex;flex-direction:column;gap:.6rem}\n.app-feat{display:flex;align-items:center;gap:.7rem;font-family:var(--sans);\n  font-size:12px;font-weight:300;color:var(--txt2)}\n.app-feat svg{width:13px;height:13px;color:var(--pink);flex-shrink:0}\n.app-qr{display:flex;flex-direction:column;align-items:center;gap:1rem}\n.app-qr-box{width:160px;height:160px;border:1px solid rgba(26,25,24,.1);border-radius:8px;\n  display:flex;align-items:center;justify-content:center;background:var(--surf);\n  font-family:var(--sans);font-size:9px;font-weight:300;color:var(--txt3);\n  text-align:center;padding:1rem;line-height:1.5}\n@media(prefers-color-scheme:dark){.app-qr-box{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1)}}\n.app-qr-note{font-family:var(--sans);font-size:9px;font-weight:300;letter-spacing:.12em;\n  text-transform:uppercase;color:var(--txt3);text-align:center}\n\n/* ═══ §08 FAQ ═══ */\n.faq-section{background:var(--bg);padding:7rem 8vw;position:relative;overflow:hidden}\n.faq-inner{max-width:860px;margin:0 auto;position:relative;z-index:1}\n.faq-h2{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(26px,4vw,50px);color:var(--txt);letter-spacing:-.02em;line-height:1.1;margin-bottom:2.5rem}\n.faq-item{border-bottom:1px solid rgba(26,25,24,.1)}\n.faq-item:first-of-type{border-top:1px solid rgba(26,25,24,.1)}\n@media(prefers-color-scheme:dark){\n  .faq-item,.faq-item:first-of-type{border-color:rgba(255,255,255,.08)}\n}\n.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;\n  padding:1.3rem 0;background:none;border:none;color:var(--txt);text-align:left;cursor:pointer;\n  font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(15px,1.8vw,20px);line-height:1.3;transition:color .2s}\n.faq-q:hover{color:var(--pink)}\n.faq-item.open .faq-q{color:var(--pink)}\n.faq-icon{width:18px;height:18px;color:rgba(26,25,24,.2);flex-shrink:0;\n  transition:transform .3s,color .2s}\n@media(prefers-color-scheme:dark){.faq-icon{color:rgba(255,255,255,.2)}}\n.faq-item.open .faq-icon{transform:rotate(45deg);color:var(--pink)}\n.faq-a{display:none;font-family:var(--sans);font-size:13px;font-weight:300;\n  line-height:2;color:var(--txt2);padding-bottom:1.3rem}\n.faq-item.open .faq-a{display:block}\n\n/* ═══ §09 FINAL CTA ═══ */\n.cta-section{background:var(--pink);padding:7rem 8vw;text-align:center;position:relative;overflow:hidden}\n.cta-section::before{content:'';position:absolute;inset:0;\n  background-image:radial-gradient(circle,rgba(255,255,255,.06) 1px,transparent 1px);\n  background-size:28px 28px;pointer-events:none}\n.cta-h2{font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(28px,5vw,64px);color:#fff;letter-spacing:-.02em;line-height:1.1;\n  margin-bottom:.8rem;position:relative;z-index:1}\n.cta-sub{font-family:var(--sans);font-size:13px;font-weight:300;color:rgba(255,255,255,.6);\n  line-height:1.8;margin-bottom:2.5rem;position:relative;z-index:1}\n.cta-btns{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}\n.cta-white{display:inline-flex;align-items:center;gap:.6rem;background:#fff;color:var(--pink);\n  font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;\n  padding:1rem 2rem;text-decoration:none;border-radius:6px;transition:background .2s}\n.cta-white:hover{background:rgba(255,255,255,.9)}\n.cta-ghost{display:inline-flex;align-items:center;gap:.6rem;border:1px solid rgba(255,255,255,.35);\n  color:#fff;font-family:var(--sans);font-size:9px;font-weight:400;letter-spacing:.18em;\n  text-transform:uppercase;padding:1rem 2rem;text-decoration:none;border-radius:6px;transition:border-color .2s}\n.cta-ghost:hover{border-color:#fff}\n\n/* WA float */\n.wa-float{position:fixed;bottom:2rem;right:2rem;width:56px;height:56px;background:#25D366;\n  border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:9990;\n  box-shadow:0 4px 20px rgba(37,211,102,.4);transition:transform .3s,box-shadow .3s;text-decoration:none}\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%;\n  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:#1a1918;color:#fff;\n  font-family:var(--sans);font-size:11px;letter-spacing:.08em;white-space:nowrap;\n  padding:6px 12px;border-radius:4px;opacity:0;transform:translateX(8px);\n  transition:opacity .3s,transform .3s;pointer-events:none}\n.wa-float:hover .wa-tooltip{opacity:1;transform:translateX(0)}\n\n/* Responsive */\n@media(max-width:960px){\n  .how-steps{grid-template-columns:1fr 1fr;gap:2rem}\n  .how-steps::before{display:none}\n  .speed-grid{grid-template-columns:1fr 1fr}\n  .app-inner{grid-template-columns:1fr;gap:3rem}\n  .ow-inner{grid-template-columns:1fr;gap:2rem}\n  .f-pad,.f-bar,.f-stage{padding-left:5vw;padding-right:5vw}\n}\n@media(max-width:640px){\n  .how-steps{grid-template-columns:1fr}\n  .speed-grid{grid-template-columns:1fr}\n  .choice-grid{grid-template-columns:1fr 1fr}\n  .choice-card.wide{grid-column:1/-1}\n  .f-g2,.f-g3{grid-template-columns:1fr}\n  .thresh-row{flex-direction:column;align-items:center}\n  .cov-stats{gap:1.5rem}\n  #pinGrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}\n  .otp-d{width:38px;height:44px;font-size:18px}\n  .otp-row{gap:.3rem}\n  .cta-btns{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/* Pin toggle */\n.pin-toggle{\n  font-family:var(--sans);font-size:10px;font-weight:400;\n  letter-spacing:.12em;text-transform:uppercase;\n  color:rgba(201,168,76,.6);background:none;border:none;\n  cursor:pointer;padding:0;margin-bottom:1rem;\n  display:block;transition:color .2s;\n}\n.pin-toggle:hover{color:var(--gold);}\n#pinGrid[style*=\"display: grid\"]{display:grid!important;}\n\n/* ══ GARMENT CARE SYMBOLS — floating background ══ */\n.garment-bg{\n  position:absolute;inset:0;\n  pointer-events:none;overflow:hidden;\n  z-index:0;\n  opacity:.06; /* very subtle on light bg */\n}\n@media(prefers-color-scheme:dark){.garment-bg{opacity:.04}}\n\n.garment-symbol{\n  position:absolute;\n  font-size:clamp(20px,3vw,36px);\n  color:var(--pink);\n  animation:garmentFloat var(--gd,20s) ease-in-out infinite var(--gdelay,0s);\n  user-select:none;\n  line-height:1;\n}\n@keyframes garmentFloat{\n  0%   {transform:translateY(0) rotate(0deg);   opacity:0}\n  5%   {opacity:1}\n  45%  {transform:translateY(-18px) rotate(3deg);opacity:1}\n  55%  {transform:translateY(-18px) rotate(-3deg);opacity:1}\n  95%  {opacity:.8}\n  100% {transform:translateY(0) rotate(0deg);   opacity:0}\n}\n\n/* Sections that get the garment background */\n.how-section,.speed-section,.cov-section,.free-section,\n.app-section,.faq-section,.other-ways{position:relative;overflow:hidden}\n\n/* ── SECTION TEXT — explicit contrast on light bg ── */\n.how-h2,.speed-h2,.cov-h2,.free-h2,.app-h2,.faq-h2{color:var(--txt)}\n.how-title{color:var(--txt);font-size:clamp(18px,2vw,24px)}\n.how-desc,.speed-desc,.speed-note,.cov-lead,.cov-note,.app-body,.free-body,.faq-a{color:var(--txt2)}\n.speed-time{color:var(--pink)}\n.speed-name{color:var(--txt)}\n.eyebrow-m{color:var(--pink);opacity:1}\n.pin-num{color:var(--pink)}\n.pin-area{color:var(--txt2)}\n.thresh-val{color:var(--pink)}\n.thresh-lbl{color:var(--txt3)}\n.thresh-or{color:var(--txt3)}\n.ow-hl{color:var(--txt)}\n.ow-name{color:var(--txt)}\n.ow-detail{color:var(--txt3)}\n.ow-hours{background:rgba(192,65,90,.05);border-color:rgba(192,65,90,.15)}\n.ow-hours strong{color:var(--pink)}\n.app-feat{color:var(--txt2)}\n/* pin tag on cream */\n.pin-tag{background:rgba(26,25,24,.04);border-color:rgba(26,25,24,.1)}\n.pin-tag:hover{border-color:rgba(192,65,90,.25);background:rgba(192,65,90,.03)}\n/* speed card on cream */\n.speed-card{background:#fff;border-color:rgba(26,25,24,.1)}\n.speed-card:hover{background:rgba(192,65,90,.03);border-color:rgba(192,65,90,.2)}\n.speed-card.popular{background:rgba(192,65,90,.05);border-color:rgba(192,65,90,.3)}\n.speed-icon{background:rgba(192,65,90,.06);border-color:rgba(192,65,90,.15);color:var(--pink)}\n.speed-note{border-color:rgba(26,25,24,.08);color:var(--txt3)}\n/* thresh items on cream */\n.thresh-item{background:#fff;border-color:rgba(201,168,76,.2)}\n/* faq on cream */\n.faq-item,.faq-item:first-of-type{border-color:rgba(26,25,24,.1)}\n.faq-q{color:var(--txt)}\n.faq-icon{color:var(--txt3)}\n/* how step */\n.how-num{background:var(--pink)}\n/* app btn on cream */\n.app-btn{background:#fff;color:var(--txt);border-color:rgba(26,25,24,.12)}\n.app-btn:hover{background:#f0ece4}\n.app-feat svg{color:var(--pink)}\n/* ow methods on cream */\n.ow-method{border-color:rgba(26,25,24,.08)}\n.ow-icon{background:rgba(192,65,90,.05);border-color:rgba(192,65,90,.1)}\n.ow-icon svg{color:var(--pink)}\n.ow-method:hover .ow-name{color:var(--pink)}\n.ow-arrow{color:rgba(26,25,24,.2)}\n/* other-ways section */\n.other-ways{border-color:rgba(26,25,24,.08)}\n/* how grid connector line */\n.how-grid::before{background:linear-gradient(90deg,transparent,rgba(192,65,90,.15) 20%,rgba(192,65,90,.15) 80%,transparent)}\n\n/* DARK MODE overrides */\n@media(prefers-color-scheme:dark){\n  .how-section,.cov-section,.app-section{background:var(--bg2)!important}\n  .speed-section,.free-section,.faq-section,.other-ways{background:var(--bg)!important}\n  .how-h2,.speed-h2,.cov-h2,.free-h2,.app-h2,.faq-h2{color:#fff}\n  .how-title,.speed-name,.ow-hl,.ow-name,.faq-q{color:var(--txt,var(--ink,var(--dark2,#1a1918)))}\n  .how-desc,.speed-desc,.speed-note,.cov-lead,.cov-note,.app-body,.free-body,.faq-a{color:var(--txt2)}\n  .eyebrow-m{color:rgba(201,168,76,.75)}\n  .pin-num{color:var(--gold)}\n  .pin-area{color:var(--txt3)}\n  .pin-tag{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}\n  .speed-card{background:var(--surf);border-color:var(--surf-b)}\n  .speed-card.popular{background:rgba(201,168,76,.05);border-color:rgba(201,168,76,.35)}\n  .speed-icon{background:rgba(201,168,76,.08);border-color:rgba(201,168,76,.15);color:var(--gold)}\n  .speed-time{color:var(--gold)}\n  .thresh-item{background:var(--surf);border-color:rgba(201,168,76,.15)}\n  .thresh-val{color:var(--gold)}\n  .faq-item,.faq-item:first-of-type{border-color:var(--surf-b)}\n  .faq-icon{color:var(--txt3)}\n  .app-btn{background:var(--surf);color:#fff;border-color:var(--surf-b)}\n  .app-btn:hover{background:rgba(255,255,255,.09)}\n  .app-feat svg{color:var(--pink)}\n  .ow-method{border-color:var(--surf-b)}\n  .ow-icon{background:rgba(201,168,76,.05);border-color:rgba(201,168,76,.15)}\n  .ow-icon svg{color:var(--gold)}\n  .ow-hours{background:rgba(201,168,76,.05);border-color:rgba(201,168,76,.12)}\n  .ow-hours strong{color:rgba(201,168,76,.7)}\n  .other-ways{border-color:var(--surf-b)}\n  .how-grid::before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1) 20%,rgba(255,255,255,.1) 80%,transparent)}\n}\n\n/* ══ GARMENT CARE SYMBOLS — floating background ══ */\n.garment-bg{\n  position:absolute;inset:0;\n  pointer-events:none;overflow:hidden;\n  z-index:0;\n  opacity:.06; /* very subtle on light bg */\n}\n@media(prefers-color-scheme:dark){.garment-bg{opacity:.04}}\n\n.garment-symbol{\n  position:absolute;\n  font-size:clamp(20px,3vw,36px);\n  color:var(--pink);\n  animation:garmentFloat var(--gd,20s) ease-in-out infinite var(--gdelay,0s);\n  user-select:none;\n  line-height:1;\n}\n@keyframes garmentFloat{\n  0%   {transform:translateY(0) rotate(0deg);   opacity:0}\n  5%   {opacity:1}\n  45%  {transform:translateY(-18px) rotate(3deg);opacity:1}\n  55%  {transform:translateY(-18px) rotate(-3deg);opacity:1}\n  95%  {opacity:.8}\n  100% {transform:translateY(0) rotate(0deg);   opacity:0}\n}\n\n/* Sections that get the garment background */\n.how-section,.speed-section,.cov-section,.free-section,\n.app-section,.faq-section,.other-ways{position:relative;overflow:hidden}\n\n/* ── SECTION TEXT — explicit contrast on light bg ── */\n.how-h2,.speed-h2,.cov-h2,.free-h2,.app-h2,.faq-h2{color:var(--txt)}\n.how-title{color:var(--txt);font-size:clamp(18px,2vw,24px)}\n.how-desc,.speed-desc,.speed-note,.cov-lead,.cov-note,.app-body,.free-body,.faq-a{color:var(--txt2)}\n.speed-time{color:var(--pink)}\n.speed-name{color:var(--txt)}\n.eyebrow-m{color:var(--pink);opacity:1}\n.pin-num{color:var(--pink)}\n.pin-area{color:var(--txt2)}\n.thresh-val{color:var(--pink)}\n.thresh-lbl{color:var(--txt3)}\n.thresh-or{color:var(--txt3)}\n.ow-hl{color:var(--txt)}\n.ow-name{color:var(--txt)}\n.ow-detail{color:var(--txt3)}\n.ow-hours{background:rgba(192,65,90,.05);border-color:rgba(192,65,90,.15)}\n.ow-hours strong{color:var(--pink)}\n.app-feat{color:var(--txt2)}\n/* pin tag on cream */\n.pin-tag{background:rgba(26,25,24,.04);border-color:rgba(26,25,24,.1)}\n.pin-tag:hover{border-color:rgba(192,65,90,.25);background:rgba(192,65,90,.03)}\n/* speed card on cream */\n.speed-card{background:#fff;border-color:rgba(26,25,24,.1)}\n.speed-card:hover{background:rgba(192,65,90,.03);border-color:rgba(192,65,90,.2)}\n.speed-card.popular{background:rgba(192,65,90,.05);border-color:rgba(192,65,90,.3)}\n.speed-icon{background:rgba(192,65,90,.06);border-color:rgba(192,65,90,.15);color:var(--pink)}\n.speed-note{border-color:rgba(26,25,24,.08);color:var(--txt3)}\n/* thresh items on cream */\n.thresh-item{background:#fff;border-color:rgba(201,168,76,.2)}\n/* faq on cream */\n.faq-item,.faq-item:first-of-type{border-color:rgba(26,25,24,.1)}\n.faq-q{color:var(--txt)}\n.faq-icon{color:var(--txt3)}\n/* how step */\n.how-num{background:var(--pink)}\n/* app btn on cream */\n.app-btn{background:#fff;color:var(--txt);border-color:rgba(26,25,24,.12)}\n.app-btn:hover{background:#f0ece4}\n.app-feat svg{color:var(--pink)}\n/* ow methods on cream */\n.ow-method{border-color:rgba(26,25,24,.08)}\n.ow-icon{background:rgba(192,65,90,.05);border-color:rgba(192,65,90,.1)}\n.ow-icon svg{color:var(--pink)}\n.ow-method:hover .ow-name{color:var(--pink)}\n.ow-arrow{color:rgba(26,25,24,.2)}\n/* other-ways section */\n.other-ways{border-color:rgba(26,25,24,.08)}\n/* how grid connector line */\n.how-grid::before{background:linear-gradient(90deg,transparent,rgba(192,65,90,.15) 20%,rgba(192,65,90,.15) 80%,transparent)}\n\n/* DARK MODE overrides */\n@media(prefers-color-scheme:dark){\n  .how-section,.cov-section,.app-section{background:var(--bg2)!important}\n  .speed-section,.free-section,.faq-section,.other-ways{background:var(--bg)!important}\n  .how-h2,.speed-h2,.cov-h2,.free-h2,.app-h2,.faq-h2{color:#fff}\n  .how-title,.speed-name,.ow-hl,.ow-name,.faq-q{color:var(--txt,var(--ink,var(--dark2,#1a1918)))}\n  .how-desc,.speed-desc,.speed-note,.cov-lead,.cov-note,.app-body,.free-body,.faq-a{color:var(--txt2)}\n  .eyebrow-m{color:rgba(201,168,76,.75)}\n  .pin-num{color:var(--gold)}\n  .pin-area{color:var(--txt3)}\n  .pin-tag{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}\n  .speed-card{background:var(--surf);border-color:var(--surf-b)}\n  .speed-card.popular{background:rgba(201,168,76,.05);border-color:rgba(201,168,76,.35)}\n  .speed-icon{background:rgba(201,168,76,.08);border-color:rgba(201,168,76,.15);color:var(--gold)}\n  .speed-time{color:var(--gold)}\n  .thresh-item{background:var(--surf);border-color:rgba(201,168,76,.15)}\n  .thresh-val{color:var(--gold)}\n  .faq-item,.faq-item:first-of-type{border-color:var(--surf-b)}\n  .faq-icon{color:var(--txt3)}\n  .app-btn{background:var(--surf);color:#fff;border-color:var(--surf-b)}\n  .app-btn:hover{background:rgba(255,255,255,.09)}\n  .app-feat svg{color:var(--pink)}\n  .ow-method{border-color:var(--surf-b)}\n  .ow-icon{background:rgba(201,168,76,.05);border-color:rgba(201,168,76,.15)}\n  .ow-icon svg{color:var(--gold)}\n  .ow-hours{background:rgba(201,168,76,.05);border-color:rgba(201,168,76,.12)}\n  .ow-hours strong{color:rgba(201,168,76,.7)}\n  .other-ways{border-color:var(--surf-b)}\n  .how-grid::before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1) 20%,rgba(255,255,255,.1) 80%,transparent)}\n}\n\n/* ── Hero is always dark regardless of system setting ── */\nsection#book-form,section#book-form *{--bg:#1a1918}\nsection#book-form{background:#1a1918!important}\nsection#book-form .f-brand-tag{color:var(--gold)!important}\nsection#book-form .f-title{color:#fff!important}\nsection#book-form .f-badge{color:rgba(255,255,255,.4)!important}\nsection#book-form .f-q{color:#fff!important}\nsection#book-form .f-q em{color:var(--gold)!important}\nsection#book-form .f-step-txt{color:rgba(255,255,255,.35)!important}\nsection#book-form .f-step-txt strong{color:#fff!important}\nsection#book-form .f-dot{background:rgba(255,255,255,.2)!important}\nsection#book-form .f-dot.cur{background:var(--gold)!important}\nsection#book-form .f-dot.done{background:var(--pink)!important}\nsection#book-form .f-box{background:rgba(255,255,255,.06)!important;border-color:rgba(255,255,255,.12)!important}\nsection#book-form .f-in{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.12)!important;color:#fff!important}\nsection#book-form .f-in::placeholder{color:rgba(255,255,255,.3)!important}\nsection#book-form .f-lbl{color:rgba(255,255,255,.4)!important}\nsection#book-form .f-pfx{color:rgba(255,255,255,.35)!important}\nsection#book-form .f-hint{color:rgba(255,255,255,.3)!important}\nsection#book-form .f-hint kbd{color:rgba(255,255,255,.35)!important;background:rgba(255,255,255,.1)!important;border-color:rgba(255,255,255,.15)!important}\nsection#book-form .f-bar-row{border-color:rgba(255,255,255,.1)!important}\nsection#book-form .f-sub{color:rgba(255,255,255,.3)!important}\nsection#book-form .f-sub a{color:rgba(201,168,76,.5)!important}\nsection#book-form .f-back{color:rgba(255,255,255,.3)!important}\nsection#book-form .profile-card{background:rgba(201,168,76,.08)!important;border-color:rgba(201,168,76,.2)!important}\nsection#book-form .profile-name{color:#fff!important}\nsection#book-form .profile-detail{color:rgba(255,255,255,.45)!important}\nsection#book-form .edit-btn{color:rgba(201,168,76,.55)!important}\nsection#book-form .choice-card{background:rgba(255,255,255,.05)!important;border-color:rgba(255,255,255,.1)!important}\nsection#book-form .choice-card:hover,section#book-form .choice-card.on{background:rgba(201,168,76,.1)!important;border-color:rgba(201,168,76,.4)!important}\nsection#book-form .choice-name{color:#fff!important}\nsection#book-form .choice-sub{color:rgba(255,255,255,.4)!important}\nsection#book-form .tnc-wrap{background:rgba(255,255,255,.03)!important;border-color:rgba(255,255,255,.08)!important}\nsection#book-form .tnc-hd{color:rgba(255,255,255,.4)!important}\nsection#book-form .tnc-body{border-color:rgba(255,255,255,.06)!important}\nsection#book-form .tnc-item{color:rgba(255,255,255,.45)!important}\nsection#book-form .agree-txt{color:rgba(255,255,255,.4)!important}\nsection#book-form .agree-box{border-color:rgba(255,255,255,.2)!important}\nsection#book-form .captcha-row{background:rgba(255,255,255,.03)!important;border-color:rgba(255,255,255,.08)!important}\nsection#book-form .cap-check{border-color:rgba(255,255,255,.2)!important}\nsection#book-form .cap-lbl{color:rgba(255,255,255,.45)!important}\nsection#book-form .cap-logo{color:rgba(255,255,255,.2)!important}\nsection#book-form .otp-d{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.12)!important;color:#fff!important}\nsection#book-form .otp-hint{color:rgba(255,255,255,.4)!important}\nsection#book-form .otp-resend{color:rgba(201,168,76,.55)!important}\nsection#book-form .otp-timer{color:rgba(255,255,255,.3)!important}\nsection#book-form .f-err{color:var(--pink)!important}\nsection#book-form .f-alert{color:var(--pink)!important;background:rgba(192,65,90,.08)!important;border-color:rgba(192,65,90,.2)!important}\nsection#book-form .f-confirm-note{color:rgba(255,255,255,.2)!important}\n\n.faq-a{color:var(--txt2,#3d3a36);line-height:2}\n\nbody{color:#1a1918}\n@media(prefers-color-scheme:dark){body{color:#fff}}\n\n/* ═══════════════════════════════════════════════\n   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@media print{.wa-float,.bookPill,.seasonal-banner{display:none!important}body{font-size:11pt;color:#000}}\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\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/* ═══ 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  /* reCAPTCHA-protected OTP send. If reCAPTCHA isn't configured, sends without token (server still validates). */\n  function sendOTPWithCaptcha(phone){\n    function go(token){\n      return fetch('/api/otp/send',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({phone:'91'+phone, recaptchaToken: token||''})});\n    }\n    if(window.grecaptcha && typeof grecaptcha.execute==='function'){\n      try{ return grecaptcha.execute('YOUR_RECAPTCHA_V3_SITE_KEY',{action:'otp_send'}).then(go); }\n      catch(e){ return go(''); }\n    }\n    return go('');\n  }\n\n\n/* ── Helpers ── */\nfunction esc(s){return String(s||'').replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;')}\nfunction isPhone(p){return /^[6-9][0-9]{9}$/.test(p)}\nfunction isEmail(e){return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(e)}\nfunction isPin(p){return /^[1-9][0-9]{5}$/.test(p)}\nfunction isSun(v){return new Date(v).getDay()===0}\nfunction today(){var d=new Date();return d.getFullYear()+'-'+String(d.getMonth()+1).padStart(2,'0')+'-'+String(d.getDate()).padStart(2,'0')}\nfunction g(id){return document.getElementById(id)}\nfunction showErr(id,msg){var e=g(id);if(e){e.textContent=msg;e.classList.add('on')}}\nfunction clearErr(id){var e=g(id);if(e)e.classList.remove('on')}\nfunction setV(id,ok){var e=g(id);if(e){e.classList.toggle('ok',ok);e.classList.toggle('bad',!ok)}}\n\n/* ── State ── */\nvar phone='', flow='', clientData={};\nvar rAgree=false, rCap=false, nAgree=false, nCap=false;\nvar rTime='', nTime='', rGarments='', nGarments='';\nvar timerInt=null, timerSecs=30;\n\n/* ── Dot progress ── */\nfunction setProgress(cur, total){\n  var txt=g('fStepTxt'), row=g('fDots'); if(!txt||!row) return;\n  if(!total){txt.innerHTML='';row.innerHTML='';return}\n  txt.innerHTML='<strong>'+cur+'</strong> / '+total;\n  row.innerHTML='';\n  for(var i=1;i<=total;i++){\n    var d=document.createElement('div');\n    d.className='f-dot'+(i<cur?' done':i===cur?' cur':'');\n    row.appendChild(d);\n  }\n  row.setAttribute('aria-valuenow',Math.min(cur,total));\n  row.setAttribute('aria-valuemax',total);\n}\n\n/* ── Slide ── */\nfunction slide(fromId, toId, dir){\n  var fc=g(fromId), tc=g(toId); if(!fc||!tc) return;\n  fc.classList.remove('active');\n  fc.classList.add(dir==='f'?'out-l':'out-r');\n  tc.classList.remove('active','out-l','out-r','in-r','in-l');\n  tc.classList.add(dir==='f'?'in-r':'in-l');\n  void tc.offsetWidth;\n  tc.classList.remove('in-r','in-l');\n  tc.classList.add('active');\n  setTimeout(function(){fc.classList.remove('out-l','out-r')}, 480);\n  /* Focus first useful input */\n  setTimeout(function(){\n    var inp=tc.querySelector('input:not([type=date]),textarea');\n    if(inp) inp.focus();\n  }, 500);\n}\n\n/* ── Sent bubble ── */\nfunction showSent(wrapId, text){\n  var w=g(wrapId), b=g(wrapId+'T');\n  if(w&&b){b.textContent=text; w.classList.add('show');}\n}\n\n/* ── Set date min ── */\n['rDate','nDate'].forEach(function(id){\n  var el=g(id); if(el) el.setAttribute('min',today());\n});\n\n/* ── Date change — block sundays ── */\n['rDate','nDate'].forEach(function(id){\n  var el=g(id); if(!el) return;\n  var errId = id==='rDate'?'rDateErr':'nDateErr';\n  el.addEventListener('change', function(){\n    if(isSun(this.value)){\n      showErr(errId,'We are closed Sundays. Please choose Mon–Sat.');\n      this.classList.add('bad'); this.value='';\n    } else {\n      clearErr(errId); this.classList.remove('bad');\n    }\n  });\n});\n\n/* ── Phone live validation ── */\ng('inPhone').addEventListener('input', function(){\n  this.value = this.value.replace(/[^0-9]/g,'').slice(0,10);\n  if(this.value.length===10){ var ok=isPhone(this.value); setV('inPhone',ok); if(ok) clearErr('phoneErr'); }\n  else this.classList.remove('ok','bad');\n});\n\n/* ── PIN / coupon inputs ── */\n['eePin','nPin'].forEach(function(id){\n  var el=g(id); if(el) el.addEventListener('input',function(){this.value=this.value.replace(/[^0-9]/g,'').slice(0,6);});\n});\n['rCoupon','nCoupon'].forEach(function(id){\n  var el=g(id); if(el) el.addEventListener('input',function(){this.value=this.value.toUpperCase().replace(/[^A-Z0-9]/g,'');});\n});\n\n/* ── OTP digits ── */\nvar digits = Array.from(g('otpRow').querySelectorAll('.otp-d'));\ndigits.forEach(function(d,i){\n  d.addEventListener('input', function(){\n    this.value = this.value.replace(/[^0-9]/g,'').slice(-1);\n    if(this.value && i < digits.length-1) digits[i+1].focus();\n    if(digits.every(function(x){return x.value;})) g('btnVerify').click();\n  });\n  d.addEventListener('keydown', function(e){\n    if(e.key==='Backspace' && !this.value && i>0){ digits[i-1].focus(); digits[i-1].value=''; }\n    if(e.key==='ArrowLeft' && i>0) digits[i-1].focus();\n    if(e.key==='ArrowRight' && i<digits.length-1) digits[i+1].focus();\n  });\n  d.addEventListener('paste', function(e){\n    var pasted = (e.clipboardData||window.clipboardData).getData('text').replace(/[^0-9]/g,'').slice(0,6);\n    if(pasted.length===6){\n      e.preventDefault();\n      digits.forEach(function(x,j){x.value=pasted[j]||'';});\n      digits[5].focus();\n      setTimeout(function(){g('btnVerify').click();}, 200);\n    }\n  });\n});\n\n/* ── OTP timer ── */\nfunction startTimer(){\n  timerSecs=30; g('btnResend').disabled=true;\n  if(timerInt) clearInterval(timerInt);\n  timerInt = setInterval(function(){\n    timerSecs--;\n    var t=g('otpTimer'); if(t) t.textContent = timerSecs>0 ? 'Resend in '+timerSecs+'s' : '';\n    if(timerSecs<=0){ clearInterval(timerInt); g('btnResend').disabled=false; }\n  }, 1000);\n}\n\n/* ── Choice cards — time ── */\ndocument.querySelectorAll('.choice-card[data-t]').forEach(function(card){\n  function sel(){\n    var parent = card.closest('.f-card'); if(!parent) return;\n    parent.querySelectorAll('.choice-card[data-t]').forEach(function(c){c.classList.remove('on');c.setAttribute('aria-pressed','false');});\n    card.classList.add('on'); card.setAttribute('aria-pressed','true');\n    var t = card.dataset.t;\n    if(parent.id==='c4r') rTime=t; else nTime=t;\n    clearErr(parent.id==='c4r'?'rTimeErr':'nTimeErr');\n  }\n  card.addEventListener('click', sel);\n  card.addEventListener('keydown', function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();sel();}});\n});\n\n/* ── Choice cards — garments ── */\ndocument.querySelectorAll('.choice-card[data-g]').forEach(function(card){\n  function sel(){\n    var parent = card.closest('.f-card'); if(!parent) return;\n    parent.querySelectorAll('.choice-card[data-g]').forEach(function(c){c.classList.remove('on');c.setAttribute('aria-pressed','false');});\n    card.classList.add('on'); card.setAttribute('aria-pressed','true');\n    var g2 = card.dataset.g;\n    if(parent.id==='c4r') rGarments=g2; else nGarments=g2;\n  }\n  card.addEventListener('click', sel);\n  card.addEventListener('keydown', function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();sel();}});\n});\n\n/* ── T&C toggles ── */\n[['rTncHd','rTncBd'],['nTncHd','nTncBd']].forEach(function(p){\n  var hd=g(p[0]), bd=g(p[1]); if(!hd||!bd) return;\n  hd.addEventListener('click', function(){\n    var open=bd.classList.toggle('open'); hd.classList.toggle('open',open); hd.setAttribute('aria-expanded',open);\n  });\n});\n\n/* ── Agree + Captcha ── */\nfunction setupCheck(elId, errId, setter){\n  var el=g(elId); if(!el) return;\n  el.addEventListener('click', function(){\n    var on=!this.classList.contains('on'); this.classList.toggle('on',on); this.setAttribute('aria-checked',on);\n    setter(on); if(on) clearErr(errId);\n  });\n  el.addEventListener('keydown', function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();this.click();}});\n}\nsetupCheck('rAgree','rAgreeErr',function(v){rAgree=v;});\nsetupCheck('rCap','rCapErr',function(v){rCap=v;});\nsetupCheck('nAgree','nAgreeErr',function(v){nAgree=v;});\nsetupCheck('nCap','nCapErr',function(v){nCap=v;});\n\n/* ── Edit toggle ── */\ng('editBtn').addEventListener('click', function(){\n  var f=g('editFields'); f.classList.toggle('show');\n  this.textContent = f.classList.contains('show') ? 'Hide edit form ↑' : 'Edit my details ↓';\n});\n\n/* ════ FLOW ════ */\n\n/* CARD 1 — Send OTP */\nfunction doSendOTP(){\n  phone = (g('inPhone').value||'').replace(/\\s/g,'');\n  clearErr('phoneErr');\n  if(!isPhone(phone)){showErr('phoneErr','Please enter a valid 10-digit Indian mobile number.');setV('inPhone',false);return;}\n  setV('inPhone',true);\n  g('otpNum').textContent = phone;\n  digits.forEach(function(d){d.value='';});\n  clearErr('otpErr');\n  startTimer();\n  sendOTPWithCaptcha(phone)\n  .then(function(){}).catch(function(){});\n  slide('c1','c2','f');\n  setTimeout(function(){if(digits[0]) digits[0].focus();}, 500);\n}\ng('btnOTP').addEventListener('click', doSendOTP);\n\n/* CARD 2 — Back */\ng('backC2').addEventListener('click', function(){if(timerInt)clearInterval(timerInt); slide('c2','c1','b'); setProgress(0,0);});\n\n/* CARD 2 — Resend */\ng('btnResend').addEventListener('click', function(){\n  digits.forEach(function(d){d.value='';});clearErr('otpErr');startTimer();\n  sendOTPWithCaptcha(phone).then(function(){}).catch(function(){});\n});\n\n/* CARD 2 — Verify OTP */\nvar verifyingOtp=false;\ng('btnVerify').addEventListener('click', function(){\n  var otp = digits.map(function(d){return d.value;}).join('');\n  clearErr('otpErr');\n  if(otp.length<5){showErr('otpErr','Please enter all 5 digits.');return;}\n  if(verifyingOtp) return;\n  verifyingOtp=true;\n  var btn=this; btn.disabled=true;\n  /* Developer: POST /api/otp/verify returns {success, isExisting, client{name,email,addr1,area,city,pincode,token}} */\n  fetch('/api/otp/verify',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({phone:'91'+phone,otp:otp})})\n  .then(function(r){return r.json();})\n  .catch(function(){\n    return {success:false,error:'Could not verify right now. Please try again.'};\n  })\n  .then(function(data){\n    verifyingOtp=false; btn.disabled=false;\n    if(!data.success){showErr('otpErr', data.error||'Incorrect OTP. Please try again.');return;}\n    if(timerInt) clearInterval(timerInt);\n    clientData = data.client||{};\n    try{\n      if(data.token||clientData.token){ sessionStorage.setItem('tsl_token', data.token||clientData.token); sessionStorage.setItem('tsl_verified','1'); sessionStorage.setItem('tsl_phone','91'+phone); window.dispatchEvent(new Event('tsl-auth-change')); }\n    }catch(e){}\n    if(timerInt) clearInterval(timerInt);\n    showSent('sent1', '+91 '+esc(phone));\n    showSent('sent1n', '+91 '+esc(phone));\n    if(data.isExisting){\n      flow='returning';\n      /* Populate profile card */\n      g('pName').textContent = clientData.name||'Your name';\n      g('pDetail').textContent = [clientData.addr1,clientData.area,clientData.city,clientData.pincode?'– '+clientData.pincode:''].filter(Boolean).join(', ')+(clientData.email?'\\n'+clientData.email:'');\n      /* Pre-fill edit fields */\n      if(clientData.name) g('eeName').value=clientData.name;\n      if(clientData.email) g('eeEmail').value=clientData.email;\n      if(clientData.addr1) g('eeAddr1').value=clientData.addr1;\n      if(clientData.area) g('eeArea').value=clientData.area;\n      if(clientData.city) g('eeCity').value=clientData.city;\n      if(clientData.pincode) g('eePin').value=clientData.pincode;\n      setProgress(1,2);\n      slide('c2','c3r','f');\n    } else {\n      flow='new';\n      setProgress(1,3);\n      slide('c2','c3n','f');\n    }\n  });\n});\n\n/* ── RETURNING FLOW ── */\ng('btnR1').addEventListener('click', function(){\n  /* Save edits if visible */\n  if(g('editFields').classList.contains('show')){\n    if(g('eeName').value) clientData.name=g('eeName').value.trim();\n    if(g('eeEmail').value) clientData.email=g('eeEmail').value.trim();\n    if(g('eeAddr1').value) clientData.addr1=g('eeAddr1').value.trim();\n    if(g('eeArea').value) clientData.area=g('eeArea').value.trim();\n    if(g('eeCity').value) clientData.city=g('eeCity').value.trim();\n    if(g('eePin').value) clientData.pincode=g('eePin').value.trim();\n    /* Developer: POST /api/account/update */\n  }\n  showSent('sent2r', esc(clientData.name||'')+(clientData.addr1?' · '+esc(clientData.addr1):''));\n  setProgress(2,2);\n  slide('c3r','c4r','f');\n});\ng('backC4r').addEventListener('click', function(){setProgress(1,2); slide('c4r','c3r','b');});\n\ng('rSubmit').addEventListener('click', function(){\n  var date=(g('rDate').value||''), ok=true;\n  clearErr('rDateErr');clearErr('rTimeErr');clearErr('rAgreeErr');clearErr('rCapErr');\n  if(!date||isSun(date)){showErr('rDateErr','Please select a valid date (Mon–Sat).');ok=false;}\n  if(!rTime){showErr('rTimeErr','Please select a time window.');ok=false;}\n  if(!rAgree){showErr('rAgreeErr','Please agree to the pickup terms.');ok=false;}\n  if(!rCap){showErr('rCapErr','Please confirm you are not a robot.');ok=false;}\n  if(!ok) return;\n  var p={phone:'91'+phone,name:clientData.name||'',email:clientData.email||'',\n    token:clientData.token||'',\n    addr1:clientData.addr1||'',addr2:'',area:clientData.area||'',\n    city:clientData.city||'Kolkata',pincode:clientData.pincode||'',\n    landmark:clientData.landmark||'',date:date,time:rTime,\n    garments:rGarments,notes:(g('rNotes').value||'').trim(),\n    coupon:(g('rCoupon').value||'').trim(),type:'returning'};\n  doSubmit(p, g('rSubmit'));\n});\n\n/* ── NEW CLIENT FLOW ── */\ng('btnN1').addEventListener('click', function(){\n  var name=(g('nName').value||'').trim(), email=(g('nEmail').value||'').trim();\n  clearErr('nNameErr');clearErr('nEmailErr'); var ok=true;\n  if(!name){showErr('nNameErr','Please enter your name.');ok=false;}\n  if(!isEmail(email)){showErr('nEmailErr','Please enter a valid email.');ok=false;}\n  if(!ok) return;\n  showSent('sent2n', esc(name)+' · '+esc(email));\n  setProgress(2,3);\n  slide('c3n','c4n','f');\n});\ng('backC4n').addEventListener('click', function(){setProgress(1,3); slide('c4n','c3n','b');});\n\ng('btnN2').addEventListener('click', function(){\n  var a1=(g('nAddr1').value||'').trim(),area=(g('nArea').value||'').trim(),pin=(g('nPin').value||'').trim();\n  clearErr('nAddr1Err');clearErr('nAreaErr');clearErr('nPinErr'); var ok=true;\n  if(!a1){showErr('nAddr1Err','Required.');ok=false;}\n  if(!area){showErr('nAreaErr','Required.');ok=false;}\n  if(!isPin(pin)){showErr('nPinErr','Valid 6-digit PIN required.');ok=false;}\n  if(!ok) return;\n  showSent('sent3n', esc(a1)+', '+esc(area)+', Kolkata '+esc(pin));\n  setProgress(3,3);\n  slide('c4n','c5n','f');\n});\ng('backC5n').addEventListener('click', function(){setProgress(2,3); slide('c5n','c4n','b');});\n\ng('nSubmit').addEventListener('click', function(){\n  var date=(g('nDate').value||''), ok=true;\n  clearErr('nDateErr');clearErr('nTimeErr');clearErr('nAgreeErr');clearErr('nCapErr');\n  if(!date||isSun(date)){showErr('nDateErr','Please select a valid date (Mon–Sat).');ok=false;}\n  if(!nTime){showErr('nTimeErr','Please select a time window.');ok=false;}\n  if(!nAgree){showErr('nAgreeErr','Please agree to the pickup terms.');ok=false;}\n  if(!nCap){showErr('nCapErr','Please confirm you are not a robot.');ok=false;}\n  if(!ok) return;\n  var p={phone:'91'+phone,name:(g('nName').value||'').trim(),email:(g('nEmail').value||'').trim(),\n    addr1:(g('nAddr1').value||'').trim(),addr2:(g('nAddr2').value||'').trim(),\n    area:(g('nArea').value||'').trim(),city:(g('nCity').value||'Kolkata').trim(),\n    pincode:(g('nPin').value||'').trim(),landmark:(g('nLandmark').value||'').trim(),\n    date:date,time:nTime,garments:nGarments,\n    notes:(g('nNotes').value||'').trim(),coupon:(g('nCoupon').value||'').trim(),type:'new'};\n  doSubmit(p, g('nSubmit'));\n});\n\n/* ── Shared submit ── */\nfunction doSubmit(payload, btn){\n  btn.classList.add('loading'); btn.disabled=true;\n  fetch('/api/pickup-enquiry',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(payload)})\n  .then(function(r){return r.json();})\n  .then(function(data){\n    btn.classList.remove('loading'); btn.disabled=false;\n    if(!data.success){\n      alert(data.message||data.error||'Could not book your pickup. Please call or WhatsApp us on 9836233354.');\n      return;\n    }\n    document.querySelectorAll('.f-card').forEach(function(c){c.style.display='none';});\n    document.querySelectorAll('.f-sent').forEach(function(s){s.style.setProperty('display','none','important');});\n    var s=g('fSuccess'); if(s) s.classList.add('on');\n    if(g('sName')) g('sName').textContent=payload.name;\n    if(g('sPhone')) g('sPhone').textContent='+'+payload.phone;\n    if(g('sEmail')) g('sEmail').textContent=payload.email;\n    if(g('fRef')) g('fRef').textContent='Booking Reference: '+(data.ref||'TSL-'+Date.now().toString(36).toUpperCase().slice(-6));\n    setProgress(0,0);\n    var ctr=g('fStepTxt'); if(ctr) ctr.innerHTML='<span style=\"color:var(--gold)\">✓ Received</span>';\n  })\n  .catch(function(){\n    btn.classList.remove('loading'); btn.disabled=false;\n    alert('Could not reach our booking service. Please call or WhatsApp us on 9836233354.');\n  });\n}\n\n/* ── Enter key advances ── */\ndocument.addEventListener('keydown', function(e){\n  if(e.key!=='Enter') return;\n  var tag=(e.target.tagName||'').toLowerCase();\n  if(tag==='textarea'||tag==='button'||tag==='select') return;\n  var active=document.querySelector('.f-card.active');\n  if(!active) return;\n  e.preventDefault();\n  var id=active.id;\n  if(id==='c1') g('btnOTP').click();\n  else if(id==='c2') g('btnVerify').click();\n  else if(id==='c3r') g('btnR1').click();\n  else if(id==='c3n') g('btnN1').click();\n  else if(id==='c4n') g('btnN2').click();\n});\n\n/* ── Page utilities ── */\nwindow.addEventListener('scroll',function(){\n  var b=g('scrollBar'); if(b) b.style.width=(window.scrollY/(document.documentElement.scrollHeight-window.innerHeight)*100)+'%';\n},{passive:true});\n;(function(){\n  var nav=g('nav'); if(!nav) return;\n  function upd(){var h=document.querySelector('.f-hero');if(!h)return;nav.classList.toggle('on-dark',h.getBoundingClientRect().bottom>60);nav.classList.toggle('on-light',h.getBoundingClientRect().bottom<=60);}\n  window.addEventListener('scroll',upd,{passive:true}); upd();\n})();\nif(window.Lenis){var lenis=new window.Lenis({duration:1.2,smoothWheel:true});(function raf(t){lenis.raf(t);requestAnimationFrame(raf)})(0);}\n;(function(){\n  var els=document.querySelectorAll('[data-reveal]'); if(!els.length) return;\n  var obs=new IntersectionObserver(function(evts){evts.forEach(function(e){if(!e.isIntersecting)return;e.target.style.opacity='1';e.target.style.transform='translateY(0)';obs.unobserve(e.target);});},{threshold:0.15});\n  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})();\ndocument.querySelectorAll('.faq-item').forEach(function(item){\n  item.querySelector('.faq-q').addEventListener('click',function(){\n    var open=item.classList.contains('open');\n    document.querySelectorAll('.faq-item').forEach(function(i){i.classList.remove('open');});\n    if(!open) item.classList.add('open');\n  });\n});\n\n/* Init */\nsetProgress(0,0);\n(function resumeVerifiedSession(){\n  var token=null;\n  try{ token=sessionStorage.getItem('tsl_token'); }catch(e){}\n  if(!token){ setTimeout(function(){var p=g('inPhone'); if(p) p.focus();}, 500); return; }\n  fetch('/api/account',{headers:{'Authorization':'Bearer '+token}})\n  .then(function(r){\n    if(r.status===401){\n      try{ sessionStorage.removeItem('tsl_token'); sessionStorage.removeItem('tsl_verified'); sessionStorage.removeItem('tsl_phone'); window.dispatchEvent(new Event('tsl-auth-change')); }catch(e){}\n      throw 0;\n    }\n    if(!r.ok) throw 0;\n    return r.json();\n  })\n  .then(function(acc){\n    var raw=String(acc.phone||'');\n    phone = raw.length>=10 ? raw.slice(-10) : raw;\n    if(!phone){\n      try{ var sp=sessionStorage.getItem('tsl_phone')||''; phone=sp.length>=10?sp.slice(-10):sp; }catch(e){}\n    }\n    clientData={\n      name:acc.name||'',\n      email:acc.email||'',\n      addr1:acc.addr1||'',\n      area:acc.area||'',\n      city:acc.city||'',\n      pincode:acc.pincode||'',\n      landmark:acc.landmark||'',\n      token:token\n    };\n    showSent('sent1', '+91 '+esc(phone));\n    showSent('sent1n', '+91 '+esc(phone));\n    if(acc.name){\n      flow='returning';\n      g('pName').textContent = clientData.name||'Your name';\n      g('pDetail').textContent = [clientData.addr1,clientData.area,clientData.city,clientData.pincode?'– '+clientData.pincode:''].filter(Boolean).join(', ')+(clientData.email?'\\n'+clientData.email:'');\n      if(clientData.name) g('eeName').value=clientData.name;\n      if(clientData.email) g('eeEmail').value=clientData.email;\n      if(clientData.addr1) g('eeAddr1').value=clientData.addr1;\n      if(clientData.area) g('eeArea').value=clientData.area;\n      if(clientData.city) g('eeCity').value=clientData.city;\n      if(clientData.pincode) g('eePin').value=clientData.pincode;\n      setProgress(1,2);\n      slide('c1','c3r','f');\n    } else {\n      flow='new';\n      setProgress(1,3);\n      slide('c1','c3n','f');\n    }\n  })\n  .catch(function(){ setTimeout(function(){var p=g('inPhone'); if(p) p.focus();}, 500); });\n})();\n\n})()\n;\n\nwindow.addEventListener('scroll',function(){var b=document.getElementById('scrollBar');if(b)b.style.width=(window.scrollY/(document.documentElement.scrollHeight-window.innerHeight)*100)+'%';},{passive:true});\n/* nav theme: Header.tsx + data-theme */\nif(window.Lenis){var lenis=new window.Lenis({duration:1.2,smoothWheel:true});(function raf(t){lenis.raf(t);requestAnimationFrame(raf)})(0)}\n;(function(){var els=document.querySelectorAll('[data-reveal]');if(!els.length)return;var obs=new IntersectionObserver(function(evts){evts.forEach(function(e){if(!e.isIntersecting)return;e.target.style.opacity='1';e.target.style.transform='translateY(0)';obs.unobserve(e.target);});},{threshold:0.15});requestAnimationFrame(function(){els.forEach(function(el){el.style.opacity='0';el.style.transform='translateY(16px)';el.style.transition='opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)';obs.observe(el);});});})();\ndocument.querySelectorAll('.faq-item').forEach(function(item){item.querySelector('.faq-q').addEventListener('click',function(){var open=item.classList.contains('open');document.querySelectorAll('.faq-item').forEach(function(i){i.classList.remove('open');});if(!open)item.classList.add('open');});});\n\n;\n\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(){\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<!-- Seasonal banner (update text each season) -->\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<!-- Reading progress bar (shown only on guide pages) -->\n<div class=\"read-progress\" id=\"readProgress\" aria-hidden=\"true\"></div>\n<a href=\"#main\" class=\"skip-link\">Skip to booking form</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\">Book a Pickup</li></ol></nav>\n\n<main id=\"main\">\n<section class=\"f-hero\" id=\"book-form\" aria-labelledby=\"fTitle\">\n  <div class=\"f-deco-layer\" aria-hidden=\"true\">\n    <div class=\"f-dots\"></div>\n    <div class=\"particle\" style=\"left:86%;top:22%;--pd:5.2s;--dd:2.2s\" aria-hidden=\"true\"></div><div class=\"particle\" style=\"left:33%;top:25%;--pd:10.2s;--dd:5.4s\" aria-hidden=\"true\"></div><div class=\"particle\" style=\"left:74%;top:19%;--pd:9.1s;--dd:0.3s\" aria-hidden=\"true\"></div><div class=\"particle\" style=\"left:16%;top:35%;--pd:6.6s;--dd:4.8s\" aria-hidden=\"true\"></div><div class=\"particle\" style=\"left:76%;top:33%;--pd:10.0s;--dd:5.6s\" aria-hidden=\"true\"></div><div class=\"particle\" style=\"left:58%;top:36%;--pd:8.1s;--dd:2.2s\" aria-hidden=\"true\"></div><div class=\"particle\" style=\"left:5%;top:28%;--pd:9.9s;--dd:2.7s\" aria-hidden=\"true\"></div><div class=\"particle\" style=\"left:24%;top:35%;--pd:11.7s;--dd:2.7s\" aria-hidden=\"true\"></div><div class=\"particle\" style=\"left:16%;top:56%;--pd:5.7s;--dd:6.8s\" aria-hidden=\"true\"></div><div class=\"particle\" style=\"left:82%;top:41%;--pd:10.6s;--dd:5.8s\" aria-hidden=\"true\"></div><div class=\"particle\" style=\"left:73%;top:23%;--pd:11.8s;--dd:3.0s\" aria-hidden=\"true\"></div><div class=\"particle\" style=\"left:75%;top:45%;--pd:10.8s;--dd:4.9s\" aria-hidden=\"true\"></div>\n  </div>\n  <div class=\"f-bar f-pad\" id=\"fBar\">\n    <div>\n      <span class=\"f-brand-tag\">The Swiss Laundry — Professional Laundry, Dry Cleaning &amp; Carpet Cleaning</span>\n      <h1 id=\"fTitle\" class=\"f-title\">Book a pickup from your doorstep — <em>takes under 1 min.</em></h1>\n      <span class=\"f-trust\">Pickup from all over Kolkata.</span>\n    </div>\n    <div class=\"f-progress\" id=\"fProgress\">\n      <span class=\"f-step-txt\" id=\"fStepTxt\"></span>\n      <div class=\"f-dots-row\" id=\"fDots\" role=\"progressbar\" aria-label=\"Booking progress\" aria-valuemin=\"1\" aria-valuemax=\"1\"></div>\n    </div>\n  </div>\n  <div class=\"f-stage f-pad\" id=\"fStage\">\n    <div class=\"f-card active\" id=\"c1\">\n  <span class=\"f-badge\"><span class=\"f-badge-dot\"></span>Book a Pickup</span>\n  <p class=\"f-q\">Start booking —<br><em>enter your number below.</em></p>\n  <div class=\"f-box\">\n    <label class=\"f-lbl\" for=\"inPhone\">Mobile Number</label>\n    <div class=\"f-pfx-wrap\">\n      <span class=\"f-pfx\" aria-hidden=\"true\">+91</span>\n      <input class=\"f-in pfx\" type=\"tel\" id=\"inPhone\" placeholder=\"XXXXXXXXXX\" maxlength=\"10\" inputmode=\"numeric\" autocomplete=\"tel-national\">\n    </div>\n    <div class=\"f-err\" id=\"phoneErr\"></div>\n    <div class=\"f-bar-row\">\n      <span class=\"f-hint\">Press <kbd>Enter ↵</kbd> or tap →</span>\n      <button type=\"button\" class=\"f-send\" id=\"btnOTP\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg></button>\n    </div>\n  </div>\n  <span class=\"f-sub\">Enter your number · Verify with OTP for account security · We never share your details. <a href=\"/privacy-policy\">Privacy Policy</a>.</span>\n</div><div class=\"f-card in-r\" id=\"c2\">\n      <button type=\"button\" class=\"f-back show\" id=\"backC2\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M19 12H5M12 19l-7-7 7-7\"></path></svg> Back</button>\n      <span class=\"f-badge\"><span class=\"f-badge-dot\"></span>Verify your number</span>\n      <p class=\"f-q\">Enter the OTP<br><em>we just sent.</em></p>\n      <div class=\"f-box\">\n        <span class=\"otp-hint\">A 5-digit code was sent to +91 <strong id=\"otpNum\"></strong></span>\n        <div class=\"otp-row\" id=\"otpRow\" role=\"group\" aria-label=\"Enter 5-digit OTP\">\n          <input class=\"otp-d\" type=\"text\" maxlength=\"1\" inputmode=\"numeric\" pattern=\"[0-9]\" autocomplete=\"one-time-code\" aria-label=\"Digit 1\">\n          <input class=\"otp-d\" type=\"text\" maxlength=\"1\" inputmode=\"numeric\" pattern=\"[0-9]\" aria-label=\"Digit 2\">\n          <input class=\"otp-d\" type=\"text\" maxlength=\"1\" inputmode=\"numeric\" pattern=\"[0-9]\" aria-label=\"Digit 3\">\n          <input class=\"otp-d\" type=\"text\" maxlength=\"1\" inputmode=\"numeric\" pattern=\"[0-9]\" aria-label=\"Digit 4\">\n          <input class=\"otp-d\" type=\"text\" maxlength=\"1\" inputmode=\"numeric\" pattern=\"[0-9]\" aria-label=\"Digit 5\">\n          \n        </div>\n        <div class=\"f-err\" id=\"otpErr\"></div>\n        <div class=\"otp-footer\">\n          <button type=\"button\" class=\"otp-resend\" id=\"btnResend\" disabled=\"\">Resend OTP</button>\n          <span class=\"otp-timer\" id=\"otpTimer\">Resend in 30s</span>\n        </div>\n        <div class=\"f-bar-row\">\n          <span class=\"f-hint\">Enter all 5 digits</span>\n          <button type=\"button\" class=\"f-send\" id=\"btnVerify\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg></button>\n        </div>\n      </div>\n    </div><div class=\"f-card in-r\" id=\"c3r\">\n      <span class=\"f-badge\"><span class=\"f-badge-dot\"></span>Step 1 of 2 · Welcome back</span>\n      <p class=\"f-q\">Good to have you back.<br><em>Are these still correct?</em></p>\n      <div class=\"f-sent\" id=\"sent1\"><div class=\"f-sent-bubble\" id=\"sent1T\"></div><span class=\"f-sent-label\">Verified number</span></div>\n      <div class=\"f-box\">\n        <div class=\"profile-card\">\n          <span class=\"profile-name\" id=\"pName\">Loading...</span>\n          <span class=\"profile-detail\" id=\"pDetail\">Loading details...</span>\n          <button type=\"button\" class=\"edit-btn\" id=\"editBtn\">Edit my details ↓</button>\n        </div>\n        <div class=\"edit-fields\" id=\"editFields\">\n          <div class=\"f-g2\">\n            <div><label class=\"f-lbl\" for=\"eeName\">Full Name</label><input class=\"f-in\" type=\"text\" id=\"eeName\" autocomplete=\"name\" style=\"margin-bottom:0\"></div>\n            <div><label class=\"f-lbl\" for=\"eeEmail\">Email</label><input class=\"f-in\" type=\"email\" id=\"eeEmail\" autocomplete=\"email\" style=\"margin-bottom:0\"></div>\n          </div>\n          <label class=\"f-lbl\" for=\"eeAddr1\">Address Line 1</label>\n          <input class=\"f-in\" type=\"text\" id=\"eeAddr1\" autocomplete=\"address-line1\">\n          <div class=\"f-g3\">\n            <div><label class=\"f-lbl\" for=\"eeArea\">Area</label><input class=\"f-in\" type=\"text\" id=\"eeArea\" style=\"margin-bottom:0\"></div>\n            <div><label class=\"f-lbl\" for=\"eeCity\">City</label><input class=\"f-in\" type=\"text\" id=\"eeCity\" value=\"Kolkata\" style=\"margin-bottom:0\"></div>\n            <div><label class=\"f-lbl\" for=\"eePin\">PIN</label><input class=\"f-in\" type=\"text\" id=\"eePin\" maxlength=\"6\" inputmode=\"numeric\" style=\"margin-bottom:0\"></div>\n          </div>\n        </div>\n        <div class=\"f-bar-row\">\n          <span class=\"f-hint\">Confirm or edit above</span>\n          <button type=\"button\" class=\"f-send\" id=\"btnR1\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg></button>\n        </div>\n      </div>\n    </div><div class=\"f-card in-r\" id=\"c4r\">\n      <button type=\"button\" class=\"f-back show\" id=\"backC4r\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M19 12H5M12 19l-7-7 7-7\"></path></svg> Step 1</button>\n      <span class=\"f-badge\"><span class=\"f-badge-dot\"></span>Step 2 of 2 · Final step</span>\n      <p class=\"f-q\">When should<br><em>we come?</em></p>\n      <div class=\"f-sent\" id=\"sent2r\"><div class=\"f-sent-bubble\" id=\"sent2rT\"></div><span class=\"f-sent-label\">Your details</span></div>\n      <div class=\"f-box\">\n        <label class=\"f-lbl\" for=\"rDate\">Pick your preferred date *</label>\n<input class=\"f-in\" type=\"date\" id=\"rDate\" required=\"\">\n<div class=\"f-err\" id=\"rDateErr\"></div>\n<label class=\"f-lbl\">Choose your preferred time window *</label>\n<div class=\"choice-grid\" role=\"group\" aria-label=\"Select time window\">\n<div class=\"choice-card\" data-t=\"10:30 AM – 12:01 PM\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">🌅</span><span class=\"choice-name\">10:30 AM – 12:01 PM</span><span class=\"choice-sub\">Morning</span></div>\n<div class=\"choice-card\" data-t=\"12:02 PM – 2:00 PM\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">☀️</span><span class=\"choice-name\">12:02 PM – 2:00 PM</span><span class=\"choice-sub\">Midday</span></div>\n<div class=\"choice-card\" data-t=\"2:01 PM – 4:00 PM\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">🌤</span><span class=\"choice-name\">2:01 PM – 4:00 PM</span><span class=\"choice-sub\">Afternoon</span></div>\n<div class=\"choice-card wide\" data-t=\"Outside listed hours\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">🕐</span><div><span class=\"choice-name\">Outside these hours</span><span class=\"choice-sub\">We will agree a time when we call</span></div></div>\n\n</div>\n<div class=\"f-err\" id=\"rTimeErr\"></div>\n<span style=\"font-family:var(--sans);font-size:9px;font-weight:300;color:var(--txt3);display:block;margin:.1rem 0 .6rem;line-height:1.5\">We do not guarantee the exact time. Our team confirms the actual slot by phone.</span>\n<label class=\"f-lbl\">How many garments are we collecting?</label>\n<div class=\"choice-grid\" role=\"group\" aria-label=\"Garment count\">\n<div class=\"choice-card\" data-g=\"Fewer than 5\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">👕</span><span class=\"choice-name\">Fewer than 5</span><span class=\"choice-sub\">Nominal pickup charge may apply</span></div>\n<div class=\"choice-card\" data-g=\"5 to 10\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">👔</span><span class=\"choice-name\">5 to 10</span><span class=\"choice-sub\">Free pickup applies</span></div>\n<div class=\"choice-card\" data-g=\"More than 10\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">🧳</span><span class=\"choice-name\">More than 10</span><span class=\"choice-sub\">Free pickup applies</span></div>\n<div class=\"choice-card\" data-g=\"Not sure yet\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">🤔</span><span class=\"choice-name\">Not sure yet</span><span class=\"choice-sub\">We count together at pickup</span></div>\n\n</div>\n<span style=\"font-family:var(--sans);font-size:9px;color:var(--txt3);display:block;margin-bottom:.6rem\">Optional — helps us prepare the right team.</span>\n        <label class=\"f-lbl\" for=\"rNotes\">Special Instructions</label>\n        <textarea class=\"f-in\" id=\"rNotes\" rows=\"2\" placeholder=\"Stains, fragile garments, access instructions...\"></textarea>\n        <label class=\"f-lbl\" for=\"rCoupon\">Coupon Code</label>\n        <input class=\"f-in\" type=\"text\" id=\"rCoupon\" placeholder=\"FIRST10\" style=\"text-transform:uppercase\">\n        <div class=\"tnc-wrap\">\n  <button type=\"button\" class=\"tnc-hd\" id=\"rTncHd\" aria-expanded=\"false\">\n    <span>Pickup Terms &amp; Conditions</span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M6 9l6 6 6-6\"></path></svg>\n  </button>\n  <div class=\"tnc-body\" id=\"rTncBd\">\n    <div class=\"tnc-item\"><span class=\"tnc-num\">1.</span><span>Pickup windows are tentative. We confirm the exact time by phone.</span></div><div class=\"tnc-item\"><span class=\"tnc-num\">2.</span><span>Free pickup for orders above ₹1,000 + GST or 5 garments. Smaller orders may have a nominal charge confirmed at booking.</span></div><div class=\"tnc-item\"><span class=\"tnc-num\">3.</span><span>Cancellations must be made at least 1 hour before pickup. After driver departure a nominal charge may apply.</span></div><div class=\"tnc-item\"><span class=\"tnc-num\">4.</span><span>All garments are counted in your presence at pickup and tagged. A receipt is provided.</span></div><div class=\"tnc-item\"><span class=\"tnc-num\">5.</span><span>Standard: minimum 48 hours. Express: 24 hours. Same Day: booked before 10AM. These are estimates.</span></div><div class=\"tnc-item\"><span class=\"tnc-num\">6.</span><span>Final pricing confirmed at the workshop. You will be informed before we proceed if there is a significant difference.</span></div><div class=\"tnc-item\"><span class=\"tnc-num\">7.</span><span>Uncollected garments after 30 days may be disposed of. Storage charges apply after 7 days.</span></div>\n    <p style=\"font-family:var(--sans);font-size:9px;color:rgba(128,128,128,.35);margin-top:.5rem\"><a href=\"/terms-and-conditions\" style=\"color:var(--pink)\">Full Terms</a> · <a href=\"/cancellation-policy\" style=\"color:var(--pink)\">Cancellation</a></p>\n  </div>\n</div>\n        <div class=\"agree-row\">\n  <div class=\"agree-box\" id=\"rAgree\" role=\"checkbox\" aria-checked=\"false\" tabindex=\"0\"><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></div>\n  <span class=\"agree-txt\">I have read and agree to the pickup terms and conditions. <a href=\"/privacy-policy\">Privacy Policy</a></span>\n</div>\n<div class=\"f-err\" id=\"rAgreeErr\"></div>\n        <div class=\"captcha-row\">\n  <div class=\"cap-check\" id=\"rCap\" role=\"checkbox\" aria-checked=\"false\" tabindex=\"0\"><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></div>\n  <span class=\"cap-lbl\">I am not a robot</span>\n  <div class=\"cap-logo\">reCAPTCHA<br><span style=\"font-size:6px;opacity:.5\">Privacy · Terms</span></div>\n</div>\n<div class=\"f-err\" id=\"rCapErr\"></div>\n        <button type=\"button\" class=\"f-submit\" id=\"rSubmit\">\n  <span class=\"stxt\">Confirm Pickup Request</span>\n  <div class=\"f-spin\" aria-hidden=\"true\"></div>\n  <svg class=\"stxt\" style=\"width:13px;height:13px\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"></path><polyline points=\"22 4 12 14.01 9 11.01\"></polyline></svg>\n</button>\n<p class=\"f-confirm-note\">We call to confirm within 30 minutes · Mon–Sat 10AM–5PM</p>\n      </div>\n    </div><div class=\"f-card in-r\" id=\"c3n\">\n      <span class=\"f-badge\"><span class=\"f-badge-dot\"></span>Step 1 of 3 · Let's set you up</span>\n      <p class=\"f-q\">Tell us about<br><em>yourself.</em></p>\n      <div class=\"f-sent\" id=\"sent1n\"><div class=\"f-sent-bubble\" id=\"sent1nT\"></div><span class=\"f-sent-label\">Verified number</span></div>\n      <div class=\"f-box\">\n        <div class=\"f-g2\">\n          <div><label class=\"f-lbl\" for=\"nName\">Full Name *</label><input class=\"f-in\" type=\"text\" id=\"nName\" placeholder=\"Your name\" autocomplete=\"name\" style=\"margin-bottom:0\"><div class=\"f-err\" id=\"nNameErr\"></div></div>\n          <div><label class=\"f-lbl\" for=\"nEmail\">Email *</label><input class=\"f-in\" type=\"email\" id=\"nEmail\" placeholder=\"you@email.com\" autocomplete=\"email\" style=\"margin-bottom:0\"><div class=\"f-err\" id=\"nEmailErr\"></div></div>\n        </div>\n        <div class=\"f-bar-row\">\n          <span class=\"f-hint\">Press <kbd>Enter ↵</kbd> or tap →</span>\n          <button type=\"button\" class=\"f-send\" id=\"btnN1\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg></button>\n        </div>\n      </div>\n      <span class=\"f-sub\">Your details are saved securely for faster future bookings.</span>\n    </div><div class=\"f-card in-r\" id=\"c4n\">\n      <button type=\"button\" class=\"f-back show\" id=\"backC4n\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M19 12H5M12 19l-7-7 7-7\"></path></svg> Step 1</button>\n      <span class=\"f-badge\"><span class=\"f-badge-dot\"></span>Step 2 of 3</span>\n      <p class=\"f-q\">Tell us<br><em>your address.</em></p>\n      <div class=\"f-sent\" id=\"sent2n\"><div class=\"f-sent-bubble\" id=\"sent2nT\"></div><span class=\"f-sent-label\">Your contact</span></div>\n      <div class=\"f-box\">\n        <div class=\"f-g2\">\n          <div><label class=\"f-lbl\" for=\"nAddr1\">Flat / House *</label><input class=\"f-in\" type=\"text\" id=\"nAddr1\" placeholder=\"Flat 4B, Sunrise Apts\" autocomplete=\"address-line1\" style=\"margin-bottom:0\"><div class=\"f-err\" id=\"nAddr1Err\"></div></div>\n          <div><label class=\"f-lbl\" for=\"nAddr2\">Building / Floor</label><input class=\"f-in\" type=\"text\" id=\"nAddr2\" placeholder=\"Block C, 3rd floor\" autocomplete=\"address-line2\" style=\"margin-bottom:0\"></div>\n        </div>\n        <div class=\"f-g3\">\n          <div><label class=\"f-lbl\" for=\"nArea\">Area *</label><input class=\"f-in\" type=\"text\" id=\"nArea\" placeholder=\"Lake Gardens\" style=\"margin-bottom:0\"><div class=\"f-err\" id=\"nAreaErr\"></div></div>\n          <div><label class=\"f-lbl\" for=\"nCity\">City</label><input class=\"f-in\" type=\"text\" id=\"nCity\" value=\"Kolkata\" style=\"margin-bottom:0\"></div>\n          <div><label class=\"f-lbl\" for=\"nPin\">PIN *</label><input class=\"f-in\" type=\"text\" id=\"nPin\" placeholder=\"700045\" maxlength=\"6\" inputmode=\"numeric\" style=\"margin-bottom:0\"><div class=\"f-err\" id=\"nPinErr\"></div></div>\n        </div>\n        <label class=\"f-lbl\" for=\"nLandmark\" style=\"margin-top:.4rem\">Landmark</label>\n        <input class=\"f-in\" type=\"text\" id=\"nLandmark\" placeholder=\"Near Metro Gate, behind Ruby Hospital...\">\n        <div class=\"f-bar-row\">\n          <span class=\"f-hint\">Press <kbd>Enter ↵</kbd> or tap →</span>\n          <button type=\"button\" class=\"f-send\" id=\"btnN2\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg></button>\n        </div>\n      </div>\n    </div><div class=\"f-card in-r\" id=\"c5n\">\n      <button type=\"button\" class=\"f-back show\" id=\"backC5n\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M19 12H5M12 19l-7-7 7-7\"></path></svg> Step 2</button>\n      <span class=\"f-badge\"><span class=\"f-badge-dot\"></span>Step 3 of 3 · Final step</span>\n      <p class=\"f-q\">When should<br><em>we come?</em></p>\n      <div class=\"f-sent\" id=\"sent3n\"><div class=\"f-sent-bubble\" id=\"sent3nT\"></div><span class=\"f-sent-label\">Your address</span></div>\n      <div class=\"f-box\">\n        <div class=\"f-alert\" id=\"nAlert\"></div>\n        <label class=\"f-lbl\" for=\"nDate\">Pick your preferred date *</label>\n<input class=\"f-in\" type=\"date\" id=\"nDate\" required=\"\">\n<div class=\"f-err\" id=\"nDateErr\"></div>\n<label class=\"f-lbl\">Choose your preferred time window *</label>\n<div class=\"choice-grid\" role=\"group\" aria-label=\"Select time window\">\n<div class=\"choice-card\" data-t=\"10:30 AM – 12:01 PM\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">🌅</span><span class=\"choice-name\">10:30 AM – 12:01 PM</span><span class=\"choice-sub\">Morning</span></div>\n<div class=\"choice-card\" data-t=\"12:02 PM – 2:00 PM\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">☀️</span><span class=\"choice-name\">12:02 PM – 2:00 PM</span><span class=\"choice-sub\">Midday</span></div>\n<div class=\"choice-card\" data-t=\"2:01 PM – 4:00 PM\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">🌤</span><span class=\"choice-name\">2:01 PM – 4:00 PM</span><span class=\"choice-sub\">Afternoon</span></div>\n<div class=\"choice-card wide\" data-t=\"Outside listed hours\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">🕐</span><div><span class=\"choice-name\">Outside these hours</span><span class=\"choice-sub\">We will agree a time when we call</span></div></div>\n\n</div>\n<div class=\"f-err\" id=\"nTimeErr\"></div>\n<span style=\"font-family:var(--sans);font-size:9px;font-weight:300;color:var(--txt3);display:block;margin:.1rem 0 .6rem;line-height:1.5\">We do not guarantee the exact time. Our team confirms the actual slot by phone.</span>\n<label class=\"f-lbl\">How many garments are we collecting?</label>\n<div class=\"choice-grid\" role=\"group\" aria-label=\"Garment count\">\n<div class=\"choice-card\" data-g=\"Fewer than 5\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">👕</span><span class=\"choice-name\">Fewer than 5</span><span class=\"choice-sub\">Nominal pickup charge may apply</span></div>\n<div class=\"choice-card\" data-g=\"5 to 10\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">👔</span><span class=\"choice-name\">5 to 10</span><span class=\"choice-sub\">Free pickup applies</span></div>\n<div class=\"choice-card\" data-g=\"More than 10\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">🧳</span><span class=\"choice-name\">More than 10</span><span class=\"choice-sub\">Free pickup applies</span></div>\n<div class=\"choice-card\" data-g=\"Not sure yet\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\"><span class=\"choice-icon\" aria-hidden=\"true\">🤔</span><span class=\"choice-name\">Not sure yet</span><span class=\"choice-sub\">We count together at pickup</span></div>\n\n</div>\n<span style=\"font-family:var(--sans);font-size:9px;color:var(--txt3);display:block;margin-bottom:.6rem\">Optional — helps us prepare the right team.</span>\n        <label class=\"f-lbl\" for=\"nNotes\">Special Instructions</label>\n        <textarea class=\"f-in\" id=\"nNotes\" rows=\"2\" placeholder=\"Stains, fragile garments, access instructions, preferred cleaning method...\"></textarea>\n        <label class=\"f-lbl\" for=\"nCoupon\">Coupon Code</label>\n        <input class=\"f-in\" type=\"text\" id=\"nCoupon\" placeholder=\"FIRST10\" style=\"text-transform:uppercase\">\n        <div class=\"tnc-wrap\">\n  <button type=\"button\" class=\"tnc-hd\" id=\"nTncHd\" aria-expanded=\"false\">\n    <span>Pickup Terms &amp; Conditions</span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M6 9l6 6 6-6\"></path></svg>\n  </button>\n  <div class=\"tnc-body\" id=\"nTncBd\">\n    <div class=\"tnc-item\"><span class=\"tnc-num\">1.</span><span>Pickup windows are tentative. We confirm the exact time by phone.</span></div><div class=\"tnc-item\"><span class=\"tnc-num\">2.</span><span>Free pickup for orders above ₹1,000 + GST or 5 garments. Smaller orders may have a nominal charge confirmed at booking.</span></div><div class=\"tnc-item\"><span class=\"tnc-num\">3.</span><span>Cancellations must be made at least 1 hour before pickup. After driver departure a nominal charge may apply.</span></div><div class=\"tnc-item\"><span class=\"tnc-num\">4.</span><span>All garments are counted in your presence at pickup and tagged. A receipt is provided.</span></div><div class=\"tnc-item\"><span class=\"tnc-num\">5.</span><span>Standard: minimum 48 hours. Express: 24 hours. Same Day: booked before 10AM. These are estimates.</span></div><div class=\"tnc-item\"><span class=\"tnc-num\">6.</span><span>Final pricing confirmed at the workshop. You will be informed before we proceed if there is a significant difference.</span></div><div class=\"tnc-item\"><span class=\"tnc-num\">7.</span><span>Uncollected garments after 30 days may be disposed of. Storage charges apply after 7 days.</span></div>\n    <p style=\"font-family:var(--sans);font-size:9px;color:rgba(128,128,128,.35);margin-top:.5rem\"><a href=\"/terms-and-conditions\" style=\"color:var(--pink)\">Full Terms</a> · <a href=\"/cancellation-policy\" style=\"color:var(--pink)\">Cancellation</a></p>\n  </div>\n</div>\n        <div class=\"agree-row\">\n  <div class=\"agree-box\" id=\"nAgree\" role=\"checkbox\" aria-checked=\"false\" tabindex=\"0\"><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></div>\n  <span class=\"agree-txt\">I have read and agree to the pickup terms and conditions. By registering, you consent to The Swiss Laundry contacting you via call, SMS and WhatsApp. You may opt out at any time. <a href=\"/privacy-policy\">Privacy Policy</a></span>\n</div>\n<div class=\"f-err\" id=\"nAgreeErr\"></div>\n        <div class=\"captcha-row\">\n  <div class=\"cap-check\" id=\"nCap\" role=\"checkbox\" aria-checked=\"false\" tabindex=\"0\"><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></div>\n  <span class=\"cap-lbl\">I am not a robot</span>\n  <div class=\"cap-logo\">reCAPTCHA<br><span style=\"font-size:6px;opacity:.5\">Privacy · Terms</span></div>\n</div>\n<div class=\"f-err\" id=\"nCapErr\"></div>\n        <button type=\"button\" class=\"f-submit\" id=\"nSubmit\">\n  <span class=\"stxt\">Confirm Pickup Request</span>\n  <div class=\"f-spin\" aria-hidden=\"true\"></div>\n  <svg class=\"stxt\" style=\"width:13px;height:13px\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"></path><polyline points=\"22 4 12 14.01 9 11.01\"></polyline></svg>\n</button>\n<p class=\"f-confirm-note\">We call to confirm within 30 minutes · Mon–Sat 10AM–5PM</p>\n      </div>\n    </div><div class=\"f-success\" id=\"fSuccess\">\n      <div class=\"f-paw\" aria-hidden=\"true\">🐾</div>\n      <div class=\"f-bubble\">Your pickup request<br>has been received.</div>\n      <h3 class=\"f-success-h3\">Thank you, <span id=\"sName\"></span>.</h3>\n      <p class=\"f-success-body\">\n        Your request is confirmed and our team will review it shortly.<br><br>\n        If we need any clarification, we will reach you at <strong id=\"sPhone\"></strong> during working hours — Monday to Saturday, 10AM to 5PM.<br><br>\n        <em style=\"font-size:12px\">Confirmation sent to <span id=\"sEmail\"></span></em>\n      </p>\n      <div class=\"f-ref\" id=\"fRef\">Booking Reference —</div>\n      <div class=\"f-success-btns\">\n        <a href=\"https://wa.me/919836233354\" class=\"f-wa-btn\" target=\"_blank\" rel=\"noopener\"><svg style=\"width:15px;height:15px\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.99.574 3.842 1.565 5.404L2 22l4.596-1.565A9.96 9.96 0 0011.999 22C17.522 22 22 17.523 22 12s-4.478-10-10.001-10z\"></path></svg> WhatsApp for updates</a>\n        <a href=\"/track-order\" class=\"f-track-btn\">Track my order →</a>\n      </div>\n    </div>\n  </div>\n  <div class=\"f-hours\">\n    <div class=\"f-hours-pill\">\n      <span class=\"f-hours-dot\"></span>\n      Mon–Sat · 10AM–5PM · Closed Sundays\n    </div>\n  </div>\n</section>\n<section class=\"ow-section\" id=\"other-booking-channels\" aria-labelledby=\"owH2\">\n  \n<div class=\"garment-bg\" aria-hidden=\"true\">\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:5%;top:20%;--gd:22s;--dl:0s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:20%;top:75%;--gd:26s;--dl:4s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:38%;top:12%;--gd:24s;--dl:8s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:55%;top:60%;--gd:30s;--dl:2s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:70%;top:28%;--gd:22s;--dl:6s\">⊘</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:85%;top:80%;--gd:28s;--dl:10s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:12%;top:50%;--gd:24s;--dl:3s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:60%;top:88%;--gd:26s;--dl:7s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:30%;top:38%;--gd:20s;--dl:5s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:78%;top:15%;--gd:32s;--dl:1s\">⊘</span>\n</div>\n  <div class=\"ow-inner\">\n    <div>\n      <span class=\"eyebrow\">Other ways to book</span>\n      <h2 id=\"owH2\" class=\"ow-hl\">Prefer to book<br>another way?</h2>\n      <p class=\"ow-sub\">Same service, different channel.<br>All confirmed by our team.</p>\n      <div class=\"ow-hours-note\"><strong>Working hours:</strong> Monday to Saturday, 10AM–5PM.<br>Closed Sundays and public holidays.</div>\n    </div>\n    <div class=\"ow-list\">\n      <a href=\"https://wa.me/919836233354?text=Hi%2C+I+would+like+to+book+a+pickup\" class=\"ow-method\" target=\"_blank\" rel=\"noopener\"><div class=\"ow-icon-wrap\"><svg style=\"width:15px;height:15px\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.99.574 3.842 1.565 5.404L2 22l4.596-1.565A9.96 9.96 0 0011.999 22C17.522 22 22 17.523 22 12s-4.478-10-10.001-10z\"></path></svg></div><div><span class=\"ow-name\">WhatsApp</span><span class=\"ow-detail\">+91 83358 88167 · Instant reply</span></div><svg class=\"ow-arr\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg></a>\n      <a href=\"tel:9836233354\" class=\"ow-method\">\n      <div class=\"ow-icon-wrap\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 8.63 19.79 19.79 0 012 2a2 2 0 011.27-1.85A2 2 0 015 2v3a2 2 0 01-1.44 1.94L3.41 7.5a16 16 0 006.6 6.6l.54-.65A2 2 0 0113 12.9l3-.54A2 2 0 0117 14h2a2 2 0 011.1 2.92z\"></path></svg></div>\n      <div><span class=\"ow-name\">Phone</span><span class=\"ow-detail\">9836233354 · 8335888167</span></div>\n      <svg class=\"ow-arr\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg>\n    </a>\n      <a href=\"https://apps.apple.com/app/id1630547588\" class=\"ow-method\" target=\"_blank\" rel=\"noopener\">\n      <div class=\"ow-icon-wrap\"><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></div>\n      <div><span class=\"ow-name\">iOS &amp; Android App</span><span class=\"ow-detail\">Book, track and manage orders</span></div>\n      <svg class=\"ow-arr\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg>\n    </a>\n      <a href=\"mailto:info@theswisslaundry.com\" class=\"ow-method\">\n      <div class=\"ow-icon-wrap\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"></path><polyline points=\"22,6 12,13 2,6\"></polyline></svg></div>\n      <div><span class=\"ow-name\">Email</span><span class=\"ow-detail\">info@theswisslaundry.com</span></div>\n      <svg class=\"ow-arr\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg>\n    </a>\n      <a href=\"sms:9836233354\" class=\"ow-method\">\n      <div class=\"ow-icon-wrap\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z\"></path></svg></div>\n      <div><span class=\"ow-name\">SMS</span><span class=\"ow-detail\">Text 9836233354</span></div>\n      <svg class=\"ow-arr\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg>\n    </a>\n    </div>\n  </div>\n</section>\n<section class=\"how-section\" id=\"how-it-works\" aria-labelledby=\"howH2\">\n  \n<div class=\"garment-bg\" aria-hidden=\"true\">\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:5%;top:20%;--gd:22s;--dl:0s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:20%;top:75%;--gd:26s;--dl:4s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:38%;top:12%;--gd:24s;--dl:8s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:55%;top:60%;--gd:30s;--dl:2s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:70%;top:28%;--gd:22s;--dl:6s\">⊘</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:85%;top:80%;--gd:28s;--dl:10s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:12%;top:50%;--gd:24s;--dl:3s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:60%;top:88%;--gd:26s;--dl:7s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:30%;top:38%;--gd:20s;--dl:5s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:78%;top:15%;--gd:32s;--dl:1s\">⊘</span>\n</div>\n  <div class=\"how-inner\">\n    <span class=\"eyebrow\">Simple. Reliable. Doorstep.</span>\n    <h2 id=\"howH2\" class=\"how-h2\">How it works —<br>pickup to delivery.</h2>\n    <p class=\"how-sub\">Every garment is tagged, tracked through 12 steps, and returned pressed and packaged.</p>\n    <div class=\"how-steps\"><div class=\"how-step\" data-reveal=\"\">\n  <div class=\"how-num\" aria-hidden=\"true\">1</div>\n  <h3 class=\"how-title\">You book</h3>\n  <p class=\"how-desc\">Use the form above, WhatsApp, phone or app. Tell us your address and preferred time. We confirm within 30 minutes.</p>\n</div><div class=\"how-step\" data-reveal=\"\">\n  <div class=\"how-num\" aria-hidden=\"true\">2</div>\n  <h3 class=\"how-title\">We pick up</h3>\n  <p class=\"how-desc\">Our team arrives at your doorstep. Every garment is counted in your presence and tagged with a unique identifier.</p>\n</div><div class=\"how-step\" data-reveal=\"\">\n  <div class=\"how-num\" aria-hidden=\"true\">3</div>\n  <h3 class=\"how-title\">We clean</h3>\n  <p class=\"how-desc\">Your garments go through our 12-step professional cleaning process. Sorted, pre-treated, cleaned and pressed.</p>\n</div><div class=\"how-step\" data-reveal=\"\">\n  <div class=\"how-num\" aria-hidden=\"true\">4</div>\n  <h3 class=\"how-title\">Quality check</h3>\n  <p class=\"how-desc\">Every item is inspected before packaging. Any concerns are flagged and you are informed before delivery.</p>\n</div><div class=\"how-step\" data-reveal=\"\">\n  <div class=\"how-num\" aria-hidden=\"true\">5</div>\n  <h3 class=\"how-title\">We return</h3>\n  <p class=\"how-desc\">Cleaned, pressed and packaged garments are delivered back to your door. A receipt is provided.</p>\n</div></div>\n  </div>\n</section>\n<section class=\"speed-section\" id=\"turnaround-time\" aria-labelledby=\"speedH2\">\n  \n<div class=\"garment-bg\" aria-hidden=\"true\">\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:5%;top:20%;--gd:22s;--dl:0s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:20%;top:75%;--gd:26s;--dl:4s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:38%;top:12%;--gd:24s;--dl:8s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:55%;top:60%;--gd:30s;--dl:2s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:70%;top:28%;--gd:22s;--dl:6s\">⊘</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:85%;top:80%;--gd:28s;--dl:10s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:12%;top:50%;--gd:24s;--dl:3s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:60%;top:88%;--gd:26s;--dl:7s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:30%;top:38%;--gd:20s;--dl:5s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:78%;top:15%;--gd:32s;--dl:1s\">⊘</span>\n</div>\n  <div class=\"speed-inner\">\n    <span class=\"eyebrow\">Standard · Express · Same Day · One Hour</span>\n    <h2 id=\"speedH2\" class=\"speed-h2\">Choose your<br>turnaround time.</h2>\n    <p class=\"speed-sub\">Standard is most popular. Minimum 48 hours. All services cover dry cleaning, laundry and carpet cleaning.</p>\n    <div class=\"speed-grid\"><div class=\"speed-card popular\" data-reveal=\"\">\n  <div class=\"speed-icon-wrap\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"12 6 12 12 16 14\"></polyline></svg></div>\n  <span class=\"speed-name\">Standard</span>\n  <span class=\"speed-time\">Minimum 48 Hours</span>\n  <p class=\"speed-desc\">Our most popular service. Garments collected and returned within a minimum of 48 hours. Full care, no shortcuts.</p>\n  <p class=\"speed-note\">Base rate. Free pickup above ₹1,000 or 5 garments.</p>\n</div><div class=\"speed-card\" data-reveal=\"\">\n  <div class=\"speed-icon-wrap\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"12 6 12 12 16 14\"></polyline></svg></div>\n  <span class=\"speed-name\">Express</span>\n  <span class=\"speed-time\">Within 24 Hours</span>\n  <p class=\"speed-desc\">Priority processing. Your garments jump the queue and are returned within 24 hours from collection.</p>\n  <p class=\"speed-note\">Small premium applies. Available Mon–Sat.</p>\n</div><div class=\"speed-card\" data-reveal=\"\">\n  <div class=\"speed-icon-wrap\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"12 6 12 12 16 14\"></polyline></svg></div>\n  <span class=\"speed-name\">Same Day</span>\n  <span class=\"speed-time\">Collected &amp; Returned Today</span>\n  <p class=\"speed-desc\">Book before 10AM. We collect in the morning and return the same evening. Limited slots daily.</p>\n  <p class=\"speed-note\">Must book before 10AM. Call to confirm availability.</p>\n</div><div class=\"speed-card\" data-reveal=\"\">\n  <div class=\"speed-icon-wrap\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"12 6 12 12 16 14\"></polyline></svg></div>\n  <span class=\"speed-name\">One Hour</span>\n  <span class=\"speed-time\">Urgent — On Request</span>\n  <p class=\"speed-desc\">For exceptional needs. Available on request, subject to workshop capacity. Call us before booking.</p>\n  <p class=\"speed-note\">Call 9836233354 to confirm availability first.</p>\n</div></div>\n    <p class=\"speed-disclaimer\">Turnaround times are estimates, not guarantees. Same Day and One Hour services must be confirmed by phone before booking. Our team will always inform you before proceeding.</p>\n  </div>\n</section>\n<section class=\"cov-section\" id=\"service-coverage\" aria-labelledby=\"covH2\" itemscope=\"\" itemtype=\"https://schema.org/Service\">\n  <meta itemprop=\"areaServed\" content=\"Kolkata\">\n  \n<div class=\"garment-bg\" aria-hidden=\"true\">\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:5%;top:20%;--gd:22s;--dl:0s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:20%;top:75%;--gd:26s;--dl:4s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:38%;top:12%;--gd:24s;--dl:8s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:55%;top:60%;--gd:30s;--dl:2s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:70%;top:28%;--gd:22s;--dl:6s\">⊘</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:85%;top:80%;--gd:28s;--dl:10s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:12%;top:50%;--gd:24s;--dl:3s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:60%;top:88%;--gd:26s;--dl:7s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:30%;top:38%;--gd:20s;--dl:5s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:78%;top:15%;--gd:32s;--dl:1s\">⊘</span>\n</div>\n  <div class=\"cov-inner\">\n    <span class=\"eyebrow\">Kolkata-wide doorstep collection</span>\n    <h2 id=\"covH2\" class=\"cov-h2\">We come to you —<br>anywhere in Kolkata.</h2>\n    <p class=\"cov-lead\">No zones. No restrictions. No extra charge for your neighbourhood. From Salt Lake to Behala, Dum Dum to Garia, New Town to Howrah — if you are in Kolkata, we come to your door.</p>\n    <div class=\"cov-stats\">\n      <div class=\"cov-stat\" data-reveal=\"\"><span class=\"cov-stat-num\">93</span><span class=\"cov-stat-lbl\">Pincodes covered</span></div>\n      <div class=\"cov-stat\" data-reveal=\"\"><span class=\"cov-stat-num\">12,000+</span><span class=\"cov-stat-lbl\">Clients across Kolkata</span></div>\n      <div class=\"cov-stat\" data-reveal=\"\"><span class=\"cov-stat-num\"><span class=\"count-up\" data-count=\"12\" data-dec=\"0\" data-dur=\"1200\">12</span></span><span class=\"cov-stat-lbl\">Years of service</span></div>\n    </div>\n    <button type=\"button\" class=\"pin-toggle\" id=\"pinToggle\" aria-expanded=\"false\" onclick=\"var g=document.getElementById('pinGrid');var l=document.getElementById('pinToggleLbl');var b=this;var open=g.classList.toggle('open');g.setAttribute('aria-hidden',!open);b.setAttribute('aria-expanded',open);l.textContent=open?'Hide pincodes ↑':'View all 93 service pincodes ↓'\">\n      <span id=\"pinToggleLbl\">View all 93 service pincodes ↓</span>\n    </button>\n    <div class=\"pin-grid\" id=\"pinGrid\" aria-hidden=\"true\" role=\"list\" aria-label=\"Kolkata pincodes served\">\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700001</span><span class=\"pin-area\">BBD Bagh, Dalhousie</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700002</span><span class=\"pin-area\">Shyambazar, Girish Park</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700003</span><span class=\"pin-area\">Maniktala, Phool Bagan</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700004</span><span class=\"pin-area\">Bhowanipore, Kalighat</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700005</span><span class=\"pin-area\">Kalighat, Rashbehari</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700006</span><span class=\"pin-area\">Alipore, Hastings</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700007</span><span class=\"pin-area\">Park Street, Free School Street</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700008</span><span class=\"pin-area\">Beliaghata, Khanna</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700009</span><span class=\"pin-area\">Chetla, Tollygunge</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700010</span><span class=\"pin-area\">Park Circus, AJC Bose Road</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700011</span><span class=\"pin-area\">Ballygunge, Park Circus</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700012</span><span class=\"pin-area\">Entally, Sealdah</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700013</span><span class=\"pin-area\">Ballygunge, Gariahat</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700014</span><span class=\"pin-area\">Dhakuria, Lake Gardens</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700015</span><span class=\"pin-area\">Bhowanipore, New Market</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700016</span><span class=\"pin-area\">Behala</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700017</span><span class=\"pin-area\">Tollygunge</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700018</span><span class=\"pin-area\">Entally, AJC Bose Road</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700019</span><span class=\"pin-area\">Gariahat, Southern Avenue</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700020</span><span class=\"pin-area\">Jodhpur Park, Selimpur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700022</span><span class=\"pin-area\">Garia, Narendrapur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700023</span><span class=\"pin-area\">Shibpur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700024</span><span class=\"pin-area\">Chetla</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700025</span><span class=\"pin-area\">Jodhpur Park, Jadavpur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700026</span><span class=\"pin-area\">Lake Town</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700027</span><span class=\"pin-area\">Rabindra Nagar</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700029</span><span class=\"pin-area\">Alipore, New Alipore</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700030</span><span class=\"pin-area\">Chetla, Alipore</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700031</span><span class=\"pin-area\">Tollygunge, Jadavpur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700032</span><span class=\"pin-area\">Jadavpur, Regent Park</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700033</span><span class=\"pin-area\">Behala, Parnasree</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700034</span><span class=\"pin-area\">Topsia, Tiljala</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700036</span><span class=\"pin-area\">Dum Dum, Nager Bazar</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700037</span><span class=\"pin-area\">Ultadanga, Nager Bazar</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700038</span><span class=\"pin-area\">Parnasree, Behala</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700039</span><span class=\"pin-area\">Regent Park, Santoshpur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700040</span><span class=\"pin-area\">Garden Reach</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700041</span><span class=\"pin-area\">Santoshpur, Garia</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700042</span><span class=\"pin-area\">Garia, Narendrapur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700043</span><span class=\"pin-area\">Ariadaha, Kamarhati</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700045</span><span class=\"pin-area\">Kasba, E.M. Bypass</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700046</span><span class=\"pin-area\">Tangra, Topsia</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700047</span><span class=\"pin-area\">Jadavpur, Santoshpur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700048</span><span class=\"pin-area\">Anandapur, Ruby</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700050</span><span class=\"pin-area\">Belgharia, Shyamnagar</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700052</span><span class=\"pin-area\">Behala, Sakher Bazar</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700053</span><span class=\"pin-area\">Picnic Garden</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700054</span><span class=\"pin-area\">Dum Dum Airport</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700055</span><span class=\"pin-area\">Tollygunge, NSC Bose Road</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700056</span><span class=\"pin-area\">Jadavpur, Regent Estate</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700058</span><span class=\"pin-area\">Dum Dum</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700059</span><span class=\"pin-area\">Rajarhat New Town</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700060</span><span class=\"pin-area\">Behala, Barisha</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700061</span><span class=\"pin-area\">Baranagar, Dunlop</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700064</span><span class=\"pin-area\">Salt Lake Sector II</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700065</span><span class=\"pin-area\">North Dum Dum</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700068</span><span class=\"pin-area\">Baranagar, Cossipore</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700069</span><span class=\"pin-area\">Sinthee, Belgharia</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700070</span><span class=\"pin-area\">Dunlop, Belgharia</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700071</span><span class=\"pin-area\">Noapara, Baranagar</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700072</span><span class=\"pin-area\">Barrackpore Trunk Road</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700073</span><span class=\"pin-area\">Park Circus, Karaya</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700074</span><span class=\"pin-area\">Shyambazar, Hatibagan</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700075</span><span class=\"pin-area\">Bansdroni, Ganguly Bagan</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700076</span><span class=\"pin-area\">Beleghata, Phool Bagan</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700077</span><span class=\"pin-area\">Lake Town, Raghunathpur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700078</span><span class=\"pin-area\">Picnic Garden area</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700079</span><span class=\"pin-area\">Nakhoda Mosque area</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700082</span><span class=\"pin-area\">Picnic Garden, Kankurgachi</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700084</span><span class=\"pin-area\">Manicktala, Ultadanga</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700086</span><span class=\"pin-area\">Kasba, Ganguly Bagan</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700090</span><span class=\"pin-area\">Paikpara, Sinthee</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700091</span><span class=\"pin-area\">Salt Lake Sector I</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700094</span><span class=\"pin-area\">Panchasayar, Narendrapur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700095</span><span class=\"pin-area\">Garia, Sonarpur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700096</span><span class=\"pin-area\">Sonarpur, Narendrapur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700097</span><span class=\"pin-area\">Salt Lake Sector III</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700098</span><span class=\"pin-area\">Salt Lake Sector IV</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700099</span><span class=\"pin-area\">Mukundapur, Survey Park</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700100</span><span class=\"pin-area\">Patuli, Sonarpur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700103</span><span class=\"pin-area\">Dhakuria, Ashoknagar</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700104</span><span class=\"pin-area\">Regent Park, Dhakuria</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700105</span><span class=\"pin-area\">Battala, Tollygunge</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700106</span><span class=\"pin-area\">Salt Lake Sector V</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700107</span><span class=\"pin-area\">Kasba Industrial Estate</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700108</span><span class=\"pin-area\">Kalikapur, Mukundapur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700110</span><span class=\"pin-area\">Kalikapur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700114</span><span class=\"pin-area\">Keshtopur</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700121</span><span class=\"pin-area\">Kamarhati, Rathtala</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700135</span><span class=\"pin-area\">New Town Action Area II</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700156</span><span class=\"pin-area\">New Town Action Area I</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700157</span><span class=\"pin-area\">New Town Action Area III</span></div>\n<div class=\"pin-tag\" role=\"listitem\"><span class=\"pin-num\">700160</span><span class=\"pin-area\">Eco Park, New Town</span></div>\n</div>\n    <p class=\"cov-note\">For areas beyond Kolkata city limits, call 9836233354 to confirm availability before booking.</p>\n    <!-- Hidden SEO content — crawlable by Google -->\n    <p style=\"position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)\" aria-hidden=\"true\">Laundry dry cleaning pickup service in Alipore Ballygunge Behala Beliaghata Bhowanipore Dhakuria Dum Dum Garia Gariahat Jadavpur Jodhpur Park Kalighat Kamarhati Kasba Lake Gardens Lake Town Maniktala New Alipore New Town Park Circus Park Street Rajarhat Regent Park Salt Lake Santoshpur Shyambazar Sonarpur Tangra Tollygunge and all pincodes 700001 to 700160 in Kolkata West Bengal India.</p>\n  </div>\n</section>\n<section class=\"free-section\" id=\"free-pickup\" aria-labelledby=\"freeH2\">\n  \n<div class=\"garment-bg\" aria-hidden=\"true\">\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:5%;top:20%;--gd:22s;--dl:0s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:20%;top:75%;--gd:26s;--dl:4s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:38%;top:12%;--gd:24s;--dl:8s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:55%;top:60%;--gd:30s;--dl:2s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:70%;top:28%;--gd:22s;--dl:6s\">⊘</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:85%;top:80%;--gd:28s;--dl:10s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:12%;top:50%;--gd:24s;--dl:3s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:60%;top:88%;--gd:26s;--dl:7s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:30%;top:38%;--gd:20s;--dl:5s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:78%;top:15%;--gd:32s;--dl:1s\">⊘</span>\n</div>\n  <div class=\"free-inner\">\n    <span class=\"eyebrow\">No hidden charges</span>\n    <h2 id=\"freeH2\" class=\"free-h2\">Free pickup above<br>₹1,000 or 5 garments.</h2>\n    <p class=\"free-body\">Pickup and delivery is complimentary when your order meets either threshold. For smaller orders, a nominal charge is confirmed at booking before we collect.</p>\n    <div class=\"thresh-row\">\n      <div class=\"thresh-item\" data-reveal=\"\">\n        <span class=\"thresh-val\">₹1,000+</span>\n        <span class=\"thresh-lbl\">Order value (+ GST)</span>\n      </div>\n      <span class=\"thresh-or\" aria-label=\"or\">or</span>\n      <div class=\"thresh-item\" data-reveal=\"\">\n        <span class=\"thresh-val\">5+</span>\n        <span class=\"thresh-lbl\">Garments per order</span>\n      </div>\n    </div>\n  </div>\n</section>\n<section class=\"app-section\" id=\"mobile-app\" aria-labelledby=\"appH2\">\n  \n<div class=\"garment-bg\" aria-hidden=\"true\">\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:5%;top:20%;--gd:22s;--dl:0s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:20%;top:75%;--gd:26s;--dl:4s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:38%;top:12%;--gd:24s;--dl:8s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:55%;top:60%;--gd:30s;--dl:2s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:70%;top:28%;--gd:22s;--dl:6s\">⊘</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:85%;top:80%;--gd:28s;--dl:10s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:12%;top:50%;--gd:24s;--dl:3s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:60%;top:88%;--gd:26s;--dl:7s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:30%;top:38%;--gd:20s;--dl:5s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:78%;top:15%;--gd:32s;--dl:1s\">⊘</span>\n</div>\n  <div class=\"app-inner\">\n    <div data-reveal=\"\">\n      <span class=\"eyebrow\">Fastest way to book</span>\n      <h2 id=\"appH2\" class=\"app-h2\">The Swiss<br>Laundry app.</h2>\n      <p class=\"app-body\">Book pickups, track your orders, make payments and manage your account — all from the app. Free to download on iOS and Android.</p>\n      <div class=\"app-btns\">\n        <a href=\"https://apps.apple.com/app/id1630547588\" class=\"app-btn\" target=\"_blank\" rel=\"noopener\">\n          <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47-1.34.03-1.77-.79-3.29-.79-1.53 0-2 .77-3.27.82-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51 1.28-.02 2.5.87 3.29.87.78 0 2.26-1.07 3.8-.91.65.03 2.47.26 3.64 1.98-.09.06-2.17 1.28-2.15 3.81.03 3.02 2.65 4.03 2.68 4.04-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5.13 1.17-.34 2.35-1.04 3.19-.69.85-1.83 1.51-2.95 1.42-.15-1.15.41-2.35 1.05-3.11z\"></path></svg>\n          <div><span style=\"font-size:8px;display:block;opacity:.55\">Download on the</span>App Store</div>\n        </a>\n        <a href=\"https://play.google.com/store/apps/details?id=com.theswisslaundry.app\" class=\"app-btn\" target=\"_blank\" rel=\"noopener\">\n          <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M3.18 23.79c.3.17.64.22.98.15l11.05-6.38-2.37-2.37-9.66 8.6zm-1.6-20.04A1.99 1.99 0 001.5 5v14c0 .64.3 1.2.76 1.58l.09.07 7.83-7.83v-.18L1.58 3.75zm16.32 6.52l-2.24-1.3-2.66 2.66 2.67 2.67 2.24-1.3a2.01 2.01 0 000-2.73zM4.16.22L15.21 6.6l-2.38 2.38L4.15.22h.01z\"></path></svg>\n          <div><span style=\"font-size:8px;display:block;opacity:.55\">Get it on</span>Google Play</div>\n        </a>\n      </div>\n      <div class=\"app-feats\">\n        <span class=\"app-feat\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"></path><polyline points=\"22 4 12 14.01 9 11.01\"></polyline></svg>Book a pickup in under 60 seconds</span>\n        <span class=\"app-feat\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"></path><polyline points=\"22 4 12 14.01 9 11.01\"></polyline></svg>Order tracking and status updates</span>\n        <span class=\"app-feat\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"></path><polyline points=\"22 4 12 14.01 9 11.01\"></polyline></svg>Payments, order history and digital receipts</span>\n      </div>\n    </div>\n    <div class=\"app-qr\" data-reveal=\"\">\n      <div class=\"app-qr-box\" aria-label=\"QR code to download app\">QR Code<br><span style=\"font-size:8px;opacity:.4\">Add QR here</span></div>\n      <span class=\"app-qr-note\">Scan to download</span>\n    </div>\n  </div>\n</section>\n<section class=\"faq-section\" id=\"faq\" aria-labelledby=\"faqH2\">\n  \n<div class=\"garment-bg\" aria-hidden=\"true\">\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:5%;top:20%;--gd:22s;--dl:0s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:20%;top:75%;--gd:26s;--dl:4s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:38%;top:12%;--gd:24s;--dl:8s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:55%;top:60%;--gd:30s;--dl:2s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:70%;top:28%;--gd:22s;--dl:6s\">⊘</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:85%;top:80%;--gd:28s;--dl:10s\">⊚</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:12%;top:50%;--gd:24s;--dl:3s\">△</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:60%;top:88%;--gd:26s;--dl:7s\">◻</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:30%;top:38%;--gd:20s;--dl:5s\">⊡</span>\n  <span class=\"gs\" aria-hidden=\"true\" style=\"left:78%;top:15%;--gd:32s;--dl:1s\">⊘</span>\n</div>\n  <div class=\"faq-inner\">\n    <span class=\"eyebrow\">Pickup &amp; delivery</span>\n    <h2 id=\"faqH2\" class=\"faq-h2\">FAQs</h2>\n    <div class=\"faq-item  open\" id=\"faq1\">\n  <button class=\"faq-q\" aria-expanded=\"true\">How do I book a laundry pickup in Kolkata?\n    <svg class=\"faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d=\"M12 5v14M5 12h14\"></path></svg>\n  </button>\n  <p class=\"faq-a\">Book online using the form on this page, WhatsApp +91 98362 33354, call 9836233354, use the iOS or Android app, or email info@theswisslaundry.com. We confirm all bookings within 30 minutes, Monday to Saturday, 10AM to 5PM.</p>\n</div><div class=\"faq-item\" id=\"faq2\">\n  <button class=\"faq-q\" aria-expanded=\"false\">Does The Swiss Laundry collect from all areas of Kolkata?\n    <svg class=\"faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d=\"M12 5v14M5 12h14\"></path></svg>\n  </button>\n  <p class=\"faq-a\">Yes. We collect from every area and all 93 pincodes in Kolkata — Salt Lake, New Town, Rajarhat, Ballygunge, Gariahat, Behala, Dum Dum, Jadavpur, Kasba, Park Street, Alipore and all other neighbourhoods. No restrictions, no extra charge.</p>\n</div><div class=\"faq-item\" id=\"faq3\">\n  <button class=\"faq-q\" aria-expanded=\"false\">What is the minimum order for free pickup?\n    <svg class=\"faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d=\"M12 5v14M5 12h14\"></path></svg>\n  </button>\n  <p class=\"faq-a\">Free pickup and delivery applies for orders above ₹1,000 plus GST or a minimum of 5 garments. For smaller orders a nominal charge applies, confirmed at booking.</p>\n</div><div class=\"faq-item\" id=\"faq4\">\n  <button class=\"faq-q\" aria-expanded=\"false\">What is the difference between Standard and Express service?\n    <svg class=\"faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d=\"M12 5v14M5 12h14\"></path></svg>\n  </button>\n  <p class=\"faq-a\">Standard service takes a minimum of 48 hours and is our most popular option. Express returns garments within 24 hours at a small premium. Same Day is available if booked before 10AM. One Hour is available on request — call us to confirm before booking.</p>\n</div><div class=\"faq-item\" id=\"faq5\">\n  <button class=\"faq-q\" aria-expanded=\"false\">What time does the pickup team arrive?\n    <svg class=\"faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d=\"M12 5v14M5 12h14\"></path></svg>\n  </button>\n  <p class=\"faq-a\">We offer three pickup windows — 10:30AM to 12:01PM, 12:02PM to 2:00PM, and 2:01PM to 4:00PM. These are preferred windows only. We do not guarantee the exact time. Our team calls to confirm before arrival.</p>\n</div><div class=\"faq-item\" id=\"faq6\">\n  <button class=\"faq-q\" aria-expanded=\"false\">Can I track my garments after pickup?\n    <svg class=\"faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d=\"M12 5v14M5 12h14\"></path></svg>\n  </button>\n  <p class=\"faq-a\">Yes. Every order is tracked through our 12-step cleaning process. Track your order at theswisslaundry.com/track-order using your mobile number and OTP verification. You can also WhatsApp us at any time.</p>\n</div><div class=\"faq-item\" id=\"faq7\">\n  <button class=\"faq-q\" aria-expanded=\"false\">What garments does The Swiss Laundry clean?\n    <svg class=\"faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d=\"M12 5v14M5 12h14\"></path></svg>\n  </button>\n  <p class=\"faq-a\">We clean silk sarees, embroidered lehengas, sherwanis, suits, blazers, woollen garments, leather and suede, curtains, everyday laundry, and carpets, rugs and sofas. If you are unsure, call us and we will advise.</p>\n</div><div class=\"faq-item\" id=\"faq8\">\n  <button class=\"faq-q\" aria-expanded=\"false\">Is The Swiss Laundry available on Sundays?\n    <svg class=\"faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d=\"M12 5v14M5 12h14\"></path></svg>\n  </button>\n  <p class=\"faq-a\">We are closed on Sundays and public holidays. Pickup and delivery operates Monday to Saturday, 10AM to 5PM.</p>\n</div>\n  <div class=\"helpful-block\" role=\"group\" aria-label=\"Was this page helpful\">\n  <span class=\"helpful-label\">Was this page helpful?</span>\n  <button class=\"helpful-btn\" data-helpful=\"yes\">Yes, thanks</button>\n  <button class=\"helpful-btn\" data-helpful=\"no\">I have a question</button>\n  <span class=\"helpful-thanks\">Thank you for your feedback.</span>\n</div>\n</div>\n</section>\n<section class=\"cta-section\" id=\"book-now\" aria-label=\"Book your pickup today\">\n  <h2 class=\"cta-h2\">Ready to book<br><em>your pickup?</em></h2>\n  <p class=\"cta-sub\">Doorstep collection across all of Kolkata.<br>Monday to Saturday · 10AM–5PM · Confirm within 30 minutes.</p>\n  <div class=\"cta-btns\">\n    <a href=\"#book-form\" class=\"cta-white\">Book Online <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg></a>\n    <a href=\"https://wa.me/919836233354?text=Hi%2C+I+would+like+to+book+a+pickup\" class=\"cta-ghost\" target=\"_blank\" rel=\"noopener\"><svg style=\"width:15px;height:15px\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.99.574 3.842 1.565 5.404L2 22l4.596-1.565A9.96 9.96 0 0011.999 22C17.522 22 22 17.523 22 12s-4.478-10-10.001-10z\"></path></svg> WhatsApp</a>\n    <a href=\"tel:9836233354\" class=\"cta-ghost\">Call 9836233354</a>\n  </div>\n</section>\n</main>\n<a href=\"https://wa.me/919836233354?text=Hi%2C+I+would+like+to+book+a+pickup\" 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\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path><path d=\"M11.999 2C6.477 2 2 6.477 2 12c0 1.99.574 3.842 1.565 5.404L2 22l4.596-1.565A9.96 9.96 0 0011.999 22C17.522 22 22 17.523 22 12s-4.478-10-10.001-10z\"></path></svg>\n  <span class=\"wa-tooltip\">Chat on WhatsApp</span>\n</a>\n\n\n<script src=\"https://cdn.jsdelivr.net/npm/@studio-freight/lenis@1.0.42/dist/lenis.min.js\"></script>\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>"
}
