/* ============================================================
   De Wet Jewellers — demo
   Palette: velvet ink / champagne gold / ivory paper
   Type: Cormorant Garamond (display) + Jost (body)
   ============================================================ */

:root{
  --ink:#17140F;
  --velvet:#211C14;
  --velvet-2:#2B241A;
  --gold:#C6A15B;
  --gold-bright:#E6CE96;
  --gold-dim:#8F7440;
  --paper:#F6F2EA;
  --paper-2:#EFE8DA;
  --line:#DCD3C1;
  --text:#2A251C;
  --muted:#7C7361;
  --ok:#2E6E4C;
  --ok-bg:#E4F0E8;
  --warn:#A8452A;
  --warn-bg:#F7E4DC;
  --radius:10px;
  --shadow:0 10px 30px rgba(23,20,15,.14);
  --display:"Cormorant Garamond", Didot, "Bodoni MT", Georgia, serif;
  --body:"Jost", "Avenir Next", "Segoe UI", system-ui, sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001s !important;transition-duration:.001s !important}
}
body{
  margin:0;
  font-family:var(--body);
  font-weight:300;
  color:var(--text);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  font-size:16px;
  line-height:1.55;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.12;margin:0}

.eyebrow{
  font-family:var(--body);font-weight:500;
  font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold-dim);
}
.on-dark .eyebrow{color:var(--gold)}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:var(--ink);color:var(--paper);
  border-bottom:1px solid rgba(198,161,91,.28);
}
.header-inner{
  max-width:1200px;margin:0 auto;
  display:flex;align-items:center;gap:.75rem;
  padding:.65rem 1rem;
}
.brand{display:flex;align-items:center;gap:.6rem;margin-right:auto}
.brand-mark{
  font-family:var(--display);font-size:.95rem;letter-spacing:.06em;
  color:var(--gold-bright);
  border:1px solid var(--gold);border-radius:50%;
  width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;
}
.brand-mark.small{width:34px;height:34px;display:inline-grid;font-size:.85rem}
.brand-name{
  font-family:var(--display);font-size:1.25rem;letter-spacing:.02em;white-space:nowrap;
}
.brand-name em{font-style:italic;color:var(--gold-bright)}
.main-nav{display:none;gap:1.15rem}
.main-nav a{
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:400;
  color:#CFC8B8;padding:.35rem 0;border-bottom:1px solid transparent;
}
.main-nav a:hover{color:var(--gold-bright);border-bottom-color:var(--gold)}
.header-actions{display:flex;align-items:center;gap:.4rem}
.workshop-link{
  display:none;
  font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  color:var(--ink);background:var(--gold);
  padding:.5rem .85rem;border-radius:999px;
}
.workshop-link:hover{background:var(--gold-bright)}
.cart-btn{
  position:relative;background:none;border:none;color:var(--paper);
  padding:.45rem;border-radius:8px;
}
.cart-btn:hover{color:var(--gold-bright)}
.cart-count{
  position:absolute;top:0;right:0;
  background:var(--gold);color:var(--ink);
  font-size:.62rem;font-weight:600;
  min-width:16px;height:16px;border-radius:999px;
  display:grid;place-items:center;padding:0 3px;
}

/* burger */
.burger{
  background:none;border:none;width:40px;height:40px;
  display:flex;flex-direction:column;justify-content:center;gap:5px;
  padding:8px;flex:0 0 auto;
}
.burger span{display:block;height:1.5px;background:var(--paper);transition:transform .25s,opacity .25s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

.mobile-nav{
  display:grid;overflow:hidden;
  max-height:0;transition:max-height .3s ease;
  background:var(--velvet);
}
.mobile-nav.open{max-height:480px;border-top:1px solid rgba(198,161,91,.25)}
.mobile-nav a{
  padding:.85rem 1.25rem;color:var(--paper);
  font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;
  border-bottom:1px solid rgba(246,242,234,.06);
}
.mobile-nav a:active{background:rgba(198,161,91,.12)}
.mobile-nav .mobile-workshop{color:var(--gold-bright);font-weight:500}

@media(min-width:960px){
  .main-nav{display:flex}
  .workshop-link{display:inline-block}
  .burger{display:none}
  .mobile-nav{display:none}
}

/* ---------- Main / sections ---------- */
main{min-height:60vh}
.wrap{max-width:1200px;margin:0 auto;padding:0 1rem}
.section{padding:3rem 0}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}
.section-head h2{font-size:clamp(1.7rem,3.5vw,2.4rem)}
.link-arrow{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--gold-dim);white-space:nowrap}
.link-arrow:hover{color:var(--ink)}

