/* Red Wing Storefront — design system
   Fonts are already on this server (Google Fonts, OFL) so nothing loads off-site. */

@font-face{font-family:'RW Slab';font-weight:100 900;font-display:swap;
  src:url(/wp-content/uploads/elementor/google-fonts/fonts/robotoslab-bngmuxzytxpivibgjjsb6ufn5qu.woff2) format('woff2')}
@font-face{font-family:'RW Sans';font-weight:100 900;font-display:swap;
  src:url(/wp-content/fonts/dm-sans/rP2Hp2ywxg089UriCZOIHQ.woff2) format('woff2')}

:root{
  color-scheme:dark;
  --ground:#12150E; --surface:#1B1F16; --raised:#232819;
  --ink:#E9ECE1; --ink-2:#AEB5A0; --ink-3:#7F876F;
  --accent:#E2664A; --accent-ink:#1A0E0A;
  --filament:#E0A23C;
  --rule:rgba(233,236,225,.16); --rule-2:rgba(233,236,225,.08);
  --shadow:0 1px 2px rgba(0,0,0,.5),0 10px 30px -14px rgba(0,0,0,.8);
  --layer:rgba(233,236,225,.09);
  --engrave-bg:#0D1009; --engrave-ink:#E9ECE1; --engrave-cut:#070904;
  --measure:66ch;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body,body.custom-background{background:var(--ground)}
body{margin:0;background:var(--ground);color:var(--ink);
  font-family:'RW Sans',ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:'RW Slab',ui-serif,Georgia,serif;text-wrap:balance;margin:0;line-height:1.08;color:var(--ink)}
p{margin:0}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.wrap{width:min(1280px,93vw);margin-inline:auto}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:100;background:var(--surface);padding:10px 14px;border-radius:2px}

/* ---- header ---- */
header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--ground) 90%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--rule-2)}
.bar{display:flex;align-items:center;gap:26px;padding:14px 0}
.brand{font-family:'RW Slab',serif;font-weight:800;font-size:1rem;letter-spacing:-.015em;
  text-decoration:none;display:flex;align-items:center;gap:9px;white-space:nowrap}
.brand .dot{width:9px;height:9px;background:var(--accent);border-radius:2px;flex:none}
header nav{margin-left:auto;display:flex;gap:22px;align-items:center}
header nav a{text-decoration:none;color:var(--ink-2);font-size:.87rem;font-weight:500}
header nav a[aria-current]{color:var(--accent)}
header nav a:hover{color:var(--accent)}
.cart{border:1px solid var(--rule);border-radius:2px;padding:7px 13px;text-decoration:none;
  font-weight:600;font-size:.8rem;white-space:nowrap}
.cart:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:860px){header nav .hide-sm{display:none}}

