/* Stitch & Sole · concept store by Brand Evolution */
:root{
  --cream:#F6EEDC;
  --cream-2:#EEE1C4;
  --ink:#2A1712;
  --ink-soft:#4E362B;
  --muted:#6A5446;
  --maroon:#8C1D2F;
  --maroon-dk:#6E1424;
  --night:#33101A;
  --haldi:#E2A92A;
  --rani:#C2185B;
  --line:rgba(42,23,18,.15);
  --display:"Rozha One", "Bodoni 72", Georgia, serif;
  --body:"Schibsted Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --gutter:clamp(16px,4vw,56px);
  --ease:cubic-bezier(.2,.8,.2,1);
  /* shop tokens */
  --cs-bg:var(--cream);--cs-fg:var(--ink);--cs-muted:var(--muted);--cs-line:var(--line);
  --cs-accent:var(--maroon);--cs-accent-fg:#FFF4E2;--cs-card:#EBDCBE;--cs-display:var(--display);--cs-radius:14px;
  --cs-heart-bg:rgba(246,238,220,.88);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--body);font-size:16.5px;line-height:1.55;overflow-x:hidden}
svg{display:block}
a{color:inherit}
p,h1,h2,h3{margin:0}
em{font-family:var(--display);font-style:normal;color:var(--maroon)}
:focus-visible{outline:3px solid var(--rani);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--ink);color:var(--cream);padding:10px 14px}
.skip:focus{left:8px}
button{font:inherit;color:inherit}

.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 24px;font-weight:700;font-size:15px;letter-spacing:.01em;text-decoration:none;border:0;border-radius:999px;cursor:pointer;transition:transform .35s var(--ease),background .3s,box-shadow .3s,color .3s}
.btn-solid{background:var(--maroon);color:#FFF4E2}
.btn-solid:hover{background:var(--maroon-dk)}
.btn-line{background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--cream);transform:translateY(-2px)}

/* NAV: cream glass over light sections, maroon-night glass over dark ones */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px var(--gutter);color:var(--ink);transition:background .35s,box-shadow .35s,padding .35s,color .35s}
.nav.solid{background:rgba(246,238,220,.84);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 1px 0 var(--line);padding-top:10px;padding-bottom:10px}
.nav.on-dark{color:var(--cream)}
.nav.solid.on-dark{background:rgba(51,16,26,.82);box-shadow:0 1px 0 rgba(246,238,220,.14)}
.nav.on-dark .icon-btn:hover{background:rgba(246,238,220,.14)}
.nav.on-dark .brand svg{color:var(--haldi)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--display);font-size:22px;line-height:1}
.brand svg{width:34px;height:34px;color:var(--maroon);transition:color .35s}
.nav nav{display:flex;gap:28px;align-items:center;font-size:14.5px;font-weight:600}
.nav nav a,.navlink{text-decoration:none;opacity:.82;background:none;border:0;padding:0;cursor:pointer;font-weight:600;font-size:inherit;color:inherit}
.nav nav a:hover,.navlink:hover{opacity:1}
.nav-icons{display:flex;gap:6px}
.icon-btn{position:relative;width:44px;height:44px;border:0;background:transparent;border-radius:50%;display:grid;place-items:center;cursor:pointer;transition:background .2s}
.icon-btn:hover{background:var(--line)}
.icon-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
.count{position:absolute;right:3px;top:3px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--rani);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;line-height:1}
.count.zero{display:none}
@media (max-width:860px){.nav nav{display:none}}