/* ---------- Hero ---------- */
.hero{
  background:
    radial-gradient(1200px 500px at 70% -10%, rgba(198,161,91,.16), transparent 60%),
    linear-gradient(160deg, var(--ink) 0%, var(--velvet) 55%, #191510 100%);
  color:var(--paper);
  overflow:hidden;
}
.hero-inner{
  max-width:1200px;margin:0 auto;padding:3.2rem 1rem 2.6rem;
  display:grid;gap:2rem;align-items:center;
}
.hero h1{
  font-size:clamp(2.4rem,6.5vw,4.3rem);
  font-weight:500;letter-spacing:.01em;
}
.hero h1 em{font-style:italic;color:var(--gold-bright)}
.hero p.lede{max-width:34rem;color:#D8D1C2;font-size:1.02rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.4rem}
.hero-art{margin:0 auto;width:min(420px,86%);filter:drop-shadow(0 24px 40px rgba(0,0,0,.45))}
@media(min-width:900px){
  .hero-inner{grid-template-columns:1.1fr .9fr;padding-top:4.5rem;padding-bottom:4rem}
}

.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  appearance:none;-webkit-appearance:none;background:transparent;
  border-radius:999px;border:1px solid transparent;
  padding:.78rem 1.5rem;
  font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  transition:background .2s,color .2s,border-color .2s;
}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-gold:hover{background:var(--gold-bright)}
.btn-ghost{border-color:rgba(246,242,234,.4);color:var(--paper)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-bright)}
.btn-dark{background:var(--ink);color:var(--paper)}
.btn-dark:hover{background:var(--velvet-2)}
.btn-line{border-color:var(--line);color:var(--text);background:#fff}
.btn-line:hover{border-color:var(--ink)}
.btn-danger{border-color:var(--warn);color:var(--warn);background:#fff}
.btn-danger:hover{background:var(--warn-bg)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn-block{width:100%;justify-content:center}

/* ---------- Category tiles ---------- */
.cat-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:760px){.cat-grid{grid-template-columns:repeat(3,1fr)}}
.cat-tile{
  position:relative;border-radius:var(--radius);overflow:hidden;
  background:var(--velvet);color:var(--paper);
  aspect-ratio:4/3;display:grid;
}
.cat-tile svg{position:absolute;inset:0;width:100%;height:100%}
.cat-tile .cat-label{
  position:relative;align-self:end;
  padding:.9rem 1rem;
  background:linear-gradient(transparent, rgba(23,20,15,.85));
}
.cat-label b{font-family:var(--display);font-weight:500;font-size:1.15rem;display:block}
.cat-label span{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-bright)}
.cat-tile:hover .cat-label b{color:var(--gold-bright)}

/* ---------- Product grid ---------- */
.product-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:700px){.product-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1020px){.product-grid{grid-template-columns:repeat(4,1fr)}}
.product-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;display:flex;flex-direction:column;
  transition:box-shadow .2s,transform .2s;
}
.product-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.product-thumb{background:var(--velvet);aspect-ratio:1}
.product-thumb svg{width:100%;height:100%}
.product-info{padding:.8rem .9rem 1rem;display:flex;flex-direction:column;gap:.2rem;flex:1}
.product-info .p-name{font-family:var(--display);font-size:1.06rem;font-weight:500}
.product-info .p-meta{font-size:.74rem;color:var(--muted);letter-spacing:.04em}
.product-info .p-price{margin-top:auto;padding-top:.5rem;font-weight:500;letter-spacing:.03em}

