/* ==========================================================================
   H&T Library WooCommerce Styles
   Covers: shop, product, cart, checkout, my-account
   ========================================================================== */

/* ── 1. Notices ─────────────────────────────────────────────────────────── */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
  border-top: 0;
  border-left: 4px solid var(--primary);
  background: var(--beige-light);
  color: var(--dark-ink);
  border-radius: 6px;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  list-style: none;
}
.woocommerce-error {
  border-left-color: #c0392b;
  background: #fdf0ee;
}
.woocommerce-info {
  border-left-color: var(--muted);
  background: var(--cream);
}
.woocommerce-message::before,
.woocommerce-info::before {
  color: var(--primary);
}
.woocommerce-message .button,
.woocommerce-info .button {
  float: right;
}

/* ── 2. Buttons ──────────────────────────────────────────────────────────── */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .cart .button,
.woocommerce .cart input.button,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button {
  background: var(--primary);
  color: #fff;
  border: none;
  border-radius: 50px;
  padding: .65rem 1.5rem;
  font-family: var(--bpt-body-font, inherit);
  font-size: .9rem;
  font-weight: 600;
  letter-spacing: .03em;
  cursor: pointer;
  transition: background .2s, transform .1s;
  text-decoration: none;
  display: inline-block;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce-page a.button:hover,
.woocommerce-page button.button:hover,
.woocommerce-page input.button:hover {
  background: var(--primary-dark);
  color: #fff;
  transform: translateY(-1px);
}
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce-page a.button.alt,
.woocommerce-page button.button.alt {
  background: var(--primary);
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce-page a.button.alt:hover {
  background: var(--primary-dark);
}
.woocommerce a.button.disabled,
.woocommerce a.button:disabled,
.woocommerce button.button:disabled {
  background: var(--beige-mid);
  color: var(--muted);
  cursor: not-allowed;
  transform: none;
}

/* ── 3. Form Fields ──────────────────────────────────────────────────────── */
.woocommerce form .form-row label,
.woocommerce-page form .form-row label {
  display: block;
  font-size: .85rem;
  font-weight: 600;
  color: var(--dark-ink);
  margin-bottom: .35rem;
  letter-spacing: .02em;
}
.woocommerce form .form-row .required {
  color: var(--primary);
  text-decoration: none;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select,
.woocommerce form p input.input-text,
.woocommerce form p textarea {
  width: 100%;
  background: #fffaf5;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  padding: .7rem 1rem;
  font-size: .95rem;
  color: var(--dark-ink);
  font-family: inherit;
  transition: border-color .2s, box-shadow .2s;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-page form .form-row input.input-text:focus,
.woocommerce-page form .form-row select:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(183, 83, 61, .15);
}
.woocommerce form .form-row select,
.woocommerce-page form .form-row select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238C6F5E' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .9rem center;
  padding-right: 2.5rem;
  cursor: pointer;
}
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select {
  border-color: #c0392b;
  box-shadow: 0 0 0 3px rgba(192, 57, 43, .12);
}
.woocommerce form .form-row.woocommerce-validated input.input-text {
  border-color: #4a7c59;
}

/* ── 4. Section headings ─────────────────────────────────────────────────── */
.woocommerce h2,
.woocommerce h3,
.woocommerce-page h2,
.woocommerce-page h3 {
  font-family: var(--bpt-heading-font, serif);
  color: var(--dark-ink);
  margin-bottom: 1rem;
}

/* ══════════════════════════════════════════════════════════════════════════
   5. CHECKOUT — premium two-column layout
   ══════════════════════════════════════════════════════════════════════════ */

/* Page body */
.woocommerce-checkout .ht-library-shop-body,
.woocommerce-cart    .ht-library-shop-body,
.woocommerce-account .ht-library-shop-body {
  background: #F5F1EB;
  padding-block: clamp(2rem, 5vw, 4rem);
}

/* Two-column checkout grid */
.woocommerce-checkout .col2-set {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   1.5rem;
  margin-bottom:         1.5rem;
}
.woocommerce-checkout form.checkout {
  display:               grid;
  grid-template-columns: 1fr 380px;
  gap:                   2rem;
  align-items:           start;
}
.woocommerce-checkout form.checkout > * { min-width: 0; }

/* Checkout cards */
.woocommerce-checkout #customer_details,
.woocommerce-checkout .woocommerce-checkout-review-order {
  background:    #fff;
  border:        none;
  border-radius: 16px;
  padding:       2rem;
  box-shadow:    0 2px 16px rgba(0,0,0,.06), 0 1px 4px rgba(0,0,0,.04);
}

/* Section headings */
.woocommerce-checkout #customer_details h3,
.woocommerce-checkout .woocommerce-checkout-review-order h3 {
  font-family:    var(--bpt-heading-font, serif);
  font-size:      1.1rem;
  font-weight:    700;
  color:          var(--dark-ink);
  padding-bottom: .75rem;
  margin-bottom:  1.5rem;
  border-bottom:  2px solid #F0EBE3;
  display:        flex;
  align-items:    center;
  gap:            .5rem;
}

/* Order review table */
.woocommerce-checkout-review-order-table {
  width:           100%;
  border-collapse: collapse;
}
.woocommerce-checkout-review-order-table thead th {
  background:      #F8F4EF;
  color:           var(--muted);
  font-size:       .72rem;
  font-weight:     700;
  letter-spacing:  .08em;
  text-transform:  uppercase;
  padding:         .55rem 1rem;
  border-bottom:   2px solid #EDE7DD;
}
.woocommerce-checkout-review-order-table tbody tr {
  border-bottom: 1px solid #EDE7DD;
  transition:    background .15s;
}
.woocommerce-checkout-review-order-table tbody tr:hover { background: #FDF9F5; }
.woocommerce-checkout-review-order-table tbody td,
.woocommerce-checkout-review-order-table tfoot  td,
.woocommerce-checkout-review-order-table tfoot  th {
  padding: .7rem 1rem;
  color:   var(--dark-ink);
}
.woocommerce-checkout-review-order-table tfoot .order-total td,
.woocommerce-checkout-review-order-table tfoot .order-total th {
  font-size:   1.05rem;
  font-weight: 700;
  border-top:  2px solid #EDE7DD;
  color:       var(--dark-ink);
}

/* Payment section */
#payment {
  background:    #fff;
  border-radius: 16px;
  border:        none;
  padding:       1.75rem;
  margin-top:    1.5rem;
  box-shadow:    0 2px 16px rgba(0,0,0,.06), 0 1px 4px rgba(0,0,0,.04);
}
#payment ul.payment_methods {
  list-style: none;
  margin:     0 0 1.25rem;
  padding:    0;
}
#payment ul.payment_methods li {
  padding:       .75rem 0;
  border-bottom: 1px solid #EDE7DD;
}
#payment ul.payment_methods li:last-child { border-bottom: none; }
#payment ul.payment_methods li label {
  display:     flex;
  align-items: center;
  gap:         .6rem;
  font-weight: 600;
  color:       var(--dark-ink);
  cursor:      pointer;
}
#payment ul.payment_methods li input[type="radio"] {
  accent-color: var(--primary);
  width:        16px;
  height:       16px;
}
#payment .payment_box {
  background:    #F8F4EF;
  border-radius: 10px;
  padding:       1rem 1.1rem;
  margin-top:    .6rem;
  font-size:     .88rem;
  color:         var(--muted);
}
#place_order {
  width:          100%;
  padding:        1rem 1.5rem;
  font-size:      1rem;
  font-weight:    700;
  border-radius:  50px !important;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-top:     1.25rem;
  background:     linear-gradient(135deg, var(--primary), var(--primary-dark)) !important;
  color:          #fff !important;
  border:         none !important;
  box-shadow:     0 6px 20px rgba(183,83,61,.3);
  transition:     transform .2s, box-shadow .2s;
}
#place_order:hover {
  transform:  translateY(-2px);
  box-shadow: 0 10px 28px rgba(183,83,61,.38);
}

/* Checkout trust row */
.woocommerce-checkout .woocommerce-checkout-review-order::after {
  content:        '🔒 Secure checkout · SSL encrypted · Your info is safe';
  display:        block;
  margin-top:     1.25rem;
  font-size:      .75rem;
  color:          var(--muted);
  text-align:     center;
  letter-spacing: .02em;
}

/* Order summary — checkout page */
.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-order-summary-item:last-child > div {
  padding-bottom: 0;
  align-content: center;
}
.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-order-summary-item__description {
  padding: 4px 12px 12px 24px;
  word-break: break-word;
  vertical-align: middle;
  align-self: center;
}

/* ══════════════════════════════════════════════════════════════════════════
   6. CART — premium block-cart layout
   ══════════════════════════════════════════════════════════════════════════ */

/* Page background */
.woocommerce-cart .ht-library-shop-body {
  background: #F5F1EB;
  padding-block: clamp(2rem, 4vw, 4rem);
}

/* Reset WC block max-width */
.wp-block-woocommerce-cart { max-width: 100% !important; padding: 0 !important; }

/* ── Two-column layout 2/3 + 1/3 ───────────────────────────────────────── */
/* WC renders .wc-block-components-sidebar-layout as flex 65/35 — override */
.wc-block-components-sidebar-layout.wc-block-cart {
  align-items: start !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  margin: 0 !important;
}
.wc-block-components-sidebar-layout .wc-block-components-main {
  width: 65% !important;
  padding-right: 1.5rem !important;
  box-sizing: border-box;
}
.wc-block-components-sidebar {
  width: 35% !important;
  padding-left: 0 !important;
  box-sizing: border-box;
  position: sticky !important;
  top: calc(var(--bpt-header-h, 72px) + 1.5rem) !important;
}

