/* =====================================================================
   HIGH TECH HEALTH — CATALOGUE: SHOP HUB, CATEGORY, PRODUCT (hth-catalog.css)
   ---------------------------------------------------------------------
   Enqueued by inc/commerce/catalog.php only on those pages, only while
   the catalogue is on, after hth-ds.css. Every colour, face, radius and
   curve is a token from hth-ds.css. Scope: body.hth-catalog.

   Markup is ours (inc/commerce/templates/catalog/), except the add-to-cart
   form, notices and the variation picker, which are WooCommerce's and
   carry WooCommerce's and Jevelin's CSS. §9 restates the decisions above
   with !important for the properties Jevelin forces, like §16 of
   hth-commerce.css. If a rule above changes, change its twin in §9.
   ===================================================================== */


/* =====================================================================
   1. THE PAGE
   ===================================================================== */
body.hth-catalog { background: var(--hth-sand); }
body.hth-catalog #wrapper > .content-container { padding-top: 0; }

body.hth-catalog .hth-cat {
  color: var(--hth-body);
  font-family: var(--hth-f-body);
  padding: var(--hth-7) var(--hth-gut) var(--hth-9);
}
body.hth-catalog .hth-cat *,
body.hth-catalog .hth-cat *::before,
body.hth-catalog .hth-cat *::after { box-sizing: border-box; }
body.hth-catalog .hth-cat__wrap { max-width: 1240px; margin: 0 auto; container-type: inline-size; }

body.hth-catalog .hth-cat :where(h1, h2, h3, p, ul, ol, dl, dd, figure) { margin: 0; }


/* =====================================================================
   2. PAGE HEADING + CATEGORY LINKS (hub and category)
   ===================================================================== */
body.hth-catalog .hth-cat__head { margin-bottom: var(--hth-7); }
body.hth-catalog .hth-cat__up { display: inline-block; text-decoration: none; }
body.hth-catalog .hth-cat__up:hover { color: var(--hth-head); }
body.hth-catalog .hth-cat__title { margin-bottom: var(--hth-4); }
body.hth-catalog .hth-cat__lead { max-width: 56ch; }