/* ---------- Shop page ---------- */
.shop-head{
  background:var(--velvet);color:var(--paper);
  padding:2.4rem 0 2rem;
}
.shop-head h1{font-size:clamp(1.9rem,5vw,3rem)}
.shop-head p{color:#CFC8B8;max-width:38rem;margin:.5rem 0 0}
.cat-chips{display:flex;gap:.5rem;flex-wrap:wrap;padding:1rem 0 0}
.cat-chips a{
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  border:1px solid var(--line);border-radius:999px;padding:.42rem .8rem;background:#fff;
}
.cat-chips a.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* ---------- Product detail ---------- */
.pd{display:grid;gap:1.6rem;padding:2rem 0 3rem}
@media(min-width:880px){.pd{grid-template-columns:1fr 1fr;gap:3rem;align-items:start}}
.pd-image{background:var(--velvet);border-radius:var(--radius);overflow:hidden;position:sticky;top:76px}
.pd-image svg{width:100%;height:auto}
.pd h1{font-size:clamp(1.8rem,4.5vw,2.6rem)}
.pd .p-price{font-size:1.35rem;font-weight:400;margin:.6rem 0 1rem}
.pd .desc{color:#4A443A;max-width:34rem}
.spec-table{width:100%;border-collapse:collapse;margin:1.2rem 0;font-size:.9rem}
.spec-table td{padding:.55rem 0;border-bottom:1px solid var(--line)}
.spec-table td:first-child{color:var(--muted);width:42%;letter-spacing:.05em;font-size:.78rem;text-transform:uppercase}
.pd-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1rem}
.crumb{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:1.4rem;display:block}
.crumb a:hover{color:var(--ink)}

/* ---------- Cart drawer ---------- */
.drawer-scrim{position:fixed;inset:0;background:rgba(23,20,15,.5);z-index:70}
.cart-drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:80;
  width:min(420px,92vw);background:var(--paper);
  display:flex;flex-direction:column;
  box-shadow:-18px 0 50px rgba(0,0,0,.3);
  transform:translateX(100%);transition:transform .28s ease;
}
.cart-drawer.open{transform:none}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem;border-bottom:1px solid var(--line)}
.drawer-head h3{font-size:1.4rem}
.icon-btn{background:none;border:none;font-size:1.6rem;line-height:1;color:var(--muted);padding:.2rem .5rem}
.icon-btn:hover{color:var(--ink)}
.drawer-body{flex:1;overflow-y:auto;padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.9rem}
.cart-line{display:grid;grid-template-columns:64px 1fr auto;gap:.8rem;align-items:center}
.cart-line .thumb{width:64px;height:64px;border-radius:8px;overflow:hidden;background:var(--velvet)}
.cart-line .thumb svg{width:100%;height:100%}
.cart-line .n{font-family:var(--display);font-size:1rem;line-height:1.2}
.cart-line .m{font-size:.72rem;color:var(--muted)}
.qty{display:inline-flex;align-items:center;gap:.55rem;margin-top:.3rem}
.qty button{width:24px;height:24px;border-radius:6px;border:1px solid var(--line);background:#fff;font-size:.95rem;line-height:1}
.cart-line .rm{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--warn);background:none;border:none;margin-top:.3rem;padding:0}
.drawer-foot{border-top:1px solid var(--line);padding:1rem 1.2rem;display:grid;gap:.7rem}
.cart-total{display:flex;justify-content:space-between;font-weight:500;font-size:1.05rem}
.empty-note{color:var(--muted);text-align:center;padding:2.5rem 1rem}

