/* Glow Swiss — the cleaner's ticket. Paper on a black field, one gold accent. */
@font-face{font-family:"Bebas Neue";src:url("../assets/fonts/bebas-neue.fda244f9b2.woff") format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"EB Garamond";src:url("../assets/fonts/eb-garamond.71a664ab06.woff") format("woff");font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:"EB Garamond";src:url("../assets/fonts/eb-garamond-italic.9c5bfb1368.woff") format("woff");font-weight:400 800;font-style:italic;font-display:swap}

:root{
  --field:#121110;      /* the black ground, from the logo */
  --field-2:#1d1b18;    /* one tone up */
  --paper:#eeede9;      /* ticket paper, a low-chroma bone */
  --paper-2:#dfddd7;    /* one tone down on paper */
  --ink:#191714;
  --ink-soft:#57514a;
  --on-field:#eeede9;
  --on-field-soft:#c9c0b0;
  --gold:#c9a96e;       /* brand gold: the action */
  --gold-2:#d8bd88;
  --display:"Bebas Neue", "Arial Narrow", Impact, sans-serif;
  --text:"EB Garamond", Garamond, "Times New Roman", serif;
  --step-small:clamp(0.875rem,0.85rem + 0.1vw,0.9375rem);
  --step-body:clamp(1.0625rem,1rem + 0.25vw,1.1875rem);
  --step-lead:clamp(1.25rem,1.1rem + 0.7vw,1.625rem);
  --step-sub:clamp(2.25rem,1.6rem + 2.4vw,3.5rem);
  --step-head:clamp(2.75rem,1.6rem + 4.6vw,5.75rem);
  --step-display:clamp(4.5rem,2rem + 10vw,11rem);
  --m:clamp(16px,3vw,32px);       /* page margin */
  --pad:clamp(20px,4vw,56px);     /* padding inside paper */
  --gap:clamp(96px,12vw,200px);   /* between sections */
  --ease:cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--field);color:var(--on-field);font-family:var(--text);font-size:var(--step-body);line-height:1.5;font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
figure{margin:0}
a{color:inherit}
h1,h2,h3{margin:0;font-weight:400}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
::selection{background:var(--gold);color:var(--ink)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:var(--m);top:-80px;z-index:50;background:var(--gold);color:var(--ink);padding:12px 18px;text-decoration:none}
.skip:focus{top:12px}

.display,.head,.hero-title,.coupon-title,.nf-code{font-family:var(--display);text-transform:uppercase;font-weight:400;line-height:.88;letter-spacing:-0.01em}
.display{font-size:var(--step-display)}
.head{font-size:var(--step-head)}
.lead{font-size:var(--step-lead);line-height:1.35}
.note{font-size:var(--step-small);color:var(--ink-soft)}

/* buttons: square, flat, one shape */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border:0;border-radius:0;font-family:var(--text);font-size:var(--step-body);font-weight:600;text-decoration:none;cursor:pointer;transition:transform .18s var(--ease),background-color .18s var(--ease),color .18s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(1px) scale(.98)}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-gold:hover{background:var(--gold-2)}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink:hover{background:#000}
.btn-paper{background:var(--paper);color:var(--ink)}
.btn-block{display:flex;width:100%}
.link{background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:var(--gold);transition:color .15s,text-decoration-color .15s}
.link:hover{text-decoration-color:currentColor}
.link-light{color:var(--on-field)}

/* ---------- header bar ---------- */
.bar{position:relative;z-index:20;display:flex;align-items:center;gap:28px;padding:18px var(--m);background:var(--field)}
.bar-logo img{width:150px;height:auto}
.bar-nav{display:none;gap:28px;margin-left:auto}
.bar-nav a,.bar-lang a{text-decoration:none;font-size:var(--step-body);color:var(--on-field-soft);transition:color .15s}
.bar-nav a:hover,.bar-lang a:hover,.bar-nav a[aria-current]{color:var(--on-field)}
.bar-nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:6px}
.bar-lang{display:none;gap:12px}
.bar-lang a{font-size:var(--step-small);letter-spacing:.02em}
.bar-lang a[aria-current]{color:var(--gold)}
.bar-cta{display:none;min-height:44px}
.bar-menu{margin-left:auto}
.bar-menu summary{list-style:none;cursor:pointer;min-height:44px;display:flex;align-items:center;padding:0 16px;background:var(--gold);color:var(--ink);font-weight:600}
.bar-menu summary::-webkit-details-marker{display:none}
.bar-menu[open] summary{background:var(--paper)}
.bar-menu-panel{position:absolute;left:0;right:0;top:100%;background:var(--paper);color:var(--ink);padding:24px var(--m) 32px}
.bar-menu-panel nav{display:flex;flex-direction:column}
.bar-menu-panel nav a{font-size:var(--step-lead);line-height:1.3;text-decoration:none;padding:8px 0}
.bar-menu-lang{flex-direction:row!important;gap:20px;margin-top:20px}
.bar-menu-lang a{font-size:var(--step-body)!important}
.bar-menu-lang a[aria-current]{text-decoration:underline!important;text-decoration-color:var(--gold)!important}
@media (min-width:1000px){
  .bar{padding:22px var(--m)}
  .bar-logo img{width:180px}
  .bar-nav,.bar-lang,.bar-cta{display:flex}
  .bar-menu{display:none}
}

