/* ====================================================================
   Indistores — shared site system
   Sourced once here instead of duplicated per page. Currently covers:
   design tokens, header/nav/announcement bar, footer, and the buy-box
   + gallery-zoom components added to product pages. Everything else
   (hero, homepage body sections, per-product-page body sections) still
   lives inline in each page's own <style> block — this is a partial,
   deliberately scoped extraction, not a full-site CSS migration.
   ==================================================================== */

/* ---------------- tokens ---------------- */
:root{
  --bone:#F7F6F3;--stone:#EDEAE4;--chalk:#FFFFFF;--hair:#DDD8CE;
  --brass:#888475;--brass-lt:#ACAAA2;--brass-dp:#6D695D;
  --ink:#1C1A17;--ink-mid:#4A453F;--ink-soft:#79736B;
  --display:'Marcellus',Georgia,serif;--body:'Jost',system-ui,sans-serif;
  --gold:linear-gradient(135deg,#BDBDBA 0%,#888475 45%,#726C58 100%);
}

/* ---------------- announcement + nav ---------------- */
header{position:sticky;top:0;z-index:61}
body.admin-bar header{top:32px}
@media(max-width:782px){body.admin-bar header{top:46px}}
.ann{background:var(--ink);color:var(--brass-lt);font-size:11px;letter-spacing:.2em;text-transform:uppercase;text-align:center;padding:10px 40px;position:relative}
.ann-close{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--brass-lt);cursor:pointer;background:none;border:none;transition:color .2s,transform .15s ease-out}
.ann-close:hover{color:var(--bone)}
.ann-close:active{transform:translateY(-50%) scale(.85)}
.nav{position:relative;z-index:60;background:rgba(247,246,243,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--hair)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:74px;max-width:1160px;margin:0 auto;padding:0 clamp(20px,4vw,32px)}
.brand{display:flex;align-items:center;gap:11px;min-height:44px}
.brand-icon{height:28px;width:auto;display:block}
.brand-word{font-family:var(--display);font-size:21px;letter-spacing:.04em}
.menu{display:flex;gap:28px;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase}
.menu a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink-mid);transition:color .25s,transform .1s ease-out}
.menu a:hover{color:var(--ink)}
.menu a:active{transform:scale(.97)}
.cart{display:inline-flex;align-items:center;min-height:44px;border:1px solid var(--ink);padding:9px 17px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;border-radius:1px;transition:background .25s,color .25s,transform .1s ease-out}
.cart:hover{background:var(--ink);color:var(--bone)}
.cart:active{transform:scale(.97)}
@media(max-width:820px){.menu{display:none}}
.menu-item{position:relative}
.dropdown{position:absolute;top:100%;left:0;margin-top:14px;background:var(--chalk);border:1px solid var(--hair);border-radius:2px;min-width:210px;padding:8px 0;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .2s,visibility .2s;box-shadow:0 20px 34px -24px rgba(28,26,23,.35);z-index:70}
.menu-item:hover .dropdown,.menu-item:focus-within .dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown a{display:block;padding:10px 16px;font-size:12.5px;letter-spacing:.04em;text-transform:none;color:var(--ink-mid);min-height:auto;transition:background .2s,color .2s}
.dropdown a:hover{background:var(--stone);color:var(--ink)}
.nav-actions{display:flex;align-items:center;gap:4px}
.account-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;color:var(--ink-mid);transition:color .25s,transform .1s ease-out}
.account-link:hover{color:var(--ink)}
.account-link:active{transform:scale(.9)}