body.hth-catalog .hth-cat-nav { margin-top: var(--hth-6); }
body.hth-catalog .hth-cat-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--hth-2); }
body.hth-catalog .hth-cat-nav li { margin: 0; padding: 0; }
body.hth-catalog .hth-cat-nav li::before { display: none; }
body.hth-catalog .hth-cat-nav__link {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px; border: 1px solid var(--hth-rule); border-radius: var(--hth-r-pill);
  font-size: var(--hth-t-s); font-weight: 500; line-height: 1.2; color: var(--hth-head); text-decoration: none;
  background: transparent;
}
body.hth-catalog .hth-cat-nav__link:hover { background: var(--hth-shell); border-color: var(--hth-shell); }
body.hth-catalog .hth-cat-nav__link.is-on { background: var(--hth-ink); border-color: var(--hth-ink); color: #fff; }
body.hth-catalog .hth-cat-nav__link--out { border-color: transparent; color: var(--hth-accent); }
body.hth-catalog .hth-cat-nav__link--out:hover { background: transparent; border-color: transparent; color: var(--hth-head); }


/* =====================================================================
   3. HUB SECTIONS
   ===================================================================== */
body.hth-catalog .hth-cat__sec { padding-top: var(--hth-7); margin-top: var(--hth-7); border-top: 1px solid var(--hth-rule); scroll-margin-top: calc(var(--hth-hdr-bottom, 110px) + var(--hth-4)); }
body.hth-catalog .hth-cat__head + .hth-cat__sec { margin-top: 0; }
body.hth-catalog .hth-cat__sechead {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; column-gap: var(--hth-5); row-gap: var(--hth-2);
  margin-bottom: var(--hth-5);
}
body.hth-catalog .hth-cat__sechead .hth-p { grid-column: 1; max-width: 60ch; color: var(--hth-label); }
body.hth-catalog .hth-cat__all {
  grid-column: 2; grid-row: 1; align-self: end;
  font-size: var(--hth-t-s); font-weight: 500; color: var(--hth-head);
  text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; text-decoration-color: var(--hth-rule);
}
body.hth-catalog .hth-cat__all:hover { text-decoration-color: var(--hth-head); }
body.hth-catalog .hth-cat__none { margin: var(--hth-6) 0; color: var(--hth-label); }


/* =====================================================================
   4. THE PRODUCT CARD — hub, category, "You may also like"
   ---------------------------------------------------------------------
   The name is the card's link; its ::after stretches over the whole
   card, and Add sits above it (z-index), so one tab stop opens the
   product and a second adds it. The photo is multiplied onto white so
   white-background product shots lose their box.
   ===================================================================== */
body.hth-catalog .hth-cat-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)); gap: var(--hth-4);
}
body.hth-catalog .hth-cat-card {
  position: relative; display: flex; flex-direction: column; gap: var(--hth-2);
  margin: 0; padding: var(--hth-3) var(--hth-3) var(--hth-4);
  background: var(--hth-shell); border-radius: var(--hth-r);
  transition: background var(--hth-fast) var(--hth-expo), box-shadow var(--hth-fast) var(--hth-expo);
}
body.hth-catalog .hth-cat-card::before { display: none; }
body.hth-catalog .hth-cat-card:hover { background: var(--hth-white); box-shadow: var(--hth-shadow); }
body.hth-catalog .hth-cat-card__img {
  display: grid; place-items: center; aspect-ratio: 1; margin-bottom: var(--hth-2);
  background: var(--hth-white); border-radius: 8px; overflow: hidden;
}
body.hth-catalog .hth-cat-card__img img {
  display: block; width: 100%; height: 100%; margin: 0; padding: 8%;
  object-fit: contain; mix-blend-mode: multiply;
}
body.hth-catalog .hth-cat-card__name {
  padding: 0 var(--hth-1);
  font-family: var(--hth-f-display); font-weight: 400; font-size: 19px; letter-spacing: var(--hth-tr-sm); line-height: 1.25;
  color: var(--hth-head); text-decoration: none;
}
body.hth-catalog .hth-cat-card__name::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
body.hth-catalog .hth-cat-card__name:focus-visible { outline: none; }
body.hth-catalog .hth-cat-card:has(.hth-cat-card__name:focus-visible) { outline: 2px solid var(--hth-azure); outline-offset: 3px; }
body.hth-catalog .hth-cat-card__blurb { padding: 0 var(--hth-1); font-size: 13.5px; line-height: 1.5; color: var(--hth-label); }
body.hth-catalog .hth-cat-card__foot {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--hth-2);
  margin-top: auto; padding: var(--hth-2) var(--hth-1) 0;
}
body.hth-catalog .hth-cat-card__price { font-size: 15px; font-weight: 500; color: var(--hth-head); }
body.hth-catalog .hth-cat-card__price del { color: var(--hth-label); font-weight: 400; margin-right: 4px; }
body.hth-catalog .hth-cat-card__price ins { text-decoration: none; }
body.hth-catalog .hth-cat-card__add {
  position: relative; z-index: 1;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 16px; border: 1px solid var(--hth-head); border-radius: var(--hth-r-pill);
  font-size: 13px; font-weight: 500; line-height: 1.2; color: var(--hth-head); text-decoration: none; background: transparent;
}
body.hth-catalog .hth-cat-card__add:hover { background: var(--hth-ink); border-color: var(--hth-ink); color: #fff; }
body.hth-catalog .hth-cat-card__add.loading { opacity: .55; pointer-events: none; }
body.hth-catalog .hth-cat-card__add.added { background: var(--hth-ink); border-color: var(--hth-ink); color: #fff; }
/* WooCommerce appends "View cart" after an AJAX add. */
body.hth-catalog .hth-cat-card .added_to_cart {
  position: relative; z-index: 1; flex-basis: 100%; text-align: right;
  font-size: 13px; font-weight: 500; color: var(--hth-accent); text-decoration: underline; text-underline-offset: 3px;
}

@container (max-width: 560px) {
  body.hth-catalog .hth-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--hth-3); }
  body.hth-catalog .hth-cat-card { padding: var(--hth-2) var(--hth-2) var(--hth-3); }
  body.hth-catalog .hth-cat-card__name { font-size: 16px; }
  body.hth-catalog .hth-cat-card__blurb { display: none; }
  body.hth-catalog .hth-cat-card__foot { flex-direction: column; align-items: flex-start; }
}