/* HERO */
.jj-hero{position:relative;display:grid;grid-template-columns:minmax(280px,.9fr) 1.1fr;gap:clamp(20px,3vw,48px);align-items:center;padding:calc(84px + 1vh) var(--gutter) 40px;min-height:min(100vh,940px);overflow:hidden;
  background:radial-gradient(60% 70% at 78% 52%,#F2D9B5 0%,rgba(246,238,220,0) 70%),var(--cream)}
.jj-hero-copy{display:flex;flex-direction:column;gap:22px;min-width:0;position:relative;z-index:2}
.jj-issue{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.jj-issue span:first-child{color:var(--maroon)}
.jj-hero h1{font-family:var(--display);font-weight:400;font-size:clamp(46px,6.4vw,96px);line-height:.95;letter-spacing:-.01em;max-width:11ch}
.jj-hero h1 em{color:var(--maroon);position:relative;white-space:nowrap}
.jj-hero h1 em::after{content:"";position:absolute;left:2%;right:2%;bottom:.02em;height:.08em;background:repeating-linear-gradient(90deg,var(--haldi) 0 .22em,transparent .22em .34em);border-radius:2px}
.jj-lede{font-size:clamp(17px,1.45vw,20px);line-height:1.5;color:var(--ink-soft);max-width:40ch}
.jj-actions{display:flex;flex-wrap:wrap;gap:12px}
/* hero text appears through CSS only, done well inside 1 s */
.js .jj-hero-copy>*{animation:jjUp .7s var(--ease) both}
.js .jj-hero-copy>*:nth-child(2){animation-delay:.06s}
.js .jj-hero-copy>*:nth-child(3){animation-delay:.12s}
.js .jj-hero-copy>*:nth-child(4){animation-delay:.18s}
.js .jj-hero-copy>*:nth-child(5){animation-delay:.24s}
@keyframes jjUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

.jj-float{display:grid;grid-template-columns:110px 1fr;gap:14px;background:#FFF9EE;padding:12px;border-radius:18px;box-shadow:0 1px 0 var(--line),0 24px 50px -26px rgba(42,23,18,.45);max-width:390px;border:1px solid rgba(140,29,47,.16)}
.jj-fc-art{background:var(--cs-card);border-radius:12px;overflow:hidden;aspect-ratio:1/1;display:grid;place-items:center}
.jj-fc-art svg{width:100%;height:100%}
.jj-fc-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.jj-fc-no{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--maroon)}
.jj-fc-name{font-family:var(--display);font-weight:400;font-size:21px;line-height:1.1;margin-top:2px}
.jj-fc-sub{font-size:13px;color:var(--muted)}
.jj-fc-price{font-weight:800;font-size:16px;margin-top:2px;font-variant-numeric:tabular-nums}
.jj-fc-actions{display:flex;gap:8px;margin-top:auto;padding-top:8px;align-items:center}
.jj-fc-add{flex:1;border:0;background:var(--ink);color:var(--cream);font-weight:700;font-size:13.5px;padding:10px 12px;border-radius:999px;cursor:pointer;transition:background .25s}
.jj-fc-add:hover{background:var(--maroon)}
.jj-fc-heart{position:static;width:38px;height:38px;background:transparent;box-shadow:inset 0 0 0 1.5px var(--line)}
.jj-float.swap .jj-fc-body,.jj-float.swap .jj-fc-art{animation:jjSwap .5s var(--ease)}
@keyframes jjSwap{from{opacity:.2;transform:translateY(6px)}to{opacity:1;transform:none}}

.jj-hero-art{position:relative;min-width:0;display:flex;flex-direction:column;gap:12px}
.jj-stage{position:relative;width:100%;aspect-ratio:1.18/1;max-height:72vh;border-radius:28px;overflow:hidden;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none;
  background:radial-gradient(70% 60% at 50% 38%,#8A2436 0%,#5A1222 55%,#33101A 100%);box-shadow:inset 0 0 0 1px rgba(226,169,42,.25),0 40px 80px -40px rgba(51,16,26,.7)}
.jj-stage.drag{cursor:grabbing}
.jj-stage::after{content:"";position:absolute;inset:10px;border-radius:20px;border:1px dashed rgba(226,169,42,.32);pointer-events:none}
.jj-bigword{position:absolute;left:50%;top:6%;margin-left:-50%;width:100%;text-align:center;font-family:var(--display);font-size:clamp(90px,15vw,230px);line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(242,201,120,.35);pointer-events:none;will-change:transform;white-space:nowrap}
.jj-fallback{position:absolute;inset:8% 6% 2%;display:grid;place-items:center;transition:opacity .6s ease}
.jj-fallback svg{width:100%;height:100%}
.jj-fallback .jj-sew{display:none}
.jj-gl{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .8s ease}
.gl-ready .jj-gl{opacity:1}
.gl-ready .jj-fallback{opacity:0}
.jj-stage-ui{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.jj-styles{display:flex;gap:8px;flex-wrap:wrap}
.jj-styles button{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:#FFF9EE;border-radius:999px;padding:8px 14px 8px 8px;font-weight:700;font-size:13.5px;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.jj-styles button i{width:20px;height:20px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 2px rgba(226,169,42,.8)}
.jj-styles button[aria-pressed="true"]{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.jj-hint{font-size:12.5px;color:var(--muted);font-weight:600}
@media (max-width:900px){
  .jj-hero{grid-template-columns:1fr;min-height:auto;padding-top:84px}
  .jj-hero-art{order:-1}
  .jj-stage{aspect-ratio:1.1/1;max-height:none}
  .jj-float{max-width:none}
}

/* TICKER */
.jj-ticker{background:var(--maroon);color:var(--cream);overflow:hidden;padding:14px 0;font-weight:700;font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.jj-ticker-in{display:flex;gap:28px;width:max-content;animation:jjTick 40s linear infinite}
.jj-ticker i{font-style:normal;color:var(--haldi)}
@keyframes jjTick{to{transform:translateX(-50%)}}

/* SECTIONS */
.sec-head{display:grid;grid-template-columns:auto 1fr;gap:6px 22px;align-items:end;margin-bottom:clamp(26px,4vw,48px)}
.sec-no{font-weight:800;font-size:14px;letter-spacing:.1em;color:var(--maroon);padding-bottom:.7em}
.sec-no.light{color:var(--haldi)}
.sec-head h2,.jj-making h2{font-family:var(--display);font-weight:400;font-size:clamp(42px,6.6vw,100px);line-height:.95;letter-spacing:-.01em}
.sec-note{grid-column:2;max-width:54ch;color:var(--muted)}
@media (max-width:620px){.sec-head{grid-template-columns:1fr}.sec-note{grid-column:1}.sec-no{padding-bottom:0}}

/* SHOP */
.jj-shop{padding:clamp(70px,10vw,130px) var(--gutter)}
.jj-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 0;margin-bottom:26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:sticky;top:64px;z-index:20;background:rgba(246,238,220,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.jj-chips{display:flex;gap:8px;flex-wrap:wrap}
.jj-tool-right{display:flex;gap:18px;align-items:center}
.jj-count{font-size:13px;color:var(--muted);font-weight:600}
.jj-sort{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700}
.jj-sort select{font:inherit;font-weight:600;font-size:14px;padding:9px 30px 9px 14px;border:1.5px solid var(--line);border-radius:999px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232A1712' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 12px center/11px;appearance:none;-webkit-appearance:none;color:var(--ink);cursor:pointer}
.jj-noscript{padding:20px;background:var(--cream-2)}
@media (max-width:620px){.jj-toolbar{position:static}.jj-chips{overflow-x:auto;flex-wrap:nowrap;max-width:100%;padding-bottom:4px}.cs-chip{white-space:nowrap}}

/* cards: the hover reveals stitches instead of swapping the colourway */
.jj-shop .cs-l1{display:none}
.jj-shop .cs-art{background:linear-gradient(180deg,#F1E5CB,#E5D3B0)}
.jj-shop .cs-art::before{content:"";position:absolute;inset:8px;border:1px dashed rgba(140,29,47,.22);border-radius:10px;pointer-events:none;transition:border-color .4s}
.jj-sewm{stroke-dasharray:1 1;stroke-dashoffset:1;transition:stroke-dashoffset .9s cubic-bezier(.5,0,.3,1)}
.cs-card:hover .jj-sewm,.cs-card:focus-within .jj-sewm,.cs-card.jj-in .jj-sewm,.cs-qv-art .jj-sewm{stroke-dashoffset:0}
.cs-card:hover .cs-art::before{border-color:rgba(140,29,47,.5)}
.jj-sew{filter:drop-shadow(0 0 1.2px rgba(255,236,170,.55))}
@media (hover:hover){.cs-card:not(:hover):not(:focus-within) .jj-sewm{transition-duration:.45s;transition-delay:0s!important}}

/* MAKING (pinned) */
.jj-making{position:relative;height:320vh;background:radial-gradient(80% 60% at 70% 50%,#5A1626 0%,var(--night) 70%);color:var(--cream)}
.jj-mk-pin{position:sticky;top:0;height:100vh;display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(24px,4vw,64px);align-items:center;padding:84px var(--gutter) 40px;overflow:hidden}
.jj-making h2{color:var(--cream)}
.jj-making h2 em{color:var(--haldi)}
.jj-steps{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:14px;max-width:46ch}
.jj-step{display:grid;gap:2px;padding-left:16px;border-left:2px solid rgba(246,238,220,.2);opacity:.45;transition:opacity .4s,border-color .4s}
.jj-step b{font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.jj-step span{font-size:15px;color:rgba(246,238,220,.86)}
.jj-step.on{opacity:1;border-color:var(--haldi)}
.jj-mk-stage{position:relative;min-width:0}
.jj-mk-svg{width:100%;height:auto;max-height:62vh;overflow:visible}
.jj-mk-upper,.jj-mk-sole,.jj-needle{transition:transform .25s linear}
.jj-needle{opacity:0;transition:opacity .3s,transform .12s linear;pointer-events:none}
.jj-mk-svg.done .jj-mk-threads{filter:drop-shadow(0 0 2px rgba(255,220,140,.8))}
.jj-mk-meter{margin-top:14px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--haldi);font-variant-numeric:tabular-nums;text-align:center}
@media (max-width:900px){
  .jj-making{height:280vh}
  .jj-mk-pin{grid-template-columns:1fr;align-content:center;gap:16px;padding-top:76px}
  .jj-making h2{font-size:clamp(34px,9vw,60px)}
  .jj-steps{margin-top:14px;gap:6px}
  .jj-step span{display:none}
  .jj-step.on span{display:block;font-size:14px}
  .jj-mk-svg{max-height:34vh}
}

/* FIT */
.jj-fit{padding:clamp(70px,10vw,130px) var(--gutter)}
.jj-fit-grid{display:grid;grid-template-columns:minmax(200px,.7fr) 1.3fr;gap:32px 64px;align-items:center}
.jj-foot-card{background:var(--cream-2);border-radius:24px;padding:28px;display:flex;flex-direction:column;align-items:center;gap:12px}
.jj-foot{width:min(160px,60%);height:auto;overflow:visible}
.jj-foot-shape{transform-origin:50% 100%;transform-box:fill-box;transition:transform .25s var(--ease)}
.jj-foot-cm{font-family:var(--display);font-size:34px;color:var(--maroon);font-variant-numeric:tabular-nums}
.jj-finder{display:flex;flex-direction:column;gap:12px;max-width:620px}
.jj-finder-lbl{font-weight:700}
.jj-finder input[type=range]{width:100%;accent-color:var(--maroon);height:32px}
.jj-range-ends{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);font-weight:600;margin-top:-6px}
.jj-size-out{font-family:var(--display);font-size:clamp(56px,8vw,104px);line-height:1;color:var(--ink)}
.jj-size-note{color:var(--ink-soft);max-width:52ch;min-height:3.1em}
.jj-finder-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
@media (max-width:760px){.jj-fit-grid{grid-template-columns:1fr}}

/* STORY */
.jj-story{padding:clamp(70px,10vw,130px) var(--gutter);background:var(--cream-2)}
.jj-story-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:40px 64px;align-items:start}
.jj-story-text{font-size:clamp(18px,1.7vw,23px);line-height:1.55;color:var(--ink-soft);max-width:46ch}
.jj-facts{margin:0;display:grid}
.jj-facts div{display:flex;align-items:baseline;gap:18px;padding:14px 0;border-bottom:1px solid var(--line)}
.jj-facts dt{font-family:var(--display);font-size:clamp(44px,5vw,72px);line-height:1;color:var(--maroon);min-width:3.4ch;font-variant-numeric:tabular-nums}
.jj-facts dd{margin:0;font-weight:600}
@media (max-width:820px){.jj-story-grid{grid-template-columns:1fr}}

/* reveal */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .rv.in{opacity:1;transform:none}

/* FOOTER */
.jj-foot-bar{background:var(--night);color:var(--cream);padding:60px var(--gutter) 90px;overflow:hidden}
.jj-foot-big{font-family:var(--display);font-size:12vw;line-height:.9;white-space:nowrap;color:var(--haldi)}
.jj-foot-row{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:36px;font-size:14.5px}
.jj-foot-bar address{font-style:normal;opacity:.85;line-height:1.7}
.jj-foot-bar nav{display:flex;gap:22px;flex-wrap:wrap;align-items:center}
.jj-foot-bar nav a,.jj-foot-bar .navlink{opacity:.85;text-decoration:none;color:var(--cream)}
.jj-foot-bar nav a:hover,.jj-foot-bar .navlink:hover{opacity:1}

/* SIZE GUIDE */
.jj-size-modal{z-index:95}
.jj-sg-card{width:min(720px,100%);padding:clamp(24px,4vw,44px)}
.jj-sg-card h2{font-family:var(--display);font-weight:400;font-size:clamp(30px,4vw,46px);line-height:1;margin:6px 0 18px;padding-right:40px}
.jj-sg-unit{display:inline-flex;border:1.5px solid var(--ink);border-radius:999px;overflow:hidden;margin-bottom:16px}
.jj-sg-unit button{border:0;background:transparent;padding:8px 14px;font-weight:700;font-size:13px;cursor:pointer}
.jj-sg-unit button[aria-pressed="true"]{background:var(--ink);color:var(--cream)}
.jj-sg-wrap{overflow-x:auto}
.jj-sg-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;min-width:420px}
.jj-sg-table th,.jj-sg-table td{padding:10px;text-align:left;border-bottom:1px solid var(--line);font-size:14.5px}
.jj-sg-table thead th{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.jj-sg-table tbody tr:hover{background:rgba(140,29,47,.06)}
.jj-sg-how{margin:16px 0 0;padding-left:20px;display:grid;gap:6px;font-size:14.5px}

/* concept badge */
.concept-badge{position:fixed;left:14px;bottom:14px;z-index:60;font-size:12px;font-weight:700;text-decoration:none;background:rgba(42,23,18,.9);color:var(--cream);padding:8px 12px;border-radius:999px}
.concept-badge:hover{background:var(--maroon)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .jj-hero-copy>*,.jj-ticker-in{animation:none}
  .js .rv{opacity:1;transform:none;transition:none}
  .jj-sewm{stroke-dashoffset:0;transition:none}
  .jj-making{height:auto}
  .jj-mk-pin{position:relative;height:auto;min-height:100vh}
  .jj-mk-upper,.jj-mk-sole,.jj-needle,.jj-foot-shape{transition:none}
}
/* making photos: a warm gold glow once the pair is finished */
.jj-mk-svg .mk-ph-done{transition:filter .5s}
.jj-mk-svg.done .mk-ph-done{filter:drop-shadow(0 0 6px rgba(255,214,130,.35))}