/* Skeleton loading — keep two-column side by side */
.wc-block-components-sidebar-layout.wc-block-cart--skeleton {
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: start !important;
  gap: 0 !important;
}
.wc-block-components-sidebar-layout.wc-block-cart--skeleton .wc-block-components-main {
  width: 65% !important;
  padding-right: 1.5rem !important;
}
.wc-block-components-sidebar-layout.wc-block-cart--skeleton .wc-block-components-sidebar {
  width: 35% !important;
  padding-left: 0 !important;
}

/* ── Items card ─────────────────────────────────────────────────────────── */
.wc-block-cart__main .wc-block-cart-items,
.wc-block-cart-items {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 4px 28px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,.04);
}

/* Table header row */
.wc-block-cart-items__header {
  background: #FAF7F3;
  border-bottom: 1px solid #EDE7DD;
}
table.wc-block-cart-items .wc-block-cart-items__header th,
.wc-block-cart__main .wc-block-cart-items th,
.wc-block-cart-items__header th {
  padding: 1rem 1.25rem !important;
  font-size: .65rem !important;
  font-weight: 700 !important;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: left;
  white-space: nowrap;
}
/* Override WC's 80px image header column */
table.wc-block-cart-items .wc-block-cart-items__header-image,
.wc-block-cart-items__header-image { width: 160px !important; }
.wc-block-cart-items__header-total { text-align: right !important; }

/* ── Item row ───────────────────────────────────────────────────────────── */
.wc-block-cart-items__row {
  border-bottom: 1px solid #F0EBE3;
  transition: background .15s;
}
.wc-block-cart-items__row:last-child { border-bottom: none; }
.wc-block-cart-items__row:hover { background: #FDFAF7; }

/* Image cell */
table.wc-block-cart-items .wc-block-cart-item__image,
.wc-block-cart__main .wc-block-cart-items .wc-block-cart-item__image,
.wc-block-cart-item__image {
  padding: 1.5rem 0.75rem 1.5rem 1.5rem !important;
  vertical-align: middle !important;
  width: 160px !important;
}
.wc-block-cart-item__image a { display: block; }
/* Override WC's img width:100% with fixed square */
table.wc-block-cart-items .wc-block-cart-item__image img,
.wc-block-cart-item__image img {
  width: 112px !important;
  height: 112px !important;
  object-fit: cover !important;
  border-radius: 14px !important;
  display: block !important;
  margin: 0 !important;
  box-shadow: 0 2px 12px rgba(0,0,0,.12) !important;
  flex-shrink: 0 !important;
}

/* Product cell */
table.wc-block-cart-items .wc-block-cart-item__product,
.wc-block-cart-item__product {
  padding: 1.5rem 1.25rem !important;
  vertical-align: middle !important;
}
.wc-block-cart-item__wrap { display: flex; flex-direction: column; gap: .5rem; }

/* Product name — override WC's 14px small preset */
table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name,
.wc-block-cart__main .wc-block-components-product-name,
.wc-block-components-product-name {
  font-family: var(--bpt-heading-font, serif) !important;
  font-weight: 700 !important;
  color: var(--dark-ink) !important;
  text-decoration: none !important;
  line-height: 1.3 !important;
  display: block !important;
  transition: color .2s;
}

.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name,
.woocommerce-cart .wc-block-cart__main .wc-block-components-product-name,
.wc-block-cart .wc-block-components-product-name {
  font-size: 1.55rem !important;
}
.wc-block-components-product-name:hover { color: var(--primary) !important; }

/* Unit price — override WC's font-size:small */
table.wc-block-cart-items .wc-block-cart-item__prices,
.wc-block-cart-item__prices {
  display: none !important;
}
.wc-block-cart-item__prices .wc-block-components-product-price__value {
  font-size: .925rem;
  color: var(--muted);
  font-weight: 500;
}

/* Hide verbose short description */
.wc-block-components-product-metadata__description { display: none; }

/* Quantity + remove row */
table.wc-block-cart-items .wc-block-cart-item__quantity,
.wc-block-cart-item__quantity {
  display: flex !important;
  align-items: center;
  gap: .85rem;
  margin-top: .5rem;
}

/* Qty stepper */
.wc-block-components-quantity-selector {
  display: inline-flex;
  align-items: center;
  border: 1.5px solid #DDD6CE;
  border-radius: 50px;
  background: #FDFAF7;
  overflow: hidden;
}
.wc-block-components-quantity-selector__button {
  width: 34px;
  height: 34px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  line-height: 1;
  transition: color .2s, background .2s;
  flex-shrink: 0;
  padding: 0;
}
.wc-block-components-quantity-selector__button:not([disabled]):hover {
  color: var(--primary);
  background: rgba(183,83,61,.08);
}
.wc-block-components-quantity-selector__button[disabled] { opacity: .35; cursor: default; }
.wc-block-components-quantity-selector__input {
  width: 40px;
  text-align: center;
  border: none;
  background: transparent;
  font-size: .9rem;
  font-weight: 700;
  color: var(--dark-ink);
  padding: .25rem 0;
  outline: none;
  -moz-appearance: textfield;
}
.wc-block-components-quantity-selector__input::-webkit-outer-spin-button,
.wc-block-components-quantity-selector__input::-webkit-inner-spin-button { -webkit-appearance: none; }

/* Remove link */
table.wc-block-cart-items .wc-block-cart-item__quantity .wc-block-cart-item__remove-link,
.wc-block-cart-item__remove-link {
  background: none !important;
  border: none !important;
  border-radius: 50% !important;
  cursor: pointer;
  padding: .3rem !important;
  color: #C8C0B7 !important;
  display: inline-flex !important;
  align-items: center;
  text-decoration: none !important;
  transition: color .2s, background .2s;
  width: auto !important;
  height: auto !important;
  white-space: normal !important;
}
.wc-block-cart-item__remove-link:hover { color: #c0392b !important; background: rgba(192,57,43,.08) !important; }
.editor-styles-wrapper table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link svg,
table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link svg {
  fill: rgb(76 66 55);
}

/* Line total cell */
table.wc-block-cart-items .wc-block-cart-item__total,
.wc-block-cart-item__total {
  padding: 1.5rem 1.5rem 1.5rem 1rem !important;
  vertical-align: middle !important;
  text-align: right !important;
  white-space: nowrap;
}
.wc-block-cart-item__total .wc-block-components-product-price__value {
  font-family: var(--bpt-heading-font, serif);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--dark-ink);
}

/* ── Right sidebar — ONE unified card ───────────────────────────────────── */
/* The sidebar itself becomes the card */
.wc-block-cart__sidebar,
.wc-block-components-sidebar {
  background: #fff !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 28px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,.04) !important;
}
/* Accent bar at top */
.wc-block-cart__sidebar::before,
.wc-block-components-sidebar::before {
  content: '';
  display: block;
  height: 4px;
  background: linear-gradient(90deg, var(--primary), var(--primary-dark));
  flex-shrink: 0;
}

/* Inner blocks — no card of their own */
.wp-block-woocommerce-cart-order-summary-block {
  background: transparent;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
  margin-bottom: 0;
}
.wp-block-woocommerce-cart-order-summary-block::before { display: none; }

.wc-block-cart .wp-block-woocommerce-cart-order-summary-block {
  border-bottom: 1px solid color-mix(in srgb, currentColor 20%, transparent);
  font-size: var(--wp--preset--font-size--small, 14px);
  line-height: 1.4;
  margin-bottom: 0px;
}

/* Remove separate checkout button card */
.wc-block-cart__submit {
  background: transparent;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
}

/* Divider between totals area and checkout button */
.wp-block-woocommerce-proceed-to-checkout-block {
  border-top: 1px solid #F0EBE3;
  padding: 1.25rem 1.5rem 1.5rem;
}

/* Accepted payment methods */
.wp-block-woocommerce-cart-accepted-payment-methods-block {
  padding: 0 1.5rem .75rem;
}

/* Totals title */
.wc-block-cart__totals-title {
  font-family: var(--bpt-heading-font, serif);
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--dark-ink) !important;
  padding: 1.5rem 1.5rem 1.1rem !important;
  border-bottom: 2px solid #f3f3f3 !important;
  margin: 0 !important;
  letter-spacing: -.01em;
}

h2.wp-block-woocommerce-cart-order-summary-heading-block.wc-block-cart__totals-title {
  border-bottom: 2px solid #f3f3f3 !important;
}

/* Totals wrapper */
.wc-block-components-totals-wrapper {
  border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent);
  padding: 0px 0;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* WC adds 16px sidebar padding — override with our values */
.wc-block-components-sidebar .wc-block-components-totals-item,
.wc-block-components-sidebar .wc-block-components-panel .wc-block-components-totals-item,
.wc-block-components-totals-item {
  padding: .85rem 1.5rem !important;
  border-bottom: 1px solid #F0EBE3;
  font-size: .9rem;
  color: var(--dark-ink);
}
.wc-block-components-totals-item:last-child { border-bottom: none; }
.wc-block-components-totals-item__label { color: var(--muted); font-weight: 500; }
.wc-block-components-totals-item__value { font-weight: 700; }

