/* DW store kit: store-kit.css (DRAFT). One CSS hook for every store page.
   Brands override the custom properties below in their own style.css (or a <style> after this file);
   everything else uses these variables, so a tenant normally changes only :root. */
:root{
  --dw-accent:#1F4D43; --dw-accent-ink:#fff; --dw-ink:#1d1d1b; --dw-muted:#6b6b66; --dw-line:#e3ded3;
  --dw-bg:#fff; --dw-soft:#f7f2e8; --dw-bad:#a1261b; --dw-radius:999px;
  --dw-font:system-ui,-apple-system,"Segoe UI",Arial,sans-serif; --dw-heading:Georgia,"Times New Roman",serif; /* set both to the brand fonts */
}
.dw-store [hidden]{display:none!important}
.dw-store{font-family:var(--dw-font);color:var(--dw-ink)}
.dw-store h1,.dw-store h2,.dw-store h3{font-family:var(--dw-heading)}
.dw-wrap{max-width:1200px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.dw-section{padding:clamp(40px,6vw,88px) 0}
.dw-section.alt{background:var(--dw-soft)}
.dw-catnav{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}
.dw-catnav a,.dw-store .btn{display:inline-flex;align-items:center;gap:.5em;font-size:13px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border:1px solid var(--dw-accent);color:var(--dw-accent);background:none;padding:11px 20px;border-radius:var(--dw-radius);cursor:pointer}
.dw-store .btn.solid{background:var(--dw-accent);color:var(--dw-accent-ink)}
.dw-store .btn[aria-disabled=true],.dw-store .btn:disabled{opacity:.45;pointer-events:none}
.dw-store .btn[aria-busy=true]{opacity:.7}
.dw-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,40px);margin-top:32px}
.dw-card{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.dw-card .ph{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--dw-soft)}
.dw-card .ph img{width:100%;height:100%;object-fit:cover}
.dw-card h3{margin:16px 0 4px}
.dw-card .tag{font-size:14px;color:var(--dw-muted);margin:0 0 10px}
.dw-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.dw-price{font-size:22px;font-family:var(--dw-heading)}
.dw-badge{font-size:11px;letter-spacing:.18em;text-transform:uppercase;border:1px solid var(--dw-accent);border-radius:var(--dw-radius);padding:4px 10px}
.dw-badge.out{color:var(--dw-muted);border-color:var(--dw-line)}
.dw-flag{position:absolute;top:12px;left:12px;background:rgba(255,255,255,.92);font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:5px 11px;border-radius:var(--dw-radius)}
.dw-pd{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,6vw,90px);align-items:start}
.dw-pd .main{aspect-ratio:1/1;background:#fff;overflow:hidden}.dw-pd .main img{width:100%;height:100%;object-fit:contain}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:8px;margin-top:10px}
.thumbs button{padding:0;border:1px solid var(--dw-line);background:none;cursor:pointer;aspect-ratio:1/1;overflow:hidden}
.thumbs button[aria-current=true]{border-color:var(--dw-accent)}.thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.dw-buy{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:22px 0}
.dw-buy select,.dw-buy input,.dw-field input,.dw-field select{font:inherit;padding:10px 12px;border:1px solid var(--dw-line);border-radius:8px;background:#fff}
.dw-buy input[data-qty]{width:5em}
.dw-crumbs{font-size:13px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:24px}.dw-crumbs a{text-decoration:none}
.dw-cart{width:100%;border-collapse:collapse;margin:16px 0}.dw-cart th,.dw-cart td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--dw-line);vertical-align:middle}
.dw-cart .dw-qty{width:4.5em;padding:6px 8px}
.dw-remove{background:none;border:0;color:var(--dw-muted);text-decoration:underline;cursor:pointer}
.dw-unavailable td{opacity:.7}
.dw-subtotal{font-size:20px;text-align:right}
.dw-note{color:var(--dw-muted);font-size:14px;max-width:62ch}
.dw-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}
.dw-msg{min-height:1.4em}.dw-bad{color:var(--dw-bad)}
.dw-auth,.dw-address,.dw-profile,.dw-checkout{max-width:560px}
.dw-field{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.dw-tabs{display:flex;gap:8px;margin:10px 0 6px}.dw-tabs button{font:inherit;background:none;border:1px solid var(--dw-line);border-radius:var(--dw-radius);padding:8px 14px;cursor:pointer}
.dw-tabs button[aria-selected=true]{border-color:var(--dw-accent);color:var(--dw-accent)}
.dw-ship{border:1px solid var(--dw-line);border-radius:10px;padding:12px 16px;margin:16px 0}.dw-radio{display:flex;gap:10px;align-items:flex-start;margin:8px 0}
.dw-cart-link{position:relative}.dw-cart-link [data-cart-count]{display:inline-block;min-width:1.4em;padding:0 .35em;margin-left:.3em;border-radius:var(--dw-radius);background:var(--dw-accent);color:var(--dw-accent-ink);font-size:12px;text-align:center}
@media (max-width:1000px){.dw-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.dw-pd{grid-template-columns:1fr}}
@media (max-width:560px){.dw-grid{grid-template-columns:1fr}.dw-cart thead{display:none}.dw-cart td{display:block;border:0;padding:4px 0}.dw-cart tr{display:block;border-bottom:1px solid var(--dw-line);padding:10px 0}}
.dw-desc{max-width:72ch;margin:clamp(32px,5vw,72px) auto 32px}

/* totals (quote) */
.dw-store .dw-totals{max-width:26rem;margin:1rem 0;border-top:1px solid currentColor;padding-top:.5rem}
.dw-store .dw-trow{display:flex;justify-content:space-between;padding:.2rem 0}
.dw-store .dw-ttotal{font-weight:600;border-top:1px solid rgba(0,0,0,.2);margin-top:.3rem;padding-top:.4rem}
.dw-store .dw-tcap{font-size:.85em;opacity:.75;margin:0 0 .3rem}
.dw-store .dw-pay{font-weight:500}
.dw-store .dw-ref{letter-spacing:.08em;opacity:.8}
