/* ==========================================================================
   Zamplebox Club — the club look on the store
   Category pages (shop, product categories/tags, search results), product pages, My Account,
   product grids wherever they appear and the header's account/cart links. Loaded after tokens.css
   when Branding → "Club look on the store" is on; every rule is scoped to body.zbc-storefront
   (+ a page flavour: zbc-sf-archive / zbc-sf-product / zbc-sf-account / zbc-sf-front) so nothing
   else moves. The theme's own rules (zb-shop / zb-card / zb-product, a parity clone of the old
   BigCommerce store) are overridden here, not edited.

   Sections: 1 page frame · 2 archive header + chips + toolbar · 3 product grid + cards ·
   4 pagination · 5 header (announcement, search, account/cart, nav) · 6 notices ·
   7 product page · 8 description prose + migrated landing-page components · 9 related products ·
   10 reviews · 11 My Account · 12 sign in / register
   ========================================================================== */

body.zbc-storefront {
  --zbc-sf-cols: 4;
  --zbc-sf-gap: 20px;
}

/* ---- Page frame ------------------------------------------------------- */
body.zbc-storefront .zb-shop {
  display: block;
  max-width: var(--zbc-max);
  margin: 0 auto;
  padding: 0 var(--zbc-gutter) var(--zbc-s8);
  font-family: var(--zbc-font);
  color: var(--zbc-text);
}
body.zbc-storefront .zb-shop__side { display: none; }
body.zbc-storefront .zb-shop__main { padding: 0; max-width: none; }

body.zbc-storefront .woocommerce-breadcrumb {
  max-width: var(--zbc-max);
  margin: var(--zbc-s4) auto var(--zbc-s2);
  padding: 0 var(--zbc-gutter);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-xs);
  font-weight: 600;
  letter-spacing: var(--zbc-tracking-caps);
  text-transform: uppercase;
  color: var(--zbc-muted);
}
body.zbc-storefront .woocommerce-breadcrumb a { color: var(--zbc-muted); text-decoration: none; }
body.zbc-storefront .woocommerce-breadcrumb a:hover { color: var(--zbc-brand); }

/* ---- Archive header ---------------------------------------------------- */
body.zbc-storefront .zb-archive__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--zbc-s2) var(--zbc-s4);
  margin: var(--zbc-s4) 0 var(--zbc-s3);
}
body.zbc-storefront .zb-archive__title {
  margin: 0;
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-3xl);
  font-weight: 800;
  line-height: var(--zbc-lh-tight);
  letter-spacing: var(--zbc-tracking-tight);
  text-transform: none;
  color: var(--zbc-text);
}
body.zbc-storefront .zb-archive__count {
  margin: 0;
  padding: 6px 12px;
  border-radius: var(--zbc-pill);
  background: var(--zbc-surface-3);
  color: var(--zbc-text-2);
  font-size: var(--zbc-fs-sm);
  font-weight: 600;
}

body.zbc-storefront .zb-archive__copy {
  max-width: 68ch;
  margin: 0 0 var(--zbc-s5);
  font-size: var(--zbc-fs-md);
  line-height: var(--zbc-lh);
  color: var(--zbc-text-2);
}
body.zbc-storefront .zb-archive__copy p { margin: 0 0 var(--zbc-s3); }
body.zbc-storefront .zb-archive__copy a { color: var(--zbc-brand); font-weight: 600; }

/* Category chips (rendered by the plugin above the grid) */
body.zbc-storefront .zbc-sf-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--zbc-s2);
  margin: 0 0 var(--zbc-s5);
  padding: 0;
  list-style: none;
}
body.zbc-storefront .zbc-sf-chips a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid var(--zbc-line-strong);
  border-radius: var(--zbc-pill);
  background: var(--zbc-surface);
  color: var(--zbc-text);
  font-size: var(--zbc-fs-sm);
  font-weight: 600;
  text-decoration: none;
  transition: background var(--zbc-dur-fast) var(--zbc-ease), border-color var(--zbc-dur-fast) var(--zbc-ease), transform var(--zbc-dur-fast) var(--zbc-ease);
}
body.zbc-storefront .zbc-sf-chips a:hover { background: var(--zbc-lime-wash); border-color: var(--zbc-lime-text); transform: translateY(-1px); }
body.zbc-storefront .zbc-sf-chips a.is-current { background: var(--zbc-lime); border-color: var(--zbc-lime); color: var(--zbc-lime-ink); }
body.zbc-storefront .zbc-sf-chips a .zbc-sf-chips__n { color: var(--zbc-muted); font-weight: 500; }
body.zbc-storefront .zbc-sf-chips a.is-current .zbc-sf-chips__n { color: var(--zbc-lime-ink); opacity: 0.7; }
body.zbc-storefront .zbc-sf-chips__more { display: contents; }
body.zbc-storefront .zbc-sf-chips__more details { display: contents; }
body.zbc-storefront .zbc-sf-chips__more summary {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 14px;
  border: 1px dashed var(--zbc-line-strong);
  border-radius: var(--zbc-pill);
  color: var(--zbc-muted);
  font-size: var(--zbc-fs-sm);
  font-weight: 600;
  list-style: none;
  cursor: pointer;
}
body.zbc-storefront .zbc-sf-chips__more summary::-webkit-details-marker { display: none; }
body.zbc-storefront .zbc-sf-chips__more details[open] summary { display: none; }
body.zbc-storefront .zbc-sf-chips__more .zbc-sf-chips { display: contents; }

/* ---- Toolbar: result count + sorting ----------------------------------- */
body.zbc-storefront .zb-shop__main .woocommerce-notices-wrapper:empty { display: none; }
body.zbc-storefront .zb-shop__main .woocommerce-result-count,
body.zbc-storefront .zb-shop__main .woocommerce-ordering {
  float: none;
  margin: 0;
}
body.zbc-storefront .zb-shop__main .woocommerce-result-count {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: var(--zbc-fs-sm);
  color: var(--zbc-muted);
}
body.zbc-storefront .zb-shop__main .woocommerce-ordering {
  display: inline-flex;
  float: right;
  align-items: center;
  margin-bottom: var(--zbc-s5);
}
body.zbc-storefront .zb-shop__main .woocommerce-ordering select.orderby {
  appearance: none;
  -webkit-appearance: none;
  min-height: 44px;
  padding: 0 40px 0 16px;
  border: 1px solid var(--zbc-line-strong);
  border-radius: var(--zbc-pill);
  background: var(--zbc-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233d4841' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;
  color: var(--zbc-text);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-sm);
  font-weight: 600;
  cursor: pointer;
}
body.zbc-storefront .zb-shop__main .woocommerce-ordering select.orderby:focus-visible { outline: none; box-shadow: var(--zbc-ring); }

/* ---- Product grid ------------------------------------------------------ */
body.zbc-storefront .zb-main ul.products {
  display: grid;
  grid-template-columns: repeat(var(--zbc-sf-cols), minmax(0, 1fr));
  gap: var(--zbc-sf-gap);
  clear: both;
  margin: 0 0 var(--zbc-s6);
  padding: 0;
  list-style: none;
}
body.zbc-storefront .zb-main ul.products::before,
body.zbc-storefront .zb-main ul.products::after { display: none; }

body.zbc-storefront .zb-main ul.products li.product {
  display: flex;
  flex-direction: column;
  flex: none;
  width: auto;
  max-width: none;
  min-height: 0;
  margin: 0;
  padding: var(--zbc-s3);
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius);
  background: var(--zbc-surface);
  box-shadow: var(--zbc-shadow-sm);
  text-align: left;
  position: relative;
  transition: transform var(--zbc-dur) var(--zbc-ease), box-shadow var(--zbc-dur) var(--zbc-ease), border-color var(--zbc-dur) var(--zbc-ease);
}
body.zbc-storefront .zb-main ul.products li.product:hover {
  transform: translateY(-3px);
  border-color: var(--zbc-line-strong);
  box-shadow: var(--zbc-shadow);
}
@media (prefers-reduced-motion: reduce) {
  body.zbc-storefront .zb-main ul.products li.product,
  body.zbc-storefront .zbc-sf-chips a { transition: none; }
  body.zbc-storefront .zb-main ul.products li.product:hover { transform: none; }
}

/* Media: a soft square stage, the artwork centred and letterboxed */
body.zbc-storefront .zb-main ul.products li.product .zb-card__media {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  height: auto;
  margin: 0 0 var(--zbc-s3);
  padding: var(--zbc-s4);
  border-radius: var(--zbc-radius-sm);
  background: var(--zbc-surface-2);
  overflow: hidden;
}
body.zbc-storefront .zb-main ul.products li.product .zb-card__media a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
body.zbc-storefront .zb-main ul.products li.product .zb-card__media img,
body.zbc-storefront .zb-main ul.products li.product img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
  transition: transform var(--zbc-dur-slow) var(--zbc-ease);
}
body.zbc-storefront .zb-main ul.products li.product:hover .zb-card__media img { transform: scale(1.04); }

/* Sale / stock badges */
body.zbc-storefront .zb-main ul.products li.product .onsale {
  position: absolute;
  top: var(--zbc-s4);
  left: var(--zbc-s4);
  z-index: 2;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 4px 10px;
  border-radius: var(--zbc-pill);
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-xs);
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.4;
  text-transform: uppercase;
}
body.zbc-storefront .zb-main ul.products li.product.outofstock .zb-card__media::after {
  content: "Sold out";
  position: absolute;
  top: var(--zbc-s4);
  right: var(--zbc-s4);
  padding: 4px 10px;
  border-radius: var(--zbc-pill);
  background: var(--zbc-surface);
  color: var(--zbc-muted);
  font-size: var(--zbc-fs-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
body.zbc-storefront .zb-main ul.products li.product.outofstock .zb-card__media { position: relative; }
body.zbc-storefront .zb-main ul.products li.product.outofstock .zb-card__media img { opacity: 0.7; }

/* Title: sentence case, two lines, whole card clickable through the title link */
body.zbc-storefront .woocommerce ul.products li.product .zb-card__title,
body.zbc-storefront .woocommerce ul.products li.product h2.woocommerce-loop-product__title,
body.zbc-storefront .zb-main ul.products li.product .zb-card__title {
  margin: 0 0 var(--zbc-s1);
  padding: 0;
  font-family: var(--zbc-font);
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
  text-transform: none;
  text-align: left;
  color: var(--zbc-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(2 * 1.3 * 0.9375rem);
}
body.zbc-storefront .zb-main ul.products li.product .zb-card__title a { color: inherit; text-decoration: none; }
body.zbc-storefront .zb-main ul.products li.product .zb-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
body.zbc-storefront .zb-main ul.products li.product .zb-card__title a:hover { color: var(--zbc-brand); }

/* Price */
body.zbc-storefront .woocommerce ul.products li.product .price,
body.zbc-storefront .zb-main ul.products li.product .price,
body.zbc-storefront .zb-main ul.products li.product .zb-card__price {
  display: block;
  margin: 0 0 var(--zbc-s3);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-md);
  font-weight: 800;
  line-height: 1.3;
  text-align: left;
  color: var(--zbc-text);
}
body.zbc-storefront .zb-main ul.products li.product .price del {
  margin-right: 6px;
  color: var(--zbc-faint);
  font-weight: 500;
  text-decoration: line-through;
}
body.zbc-storefront .zb-main ul.products li.product .price ins { text-decoration: none; color: var(--zbc-lime-text); }
body.zbc-storefront .zb-main ul.products li.product .price .amount { color: inherit; }

/* Star rating, when the theme prints it */
body.zbc-storefront .zb-main ul.products li.product .star-rating { margin: 0 0 var(--zbc-s2); color: var(--zbc-warn); }

/* Call to action: a lime pill, pinned to the bottom of the card, above the title's stretched link */
body.zbc-storefront .zb-main ul.products li.product a.button,
body.zbc-storefront .zb-main ul.products li.product .zb-card__cta,
body.zbc-storefront .woocommerce ul.products li.product a.button {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 44px;
  margin: auto 0 0;
  padding: 0 var(--zbc-s4);
  border: 0;
  border-radius: var(--zbc-pill);
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-sm);
  font-weight: 800;
  letter-spacing: 0.01em;
  line-height: 1;
  text-transform: none;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--zbc-dur-fast) var(--zbc-ease), transform var(--zbc-dur-fast) var(--zbc-ease), box-shadow var(--zbc-dur-fast) var(--zbc-ease);
}
body.zbc-storefront .zb-main ul.products li.product a.button:hover,
body.zbc-storefront .zb-main ul.products li.product .zb-card__cta:hover {
  background: var(--zbc-lime-2);
  color: var(--zbc-lime-ink);
  box-shadow: var(--zbc-glow);
  transform: translateY(-1px);
}
body.zbc-storefront .zb-main ul.products li.product a.button:focus-visible { outline: none; box-shadow: var(--zbc-ring); }
body.zbc-storefront .zb-main ul.products li.product a.button.loading { opacity: 0.7; }
body.zbc-storefront .zb-main ul.products li.product a.button.loading::after { display: none; }
body.zbc-storefront .zb-main ul.products li.product a.added_to_cart {
  position: relative;
  z-index: 2;
  display: block;
  margin-top: var(--zbc-s2);
  color: var(--zbc-brand);
  font-size: var(--zbc-fs-sm);
  font-weight: 700;
  text-align: center;
  text-decoration: none;
}
body.zbc-storefront .zb-main ul.products li.product.outofstock a.button {
  background: var(--zbc-surface-3);
  color: var(--zbc-muted);
  box-shadow: none;
}

/* The club's own member row on the card sits above the CTA */
body.zbc-storefront .zb-main ul.products li.product .zbc-shop { position: relative; z-index: 2; margin: 0 0 var(--zbc-s3); justify-content: flex-start; }

/* ---- Pagination -------------------------------------------------------- */
body.zbc-storefront .zb-shop__main .woocommerce-pagination { border: 0; margin: var(--zbc-s6) 0 0; text-align: center; }
body.zbc-storefront .zb-shop__main .woocommerce-pagination ul.page-numbers {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
}
body.zbc-storefront .zb-shop__main .woocommerce-pagination ul.page-numbers li { border: 0; margin: 0; padding: 0; float: none; }
body.zbc-storefront .zb-shop__main .woocommerce-pagination .page-numbers a,
body.zbc-storefront .zb-shop__main .woocommerce-pagination .page-numbers span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid var(--zbc-line-strong);
  border-radius: var(--zbc-pill);
  background: var(--zbc-surface);
  color: var(--zbc-text);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-sm);
  font-weight: 700;
  text-decoration: none;
  line-height: 1;
}
body.zbc-storefront .zb-shop__main .woocommerce-pagination .page-numbers a:hover { background: var(--zbc-lime-wash); border-color: var(--zbc-lime-text); color: var(--zbc-text); }
body.zbc-storefront .zb-shop__main .woocommerce-pagination .page-numbers span.current { background: var(--zbc-lime); border-color: var(--zbc-lime); color: var(--zbc-lime-ink); }
body.zbc-storefront .zb-shop__main .woocommerce-pagination .page-numbers span.dots { border: 0; background: transparent; color: var(--zbc-muted); }

/* ---- Empty results ------------------------------------------------------ */
body.zbc-storefront .zb-shop__main .woocommerce-info,
body.zbc-storefront .zb-shop__main .woocommerce-no-products-found .woocommerce-info {
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius);
  background: var(--zbc-surface);
  color: var(--zbc-text-2);
  font-family: var(--zbc-font);
}

/* ---- Responsive --------------------------------------------------------- */
@media (max-width: 1100px) { body.zbc-storefront { --zbc-sf-cols: 3; } }
@media (max-width: 760px) {
  body.zbc-storefront { --zbc-sf-cols: 2; --zbc-sf-gap: 12px; }
  body.zbc-storefront .zb-main ul.products li.product { padding: var(--zbc-s2); border-radius: var(--zbc-radius-sm); }
  body.zbc-storefront .zb-main ul.products li.product .zb-card__media { padding: var(--zbc-s3); margin-bottom: var(--zbc-s2); }
  body.zbc-storefront .zb-main ul.products li.product a.button { min-height: 40px; font-size: var(--zbc-fs-xs); }
  body.zbc-storefront .zb-shop__main .woocommerce-ordering { float: none; width: 100%; margin-bottom: var(--zbc-s4); }
  body.zbc-storefront .zb-shop__main .woocommerce-ordering select.orderby { width: 100%; }
  body.zbc-storefront .zb-shop__main .woocommerce-result-count { min-height: 0; margin-bottom: var(--zbc-s2); }
}
@media (max-width: 760px) {
  body.zbc-storefront .woocommerce ul.products li.product .zb-card__title,
  body.zbc-storefront .zb-main ul.products li.product .zb-card__title { -webkit-line-clamp: 3; min-height: 0; }
  body.zbc-storefront .zb-archive__copy { font-size: var(--zbc-fs-sm); }
}
@media (max-width: 380px) {
  body.zbc-storefront .woocommerce ul.products li.product .zb-card__title,
  body.zbc-storefront .zb-main ul.products li.product .zb-card__title { font-size: 0.8125rem; }
}

/* ==========================================================================
   5. Header — announcement bar, search, account / cart, primary nav
   The theme's header is a measured clone of the old store: a 105px black announcement bar,
   plain-text "My Account" / "Cart 1" links and an uppercase nav that wraps below 1280px.
   ========================================================================== */
body.zbc-storefront .zb-header { font-family: var(--zbc-font); }

