*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f9f6f1;--black:#1c1714;--deep:#f2ede6;--surface:#ece7de;--surface2:#e4ddd2;
  --text:#1c1714;--muted:#3d3530;--dim:#6b635a;
  --gold:#b8905a;--gold-l:#d4a96a;--gold-d:#8a6835;
  --teal:#2d6b67;--teal-l:#3a9490;
  --sage:#7a9470;--sage-l:#96ae8c;--sage-d:#4f6845;
  --surface-sage:#edf2e8;--border-sage:rgba(122,148,112,.3);
  --border:rgba(0,0,0,0.1);--border-gold:rgba(184,144,90,0.35);--border-teal:rgba(45,107,103,.3);
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Inter',system-ui,sans-serif;
  --shadow:0 4px 20px rgba(0,0,0,.07);--shadow-l:0 8px 36px rgba(0,0,0,.1);
  --error:#b84040;--success:#2d6b67;--warning:#b87a2a;
}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:var(--gold);text-decoration:none;transition:color .2s}
a:hover{color:var(--gold-l)}
button{cursor:pointer;font-family:var(--sans)}
input,select,textarea{font-family:var(--sans)}

/* Layout */
.container{width:100%;max-width:1100px;margin:0 auto;padding:0 2rem}
.container--wide{max-width:1240px}
.container--narrow{max-width:800px}