/* ---- hero ---- */
.hero{padding:clamp(44px,8vw,100px) 0 clamp(38px,6vw,72px);
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:center}
@media(max-width:900px){.hero{grid-template-columns:1fr;padding-top:34px}}
.eyebrow{color:var(--accent);display:flex;align-items:center;gap:10px;margin-bottom:20px}
.eyebrow::after{content:"";height:1px;flex:1;background:var(--rule)}
.markwrap{position:relative;display:inline-block}
.wordmark{font-size:clamp(2.6rem,7.2vw,5rem);font-weight:800;letter-spacing:-.032em;
  background-image:repeating-linear-gradient(to bottom,var(--ink) 0 4px,var(--layer) 4px 5px);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.wordmark .em{background-image:repeating-linear-gradient(to bottom,var(--accent) 0 4px,var(--layer) 4px 5px);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.wordmark .cut{background-image:repeating-linear-gradient(90deg,var(--filament) 0 4px,var(--layer) 4px 5px);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.printing{clip-path:inset(100% 0 0 0);animation:rwprint 1.5s steps(20) .25s forwards}
@keyframes rwprint{to{clip-path:inset(0 0 0 0)}}
.nozzle{position:absolute;left:-4px;right:-4px;height:2px;background:var(--filament);bottom:0;
  opacity:0;animation:rwnozzle 1.5s steps(20) .25s forwards;pointer-events:none}
@keyframes rwnozzle{0%{bottom:0;opacity:1}85%{opacity:1}100%{bottom:100%;opacity:0}}
.lede{margin:22px 0 0;max-width:46ch;color:var(--ink-2);font-size:1.05rem}
.ctas{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.btn{display:inline-block;text-decoration:none;padding:13px 22px;border-radius:2px;font-weight:600;font-size:.9rem}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{filter:brightness(1.08)}
.btn-ghost{border:1px solid var(--rule);color:var(--ink)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.herofig{position:relative;border-radius:3px;overflow:hidden;background:var(--surface);
  border:1px solid var(--rule-2);box-shadow:var(--shadow);margin:0}
.herofig img{width:100%;aspect-ratio:4/5;object-fit:cover}
.herofig::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.42;
  background:repeating-linear-gradient(to bottom,transparent 0 3px,var(--layer) 3px 4px)}
.tag{position:absolute;z-index:2;left:14px;bottom:14px;background:var(--ground);color:var(--ink);
  padding:8px 12px;border-radius:2px;border:1px solid var(--rule);box-shadow:var(--shadow)}
.tag b{font-family:'RW Slab',serif;font-size:.94rem;display:block;letter-spacing:-.01em;font-weight:700}
.tag span{color:var(--ink-3)}

/* ---- trust strip + licensed sources ---- */
.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule-2);
  border-block:1px solid var(--rule-2)}
@media(max-width:760px){.strip{grid-template-columns:1fr}}
.strip>div{background:var(--ground);padding:20px 22px}
.strip b{display:block;font-family:'RW Slab',serif;font-size:.95rem;margin-bottom:3px;font-weight:700}
.strip p{color:var(--ink-3);font-size:.86rem;line-height:1.5}
.sources{border-bottom:1px solid var(--rule-2);background:var(--ground)}
.sources .inner{display:flex;align-items:center;gap:clamp(16px,3vw,34px);padding:18px 0;flex-wrap:wrap}
.sources .lbl{color:var(--accent);flex:none}
.sources ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;
  gap:clamp(14px,2.6vw,30px);flex-wrap:wrap}
.sources li{font-family:'RW Slab',serif;font-weight:700;font-size:.98rem;
  letter-spacing:-.012em;color:var(--ink-2);position:relative}
.sources li+li::before{content:"";position:absolute;left:calc(clamp(14px,2.6vw,30px)/-2);
  top:.15em;bottom:.15em;width:1px;background:var(--rule)}

/* ---- sections ---- */
.sect{padding:clamp(50px,7vw,84px) 0}
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}
.head h2{font-size:clamp(1.6rem,3.2vw,2.3rem);font-weight:700;letter-spacing:-.022em}
.head .sub{color:var(--ink-3);margin-top:9px;max-width:var(--measure);font-size:.95rem}
.head a{color:var(--accent);text-decoration:none;font-weight:600;font-size:.86rem;white-space:nowrap}
.head a:hover{text-decoration:underline}

/* ---- product grid ---- */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:1160px){.grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.grid{grid-template-columns:repeat(2,1fr);gap:13px}}
.card{background:var(--surface);border:1px solid var(--rule-2);border-radius:3px;overflow:hidden;
  text-decoration:none;display:flex;flex-direction:column;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--rule)}
.card[hidden]{display:none}
.shot{position:relative;background:var(--raised)}
.shot img{width:100%;aspect-ratio:1;object-fit:cover}
.shot .noshot{width:100%;aspect-ratio:1;background:var(--raised)}
.shot::after{content:"";position:absolute;inset:0;opacity:.3;
  background:repeating-linear-gradient(to bottom,transparent 0 3px,var(--layer) 3px 4px)}