/* =====================================================================
   5. PRODUCT PAGE — crumbs, gallery, the buying column
   ===================================================================== */
body.hth-catalog .hth-pdp__crumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: var(--hth-5); font-size: var(--hth-t-s); color: var(--hth-label); }
body.hth-catalog .hth-pdp__crumbs a { color: var(--hth-label); text-decoration: none; }
body.hth-catalog .hth-pdp__crumbs a:hover { color: var(--hth-head); text-decoration: underline; text-underline-offset: 3px; }

body.hth-catalog .hth-pdp__grid {
  display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 80px); align-items: start;
}
body.hth-catalog .hth-pdp__media { position: sticky; top: calc(var(--hth-hdr-bottom, 110px) + var(--hth-5)); min-width: 0; }
body.hth-catalog .hth-pdp__main {
  display: grid; place-items: center; aspect-ratio: 1;
  background: var(--hth-white); border-radius: var(--hth-r-lg); overflow: hidden;
}
body.hth-catalog .hth-pdp__main img { display: block; width: 100%; height: 100%; margin: 0; padding: 6%; object-fit: contain; mix-blend-mode: multiply; }
body.hth-catalog .hth-pdp__thumbs { list-style: none; margin: var(--hth-3) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--hth-2); }
body.hth-catalog .hth-pdp__thumbs li { margin: 0; padding: 0; }
body.hth-catalog .hth-pdp__thumbs li::before { display: none; }
body.hth-catalog .hth-pdp__thumb {
  display: block; width: 72px; height: 72px; padding: 6px; margin: 0;
  background: var(--hth-white); border: 1px solid transparent; border-radius: 8px; cursor: pointer;
}
body.hth-catalog .hth-pdp__thumb img { display: block; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
body.hth-catalog .hth-pdp__thumb:hover { border-color: var(--hth-rule); }
body.hth-catalog .hth-pdp__thumb.is-on { border-color: var(--hth-head); }

body.hth-catalog .hth-pdp__info { min-width: 0; padding-top: var(--hth-2); }
body.hth-catalog .hth-pdp__info .product_title { margin-bottom: var(--hth-3); }
body.hth-catalog .hth-pdp__price { margin-bottom: var(--hth-5); font-size: 20px; font-weight: 500; color: var(--hth-head); }
body.hth-catalog .hth-pdp__price del { color: var(--hth-label); font-weight: 400; margin-right: 6px; }
body.hth-catalog .hth-pdp__price ins { text-decoration: none; }
body.hth-catalog .hth-pdp__short { margin-bottom: var(--hth-6); color: var(--hth-body); }

/* The buy block: stock line, then [qty][Add to cart] on one row. */
body.hth-catalog .hth-pdp__buy { padding: var(--hth-5) 0; border-top: 1px solid var(--hth-rule); border-bottom: 1px solid var(--hth-rule); }
body.hth-catalog .hth-pdp__buy .stock { margin: 0 0 var(--hth-3); font-size: 13.5px; font-weight: 500; color: var(--hth-label); }
body.hth-catalog .hth-pdp__buy .stock.in-stock::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: #3E8E5A; vertical-align: 1px; }
body.hth-catalog .hth-pdp__buy .stock.out-of-stock { color: #B4432A; }
body.hth-catalog .hth-pdp__buy form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: var(--hth-3); margin: 0; }
body.hth-catalog .hth-pdp__buy form.variations_form { display: block; }
body.hth-catalog .hth-pdp__buy .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: center; gap: var(--hth-3); }

