{
  "title": "Contact Us — The Swiss Laundry Kolkata | 9836233354",
  "description": "Contact The Swiss Laundry Kolkata. Call 9836233354, WhatsApp, email or visit our Kasba facility. Mon–Sat 10AM–5PM. Laundry and dry cleaning enquiries.",
  "keywords": "",
  "robots": "index,follow,max-snippet:-1,max-image-preview:large",
  "canonical": "https://www.theswisslaundry.com/contact",
  "hreflangs": [
    {
      "hreflang": "en-IN",
      "href": "https://www.theswisslaundry.com/contact"
    }
  ],
  "og": {
    "title": "Contact The Swiss Laundry Kolkata — Call, WhatsApp or Email",
    "description": "Call 9836233354, WhatsApp, email or visit our Kasba facility. Mon–Sat 10AM–5PM. We reply within one working day.",
    "url": "https://www.theswisslaundry.com/contact",
    "image": "https://www.theswisslaundry.com/images/og-default.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": "ContactPage",
        "name": "Contact The Swiss Laundry Kolkata",
        "description": "Contact The Swiss Laundry for laundry and dry cleaning enquiries in Kolkata. Call, WhatsApp, email, or visit our Kasba facility.",
        "url": "https://www.theswisslaundry.com/contact",
        "mainEntity": {
          "@type": "LocalBusiness",
          "name": "The Swiss Laundry",
          "telephone": "+919836233354",
          "email": "info@theswisslaundry.com",
          "url": "https://www.theswisslaundry.com",
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "dayOfWeek": [
                "Monday",
                "Tuesday",
                "Wednesday",
                "Thursday",
                "Friday",
                "Saturday"
              ],
              "opens": "10:00",
              "closes": "17:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "dayOfWeek": [
                "Sunday"
              ],
              "opens": "00:00",
              "closes": "00:00"
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": "22.5014",
            "longitude": "88.3936"
          },
          "address": {
            "@type": "PostalAddress",
            "streetAddress": "P-4 Kasba Industrial Estate, Phase III, E.M. Bypass (East)",
            "addressLocality": "Kolkata",
            "addressRegion": "West Bengal",
            "postalCode": "700107",
            "addressCountry": "IN"
          },
          "contactPoint": [
            {
              "@type": "ContactPoint",
              "telephone": "+919836233354",
              "contactType": "customer service",
              "availableLanguage": [
                "en",
                "hi",
                "bn"
              ],
              "hoursAvailable": {
                "@type": "OpeningHoursSpecification",
                "dayOfWeek": [
                  "Monday",
                  "Tuesday",
                  "Wednesday",
                  "Thursday",
                  "Friday",
                  "Saturday"
                ],
                "opens": "10:00",
                "closes": "17:00"
              }
            },
            {
              "@type": "ContactPoint",
              "email": "info@theswisslaundry.com",
              "contactType": "customer support"
            }
          ],
          "aggregateRating": {
            "@type": "AggregateRating",
            "ratingValue": "4.5",
            "reviewCount": "200",
            "bestRating": "5"
          }
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Home",
            "item": "https://www.theswisslaundry.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Contact",
            "item": "https://www.theswisslaundry.com/contact"
          }
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "SpeakableSpecification",
        "cssSelector": [
          "h1",
          ".contact-hero-sub",
          ".channel-name",
          ".hours-label"
        ]
      }
    ]
  ],
  "styleCss": "[data-reveal]{opacity:1!important;transform:none!important}\n[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   THE SWISS LAUNDRY — /contact\n   Tone: Warm, direct, every channel surfaced\n   ══════════════════════════════════════════════ */\n*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}\n*{-webkit-tap-highlight-color:transparent}\n:root{\n  --cream:#F5F0E8;--dark:#0c0b0a;--dark2:#1a1918;--dark3:#141312;\n  --pink:#C0415A;--pink2:#a8324a;\n  --gold:#C9A84C;--gold-l:#E2C97E;\n  --green:#25D366;\n  --serif:'Cormorant Garamond',Georgia,serif;\n  --sans:'Jost','Helvetica Neue',Arial,sans-serif;\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}\n/* theme: dark default */\n:root{--bg:#1a1918;--bg2:#201e1d;--surf:rgba(255,255,255,.05);--surf-b:rgba(255,255,255,.09);--txt:#fff;--txt2:rgba(255,255,255,.82);--txt3:rgba(255,255,255,.55);}\n@media(prefers-color-scheme:light){\n  :root{--bg:#F5F0E8;--bg2:#EDE7D9;--surf:#fff;--surf-b:rgba(26,25,24,.1);--txt:#1a1918;--txt2:#3d3a36;--txt3:#7a7168;}\n}\nhtml{scroll-behavior:smooth;overflow-x:hidden}\nbody{font-family:var(--sans);background:var(--bg);color:var(--txt);-webkit-font-smoothing:antialiased;overflow-x:hidden}\n::-webkit-scrollbar{width:3px}\n::-webkit-scrollbar-thumb{background:rgba(201,168,76,.3);border-radius:2px}\n:focus-visible{outline:2px solid var(--gold);outline-offset:3px}\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:2px;background:linear-gradient(90deg,var(--pink),var(--gold));z-index:9999;width:0}\n[data-reveal]{transition:opacity .9s ease,transform .9s cubic-bezier(.16,1,.3,1)}\n.seo-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}\n\n/* ── HERO ── */\n.ct-hero{\n  background:var(--dark3);\n  min-height:100vh;\n  display:flex;flex-direction:column;justify-content:flex-end;\n  padding:0 8vw 5rem;\n  position:relative;overflow:hidden;\n}\n.ct-hero::before{\n  content:'';position:absolute;inset:0;\n  background-image:\n    linear-gradient(90deg,rgba(201,168,76,.025) 1px,transparent 1px),\n    linear-gradient(rgba(201,168,76,.025) 1px,transparent 1px);\n  background-size:48px 48px;pointer-events:none;\n}\n.ct-hero::after{\n  content:'';position:absolute;inset:0;\n  background:\n    radial-gradient(ellipse 60% 60% at 8% 85%,rgba(192,65,90,.09),transparent 55%),\n    radial-gradient(ellipse 40% 45% at 92% 12%,rgba(201,168,76,.06),transparent 50%);\n  pointer-events:none;\n}\n.ct-ghost{position:absolute;right:-1rem;bottom:-2rem;font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(100px,18vw,260px);color:rgba(255,255,255,.02);line-height:1;pointer-events:none;user-select:none}\n.ct-inner{position:relative;z-index:1;max-width:1100px;width:100%}\n.ct-eyebrow{font-family:var(--sans);font-size:9px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:.8rem;margin-bottom:1.2rem}\n.ct-eyebrow::before{content:'';width:32px;height:.5px;background:var(--gold)}\n.ct-h1{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(52px,9vw,120px);color:#fff;line-height:.88;letter-spacing:-.04em;margin-bottom:1.4rem}\n.ct-h1 em{color:var(--gold)}\n.contact-hero-sub{font-family:var(--sans);font-size:clamp(13px,1.5vw,16px);font-weight:300;color:rgba(255,255,255,.45);line-height:1.75;max-width:480px}\n.scroll-hint-wrap{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.4rem;opacity:.25;pointer-events:none}\n.scroll-hint-wrap span{font-family:var(--sans);font-size:8px;letter-spacing:.28em;text-transform:uppercase;color:#fff}\n.scroll-hint-line{width:1px;height:28px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.7));animation:shPulse 2.2s ease-in-out infinite}\n@keyframes shPulse{0%,100%{opacity:.3;transform:scaleY(.7)}50%{opacity:.9;transform:scaleY(1)}}\n.ct-threshold{width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(201,168,76,.5) 50%,transparent)}\n\n/* ── BODY LAYOUT — 2 columns ── */\n.ct-body{padding:6rem 8vw 8rem;background:var(--bg)}\n.ct-grid{display:grid;grid-template-columns:1fr 440px;gap:5rem;max-width:1100px;margin:0 auto;align-items:start}\n\n/* ── LEFT — channels + info ── */\n.ct-left{}\n.channels-eyebrow{font-family:var(--sans);font-size:8px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--txt3);display:block;margin-bottom:.5rem}\n.channels-title{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(24px,3vw,38px);color:var(--txt);margin-bottom:2rem;line-height:1.1}\n\n/* Channel cards */\n.channels-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-bottom:2.5rem}\n.channel-card{\n  background:var(--surf);border:1px solid var(--surf-b);\n  border-radius:10px;padding:1.4rem;\n  text-decoration:none;display:flex;flex-direction:column;gap:.6rem;\n  transition:border-color .2s,transform .2s,box-shadow .2s;\n  position:relative;overflow:hidden;\n}\n.channel-card:hover{border-color:rgba(192,65,90,.2);transform:translateY(-2px);box-shadow:0 6px 20px rgba(26,25,24,.07)}\n@media(prefers-color-scheme:dark){\n  .channel-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}\n  .channel-card:hover{border-color:rgba(192,65,90,.3);box-shadow:none}\n}\n.channel-card.wa{border-color:rgba(37,211,102,.2)}\n.channel-card.wa:hover{border-color:rgba(37,211,102,.5);box-shadow:0 6px 20px rgba(37,211,102,.08)}\n.channel-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}\n.channel-card.wa   .channel-icon{background:rgba(37,211,102,.12)}\n.channel-card.call .channel-icon{background:rgba(192,65,90,.1)}\n.channel-card.mail .channel-icon{background:rgba(201,168,76,.1)}\n.channel-card.visit .channel-icon{background:rgba(26,25,24,.06)}\n@media(prefers-color-scheme:dark){\n  .channel-card.visit .channel-icon{background:rgba(255,255,255,.08)}\n}\n.channel-icon svg{width:18px;height:18px}\n.channel-card.wa   .channel-icon svg{color:#25D366}\n.channel-card.call .channel-icon svg{color:var(--pink)}\n.channel-card.mail .channel-icon svg{color:var(--gold)}\n.channel-card.visit .channel-icon svg{color:var(--txt3)}\n.channel-name{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(16px,2vw,20px);color:var(--txt)}\n.channel-value{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--txt2)}\n.channel-note{font-family:var(--sans);font-size:10px;font-weight:300;color:var(--txt3);line-height:1.5}\n.channel-arrow{position:absolute;bottom:.9rem;right:1rem;color:var(--txt3);opacity:.4;font-size:14px;transition:opacity .2s,transform .2s}\n.channel-card:hover .channel-arrow{opacity:.8;transform:translateX(2px)}\n\n/* Hours block */\n.hours-block{background:var(--bg2);border-radius:10px;padding:1.4rem 1.6rem;margin-bottom:1.5rem}\n@media(prefers-color-scheme:dark){.hours-block{background:rgba(255,255,255,.04)}}\n.hours-label{font-family:var(--sans);font-size:8px;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:var(--txt3);display:block;margin-bottom:.8rem}\n.hours-row{display:flex;justify-content:space-between;align-items:center;padding:.35rem 0;border-bottom:.5px solid var(--surf-b);font-family:var(--sans);font-size:12px;font-weight:300}\n.hours-row:last-child{border-bottom:none;padding-bottom:0}\n.hours-day{color:var(--txt2)}\n.hours-time{color:var(--txt3)}\n.hours-time.open{color:var(--txt)}\n.hours-time.closed{color:var(--pink);opacity:.7}\n/* Live open/closed dot */\n.live-status{display:inline-flex;align-items:center;gap:.4rem;margin-top:.8rem;font-family:var(--sans);font-size:10px;font-weight:400}\n.live-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}\n.live-dot.open{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.2);animation:livePulse 2s ease-in-out infinite}\n.live-dot.closed{background:var(--txt3)}\n@keyframes livePulse{0%,100%{box-shadow:0 0 0 3px rgba(34,197,94,.2)}50%{box-shadow:0 0 0 6px rgba(34,197,94,.08)}}\n\n/* Address */\n.address-block{font-family:var(--sans);font-size:12px;font-weight:300;color:var(--txt2);line-height:1.8}\n.address-block a{color:var(--pink);text-decoration:none}\n.address-block a:hover{text-decoration:underline}\n.address-block strong{color:var(--txt);font-weight:400;display:block;margin-bottom:.3rem;font-size:11px;letter-spacing:.08em;text-transform:uppercase}\n\n/* ── RIGHT — sticky form ── */\n.ct-right{position:sticky;top:88px}\n.ct-form-card{\n  background:var(--surf);border:1px solid var(--surf-b);\n  border-radius:12px;padding:2rem;\n}\n@media(prefers-color-scheme:dark){\n  .ct-form-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1)}\n}\n.form-eyebrow{font-family:var(--sans);font-size:8px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--txt3);display:block;margin-bottom:.4rem}\n.form-title{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(20px,2.5vw,26px);color:var(--txt);display:block;margin-bottom:1.4rem;line-height:1.2}\n\n/* Form fields */\n.field-row{margin-bottom:1rem}\n.field-row.two-col{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}\n.field-wrap{display:flex;flex-direction:column;gap:.3rem}\n.field-label{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--txt3)}\n.field-input,\n.field-select,\n.field-textarea{\n  width:100%;\n  font-family:var(--sans);font-size:13px;font-weight:300;\n  color:var(--txt);background:var(--bg);\n  border:1px solid var(--surf-b);\n  border-radius:6px;padding:.65rem .85rem;\n  transition:border-color .2s,box-shadow .2s;\n  outline:none;\n  -webkit-appearance:none;\n}\n.field-input:focus,\n.field-select:focus,\n.field-textarea:focus{\n  border-color:var(--gold);\n  box-shadow:0 0 0 3px rgba(201,168,76,.1);\n}\n.field-input::placeholder,\n.field-textarea::placeholder{color:var(--txt3);opacity:.6}\n.field-textarea{resize:vertical;min-height:100px;line-height:1.6}\n.field-select{cursor:pointer;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a7168' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right .7rem center;background-size:16px;padding-right:2.2rem}\n\n/* Honeypot — hidden from humans, visible to bots */\n.field-honeypot{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none;tab-index:-1}\n\n/* reCAPTCHA notice */\n.recaptcha-notice{font-family:var(--sans);font-size:10px;font-weight:300;color:var(--txt3);line-height:1.6;margin-top:.8rem}\n.recaptcha-notice a{color:var(--txt3);text-decoration:underline}\n\n/* Submit button */\n.form-submit{\n  width:100%;\n  background:var(--pink);color:#fff;\n  font-family:var(--sans);font-size:9px;font-weight:500;\n  letter-spacing:.2em;text-transform:uppercase;\n  padding:.9rem;border-radius:6px;\n  border:none;cursor:pointer;\n  display:flex;align-items:center;justify-content:center;gap:.5rem;\n  transition:background .2s,transform .1s;\n  margin-top:1.2rem;\n}\n.form-submit:hover{background:var(--pink2)}\n.form-submit:active{transform:scale(.99)}\n.form-submit:disabled{opacity:.6;cursor:not-allowed}\n.form-submit svg{width:13px;height:13px;flex-shrink:0}\n\n/* Form states */\n.form-success{\n  display:none;text-align:center;padding:2rem 1rem;\n  font-family:var(--serif);font-style:italic;font-weight:300;\n  font-size:clamp(18px,2vw,24px);color:var(--txt);line-height:1.5;\n}\n.form-success-icon{font-size:32px;display:block;margin-bottom:.8rem}\n.form-error-msg{\n  display:none;\n  font-family:var(--sans);font-size:11px;color:var(--pink);\n  margin-top:.5rem;padding:.5rem .7rem;\n  background:rgba(192,65,90,.08);border-radius:4px;\n}\n\n/* WA float */\n.wa-float{position:fixed;bottom:2rem;right:2rem;width:56px;height:56px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:9990;box-shadow:0 4px 20px rgba(37,211,102,.4);transition:transform .3s,box-shadow .3s;text-decoration:none}\n.wa-float:hover{transform:scale(1.1) translateY(-2px);box-shadow:0 8px 30px rgba(37,211,102,.5)}\n.wa-float svg{width:28px;height:28px;fill:#fff}\n.wa-float::before{content:'';position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(37,211,102,.4);animation:waPulse 2.5s ease-out infinite}\n@keyframes waPulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.5);opacity:0}}\n.wa-tooltip{position:absolute;right:68px;background:#1a1918;color:#fff;font-family:var(--sans);font-size:11px;white-space:nowrap;padding:6px 12px;border-radius:4px;opacity:0;transform:translateX(8px);transition:opacity .3s,transform .3s;pointer-events:none}\n.wa-float:hover .wa-tooltip{opacity:1;transform:translateX(0)}\n\n/* Cursor + intro */\n@media(hover:hover) and (pointer:fine){\n  *{cursor:none!important}\n  .cursor-dot{position:fixed;top:0;left:0;z-index:99999;pointer-events:none;width:8px;height:8px;background:var(--gold);border-radius:50%;transform:translate(-50%,-50%);transition:width .2s,height .2s,background .2s,opacity .3s;mix-blend-mode:difference}\n  .cursor-ring{position:fixed;top:0;left:0;z-index:99998;pointer-events:none;width:32px;height:32px;border:1px solid rgba(201,168,76,.4);border-radius:50%;transform:translate(-50%,-50%);transition:width .35s cubic-bezier(.16,1,.3,1),height .35s cubic-bezier(.16,1,.3,1),border-color .2s,opacity .3s}\n  body.cursor-hover .cursor-dot{width:6px;height:6px;background:#fff}\n  body.cursor-hover .cursor-ring{width:44px;height:44px}\n  body.cursor-link .cursor-dot{width:12px;height:12px;background:var(--pink)}\n  body.cursor-link .cursor-ring{width:48px;height:48px;border-color:rgba(192,65,90,.5)}\n  body.cursor-hidden .cursor-dot,body.cursor-hidden .cursor-ring{opacity:0}\n}\n.intro-screen{position:fixed;inset:0;z-index:99997;background:var(--dark2,#1a1918);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1.2rem;transition:opacity .6s ease,transform .6s cubic-bezier(.16,1,.3,1)}\n.intro-screen.hidden{opacity:0;pointer-events:none;transform:translateY(-8px)}\n.intro-monogram{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(48px,8vw,96px);color:var(--gold,#C9A84C);letter-spacing:-.04em;opacity:0;animation:introFadeIn .8s cubic-bezier(.16,1,.3,1) .1s forwards}\n.intro-wordmark{font-family:'Jost','Helvetica Neue',Arial,sans-serif;font-size:9px;font-weight:300;letter-spacing:.35em;text-transform:uppercase;color:rgba(255,255,255,.25);opacity:0;animation:introFadeIn .6s ease .5s forwards}\n.intro-line{width:0;height:.5px;background:var(--gold,#C9A84C);opacity:.3;animation:introLine .8s cubic-bezier(.16,1,.3,1) .3s forwards}\n@keyframes introFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}\n@keyframes introLine{from{width:0}to{width:80px}}\n.page-transition-overlay{position:fixed;inset:0;z-index:99996;background:var(--dark2,#1a1918);opacity:0;pointer-events:none;transition:opacity .35s ease}\n.page-transition-overlay.active{opacity:1;pointer-events:all}\n\n@media print{.wa-float,.bookPill,.seasonal-banner,.scroll-bar,.ct-form-card{display:none!important}body{font-size:11pt;color:#000;background:#fff}}\n@media(max-width:1000px){\n  .ct-grid{grid-template-columns:1fr;gap:3.5rem}\n  .ct-right{position:static}\n  .ct-body{padding:4rem 5vw 6rem}\n  .ct-hero{padding:8rem 5vw 4rem;min-height:auto}\n}\n@media(max-width:580px){\n  .channels-grid{grid-template-columns:1fr}\n  .field-row.two-col{grid-template-columns:1fr}\n}\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/* 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.ct-map{width:100%;background:var(--off,#FAFAF8);border-top:1px solid rgba(26,25,24,.08)}\n.ct-map-head{text-align:center;padding:60px 24px 30px}\n.ct-map-eyebrow{font-family:var(--sans,'Jost',sans-serif);font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold,#C9A84C);margin-bottom:12px}\n.ct-map-head h2{font-family:var(--serif,'Cormorant Garamond',serif);font-weight:300;font-size:clamp(28px,4vw,40px);color:var(--ink,#1a1918);margin:0 0 10px;line-height:1.1}\n.ct-map-head p{font-family:var(--sans,'Jost',sans-serif);font-weight:300;font-size:15px;color:#6b675f;margin:0;line-height:1.7}\n.ct-map-frame{position:relative;width:100%;height:440px;overflow:hidden}\n.ct-map-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;background:linear-gradient(135deg,#eef1ec,#f6f3ec);z-index:1}\n.ct-map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(201,168,76,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(201,168,76,.12) 1px,transparent 1px);background-size:46px 46px}\n.ct-map-pin{position:relative;color:var(--pink,#C0415A);width:54px;height:54px;margin-bottom:14px;animation:ctPinBob 2.4s ease-in-out infinite}\n.ct-map-pin svg{width:54px;height:54px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.18))}\n@keyframes ctPinBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}\n.ct-map-fallback-label{position:relative;font-family:var(--sans,'Jost',sans-serif);font-size:14px;letter-spacing:.04em;color:#1a1918;text-align:center;line-height:1.7}\n.ct-map-fallback-label small{color:#8a857c;font-size:12px;letter-spacing:.1em;text-transform:uppercase}\n.ct-map-iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;z-index:2;filter:grayscale(.15)}\n.ct-map-dir{text-align:center;padding:26px 24px 60px}\n.ct-map-dir a{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans,'Jost',sans-serif);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink,#1a1918);text-decoration:none;border:1px solid var(--ink,#1a1918);padding:14px 34px;transition:all .25s}\n.ct-map-dir a:hover{background:var(--ink,#1a1918);color:#fff}\n@media(max-width:600px){.ct-map-frame{height:340px}}\n\n\n.tsl-crumbs{max-width:1200px;margin:0 auto;padding:14px 8vw 0;position:relative;z-index:5}\n.tsl-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;font-family:var(--sans,'Jost',sans-serif);font-size:11px;letter-spacing:.06em}\n.tsl-crumbs li{display:flex;align-items:center;gap:6px;color:inherit;opacity:.55}\n.tsl-crumbs li:not(:last-child)::after{content:'›';opacity:.6}\n.tsl-crumbs a{color:inherit;text-decoration:none;transition:opacity .2s}\n.tsl-crumbs a:hover{opacity:1;text-decoration:underline}\n.tsl-crumbs li:last-child{opacity:.85}\n@media(max-width:600px){.tsl-crumbs{padding:12px 6vw 0}}\n\n\n\n/* breadcrumb contrast */\n.tsl-crumbs a,.tsl-crumbs li{color:rgba(255,255,255,.75)!important}\n.tsl-crumbs a:hover{color:var(--gold,#C9A84C)!important}\n.tsl-crumbs li[aria-current=\"page\"]{color:rgba(255,255,255,.95)!important}\n[data-theme=\"light\"] .tsl-crumbs a,\n[data-theme=\"light\"] .tsl-crumbs li,\n.s-cream .tsl-crumbs a,\n.s-cream .tsl-crumbs li{\n  color:rgba(26,25,24,.75)!important;\n}\n[data-theme=\"light\"] .tsl-crumbs a:hover,\n.s-cream .tsl-crumbs a:hover{color:var(--pink,#C0415A)!important}\n@media (prefers-color-scheme: light){\n  /* crumbs sit on cream body above dark heroes */\n  body > .tsl-crumbs a,\n  body > .tsl-crumbs li,\n  main > .tsl-crumbs a,\n  .scroll-bar + .tsl-crumbs a,\n  .scroll-bar + .tsl-crumbs li,\n  #introScreen + .tsl-crumbs a,\n  div > .tsl-crumbs a,\n  div > .tsl-crumbs li{\n    color:rgba(26,25,24,.75)!important;\n  }\n}\n\n/* ═══ Force dark-default shell ═══ */\n:root{\n  --off:#1a1918 !important;\n  --pink-pale:#1a1918 !important;\n}\nbody{\n  background:var(--bg,var(--off,#1a1918))!important;\n  color:var(--txt,#fff)!important;\n}\n/* When a page hardcodes cream body vars, keep body dark unless OS wants light */\n@media (prefers-color-scheme: light){\n  :root{\n    --off:#FAFAF8 !important;\n    --pink-pale:#fdf0f2 !important;\n  }\n  body{\n    background:var(--cream,var(--off,#F5F0E8))!important;\n    color:var(--dark2,var(--ink,#1a1918))!important;\n  }\n}\n",
  "scriptJs": "function acceptCookies(){\n  try {\n    localStorage.setItem('tsl_cookies','accepted');\n    document.querySelectorAll('.cookie-bar').forEach(function(bar){ bar.classList.remove('show'); bar.style.display='none'; });\n  } catch(e){}\n}\nwindow.addEventListener('DOMContentLoaded', function(){\n  try {\n    if(!localStorage.getItem('tsl_cookies')){\n      setTimeout(function(){\n        var bar = document.getElementById('cookieBar')\n        if(bar) bar.classList.add('show')\n      }, 2000)\n    }\n  } catch(e){}\n})\n;\nwindow.addEventListener('load', function(){\n  setTimeout(function(){\n    var pl = document.getElementById('preloader')\n    if(pl) pl.classList.add('hidden')\n  }, 1200)\n})\n;\n\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(function(){\n'use strict';\n\n/* ── Scroll bar ── */\nwindow.addEventListener('scroll',function(){\n  var b=document.getElementById('scrollBar');\n  if(b)b.style.width=(window.scrollY/(document.documentElement.scrollHeight-window.innerHeight)*100)+'%';\n},{passive:true});\n\n/* ── Nav colour ── */\n(function(){\n  var nav=document.getElementById('nav');\n  if(!nav)return;\n  function u(){nav.classList.toggle('on-dark',window.scrollY<80);nav.classList.toggle('on-light',window.scrollY>=80);}\n  window.addEventListener('scroll',u,{passive:true});u();\n})();\n\n/* ── Lenis ── */\nif(window.Lenis){\n  var lenis=new window.Lenis({duration:1.2,smoothWheel:true});\n  (function raf(t){lenis.raf(t);requestAnimationFrame(raf)})(0);\n}\n\n/* ── Reveal ── */\n(function(){\n  var els=document.querySelectorAll('[data-reveal]');\n  if(!els.length)return;\n  var obs=new IntersectionObserver(function(evts){\n    evts.forEach(function(e){\n      if(!e.isIntersecting)return;\n      e.target.style.opacity='1';e.target.style.transform='translateY(0)';\n      obs.unobserve(e.target);\n    });\n  },{threshold:0.1});\n  requestAnimationFrame(function(){\n    els.forEach(function(el,i){\n      el.style.opacity='0';el.style.transform='translateY(16px)';\n      el.style.transition='opacity .9s ease '+(i%5*.07)+'s,transform .9s cubic-bezier(.16,1,.3,1) '+(i%5*.07)+'s';\n      obs.observe(el);\n    });\n  });\n})();\n\n/* ── Live open/closed status ── */\n(function(){\n  var dot=document.getElementById('liveDot');\n  var txt=document.getElementById('liveText');\n  if(!dot||!txt)return;\n  var now=new Date();\n  var day=now.getDay(); // 0=Sun, 6=Sat\n  var hr=now.getHours();\n  var min=now.getMinutes();\n  var open=(day>=1&&day<=6)&&(hr>10||(hr===10&&min>=0))&&hr<17;\n  if(open){\n    dot.className='live-dot open';\n    txt.textContent='Open now · Closes at 5:00 PM';\n    txt.style.color='#22c55e';\n  } else if(day===0){\n    dot.className='live-dot closed';\n    txt.textContent='Closed today · Opens Monday 10AM';\n    txt.style.color='var(--txt3)';\n  } else if(hr<10){\n    dot.className='live-dot closed';\n    txt.textContent='Opens today at 10:00 AM';\n    txt.style.color='var(--txt3)';\n  } else {\n    dot.className='live-dot closed';\n    txt.textContent='Closed now · Opens tomorrow 10AM';\n    txt.style.color='var(--txt3)';\n  }\n})();\n\n/* ── Contact form — reCAPTCHA v3 + honeypot + validation ── */\n(function(){\n  var form=document.getElementById('contactForm');\n  var btn=document.getElementById('formSubmit');\n  var successEl=document.getElementById('formSuccess');\n  var errorEl=document.getElementById('formError');\n  if(!form)return;\n\n  function showError(msg){\n    errorEl.textContent=msg;errorEl.style.display='block';\n    setTimeout(function(){errorEl.style.display='none';},5000);\n  }\n\n  function validateForm(){\n    var name=form.querySelector('#ct-name').value.trim();\n    var phone=form.querySelector('#ct-phone').value.trim();\n    var subject=form.querySelector('#ct-subject').value;\n    var message=form.querySelector('#ct-message').value.trim();\n    if(name.length<2){showError('Please enter your name.');return false;}\n    if(phone.length<7){showError('Please enter a valid phone number.');return false;}\n    if(!subject){showError('Please select a topic.');return false;}\n    if(message.length<10){showError('Please write a brief message.');return false;}\n    return true;\n  }\n\n  form.addEventListener('submit',function(e){\n    e.preventDefault();\n\n    /* Honeypot check — if website field has content, it's a bot */\n    var honeypot=form.querySelector('#website');\n    if(honeypot&&honeypot.value){\n      /* Silently reject — bots don't know they failed */\n      successEl.style.display='block';\n      form.style.display='none';\n      return;\n    }\n\n    if(!validateForm())return;\n\n    btn.disabled=true;\n    btn.textContent='Sending...';\n\n    /* reCAPTCHA v3 — execute with action name 'contact' */\n    if(window.grecaptcha){\n      window.grecaptcha.ready(function(){\n        window.grecaptcha.execute('YOUR_RECAPTCHA_V3_SITE_KEY',{action:'contact'})\n        .then(function(token){\n          document.getElementById('recaptchaToken').value=token;\n          submitForm();\n        })\n        .catch(function(){\n          /* reCAPTCHA failed — submit anyway, server will handle */\n          submitForm();\n        });\n      });\n    } else {\n      /* reCAPTCHA not loaded (ad blocker, slow network) — submit without */\n      submitForm();\n    }\n  });\n\n  function submitForm(){\n    var formEl=document.getElementById('contactForm');\n    var formData=new FormData(formEl);\n    var fd=Object.fromEntries(formData.entries());\n    var token='';\n    try{ token=sessionStorage.getItem('tsl_token')||''; }catch(e){}\n    var headers={'Content-Type':'application/json'};\n    if(token) headers['Authorization']='Bearer '+token;\n    var payload={\n      name:(fd.name||'').trim(),\n      phone:(fd.phone||'').trim(),\n      email:(fd.email||'').trim(),\n      subject:(fd.subject||'').trim(),\n      message:(fd.message||'').trim()\n    };\n    fetch('/api/contact',{method:'POST',headers:headers,body:JSON.stringify(payload)})\n      .then(function(r){return r.json().then(function(data){return {ok:r.ok,data:data};});})\n      .then(function(res){\n        var data=res.data||{};\n        if(data.needsLogin){\n          var wa='Hello, I am '+payload.name+'. '+payload.message+' (Phone: '+payload.phone+(payload.email?', Email: '+payload.email:'')+', Topic: '+payload.subject+')';\n          window.open('https://wa.me/919836233354?text='+encodeURIComponent(wa),'_blank','noopener,noreferrer');\n          successEl.style.display='block';\n          formEl.style.display='none';\n          return;\n        }\n        if(data.success){\n          successEl.style.display='block';\n          formEl.style.display='none';\n        } else {\n          showError(data.error||data.message||'Something went wrong. Please call us on 9836233354.');\n          btn.disabled=false;btn.textContent='Send message';\n        }\n      })\n      .catch(function(){\n        showError('Could not send message. Please call us on 9836233354 or WhatsApp.');\n        btn.disabled=false;btn.textContent='Send message';\n      });\n  }\n\n})();\n\n/* ── Cursor ── */\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);document.body.appendChild(ring);\n  var mx=0,my=0,rx=0,ry=0;\n  document.addEventListener('mousemove',function(e){mx=e.clientX;my=e.clientY;dot.style.left=mx+'px';dot.style.top=my+'px';},{passive:true});\n  (function lerp(){rx+=(mx-rx)*.12;ry+=(my-ry)*.12;ring.style.left=rx+'px';ring.style.top=ry+'px';requestAnimationFrame(lerp);})();\n  document.addEventListener('mouseover',function(e){var t=e.target,isLink=t.closest('a,button,[role=\"button\"]'),isText=t.closest('p,h1,h2,h3,li,label');document.body.classList.toggle('cursor-link',!!isLink);document.body.classList.toggle('cursor-hover',!!isText&&!isLink);},{passive:true});\n  document.addEventListener('mouseleave',function(){document.body.classList.add('cursor-hidden');},{passive:true});\n  document.addEventListener('mouseenter',function(){document.body.classList.remove('cursor-hidden');},{passive:true});\n}\n\n/* ── Intro screen ── */\nvar introEl=document.getElementById('introScreen');\nif(introEl){\n  if(sessionStorage.getItem('tsl_intro_shown')){introEl.style.display='none';}\n  else{setTimeout(function(){introEl.classList.add('hidden');setTimeout(function(){introEl.style.display='none';sessionStorage.setItem('tsl_intro_shown','1');},700);},1400);}\n}\n\n/* ── Page transitions ── */\nvar style=document.createElement('style');\nstyle.textContent='.page-transition-overlay{position:fixed;inset:0;z-index:99996;background:#1a1918;opacity:0;pointer-events:none;transition:opacity .35s ease}.page-transition-overlay.active{opacity:1;pointer-events:all}';\ndocument.head.appendChild(style);\nvar overlay=document.createElement('div');overlay.className='page-transition-overlay';document.body.appendChild(overlay);\ndocument.addEventListener('click',function(e){var a=e.target.closest('a');if(!a||!a.href||a.target==='_blank'||a.href.startsWith('tel:')||a.href.startsWith('mailto:')||a.href.startsWith('https://wa.me')||a.href.includes('#')||e.metaKey||e.ctrlKey)return;if(new URL(a.href).host!==location.host)return;e.preventDefault();overlay.classList.add('active');setTimeout(function(){location.href=a.href;},320);});\noverlay.classList.add('active');requestAnimationFrame(function(){requestAnimationFrame(function(){overlay.classList.remove('active');});});\n\n})();\n\n;\n\n/* ── Global features JS ── */\n(function(){\n  /* Seasonal banner */\n  var banner=document.getElementById('seasonalBanner');\n  var bannerClose=document.getElementById('bannerClose');\n  if(banner && bannerClose){\n    var dismissed=sessionStorage.getItem('bannerDismissed');\n    if(dismissed) banner.classList.add('hidden');\n    bannerClose.addEventListener('click',function(){\n      banner.classList.add('hidden');\n      sessionStorage.setItem('bannerDismissed','1');\n    });\n  }\n\n  /* Sticky booking pill — show after 5s, hide when near footer */\n  var pill=document.getElementById('bookPill');\n  if(pill){\n    var pillTimer=setTimeout(function(){\n      pill.classList.remove('hidden');\n    },5000);\n    /* Hide pill when footer is visible */\n    var footer=document.querySelector('footer');\n    if(footer){\n      var pillObs=new IntersectionObserver(function(entries){\n        entries.forEach(function(e){\n          pill.classList.toggle('hidden',e.isIntersecting);\n        });\n      },{threshold:0.1});\n      pillObs.observe(footer);\n    }\n  }\n\n  /* Dark/light theme toggle */\n  var toggle=document.getElementById('themeToggle');\n  if(toggle){\n    var stored=localStorage.getItem('theme');\n    if(stored) document.documentElement.setAttribute('data-theme',stored);\n    toggle.addEventListener('click',function(){\n      var current=document.documentElement.getAttribute('data-theme');\n      var next=current==='light'?'dark':'light';\n      document.documentElement.setAttribute('data-theme',next);\n      localStorage.setItem('theme',next);\n    });\n  }\n\n  /* Reading progress bar */\n  var prog=document.getElementById('readProgress');\n  if(prog){\n    window.addEventListener('scroll',function(){\n      var h=document.documentElement;\n      var pct=(h.scrollTop||document.body.scrollTop)/(h.scrollHeight-h.clientHeight)*100;\n      prog.style.width=Math.min(100,pct)+'%';\n    },{passive:true});\n  }\n\n  /* Was this helpful */\n  document.querySelectorAll('.helpful-btn').forEach(function(btn){\n    btn.addEventListener('click',function(){\n      var block=btn.closest('.helpful-block');\n      var thanks=block && block.querySelector('.helpful-thanks');\n      if(thanks){thanks.classList.add('show');}\n      if(btn.dataset.helpful==='no'){\n        var wa=document.createElement('a');\n        wa.href='https://wa.me/919836233354?text=I+had+a+question+about+your+guide';\n        wa.target='_blank';wa.rel='noopener';\n        wa.style.cssText='font-family:var(--sans);font-size:11px;color:#25D366;margin-left:.5rem';\n        wa.textContent='Chat with us →';\n        if(thanks) thanks.appendChild(wa);\n      }\n      document.querySelectorAll('.helpful-btn').forEach(function(b){b.classList.remove('active')});\n      btn.classList.add('active');\n    });\n  });\n\n})();\n",
  "bodyHtml": "<div id=\"introScreen\" class=\"intro-screen\" role=\"status\" aria-label=\"Loading\">\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<a href=\"#main\" class=\"skip-link\">Skip to main content</a>\n<div class=\"seasonal-banner\" id=\"seasonalBanner\" role=\"banner\" aria-label=\"Free pickup offer\">\n  🧺 Want a home pickup? Complimentary pickup on invoices above ₹1,000.\n  <a href=\"/pickup\">Book Now →</a>\n  <button class=\"banner-close\" id=\"bannerClose\" aria-label=\"Close banner\">✕</button>\n</div>\n<div class=\"scroll-bar\" id=\"scrollBar\" aria-hidden=\"true\"></div>\n\n<nav class=\"tsl-crumbs\" aria-label=\"Breadcrumb\"><ol><li><a href=\"/\">Home</a></li><li aria-current=\"page\">Contact</li></ol></nav>\n\n<p class=\"seo-hidden\">Contact The Swiss Laundry Kolkata phone 9836233354 WhatsApp email info@theswisslaundry.com address Kasba Industrial Estate laundry dry cleaning enquiry.</p>\n\n<main id=\"main\">\n\n  <!-- HERO -->\n  <section class=\"ct-hero\" aria-labelledby=\"ct-h1\">\n    <span class=\"ct-ghost\" aria-hidden=\"true\">Contact</span>\n    <div class=\"ct-inner\">\n      <p class=\"ct-eyebrow\">Get in touch · Kolkata · Since 2013</p>\n      <h1 class=\"ct-h1\" id=\"ct-h1\">\n        Let’s talk<br>\n        <em>garments.</em>\n      </h1>\n      <p class=\"contact-hero-sub\">Four ways to reach us. Fastest is WhatsApp. Most detailed is email. Most direct is a call. We are always here Mon–Sat, 10AM–5PM.</p>\n    </div>\n    <div class=\"scroll-hint-wrap\" aria-hidden=\"true\">\n      <span>All channels below</span>\n      <div class=\"scroll-hint-line\"></div>\n    </div>\n  </section>\n\n  <div class=\"ct-threshold\" aria-hidden=\"true\"></div>\n\n  <!-- BODY -->\n  <div class=\"ct-body\">\n    <div class=\"ct-grid\">\n\n      <!-- LEFT — channels + info -->\n      <div class=\"ct-left\">\n        <span class=\"channels-eyebrow\">Choose how to reach us</span>\n        <h2 class=\"channels-title\">Four ways to get in touch.</h2>\n        <div class=\"channels-grid\">\n  <a href=\"https://wa.me/919836233354?text=Hi+I+have+an+enquiry\" class=\"channel-card wa\" target=\"_blank\" rel=\"noopener\" aria-label=\"WhatsApp The Swiss Laundry\" data-reveal=\"\">\n    <div class=\"channel-icon\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" style=\"width:18px;height:18px\"><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>\n    <span class=\"channel-name\">WhatsApp</span>\n    <span class=\"channel-value\">+91 98362 33354</span>\n    <span class=\"channel-note\">Fastest response. Send a message any time — we reply during working hours.</span>\n    <span class=\"channel-arrow\" aria-hidden=\"true\">→</span>\n  </a>\n  <a href=\"tel:9836233354\" class=\"channel-card call\" aria-label=\"Call The Swiss Laundry\" data-reveal=\"\">\n    <div class=\"channel-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" style=\"width:18px;height:18px\"><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.26 11.1a19.79 19.79 0 01-3.07-8.67A2 2 0 012.17 0h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L6.09 7.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z\"></path></svg></div>\n    <span class=\"channel-name\">Phone</span>\n    <span class=\"channel-value\">98362 33354</span>\n    <span class=\"channel-note\">Mon–Sat, 10AM–5PM. For express and emergency enquiries, call us directly.</span>\n    <span class=\"channel-arrow\" aria-hidden=\"true\">→</span>\n  </a>\n  <a href=\"mailto:info@theswisslaundry.com\" class=\"channel-card mail\" aria-label=\"Email The Swiss Laundry\" data-reveal=\"\">\n    <div class=\"channel-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" style=\"width:18px;height:18px\"><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    <span class=\"channel-name\">Email</span>\n    <span class=\"channel-value\">info@theswisslaundry.com</span>\n    <span class=\"channel-note\">For detailed enquiries, invoices, and corporate accounts. We respond within one working day.</span>\n    <span class=\"channel-arrow\" aria-hidden=\"true\">→</span>\n  </a>\n  <a href=\"https://maps.google.com/?q=P-4+Kasba+Industrial+Estate+Kolkata\" class=\"channel-card visit\" target=\"_blank\" rel=\"noopener\" aria-label=\"Visit The Swiss Laundry\" data-reveal=\"\">\n    <div class=\"channel-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" style=\"width:18px;height:18px\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z\"></path><circle cx=\"12\" cy=\"10\" r=\"3\"></circle></svg></div>\n    <span class=\"channel-name\">Visit</span>\n    <span class=\"channel-value\">Kasba, Kolkata 700107</span>\n    <span class=\"channel-note\">P-4 Kasba Industrial Estate, Phase III, E.M. Bypass (East). Mon–Sat, 10AM–5PM.</span>\n    <span class=\"channel-arrow\" aria-hidden=\"true\">→</span>\n  </a>\n</div>\n        <div class=\"hours-block\" data-reveal=\"\">\n  <span class=\"hours-label\">Working hours</span>\n  <div class=\"hours-row\"><span class=\"hours-day\">Monday – Friday</span><span class=\"hours-time open\">10:00 AM – 5:00 PM</span></div>\n  <div class=\"hours-row\"><span class=\"hours-day\">Saturday</span><span class=\"hours-time open\">10:00 AM – 5:00 PM</span></div>\n  <div class=\"hours-row\"><span class=\"hours-day\">Sunday</span><span class=\"hours-time closed\">Closed</span></div>\n  <div class=\"live-status\" id=\"liveStatus\" aria-live=\"polite\">\n  <span class=\"live-dot\" id=\"liveDot\"></span>\n  <span id=\"liveText\" style=\"font-family:var(--sans);font-size:10px;color:var(--txt3)\">Checking hours...</span>\n</div>\n</div>\n        <div class=\"address-block\" data-reveal=\"\">\n  <strong>Our facility</strong>\n  P-4 Kasba Industrial Estate, Phase III<br>\n  E.M. Bypass (East), Kolkata – 700107<br>\n  West Bengal, India<br><br>\n  GST: 19AAECT0619D1ZL<br>\n  <a href=\"https://maps.google.com/?q=P-4+Kasba+Industrial+Estate+Kolkata\" target=\"_blank\" rel=\"noopener\">View on Google Maps →</a>\n</div>\n      </div>\n\n      <!-- RIGHT — sticky form -->\n      <div class=\"ct-right\">\n        <div class=\"ct-form-card\">\n  <span class=\"form-eyebrow\">Send a message</span>\n  <span class=\"form-title\">We’ll reply within<br>one working day.</span>\n\n  <div class=\"form-success\" id=\"formSuccess\" role=\"alert\" aria-live=\"polite\">\n    <span class=\"form-success-icon\" aria-hidden=\"true\">✦</span>\n    Thank you. Your message has been received.<br>We will reply within one working day.\n  </div>\n\n  <div id=\"formError\" class=\"form-error-msg\" role=\"alert\" aria-live=\"assertive\"></div>\n\n  <form id=\"contactForm\" novalidate=\"\" aria-label=\"Contact form\">\n\n    <!-- Honeypot — hidden from real users, bots fill it and get rejected -->\n    <div class=\"field-honeypot\" aria-hidden=\"true\">\n      <label for=\"website\">Website (leave blank)</label>\n      <input type=\"text\" id=\"website\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\">\n    </div>\n\n    <!-- reCAPTCHA v3 token — injected by JS before submit -->\n    <input type=\"hidden\" id=\"recaptchaToken\" name=\"g-recaptcha-response\">\n\n    <div class=\"field-row two-col\">\n      <div class=\"field-wrap\">\n        <label class=\"field-label\" for=\"ct-name\">Your name <span style=\"color:var(--pink)\">*</span></label>\n        <input class=\"field-input\" type=\"text\" id=\"ct-name\" name=\"name\" placeholder=\"Ananya Sharma\" autocomplete=\"name\" required=\"\" minlength=\"2\" maxlength=\"80\">\n      </div>\n      <div class=\"field-wrap\">\n        <label class=\"field-label\" for=\"ct-phone\">Phone <span style=\"color:var(--pink)\">*</span></label>\n        <input class=\"field-input\" type=\"tel\" id=\"ct-phone\" name=\"phone\" placeholder=\"98300 00000\" autocomplete=\"tel\" required=\"\" pattern=\"[0-9+\\s\\-(){}]{7,15}\">\n      </div>\n    </div>\n\n    <div class=\"field-row\">\n      <div class=\"field-wrap\">\n        <label class=\"field-label\" for=\"ct-email\">Email address</label>\n        <input class=\"field-input\" type=\"email\" id=\"ct-email\" name=\"email\" placeholder=\"you@example.com\" autocomplete=\"email\" maxlength=\"120\">\n      </div>\n    </div>\n\n    <div class=\"field-row\">\n      <div class=\"field-wrap\">\n        <label class=\"field-label\" for=\"ct-subject\">What can we help with? <span style=\"color:var(--pink)\">*</span></label>\n        <select class=\"field-select\" id=\"ct-subject\" name=\"subject\" required=\"\">\n          <option value=\"\" disabled=\"\" selected=\"\">Choose a topic</option>\n          <option value=\"pickup\">Book a pickup</option>\n          <option value=\"express\">Express or same-day service</option>\n          <option value=\"price\">Pricing enquiry</option>\n          <option value=\"corporate\">Corporate / bulk account</option>\n          <option value=\"bridal\">Bridal or occasion wear</option>\n          <option value=\"complaint\">Feedback or concern</option>\n          <option value=\"other\">Something else</option>\n        </select>\n      </div>\n    </div>\n\n    <div class=\"field-row\">\n      <div class=\"field-wrap\">\n        <label class=\"field-label\" for=\"ct-message\">Message <span style=\"color:var(--pink)\">*</span></label>\n        <textarea class=\"field-textarea\" id=\"ct-message\" name=\"message\" placeholder=\"Tell us what you need — garments, area, timeline, any specific requirements.\" required=\"\" minlength=\"10\" maxlength=\"1000\" rows=\"4\"></textarea>\n      </div>\n    </div>\n\n    <p class=\"recaptcha-notice\">\n      Protected by Google reCAPTCHA.\n      <a href=\"https://policies.google.com/privacy\" target=\"_blank\" rel=\"noopener\">Privacy</a>\n      &amp;\n      <a href=\"https://policies.google.com/terms\" target=\"_blank\" rel=\"noopener\">Terms</a> apply.\n    </p>\n\n    <button type=\"submit\" class=\"form-submit\" id=\"formSubmit\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" style=\"width:13px;height:13px\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg> Send message\n    </button>\n\n  </form>\n</div>\n      </div>\n\n    </div>\n  </div>\n\n</main>\n\n<a href=\"https://wa.me/919836233354?text=Hi+I+have+an+enquiry\" class=\"wa-float\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Chat on WhatsApp\">\n  <svg viewBox=\"0 0 24 24\" fill=\"#fff\"><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<!-- Sticky booking pill — mobile only, hidden on /pickup -->\n<a href=\"/pickup\" class=\"book-pill\" id=\"bookPill\" aria-label=\"Book a pickup\">\n  <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M12 5l7 7-7 7\"></path></svg>\n  Book Pickup · 2 min\n</a>\n<section class=\"ct-map\" aria-label=\"Our location on the map\">\n  <div class=\"ct-map-head\">\n    <div class=\"ct-map-eyebrow\">Find us</div>\n    <h2>P-4 Kasba Industrial Estate</h2>\n    <p>Phase III, E.M. Bypass (East), Kolkata 700107 &nbsp;·&nbsp; Mon–Sat, 10am–5pm</p>\n  </div>\n  <div class=\"ct-map-frame\">\n    <!-- Decorative map-styled fallback (always visible); the live iframe loads on top when allowed -->\n    <a class=\"ct-map-fallback\" href=\"https://maps.google.com/?q=P-4+Kasba+Industrial+Estate+Kolkata+700107\" target=\"_blank\" rel=\"noopener\" aria-label=\"Open The Swiss Laundry location in Google Maps\">\n      <div class=\"ct-map-grid\" aria-hidden=\"true\"></div>\n      <div class=\"ct-map-pin\" aria-hidden=\"true\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\"><path d=\"M12 21s7-6 7-11a7 7 0 10-14 0c0 5 7 11 7 11z\"></path><circle cx=\"12\" cy=\"10\" r=\"2.5\"></circle></svg>\n      </div>\n      <span class=\"ct-map-fallback-label\">The Swiss Laundry · Kasba, Kolkata<br><small>Tap to open in Google Maps</small></span>\n    </a>\n    <iframe class=\"ct-map-iframe\" src=\"https://maps.google.com/maps?q=P-4%20Kasba%20Industrial%20Estate%20Phase%20III%20EM%20Bypass%20Kolkata%20700107&amp;t=&amp;z=15&amp;ie=UTF8&amp;iwloc=&amp;output=embed\" loading=\"lazy\" referrerpolicy=\"no-referrer-when-downgrade\" title=\"The Swiss Laundry — Kasba, Kolkata location map\" allowfullscreen=\"\"></iframe>\n  </div>\n  <div class=\"ct-map-dir\">\n    <a href=\"https://maps.google.com/?q=P-4+Kasba+Industrial+Estate+Kolkata+700107\" target=\"_blank\" rel=\"noopener\">\n      <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\"><path d=\"M12 21s7-6 7-11a7 7 0 10-14 0c0 5 7 11 7 11z\"></path><circle cx=\"12\" cy=\"10\" r=\"2.5\"></circle></svg>\n      Get directions\n    </a>\n  </div>\n</section>\n\n\n<script src=\"https://cdn.jsdelivr.net/npm/@studio-freight/lenis@1.0.42/dist/lenis.min.js\"></script>\n<script src=\"https://cdn.jsdelivr.net/npm/@studio-freight/lenis@1.0.42/dist/lenis.min.js\"></script>"
}