/* ---------- curtain footer: main slides up off the footer ---------- */
main{background:var(--field);padding-bottom:var(--gap)}
.foot{padding:0 var(--m) var(--m)}
.foot-card{background:var(--paper);color:var(--ink);display:grid;gap:32px;padding:calc(var(--pad) + 18px) var(--pad) 24px;max-width:1240px;margin:0 auto}
.foot-sign{font-family:var(--display);text-transform:uppercase;font-size:var(--step-sub);line-height:.9;margin-bottom:14px}
.foot-msg p+p{margin-top:12px}
.foot-addr{position:relative;display:flex;flex-direction:column;gap:10px;font-size:var(--step-body);padding-right:84px}
.foot-addr a{text-decoration:none;width:max-content;max-width:100%}
.foot-addr a:hover{text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:4px}
.stamp{position:absolute;right:0;top:0;width:64px;padding:5px;background:var(--paper-2);transform:rotate(4deg)}
.foot-imprint{grid-column:1/-1;font-size:var(--step-small);color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;text-align:center;padding-top:8px}
.foot-imprint a{color:var(--ink)}
@media (min-width:900px){
  .foot-card{grid-template-columns:1fr 1fr;min-height:420px;align-content:space-between}
  .foot-addr{padding-right:120px}
  .stamp{width:88px}
}

/* ---------- hero: the ticket ---------- */
.hero{position:relative;display:grid;gap:0;padding:8px var(--m) 0;min-height:calc(100svh - 80px)}
.hero-card{position:relative;z-index:2;background:var(--paper);color:var(--ink);padding:var(--pad) var(--pad) 40px;text-align:center;align-self:start}
.nick{position:absolute;width:36px;height:36px;border-radius:50%;background:var(--field);top:-18px}
.nick-tl{left:-18px}.nick-tr{right:-18px}
.hero-no{display:flex;justify-content:space-between;gap:12px;font-size:var(--step-small);color:var(--ink-soft);margin-top:34px;padding-top:18px;border-top:5px dotted var(--paper-2)}
.hero-title{display:flex;flex-direction:column;font-size:clamp(4rem,1.2rem + 12vw,8.25rem);line-height:.84;letter-spacing:-0.02em}
.hero-title span:first-child{align-self:center}
.hero-lead{font-style:italic;font-size:var(--step-lead);margin:22px 0 18px}
.hero-details{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:var(--step-body)}
.hero-details li+li::before{content:"";display:block;width:9px;height:9px;margin:4px auto 10px;background:var(--gold);transform:rotate(45deg)}
.hero-details a{text-decoration:none}
.hero-details a:hover{text-decoration:underline}
.hero-actions{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:30px}
.hero-actions .btn{width:100%;max-width:340px}
.hero-fig{margin:0 calc(var(--m) * -1);order:-1}
.hero-fig img{width:100%;aspect-ratio:3/2;object-fit:cover}
@media (max-width:899px){
  .hero{padding-top:0}
  .hero-card{margin-top:32px}
}
@media (min-width:900px){
  .hero{grid-template-columns:repeat(12,1fr);column-gap:24px;min-height:min(calc(100svh - 96px),980px);overflow:hidden;padding-top:24px}
  .hero-card{grid-column:1/8;grid-row:1;margin-top:28px;min-height:calc(100% + 120px);padding:48px 48px 40px}
  .hero-title{font-size:clamp(5rem,8.4vw,9rem)}
  .hero-title span:first-child{align-self:flex-start;margin-left:2%}
  .hero-title span:last-child{align-self:flex-end;margin-right:2%}
  .hero-fig{grid-column:8/13;grid-row:1;order:0;margin:0 calc(var(--m) * -1) 0 0;align-self:stretch}
  .hero-fig img{height:100%;aspect-ratio:auto}
}

/* ---------- paper sheets ---------- */
.sheet{background:var(--paper);color:var(--ink);padding:var(--pad)}
.menu-sheet .head{text-align:center;margin-bottom:34px}
.menu-sub{text-align:center;margin:-18px 0 30px;color:var(--ink-soft)}
.menu-group{font-size:var(--step-lead);font-weight:700;margin:40px 0 14px}
.menu-group:first-of-type{margin-top:0}
.menu-list li{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;column-gap:10px;padding:9px 0}
.menu-name{font-size:var(--step-body)}
.menu-dots{border-bottom:4px dotted var(--ink-soft);transform:translateY(-4px);min-width:16px;opacity:.55}
.menu-val{font-variant-numeric:tabular-nums;font-size:var(--step-body);white-space:nowrap}
.menu-desc{grid-column:1/-1;font-size:var(--step-small);color:var(--ink-soft);max-width:40ch;margin-top:2px}
.menu-more{text-align:center;margin-top:36px}
.menu-note{margin-top:30px;font-size:var(--step-small);color:var(--ink-soft)}

.menu-sec{position:relative;display:grid;gap:24px;padding:var(--gap) var(--m) 0}
.plate{max-width:280px}
.plate img{padding:8px;background:var(--paper)}
.plate-a{justify-self:end;transform:rotate(2.5deg)}
.plate-b{justify-self:start;transform:rotate(-2deg)}
@media (min-width:900px){
  .menu-sec{grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:start}
  .menu-sec .menu-sheet{grid-column:2/8;grid-row:1/3;max-width:640px}
  .plate{max-width:none}
  .plate-a{grid-column:8/12;grid-row:1;margin-top:80px;justify-self:stretch}
  .plate-b{grid-column:9/13;grid-row:2;justify-self:stretch;margin-top:40px}
}