.card .meta{padding:13px 14px 15px;display:flex;flex-direction:column;gap:6px;flex:1}
.card h3{color:var(--ink);font-size:.93rem;font-weight:700;letter-spacing:-.01em;line-height:1.25}
.byline{color:var(--ink-3);font-size:.62rem;display:block;margin-top:-2px}
.card .row{margin-top:auto;display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.price{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600;
  font-size:.92rem;font-variant-numeric:tabular-nums}
.price del{opacity:.5;font-weight:400;margin-right:.35em}
.price ins{text-decoration:none}
.from{color:var(--ink-3);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.kind{color:var(--ink-3)}

/* ---- made-to-order band ---- */
.band{background:var(--surface);border-block:1px solid var(--rule-2)}
.band .inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,68px);align-items:center;
  padding:clamp(44px,6vw,74px) 0}
@media(max-width:880px){.band .inner{grid-template-columns:1fr}}
.band h2{font-size:clamp(1.6rem,3.2vw,2.25rem);font-weight:700;letter-spacing:-.022em}
.band p{color:var(--ink-2);margin-top:16px;max-width:var(--measure)}
.swatches{display:flex;gap:9px;margin-top:24px;flex-wrap:wrap}
.sw{width:30px;height:30px;border-radius:50%;border:1px solid var(--rule)}
.spool{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.spec{background:var(--ground);border:1px solid var(--rule-2);border-radius:3px;padding:18px}
.spec .k{color:var(--ink-3);display:block;margin-bottom:7px}
.spec .v{font-family:'RW Slab',serif;font-weight:700;font-size:1.04rem;letter-spacing:-.01em}
.spec .n{color:var(--ink-3);font-size:.82rem;margin-top:5px;line-height:1.45}

/* ---- laser band ---- */
.engrave{background:var(--engrave-bg);color:var(--engrave-ink);position:relative;overflow:hidden}
.engrave::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;
  background:repeating-linear-gradient(90deg,transparent 0 2px,var(--engrave-cut) 2px 3px)}
.engrave .inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(28px,5vw,64px);align-items:center;padding:clamp(44px,6vw,78px) 0}
@media(max-width:880px){.engrave .inner{grid-template-columns:1fr}}
.engrave .eyebrow{color:var(--filament)}
.engrave .eyebrow::after{background:color-mix(in srgb,var(--engrave-ink) 24%,transparent)}
.engrave h2,.engrave h3{color:var(--engrave-ink)}
.engrave h2{font-size:clamp(1.6rem,3.2vw,2.25rem);font-weight:700;letter-spacing:-.022em}
.engrave p{color:color-mix(in srgb,var(--engrave-ink) 74%,transparent);margin-top:16px;max-width:var(--measure)}
.engrave .btn-ghost{border-color:color-mix(in srgb,var(--engrave-ink) 30%,transparent);color:var(--engrave-ink)}
.engrave .btn-ghost:hover{border-color:var(--filament);color:var(--filament)}
.engrave .btn-primary{background:var(--filament);color:var(--engrave-cut)}
.plaque{background:color-mix(in srgb,var(--engrave-ink) 11%,var(--engrave-bg));
  border:1px solid color-mix(in srgb,var(--engrave-ink) 14%,transparent);
  border-radius:3px;padding:clamp(26px,4vw,44px);position:relative;overflow:hidden}
.plaque .etched{font-family:'RW Slab',serif;font-weight:800;line-height:1.12;
  font-size:clamp(1.25rem,2.5vw,1.85rem);letter-spacing:-.012em;
  color:color-mix(in srgb,var(--engrave-ink) 62%,var(--engrave-bg));
  text-shadow:0 -1px 0 color-mix(in srgb,var(--engrave-cut) 80%,transparent),
              0 1px 0 color-mix(in srgb,var(--engrave-ink) 22%,transparent)}