body.hth-catalog .hth-pdp__buy .quantity {
  display: inline-flex; align-items: center; margin: 0;
  border: 1px solid var(--hth-rule); border-radius: var(--hth-r-pill); background: var(--hth-white); overflow: hidden;
}
body.hth-catalog .hth-pdp__buy .quantity.hidden { display: none; }
body.hth-catalog .hth-pdp__buy input.qty {
  width: 48px; height: 52px; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none;
  font: 500 15px/52px var(--hth-f-body); color: var(--hth-head); text-align: center;
  -moz-appearance: textfield; appearance: textfield;
}
body.hth-catalog .hth-pdp__buy input.qty::-webkit-outer-spin-button,
body.hth-catalog .hth-pdp__buy input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
body.hth-catalog .hth-cat-qty__btn {
  width: 40px; height: 52px; margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer;
  color: var(--hth-head); font: 400 19px/52px var(--hth-f-body); text-align: center;
}
body.hth-catalog .hth-cat-qty__btn:hover { background: var(--hth-sand); }
body.hth-catalog .hth-cat-qty__btn:disabled { color: var(--hth-sand-deep); background: transparent; cursor: default; }

body.hth-catalog .hth-pdp__buy .single_add_to_cart_button {
  flex: 1 1 200px; display: inline-flex; align-items: center; justify-content: center;
  height: 54px; margin: 0; padding: 0 26px;
  border: 1px solid var(--hth-ink); border-radius: var(--hth-r);
  background: var(--hth-ink); color: #fff; box-shadow: none;
  font: 500 16px/1 var(--hth-f-body); letter-spacing: 0; text-transform: none; cursor: pointer;
}
body.hth-catalog .hth-pdp__buy .single_add_to_cart_button:hover { background: #2E3E4D; border-color: #2E3E4D; }
body.hth-catalog .hth-pdp__buy .single_add_to_cart_button.disabled,
body.hth-catalog .hth-pdp__buy .single_add_to_cart_button:disabled { opacity: .4; cursor: not-allowed; }

/* Variation picker: WooCommerce's table, as a stack of labelled selects. */
body.hth-catalog .hth-pdp__buy table.variations { width: 100%; margin: 0 0 var(--hth-4); border: 0; border-collapse: collapse; background: none; }
body.hth-catalog .hth-pdp__buy table.variations tr { display: block; margin-bottom: var(--hth-3); }
body.hth-catalog .hth-pdp__buy table.variations th,
body.hth-catalog .hth-pdp__buy table.variations td { display: block; padding: 0; border: 0; background: none; text-align: left; }
body.hth-catalog .hth-pdp__buy table.variations th label { display: block; margin-bottom: 6px; font-size: 13.5px; font-weight: 500; color: var(--hth-head); }
body.hth-catalog .hth-pdp__buy table.variations select {
  width: 100%; min-height: 50px; padding: 12px 40px 12px 14px;
  border: 1px solid var(--hth-rule); border-radius: var(--hth-r); background-color: var(--hth-white);
  font: 400 15px/1.4 var(--hth-f-body); color: var(--hth-head);
}
body.hth-catalog .hth-pdp__buy table.variations select:focus { border-color: var(--hth-azure); outline: none; }
body.hth-catalog .hth-pdp__buy .reset_variations { display: inline-block; margin-top: 8px; font-size: 13px; color: var(--hth-accent); }
body.hth-catalog .hth-pdp__buy .single_variation { margin-bottom: var(--hth-3); }
body.hth-catalog .hth-pdp__buy .woocommerce-variation-price .price { font-size: 18px; font-weight: 500; color: var(--hth-head); }

body.hth-catalog .hth-pdp__assure { list-style: none; margin: var(--hth-5) 0 0; padding: 0; display: grid; gap: var(--hth-2); font-size: 13.5px; color: var(--hth-body); }
body.hth-catalog .hth-pdp__assure li { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 0; line-height: 1.45; }
body.hth-catalog .hth-pdp__assure li::before { display: none; }
body.hth-catalog .hth-pdp__assure .hth-co-ic { color: var(--hth-azure); margin-top: 2px; flex: none; }

/* hth_co_help() — the phone line (shared markup with the cart). */
body.hth-catalog .hth-cat .hth-co-help {
  display: flex; align-items: center; gap: var(--hth-4);
  margin-top: var(--hth-6); font-size: 13.5px; line-height: 1.45; color: var(--hth-label);
}
body.hth-catalog .hth-cat .hth-co-help__ic { width: 40px; height: 40px; flex: none; border-radius: 50%; background: var(--hth-shell); display: grid; place-items: center; color: var(--hth-head); }
body.hth-catalog .hth-cat .hth-co-help a { color: var(--hth-head); font-weight: 500; text-decoration: none; }
body.hth-catalog .hth-cat .hth-co-ic { flex: none; vertical-align: -2px; }
body.hth-catalog .hth-cat--hub .hth-cat__wrap > .hth-co-help,
body.hth-catalog .hth-cat--category .hth-cat__wrap > .hth-co-help { margin-top: var(--hth-8); justify-content: center; }


/* =====================================================================
   6. PRODUCT PAGE — Details, You may also like
   ===================================================================== */
body.hth-catalog .hth-pdp__about,
body.hth-catalog .hth-pdp__related { margin-top: var(--hth-9); padding-top: var(--hth-7); border-top: 1px solid var(--hth-rule); }
body.hth-catalog .hth-pdp__about h2,
body.hth-catalog .hth-pdp__related h2 { margin-bottom: var(--hth-5); }
body.hth-catalog .hth-pdp__about-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
body.hth-catalog .hth-pdp__about-grid > :only-child { grid-column: 1 / -1; max-width: 72ch; }
body.hth-catalog .hth-pdp__desc img { max-width: 100%; height: auto; border-radius: var(--hth-r); }
body.hth-catalog .hth-pdp__specs { margin: 0; border-top: 1px solid var(--hth-rule); }
body.hth-catalog .hth-pdp__specs > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: var(--hth-4); padding: 12px 0; border-bottom: 1px solid var(--hth-rule); }
body.hth-catalog .hth-pdp__specs dt { font-size: 13.5px; color: var(--hth-label); }
body.hth-catalog .hth-pdp__specs dd { margin: 0; font-size: 14px; color: var(--hth-head); }