body.zbc-storefront .zb-header__announce {
  background: var(--zbc-text);
  color: #f2f5f0;
  font-size: var(--zbc-fs-sm);
  line-height: 1.45;
}
body.zbc-storefront .zb-header__announce .zb-container { min-height: 40px; padding-block: 8px; }
body.zbc-storefront .zb-header__announce p { margin: 0; }
body.zbc-storefront .zb-header__announce a { color: var(--zbc-lime); font-weight: 700; text-decoration: none; }
body.zbc-storefront .zb-header__announce a:hover { text-decoration: underline; }

body.zbc-storefront .zb-search input[type="search"],
body.zbc-storefront .zb-search input[type="text"] {
  height: 44px;
  border: 1px solid var(--zbc-line-strong);
  border-radius: var(--zbc-pill);
  background: var(--zbc-surface-2);
  padding: 0 44px 0 18px;
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-sm);
  color: var(--zbc-text);
}
body.zbc-storefront .zb-search input[type="search"]:focus-visible { outline: none; border-color: var(--zbc-lime-text); box-shadow: var(--zbc-ring); background: var(--zbc-surface); }
body.zbc-storefront .zb-search input::placeholder { color: var(--zbc-muted); }
body.zbc-storefront .zb-search button { height: 44px; width: 44px; color: var(--zbc-text-2); }

/* Account + cart: icon pills, the cart count as a lime badge */
body.zbc-storefront .zb-utility { gap: var(--zbc-s2); height: auto; }
body.zbc-storefront .zb-utility a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: var(--zbc-pill);
  color: var(--zbc-text);
  font-size: var(--zbc-fs-sm);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--zbc-dur-fast) var(--zbc-ease), border-color var(--zbc-dur-fast) var(--zbc-ease);
}
body.zbc-storefront .zb-utility a:hover { background: var(--zbc-surface-2); color: var(--zbc-text); }
body.zbc-storefront .zb-utility a:focus-visible { outline: none; box-shadow: var(--zbc-ring); }
body.zbc-storefront .zb-utility a::before {
  content: "";
  flex: none;
  width: 18px;
  height: 18px;
  background: currentColor;
  -webkit-mask: var(--zbc-sf-icon) center / contain no-repeat;
  mask: var(--zbc-sf-icon) center / contain no-repeat;
}
body.zbc-storefront .zb-utility a {
  --zbc-sf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}
body.zbc-storefront .zb-utility a.zb-cart {
  --zbc-sf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6h15l-1.5 8.5a2 2 0 0 1-2 1.5H8.4a2 2 0 0 1-2-1.6L4.6 3.5A1 1 0 0 0 3.6 3H2'/%3E%3Ccircle cx='9' cy='20' r='1.5'/%3E%3Ccircle cx='17' cy='20' r='1.5'/%3E%3C/svg%3E");
  border-color: var(--zbc-line-strong);
  background: var(--zbc-surface);
}
body.zbc-storefront .zb-utility a.zb-cart:hover { border-color: var(--zbc-lime-text); background: var(--zbc-lime-wash); }
body.zbc-storefront .zb-utility .zb-cart__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  margin-left: -2px;
  padding: 0 6px;
  border-radius: var(--zbc-pill);
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink);
  font-size: var(--zbc-fs-xs);
  font-weight: 800;
  line-height: 1;
}

/* Primary nav: same items, set in the club face and sized to sit on one line down to ~1180px */
body.zbc-storefront .zb-nav__item > a {
  padding: 16px 11px;
  font-family: var(--zbc-font);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--zbc-text);
  transition: color var(--zbc-dur-fast) var(--zbc-ease);
}
body.zbc-storefront .zb-nav__item > a:hover,
body.zbc-storefront .zb-nav__item.current-menu-item > a { color: var(--zbc-brand); }
body.zbc-storefront .zb-nav { border-top-color: var(--zbc-line); }

@media (max-width: 800px) {
  /* A 44px tap target for the hamburger (the theme's button is the bare 22px icon) without moving it */
  body.zbc-storefront .zb-menu-toggle { font-family: var(--zbc-font); color: var(--zbc-text); min-width: 44px; min-height: 44px; margin: -10px 0; padding: 10px 12px 10px 0; box-sizing: border-box; }
  body.zbc-storefront .zb-utility a { min-height: 40px; padding: 0 12px; }
  body.zbc-storefront .zb-nav__item > a { padding: 14px 16px; border-bottom-color: var(--zbc-line); }
  /* The theme re-applies its desktop min-height (56px) after the drawer rules, so the closed drawer left a blank band */
  body.zbc-storefront .zb-nav,
  body.zbc-storefront .zb-nav__list { min-height: 0; }
  body.zbc-storefront.zb-menu-open .zb-nav { min-height: 0; }
  body.zbc-storefront .zb-header__main .zb-container { gap: var(--zbc-s3); row-gap: var(--zbc-s3); }
}
@media (max-width: 560px) {
  /* Icon only for the account link and the menu toggle; the labels stay in the accessibility tree */
  body.zbc-storefront .zb-utility { gap: var(--zbc-s1); }
  body.zbc-storefront .zb-utility a:not(.zb-cart) { font-size: 0; gap: 0; padding: 0 10px; }
  body.zbc-storefront .zb-utility a.zb-cart { padding: 0 12px; }
  body.zbc-storefront .zb-menu-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  body.zbc-storefront .zb-menu-toggle { padding: 10px 10px 10px 0; }
}

/* Footer links: room to tap on phones (the theme sets 14px links 8px apart) */
body.zbc-storefront .zb-footer__list a { display: inline-block; padding: 5px 0; line-height: 1.3; }
body.zbc-storefront .zb-footer__list li { margin-bottom: 2px; }
body.zbc-storefront .zb-footer__legal a { display: inline-block; padding: 4px 0; }

/* ==========================================================================
   6. Notices — "Added to cart", errors, info
   ========================================================================== */
body.zbc-storefront .woocommerce-message,
body.zbc-storefront .woocommerce-info,
body.zbc-storefront .woocommerce-error {
  margin: 0 0 var(--zbc-s5);
  padding: var(--zbc-s3) var(--zbc-s4) var(--zbc-s3) 52px;
  border: 1px solid var(--zbc-line);
  border-top-width: 1px;
  border-left: 4px solid var(--zbc-ok);
  border-radius: var(--zbc-radius-sm);
  background: var(--zbc-surface);
  box-shadow: var(--zbc-shadow-sm);
  color: var(--zbc-text-2);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-sm);
  line-height: 1.5;
}
body.zbc-storefront .woocommerce-message::before,
body.zbc-storefront .woocommerce-info::before,
body.zbc-storefront .woocommerce-error::before { top: 14px; left: 18px; color: var(--zbc-ok); }
body.zbc-storefront .woocommerce-info { border-left-color: var(--zbc-info); }
body.zbc-storefront .woocommerce-info::before { color: var(--zbc-info); }
body.zbc-storefront .woocommerce-error { border-left-color: var(--zbc-danger); }
body.zbc-storefront .woocommerce-error::before { color: var(--zbc-danger); }
body.zbc-storefront .woocommerce-error li { margin: 0; }
body.zbc-storefront .woocommerce-message a,
body.zbc-storefront .woocommerce-info a,
body.zbc-storefront .woocommerce-error a { color: var(--zbc-brand); font-weight: 700; }
body.zbc-storefront .woocommerce-message .button,
body.zbc-storefront .woocommerce-info .button {
  float: none;
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  margin: 0 var(--zbc-s3) 0 0;
  padding: 0 14px;
  border-radius: var(--zbc-pill);
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink);
  font-size: var(--zbc-fs-xs);
  font-weight: 800;
  text-decoration: none;
}
body.zbc-storefront .woocommerce-notices-wrapper:empty { display: none; }

/* ==========================================================================
   7. Product page
   The theme's single product: .zb-product > .zb-product__cols > (__gallery | __summary), then
   .zb-product__tabs (WooCommerce's tab set) and the related-products section.
   ========================================================================== */
body.zbc-sf-product .zb-product {
  position: relative;
  max-width: var(--zbc-max);
  margin: 0 auto;
  padding: var(--zbc-s3) var(--zbc-gutter) var(--zbc-s8);
  font-family: var(--zbc-font);
  color: var(--zbc-text);
}
body.zbc-sf-product .zb-product__cols {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: var(--zbc-s7);
  align-items: start;
}
body.zbc-sf-product .zb-product__gallery,
body.zbc-sf-product .zb-product__summary {
  flex: none;
  max-width: none;
  min-width: 0;
  padding: 0;
}

@media (max-width: 900px) {
  body.zbc-sf-product .zb-product__cols { grid-template-columns: minmax(0, 1fr); gap: var(--zbc-s5); }
  body.zbc-sf-product .zb-product { padding-top: var(--zbc-s2); }
  body.zbc-sf-product .zb-product__title { font-size: 1.625rem; }
}

/* Sale flash: a lime pill on the gallery stage instead of WooCommerce's green circle */
body.zbc-sf-product .zb-product > .onsale,
body.zbc-sf-product .zb-product .woocommerce-product-gallery .onsale {
  position: absolute;
  top: calc(var(--zbc-s3) + var(--zbc-s4));
  left: calc(var(--zbc-gutter) + var(--zbc-s4));
  z-index: 3;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 6px 12px;
  border-radius: var(--zbc-pill);
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink);
  font-size: var(--zbc-fs-xs);
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.4;
  text-transform: uppercase;
}

/* Gallery: the artwork on a soft square stage, thumbnails as a row of rounded tiles */
body.zbc-sf-product .zb-product__gallery .woocommerce-product-gallery,
body.zbc-sf-product .zb-product div.images { margin: 0; }
body.zbc-sf-product .zb-product__gallery .woocommerce-product-gallery__wrapper,
body.zbc-sf-product .zb-product__gallery .flex-viewport {
  border-radius: var(--zbc-radius-lg);
  background: var(--zbc-surface-2);
  overflow: hidden;
}
body.zbc-sf-product .zb-product__gallery .woocommerce-product-gallery__image {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--zbc-s5);
  background: var(--zbc-surface-2);
}
body.zbc-sf-product .zb-product__gallery .woocommerce-product-gallery__image a { display: block; width: 100%; cursor: zoom-in; }
body.zbc-sf-product .zb-product__gallery .woocommerce-product-gallery__image img,
body.zbc-sf-product .zb-product div.images img {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  margin: 0;
  box-shadow: none;
  mix-blend-mode: multiply;
}
body.zbc-sf-product .zb-product__gallery .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image:nth-child(n+2) { width: 100%; display: flex; }
body.zbc-sf-product .zb-product__gallery .flex-control-thumbs,
body.zbc-sf-product .zb-product div.images .flex-control-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--zbc-s2);
  margin: var(--zbc-s3) 0 0;
  padding: 0;
  list-style: none;
  overflow: visible;
}
body.zbc-sf-product .zb-product__gallery .flex-control-thumbs li,
body.zbc-sf-product .zb-product div.images .flex-control-thumbs li {
  flex: none;
  float: none;
  width: 72px;
  height: 72px;
  margin: 0;
  list-style: none;
}
body.zbc-sf-product .zb-product__gallery .flex-control-thumbs li img,
body.zbc-sf-product .zb-product div.images .flex-control-thumbs li img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  padding: 6px;
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius-xs);
  background: var(--zbc-surface-2);
  object-fit: contain;
  opacity: 0.7;
  cursor: pointer;
  transition: opacity var(--zbc-dur-fast) var(--zbc-ease), border-color var(--zbc-dur-fast) var(--zbc-ease);
}
body.zbc-sf-product .zb-product div.images .flex-control-thumbs li img:hover,
body.zbc-sf-product .zb-product div.images .flex-control-thumbs li img.flex-active { opacity: 1; border-color: var(--zbc-lime-text); }
body.zbc-sf-product .zb-product__gallery .woocommerce-product-gallery__trigger { display: none !important; }

/* Summary: brand chip, title, price */
body.zbc-sf-product .zb-product__brand { margin: 0 0 var(--zbc-s3); font-size: var(--zbc-fs-xs); line-height: 1; }
body.zbc-sf-product .zb-product__brand a,
body.zbc-sf-product .zb-product__brand {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 12px;
  border-radius: var(--zbc-pill);
  background: var(--zbc-surface-2);
  color: var(--zbc-text-2);
  font-size: var(--zbc-fs-xs);
  font-weight: 800;
  letter-spacing: var(--zbc-tracking-caps);
  text-transform: uppercase;
  text-decoration: none;
}
body.zbc-sf-product p.zb-product__brand:has(a) { padding: 0; background: none; }
body.zbc-sf-product .zb-product__brand a:hover { background: var(--zbc-lime-wash); color: var(--zbc-lime-text); text-decoration: none; }
body.zbc-sf-product .zb-product__title {
  margin: 0 0 var(--zbc-s3);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-2xl);
  font-weight: 800;
  line-height: var(--zbc-lh-tight);
  letter-spacing: var(--zbc-tracking-tight);
  color: var(--zbc-text);
}
body.zbc-sf-product .zb-product__price,
body.zbc-sf-product .zb-product__price .price,
body.zbc-sf-product .zb-product .woocommerce-variation-price .price,
body.zbc-sf-product .zb-product .woocommerce-variation-price span.price {
  margin: 0 0 var(--zbc-s5);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-xl);
  font-weight: 800;
  line-height: 1.2;
  color: var(--zbc-text);
}
body.zbc-sf-product .zb-product__price del,
body.zbc-sf-product .zb-product .price del { margin-right: 8px; color: var(--zbc-faint); font-size: var(--zbc-fs-lg); font-weight: 500; opacity: 1; }
body.zbc-sf-product .zb-product__price ins,
body.zbc-sf-product .zb-product .price ins { color: var(--zbc-lime-text); text-decoration: none; }
body.zbc-sf-product .zb-product .woocommerce-variation-price .price { margin: 0 0 var(--zbc-s2); font-size: var(--zbc-fs-lg); }

/* Variation pickers */
body.zbc-sf-product .zb-product .variations,
body.zbc-sf-product .zb-product form.cart .variations { width: 100%; margin: 0 0 var(--zbc-s3); border: 0; }
body.zbc-sf-product .zb-product .variations th.label label {
  margin: 0 0 6px;
  font-size: var(--zbc-fs-sm);
  font-weight: 700;
  color: var(--zbc-text-2);
}
body.zbc-sf-product .zb-product .variations td.value { padding: 0; }
body.zbc-sf-product .zb-product .variations select,
body.zbc-sf-product .zb-product form.cart .variations select {
  width: 100%;
  min-width: 0;
  max-width: none;
  height: 52px;
  margin: 0 0 var(--zbc-s2);
  padding: 0 44px 0 16px;
  border: 1px solid var(--zbc-line-strong);
  border-radius: var(--zbc-radius-sm);
  background: var(--zbc-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233d4841' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center;
  color: var(--zbc-text);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-md);
  font-weight: 600;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}
body.zbc-sf-product .zb-product .variations select:focus-visible { outline: none; border-color: var(--zbc-lime-text); box-shadow: var(--zbc-ring); }
body.zbc-sf-product .zb-product .reset_variations,
body.zbc-sf-product .zb-product form.cart .reset_variations {
  display: inline-block;
  margin: 0 0 var(--zbc-s2);
  color: var(--zbc-muted);
  font-size: var(--zbc-fs-xs);
  font-weight: 700;
  text-decoration: none;
}
body.zbc-sf-product .zb-product .reset_variations:hover { color: var(--zbc-danger); }
/* WooCommerce parks the link with an inline visibility:hidden, which still takes a line */
body.zbc-sf-product .zb-product form.cart .reset_variations[style*="hidden"] { display: none; }
body.zbc-sf-product .zb-product .woocommerce-variation.single_variation:empty { display: none; }

/* Chosen variation: price + stock chip */
body.zbc-sf-product .zb-product .woocommerce-variation.single_variation { margin: 0 0 var(--zbc-s3); }
body.zbc-sf-product .zb-product .woocommerce-variation-description p { margin: 0 0 var(--zbc-s3); font-size: var(--zbc-fs-sm); color: var(--zbc-text-2); }
body.zbc-sf-product .zb-product p.stock,
body.zbc-sf-product .zb-product .woocommerce-variation-availability p.stock {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 28px;
  margin: 0 0 var(--zbc-s3);
  padding: 0 12px;
  border-radius: var(--zbc-pill);
  background: var(--zbc-ok-wash);
  color: var(--zbc-ok);
  font-size: var(--zbc-fs-xs);
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
}
body.zbc-sf-product .zb-product p.stock::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
body.zbc-sf-product .zb-product p.stock.out-of-stock { background: var(--zbc-danger-wash); color: var(--zbc-danger); }
body.zbc-sf-product .zb-product p.stock.available-on-backorder { background: var(--zbc-warn-wash); color: var(--zbc-warn); }