.plaque .cutline{height:1px;background:var(--filament);opacity:.75;margin:20px 0 14px}
.plaque .cap{color:color-mix(in srgb,var(--engrave-ink) 52%,transparent)}

/* ---- shop page ---- */
.phead{padding:clamp(28px,4.5vw,50px) 0 20px;border-bottom:1px solid var(--rule-2)}
.phead h1{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:800;letter-spacing:-.028em}
.phead p{color:var(--ink-2);margin-top:12px;max-width:62ch}
.tools{display:flex;align-items:center;gap:14px;padding:16px 0;flex-wrap:wrap;
  border-bottom:1px solid var(--rule-2);position:sticky;top:56px;z-index:30;
  background:color-mix(in srgb,var(--ground) 92%,transparent);backdrop-filter:blur(8px)}
.count{color:var(--ink-3);flex:none}
.count b{color:var(--ink);font-variant-numeric:tabular-nums}
.grow{flex:1}
.field{display:flex;align-items:center;gap:8px;border:1px solid var(--rule);border-radius:2px;
  background:var(--surface);padding:8px 11px}
.field input,.field select{border:0;background:transparent;color:var(--ink);font:inherit;font-size:.87rem;outline:0;min-width:0}
.field input{width:min(30vw,190px)}
.field select{cursor:pointer}
.field .mono{color:var(--ink-3);flex:none}
.clear{border:1px solid var(--rule);background:transparent;color:var(--ink-2);font:inherit;
  font-size:.8rem;font-weight:600;padding:8px 13px;border-radius:2px;cursor:pointer}
.clear:hover{border-color:var(--accent);color:var(--accent)}
.clear[hidden]{display:none}
.cols{display:grid;grid-template-columns:236px 1fr;gap:clamp(22px,3vw,44px);align-items:start;padding:26px 0 70px}
@media(max-width:900px){.cols{grid-template-columns:1fr;gap:18px}}
.rail{position:sticky;top:116px}
@media(max-width:900px){.rail{position:static}}
.fgroup{border-bottom:1px solid var(--rule-2);padding:16px 0}
.fgroup:first-of-type{padding-top:0}
.fgroup h2{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600;margin-bottom:11px}
.opt{display:flex;align-items:center;gap:9px;padding:4px 0;cursor:pointer;font-size:.88rem;color:var(--ink-2)}
.opt:hover{color:var(--ink)}
.opt input{accent-color:var(--accent);width:14px;height:14px;flex:none;margin:0}
.opt>span:first-of-type{flex:1}
.opt .ct{color:var(--ink-3);font-size:.66rem}
.opt.off{opacity:.42;cursor:not-allowed}
.scroller{max-height:270px;overflow-y:auto;padding-right:4px}
@media(max-width:900px){.scroller{max-height:none}}
.railtoggle{display:none}
@media(max-width:900px){
  .railtoggle{display:block;width:100%;text-align:left;border:1px solid var(--rule);
    background:var(--surface);color:var(--ink);font:inherit;font-weight:600;font-size:.88rem;
    padding:11px 14px;border-radius:2px;cursor:pointer}
  .rail[data-open="false"] .railbody{display:none}
}
.empty{border:1px dashed var(--rule);border-radius:3px;padding:46px 26px;text-align:center;color:var(--ink-3)}
.empty[hidden]{display:none}
.empty b{display:block;font-family:'RW Slab',serif;color:var(--ink);font-size:1.05rem;margin-bottom:6px}