/* =====================================================================
   7. NOTICES — Jevelin prints them as .sh-alert boxes
   ===================================================================== */
body.hth-catalog .hth-cat__notices:empty { display: none; }
body.hth-catalog .hth-cat__notices { margin-bottom: var(--hth-5); }


/* =====================================================================
   8. NARROW
   ===================================================================== */
@container (max-width: 860px) {
  body.hth-catalog .hth-pdp__grid { grid-template-columns: minmax(0, 1fr); gap: var(--hth-6); }
  body.hth-catalog .hth-pdp__media { position: static; }
  body.hth-catalog .hth-pdp__about-grid { grid-template-columns: minmax(0, 1fr); }
  body.hth-catalog .hth-cat__sechead { grid-template-columns: minmax(0, 1fr); }
  body.hth-catalog .hth-cat__all { grid-column: 1; grid-row: auto; justify-self: start; }
}
@media (max-width: 640px) {
  body.hth-catalog .hth-cat { padding-top: var(--hth-6); }
  body.hth-catalog .hth-cat__head { margin-bottom: var(--hth-6); }
  body.hth-catalog .hth-pdp__about, body.hth-catalog .hth-pdp__related { margin-top: var(--hth-8); }
}
@media (prefers-reduced-motion: reduce) {
  body.hth-catalog .hth-cat * { transition: none !important; }
}


/* =====================================================================
   9. JEVELIN ARMOUR
   ---------------------------------------------------------------------
   Same decisions as above, restated with !important for exactly the
   properties Jevelin (and woocommerce.css, which floats the quantity and
   the button) force on WooCommerce markup. Measured on the live product
   and category pages; see CATALOG-DESIGN.md.
   ===================================================================== */
