/* Store template: BOLD - a black-and-white streetwear look (big uppercase headings, warm-grey picture tiles,
   pill buttons, 20px cards). Loaded after global_new.css on every page while this layout is active.

   Colours that a store chooses (buttons, navbar text, icons, badges) still come from its colour theme through the
   CSS variables, so a store that sets its button colour to black gets the exact black-and-white look. This file
   sets shape, type and spacing, plus the neutrals the design is built on. Every rule is scoped to body.store-bold. */

/* fonts: loaded by store_templates/bold/_head.html on every page, so they start downloading with the page */

body.store-bold {
  --bd-ink: #000;
  --bd-muted: rgba(0, 0, 0, .6);
  --bd-line: rgba(0, 0, 0, .1);
  --bd-tile: #f0eeed;
  --bd-soft: #f2f0f1;
  --bd-pill: 62px;
  --bd-card: 20px;
  --bd-display: 'Archivo Black', 'Arial Black', Impact, sans-serif;
  --bd-star: #ffc633;
  --bd-off-bg: rgba(255, 51, 51, .1);
  --bd-off: #ff3333;
  /* solid fills (badges, the announcement strip, selected options, active tabs) follow the colour theme's button
     colour, so a preset shows on this layout too; the black type and white surfaces are the layout's own look */
  --bd-accent: var(--btn-bg-color, #000);
  --bd-accent-ink: var(--btn-txt-color, #fff);

  --font-primary: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-family: var(--font-primary);
  color: var(--bd-ink);
  background-color: #fff !important;

  /* the light footer the design uses (these variables are what the footer markup reads) */
  --footer-color: #f0f0f0;
  --footer-color-end: #fff;
  --footer-text-color: rgba(0, 0, 0, .6);
  --footer-header-text-color: #000;
  --bottom-footer-text-color: rgba(0, 0, 0, .6);
}

/* ------------------------------------------------------------------ type */
body.store-bold h1, body.store-bold h2, body.store-bold .bd-display, body.store-bold .bd-heading {
  font-family: var(--bd-display);
  text-transform: uppercase;
  letter-spacing: -.01em;
  font-weight: 400;
  line-height: 1.05;
}

/* --------------------------------------------------------------- layout */
.bd-wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
@media (max-width: 575.98px) { .bd-wrap { padding: 0 16px; } }

/* -------------------------------------------------------------- buttons */
.bd-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 52px; padding: 0 40px; border-radius: var(--bd-pill);
  font-size: 16px; font-weight: 500; text-decoration: none; cursor: pointer;
  border: 1px solid var(--bd-ink); transition: opacity .15s ease, background .15s ease;
}
.bd-btn-solid { background: var(--btn-bg-color, #000); color: var(--btn-txt-color, #fff); border-color: var(--btn-bg-color, #000); }
.bd-btn-solid:hover { opacity: .85; color: var(--btn-txt-color, #fff); }
.bd-btn-line { background: #fff; color: var(--bd-ink); border-color: var(--bd-line); min-width: 218px; }
.bd-btn-line:hover { background: var(--bd-tile); color: var(--bd-ink); }
.bd-btn-hero { min-width: 210px; }
.bd-btn-block { width: 100%; }

/* ===================================================== header (every page) */
body.store-bold { padding-top: 110px; }
body.store-bold .navbar.fixed-top {
  background: #fff !important;
  box-shadow: none !important;
  border-bottom: 1px solid var(--bd-line);
  padding: 0 !important;
  flex-wrap: wrap;
}
/* the delivery line becomes the black announcement bar above the header, on desktop too */
body.store-bold .navbar .mobile-delivery-strip,
body.store-bold .navbar .mobile-delivery-strip.d-xl-none {
  display: block !important;
  order: -1; flex: 0 0 100%;
  background: var(--bd-accent); color: var(--bd-accent-ink);
  text-align: center; font-size: 13px; padding: 9px 16px; letter-spacing: .01em;
}
body.store-bold .navbar .mobile-delivery-strip strong { font-weight: 600; }
body.store-bold .site-navbar-container { padding: 14px 24px; gap: 8px; max-width: 1240px; }
body.store-bold .navbar-brand { margin-right: 24px; }
body.store-bold .site-brand-name {
  font-family: var(--bd-display); text-transform: uppercase; font-size: 28px; letter-spacing: -.02em; color: #000 !important;
}
body.store-bold .navbar-nav .nav-link {
  color: #000 !important; font-size: 16px; font-weight: 400; padding: 8px 12px;
}
body.store-bold .navbar-nav .nav-link.active { font-weight: 600; }
body.store-bold .navbar-nav .nav-link.underline::after, body.store-bold .navbar-nav .nav-link.underline::before { display: none; }

body.store-bold .bd-search {
  flex-direction: row !important;
  order: 5; flex: 1 1 280px; max-width: 580px; margin: 0 24px; position: relative;
  align-items: center; background: #f0f0f0; border-radius: var(--bd-pill); height: 48px; padding: 0 18px; gap: 12px;
}
body.store-bold .bd-search i { color: rgba(0, 0, 0, .4); }
body.store-bold .bd-search input {
  flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; font-size: 16px; color: #000; padding: 0;
}
body.store-bold .bd-search input::placeholder { color: rgba(0, 0, 0, .4); }
body.store-bold .navbar .badge { background: var(--bd-accent) !important; color: var(--bd-accent-ink); }

/* ---- phones: the strip and the search bar are already part of the header ---- */
@media (max-width: 1199.98px) {
  body.store-bold .navbar .mobile-delivery-strip { font-size: 12px; padding: 8px 12px; }
  body.store-bold .site-navbar-container { padding: 10px 16px; }
  body.store-bold .site-brand-name { font-size: 22px; letter-spacing: -.04em; }
  body.store-bold .navbar-brand { margin-right: 8px; max-width: 46%; }
  body.store-bold .site-brand-name { white-space: nowrap; }
  body.store-bold .mobile-site-search input { background: #f0f0f0; border: 0; border-radius: var(--bd-pill); }
}
/* ---- desktop: logo, menu, search and icons always share one row. The menu never wraps; the search field gives up
   width first (down to its icon), so a long menu or a big logo cannot push the account / cart / wishlist icons
   onto a second line ---- */
@media (min-width: 1200px) {
  body.store-bold .site-navbar-container { flex-wrap: nowrap; max-width: 1440px; gap: 12px; }
  body.store-bold .navbar-brand { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; margin-right: 4px; }
  body.store-bold .navbar-brand img { width: auto !important; height: 48px !important; max-width: 120px; object-fit: contain !important; }
  body.store-bold .site-brand-name { white-space: nowrap; }
  body.store-bold .navbar-collapse { flex: 0 1 auto; min-width: 0; }
  body.store-bold .navbar-nav { flex-wrap: nowrap; }
  body.store-bold .navbar-nav .nav-link { white-space: nowrap; padding: 8px 10px; }
  body.store-bold .bd-search { flex: 1 1 220px; min-width: 48px; max-width: 520px; margin: 0 8px; padding: 0 14px; }
  body.store-bold .site-navbar-container > .order-xl-last { flex: 0 0 auto; }
}
@media (min-width: 1200px) and (max-width: 1439.98px) {
  body.store-bold .site-brand-name { font-size: 24px; }
  body.store-bold .navbar-nav .nav-link { font-size: 15px; padding: 8px 8px; }
  body.store-bold .navbar-brand img { height: 42px !important; }
}

/* ============================================================ footer */
body.store-bold .footer-section { padding-top: 56px; }
body.store-bold .footer-column h5 {
  font-family: var(--font-primary); font-size: 14px; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; margin-bottom: 18px;
}
body.store-bold .footer-links a, body.store-bold .footer-contact li { color: rgba(0, 0, 0, .6); font-size: 14px; }
body.store-bold .footer-links a:hover { color: #000; }
body.store-bold .footer-description { color: rgba(0, 0, 0, .6); font-size: 14px; }
body.store-bold .footer-bottom { border-top: 1px solid var(--bd-line); text-align: left; }
body.store-bold .footer-bottom p { font-size: 14px; }
body.store-bold .footer-logo { filter: none; }

/* ============================================================== HOME */
.bd-hero { background: var(--bd-soft); overflow: hidden; }
.bd-hero-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: end; gap: 24px; min-height: 560px; }
.bd-hero-grid:not(:has(.bd-hero-art)) { grid-template-columns: 1fr; min-height: 0; }
.bd-hero-grid:not(:has(.bd-hero-art)) .bd-hero-copy { padding: 84px 0; }
.bd-hero-copy { padding: 64px 0; align-self: center; }
.bd-hero-copy .bd-display { font-size: clamp(36px, 5.2vw, 64px); margin: 0 0 24px; }
.bd-lead { max-width: 520px; color: var(--bd-muted); font-size: 16px; line-height: 1.6; margin: 0 0 28px; }
/* one row of stats when the hero's text column has room, otherwise a tidy 2x2 grid - never a lone stat wrapping
   onto its own line with a stray divider (the column, not the screen, decides: it is narrow beside the hero image) */
.bd-hero-copy { container-type: inline-size; }
.bd-stats { display: grid; grid-auto-flow: column; grid-auto-columns: max-content; gap: 0; list-style: none; padding: 0 !important; margin: 44px 0 0; }
.bd-stats li { padding: 0 24px; border-left: 1px solid var(--bd-line); display: flex; flex-direction: column; min-width: 0; }
.bd-stats li:first-child { padding-left: 0; border-left: 0; }
@container (max-width: 720px) {
  .bd-stats { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-columns: auto; gap: 18px 0; }
  .bd-stats li { padding: 0 0 0 20px; }
  .bd-stats li:nth-child(odd) { padding-left: 0; border-left: 0; }
}
.bd-stats strong { font-size: clamp(24px, 2.6vw, 36px); font-weight: 700; line-height: 1.1; }
.bd-stats span { color: var(--bd-muted); font-size: 14px; }
.bd-hero-art { position: relative; align-self: end; min-height: 320px; display: flex; justify-content: center; align-items: flex-end; }
.bd-hero-img { max-height: 560px; max-width: 100%; width: auto; object-fit: contain; object-position: bottom; display: block; }
.bd-spark { position: absolute; fill: var(--bd-accent); }
.bd-spark-1 { width: 56px; right: 4%; top: 12%; }
.bd-spark-2 { width: 36px; left: 4%; top: 42%; }

.bd-strip { background: var(--bd-accent); }
.bd-strip-inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px 32px; padding-top: 34px; padding-bottom: 34px; }
.bd-strip a { color: #fff; font-family: var(--bd-display); text-transform: uppercase; font-size: clamp(15px, 1.9vw, 26px); text-decoration: none; letter-spacing: .01em; white-space: nowrap; }
.bd-strip a:hover { opacity: .7; color: #fff; }

.bd-section { padding: 72px 0 0; }
.bd-section:last-of-type { padding-bottom: 72px; }
.bd-section-ruled > .bd-wrap { border-top: 1px solid var(--bd-line); padding-top: 64px; }
.bd-heading { font-size: clamp(30px, 4.4vw, 48px); text-align: center; margin: 0 0 52px; }
.bd-heading-left { text-align: left; }

.bd-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.bd-tile { display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: inherit; min-width: 0; }
.bd-tile-img { position: relative; display: block; aspect-ratio: 1 / 1; border-radius: var(--bd-card); background: var(--bd-tile); overflow: hidden; }
.bd-tile-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.bd-tile:hover .bd-tile-img img { transform: scale(1.04); }
.bd-tile-badge { position: absolute; top: 12px; left: 12px; z-index: 1; background: var(--bd-accent); color: var(--bd-accent-ink); font-size: 11px; font-weight: 600; padding: 5px 12px; border-radius: var(--bd-pill); }
.bd-tile-name { font-size: 18px; font-weight: 700; line-height: 1.25; margin-top: 6px; }
.bd-tile-price { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.bd-tile-price strong { font-size: 22px; font-weight: 700; }
.bd-tile-price s { font-size: 22px; font-weight: 700; color: rgba(0, 0, 0, .4); }
.bd-tile-price em, body.store-bold .pl-off {
  font-style: normal; font-size: 12px; font-weight: 500; color: var(--bd-off); background: var(--bd-off-bg);
  padding: 5px 12px; border-radius: var(--bd-pill);
}
.bd-more { text-align: center; margin-top: 36px; }

.bd-panel { background: var(--bd-tile); border-radius: 40px; padding: 70px 64px 76px; }
.bd-panel .bd-heading { margin-bottom: 64px; }
.bd-browse { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; }
.bd-browse-tile {
  position: relative; overflow: hidden; display: block; min-height: 289px; background: #fff; border-radius: var(--bd-card);
  text-decoration: none; color: #000; grid-column: span 7;
}
.bd-browse-tile:nth-child(4n+1), .bd-browse-tile:nth-child(4n) { grid-column: span 5; }
.bd-browse-tile span { position: absolute; top: 20px; left: 24px; z-index: 1; font-size: 26px; font-weight: 700; background: #fff; padding: 6px 20px; border-radius: var(--bd-pill); box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.bd-browse-tile img { position: absolute; right: 0; top: 0; width: 70%; height: 100%; object-fit: cover; object-position: center top; }

.bd-about { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.bd-about-img { width: 100%; border-radius: var(--bd-card); object-fit: cover; max-height: 460px; }
.bd-about-copy p { color: var(--bd-muted); line-height: 1.7; }
.bd-about-copy .bd-btn { margin-top: 12px; }

.bd-reviews { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: none; }
.bd-reviews::-webkit-scrollbar { display: none; }
.bd-review { flex: 0 0 min(400px, 86%); scroll-snap-align: start; margin: 0; padding: 28px 32px; border: 1px solid var(--bd-line); border-radius: var(--bd-card); }
.bd-review figcaption { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; font-size: 20px; }
.bd-review figcaption img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.bd-review blockquote { margin: 0; color: var(--bd-muted); font-size: 16px; line-height: 1.6; }

@media (max-width: 991.98px) {
  .bd-hero-grid { grid-template-columns: 1fr; min-height: 0; gap: 0; }
  .bd-hero-copy { padding: 40px 0 8px; }
  .bd-hero-art { min-height: 260px; }
  .bd-hero-img { max-height: 420px; }
  .bd-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .bd-panel { padding: 40px 20px 28px; border-radius: 28px; }
  .bd-panel .bd-heading { margin-bottom: 32px; }
  .bd-browse { grid-template-columns: 1fr; gap: 14px; }
  .bd-browse-tile, .bd-browse-tile:nth-child(4n+1), .bd-browse-tile:nth-child(4n) { grid-column: auto; min-height: 190px; }
  .bd-browse-tile span { font-size: 22px; left: 16px; top: 16px; }
  .bd-about { grid-template-columns: 1fr; gap: 24px; }
  .bd-section { padding-top: 48px; }
  .bd-heading { margin-bottom: 28px; }
}
@media (max-width: 575.98px) {
  .bd-stats li { padding: 0 16px; }
  .bd-stats strong { font-size: 24px; }
  .bd-strip-inner { justify-content: center; gap: 12px 28px; padding-top: 22px; padding-bottom: 22px; }
  .bd-tile-name { font-size: 15px; }
  .bd-tile-price strong, .bd-tile-price s { font-size: 17px; }
  .bd-btn { min-height: 48px; padding: 0 28px; }
  .bd-btn-line { min-width: 0; width: 100%; }
}

/* ======================================================= PRODUCT LIST */
.bd-listing { padding-top: 12px; padding-bottom: 72px; }
.bd-crumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 16px; padding: 18px 0 20px; border-top: 1px solid var(--bd-line); }
.bd-crumbs a { color: var(--bd-muted); text-decoration: none; }
.bd-crumbs i { font-size: 10px; color: var(--bd-muted); }
.bd-crumbs span { color: #000; }
.bd-listing-grid { display: grid; grid-template-columns: 295px minmax(0, 1fr); gap: 20px; align-items: start; }

.bd-filters { border: 1px solid var(--bd-line); border-radius: var(--bd-card); padding: 20px 24px; position: sticky; top: 124px; }
.bd-filters > summary { display: flex; justify-content: space-between; align-items: center; font-size: 20px; font-weight: 700; cursor: pointer; list-style: none; }
.bd-filters > summary::-webkit-details-marker { display: none; }
.bd-filters > summary i { color: rgba(0, 0, 0, .4); }
.bd-filter-block { padding: 18px 0; border-bottom: 1px solid var(--bd-line); }
.bd-filter-block:last-of-type { border-bottom: 0; }
.bd-filter-block h3 { font-family: var(--font-primary); text-transform: none; font-size: 20px; font-weight: 700; margin: 0 0 16px; letter-spacing: 0; }
.bd-filter-links { list-style: none; margin: 0; padding: 0 !important; }
.bd-filter-links a { display: flex; justify-content: space-between; align-items: center; padding: 9px 0; color: var(--bd-muted); text-decoration: none; font-size: 16px; }
.bd-filter-links a i { font-size: 11px; }
.bd-filter-links a:hover, .bd-filter-links a.active { color: #000; }
.bd-filter-links a.active { font-weight: 700; }
.bd-filter-form { display: block; margin: 0; }
.bd-filter-form input[type=range] { width: 100%; accent-color: var(--bd-accent); }
.bd-price-read { display: flex; justify-content: space-between; font-size: 14px; color: var(--bd-muted); margin-top: 8px; }
.bd-price-read strong { color: #000; }
.bd-clear { display: block; text-align: center; margin-top: 12px; font-size: 14px; color: var(--bd-muted); }

.bd-results-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-bottom: 20px; }
.bd-title { font-size: clamp(30px, 3.6vw, 40px); margin: 0; }
.bd-results-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 20px; }
.bd-count { color: var(--bd-muted); font-size: 16px; }
.bd-sort { display: flex !important; flex-direction: row !important; align-items: center; gap: 6px; margin: 0; width: auto !important; }
.bd-sort label { color: var(--bd-muted); font-size: 16px; margin: 0; }
.bd-sort select { border: 0; background: transparent; font-weight: 700; font-size: 16px; padding: 4px 18px 4px 4px; cursor: pointer; }
.bd-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }

@media (max-width: 991.98px) {
  .bd-listing-grid { grid-template-columns: 1fr; gap: 16px; }
  .bd-filters { position: static; padding: 14px 18px; }
  .bd-filters > summary { font-size: 18px; }
  .bd-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}
@media (max-width: 575.98px) { .bd-crumbs { font-size: 14px; padding: 12px 0; } .bd-grid { gap: 12px; } }

/* ============================================ the shared product card */
body.store-bold .pl-card { background: transparent; border: 0; border-radius: 0; box-shadow: none; overflow: visible; }
body.store-bold .pl-card:hover { box-shadow: none; transform: none; }
body.store-bold .pl-media { border-radius: var(--bd-card); background: var(--bd-tile); }
body.store-bold .pl-body { padding: 14px 0 4px; gap: 6px; }
body.store-bold .pl-title { font-size: 18px; font-weight: 700; color: #000; min-height: 0; }
body.store-bold .pl-desc { display: none; }
body.store-bold .pl-rating:not(:has(.pl-rating-count)) { display: none; }
body.store-bold .pl-price-now { font-size: 22px; font-weight: 700; color: #000; }
body.store-bold .pl-price-old { font-size: 22px; font-weight: 700; color: rgba(0, 0, 0, .4); }
body.store-bold .pl-unit { display: none; }
body.store-bold .pl-price { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
body.store-bold .pl-off { display: inline-block; }
body.store-bold .pl-badge { background: var(--bd-accent); color: var(--bd-accent-ink); border-radius: var(--bd-pill); }
body.store-bold .pl-actions { padding: 8px 0 0; }
body.store-bold .pl-add, body.store-bold .pl-stepper { border-radius: var(--bd-pill); }
body.store-bold .pl-add { background: var(--btn-bg-color, #000); color: var(--btn-txt-color, #fff); min-height: 44px; }
body.store-bold .pl-wish .wishlist-icon { background: #fff; }
@media (max-width: 575.98px) {
  body.store-bold .pl-title { font-size: 15px; }
  body.store-bold .pl-price-now, body.store-bold .pl-price-old { font-size: 17px; }
}

/* ======================================================= PRODUCT PAGE */
body.store-bold .product-box { background: transparent; border: 0; box-shadow: none; }
body.store-bold .product-title {
  font-family: var(--bd-display); text-transform: uppercase; font-size: clamp(28px, 3.6vw, 40px); line-height: 1.05; letter-spacing: -.01em; font-weight: 400;
}
body.store-bold .product-desc { color: var(--bd-muted); }
body.store-bold .product-box .col-md-5 img { border-radius: var(--bd-card); background: var(--bd-tile); }
body.store-bold #addToCartForm .btn,
body.store-bold .product-box .btn { border-radius: var(--bd-pill) !important; }
body.store-bold #addToCartForm .add-dec-button { background: #f0f0f0; border-radius: var(--bd-pill); border: 0; padding: 4px; overflow: hidden; }
body.store-bold .variant-option { border-radius: var(--bd-pill) !important; background: #f0f0f0; border-color: transparent !important; }
body.store-bold .variant-option:has(input:checked) { background: var(--bd-accent); color: var(--bd-accent-ink); }
body.store-bold .tab-link.active-tab, body.store-bold .active-tab { border-bottom: 2px solid var(--bd-accent); color: #000; }
body.store-bold .review-card, body.store-bold .review-panel { border-radius: var(--bd-card); border: 1px solid var(--bd-line); box-shadow: none; }
body.store-bold .similar-product-card { border-radius: var(--bd-card) !important; }

/* ========================================================= CART + CHECKOUT */
body.store-bold .cart-title, body.store-bold .checkout-title {
  font-family: var(--bd-display); text-transform: uppercase; text-align: left; font-weight: 400; letter-spacing: -.01em; font-size: clamp(30px, 4vw, 40px);
}
body.store-bold .cart-summary-card,
body.store-bold .checkout-panel,
body.store-bold .checkout-order-card {
  background: #fff; border: 1px solid var(--bd-line); border-radius: var(--bd-card); box-shadow: none;
}
body.store-bold .cart-primary-btn, body.store-bold .cart-secondary-btn, body.store-bold .checkout-submit-btn,
body.store-bold .payment-success-btn, body.store-bold .account-btn { border-radius: var(--bd-pill); min-height: 54px; }
body.store-bold .cart-qty-group, body.store-bold .checkout-order-qty-group { border-radius: var(--bd-pill); background: #f0f0f0; border-color: transparent !important; }
body.store-bold .cart-item-image, body.store-bold .checkout-order-image { border-radius: 12px; background: var(--bd-tile); }
body.store-bold .checkout-payment-option { border-radius: 14px; }
body.store-bold .form-control, body.store-bold .form-select { border-radius: 12px; }

/* ======================================================== ACCOUNT, MISC */
body.store-bold .account-panel, body.store-bold .account-section-card, body.store-bold .login-card, body.store-bold .register-card {
  border-radius: var(--bd-card); box-shadow: none; border: 1px solid var(--bd-line);
}
body.store-bold .account-content-title { font-family: var(--bd-display); text-transform: uppercase; font-weight: 400; }
body.store-bold .btn-primary, body.store-bold .btn { border-radius: var(--bd-pill); }

/* ---- polish ---- */
/* pages that paint their own cream background take the layout's white */
body.store-bold .cart-page, body.store-bold .checkout-page { background: #fff; }
body.store-bold .cart-summary-card { padding: 24px; }
body.store-bold .cart-summary-line, body.store-bold .checkout-summary-line { color: var(--bd-muted); }
body.store-bold .cart-summary-total, body.store-bold .checkout-summary-total { color: #000; }
/* the product page's discount badge becomes the soft pink pill instead of a loud green block */
body.store-bold .product-box .discount {
  background: var(--bd-off-bg) !important; color: var(--bd-off) !important;
  border-radius: var(--bd-pill); padding: 6px 14px; font-size: 14px; font-weight: 500;
}
@media (max-width: 575.98px) { body.store-bold .site-brand-name { font-size: 18px; } }

/* ====================================================================================================
   PRODUCT PAGE (bold/productdetail.html)
   Classic's page-level styles live inside Classic's own template, so everything this page needs is here.
   ==================================================================================================== */
.bd-pdp { padding-bottom: 72px; }
.bd-pdp-top { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 40px; align-items: start; }

/* gallery: a column of thumbnails beside the large picture (the column disappears when there is only one picture) */
.bd-gallery { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 14px; align-items: start; }
.bd-gallery:has(.bd-thumbs .bd-thumb:only-child), .bd-gallery:not(:has(.bd-thumb)) { grid-template-columns: minmax(0, 1fr); }
.bd-gallery:has(.bd-thumbs .bd-thumb:only-child) .bd-thumbs, .bd-gallery:not(:has(.bd-thumb)) .bd-thumbs { display: none; }
.bd-thumbs { display: flex; flex-direction: column; gap: 14px; }
.bd-thumb { padding: 0; border: 2px solid transparent; border-radius: var(--bd-card); background: var(--bd-tile); overflow: hidden; aspect-ratio: 1 / 1; cursor: pointer; }
.bd-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bd-thumb.active { border-color: var(--bd-accent); }
.bd-main-img { aspect-ratio: 1 / 1; background: var(--bd-tile); border-radius: var(--bd-card); overflow: hidden; }
.bd-main-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

.bd-pdp-titlerow { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.bd-pdp-title { font-size: clamp(28px, 3.4vw, 40px); margin: 0 0 14px; }
.bd-share { flex: none; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--bd-line); background: #fff; color: #000; cursor: pointer; }
.bd-pdp-rating { display: flex; align-items: center; gap: 4px; margin-bottom: 14px; }
.bd-pdp-rating i { color: var(--bd-star); font-size: 18px; }
.bd-pdp-rating i.fa-regular { color: rgba(0, 0, 0, .25); }
.bd-pdp-score { margin-left: 8px; font-size: 16px; } .bd-pdp-score small { color: var(--bd-muted); font-size: 16px; }
.bd-pdp-reviews { color: var(--bd-muted); font-size: 14px; margin-left: 4px; }
.bd-pdp-price { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-bottom: 16px; }
.bd-pdp-price .current-price { font-size: 32px; font-weight: 700; }
.bd-pdp-price .old-price { font-size: 32px; font-weight: 700; color: rgba(0, 0, 0, .3); text-decoration: line-through; }
.bd-pdp-price .discount { font-size: 16px; font-weight: 500; }
.bd-volume { background: var(--bd-soft); border-radius: 12px; padding: 10px 16px; font-weight: 600; font-size: 15px; display: inline-block; margin: 0 0 16px; }
.bd-pdp-desc { color: var(--bd-muted); font-size: 16px; line-height: 1.6; margin: 0 0 14px; }
.bd-pdp-meta { display: flex; flex-direction: column; gap: 4px; color: var(--bd-muted); font-size: 14px; margin: 0; }
.bd-rule { border: 0; border-top: 1px solid var(--bd-line); margin: 24px 0; opacity: 1; }

/* options as pills */
body.store-bold .bd-label { font-family: var(--font-primary); text-transform: none; font-size: 16px; font-weight: 400; color: var(--bd-muted); margin: 0 0 14px; letter-spacing: 0; }
.bd-opt-row { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
.bd-opt { position: relative; display: inline-flex; align-items: center; padding: 12px 24px; background: #f0f0f0; border-radius: var(--bd-pill); cursor: pointer; font-size: 16px; }
.bd-opt input { position: absolute; opacity: 0; pointer-events: none; }
.bd-opt:has(input:checked) { background: var(--bd-accent); color: var(--bd-accent-ink); }
.bd-opt:has(input:focus-visible) { outline: 2px solid var(--bd-accent); outline-offset: 2px; }
.bd-opt-off { opacity: .45; cursor: not-allowed; }
.bd-opt small { font-size: 12px; }

.bd-stock { margin-bottom: 18px; }
.bd-stock-box { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: var(--bd-pill); font-size: 14px; font-weight: 600; background: #eef9f1; color: #198754; border: 1px solid #badbcc; }
.bd-stock-box:has(#stockInfoText:empty) { display: none; }

/* quantity pill beside a big Add to Cart pill */
.bd-buy { display: block !important; margin: 0; }
.bd-buyrow { display: flex; gap: 16px; align-items: center; }
.bd-buyrow-2 { margin-top: 14px; }
.bd-buy .add-dec-button { flex: none; width: 170px; height: 52px; display: flex; flex-wrap: nowrap; align-items: center; background: #f0f0f0; border: 0; border-radius: var(--bd-pill); overflow: hidden; padding: 0 6px; }
.bd-buy .add-dec-button .btn { width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: #000; font-size: 26px !important; line-height: 1; border-radius: 50% !important; }
.bd-buy .add-dec-button input { flex: 1; min-width: 0; height: 100%; border: 0; background: transparent !important; text-align: center; font-weight: 600; font-size: 16px; padding: 0; box-shadow: none; -moz-appearance: textfield; }
.bd-addtocart { flex: 1; min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: var(--btn-bg-color, #000); color: var(--btn-txt-color, #fff); border: 0; border-radius: var(--bd-pill) !important; font-size: 16px; font-weight: 500; text-decoration: none; }
.bd-addtocart:hover { opacity: .85; color: var(--btn-txt-color, #fff); }
.bd-buynow { flex: 1; min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: #fff; color: var(--bd-accent); border: 1px solid var(--bd-accent); border-radius: var(--bd-pill) !important; font-size: 16px; font-weight: 500; text-decoration: none; }
.bd-buynow:hover { background: var(--bd-tile); color: #000; }
#addToCartForm .pd-go-cart, #addToCartForm .pd-incart-note { display: none !important; }
#addToCartForm.pd-in-cart .pd-go-cart { display: inline-flex !important; }
#addToCartForm.pd-in-cart .pd-add-btn { display: none !important; }
#addToCartForm.pd-in-cart .pd-incart-note { display: block !important; color: #168039; font-size: 14px; font-weight: 600; margin: 10px 0 0 4px; }
.bd-oos { display: flex; flex-direction: column; gap: 4px; padding: 16px 20px; background: var(--bd-soft); border-radius: 14px; color: var(--bd-muted); }
.bd-oos strong { color: #000; }

.bd-pdp-extras { margin-top: 24px; display: grid; gap: 16px; }
.bd-pdp-extras form { display: block !important; margin: 0; }
.bd-wish { display: inline-flex; align-items: center; gap: 8px; border: 0; background: transparent; padding: 4px 0; font-size: 15px; font-weight: 500; color: #000; cursor: pointer; }
.bd-wish i { color: var(--bd-off); }
.bd-zip { border: 1px solid var(--bd-line); border-radius: var(--bd-card); padding: 16px 18px; }
.bd-zip label { display: block; font-size: 14px; color: var(--bd-muted); margin-bottom: 10px; }
.bd-zip .zip-checker-row { display: flex; gap: 10px; }
.bd-zip .zip-checker-input { flex: 1; min-width: 0; background: #f0f0f0; border: 0; border-radius: var(--bd-pill); height: 44px; padding: 0 18px; font-size: 15px; }
.bd-zip .zip-checker-btn { flex: none; height: 44px; padding: 0 24px; border-radius: var(--bd-pill) !important; background: var(--btn-bg-color, #000); color: var(--btn-txt-color, #fff); border: 0; font-weight: 500; }
.bd-zip .zip-checker-result { margin-top: 10px; font-size: 14px; font-weight: 500; }
.bd-zip .zip-checker-result.success { color: #168039; }

/* tabs */
.bd-tabs { display: flex; margin-top: 64px; border-bottom: 1px solid var(--bd-line); }
.bd-tabs .tab-link {
  flex: 1; padding: 18px 8px; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px;
  font-size: 18px; color: var(--bd-muted); cursor: pointer; text-align: center; border-radius: 0 !important; min-height: 0; width: auto;
}
.bd-tabs .tab-link:hover { color: #000; }
.bd-tabs .tab-link.active-tab { color: #000; border-bottom-color: var(--bd-accent); font-weight: 600; }
.bd-tabpane { padding: 32px 0 0; }
.bd-tabpane.d-none { display: none !important; }
.bd-muted { color: var(--bd-muted); }

/* reviews */
.bd-rev-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px 20px; margin-bottom: 24px; }
body.store-bold .bd-rev-title { font-family: var(--font-primary); text-transform: none; letter-spacing: 0; font-size: 24px; font-weight: 700; margin: 0; }
.bd-rev-title small { font-size: 16px; font-weight: 400; color: var(--bd-muted); }
.bd-rev-tools { display: flex; align-items: center; gap: 12px; }
.bd-rev-sort { margin: 0; }
.bd-rev-sort select { height: 48px; border: 0; background: #f0f0f0; border-radius: var(--bd-pill); padding: 0 40px 0 22px; font-size: 16px; font-weight: 500; cursor: pointer; }
.bd-rev-write { min-height: 48px; padding: 0 28px; white-space: nowrap; }
.bd-rev-summary { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; border: 1px solid var(--bd-line); border-radius: var(--bd-card); padding: 20px 28px; margin-bottom: 20px; }
.bd-rev-score { display: flex; flex-direction: column; align-items: center; min-width: 110px; }
.bd-rev-score strong { font-size: 48px; line-height: 1; }
.bd-rev-score span { color: var(--bd-muted); font-size: 14px; margin-top: 4px; }
.bd-rev-bars { flex: 1; min-width: 220px; max-width: 460px; display: grid; gap: 6px; }
.rating-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) 28px; align-items: center; gap: 10px; font-size: 14px; color: var(--bd-muted); }
.rating-track { height: 8px; background: #eee; border-radius: 99px; overflow: hidden; }
.rating-fill { height: 100%; background: var(--bd-star); border-radius: 99px; }
.bd-rev-form { border: 1px solid var(--bd-line); border-radius: var(--bd-card); padding: 24px; margin-bottom: 20px; }
.bd-rev-form[hidden] { display: none; }
.bd-rev-form form { display: block !important; margin: 0; }
.bd-rev-form-grid { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 16px; margin-bottom: 16px; }
.bd-rev-form label { display: block; font-size: 14px; color: var(--bd-muted); margin-bottom: 6px; }
.bd-rev-form textarea { min-height: 100px; width: 100%; }

.bd-rev-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.bd-rev-grid .review-card { display: flex; flex-direction: column; gap: 12px; padding: 28px 32px; border: 1px solid var(--bd-line); border-radius: var(--bd-card); background: #fff; box-shadow: none; }
.bd-rev-more { display: none !important; }
.review-card-stars i { color: var(--bd-star); font-size: 20px; }
.review-card-stars i.bi-star { color: rgba(0, 0, 0, .25); }
.bd-rev-grid .review-author { display: flex; align-items: center; gap: 8px; }
.bd-rev-grid .review-avatar { display: none; }
.bd-rev-grid .review-name { font-size: 20px; font-weight: 700; display: flex; align-items: center; gap: 6px; }
body.store-bold .verified-badge { display: inline-flex; align-items: center; background: transparent !important; padding: 0 !important; border: 0 !important; color: #01ab31; font-size: 20px; line-height: 1; }
.bd-rev-grid .review-comment { color: var(--bd-muted); font-size: 16px; line-height: 1.55; margin: 0; }
.bd-rev-grid .review-reply { background: #f6f6f6; border-radius: 12px; padding: 12px 14px; font-size: 14px; }
.bd-rev-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: auto; }
.bd-rev-grid .review-date { color: var(--bd-muted); font-size: 15px; }
.review-helpful { border: 1px solid var(--bd-line); background: #fff; border-radius: var(--bd-pill); padding: 6px 14px; font-size: 13px; cursor: pointer; }
.review-helpful:disabled { opacity: .6; cursor: default; }
.review-empty { grid-column: 1 / -1; text-align: center; padding: 48px 16px; color: var(--bd-muted); display: flex; flex-direction: column; align-items: center; gap: 6px; }
.review-empty i { font-size: 28px; }
.review-empty strong { color: #000; }

.bd-reco { margin-top: 80px; }
.bd-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bd-tile-sub { color: var(--bd-muted); font-size: 14px; }
.bd-unit { color: var(--bd-muted); font-size: 14px; }

@media (max-width: 991.98px) {
  .bd-pdp-top { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .bd-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bd-rev-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  /* phone: the large picture first, the thumbnails in a row under it */
  .bd-gallery { grid-template-columns: 1fr; }
  .bd-main-img { order: 1; }
  .bd-thumbs { order: 2; flex-direction: row; gap: 10px; }
  .bd-thumb { flex: 1 1 0; max-width: 33%; }
  .bd-buyrow { flex-wrap: wrap; }
  .bd-buy .add-dec-button { width: 100%; }
  .bd-pdp-price .current-price, .bd-pdp-price .old-price { font-size: 26px; }
  .bd-tabs .tab-link { font-size: 15px; padding: 14px 4px; }
  .bd-rev-form-grid { grid-template-columns: 1fr; }
  .bd-rev-grid .review-card { padding: 22px 20px; }
  .bd-rev-tools { width: 100%; justify-content: space-between; }
  .bd-reco { margin-top: 56px; }
}

/* ====================================================================================================
   CART (bold/cart.html)
   ==================================================================================================== */
.bd-cart { padding-bottom: 80px; }
.bd-cart-title { margin: 6px 0 24px; }
.bd-cart-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.bd-cart-list { border: 1px solid var(--bd-line); border-radius: var(--bd-card); padding: 6px 24px; }
.bd-cart-row { display: grid; grid-template-columns: 124px minmax(0, 1fr); gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--bd-line); }
.bd-cart-row:last-child { border-bottom: 0; }
.bd-cart-row.is-out-of-stock { opacity: .6; }
.bd-cart-img { display: block; width: 124px; height: 124px; border-radius: 14px; background: var(--bd-tile); overflow: hidden; }
.bd-cart-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bd-cart-info { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.bd-cart-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
body.store-bold .bd-cart-name { font-family: var(--font-primary); text-transform: none; letter-spacing: 0; font-size: 20px; font-weight: 700; line-height: 1.25; margin: 0; }
.bd-cart-name a { color: #000; text-decoration: none; }
.bd-cart-remove { flex: none; border: 0; background: transparent; color: var(--bd-off); font-size: 20px; padding: 2px 4px; cursor: pointer; width: auto !important; min-height: 0; }
.bd-cart-opt { margin: 0; font-size: 14px; color: var(--bd-muted); } .bd-cart-opt span { color: #000; }
.bd-cart-vol { align-self: flex-start; background: var(--bd-soft); font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: var(--bd-pill); }
.bd-cart-note { font-size: 13px; font-weight: 600; }
.bd-cart-note.is-low { color: #b45309; } .bd-cart-note.is-adjusted { color: #1d4ed8; } .bd-cart-note.is-out { color: var(--bd-off); }
.bd-cart-bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-top: auto; padding-top: 8px; }
.bd-cart-price { display: flex; flex-direction: column; }
.bd-cart-price strong { font-size: 24px; font-weight: 700; line-height: 1.1; }
.bd-cart-price small { color: var(--bd-muted); font-size: 13px; }
.bd-cart-qty { display: inline-flex; align-items: center; height: 44px; padding: 0 6px; background: #f0f0f0; border-radius: var(--bd-pill); }
.bd-cart-qty button { width: 36px; height: 36px; padding: 0 !important; border: 0; background: transparent; color: #000; font-size: 20px; line-height: 1; border-radius: 50% !important; min-height: 0; min-width: 0 !important; cursor: pointer; }
.bd-cart-qty button:disabled { opacity: .3; cursor: not-allowed; }
.bd-cart-qty span { min-width: 34px; text-align: center; font-weight: 600; font-size: 15px; }

.bd-summary { border: 1px solid var(--bd-line); border-radius: var(--bd-card); padding: 24px; position: sticky; top: 130px; }
body.store-bold .bd-summary h2 { font-family: var(--font-primary); text-transform: none; letter-spacing: 0; font-size: 24px; font-weight: 700; margin: 0 0 20px; }
.bd-sum-line { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 14px; font-size: 18px; color: var(--bd-muted); }
.bd-sum-line small { font-size: 14px; }
.bd-sum-line strong { color: #000; font-weight: 700; }
.bd-sum-total { display: flex; justify-content: space-between; gap: 12px; padding-top: 18px; margin: 4px 0 22px; border-top: 1px solid var(--bd-line); font-size: 20px; }
.bd-sum-total strong { font-size: 24px; }
.bd-promo { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 10px; margin: 0; position: relative; }
.bd-promo i { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: rgba(0, 0, 0, .4); pointer-events: none; }
.bd-promo input { flex: 1; min-width: 0; height: 48px; border: 0; background: #f0f0f0; border-radius: var(--bd-pill); padding: 0 16px 0 44px; font-size: 16px; }
.bd-promo .bd-btn { min-height: 48px; padding: 0 28px; flex: none; width: auto; }
.bd-promo-note { margin: 8px 4px 20px; font-size: 13px; color: var(--bd-muted); }
.bd-checkout { gap: 10px; min-height: 56px; }
.bd-continue { display: block; text-align: center; margin-top: 14px; font-size: 14px; color: var(--bd-muted); }
.bd-cart-empty { text-align: center; padding: 72px 16px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.bd-cart-empty i { font-size: 40px; color: rgba(0, 0, 0, .25); }
body.store-bold .bd-cart-empty h2 { font-family: var(--font-primary); text-transform: none; font-size: 26px; font-weight: 700; margin: 8px 0 0; letter-spacing: 0; }
.bd-cart-empty p { color: var(--bd-muted); margin-bottom: 14px; }

@media (max-width: 991.98px) {
  .bd-cart-grid { grid-template-columns: minmax(0, 1fr); }
  .bd-summary { position: static; }
}
@media (max-width: 575.98px) {
  .bd-cart-list { padding: 4px 16px; }
  .bd-cart-row { grid-template-columns: 92px minmax(0, 1fr); gap: 14px; }
  .bd-cart-img { width: 92px; height: 92px; }
  .bd-cart-name { font-size: 16px; }
  .bd-cart-price strong { font-size: 20px; }
  .bd-sum-line { font-size: 16px; }
}
@media (max-width: 575.98px) {
  .bd-rev-write { padding: 0 20px; font-size: 15px; }
  .bd-rev-sort select { padding: 0 34px 0 16px; font-size: 15px; }
}


/* ====================================================================================================
   PHONES AND TABLETS - an app-like shop in the same black-and-white look
   * the page leaves exactly the fixed header's height free (measured into --bd-header-h by bold/_head.html)
   * a bottom tab bar (bold/_footer.html), and sticky buy / checkout bars on the product page and cart
   * swipeable rows and category chips, 2x2 stats, full-width product pictures, 44px tap targets, no text under 12px
   Theme colours are untouched: fills still use --bd-accent (the theme's button colour).
   ==================================================================================================== */
@media (max-width: 1199.98px) {
  body.store-bold { padding-top: var(--bd-header-h, 110px) !important; }
  html:has(body.store-bold) { scroll-padding-top: calc(var(--bd-header-h, 110px) + 12px); }
  /* the brand gets the room the icons leave instead of a fixed share, so longer names are not cut short */
  body.store-bold .navbar-brand { max-width: none; flex: 1 1 auto; min-width: 0; margin-right: 8px; }
  body.store-bold .site-brand-name { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
}

/* the tab bar, buy bar and checkout bar are phone-only; wider screens use the page's own buttons */
.bd-tabbar, .bd-buybar, .bd-cartbar { display: none; }
@media (max-width: 767.98px) {
  /* ---------------------------------------------------------------- tab bar */
  body.store-bold .bd-tabbar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1035;
    display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
    padding: 6px 4px calc(6px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, .97); backdrop-filter: blur(10px); border-top: 1px solid var(--bd-line);
  }
  body.store-bold .bd-tab {
    position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
    min-height: 48px; color: rgba(0, 0, 0, .55); text-decoration: none; font-size: 12px; font-weight: 500; line-height: 1;
  }
  body.store-bold .bd-tab i { font-size: 19px; }
  body.store-bold .bd-tab.is-active { color: #000; font-weight: 700; }
  body.store-bold .bd-tab.is-active i { color: var(--bd-accent); }
  body.store-bold .bd-tab-count {
    position: absolute; top: 2px; left: calc(50% + 6px); min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px;
    background: var(--bd-accent); color: var(--bd-accent-ink); font-size: 12px; font-weight: 700; line-height: 18px; text-align: center;
  }
  body.store-bold .bd-tab-count[hidden] { display: none; }
  body.store-bold:has(.bd-tabbar) { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }

  /* ------------------------------------------------ sticky buy bar / checkout bar */
  body.store-bold .bd-buybar, body.store-bold .bd-cartbar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1035; display: flex; align-items: center; gap: 8px;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, .98); backdrop-filter: blur(10px); border-top: 1px solid var(--bd-line);
    box-shadow: 0 -8px 24px rgba(0, 0, 0, .06);
  }
  body.store-bold .bd-buybar[hidden] { display: none; }
  body.store-bold .bd-buybar-price { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; line-height: 1.15; }
  body.store-bold .bd-buybar-price small { font-size: 12px; color: var(--bd-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  body.store-bold .bd-buybar-price strong { font-size: 18px; font-weight: 700; color: #000; }
  body.store-bold .bd-buybar-btn {
    flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 46px; padding: 0 16px;
    border-radius: var(--bd-pill) !important; font-size: 15px !important; font-weight: 600; white-space: nowrap; cursor: pointer;
  }
  body.store-bold .bd-buybar-add, body.store-bold .bd-buybar-go { background: var(--bd-accent); color: var(--bd-accent-ink); border: 0; }
  body.store-bold .bd-buybar-buy { background: #fff; color: var(--bd-accent); border: 1px solid var(--bd-accent); }
  body.store-bold .bd-buybar-go { display: none; }
  body.store-bold:has(#addToCartForm.pd-in-cart) .bd-buybar-add { display: none; }
  body.store-bold:has(#addToCartForm.pd-in-cart) .bd-buybar-go { display: inline-flex; }
  body.store-bold .bd-buybar-btn:disabled { opacity: .45; }
  body.store-bold.bd-has-buybar { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
  /* the staff pill sits above whichever bar is showing */
  body.store-bold:has(.bd-tabbar) .staff-bar, body.store-bold.bd-has-buybar .staff-bar { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }

  /* -------------------------------------------- buttons: the shared 11px rule is far too small */
  body.store-bold .bd-addtocart, body.store-bold .bd-buynow, body.store-bold .bd-btn, body.store-bold .submit-btn,
  body.store-bold .btn-dark, body.store-bold .form button[type="submit"] { font-size: 15px !important; }
  body.store-bold .pl-add { font-size: 14px !important; min-height: 44px; }
  body.store-bold .bd-tile-badge, body.store-bold .pl-badge, body.store-bold .pl-off { font-size: 12px; }

  /* ------------------------------------------------------------------- home */
  body.store-bold .bd-hero-copy { padding: 24px 0 4px; }
  body.store-bold .bd-hero-art { min-height: 0; margin-top: 24px; }
  body.store-bold .bd-hero-img { max-height: 340px; width: 100%; object-fit: cover; border-radius: var(--bd-card); }
  body.store-bold .bd-spark { width: 36px; height: 36px; }
  body.store-bold .bd-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 0; margin-top: 28px; }
  body.store-bold .bd-stats li { padding: 0 0 0 16px; border-left: 1px solid var(--bd-line); }
  body.store-bold .bd-stats li:nth-child(odd) { padding-left: 0; border-left: 0; }
  /* categories: one swipeable row of chips instead of wrapped centred links */
  body.store-bold .bd-strip-inner {
    flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; gap: 10px; padding: 14px 16px;
    scroll-snap-type: x proximity; scroll-padding-left: 16px; scrollbar-width: none; -webkit-overflow-scrolling: touch;
  }
  body.store-bold .bd-strip-inner::-webkit-scrollbar { display: none; }
  body.store-bold .bd-strip-inner a {
    flex: none; display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; scroll-snap-align: start;
    border: 1px solid color-mix(in srgb, var(--bd-accent-ink) 40%, transparent); border-radius: var(--bd-pill);
  }
  /* product rows: swipe sideways with the next card peeking, like a shopping app */
  body.store-bold .bd-cards {
    display: flex; overflow-x: auto; gap: 12px; margin: 0 -16px; padding: 0 16px 8px;
    scroll-snap-type: x mandatory; scroll-padding-left: 16px; scrollbar-width: none; -webkit-overflow-scrolling: touch;
  }
  body.store-bold .bd-cards::-webkit-scrollbar { display: none; }
  body.store-bold .bd-cards > * { flex: 0 0 68%; scroll-snap-align: start; }
  body.store-bold .bd-section { padding-top: 40px; }
  body.store-bold .bd-heading { font-size: 30px; margin-bottom: 22px; }

  /* ------------------------------------------------------------ product list */
  body.store-bold .bd-crumbs a, body.store-bold .bd-crumbs span { display: inline-flex; align-items: center; min-height: 36px; }
  body.store-bold .bd-sort select { min-height: 44px; }
  body.store-bold .pl-wish .wishlist-icon { width: 40px; height: 40px; }
  body.store-bold .bd-filter-links a { min-height: 44px; }

  /* ------------------------------------------------------------ product page */
  body.store-bold .bd-pdp-top.product-box { padding: 0; }
  body.store-bold .bd-pdp-title { text-align: left; font-size: 28px; }
  body.store-bold .bd-pdp-titlerow { align-items: flex-start; }
  /* the shared phone rule shrinks .rating stars to 6px and centres the row */
  body.store-bold .bd-pdp-rating { justify-content: flex-start; }
  body.store-bold .bd-pdp-rating i { font-size: 17px !important; }
  body.store-bold .bd-buy .add-dec-button { height: 52px; }
  body.store-bold .bd-buy .add-dec-button .btn { width: 48px; height: 44px; font-size: 24px !important; }
  body.store-bold .bd-buy #quantity { height: 44px; font-size: 17px; }
  body.store-bold .zip-checker-input, body.store-bold .bd-zip .zip-checker-input { min-height: 44px; font-size: 16px; }
  body.store-bold .bd-wish { min-height: 44px; font-size: 15px; }
  body.store-bold .bd-wish span { font-size: 15px; }

  /* -------------------------------------------------------------------- cart */
  body.store-bold .bd-cart-remove { width: 40px !important; height: 40px; display: inline-grid; place-items: center; }
  body.store-bold .bd-cart-qty button { width: 40px; height: 40px; }
  body.store-bold .bd-continue { padding: 12px 0; }
  body.store-bold .bd-promo .bd-btn { font-size: 15px !important; }

  /* ----------------------------------------------------- shared pages in Bold */
  /* contact: the form heading used the footer colour, which Bold makes light grey */
  body.store-bold .form h2 { color: #000; }
  body.store-bold .col-lg-3.col-md-6.col-12 > .card, body.store-bold .contact-details .card { min-height: 0; }
  body.store-bold a.text-decoration-none:has(> .bi), body.store-bold a.text-decoration-none:has(> i) { min-height: 40px; display: inline-flex; align-items: center; }
  /* about: the four numbers two by two, not four tall cards */
  body.store-bold .row:has(.core-icon) > .col-12 { width: 50%; }
  body.store-bold .row:has(.core-icon) .content { min-height: 0; padding: 18px 10px; }
  /* order tracking: readable step labels */
  body.store-bold .status-step .label { font-size: 12px; }
  /* checkout: the delivery option's details go on their own line instead of running into the price */
  body.store-bold .courier-option-meta { display: block; }
  body.store-bold .breadcrumb, body.store-bold .breadcrumb a { font-size: 12px; }
  body.store-bold .checkout-order-qty-btn { height: 40px !important; min-height: 40px; }
  body.store-bold .btn-secondary, body.store-bold .checkout-coupon-row .btn { font-size: 14px !important; }
  body.store-bold .badge { font-size: 12px; }
  body.store-bold .form-check-input { width: 22px; height: 22px; }
  /* account: the recent-orders table scrolls inside its card, with a little room to show it does */
  body.store-bold .account-section-card .table-responsive { -webkit-overflow-scrolling: touch; }

  /* ------------------------------------------------------------------ footer */
  body.store-bold .footer-section { padding-top: 24px; }
  body.store-bold .footer-container { padding: 20px 16px; gap: 24px; }
}
@media (max-width: 380px) {
  /* the narrowest phones: the cart stepper and the buy bar give up a little width */
  body.store-bold .bd-cart-qty { padding: 0 2px; }
  body.store-bold .bd-cart-qty button { width: 36px; }
  body.store-bold .bd-cart-qty span { min-width: 26px; }
  body.store-bold .bd-buybar-btn { padding: 0 12px; font-size: 14px !important; }
}