/* ---- footer ---- */
footer{border-top:1px solid var(--rule-2);padding:50px 0 38px;color:var(--ink-3);font-size:.88rem}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:24px}
@media(max-width:1000px){.fgrid{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){.fgrid{grid-template-columns:1fr 1fr}}
.fgrid h4{font-family:'RW Slab',serif;color:var(--ink);font-size:.9rem;margin:0 0 12px;font-weight:700}
.fgrid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.fgrid a{text-decoration:none;color:var(--ink-3)}
.fgrid a:hover{color:var(--accent)}
.legal{margin-top:36px;padding-top:20px;border-top:1px solid var(--rule-2);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

@media (prefers-reduced-motion:reduce){
  .printing{animation:none;clip-path:inset(0 0 0 0)}
  .nozzle{display:none}
  .card{transition:none}
}

/* ---- articles & pages ---------------------------------------------------- */
.prose{max-width:var(--measure);margin:0 auto;padding:clamp(34px,5vw,64px) 0 10px}
.arthead{margin-bottom:clamp(22px,3vw,34px)}
.arthead .eyebrow{color:var(--accent);display:flex;align-items:center;gap:10px;margin-bottom:16px}
.arthead .eyebrow::after{content:"";height:1px;flex:1;background:var(--rule)}
.arthead h1{font-size:clamp(1.9rem,4.4vw,2.9rem);font-weight:800;letter-spacing:-.028em;color:var(--ink)}
.standfirst{margin-top:16px;font-size:1.12rem;color:var(--ink-2);line-height:1.5}
.artfig{margin:0 0 clamp(22px,3vw,34px);border-radius:3px;overflow:hidden;border:1px solid var(--rule-2)}

.body{font-size:1.06rem;line-height:1.72;color:var(--ink-2)}
.body>*+*{margin-top:1.05em}
.body h2{font-size:clamp(1.3rem,2.6vw,1.65rem);font-weight:700;letter-spacing:-.018em;
  color:var(--ink);margin-top:2.1em;line-height:1.2}
.body h3{font-size:1.06rem;font-weight:700;letter-spacing:-.012em;color:var(--ink);margin-top:1.7em}
.body strong{color:var(--ink);font-weight:600}
.body a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.body a:hover{text-decoration-thickness:2px}
.body ul,.body ol{padding-left:1.15em;margin-top:1em}
.body li+li{margin-top:.5em}
.body li::marker{color:var(--ink-3)}
.body blockquote{border-left:2px solid var(--accent);padding:2px 0 2px 18px;margin-left:0;color:var(--ink)}
.body hr{border:0;border-top:1px solid var(--rule-2);margin:2.2em 0}
.body code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;
  background:var(--surface);border:1px solid var(--rule-2);border-radius:2px;padding:.1em .35em}
.body img{border-radius:3px;border:1px solid var(--rule-2)}
.body figcaption{color:var(--ink-3);font-size:.85rem;margin-top:.5em}

/* a spec block for the machines page */
.machine{border:1px solid var(--rule-2);border-radius:3px;background:var(--surface);
  padding:clamp(18px,2.6vw,26px);margin-top:1.4em}
.machine h3{margin-top:0}
.machine .role{color:var(--accent);margin-bottom:10px}
.machine dl{display:grid;grid-template-columns:auto 1fr;gap:7px 18px;margin:16px 0 0;
  font-size:.92rem;align-items:baseline}
@media(max-width:520px){.machine dl{grid-template-columns:1fr;gap:2px 0}}
.machine dt{color:var(--ink-3);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.machine dd{margin:0;color:var(--ink);font-variant-numeric:tabular-nums}
@media(max-width:520px){.machine dd{margin-bottom:9px}}

/* ---- blog index / related ------------------------------------------------ */
.postgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.postgrid.wide{padding:30px 0 60px}
@media(max-width:900px){.postgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.postgrid{grid-template-columns:1fr}}
.postcard{background:var(--surface);border:1px solid var(--rule-2);border-radius:3px;
  padding:20px;text-decoration:none;display:flex;flex-direction:column;gap:9px;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.postcard:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--rule)}
.postcard .pshot{display:block;margin:-20px -20px 4px;border-bottom:1px solid var(--rule-2);overflow:hidden}
.postcard .pshot img{width:100%;aspect-ratio:16/9;object-fit:cover}
.postcard .d{color:var(--ink-3)}
.postcard h3{font-size:1.02rem;font-weight:700;letter-spacing:-.012em;line-height:1.25;color:var(--ink)}
.postcard p{color:var(--ink-3);font-size:.9rem;line-height:1.55}
.postcard .more{color:var(--accent);margin-top:auto}
.pager{padding-bottom:60px}
.pager .page-numbers{display:inline-block;padding:7px 12px;border:1px solid var(--rule);
  border-radius:2px;margin-right:6px;text-decoration:none;color:var(--ink-2);font-size:.88rem}
.pager .page-numbers.current{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.pager .screen-reader-text{position:absolute;left:-9999px}

/* product grid embedded in an article */
.body .rw-shortcode-grid{grid-template-columns:repeat(3,1fr);margin-top:1.6em}
@media(max-width:820px){.body .rw-shortcode-grid{grid-template-columns:repeat(2,1fr)}}
.prose:has(.rw-shortcode-grid){max-width:min(1080px,93vw)}

/* =========================================================================
   WooCommerce surfaces (single product, cart, checkout, account)
   WooCommerce ships light-background CSS; remap it onto our tokens.
   ====================================================================== */
.woo{padding:clamp(28px,4vw,52px) 0 70px}
.woo a{color:var(--accent)}
.woo h1,.woo h2,.woo h3{color:var(--ink)}
.woo .woocommerce-breadcrumb{color:var(--ink-3);font-size:.85rem;margin-bottom:22px}
.woo .woocommerce-breadcrumb a{color:var(--ink-3)}
.woo .woocommerce-breadcrumb a:hover{color:var(--accent)}

/* product summary */
.woo .product_title{font-size:clamp(1.6rem,3.4vw,2.4rem);letter-spacing:-.022em;margin-bottom:10px}
.woo .price,.woo .woocommerce-Price-amount{color:var(--ink);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}
.woo .woocommerce-product-details__short-description{color:var(--ink-2)}
.woo .product_meta{color:var(--ink-3);font-size:.85rem;border-top:1px solid var(--rule-2);padding-top:14px;margin-top:18px}
.woo .rws-credit{color:var(--ink-3)}

/* forms and controls */
.woo input[type=text],.woo input[type=email],.woo input[type=tel],.woo input[type=password],
.woo input[type=number],.woo input[type=search],.woo textarea,.woo select,
.woo .select2-container--default .select2-selection--single{
  background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:2px;
  padding:10px 12px;font:inherit;font-size:.92rem}
.woo input::placeholder,.woo textarea::placeholder{color:var(--ink-3)}
.woo label{color:var(--ink-2);font-size:.88rem}
.woo .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--ink);line-height:1.6}
.select2-dropdown{background:var(--surface);color:var(--ink);border-color:var(--rule)}
.select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--accent);color:var(--accent-ink)}
.woo .quantity input.qty{width:5.5em;text-align:center}

