/* Grainforge — product detail, cart drawer, static pages */

.pd{display:grid;grid-template-columns:1.05fr .95fr;gap:0;
  border:2px solid var(--ink);background:var(--card);margin-top:14px}
.pd-media{border-right:2px solid var(--ink);padding:22px;background:#fff}
.pd-main{border:1px solid var(--rule-2);aspect-ratio:1/1;display:grid;
  place-items:center;overflow:hidden;background:#fff;cursor:zoom-in;position:relative}
.pd-main img{width:100%;height:100%;object-fit:contain;padding:18px;mix-blend-mode:multiply}
.pd-thumbs{display:flex;gap:9px;margin-top:12px;flex-wrap:wrap}
.pd-thumbs button{width:70px;height:70px;border:1px solid var(--rule);background:#fff;
  padding:4px;cursor:pointer}
.pd-thumbs button.on{border:2px solid var(--oxide)}
.pd-thumbs img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.pd-info{padding:30px 32px 34px}
.pd-info .p-brand{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--oxide)}
.pd-info h1{font-family:var(--disp);font-size:clamp(24px,3.2vw,38px);
  margin:10px 0 12px;text-transform:uppercase;letter-spacing:.02em}
.pd-rate{font-family:var(--mono);font-size:11px;color:var(--ink-3);
  letter-spacing:.06em;display:flex;gap:10px;align-items:center;
  border-bottom:1px solid var(--rule);padding-bottom:16px}
.pd-price{font-family:var(--mono);font-size:34px;font-variant-numeric:tabular-nums;
  margin:18px 0 4px}
.pd-price small{font-size:13px;color:var(--ink-3);letter-spacing:.1em}
.stock{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;margin-bottom:18px}
.stock.in{color:var(--green)}
.stock.no{color:var(--oxide)}
.pd-desc{color:var(--ink-2);font-size:16px;border-top:1px dashed var(--rule);
  border-bottom:1px dashed var(--rule);padding:16px 0;margin-bottom:20px}
.optsel{width:100%;border:2px solid var(--ink);background:var(--paper);color:var(--ink);
  padding:11px 12px;font-family:var(--mono);font-size:12px;margin-bottom:16px;cursor:pointer}
.buyrow{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}
.qty{display:flex;border:2px solid var(--ink);background:var(--paper)}
.qty button{width:40px;border:0;background:transparent;color:var(--ink);
  font-family:var(--mono);font-size:16px;cursor:pointer}
.qty button:hover{background:var(--ink);color:var(--paper)}
.qty input{width:48px;border:0;border-left:1px solid var(--rule);
  border-right:1px solid var(--rule);background:transparent;text-align:center;
  font-family:var(--mono);font-size:14px;color:var(--ink)}
.buyrow .btn.fill{flex:1;min-width:190px}
.trust{list-style:none;margin:22px 0 0;padding:0;
  display:grid;grid-template-columns:1fr 1fr;gap:9px}
.trust li{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3);display:flex;gap:8px}
.trust li::before{content:"—";color:var(--oxide)}

.spectable{width:100%;border-collapse:collapse;font-size:15px;margin-top:0}
.spectable tr{border-bottom:1px solid var(--rule-2)}
.spectable tr:last-child{border-bottom:0}
.spectable th{text-align:left;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);
  padding:12px 18px 12px 0;font-weight:400;width:42%;vertical-align:top}
.spectable td{padding:12px 0;color:var(--ink);font-family:var(--mono);font-size:13px}
.panels{display:grid;grid-template-columns:1fr 1fr;gap:0;border:2px solid var(--ink);
  border-top:0;background:var(--card)}
.panels > section{padding:28px 32px}
.panels > section:first-child{border-right:2px solid var(--ink)}
.panels h3{font-size:15px;letter-spacing:.18em;border-bottom:2px solid var(--ink);
  padding-bottom:9px;margin-bottom:14px}
.panels p{color:var(--ink-2);margin:0 0 12px;font-size:15px}
.varlist{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12px}
.varlist th{text-align:left;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);border-bottom:1px solid var(--ink);padding:6px 10px 6px 0;font-weight:400}
.varlist td{padding:7px 10px 7px 0;border-bottom:1px solid var(--rule-2);color:var(--ink-2)}
.varlist td:last-child{color:var(--ink);text-align:right}

/* cart drawer */
#scrim{position:fixed;inset:0;background:rgba(22,21,15,.55);z-index:110;
  opacity:0;pointer-events:none;transition:opacity .22s}
#scrim.open{opacity:1;pointer-events:auto}
#cart{position:fixed;top:0;right:0;width:405px;max-width:92vw;height:100%;
  background:var(--paper);z-index:120;border-left:3px solid var(--ink);
  transform:translateX(105%);transition:transform .28s cubic-bezier(.2,.9,.3,1);
  display:flex;flex-direction:column}
#cart.open{transform:none}
.cart-h{display:flex;align-items:center;justify-content:space-between;
  padding:18px 20px;border-bottom:3px solid var(--ink)}
.cart-h h3{font-size:16px;letter-spacing:.16em}
.cart-h button{border:0;background:transparent;font-family:var(--mono);
  font-size:20px;cursor:pointer;color:var(--ink);line-height:1}
.cart-items{flex:1;overflow-y:auto;padding:6px 20px}
.ci{display:grid;grid-template-columns:62px 1fr auto;gap:12px;
  padding:15px 0;border-bottom:1px solid var(--rule-2);align-items:start}
.ci img{width:62px;height:62px;object-fit:contain;border:1px solid var(--rule);background:#fff}
.ci b{font-size:14px;font-weight:600;display:block;line-height:1.3}
.ci .cim{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:5px}
.ci .cix{border:0;background:transparent;color:var(--oxide);cursor:pointer;
  font-family:var(--mono);font-size:11px}
.cart-f{border-top:3px solid var(--ink);padding:18px 20px 24px;background:var(--paper-2)}
.crow{display:flex;justify-content:space-between;font-family:var(--mono);
  font-size:12px;color:var(--ink-2);margin-bottom:8px;letter-spacing:.06em}
.crow.tot{font-size:19px;color:var(--ink);border-top:1px solid var(--rule);padding-top:11px}
.cart-empty{text-align:center;padding:60px 20px;font-family:var(--mono);font-size:11.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}

/* static content pages */
.prose{max-width:76ch;padding-top:8px}
.prose h2{font-size:22px;margin:34px 0 12px;border-bottom:1px solid var(--rule);padding-bottom:7px}
.prose h3{font-size:15px;letter-spacing:.16em;margin:24px 0 8px}
.prose p,.prose li{color:var(--ink-2)}
.prose ul{padding-left:20px}
.prose li{margin-bottom:7px}
.prose .lead{font-size:19px;color:var(--ink);border-left:4px solid var(--oxide);padding-left:18px}
.infobox{border:2px solid var(--ink);background:var(--card);padding:20px 22px;margin:26px 0}
.infobox h4{font-size:12px;letter-spacing:.18em;margin-bottom:10px}
.infobox p:last-child{margin-bottom:0}

@media(max-width:960px){
  .pd{grid-template-columns:1fr}
  .pd-media{border-right:0;border-bottom:2px solid var(--ink)}
  .panels{grid-template-columns:1fr}
  .panels > section:first-child{border-right:0;border-bottom:2px solid var(--ink)}
}
@media(max-width:560px){
  .pd-info{padding:22px 18px 26px}
  .panels > section{padding:22px 18px}
  .trust{grid-template-columns:1fr}
}
