/* Kannapolis Web Design & SEO: "Towel Mill Loom" */
@font-face{font-family:"Hanken Grotesk";src:url(/fonts/hanken-grotesk-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Spectral";src:url(/fonts/spectral-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Spectral";src:url(/fonts/spectral-400i.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}

:root{
 --cotton:#FAF7F0;--cotton2:#F1EADD;--white:#FFFDF9;
 --ink:#1D2848;--ink2:#131A31;--text:#252E47;--muted:#4C546D;
 --brick:#B0432C;--brick2:#96361F;--mint:#7ED9C3;--mint-d:#17705F;--mint-l:#CDEFE6;
 --line:#D8CEBE;--ctl:#6B7290;
 --serif:"Spectral",Georgia,"Times New Roman",serif;
 --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
 --weave:repeating-linear-gradient(0deg,rgba(29,40,72,.035) 0 2px,transparent 2px 6px),repeating-linear-gradient(90deg,rgba(29,40,72,.035) 0 2px,transparent 2px 6px);
 --ease:cubic-bezier(.65,0,.25,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body{margin:0;background:var(--cotton);background-image:var(--weave);color:var(--text);font:400 1.0625rem/1.66 var(--sans);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--brick2);text-underline-offset:3px;text-decoration-thickness:1.5px}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--mint-d);outline-offset:3px;border-radius:3px}
h1,h2,h3{font-family:var(--serif);font-weight:600;color:var(--ink);line-height:1.12;margin:0 0 .5em;letter-spacing:-.01em}
h2 em,h1 em{font-style:italic;font-weight:400;color:var(--brick)}
p{margin:0 0 1.05em}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--ink);color:var(--cotton);padding:10px 16px;border-radius:6px}
.skip:focus{top:12px;color:var(--cotton)}
.loom{width:min(1180px,100% - 32px);margin-inline:auto}
.narrow{width:min(760px,100% - 32px);margin-inline:auto}