/* buttons */
.woo .button,.woo button.button,.woo input.button,.woo a.button,
.woo .wp-element-button,.woo .wc-block-components-button{
  background:var(--accent);color:var(--accent-ink);border:0;border-radius:2px;
  padding:13px 22px;font-weight:600;font-size:.9rem;cursor:pointer;text-decoration:none;line-height:1.2}
.woo .button:hover,.woo button.button:hover,.woo a.button:hover,.woo .wc-block-components-button:hover{
  filter:brightness(1.08);color:var(--accent-ink)}
.woo .button.alt,.woo button.button.alt{background:var(--accent);color:var(--accent-ink)}
.woo .button:disabled,.woo .button.disabled{opacity:.5;cursor:not-allowed}

/* tables: cart, order review, account orders */
.woo table{width:100%;border-collapse:collapse;color:var(--ink-2)}
.woo table th{color:var(--ink);text-align:left;font-weight:600;font-size:.85rem;
  letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--rule);padding:12px 10px}
.woo table td{border-bottom:1px solid var(--rule-2);padding:14px 10px;vertical-align:middle}
.woo table.shop_table{border:1px solid var(--rule-2);border-radius:3px;background:var(--surface)}
.woo table img{max-width:64px;border-radius:2px}
.woo .cart_totals table,.woo .woocommerce-checkout-review-order-table{background:var(--surface)}
.woo tfoot th,.woo tfoot td{color:var(--ink)}