/* Estimated total row */
.wc-block-components-totals-footer-item {
  padding: 1.1rem 1.5rem !important;
  background: #FAF7F3;
  border-top: 1px solid #EDE7DD !important;
  border-bottom: none !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  font-family: var(--bpt-heading-font, serif);
  font-size: 1rem;
  font-weight: 700;
  color: var(--dark-ink);
}
.wc-block-components-totals-footer-item .wc-block-components-totals-footer-item-tax-value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-family: var(--bpt-heading-font, serif);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--primary);
}

/* ── Coupon panel ───────────────────────────────────────────────────────── */
.wc-block-components-sidebar .wc-block-components-totals-coupon,
.wc-block-components-totals-coupon.wc-block-components-panel {
  border-bottom: 1px solid #F0EBE3;
  padding: 0 !important;
}
.wc-block-components-sidebar .wc-block-components-panel__button,
.wc-block-components-panel__button {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .9rem 1.5rem !important;
  font-size: .85rem;
  font-weight: 600;
  color: var(--primary);
  cursor: pointer;
  background: transparent;
  border: none;
  width: 100%;
  text-align: left;
  transition: background .15s;
  user-select: none;
  font-family: inherit;
}
.wc-block-components-panel__button:hover { background: rgba(183,83,61,.04); }
.wc-block-components-panel__button-icon { margin-left: auto; color: var(--muted); }

/* Coupon form */
.wc-block-components-totals-coupon__form {
  display: flex;
  gap: .6rem;
  padding: .25rem 1.5rem 1.1rem !important;
}
.wc-block-components-totals-coupon__form input {
  flex: 1;
  background: #FDFAF7;
  border: 1.5px solid #DDD6CE;
  border-radius: 10px;
  padding: .65rem 1rem;
  font-size: .875rem;
  color: var(--dark-ink);
  font-family: inherit;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.wc-block-components-totals-coupon__form input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(183,83,61,.12);
}
.wc-block-components-totals-coupon__form .wc-block-components-button {
  background: var(--primary) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  padding: .65rem 1.25rem !important;
  font-size: .85rem !important;
  font-weight: 700 !important;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background .2s !important;
}
.wc-block-components-totals-coupon__form .wc-block-components-button:hover {
  background: var(--primary-dark) !important;
}

/* ── Checkout button ────────────────────────────────────────────────────── */
.wc-block-cart__submit-container { padding: 0 !important; }
.woocommerce-cart .wc-block-cart__submit-button.wc-block-components-button,
.woocommerce-cart .wc-block-cart__submit-button {
  display: block !important;
  width: 100% !important;
  padding: 1rem 1.5rem !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  border-radius: 50px !important;
  text-align: center !important;
  background: linear-gradient(135deg, #B7533D, #9A4432) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 6px 22px rgba(183,83,61,.30) !important;
  transition: transform .2s, box-shadow .2s !important;
  text-decoration: none !important;
  cursor: pointer !important;
}
.woocommerce-cart .wc-block-cart__submit-button:hover,
.woocommerce-cart .wc-block-cart__submit-button.wc-block-components-button:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 30px rgba(183,83,61,.40) !important;
  color: #fff !important;
  background: linear-gradient(135deg, #C4614A, #A84D37) !important;
}

/* Trust note below button */
.wp-block-woocommerce-proceed-to-checkout-block::after {
  content: '🔒  Secure & encrypted checkout';
  display: block;
  text-align: center;
  font-size: .72rem;
  color: var(--muted);
  margin-top: .65rem;
  letter-spacing: .03em;
}

/* ── Empty cart ─────────────────────────────────────────────────────────── */
.wp-block-woocommerce-empty-cart-block {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 4px 24px rgba(0,0,0,.08);
  overflow: hidden;
  padding: clamp(3rem, 8vw, 6rem) 1rem;
  text-align: center;
}
.wc-block-cart__empty-cart__title {
  font-family: var(--bpt-heading-font, serif) !important;
  font-size: clamp(1.4rem, 3vw, 2rem) !important;
  font-weight: 700 !important;
  color: var(--dark-ink) !important;
  margin: 1rem 0 !important;
}

/* ── Notices ─────────────────────────────────────────────────────────────── */
.wc-block-components-notice-banner {
  border-radius: 10px;
  border-left: 4px solid var(--primary);
  background: #fff8f5;
  padding: .9rem 1.1rem;
  margin-bottom: 1.25rem;
  font-size: .88rem;
}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 860px) {
  .wc-block-components-sidebar-layout.wc-block-cart,
  .wc-block-components-sidebar-layout.wc-block-cart--skeleton {
    flex-direction: column !important;
    flex-wrap: wrap !important;
  }
  .wc-block-components-sidebar-layout .wc-block-components-main,
  .wc-block-components-sidebar-layout.wc-block-cart--skeleton .wc-block-components-main {
    width: 100% !important;
    padding-right: 0 !important;
  }
  .wc-block-components-sidebar,
  .wc-block-components-sidebar-layout.wc-block-cart--skeleton .wc-block-components-sidebar {
    width: 100% !important;
    padding-left: 0 !important;
    position: static !important;
    margin-top: 1.5rem;
  }
}
@media (max-width: 640px) {
  /* Prevent table overflow */
  .wc-block-cart__main .wc-block-cart-items,
  .wc-block-cart-items { width: 100%; table-layout: fixed; }

  /* Image cell — narrower */
  table.wc-block-cart-items .wc-block-cart-item__image,
  .wc-block-cart-item__image { width: 80px !important; padding: .75rem .4rem .75rem .75rem !important; }
  table.wc-block-cart-items .wc-block-cart-items__header-image,
  .wc-block-cart-items__header-image { width: 80px !important; }
  table.wc-block-cart-items .wc-block-cart-item__image img,
  .wc-block-cart-item__image img { width: 60px !important; height: 60px !important; }

  /* Product cell */
  table.wc-block-cart-items .wc-block-cart-item__product,
  .wc-block-cart-item__product { padding: .75rem .4rem !important; }

  /* Pricing cell — tighter right padding to pull left */
  table.wc-block-cart-items .wc-block-cart-item__total,
  .wc-block-cart-item__total { padding: .75rem .5rem .75rem .25rem !important; white-space: nowrap; }

  .is-medium table.wc-block-cart-items .wc-block-cart-items__row,
  .is-mobile table.wc-block-cart-items .wc-block-cart-items__row,
  .is-small table.wc-block-cart-items .wc-block-cart-items__row { column-gap: 10px; }

  .woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name,
  .woocommerce-cart .wc-block-cart__main .wc-block-components-product-name,
  .wc-block-cart .wc-block-components-product-name { font-size: 1.15rem !important; }

  .wc-block-cart-items__header { display: none; }
  .wc-block-cart__totals-title { padding: 1.25rem 1.25rem 1rem !important; }
  .wc-block-components-totals-item { padding: .75rem 1.25rem !important; }
  .wc-block-components-totals-footer-item { padding: 1rem 1.25rem !important; }
  .wp-block-woocommerce-proceed-to-checkout-block { padding: 1rem 1.25rem 1.25rem; }
  .wp-block-woocommerce-cart-accepted-payment-methods-block { padding: 0 1.25rem .75rem; }
  .wc-block-components-panel__button { padding: .85rem 1.25rem !important; }
  .wc-block-components-totals-coupon__form { padding: .25rem 1.25rem 1rem !important; }
}

/* ══════════════════════════════════════════════════════════════════════════
   7. MY ACCOUNT — premium sidebar layout
   ══════════════════════════════════════════════════════════════════════════ */

/* Two-column layout — logged in only (nav sidebar + content) */
.logged-in.woocommerce-account .woocommerce {
  display:               grid;
  grid-template-columns: 240px 1fr;
  gap:                   2rem;
  align-items:           start;
}
.logged-in.woocommerce-account .woocommerce > * { min-width: 0; }

/* Tab card — not logged in */
.ht-library-account-tabs {
  max-width:     480px;
  margin:        0 auto;
  background:    #fff;
  border-radius: 16px;
  box-shadow:    0 2px 16px rgba(0,0,0,.06), 0 1px 4px rgba(0,0,0,.04);
  overflow:      hidden;
}
.ht-library-account-tabs__nav {
  display:       flex;
  border-bottom: 2px solid #F0EBE3;
}
.ht-library-account-tabs__btn {
  flex:          1;
  padding:       .9rem 1rem;
  font-size:     .9rem;
  font-weight:   600;
  color:         var(--muted);
  background:    transparent;
  border:        none;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  cursor:        pointer;
  transition:    color .2s, border-color .2s;
}
.ht-library-account-tabs__btn.is-active {
  color:               var(--primary);
  border-bottom-color: var(--primary);
}
.ht-library-account-tabs__panel        { padding: 2rem; }
.ht-library-account-tabs__panel[hidden] { display: none; }
.ht-library-account-tabs__form-footer {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; margin-bottom: 1.25rem;
}
.ht-library-account-tabs__lost-pw { font-size: .82rem; color: var(--muted); text-decoration: none; }
.ht-library-account-tabs__auto-pw { font-size: .88rem; color: var(--muted); margin-bottom: 1.25rem; }
.ht-library-account-tabs .ht-library-btn--primary { width: 100%; margin-top: .25rem; }