/* ---------- estimator: gold field ---------- */
.est-sec{margin-top:var(--gap);background:var(--gold);color:var(--ink);display:grid;gap:40px;padding:clamp(56px,8vw,120px) var(--m)}
.est-text{font-size:var(--step-body);max-width:46ch;margin:18px 0 28px}
.step-list{display:flex;flex-direction:column}
.step-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:8px 0}
.step-name{font-size:var(--step-body)}
.step-name small{display:block;font-size:var(--step-small);color:var(--ink-soft)}
.step-price{font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:var(--step-small)}
.step-ctrl{display:flex;align-items:center;gap:4px}
.step-btn{width:44px;height:44px;border:0;border-radius:0;background:var(--ink);color:var(--paper);font-size:var(--step-lead);line-height:1;cursor:pointer;transition:transform .12s var(--ease),background-color .15s}
.step-btn:hover{background:#000}
.step-btn:active{transform:scale(.92)}
.step-qty{min-width:34px;text-align:center;font-variant-numeric:tabular-nums;font-size:var(--step-body);font-weight:600}
.step-row.has .step-name{font-weight:600}
.est-sec .step-price{color:var(--ink)}
.slip{background:var(--paper);color:var(--ink);padding:28px 28px calc(28px + 10px);width:100%;max-width:400px;margin:0 auto}
.slip-title{text-align:center;font-weight:700;font-size:var(--step-body);margin-bottom:20px}
.slip-rows{display:flex;flex-direction:column;gap:12px;min-height:40px}
.slip-rows li{display:flex;justify-content:space-between;gap:12px;font-size:var(--step-body);font-variant-numeric:tabular-nums}
.slip-rows li.pop{animation:pop .35s var(--ease)}
.slip-empty{color:var(--ink-soft);font-style:italic}
.slip-bar{height:4px;background:var(--ink);margin:20px 0 14px}
.slip-line{display:flex;justify-content:space-between;font-variant-numeric:tabular-nums}
.slip-line .free{color:var(--ink)}
.slip-line s{color:var(--ink-soft);margin-right:8px}
.slip-hint{font-size:var(--step-small);color:var(--ink-soft);min-height:1.4em;margin-top:6px}
.slip-total{display:flex;justify-content:space-between;align-items:baseline;margin:14px 0 22px;font-size:var(--step-body)}
.slip-total span:last-child{font-size:var(--step-lead);font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.slip-total b{font-weight:400}
@keyframes pop{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
@media (min-width:900px){
  .est-sec{grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:start}
  .est-copy{grid-column:2/7}
  .est-slip{grid-column:8/12;position:sticky;top:24px}
}

/* ---------- moments: a drag row ---------- */
.row-sec{margin-top:var(--gap);padding:0 0 0 var(--m)}
.row-top{display:flex;align-items:end;justify-content:space-between;gap:16px;padding-right:var(--m)}
.row-btns{display:none;gap:8px}
.sq{width:52px;height:52px;border:0;border-radius:0;background:var(--paper);color:var(--ink);font-size:var(--step-lead);cursor:pointer;transition:transform .15s var(--ease),background-color .15s}
.sq:hover{background:var(--gold)}
.sq:active{transform:scale(.94)}
.row-progress{height:6px;background:var(--field-2);margin:26px var(--m) 34px 0}
.row-progress span{display:block;height:100%;width:20%;background:var(--gold);transition:width .2s linear}
.row{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--m) 8px 0;scrollbar-width:none}
.row::-webkit-scrollbar{display:none}
.moment{flex:0 0 76vw;scroll-snap-align:start;display:flex;flex-direction:column}
.moment h3{font-size:var(--step-body);font-weight:700}
.moment p{color:var(--on-field-soft);margin-top:8px;font-size:var(--step-body)}
.moment img{margin-top:auto;width:100%;aspect-ratio:4/5;object-fit:cover}
.moment-1 p{margin-bottom:40px}.moment-2 p{margin-bottom:72px}.moment-3 p{margin-bottom:32px}.moment-4 p{margin-bottom:88px}.moment-5 p{margin-bottom:52px}
@media (min-width:900px){
  .row-sec{padding-left:calc(var(--m) + (100vw - 2 * var(--m)) / 12)}
  .row-btns{display:flex}
  .row{gap:32px}
  .moment{flex-basis:300px}
  .moment-1 p{margin-bottom:96px}.moment-2 p{margin-bottom:140px}.moment-3 p{margin-bottom:80px}.moment-4 p{margin-bottom:124px}.moment-5 p{margin-bottom:104px}
}

/* ---------- the letter ---------- */
.letter-sec{margin:var(--gap) auto 0;padding:0 var(--m);max-width:calc(640px + 2 * var(--m))}
.letter-sheet{background:var(--paper);color:var(--ink);padding:var(--pad) var(--pad) 48px}
.letter-sheet .head{margin-bottom:28px}
.letter-sheet p{font-size:var(--step-body);line-height:1.55}
.letter-sheet p+p{margin-top:1.1em}
.letter-sign{font-style:italic;font-size:var(--step-lead)!important;margin-top:32px!important}
.letter-sign span{display:block;font-style:normal;font-size:var(--step-small);color:var(--ink-soft)}
.letter-strip{display:flex;flex-direction:column;gap:16px;background:var(--paper);color:var(--ink);padding:22px var(--pad) 26px;border-top:5px dotted var(--field);font-size:var(--step-body)}
.letter-strip a:first-child{text-decoration:none}
@media (min-width:700px){.letter-strip{flex-direction:row;align-items:center;justify-content:space-between}}

/* ---------- FAQ as reading text ---------- */
.faq-sec{margin-top:var(--gap);padding:var(--gap) var(--m);background:var(--paper);color:var(--ink);display:grid;gap:32px}
.faq-sec .head{font-size:var(--step-sub)}
.faq-text p{margin-bottom:22px;break-inside:avoid;font-size:var(--step-body);line-height:1.55}
.faq-text strong{font-weight:600}
@media (min-width:900px){
  .faq-sec{grid-template-columns:repeat(12,1fr);column-gap:24px}
  .faq-sec .head{grid-column:2/5}
  .faq-text{grid-column:5/13;columns:2;column-gap:56px}
}

/* ---------- coupon form ---------- */
.coupon-sec{padding:var(--gap) var(--m) 0}
.coupon-sec{background:var(--paper);margin-bottom:calc(var(--gap) * -1);padding-bottom:var(--gap)}
.faq-sec + .coupon-sec{padding-top:0}
.coupon{position:relative;display:grid;background:var(--ink);color:var(--paper);max-width:1080px;margin:0 auto}
.coupon-left{padding:var(--pad);padding-bottom:28px;display:flex;flex-direction:column;justify-content:space-between;gap:20px}
.coupon-title{font-size:var(--step-sub)}
.coupon-left p{color:var(--on-field-soft);max-width:36ch}
.coupon-right{padding:28px var(--pad) var(--pad);border-top:5px dotted var(--paper);display:flex;flex-direction:column;gap:10px}
.coupon-right{position:relative}
.notch{position:absolute;width:28px;height:28px;border-radius:50%;background:var(--paper)}
.notch-t{left:-14px;top:-16.5px}
.notch-b{right:-14px;top:-16.5px}
.fld{display:flex;flex-direction:column;gap:4px}
.fld label{font-size:var(--step-small);color:inherit;opacity:.85}
.fld input,.fld textarea,.fld select{width:100%;min-height:54px;padding:12px 14px;border:0;border-radius:0;background:#2b2823;color:var(--paper);font-size:var(--step-body)}
.fld textarea{min-height:96px;resize:vertical}
.fld input:focus-visible,.fld textarea:focus-visible,.fld select:focus-visible{outline-offset:0}
.form-error{background:#7a1f12;color:#fff;padding:10px 14px;font-size:var(--step-body)}
.coupon .btn{margin-top:8px;min-height:56px}
.coupon .link{align-self:center;margin-top:6px;font-size:var(--step-body)}
@media (min-width:900px){
  .coupon{grid-template-columns:46fr 54fr}
  .coupon-right{border-top:0;border-left:5px dotted var(--paper)}
  .notch-t{left:-16.5px;top:-14px}
  .notch-b{left:-16.5px;right:auto;top:auto;bottom:-14px}
}

/* ---------- inner page heads ---------- */
.phead{display:grid;gap:32px;padding:clamp(40px,7vw,96px) var(--m) 0}
.phead-text{max-width:1100px}
.phead .lead{color:var(--on-field-soft);max-width:44ch;margin-top:24px}
.phead-fig img{width:100%;aspect-ratio:3/2;object-fit:cover}
@media (min-width:900px){
  .phead{grid-template-columns:repeat(12,1fr);column-gap:24px}
  .phead-text{grid-column:2/12}
  .phead-photo .phead-text{grid-column:2/8;align-self:end}
  .phead-photo .phead-fig{grid-column:8/13;margin-right:calc(var(--m) * -1)}
}

/* services */
.svc-sec{display:flex;flex-direction:column;gap:var(--gap);padding:var(--gap) var(--m) 0}
.svc{display:grid;gap:28px;align-items:center}
.svc img{width:100%;max-width:560px}
.svc-text p{max-width:56ch}
.svc-text .lead{margin:18px 0 14px}
.svc-text p:not(.lead){color:var(--on-field-soft)}
.svc-text .svc-price{font-family:var(--display);font-size:var(--step-sub);line-height:1;color:var(--gold);margin-top:24px}
@media (min-width:900px){
  .svc{grid-template-columns:repeat(12,1fr);column-gap:24px}
  .svc-l img{grid-column:2/7}.svc-l .svc-text{grid-column:8/12}
  .svc-r img{grid-column:7/12;grid-row:1}.svc-r .svc-text{grid-column:2/6;grid-row:1}
}
.prices-sec{padding:var(--gap) var(--m) 0;display:flex;flex-direction:column;align-items:center}
.prices-sec .menu-sheet{width:100%;max-width:680px}
.prices-cta{margin-top:40px}

/* order */
.order-sec{display:grid;gap:32px;padding:clamp(48px,6vw,80px) var(--m) 0}
.order-items .head{font-size:var(--step-sub);margin-bottom:28px}
.order-items .step-row{border-bottom:0}
.order-items .step-btn{background:var(--ink)}
.order-form{background:var(--paper);color:var(--ink);padding:var(--pad)}
.order-form .head{font-size:var(--step-sub);margin-bottom:24px}
.fld-grid{display:grid;gap:14px}
.order-form .fld input,.order-form .fld textarea,.order-form .fld select{background:var(--paper-2);color:var(--ink)}
.order-send{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 20px}
.order-form .note+.note{margin-top:10px}
@media (min-width:700px){.fld-grid{grid-template-columns:1fr 1fr}.fld-full{grid-column:1/-1}}
@media (min-width:1000px){
  .order-sec{grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:start}
  .order-items{grid-column:1/8}
  .order-side{grid-column:8/13;grid-row:1/3;position:sticky;top:24px}
  .order-form{grid-column:1/8}
}

/* business */
.b2b-sec{padding:var(--gap) var(--m) 0}
.b2b-text{max-width:760px;margin:0 auto}
.b2b-text .lead{margin:22px 0}
.b2b-list{margin:0 0 28px;display:flex;flex-direction:column;gap:10px;font-size:var(--step-lead)}
.b2b-list li::before{content:"";display:inline-block;width:10px;height:10px;margin-right:14px;background:var(--gold);transform:rotate(45deg) translateY(-3px)}

/* about */
.quality-sec{margin:var(--gap) auto 0;padding:0 var(--m);max-width:1100px}
.quality-sec .lead{max-width:48ch;margin:22px 0 40px;color:var(--on-field-soft)}
.quality-figs{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.quality-figs img{width:100%;aspect-ratio:4/5;object-fit:cover}
.quality-figs img:last-child{margin-top:64px}

/* sustainability */
.sust-sec{display:grid;gap:56px;padding:var(--gap) var(--m) 0;max-width:1240px;margin:0 auto}
.sust .head{font-size:var(--step-sub)}
.sust .lead{margin-top:16px;color:var(--on-field-soft);max-width:40ch}
@media (min-width:900px){.sust-sec{grid-template-columns:repeat(3,1fr);column-gap:48px}}
.lake-sec{margin-top:var(--gap);background:#2f5a3e;color:var(--paper);padding:var(--gap) var(--m);text-align:center}
.lake-sec .display{font-size:var(--step-head)}
.lake-sec .lead{max-width:44ch;margin:24px auto 36px}

/* legal */
.legal-sec{padding:clamp(40px,6vw,80px) var(--m) 0}
.legal-sheet{max-width:760px;margin:0 auto}
.legal-sheet .head{font-size:var(--step-sub);margin-bottom:12px}
.legal-sheet h2{font-weight:700;font-size:var(--step-lead);margin:36px 0 10px}
.legal-sheet p,.legal-sheet li{line-height:1.6}
.legal-sheet p+p{margin-top:12px}
.legal-sheet ul{margin:12px 0;display:flex;flex-direction:column;gap:6px}
.legal-sheet li{padding-left:22px;position:relative}
.legal-sheet li::before{content:"";position:absolute;left:2px;top:.6em;width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}

/* 404 + root */
.nf{min-height:100svh;display:grid;place-items:center;padding:var(--m)}
.nf-sheet{max-width:620px}
.nf-sheet p+p{margin-top:14px}
.nf-code{font-size:var(--step-display);margin-bottom:10px}
.page-404 main{padding-bottom:0}

/* ---------- motion ---------- */
.js [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js [data-reveal].in{opacity:1;transform:none}
.js .hero-card[data-reveal]{transform:translateY(60px)}
.js .hero-card[data-reveal].in{transform:none;transition-duration:1s}
.js .plate-a[data-reveal].in{transform:rotate(2.5deg)}
.js .plate-b[data-reveal].in{transform:rotate(-2deg)}
.hero-fig img{animation:drift 24s ease-in-out infinite alternate}
@keyframes drift{from{transform:scale(1)}to{transform:scale(1.06) translateX(-1.5%)}}
.hero-fig{overflow:hidden}
.plate img,.moment img,.svc img,.quality-figs img{transition:transform .5s var(--ease)}
.plate:hover img,.moment:hover img{transform:scale(1.02)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  .js [data-reveal]{opacity:1;transform:none}
}
@media print{
  .bar,.foot,.coupon-sec,.est-sec{display:none}
  body,main{background:#fff;color:#000}
}
.est-copy{max-width:600px}
@media (min-width:600px) and (max-width:899px){.moment{flex-basis:44vw}}
.head,.display{overflow-wrap:break-word;hyphens:auto}
.svc-text .head{font-size:var(--step-sub)}
.note{max-width:62ch}
.order-items .step-price{font-size:var(--step-body);color:var(--ink)}
.phead-photo .display{font-size:var(--step-head)}
.fld label{font-size:var(--step-body)}
.order-form .note{color:var(--ink);font-size:var(--step-body)}

/* ---------- hero video ---------- */
.hero-fig{position:relative}
.hero-video{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;background:var(--field-2)}
.video-btn{position:absolute;right:12px;bottom:12px;min-height:44px;padding:0 16px;border:0;border-radius:0;background:var(--field);color:var(--on-field);font-size:var(--step-small);cursor:pointer;transition:background-color .15s,color .15s}
.video-btn:hover{background:var(--gold);color:var(--ink)}
@media (min-width:900px){
  .hero-video{height:100%;aspect-ratio:auto}
  .video-btn{right:calc(var(--m) + 12px)}
}

/* ---------- fabric fold-outs on the menu sheet ---------- */
.fabric{padding:9px 0}
.fabric summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto 28px;align-items:baseline;column-gap:10px}
.fabric summary::-webkit-details-marker{display:none}
.fabric summary .menu-desc{grid-column:1/4}
.fabric-toggle{grid-row:1;grid-column:4;justify-self:end;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:var(--paper);font-size:var(--step-body);line-height:1;transition:transform .25s var(--ease),background-color .15s}
.fabric summary:hover .fabric-toggle{background:#000}
.fabric[open] .fabric-toggle{transform:rotate(45deg)}
.fabric p{margin:10px 38px 6px 0;font-size:var(--step-body);line-height:1.5;max-width:46ch}
.fabric[open] p{animation:pop .35s var(--ease)}

/* ---------- delivery map ---------- */
.map-sec{margin-top:var(--gap);padding:0 var(--m);display:grid;gap:32px;align-items:center}
.map-copy .lead{margin:22px 0;max-width:36ch;color:var(--on-field-soft)}
.map-fig svg{display:block;width:100%;height:auto;max-height:640px}
.map-fig .note{color:var(--on-field-soft);margin-top:8px}
.map-lake{fill:#24323d}
.map-lake-name{fill:#8fa3b3;font-family:var(--text);font-style:italic;font-size:22px}
.map-pin{fill:var(--paper)}
.map-town{fill:var(--on-field);font-family:var(--text);font-size:22px}
.map-shop{fill:var(--gold)}
.map-shop-name{fill:var(--gold);font-family:var(--text);font-size:22px;font-weight:600}
@media (min-width:900px){
  .map-sec{grid-template-columns:repeat(12,1fr);column-gap:24px}
  .map-copy{grid-column:2/6}
  .map-fig{grid-column:6/13}
}
@media (max-width:899px){
  .hero{min-height:0;align-content:start}
  .hero-video{aspect-ratio:auto;height:44svh;min-height:260px}
  .hero-card{margin-top:24px}
}
.slip-near{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:var(--step-body);cursor:pointer}
.slip-near input{width:22px;height:22px;accent-color:var(--ink);margin:0}

/* ---------- shoe cleaning, the speciality ---------- */
.shoe-sec{margin-top:var(--gap);background:var(--paper);color:var(--ink);padding:var(--gap) var(--m);display:grid;gap:40px;align-items:center}
.shoe-copy .lead{margin:22px 0 10px;max-width:38ch}
.shoe-price{font-family:var(--display);font-size:var(--step-display);line-height:.9;text-transform:uppercase;margin:6px 0 18px}
.shoe-steps{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px;max-width:46ch;font-size:var(--step-body)}
.shoe-steps li{padding-left:24px;position:relative}
.shoe-steps li::before{content:"";position:absolute;left:2px;top:.55em;width:9px;height:9px;background:var(--gold);transform:rotate(45deg)}
.shoe-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:30px}
.shoe-figs{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.shoe-figs img{width:100%;aspect-ratio:4/5;object-fit:cover}
.shoe-figs img:last-child{margin-top:56px}
.svc-more{margin-top:18px}
@media (min-width:900px){
  .shoe-sec{grid-template-columns:repeat(12,1fr);column-gap:24px}
  .shoe-copy{grid-column:2/7}
  .shoe-figs{grid-column:7/13}
}
.shoe-sec + .est-sec{margin-top:0}
.svc img{aspect-ratio:1/1;object-fit:cover}

/* ---------- the silk ribbon (scroll-driven, WebGL) ---------- */
.silk-sec{position:relative;height:260vh;margin-top:var(--gap)}
.silk-stage{position:sticky;top:0;height:100svh;overflow:hidden}
.silk-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.silk-title{position:absolute;left:var(--m);top:clamp(24px,6vh,72px);max-width:min(46vw,760px);z-index:2;color:var(--on-field);font-size:var(--step-sub)}
.silk-words{position:absolute;inset:0;z-index:2;pointer-events:none}
.silk-word{position:absolute;display:flex;flex-direction:column;gap:4px;max-width:30ch;opacity:1;transition:opacity .8s var(--ease),transform .8s var(--ease)}
.silk-live .silk-word{opacity:0;transform:translateY(32px)}
.silk-live .silk-word.on{opacity:1;transform:none}
.silk-name{font-family:var(--display);text-transform:uppercase;font-size:min(var(--step-sub),3.4vw);line-height:.95;color:var(--gold);hyphens:auto}
.silk-desc{font-size:var(--step-body);color:var(--on-field-soft)}
.silk-word{max-width:min(28vw,30ch)}
.silk-word-1{left:var(--m);top:34%}
.silk-word-2{right:var(--m);top:24%;text-align:right;align-items:flex-end}
.silk-word-3{left:var(--m);top:54%}
.silk-word-4{right:var(--m);top:44%;text-align:right;align-items:flex-end}
.silk-word-5{left:var(--m);top:74%}
.silk-word-6{right:var(--m);top:64%;text-align:right;align-items:flex-end}
@media (min-width:900px){
  .silk-title{left:calc(var(--m) + (100vw - 2 * var(--m)) / 12)}
  .silk-word-1,.silk-word-3,.silk-word-5{left:calc(var(--m) + (100vw - 2 * var(--m)) / 12)}
  .silk-word-2,.silk-word-4,.silk-word-6{right:calc(var(--m) + (100vw - 2 * var(--m)) / 12)}
}
@media (max-width:699px){
  /* phones: one fabric at a time, on a band at the bottom */
  .silk-live .silk-word{left:var(--m)!important;right:var(--m)!important;top:auto!important;bottom:5%;max-width:none;text-align:left!important;align-items:flex-start!important;background:var(--field);padding:14px 16px}
  .silk-live .silk-word:not(.cur){opacity:0;visibility:hidden;transition:opacity .4s,visibility 0s .4s}
  .silk-live .silk-word.cur{visibility:visible}
  .silk-title{max-width:none;right:var(--m)}
  .silk-name{font-size:var(--step-sub)}
}
/* no script or no WebGL: a plain list on the dark field */
.silk-sec:not(.silk-live){height:auto}
.silk-sec:not(.silk-live) .silk-stage{position:static;height:auto;padding:0 var(--m)}
.silk-sec:not(.silk-live) .silk-title,.silk-sec:not(.silk-live) .silk-words,.silk-sec:not(.silk-live) .silk-word{position:static}
.silk-sec:not(.silk-live) .silk-words{display:grid;gap:24px;margin-top:32px}
.silk-nogl .silk-canvas{display:none}
@media (prefers-reduced-motion:reduce){.silk-live .silk-word{transform:none}}

/* generated by src/shapes.mjs */
.zz-bottom{clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),98.958% 100%,97.917% calc(100% - 10px),96.875% 100%,95.833% calc(100% - 10px),94.792% 100%,93.75% calc(100% - 10px),92.708% 100%,91.667% calc(100% - 10px),90.625% 100%,89.583% calc(100% - 10px),88.542% 100%,87.5% calc(100% - 10px),86.458% 100%,85.417% calc(100% - 10px),84.375% 100%,83.333% calc(100% - 10px),82.292% 100%,81.25% calc(100% - 10px),80.208% 100%,79.167% calc(100% - 10px),78.125% 100%,77.083% calc(100% - 10px),76.042% 100%,75% calc(100% - 10px),73.958% 100%,72.917% calc(100% - 10px),71.875% 100%,70.833% calc(100% - 10px),69.792% 100%,68.75% calc(100% - 10px),67.708% 100%,66.667% calc(100% - 10px),65.625% 100%,64.583% calc(100% - 10px),63.542% 100%,62.5% calc(100% - 10px),61.458% 100%,60.417% calc(100% - 10px),59.375% 100%,58.333% calc(100% - 10px),57.292% 100%,56.25% calc(100% - 10px),55.208% 100%,54.167% calc(100% - 10px),53.125% 100%,52.083% calc(100% - 10px),51.042% 100%,50% calc(100% - 10px),48.958% 100%,47.917% calc(100% - 10px),46.875% 100%,45.833% calc(100% - 10px),44.792% 100%,43.75% calc(100% - 10px),42.708% 100%,41.667% calc(100% - 10px),40.625% 100%,39.583% calc(100% - 10px),38.542% 100%,37.5% calc(100% - 10px),36.458% 100%,35.417% calc(100% - 10px),34.375% 100%,33.333% calc(100% - 10px),32.292% 100%,31.25% calc(100% - 10px),30.208% 100%,29.167% calc(100% - 10px),28.125% 100%,27.083% calc(100% - 10px),26.042% 100%,25% calc(100% - 10px),23.958% 100%,22.917% calc(100% - 10px),21.875% 100%,20.833% calc(100% - 10px),19.792% 100%,18.75% calc(100% - 10px),17.708% 100%,16.667% calc(100% - 10px),15.625% 100%,14.583% calc(100% - 10px),13.542% 100%,12.5% calc(100% - 10px),11.458% 100%,10.417% calc(100% - 10px),9.375% 100%,8.333% calc(100% - 10px),7.292% 100%,6.25% calc(100% - 10px),5.208% 100%,4.167% calc(100% - 10px),3.125% 100%,2.083% calc(100% - 10px),1.042% 100%,0% calc(100% - 10px));padding-bottom:calc(var(--pad) + 10px)}
.zz-top{clip-path:polygon(0% 10px,1.042% 0,2.083% 10px,3.125% 0,4.167% 10px,5.208% 0,6.25% 10px,7.292% 0,8.333% 10px,9.375% 0,10.417% 10px,11.458% 0,12.5% 10px,13.542% 0,14.583% 10px,15.625% 0,16.667% 10px,17.708% 0,18.75% 10px,19.792% 0,20.833% 10px,21.875% 0,22.917% 10px,23.958% 0,25% 10px,26.042% 0,27.083% 10px,28.125% 0,29.167% 10px,30.208% 0,31.25% 10px,32.292% 0,33.333% 10px,34.375% 0,35.417% 10px,36.458% 0,37.5% 10px,38.542% 0,39.583% 10px,40.625% 0,41.667% 10px,42.708% 0,43.75% 10px,44.792% 0,45.833% 10px,46.875% 0,47.917% 10px,48.958% 0,50% 10px,51.042% 0,52.083% 10px,53.125% 0,54.167% 10px,55.208% 0,56.25% 10px,57.292% 0,58.333% 10px,59.375% 0,60.417% 10px,61.458% 0,62.5% 10px,63.542% 0,64.583% 10px,65.625% 0,66.667% 10px,67.708% 0,68.75% 10px,69.792% 0,70.833% 10px,71.875% 0,72.917% 10px,73.958% 0,75% 10px,76.042% 0,77.083% 10px,78.125% 0,79.167% 10px,80.208% 0,81.25% 10px,82.292% 0,83.333% 10px,84.375% 0,85.417% 10px,86.458% 0,87.5% 10px,88.542% 0,89.583% 10px,90.625% 0,91.667% 10px,92.708% 0,93.75% 10px,94.792% 0,95.833% 10px,96.875% 0,97.917% 10px,98.958% 0,100% 10px,100% 100%,0 100%);padding-top:calc(var(--pad) + 10px)}
.zz-both{clip-path:polygon(0% 10px,1.042% 0,2.083% 10px,3.125% 0,4.167% 10px,5.208% 0,6.25% 10px,7.292% 0,8.333% 10px,9.375% 0,10.417% 10px,11.458% 0,12.5% 10px,13.542% 0,14.583% 10px,15.625% 0,16.667% 10px,17.708% 0,18.75% 10px,19.792% 0,20.833% 10px,21.875% 0,22.917% 10px,23.958% 0,25% 10px,26.042% 0,27.083% 10px,28.125% 0,29.167% 10px,30.208% 0,31.25% 10px,32.292% 0,33.333% 10px,34.375% 0,35.417% 10px,36.458% 0,37.5% 10px,38.542% 0,39.583% 10px,40.625% 0,41.667% 10px,42.708% 0,43.75% 10px,44.792% 0,45.833% 10px,46.875% 0,47.917% 10px,48.958% 0,50% 10px,51.042% 0,52.083% 10px,53.125% 0,54.167% 10px,55.208% 0,56.25% 10px,57.292% 0,58.333% 10px,59.375% 0,60.417% 10px,61.458% 0,62.5% 10px,63.542% 0,64.583% 10px,65.625% 0,66.667% 10px,67.708% 0,68.75% 10px,69.792% 0,70.833% 10px,71.875% 0,72.917% 10px,73.958% 0,75% 10px,76.042% 0,77.083% 10px,78.125% 0,79.167% 10px,80.208% 0,81.25% 10px,82.292% 0,83.333% 10px,84.375% 0,85.417% 10px,86.458% 0,87.5% 10px,88.542% 0,89.583% 10px,90.625% 0,91.667% 10px,92.708% 0,93.75% 10px,94.792% 0,95.833% 10px,96.875% 0,97.917% 10px,98.958% 0,100% 10px,100% calc(100% - 10px),98.958% 100%,97.917% calc(100% - 10px),96.875% 100%,95.833% calc(100% - 10px),94.792% 100%,93.75% calc(100% - 10px),92.708% 100%,91.667% calc(100% - 10px),90.625% 100%,89.583% calc(100% - 10px),88.542% 100%,87.5% calc(100% - 10px),86.458% 100%,85.417% calc(100% - 10px),84.375% 100%,83.333% calc(100% - 10px),82.292% 100%,81.25% calc(100% - 10px),80.208% 100%,79.167% calc(100% - 10px),78.125% 100%,77.083% calc(100% - 10px),76.042% 100%,75% calc(100% - 10px),73.958% 100%,72.917% calc(100% - 10px),71.875% 100%,70.833% calc(100% - 10px),69.792% 100%,68.75% calc(100% - 10px),67.708% 100%,66.667% calc(100% - 10px),65.625% 100%,64.583% calc(100% - 10px),63.542% 100%,62.5% calc(100% - 10px),61.458% 100%,60.417% calc(100% - 10px),59.375% 100%,58.333% calc(100% - 10px),57.292% 100%,56.25% calc(100% - 10px),55.208% 100%,54.167% calc(100% - 10px),53.125% 100%,52.083% calc(100% - 10px),51.042% 100%,50% calc(100% - 10px),48.958% 100%,47.917% calc(100% - 10px),46.875% 100%,45.833% calc(100% - 10px),44.792% 100%,43.75% calc(100% - 10px),42.708% 100%,41.667% calc(100% - 10px),40.625% 100%,39.583% calc(100% - 10px),38.542% 100%,37.5% calc(100% - 10px),36.458% 100%,35.417% calc(100% - 10px),34.375% 100%,33.333% calc(100% - 10px),32.292% 100%,31.25% calc(100% - 10px),30.208% 100%,29.167% calc(100% - 10px),28.125% 100%,27.083% calc(100% - 10px),26.042% 100%,25% calc(100% - 10px),23.958% 100%,22.917% calc(100% - 10px),21.875% 100%,20.833% calc(100% - 10px),19.792% 100%,18.75% calc(100% - 10px),17.708% 100%,16.667% calc(100% - 10px),15.625% 100%,14.583% calc(100% - 10px),13.542% 100%,12.5% calc(100% - 10px),11.458% 100%,10.417% calc(100% - 10px),9.375% 100%,8.333% calc(100% - 10px),7.292% 100%,6.25% calc(100% - 10px),5.208% 100%,4.167% calc(100% - 10px),3.125% 100%,2.083% calc(100% - 10px),1.042% 100%,0% calc(100% - 10px));padding-top:calc(var(--pad) + 10px);padding-bottom:calc(var(--pad) + 10px)}
.scallop-top{clip-path:polygon(0% 18px,0.408% 12.438px,1.592% 7.42px,3.435% 3.438px,5.758% 0.881px,8.333% 0px,10.908% 0.881px,13.232% 3.438px,15.075% 7.42px,16.259% 12.438px,16.667% 18px,16.667% 18px,17.075% 12.438px,18.258% 7.42px,20.102% 3.438px,22.425% 0.881px,25% 0px,27.575% 0.881px,29.898% 3.438px,31.742% 7.42px,32.925% 12.438px,33.333% 18px,33.333% 18px,33.741% 12.438px,34.925% 7.42px,36.768% 3.438px,39.092% 0.881px,41.667% 0px,44.242% 0.881px,46.565% 3.438px,48.408% 7.42px,49.592% 12.438px,50% 18px,50% 18px,50.408% 12.438px,51.592% 7.42px,53.435% 3.438px,55.758% 0.881px,58.333% 0px,60.908% 0.881px,63.232% 3.438px,65.075% 7.42px,66.259% 12.438px,66.667% 18px,66.667% 18px,67.075% 12.438px,68.258% 7.42px,70.102% 3.438px,72.425% 0.881px,75% 0px,77.575% 0.881px,79.898% 3.438px,81.742% 7.42px,82.925% 12.438px,83.333% 18px,83.333% 18px,83.741% 12.438px,84.925% 7.42px,86.768% 3.438px,89.092% 0.881px,91.667% 0px,94.242% 0.881px,96.565% 3.438px,98.408% 7.42px,99.592% 12.438px,100% 18px,100% 100%,0 100%)}
@media (min-width:900px){.scallop-top{clip-path:polygon(0% 18px,0.204% 12.438px,0.796% 7.42px,1.718% 3.438px,2.879% 0.881px,4.167% 0px,5.454% 0.881px,6.616% 3.438px,7.538% 7.42px,8.129% 12.438px,8.333% 18px,8.333% 18px,8.537% 12.438px,9.129% 7.42px,10.051% 3.438px,11.212% 0.881px,12.5% 0px,13.788% 0.881px,14.949% 3.438px,15.871% 7.42px,16.463% 12.438px,16.667% 18px,16.667% 18px,16.871% 12.438px,17.462% 7.42px,18.384% 3.438px,19.546% 0.881px,20.833% 0px,22.121% 0.881px,23.282% 3.438px,24.204% 7.42px,24.796% 12.438px,25% 18px,25% 18px,25.204% 12.438px,25.796% 7.42px,26.718% 3.438px,27.879% 0.881px,29.167% 0px,30.454% 0.881px,31.616% 3.438px,32.538% 7.42px,33.129% 12.438px,33.333% 18px,33.333% 18px,33.537% 12.438px,34.129% 7.42px,35.051% 3.438px,36.212% 0.881px,37.5% 0px,38.788% 0.881px,39.949% 3.438px,40.871% 7.42px,41.463% 12.438px,41.667% 18px,41.667% 18px,41.871% 12.438px,42.462% 7.42px,43.384% 3.438px,44.546% 0.881px,45.833% 0px,47.121% 0.881px,48.282% 3.438px,49.204% 7.42px,49.796% 12.438px,50% 18px,50% 18px,50.204% 12.438px,50.796% 7.42px,51.718% 3.438px,52.879% 0.881px,54.167% 0px,55.454% 0.881px,56.616% 3.438px,57.538% 7.42px,58.129% 12.438px,58.333% 18px,58.333% 18px,58.537% 12.438px,59.129% 7.42px,60.051% 3.438px,61.212% 0.881px,62.5% 0px,63.788% 0.881px,64.949% 3.438px,65.871% 7.42px,66.463% 12.438px,66.667% 18px,66.667% 18px,66.871% 12.438px,67.462% 7.42px,68.384% 3.438px,69.546% 0.881px,70.833% 0px,72.121% 0.881px,73.282% 3.438px,74.204% 7.42px,74.796% 12.438px,75% 18px,75% 18px,75.204% 12.438px,75.796% 7.42px,76.718% 3.438px,77.879% 0.881px,79.167% 0px,80.454% 0.881px,81.616% 3.438px,82.538% 7.42px,83.129% 12.438px,83.333% 18px,83.333% 18px,83.537% 12.438px,84.129% 7.42px,85.051% 3.438px,86.212% 0.881px,87.5% 0px,88.788% 0.881px,89.949% 3.438px,90.871% 7.42px,91.463% 12.438px,91.667% 18px,91.667% 18px,91.871% 12.438px,92.462% 7.42px,93.384% 3.438px,94.546% 0.881px,95.833% 0px,97.121% 0.881px,98.282% 3.438px,99.204% 7.42px,99.796% 12.438px,100% 18px,100% 100%,0 100%)}}