/* ---------------- footer ---------------- */
footer{background:var(--ink);color:#9C958C;padding:64px 0 30px;font-size:13.5px}
.f-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:32px}
.f-grid h5{color:var(--brass-lt);font-family:var(--display);font-size:15px;font-weight:400;margin-bottom:14px}
.f-grid a{display:flex;align-items:center;min-height:44px;padding:4px 0;transition:color .25s,transform .1s ease-out}
.f-grid a:hover{color:var(--brass-lt)}
.f-grid a:active{transform:scale(.98)}
.f-brand p{max-width:32ch;margin-top:14px;line-height:1.8}
.f-legal{border-top:1px solid rgba(156,149,140,.2);margin-top:28px;padding-top:20px}
.f-legal-flag{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-lt);margin-bottom:10px}
.f-legal-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 24px}
.f-legal-list dt{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#6b655c}
.f-legal-list dd{font-size:12.5px;margin-top:2px;color:#9C958C}
.f-bot{border-top:1px solid rgba(156,149,140,.2);margin-top:44px;padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px}
@media(max-width:820px){.f-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.f-grid{grid-template-columns:1fr}}

/* ---------------- buy box ---------------- */
.trust-cluster{list-style:none;margin-top:18px;display:flex;flex-direction:column;gap:8px}
.trust-cluster li{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink-mid)}
.trust-cluster svg{flex:none;color:var(--brass-dp)}

.stock-line{font-size:12px;color:var(--brass-dp);margin-top:8px;letter-spacing:.02em}

.qty-row{display:flex;align-items:center;gap:12px;margin-top:20px;flex-wrap:wrap}
.qty-stepper{display:flex;align-items:stretch;border:1px solid var(--hair);border-radius:1px;height:48px}
.qty-btn{width:44px;min-width:44px;background:transparent;border:none;font-size:18px;color:var(--ink);cursor:pointer;transition:background .2s}
.qty-btn:hover{background:var(--stone)}
.qty-btn:active{transform:scale(.94)}
.qty-input{width:52px;border:none;border-left:1px solid var(--hair);border-right:1px solid var(--hair);text-align:center;font-family:var(--body);font-size:14px;-moz-appearance:textfield}
.qty-input::-webkit-outer-spin-button,.qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.qty-row .pd-add{margin-top:0;width:auto;flex:1 1 200px}

.pin-check{margin-top:18px;max-width:340px}
.pin-label{display:block;font-size:11.5px;letter-spacing:.06em;color:var(--ink-mid);margin-bottom:8px}
.pin-row{display:flex;gap:8px}
.pin-input{flex:1;height:44px;padding:0 12px;border:1px solid var(--hair);border-radius:1px;font-family:var(--body);font-size:14px}
.pin-btn{min-height:44px;padding:0 18px;background:transparent;border:1px solid var(--ink);border-radius:1px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s}
.pin-btn:hover{background:var(--ink);color:var(--bone)}
.pin-result{margin-top:10px;font-size:12.5px;color:var(--ink-mid);min-height:1em}
.pin-result.pin-error{color:#a5473a}

/* ---------------- gallery hover lens + lightbox ---------------- */
.gal-main{position:relative;cursor:zoom-in}
.gal-lens{position:absolute;pointer-events:none;border:1px solid var(--brass-lt);border-radius:2px;background-repeat:no-repeat;opacity:0;transition:opacity .12s;box-shadow:0 10px 30px -14px rgba(28,26,23,.4)}
.gal-lens.active{opacity:1}

.lightbox{position:fixed;inset:0;z-index:200;background:rgba(28,26,23,.94);display:none;flex-direction:column;align-items:center;justify-content:center}
.lightbox.open{display:flex}
.lightbox-stage{position:relative;width:min(92vw,900px);height:min(78vh,900px);overflow:hidden;touch-action:none}
.lightbox-img{position:absolute;top:50%;left:50%;max-width:none;transform:translate(-50%,-50%);will-change:transform;user-select:none;-webkit-user-drag:none}
.lightbox-close,.lightbox-nav{position:absolute;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;background:rgba(247,246,243,.1);border:1px solid rgba(247,246,243,.3);border-radius:1px;color:var(--bone);cursor:pointer;transition:background .2s}
.lightbox-close{top:16px;right:16px}
.lightbox-close:hover,.lightbox-nav:hover{background:rgba(247,246,243,.2)}
.lightbox-nav{top:50%;transform:translateY(-50%)}
.lightbox-prev{left:16px}
.lightbox-next{right:16px}
.lightbox-thumbs{display:flex;gap:8px;margin-top:16px;max-width:92vw;overflow-x:auto;padding-bottom:4px}
.lightbox-thumb{width:52px;height:52px;flex:none;border:1px solid rgba(247,246,243,.25);border-radius:1px;overflow:hidden;cursor:pointer;opacity:.6;background:none;padding:0}
.lightbox-thumb.active{opacity:1;border-color:var(--brass-lt)}
.lightbox-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.lightbox-counter{color:var(--brass-lt);font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-top:10px}
@media(max-width:620px){.lightbox-nav{display:none}.lightbox-stage{width:100vw;height:70vh}}