/* Quantity + add to cart */
body.zbc-sf-product .zb-product form.cart,
body.zbc-sf-product .zb-product form.cart .woocommerce-variation-add-to-cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--zbc-s3);
  margin: 0;
}
body.zbc-sf-product .zb-product form.cart.variations_form { display: block; }
body.zbc-sf-product .zb-product form.cart .single_variation_wrap { width: 100%; }
body.zbc-sf-product .zb-product form.cart div.quantity {
  float: none;
  display: inline-flex;
  margin: 0;
}
body.zbc-sf-product .zb-product form.cart div.quantity input.qty,
body.zbc-sf-product .zb-product .quantity input.qty {
  width: 84px;
  height: 52px;
  padding: 0 8px;
  border: 1px solid var(--zbc-line-strong);
  border-radius: var(--zbc-radius-sm);
  background: var(--zbc-surface);
  color: var(--zbc-text);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-md);
  font-weight: 700;
  text-align: center;
}
body.zbc-sf-product .zb-product .quantity input.qty:focus-visible { outline: none; border-color: var(--zbc-lime-text); box-shadow: var(--zbc-ring); }
body.zbc-sf-product .zb-product form.cart button.single_add_to_cart_button.button,
body.zbc-sf-product .zb-product form.cart .single_add_to_cart_button.button.alt,
body.zbc-sf-product .zb-product form.cart .single_add_to_cart_button {
  flex: 1 1 200px;
  float: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 52px;
  margin: 0;
  padding: 0 var(--zbc-s5);
  border: 0;
  border-radius: var(--zbc-pill);
  background: var(--zbc-lime) !important; /* the theme's classic-cart rule (.woocommerce .cart .button) is !important and matches form.cart */
  color: var(--zbc-lime-ink) !important;
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-md);
  font-weight: 800;
  letter-spacing: 0.01em;
  line-height: 1;
  text-transform: none;
  cursor: pointer;
  transition: background var(--zbc-dur-fast) var(--zbc-ease), transform var(--zbc-dur-fast) var(--zbc-ease), box-shadow var(--zbc-dur-fast) var(--zbc-ease);
}
body.zbc-sf-product .zb-product form.cart button.single_add_to_cart_button.button:hover,
body.zbc-sf-product .zb-product form.cart .single_add_to_cart_button.button.alt:hover {
  background: var(--zbc-lime-2) !important;
  color: var(--zbc-lime-ink) !important;
  box-shadow: var(--zbc-glow);
  transform: translateY(-1px);
}
body.zbc-sf-product .zb-product form.cart .single_add_to_cart_button:focus-visible { outline: none; box-shadow: var(--zbc-ring); }
body.zbc-sf-product .zb-product form.cart button.single_add_to_cart_button.button.disabled,
body.zbc-sf-product .zb-product form.cart button.single_add_to_cart_button.button:disabled,
body.zbc-sf-product .zb-product form.cart .single_add_to_cart_button.wc-variation-selection-needed,
body.zbc-sf-product .zb-product form.cart .single_add_to_cart_button.wc-variation-is-unavailable {
  background: var(--zbc-surface-3) !important;
  color: var(--zbc-muted) !important;
  box-shadow: none;
  transform: none;
  opacity: 1;
  cursor: not-allowed;
}
body.zbc-sf-product .zb-product form.cart .woocommerce-variation-add-to-cart-disabled div.quantity { opacity: 0.55; }

/* The two facts under the form */
body.zbc-sf-product .zbc-pf-facts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--zbc-s2) var(--zbc-s5);
  margin: var(--zbc-s5) 0 0;
  padding: var(--zbc-s4) 0 0;
  border-top: 1px solid var(--zbc-line);
  list-style: none;
  font-size: var(--zbc-fs-sm);
  color: var(--zbc-text-2);
}
body.zbc-sf-product .zbc-pf-facts li { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
body.zbc-sf-product .zbc-pf-facts li::before {
  content: "";
  flex: none;
  width: 18px;
  height: 18px;
  background: var(--zbc-brand);
  -webkit-mask: var(--zbc-sf-icon) center / contain no-repeat;
  mask: var(--zbc-sf-icon) center / contain no-repeat;
}
body.zbc-sf-product .zbc-pf-facts__age { --zbc-sf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
body.zbc-sf-product .zbc-pf-facts__ship { --zbc-sf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 3h15v13H1z'/%3E%3Cpath d='M16 8h4l3 3v5h-7V8z'/%3E%3Ccircle cx='5.5' cy='18.5' r='2.5'/%3E%3Ccircle cx='18.5' cy='18.5' r='2.5'/%3E%3C/svg%3E"); }

/* The club's member row (Add to next box / Queue / Favorite) under the form */
body.zbc-sf-product .zb-product__summary .zbc-shop { margin: var(--zbc-s4) 0 0; }

/* Tabs: a segmented control */
body.zbc-sf-product .zb-product__tabs { max-width: none; margin: 0; padding: var(--zbc-s7) 0 0; }
body.zbc-sf-product .zb-product__tabs .woocommerce-tabs ul.tabs.wc-tabs,
body.zbc-sf-product .zb-product .woocommerce-tabs ul.tabs {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0 0 var(--zbc-s5);
  padding: 4px;
  border: 1px solid var(--zbc-line);
  border-bottom: 1px solid var(--zbc-line);
  border-radius: var(--zbc-pill);
  background: var(--zbc-surface-2);
  overflow: visible;
  position: static;
}
body.zbc-sf-product .zb-product .woocommerce-tabs ul.tabs::before,
body.zbc-sf-product .zb-product .woocommerce-tabs ul.tabs::after,
body.zbc-sf-product .zb-product .woocommerce-tabs ul.tabs li::before,
body.zbc-sf-product .zb-product .woocommerce-tabs ul.tabs li::after { display: none; content: none; }
body.zbc-sf-product .zb-product__tabs .woocommerce-tabs ul.tabs li,
body.zbc-sf-product .zb-product .woocommerce-tabs ul.tabs li {
  display: block;
  position: static;
  z-index: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: var(--zbc-pill);
  background: transparent;
  box-shadow: none;
}
body.zbc-sf-product .zb-product__tabs .woocommerce-tabs ul.tabs li a,
body.zbc-sf-product .zb-product .woocommerce-tabs ul.tabs li a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 18px;
  border-radius: var(--zbc-pill);
  color: var(--zbc-text-2);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-sm);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
  text-decoration: none;
  box-shadow: none;
  transition: background var(--zbc-dur-fast) var(--zbc-ease), color var(--zbc-dur-fast) var(--zbc-ease);
}
body.zbc-sf-product .zb-product .woocommerce-tabs ul.tabs li a:hover { color: var(--zbc-text); }
body.zbc-sf-product .zb-product__tabs .woocommerce-tabs ul.tabs li.active a,
body.zbc-sf-product .zb-product .woocommerce-tabs ul.tabs li.active a { background: var(--zbc-surface); color: var(--zbc-text); box-shadow: var(--zbc-shadow-sm); }
body.zbc-sf-product .zb-product .woocommerce-tabs ul.tabs li a:focus-visible { outline: none; box-shadow: var(--zbc-ring); }
body.zbc-sf-product .zb-product__tabs .woocommerce-Tabs-panel,
body.zbc-sf-product .zb-product .woocommerce-tabs .panel { margin: 0; padding: 0; }
/* The theme hides every h2 inside a panel (to drop the "Description" heading); the copy's own headings come back */
body.zbc-sf-product .zb-product__tabs .woocommerce-Tabs-panel h2 { display: block; }
body.zbc-sf-product .zb-product__tabs .woocommerce-Tabs-panel > h2:first-child { display: none; }

/* ==========================================================================
   8. Description prose + the migrated landing-page components
   Product copy came over from BigCommerce two ways: 53 devices carry a full landing page
   (main.zb-disposable-page with .zb-hero, .zb-trust-strip, .zb-card-grid, .zb-steps, .zb-faq-*,
   .zb-cta, .zb-disclaimer, .zb-explore) whose class names collide with the theme's own hero and
   card rules — hence the black box — and ~220 carry Word-paste markup with inline styles.
   Everything under #tab-description gets one treatment.
   ========================================================================== */
body.zbc-sf-product #tab-description {
  max-width: none;
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-md);
  line-height: 1.6;
  color: var(--zbc-text-2);
}
body.zbc-sf-product #tab-description p:empty,
body.zbc-sf-product #tab-description div:empty:not(.zb-mini-icon) { display: none; }
body.zbc-sf-product #tab-description :is(h1, h2, h3, h4, h5, h6) {
  margin: var(--zbc-s6) 0 var(--zbc-s3);
  font-family: var(--zbc-font);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: var(--zbc-tracking-tight);
  text-transform: none;
  color: var(--zbc-text);
}
body.zbc-sf-product #tab-description :is(h1, h2, h3, h4, h5, h6):first-child { margin-top: 0; }
body.zbc-sf-product #tab-description > h2:first-child { display: none; } /* WooCommerce's own "Description" heading; the tab already says it */
body.zbc-sf-product #tab-description h1 { font-size: 1.75rem; }
body.zbc-sf-product #tab-description h2 { font-size: 1.5rem; }
body.zbc-sf-product #tab-description h3 { font-size: 1.125rem; }
body.zbc-sf-product #tab-description :is(h4, h5, h6) { font-size: 1rem; }
body.zbc-sf-product #tab-description p { margin: 0 0 var(--zbc-s4); max-width: 72ch; }
body.zbc-sf-product #tab-description :is(ul, ol) { margin: 0 0 var(--zbc-s4); padding-left: 22px; max-width: 72ch; }
body.zbc-sf-product #tab-description li { margin: 0 0 6px; }
body.zbc-sf-product #tab-description a { color: var(--zbc-brand); font-weight: 600; }
body.zbc-sf-product #tab-description strong,
body.zbc-sf-product #tab-description b { color: var(--zbc-text); font-weight: 700; }
body.zbc-sf-product #tab-description img { max-width: 100%; height: auto; border-radius: var(--zbc-radius-sm); }
body.zbc-sf-product #tab-description iframe { max-width: 100%; }
body.zbc-sf-product #tab-description table { width: 100%; margin: 0 0 var(--zbc-s4); border-collapse: collapse; font-size: var(--zbc-fs-sm); }
body.zbc-sf-product #tab-description :is(th, td) { padding: 8px 10px; border: 1px solid var(--zbc-line); text-align: left; vertical-align: top; }
body.zbc-sf-product #tab-description th { background: var(--zbc-surface-2); color: var(--zbc-text); }
body.zbc-sf-product #tab-description hr { margin: var(--zbc-s5) 0; border: 0; border-top: 1px solid var(--zbc-line); }
body.zbc-sf-product #tab-description blockquote { margin: 0 0 var(--zbc-s4); padding: var(--zbc-s3) var(--zbc-s4); border-left: 3px solid var(--zbc-lime); background: var(--zbc-surface-2); border-radius: 0 var(--zbc-radius-xs) var(--zbc-radius-xs) 0; }

/* Word-paste leftovers: fonts, sizes and colours written inline lose to the prose face */
body.zbc-sf-product #tab-description :is(p, span, li, strong, em, b, i, a, u, font, div, td, th, ul, ol, table, section)[style] {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
  background: transparent !important;
}
body.zbc-sf-product #tab-description :is(h1, h2, h3, h4, h5, h6)[style] {
  font-family: inherit !important;
  color: inherit !important;
  background: transparent !important;
  line-height: 1.15 !important;
}
body.zbc-sf-product #tab-description font { color: inherit !important; font-size: inherit !important; font-family: inherit !important; }
body.zbc-sf-product #tab-description :is(h1, h2, h3, h4, h5, h6) span[style*="underline"] { text-decoration: none !important; }
body.zbc-sf-product #tab-description a[style] { color: var(--zbc-brand) !important; }
body.zbc-sf-product #tab-description [style*="text-align: center"],
body.zbc-sf-product #tab-description [style*="text-align:center"] { text-align: center; }

/* --- Landing-page components ------------------------------------------- */
body.zbc-sf-product #tab-description main.zb-disposable-page,
body.zbc-sf-product #tab-description .zb-disposable-page { display: block; margin: 0; padding: 0; }
body.zbc-sf-product #tab-description .zb-container { max-width: none; margin: 0; padding: 0; }
body.zbc-sf-product #tab-description section.zb-section,
body.zbc-sf-product #tab-description .zb-section { margin: 0 0 var(--zbc-s7); padding: 0; background: none; }
body.zbc-sf-product #tab-description .zb-section:last-child { margin-bottom: 0; }

/* Hero: an ink card with a lime eyebrow — readable, not a black hole */
body.zbc-sf-product #tab-description section.zb-hero,
body.zbc-sf-product #tab-description .zb-hero {
  position: relative;
  display: block;
  min-height: 0;
  margin: 0 0 var(--zbc-s6);
  padding: clamp(24px, 4vw, 48px);
  border-radius: var(--zbc-radius-lg);
  background: radial-gradient(120% 140% at 100% 0%, rgba(200, 255, 90, 0.22), transparent 55%), var(--zbc-text);
  color: #f2f5f0;
  text-align: left;
  overflow: hidden;
}
body.zbc-sf-product #tab-description .zb-hero .zb-container { padding: 0; }
body.zbc-sf-product #tab-description .zb-eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin: 0 0 var(--zbc-s4);
  padding: 0 12px;
  border-radius: var(--zbc-pill);
  background: rgba(200, 255, 90, 0.14);
  color: var(--zbc-lime);
  font-size: var(--zbc-fs-xs);
  font-weight: 800;
  letter-spacing: var(--zbc-tracking-caps);
  text-transform: uppercase;
}
body.zbc-sf-product #tab-description .zb-hero :is(h1, h2, h3) {
  max-width: 22ch;
  margin: 0 0 var(--zbc-s3);
  font-size: clamp(1.75rem, 3vw + 0.5rem, 2.75rem);
  color: #fff;
}
body.zbc-sf-product #tab-description .zb-hero :is(h1, h2, h3) span { color: var(--zbc-lime); }
body.zbc-sf-product #tab-description .zb-hero p,
body.zbc-sf-product #tab-description .zb-hero-text {
  max-width: 60ch;
  margin: 0 0 var(--zbc-s5);
  font-size: var(--zbc-fs-lg);
  color: rgba(242, 245, 240, 0.82);
}
body.zbc-sf-product #tab-description .zb-hero a { color: var(--zbc-lime); }
body.zbc-sf-product #tab-description .zb-trust-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--zbc-s3);
  margin: var(--zbc-s5) 0 0;
}
body.zbc-sf-product #tab-description .zb-trust-item {
  padding: var(--zbc-s4);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--zbc-radius-sm);
  background: rgba(255, 255, 255, 0.06);
}
body.zbc-sf-product #tab-description .zb-mini-icon {
  margin: 0 0 4px;
  font-size: var(--zbc-fs-xl);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: var(--zbc-tracking-tight);
  color: var(--zbc-lime);
}
body.zbc-sf-product #tab-description .zb-trust-item p { margin: 0; max-width: none; font-size: var(--zbc-fs-sm); color: rgba(242, 245, 240, 0.75); }

/* Section headers, feature cards, steps */
body.zbc-sf-product #tab-description .zb-section-header { margin: 0 0 var(--zbc-s5); }
body.zbc-sf-product #tab-description .zb-section-header :is(h2, h3) { margin: 0 0 var(--zbc-s2); font-size: 1.625rem; }
body.zbc-sf-product #tab-description .zb-section-header p { margin: 0; color: var(--zbc-muted); }
body.zbc-sf-product #tab-description .zb-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--zbc-s4);
  margin: 0;
}
body.zbc-sf-product #tab-description .zb-card-grid .zb-card,
body.zbc-sf-product #tab-description .zb-card {
  flex: none;
  max-width: none;
  min-height: 0;
  margin: 0;
  padding: var(--zbc-s5);
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius);
  background: var(--zbc-surface-2);
  text-align: left;
  position: relative;
}
body.zbc-sf-product #tab-description .zb-card :is(h3, h4) { margin: 0 0 var(--zbc-s2); font-size: var(--zbc-fs-lg); }
body.zbc-sf-product #tab-description .zb-card p { margin: 0; max-width: none; font-size: 0.9375rem; }
body.zbc-sf-product #tab-description .zb-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--zbc-s4);
  counter-reset: zbc-step;
}
body.zbc-sf-product #tab-description .zb-step {
  position: relative;
  padding: var(--zbc-s5) var(--zbc-s5) var(--zbc-s5) 68px;
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius);
  background: var(--zbc-surface);
  counter-increment: zbc-step;
}
body.zbc-sf-product #tab-description .zb-step::before {
  content: counter(zbc-step);
  position: absolute;
  top: var(--zbc-s5);
  left: var(--zbc-s4);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink);
  font-size: var(--zbc-fs-sm);
  font-weight: 800;
}
body.zbc-sf-product #tab-description .zb-step :is(h3, h4) { margin: 0 0 var(--zbc-s1); font-size: var(--zbc-fs-md); }
body.zbc-sf-product #tab-description .zb-step p { margin: 0; max-width: none; font-size: var(--zbc-fs-sm); }