/* ── Navigation ── */
.s-nav{position:fixed;top:0;left:0;right:0;z-index:500;padding:1.1rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:rgba(249,246,241,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}
.s-nav-brand{display:flex;align-items:center;flex-shrink:0}
.s-nav-brand img{height:22px;width:auto;filter:brightness(.8) contrast(1.1)}
.s-nav-links{display:flex;align-items:center;gap:2rem;list-style:none}
.s-nav-links a{font-size:.64rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);transition:color .2s}
.s-nav-links a:hover,.s-nav-links a.active{color:var(--gold)}
.s-nav-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}
.s-nav-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--muted);transition:color .2s}
.s-nav-icon:hover{color:var(--gold)}
.s-cart-btn{position:relative;display:flex;align-items:center;gap:.5rem;font-size:.64rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);background:none;border:1px solid var(--border);padding:.45rem 1rem;transition:all .2s}
.s-cart-btn:hover{border-color:var(--gold);color:var(--gold)}
.s-cart-count{background:var(--gold);color:#fff;font-size:.55rem;font-weight:600;min-width:16px;height:16px;padding:0 3px;border-radius:8px;display:flex;align-items:center;justify-content:center;position:absolute;top:-.4rem;right:-.4rem}
.s-cart-count.hidden{display:none}
.s-nav-back{font-size:.64rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:.5rem;transition:color .2s}
.s-nav-back::before{content:'←';font-size:.85rem}
.s-nav-back:hover{color:var(--gold)}

/* Test Banner */
.test-banner{background:#fef3c7;border-bottom:2px solid #f59e0b;padding:.55rem 2rem;text-align:center;font-size:.72rem;display:flex;align-items:center;justify-content:center;gap:.75rem;position:relative;z-index:400}
.test-banner strong{font-weight:600}
.test-banner-close{background:none;border:none;color:var(--text);font-size:1.1rem;padding:0;opacity:.5;transition:opacity .2s;margin-left:.5rem}
.test-banner-close:hover{opacity:1}

/* Buttons */
.btn{display:inline-block;font-size:.7rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:.85rem 1.75rem;border:none;transition:all .2s;cursor:pointer;text-align:center;line-height:1}
.btn-gold{background:var(--gold);color:var(--black)}
.btn-gold:hover{background:var(--gold-l);color:var(--black)}
.btn-teal{background:var(--teal);color:#fff}
.btn-teal:hover{background:var(--teal-l);color:#fff}
.btn-sage{background:var(--sage-d);color:#f4f0ea}
.btn-sage:hover{background:var(--sage)}
.btn-outline{background:none;border:1px solid var(--border);color:var(--muted)}
.btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.btn-outline-teal{background:none;border:1px solid var(--border-teal);color:var(--teal)}
.btn-outline-teal:hover{background:var(--teal);color:#fff}
.btn-full{width:100%;display:block}
.btn-sm{padding:.55rem 1.1rem;font-size:.64rem}
.btn-lg{padding:1rem 2.25rem;font-size:.74rem}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* Tags */
.tag{font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;border:1px solid;padding:.22rem .6rem;display:inline-block}
.tag--gold{color:var(--gold);border-color:var(--border-gold)}
.tag--teal{color:var(--teal-l);border-color:var(--border-teal)}
.tag--sage{color:var(--sage);border-color:var(--border-sage)}
.tag--dim{color:var(--dim);border-color:var(--border)}

/* Badges */
.badge-pill{font-size:.58rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:.22rem .7rem;display:inline-block}
.badge-gold{background:var(--gold);color:#fff}
.badge-teal{background:var(--teal);color:#fff}
.badge-sage{background:var(--sage-d);color:#f4f0ea}

/* Stars */
.stars{color:var(--gold);font-size:.8rem;letter-spacing:.05em}

/* Page top padding */
main{padding-top:5.5rem}

/* ── Shop Hero ── */
.shop-hero{padding:3.5rem 0 2.5rem;border-bottom:1px solid var(--border)}
.shop-hero-label{font-size:.6rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:.75rem}
.shop-hero-title{font-family:var(--serif);font-size:clamp(2rem,4vw,3.5rem);font-weight:300;color:var(--text);line-height:1.05}
.shop-hero-sub{font-family:var(--serif);font-size:1.05rem;font-style:italic;color:var(--muted);margin-top:.6rem}

/* ── Filter + Search ── */
.filter-bar{padding:1.25rem 0;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.filter-tabs{display:flex;gap:.4rem;flex-wrap:wrap}
.filter-tab{font-size:.62rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;padding:.45rem .9rem;border:1px solid var(--border);background:none;color:var(--muted);cursor:pointer;transition:all .2s}
.filter-tab:hover{border-color:var(--gold);color:var(--gold)}
.filter-tab.active{background:var(--gold);color:#fff;border-color:var(--gold)}
.search-wrap{display:flex;align-items:center;gap:.5rem;border:1px solid var(--border);padding:.5rem .9rem;flex:1;max-width:300px}
.search-wrap svg{color:var(--dim);flex-shrink:0;width:14px;height:14px}
.search-input{border:none;background:none;outline:none;font-size:.85rem;color:var(--text);width:100%}
.search-input::placeholder{color:var(--dim)}

/* ── Product Grid ── */
.products-section{padding:2rem 0 4rem}
.products-meta{font-size:.7rem;color:var(--dim);margin-bottom:1.5rem}
.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.75rem}

/* Abschnitte (Bücher / Buchboxen / Merch) */
.shop-section + .shop-section{margin-top:3.5rem;padding-top:3rem;border-top:1px solid var(--border)}
.shop-section-head{margin-bottom:1.75rem}
.shop-section-title{font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:300;color:var(--text);line-height:1.1}
.shop-section-sub{font-size:.88rem;color:var(--dim);line-height:1.6;margin-top:.35rem;max-width:52ch}
/* Bücher-Karten größer — die Cover sind das Highlight */
.products-grid--buch{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem}
/* Größen-Zwischenzeile im Buchboxen-Grid */
.size-sub{grid-column:1/-1;font-size:.62rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);padding-bottom:.4rem;border-bottom:1px solid var(--border);margin:.5rem 0 -.25rem}
.size-sub:first-child{margin-top:0}

/* ── Product Card ── */
.pcard{background:var(--bg);border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:transform .25s,box-shadow .25s;position:relative}
.pcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-l)}
.pcard-img{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--surface2)}
.pcard-img img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .5s}
.pcard:hover .pcard-img img{transform:scale(1.03)}
/* Box-/Merch-Karten: Mockup vollständig zeigen (nicht beschneiden) */
.pcard-img--box img{object-fit:contain;object-position:center;background:var(--surface2)}
.pcard-badges{position:absolute;top:.7rem;left:.7rem;z-index:1;display:flex;flex-direction:column;gap:.3rem}
.pcard-goodie{position:absolute;top:.7rem;right:.7rem;z-index:1;font-size:.58rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;background:var(--teal);color:#fff;padding:.2rem .55rem}
.pcard-body{padding:1.1rem;flex:1;display:flex;flex-direction:column;gap:.6rem}
.pcard-band{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.pcard-name{font-family:var(--serif);font-size:1.15rem;font-weight:300;color:var(--text);line-height:1.15}
.pcard-name em{font-style:italic}
.pcard-name--gold em{color:var(--gold)}
.pcard-name--teal em{color:var(--teal-l)}
.pcard-name--sage em{color:var(--sage)}
.pcard-desc{font-size:.8rem;color:var(--muted);line-height:1.65;flex:1}
.pcard-tags{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:auto}
.pcard-footer{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}
.pcard-price{font-family:var(--serif);font-size:1.2rem;font-weight:300;color:var(--text);white-space:nowrap}
.pcard-btn{font-size:.6rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:.6rem .95rem;border:none;cursor:pointer;transition:background .2s;white-space:nowrap;flex-shrink:0}
.pcard-btn--gold{background:var(--gold);color:var(--black)}
.pcard-btn--gold:hover{background:var(--gold-l)}
.pcard-btn--teal{background:var(--teal);color:#fff}
.pcard-btn--teal:hover{background:var(--teal-l)}
.pcard-btn--sage{background:var(--sage-d);color:#f4f0ea}
.pcard-btn--sage:hover{background:var(--sage)}
.pcard-stock-low{font-size:.62rem;color:var(--error);font-weight:500}
.pcard-delivery{font-size:.62rem;color:var(--teal);font-weight:500}
.no-results{text-align:center;padding:4rem 2rem;font-family:var(--serif);font-size:1.3rem;font-style:italic;color:var(--dim)}

/* ── Cart Sidebar ── */
.cart-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:600;opacity:0;pointer-events:none;transition:opacity .3s}
.cart-overlay.open{opacity:1;pointer-events:auto}
.cart-sidebar{position:fixed;top:0;right:0;bottom:0;z-index:700;width:400px;max-width:96vw;background:var(--bg);border-left:1px solid var(--border);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1)}
.cart-sidebar.open{transform:translateX(0)}
.cart-head{padding:1.4rem 1.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.cart-head-title{font-family:var(--serif);font-size:1.35rem;font-weight:300}
.cart-close{background:none;border:none;font-size:1.4rem;color:var(--dim);padding:.2rem;transition:color .2s;line-height:1}
.cart-close:hover{color:var(--text)}
.cart-body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1.1rem}
.cart-empty{text-align:center;padding:3rem 1rem;font-family:var(--serif);font-style:italic;color:var(--dim);font-size:1.1rem;margin:auto}
.cart-item{display:grid;grid-template-columns:60px 1fr auto;gap:.75rem;align-items:start}
.cart-item-img{width:60px;height:75px;object-fit:cover;object-position:center top;border:1px solid var(--border)}
.cart-item-info{display:flex;flex-direction:column;gap:.2rem}
.cart-item-name{font-size:.84rem;font-weight:500;color:var(--text);line-height:1.3}
.cart-item-var{font-size:.7rem;color:var(--dim)}
.cart-item-price{font-family:var(--serif);font-size:.95rem}
.cart-qty{display:flex;align-items:center;gap:.35rem;margin-top:.3rem}
.cart-qty-btn{background:none;border:1px solid var(--border);width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--muted);transition:all .2s}
.cart-qty-btn:hover{border-color:var(--gold);color:var(--gold)}
.cart-qty-val{font-size:.82rem;min-width:1.4rem;text-align:center}
.cart-item-del{background:none;border:none;color:var(--dim);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .35rem;transition:color .2s;align-self:start;cursor:pointer}
.cart-item-del:hover{color:var(--error)}
.cart-foot{padding:1.25rem 1.5rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.85rem}
.cart-shipping-note{font-size:.72rem;color:var(--teal);display:flex;align-items:center;gap:.4rem;background:rgba(45,107,103,.06);padding:.5rem .7rem}
.cart-goodie-note{font-size:.72rem;color:var(--teal);background:rgba(45,107,103,.06);padding:.5rem .7rem;border-left:2px solid var(--teal)}
.cart-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--muted)}
.cart-divider{height:1px;background:var(--border)}
.cart-total-row{display:flex;justify-content:space-between;align-items:baseline}
.cart-total-lbl{font-size:.7rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.cart-total-val{font-family:var(--serif);font-size:1.5rem}

/* ── Product Detail ── */
.product-detail-wrap{padding:3.5rem 0 4rem}
.product-crumb{font-size:.65rem;color:var(--dim);margin-bottom:2rem;display:flex;gap:.5rem;align-items:center}
.product-crumb a{color:var(--dim);transition:color .2s}
.product-crumb a:hover{color:var(--gold)}
.product-crumb-sep{opacity:.4}
.product-detail{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
.product-gallery-main{border:1px solid var(--border);overflow:hidden;background:var(--surface2)}
.product-gallery-main img{width:100%;height:auto;display:block}
.product-gallery-extra{border:1px solid var(--border);overflow:hidden;background:var(--surface2);margin-top:.9rem}
.product-gallery-extra img{width:100%;display:block}
.product-info{display:flex;flex-direction:column;gap:1.4rem}
.product-band-lbl{font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}
.product-title{font-family:var(--serif);font-size:clamp(1.9rem,3.5vw,3rem);font-weight:300;line-height:1.05}
.product-title em{font-style:italic}
.product-title--gold em{color:var(--gold)}
.product-title--teal em{color:var(--teal-l)}
.product-title--sage em{color:var(--sage)}
.product-tags{display:flex;gap:.4rem;flex-wrap:wrap}
.product-desc{font-size:.95rem;color:var(--muted);line-height:1.85}
.product-price-row{display:flex;align-items:baseline;gap:1rem}
.product-price{font-family:var(--serif);font-size:2.2rem;font-weight:300}
.product-price-note{font-size:.75rem;color:var(--dim)}
.option-group{display:flex;flex-direction:column;gap:.55rem}
.option-lbl{font-size:.64rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.option-btns{display:flex;gap:.45rem;flex-wrap:wrap}
.option-btn{padding:.5rem .95rem;border:1px solid var(--border);background:none;font-size:.78rem;color:var(--muted);cursor:pointer;transition:all .2s}
.option-btn:hover{border-color:var(--gold);color:var(--gold)}
.option-btn.selected{background:var(--gold);color:#fff;border-color:var(--gold)}
.qty-row{display:flex;align-items:center;gap:1rem}
.qty-ctrl{display:flex;align-items:center;gap:.4rem;border:1px solid var(--border);padding:.35rem}
.qty-btn{background:none;border:none;font-size:1rem;color:var(--muted);width:28px;height:28px;display:flex;align-items:center;justify-content:center;transition:color .2s}
.qty-btn:hover{color:var(--gold)}
.qty-val{min-width:2rem;text-align:center;font-size:.88rem}
.product-atc{flex:1}
.product-meta{font-size:.78rem;color:var(--dim);display:flex;flex-direction:column;gap:.35rem;padding-top:.5rem;border-top:1px solid var(--border)}
.product-meta-row{display:flex;gap:.5rem}
.product-meta-key{font-weight:500;min-width:90px}
.product-goodie-box{font-size:.8rem;color:var(--teal);background:rgba(45,107,103,.06);padding:.85rem 1rem;border-left:2px solid var(--teal);line-height:1.65}
.product-boxcontent{padding:1rem 1.1rem;background:var(--surface2);border:1px solid var(--border)}
.product-boxcontent-h{display:block;font-size:.64rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:.6rem}
.product-boxcontent-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--muted)}
.product-boxcontent-list li{padding-left:1rem;position:relative;line-height:1.55}
.product-boxcontent-list li::before{content:'—';position:absolute;left:0;color:var(--gold)}
.product-stock-low{font-size:.75rem;color:var(--error);font-weight:500}
.product-delivery-note{font-size:.85rem;color:var(--teal);background:rgba(45,107,103,.08);padding:.85rem 1rem;border-left:2px solid var(--teal);line-height:1.6;font-weight:500}

/* ── Cart Page ── */
.cart-page-wrap{padding:4rem 0}
.cart-page-head{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--border)}
.cart-page-title{font-family:var(--serif);font-size:clamp(2rem,4vw,3rem);font-weight:300}
.cart-layout{display:grid;grid-template-columns:1fr 340px;gap:2.5rem;align-items:start}
.cart-table{border:1px solid var(--border)}
.cart-table-head{display:grid;grid-template-columns:3fr 1fr 1fr 1fr;gap:1rem;padding:.85rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border)}
.cart-table-head span{font-size:.6rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.cart-table-row{display:grid;grid-template-columns:3fr 1fr 1fr 1fr;gap:1rem;padding:1.25rem 1.5rem;align-items:center;border-bottom:1px solid var(--border)}
.cart-table-row:last-child{border-bottom:none}
.cart-table-prod{display:flex;gap:.85rem;align-items:center}
.cart-table-img{width:52px;height:65px;object-fit:cover;object-position:center top;border:1px solid var(--border);flex-shrink:0}
.cart-table-name{font-size:.85rem;font-weight:500;color:var(--text);line-height:1.3}
.cart-table-var{font-size:.7rem;color:var(--dim);margin-top:.1rem}
.cart-table-del{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);background:none;border:none;padding:0;cursor:pointer;margin-top:.4rem;transition:color .2s}
.cart-table-del:hover{color:var(--error)}
.cart-qty-input{width:56px;border:1px solid var(--border);padding:.4rem .5rem;font-size:.85rem;text-align:center;background:var(--bg);color:var(--text)}
.cart-sum-box{border:1px solid var(--border);padding:1.5rem;position:sticky;top:7rem}
.cart-sum-title{font-family:var(--serif);font-size:1.2rem;font-weight:300;margin-bottom:1rem}
.cart-sum-row{display:flex;justify-content:space-between;font-size:.85rem;color:var(--muted);padding:.3rem 0}
.cart-sum-div{height:1px;background:var(--border);margin:.5rem 0}
.cart-sum-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:.5rem}
.cart-sum-total-lbl{font-size:.7rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.cart-sum-total-val{font-family:var(--serif);font-size:1.75rem}
.cart-sum-note{font-size:.7rem;color:var(--teal);padding:.5rem .65rem;background:rgba(45,107,103,.06)}
.cart-empty-state{text-align:center;padding:4rem 2rem}
.cart-empty-title{font-family:var(--serif);font-size:1.8rem;font-weight:300;color:var(--muted);margin-bottom:1rem}

/* ── Checkout ── */
.checkout-wrap{padding:4rem 0}
.checkout-steps{display:flex;align-items:center;max-width:500px;margin:0 auto 2.5rem}
.step{display:flex;align-items:center;gap:.5rem;font-size:.63rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.step-num{width:26px;height:26px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.7rem;flex-shrink:0}
.step.active{color:var(--text)}
.step.active .step-num{background:var(--gold);color:#fff;border-color:var(--gold)}
.step.done .step-num{background:var(--teal);color:#fff;border-color:var(--teal)}
.step-sep{flex:1;height:1px;background:var(--border);margin:0 .6rem}
.checkout-layout{display:grid;grid-template-columns:1fr 340px;gap:2.5rem;align-items:start;max-width:960px;margin:0 auto}
.checkout-panel{display:none;flex-direction:column;gap:1.5rem}
.checkout-panel.active{display:flex}
.checkout-box{border:1px solid var(--border);padding:1.75rem;background:var(--bg)}
.checkout-box-title{font-family:var(--serif);font-size:1.2rem;font-weight:300;margin-bottom:1.4rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
.form-group{display:flex;flex-direction:column;gap:.35rem}
.form-group--full{grid-column:1/-1}
.form-lbl{font-size:.63rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.form-input,.form-select{width:100%;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.9rem;padding:.7rem .9rem;outline:none;transition:border-color .2s;appearance:none;-webkit-appearance:none;border-radius:0}
.form-input:focus,.form-select:focus{border-color:var(--gold)}
.form-input.err{border-color:var(--error)}
.form-err{font-size:.7rem;color:var(--error);margin-top:.15rem}
.form-hint{font-size:.7rem;color:var(--dim)}
.form-check{display:flex;align-items:flex-start;gap:.65rem}
.form-checkbox{width:17px;height:17px;border:1px solid var(--border);background:var(--bg);cursor:pointer;flex-shrink:0;margin-top:.15rem;appearance:none;-webkit-appearance:none;transition:all .2s}
.form-checkbox:checked{background:var(--gold);border-color:var(--gold)}
.form-check-lbl{font-size:.85rem;color:var(--muted)}
/* Payment */
.payment-tabs{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.4rem}
.payment-tab{display:flex;align-items:center;gap:.85rem;padding:.9rem 1.1rem;border:1px solid var(--border);cursor:pointer;transition:border-color .2s;user-select:none}
.payment-tab.selected{border-color:var(--gold)}
.payment-tab input[type="radio"]{accent-color:var(--gold)}
.payment-tab-icon{font-size:1.1rem}
.payment-tab-name{font-size:.88rem;font-weight:500;color:var(--text)}
.payment-tab-sub{font-size:.75rem;color:var(--dim);margin-left:auto}
.stripe-el-wrap{border:1px solid var(--border);padding:.8rem 1rem;background:var(--bg)}
#stripe-error{font-size:.75rem;color:var(--error);margin-top:.4rem}
#paypal-button-container{margin-top:.5rem}
/* Order Review */
.review-items{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.25rem}
.review-item{display:grid;grid-template-columns:44px 1fr auto;gap:.7rem;align-items:center}
.review-item-img{width:44px;height:55px;object-fit:cover;object-position:center top;border:1px solid var(--border)}
.review-item-name{font-size:.82rem;font-weight:500;line-height:1.3}
.review-item-var{font-size:.7rem;color:var(--dim)}
.review-item-price{font-family:var(--serif);font-size:.9rem}
.review-addr{font-size:.82rem;color:var(--muted);line-height:1.7;padding:.85rem;background:var(--surface);border:1px solid var(--border);margin-bottom:.75rem}
/* Order Summary */
.order-sum{border:1px solid var(--border);padding:1.4rem;position:sticky;top:7rem}
.order-sum-title{font-family:var(--serif);font-size:1.15rem;font-weight:300;margin-bottom:1.1rem;padding-bottom:.7rem;border-bottom:1px solid var(--border)}
.order-sum-items{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.1rem}
.order-sum-item{display:grid;grid-template-columns:44px 1fr auto;gap:.65rem;align-items:start}
.order-sum-img{width:44px;height:55px;object-fit:cover;border:1px solid var(--border)}
.order-sum-name{font-size:.8rem;font-weight:500;line-height:1.3}
.order-sum-var{font-size:.68rem;color:var(--dim)}
.order-sum-price{font-family:var(--serif);font-size:.88rem}
.order-sum-rows{padding-top:.9rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.4rem}
.order-sum-row{display:flex;justify-content:space-between;font-size:.83rem;color:var(--muted)}
.order-sum-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:.6rem;border-top:1px solid var(--border);margin-top:.25rem}
.order-sum-total-lbl{font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.order-sum-total-val{font-family:var(--serif);font-size:1.4rem}

/* ── Success ── */
.success-wrap{padding:5rem 0 4rem;text-align:center;max-width:580px;margin:0 auto}
.success-icon{width:60px;height:60px;background:var(--teal);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 2rem;color:#fff}
.success-title{font-family:var(--serif);font-size:clamp(2rem,4vw,3rem);font-weight:300;margin-bottom:.75rem}
.success-sub{font-size:.95rem;color:var(--muted);line-height:1.75;margin-bottom:2rem}
.success-box{text-align:left;border:1px solid var(--border);padding:1.5rem;margin-bottom:2rem}
.success-box-title{font-family:var(--serif);font-size:1rem;font-weight:300;margin-bottom:1rem;padding-bottom:.65rem;border-bottom:1px solid var(--border)}
.success-items{display:flex;flex-direction:column;gap:.75rem}
.success-item{display:flex;gap:.85rem;align-items:center}
.success-item-img{width:44px;height:55px;object-fit:cover;border:1px solid var(--border)}
.success-item-name{font-size:.85rem;font-weight:500}
.success-item-var{font-size:.72rem;color:var(--dim)}

/* ── Account ── */
.account-wrap{padding:4rem 0}
.account-layout{display:grid;grid-template-columns:220px 1fr;gap:2.5rem;align-items:start}
.account-nav{border:1px solid var(--border)}
.account-nav-item{display:block;padding:.9rem 1.4rem;font-size:.76rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);transition:all .2s;cursor:pointer}
.account-nav-item:last-child{border-bottom:none}
.account-nav-item:hover,.account-nav-item.active{color:var(--gold);background:var(--surface)}
.account-content{display:flex;flex-direction:column;gap:2rem}
.account-section{border:1px solid var(--border);padding:1.75rem}
.account-section-title{font-family:var(--serif);font-size:1.2rem;font-weight:300;margin-bottom:1.1rem;padding-bottom:.7rem;border-bottom:1px solid var(--border)}
.orders-table{width:100%;border-collapse:collapse}
.orders-table th{font-size:.6rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding:.7rem 1rem;text-align:left;border-bottom:1px solid var(--border)}
.orders-table td{font-size:.83rem;color:var(--muted);padding:.8rem 1rem;border-bottom:1px solid var(--border)}
.orders-table tr:last-child td{border-bottom:none}
.orders-table tr:hover td{background:var(--deep)}
.status{font-size:.6rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:.2rem .5rem}
.status-paid{background:rgba(45,107,103,.12);color:var(--teal)}
.status-sent{background:rgba(184,144,90,.12);color:var(--gold)}
.status-pending{background:rgba(184,122,42,.12);color:var(--warning)}
.no-orders{text-align:center;padding:2rem;font-family:var(--serif);font-style:italic;color:var(--dim)}

/* ── Admin ── */
.admin-wrap{min-height:100vh;background:var(--deep)}
.admin-nav{background:var(--bg);border-bottom:1px solid var(--border);padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}
.admin-nav-title{font-family:var(--serif);font-size:1.2rem;font-weight:300}
.admin-body{padding:2rem}
.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-bottom:1.75rem}
.stat-card{background:var(--bg);border:1px solid var(--border);padding:1.4rem}
.stat-lbl{font-size:.58rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-bottom:.4rem}
.stat-val{font-family:var(--serif);font-size:1.9rem;font-weight:300;color:var(--text);line-height:1}
.stat-sub{font-size:.7rem;color:var(--dim);margin-top:.3rem}
.admin-grid{display:grid;grid-template-columns:1.8fr 1fr;gap:1.25rem;margin-bottom:1.75rem}
.admin-card{background:var(--bg);border:1px solid var(--border);padding:1.4rem}
.admin-card-title{font-family:var(--serif);font-size:1.05rem;font-weight:300;margin-bottom:1.1rem;padding-bottom:.65rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.admin-table{width:100%;border-collapse:collapse}
.admin-table th{font-size:.58rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding:.65rem .9rem;text-align:left;border-bottom:1px solid var(--border)}
.admin-table td{font-size:.8rem;color:var(--muted);padding:.65rem .9rem;border-bottom:1px solid var(--border)}
.admin-table tr:last-child td{border-bottom:none}
.admin-table tr:hover td{background:var(--deep)}
.top-item{display:flex;align-items:center;gap:.85rem;padding:.65rem 0;border-bottom:1px solid var(--border)}
.top-item:last-child{border-bottom:none}
.top-item-img{width:32px;height:40px;object-fit:cover;border:1px solid var(--border);flex-shrink:0}
.top-item-name{font-size:.8rem;font-weight:500;flex:1;line-height:1.3}
.top-item-count{font-size:.72rem;color:var(--dim)}
.top-item-val{font-family:var(--serif);font-size:.9rem;flex-shrink:0}
canvas{max-height:240px}

/* ── Utility ── */
.hidden{display:none!important}

/* ── Checkout Steps (new class names) ── */
.checkout-step{display:flex;align-items:center;gap:.5rem;font-size:.63rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.checkout-step-sep{flex:1;height:1px;background:var(--border);margin:0 .6rem}
.step-num{width:26px;height:26px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.7rem;flex-shrink:0}
.checkout-step.active{color:var(--text)}
.checkout-step.active .step-num{background:var(--gold);color:#fff;border-color:var(--gold)}
.checkout-step.done .step-num{background:var(--teal);color:#fff;border-color:var(--teal)}
.checkout-panel-title{font-family:var(--serif);font-size:1.4rem;font-weight:300;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
.checkout-panel-foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}
.checkout-shipping-note{font-size:.75rem;color:var(--teal);margin-top:.25rem}
.checkout-ch-note{font-size:.78rem;color:var(--dim);line-height:1.6;margin-top:.6rem;padding:.75rem .9rem;background:var(--surface);border:1px solid var(--border)}
.checkout-ch-note a{color:var(--gold)}
.product-ch-note{font-size:.78rem;color:var(--dim);line-height:1.6;margin-top:1rem}
.product-ch-note a{color:var(--gold)}
.checkout-legal-note{font-size:.72rem;color:var(--dim);margin-top:.85rem;line-height:1.65}
.checkout-legal-note a{color:var(--dim);text-decoration:underline}
.checkout-notice{margin:1rem 0;padding:.9rem 1.15rem;border:1px solid var(--border);background:var(--bg);font-size:.82rem;line-height:1.6;border-left:3px solid var(--teal)}
.checkout-notice--warn{border-left-color:#f59e0b;background:#fffbeb}
.checkout-consent{display:flex;gap:.6rem;align-items:flex-start;margin-top:1.25rem;font-size:.8rem;line-height:1.6;color:var(--muted)}
.checkout-consent input{margin-top:.2rem;flex-shrink:0}
.checkout-consent a{color:var(--gold);text-decoration:underline}
.form-row{display:flex;gap:.85rem;flex-wrap:wrap}
.form-row-2 > *{flex:1;min-width:140px}
.form-row-3 > *{flex:1;min-width:100px}
.input-error{border-color:var(--error)!important}
.stripe-error{font-size:.75rem;color:var(--error);margin-top:.4rem;min-height:1rem}
.stripe-test-hint{font-size:.68rem;color:var(--dim);margin-top:.5rem;font-style:italic}
/* Payment tabs (button style) */
.payment-tabs{display:flex;gap:.5rem;margin-bottom:1.4rem}
.payment-tab{font-size:.64rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:.6rem 1.2rem;border:1px solid var(--border);background:none;color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:all .2s}
.payment-tab:hover{border-color:var(--gold);color:var(--gold)}
.payment-tab.active{background:var(--gold);color:#fff;border-color:var(--gold)}
/* Review */
.review-section{border:1px solid var(--border);padding:1.1rem 1.25rem;margin-bottom:.85rem}
.review-section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.6rem}
.review-section-title{font-size:.65rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.review-edit{background:none;border:none;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);cursor:pointer;padding:0}
.review-edit:hover{color:var(--gold-l)}
.review-text{font-size:.85rem;color:var(--muted);line-height:1.75}
.review-item{display:grid;grid-template-columns:44px 1fr auto;gap:.7rem;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border)}
.review-item:last-of-type{border-bottom:none}
.review-item-img{width:44px;height:55px;object-fit:cover;object-position:center top;border:1px solid var(--border)}
.review-item-name{font-size:.82rem;font-weight:500;line-height:1.3}
.review-item-qty{font-size:.7rem;color:var(--dim)}
.review-item-total{font-family:var(--serif);font-size:.9rem}
.review-totals{padding:.85rem 0 0;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.35rem}
.review-total-row{display:flex;justify-content:space-between;font-size:.85rem;color:var(--muted)}
.review-total-main{font-family:var(--serif);font-size:1.1rem;color:var(--text);font-weight:500;margin-top:.3rem}
/* Order summary extras */
.order-sum-row{display:flex;justify-content:space-between;font-size:.83rem;color:var(--muted);padding:.3rem 0}
.order-sum-div{height:1px;background:var(--border);margin:.4rem 0}
.order-sum-item-name{font-size:.8rem;font-weight:500;line-height:1.3}
.order-sum-item-price{font-family:var(--serif);font-size:.88rem}
.order-sum-goodie{font-size:.7rem;color:var(--teal);margin-top:.9rem;padding:.55rem .7rem;background:rgba(45,107,103,.06);border-left:2px solid var(--teal)}

/* ── Success page extras ── */
.success-order-box{text-align:left;border:1px solid var(--border);padding:1.4rem;margin-bottom:1.75rem}
.success-order-head{font-size:.6rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-bottom:.9rem;padding-bottom:.65rem;border-bottom:1px solid var(--border)}
.success-order-item{display:grid;grid-template-columns:44px 1fr auto;gap:.7rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--border)}
.success-order-item:last-of-type{border-bottom:none}
.success-order-img{width:44px;height:55px;object-fit:cover;border:1px solid var(--border)}
.success-order-name{font-size:.82rem;font-weight:500;line-height:1.3}
.success-order-price{font-family:var(--serif);font-size:.9rem}
.success-order-totals{padding:.85rem 0 0;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem}
.success-total-row{display:flex;justify-content:space-between;font-size:.85rem;color:var(--muted)}
.success-total-main{font-family:var(--serif);font-size:1.1rem;color:var(--text);font-weight:500;margin-top:.3rem}
.success-goodie{font-size:.85rem;color:var(--teal);background:rgba(45,107,103,.06);padding:1rem 1.1rem;border-left:3px solid var(--teal);text-align:left;margin-bottom:2rem;line-height:1.7}
.success-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* ── Account extras ── */
.account-nav-btn{display:block;width:100%;padding:.9rem 1.4rem;font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:none;border:none;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;transition:all .2s}
.account-nav-btn:last-child{border-bottom:none}
.account-nav-btn:hover,.account-nav-btn.active{color:var(--gold);background:var(--surface)}
.account-section-title{font-family:var(--serif);font-size:1.2rem;font-weight:300;margin-bottom:1.25rem;padding-bottom:.7rem;border-bottom:1px solid var(--border)}
.orders-empty{text-align:center;padding:3rem 1rem;color:var(--dim)}
.order-card{border:1px solid var(--border);margin-bottom:1rem;background:var(--bg)}
.order-card-head{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1.25rem;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.5rem}
.order-card-id{font-size:.7rem;font-weight:600;letter-spacing:.12em;color:var(--text);margin-right:.65rem}
.order-card-date{font-size:.7rem;color:var(--dim)}
.order-card-items{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}
.order-card-item{display:grid;grid-template-columns:44px 1fr auto;gap:.7rem;align-items:center}
.order-card-img{width:44px;height:55px;object-fit:cover;border:1px solid var(--border)}
.order-card-item-name{font-size:.83rem;font-weight:500;line-height:1.3}
.order-card-item-var{font-size:.7rem;color:var(--dim)}
.order-card-item-qty{font-size:.7rem;color:var(--dim)}
.order-card-item-price{font-family:var(--serif);font-size:.9rem}
.order-card-foot{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;border-top:1px solid var(--border);background:var(--surface)}
.order-pay-method{font-size:.72rem;color:var(--dim)}
.order-total{font-size:.82rem;color:var(--muted)}
.order-total strong{font-family:var(--serif);font-size:1rem;color:var(--text)}
.order-status{font-size:.58rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:.25rem .6rem}
.order-status--teal{background:rgba(45,107,103,.12);color:var(--teal)}
.order-status--gold{background:rgba(184,144,90,.12);color:var(--gold-d)}
.order-status--sage{background:rgba(79,104,69,.12);color:var(--sage-d)}
.order-status--dim{background:var(--surface);color:var(--dim)}

/* ── Auth Nav ── */
#authNavItem{display:flex;align-items:center;gap:.6rem}
.auth-nav-name{font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.auth-nav-logout{font-size:.6rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;background:none;border:1px solid var(--border);color:var(--dim);padding:.35rem .75rem;cursor:pointer;transition:all .2s}
.auth-nav-logout:hover{border-color:var(--gold);color:var(--gold)}
.auth-nav-login{font-size:.64rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);transition:color .2s}
.auth-nav-login:hover{color:var(--gold)}

/* ── Account User Card ── */
.account-user-card{padding:1.25rem;border:1px solid var(--border);margin-bottom:1rem;text-align:center}
.account-avatar{width:48px;height:48px;background:var(--gold);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:1.4rem;font-weight:300;margin:0 auto .65rem}
.account-user-name{font-size:.88rem;font-weight:500;color:var(--text)}
.account-user-email{font-size:.72rem;color:var(--dim);margin-top:.15rem}
.account-nav-btn--logout{color:var(--error)!important;border-top:1px solid var(--border);margin-top:.25rem}
.account-nav-btn--logout:hover{background:rgba(184,64,64,.05)!important}
.settings-row{display:flex;justify-content:space-between;align-items:center;padding:.65rem 0;border-bottom:1px solid var(--border);font-size:.85rem;color:var(--muted)}
.settings-row:last-of-type{border-bottom:none}
.settings-lbl{font-size:.62rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}

/* ── Admin extras ── */
.s-nav--admin{background:rgba(28,23,20,.97)}
.s-nav--admin .s-nav-links a{color:rgba(255,255,255,.55)}
.s-nav--admin .s-nav-links a:hover,.s-nav--admin .s-nav-links a.active{color:var(--gold)}
.s-nav--admin .s-cart-btn{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.15)}
.admin-badge{font-size:.58rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;background:var(--gold);color:#fff;padding:.25rem .65rem}
.admin-wrap{padding-top:5rem;min-height:100vh}
.admin-page-head{display:flex;justify-content:space-between;align-items:center;margin:2rem 0 1.5rem;flex-wrap:wrap;gap:.75rem}
.admin-page-title{font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.5rem);font-weight:300}
.stat-card{display:flex;align-items:center;gap:1rem;background:var(--bg);border:1px solid var(--border);padding:1.25rem}
.stat-card-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600;flex-shrink:0}
.stat-icon-gold{background:rgba(184,144,90,.15);color:var(--gold)}
.stat-icon-teal{background:rgba(45,107,103,.15);color:var(--teal)}
.stat-icon-sage{background:rgba(79,104,69,.15);color:var(--sage-d)}
.stat-card-body{display:flex;flex-direction:column;gap:.15rem}
.stat-val{font-family:var(--serif);font-size:1.9rem;font-weight:300;color:var(--text);line-height:1}
.stat-lbl{font-size:.58rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.admin-card{background:var(--bg);border:1px solid var(--border);padding:1.4rem}
.admin-card--wide{grid-column:1/-1}
.admin-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
.admin-card-title{font-family:var(--serif);font-size:1.05rem;font-weight:300}
.admin-card-actions{display:flex;gap:.5rem;align-items:center}
.admin-chart-wrap{position:relative}
.admin-table-wrap{overflow-x:auto}
.admin-table-empty{text-align:center;font-family:var(--serif);font-style:italic;color:var(--dim);padding:2rem}
.order-id-cell{font-size:.72rem;font-weight:600;letter-spacing:.1em;color:var(--text)}
.form-input--sm{padding:.4rem .65rem;font-size:.78rem;border:1px solid var(--border);background:var(--bg);color:var(--text)}
.btn-xs{padding:.35rem .75rem;font-size:.58rem}
.top-prod-row{display:flex;align-items:center;gap:.85rem;padding:.7rem 0;border-bottom:1px solid var(--border)}
.top-prod-row:last-child{border-bottom:none}
.top-prod-rank{font-size:.72rem;font-weight:600;color:var(--dim);width:1.2rem;text-align:center;flex-shrink:0}
.top-prod-img{width:32px;height:40px;object-fit:cover;border:1px solid var(--border);flex-shrink:0}
.top-prod-info{flex:1;min-width:0}
.top-prod-name{font-size:.82rem;font-weight:500;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-prod-qty{font-size:.7rem;color:var(--dim)}
.top-prod-rev{font-family:var(--serif);font-size:.9rem;flex-shrink:0}
/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:800;display:flex;align-items:center;justify-content:center;padding:1rem}
.modal{background:var(--bg);border:1px solid var(--border);max-width:560px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-l)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:1.1rem 1.4rem;border-bottom:1px solid var(--border);flex-shrink:0}
.modal-title{font-family:var(--serif);font-size:1.15rem;font-weight:300}
.modal-close{background:none;border:none;font-size:1.3rem;color:var(--dim);cursor:pointer;line-height:1;padding:.1rem}
.modal-close:hover{color:var(--text)}
.modal-body{overflow-y:auto;padding:1.25rem 1.4rem;flex:1;display:flex;flex-direction:column;gap:1rem}
.modal-foot{display:flex;gap:.75rem;align-items:center;padding:1rem 1.4rem;border-top:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}
.modal-section{display:flex;flex-direction:column;gap:.4rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
.modal-section:last-child{border-bottom:none;padding-bottom:0}
.modal-row{font-size:.83rem;color:var(--muted);line-height:1.7}
.modal-item{display:grid;grid-template-columns:36px 1fr auto;gap:.6rem;align-items:center;padding:.4rem 0;border-bottom:1px solid var(--border)}
.modal-item:last-child{border-bottom:none}
.modal-item-img{width:36px;height:45px;object-fit:cover;border:1px solid var(--border)}
.modal-totals{display:flex;flex-direction:column;gap:.3rem;padding:.75rem 0 0;border-top:1px solid var(--border)}
.modal-total-row{display:flex;justify-content:space-between;font-size:.83rem;color:var(--muted)}
.modal-total-main{font-family:var(--serif);font-size:1rem;color:var(--text);font-weight:500}

/* ── Back to top ── */
.back-top{position:fixed;bottom:2rem;right:2rem;z-index:300;width:44px;height:44px;background:var(--gold);color:var(--black);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .3s,visibility .3s,transform .3s,background .2s}
.back-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-top:hover{background:var(--gold-l)}
.back-top svg{width:16px;height:16px}

/* ── Footer ── */
footer{padding:2.5rem 0;border-top:1px solid var(--border)}
.ft-inner{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.ft-brand{font-family:var(--serif);font-size:1rem;letter-spacing:.1em;color:var(--dim)}
.ft-links{display:flex;flex-wrap:wrap;gap:.75rem 2rem;list-style:none}
.ft-links a{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);transition:color .2s;white-space:nowrap}
.ft-links a:hover{color:var(--muted)}
.ft-copy{font-size:.68rem;color:var(--dim)}
.ft-social{display:flex;gap:.6rem;align-items:center;justify-content:center;flex-basis:100%;margin-top:.9rem}.ft-social a{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;color:var(--dim);border:1px solid var(--border);border-radius:50%;padding:0;transition:color .2s,border-color .2s}.ft-social a:hover{color:var(--gold);border-color:var(--border-gold)}.ft-social svg{width:15px;height:15px;fill:currentColor}

/* ── Responsive ── */
@media(max-width:960px){
  .product-detail{grid-template-columns:1fr;gap:2rem}
  .product-gallery-main{max-width:320px;margin:0 auto}
  .product-gallery-extra{max-width:420px;margin:.9rem auto 0}
  .cart-layout{grid-template-columns:1fr}
  .cart-sum-box{position:static}
  .checkout-layout{grid-template-columns:1fr}
  .order-sum{position:static}
  .account-layout{grid-template-columns:1fr}
  .admin-stats{grid-template-columns:repeat(2,1fr)}
  .admin-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .s-nav-links{display:none}
  .products-grid{grid-template-columns:repeat(2,1fr);gap:1rem}
  .filter-bar{gap:.75rem}
  .filter-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;width:100%}
  .filter-tabs::-webkit-scrollbar{display:none}
  .filter-tab{flex:0 0 auto}
  .search-wrap{max-width:none;width:100%}
  .shop-section + .shop-section{margin-top:2.5rem;padding-top:2rem}
  .shop-section-head{margin-bottom:1.25rem}
  .cart-table-head,.cart-table-row{grid-template-columns:3fr 1fr 1fr}
  .cart-table-row > *:last-child{display:none}
  .form-grid{grid-template-columns:1fr}
  .checkout-steps .step span{display:none}
  .admin-stats{grid-template-columns:1fr 1fr}
  /* Warenkorb-Zähler als Inline-Pille statt schwebendem Badge (sonst am Rand abgeschnitten) */
  .s-cart-count{position:static;top:auto;right:auto;margin-left:.15rem}
  .ft-inner{flex-direction:column;gap:1.25rem;text-align:center}
  .ft-links{justify-content:center}
}
@media(max-width:480px){
  .container{padding:0 1rem}
  .products-grid{grid-template-columns:1fr}
  .cart-sidebar{width:100vw}
  .s-nav{padding:.85rem 1rem}
  .admin-stats{grid-template-columns:1fr}
}