/* ---------- Workshop ---------- */
.ws-head{background:var(--ink);color:var(--paper);padding:2.2rem 0 1.8rem}
.ws-head h1{font-size:clamp(1.8rem,5vw,2.8rem)}
.ws-head p{color:#CFC8B8;max-width:40rem;margin:.5rem 0 0}
.ws-toolbar{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.3rem}

.job-list{display:grid;gap:.8rem;padding:1.6rem 0 3rem}
.job-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:1rem 1.1rem;display:grid;gap:.55rem;
  grid-template-columns:1fr auto;align-items:center;
}
.job-card:hover{box-shadow:var(--shadow)}
.job-card .jc-no{font-family:var(--display);font-size:1.15rem}
.job-card .jc-meta{font-size:.78rem;color:var(--muted)}
.badge{
  justify-self:end;
  font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;
  padding:.3rem .65rem;border-radius:999px;border:1px solid var(--line);
  white-space:nowrap;
}
.badge.received{background:#EFE8DA;color:#6B5F45}
.badge.goldsmith{background:#E9E2F2;color:#5A4A7E;border-color:#D6CBE8}
.badge.returned{background:var(--ok-bg);color:var(--ok);border-color:#C6DECE}
.badge.collected{background:var(--ink);color:var(--gold-bright);border-color:var(--ink)}
.badge.flag{background:var(--warn-bg);color:var(--warn);border-color:#E8C4B4}

/* ---------- Forms ---------- */
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem;display:grid;gap:1rem;margin:1.6rem 0}
.form-grid{display:grid;gap:1rem}
@media(min-width:720px){.form-grid.two{grid-template-columns:1fr 1fr}}
label.f{display:grid;gap:.35rem;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500}
label.f input,label.f select,label.f textarea{
  font-family:var(--body);font-size:1rem;font-weight:300;color:var(--text);
  border:1px solid var(--line);border-radius:8px;padding:.7rem .8rem;background:var(--paper);
}
label.f textarea{min-height:84px;resize:vertical}
label.f input:focus,label.f select:focus,label.f textarea:focus{outline:2px solid var(--gold);outline-offset:0;border-color:var(--gold)}
.field-hint{font-size:.72rem;color:var(--muted);letter-spacing:0;text-transform:none;font-weight:300}
.form-error{color:var(--warn);font-size:.85rem}

/* photo capture */
.photo-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.6rem}
.photo-strip .ph{
  position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;
  background:var(--velvet);border:1px solid var(--line);
}
.photo-strip .ph img,.photo-strip .ph svg{width:100%;height:100%;object-fit:cover}
.photo-strip .ph .del{
  position:absolute;top:4px;right:4px;
  background:rgba(23,20,15,.75);color:#fff;border:none;border-radius:6px;
  width:22px;height:22px;font-size:.85rem;line-height:1;
}
.photo-add{
  aspect-ratio:1;border:1.5px dashed var(--gold-dim);border-radius:8px;
  display:grid;place-items:center;gap:.2rem;background:#fff;
  color:var(--gold-dim);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;
  text-align:center;padding:.4rem;
}
.photo-add:hover{border-color:var(--ink);color:var(--ink)}
.photo-add svg{margin:0 auto}

/* signature */
.sig-pad{
  border:1px solid var(--line);border-radius:8px;background:#fff;
  touch-action:none;width:100%;height:150px;display:block;
}
.sig-row{display:flex;justify-content:space-between;align-items:center;gap:.6rem}
.sig-clear{background:none;border:none;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.sig-clear:hover{color:var(--warn)}

/* ---------- Job detail / THE REGISTER ---------- */
.job-head{padding:1.8rem 0 1rem}
.job-head .jc-no{font-family:var(--display);font-size:clamp(1.7rem,5vw,2.5rem)}
.job-head .row{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-items:center;margin-top:.5rem;font-size:.86rem;color:var(--muted)}

.timeline{display:flex;gap:0;margin:1.2rem 0 0;overflow-x:auto;padding-bottom:.3rem}
.tl-step{display:flex;align-items:center;gap:.45rem;white-space:nowrap;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.tl-step .dot{width:10px;height:10px;border-radius:50%;background:var(--line);flex:0 0 auto}
.tl-step.done{color:var(--ink);font-weight:500}
.tl-step.done .dot{background:var(--gold)}
.tl-step + .tl-step::before{content:"";width:34px;height:1px;background:var(--line);margin:0 .55rem}

.register{
  margin:1.6rem 0 2rem;
  background:#FDFBF6;
  border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);
  display:grid;position:relative;overflow:hidden;
}
@media(min-width:840px){
  .register{grid-template-columns:1fr 1fr}
  .register::before{
    content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;
    background:repeating-linear-gradient(var(--gold-dim) 0 6px, transparent 6px 14px);
    opacity:.5;
  }
}
.reg-page{padding:1.3rem 1.2rem 1.5rem;display:grid;gap:.9rem;align-content:start}
.reg-page + .reg-page{border-top:1px solid var(--line)}
@media(min-width:840px){.reg-page + .reg-page{border-top:none}}
.reg-tag{
  display:flex;justify-content:space-between;align-items:baseline;
  border-bottom:2px solid var(--ink);padding-bottom:.5rem;
}
.reg-tag h3{font-size:1.35rem}
.reg-tag time{font-size:.72rem;letter-spacing:.08em;color:var(--muted)}
.reg-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6rem}
.fact{background:var(--paper-2);border-radius:8px;padding:.55rem .7rem}
.fact b{display:block;font-size:1.15rem;font-family:var(--display);font-weight:600}
.fact span{font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.reg-note{font-size:.88rem;color:#4A443A;border-left:3px solid var(--gold);padding-left:.7rem}
.reg-empty{color:var(--muted);font-size:.9rem;border:1.5px dashed var(--line);border-radius:8px;padding:1.4rem;text-align:center}

/* verdict seal */
.seal{
  margin:0 auto 1.4rem;
  width:min(320px,86%);
  border:2px solid;border-radius:10px;
  text-align:center;padding:.75rem .8rem .8rem;
  transform:rotate(-2deg);
  font-weight:500;letter-spacing:.2em;text-transform:uppercase;font-size:.8rem;
}
.seal small{display:block;letter-spacing:.06em;text-transform:none;font-weight:300;font-size:.74rem;margin-top:.25rem}
.seal.ok{color:var(--ok);border-color:var(--ok);background:var(--ok-bg)}
.seal.bad{color:var(--warn);border-color:var(--warn);background:var(--warn-bg)}
.seal.wait{color:var(--muted);border-color:var(--line);background:#fff;transform:none}

.sign-record{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:1.2rem;margin:0 0 2rem;display:grid;gap:.8rem;
}
.sign-record h3{font-size:1.3rem}
.sign-img{border:1px solid var(--line);border-radius:8px;background:#fff;max-height:110px;width:auto}
.sign-meta{font-size:.8rem;color:var(--muted)}

.detail-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:0 0 3rem}

/* stone tally chips */
.tally{display:inline-flex;gap:3px;flex-wrap:wrap;align-items:center}
.tally i{
  width:12px;height:12px;transform:rotate(45deg);
  background:linear-gradient(135deg,#fff, #cfd8de 60%, #9fb0ba);
  border:1px solid #8FA0AA;border-radius:2px;
}
.tally i.missing{background:var(--warn-bg);border:1.5px dashed var(--warn)}

/* ---------- Feature band (home) ---------- */
.band{
  background:var(--velvet);color:var(--paper);
}
.band .wrap{padding-top:3rem;padding-bottom:3rem;display:grid;gap:2rem}
@media(min-width:900px){.band .wrap{grid-template-columns:1fr 1fr;align-items:center}}
.band h2{font-size:clamp(1.7rem,4vw,2.5rem)}
.band p{color:#CFC8B8;max-width:33rem}
.band ul{margin:1rem 0 1.4rem;padding:0;list-style:none;display:grid;gap:.65rem}
.band li{display:flex;gap:.7rem;align-items:start;font-size:.95rem;color:#E4DDCE}
.band li::before{content:"◆";color:var(--gold);font-size:.7rem;margin-top:.35rem}
.band-art{background:#FDFBF6;color:var(--text);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}

/* band-art keeps light-card colours even inside the dark band */
.band-art p{color:var(--text)}
.band-art .eyebrow{color:var(--gold-dim)}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:#CFC8B8;margin-top:2rem}
.footer-inner{
  max-width:1200px;margin:0 auto;padding:2.6rem 1rem 1.6rem;
  display:grid;gap:2rem;
}
@media(min-width:760px){.footer-inner{grid-template-columns:1.2fr 1fr}}
.footer-name{font-family:var(--display);font-size:1.35rem;color:var(--paper);margin:.6rem 0 .2rem}
.footer-sub{font-size:.85rem;margin:0;line-height:1.7}
.footer-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-content:start}
.footer-cols h4{
  font-family:var(--body);font-weight:500;font-size:.7rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:0 0 .7rem;
}
.footer-cols a{display:block;font-size:.9rem;padding:.22rem 0;color:#CFC8B8}
.footer-cols a:hover{color:var(--gold-bright)}
.footer-note{
  max-width:1200px;margin:0 auto;padding:1rem;
  border-top:1px solid rgba(198,161,91,.2);
  font-size:.74rem;color:#8B8371;
}

/* toast */
.toast{
  position:fixed;left:50%;bottom:22px;transform:translateX(-50%);
  background:var(--ink);color:var(--paper);
  padding:.7rem 1.2rem;border-radius:999px;
  font-size:.85rem;z-index:100;box-shadow:var(--shadow);
  border:1px solid rgba(198,161,91,.4);
  max-width:90vw;text-align:center;
}

/* print: collection record only */
@media print{
  .site-header,.site-footer,.detail-actions,.ws-toolbar,.timeline,.toast,.cart-drawer,.drawer-scrim{display:none !important}
  body{background:#fff}
  .register,.sign-record{box-shadow:none}
}

/* ================= v2: operational layer ================= */

/* real photography, with the drawn render as fallback */
.product-thumb img, .pd-image img, .cat-tile img, .doc-img, .cart-img{
  display:block;width:100%;height:100%;object-fit:cover;
}
.pd-image img{border-radius:var(--r)}
.doc-img{aspect-ratio:1/1.12;object-fit:cover;border-radius:6px;background:var(--ink)}
img.is-drawn{object-fit:contain;background:var(--ink)}

/* due-date chips */
.due{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;
  padding:.28rem .6rem;border-radius:999px;border:1px solid transparent;font-weight:500;
}
.due::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.due.ok{color:#4B7A57;background:rgba(75,122,87,.1);border-color:rgba(75,122,87,.25)}
.due.soon{color:#96702A;background:rgba(198,161,91,.14);border-color:rgba(198,161,91,.35)}
.due.late{color:#9B2C2C;background:rgba(155,44,44,.1);border-color:rgba(155,44,44,.3)}
.due.done{color:#6B6559;background:rgba(107,101,89,.1);border-color:rgba(107,101,89,.22)}
.due.none{color:#8B8371;background:rgba(139,131,113,.1);border-color:rgba(139,131,113,.22)}

.job-card.late{border-left:3px solid #9B2C2C}
.job-ops{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.6rem}
.ops-chip{
  font-size:.78rem;padding:.28rem .65rem;border-radius:999px;
  background:rgba(23,20,15,.05);border:1px solid rgba(23,20,15,.12);color:var(--text);
}
.ops-chip.link{text-decoration:none;border-color:var(--gold);color:#96702A}
.ops-chip.link:hover{background:rgba(198,161,91,.12)}

/* estimate + custody panels */
.panels{display:grid;gap:1rem;margin:1.4rem 0}
@media(min-width:820px){.panels:has(.custody){grid-template-columns:1fr 1fr}}
.est{border:1px solid rgba(23,20,15,.12);border-radius:var(--r);padding:1rem 1.15rem;background:var(--card)}
.est b{display:block;font-family:var(--display);font-size:1.6rem;line-height:1.1}
.est span{display:block;margin-top:.3rem;font-size:.88rem;color:var(--muted);line-height:1.6}
.est.ok{border-left:3px solid #4B7A57}
.est.waiting{border-left:3px solid var(--gold)}
.est.none{color:var(--muted);font-size:.88rem}

.custody{border:1px solid rgba(198,161,91,.4);border-radius:var(--r);padding:1rem 1.15rem;background:rgba(198,161,91,.06)}
.custody-head{
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  color:#96702A;font-weight:500;margin-bottom:.8rem;
}
.custody-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.custody-grid b{display:block;font-size:.95rem}
.custody-grid span{display:block;font-size:.74rem;color:var(--muted);margin-top:.15rem}
.custody-note{margin:.9rem 0 0;font-size:.84rem;color:var(--muted);line-height:1.6}

/* notification log */
.notif{margin:2rem 0 1rem;border-top:1px solid rgba(23,20,15,.12);padding-top:1.4rem}
.notif-head{
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-dim);font-weight:500;margin-bottom:1rem;
}
.notif-row{
  border-left:2px solid var(--gold);padding:.1rem 0 .1rem 1rem;margin-bottom:1.1rem;
}
.notif-row.held{border-left-color:#9B2C2C}
.notif-meta b{font-size:.86rem}
.notif-meta span{display:block;font-size:.72rem;color:var(--muted);margin-top:.1rem}
.notif-row p{
  margin:.5rem 0 0;font-size:.9rem;line-height:1.65;color:var(--text);
  background:rgba(23,20,15,.04);padding:.7rem .9rem;border-radius:8px;
}
.notif-row.held p{background:rgba(155,44,44,.06);color:#7A2323}
.notif-note{font-size:.8rem;color:var(--muted);font-style:italic;margin:0}

/* workload board */
.board-filter{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:1.4rem 0 1rem}
.board-filter>span{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.chip{
  font:inherit;font-size:.82rem;cursor:pointer;padding:.35rem .8rem;border-radius:999px;
  border:1px solid rgba(23,20,15,.16);background:transparent;color:var(--text);
}
.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.board{display:grid;gap:1rem;margin-bottom:3rem}
@media(min-width:900px){.board{grid-template-columns:repeat(4,1fr)}}
.board-col{background:rgba(23,20,15,.035);border-radius:var(--r);padding:.8rem;min-height:120px}
.board-col-head{
  display:flex;justify-content:space-between;align-items:center;
  font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);font-weight:500;margin-bottom:.8rem;padding:0 .2rem;
}
.board-col-head span{
  background:var(--ink);color:var(--paper);border-radius:999px;
  min-width:20px;height:20px;display:grid;place-items:center;font-size:.7rem;letter-spacing:0;
}
.board-card{
  display:block;text-decoration:none;color:inherit;background:var(--card);
  border:1px solid rgba(23,20,15,.1);border-radius:10px;padding:.75rem .85rem;margin-bottom:.6rem;
}
.board-card:hover{border-color:var(--gold)}
.board-card.late{border-left:3px solid #9B2C2C}
.board-card.flagged{border-color:rgba(155,44,44,.45)}
.bc-no{font-size:.78rem;letter-spacing:.05em;color:var(--muted)}
.bc-item{font-size:.92rem;margin:.25rem 0 .55rem;line-height:1.4}
.bc-foot{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;justify-content:space-between}
.bc-smith{font-size:.72rem;color:var(--muted)}
.bc-flag{
  margin-top:.5rem;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  color:#9B2C2C;font-weight:500;
}
.board-empty{font-size:.82rem;color:var(--muted);padding:.6rem .2rem;font-style:italic}

/* printable labels */
.label-page{max-width:760px}
.label-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin:1.4rem 0 .8rem}
.label-hint{font-size:.88rem;color:var(--muted);line-height:1.7;margin:0 0 1.6rem}
.label{
  background:#fff;border:1px dashed rgba(23,20,15,.35);border-radius:8px;
  padding:1rem 1.1rem;margin-bottom:1.2rem;max-width:420px;color:#111;
}
.label-brand{
  font-family:var(--display);font-size:1rem;border-bottom:1px solid #ddd;
  padding-bottom:.4rem;margin-bottom:.5rem;
}
.label-bench .label-brand{letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-family:var(--body)}
.label-no{font-family:var(--display);font-size:1.5rem;letter-spacing:.02em}
.label-line{font-size:.82rem;line-height:1.55;margin-top:.2rem}
.label-line.small{font-size:.74rem;color:#444;margin-top:.4rem}
.label-due{margin-top:.45rem;font-weight:500}
.label-warn{
  margin-top:.5rem;padding:.3rem .5rem;border:1px solid #9B2C2C;color:#9B2C2C;
  font-size:.7rem;letter-spacing:.1em;font-weight:500;border-radius:4px;
}
.label .barcode{margin-top:.7rem;max-height:56px}
.form-grid.three{display:grid;gap:1rem}
@media(min-width:700px){.form-grid.three{grid-template-columns:repeat(3,1fr)}}

@media print{
  .no-print,.site-header,.site-footer,.mobile-nav{display:none !important}
  .label{border:1px solid #000;page-break-inside:avoid;max-width:100%}
}

.storage-warn{
  margin:1.2rem 0 0;padding:.85rem 1.05rem;border-radius:var(--r);
  border:1px solid rgba(155,44,44,.35);background:rgba(155,44,44,.07);
  color:#7A2323;font-size:.86rem;line-height:1.6;
}