/* Call to action, FAQ, disclaimer, "keep exploring" */
body.zbc-sf-product #tab-description .zb-cta {
  padding: clamp(24px, 4vw, 40px);
  border-radius: var(--zbc-radius-lg);
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink);
  text-align: center;
}
body.zbc-sf-product #tab-description .zb-cta :is(h2, h3) { margin: 0 0 var(--zbc-s2); font-size: 1.625rem; color: var(--zbc-lime-ink); }
body.zbc-sf-product #tab-description .zb-cta p,
body.zbc-sf-product #tab-description .zb-cta p[style] {
  max-width: 60ch;
  margin: 0 auto !important;
  color: rgba(11, 26, 8, 0.78) !important;
  opacity: 1 !important;
}
body.zbc-sf-product #tab-description .zb-cta a { color: var(--zbc-lime-ink); text-decoration: underline; }
body.zbc-sf-product #tab-description .zb-faq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--zbc-s3);
  margin: 0;
}
body.zbc-sf-product #tab-description .zb-faq-tab-card {
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius);
  background: var(--zbc-surface);
  overflow: hidden;
}
body.zbc-sf-product #tab-description .zb-faq-question-bar {
  display: flex;
  align-items: center;
  gap: var(--zbc-s3);
  padding: var(--zbc-s4) var(--zbc-s5);
  background: var(--zbc-surface-2);
}
body.zbc-sf-product #tab-description .zb-faq-question-bar :is(h3, h4) { margin: 0; font-size: var(--zbc-fs-md); }
body.zbc-sf-product #tab-description .zb-faq-number {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink);
  font-size: var(--zbc-fs-xs);
  font-weight: 800;
}
body.zbc-sf-product #tab-description .zb-faq-answer { padding: var(--zbc-s4) var(--zbc-s5); font-size: 0.9375rem; }
body.zbc-sf-product #tab-description .zb-disclaimer {
  margin: var(--zbc-s6) 0 0;
  padding: var(--zbc-s3) var(--zbc-s4);
  border-left: 3px solid var(--zbc-warn);
  border-radius: 0 var(--zbc-radius-xs) var(--zbc-radius-xs) 0;
  background: var(--zbc-warn-wash);
  color: var(--zbc-text-2);
  font-size: var(--zbc-fs-sm);
}
body.zbc-sf-product #tab-description section.zb-explore,
body.zbc-sf-product #tab-description .zb-explore,
body.zbc-sf-product #tab-description section.zb-explore[style] {
  margin: var(--zbc-s6) 0 0 !important;
  padding: clamp(24px, 4vw, 40px) !important;
  border: 1px solid var(--zbc-line) !important;
  border-radius: var(--zbc-radius-lg) !important;
  background: var(--zbc-surface-2) !important;
  text-align: center !important;
}
body.zbc-sf-product #tab-description .zb-explore :is(h2, h3),
body.zbc-sf-product #tab-description .zb-explore :is(h2, h3)[style] { margin: 0 0 var(--zbc-s2) !important; font-size: 1.625rem !important; color: var(--zbc-text) !important; }
body.zbc-sf-product #tab-description .zb-explore p,
body.zbc-sf-product #tab-description .zb-explore p[style] { max-width: 60ch !important; margin: 0 auto var(--zbc-s4) !important; font-size: var(--zbc-fs-md) !important; line-height: 1.5 !important; color: var(--zbc-text-2) !important; }
body.zbc-sf-product #tab-description .zb-explore p:last-child { margin-bottom: 0 !important; }
body.zbc-sf-product #tab-description .zb-explore a,
body.zbc-sf-product #tab-description .zb-explore a[style] {
  display: inline-flex !important;
  align-items: center;
  min-height: 48px;
  padding: 0 var(--zbc-s5) !important;
  border-radius: var(--zbc-pill) !important;
  background: var(--zbc-lime) !important;
  color: var(--zbc-lime-ink) !important;
  font-size: var(--zbc-fs-sm) !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  transition: background var(--zbc-dur-fast) var(--zbc-ease), box-shadow var(--zbc-dur-fast) var(--zbc-ease);
}
body.zbc-sf-product #tab-description .zb-explore a:hover { background: var(--zbc-lime-2) !important; box-shadow: var(--zbc-glow); }

@media (max-width: 900px) {
  body.zbc-sf-product #tab-description .zb-trust-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.zbc-sf-product #tab-description .zb-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.zbc-sf-product #tab-description .zb-steps,
  body.zbc-sf-product #tab-description .zb-faq-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  body.zbc-sf-product #tab-description .zb-card-grid { grid-template-columns: 1fr; }
  body.zbc-sf-product #tab-description .zb-hero p,
  body.zbc-sf-product #tab-description .zb-hero-text { font-size: var(--zbc-fs-md); }
  body.zbc-sf-product #tab-description .zb-section-header :is(h2, h3),
  body.zbc-sf-product #tab-description .zb-cta :is(h2, h3),
  body.zbc-sf-product #tab-description .zb-explore :is(h2, h3),
  body.zbc-sf-product #tab-description .zb-explore :is(h2, h3)[style] { font-size: 1.375rem !important; }
}

/* ==========================================================================
   9. Related products / upsells — the same cards as the category pages
   ========================================================================== */
body.zbc-sf-product .zb-product section.related,
body.zbc-sf-product .zb-product section.upsells {
  max-width: none;
  margin: var(--zbc-s7) 0 0;
  padding: var(--zbc-s6) 0 0;
  border-top: 1px solid var(--zbc-line);
}
body.zbc-sf-product .zb-product section.related > h2,
body.zbc-sf-product .zb-product section.upsells > h2 {
  margin: 0 0 var(--zbc-s5);
  font-family: var(--zbc-font);
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: var(--zbc-tracking-tight);
  text-transform: none;
  color: var(--zbc-text);
}
body.zbc-sf-product .zb-product section.related ul.products,
body.zbc-sf-product .zb-product section.upsells ul.products { margin-bottom: 0; }

/* ==========================================================================
   10. Reviews
   ========================================================================== */
body.zbc-sf-product #tab-reviews { font-family: var(--zbc-font); }
body.zbc-sf-product #tab-reviews #reviews #comments h2.woocommerce-Reviews-title {
  display: block;
  margin: 0 0 var(--zbc-s4);
  font-family: var(--zbc-font);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: var(--zbc-tracking-tight);
  line-height: 1.2;
  text-transform: none;
  color: var(--zbc-text);
}
body.zbc-sf-product #tab-reviews .woocommerce-noreviews {
  margin: 0 0 var(--zbc-s5);
  padding: var(--zbc-s4) var(--zbc-s5);
  border-radius: var(--zbc-radius-sm);
  background: var(--zbc-surface-2);
  color: var(--zbc-text-2);
  font-size: var(--zbc-fs-sm);
}
body.zbc-sf-product #tab-reviews #reviews #comments ol.commentlist {
  display: grid;
  gap: var(--zbc-s3);
  margin: 0 0 var(--zbc-s6);
  padding: 0;
  list-style: none;
}
body.zbc-sf-product #tab-reviews #reviews #comments ol.commentlist li { margin: 0; padding: 0; }
body.zbc-sf-product #tab-reviews #reviews #comments ol.commentlist li .comment_container {
  display: flex;
  gap: var(--zbc-s3);
  padding: var(--zbc-s4);
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius);
  background: var(--zbc-surface);
}
body.zbc-sf-product #tab-reviews #reviews #comments ol.commentlist li img.avatar {
  position: static;
  float: none;
  flex: none;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--zbc-surface-2);
}
body.zbc-sf-product #tab-reviews #reviews #comments ol.commentlist li .comment-text {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
body.zbc-sf-product #tab-reviews #reviews #comments ol.commentlist li .comment-text p.meta { margin: 0 0 var(--zbc-s2); font-size: var(--zbc-fs-xs); color: var(--zbc-muted); }
body.zbc-sf-product #tab-reviews .woocommerce-review__author { color: var(--zbc-text); font-weight: 800; font-style: normal; }
body.zbc-sf-product #tab-reviews #reviews #comments ol.commentlist li .comment-text .description p { margin: 0; font-size: 0.9375rem; color: var(--zbc-text-2); }
body.zbc-sf-product #tab-reviews .star-rating,
body.zbc-sf-product #tab-reviews #reviews #comments ol.commentlist li .comment-text .star-rating { color: var(--zbc-warn); margin: 0 0 var(--zbc-s2); }
body.zbc-sf-product #tab-reviews #reviews #comments ol.commentlist li .comment-text .star-rating { float: none; }

body.zbc-sf-product #tab-reviews #review_form_wrapper { margin: 0; }
body.zbc-sf-product #tab-reviews #review_form #respond {
  padding: var(--zbc-s5);
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius);
  background: var(--zbc-surface-2);
}
body.zbc-sf-product #tab-reviews #review_form #respond .comment-reply-title {
  display: block;
  margin: 0 0 var(--zbc-s4);
  font-size: var(--zbc-fs-lg);
  font-weight: 800;
  color: var(--zbc-text);
}
body.zbc-sf-product #tab-reviews #review_form #respond .comment-reply-title small { display: block; margin-top: 4px; font-size: var(--zbc-fs-xs); font-weight: 600; }
body.zbc-sf-product #tab-reviews #review_form #respond p { margin: 0 0 var(--zbc-s4); }
body.zbc-sf-product #tab-reviews #review_form #respond label { display: block; margin: 0 0 6px; font-size: var(--zbc-fs-sm); font-weight: 700; color: var(--zbc-text-2); }
body.zbc-sf-product #tab-reviews #review_form #respond p.stars { margin: 0; }
body.zbc-sf-product #tab-reviews #review_form #respond p.stars a { color: var(--zbc-warn); }
body.zbc-sf-product #tab-reviews #review_form #respond textarea,
body.zbc-sf-product #tab-reviews #review_form #respond input[type="text"],
body.zbc-sf-product #tab-reviews #review_form #respond input[type="email"] {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid var(--zbc-line-strong);
  border-radius: var(--zbc-radius-sm);
  background: var(--zbc-surface);
  color: var(--zbc-text);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-md);
}
body.zbc-sf-product #tab-reviews #review_form #respond textarea { min-height: 120px; resize: vertical; }
body.zbc-sf-product #tab-reviews #review_form #respond :is(textarea, input):focus-visible { outline: none; border-color: var(--zbc-lime-text); box-shadow: var(--zbc-ring); }
body.zbc-sf-product #tab-reviews #review_form #respond .form-submit { margin: 0; }
body.zbc-sf-product #tab-reviews #review_form #respond input#submit {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 0 var(--zbc-s5);
  border: 0;
  border-radius: var(--zbc-pill);
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-sm);
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
}
body.zbc-sf-product #tab-reviews #review_form #respond input#submit:hover { background: var(--zbc-lime-2); box-shadow: var(--zbc-glow); }
body.zbc-sf-product #tab-reviews .comment-form-cookies-consent { display: flex; align-items: center; gap: 8px; }
body.zbc-sf-product #tab-reviews .comment-form-cookies-consent label { margin: 0; font-weight: 500; }

/* ==========================================================================
   11. My Account
   The theme renders the account page through page.php (.zb-page > article > h1.zb-page__title +
   .zb-rich.zb-page__body > .woocommerce), and WooCommerce's default is a bulleted link list beside
   a 68%-wide float. Here: a pill navigation in a card on the left, the content on the right, tables
   and forms in the club's controls. Below 900px the navigation becomes a scrolling chip row.
   ========================================================================== */
body.zbc-sf-account .zb-page {
  max-width: var(--zbc-max);
  padding: var(--zbc-s5) var(--zbc-gutter) var(--zbc-s8);
  font-family: var(--zbc-font);
  color: var(--zbc-text);
}
body.zbc-sf-account .zb-page__title {
  margin: 0 0 var(--zbc-s5);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-2xl);
  font-weight: 800;
  line-height: var(--zbc-lh-tight);
  letter-spacing: var(--zbc-tracking-tight);
  color: var(--zbc-text);
}
body.zbc-sf-account .zb-page__body { font-family: var(--zbc-font); font-size: var(--zbc-fs-md); line-height: 1.5; color: var(--zbc-text-2); }
body.zbc-sf-account .zb-page__body > .woocommerce {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: var(--zbc-s6);
  align-items: start;
}
/* WooCommerce's clearfix pseudo-elements would become grid items and shove the navigation into column 2 */
body.zbc-sf-account .zb-page__body > .woocommerce::before,
body.zbc-sf-account .zb-page__body > .woocommerce::after { content: none; display: none; }
body.zbc-sf-account .zb-page__body > .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
body.zbc-sf-account .zb-page__body > .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }

/* Navigation */
body.zbc-sf-account .woocommerce-MyAccount-navigation {
  float: none;
  width: auto;
  position: sticky;
  top: var(--zbc-s4);
}
body.zbc-sf-account .woocommerce-MyAccount-navigation ul {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  padding: var(--zbc-s2);
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius);
  background: var(--zbc-surface);
  box-shadow: var(--zbc-shadow-sm);
  list-style: none;
}
body.zbc-sf-account .woocommerce-MyAccount-navigation li { margin: 0; padding: 0; }
body.zbc-sf-account .woocommerce-MyAccount-navigation li a {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 0 var(--zbc-s3);
  border-radius: var(--zbc-radius-xs);
  color: var(--zbc-text-2);
  font-size: var(--zbc-fs-sm);
  font-weight: 600;
  text-decoration: none;
  transition: background var(--zbc-dur-fast) var(--zbc-ease), color var(--zbc-dur-fast) var(--zbc-ease);
}
body.zbc-sf-account .woocommerce-MyAccount-navigation li a::before {
  content: "";
  flex: none;
  width: 18px;
  height: 18px;
  background: currentColor;
  opacity: 0.8;
  -webkit-mask: var(--zbc-sf-icon) center / contain no-repeat;
  mask: var(--zbc-sf-icon) center / contain no-repeat;
}
body.zbc-sf-account .woocommerce-MyAccount-navigation li a:hover { background: var(--zbc-surface-2); color: var(--zbc-text); }
body.zbc-sf-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--zbc-lime); color: var(--zbc-lime-ink); }
body.zbc-sf-account .woocommerce-MyAccount-navigation li.is-active a::before { opacity: 1; }
body.zbc-sf-account .woocommerce-MyAccount-navigation li a:focus-visible { outline: none; box-shadow: var(--zbc-ring); }
body.zbc-sf-account .woocommerce-MyAccount-navigation-link--dashboard a { --zbc-sf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 3l9 8'/%3E%3Cpath d='M5 10v10h5v-6h4v6h5V10'/%3E%3C/svg%3E"); }
body.zbc-sf-account .woocommerce-MyAccount-navigation-link--zamplebox-club a { --zbc-sf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 8 12 3 3 8l9 5 9-5z'/%3E%3Cpath d='M3 8v8l9 5 9-5V8'/%3E%3Cpath d='M12 13v8'/%3E%3C/svg%3E"); }
body.zbc-sf-account .woocommerce-MyAccount-navigation-link--orders a { --zbc-sf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Cpath d='M3 9h18M8 13h5'/%3E%3C/svg%3E"); }
body.zbc-sf-account .woocommerce-MyAccount-navigation-link--edit-address a { --zbc-sf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s7-6.5 7-12a7 7 0 1 0-14 0c0 5.5 7 12 7 12z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
body.zbc-sf-account .woocommerce-MyAccount-navigation-link--payment-methods a { --zbc-sf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 10h20M6 15h4'/%3E%3C/svg%3E"); }
body.zbc-sf-account .woocommerce-MyAccount-navigation-link--edit-account a { --zbc-sf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E"); }
body.zbc-sf-account .woocommerce-MyAccount-navigation-link--downloads a { --zbc-sf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12m0 0 4-4m-4 4-4-4'/%3E%3Cpath d='M4 17v3h16v-3'/%3E%3C/svg%3E"); }
body.zbc-sf-account .woocommerce-MyAccount-navigation-link--customer-logout a { --zbc-sf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 4H5v16h5'/%3E%3Cpath d='M14 8l4 4-4 4M18 12H9'/%3E%3C/svg%3E"); }
body.zbc-sf-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--zamplebox-club a { color: var(--zbc-brand); font-weight: 800; }
body.zbc-sf-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--zamplebox-club.is-active a { color: var(--zbc-lime-ink); }
body.zbc-sf-account .woocommerce-MyAccount-navigation-link--customer-logout { margin-top: var(--zbc-s2); padding-top: var(--zbc-s2); border-top: 1px solid var(--zbc-line); }
body.zbc-sf-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--zbc-muted); }

/* Content */
body.zbc-sf-account .woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; }
body.zbc-sf-account .woocommerce-MyAccount-content > p,
body.zbc-sf-account .woocommerce-MyAccount-content .woocommerce-notices-wrapper + p { margin: 0 0 var(--zbc-s4); max-width: 68ch; }
body.zbc-sf-account .woocommerce-MyAccount-content a:not(.button) { color: var(--zbc-brand); font-weight: 600; }
body.zbc-sf-account .woocommerce-MyAccount-content :is(h2, h3, h4, legend) {
  margin: 0 0 var(--zbc-s3);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-lg);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: var(--zbc-tracking-tight);
  text-transform: none;
  color: var(--zbc-text);
}
body.zbc-sf-account .woocommerce-MyAccount-content h2 { font-size: 1.375rem; }
body.zbc-sf-account .woocommerce-MyAccount-content fieldset { margin: var(--zbc-s5) 0 0; padding: 0; border: 0; }
body.zbc-sf-account .woocommerce-MyAccount-content fieldset legend { padding: 0; margin-bottom: var(--zbc-s3); }

/* Tables: orders, payment methods, order details */
body.zbc-sf-account .woocommerce table.shop_table,
body.zbc-sf-account .woocommerce-MyAccount-content table.shop_table {
  width: 100%;
  margin: 0 0 var(--zbc-s5);
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius);
  border-collapse: separate;
  border-spacing: 0;
  background: var(--zbc-surface);
  font-size: var(--zbc-fs-sm);
  overflow: hidden;
}
body.zbc-sf-account .woocommerce table.shop_table th,
body.zbc-sf-account .woocommerce table.shop_table td { padding: 12px 14px; border: 0; border-top: 1px solid var(--zbc-line); vertical-align: middle; line-height: 1.4; }
body.zbc-sf-account .woocommerce table.shop_table thead th,
body.zbc-sf-account .woocommerce table.shop_table thead th span {
  border-top: 0;
  background: var(--zbc-surface-2);
  color: var(--zbc-muted);
  font-size: var(--zbc-fs-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
body.zbc-sf-account .woocommerce table.shop_table tbody tr:first-child td { border-top: 0; }
body.zbc-sf-account .woocommerce table.shop_table thead + tbody tr:first-child td { border-top: 1px solid var(--zbc-line); }
body.zbc-sf-account .woocommerce table.shop_table tbody th { color: var(--zbc-text); font-weight: 700; }
body.zbc-sf-account .woocommerce table.shop_table tfoot th,
body.zbc-sf-account .woocommerce table.shop_table tfoot td { background: var(--zbc-surface-2); color: var(--zbc-text); font-weight: 700; }
body.zbc-sf-account .woocommerce table.shop_table .woocommerce-orders-table__cell-order-number a { color: var(--zbc-text); font-weight: 800; text-decoration: none; }
body.zbc-sf-account .woocommerce table.shop_table .woocommerce-orders-table__cell-order-number a:hover { color: var(--zbc-brand); }
body.zbc-sf-account .woocommerce table.shop_table .woocommerce-orders-table__cell-order-status { font-weight: 700; color: var(--zbc-text); }
body.zbc-sf-account .woocommerce table.shop_table .woocommerce-orders-table__cell-order-total { white-space: nowrap; }
body.zbc-sf-account .woocommerce table.shop_table .woocommerce-orders-table__cell-order-actions { text-align: right; white-space: nowrap; }
body.zbc-sf-account .woocommerce table.shop_table .woocommerce-orders-table__cell-order-actions .button { margin: 0 0 0 6px; }
body.zbc-sf-account .woocommerce table.shop_table td.woocommerce-table__product-name a { color: var(--zbc-text); font-weight: 700; }
body.zbc-sf-account .woocommerce-orders-table__cell-order-number::before,
body.zbc-sf-account .woocommerce table.shop_table td[data-title]::before { color: var(--zbc-muted); font-weight: 700; }

/* Buttons: outline pills by default, the primary action in lime */
body.zbc-sf-account .woocommerce a.button,
body.zbc-sf-account .woocommerce button.button,
body.zbc-sf-account .woocommerce input.button,
body.zbc-sf-account .woocommerce-MyAccount-content .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  margin: 0;
  padding: 0 16px;
  border: 1px solid var(--zbc-line-strong);
  border-radius: var(--zbc-pill);
  background: var(--zbc-surface);
  color: var(--zbc-text);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-sm);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--zbc-dur-fast) var(--zbc-ease), border-color var(--zbc-dur-fast) var(--zbc-ease), box-shadow var(--zbc-dur-fast) var(--zbc-ease);
}
body.zbc-sf-account .woocommerce a.button:hover,
body.zbc-sf-account .woocommerce button.button:hover,
body.zbc-sf-account .woocommerce input.button:hover { background: var(--zbc-lime-wash); border-color: var(--zbc-lime-text); color: var(--zbc-text); }
body.zbc-sf-account .woocommerce a.button:focus-visible,
body.zbc-sf-account .woocommerce button.button:focus-visible { outline: none; box-shadow: var(--zbc-ring); }
body.zbc-sf-account .woocommerce table.shop_table .button { min-height: 34px; padding: 0 12px; font-size: var(--zbc-fs-xs); }
body.zbc-sf-account .woocommerce button.button.alt,
body.zbc-sf-account .woocommerce a.button.alt,
body.zbc-sf-account .woocommerce button.button[name="save_account_details"],
body.zbc-sf-account .woocommerce button.button[name="save_address"],
body.zbc-sf-account .woocommerce .woocommerce-PaymentMethods + a.button,
body.zbc-sf-account .woocommerce .woocommerce-MyAccount-content > a.button:last-child,
body.zbc-sf-account .woocommerce a.button.woocommerce-button--next {
  min-height: 48px;
  padding: 0 var(--zbc-s5);
  border-color: transparent;
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink);
  font-weight: 800;
}
body.zbc-sf-account .woocommerce button.button.alt:hover,
body.zbc-sf-account .woocommerce button.button[name="save_account_details"]:hover,
body.zbc-sf-account .woocommerce button.button[name="save_address"]:hover { background: var(--zbc-lime-2); border-color: transparent; color: var(--zbc-lime-ink); box-shadow: var(--zbc-glow); }
body.zbc-sf-account .woocommerce-pagination.woocommerce-pagination--without-numbers { display: flex; gap: var(--zbc-s2); margin: 0 0 var(--zbc-s4); }
body.zbc-sf-account .woocommerce-pagination.woocommerce-pagination--without-numbers .button { margin: 0; }

/* Forms: addresses, account details */
body.zbc-sf-account .woocommerce form .form-row { margin: 0 0 var(--zbc-s4); padding: 0; }
body.zbc-sf-account .woocommerce form .form-row label { display: block; margin: 0 0 6px; font-size: var(--zbc-fs-sm); font-weight: 700; color: var(--zbc-text-2); line-height: 1.3; }
body.zbc-sf-account .woocommerce form .form-row label .required { color: var(--zbc-danger); text-decoration: none; }
body.zbc-sf-account .woocommerce form .form-row .optional { color: var(--zbc-muted); font-weight: 500; }
body.zbc-sf-account .woocommerce form .form-row input.input-text,
body.zbc-sf-account .woocommerce form .form-row textarea,
body.zbc-sf-account .woocommerce form .form-row select,
body.zbc-sf-account .woocommerce form .form-row .select2-container .select2-selection--single {
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid var(--zbc-line-strong);
  border-radius: var(--zbc-radius-sm);
  background: var(--zbc-surface);
  color: var(--zbc-text);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-md);
  line-height: normal;
}
body.zbc-sf-account .woocommerce form .form-row textarea { min-height: 96px; padding: 12px 14px; }
body.zbc-sf-account .woocommerce form .form-row select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 40px;
  background: var(--zbc-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233d4841' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;
}
body.zbc-sf-account .woocommerce form .form-row .select2-container .select2-selection--single { display: flex; align-items: center; }
body.zbc-sf-account .woocommerce form .form-row .select2-container .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.3; color: var(--zbc-text); }
body.zbc-sf-account .woocommerce form .form-row .select2-container .select2-selection--single .select2-selection__arrow { top: 50%; right: 8px; transform: translateY(-50%); }
body.zbc-sf-account .woocommerce form .form-row :is(input.input-text, textarea, select):focus-visible { outline: none; border-color: var(--zbc-lime-text); box-shadow: var(--zbc-ring); }
body.zbc-sf-account .woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--zbc-danger); box-shadow: none; }
body.zbc-sf-account .woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--zbc-line-strong); }
body.zbc-sf-account .woocommerce form .form-row .password-input { width: 100%; }
body.zbc-sf-account .woocommerce form .form-row .show-password-input { top: 50%; right: 14px; transform: translateY(-50%); }
body.zbc-sf-account .woocommerce form .form-row .show-password-input::after { color: var(--zbc-muted); }
body.zbc-sf-account .woocommerce-EditAccountForm,
body.zbc-sf-account .woocommerce-address-fields__field-wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--zbc-s4);
}
body.zbc-sf-account .woocommerce-EditAccountForm > :not(.form-row-first):not(.form-row-last),
body.zbc-sf-account .woocommerce-address-fields__field-wrapper > :not(.form-row-first):not(.form-row-last) { grid-column: 1 / -1; }
body.zbc-sf-account .woocommerce form .form-row-first,
body.zbc-sf-account .woocommerce form .form-row-last { float: none; width: auto; }
body.zbc-sf-account .woocommerce form .form-row .woocommerce-password-strength { border-radius: var(--zbc-radius-xs); font-size: var(--zbc-fs-xs); }

/* Addresses */
body.zbc-sf-account .woocommerce-Addresses,
body.zbc-sf-account .woocommerce .col2-set.addresses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--zbc-s4);
  margin: var(--zbc-s3) 0 var(--zbc-s5);
}
body.zbc-sf-account .woocommerce-Addresses .col-1,
body.zbc-sf-account .woocommerce-Addresses .col-2,
body.zbc-sf-account .woocommerce .col2-set.addresses .col-1,
body.zbc-sf-account .woocommerce .col2-set.addresses .col-2 { float: none; width: auto; max-width: none; }
body.zbc-sf-account .woocommerce-Address {
  padding: var(--zbc-s5);
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius);
  background: var(--zbc-surface);
}
body.zbc-sf-account .woocommerce-Address-title { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--zbc-s2) var(--zbc-s3); margin: 0 0 var(--zbc-s3); }
body.zbc-sf-account .woocommerce-Address-title h2,
body.zbc-sf-account .woocommerce-Address-title h3 { float: none; margin: 0; font-size: var(--zbc-fs-lg); text-transform: none; }
body.zbc-sf-account .woocommerce-Address-title a { float: none; font-size: var(--zbc-fs-xs); font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
body.zbc-sf-account .woocommerce-Address address { font-style: normal; line-height: 1.6; color: var(--zbc-text-2); }
body.zbc-sf-account .woocommerce-column__title { margin-bottom: var(--zbc-s3); }

/* Payment methods (the club's card lives on the Zamplebox Club tab; this is WooCommerce's list) */
body.zbc-sf-account .woocommerce table.woocommerce-MyAccount-paymentMethods .payment-method-actions { text-align: right; white-space: nowrap; }

/* Order details */
body.zbc-sf-account .woocommerce-order-details,
body.zbc-sf-account .woocommerce-customer-details { margin: 0 0 var(--zbc-s5); }
body.zbc-sf-account .woocommerce-customer-details address {
  padding: var(--zbc-s4) var(--zbc-s5);
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius);
  background: var(--zbc-surface);
  font-style: normal;
  line-height: 1.6;
}
body.zbc-sf-account .woocommerce-customer-details .woocommerce-column__title { font-size: var(--zbc-fs-lg); }
body.zbc-sf-account .woocommerce-customer-details--phone,
body.zbc-sf-account .woocommerce-customer-details--email { margin: var(--zbc-s2) 0 0; padding: 0; }
body.zbc-sf-account .woocommerce-customer-details--phone::before,
body.zbc-sf-account .woocommerce-customer-details--email::before { display: none; }
body.zbc-sf-account .woocommerce-MyAccount-content .order-again { margin: 0 0 var(--zbc-s5); }

/* Dashboard */
body.zbc-sf-account .woocommerce-MyAccount-content > p:first-of-type strong { color: var(--zbc-text); }

@media (max-width: 900px) {
  body.zbc-sf-account .zb-page__body > .woocommerce { grid-template-columns: minmax(0, 1fr); gap: var(--zbc-s5); }
  body.zbc-sf-account .woocommerce-MyAccount-navigation { position: static; margin: 0 calc(-1 * var(--zbc-gutter)); }
  body.zbc-sf-account .woocommerce-MyAccount-navigation ul {
    flex-direction: row;
    gap: var(--zbc-s1);
    padding: 0 var(--zbc-gutter) var(--zbc-s3);
    border: 0;
    border-bottom: 1px solid var(--zbc-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  body.zbc-sf-account .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
  body.zbc-sf-account .woocommerce-MyAccount-navigation li { flex: none; }
  body.zbc-sf-account .woocommerce-MyAccount-navigation li a { min-height: 40px; padding: 0 14px; border: 1px solid var(--zbc-line-strong); border-radius: var(--zbc-pill); background: var(--zbc-surface); white-space: nowrap; }
  body.zbc-sf-account .woocommerce-MyAccount-navigation li.is-active a { border-color: var(--zbc-lime); }
  body.zbc-sf-account .woocommerce-MyAccount-navigation-link--customer-logout { margin: 0; padding: 0; border: 0; }
  body.zbc-sf-account .woocommerce-Addresses,
  body.zbc-sf-account .woocommerce .col2-set.addresses,
  body.zbc-sf-account .woocommerce-EditAccountForm,
  body.zbc-sf-account .woocommerce-address-fields__field-wrapper { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 768px) {
  /* WooCommerce stacks table cells with data-title labels below 768px */
  body.zbc-sf-account .woocommerce table.shop_table_responsive tr { display: block; padding: var(--zbc-s2) 0; border-top: 1px solid var(--zbc-line); }
  body.zbc-sf-account .woocommerce table.shop_table_responsive tr:first-child { border-top: 0; }
  /* The order number is a <th scope="row"> in WooCommerce's template, which the core responsive rules hide */
  body.zbc-sf-account .woocommerce table.shop_table_responsive td,
  body.zbc-sf-account .woocommerce table.shop_table_responsive tbody th.woocommerce-orders-table__cell-order-number { display: block; padding: 6px 14px; border: 0 !important; text-align: right; }
  body.zbc-sf-account .woocommerce table.shop_table_responsive tbody th.woocommerce-orders-table__cell-order-number { font-weight: 800; }
  body.zbc-sf-account .woocommerce table.shop_table_responsive td::before,
  body.zbc-sf-account .woocommerce table.shop_table_responsive tbody th.woocommerce-orders-table__cell-order-number::before { content: attr(data-title); float: left; margin: 0 var(--zbc-s3) 0 0; color: var(--zbc-muted); font-weight: 700; }
  body.zbc-sf-account .woocommerce table.shop_table_responsive td.woocommerce-orders-table__cell-order-actions::before,
  body.zbc-sf-account .woocommerce table.shop_table_responsive td.order-actions::before { display: none; }
  body.zbc-sf-account .woocommerce table.shop_table_responsive td.woocommerce-orders-table__cell-order-actions { padding-top: var(--zbc-s2); }
  body.zbc-sf-account .woocommerce table.shop_table_responsive tbody tr:nth-child(2n) td { background: transparent; }
}

/* ==========================================================================
   12. Sign in / register (My Account, signed out) and lost password
   ========================================================================== */
body.zbc-sf-account .zb-page__body > .woocommerce:has(> #customer_login),
body.zbc-sf-account .zb-page__body > .woocommerce:has(> .woocommerce-form-login),
body.zbc-sf-account .zb-page__body > .woocommerce:has(> .woocommerce-ResetPassword) { display: block; }
body.zbc-sf-account #customer_login,
body.zbc-sf-account .woocommerce .u-columns.col2-set {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--zbc-s5);
  max-width: 920px;
  margin: 0 auto;
}
body.zbc-sf-account #customer_login .col-1,
body.zbc-sf-account #customer_login .col-2 { float: none; width: auto; max-width: none; }
body.zbc-sf-account #customer_login h2 {
  margin: 0 0 var(--zbc-s4);
  font-family: var(--zbc-font);
  font-size: 1.375rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: var(--zbc-tracking-tight);
  text-transform: none;
  color: var(--zbc-text);
}
body.zbc-sf-account .woocommerce form.login,
body.zbc-sf-account .woocommerce form.register,
body.zbc-sf-account .woocommerce form.woocommerce-ResetPassword,
body.zbc-sf-account .woocommerce form.woocommerce-form-login {
  margin: 0;
  padding: var(--zbc-s6);
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius-lg);
  background: var(--zbc-surface);
  box-shadow: var(--zbc-shadow-sm);
  text-align: left;
}
body.zbc-sf-account .zb-page__body > .woocommerce > form.woocommerce-form-login,
body.zbc-sf-account .zb-page__body > .woocommerce > form.woocommerce-ResetPassword { max-width: 440px; margin: 0 auto; }
body.zbc-sf-account .woocommerce form.woocommerce-ResetPassword p:first-child { margin: 0 0 var(--zbc-s4); color: var(--zbc-text-2); }
body.zbc-sf-account .woocommerce form.login .form-row,
body.zbc-sf-account .woocommerce form.register .form-row { margin: 0 0 var(--zbc-s4); }
body.zbc-sf-account .woocommerce form.login .woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 var(--zbc-s3);
  font-size: var(--zbc-fs-sm);
  font-weight: 600;
  color: var(--zbc-text-2);
}
body.zbc-sf-account .woocommerce form.login .woocommerce-form-login__rememberme input { width: 18px; height: 18px; margin: 0; accent-color: var(--zbc-brand); }
body.zbc-sf-account .woocommerce form.login .form-row:has(> .woocommerce-form-login__submit),
body.zbc-sf-account .woocommerce form.register .form-row:has(> .woocommerce-form-register__submit),
body.zbc-sf-account .woocommerce form.woocommerce-ResetPassword .form-row:has(> button) { margin: 0; }
body.zbc-sf-account .woocommerce form.login button.woocommerce-form-login__submit,
body.zbc-sf-account .woocommerce form.register button.woocommerce-form-register__submit,
body.zbc-sf-account .woocommerce form.woocommerce-ResetPassword button.woocommerce-Button {
  width: 100%;
  min-height: 52px;
  margin: 0;
  padding: 0 var(--zbc-s5);
  border: 0;
  border-radius: var(--zbc-pill);
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-md);
  font-weight: 800;
}
body.zbc-sf-account .woocommerce form.login button.woocommerce-form-login__submit:hover,
body.zbc-sf-account .woocommerce form.register button.woocommerce-form-register__submit:hover,
body.zbc-sf-account .woocommerce form.woocommerce-ResetPassword button.woocommerce-Button:hover { background: var(--zbc-lime-2); border-color: transparent; color: var(--zbc-lime-ink); box-shadow: var(--zbc-glow); }
body.zbc-sf-account .woocommerce form.login .woocommerce-LostPassword { margin: var(--zbc-s4) 0 0; font-size: var(--zbc-fs-sm); text-align: center; }
body.zbc-sf-account .woocommerce form.login .woocommerce-LostPassword a,
body.zbc-sf-account .woocommerce form.register .woocommerce-privacy-policy-text a { color: var(--zbc-brand); font-weight: 700; }
body.zbc-sf-account .woocommerce form.register .woocommerce-privacy-policy-text p { margin: 0 0 var(--zbc-s4); font-size: var(--zbc-fs-xs); color: var(--zbc-muted); }
body.zbc-sf-account .woocommerce form.register .woocommerce-form-register__submit ~ p { margin-top: var(--zbc-s3); }