/* panels */
.woo .cart_totals,.woo #order_review,.woo .woocommerce-info,.woo .woocommerce-message,
.woo .woocommerce-error,.woo .woocommerce-form-login,.woo .woocommerce-form-coupon,
.woo #payment,.woo .wc-block-components-panel{
  background:var(--surface);border:1px solid var(--rule-2);border-radius:3px}
.woo .woocommerce-info,.woo .woocommerce-message,.woo .woocommerce-error{
  padding:14px 16px;margin-bottom:20px;color:var(--ink);border-left:3px solid var(--accent);list-style:none}
.woo .woocommerce-message{border-left-color:#5C9E6B}
.woo .woocommerce-error{border-left-color:var(--accent)}
.woo #payment ul.payment_methods{border-bottom:1px solid var(--rule-2);padding:16px}
.woo #payment div.form-row{padding:16px}
.woo #payment .payment_box{background:var(--raised);color:var(--ink-2);border-radius:2px}
.woo #payment .payment_box::before{border-bottom-color:var(--raised)}

/* product gallery + tabs */
.woo .woocommerce-product-gallery img{border-radius:3px;border:1px solid var(--rule-2)}
.woo .woocommerce-tabs ul.tabs{border-bottom:1px solid var(--rule);padding:0;margin:0 0 20px;list-style:none;display:flex;gap:4px;flex-wrap:wrap}
.woo .woocommerce-tabs ul.tabs li{background:transparent;border:0;margin:0}
.woo .woocommerce-tabs ul.tabs li a{display:block;padding:10px 16px;color:var(--ink-3);font-weight:600;font-size:.88rem;text-decoration:none}
.woo .woocommerce-tabs ul.tabs li.active a{color:var(--ink);border-bottom:2px solid var(--accent)}
.woo .woocommerce-tabs .panel{color:var(--ink-2)}

/* related / upsell grids reuse our card look */
.woo ul.products{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:1100px){.woo ul.products{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.woo ul.products{grid-template-columns:repeat(2,1fr)}}
.woo ul.products li.product{background:var(--surface);border:1px solid var(--rule-2);border-radius:3px;
  overflow:hidden;padding:0 0 14px;text-align:left;margin:0;width:auto;float:none}
.woo ul.products li.product a img{margin:0 0 12px;width:100%;aspect-ratio:1;object-fit:cover}
.woo ul.products li.product .woocommerce-loop-product__title{font-size:.93rem;padding:0 14px;color:var(--ink)}
.woo ul.products li.product .price{display:block;padding:6px 14px 0;font-size:.9rem}
.woo ul.products li.product .button{margin:12px 14px 0}

/* account navigation */
.woo .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0 0 24px;
  display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--rule-2);padding-bottom:12px}
.woo .woocommerce-MyAccount-navigation ul li a{color:var(--ink-3);text-decoration:none;
  font-weight:600;font-size:.88rem;padding:8px 12px;display:block;border-radius:2px}
.woo .woocommerce-MyAccount-navigation ul li.is-active a{color:var(--accent);background:var(--surface)}
@media(min-width:900px){
  .woo .woocommerce-account .woocommerce{display:grid;grid-template-columns:220px 1fr;gap:34px;align-items:start}
  .woo .woocommerce-MyAccount-navigation ul{flex-direction:column;border-bottom:0;gap:2px}
}

/* ---- contact page --------------------------------------------------------- */
.chero{padding:clamp(38px,6vw,80px) 0 clamp(24px,3vw,40px)}
.chero .lede{max-width:56ch}
.cgrid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(26px,4vw,56px);
  align-items:start;padding-bottom:80px}
