{
  "title": "Cancellation Policy | The Swiss Laundry Kolkata",
  "description": "Cancellation Policy of Swiss Laundry Private Limited. When you can cancel, refund timelines, re-clean policy and your rights under Indian consumer law.",
  "keywords": "",
  "robots": "index, follow, noarchive",
  "canonical": "https://www.theswisslaundry.com/cancellation-policy",
  "hreflangs": [
    {
      "hreflang": "en-IN",
      "href": "https://www.theswisslaundry.com/cancellation-policy"
    }
  ],
  "og": {
    "title": "Cancellation Policy — The Swiss Laundry",
    "description": "Cancellation Policy of Swiss Laundry Private Limited, Kolkata.",
    "url": "https://www.theswisslaundry.com/cancellation-policy",
    "image": "https://www.theswisslaundry.com/images/og-default.svg",
    "image:width": "1200",
    "image:height": "630",
    "site_name": "The Swiss Laundry",
    "locale": "en_IN",
    "type": "website"
  },
  "geo": {
    "region": "IN-WB",
    "placename": "Kolkata"
  },
  "jsonLd": [
    [
      {
        "@context": "https://schema.org",
        "@type": "LocalBusiness",
        "name": "The Swiss Laundry",
        "telephone": "+919836233354",
        "url": "https://www.theswisslaundry.com/cancellation-policy",
        "address": {
          "@type": "PostalAddress",
          "streetAddress": "P-4 Kasba Industrial Estate, Phase III, E.M. Bypass (East)",
          "addressLocality": "Kolkata",
          "addressRegion": "West Bengal",
          "postalCode": "700107",
          "addressCountry": "IN"
        },
        "openingHours": "Mo-Sa 10:00-17:00"
      },
      {
        "@context": "https://schema.org",
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Home",
            "item": "https://www.theswisslaundry.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Cancellation Policy",
            "item": "https://www.theswisslaundry.com/cancellation-policy"
          }
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "SpeakableSpecification",
        "cssSelector": [
          "h1",
          "h2",
          ".hero-title",
          ".section-title"
        ]
      }
    ],
    {
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://www.theswisslaundry.com/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Cancellation Policy",
          "item": "https://www.theswisslaundry.com/cancellation-policy"
        }
      ]
    }
  ],
  "styleCss": "\n\n\n\n\n:root{\n  --cream:#F5F0E8;--dark:#0c0b0a;--dark2:#1a1918;\n  --pink:#C0415A;--pink2:#a8324a;\n  --gold:#C9A84C;--gold-l:#E2C97E;\n  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;\n  --sans:'Jost','Helvetica Neue',Arial,sans-serif;\n}\n\n/* ── RESET ── */\n*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}\nbutton,a,[role=\"button\"]{touch-action:manipulation}\n/* ── Mobile universal fixes ── */\nhtml { -webkit-text-size-adjust: 100%; }\nbody { overflow-x: hidden; }\n* { -webkit-tap-highlight-color: transparent; }\nbutton, a, [role=\"button\"] {\n  touch-action: manipulation;\n}\ninput, select, textarea {\n  font-size: 16px !important; /* Prevent iOS zoom */\n}\nhtml{scroll-behavior:smooth}\nbody{\n  font-family:'Jost','Helvetica Neue',Arial,sans-serif;\n  background:var(--bg,#1a1918);color:var(--txt,#fff);\n  -webkit-font-smoothing:antialiased;\n  overflow-x:hidden;\n}\na{color:inherit;text-decoration:none}\n\n/* ── SCROLL PROGRESS ── */\n.scroll-progress{\n  position:fixed;top:0;left:0;height:2px;width:0%;\n  background:linear-gradient(90deg,var(--gold),var(--gold-l));\n  z-index:9999;transition:width 0.1s linear;\n}\n\n/* NAV */\nnav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:0 3rem;height:70px;transition:background 0.5s,border-color 0.5s,box-shadow 0.5s;border-bottom:0.5px solid transparent}\nnav.on-dark{background:rgba(12,11,10,0.2);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom-color:rgba(255,255,255,0.07)}\nnav.on-light{background:rgba(245,240,232,0.97);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom-color:rgba(0,0,0,0.08);box-shadow:0 2px 28px rgba(0,0,0,0.07)}\n.nav-logo a{display:block;line-height:0}\n.nav-logo img{height:46px;width:auto;display:block}\n\n\nnav.on-dark \nnav.on-dark \nnav.on-light \nnav.on-light \n.nav-right{display:flex;align-items:center;gap:0.7rem;flex-shrink:0}\n.btn-track{font-family:var(--sans);font-size:9px;letter-spacing:0.15em;text-transform:uppercase;text-decoration:none;padding:9px 20px;transition:all 0.3s;white-space:nowrap}.btn-connect{font-family:var(--sans);font-size:9px;letter-spacing:0.15em;text-transform:uppercase;text-decoration:none;padding:9px 20px;transition:all 0.3s;white-space:nowrap}\nnav.on-dark .btn-track{border:1px solid rgba(255,255,255,0.35);color:rgba(255,255,255,0.9)}.btn-connect{border:1px solid rgba(255,255,255,0.35);color:rgba(255,255,255,0.9)}\nnav.on-dark .btn-track:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,0.08)}.btn-connect:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,0.08)}\nnav.on-light .btn-track{border:1px solid rgba(192,65,90,0.5);color:var(--pink)}.btn-connect{border:1px solid rgba(192,65,90,0.5);color:var(--pink)}\nnav.on-light .btn-track:hover{border-color:var(--pink);background:rgba(192,65,90,0.05)}.btn-connect:hover{border-color:var(--pink);background:rgba(192,65,90,0.05)}\n.btn-book{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:0.15em;text-transform:uppercase;text-decoration:none;padding:10px 22px;background:var(--pink);color:#fff;border:1px solid var(--pink);transition:background 0.25s;white-space:nowrap}\n.btn-book:hover{background:var(--pink2);border-color:var(--pink2)}\n\n\nnav.on-dark \nnav.on-light \n.mob-menu{display:none;position:fixed;top:70px;left:0;right:0;background:var(--cream);z-index:199;flex-direction:column;border-bottom:0.5px solid rgba(0,0,0,0.1);box-shadow:0 8px 24px rgba(0,0,0,0.08)}\n.mob-menu.open{display:flex}\n.mob-menu a{font-family:var(--sans);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--dark2);text-decoration:none;padding:1rem 2rem;border-bottom:0.5px solid rgba(0,0,0,0.07);transition:color 0.2s}\n.mob-menu a:hover{color:var(--pink)}\n.mob-menu .mob-track{color:var(--pink)}\n.mob-menu .mob-book{background:var(--pink);color:#fff;text-align:center;border-bottom:none;font-weight:500}\n.mob-menu .mob-book:hover{background:var(--pink2);color:#fff}\n\n\n/* ── HERO ── */\n.legal-hero{\n  background:var(--dark2);\n  padding:10rem 6rem 5rem;\n  position:relative;overflow:hidden;\n}\n.legal-hero::before{\n  content:'';position:absolute;inset:0;\n  background:repeating-linear-gradient(\n    -45deg,transparent,transparent 60px,\n    rgba(201,168,76,0.025) 60px,rgba(201,168,76,0.025) 61px\n  );pointer-events:none;\n}\n.lh-ghost{\n  position:absolute;right:-0.02em;top:-0.2em;\n  font-family:'Cormorant Garamond',Georgia,serif;\n  font-weight:300;font-style:italic;\n  font-size:clamp(100px,16vw,220px);\n  line-height:1;color:transparent;\n  -webkit-text-stroke:1px rgba(255,255,255,0.04);\n  pointer-events:none;user-select:none;\n}\n.lh-inner{\n  max-width:1100px;margin:0 auto;\n  display:grid;grid-template-columns:1fr auto;\n  align-items:end;gap:4rem;\n  position:relative;z-index:1;\n}\n.lh-eye{\n  font-family:'Jost',sans-serif;font-size:9px;\n  letter-spacing:0.34em;text-transform:uppercase;\n  color:var(--gold);margin-bottom:1.2rem;\n  display:flex;align-items:center;gap:0.8rem;\n}\n.lh-eye::before{content:'';display:block;width:24px;height:1px;background:var(--gold)}\n.lh-title{\n  font-family:'Cormorant Garamond',Georgia,serif;\n  font-style:italic;font-weight:300;\n  font-size:clamp(38px,5vw,68px);\n  line-height:1.05;color:#fff;\n  letter-spacing:-0.015em;margin-bottom:1.2rem;\n}\n.lh-meta{\n  font-family:'Jost',sans-serif;font-size:11px;\n  font-weight:300;letter-spacing:0.14em;\n  color:rgba(255,255,255,0.3);\n}\n.lh-right{\n  font-family:'Jost',sans-serif;font-size:11px;\n  font-weight:300;color:rgba(255,255,255,0.3);\n  text-align:right;line-height:1.8;\n  padding-bottom:0.4rem;\n}\n.lh-right strong{\n  display:block;color:rgba(255,255,255,0.6);\n  font-weight:400;margin-bottom:0.2rem;\n}\n.legal-threshold{\n  width:100%;height:1px;\n  background:linear-gradient(90deg,transparent,rgba(201,168,76,0.5) 50%,transparent);\n}\n\n/* ── LAYOUT ── */\n.legal-outer{\n  display:grid;\n  grid-template-columns:260px 1fr;\n  max-width:1100px;margin:0 auto;\n  padding:5rem 2rem 8rem;\n  gap:5rem;align-items:start;\n}\n\n/* ── SIDEBAR ── */\n.legal-sidebar{\n  position:sticky;top:88px;\n  max-height:calc(100vh - 110px);\n  overflow-y:auto;scrollbar-width:none;\n}\n.legal-sidebar::-webkit-scrollbar{display:none}\n.sidebar-header{\n  font-family:'Jost',sans-serif;font-size:9px;\n  letter-spacing:0.28em;text-transform:uppercase;\n  color:var(--gold);margin-bottom:1rem;\n  padding-bottom:0.7rem;\n  border-bottom:0.5px solid rgba(201,168,76,0.25);\n  display:flex;align-items:center;justify-content:space-between;\n}\n.sidebar-count{\n  font-size:9px;color:rgba(26,25,24,0.3);font-weight:300;\n}\n.sidebar-nav{list-style:none}\n.sidebar-nav li{}\n.sidebar-nav a{\n  display:flex;align-items:baseline;gap:0.6rem;\n  font-family:'Jost',sans-serif;font-size:11px;font-weight:300;\n  color:rgba(26,25,24,0.38);padding:0.4rem 0.8rem;\n  border-left:2px solid transparent;\n  transition:color 0.2s,border-color 0.2s,background 0.2s;\n  line-height:1.4;\n}\n.sidebar-nav a:hover{\n  color:rgba(26,25,24,0.7);\n  border-left-color:rgba(201,168,76,0.3);\n  background:rgba(201,168,76,0.03);\n}\n.sidebar-nav a.active{\n  color:var(--dark2);font-weight:400;\n  border-left-color:var(--gold);\n  background:rgba(201,168,76,0.04);\n}\n.sidebar-num{\n  font-size:9px;opacity:0.45;flex-shrink:0;width:16px;\n}\n.sidebar-divider{height:1px;background:rgba(26,25,24,0.06);margin:0.5rem 0.8rem;}\n\n/* Expand/Collapse all buttons */\n.sidebar-controls{\n  display:flex;gap:0.5rem;margin-bottom:1rem;\n}\n.ctrl-btn{\n  flex:1;\n  font-family:'Jost',sans-serif;font-size:9px;\n  letter-spacing:0.14em;text-transform:uppercase;\n  font-weight:400;\n  background:none;cursor:pointer;\n  padding:0.5rem 0.4rem;\n  border:0.5px solid rgba(26,25,24,0.15);\n  color:rgba(26,25,24,0.45);\n  transition:all 0.25s;\n}\n.ctrl-btn:hover{\n  border-color:var(--gold);color:var(--dark2);\n  background:rgba(201,168,76,0.05);\n}\n\n/* Mobile sidebar toggle */\n.mob-sidebar-toggle{\n  display:none;width:100%;\n  background:none;border:1px solid rgba(26,25,24,0.12);\n  padding:0.85rem 1rem;\n  font-family:'Jost',sans-serif;font-size:11px;\n  letter-spacing:0.16em;text-transform:uppercase;\n  color:rgba(26,25,24,0.55);cursor:pointer;\n  align-items:center;justify-content:space-between;\n  margin-bottom:1rem;\n  transition:border-color 0.25s;\n}\n.mob-sidebar-toggle:hover{border-color:var(--gold)}\n.mob-sidebar-toggle svg{width:14px;height:14px;transition:transform 0.3s}\n.mob-sidebar-toggle.open svg{transform:rotate(180deg)}\n\n/* ── MAIN CONTENT ── */\n.legal-content{max-width:700px}\n\n.legal-intro{\n  font-family:'Cormorant Garamond',Georgia,serif;\n  font-style:italic;font-weight:300;\n  font-size:clamp(16px,1.7vw,20px);\n  line-height:1.9;color:rgba(26,25,24,0.6);\n  margin-bottom:3rem;padding-bottom:3rem;\n  border-bottom:1px solid rgba(26,25,24,0.08);\n  opacity:0;transform:translateY(16px);\n  transition:opacity 0.9s ease,transform 0.9s ease;\n}\n.legal-intro.visible{opacity:1;transform:translateY(0)}\n\n/* ── ACCORDION CLAUSES ── */\n.clause{\n  border-bottom:1px solid rgba(26,25,24,0.07);\n  scroll-margin-top:100px;\n  opacity:0;transform:translateY(16px);\n  transition:opacity 0.7s ease,transform 0.7s ease;\n}\n.clause.visible{opacity:1;transform:translateY(0)}\n\n.clause-header{\n  display:flex;align-items:center;\n  padding:1.4rem 0;\n  cursor:pointer;\n  gap:1.2rem;\n  user-select:none;\n  position:relative;\n  transition:padding-left 0.3s ease;\n}\n.clause-header:hover{padding-left:6px}\n.clause-header::before{\n  content:'';\n  position:absolute;left:0;top:50%;transform:translateY(-50%);\n  width:0;height:32px;\n  background:rgba(201,168,76,0.15);\n  transition:width 0.3s ease;\n}\n.clause-header:hover::before{width:3px}\n\n.clause-num{\n  font-family:'Cormorant Garamond',Georgia,serif;\n  font-weight:300;font-size:13px;\n  letter-spacing:0.1em;\n  color:rgba(201,168,76,0.7);\n  flex-shrink:0;width:28px;\n  position:relative;z-index:1;\n}\n.clause-title{\n  font-family:'Cormorant Garamond',Georgia,serif;\n  font-weight:400;\n  font-size:clamp(16px,1.7vw,21px);\n  color:var(--dark2);flex:1;\n  line-height:1.2;\n  position:relative;z-index:1;\n  transition:color 0.25s;\n}\n.clause-header:hover .clause-title{color:var(--pink)}\n.clause[data-open=\"true\"] .clause-title{color:var(--dark2)}\n\n.clause-icon{\n  width:28px;height:28px;\n  border:0.5px solid rgba(26,25,24,0.15);\n  display:flex;align-items:center;justify-content:center;\n  flex-shrink:0;\n  transition:border-color 0.3s,background 0.3s,transform 0.3s;\n  position:relative;z-index:1;\n}\n.clause-icon::before,\n.clause-icon::after{\n  content:'';position:absolute;\n  background:rgba(26,25,24,0.5);\n  transition:transform 0.35s ease,opacity 0.35s ease,background 0.25s;\n}\n.clause-icon::before{width:10px;height:1px}\n.clause-icon::after{width:1px;height:10px}\n.clause-header:hover .clause-icon{\n  border-color:var(--gold);background:rgba(201,168,76,0.06);\n}\n.clause-header:hover .clause-icon::before,\n.clause-header:hover .clause-icon::after{background:var(--gold)}\n/* Open state — show × */\n.clause[data-open=\"true\"] .clause-icon{\n  border-color:var(--pink);background:rgba(192,65,90,0.06);\n  transform:rotate(45deg);\n}\n.clause[data-open=\"true\"] .clause-icon::before,\n.clause[data-open=\"true\"] .clause-icon::after{background:var(--pink)}\n\n/* Accordion body */\n.clause-body{\n  max-height:0;overflow:hidden;\n  transition:max-height 0.45s cubic-bezier(0.4,0,0.2,1),\n             padding 0.3s ease;\n  padding:0 0 0 2.4rem;\n}\n.clause[data-open=\"true\"] .clause-body{\n  max-height:2000px;\n  padding:0 0 2rem 2.4rem;\n}\n.clause-body p{\n  font-family:'Jost',sans-serif;font-size:14px;font-weight:300;\n  line-height:2;color:rgba(26,25,24,0.65);margin-bottom:1rem;\n}\n.clause-body p:last-child{margin-bottom:0}\n.clause-body ul{list-style:none;margin:0.6rem 0 1rem}\n.clause-body ul li{\n  font-family:'Jost',sans-serif;font-size:14px;font-weight:300;\n  line-height:1.9;color:rgba(26,25,24,0.65);\n  padding:0.35rem 0 0.35rem 1.6rem;position:relative;\n  border-bottom:0.5px solid rgba(26,25,24,0.05);\n}\n.clause-body ul li:last-child{border-bottom:none}\n.clause-body ul li::before{\n  content:'';position:absolute;left:0;top:0.9em;\n  width:6px;height:1px;background:var(--gold);\n}\n.clause-body ul li strong{font-weight:500;color:var(--dark2)}\n.tnc-warn{\n  background:rgba(192,65,90,0.04);\n  border-left:2px solid var(--pink);\n  padding:1rem 1.2rem;margin:1rem 0;\n  font-family:'Jost',sans-serif;font-size:13px;\n  font-weight:300;line-height:1.85;color:rgba(26,25,24,0.7);\n}\n.tnc-warn::before{\n  content:'Important';display:block;font-size:8px;\n  letter-spacing:0.25em;text-transform:uppercase;\n  color:var(--pink);margin-bottom:0.4rem;font-weight:500;\n}\n.clause-body a{\n  color:var(--dark2);\n  border-bottom:0.5px solid rgba(26,25,24,0.25);\n  transition:color 0.2s,border-color 0.2s;\n}\n.clause-body a:hover{color:var(--pink);border-color:var(--pink)}\n\n/* ── CLOSING ── */\n.legal-close{\n  margin-top:3.5rem;padding-top:3rem;\n  border-top:1px solid rgba(26,25,24,0.08);\n  text-align:center;\n  opacity:0;transform:translateY(16px);\n  transition:opacity 0.9s ease 0.2s,transform 0.9s ease 0.2s;\n}\n.legal-close.visible{opacity:1;transform:translateY(0)}\n.legal-close-contact{\n  background:var(--dark2);padding:2.5rem;\n  position:relative;overflow:hidden;margin-bottom:2rem;\n}\n.legal-close-contact::before{\n  content:'';position:absolute;top:-1px;left:-1px;\n  width:20px;height:20px;\n  border-top:1px solid var(--gold);border-left:1px solid var(--gold);\n}\n.legal-close-contact::after{\n  content:'';position:absolute;bottom:-1px;right:-1px;\n  width:20px;height:20px;\n  border-bottom:1px solid var(--gold);border-right:1px solid var(--gold);\n}\n.lcc-eye{\n  font-family:'Jost',sans-serif;font-size:8px;\n  letter-spacing:0.3em;text-transform:uppercase;\n  color:var(--gold);margin-bottom:0.8rem;\n}\n.lcc-name{\n  font-family:'Cormorant Garamond',serif;font-style:italic;\n  font-weight:300;font-size:22px;color:#fff;margin-bottom:0.5rem;\n}\n.lcc-detail{\n  font-family:'Jost',sans-serif;font-size:12px;\n  font-weight:300;line-height:1.9;color:rgba(255,255,255,0.45);\n}\n.lcc-detail a{\n  color:var(--gold-l);\n  border-bottom:0.5px solid rgba(201,168,76,0.3);\n  transition:color 0.2s;\n}\n.lcc-detail a:hover{color:#fff}\n.legal-close-note{\n  font-family:'Cormorant Garamond',serif;font-style:italic;\n  font-weight:300;font-size:clamp(16px,1.8vw,20px);\n  line-height:1.7;color:rgba(26,25,24,0.45);\n}\n.legal-close-note span{color:var(--dark2)}\n\n/* SEO — all content always visible to crawlers */\n.clause-body{visibility:visible}\n\n/* ═══ FOOTER BASE ═══ */\n\n/* ═══ FOOTER CSS ═══ */\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/* ═══════════════════════════════════════════════\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\n\n.clause,.legal-intro,.legal-close,.clause-body{opacity:1!important;transform:none!important;max-height:none!important}\n.hero-h1-line span,.hero-foot{opacity:1!important;transform:none!important}\n\n:root{\n  --cream:#F5F0E8;--dark:#0c0b0a;--dark2:#1a1918;\n  --pink:#C0415A;--gold:#C9A84C;--gold-l:#E2C97E;\n  --serif:'Cormorant Garamond',Georgia,serif;\n  --sans:'Jost','Helvetica Neue',Arial,sans-serif;\n}\n\n.wa-float{\n  position:fixed;\n  bottom:2rem;\n  right:2rem;\n  width:56px;height:56px;\n  background:#25D366;\n  border-radius:50%;\n  display:flex;align-items:center;justify-content:center;\n  z-index:999;\n  box-shadow:0 4px 20px rgba(37,211,102,0.4);\n  transition:transform 0.3s cubic-bezier(0.16,1,0.3,1),\n             box-shadow 0.3s ease;\n  text-decoration:none;\n}\n.wa-float:hover{\n  transform:scale(1.1) translateY(-2px);\n  box-shadow:0 8px 30px rgba(37,211,102,0.5);\n}\n.wa-float svg{\n  width:28px;height:28px;\n  fill:#fff;\n}\n.wa-tooltip{\n  position:absolute;\n  right:68px;\n  background:var(--dark2);\n  color:#fff;\n  font-family:var(--sans);\n  font-size:11px;\n  letter-spacing:0.08em;\n  white-space:nowrap;\n  padding:6px 12px;\n  border-radius:2px;\n  opacity:0;\n  transform:translateX(8px);\n  transition:opacity 0.3s, transform 0.3s;\n  pointer-events:none;\n}\n.wa-float:hover .wa-tooltip{\n  opacity:1;\n  transform:translateX(0);\n}\n/* Pulse animation to draw attention */\n.wa-float::before{\n  content:'';\n  position:absolute;\n  inset:-4px;\n  border-radius:50%;\n  border:2px solid rgba(37,211,102,0.4);\n  animation:waPulse 2.5s ease-out infinite;\n}\n@keyframes waPulse{\n  0%{transform:scale(1);opacity:0.6}\n  100%{transform:scale(1.5);opacity:0}\n}\n@media(max-width:768px){\n  .wa-float{bottom:5.5rem;right:1rem;width:50px;height:50px}\n  .wa-float svg{width:24px;height:24px}\n  .wa-tooltip{display:none}\n}\n\n/* ── Focus styles ── */\n:focus-visible{outline:2px solid var(--gold);outline-offset:3px}\nbutton:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}\n.skip-link:focus{left:1rem!important;width:auto!important;height:auto!important}\n\n/* ── Noise grain overlay ── */\nbody::after{\n  content:'';\n  position:fixed;inset:0;\n  pointer-events:none;z-index:9999;\n  opacity:.025;\n  background-image:url(\"data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E\");\n  background-repeat:repeat;\n  background-size:128px 128px;\n  mix-blend-mode:overlay;\n}\n\n\n.mob-sticky-cta{\n  display:none;\n  position:fixed;\n  bottom:0;left:0;right:0;\n  z-index:998;\n  padding:0.75rem 1rem;\n  background:rgba(245,240,232,0.97);\n  backdrop-filter:blur(12px);\n  border-top:0.5px solid rgba(0,0,0,0.08);\n  box-shadow:0 -4px 24px rgba(0,0,0,0.08);\n}\n.mob-sticky-btn{\n  display:block;\n  width:100%;\n  padding:0.85rem;\n  background:var(--pink);\n  color:#fff;\n  text-align:center;\n  font-family:var(--sans);\n  font-size:11px;\n  font-weight:500;\n  letter-spacing:0.18em;\n  text-transform:uppercase;\n  text-decoration:none;\n  transition:background 0.25s;\n}\n.mob-sticky-btn:hover{background:var(--pink2)}\n@media(max-width:768px){\n  .mob-sticky-cta{display:block}\n}\n\n\n.cookie-bar{\n  position:fixed;bottom:0;left:0;right:0;\n  z-index:997;\n  background:var(--dark2);\n  border-top:0.5px solid rgba(201,168,76,0.2);\n  padding:1rem 2rem;\n  display:flex;align-items:center;justify-content:space-between;\n  gap:2rem;\n  transform:translateY(100%);\n  transition:transform 0.5s cubic-bezier(0.16,1,0.3,1);\n}\n.cookie-bar.show{transform:translateY(0)}\n.cookie-txt{\n  font-family:var(--sans);font-size:12px;\n  color:rgba(255,255,255,0.55);\n  line-height:1.6;\n}\n.cookie-link{color:var(--gold);text-decoration:none}\n.cookie-link:hover{text-decoration:underline}\n.cookie-btn{\n  flex-shrink:0;\n  font-family:var(--sans);font-size:9px;\n  font-weight:500;letter-spacing:0.18em;\n  text-transform:uppercase;\n  background:var(--pink);color:#fff;\n  border:none;padding:8px 20px;\n  cursor:pointer;transition:background 0.25s;\n  white-space:nowrap;\n}\n.cookie-btn:hover{background:var(--pink2)}\n@media(max-width:768px){\n  .cookie-bar{flex-direction:column;padding:1rem 1.4rem;gap:0.8rem}\n  .cookie-btn{width:100%;padding:10px}\n}\n\n\n.preloader{\n  position:fixed;inset:0;\n  z-index:9999;\n  background:var(--dark2);\n  display:flex;align-items:center;justify-content:center;\n  transition:opacity 0.8s ease, visibility 0.8s ease;\n}\n.preloader.hidden{\n  opacity:0;\n  visibility:hidden;\n}\n.pre-inner{\n  display:flex;flex-direction:column;\n  align-items:center;gap:1rem;\n  animation:preIn 0.6s ease forwards;\n}\n@keyframes preIn{\n  from{opacity:0;transform:translateY(12px)}\n  to{opacity:1;transform:translateY(0)}\n}\n.pre-monogram{\n  font-family:'Cormorant Garamond',Georgia,serif;\n  font-style:italic;\n  font-weight:300;\n  font-size:clamp(48px,8vw,80px);\n  color:transparent;\n  -webkit-text-stroke:1px rgba(201,168,76,0.8);\n  letter-spacing:0.08em;\n}\n.pre-line{\n  width:0;height:1px;\n  background:linear-gradient(90deg,transparent,var(--gold),transparent);\n  animation:preRule 0.8s ease 0.4s forwards;\n}\n@keyframes preRule{to{width:60px}}\n.pre-text{\n  font-family:'Jost',sans-serif;\n  font-size:9px;\n  letter-spacing:0.32em;\n  text-transform:uppercase;\n  color:rgba(201,168,76,0.5);\n}\n\n\n.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@media print{\n  .wa-float,.wa-float-btn,.bookPill,.seasonal-banner,.scroll-bar,.read-progress,\n  .mob-sidebar-toggle,.sidebar-cta-btn,.loc-ctas,.loc-cta-primary,.loc-cta-wa,\n  nav#nav,.nav-cta,.global-pill{display:none!important}\n  body{font-size:11pt;color:#000;background:#fff}\n  a[href]::after{content:\" (\" attr(href) \")\";font-size:9pt;color:#666}\n  a[href^=\"#\"]::after,a[href^=\"tel:\"]::after,a[href^=\"https://wa.me\"]::after{content:\"\"}\n  h1,h2,h3{page-break-after:avoid}\n  .chapter,.loc-section{page-break-inside:avoid}\n}\n\n\n/* theme: dark default */\n:root{--bg:#1a1918;--bg2:#201e1d;--surf:rgba(255,255,255,.05);--surf-b:rgba(255,255,255,.1);--txt:#fff;--txt2:rgba(255,255,255,.82);--txt3:rgba(255,255,255,.55);}\n@media(prefers-color-scheme:light){\n  :root{--bg:#F5F0E8;--bg2:#EDE7D9;--surf:#fff;--surf-b:rgba(26,25,24,.1);--txt:#1a1918;--txt2:#3d3a36;--txt3:#7a7168;}\n}\n\n\n[data-reveal]{transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)}\n\n.scroll-bar{position:fixed;top:0;left:0;height:3px;background:var(--gold,#C9A84C);z-index:9999;width:0;pointer-events:none}\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\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\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/* ═══ Legal template dark readability v3 ═══ */\n.legal-outer,.legal-content,.legal-sidebar{\n  background:#1a1918!important;\n  color:#fff!important;\n}\n.legal-hero{background:#1a1918!important}\n.lh-title{color:#fff!important}\n.lh-title em{color:var(--pink,#C0415A)!important}\n.lh-eye{color:var(--gold,#C9A84C)!important}\n.lh-meta,.lh-right,.pl-hero-note{color:rgba(255,255,255,.72)!important}\n.lh-right strong{color:rgba(255,255,255,.95)!important}\n\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\n.sidebar-nav a{color:rgba(255,255,255,.72)!important}\n.sidebar-nav a:hover,\n.sidebar-nav a.active{color:var(--gold,#C9A84C)!important}\n.sidebar-nav li{border-bottom-color:rgba(255,255,255,.1)!important}\n.sn-num{color:var(--gold,#C9A84C)!important}\n\n.ctrl-btn{\n  color:rgba(255,255,255,.8)!important;\n  border-color:rgba(255,255,255,.3)!important;\n  background:transparent!important;\n}\n.ctrl-btn:hover{\n  color:#fff!important;\n  border-color:var(--gold,#C9A84C)!important;\n}\n\n.clause{border-bottom-color:rgba(255,255,255,.12)!important}\n.clause-title{color:#fff!important}\n.clause-num{color:var(--gold,#C9A84C)!important;opacity:1!important}\n.clause-icon{color:rgba(255,255,255,.45)!important}\n.clause-body,\n.clause-body p,\n.clause-body li,\n.clause-body td,\n.clause-body th,\n.clause-body span{\n  color:rgba(255,255,255,.78)!important;\n}\n.clause-body a{color:var(--gold,#C9A84C)!important}\n.clause-body strong,\n.clause-body b{color:#fff!important}\n\n.legal-intro{color:rgba(255,255,255,.8)!important}\n.legal-close,\n.legal-close p,\n.legal-close-note,\n.legal-close-sub{color:rgba(255,255,255,.75)!important}\n.legal-close h2,\n.legal-close-contact h2{color:#fff!important}\n.legal-close-links a{color:var(--gold,#C9A84C)!important}\n\n/* FAQ / price list only inside legal shells (care guides keep cream FAQ blocks) */\n.legal-outer .faq-q,\n.legal-content .faq-q{color:#fff!important}\n.legal-outer .faq-a,\n.legal-content .faq-a{color:rgba(255,255,255,.75)!important}\n.legal-outer .pl-item,\n.legal-content .pl-item{\n  color:rgba(255,255,255,.78)!important;\n  border-bottom-color:rgba(255,255,255,.1)!important;\n}\n.legal-outer .pl-tier-name,\n.legal-outer .pl-factor-h3,\n.legal-outer .pl-factors h2,\n.legal-outer .pl-factors h3,\n.legal-content .pl-tier-name,\n.legal-content .pl-factor-h3{color:#fff!important}\n.legal-outer .pl-tier-note,\n.legal-outer .pl-factor-p,\n.legal-content .pl-tier-note,\n.legal-content .pl-factor-p{color:rgba(255,255,255,.65)!important}\n.legal-outer .pl-factor,\n.legal-content .pl-factor{\n  background:rgba(255,255,255,.04)!important;\n  border-color:rgba(255,255,255,.12)!important;\n}\n\n@media (prefers-color-scheme: light){\n  .legal-outer,.legal-content,.legal-sidebar{\n    background:var(--cream,#F5F0E8)!important;\n    color:var(--dark2,#1a1918)!important;\n  }\n  .legal-hero{background:var(--cream,#F5F0E8)!important}\n  .lh-title{color:var(--dark2,#1a1918)!important}\n  .lh-meta,.lh-right,.pl-hero-note{color:rgba(26,25,24,.65)!important}\n  .tsl-crumbs a,.tsl-crumbs li{color:rgba(26,25,24,.75)!important}\n  .sidebar-nav a{color:rgba(26,25,24,.72)!important}\n  .sidebar-nav a:hover,.sidebar-nav a.active{color:var(--pink,#C0415A)!important}\n  .ctrl-btn{color:rgba(26,25,24,.75)!important;border-color:rgba(26,25,24,.3)!important}\n  .clause-title{color:var(--dark2,#1a1918)!important}\n  .clause-num{color:var(--pink,#C0415A)!important}\n  .clause-body,.clause-body p,.clause-body li,.clause-body td,.clause-body th,.clause-body span{\n    color:rgba(26,25,24,.72)!important;\n  }\n  .legal-intro{color:rgba(26,25,24,.75)!important}\n  .legal-outer .faq-q,.legal-content .faq-q{color:var(--dark2,#1a1918)!important}\n  .legal-outer .faq-a,.legal-content .faq-a{color:rgba(26,25,24,.65)!important}\n  .legal-outer .pl-item,.legal-content .pl-item{color:rgba(26,25,24,.65)!important}\n  .legal-outer .pl-tier-name,.legal-outer .pl-factor-h3,\n  .legal-content .pl-tier-name,.legal-content .pl-factor-h3{color:var(--dark2,#1a1918)!important}\n  .legal-outer .pl-factor,.legal-content .pl-factor{\n    background:rgba(245,240,232,.5)!important;\n    border-color:rgba(26,25,24,.08)!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": "\nfunction acceptCookies(){\n  try {\n    localStorage.setItem('tsl_cookies','accepted');\n    document.querySelectorAll('.cookie-bar').forEach(function(bar){ bar.classList.remove('show'); bar.style.display='none'; });\n  } catch(e){}\n}\nwindow.addEventListener('DOMContentLoaded', function(){\n  try {\n    if(!localStorage.getItem('tsl_cookies')){\n      setTimeout(function(){\n        var bar = document.getElementById('cookieBar')\n        if(bar) bar.classList.add('show')\n      }, 2000)\n    }\n  } catch(e){}\n})\n\n;\n\nwindow.addEventListener('load', function(){\n  setTimeout(function(){\n    var pl = document.getElementById('preloader')\n    if(pl) pl.classList.add('hidden')\n  }, 1200)\n})\n\n;\n\n(function(){\n  var bar=document.getElementById('scrollProgress')\n  if(bar) window.addEventListener('scroll',function(){bar.style.width=(window.scrollY/(document.documentElement.scrollHeight-window.innerHeight)*100)+'%'},{passive:true})\n  var clauses=document.querySelectorAll('.clause')\n  function openClause(c){c.setAttribute('data-open','true');var h=c.querySelector('.clause-header'),b=c.querySelector('.clause-body');if(h)h.setAttribute('aria-expanded','true');if(b)b.style.maxHeight=b.scrollHeight+'px'}\n  function closeClause(c){c.setAttribute('data-open','false');var h=c.querySelector('.clause-header'),b=c.querySelector('.clause-body');if(h)h.setAttribute('aria-expanded','false');if(b)b.style.maxHeight='0'}\n  function toggleClause(c){c.getAttribute('data-open')==='true'?closeClause(c):openClause(c)}\n  clauses.forEach(function(c){var h=c.querySelector('.clause-header');if(!h)return;h.addEventListener('click',function(){toggleClause(c)});h.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggleClause(c)}});})\n  var eb=document.getElementById('expandAll'),cb=document.getElementById('collapseAll')\n  if(eb)eb.addEventListener('click',function(){clauses.forEach(openClause)})\n  if(cb)cb.addEventListener('click',function(){clauses.forEach(closeClause)})\n  var links=document.querySelectorAll('.sidebar-nav a')\n  window.addEventListener('scroll',function(){var pos=window.scrollY+130;clauses.forEach(function(c){if(c.offsetTop<=pos&&c.offsetTop+c.offsetHeight>pos){links.forEach(function(l){l.classList.remove('active')});var a=document.querySelector('.sidebar-nav a[href=\"#'+c.id+'\"]');if(a){a.classList.add('active');var s=document.querySelector('.legal-sidebar');if(s&&s.scrollHeight>s.clientHeight)s.scrollTop=a.offsetTop-s.clientHeight/2}}});},{passive:true})\n  var mb=document.getElementById('mobSidebarToggle'),si=document.getElementById('sidebarInner')\n  if(mb&&si)mb.addEventListener('click',function(){var o=si.classList.toggle('open');mb.classList.toggle('open',o);mb.setAttribute('aria-expanded',o)})\n  var obs=new IntersectionObserver(function(entries){entries.forEach(function(e){if(e.isIntersecting){e.target.classList.add('visible');obs.unobserve(e.target)}});},{threshold:0.05})\n  document.querySelectorAll('.clause,.legal-intro,.legal-close,.cancel-summary').forEach(function(el){obs.observe(el)})\n})()\n\n;\n\n/* ── Global features JS ── */\n(function(){\n  /* Seasonal banner */\n  var banner=document.getElementById('seasonalBanner');\n  var bannerClose=document.getElementById('bannerClose');\n  if(banner && bannerClose){\n    var dismissed=sessionStorage.getItem('bannerDismissed');\n    if(dismissed) banner.classList.add('hidden');\n    bannerClose.addEventListener('click',function(){\n      banner.classList.add('hidden');\n      sessionStorage.setItem('bannerDismissed','1');\n    });\n  }\n\n  /* Sticky booking pill — show after 5s, hide when near footer */\n  var pill=document.getElementById('bookPill');\n  if(pill){\n    var pillTimer=setTimeout(function(){\n      pill.classList.remove('hidden');\n    },5000);\n    /* Hide pill when footer is visible */\n    var footer=document.querySelector('footer');\n    if(footer){\n      var pillObs=new IntersectionObserver(function(entries){\n        entries.forEach(function(e){\n          pill.classList.toggle('hidden',e.isIntersecting);\n        });\n      },{threshold:0.1});\n      pillObs.observe(footer);\n    }\n  }\n\n  /* Dark/light theme toggle */\n  var toggle=document.getElementById('themeToggle');\n  if(toggle){\n    var stored=localStorage.getItem('theme');\n    if(stored) document.documentElement.setAttribute('data-theme',stored);\n    toggle.addEventListener('click',function(){\n      var current=document.documentElement.getAttribute('data-theme');\n      var next=current==='light'?'dark':'light';\n      document.documentElement.setAttribute('data-theme',next);\n      localStorage.setItem('theme',next);\n    });\n  }\n\n  /* Reading progress bar */\n  var prog=document.getElementById('readProgress');\n  if(prog){\n    window.addEventListener('scroll',function(){\n      var h=document.documentElement;\n      var pct=(h.scrollTop||document.body.scrollTop)/(h.scrollHeight-h.clientHeight)*100;\n      prog.style.width=Math.min(100,pct)+'%';\n    },{passive:true});\n  }\n\n  /* Was this helpful */\n  document.querySelectorAll('.helpful-btn').forEach(function(btn){\n    btn.addEventListener('click',function(){\n      var block=btn.closest('.helpful-block');\n      var thanks=block && block.querySelector('.helpful-thanks');\n      if(thanks){thanks.classList.add('show');}\n      if(btn.dataset.helpful==='no'){\n        var wa=document.createElement('a');\n        wa.href='https://wa.me/919836233354?text=I+had+a+question+about+your+guide';\n        wa.target='_blank';wa.rel='noopener';\n        wa.style.cssText='font-family:var(--sans);font-size:11px;color:#25D366;margin-left:.5rem';\n        wa.textContent='Chat with us →';\n        if(thanks) thanks.appendChild(wa);\n      }\n      document.querySelectorAll('.helpful-btn').forEach(function(b){b.classList.remove('active')});\n      btn.classList.add('active');\n    });\n  });\n\n})();\n\n;\n\nif(window.Lenis){var _lenis=new window.Lenis({duration:1.2,smoothWheel:true});(function _raf(t){_lenis.raf(t);requestAnimationFrame(_raf)})(0);}\n\n;\n\n(function(){var els=document.querySelectorAll('[data-reveal]');if(!els.length)return;var obs=new IntersectionObserver(function(evts){evts.forEach(function(e){if(!e.isIntersecting)return;e.target.style.opacity='1';e.target.style.transform='translateY(0)';obs.unobserve(e.target);});},{threshold:0.12});requestAnimationFrame(function(){els.forEach(function(el){el.style.opacity='0';el.style.transform='translateY(16px)';el.style.transition='opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)';obs.observe(el);});});})();\n\n;\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;\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 class=\"scroll-bar\" id=\"scrollBar\" aria-hidden=\"true\"></div>\n\n<div id=\"introScreen\" class=\"intro-screen\" role=\"status\" aria-label=\"Loading The Swiss Laundry\">\n  <p class=\"intro-monogram\" aria-hidden=\"true\">TSL</p>\n  <div class=\"intro-line\" aria-hidden=\"true\"></div>\n  <p class=\"intro-wordmark\" aria-hidden=\"true\">The Swiss Laundry</p>\n</div>\n<div class=\"seasonal-banner\" id=\"seasonalBanner\" role=\"banner\" aria-label=\"Free pickup offer\">\n  🧺 Want a home pickup? Complimentary pickup on invoices above ₹1,000.\n  <a href=\"/pickup\">Book Now →</a>\n  <button class=\"banner-close\" id=\"bannerClose\" aria-label=\"Close banner\">✕</button>\n</div>\n\n<a href=\"#mainContent\" class=\"skip-link\" style=\"position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:999;background:var(--gold);color:var(--dark2);padding:.5rem 1rem;font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.1em\">Skip to main content</a>\n\n<div class=\"scroll-progress\" id=\"scrollProgress\"></div>\n\n<nav class=\"tsl-crumbs\" aria-label=\"Breadcrumb\"><ol><li><a href=\"/\">Home</a></li><li aria-current=\"page\">Cancellation Policy</li></ol></nav>\n\n\n<div class=\"legal-hero\" data-theme=\"dark\">\n  <span class=\"lh-ghost\" aria-hidden=\"true\">Cancel</span>\n  <div class=\"lh-inner\">\n    <div class=\"lh-left\">\n      <p class=\"lh-eye\">Legal</p>\n      <h1 class=\"lh-title\">Cancellation<br>Policy</h1>\n    <h2 class=\"seo-hidden\" style=\"position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)\">Order Cancellation — The Swiss Laundry</h2>\n      <p class=\"lh-meta\">Last updated: 07 May 2025 &nbsp;·&nbsp; 12 clauses &nbsp;·&nbsp; Swiss Laundry Private Limited</p>\n    </div>\n    <div class=\"lh-right\">\n      <strong>Swiss Laundry Private Limited</strong>\n      GST: 19AAECT0619D1ZL<br>\n      Kolkata — 700107, West Bengal, India<br>\n      info@theswisslaundry.com\n    </div>\n  </div>\n</div>\n<div class=\"legal-threshold\"></div>\n\n<div class=\"legal-outer\" data-theme=\"dark\">\n  <aside class=\"legal-sidebar\">\n    <button class=\"mob-sidebar-toggle\" id=\"mobSidebarToggle\" aria-expanded=\"false\">\n      <span>Clauses — 12 sections</span>\n      <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=\"sidebar-inner\" id=\"sidebarInner\">\n      <div class=\"sidebar-header\">\n        <span>Contents</span>\n        <span class=\"sidebar-count\">12 clauses</span>\n      </div>\n      <div class=\"sidebar-controls\">\n        <button class=\"ctrl-btn\" id=\"expandAll\">Expand all</button>\n        <button class=\"ctrl-btn\" id=\"collapseAll\">Collapse all</button>\n      </div>\n      <ul class=\"sidebar-nav\" id=\"sidebarNav\">\n        <li><a href=\"#clause_1\"><span class=\"sidebar-num\">01</span>Scope &amp; Application</a></li>\n        <li><a href=\"#clause_2\"><span class=\"sidebar-num\">02</span>Cancellation Before Collection</a></li>\n        <li><a href=\"#clause_3\"><span class=\"sidebar-num\">03</span>Cancellation After Collection — Before Processing</a></li>\n        <li><a href=\"#clause_4\"><span class=\"sidebar-num\">04</span>No Cancellation After Processing Begins</a></li>\n        <li><a href=\"#clause_5\"><span class=\"sidebar-num\">05</span>Cancellation by Swiss Laundry Private Limited</a></li>\n        <li><a href=\"#clause_6\"><span class=\"sidebar-num\">06</span>Re-clean Policy</a></li>\n        <li><a href=\"#clause_7\"><span class=\"sidebar-num\">07</span>Refund Process &amp; Method</a></li>\n        <li><a href=\"#clause_8\"><span class=\"sidebar-num\">08</span>Uncollected Garments After Cancellation Attempt</a></li>\n        <li><a href=\"#clause_9\"><span class=\"sidebar-num\">09</span>Promotional, Discounted &amp; Scheme Orders</a></li>\n        <li><a href=\"#clause_10\"><span class=\"sidebar-num\">10</span>Corporate &amp; Institutional Account Cancellations</a></li>\n        <li><a href=\"#clause_11\"><span class=\"sidebar-num\">11</span>Force Majeure &amp; Exceptional Circumstances</a></li>\n        <li><a href=\"#clause_12\"><span class=\"sidebar-num\">12</span>Governing Law &amp; Grievance</a></li>\n      </ul>\n    </div>\n  </aside>\n\n  <div class=\"legal-content\">\n    <p class=\"legal-intro\">This Cancellation Policy explains when and how you may cancel a Booking with The Swiss Laundry, what charges apply, and how refunds are processed. It is written clearly so you always know exactly where you stand.</p>\n\n    <!-- Quick Reference Summary -->\n    <div class=\"cancel-summary\">\n      <div class=\"cancel-summary-item csi-green\">\n        <div class=\"csi-tick\">✓</div>\n        <p class=\"csi-stage\">Before collection</p>\n        <p class=\"csi-result\">Free cancellation</p>\n        <p class=\"csi-note\">Full refund · No questions asked</p>\n      </div>\n      <div class=\"cancel-summary-item csi-amber\">\n        <div class=\"csi-tick\">~</div>\n        <p class=\"csi-stage\">After collection, before processing</p>\n        <p class=\"csi-result\">₹200 handling charge</p>\n        <p class=\"csi-note\">Garments returned · Narrow window</p>\n      </div>\n      <div class=\"cancel-summary-item csi-red\">\n        <div class=\"csi-tick\">✕</div>\n        <p class=\"csi-stage\">After processing begins</p>\n        <p class=\"csi-result\">No cancellation</p>\n        <p class=\"csi-note\">Full invoice payable · Re-clean available</p>\n      </div>\n    </div>\n\n    <div class=\"clause\" id=\"clause_1\" data-open=\"false\">\n      <div class=\"clause-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"body_1\" tabindex=\"0\">\n        <span class=\"clause-num\">01</span>\n        <h3 class=\"clause-title\">Scope &amp; Application</h3>\n        <span class=\"clause-icon\" aria-hidden=\"true\"></span>\n      </div>\n      <div class=\"clause-body\" id=\"body_1\" role=\"region\">\n        <p>This Cancellation Policy applies to all Bookings and Orders placed with Swiss Laundry Private Limited, operating as The Swiss Laundry, through any channel — Website, App, WhatsApp, phone or in person.</p>\n<p>This policy forms part of our Terms and Conditions available at <a href=\"/terms-and-conditions\">theswisslaundry.com/terms-and-conditions</a> and should be read alongside them. In the event of any conflict between this policy and the Terms and Conditions, the Terms and Conditions shall prevail.</p>\n<p>By placing a Booking with us, you confirm that you have read and agree to this Cancellation Policy in full.</p>\n      </div>\n    </div>\n    <div class=\"clause\" id=\"clause_2\" data-open=\"false\">\n      <div class=\"clause-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"body_2\" tabindex=\"0\">\n        <span class=\"clause-num\">02</span>\n        <h3 class=\"clause-title\">Cancellation Before Collection</h3>\n        <span class=\"clause-icon\" aria-hidden=\"true\"></span>\n      </div>\n      <div class=\"clause-body\" id=\"body_2\" role=\"region\">\n        <p>You may cancel a Booking at any time <strong>before our CRM team member arrives at your address for pickup</strong>, at no charge and with no penalty.</p>\n<p>To cancel before collection, contact us through any official channel:</p>\n<ul>\n  <li>Phone or WhatsApp: +91 9836233354 or +91 9836233354</li>\n  <li>Email: info@theswisslaundry.com</li>\n  <li>App or Website: www.theswisslaundry.com</li>\n</ul>\n<p>If you have made any advance payment for the cancelled Booking, a full refund will be processed to your original payment method within 7 Working Days.</p>\n<p>We recommend cancelling as early as possible so that our team member is not already en route to your address. A Booking cannot be considered cancelled until you have received acknowledgement from us through an official channel.</p>\n      </div>\n    </div>\n    <div class=\"clause\" id=\"clause_3\" data-open=\"false\">\n      <div class=\"clause-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"body_3\" tabindex=\"0\">\n        <span class=\"clause-num\">03</span>\n        <h3 class=\"clause-title\">Cancellation After Collection — Before Processing</h3>\n        <span class=\"clause-icon\" aria-hidden=\"true\"></span>\n      </div>\n      <div class=\"clause-body\" id=\"body_3\" role=\"region\">\n        <p>Once our CRM team member has collected your Garments and they have been transported to our Facility, but <strong>before our Laundry Manager has commenced any cleaning or treatment</strong>, cancellation may be possible subject to the following:</p>\n<ul>\n  <li>You must contact us immediately on +91 9836233354 or +91 9836233354 or email info@theswisslaundry.com</li>\n  <li>We will check with our operations team whether processing has commenced</li>\n  <li>If processing has not yet begun, we will return your Garments. A <strong>handling and transport charge of ₹200</strong> will apply to cover the cost of collection and return.</li>\n  <li>Any advance payment made will be refunded after deducting the ₹200 handling charge, within 7 Working Days</li>\n</ul>\n<div class=\"tnc-warn\">This window is very narrow. Once garments reach our facility and are tagged and assigned to our operations team, processing typically begins within hours. We strongly recommend contacting us immediately if you wish to cancel after handover.</div>\n      </div>\n    </div>\n    <div class=\"clause\" id=\"clause_4\" data-open=\"false\">\n      <div class=\"clause-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"body_4\" tabindex=\"0\">\n        <span class=\"clause-num\">04</span>\n        <h3 class=\"clause-title\">No Cancellation After Processing Begins</h3>\n        <span class=\"clause-icon\" aria-hidden=\"true\"></span>\n      </div>\n      <div class=\"clause-body\" id=\"body_4\" role=\"region\">\n        <p>Once our Laundry Manager has commenced any cleaning, treatment, pressing, stain removal or any other process on your Garments, <strong>cancellation is not possible under any circumstances</strong>.</p>\n<p>At this stage:</p>\n<ul>\n  <li>The full cleaning charge for all Garments in the Order is payable in full</li>\n  <li>No refund will be issued for processed or partially processed Garments</li>\n  <li>We will complete the cleaning process and arrange delivery as per your booking</li>\n  <li>If you decline to accept delivery, the full invoice remains payable and your Garments will be held under our uncollected garments policy — see Section 8</li>\n</ul>\n<p>This policy exists because once cleaning commences, resources, chemicals, time and specialist expertise have been committed to your Order and cannot be recovered.</p>\n<div class=\"tnc-warn\">Raising a complaint or dispute about a Booking does not constitute a cancellation and does not suspend the obligation to pay for Services already rendered or in progress.</div>\n      </div>\n    </div>\n    <div class=\"clause\" id=\"clause_5\" data-open=\"false\">\n      <div class=\"clause-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"body_5\" tabindex=\"0\">\n        <span class=\"clause-num\">05</span>\n        <h3 class=\"clause-title\">Cancellation by Swiss Laundry Private Limited</h3>\n        <span class=\"clause-icon\" aria-hidden=\"true\"></span>\n      </div>\n      <div class=\"clause-body\" id=\"body_5\" role=\"region\">\n        <p>We reserve the right to cancel any Booking at any time at our sole discretion. Circumstances in which we may cancel include but are not limited to:</p>\n<ul>\n  <li>The Garment is found to be contaminated, infested or poses a risk to our staff or facility</li>\n  <li>The Garment cannot be safely cleaned by any method available to us</li>\n  <li>The Customer has outstanding unpaid invoices</li>\n  <li>The Customer has engaged in abusive, threatening or fraudulent behaviour</li>\n  <li>Force majeure events — see our Terms and Conditions Section 22</li>\n  <li>Any other circumstance where we deem it appropriate to exercise our right to refuse service</li>\n</ul>\n<p><strong>Before collection:</strong> Full refund of any advance payment within 7 Working Days.</p>\n<p><strong>After collection but before processing:</strong> Garments returned to the Customer. Full refund of any advance payment within 7 Working Days. No handling charge applied where cancellation is due to our determination about the Garment's condition.</p>\n<p><strong>After processing has begun:</strong> We will complete the process and issue an invoice. The Customer remains liable for payment.</p>\n<p>We are not obliged to disclose our reason for cancellation except where required by applicable Indian law.</p>\n      </div>\n    </div>\n    <div class=\"clause\" id=\"clause_6\" data-open=\"false\">\n      <div class=\"clause-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"body_6\" tabindex=\"0\">\n        <span class=\"clause-num\">06</span>\n        <h3 class=\"clause-title\">Re-clean Policy</h3>\n        <span class=\"clause-icon\" aria-hidden=\"true\"></span>\n      </div>\n      <div class=\"clause-body\" id=\"body_6\" role=\"region\">\n        <p>If you are dissatisfied with the result of a cleaning, a re-clean — not a cancellation — is the appropriate remedy.</p>\n<ul>\n  <li>You must raise your dissatisfaction <strong>within 48 hours of delivery</strong> through any official channel</li>\n  <li>We will collect the Garment and re-clean it at no additional charge</li>\n  <li>The original cleaning charge remains payable in full and is not suspended or refunded during the re-clean process</li>\n  <li>A re-clean does not guarantee a different outcome. For our stain removal policy, see <a href=\"/terms-and-conditions\">Terms &amp; Conditions — Section 11</a></li>\n  <li>One re-clean per Order item is offered. We are not obliged to re-clean the same Garment multiple times.</li>\n  <li>If you raise dissatisfaction after 48 hours of delivery, we may at our discretion consider the request but are not obliged to do so</li>\n</ul>\n<p>A re-clean is not a cancellation. It does not entitle you to a refund and does not affect the payability of the original invoice.</p>\n      </div>\n    </div>\n    <div class=\"clause\" id=\"clause_7\" data-open=\"false\">\n      <div class=\"clause-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"body_7\" tabindex=\"0\">\n        <span class=\"clause-num\">07</span>\n        <h3 class=\"clause-title\">Refund Process &amp; Method</h3>\n        <span class=\"clause-icon\" aria-hidden=\"true\"></span>\n      </div>\n      <div class=\"clause-body\" id=\"body_7\" role=\"region\">\n        <p>Where a refund is due under this policy, the following applies:</p>\n<ul>\n  <li><strong>Refund method:</strong> All refunds are issued to the original payment method only. Cash payments are refunded in cash. UPI, card or online payments are refunded to the originating account or card. We do not issue refunds by any method other than the original payment channel.</li>\n  <li><strong>Refund timeline:</strong> Refunds will be processed within <strong>7 Working Days</strong> of the refund being approved by us.</li>\n  <li><strong>Partial refunds:</strong> Where a partial refund is due — for example after deducting a handling charge — only the net refundable amount will be processed.</li>\n  <li><strong>Advance payments:</strong> Where an advance payment has been made and the Booking is cancelled before collection, the full advance will be refunded with no deduction.</li>\n  <li><strong>No refund for processed Garments:</strong> No refund will be issued for any Garment on which any cleaning, treatment or process has commenced, regardless of the outcome.</li>\n</ul>\n<p>If you believe a refund is owed and has not been received within 7 Working Days, please contact info@theswisslaundry.com with your Order reference and payment details.</p>\n      </div>\n    </div>\n    <div class=\"clause\" id=\"clause_8\" data-open=\"false\">\n      <div class=\"clause-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"body_8\" tabindex=\"0\">\n        <span class=\"clause-num\">08</span>\n        <h3 class=\"clause-title\">Uncollected Garments After Cancellation Attempt</h3>\n        <span class=\"clause-icon\" aria-hidden=\"true\"></span>\n      </div>\n      <div class=\"clause-body\" id=\"body_8\" role=\"region\">\n        <p>If you cancel a Booking after collection, decline delivery, or fail to collect Garments that have been cleaned, our uncollected garments policy applies in full:</p>\n<ul>\n  <li><strong>First 15 days:</strong> Garments held at no storage charge</li>\n  <li><strong>After 15 days:</strong> Storage charge of 30% of the total invoice value per month or part thereof</li>\n  <li><strong>After 3 months:</strong> Swiss Laundry Private Limited is not liable for the condition or continued custody of uncollected Garments and reserves the right to donate, dispose of or otherwise deal with them at our sole discretion. All outstanding charges remain payable regardless.</li>\n</ul>\n<p>Declining delivery or failing to collect Garments does not cancel your obligation to pay for Services rendered. The invoice remains payable in full, with storage charges accruing as above.</p>\n      </div>\n    </div>\n    <div class=\"clause\" id=\"clause_9\" data-open=\"false\">\n      <div class=\"clause-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"body_9\" tabindex=\"0\">\n        <span class=\"clause-num\">09</span>\n        <h3 class=\"clause-title\">Promotional, Discounted &amp; Scheme Orders</h3>\n        <span class=\"clause-icon\" aria-hidden=\"true\"></span>\n      </div>\n      <div class=\"clause-body\" id=\"body_9\" role=\"region\">\n        <p>Cancellations of Orders placed under any promotional offer, discount scheme, referral programme or special pricing arrangement are subject to this Cancellation Policy in full. No special cancellation rights are conferred by promotional pricing.</p>\n<ul>\n  <li>Promotional prices are not refunded in circumstances where the standard policy would not provide a refund</li>\n  <li>Discount vouchers, gift cards or credits used in a cancelled Booking are reinstated only where the cancellation occurs before collection and a full refund would otherwise be due</li>\n  <li>Gift cards used in an Order that is cancelled after processing has begun are not reinstated and are treated as redeemed</li>\n</ul>\n      </div>\n    </div>\n    <div class=\"clause\" id=\"clause_10\" data-open=\"false\">\n      <div class=\"clause-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"body_10\" tabindex=\"0\">\n        <span class=\"clause-num\">10</span>\n        <h3 class=\"clause-title\">Corporate &amp; Institutional Account Cancellations</h3>\n        <span class=\"clause-icon\" aria-hidden=\"true\"></span>\n      </div>\n      <div class=\"clause-body\" id=\"body_10\" role=\"region\">\n        <p>Corporate and institutional clients with credit accounts are subject to this Cancellation Policy with the following additional terms:</p>\n<ul>\n  <li>Cancellations must be communicated to us in writing — email to info@theswisslaundry.com is acceptable</li>\n  <li>Where a corporate Order is cancelled after processing has begun, the full invoice value is raised and falls due within the agreed credit period</li>\n  <li>Repeated cancellations after collection by a corporate client may result in review or withdrawal of credit terms at our discretion</li>\n  <li>Dispute of a cancellation charge must be raised in writing within 7 days of the invoice date. Undisputed amounts remain payable by the due date.</li>\n</ul>\n      </div>\n    </div>\n    <div class=\"clause\" id=\"clause_11\" data-open=\"false\">\n      <div class=\"clause-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"body_11\" tabindex=\"0\">\n        <span class=\"clause-num\">11</span>\n        <h3 class=\"clause-title\">Force Majeure &amp; Exceptional Circumstances</h3>\n        <span class=\"clause-icon\" aria-hidden=\"true\"></span>\n      </div>\n      <div class=\"clause-body\" id=\"body_11\" role=\"region\">\n        <p>Where we are unable to fulfil an Order due to a force majeure event — as defined fully in our <a href=\"/terms-and-conditions\">Terms &amp; Conditions</a> — the following cancellation rights apply:</p>\n<ul>\n  <li><strong>Before collection:</strong> Free cancellation, full refund of any advance payment</li>\n  <li><strong>After collection, before processing:</strong> Garments held safely until the event passes. You may request return — ₹200 handling charge applies</li>\n  <li><strong>After processing begins:</strong> We will complete the Order as soon as possible. Full invoice remains payable.</li>\n</ul>\n<p>We will not be liable for any consequential loss arising from force majeure cancellations or delays.</p>\n      </div>\n    </div>\n    <div class=\"clause\" id=\"clause_12\" data-open=\"false\">\n      <div class=\"clause-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"body_12\" tabindex=\"0\">\n        <span class=\"clause-num\">12</span>\n        <h3 class=\"clause-title\">Governing Law &amp; Grievance</h3>\n        <span class=\"clause-icon\" aria-hidden=\"true\"></span>\n      </div>\n      <div class=\"clause-body\" id=\"body_12\" role=\"region\">\n        <p>This Cancellation Policy is governed by the laws of India, including the Consumer Protection Act 2019 and the Consumer Protection (E-Commerce) Rules 2020. All disputes arising from this policy are subject to the exclusive jurisdiction of the courts of Kolkata, West Bengal, India.</p>\n<p>If you have a complaint about a cancellation or refund decision, please contact our Grievance Officer:</p>\n<div class=\"tnc-highlight\">\n  <strong>Grievance Officer — Mr. Anand Bhatt</strong><br>\n  Managing Director, Swiss Laundry Private Limited<br>\n  Email: info@theswisslaundry.com &nbsp;·&nbsp; Phone: +91 9836233354<br>\n  P-4 Kasba Industrial Estate, Phase III, E.M. Bypass (East), Kolkata — 700107<br>\n  Acknowledgement within 48 hours · Resolution within 30 days<br>\n  <span style=\"font-size:12px;opacity:0.8\">As required under the Consumer Protection (E-Commerce) Rules 2020</span>\n</div>\n<p>We reserve the right to update this Cancellation Policy at any time without prior notice. The current version is always available at theswisslaundry.com/cancellation-policy.</p>\n      </div>\n    </div>\n\n    <div class=\"legal-close\" id=\"legalClose\">\n      <div class=\"legal-close-contact\">\n        <p class=\"lcc-eye\">Grievance Officer</p>\n        <p class=\"lcc-name\">Mr. Anand Bhatt</p>\n        <p class=\"lcc-detail\">\n          Managing Director, Swiss Laundry Private Limited<br>\n          <a href=\"mailto:info@theswisslaundry.com\">info@theswisslaundry.com</a> &nbsp;·&nbsp;\n          <a href=\"tel:+919836233354\">+91 9836233354</a><br>\n          P-4 Kasba Industrial Estate, Kolkata — 700107<br>\n          <span style=\"font-size:11px;opacity:0.6\">Acknowledgement within 48 hours · Resolution within 30 days</span>\n        </p>\n      </div>\n      <p class=\"legal-close-note\">Also read: <a href=\"/terms-and-conditions\">Terms &amp; Conditions</a> &nbsp;·&nbsp; <a href=\"/privacy-policy\">Privacy Policy</a></p>\n    </div>\n\n  </div>\n</div>\n\n\n<!-- WhatsApp Floating Button -->\n<a href=\"https://wa.me/919836233354?text=Hi%2C%20I%20would%20like%20to%20book%20a%20pickup%20with%20The%20Swiss%20Laundry\" class=\"wa-float\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Chat on WhatsApp\">\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z\"></path>\n <path d=\"M12 0C5.373 0 0 5.373 0 12c0 2.123.554 4.118 1.528 5.849L.057 24l6.306-1.654A11.954 11.954 0 0012 24c6.627 0 12-5.373 12-12S18.627 0 12 0zm0 21.818a9.818 9.818 0 01-5.002-1.366l-.359-.213-3.722.976.994-3.632-.234-.373A9.818 9.818 0 1112 21.818z\"></path>\n </svg>\n <span class=\"wa-tooltip\">Chat on WhatsApp</span>\n</a>\n\n\n<!-- Sticky Mobile Book Button -->\n<div class=\"mob-sticky-cta\">\n <a href=\"/pickup\" class=\"mob-sticky-btn\">Book a Pickup</a>\n</div>\n\n<!-- Cookie Consent -->\n<div class=\"cookie-bar\" id=\"cookieBar\">\n <p class=\"cookie-txt\">We use cookies to improve your experience. By continuing you agree to our <a href=\"/privacy-policy\" class=\"cookie-link\">Privacy Policy</a>.</p>\n <button class=\"cookie-btn\" onclick=\"acceptCookies()\">Accept</button>\n</div>\n\n\n<!-- Page Preloader -->\n<div class=\"preloader\" id=\"preloader\">\n <div class=\"pre-inner\">\n <div class=\"pre-monogram\">TSL</div>\n <div class=\"pre-line\"></div>\n <p class=\"pre-text\">Est. 2013</p>\n </div>\n</div>\n\n\n\n<!-- Back to Top -->\n\n\n\n\n\n\n\n\n<h2 class=\"seo-hidden\" style=\"position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)\">Cancellation policy for laundry and dry cleaning</h2>\n<h2 class=\"seo-hidden\" style=\"position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)\">How to cancel or modify a Swiss Laundry order</h2>\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>"
}