/* ==========================================================================
   13. Blog — Vape School index, archives and single posts
   The theme's blog is a three-column card grid (.zb-blog__grid) with uppercase titles, and a single post is
   h1.zb-post__title + .zb-post__media + .zb-rich.zb-post__body. The plugin adds a dated line above the copy,
   the club's call to action below it, and shoppable [products] grids inside posts.
   ========================================================================== */
body.zbc-storefront .zb-blog__grid { gap: var(--zbc-s5); margin: var(--zbc-s4) 0 var(--zbc-s7); }
body.zbc-storefront .zb-blog__card {
  display: flex;
  flex-direction: column;
  padding: var(--zbc-s3);
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius);
  background: var(--zbc-surface);
  box-shadow: var(--zbc-shadow-sm);
  transition: transform var(--zbc-dur) var(--zbc-ease), box-shadow var(--zbc-dur) var(--zbc-ease);
}
body.zbc-storefront .zb-blog__card:hover { transform: translateY(-3px); box-shadow: var(--zbc-shadow); }
body.zbc-storefront .zb-blog__media { aspect-ratio: 16 / 10; border-radius: var(--zbc-radius-sm); background: var(--zbc-surface-2); }
body.zbc-storefront .zb-blog__media img { transition: transform var(--zbc-dur-slow) var(--zbc-ease); }
body.zbc-storefront .zb-blog__card:hover .zb-blog__media img { transform: scale(1.03); }
/* Posts without a featured image (most of them): a short ink panel that names the category instead of a blank square */
body.zbc-storefront .zb-blog__card:not(.has-post-thumbnail) .zb-blog__media {
  position: relative;
  aspect-ratio: 16 / 7;
  display: flex;
  align-items: flex-end;
  padding: var(--zbc-s3);
  background: radial-gradient(120% 140% at 100% 0%, rgba(200, 255, 90, 0.22), transparent 55%), var(--zbc-text);
  overflow: hidden;
}
body.zbc-storefront .zb-blog__card:not(.has-post-thumbnail) .zb-blog__media::before {
  content: "Z";
  position: absolute;
  right: -0.08em;
  top: -0.32em;
  font-family: var(--zbc-font);
  font-size: 7.5rem;
  font-weight: 900;
  line-height: 1;
  color: rgba(255, 255, 255, 0.06);
  pointer-events: none;
}
body.zbc-storefront .zb-blog__card:not(.has-post-thumbnail) .zb-blog__media::after {
  content: "Article";
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink);
  font-family: var(--zbc-font);
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
body.zbc-storefront .zb-blog__card.category-vape-school:not(.has-post-thumbnail) .zb-blog__media::after { content: "Vape School"; }
body.zbc-storefront .zb-blog__card.category-reviews:not(.has-post-thumbnail) .zb-blog__media::after { content: "Review"; }
body.zbc-storefront .zb-blog__card.category-awards:not(.has-post-thumbnail) .zb-blog__media::after { content: "Awards"; }
body.zbc-storefront .zb-blog__card.category-news:not(.has-post-thumbnail) .zb-blog__media::after { content: "Industry News"; }
body.zbc-storefront .zb-blog__card.category-community:not(.has-post-thumbnail) .zb-blog__media::after { content: "Community"; }
body.zbc-storefront .zb-blog__card.category-deals:not(.has-post-thumbnail) .zb-blog__media::after { content: "Deals & Gifts"; }
body.zbc-storefront .zb-blog__card.category-zamplebox:not(.has-post-thumbnail) .zb-blog__media::after { content: "ZampleBox"; }
body.zbc-storefront .zb-blog__title {
  margin: var(--zbc-s3) 0 var(--zbc-s2);
  font-family: var(--zbc-font);
  font-size: 1.0625rem;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -0.01em;
  text-transform: none;
}
body.zbc-storefront .zb-blog__title a { color: var(--zbc-text); }
body.zbc-storefront .zb-blog__title a:hover { color: var(--zbc-brand); }
body.zbc-storefront .zb-blog__excerpt { font-family: var(--zbc-font); font-size: var(--zbc-fs-sm); line-height: 1.5; color: var(--zbc-text-2); }
body.zbc-storefront .zb-blog__intro { font-family: var(--zbc-font); font-size: var(--zbc-fs-md); color: var(--zbc-text-2); max-width: 68ch; }
body.zbc-storefront .zb-container > .zb-archive__head .zb-archive__title { font-size: var(--zbc-fs-3xl); }

/* Pagination on the blog and archives (WordPress core markup) */
body.zbc-storefront .pagination,
body.zbc-storefront .navigation.pagination { margin: 0 0 var(--zbc-s7); font-family: var(--zbc-font); }
body.zbc-storefront .pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
body.zbc-storefront .pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid var(--zbc-line-strong);
  border-radius: var(--zbc-pill);
  background: var(--zbc-surface);
  color: var(--zbc-text);
  font-size: var(--zbc-fs-sm);
  font-weight: 700;
  text-decoration: none;
  line-height: 1;
}
body.zbc-storefront .pagination a.page-numbers:hover { background: var(--zbc-lime-wash); border-color: var(--zbc-lime-text); }
body.zbc-storefront .pagination .page-numbers.current { background: var(--zbc-lime); border-color: var(--zbc-lime); color: var(--zbc-lime-ink); }
body.zbc-storefront .pagination .page-numbers.dots { border: 0; background: transparent; color: var(--zbc-muted); }
body.zbc-storefront .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Single post */
body.zbc-storefront .zb-post { max-width: 860px; padding: var(--zbc-s5) var(--zbc-gutter) var(--zbc-s8); font-family: var(--zbc-font); }
body.zbc-storefront .zb-post__title {
  margin: 0 0 var(--zbc-s4);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-2xl);
  font-weight: 800;
  line-height: var(--zbc-lh-tight);
  letter-spacing: var(--zbc-tracking-tight);
  text-transform: none;
  color: var(--zbc-text);
}
body.zbc-storefront .zb-post__media { margin: 0 0 var(--zbc-s5); border-radius: var(--zbc-radius-lg); overflow: hidden; background: var(--zbc-surface-2); }
body.zbc-storefront .zb-post__media img { width: 100%; height: auto; max-height: 520px; object-fit: cover; }
body.zbc-storefront .zbc-post-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--zbc-s2) var(--zbc-s4);
  margin: 0 0 var(--zbc-s5);
  padding: 0 0 var(--zbc-s4);
  border-bottom: 1px solid var(--zbc-line);
  font-size: var(--zbc-fs-sm);
  font-weight: 600;
  color: var(--zbc-muted);
  max-width: none;
}
body.zbc-storefront .zbc-post-meta a { color: var(--zbc-brand); text-decoration: none; }
body.zbc-storefront .zb-post__body,
body.zbc-storefront .zb-page__body.zb-rich {
  font-family: var(--zbc-font);
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--zbc-text-2);
}
body.zbc-storefront .zb-post__body > p,
body.zbc-storefront .zb-post__body > ul,
body.zbc-storefront .zb-post__body > ol,
body.zbc-storefront .zb-post__body > h2,
body.zbc-storefront .zb-post__body > h3,
body.zbc-storefront .zb-post__body > h4,
body.zbc-storefront .zb-post__body > blockquote { max-width: none; }
body.zbc-storefront .zb-post__body :is(h2, h3, h4),
body.zbc-storefront .zb-page__body :is(h2, h3, h4) {
  margin: var(--zbc-s6) 0 var(--zbc-s3);
  font-family: var(--zbc-font);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: var(--zbc-tracking-tight);
  text-transform: none;
  color: var(--zbc-text);
}
body.zbc-storefront .zb-post__body h2, body.zbc-storefront .zb-page__body h2 { font-size: 1.625rem; }
body.zbc-storefront .zb-post__body h3, body.zbc-storefront .zb-page__body h3 { font-size: 1.25rem; }
body.zbc-storefront .zb-post__body h4, body.zbc-storefront .zb-page__body h4 { font-size: 1.0625rem; }
body.zbc-storefront .zb-post__body p, body.zbc-storefront .zb-page__body p { margin: 0 0 var(--zbc-s4); }
body.zbc-storefront .zb-post__body :is(ul, ol), body.zbc-storefront .zb-page__body :is(ul, ol) { margin: 0 0 var(--zbc-s4); padding-left: 24px; }
body.zbc-storefront .zb-post__body li, body.zbc-storefront .zb-page__body li { margin: 0 0 8px; }
body.zbc-storefront .zb-post__body a:not(.zbc-post-cta__button):not(.button), body.zbc-storefront .zb-page__body p a, body.zbc-storefront .zb-page__body li a { color: var(--zbc-brand); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
body.zbc-storefront .zb-post__body strong { color: var(--zbc-text); }
body.zbc-storefront .zb-post__body figure, body.zbc-storefront .zb-post__body img { max-width: 100%; height: auto; margin: 0 0 var(--zbc-s4); border-radius: var(--zbc-radius-sm); }
body.zbc-storefront .zb-post__body figure img { margin: 0; }
body.zbc-storefront .zb-post__body figcaption { margin-top: 8px; font-size: var(--zbc-fs-xs); color: var(--zbc-muted); }
body.zbc-storefront .zb-post__body blockquote {
  margin: 0 0 var(--zbc-s4);
  padding: var(--zbc-s3) var(--zbc-s4);
  border-left: 3px solid var(--zbc-lime);
  border-radius: 0 var(--zbc-radius-xs) var(--zbc-radius-xs) 0;
  background: var(--zbc-surface-2);
  font-style: normal;
}
body.zbc-storefront .zb-post__body table { width: 100%; margin: 0 0 var(--zbc-s4); border-collapse: collapse; font-size: var(--zbc-fs-sm); }
body.zbc-storefront .zb-post__body :is(th, td) { padding: 8px 10px; border: 1px solid var(--zbc-line); text-align: left; vertical-align: top; }
body.zbc-storefront .zb-post__body th { background: var(--zbc-surface-2); color: var(--zbc-text); }
body.zbc-storefront .zb-post__body .zbc-callout,
body.zbc-storefront .zb-post__body .zbc-note {
  margin: 0 0 var(--zbc-s5);
  padding: var(--zbc-s4) var(--zbc-s5);
  border: 1px solid var(--zbc-line);
  border-left: 4px solid var(--zbc-brand);
  border-radius: var(--zbc-radius-sm);
  background: var(--zbc-surface-2);
  font-size: 0.9375rem;
}
body.zbc-storefront .zb-post__body .zbc-callout--warn { border-left-color: var(--zbc-warn); background: var(--zbc-warn-wash); }
body.zbc-storefront .zb-post__body .zbc-callout p:last-child { margin-bottom: 0; }
body.zbc-storefront .zb-post__body .zbc-faq details { margin: 0 0 var(--zbc-s2); border: 1px solid var(--zbc-line); border-radius: var(--zbc-radius-sm); background: var(--zbc-surface); }
body.zbc-storefront .zb-post__body .zbc-faq summary { padding: var(--zbc-s3) var(--zbc-s4); font-weight: 700; color: var(--zbc-text); cursor: pointer; list-style: none; }
body.zbc-storefront .zb-post__body .zbc-faq summary::-webkit-details-marker { display: none; }
body.zbc-storefront .zb-post__body .zbc-faq summary::after { content: "+"; float: right; color: var(--zbc-muted); font-weight: 800; }
body.zbc-storefront .zb-post__body .zbc-faq details[open] summary::after { content: "–"; }
body.zbc-storefront .zb-post__body .zbc-faq details > *:not(summary) { padding: 0 var(--zbc-s4) var(--zbc-s3); }
body.zbc-storefront .zb-post__body .zbc-faq details > p:last-child { margin-bottom: 0; }
body.zbc-storefront .zb-post__body .zbc-disclaimer { margin: var(--zbc-s6) 0 0; font-size: var(--zbc-fs-xs); color: var(--zbc-muted); }

/* Shoppable product grids inside posts ([products] shortcode) */
body.zbc-storefront .zb-post__body .woocommerce.columns-3 ul.products,
body.zbc-storefront .zb-post__body .woocommerce.columns-4 ul.products,
body.zbc-storefront .zb-post__body .woocommerce ul.products { --zbc-sf-cols: 3; margin: var(--zbc-s2) 0 var(--zbc-s5); }
body.zbc-storefront .zb-post__body .woocommerce ul.products li.product .zb-card__title { -webkit-line-clamp: 2; }

/* The club's call to action at the end of a post */
body.zbc-storefront .zbc-post-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--zbc-s4) var(--zbc-s5);
  margin: var(--zbc-s7) 0 0;
  padding: clamp(20px, 3vw, 32px);
  border-radius: var(--zbc-radius-lg);
  background: radial-gradient(120% 140% at 100% 0%, rgba(200, 255, 90, 0.22), transparent 55%), var(--zbc-text);
  color: #f2f5f0;
}
body.zbc-storefront .zbc-post-cta__body { flex: 1 1 320px; min-width: 0; }
body.zbc-storefront .zbc-post-cta__eyebrow { margin: 0 0 6px; font-size: var(--zbc-fs-xs); font-weight: 800; letter-spacing: var(--zbc-tracking-caps); text-transform: uppercase; color: var(--zbc-lime); }
body.zbc-storefront .zbc-post-cta__title { margin: 0 0 var(--zbc-s2) !important; font-size: 1.375rem !important; color: #fff !important; }
body.zbc-storefront .zbc-post-cta__text { margin: 0; max-width: 56ch; font-size: 0.9375rem; color: rgba(242, 245, 240, 0.82); }
body.zbc-storefront .zbc-post-cta__button {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 0 var(--zbc-s5);
  border-radius: var(--zbc-pill);
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink) !important;
  font-size: var(--zbc-fs-sm);
  font-weight: 800;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background var(--zbc-dur-fast) var(--zbc-ease), box-shadow var(--zbc-dur-fast) var(--zbc-ease);
}
body.zbc-storefront .zbc-post-cta__button:hover { background: var(--zbc-lime-2); box-shadow: var(--zbc-glow); }

/* Content pages (About, Shipping, Terms, Contact …) share the prose treatment */
body.zbc-storefront .zb-page { font-family: var(--zbc-font); }
body.zbc-storefront .zb-page__title { font-family: var(--zbc-font); font-size: var(--zbc-fs-2xl); font-weight: 800; line-height: var(--zbc-lh-tight); letter-spacing: var(--zbc-tracking-tight); text-transform: none; color: var(--zbc-text); }
body.zbc-storefront .zb-page__body.zb-rich > p, body.zbc-storefront .zb-page__body.zb-rich > ul, body.zbc-storefront .zb-page__body.zb-rich > ol { max-width: 72ch; }

@media (max-width: 600px) {
  body.zbc-storefront .zb-post__title { font-size: 1.75rem; }
  body.zbc-storefront .zb-post__body, body.zbc-storefront .zb-page__body.zb-rich { font-size: 1rem; }
  body.zbc-storefront .zb-post__body .woocommerce ul.products { --zbc-sf-cols: 2; }
}

/* ==========================================================================
   13b. WooCommerce product-grid blocks (the empty cart's "New in store", any "Newest/Best-selling products"
   block on a page) — the same cards as the shop, since the block prints its own markup (.wc-block-grid)
   ========================================================================== */