/* Sidebar nav */
.woocommerce-MyAccount-navigation {
  background:    #fff;
  border-radius: 16px;
  border:        none;
  overflow:      hidden;
  box-shadow:    0 2px 16px rgba(0,0,0,.06), 0 1px 4px rgba(0,0,0,.04);
  position:      sticky;
  top:           calc(var(--bpt-header-h, 72px) + 1.5rem);
}
.woocommerce-MyAccount-navigation::before {
  content:         '';
  display:         block;
  height:          6px;
  background:      linear-gradient(90deg, var(--primary), var(--primary-dark));
  border-radius:   16px 16px 0 0;
}
.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin:     0;
  padding:    .5rem 0;
}
.woocommerce-MyAccount-navigation ul li a {
  display:         flex;
  align-items:     center;
  padding:         .75rem 1.25rem;
  color:           var(--dark-ink);
  font-size:       .9rem;
  font-weight:     500;
  text-decoration: none;
  transition:      background .2s, color .2s, padding-left .2s;
  border-left:     3px solid transparent;
  position:        relative;
}
.woocommerce-MyAccount-navigation ul li a:hover {
  background:   #FDF9F5;
  color:        var(--primary);
  padding-left: 1.5rem;
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--is-active a {
  background:   #FDF9F5;
  color:        var(--primary);
  font-weight:  700;
  border-left:  3px solid var(--primary);
  padding-left: calc(1.25rem - 0px);
}

/* Account content card */
.woocommerce-MyAccount-content {
  background:    #fff;
  border-radius: 16px;
  padding:       2rem;
  box-shadow:    0 2px 16px rgba(0,0,0,.06), 0 1px 4px rgba(0,0,0,.04);
}
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
  font-family:    var(--bpt-heading-font, serif);
  color:          var(--dark-ink);
  margin-bottom:  1.25rem;
  padding-bottom: .75rem;
  border-bottom:  2px solid #F0EBE3;
}

/* Orders table in my account */
.woocommerce-MyAccount-content table.woocommerce-orders-table {
  width:           100%;
  border-collapse: collapse;
}
.woocommerce-MyAccount-content table.woocommerce-orders-table th {
  background:     #F8F4EF;
  color:          var(--muted);
  font-size:      .72rem;
  font-weight:    700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding:        .65rem 1rem;
  border-bottom:  2px solid #EDE7DD;
  text-align:     left;
}
.woocommerce-MyAccount-content table.woocommerce-orders-table td {
  padding:        .85rem 1rem;
  border-bottom:  1px solid #F0EBE3;
  color:          var(--dark-ink);
  vertical-align: middle;
}
.woocommerce-MyAccount-content table.woocommerce-orders-table tbody tr:last-child td { border-bottom: none; }
.woocommerce-MyAccount-content table.woocommerce-orders-table tbody tr:hover { background: #FDFAF7; }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-status mark {
  background:    rgba(79, 199, 135, .12);
  color:         #2E8B57;
  border-radius: 50px;
  padding:       .25rem .75rem;
  font-size:     .78rem;
  font-weight:   700;
}
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a {
  display:        inline-flex;
  align-items:    center;
  background:     linear-gradient(135deg, var(--primary), var(--primary-dark));
  color:          #fff !important;
  border-radius:  50px;
  padding:        .35rem .9rem;
  font-size:      .78rem;
  font-weight:    700;
  text-decoration: none;
  transition:     transform .15s, box-shadow .15s;
  white-space:    nowrap;
}
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a:hover {
  transform:  translateY(-1px);
  box-shadow: 0 4px 12px rgba(183,83,61,.28);
}

/* Account address cards */
.woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address {
  background:    #FDFAF7;
  border:        1px solid #EDE7DD;
  border-radius: 12px;
  padding:       1.5rem;
}
.woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address header {
  display:         flex;
  justify-content: space-between;
  align-items:     center;
  margin-bottom:   .75rem;
  padding-bottom:  .6rem;
  border-bottom:   1px solid #EDE7DD;
}
.woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address address {
  font-style: normal;
  color:      var(--dark-ink);
  font-size:  .9rem;
  line-height: 1.7;
}

/* ── 8. Product page ─────────────────────────────────────────────────────── */
.woocommerce div.product .price {
  color: var(--primary);
  font-size: 1.5rem;
  font-weight: 700;
}
.woocommerce div.product .price del {
  color: var(--muted);
  font-weight: 400;
  font-size: 1.1rem;
}
.woocommerce span.onsale {
  background: var(--primary);
  color: #fff;
  border-radius: 50px;
  padding: .2rem .7rem;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .04em;
  min-height: unset;
  min-width: unset;
  line-height: 1.4;
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  border-bottom: 2px solid var(--border);
  padding: 0;
  margin-bottom: 2rem;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  border: none;
  border-radius: 0;
  background: transparent;
  margin-right: .25rem;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-weight: 600;
  color: var(--muted);
  padding: .6rem 1rem;
  display: block;
  text-decoration: none;
  transition: color .2s;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  border-bottom: 3px solid var(--primary);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--primary);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active::after,
.woocommerce div.product .woocommerce-tabs ul.tabs::before {
  display: none;
  border: none;
  box-shadow: none;
}

/* ── 9. Shop ordering / results count ───────────────────────────────────── */
.woocommerce-ordering {
  margin: 0;
}
.woocommerce-ordering select {
  border: 1px solid var(--border);
  border-radius: 50px;
  padding: .3rem 1.9rem .3rem .75rem;
  background: #fffaf5;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 500;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238C6F5E' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .65rem center;
  cursor: pointer;
  outline: none;
  transition: border-color .2s;
}
.woocommerce-ordering select:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(183, 83, 61, .15);
}
.woocommerce-result-count {
  color: var(--muted);
  font-size: .875rem;
}

/* ── 10. Shop page layout ────────────────────────────────────────────────── */
/* Hero header now uses the shared .ht-library-page-header (global.css §11) */

/* Shop body */
.ht-library-shop-body {
  background: var(--cream);
  padding-block: clamp(3rem, 6vw, 5rem);
}

/* Toolbar */
.ht-library-shop-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .75rem;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border);
}
/* Override WooCommerce plugin floats inside our toolbar */
.ht-library-shop-toolbar .woocommerce-result-count,
.ht-library-shop-toolbar .woocommerce-ordering {
  float: none;
}
.ht-library-shop-toolbar .woocommerce-ordering {
  margin-left: auto;
}
.woocommerce-result-count {
  color: var(--muted);
  font-size: .875rem;
  margin: 0;
}

/* Product list — vertical listing rows */
.ht-library-shop-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* ── Listing row ─────────────────────────────────────────────────────────── */
.ht-library-pl {
  display: flex;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: flex-start;
  padding: clamp(1.75rem, 3vw, 2.5rem) 0;
  border-bottom: 1px solid var(--border);
}
.ht-library-shop-list > .ht-library-pl:first-child {
  border-top: 1px solid var(--border);
}

/* Image wrap — left column */
.ht-library-pl__image-wrap {
  position: relative;
  flex: none;
  width: clamp(180px, 26vw, 280px);
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  overflow: hidden;
  background: var(--beige-light);
}
/* .woocommerce img sets height:auto — match specificity (class+element) so we win */
.ht-library-pl__image-wrap img,
.ht-library-pl__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.ht-library-pl:hover .ht-library-pl__image {
  transform: scale(1.04);
}
.ht-library-pl__image-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--beige-mid);
}