body.hth-catalog .hth-cat p { line-height: 1.6 !important; }
body.hth-catalog .hth-cat .hth-lead { line-height: 1.62 !important; }
body.hth-catalog .hth-cat .hth-cat__title,
body.hth-catalog .hth-cat h1.product_title { line-height: 1.08 !important; text-transform: none !important; }
body.hth-catalog .hth-cat h2.hth-md { line-height: 1.12 !important; text-transform: none !important; }
body.hth-catalog .hth-cat .hth-pdp__price,
body.hth-catalog .hth-cat .hth-pdp__price .amount,
body.hth-catalog .hth-cat .hth-cat-card__price,
body.hth-catalog .hth-cat .hth-cat-card__price .amount,
body.hth-catalog .hth-cat .woocommerce-variation-price .amount { color: var(--hth-head) !important; }
body.hth-catalog .hth-cat .hth-pdp__price { font-size: 20px !important; font-weight: 500 !important; }

body.hth-catalog .hth-cat .screen-reader-text {
  position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important;
  overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; border: 0 !important;
}

body.hth-catalog .hth-pdp__buy .quantity {
  display: inline-flex !important; float: none !important; width: auto !important; margin: 0 !important;
  border: 1px solid var(--hth-rule) !important; border-radius: var(--hth-r-pill) !important; background: var(--hth-white) !important;
}
body.hth-catalog .hth-pdp__buy .quantity.hidden { display: none !important; }
body.hth-catalog .hth-pdp__buy input.qty {
  width: 48px !important; height: 52px !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important;
  border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important;
  font: 500 15px/52px var(--hth-f-body) !important; color: var(--hth-head) !important; text-align: center !important;
}
body.hth-catalog .hth-pdp__buy .single_add_to_cart_button,
body.hth-catalog .hth-pdp__buy .single_add_to_cart_button.button.alt {
  float: none !important; height: 54px !important; margin: 0 !important; padding: 0 26px !important;
  border: 1px solid var(--hth-ink) !important; border-radius: var(--hth-r) !important;
  background: var(--hth-ink) !important; color: #fff !important; box-shadow: none !important;
  font: 500 16px/1 var(--hth-f-body) !important; letter-spacing: 0 !important; text-transform: none !important;
}
body.hth-catalog .hth-pdp__buy .single_add_to_cart_button:hover { background: #2E3E4D !important; border-color: #2E3E4D !important; }
body.hth-catalog .hth-pdp__buy table.variations,
body.hth-catalog .hth-pdp__buy table.variations th,
body.hth-catalog .hth-pdp__buy table.variations td { padding: 0 !important; border: 0 !important; background: none !important; }
body.hth-catalog .hth-pdp__buy table.variations select {
  height: auto !important; min-height: 50px !important; line-height: 1.4 !important; padding: 12px 40px 12px 14px !important;
  border: 1px solid var(--hth-rule) !important; border-radius: var(--hth-r) !important; background-color: var(--hth-white) !important;
}

body.hth-catalog .hth-cat a.hth-cat-card__add,
body.hth-catalog .hth-cat a.hth-cat-card__add.add_to_cart_button {
  padding: 8px 16px !important; margin: 0 !important; border: 1px solid var(--hth-head) !important; border-radius: var(--hth-r-pill) !important;
  background: transparent !important; color: var(--hth-head) !important; box-shadow: none !important;
  font: 500 13px/1.2 var(--hth-f-body) !important; letter-spacing: 0 !important; text-transform: none !important;
}
body.hth-catalog .hth-cat a.hth-cat-card__add:hover,
body.hth-catalog .hth-cat a.hth-cat-card__add.added { background: var(--hth-ink) !important; border-color: var(--hth-ink) !important; color: #fff !important; }
body.hth-catalog .hth-cat a.hth-cat-card__add::after { display: none !important; }  /* WooCommerce's loading/added icons */

/* Notices — same boxes as the cart (hth-commerce.css §16). */
body.hth-catalog .hth-cat .sh-alert {
  margin: 0 0 var(--hth-3) !important; padding: 14px 18px !important;
  background: var(--hth-white) !important; color: var(--hth-head) !important;
  border: 1px solid var(--hth-rule) !important; border-left: 3px solid var(--hth-azure) !important;
  border-radius: var(--hth-r) !important; box-shadow: none !important;
}
body.hth-catalog .hth-cat .sh-alert.sh-alert-error,
body.hth-catalog .hth-cat .sh-alert.sh-alert-danger { border-left-color: #B4432A !important; }
body.hth-catalog .hth-cat .sh-alert .sh-alert-data-icon { display: none !important; }
body.hth-catalog .hth-cat .sh-alert .sh-alert-title,
body.hth-catalog .hth-cat .sh-alert .sh-alert-title * {
  margin: 0 !important; padding: 0 !important;
  font: 400 14.5px/1.5 var(--hth-f-body) !important; color: var(--hth-head) !important;
  text-transform: none !important; letter-spacing: 0 !important;
}
body.hth-catalog .hth-cat .sh-alert a { color: var(--hth-accent) !important; text-decoration: underline !important; text-underline-offset: 3px; }
body.hth-catalog .hth-cat .sh-alert .button { float: right; background: none !important; border: 0 !important; padding: 0 !important; color: var(--hth-accent) !important; }

/* ---- measured live, 2026-10-09 (Ionizer Plus® Tune-up) ----------------
   Jevelin: `.woocommerce div.product form.cart button` sets EVERY button in
   the form to #0476bf, float right, 50px line-height, 0 25px padding and
   rounded corners, all !important, and `.sh-jevelin-style3.woocommerce div
   .product form.cart button` (0,4,2) restates the radius. Our − / + are
   buttons in that form, so they came out as two blue pills. Selector below
   is (0,5,3) so it outranks both. */
body.hth-catalog .hth-pdp__buy form.cart .quantity button.hth-cat-qty__btn {
  float: none !important; width: 40px !important; min-width: 0 !important; height: 52px !important;
  margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
  background: transparent !important; color: var(--hth-head) !important; box-shadow: none !important;
  font: 400 19px/52px var(--hth-f-body) !important; text-transform: none !important; letter-spacing: 0 !important;
}
body.hth-catalog .hth-pdp__buy form.cart .quantity button.hth-cat-qty__btn:hover { background: var(--hth-sand) !important; }
body.hth-catalog .hth-pdp__buy form.cart .quantity button.hth-cat-qty__btn:disabled { background: transparent !important; color: var(--hth-sand-deep) !important; }
/* `.woocommerce .product form.cart .button::before` — a simple-line-icons cart glyph in front of "Add to cart". */
body.hth-catalog .hth-pdp__buy form.cart .single_add_to_cart_button::before,
body.hth-catalog .hth-pdp__buy form.cart .single_add_to_cart_button::after { display: none !important; content: none !important; }
/* `.woocommerce div.product .price` (0,3,1) zeroes the margin and sets a 32px
   min-height; `.sh-jevelin-style3.woocommerce div.product p.price` (0,4,2) sets
   color: inherit !important. (0,5,3) here. */
body.hth-catalog .hth-cat div.product.hth-pdp p.hth-pdp__price {
  margin: 0 0 var(--hth-5) !important; min-height: 0 !important; line-height: 1.3 !important;
  color: var(--hth-head) !important; font-weight: 500 !important;
}
/* `.woocommerce div.product p.stock`: 16px, bold, #8d8d8d. */
body.hth-catalog .hth-cat .hth-pdp__buy p.stock { font-size: 13.5px !important; font-weight: 500 !important; line-height: 1.4 !important; color: var(--hth-label) !important; }
body.hth-catalog .hth-cat .hth-pdp__buy p.stock.out-of-stock { color: #B4432A !important; }