/* ---------- buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:50px;padding:0 24px;border-radius:7px;font:700 1rem/1.1 var(--sans);text-decoration:none;border:2px solid transparent;position:relative;transition:transform .2s var(--ease),background-color .2s,box-shadow .2s;cursor:pointer}
.btn .arw{width:18px;height:18px;transition:transform .2s var(--ease)}
.btn:hover .arw{transform:translateX(4px)}
.btn::after{content:"";position:absolute;inset:4px;border:1.5px dashed transparent;border-radius:4px;pointer-events:none;transition:border-color .2s}
.btn:hover::after{border-color:rgba(255,253,249,.55)}
a.btn-brick,.btn-brick{background:var(--brick);color:#fff;box-shadow:0 3px 0 var(--brick2)}
a.btn-brick:hover,.btn-brick:hover{background:var(--brick2);color:#fff;transform:translateY(-1px)}
a.btn-navy,button.btn-navy{background:var(--ink);color:var(--cotton);box-shadow:0 3px 0 var(--ink2)}
a.btn-navy:hover,button.btn-navy:hover{background:var(--ink2);color:#fff}
a.btn-line{border-color:var(--ink);color:var(--ink);background:transparent}
a.btn-line:hover{background:var(--ink);color:var(--cotton)}
.btn-full{width:100%}
.kick{font:700 .78rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brick2);margin:0 0 .8em;display:flex;align-items:center;gap:10px}
.kick::before{content:"";width:26px;height:6px;flex:none;background:linear-gradient(90deg,currentColor 50%,transparent 0) 0 0/8px 3px repeat-x,linear-gradient(90deg,transparent 50%,currentColor 0) 0 3px/8px 3px repeat-x}
.kick-mint{color:var(--mint)}
.lead{font-size:1.125rem;color:var(--muted);max-width:62ch}

/* ---------- header */
.hd{position:sticky;top:0;z-index:60;background:rgba(250,247,240,.94);backdrop-filter:saturate(1.2) blur(8px);-webkit-backdrop-filter:saturate(1.2) blur(8px);transition:box-shadow .25s}
.hd.lift{box-shadow:0 8px 24px -14px rgba(19,26,49,.35)}
.hd-in{width:min(1240px,100% - 32px);margin-inline:auto;height:70px;display:flex;align-items:center;gap:18px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);margin-right:auto;min-height:44px}
.brand .mark{width:40px;height:40px;flex:none}
.brand-t{font:600 1.24rem/1 var(--serif);color:var(--ink);display:flex;flex-direction:column;gap:3px}
.brand-t small{font:700 .66rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.hd-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.hd-nav a{display:flex;align-items:center;min-height:44px;padding:0 12px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem;position:relative}
.hd-nav a::after{content:"";position:absolute;left:12px;right:12px;bottom:8px;height:3px;background:linear-gradient(90deg,var(--brick) 50%,var(--mint-d) 0) 0 0/10px 3px;transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.hd-nav a:hover::after,.hd-nav a[aria-current]::after{transform:scaleX(1)}
.hd-quote{display:none;align-items:center;min-height:44px;padding:0 18px;border-radius:7px;background:var(--brick);color:#fff;font-weight:700;text-decoration:none;font-size:.95rem}
a.hd-quote:hover{background:var(--brick2);color:#fff}
.hd-menu{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 16px 0 14px;border:2px solid var(--ink);border-radius:7px;background:var(--white);color:var(--ink);font:700 .95rem/1 var(--sans);cursor:pointer}
.hd-menu:hover{background:var(--ink);color:var(--cotton)}
.hm-bars{display:grid;gap:4px;width:18px}
.hm-bars i{display:block;height:2.4px;background:currentColor;border-radius:2px}
.hm-bars i:nth-child(2){width:70%;margin-left:30%}
.weave{height:8px;background:linear-gradient(90deg,var(--ink) 50%,var(--brick) 0) 0 0/28px 4px repeat-x,linear-gradient(90deg,var(--mint-d) 50%,var(--ink) 0) 14px 4px/28px 4px repeat-x;animation:drift 40s linear infinite}
@keyframes drift{to{background-position:280px 0,294px 4px}}
@media (min-width:600px){.hd-quote{display:flex}}
@media (max-width:1079px){.hd-nav{display:none}}

/* ---------- ribbon menu */
.shade{position:fixed;inset:0;z-index:80;background:rgba(19,26,49,.55);opacity:0;transition:opacity .35s}
.shade.open{opacity:1}
.ribbon{position:fixed;z-index:90;left:0;top:0;bottom:0;width:318px;max-width:88vw;background:var(--ink);color:var(--cotton);display:flex;flex-direction:column;transform:translateX(-104%);transition:transform .42s var(--ease);
 background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 2px,transparent 2px 5px),repeating-linear-gradient(0deg,rgba(0,0,0,.12) 0 2px,transparent 2px 5px)}
.ribbon::before{content:"";position:absolute;inset:8px;border:1.5px dashed rgba(126,217,195,.45);border-radius:4px;pointer-events:none}
.ribbon.open{transform:none}
.ribbon[hidden],.shade[hidden]{display:none}
.rb-head{display:flex;align-items:flex-start;justify-content:space-between;padding:26px 22px 14px 24px;position:relative}
.rb-t{font:600 1.35rem/1.1 var(--serif);margin:0;color:var(--cotton)}
.rb-t span{display:block;font:600 .74rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mint);margin-top:6px}
.rb-x{width:46px;height:46px;border-radius:50%;border:1.5px solid rgba(250,247,240,.5);background:transparent;color:var(--cotton);display:grid;place-items:center;cursor:pointer;position:relative}
.rb-x svg{width:20px;height:20px}
.rb-x:hover{background:var(--brick);border-color:var(--brick)}
.ribbon nav{flex:1;overflow-y:auto;padding:4px 0 10px;position:relative}
.rb-list{list-style:none;margin:0;padding:0 0 0 0;display:flex;flex-direction:column;gap:6px}
.rb-list li{transform:translateX(-24px);transition:transform .45s var(--ease);transition-delay:calc(var(--i)*28ms + 80ms)}
.ribbon.open .rb-list li{transform:none}
.tab{display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;min-height:48px;padding:7px 34px 7px 22px;margin-right:26px;background:var(--cotton);color:var(--ink);text-decoration:none;position:relative;
 clip-path:polygon(0 0,100% 0,calc(100% - 14px) 50%,100% 100%,0 100%);transition:margin-right .25s var(--ease),background-color .2s}
.tab::before{content:"";position:absolute;inset:4px 18px 4px 6px;border-top:1.5px dashed rgba(29,40,72,.3);border-bottom:1.5px dashed rgba(29,40,72,.3);pointer-events:none}
.rb-list li:nth-child(even) .tab{background:var(--cotton2)}
.tab:hover,.tab:focus-visible{margin-right:8px;color:var(--ink)}
.tab[aria-current]{background:var(--brick)!important;color:#fff}
.tab[aria-current]::before{border-color:rgba(255,255,255,.5)}
.tab[aria-current] .tab-n,.tab[aria-current] .tab-no{color:#FCE9E3}
.tab:focus-visible{outline:3px solid var(--mint);outline-offset:-3px}
.tab-no{grid-row:1/3;font:700 .7rem/1 var(--sans);letter-spacing:.06em;color:var(--brick2)}
.tab-t{font:700 1.02rem/1.15 var(--sans)}
.tab-n{font-size:.78rem;line-height:1.2;color:var(--muted)}
.rb-foot{padding:14px 24px 26px;display:flex;flex-direction:column;gap:6px;position:relative}
.rb-foot a{color:var(--cotton);text-decoration:none;display:flex;align-items:center;gap:8px;min-height:44px;font-weight:600}
.rb-foot a:hover{color:var(--mint)}
.rb-foot .ph{width:18px;height:18px;color:var(--mint)}
.rb-mail{font-size:.86rem;overflow-wrap:anywhere}
@media (max-width:759px){
 .ribbon{top:auto;right:0;width:100%;max-width:none;max-height:86vh;border-radius:18px 18px 0 0;transform:translateY(104%)}
 .ribbon::before{border-radius:12px}
 .rb-head{padding:22px 20px 10px}
 .rb-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 16px}
 .rb-list li{transform:translateY(16px)}
 .tab{grid-template-columns:1fr;margin-right:0;padding:8px 22px 8px 12px;min-height:56px}
 .tab-no{grid-row:auto;font-size:.64rem}
 .tab-n{display:none}
 .tab:hover,.tab:focus-visible{margin-right:0}
 .rb-foot{flex-direction:row;flex-wrap:wrap;column-gap:18px;padding:10px 20px calc(18px + env(safe-area-inset-bottom))}
}

/* ---------- phone contact bar */
.selv{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:var(--ink);border-top:4px solid transparent;border-image:linear-gradient(90deg,var(--brick) 50%,var(--mint) 0) 0 0 100% 0/4px 0 0 0 stretch}
.selv a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border-radius:7px;font-weight:700;text-decoration:none}
.selv-call{color:var(--cotton);border:1.5px solid rgba(250,247,240,.5)}
a.selv-call:hover{color:var(--mint)}
.selv-call .ph{width:17px;height:17px}
a.selv-q{background:var(--brick);color:#fff}
a.selv-q:hover{color:#fff;background:var(--brick2)}
.selv .arw{width:17px;height:17px}
@media (max-width:759px){body{padding-bottom:68px}}
@media (min-width:760px){.selv{display:none}}

/* ---------- hero */
.hero{position:relative;border-bottom:1px solid var(--line)}
.hero-grid{display:grid}
.hero-txt{padding:34px 16px 30px;width:min(640px,100%);margin-inline:auto}
.hero h1{font-size:clamp(2.15rem,7.4vw,3.85rem);line-height:1.04;margin-bottom:.45em}
.h1-a{display:block}
.h1-b{display:block;font-style:italic;font-weight:400;color:var(--brick);background:linear-gradient(90deg,var(--mint) 50%,transparent 0) 0 100%/12px 4px repeat-x;padding-bottom:6px}
.hero-lead{font-size:1.14rem;color:var(--muted);max-width:56ch}
.hero-acts{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 16px}
.hero-note{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:.95rem;color:var(--muted);margin:0}
.hero-note .ph{width:17px;height:17px;color:var(--brick)}
.hero-note a{font-weight:700;color:var(--ink);min-height:44px;display:inline-flex;align-items:center}
.hero-ph{margin:0;position:relative}
.hp-frame{position:relative;overflow:hidden;aspect-ratio:2200/1579;background:var(--ink)}
.hp-frame img{width:100%;height:100%;object-fit:cover}
.hp-frame::before{content:"";position:absolute;z-index:2;left:0;top:0;bottom:0;width:10px;background:linear-gradient(0deg,var(--ink) 50%,var(--brick) 0) 0 0/10px 20px,linear-gradient(0deg,var(--mint) 50%,var(--ink) 0) 5px 10px/5px 20px;background-repeat:repeat-y}
.strips{position:absolute;inset:0;z-index:1;pointer-events:none}
.strips i{position:absolute;left:0;right:0;top:calc(var(--i)*12.5%);height:calc(12.5% + 1px);background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 2px,transparent 2px 6px);animation:unweave 1.05s var(--ease) forwards;animation-delay:calc(.12s + var(--i)*.085s)}
.strips i:nth-child(4n+1){background-color:var(--ink)}
.strips i:nth-child(4n+2){background-color:var(--brick)}
.strips i:nth-child(4n+3){background-color:var(--cotton2);background-image:repeating-linear-gradient(90deg,rgba(29,40,72,.08) 0 2px,transparent 2px 6px)}
.strips i:nth-child(4n){background-color:var(--mint-d)}
.strips i:nth-child(even){--to:101%}
@keyframes unweave{from{transform:translateX(0)}to{transform:translateX(var(--to,-101%))}}
.credit{font-size:.74rem;line-height:1.45;color:var(--muted);padding:8px 16px 10px;margin:0}
.credit a{color:var(--muted)}
@media (min-width:900px){
 .hero-grid{grid-template-columns:minmax(0,43fr) minmax(0,57fr);min-height:min(660px,calc(100vh - 78px))}
 .hero-txt{align-self:center;padding:48px 40px 48px max(16px,calc((100vw - 1180px)/2));width:auto;margin:0}
 .hero-ph{display:flex;flex-direction:column}
 .hp-frame{flex:1;aspect-ratio:auto;min-height:480px}
 .hero-ph .credit{padding:8px 16px}
}

/* ---------- sections */
.sec{padding:clamp(56px,8vw,100px) 0}
.sec-tight{padding:48px 0 70px}
.sec-cotton{background:var(--cotton2);background-image:var(--weave)}
.sec-navy{background:var(--ink);color:#E6E9F2;background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 2px,transparent 2px 6px)}
.sec-navy h2,.sec-navy h3{color:var(--cotton)}
.sec-navy h2 em{color:var(--mint)}
.sec-navy .lead{color:#C9CEDD}
.sec-navy .lead a{color:var(--mint)}
.sec-h{margin-bottom:38px;max-width:760px}
.sec-h h2{font-size:clamp(1.85rem,4.4vw,2.9rem)}
.after{margin:34px 0 0}
.after-q{margin-top:26px}
[data-in]{transition:transform .7s var(--ease);transition-delay:var(--d,0ms)}
.js [data-in]:not(.on){transform:translateY(18px)}

/* ---------- thread count */
.threads{background:var(--ink);color:var(--cotton);padding:52px 0 40px;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 2px,transparent 2px 6px),repeating-linear-gradient(90deg,rgba(0,0,0,.14) 0 2px,transparent 2px 6px)}
.tc-head h2{color:var(--cotton);font-size:clamp(1.45rem,3.4vw,2rem);margin-bottom:26px}
.tc-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0}
.tc{padding:18px 14px 18px 0;border-top:1.5px dashed rgba(126,217,195,.4);position:relative}
.tc:last-child{grid-column:1/-1}
.tc-spool{display:block;width:30px;height:22px;margin-bottom:10px;border-radius:3px;background:linear-gradient(90deg,var(--cotton) 0 4px,transparent 4px calc(100% - 4px),var(--cotton) 0),repeating-linear-gradient(0deg,var(--mint) 0 2px,var(--mint-d) 2px 4px);background-clip:padding-box}
.tc:nth-child(2) .tc-spool{background:linear-gradient(90deg,var(--cotton) 0 4px,transparent 4px calc(100% - 4px),var(--cotton) 0),repeating-linear-gradient(0deg,#E27A62 0 2px,var(--brick) 2px 4px)}
.tc:nth-child(4) .tc-spool{background:linear-gradient(90deg,var(--cotton) 0 4px,transparent 4px calc(100% - 4px),var(--cotton) 0),repeating-linear-gradient(0deg,#F1EADD 0 2px,#BFB3A0 2px 4px)}
.tc-n{font:600 clamp(2rem,5vw,2.7rem)/1 var(--serif);margin:0 0 8px;color:var(--cotton);font-variant-numeric:tabular-nums}
.tc-n small{font:700 .8rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--mint)}
.tc-l{font-size:.92rem;line-height:1.4;color:#D3D8E6;margin:0;max-width:24ch}
.tc-src{font-size:.8rem;color:#C2C8D8;margin:22px 0 0}
.tc-src a{color:var(--mint)}
@media (min-width:900px){.tc-row{grid-template-columns:repeat(5,1fr)}.tc:last-child{grid-column:auto}.tc{padding:20px 18px 6px;border-top:0;border-left:1.5px dashed rgba(126,217,195,.4)}.tc:first-child{border-left:0;padding-left:0}}

/* ---------- folded-towel services */
.towels{display:grid;gap:44px 30px}
.tw{position:relative;background:var(--white);border-radius:10px;border:1px solid var(--line);--s1:var(--ink);--s2:#3A4A78;--s3:#5E6E9C;
 box-shadow:0 7px 0 -1px var(--s1),0 14px 0 -3px var(--s2),0 21px 0 -5px var(--s3);transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .2s}
.tw-2{--s1:var(--brick);--s2:#CB6A52;--s3:#E09A87}
.tw-3{--s1:var(--mint-d);--s2:#3FA58D;--s3:var(--mint)}
.tw-4{--s1:#BFB3A0;--s2:#D5CBBB;--s3:#E7DFD1}
.tw:hover,.tw:focus-within{transform:translateY(-5px);box-shadow:0 10px 0 -1px var(--s1),0 20px 0 -3px var(--s2),0 30px 0 -5px var(--s3)}
.tw-fold{position:relative;height:54px;border-radius:10px 10px 0 0;background:var(--s1);overflow:hidden;display:flex;align-items:center;padding:0 20px}
.tw-fold::after{content:"";position:absolute;left:0;right:0;bottom:0;height:12px;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.22))}
.tw-dobby{position:absolute;left:0;right:0;top:14px;height:16px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 3px,transparent 3px 7px),linear-gradient(180deg,rgba(255,255,255,.28) 0 2px,transparent 2px 14px,rgba(255,255,255,.28) 14px)}
.tw-no{position:relative;margin-left:auto;background:var(--white);color:var(--ink);font:700 .72rem/1 var(--sans);letter-spacing:.12em;padding:6px 10px;border-radius:3px}
.tw-body{padding:22px 22px 24px}
.tw h3{font-size:1.6rem;margin-bottom:.35em}
.tw h3 a{color:var(--ink);text-decoration:none}
.tw h3 a::after{content:"";position:absolute;inset:0;border-radius:10px}
.tw h3 a:focus-visible{outline:none}
.tw:focus-within{outline:3px solid var(--mint-d);outline-offset:4px}
.tw p{color:var(--muted);margin-bottom:.8em}
.tw ul{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:6px}
.tw li{font-size:.84rem;font-weight:600;color:var(--ink);background:var(--cotton);border:1px dashed #A99E8C;border-radius:4px;padding:4px 9px}
.tw-go{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--brick2);margin:0}
.tw-go .arw{width:18px;height:18px;transition:transform .25s var(--ease)}
.tw:hover .tw-go .arw{transform:translateX(5px)}
@media (min-width:760px){.towels{grid-template-columns:1fr 1fr;gap:56px 34px}}

/* ---------- story + origin label */
.story{display:grid;gap:42px;align-items:start}
.story-txt h2{font-size:clamp(1.85rem,4.4vw,2.7rem)}
.story-ph{margin:26px 0 0;border-radius:8px;overflow:hidden;background:var(--white);border:1px solid var(--line)}
.origin{background:var(--white);border:2px solid var(--ink);padding:26px 24px 20px;position:relative;transform:rotate(-1deg);box-shadow:8px 8px 0 var(--ink)}
.origin::before{content:"";position:absolute;inset:7px;border:1.5px dashed rgba(176,67,44,.55);pointer-events:none}
.or-top{font:700 .78rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--brick2);text-align:center;margin:0 0 6px}
.or-sub{font:italic 400 1.2rem/1.2 var(--serif);text-align:center;color:var(--ink);margin:0 0 16px}
.origin ol{list-style:none;margin:0;padding:0}
.origin li{display:grid;grid-template-columns:62px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:.93rem;line-height:1.45}
.or-y{font:600 1.1rem/1.3 var(--serif);color:var(--brick2)}
.or-care{margin:12px 0 0;text-align:center;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@media (min-width:980px){.story{grid-template-columns:1.25fr .8fr;gap:64px}.origin{margin-top:40px}}

/* ---------- loom shuttle process */
.loomrun{position:relative;--p:0}
.lr-warp{position:absolute;left:10px;top:0;bottom:0;width:34px;background:repeating-linear-gradient(90deg,#B8AC98 0 2px,transparent 2px 8px)}
.lr-weft{position:absolute;left:0;right:0;top:0;height:calc(var(--p)*100%);background:repeating-linear-gradient(0deg,var(--brick) 0 3px,transparent 3px 7px);opacity:.85}
.lr-shut{position:absolute;left:50%;top:calc(var(--p)*(100% - 90px));width:90px;height:26px;margin-left:-45px;transform:translateY(32px) rotate(90deg);transition:top .12s linear}
.lr-shut .shut{width:90px;height:26px;display:block;filter:drop-shadow(0 3px 3px rgba(19,26,49,.3))}
.pks{list-style:none;margin:0;padding:0 0 0 70px;display:grid;gap:26px}
.pk{position:relative;background:var(--white);border:1px solid var(--line);border-radius:8px;padding:20px 20px 16px}
.pk-n{position:absolute;left:-58px;top:16px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--cotton);border:2px solid var(--ink);font:600 1.15rem/1 var(--serif);color:var(--ink);transition:background-color .3s,color .3s,border-color .3s}
.pk.hit .pk-n,.done .pk-n{background:var(--brick);border-color:var(--brick);color:#fff}
.pk h3{font-size:1.4rem;margin-bottom:.3em}
.pk p{margin:0;color:var(--muted)}
@media (min-width:900px){
 .lr-warp{position:relative;left:0;width:auto;height:36px;margin:0 0 30px;background:repeating-linear-gradient(0deg,#B8AC98 0 2px,transparent 2px 8px)}
 .lr-weft{top:0;bottom:0;height:auto;width:calc(var(--p)*100%);background:repeating-linear-gradient(90deg,var(--brick) 0 3px,transparent 3px 7px)}
 .lr-shut{left:calc(var(--p)*(100% - 90px));top:5px;margin-left:0;transform:none;transition:left .12s linear}
 .pks{grid-template-columns:repeat(4,1fr);padding:0;gap:20px}
 .pk{padding-top:62px}
 .pk-n{left:20px;top:14px}
}

/* ---------- fabric swatch pricing */
.swatches{display:grid;gap:30px}
.sw{position:relative;display:flex;flex-direction:column;filter:drop-shadow(0 10px 18px rgba(19,26,49,.12))}
.sw-cloth{position:relative;height:118px;border-radius:10px 10px 0 0;
 -webkit-mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/18px 100%;mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/18px 100%}
.sw-st .sw-cloth{background:repeating-conic-gradient(#E9E1D2 0 25%,#FFFDF9 0 50%) 0 0/12px 12px}
.sw-gr .sw-cloth{background:repeating-linear-gradient(45deg,var(--brick) 0 5px,#C9624A 5px 8px,var(--brick2) 8px 12px)}
.sw-cu .sw-cloth{background:radial-gradient(circle at 50% 50%,var(--mint) 0 3px,transparent 3.5px) 0 0/18px 18px,repeating-conic-gradient(var(--ink) 0 25%,#27355E 0 50%) 0 0/9px 9px}
.sw-hole{position:absolute;left:18px;top:16px;width:20px;height:20px;border-radius:50%;background:var(--cotton);box-shadow:inset 0 0 0 3px rgba(19,26,49,.25)}
.sw-weave{position:absolute;right:14px;top:14px;background:var(--white);color:var(--ink);font:700 .7rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:6px 9px;border-radius:3px}
.sw-card{flex:1;background:var(--white);border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;padding:22px 24px 24px;margin-top:-10px;padding-top:30px}
.sw-gr .sw-card{border:2px solid var(--brick);border-top:0}
.sw-flag{display:inline-block;background:var(--brick);color:#fff;font:700 .72rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border-radius:3px;margin:0 0 10px}
.sw h3{font-size:1.7rem;margin-bottom:.15em}
.sw-price{font:600 2.3rem/1.05 var(--serif);color:var(--ink);margin:0 0 4px}
.sw-host{font-size:.9rem;color:var(--muted);margin:0 0 16px;padding-bottom:14px;border-bottom:1.5px dashed var(--line)}
.sw ul{list-style:none;margin:0 0 14px;padding:0}
.sw li{position:relative;padding:5px 0 5px 26px;font-size:.97rem}
.sw li::before{content:"";position:absolute;left:0;top:14px;width:16px;height:4px;background:linear-gradient(90deg,var(--brick) 0 5px,transparent 5px 9px,var(--brick) 9px 14px)}
.sw-fit{font-size:.92rem;color:var(--muted);margin:0;font-style:normal}
@media (min-width:900px){.swatches{grid-template-columns:repeat(3,1fr);gap:26px;align-items:stretch}}

/* ---------- projects */
.projs{display:grid;gap:26px}
.pj{background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}
.pj-img{background:var(--cotton2);border-bottom:6px solid transparent;border-image:linear-gradient(90deg,var(--ink) 33%,var(--brick) 0 66%,var(--mint-d) 0) 1}
.pj-b{padding:20px 22px 22px}
.pj-loc{font:700 .8rem/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--mint-d);margin:0 0 8px}
.pj h3{font-size:1.45rem;margin-bottom:.35em}
.pj p:last-child{margin:0;color:var(--muted);font-size:.97rem}
@media (min-width:860px){.projs{grid-template-columns:repeat(3,1fr)}}

/* ---------- embroidered labels */
.labs{display:grid;gap:30px}
.lab{margin:0;position:relative;padding:0 14px}
.lab::before,.lab::after{content:"";position:absolute;top:0;width:14px;height:28px;background:#C9BFAE}
.lab::before{left:0;clip-path:polygon(100% 0,100% 100%,0 0)}
.lab::after{right:0;clip-path:polygon(0 0,0 100%,100% 0)}
.lab-cloth{position:relative;height:100%;background:linear-gradient(160deg,#FFFDF9,#F3EDE2);color:var(--ink);padding:26px 24px 22px;border-radius:2px;
 background-image:repeating-linear-gradient(0deg,rgba(29,40,72,.03) 0 1px,transparent 1px 3px),linear-gradient(160deg,#FFFDF9,#F3EDE2)}
.lab-cloth::before{content:"";position:absolute;inset:8px;border:2px dashed var(--brick);border-radius:2px;pointer-events:none}
.lab-2 .lab-cloth::before{border-color:var(--mint-d)}
.lab-top{font:700 .68rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--brick2);margin:0 0 14px;text-align:center}
.lab blockquote{margin:0 0 16px}
.lab blockquote p{font:italic 400 1.14rem/1.5 var(--serif);margin:0;color:var(--ink)}
.lab figcaption{text-align:center}
.lab-by{display:inline-block;font:700 .84rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);padding:8px 0;border-top:2px dotted var(--ink)}
@media (min-width:900px){.labs{grid-template-columns:1fr 1.25fr 1fr;align-items:stretch}}

/* ---------- FAQ */
.knots{border-top:2px solid var(--ink)}
.knot{border-bottom:1.5px dashed #B3A792}
.knot summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;min-height:56px;padding:14px 0;font:700 1.06rem/1.35 var(--sans);color:var(--ink)}
.knot summary::-webkit-details-marker{display:none}
.kn-q{flex:1}
.kn-ic{position:relative;width:30px;height:30px;flex:none;border-radius:50%;border:2px solid var(--ink)}
.kn-ic::before,.kn-ic::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;background:var(--ink);transition:transform .25s var(--ease)}
.kn-ic::after{transform:rotate(90deg)}
.knot[open] .kn-ic{background:var(--brick);border-color:var(--brick)}
.knot[open] .kn-ic::before,.knot[open] .kn-ic::after{background:#fff}
.knot[open] .kn-ic::after{transform:rotate(0)}
.kn-a p{margin:0 0 18px;color:var(--muted);max-width:66ch}

/* ---------- CTA bolt */
.bolt{padding:20px 0 70px}
.bolt-in{position:relative;background:var(--ink);color:#E0E4EF;border-radius:12px;padding:34px 24px 30px;overflow:hidden;display:grid;gap:22px}
.bolt-in::after{content:"";position:absolute;right:0;top:0;bottom:0;width:22px;background:repeating-linear-gradient(0deg,var(--cotton) 0 3px,transparent 3px 7px),repeating-linear-gradient(0deg,var(--brick) 0 7px,var(--mint-d) 7px 14px)}
.bolt h2{color:var(--cotton);font-size:clamp(1.6rem,3.6vw,2.3rem)}
.bolt-txt p{color:#C9CEDD;max-width:60ch;margin:0}
.bolt-act{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding-right:16px}
.bolt-tel{display:inline-flex;align-items:center;gap:8px;color:var(--cotton);font-weight:700;text-decoration:none;min-height:44px}
.bolt-tel .ph{width:18px;height:18px;color:var(--mint)}
a.bolt-tel:hover{color:var(--mint)}
@media (min-width:900px){.bolt-in{grid-template-columns:1.5fr 1fr;align-items:center;padding:46px 60px 46px 46px}.bolt-act{justify-content:flex-end}}

/* ---------- inner page head */
.ph-head{background:var(--cotton2);background-image:var(--weave);padding:30px 0 0}
.ph-in{padding-bottom:36px}
.crumbs{font-size:.88rem;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-bottom:22px}
.crumbs a{color:var(--muted);min-height:32px;display:inline-flex;align-items:center}
.crumbs [aria-current]{color:var(--ink);font-weight:600}
.bc-sep{color:#8F877A}
.ph-lbl{display:flex;align-items:center;gap:10px;font:700 .78rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brick2);margin:0 0 14px}
.ph-dot{width:12px;height:12px;border-radius:2px;background:linear-gradient(90deg,var(--brick) 50%,var(--ink) 0) 0 0/6px 6px,linear-gradient(90deg,var(--ink) 50%,var(--brick) 0) 0 6px/6px 6px;background-repeat:repeat-x}
.ph-head h1{font-size:clamp(2.1rem,6vw,3.6rem);max-width:20ch}
.ph-sub{font-size:1.14rem;color:var(--muted);max-width:60ch;margin:0}
.ph-band{height:14px;background:repeating-conic-gradient(var(--ink) 0 25%,var(--brick) 0 50%) 0 0/14px 14px;position:relative}
.ph-band::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.14) 0 1px,transparent 1px 3.5px)}

/* ---------- prose */
.pr-sec{padding:50px 0 30px}
.pr-grid{display:grid;gap:40px}
.pr h2{font-size:clamp(1.55rem,3.4vw,2rem);margin-top:1.6em}
.pr h3{font-size:1.25rem}
.pr > :first-child{margin-top:0}
.lede{font-size:1.24rem;line-height:1.55;color:var(--ink)}
.stitch{list-style:none;margin:0 0 1.2em;padding:0}
.stitch li{position:relative;padding:7px 0 7px 32px;border-bottom:1px solid rgba(216,206,190,.7)}
.stitch li::before{content:"";position:absolute;left:0;top:18px;width:20px;height:4px;background:linear-gradient(90deg,var(--brick) 0 6px,transparent 6px 10px,var(--brick) 10px 16px)}
.stitch b{color:var(--ink)}
.note{background:var(--white);border:1px solid var(--line);border-left:10px solid transparent;border-image:none;padding:20px 22px;margin:28px 0;position:relative;border-radius:0 8px 8px 0}
.note::before{content:"";position:absolute;left:-10px;top:-1px;bottom:-1px;width:10px;background:linear-gradient(0deg,var(--ink) 50%,var(--brick) 0) 0 0/10px 16px}
.note p:last-child{margin:0}
.wide{width:min(1120px,100vw - 32px);margin:26px 0 30px}
.narrow .wide{margin-left:calc(50% - min(560px,50vw - 16px))}
.pr-grid .wide{width:100%;margin-left:0}
.shot{margin:28px 0;background:var(--white);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.shot .credit{padding:9px 14px}
.gl{margin:0 0 1.2em;display:grid;gap:10px}
.gl-row{display:grid;gap:4px;background:var(--white);border:1px solid var(--line);border-radius:6px;padding:14px 16px;position:relative}
.gl-row::before{content:"";position:absolute;left:-1px;top:14px;width:5px;height:22px;background:var(--mint-d);border-radius:0 3px 3px 0}
.gl dt{font-weight:700;color:var(--ink)}
.gl dd{margin:0;color:var(--muted);font-size:.97rem}
.tag-card{position:relative;background:var(--white);border:2px solid var(--ink);border-radius:10px;padding:46px 22px 22px;margin-top:18px}
.tag-card::before{content:"";position:absolute;left:50%;top:14px;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--cotton);box-shadow:inset 0 0 0 3px var(--ink)}
.tag-card::after{content:"";position:absolute;left:50%;top:-22px;width:2px;height:40px;background:var(--brick);transform:rotate(18deg);transform-origin:bottom}
.tag-h{font:600 1.35rem/1.2 var(--serif);color:var(--ink);text-align:center;margin:0 0 12px}
.tag-card ul{list-style:none;margin:0 0 18px;padding:0}
.tag-card li{padding:9px 0 9px 26px;border-bottom:1.5px dashed var(--line);position:relative;font-size:.95rem}
.tag-card li::before{content:"";position:absolute;left:2px;top:17px;width:12px;height:6px;border-left:2.5px solid var(--mint-d);border-bottom:2.5px solid var(--mint-d);transform:rotate(-45deg)}
.tag-tel{text-align:center;margin:12px 0 0;font-size:.92rem}
@media (min-width:1000px){.pr-grid{grid-template-columns:minmax(0,1fr) 300px;gap:64px}.pr-side{position:relative}.tag-card{position:sticky;top:110px}.pr{max-width:760px}}

/* ---------- quote form */
.qgrid{display:grid;gap:40px}
.qwrap{background:var(--white);border:2px solid var(--ink);border-radius:12px;padding:24px 20px;box-shadow:10px 10px 0 var(--cotton2),10px 10px 0 2px var(--ink)}
.qf-hp{position:absolute;left:-9999px}
.qf-need{border:0;margin:0 0 18px;padding:0}
.qf-need legend{font:700 1rem/1.3 var(--sans);color:var(--ink);margin-bottom:10px;padding:0}
.qf-need label{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 14px;margin-bottom:8px;border:1.5px dashed var(--ctl);border-radius:7px;cursor:pointer;background:var(--cotton)}
.qf-need input{appearance:none;-webkit-appearance:none;width:20px;height:20px;flex:none;border:2px solid var(--ink);border-radius:50%;margin:0;display:grid;place-items:center}
.qf-need input::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--brick);transform:scale(0);transition:transform .15s}
.qf-need input:checked::before{transform:scale(1)}
.qf-need label:has(input:checked){border-style:solid;border-color:var(--brick);background:#FCF1EC}
.qf-need input:focus-visible{outline:3px solid var(--mint-d);outline-offset:2px}
.qf-f{margin:0 0 16px}
.qf-f label{display:block;font-weight:700;color:var(--ink);margin-bottom:6px;font-size:.97rem}
.qf-f em{font-weight:400;color:var(--muted);font-style:normal}
.qf input:not([type=radio]),.qf textarea{width:100%;min-height:50px;padding:12px 14px;border:1.5px solid var(--ctl);border-radius:7px;background:#fff;color:var(--text);font:400 1rem/1.4 var(--sans)}
.qf textarea{resize:vertical;min-height:120px}
.qf input:focus,.qf textarea:focus{outline:3px solid var(--mint-d);outline-offset:1px;border-color:var(--ink)}
.qf ::placeholder{color:#6F7589}
.qf-small{font-size:.86rem;color:var(--muted);margin:12px 0 0;text-align:center}
.qside h2:first-child{margin-top:0}
.nexts{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:14px}
.nexts li{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start}
.nx-n{width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--cotton);display:grid;place-items:center;font:600 1.2rem/1 var(--serif)}
.nexts h3{font-size:1.15rem;margin:.3em 0 .2em}
.nexts p{margin:0;color:var(--muted);font-size:.97rem}
.brk{overflow-wrap:anywhere}
@media (min-width:600px){.qf-2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.qwrap{padding:32px 30px}}
@media (min-width:960px){.qgrid{grid-template-columns:1.1fr .9fr;gap:60px;align-items:start}}
.acts404{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- footer */
.ft{background:var(--ink2);color:#C8CEDD;margin-top:20px;font-size:.95rem}
.ft-fringe{height:16px;background:repeating-linear-gradient(90deg,var(--cotton) 0 2px,transparent 2px 6px,var(--brick) 6px 8px,transparent 8px 12px,var(--mint) 12px 14px,transparent 14px 18px);-webkit-mask:linear-gradient(180deg,#000 40%,transparent);mask:linear-gradient(180deg,#000 40%,transparent)}
.ft-grid{display:grid;gap:30px;padding:44px 0 30px}
.ft .brand{margin:0 0 14px}
.ft .brand-t{color:var(--cotton)}
.ft .brand-t small{color:#AEB5C8}
.ft-h{font:700 .76rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mint);margin:0 0 12px}
.ft ul{list-style:none;margin:0;padding:0}
.ft li a,.ft p a{display:inline-flex;align-items:center;min-height:40px;color:var(--cotton);text-decoration:none}
.ft a:hover{color:var(--mint);text-decoration:underline}
.ft-mail{overflow-wrap:anywhere}
.ft-base{border-top:1.5px dashed rgba(126,217,195,.35);padding:18px 0 26px;margin:0 auto;font-size:.86rem;color:#AEB5C8}
.ft-base a{color:var(--cotton)}
@media (min-width:860px){.ft-grid{grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:40px}}

/* ---------- related pages (internal linking) */
.rel{padding:24px 0 56px}
.rel-in{border-top:2px solid var(--ink);padding-top:22px;position:relative}
.rel-in::before{content:"";position:absolute;left:0;top:-8px;width:60px;height:6px;background:linear-gradient(90deg,var(--brick) 50%,var(--mint-d) 0) 0 0/12px 6px}
.rel-h{font:700 .78rem/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brick2);margin:0 0 14px}
.rel-l{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.rel-l li{margin:0;padding:0}
.rel-l li::before{display:none}
.rel-l a{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border:1.5px dashed var(--ink);border-radius:6px;background:var(--white);color:var(--ink);text-decoration:none;font-weight:600;font-size:.94rem;line-height:1.2}
.rel-l a:hover{background:var(--ink);color:var(--cotton);border-style:solid}

@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .strips{display:none}
 .js [data-in]:not(.on){transform:none}
}