body.zbc-storefront .wc-block-grid .wc-block-grid__products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--zbc-s4);
  margin: var(--zbc-s4) 0 0;
  padding: 0;
  list-style: none;
}
body.zbc-storefront .wc-block-grid li.wc-block-grid__product {
  display: flex;
  flex-direction: column;
  width: auto;
  max-width: none;
  margin: 0;
  padding: var(--zbc-s3);
  border: 1px solid var(--zbc-line);
  border-radius: var(--zbc-radius);
  background: var(--zbc-surface);
  box-shadow: var(--zbc-shadow-sm);
  text-align: left;
  font-family: var(--zbc-font);
  transition: transform var(--zbc-dur) var(--zbc-ease), box-shadow var(--zbc-dur) var(--zbc-ease), border-color var(--zbc-dur) var(--zbc-ease);
}
body.zbc-storefront .wc-block-grid__product:hover { transform: translateY(-3px); border-color: var(--zbc-line-strong); box-shadow: var(--zbc-shadow); }
body.zbc-storefront .wc-block-grid__product-image { display: block; margin: 0 0 var(--zbc-s3); border-radius: var(--zbc-radius-sm); background: var(--zbc-surface-2); overflow: hidden; }
body.zbc-storefront .wc-block-grid__product-image img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; padding: 8%; box-sizing: border-box; mix-blend-mode: multiply; }
body.zbc-storefront .wc-block-grid__product-title { margin: 0 0 var(--zbc-s2); font-size: var(--zbc-fs-sm); font-weight: 700; line-height: 1.35; color: var(--zbc-text); text-decoration: none; text-transform: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body.zbc-storefront .wc-block-grid li.wc-block-grid__product a.wc-block-grid__product-link { color: inherit; font-weight: inherit; text-decoration: none; }
body.zbc-storefront .wc-block-grid li.wc-block-grid__product a.wc-block-grid__product-link:hover .wc-block-grid__product-title { color: var(--zbc-brand); }
body.zbc-storefront .wc-block-grid__product-price { margin: 0 0 var(--zbc-s3); font-size: var(--zbc-fs-md); font-weight: 800; line-height: 1.3; color: var(--zbc-text); }
body.zbc-storefront .wc-block-grid__product-price del { margin-right: 6px; color: var(--zbc-faint); font-weight: 500; }
body.zbc-storefront .wc-block-grid__product-price ins { text-decoration: none; color: var(--zbc-lime-text); }
body.zbc-storefront .wc-block-grid__product-add-to-cart { margin: auto 0 0; }
body.zbc-storefront .wc-block-grid li.wc-block-grid__product a.wp-block-button__link,
body.zbc-storefront .wc-block-grid li.wc-block-grid__product a.wp-block-button__link:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  margin: 0;
  padding: 0 var(--zbc-s4);
  border: 0;
  border-radius: var(--zbc-pill);
  background: var(--zbc-lime);
  color: var(--zbc-lime-ink);
  font-family: var(--zbc-font);
  font-size: var(--zbc-fs-sm);
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
  text-transform: none;
  box-shadow: none;
  transition: background var(--zbc-dur-fast) var(--zbc-ease), transform var(--zbc-dur-fast) var(--zbc-ease), box-shadow var(--zbc-dur-fast) var(--zbc-ease);
}
body.zbc-storefront .wc-block-grid li.wc-block-grid__product a.wp-block-button__link:hover { background: var(--zbc-lime-2); color: var(--zbc-lime-ink); box-shadow: var(--zbc-glow); transform: translateY(-1px); text-decoration: none; }
body.zbc-storefront .wc-block-grid li.wc-block-grid__product a.wp-block-button__link:focus-visible { outline: none; box-shadow: var(--zbc-ring); }
body.zbc-storefront .wc-block-grid li.wc-block-grid__product a.wp-block-button__link.loading { opacity: 0.7; }
body.zbc-storefront .wc-block-grid__product .added_to_cart { display: block; margin-top: var(--zbc-s2); font-size: var(--zbc-fs-xs); font-weight: 700; color: var(--zbc-brand); text-align: center; }
body.zbc-storefront .wp-block-woocommerce-cart .wc-block-cart__empty-cart__title,
body.zbc-storefront .wc-block-cart__empty-cart__title { font-family: var(--zbc-font); font-weight: 800; letter-spacing: -0.01em; }
body.zbc-storefront .wp-block-woocommerce-cart h2.has-text-align-center,
body.zbc-storefront .wp-block-woocommerce-cart .wp-block-heading { font-family: var(--zbc-font); font-weight: 800; letter-spacing: -0.01em; }
@media (max-width: 1100px) { body.zbc-storefront .wc-block-grid .wc-block-grid__products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  body.zbc-storefront .wc-block-grid .wc-block-grid__products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--zbc-s3); }
  body.zbc-storefront .wc-block-grid li.wc-block-grid__product a.wp-block-button__link { padding: 0 12px; font-size: 13px; white-space: nowrap; }
}

/* ==========================================================================
   14. Home — the club's story on the store's front page (templates/store/front-page.php)
   Scoped to body.zbc-home. The theme's header and footer wrap it; every block below is the plugin's.
   ========================================================================== */
body.zbc-home .zbc-home { font-family: var(--zbc-font); color: var(--zbc-text); background: var(--zbc-canvas); overflow-x: clip; }
body.zbc-home .zbc-home * { box-sizing: border-box; }
body.zbc-home .zbc-home__wrap { width: min(var(--zbc-max), 100% - 2 * var(--zbc-gutter)); margin-inline: auto; }
body.zbc-home .zbc-home__section { padding: clamp(48px, 7vw, 96px) 0; }
body.zbc-home .zbc-home__icon { width: 1.05em; height: 1.05em; flex: none; }
body.zbc-home .zbc-home a { text-decoration: none; }
body.zbc-home .zbc-home__anchor { display: block; position: relative; top: -96px; visibility: hidden; }
body.zbc-home .zbc-home__section { scroll-margin-top: 96px; }

/* type */
body.zbc-home .zbc-home__eyebrow,
body.zbc-home .zbc-home__kicker { margin: 0 0 var(--zbc-s3); font-size: var(--zbc-fs-xs); font-weight: 800; letter-spacing: var(--zbc-tracking-caps); text-transform: uppercase; color: var(--zbc-lime-text); }
body.zbc-home .zbc-home__eyebrow { color: var(--zbc-lime); }
body.zbc-home .zbc-home__title { margin: 0 0 var(--zbc-s4); font-size: clamp(2.5rem, 5.2vw + 0.5rem, 4.5rem); font-weight: 800; line-height: 1.02; letter-spacing: var(--zbc-tracking-tight); color: #fff; text-transform: none; }
body.zbc-home .zbc-home__title em { font-style: normal; color: var(--zbc-lime); }
body.zbc-home .zbc-home__h2 { margin: 0; font-size: var(--zbc-fs-2xl); font-weight: 800; line-height: 1.12; letter-spacing: -0.02em; color: var(--zbc-text); text-transform: none; }
body.zbc-home .zbc-home__h2--light { color: #fff; }
body.zbc-home .zbc-home__h2--row { font-size: var(--zbc-fs-xl); }
body.zbc-home .zbc-home__h3 { margin: 0 0 var(--zbc-s3); font-size: clamp(1.5rem, 1.2vw + 1rem, 2rem); font-weight: 800; line-height: 1.15; letter-spacing: -0.02em; color: var(--zbc-text); text-transform: none; }
body.zbc-home .zbc-home__h4 { margin: 0 0 var(--zbc-s2); font-size: var(--zbc-fs-lg); font-weight: 800; line-height: 1.25; color: var(--zbc-text); text-transform: none; }
body.zbc-home .zbc-home__lead { margin: 0 0 var(--zbc-s5); max-width: 58ch; font-size: clamp(1.0625rem, 0.6vw + 0.9rem, 1.25rem); line-height: 1.55; color: rgba(242, 245, 240, 0.86); }
body.zbc-home .zbc-home__lead--light { color: rgba(242, 245, 240, 0.86); }
body.zbc-home .zbc-home__sub { margin: var(--zbc-s3) auto 0; max-width: 60ch; font-size: var(--zbc-fs-md); line-height: 1.55; color: var(--zbc-text-2); }
body.zbc-home .zbc-home__sub a { color: var(--zbc-lime-text); font-weight: 700; text-decoration: underline; }
body.zbc-home .zbc-home__head { max-width: 760px; margin: 0 auto clamp(28px, 4vw, 48px); text-align: center; }
body.zbc-home .zbc-home__head--left { margin: 0; text-align: left; }
body.zbc-home .zbc-home__head--left .zbc-home__sub { margin-left: 0; }
body.zbc-home .zbc-home__head--light .zbc-home__h2 { color: #fff; }
body.zbc-home .zbc-home__head--light .zbc-home__kicker { color: var(--zbc-lime); }
body.zbc-home .zbc-home p { font-family: var(--zbc-font); }

/* buttons */
body.zbc-home .zbc-home__btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 0 26px; border-radius: var(--zbc-pill); font-family: var(--zbc-font); font-size: var(--zbc-fs-md); font-weight: 800; letter-spacing: -0.005em; transition: transform var(--zbc-dur) var(--zbc-ease), box-shadow var(--zbc-dur) var(--zbc-ease), background var(--zbc-dur) var(--zbc-ease); }
body.zbc-home .zbc-home__btn--primary { background: var(--zbc-lime); color: var(--zbc-lime-ink); box-shadow: 0 8px 24px rgba(200, 255, 90, 0.28); }
body.zbc-home .zbc-home__btn--primary:hover { background: var(--zbc-lime-2); color: var(--zbc-lime-ink); transform: translateY(-2px); box-shadow: 0 12px 30px rgba(200, 255, 90, 0.36); }
body.zbc-home .zbc-home__btn--ghost { border: 1px solid rgba(255, 255, 255, 0.28); color: #fff; }
body.zbc-home .zbc-home__btn--ghost:hover { border-color: #fff; color: #fff; transform: translateY(-2px); }
body.zbc-home .zbc-home__btn--plan { width: 100%; min-height: 46px; margin-top: auto; border: 1.5px solid var(--zbc-line-strong); color: var(--zbc-text); }
body.zbc-home .zbc-home__btn--plan:hover { background: var(--zbc-lime); border-color: var(--zbc-lime); color: var(--zbc-lime-ink); }
body.zbc-home .zbc-home__plan--popular .zbc-home__btn--plan { background: var(--zbc-lime); border-color: var(--zbc-lime); color: var(--zbc-lime-ink); }
body.zbc-home .zbc-home__more { display: inline-flex; align-items: center; gap: 6px; font-size: var(--zbc-fs-sm); font-weight: 800; color: var(--zbc-lime-text); }
body.zbc-home .zbc-home__more:hover { color: var(--zbc-brand-deep); }

/* tick lists */
body.zbc-home .zbc-home__ticks,
body.zbc-home .zbc-home__proof { list-style: none; margin: var(--zbc-s4) 0 0; padding: 0; display: grid; gap: 10px; }
body.zbc-home .zbc-home__ticks li,
body.zbc-home .zbc-home__proof li { display: flex; align-items: flex-start; gap: 10px; font-size: var(--zbc-fs-md); line-height: 1.45; color: var(--zbc-text-2); }
body.zbc-home .zbc-home__ticks .zbc-home__icon,
body.zbc-home .zbc-home__proof .zbc-home__icon { margin-top: 3px; color: var(--zbc-lime-text); }
body.zbc-home .zbc-home__proof { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: var(--zbc-s6); }
body.zbc-home .zbc-home__proof li { color: rgba(242, 245, 240, 0.86); font-size: var(--zbc-fs-sm); font-weight: 600; }
body.zbc-home .zbc-home__proof .zbc-home__icon { color: var(--zbc-lime); }

/* 1. hero */
body.zbc-home .zbc-home__hero { position: relative; padding: clamp(48px, 7vw, 96px) 0 clamp(56px, 8vw, 112px); color: #fff; background: radial-gradient(90% 90% at 100% 0%, rgba(200, 255, 90, 0.2), transparent 60%), radial-gradient(60% 60% at 0% 100%, rgba(47, 143, 42, 0.35), transparent 60%), var(--zbc-text); overflow: hidden; }
body.zbc-home .zbc-home__hero::after { content: ""; position: absolute; inset: auto 0 -1px; height: 48px; background: var(--zbc-canvas); clip-path: ellipse(60% 100% at 50% 100%); }
body.zbc-home .zbc-home__hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
body.zbc-home .zbc-home__actions { display: flex; flex-wrap: wrap; gap: 12px; }
body.zbc-home .zbc-home__hero-art { position: relative; min-height: 360px; }
body.zbc-home .zbc-home__hero-figure { margin: 0 auto; width: min(100%, 460px); padding: 20px; border-radius: var(--zbc-radius-xl); background: #fff; box-shadow: var(--zbc-shadow-lg); transform: rotate(-2deg); }
body.zbc-home .zbc-home__hero-img { display: block; width: 100%; height: auto; border-radius: var(--zbc-radius); }
body.zbc-home .zbc-home__float { position: absolute; display: grid; gap: 4px; max-width: 250px; padding: 12px 14px; border-radius: var(--zbc-radius); background: var(--zbc-glass); color: var(--zbc-text); box-shadow: var(--zbc-shadow-lg); backdrop-filter: blur(10px); font-size: var(--zbc-fs-sm); line-height: 1.35; }
body.zbc-home .zbc-home__float strong { font-size: var(--zbc-fs-md); font-weight: 800; }
body.zbc-home .zbc-home__float span:last-child { color: var(--zbc-text-2); }
body.zbc-home .zbc-home__float-badge { display: inline-flex; align-items: center; gap: 6px; width: max-content; padding: 3px 9px; border-radius: var(--zbc-pill); background: var(--zbc-lime); color: var(--zbc-lime-ink); font-size: var(--zbc-fs-xs); font-weight: 800; }
body.zbc-home .zbc-home__float--pick { left: -4%; bottom: 8%; animation: zbc-home-float 7s ease-in-out infinite; }
body.zbc-home .zbc-home__float--swap { right: 0; top: 4%; animation: zbc-home-float 8s ease-in-out infinite reverse; }
body.zbc-home .zbc-home__float--rate { right: 0; bottom: 8%; animation: zbc-home-float 7s ease-in-out infinite; }
body.zbc-home .zbc-home__stars { color: #e7a91a; letter-spacing: 0.08em; font-size: var(--zbc-fs-md); }
@keyframes zbc-home-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

/* 2. chapters */
body.zbc-home .zbc-home__how { background: var(--zbc-canvas); }
body.zbc-home .zbc-home__chapter { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); align-items: center; padding: clamp(28px, 4vw, 56px) 0; }
body.zbc-home .zbc-home__chapter + .zbc-home__chapter { border-top: 1px solid var(--zbc-line); }
body.zbc-home .zbc-home__chapter--flip .zbc-home__chapter-copy { order: 2; }
body.zbc-home .zbc-home__chapter--flip .zbc-home__chapter-media { order: 1; }
body.zbc-home .zbc-home__chapter-copy p { margin: 0; font-size: var(--zbc-fs-lg); line-height: 1.55; color: var(--zbc-text-2); }
body.zbc-home .zbc-home__step { display: inline-block; margin-bottom: var(--zbc-s3); font-size: var(--zbc-fs-xs); font-weight: 800; letter-spacing: var(--zbc-tracking-caps); color: var(--zbc-lime-ink); background: var(--zbc-lime); padding: 4px 10px; border-radius: var(--zbc-pill); }
body.zbc-home .zbc-home__chapter-media { position: relative; }
body.zbc-home .zbc-home__shot { margin: 0; border-radius: var(--zbc-radius-lg); background: #fff; box-shadow: var(--zbc-shadow-lg); overflow: hidden; border: 1px solid var(--zbc-line); }
body.zbc-home .zbc-home__shot img { display: block; width: 100%; height: auto; }
body.zbc-home .zbc-home__shot--main { width: 88%; }
body.zbc-home .zbc-home__chapter--flip .zbc-home__shot--main { margin-left: auto; }
body.zbc-home .zbc-home__shot--side { position: absolute; right: 0; bottom: -12%; width: 52%; transform: rotate(1.5deg); }
body.zbc-home .zbc-home__chapter--flip .zbc-home__shot--side { right: auto; left: 0; transform: rotate(-1.5deg); }
body.zbc-home .zbc-home__shot--tall { width: 44%; }
body.zbc-home .zbc-home__chapter-media:has(.zbc-home__shot--side) { padding-bottom: 12%; }
body.zbc-home .zbc-home__chapter-media--art { display: flex; justify-content: center; }
body.zbc-home .zbc-home__art-card { margin: 0; width: min(100%, 380px); padding: 18px; border-radius: var(--zbc-radius-xl); background: #fff; box-shadow: var(--zbc-shadow-lg); border: 1px solid var(--zbc-line); }
body.zbc-home .zbc-home__art-img { display: block; width: 100%; height: auto; border-radius: var(--zbc-radius); }

/* 3. personal tiles */
body.zbc-home .zbc-home__personal { background: radial-gradient(80% 60% at 100% 0%, rgba(200, 255, 90, 0.16), transparent 60%), var(--zbc-text); color: #fff; }
body.zbc-home .zbc-home__tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--zbc-s5); }
body.zbc-home .zbc-home__tile { display: flex; flex-direction: column; border-radius: var(--zbc-radius-lg); background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1); overflow: hidden; transition: transform var(--zbc-dur) var(--zbc-ease), background var(--zbc-dur) var(--zbc-ease); }
body.zbc-home .zbc-home__tile:hover { transform: translateY(-4px); background: rgba(255, 255, 255, 0.09); }
body.zbc-home .zbc-home__tile-media { margin: 0; padding: 18px 18px 0; }
body.zbc-home .zbc-home__tile-media img { display: block; width: 100%; height: 190px; object-fit: cover; object-position: top left; border-radius: var(--zbc-radius-sm) var(--zbc-radius-sm) 0 0; box-shadow: 0 -1px 0 rgba(255, 255, 255, 0.2); }
body.zbc-home .zbc-home__tile-body { padding: 18px 20px 22px; border-top: 1px solid rgba(255, 255, 255, 0.1); background: rgba(0, 0, 0, 0.18); }
body.zbc-home .zbc-home__tile-body .zbc-home__h4 { color: #fff; }
body.zbc-home .zbc-home__tile-body p { margin: 0; font-size: var(--zbc-fs-sm); line-height: 1.5; color: rgba(242, 245, 240, 0.78); }
body.zbc-home .zbc-home__tile-icon { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin-bottom: 10px; border-radius: 10px; background: var(--zbc-lime); color: var(--zbc-lime-ink); }

/* 4. plans */
body.zbc-home .zbc-home__boxes { background: var(--zbc-canvas-2); }
body.zbc-home .zbc-home__plans { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--zbc-s5); }
body.zbc-home .zbc-home__plan { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 22px; border-radius: var(--zbc-radius-lg); background: var(--zbc-surface); border: 1px solid var(--zbc-line); box-shadow: var(--zbc-shadow-sm); transition: transform var(--zbc-dur) var(--zbc-ease), box-shadow var(--zbc-dur) var(--zbc-ease); }
body.zbc-home .zbc-home__plan:hover { transform: translateY(-4px); box-shadow: var(--zbc-shadow); }
body.zbc-home .zbc-home__plan--popular { border-color: var(--zbc-lime-2); box-shadow: var(--zbc-glow); }
body.zbc-home .zbc-home__plan-flag { position: absolute; top: -12px; left: 22px; padding: 4px 10px; border-radius: var(--zbc-pill); background: var(--zbc-lime); color: var(--zbc-lime-ink); font-size: var(--zbc-fs-xs); font-weight: 800; letter-spacing: var(--zbc-tracking-caps); text-transform: uppercase; }
body.zbc-home .zbc-home__plan-art { margin: 0 0 6px; aspect-ratio: 4 / 3; display: grid; place-items: center; border-radius: var(--zbc-radius); background: var(--zbc-surface-2); overflow: hidden; }
body.zbc-home .zbc-home__plan-img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
body.zbc-home .zbc-home__plan-count { display: flex; align-items: baseline; gap: 6px; aspect-ratio: 4 / 3; align-items: center; justify-content: center; border-radius: var(--zbc-radius); background: var(--zbc-surface-2); margin-bottom: 6px; }
body.zbc-home .zbc-home__plan-count strong { font-size: 3rem; font-weight: 800; letter-spacing: -0.04em; color: var(--zbc-text); }
body.zbc-home .zbc-home__plan-count span { font-size: var(--zbc-fs-xs); font-weight: 800; letter-spacing: var(--zbc-tracking-caps); text-transform: uppercase; color: var(--zbc-muted); }
body.zbc-home .zbc-home__plan-name { margin: 0; font-size: var(--zbc-fs-lg); font-weight: 800; color: var(--zbc-text); text-transform: none; }
body.zbc-home .zbc-home__plan-price { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
body.zbc-home .zbc-home__plan-price strong { font-size: 1.75rem; font-weight: 800; letter-spacing: -0.03em; color: var(--zbc-text); }
body.zbc-home .zbc-home__plan-price span { font-size: var(--zbc-fs-sm); color: var(--zbc-muted); }
body.zbc-home .zbc-home__plan-line { margin: 0; font-size: var(--zbc-fs-sm); color: var(--zbc-text-2); }
body.zbc-home .zbc-home__plan-blurb { margin: 0 0 var(--zbc-s3); font-size: var(--zbc-fs-sm); line-height: 1.45; color: var(--zbc-muted); }

body.zbc-home .zbc-home__perk { display: flex; align-items: center; gap: var(--zbc-s3); max-width: 760px; margin: var(--zbc-s5) auto 0; padding: var(--zbc-s3) var(--zbc-s4); border: 1px solid var(--zbc-line); border-radius: var(--zbc-pill); background: linear-gradient(90deg, var(--zbc-lime-wash), var(--zbc-surface) 70%); font-size: var(--zbc-fs-sm); color: var(--zbc-text-2); }
body.zbc-home .zbc-home__perk strong { color: var(--zbc-text); }
body.zbc-home .zbc-home__perk-icon { display: inline-grid; place-items: center; width: 36px; height: 36px; flex: none; border-radius: var(--zbc-pill); background: var(--zbc-lime); color: var(--zbc-lime-ink); }
body.zbc-home .zbc-home__perk-icon .zbc-home__icon { width: 20px; height: 20px; }
@media (max-width: 600px) { body.zbc-home .zbc-home__perk { border-radius: var(--zbc-radius); align-items: flex-start; } }

/* 5. why */
body.zbc-home .zbc-home__why-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--zbc-s5); }
body.zbc-home .zbc-home__why-item { padding: 26px; border-radius: var(--zbc-radius-lg); background: var(--zbc-surface); border: 1px solid var(--zbc-line); box-shadow: var(--zbc-shadow-sm); }
body.zbc-home .zbc-home__why-item p { margin: 0; font-size: var(--zbc-fs-md); line-height: 1.55; color: var(--zbc-text-2); }
body.zbc-home .zbc-home__why-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-bottom: 14px; border-radius: 12px; background: var(--zbc-lime-wash); color: var(--zbc-lime-text); }
body.zbc-home .zbc-home__why-icon .zbc-home__icon { width: 22px; height: 22px; }

/* 6. family */
body.zbc-home .zbc-home__family { background: var(--zbc-canvas-2); }
body.zbc-home .zbc-home__family-grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
body.zbc-home .zbc-home__family-art { margin: 0; padding: 14px; border-radius: var(--zbc-radius-xl); background: #fff; box-shadow: var(--zbc-shadow-lg); transform: rotate(-1.5deg); width: min(100%, 420px); justify-self: center; }
body.zbc-home .zbc-home__family-img { display: block; width: 100%; height: auto; border-radius: var(--zbc-radius); }
body.zbc-home .zbc-home__family-copy p { margin: var(--zbc-s3) 0 0; font-size: var(--zbc-fs-lg); line-height: 1.55; color: var(--zbc-text-2); }
body.zbc-home .zbc-home__family-copy .zbc-home__btn { margin-top: var(--zbc-s5); }

/* 7. shop rows — the club cards from section 4 apply through .zb-main */
body.zbc-home .zbc-home__row { padding: 0 0 clamp(32px, 5vw, 56px); }
body.zbc-home .zbc-home__row-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--zbc-s4); margin-bottom: var(--zbc-s4); }
body.zbc-home .zbc-home__family + .zbc-home__row { padding-top: clamp(48px, 7vw, 96px); }
body.zbc-home .zbc-home__shot--wide { width: 62%; }
body.zbc-home .zbc-home__row .products { margin-bottom: 0; }

/* 8. posts */
body.zbc-home .zbc-home__posts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--zbc-s5); }
body.zbc-home .zbc-home__post a { display: grid; gap: 8px; height: 100%; padding: 22px; border-radius: var(--zbc-radius-lg); background: var(--zbc-surface); border: 1px solid var(--zbc-line); box-shadow: var(--zbc-shadow-sm); color: var(--zbc-text); transition: transform var(--zbc-dur) var(--zbc-ease), box-shadow var(--zbc-dur) var(--zbc-ease); }
body.zbc-home .zbc-home__post a:hover { transform: translateY(-3px); box-shadow: var(--zbc-shadow); }
body.zbc-home .zbc-home__post strong { font-size: var(--zbc-fs-lg); font-weight: 800; line-height: 1.3; }
body.zbc-home .zbc-home__post-cat { width: max-content; padding: 3px 9px; border-radius: var(--zbc-pill); background: var(--zbc-lime); color: var(--zbc-lime-ink); font-size: var(--zbc-fs-xs); font-weight: 800; letter-spacing: var(--zbc-tracking-caps); text-transform: uppercase; }
body.zbc-home .zbc-home__post-excerpt { font-size: var(--zbc-fs-sm); line-height: 1.5; color: var(--zbc-text-2); }

/* 9. faq */
body.zbc-home .zbc-home__faq { background: var(--zbc-canvas-2); }
body.zbc-home .zbc-home__faq-grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
body.zbc-home .zbc-home__faq-list { display: grid; gap: 10px; }
body.zbc-home .zbc-home__q { border: 1px solid var(--zbc-line); border-radius: var(--zbc-radius); background: var(--zbc-surface); padding: 0 18px; }
body.zbc-home .zbc-home__q summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 0; font-weight: 800; font-size: var(--zbc-fs-md); color: var(--zbc-text); }
body.zbc-home .zbc-home__q summary::-webkit-details-marker { display: none; }
body.zbc-home .zbc-home__q summary::after { content: "+"; flex: none; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--zbc-surface-2); color: var(--zbc-text); font-weight: 800; transition: transform var(--zbc-dur) var(--zbc-ease); }
body.zbc-home .zbc-home__q[open] summary::after { transform: rotate(45deg); background: var(--zbc-lime); color: var(--zbc-lime-ink); }
body.zbc-home .zbc-home__q p { margin: 0; padding: 0 0 18px; font-size: var(--zbc-fs-md); line-height: 1.55; color: var(--zbc-text-2); }

