/* Shared base reset for custom page templates (archive + single product).
   Loaded only by those templates so the rest of the theme is unaffected. */
*, *::before, *::after { box-sizing: border-box; }

/* The canonical .blm-container rule lives in assets/header/css/header.css,
   which is inlined site-wide by header.php — so the same container width is
   available on every page (header, footer, all templates). It is intentionally
   NOT redefined here to avoid duplication. */

/* Shared breadcrumb (archive + single product). Colors hardcoded so it works
   regardless of which page's design-token set is present. */
.bl-crumbs {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  padding: 18px 0 2px; font-size: 13.5px; font-weight: 600;
}
.bl-crumbs .bl-crumb-cat {
  color: #0165B7; text-decoration: none;
  text-transform: uppercase; letter-spacing: .04em; font-size: 12px;
  display: inline-flex; align-items: center;
}
.bl-crumbs a.bl-crumb-cat:hover { text-decoration: underline; text-underline-offset: 3px; }
.bl-crumbs .bl-crumb-home { vertical-align: middle; }
.bl-crumbs .bl-crumb-sep { color: #94A3B8; font-weight: 400; }

/* ── Shared product card (archive grid + single-product related) ──
   Scoped under .bl-pcard-grid so the generic class names (.price-now,
   .rating, .stars …) never clash with the single-product PDP styles.
   Colors are hardcoded (archive palette) so the card looks identical
   regardless of which page's design tokens are present. */
.bl-pcard-grid .product{display:flex;flex-direction:column;background:#fff;border:1px solid #E6E4DC;
  border-radius:20px;overflow:hidden;box-shadow:0 1px 2px rgba(0,101,184,.04),0 8px 24px rgba(0,101,184,.07);
  transition:transform 240ms cubic-bezier(.2,.8,.2,1),box-shadow 240ms cubic-bezier(.2,.8,.2,1),border-color 240ms cubic-bezier(.2,.8,.2,1)}
.bl-pcard-grid .product:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(0,101,184,.06),0 16px 32px rgba(0,101,184,.09);border-color:#D5D2C7}
.bl-pcard-grid .product__media{position:relative;background:#fff;border-bottom:1px solid #E6E4DC;overflow:hidden}
.bl-pcard-grid .product__media a{display:block}
.bl-pcard-grid .product__media img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;background:#fff}
.bl-pcard-grid .product__badges{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:6px;z-index:2}
.bl-pcard-grid .tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;
  font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.bl-pcard-grid .tag--sale{background:#329AE0;color:#FAF7F0}
.bl-pcard-grid .tag--clearance{background:linear-gradient(135deg,#ff4444,#ff6666);color:#fff;box-shadow:0 2px 6px rgba(255,68,68,.3)}
.bl-pcard-grid .tag--preorder{background:linear-gradient(135deg,#C97A1A,#E0962E);color:#fff;box-shadow:0 2px 6px rgba(201,122,26,.28)}
.bl-pcard-grid .product__stockover{position:absolute;inset:0;background:rgba(250,247,240,.55);
  display:flex;align-items:flex-end;justify-content:center;padding-bottom:16px;z-index:1}
.bl-pcard-grid .stockpill{background:#1A1F1A;color:#FAF7F0;font-size:12px;font-weight:600;
  letter-spacing:.03em;padding:6px 14px;border-radius:999px}
.bl-pcard-grid .stockpill.soon{background:#C97A1A}
.bl-pcard-grid .product__body{display:flex;flex-direction:column;gap:8px;padding:16px 18px 18px;flex:1}
.bl-pcard-grid .product__title{font-weight:600;font-size:14px;line-height:1.4;color:#1A1F1A;margin:0;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:59px}
.bl-pcard-grid .product__title a{color:inherit;text-decoration:none}.bl-pcard-grid .product__title a:hover{color:#0065B8}
.bl-pcard-grid .rating{display:flex;align-items:center;gap:8px}
.bl-pcard-grid .stars{position:relative;display:inline-block;font-size:14px;line-height:1;
  letter-spacing:2px;font-family:Arial,sans-serif}
.bl-pcard-grid .stars__bg{color:#D5D2C7}.bl-pcard-grid .stars__fill{position:absolute;left:0;top:0;color:#E0A33B;overflow:hidden;white-space:nowrap}
.bl-pcard-grid .rating__n{font-size:12px;color:#6B7269}
.bl-pcard-grid .product__foot{margin-top:auto;padding-top:10px;display:flex;flex-direction:column;
  align-items:stretch;gap:12px;text-align:center}
.bl-pcard-grid .price-now{font-weight:700;font-size:17px;color:#1A1F1A;line-height:1.3}
.bl-pcard-grid .price-now .woocommerce-Price-amount,.bl-pcard-grid .price-now bdi{font-size:inherit;font-weight:inherit;font-family:inherit}
.bl-pcard-grid .price-now .price-from{font-size:12px;font-weight:600;color:#6B7269;margin-right:2px}
.bl-pcard-grid .price-now del,.bl-pcard-grid .price-now del .woocommerce-Price-amount{font-size:12px;color:#6B7269;font-weight:400;margin-left:6px;text-decoration:line-through}
.bl-pcard-grid .price-now ins,.bl-pcard-grid .price-now ins .woocommerce-Price-amount{text-decoration:none;font-weight:700}
.bl-pcard-grid .price-sale .price-now ins,.bl-pcard-grid .price-sale .price-now ins .woocommerce-Price-amount{color:#0065B8}
.bl-pcard-grid .btn-cart{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;
  padding:0 16px;border-radius:999px;border:1px solid #329AE0;background:#329AE0;
  color:#FAF7F0;font-weight:600;font-size:14px;cursor:pointer;
  transition:all 160ms cubic-bezier(.2,.8,.2,1);white-space:nowrap;text-decoration:none}
.bl-pcard-grid .btn-cart:hover{background:#0065B8;border-color:#0065B8;color:#FAF7F0;text-decoration:none}
.bl-pcard-grid .btn-cart:active{transform:scale(.97)}
.bl-pcard-grid .btn-cart--ghost{background:#fff;color:#0065B8;border-color:#D5D2C7}
.bl-pcard-grid .btn-cart--ghost:hover{background:#E7F2FB;border-color:#0065B8;color:#0065B8}

/* ── Two-button card foot (archive context: View Product + circular icon) ── */
.bl-pcard-grid .btn-row{ display:flex; gap:8px; align-items:stretch; }
.bl-pcard-grid .btn-row .btn-cart{ flex:1 1 auto; min-width:0; }
.bl-pcard-grid .btn-row .btn-cart--icon{ flex:0 0 42px; width:42px; height:42px; padding:0; gap:0; border-radius:50%;
  background:#0065B8; border-color:#0065B8; color:#fff; }
.bl-pcard-grid .btn-row .btn-cart--icon:hover{ background:#004E8F; border-color:#004E8F; color:#fff; }
.bl-pcard-grid .btn-cart--icon svg{ width:18px; height:18px; }

/* ── Add-to-basket spinner on the card buttons (simple, AJAX) ── */
.bl-pcard-grid .btn-cart.ajax_add_to_cart.loading{ color:transparent !important; position:relative; pointer-events:none; }
.bl-pcard-grid .btn-cart.ajax_add_to_cart.loading::after{ content:""; position:absolute; top:50%; left:50%;
  width:18px; height:18px; margin:-9px 0 0 -9px; border:2.5px solid rgba(255,255,255,.45); border-top-color:#fff;
  border-radius:50%; animation:bl-qv-spin .7s linear infinite; }
.bl-pcard-grid .btn-cart.ajax_add_to_cart.added::after{ content:none; }

/* ===== Quick-view modal (variable products: cart + archive) ===== */
.bl-qv-modal{ position:fixed; inset:0; z-index:100000; display:none; }
.bl-qv-modal.is-open{ display:block; }
.bl-qv-backdrop{ position:absolute; inset:0; background:rgba(15,23,42,.55); backdrop-filter:blur(2px); }
.bl-qv-dialog{ position:relative; max-width:880px; width:calc(100% - 32px); max-height:90vh; overflow:auto;
  margin:5vh auto 0; background:#fff; border-radius:18px; box-shadow:0 30px 80px -20px rgba(15,23,42,.5);
  font-family:'IBM Plex Sans',system-ui,sans-serif; }
.bl-qv-close{ position:absolute; top:12px; right:14px; z-index:3; width:40px; height:40px; border:none;
  border-radius:50%; background:#0065B8; color:#fff; font-size:23px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center; box-shadow:0 4px 12px rgba(0,101,184,.32);
  transition:background .16s ease; }
.bl-qv-close:hover{ background:#004E8F; }
.bl-qv-loading,.bl-qv-err{ padding:60px 24px; text-align:center; color:#6B7269; }
.bl-qv{ display:grid; grid-template-columns:1fr 1fr; gap:0; }
.bl-qv-gallery{ padding:26px; background:#F6F9FC; border-radius:18px 0 0 18px; }
.bl-qv-gallery .bl-qv-main{ width:100%; height:auto; border-radius:12px; background:#fff; object-fit:contain; }
.bl-qv-thumbs{ display:flex; gap:8px; margin-top:10px; }
.bl-qv-thumbs img{ width:60px; height:60px; object-fit:cover; border-radius:8px; border:1px solid #E6E4DC; cursor:pointer; }
.bl-qv-info{ padding:30px; min-width:0; }
.bl-qv-title{ font-size:1.35rem; font-weight:700; line-height:1.25; margin:0 0 10px; color:#15212B; }
.bl-qv-price{ font-size:1.25rem; font-weight:800; color:#0065B8; margin-bottom:12px; }
.bl-qv-desc{ font-size:.92rem; color:#5A6B7B; line-height:1.6; margin-bottom:16px; }
.bl-qv-desc p{ margin:0 0 10px; }
.bl-qv-full{ display:inline-block; margin-top:14px; font-size:.9rem; font-weight:600; color:#0065B8; text-decoration:none; }
.bl-qv-full:hover{ text-decoration:underline; }
.bl-qv-info .variations{ width:100%; margin:0 0 16px; border-collapse:collapse; display:block; }
.bl-qv-info .variations tbody{ display:block; }
.bl-qv-info .variations tr{ display:block; margin-bottom:12px; }
.bl-qv-info .variations th.label{ display:block; padding:0 0 6px; text-align:left; font-weight:700; font-size:13px; color:#15212B; }
.bl-qv-info .variations th.label label{ margin:0; }
.bl-qv-info .variations td.value{ display:block; padding:0; position:relative; }
.bl-qv-info .variations select{ width:100%; height:48px; padding:0 40px 0 14px; border:1px solid #DCE7F2; border-radius:12px;
  background:#F2F7FC; font-size:15px; color:#15212B; appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230065B8' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; transition:border-color .16s ease, box-shadow .16s ease; }
.bl-qv-info .variations select:focus{ outline:none; border-color:#329AE0; box-shadow:0 0 0 3px rgba(50,154,224,.2); background-color:#fff; }
.bl-qv-info .reset_variations{ display:inline-block; margin-top:8px; font-size:.82rem; color:#6B7269; }
.bl-qv-info .woocommerce-variation-price{ font-size:1.15rem; font-weight:800; color:#0065B8; margin:6px 0 12px; }
/* strip the outer box border around the variation area + hide stock text */
.bl-qv-info form.variations_form,
.bl-qv-info .variations,
.bl-qv-info .variations tbody,
.bl-qv-info .variations tr,
.bl-qv-info .variations th,
.bl-qv-info .variations td,
.bl-qv-info .single_variation_wrap,
.bl-qv-info .woocommerce-variation{ border:0 !important; background:transparent !important; box-shadow:none !important; }
.bl-qv-info .woocommerce-variation-availability,
.bl-qv-info .stock{ display:none !important; }
/* quantity + add to cart on the same row */
.bl-qv-info .woocommerce-variation-add-to-cart{ display:flex; align-items:stretch; gap:10px; flex-wrap:wrap; margin-top:6px; }
.bl-qv-info .quantity{ display:inline-block; margin:0; vertical-align:middle; flex:0 0 auto; }
.bl-qv-info .quantity input{ height:50px; width:78px; padding:8px; border:1px solid #DCE7F2; border-radius:12px; text-align:center; background:#F2F7FC; font-size:15px; }
.bl-qv-info .single_add_to_cart_button{ position:relative; flex:1 1 auto; width:auto; min-width:160px; min-height:50px; border:0; border-radius:999px;
  background:#0065B8; color:#fff; font-weight:700; font-size:15px; cursor:pointer; margin-top:0;
  display:inline-flex; align-items:center; justify-content:center; gap:9px; transition:background .16s ease; }
.bl-qv-info .single_add_to_cart_button:hover{ background:#004E8F; }
.bl-qv-info .single_add_to_cart_button.disabled,
.bl-qv-info .single_add_to_cart_button.wc-variation-selection-needed{ opacity:.5; cursor:not-allowed; }
.bl-qv-info .single_add_to_cart_button.bl-loading{ color:transparent !important; pointer-events:none; }
.bl-qv-info .single_add_to_cart_button.bl-loading::after{ content:""; position:absolute; width:20px; height:20px;
  border:2.5px solid rgba(255,255,255,.45); border-top-color:#fff; border-radius:50%; animation:bl-qv-spin .7s linear infinite; }
@keyframes bl-qv-spin{ to{ transform:rotate(360deg); } }
@media (max-width:680px){
  .bl-qv{ grid-template-columns:1fr; }
  .bl-qv-gallery{ border-radius:18px 18px 0 0; }
  .bl-qv-dialog{ margin-top:3vh; max-height:94vh; }
}
