/* Extracted from templates/portal/product.html on 2026-08-05.
 * Rules from the `content` block — the product page body.
 * Two files, not one: base.html renders a <style> of its own BETWEEN the `content` and
 * `scripts` blocks (base.html:606, with {% block scripts %} at 651). Merging these
 * would move the tail rules ahead of it and silently change which declarations win.
 */
@media(max-width:768px){.pd-cover-wish{display:flex !important}.pd-wishlist-btn{display:none !important}}
.pd-navarrow{display:none}@media(max-width:768px){.pd-main-wrap{position:relative;width:100% !important;max-width:100% !important;padding:4px 0 0;box-sizing:border-box}.pd-cover-box{position:relative;width:calc(100% - 96px);max-width:calc(100% - 96px);margin:0 auto}.pd-main-img{width:100% !important;max-width:100% !important;height:auto !important;display:block}.pd-navarrow{display:flex;position:absolute;top:50%;transform:translateY(-50%);width:30px;height:48px;align-items:center;justify-content:center;border:none;border-radius:11px;background:rgba(255,255,255,.8);box-shadow:0 2px 9px rgba(0,0,0,.16);color:var(--accent);font-size:23px;line-height:1;padding:0 0 3px;z-index:4;cursor:pointer;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.pd-navarrow.prev{left:8px}.pd-navarrow.next{right:8px}.pd-thumbs{display:none}.pd-gallery-wrap{margin-bottom:0 !important}}
/* `.pd-mscore-desktop` / `.pd-mscore-mobile` were removed from the query below: this
 * storefront has no such elements. Upstream ships the editorial score TWICE and hides
 * one; product.css makes the single `.pd-escore` responsive instead. A selector with no
 * markup is worse than none - it reads as load-bearing, and the obvious way to "fix"
 * the mobile score becomes adding a second copy that can disagree with the first.
 */
@media(max-width:768px){.pd-review-under-cover{display:none}.pd-stock-near-price{display:flex!important}.pd-qty-wrap{display:none!important}.pd-stock-old{display:none!important}.pd-in-stock{display:none!important}#tab-glossary{max-height:230px;overflow:hidden}.pd-gloss-more{display:block!important}}.rm-chip{padding:7px 13px;border:1.5px solid #e0e5f0;background:#fff;color:#475569;border-radius:20px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}.rm-chip.rm-on{border-color:var(--accent);background:#FFF7ED;color:var(--accent)}
@media(max-width:767px){.pd-authrow{flex-wrap:wrap}.pd-authlink{flex-basis:100%;margin:10px 0 0 56px}}
@media (max-width:768px){.humanized-wrap{flex-direction:column}.hide-on-mobile{display:none!important}}
@media(max-width:767px){.pd-authrow{flex-wrap:wrap}.pd-authlink{flex-basis:100%;margin:10px 0 0 56px}}
@keyframes blink-prod{from,to{border-color:transparent}50%{border-color:#F97316}}
.pd-grid>*{min-width:0}@media(max-width:768px){.pd-grid>*{max-width:100%}.pd-gallery-wrap{min-width:0}}
/* ─── Premium sticky bar ─── */
.pd-sticky-wish { flex-shrink:0; width:46px; height:46px; border-radius:12px; background:#fff; border:1.5px solid #E2E8F0; color:#94A3B8; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:all .2s; margin-right:10px; }
.pd-sticky-wish:hover { border-color:var(--accent); color:var(--accent); }
@media (max-width: 768px) { .pd-sticky-wish { display:none; } } /* mobile bar is tight; heart lives in the bottom nav */
.pd-sticky-wish.wish-active { border-color:var(--accent); color:var(--accent); }

.pd-sticky-bar {
  position: fixed; bottom: -100px; left: 0; right: 0; z-index: 997;
  background: rgba(255,255,255,0.96); backdrop-filter: saturate(180%) blur(12px);
  border-top: 1px solid rgba(0,0,0,0.06);
  box-shadow: 0 -8px 32px rgba(0,0,0,0.06);
  transition: bottom .35s cubic-bezier(.2,.8,.2,1);
}
.pd-sticky-bar.visible { bottom: 0; }
.pd-sticky-inner {
  display: flex; align-items: center; gap: 20px;
  max-width: 1200px; margin: 0 auto; padding: 10px 20px;
}
/* Cart label: full 'Add to cart' on desktop, short 'Add' on mobile */
.pd-cart-mobile { display: none; }
.pd-cart-desktop { display: inline; }
@media(max-width:768px) {
  .pd-cart-mobile { display: inline; }
  .pd-cart-desktop { display: none; }
}

/* Left: product link */
.pd-sticky-product { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; flex: 1; min-width: 0; max-width: 380px; }
.pd-sticky-thumb { width: 44px; height: 66px; object-fit: cover; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.12); flex-shrink: 0; }
.pd-sticky-meta { min-width: 0; line-height: 1.3; }
/* All sticky-bar text uses Inter (modern sans) */
.pd-sticky-bar, .pd-sticky-bar * {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
}

/* LEFT: product block (thumb + name + price) */
.pd-sticky-product {
  display: flex; align-items: center; gap: 12px;
  text-decoration: none; color: inherit;
  flex: 1; min-width: 0;
}
.pd-sticky-thumb {
  width: 48px; height: 48px;
  object-fit: cover; object-position: top center;  /* crop bottom — show top of book */
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.10);
  flex-shrink: 0;
}
.pd-sticky-meta { min-width: 0; line-height: 1.25; flex: 1; }
.pd-sticky-name {
  font-size: 14px; font-weight: 600; color: #1C1917;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  letter-spacing: -0.1px;
  margin-bottom: 2px;
}
.pd-sticky-price-row {
  display: flex; align-items: baseline; gap: 8px; flex-wrap: nowrap;
}
.pd-sticky-price-now {
  font-size: 17px; font-weight: 700; color: var(--accent);
  letter-spacing: -0.3px;
  font-variant-numeric: tabular-nums;
}
.pd-sticky-price-old {
  font-size: 12px; font-weight: 500; color: #94A3B8;
  text-decoration: line-through;
  font-variant-numeric: tabular-nums;
}
.pd-sticky-discount-pill {
  display: inline-block;
  background: #DC2626; color: #fff;
  font-size: 10px; font-weight: 700; letter-spacing: 0.1px;
  padding: 2px 6px; border-radius: 5px;
  white-space: nowrap;
}
.pd-sticky-badge-pill {
  display: inline-block; color: #fff;
  font-size: 10px; font-weight: 700; letter-spacing: 0.3px; text-transform: uppercase;
  padding: 2px 6px; border-radius: 5px;
  white-space: nowrap;
}

/* RIGHT: cart button */
.pd-sticky-cart {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 22px;
  background: var(--accent); color: #fff;
  border: none; border-radius: 10px;
  font-size: 14px; font-weight: 700;
  cursor: pointer; transition: all .15s; font-family: inherit;
  box-shadow: 0 4px 14px rgba(234,88,12,0.25);
  flex-shrink: 0;
  white-space: nowrap;
}
.pd-sticky-cart:hover { background: var(--accent-hover); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(234,88,12,0.35); }
.pd-sticky-cart:active { transform: translateY(0); }

/* Mobile: keep same single-row layout */
@media (max-width: 768px) {
  .pd-sticky-bar {
    bottom: -120px;                          /* hidden by default on mobile too */
    box-shadow: 0 -4px 16px rgba(0,0,0,0.08);
  }
  .pd-sticky-bar.visible { bottom: 56px; }   /* shown state sits ABOVE the bottom nav */
  .pd-sticky-inner {
    gap: 10px;
    padding: 8px 12px;
    align-items: center;
    flex-wrap: nowrap;
  }
  .pd-sticky-product { gap: 10px; }
  .pd-sticky-thumb { width: 44px; height: 44px; border-radius: 6px; }
  .pd-sticky-name { font-size: 13px; font-weight: 600; color: #1C1917; line-height: 1.25; margin-bottom: 2px; }
  .pd-sticky-price-now { font-size: 16px; }
  .pd-sticky-price-old { font-size: 11px; }
  .pd-sticky-discount-pill,
  .pd-sticky-badge-pill { font-size: 9px; padding: 2px 5px; }
  .pd-sticky-cart {
    padding: 10px 14px;
    font-size: 13px;
    border-radius: 10px;
    min-height: 42px;
  }
  .pd-sticky-cart svg { width: 16px; height: 16px; }
}
@media (max-width: 360px) {
  .pd-sticky-cart-label { display: none; }   /* very narrow: icon-only */
  .pd-sticky-cart { padding: 10px 12px; }
}
@media(max-width:768px){.hide-on-mobile{display:none!important}#ai-chat-bubble{display:none!important}}
@keyframes pulse-coupon { 0%,100%{opacity:1} 50%{opacity:.7} }
@media(min-width:769px){.related-card{min-width:unset!important;max-width:unset!important;flex-shrink:unset!important}}
.b1c-toggle{flex:1;padding:10px 8px;border:1.5px solid #E2E8F0;background:#fff;border-radius:10px;font-size:13.5px;font-weight:700;color:#475569;cursor:pointer;font-family:inherit;transition:all .15s}
.b1c-toggle.b1c-active{border-color:var(--accent);background:#FFF7ED;color:var(--accent)}