@media(max-width:900px){.cgrid{grid-template-columns:1fr}}
.cform h2{font-size:clamp(1.3rem,2.6vw,1.7rem);font-weight:700;letter-spacing:-.02em;margin-bottom:20px}

.rws-form{display:flex;flex-direction:column;gap:16px}
.rws-form label{display:flex;flex-direction:column;gap:7px;color:var(--ink-2);
  font-size:.82rem;font-weight:600;letter-spacing:.02em}
.rws-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:620px){.rws-form .row2{grid-template-columns:1fr}}
.rws-form input[type=text],.rws-form input[type=email],.rws-form textarea,.rws-form select{
  background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:2px;
  padding:12px 13px;font:inherit;font-size:.95rem;font-weight:400;width:100%}
.rws-form textarea{resize:vertical;min-height:150px;line-height:1.55}
.rws-form input:focus,.rws-form textarea:focus,.rws-form select:focus{
  outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.rws-form input::placeholder,.rws-form textarea::placeholder{color:var(--ink-3);font-weight:400}
.rws-form select{cursor:pointer;appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);
  background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:38px}
.rws-form button{align-self:flex-start;border:0;cursor:pointer;font-family:inherit}
.rws-form .fineprint{color:var(--ink-3);font-size:.8rem;max-width:52ch;margin-top:-4px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.note{border-radius:3px;padding:16px 18px;margin-bottom:26px;border:1px solid var(--rule-2);
  background:var(--surface);border-left:3px solid var(--accent)}
.note.ok{border-left-color:#5C9E6B}
.note b{display:block;font-family:'RW Slab',serif;font-size:1rem;color:var(--ink);margin-bottom:4px}
.note p{color:var(--ink-2);font-size:.9rem}
.note a{color:var(--accent)}

.cdetails{display:flex;flex-direction:column;gap:14px}
.ccard{background:var(--surface);border:1px solid var(--rule-2);border-radius:3px;padding:20px}
.ccard .k{display:block;color:var(--ink-3);margin-bottom:8px}
.ccard .big{display:block;font-family:'RW Slab',serif;font-weight:700;font-size:1.02rem;
  letter-spacing:-.012em;color:var(--ink);text-decoration:none;word-break:break-word;margin-bottom:8px}
a.big:hover{color:var(--accent)}
.ccard p{color:var(--ink-3);font-size:.86rem;line-height:1.55}
.ccard p a{color:var(--accent)}
.ccard.quiet{background:transparent;border-style:dashed}

/* photo inside a machine card / article */
.machinefig{margin:0 0 16px;border-radius:3px;overflow:hidden;border:1px solid var(--rule-2);background:var(--raised)}
.machinefig img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.machinefig figcaption{color:var(--ink-3);font-size:.8rem;padding:9px 12px;background:var(--surface)}
.machine .machinefig{margin-bottom:18px}

/* ---- hero build animation ------------------------------------------------- */
.herofig.has-build{position:relative}
.herofig.has-build #rw-build{position:absolute;inset:0;width:100%;height:100%;z-index:3;
  display:block;transition:opacity .2s linear;pointer-events:none}
.herofig.has-build.is-done #rw-build{display:none}
.herofig .replay{position:absolute;right:12px;top:12px;z-index:4;opacity:0;pointer-events:none;
  background:color-mix(in srgb,var(--ground) 82%,transparent);color:var(--ink-2);
  border:1px solid var(--rule);border-radius:2px;padding:6px 11px;cursor:pointer;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.62rem;
  letter-spacing:.14em;text-transform:uppercase;transition:opacity .3s ease,color .2s ease}
.herofig.has-build.is-done .replay{opacity:1;pointer-events:auto}
.herofig .replay:hover{color:var(--accent);border-color:var(--accent)}
@media (prefers-reduced-motion:reduce){
  .herofig.has-build #rw-build{display:none}
  .herofig .replay{display:none}
}