/* 10. closing */
body.zbc-home .zbc-home__close { padding-bottom: clamp(32px, 5vw, 56px); }
body.zbc-home .zbc-home__close-card { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr); gap: var(--zbc-s5); align-items: center; padding: clamp(28px, 4vw, 56px); border-radius: var(--zbc-radius-xl); background: radial-gradient(120% 140% at 100% 0%, rgba(200, 255, 90, 0.22), transparent 55%), var(--zbc-text); color: #fff; }
body.zbc-home .zbc-home__close-card .zbc-home__lead { margin-bottom: 0; }
body.zbc-home .zbc-home__close-actions { display: grid; gap: 10px; justify-items: stretch; }
body.zbc-home .zbc-home__btn--ghost-light { border-color: rgba(255, 255, 255, 0.28); }
body.zbc-home .zbc-home__disclaimer { margin: var(--zbc-s5) auto 0; font-size: var(--zbc-fs-xs); color: var(--zbc-muted); text-align: center; }

/* the steaming button: vapor (the club's smoke textures) rises off the lime "Build my box" button */
body.zbc-home .zbc-home__btn--big { min-height: 64px; padding: 0 40px; font-size: 1.125rem; }
body.zbc-home .zbc-home__btn--steam { position: relative; isolation: isolate; overflow: visible; }
body.zbc-home .zbc-home__btn-label { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 8px; }
body.zbc-home .zbc-home__steam { position: absolute; left: 6%; right: 6%; bottom: 40%; height: 180px; pointer-events: none; z-index: 1; }
body.zbc-home .zbc-home__steam i {
  position: absolute;
  bottom: 0;
  width: 150px;
  height: 96px;
  margin-left: -75px;
  background: url("img/smoke-1.webp") center / contain no-repeat;
  opacity: 0;
  transform: translate3d(0, 24px, 0) scale(0.45);
  will-change: transform, opacity;
  animation: zbc-home-steam 3.8s ease-out infinite;
}
body.zbc-home .zbc-home__steam i:nth-child(1) { left: 22%; animation-delay: 0s; }
body.zbc-home .zbc-home__steam i:nth-child(2) { left: 48%; background-image: url("img/smoke-2.webp"); animation-delay: 1s; animation-duration: 4.4s; }
body.zbc-home .zbc-home__steam i:nth-child(3) { left: 72%; background-image: url("img/smoke-3.webp"); animation-delay: 2.1s; animation-duration: 4s; }
body.zbc-home .zbc-home__steam i:nth-child(4) { left: 36%; background-image: url("img/smoke-2.webp"); animation-delay: 3s; animation-duration: 4.6s; transform: translate3d(0, 24px, 0) scale(0.35) scaleX(-1); }
@keyframes zbc-home-steam {
  0% { opacity: 0; transform: translate3d(0, 26px, 0) scale(0.55); }
  18% { opacity: 0.78; }
  60% { opacity: 0.42; }
  100% { opacity: 0; transform: translate3d(18px, -140px, 0) scale(1.5) rotate(9deg); }
}
body.zbc-home .zbc-home__btn--steam:hover .zbc-home__steam i,
body.zbc-home .zbc-home__btn--steam:focus-visible .zbc-home__steam i { animation-duration: 2.4s; }
body.zbc-home .zbc-home__btn--steam:hover .zbc-home__steam i:nth-child(2),
body.zbc-home .zbc-home__btn--steam:hover .zbc-home__steam i:nth-child(3),
body.zbc-home .zbc-home__btn--steam:hover .zbc-home__steam i:nth-child(4) { animation-duration: 2.8s; }

/* the ink call-to-action bands between sections */
body.zbc-home .zbc-home__cta { padding: 0 0 clamp(40px, 6vw, 80px); }
body.zbc-home .zbc-home__how .zbc-home__cta { padding: clamp(28px, 4vw, 56px) 0 0; }
body.zbc-home .zbc-home__cta-card {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);
  gap: var(--zbc-s5) var(--zbc-s6);
  align-items: center;
  padding: clamp(24px, 3.5vw, 44px) clamp(24px, 4vw, 52px);
  border-radius: var(--zbc-radius-xl);
  background: radial-gradient(120% 140% at 100% 0%, rgba(200, 255, 90, 0.22), transparent 55%), var(--zbc-text);
  color: #fff;
  box-shadow: var(--zbc-shadow-lg);
}
body.zbc-home .zbc-home__cta-copy .zbc-home__eyebrow { margin-bottom: 8px; }
body.zbc-home .zbc-home__cta-line { margin: 0; font-size: clamp(1.25rem, 1.4vw + 0.8rem, 1.75rem); font-weight: 800; line-height: 1.2; letter-spacing: -0.02em; color: #fff; }
body.zbc-home .zbc-home__cta-note { margin: 10px 0 0; font-size: var(--zbc-fs-sm); color: rgba(242, 245, 240, 0.72); }
body.zbc-home .zbc-home__cta-action { display: flex; justify-content: flex-end; }
body.zbc-home .zbc-home__personal + .zbc-home__cta { background: var(--zbc-text); padding-bottom: 0; }
body.zbc-home .zbc-home__personal + .zbc-home__cta .zbc-home__cta-card { background: radial-gradient(120% 140% at 100% 0%, rgba(200, 255, 90, 0.3), transparent 55%), #1c261e; border: 1px solid rgba(255, 255, 255, 0.14); transform: translateY(50%); }
body.zbc-home .zbc-home__personal + .zbc-home__cta + .zbc-home__boxes { padding-top: clamp(96px, 12vw, 160px); }

/* motion + phones */
@media (prefers-reduced-motion: reduce) {
  body.zbc-home .zbc-home__float { animation: none; }
  body.zbc-home .zbc-home__steam { display: none; }
  body.zbc-home .zbc-home__btn, body.zbc-home .zbc-home__tile, body.zbc-home .zbc-home__plan, body.zbc-home .zbc-home__post a { transition: none; }
}
@media (max-width: 980px) {
  body.zbc-home .zbc-home__hero-grid { grid-template-columns: 1fr; }
  body.zbc-home .zbc-home__hero-art { min-height: 0; margin-top: var(--zbc-s4); }
  body.zbc-home .zbc-home__hero-figure { transform: none; width: min(100%, 420px); }
  body.zbc-home .zbc-home__float--pick { left: 0; bottom: -4%; }
  body.zbc-home .zbc-home__float--swap { right: 0; top: -4%; }
  body.zbc-home .zbc-home__chapter { grid-template-columns: 1fr; gap: var(--zbc-s5); }
  body.zbc-home .zbc-home__chapter--flip .zbc-home__chapter-copy { order: 1; }
  body.zbc-home .zbc-home__chapter--flip .zbc-home__chapter-media { order: 2; }
  body.zbc-home .zbc-home__tiles, body.zbc-home .zbc-home__plans, body.zbc-home .zbc-home__why-grid, body.zbc-home .zbc-home__posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.zbc-home .zbc-home__family-grid, body.zbc-home .zbc-home__faq-grid, body.zbc-home .zbc-home__close-card { grid-template-columns: 1fr; }
  body.zbc-home .zbc-home__close-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.zbc-home .zbc-home__cta-card { grid-template-columns: 1fr; }
  body.zbc-home .zbc-home__cta-action { justify-content: flex-start; }
}
@media (max-width: 600px) {
  body.zbc-home .zbc-home__proof { grid-template-columns: 1fr; }
  body.zbc-home .zbc-home__tiles, body.zbc-home .zbc-home__plans, body.zbc-home .zbc-home__why-grid, body.zbc-home .zbc-home__posts { grid-template-columns: 1fr; }
  body.zbc-home .zbc-home__shot--main { width: 100%; }
  body.zbc-home .zbc-home__shot--side, body.zbc-home .zbc-home__shot--tall { position: static; width: 100%; margin-top: var(--zbc-s3); transform: none; }
  body.zbc-home .zbc-home__chapter-media:has(.zbc-home__shot--side) { padding-bottom: 0; }
  body.zbc-home .zbc-home__float { position: static; max-width: none; margin-top: var(--zbc-s3); animation: none; backdrop-filter: none; background: #fff; }
  body.zbc-home .zbc-home__chapter-media--art { flex-direction: column; align-items: stretch; }
  body.zbc-home .zbc-home__art-card { width: 100%; }
  body.zbc-home .zbc-home__hero-figure { padding: 12px; }
  body.zbc-home .zbc-home__close-actions { grid-template-columns: 1fr; }
  body.zbc-home .zbc-home__btn { width: 100%; }
  body.zbc-home .zbc-home__actions .zbc-home__btn { width: auto; flex: 1 1 auto; }
  body.zbc-home .zbc-home__cta-action .zbc-home__btn { width: 100%; }
  body.zbc-home .zbc-home__personal + .zbc-home__cta .zbc-home__cta-card { transform: none; }
  body.zbc-home .zbc-home__personal + .zbc-home__cta { padding-bottom: clamp(40px, 6vw, 80px); }
  body.zbc-home .zbc-home__personal + .zbc-home__cta + .zbc-home__boxes { padding-top: clamp(48px, 7vw, 96px); }
  body.zbc-home .zbc-home__row-head { flex-direction: column; align-items: flex-start; gap: 4px; }
}