/* Badge (Sale / Featured / Backorder) */
.ht-library-pl__badge {
  position: absolute;
  top: .6rem;
  left: .6rem;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: .25rem .65rem;
  border-radius: 50px;
  line-height: 1.3;
  pointer-events: none;
}
.ht-library-pl__badge--sale      { background: var(--primary);  color: #fff; }
.ht-library-pl__badge--featured  { background: var(--dark-ink); color: #fff; }
.ht-library-pl__badge--backorder { background: var(--muted);    color: #fff; }

/* Body — right column */
.ht-library-pl__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .45rem;
}

/* Eyebrow / category */
.ht-library-pl__eyebrow {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--primary);
  margin: 0;
}

/* Title */
.ht-library-pl__title-link {
  text-decoration: none;
  color: inherit;
}
.ht-library-pl__title {
  font-family: var(--bpt-heading-font, serif);
  font-size: clamp(1.1rem, 1.4vw + .5rem, 1.55rem);
  font-weight: 700;
  color: var(--dark-ink);
  line-height: 1.25;
  margin: 0;
  transition: color .2s;
}
.ht-library-pl__title-link:hover .ht-library-pl__title { color: var(--primary); }

/* Short description */
.ht-library-pl__desc {
  font-size: .9rem;
  line-height: 1.65;
  color: var(--muted);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Feature checklist */
.ht-library-pl__features {
  list-style: none;
  margin: .1rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.ht-library-pl__features li {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .83rem;
  color: var(--dark);
  font-weight: 500;
}
.ht-library-pl__features svg { flex-shrink: 0; color: var(--primary); }

/* Price row + stock badge */
.ht-library-pl__purchase { margin-top: .25rem; }
.ht-library-pl__price-row {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
  margin-bottom: .65rem;
}
.ht-library-pl__price {
  font-family: var(--bpt-heading-font, serif);
  font-size: clamp(1.15rem, 1.4vw + .3rem, 1.45rem);
  font-weight: 700;
  color: var(--primary);
  line-height: 1;
}
.ht-library-pl__price del { font-size: .9rem; color: var(--muted); font-weight: 400; }
.ht-library-pl__stock {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: .25rem .7rem;
  border-radius: 50px;
}
.ht-library-pl__stock--in  { background: rgba(74,124,89,.1);   color: #4a7c59; }
.ht-library-pl__stock--out { background: rgba(192,57,43,.09);  color: #c0392b; }

/* Action buttons */
.ht-library-pl__actions {
  display: flex;
  align-items: center;
  gap: .6rem;
  flex-wrap: wrap;
}
a.added_to_cart.wc-forward {
  color: #fff;
}
.ht-library-pl__actions .added_to_cart.wc-forward {
  display: inline-flex;
  align-items: center;
  border-radius: 50px;
  padding: .6rem 1.4rem;
  font-size: .875rem;
  font-weight: 600;
  letter-spacing: .03em;
  text-decoration: none;
  background: var(--primary);
  color: #fff;
  box-shadow: 0 4px 18px rgba(140, 111, 94, .38);
  transition: background .2s, transform .1s, box-shadow .2s;
  line-height: 1;
}
.ht-library-pl__actions .added_to_cart.wc-forward:hover {
  background: var(--primary-light);
  box-shadow: 0 8px 28px rgba(206, 123, 99, .44);
  transform: translateY(-2px);
  color: #fff;
}
.ht-library-btn {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  border-radius: 50px;
  padding: .6rem 1.4rem;
  font-size: .875rem;
  font-weight: 600;
  letter-spacing: .03em;
  text-decoration: none;
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s, transform .1s;
  line-height: 1;
  border: 1.5px solid transparent;
  white-space: nowrap;
}
.ht-library-btn--primary {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
}
.ht-library-btn--primary:hover {
  background: var(--primary-dark, #8f3a25);
  border-color: var(--primary-dark, #8f3a25);
  color: #fff;
  transform: translateY(-1px);
}
.ht-library-btn--outline-dark {
  background: transparent;
  color: var(--dark-ink);
  border-color: var(--dark-ink);
}
.ht-library-btn--outline-dark:hover {
  background: var(--dark-ink);
  color: #fff;
}

/* Pagination */
.ht-library-shop-pagination {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  display: flex;
  justify-content: center;
}
.ht-library-shop-pagination .woocommerce-pagination ul {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ht-library-shop-pagination .woocommerce-pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1.5px solid var(--border);
  background: #fffaf5;
  color: var(--dark-ink);
  font-size: .875rem;
  font-weight: 600;
  text-decoration: none;
  transition: background .2s, border-color .2s, color .2s;
}
.ht-library-shop-pagination .woocommerce-pagination .page-numbers:hover,
.ht-library-shop-pagination .woocommerce-pagination .page-numbers.current {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}
.ht-library-shop-pagination .woocommerce-pagination .page-numbers.dots {
  border: none;
  background: transparent;
}

/* Empty state */
.ht-library-shop-empty {
  text-align: center;
  padding: clamp(4rem, 8vw, 7rem) 1rem;
  color: var(--muted);
}
.ht-library-shop-empty svg { opacity: .35; margin-bottom: 1.5rem; }
.ht-library-shop-empty h2 { font-family: var(--bpt-heading-font, serif); color: var(--dark-ink); margin-bottom: .75rem; }

/* ── 10a. Founding Collection — single-product shop showcase ────────────── */
.ht-library-founding {
  background:    #181512;
  padding-block: clamp(3rem, 6vw, 4.5rem);
}

.ht-library-founding__header {
  text-align:    center;
  max-width:     680px;
  margin-inline: auto;
  margin-bottom: clamp(1.25rem, 2.5vw, 2rem);
}
.ht-library-founding__eyebrow {
  font-size:      .8rem;
  font-weight:    700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color:          var(--primary-light);
  margin:         0 0 .5rem;
}
.ht-library-founding__star {
  display:        flex;
  justify-content: center;
  color:          var(--primary);
  opacity:        .9;
  margin-bottom:  0;
}
.ht-library-founding__star svg {
  width:  22px;
  height: 22px;
}
.ht-library-founding .ht-library-founding__title {
  font-family:    var(--bpt-heading-font, serif);
  font-size:      clamp(1.8rem, 3.4vw + .55rem, 2.7rem);
  font-weight:    700;
  color:          #FFF7F0;
  letter-spacing: -.02em;
  line-height:    1.25;
  margin:         0 0 .6rem;
}
.ht-library-founding__sub {
  font-size: 1.05rem;
  color:     rgba(255, 247, 240, .65);
  margin:    0;
}

/* Featured product card */
.ht-library-founding__card {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  align-items:           stretch;
  background:            #211D18;
  border:                1px solid rgba(255, 255, 255, .08);
  border-radius:         24px;
  overflow:              hidden;
  box-shadow:            0 4px 24px rgba(0, 0, 0, .3);
  margin-bottom:         20px;
}
.ht-library-founding__media {
  background: linear-gradient(145deg, var(--beige-light) 0%, var(--beige-mid) 100%);
}
.ht-library-founding__img {
  width:      100%;
  height:     100%;
  object-fit: cover;
  display:    block;
}

/* ── Product image gallery slider ─────────────────── */
.ht-library-founding__gallery {
  position: relative;
  overflow: hidden;
  width:    100%;
  height:   100%;
}

.ht-library-founding__gallery-track {
  display:    flex;
  height:     100%;
  transition: transform .45s ease;
}

.ht-library-founding__gallery-slide {
  flex:      0 0 100%;
  min-width: 0;
  height:    100%;
}

.ht-library-founding__gallery-slide img {
  width:      100%;
  height:     100%;
  object-fit: cover;
  display:    block;
}

.ht-library-founding__gallery-slide model-viewer {
  display:    block;
  width:      100%;
  height:     100%;
  background: var(--cream, #FDF6EE);
}

.ht-library-founding__gallery-arrow {
  position:        absolute;
  top:             50%;
  transform:       translateY(-50%);
  background:      rgba(255, 255, 255, .82);
  border:          none;
  border-radius:   50%;
  width:           36px;
  height:          36px;
  display:         flex;
  align-items:     center;
  justify-content: center;
  cursor:          pointer;
  z-index:         2;
  padding:         0;
  transition:      background .2s;
}

.ht-library-founding__gallery-arrow:hover { background: #fff; }
.ht-library-founding__gallery-arrow--prev { left: .65rem; }
.ht-library-founding__gallery-arrow--next { right: .65rem; }

.ht-library-founding__gallery-dots {
  position:        absolute;
  bottom:          .65rem;
  left:            0;
  right:           0;
  display:         flex;
  justify-content: center;
  gap:             .4rem;
}

.ht-library-founding__gallery-dot {
  width:         8px;
  height:        8px;
  border-radius: 50%;
  border:        none;
  background:    rgba(100, 80, 70, .35);
  cursor:        pointer;
  padding:       0;
  transition:    background .2s, transform .2s;
}

.ht-library-founding__gallery-dot.is-active {
  background: var(--warm-brown, #8C6F5E);
  transform:  scale(1.3);
}

/* 3D badge — top-left corner of the gallery */
.ht-library-founding__3d-badge {
  position:        absolute;
  top:             .65rem;
  left:            .65rem;
  z-index:         3;
  display:         flex;
  align-items:     center;
  gap:             .3rem;
  padding:         .25rem .55rem;
  background:      rgba(20, 16, 12, .55);
  color:           #fff;
  border-radius:   4px;
  font-size:       .7rem;
  font-weight:     700;
  letter-spacing:  .08em;
  text-transform:  uppercase;
  line-height:     1;
  pointer-events:  none;
  opacity:         1;
  transition:      opacity .25s;
  backdrop-filter: blur(4px);
}
.ht-library-founding__body {
  min-width:      0;
  padding:        clamp(1.75rem, 3vw, 2.75rem);
  display:        flex;
  flex-direction: column;
  gap:            .85rem;
}
.ht-library-founding__cat {
  font-size:      .8rem;
  font-weight:    700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color:          var(--primary-light);
  margin:         0;
}
.ht-library-founding .ht-library-founding__name {
  font-family:    var(--bpt-heading-font, serif);
  font-size:      clamp(1.7rem, 2.3vw + .55rem, 2.4rem);
  font-weight:    700;
  color:          #FFF7F0;
  line-height:    1.2;
  margin:         0;
}
.ht-library-founding__divider {
  display:     flex;
  align-items: center;
  gap:         .75rem;
}
.ht-library-founding__divider-line {
  height:      1.5px;
  width:       56px;
  background:  linear-gradient(to right, var(--primary-light), transparent);
  flex-shrink: 0;
}
.ht-library-founding__divider-line:last-child {
  background: linear-gradient(to left, var(--primary-light), transparent);
}
.ht-library-founding__divider svg { color: var(--primary); opacity: .85; flex-shrink: 0; }
.ht-library-founding__header .ht-library-founding__divider { justify-content: center; }

.ht-library-founding__features {
  list-style:     none;
  margin:         0;
  padding:        0;
  display:        flex;
  flex-direction: column;
  gap:            .5rem;
}
.ht-library-founding__features li {
  display:     flex;
  align-items: center;
  gap:         .55rem;
  font-size:   .975rem;
  font-weight: 500;
  color:       rgba(255, 247, 240, .88);
}
.ht-library-founding__features svg { color: var(--primary); flex-shrink: 0; }

.ht-library-founding__price {
  font-family: var(--bpt-heading-font, serif);
  font-size:   clamp(1.9rem, 2.5vw, 2.4rem);
  font-weight: 700;
  color:       #FFF7F0;
  line-height: 1;
  margin-top:  .3rem;
}
.ht-library-founding__price .woocommerce-Price-currencySymbol { font-weight: 400; }
.ht-library-founding__price del { color: rgba(255, 247, 240, .5); font-size: 1.2rem; font-weight: 400; margin-right: .4rem; }
.ht-library-founding__price ins { color: #FFF7F0; text-decoration: none; }
.ht-library-founding__shipping {
  font-size:   .92rem;
  font-weight: 600;
  color:       var(--primary-light);
  margin:      0;
}
.ht-library-founding__actions {
  display:    flex;
  gap:        .75rem;
  flex-wrap:  wrap;
  margin-top: .5rem;
}
.ht-library-founding__actions .ht-library-btn {
  padding:   .72rem 1.68rem;
  font-size: 1.05rem;
}
.ht-library-founding__actions .ht-library-btn--outline-dark {
  color:        #FFF7F0;
  border-color: rgba(255, 247, 240, .4);
}
.ht-library-founding__actions .ht-library-btn--outline-dark:hover {
  background:   rgba(255, 247, 240, .12);
  color:        #fff;
  border-color: #FFF7F0;
}

/* Coming soon panel */
.ht-library-founding__soon {
  position:   relative;
  display:    flex;
  align-items: stretch;
  overflow:   hidden;
  min-height: 380px;
  border-radius: 24px;
  margin-bottom: 20px;
}
/* Image covers the full panel as background */
.ht-library-founding__soon-media {
  position: absolute;
  inset:    0;
  z-index:  0;
}
.ht-library-founding__soon-media img {
  width:           100%;
  height:          100%;
  object-fit:      cover;
  object-position: center center;
  display:         block;
}
/* Left-side dark gradient so text stays readable; right side fully reveals image */
.ht-library-founding__soon-media::before {
  content:    '';
  position:   absolute;
  inset:      0;
  z-index:    1;
  background: linear-gradient(to right,
    rgba(20,16,12,.95)  0%,
    rgba(20,16,12,.88)  20%,
    rgba(20,16,12,.55)  38%,
    rgba(20,16,12,.15)  52%,
    rgba(20,16,12,0)    62%
  );
  pointer-events: none;
}
.ht-library-founding__soon-body {
  position:        relative;
  z-index:         1;
  flex:            1;
  min-width:       0;
  max-width:       48%;
  padding:         clamp(1.75rem, 3vw, 2.75rem);
  display:         flex;
  flex-direction:  column;
  justify-content: center;
  gap:             .5rem;
}
.ht-library-founding__soon-body .ht-library-founding__star {
  justify-content: flex-start;
}
.ht-library-founding .ht-library-founding__soon-title {
  font-family: var(--bpt-heading-font, serif);
  font-size:   clamp(1.5rem, 2.3vw + .35rem, 1.95rem);
  font-weight: 700;
  color:       #FFF7F0;
  line-height: 1.3;
  margin:      .2rem 0 0;
}
.ht-library-founding__soon-desc {
  font-size:   1rem;
  line-height: 1.7;
  color:       rgba(255, 247, 240, .7);
  margin:      0;
}

/* Trust strip */
.ht-library-founding__trust {
  display:       flex;
  background:    #211D18;
  border:        1px solid rgba(255, 255, 255, .08);
  border-radius: 20px;
  overflow:      hidden;
}
.ht-library-founding__trust-item {
  position:      relative;
  flex:          1;
  display:       flex;
  align-items:   flex-start;
  gap:           .9rem;
  padding:       clamp(1.5rem, 3vw, 2rem);
}
.ht-library-founding__trust-item::after {
  content:    '';
  position:   absolute;
  top:        20%;
  bottom:     20%;
  right:      0;
  width:      1px;
  background: rgba(255, 255, 255, .08);
}
.ht-library-founding__trust-item:last-child::after { display: none; }
.ht-library-founding__trust-item svg {
  width:       64px;
  height:      64px;
  color:       var(--primary);
  flex-shrink: 0;
  margin-top:  .15rem;
}
.ht-library-founding__trust-item h4 {
  font-size:   1.05rem;
  font-weight: 700;
  color:       #FFF7F0;
  margin:      0 0 .3rem;
}
.ht-library-founding__trust-item p {
  font-size:   .92rem;
  line-height: 1.5;
  color:       rgba(255, 247, 240, .65);
  margin:      0;
  max-width:   220px;
}

@media (max-width: 1024px) {
  .ht-library-founding__soon { flex-direction: column; min-height: 220px; }
  .ht-library-founding__soon-body { max-width: 100%; }
  .ht-library-founding__trust { flex-direction: column; }
  .ht-library-founding__trust-item::after {
    top:    auto;
    bottom: 0;
    left:   20%;
    right:  20%;
    width:  auto;
    height: 1px;
  }
}
@media (max-width: 640px) {
  .ht-library-founding__card { grid-template-columns: 1fr; }
  .ht-library-founding__media { width: 100%; aspect-ratio: 1 / 1; min-height: 0; }
  .ht-library-founding__actions { flex-direction: column; }
  .ht-library-founding__actions .ht-library-btn { width: 100%; justify-content: center; }
  .ht-library-founding__soon-media img { object-position: 95% center; }
}

/* ── 11. Single product page ─────────────────────────────────────────────── */

/* Eyebrow + title + divider */
.ht-library-sp__eyebrow {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--primary);
  margin: 0 0 .5rem;
}
.ht-library-sp__title {
  font-family: var(--bpt-heading-font, serif);
  font-size: clamp(1.85rem, 3vw + .5rem, 2.8rem);
  font-weight: 700;
  color: var(--dark-ink);
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0 0 .85rem;
}
.ht-library-sp__divider {
  display: flex;
  align-items: center;
  gap: .75rem;
  color: var(--primary);
  margin-bottom: 1.35rem;
}
.ht-library-sp__divider-line {
  height: 1.5px;
  width: 56px;
  flex-shrink: 0;
  background: linear-gradient(to right, var(--primary-light), transparent);
}
.ht-library-sp__divider-line:last-child {
  background: linear-gradient(to left, var(--primary-light), transparent);
}

/* ── Product body section ────────────────────────────────────────────────── */
.ht-library-single-product {
  background: #fffaf5;
  padding-block: clamp(3rem, 6vw, 5rem);
}
.ht-library-single-product__layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 4vw, 4.5rem);
  align-items: start;
}

/* ── Gallery ─────────────────────────────────────────────────────────────── */
.ht-library-single-product__gallery {
  position: sticky;
  top: calc(var(--bpt-header-h, 72px) + 1.5rem);
  align-self: start;
}
.ht-library-single-product__gallery .woocommerce-product-gallery {
  border-radius: 20px;
  overflow: hidden;
  background: var(--beige-light);
  border: none;
  box-shadow: 0 4px 32px rgba(42,27,16,.09), 0 1px 4px rgba(42,27,16,.05);
}
.ht-library-single-product__gallery .woocommerce-product-gallery__wrapper img {
  border-radius: 0;
  display: block;
  width: 100%;
  height: auto;
}
.ht-library-single-product__gallery .flex-control-thumbs {
  display: flex;
  justify-content: center;
  gap: .6rem;
  padding: .8rem 1rem;
  border-top: 1px solid var(--border);
  list-style: none;
  margin: 0;
  background: #fffaf5;
}
.ht-library-single-product__gallery .flex-control-thumbs li { flex: none; }
.ht-library-single-product__gallery .flex-control-thumbs img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 10px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: border-color .2s, box-shadow .2s;
}
.ht-library-single-product__gallery .flex-control-thumbs img:hover {
  box-shadow: 0 0 0 3px rgba(183,83,61,.2);
}
.ht-library-single-product__gallery .flex-control-thumbs .flex-active {
  border-color: var(--primary);
}
/* Hide WooCommerce default gallery zoom trigger — misaligns with custom layout */
.ht-library-single-product__gallery .woocommerce-product-gallery__trigger { display: none !important; }

/* Prev / Next arrows injected over the main image */
.ht-library-single-product__gallery .woocommerce-product-gallery { position: relative; }
.ht-sp-gallery-arrow {
  position:        absolute;
  top:             50%;
  transform:       translateY(-50%);
  z-index:         10;
  background:      rgba(255, 255, 255, .82);
  border:          none;
  border-radius:   50%;
  width:           38px;
  height:          38px;
  display:         flex;
  align-items:     center;
  justify-content: center;
  cursor:          pointer;
  padding:         0;
  transition:      background .2s;
}
.ht-sp-gallery-arrow:hover        { background: #fff; }
.ht-sp-gallery-arrow--prev        { left: .75rem; }
.ht-sp-gallery-arrow--next        { right: .75rem; }

/* Sale flash */
.ht-library-single-product__gallery .onsale {
  top: 1rem !important;
  left: 1rem !important;
  right: auto !important;
}

/* ── Summary ─────────────────────────────────────────────────────────────── */
.ht-library-single-product__summary {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Price row */
.ht-library-single-product__price-row {
  display: flex;
  align-items: center;
  gap: .85rem;
  flex-wrap: wrap;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid var(--border);
  margin-bottom: 1.1rem;
}
.ht-library-single-product__price-row .price {
  font-family: var(--bpt-heading-font, serif);
  font-size: clamp(1.4rem, 2vw, 1.8rem);
  font-weight: 700;
  color: var(--dark-ink);
  margin: 0;
  line-height: 1;
}
.ht-library-single-product__price-row .price del {
  font-size: 1rem;
  color: var(--muted);
  font-weight: 400;
  margin-right: .3rem;
}
.ht-library-single-product__price-row .price ins {
  text-decoration: none;
  color: var(--primary);
}
.ht-library-sp-stock {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .3rem .8rem;
  border-radius: 50px;
}
.ht-library-sp-stock--in  { background: rgba(74,124,89,.1);  color: #4a7c59; }
.ht-library-sp-stock--out { background: rgba(192,57,43,.1);  color: #c0392b; }

/* Short description */
.ht-library-single-product__summary .woocommerce-product-details__short-description {
  font-size: .95rem;
  line-height: 1.8;
  color: var(--muted);
  margin-bottom: 1.25rem;
}
.ht-library-single-product__summary .woocommerce-product-details__short-description p { margin: 0 0 .5rem; }
.ht-library-single-product__summary .woocommerce-product-details__short-description ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.ht-library-single-product__summary .woocommerce-product-details__short-description li::before {
  content: '—';
  margin-right: .4rem;
  color: var(--primary);
  font-weight: 700;
}

/* Add to cart */
.ht-library-single-product__atc {
  margin-bottom: 1rem;
}
.ht-library-single-product__atc form.cart {
  display: flex;
  align-items: stretch;
  gap: .75rem;
  flex-wrap: wrap;
}

/* Custom qty stepper */
.ht-library-single-product__atc .quantity.ht-sp-qty {
  display: flex;
  align-items: center;
  background: #fff;
  border: 1.5px solid var(--border);
  border-radius: 50px;
  overflow: hidden;
  flex-shrink: 0;
  gap: 0;
}
.ht-sp-qty__btn {
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  cursor: pointer;
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: color .2s, background .2s;
  -webkit-appearance: none;
}
.ht-sp-qty__btn:hover { color: var(--primary); background: rgba(183,83,61,.06); }
.ht-sp-qty__btn:disabled { opacity: .35; cursor: not-allowed; }
.ht-library-single-product__atc .quantity input.qty {
  width: 44px;
  text-align: center;
  border: none;
  background: transparent;
  font-size: .975rem;
  font-weight: 700;
  color: var(--dark-ink);
  padding: .5rem 0;
  outline: none;
  -moz-appearance: textfield;
}
.ht-library-single-product__atc .quantity input.qty::-webkit-outer-spin-button,
.ht-library-single-product__atc .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* ATC button — premium pill */
.ht-library-single-product__atc .single_add_to_cart_button {
  flex: 1;
  padding: .9rem 2rem;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .04em;
  border-radius: 50px !important;
  text-align: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--primary), var(--primary-dark)) !important;
  color: #fff !important;
  box-shadow: 0 6px 20px rgba(183,83,61,.28);
  transition: transform .2s, box-shadow .2s, background .2s !important;
  border: none !important;
}
.ht-library-single-product__atc .single_add_to_cart_button:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(183,83,61,.38);
}
.ht-library-single-product__atc .single_add_to_cart_button.loading { opacity: .75; }

/* Trust bar */
.ht-library-sp-trust-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  flex-wrap: wrap;
  padding: .85rem 1.1rem;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  margin-bottom: 1.25rem;
}
.ht-library-sp-trust-bar__item {
  display: flex;
  align-items: center;
  gap: .42rem;
  font-size: .77rem;
  font-weight: 600;
  color: var(--muted);
}
.ht-library-sp-trust-bar__item svg { color: var(--primary); flex-shrink: 0; }
.ht-library-sp-trust-bar__sep {
  width: 1px;
  height: 18px;
  background: var(--border);
  flex-shrink: 0;
}

/* What's Included */
.ht-library-sp-includes {
  padding: 1.1rem 1.35rem;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  margin-bottom: 1.35rem;
}
.ht-library-sp-includes__title {
  display: flex;
  align-items: center;
  gap: .45rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--primary);
  margin: 0 0 .85rem;
}
.ht-library-sp-includes__title svg { flex-shrink: 0; }
.ht-library-sp-includes__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .55rem;
}
.ht-library-sp-includes__list li {
  display: flex;
  align-items: center;
  gap: .65rem;
  font-size: .9rem;
  font-weight: 500;
  color: var(--dark-ink);
}
.ht-library-sp-includes__icon {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(183,83,61,.1);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* (legacy trust list removed — replaced by .ht-library-sp-trust-bar + .ht-library-sp-includes) */

/* Product meta */
.ht-library-single-product__summary .product_meta {
  font-size: .78rem;
  color: var(--muted-light);
  padding-top: .85rem;
  margin-top: .25rem;
  border-top: 1px solid var(--border);
}
.ht-library-single-product__summary .product_meta > span {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  margin-right: 1rem;
}
.ht-library-single-product__summary .product_meta a {
  color: var(--muted);
  text-decoration: none;
  font-weight: 600;
}
.ht-library-single-product__summary .product_meta a:hover { color: var(--primary); }

/* ── 12a. What's included panel ─────────────────────────────────────────── */

/* ── 12b. Full-width description section ────────────────────────────────── */
.ht-library-sp-desc {
  background: var(--beige-light);
  padding-block: clamp(3rem, 6vw, 5rem);
  border-top: 1px solid var(--border);
}
.ht-library-sp-desc__inner {
  max-width: 760px;
  margin-inline: auto;
}
.ht-library-sp-desc__header {
  text-align: center;
  margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}
.ht-library-sp-desc__header .ht-library-sp__divider {
  justify-content: center;
  margin-bottom: .85rem;
}
.ht-library-sp-desc__heading {
  font-family: var(--bpt-heading-font, serif);
  font-size: clamp(1.5rem, 2.5vw + .4rem, 2.1rem);
  font-weight: 700;
  color: var(--dark-ink);
  letter-spacing: -.02em;
  line-height: 1.25;
  margin: 0;
}
.ht-library-sp-desc__body {
  font-size: .96rem;
  line-height: 1.85;
  color: var(--muted);
}
.ht-library-sp-desc__body p { margin: 0 0 1.1rem; }
.ht-library-sp-desc__body p:last-child { margin-bottom: 0; }
.ht-library-sp-desc__body h2,
.ht-library-sp-desc__body h3,
.ht-library-sp-desc__body h4 {
  font-family: var(--bpt-heading-font, serif);
  color: var(--dark-ink);
  line-height: 1.25;
  margin: 2rem 0 .65rem;
}
.ht-library-sp-desc__body h2 { font-size: clamp(1.25rem, 2vw + .25rem, 1.65rem); }
.ht-library-sp-desc__body h3 { font-size: clamp(1.05rem, 1.4vw + .2rem, 1.3rem); }
.ht-library-sp-desc__body ul,
.ht-library-sp-desc__body ol {
  margin: .5rem 0 1.25rem 0;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  list-style: none;
}
.ht-library-sp-desc__body li {
  line-height: 1.75;
  display: flex;
  align-items: flex-start;
  gap: .5rem;
}
.ht-library-sp-desc__body ul li::before {
  content: '';
  display: inline-block;
  width: 13px;
  height: 13px;
  flex-shrink: 0;
  margin-top: .32em;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23B7533D'%3E%3Cpath d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/%3E%3C/svg%3E") no-repeat center / contain;
}
.ht-library-sp-desc__body img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  display: block;
  margin: 1.75rem auto;
}
.ht-library-sp-desc__body strong { color: var(--dark-ink); font-weight: 600; }
.ht-library-sp-desc__body a { color: var(--primary); text-decoration: underline; }
.ht-library-sp-desc__body a:hover { color: var(--primary-dark); }
.ht-library-sp-desc__body blockquote {
  border-left: 3px solid var(--primary);
  margin: 1.75rem 0;
  padding: 1rem 1.4rem;
  background: #fff;
  border-radius: 0 10px 10px 0;
  font-style: italic;
  color: var(--dark);
  box-shadow: 0 2px 12px rgba(0,0,0,.05);
}

/* ── 12c. Related products section ──────────────────────────────────────── */
.ht-library-sp-related {
  background: var(--beige-light);
  padding-block: clamp(3rem, 6vw, 5rem);
}
.ht-library-sp-related .related.products > h2 {
  font-family: var(--bpt-heading-font, serif);
  font-size: clamp(1.35rem, 2vw + .4rem, 1.9rem);
  color: var(--dark-ink);
  font-weight: 700;
  letter-spacing: -.015em;
  margin-bottom: 1.75rem;
  padding-bottom: .75rem;
  border-bottom: 2px solid var(--border);
}
.ht-library-sp-related ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
  gap: clamp(1.25rem, 2.5vw, 2rem);
  list-style: none;
  margin: 0;
  padding: 0;
}
.ht-library-sp-related ul.products .ht-library-product { height: 100%; }

@media (max-width: 640px) {
  .ht-library-sp-related { padding-block: 2rem; }
}

/* ── 12. Single product responsive ──────────────────────────────────────── */
@media (max-width: 960px) {
  .ht-library-single-product__layout { grid-template-columns: 1fr; gap: 2rem; }
  .ht-library-single-product__gallery { position: static; }
}
@media (max-width: 640px) {
  .ht-library-single-product__atc form.cart { flex-wrap: nowrap; }
  .ht-library-single-product__atc .single_add_to_cart_button { padding: .85rem 1.25rem; }
  .ht-library-sp-trust-bar { gap: .5rem; }
  .ht-library-sp-trust-bar__sep { display: none; }
}

/* ── 13. Shop listing responsive ─────────────────────────────────────────── */

/* Tablet + mobile: stack image above content, full-width card */
@media (max-width: 1024px) {
  .ht-library-shop-body { padding-block: 2rem; }
  .ht-library-shop-toolbar { flex-direction: column; align-items: flex-start; gap: .5rem; }

  .ht-library-pl {
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.75rem 0;
  }
  .ht-library-pl__image-wrap {
    width: 100%;
    aspect-ratio: 16 / 9;
    max-height: 300px;
    border-radius: 12px;
  }
  .ht-library-pl__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .ht-library-pl__actions .ht-library-btn,
  .ht-library-pl__actions .added_to_cart.wc-forward {
    justify-content: center;
    width: 100%;
    text-align: center;
  }
}

/* Mobile: tighten spacing */
@media (max-width: 640px) {
  .ht-library-pl {
    gap: 1rem;
    padding: 1.5rem 0;
  }
  .ht-library-pl__image-wrap {
    max-height: 240px;
    border-radius: 10px;
  }
  .ht-library-pl__title { font-size: 1.15rem; }
}

/* ── 14. Single product responsive ──────────────────────────────────────── */
@media (max-width: 1024px) {
  .ht-library-single-product__layout { grid-template-columns: 1fr; gap: 2rem; }
}
@media (max-width: 640px) {
  .ht-library-single-product { padding-block: 2rem; }
  .ht-library-single-product__price-row { flex-wrap: wrap; gap: .6rem; }
  .ht-library-single-product__atc form.cart { flex-wrap: nowrap; }
  .ht-library-single-product__atc .single_add_to_cart_button { padding: .85rem 1.25rem; }
  .ht-library-single-product__below { margin-top: 2rem; padding-top: 2rem; }
  .woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: .25rem; }
  .woocommerce div.product .woocommerce-tabs ul.tabs li a { font-size: .875rem; padding: .5rem .75rem; }
}

/* ── 15. Checkout responsive ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .woocommerce-checkout form.checkout {
    grid-template-columns: 1fr;
  }
  .woocommerce-checkout .col2-set {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout .woocommerce-checkout-review-order { padding: 1.25rem; }
  #place_order { font-size: .9rem; padding: .9rem 1.25rem; }
  .woocommerce-checkout-review-order-table thead { display: none; }

  .woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-top: 0px;
    padding-left: 10px;
  }

  .woocommerce-checkout .wc-block-components-checkout-order-summary__title.is-open {
    padding: 10px;
  }
  .woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-cart-items-block.wc-block-components-totals-wrapper {
    padding: 10px;
  }
  .woocommerce-checkout .wc-block-components-panel__button,
  .woocommerce-checkout .wc-block-components-panel__button:active,
  .woocommerce-checkout .wc-block-components-panel__button:focus,
  .woocommerce-checkout .wc-block-components-panel__button:hover {
    cursor: pointer;
    padding-left: 20px !important;
  }
}

/* ── 16. My Account responsive ───────────────────────────────────────────── */
@media (max-width: 1024px) {
  .logged-in.woocommerce-account .woocommerce {
    grid-template-columns: 1fr;
  }
  .woocommerce-MyAccount-navigation {
    position: static;
  }
}
@media (max-width: 640px) {
  .woocommerce-MyAccount-navigation ul li a { padding: .75rem 1rem; }
  .woocommerce-MyAccount-content { padding: 1.25rem; }
  .ht-library-account-tabs { border-radius: 12px; }
  .ht-library-account-tabs__panel { padding: 1.25rem; }
}


/* Mobile compact header for WC utility pages */
@media (max-width: 640px) {
  .woocommerce-cart .ht-library-page-header,
  .woocommerce-checkout .ht-library-page-header,
  .woocommerce-account .ht-library-page-header,
  .single-product .ht-library-page-header {
    min-height:     0;
    padding-top:    calc(var(--bpt-header-h) + 2.5rem);
    padding-bottom: 2.5rem;
  }
}

/* ── Cart toast notification ─────────────────────────────────────────────── */
.ht-library-cart-toast {
  position: fixed;
  top: calc(var(--bpt-header-h, 72px) + 1rem);
  right: 1.5rem;
  z-index: 999999;
  display: flex;
  align-items: center;
  gap: .8rem;
  background: var(--dark-ink);
  color: #FFF7F0;
  border-radius: 16px;
  padding: .9rem 1rem;
  box-shadow: 0 12px 40px rgba(0,0,0,.22), 0 2px 8px rgba(0,0,0,.12);
  max-width: 360px;
  min-width: 270px;
  transform: translateX(calc(100% + 2rem));
  opacity: 0;
  transition: transform .38s cubic-bezier(.34,1.56,.64,1), opacity .25s ease;
  border: 1px solid rgba(255,247,240,.07);
  pointer-events: auto;
}
.ht-library-cart-toast.is-visible {
  transform: translateX(0);
  opacity: 1;
}
.ht-library-cart-toast__icon {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  background: var(--primary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}
.ht-library-cart-toast__body {
  flex: 1;
  min-width: 0;
}
.ht-library-cart-toast__title {
  font-size: .875rem;
  font-weight: 700;
  color: #FFF7F0;
  margin: 0 0 .1rem;
  line-height: 1.3;
}
.ht-library-cart-toast__name {
  font-size: .78rem;
  color: rgba(255,247,240,.58);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ht-library-cart-toast__cta {
  flex-shrink: 0;
  background: var(--primary);
  color: #fff;
  border-radius: 50px;
  padding: .38rem .9rem;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-decoration: none;
  transition: background .2s;
  white-space: nowrap;
}
.ht-library-cart-toast__cta:hover { background: var(--primary-light); color: #fff; }
.ht-library-cart-toast__close {
  flex-shrink: 0;
  background: none;
  border: none;
  color: rgba(255,247,240,.4);
  cursor: pointer;
  padding: .3rem;
  display: flex;
  align-items: center;
  border-radius: 50%;
  transition: color .2s, background .2s;
  line-height: 1;
}
.ht-library-cart-toast__close:hover {
  color: #FFF7F0;
  background: rgba(255,247,240,.08);
}

/* Suppress WooCommerce default notice on product page (toast replaces it) */
.ht-library-single-product .woocommerce-notices-wrapper { display: none; }

@media (max-width: 480px) {
  .ht-library-cart-toast {
    right: 1rem;
    left: 1rem;
    max-width: none;
    min-width: 0;
  }
}

.wc-block-components-button__text:hover {
  color: #fff !important;
}

.wc-block-cart__submit-button:hover {
  color: #fff !important;
}

.wc-block-cart__submit-button {
  text-decoration: none !important;
}

/* ── 3D Model Viewer ─────────────────────────────────────────────────────── */
.ht-library-sp-model {
  width: 100%;
}

/* Viewer wrap — positions arrows relative to the slide area */
.ht-library-sp-model__wrap {
  position:      relative;
  width:         100%;
  border-radius: 10px;
  overflow:      hidden;
}

/* Slides */
.ht-library-sp-model__slide {
  display: none;
  width:   100%;
  height:  440px;
}
.ht-library-sp-model__slide.is-active {
  display: block;
}
.ht-library-sp-model__slide model-viewer {
  display:    block;
  width:      100%;
  height:     100%;
  background: var(--cream, #FDF6EE);
}
.ht-library-sp-model__slide img {
  display:    block;
  width:      100%;
  height:     100%;
  object-fit: cover;
}

/* Prev / Next arrows */
.ht-library-sp-model__arrow {
  position:        absolute;
  top:             50%;
  transform:       translateY(-50%);
  z-index:         10;
  display:         flex;
  align-items:     center;
  justify-content: center;
  width:           38px;
  height:          38px;
  border-radius:   50%;
  border:          none;
  background:      rgba(255,255,255,.88);
  color:           var(--dark-ink, #2C1810);
  cursor:          pointer;
  box-shadow:      0 2px 8px rgba(0,0,0,.14);
  transition:      background .2s;
}
.ht-library-sp-model__arrow:hover { background: #fff; }
.ht-library-sp-model__arrow--prev { left:  10px; }
.ht-library-sp-model__arrow--next { right: 10px; }

/* Thumbnail strip */
.ht-library-sp-model__thumbs {
  display:         flex;
  gap:             8px;
  margin-top:      10px;
  justify-content: center;
  flex-wrap:       wrap;
}
.ht-library-sp-model__thumb {
  display:         flex;
  align-items:     center;
  justify-content: center;
  flex-direction:  column;
  flex-shrink:     0;
  width:           64px;
  height:          64px;
  border-radius:   6px;
  overflow:        hidden;
  border:          2px solid transparent;
  background:      var(--cream, #FDF6EE);
  cursor:          pointer;
  padding:         0;
  transition:      border-color .2s;
}
.ht-library-sp-model__thumb img {
  width:      100%;
  height:     100%;
  object-fit: cover;
  display:    block;
}
.ht-library-sp-model__thumb:hover,
.ht-library-sp-model__thumb.is-active {
  border-color: var(--warm-brown, #8C6F5E);
}

/* 3D icon thumbnail */
.ht-library-sp-model__thumb--3d {
  color:           var(--warm-brown, #8C6F5E);
  gap:             3px;
  font-size:       .6rem;
  font-weight:     700;
  text-transform:  uppercase;
  letter-spacing:  .06em;
  line-height:     1;
}

@media (max-width: 640px) {
  .ht-library-sp-model__slide { height: 300px; }
}

