/**
 * BIOHACKER Storefront visual system.
 *
 * Component selectors are prefixed with bhx- so the parent theme can coexist
 * with WooCommerce and site plugins without relying on legacy ankebio3 CSS.
 */

:root {
  --bh-color-primary: #f26522;
  --bh-color-primary-hover: #da551a;
  --bh-color-ink: #1d1d1f;
  --bh-color-text: #4f555c;
  --bh-color-muted: #737980;
  --bh-color-muted-2: #aab0b7;
  --bh-color-line: #e8eaed;
  --bh-color-line-soft: #eef0f3;
  --bh-color-surface: #fff;
  --bh-color-soft: #f4f5f7;
  --bh-color-soft-2: #f7f8fa;
  --bh-color-success: #2e9e5b;
  --bh-color-success-bg: #e7f5ed;
  --bh-radius-sm: 10px;
  --bh-radius: 14px;
  --bh-radius-lg: 24px;
  --bh-shadow: 0 6px 24px rgba(24, 28, 34, 0.06);
  --bh-shadow-hover: 0 14px 36px rgba(24, 28, 34, 0.13);
  --bh-container: 1180px;
  --bh-site: 1220px;
  --bh-transition: 180ms ease;
  --bh-font: "Inter", "Golos Text", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  color-scheme: light;
  scroll-behavior: smooth;
}

body.bhx-site {
  margin: 0;
  overflow-x: hidden;
  background: #fff;
  color: var(--bh-color-ink);
  font-family: var(--bh-font);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

body.bhx-site img {
  display: block;
  max-width: 100%;
  height: auto;
}

body.bhx-site a {
  color: inherit;
  text-decoration: none;
}

body.bhx-site button,
body.bhx-site input,
body.bhx-site select,
body.bhx-site textarea {
  font: inherit;
}

body.bhx-site button,
body.bhx-site [role="button"] {
  cursor: pointer;
}

body.bhx-site :focus:not(:focus-visible) {
  outline: none;
}

body.bhx-site :focus-visible {
  outline: 2px solid var(--bh-color-primary);
  outline-offset: 3px;
}

.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.bhx-skip-link {
  position: fixed;
  z-index: 10000;
  top: 12px;
  left: 12px;
  padding: 12px 18px;
  border-radius: var(--bh-radius-sm);
  background: var(--bh-color-ink);
  color: #fff !important;
  transform: translateY(-150%);
}

.bhx-skip-link:focus {
  transform: translateY(0);
}

.bhx-site-frame {
  width: min(100%, var(--bh-site));
  min-height: 100vh;
  margin: 0 auto;
  background: var(--bh-color-surface);
}

.bhx-wrap {
  width: min(100% - 40px, var(--bh-container));
  margin-inline: auto;
}

.bhx-wrap--content {
  max-width: 860px;
}

.bhx-icon {
  width: 22px;
  height: 22px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/** Brand marks use their audited filled silhouette instead of the stroke icon language. */
.bhx-icon--brand {
  fill: currentColor;
  stroke: none;
}

.bhx-button,
body.bhx-site.woocommerce a.button,
body.bhx-site.woocommerce button.button,
body.bhx-site.woocommerce input.button,
body.bhx-site .woocommerce a.button,
body.bhx-site .woocommerce button.button,
body.bhx-site .woocommerce input.button,
body.bhx-site .wpcf7-submit,
body.bhx-site #respond input#submit {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 0 24px;
  border: 1px solid var(--bh-color-primary);
  border-radius: 11px;
  background: var(--bh-color-primary);
  color: #fff;
  font-weight: 650;
  line-height: 1.2;
  transition: background-color var(--bh-transition), border-color var(--bh-transition), box-shadow var(--bh-transition);
}

.bhx-button:hover,
body.bhx-site.woocommerce a.button:hover,
body.bhx-site.woocommerce button.button:hover,
body.bhx-site.woocommerce input.button:hover,
body.bhx-site .woocommerce a.button:hover,
body.bhx-site .woocommerce button.button:hover,
body.bhx-site .woocommerce input.button:hover,
body.bhx-site .wpcf7-submit:hover,
body.bhx-site #respond input#submit:hover {
  border-color: var(--bh-color-primary-hover);
  background: var(--bh-color-primary-hover);
  color: #fff;
  box-shadow: 0 10px 24px rgba(242, 101, 34, 0.22);
}

body.bhx-site .wpcf7-submit:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.bhx-button--secondary {
  border-color: var(--bh-color-line);
  background: var(--bh-color-soft);
  color: var(--bh-color-ink);
}

.bhx-button--secondary:hover {
  border-color: var(--bh-color-line);
  background: #e9ebee;
  color: var(--bh-color-ink);
}

.bhx-text-link {
  color: var(--bh-color-primary);
  font-weight: 650;
}

.bhx-kicker {
  margin: 0 0 14px;
  color: var(--bh-color-primary);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* Header */

.bhx-header {
  position: relative;
  z-index: 50;
  border-bottom: 1px solid var(--bh-color-line-soft);
  background: #fff;
}

.bhx-utility {
  border-bottom: 1px solid var(--bh-color-line-soft);
  background: var(--bh-color-soft-2);
  color: #626970;
  font-size: 12.5px;
}

.bhx-utility__inner {
  display: flex;
  min-height: 46px;
  align-items: center;
  gap: 24px;
}

.bhx-utility__nav {
  flex: 1;
}

.bhx-utility__menu,
.bhx-primary-nav__menu,
.bhx-catalog__menu,
.bhx-mobile-menu__links,
.bhx-footer__menu {
  padding: 0;
  margin: 0;
  list-style: none;
}

.bhx-utility__menu {
  display: flex;
  align-items: center;
  gap: 24px;
}

.bhx-utility a:hover {
  color: var(--bh-color-primary);
}

.bhx-utility__phone {
  color: var(--bh-color-ink);
  font-weight: 750;
  white-space: nowrap;
}

.bhx-header__main {
  display: flex;
  min-height: 84px;
  align-items: center;
  gap: 16px;
}

/* The compact service strip preserves every operational route without making
 * multiple messenger destinations look like duplicate telephone numbers. */
.bhx-contact-bar {
  border-top: 1px solid var(--bh-color-line-soft);
  border-bottom: 1px solid var(--bh-color-line-soft);
  background: #fff;
}

.bhx-contact-bar__inner {
  display: grid;
  min-height: 72px;
  align-items: center;
  grid-template-columns: minmax(115px, 0.75fr) minmax(165px, 1fr) minmax(220px, 1.45fr) minmax(180px, 1.1fr) auto;
  gap: 12px;
}

.bhx-contact-bar__item {
  display: grid;
  min-width: 0;
  gap: 5px;
  color: var(--bh-color-muted);
  font-size: 11px;
  line-height: 1.25;
}

.bhx-contact-bar__item > span {
  font-weight: 650;
}

.bhx-contact-bar__item strong,
.bhx-contact-bar__item a {
  overflow-wrap: anywhere;
  color: var(--bh-color-ink);
  font-size: 13px;
  font-weight: 750;
}

.bhx-contact-bar__item a:hover,
.bhx-contact-bar__telegram a:hover {
  color: var(--bh-color-primary);
}

.bhx-contact-bar__telegram {
  display: flex;
  min-width: 0;
  min-height: 48px;
  padding: 7px 10px;
  align-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 2px 10px;
  border: 1px solid #36aeea;
  border-radius: 10px;
  background: #e8f4fd;
  color: #27313a;
  font-size: 11px;
  line-height: 1.25;
}

.bhx-contact-bar__telegram > strong {
  width: 100%;
  color: #c00;
  font-size: 11px;
}

.bhx-contact-bar__telegram > a {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  gap: 5px;
  color: #087db8;
  font-weight: 750;
}

.bhx-contact-bar__telegram img {
  width: 18px;
  height: 18px;
}

.bhx-contact-bar__whatsapp a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}

.bhx-contact-bar__whatsapp img {
  width: 24px;
  height: 24px;
  flex: none;
}

.bhx-contact-bar__consultation {
  min-height: 44px;
  padding-inline: 18px;
  font-size: 13px;
  white-space: nowrap;
}

.bhx-logo {
  display: inline-flex;
  align-items: baseline;
  flex: none;
  font-size: 23px;
  font-weight: 850;
  letter-spacing: -0.04em;
  line-height: 1;
}

.bhx-logo__primary {
  color: var(--bh-color-ink);
}

.bhx-logo__accent {
  color: var(--bh-color-primary);
}

.bhx-logo__image {
  width: auto;
  max-width: 185px;
  max-height: 52px;
}

.bhx-catalog {
  position: relative;
  flex: none;
}

.bhx-catalog__toggle {
  display: flex;
  min-height: 46px;
  align-items: center;
  gap: 9px;
  padding: 0 18px;
  border: 1.5px solid var(--bh-color-primary);
  border-radius: 12px;
  background: #fff;
  color: var(--bh-color-primary);
  font-weight: 650;
}

.bhx-catalog__toggle[aria-expanded="true"],
.bhx-catalog__toggle:hover {
  background: var(--bh-color-primary);
  color: #fff;
}

.bhx-catalog__panel {
  position: absolute;
  z-index: 60;
  top: calc(100% + 12px);
  left: 0;
  width: min(720px, calc(100vw - 40px));
  max-height: min(70vh, 600px);
  padding: 18px;
  overflow: auto;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius);
  background: #fff;
  box-shadow: var(--bh-shadow-hover);
}

.bhx-catalog__panel--mega {
  width: min(900px, calc(100vw - 240px));
  min-width: 680px;
  max-height: min(72vh, 640px);
  padding: 0;
}

.bhx-catalog__mega {
  display: grid;
  min-height: 390px;
  grid-template-columns: 290px minmax(0, 1fr);
}

.bhx-catalog__tabs {
  padding: 22px;
  border-right: 1px solid var(--bh-color-line);
  background: var(--bh-color-soft-2);
}

.bhx-catalog__tabs [role="tab"] {
  display: flex;
  width: 100%;
  min-height: 52px;
  padding: 10px 14px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--bh-color-ink);
  font-size: 15px;
  font-weight: 650;
  text-align: left;
  cursor: pointer;
  transition: color var(--bh-transition), background-color var(--bh-transition);
}

.bhx-catalog__tabs [role="tab"] .bhx-icon {
  width: 17px;
  height: 17px;
  flex: none;
}

.bhx-catalog__tabs [role="tab"]:hover,
.bhx-catalog__tabs [role="tab"][aria-selected="true"] {
  background: #fff;
  color: var(--bh-color-primary);
}

.bhx-catalog__tabs [role="tab"]:focus-visible {
  outline: 2px solid var(--bh-color-primary);
  outline-offset: 2px;
}

.bhx-catalog__products {
  min-width: 0;
  padding: 34px 38px 28px;
}

.bhx-catalog__product-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px 30px;
}

.bhx-catalog__product-links a {
  min-width: 0;
  color: var(--bh-color-text);
  font-size: 15px;
  line-height: 1.35;
}

.bhx-catalog__product-links a:hover,
.bhx-catalog__product-links a:focus-visible,
.bhx-catalog__section-link:hover,
.bhx-catalog__section-link:focus-visible,
.bhx-catalog__footer a:hover,
.bhx-catalog__footer a:focus-visible {
  color: var(--bh-color-primary);
}

.bhx-catalog__section-link {
  display: inline-block;
  margin-top: 32px;
  color: var(--bh-color-primary);
  font-weight: 700;
}

.bhx-catalog__footer {
  display: flex;
  min-height: 72px;
  padding: 0 38px;
  align-items: center;
  gap: 38px;
  border-top: 1px solid var(--bh-color-line);
}

.bhx-catalog__footer a {
  color: var(--bh-color-primary);
  font-size: 14px;
  font-weight: 700;
}

.bhx-catalog__menu {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px 18px;
}

.bhx-catalog__menu a {
  display: block;
  padding: 10px 12px;
  border-radius: 9px;
  font-size: 14px;
}

.bhx-catalog__menu a:hover {
  background: var(--bh-color-soft);
  color: var(--bh-color-primary);
}

.bhx-search {
  position: relative;
  display: flex;
  height: 46px;
  min-width: 190px;
  align-items: center;
  flex: 1;
  border: 1px solid var(--bh-color-line);
  border-radius: 12px;
  background: var(--bh-color-soft-2);
}

.bhx-search:focus-within {
  border-color: var(--bh-color-primary);
  box-shadow: 0 0 0 3px rgba(242, 101, 34, 0.12);
}

.bhx-search input[type="search"] {
  width: 100%;
  height: 100%;
  padding: 0 4px 0 16px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--bh-color-ink);
  font-size: 14px;
}

.bhx-search button {
  display: grid;
  width: 46px;
  height: 44px;
  place-items: center;
  border: 0;
  background: transparent;
  color: var(--bh-color-primary);
}

.bhx-search__results {
  position: absolute;
  z-index: 70;
  top: calc(100% + 10px);
  right: 0;
  left: 0;
  overflow: hidden;
  border: 1px solid var(--bh-color-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--bh-shadow-hover);
}

.bhx-search__result {
  display: grid;
  min-height: 70px;
  padding: 9px 12px;
  align-items: center;
  grid-template-columns: 52px 1fr auto;
  gap: 12px;
  border-bottom: 1px solid var(--bh-color-line-soft);
}

.bhx-search__result:last-child {
  border-bottom: 0;
}

.bhx-search__result:hover,
.bhx-search__result:focus-visible {
  background: var(--bh-color-soft-2);
}

.bhx-search__result img {
  width: 52px;
  height: 52px;
  object-fit: contain;
}

.bhx-search__result strong {
  font-size: 13px;
  line-height: 1.3;
}

.bhx-search__price {
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  white-space: nowrap;
}

.bhx-search__price del {
  color: var(--bh-color-muted);
  font-size: 11px;
  font-weight: 500;
  text-decoration: line-through !important;
  text-decoration-thickness: 1px !important;
}

.bhx-search__price span {
  color: var(--bh-color-primary);
  font-size: 12px;
  font-weight: 700;
}

.bhx-search__empty {
  padding: 18px;
  color: var(--bh-color-muted);
  font-size: 13px;
}

/* Compact location component shared by the desktop header and mobile drawer. */
.bhx-city-picker {
  position: relative;
  flex: none;
}

.bhx-city-picker--mobile {
  display: none;
}

.bhx-city-picker__toggle {
  display: flex;
  min-height: 44px;
  max-width: 190px;
  align-items: center;
  gap: 7px;
  padding: 0 4px;
  border: 0;
  background: transparent;
  color: var(--bh-color-ink);
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
  transition: color var(--bh-transition);
}

.bhx-city-picker__toggle:hover,
.bhx-city-picker__toggle:focus-visible,
.bhx-city-picker__toggle[aria-expanded="true"] {
  color: var(--bh-color-primary);
}

.bhx-city-picker__pin {
  width: 21px;
  height: 21px;
  flex: none;
}

.bhx-city-picker__chevron {
  width: 16px;
  height: 16px;
  flex: none;
  transform: rotate(90deg);
  transition: transform var(--bh-transition);
}

.bhx-city-picker__toggle[aria-expanded="true"] .bhx-city-picker__chevron {
  transform: rotate(-90deg);
}

.bhx-city-picker__panel {
  position: absolute;
  z-index: 80;
  top: calc(100% + 10px);
  right: 0;
  width: min(300px, calc(100vw - 32px));
  padding: 14px;
  border: 1px solid var(--bh-color-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--bh-shadow-hover);
}

.bhx-city-picker__title {
  display: block;
  padding: 2px 8px 10px;
  color: var(--bh-color-ink);
  font-size: 14px;
}

.bhx-city-picker__list {
  display: grid;
  max-height: 360px;
  padding: 0;
  margin: 0;
  overflow-y: auto;
  list-style: none;
  scrollbar-width: thin;
}

.bhx-city-picker__list a {
  display: flex;
  min-height: 40px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px;
  border-radius: 8px;
  color: var(--bh-color-text);
  font-size: 13px;
  font-weight: 600;
  transition: color var(--bh-transition), background-color var(--bh-transition);
}

.bhx-city-picker__list a:hover,
.bhx-city-picker__list a:focus-visible {
  background: var(--bh-color-soft-2);
  color: var(--bh-color-primary);
}

.bhx-city-picker__check {
  width: 17px;
  height: 17px;
  flex: none;
  opacity: 0;
}

.bhx-city-picker__list a[aria-current="true"] {
  background: rgba(242, 101, 34, 0.09);
  color: var(--bh-color-primary);
}

.bhx-city-picker__list a[aria-current="true"] .bhx-city-picker__check {
  opacity: 1;
}

.bhx-header-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.bhx-header-action,
.bhx-icon-button {
  position: relative;
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: var(--bh-color-ink);
  transition: color var(--bh-transition), background-color var(--bh-transition);
}

.bhx-header-action:hover,
.bhx-icon-button:hover {
  background: var(--bh-color-soft);
  color: var(--bh-color-primary);
}

.bhx-header-action__badge {
  position: absolute;
  top: 1px;
  right: 0;
  display: grid;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 10px;
  background: var(--bh-color-primary);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
}

.bhx-header__burger {
  display: none;
}

.bhx-primary-nav {
  border-top: 1px solid var(--bh-color-line-soft);
}

.bhx-primary-nav__menu {
  display: flex;
  min-height: 50px;
  align-items: center;
  /* Match the shared header grid: category shortcuts begin at the same left
     edge as the logo and contact rows while retaining horizontal overflow. */
  justify-content: flex-start;
  gap: 30px;
  font-size: 13.5px;
  font-weight: 600;
}

.bhx-primary-nav__menu a:hover,
.bhx-primary-nav__menu .current-menu-item > a {
  color: var(--bh-color-primary);
}

.bhx-mobile-menu[hidden] {
  display: none;
}

.bhx-mobile-menu {
  position: fixed;
  z-index: 100;
  inset: 0;
}

.bhx-mobile-menu__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(29, 29, 31, 0.48);
}

.bhx-mobile-menu__panel {
  position: relative;
  width: min(88vw, 380px);
  height: 100%;
  padding: 22px;
  overflow: auto;
  background: #fff;
  box-shadow: var(--bh-shadow-hover);
}

.bhx-mobile-menu__close {
  margin-left: auto;
}

.bhx-mobile-menu__logo {
  margin: 10px 0 30px;
}

.bhx-mobile-menu__actions {
  display: grid;
  margin-bottom: 22px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.bhx-mobile-menu__actions a {
  display: flex;
  min-height: 48px;
  align-items: center;
  gap: 8px;
  padding: 9px 10px;
  border: 1px solid var(--bh-color-line-soft);
  border-radius: 10px;
  background: var(--bh-color-soft-2);
  font-size: 12px;
  font-weight: 700;
}

.bhx-mobile-menu__actions a:hover,
.bhx-mobile-menu__actions a:focus-visible {
  border-color: var(--bh-color-primary);
  color: var(--bh-color-primary);
}

.bhx-mobile-menu__actions .bhx-icon {
  width: 19px;
  height: 19px;
}

.bhx-mobile-menu__title {
  margin: 28px 0 10px;
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.bhx-mobile-menu__links a {
  display: block;
  padding: 12px 0;
  border-bottom: 1px solid var(--bh-color-line-soft);
  font-weight: 600;
}

.bhx-menu-open {
  overflow: hidden;
}

/* Main content and home */

.bhx-main {
  min-height: 50vh;
  padding: 48px 0 72px;
}

.bhx-home {
  padding-top: 28px;
}

.bhx-section {
  margin-bottom: 64px;
}

.bhx-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
}

.bhx-section-heading--center {
  justify-content: center;
}

.bhx-category-grid {
  display: grid;
  /* Editors can select fewer than eight categories on the homepage. Auto-fit
     keeps those explicit choices balanced instead of leaving empty columns. */
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 14px;
}

.bhx-category-card {
  min-height: 126px;
  padding: 18px 10px;
  border: 1px solid var(--bh-color-line-soft);
  border-radius: var(--bhx-radius);
  background: var(--bh-color-soft-2);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  color: #3a3f45;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.bhx-category-card .bhx-icon {
  width: 30px;
  height: 30px;
  color: var(--bh-color-primary);
}

.bhx-category-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--bh-shadow);
}

.bhx-section-heading h2,
.bhx-callout h2,
.bhx-promo h2 {
  margin: 0;
  color: var(--bh-color-ink);
  font-size: clamp(24px, 2.7vw, 34px);
  line-height: 1.15;
  letter-spacing: -0.035em;
}

.bhx-section-heading > a {
  flex: none;
  color: var(--bh-color-primary);
  font-size: 14px;
  font-weight: 650;
}

.bhx-hero-slider {
  position: relative;
  touch-action: pan-y;
}

/* Author-level grid/flex declarations outrank the browser's default hidden
   rule. Keep inactive server-rendered offers completely outside layout and
   the accessibility tree until the carousel selects them. */
.bhx-hero-slider [data-bhx-hero-slide][hidden] {
  display: none;
}

.bhx-hero {
  position: relative;
  display: grid;
  min-height: 440px;
  align-items: center;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.95fr);
  overflow: hidden;
  border: 1px solid var(--bh-color-line-soft);
  border-radius: var(--bh-radius-lg);
  background: linear-gradient(120deg, #f7f8fa 0%, #eef0f3 100%);
}

.bhx-hero__content {
  position: relative;
  z-index: 2;
  padding: 56px 56px 92px;
}

.bhx-hero h1,
.bhx-hero h2 {
  max-width: 680px;
  margin: 0 0 18px;
  font-size: clamp(38px, 5vw, 62px);
  line-height: 0.98;
  letter-spacing: -0.055em;
}

/** The controls use a large invisible hit area around the compact prototype
    dots. This preserves the reference appearance without creating tiny tap
    targets on touch devices. They remain hidden when JavaScript is absent. */
.bhx-hero-slider__controls {
  position: absolute;
  z-index: 3;
  bottom: 22px;
  left: 42px;
  display: none;
  align-items: center;
}

.bhx-hero-slider.is-enhanced .bhx-hero-slider__controls {
  display: flex;
}

.bhx-hero-slider__controls button {
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  place-items: center;
}

.bhx-hero-slider__controls button span {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #c7cbd0;
  transition: width 160ms ease, background-color 160ms ease;
}

.bhx-hero-slider__controls button[aria-current="true"] span {
  width: 28px;
  background: var(--bh-color-primary);
}

.bhx-hero-slider__controls button:focus-visible {
  outline: 2px solid var(--bh-color-primary);
  outline-offset: -5px;
}

.bhx-hero__text {
  max-width: 520px;
  margin: 0 0 28px;
  color: var(--bh-color-text);
  font-size: clamp(16px, 1.7vw, 20px);
}

.bhx-hero__media {
  position: relative;
  display: grid;
  min-height: 440px;
  align-self: stretch;
  place-items: center;
  padding: 0;
  background: radial-gradient(circle at 50% 50%, rgba(242, 101, 34, 0.14), transparent 55%);
}

body.bhx-site .bhx-hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
}

.bhx-hero__placeholder {
  display: grid;
  width: 220px;
  height: 290px;
  align-content: center;
  border: 1px solid var(--bh-color-line);
  border-radius: 34px 34px 46px 46px;
  background: #fff;
  box-shadow: var(--bh-shadow-hover);
  text-align: center;
}

.bhx-hero__placeholder span {
  font-size: 28px;
  font-weight: 850;
}

.bhx-hero__placeholder strong {
  color: var(--bh-color-primary);
  font-size: 32px;
}

.bhx-feature-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}

.bhx-feature-card {
  display: flex;
  min-height: 110px;
  align-items: center;
  gap: 16px;
  padding: 20px;
  border: 1px solid var(--bh-color-line-soft);
  border-radius: var(--bh-radius);
  background: var(--bh-color-soft-2);
}

.bhx-feature-card__icon {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  object-fit: contain;
  color: var(--bh-color-primary);
}

.bhx-feature-card strong,
.bhx-feature-card span {
  display: block;
}

.bhx-feature-card strong {
  font-size: 16px;
}

.bhx-feature-card span {
  margin-top: 4px;
  color: var(--bh-color-muted);
  font-size: 13px;
}

.bhx-promos {
  display: grid;
  /* Customer review keeps the asymmetric prototype composition but aligns it
     with the same container edges as the surrounding trust/product sections. */
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  grid-template-rows: repeat(2, 184px);
  gap: 16px;
  margin-inline: 0;
}

.bhx-promo--large {
  /* The first editable category card owns the full left column in the
     supplied composition, while the remaining cards stack on the right. */
  grid-row: span 2;
}

.bhx-promo {
  position: relative;
  display: flex;
  min-height: 0;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 24px 28px;
  overflow: hidden;
  border: 1px solid var(--bh-color-line-soft);
  border-radius: var(--bh-radius);
  background: #f5f4f7;
  transition: border-color var(--bh-transition), box-shadow var(--bh-transition);
}

.bhx-promo--large {
  padding: 40px;
  background: linear-gradient(120deg, #edeff2, #e4e7eb);
}

.bhx-promo:nth-child(3) {
  background: #edf5f0;
}

.bhx-promo:hover {
  border-color: #d9dcdf;
  box-shadow: var(--bh-shadow);
}

.bhx-promo p {
  max-width: 240px;
  margin: 8px 0 10px;
  color: var(--bh-color-text);
  font-size: 14px;
  line-height: 1.45;
}

.bhx-promo__copy {
  position: relative;
  z-index: 2;
  display: flex;
  height: auto;
  min-width: 0;
  align-self: stretch;
  align-items: flex-start;
  flex-direction: column;
}

.bhx-promo h2 {
  max-width: 245px;
  font-size: 18px;
  line-height: 1.4;
  letter-spacing: -0.02em;
}

.bhx-promo--large h2 {
  max-width: 380px;
  font-size: clamp(38px, 3.15vw, 44px);
  line-height: 1.1;
}

.bhx-promo--large p {
  max-width: 360px;
  margin: 14px 0 24px;
}

.bhx-promo .bhx-text-link {
  display: block;
  margin-top: auto;
  color: var(--bh-color-primary);
  font-size: 13px;
  font-weight: 700;
  line-height: 18px;
}

/* An optional empty kicker used to retain its global bottom margin and push
   the CTA outside short promo cards. Empty editor fields must consume no row. */
.bhx-promo:not(.bhx-promo--large) .bhx-kicker:empty {
  display: none;
}

.bhx-promo__media {
  width: 80px;
  height: 80px;
  flex: 0 0 80px;
  object-fit: contain;
}

.bhx-promo:not(.bhx-promo--large) .bhx-promo__media {
  position: absolute;
  top: 50%;
  right: 28px;
  transform: translateY(-50%);
}

.bhx-promo--large .bhx-promo__media {
  width: 160px;
  height: 160px;
  flex-basis: 160px;
}

.bhx-promo__icon {
  box-sizing: border-box;
  padding: 18px;
  border-radius: 50%;
  background: rgba(236, 111, 45, 0.09);
  color: var(--bh-color-primary);
}

.bhx-promo--large .bhx-promo__icon {
  padding: 42px;
}

/* Uploaded promo artwork owns the whole card. A directional scrim keeps all
   editor copy readable across photographs without baking text into images. */
.bhx-promo.has-image::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, rgba(19, 21, 25, 0.84) 0%, rgba(19, 21, 25, 0.62) 52%, rgba(19, 21, 25, 0.18) 100%);
  content: "";
}

body.bhx-site .bhx-promo.has-image .bhx-promo__media {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: none;
}

.bhx-promo.has-image :is(.bhx-kicker, h2, p, .bhx-text-link) {
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.22);
}

.bhx-promo.has-image .bhx-promo__copy {
  max-width: min(72%, 420px);
}

/** The store-benefit strip is intentionally distinct from the numerical
    feature cards near the hero. A one-pixel grid keeps arbitrary editor row
    counts visually connected without duplicating separator markup. */
.bhx-store-benefits {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1px;
  padding: 1px;
  overflow: hidden;
  border-radius: var(--bh-radius);
  background: var(--bh-color-line-soft);
}

.bhx-store-benefit {
  display: flex;
  min-width: 0;
  min-height: 118px;
  align-items: center;
  gap: 16px;
  padding: 24px;
  background: var(--bh-color-soft-2);
}

.bhx-store-benefit__icon {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  color: #8e969e;
}

.bhx-store-benefit strong,
.bhx-store-benefit span {
  display: block;
}

.bhx-store-benefit strong {
  color: var(--bh-color-text);
  font-size: 14px;
  line-height: 1.35;
}

.bhx-store-benefit span {
  margin-top: 4px;
  color: var(--bh-color-muted);
  font-size: 12px;
  line-height: 1.4;
}

/** Prototype contract: the consultation card and the information-dense partner
    card form one asymmetric row. These classes stay in the parent theme so
    child sites can reuse the composition while supplying their own page URLs. */
.bhx-home-duo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.42fr);
  align-items: stretch;
  gap: 16px;
}

.bhx-home-duo__consultation,
.bhx-home-duo__partner {
  position: relative;
  min-width: 0;
  min-height: 196px;
  overflow: hidden;
  border-radius: 20px;
}

.bhx-home-duo__consultation {
  display: flex;
  height: 100%;
  padding: 36px;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
  background: linear-gradient(120deg, #eff1f4, #e6e9ed);
}

.bhx-home-duo__consultation-copy {
  position: relative;
  z-index: 1;
}

.bhx-home-duo h2 {
  margin: 0 0 12px;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.6px;
}

.bhx-home-duo__consultation p {
  max-width: 84%;
  margin: 0 0 22px;
  color: #5a6068;
  font-size: 14.5px;
  line-height: 1.5;
}

.bhx-home-duo__doctor {
  position: absolute;
  right: -14px;
  bottom: -24px;
  font-size: 120px;
  line-height: 1;
  opacity: 0.85;
  filter: drop-shadow(0 8px 20px rgba(0, 0, 0, 0.1));
  pointer-events: none;
}

.bhx-home-duo__button {
  display: inline-flex;
  min-height: 48px;
  padding: 0 24px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border-radius: 11px;
  background: var(--bh-color-primary);
  color: #fff !important;
  font-size: 14.5px;
  font-weight: 650;
  line-height: 1.2;
  transition: background-color var(--bh-transition), box-shadow var(--bh-transition);
}

.bhx-home-duo__button:hover,
.bhx-home-duo__button:focus-visible {
  background: var(--bh-color-primary-hover);
  box-shadow: 0 10px 24px rgba(242, 101, 34, 0.22);
}

.bhx-home-duo__button > span {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.22);
}

.bhx-home-duo__button .bhx-icon {
  width: 16px;
  height: 16px;
  stroke-width: 1.8;
}

.bhx-home-duo__partner {
  display: grid;
  height: 100%;
  padding: 38px 40px;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: center;
  gap: 30px;
  background: radial-gradient(120% 140% at 85% 0%, #33333a 0%, #1d1d1f 55%);
  color: #fff;
}

.bhx-home-duo__kicker {
  margin: 0 0 14px !important;
  color: var(--bh-color-primary) !important;
  font-size: 12px !important;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.bhx-home-duo__partner h2 {
  margin-bottom: 12px;
  color: #fff;
  font-size: 26px;
}

.bhx-home-duo__partner-copy > p:not(.bhx-home-duo__kicker) {
  max-width: 440px;
  margin: 0 0 22px;
  color: #c3c7cd;
  font-size: 14px;
  line-height: 1.55;
}

.bhx-home-duo__partner .bhx-home-duo__button {
  min-height: 52px;
}

.bhx-home-duo__perks {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 14px;
}

.bhx-home-duo__perk {
  display: flex;
  min-width: 0;
  padding: 18px 20px;
  align-items: center;
  gap: 16px;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.06);
}

.bhx-home-duo__perk > span {
  min-width: 74px;
  color: var(--bh-color-primary);
  font-size: 22px;
  font-weight: 800;
}

.bhx-home-duo__perk p {
  min-width: 0;
  margin: 0;
  color: #dde0e4;
  font-size: 13.5px;
  line-height: 1.35;
}

.bhx-home-duo__perk strong {
  display: block;
  margin-bottom: 2px;
  color: #fff;
  font-size: 14.5px;
}

/* Product cards */

.bhx-product-grid,
body.bhx-site.woocommerce ul.products,
body.bhx-site .woocommerce ul.products {
  display: grid;
  padding: 0;
  margin: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

body.bhx-site.woocommerce ul.products::before,
body.bhx-site.woocommerce ul.products::after,
body.bhx-site .woocommerce ul.products::before,
body.bhx-site .woocommerce ul.products::after {
  display: none;
}

body.bhx-site.woocommerce ul.products li.product,
body.bhx-site .woocommerce ul.products li.product,
.bhx-product-card {
  position: relative;
  display: flex;
  width: auto;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  padding: 16px;
  margin: 0;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius);
  background: #fff;
  transition: border-color var(--bh-transition), box-shadow var(--bh-transition);
}

body.bhx-site.woocommerce ul.products li.product:hover,
body.bhx-site .woocommerce ul.products li.product:hover,
.bhx-product-card:hover {
  border-color: #d5d8dc;
  box-shadow: var(--bh-shadow-hover);
}

.bhx-product-card__top {
  position: absolute;
  z-index: 2;
  top: 16px;
  right: 16px;
  left: 16px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  pointer-events: none;
}

.bhx-product-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.bhx-badge {
  padding: 5px 9px;
  border-radius: 6px;
  background: var(--bh-color-primary);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
}

.bhx-badge--muted {
  background: var(--bh-color-ink);
}

.bhx-product-card__collections {
  display: flex;
  gap: 4px;
  pointer-events: auto;
}

.bhx-product-card__favorite,
.bhx-product-card__compare {
  display: grid;
  width: 38px;
  height: 38px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--bh-color-ink);
  pointer-events: auto;
}

.bhx-product-card__favorite:hover,
.bhx-product-card__favorite.is-active,
.bhx-product-card__compare:hover,
.bhx-product-card__compare.is-active {
  color: var(--bh-color-primary);
}

.bhx-product-card__favorite.is-active .bhx-icon {
  fill: currentColor;
}

.bhx-collection-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 22px;
  color: var(--bh-color-muted);
}

.bhx-text-button {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bh-color-primary);
  font-weight: 700;
}

.bhx-compare-scroll {
  overflow-x: auto;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius);
  background: #fff;
}

.bhx-compare-table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.bhx-compare-table th,
.bhx-compare-table td {
  min-width: 210px;
  padding: 16px;
  border-right: 1px solid var(--bh-color-line-soft);
  border-bottom: 1px solid var(--bh-color-line-soft);
  text-align: left;
  vertical-align: top;
}

/** max-content tables otherwise let one verbose product name stretch its
    complete column. Stable product columns remain scan-friendly and scroll. */
.bhx-compare-table th:not(:first-child),
.bhx-compare-table td:not(:first-child) {
  width: 240px;
  min-width: 240px;
  max-width: 240px;
}

.bhx-compare-table th:first-child {
  position: sticky;
  z-index: 2;
  left: 0;
  min-width: 170px;
  background: var(--bh-color-soft-2);
}

.bhx-compare-table thead th {
  background: #fff;
}

.bhx-compare-table thead img {
  width: 150px;
  height: 150px;
  margin-bottom: 10px;
  object-fit: contain;
}

.bhx-compare-table thead strong {
  display: block;
  line-height: 1.3;
  overflow-wrap: anywhere;
  white-space: normal;
}

.bhx-compare-table thead button {
  padding: 0;
  margin-top: 10px;
  border: 0;
  background: transparent;
  color: var(--bh-color-primary);
  font-size: 12px;
}

.bhx-product-card__image {
  display: grid;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  margin: 0 0 12px;
  overflow: hidden;
  border: 1px solid var(--bh-color-line-soft);
  border-radius: 12px;
  background: var(--bh-color-soft-2);
  place-items: center;
}

/* WooCommerce's archive selector otherwise restores square auto-height images,
   which lets the image escape its media slot and cover rating/title content. */
body.bhx-site.woocommerce ul.products li.product .bhx-product-card__image img,
body.bhx-site .woocommerce ul.products li.product .bhx-product-card__image img,
body.bhx-site .bhx-product-card__image img,
.bhx-product-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  margin: 0;
  border-radius: inherit;
  object-fit: contain;
}

.bhx-product-card__body {
  display: flex;
  min-height: 108px;
  flex: 1;
  flex-direction: column;
}

.bhx-product-card__rating {
  display: flex;
  min-height: 18px;
  margin-bottom: 5px;
  align-items: center;
  gap: 6px;
  color: var(--bh-color-muted);
  font-size: 12px;
}

.bhx-product-card__rating strong {
  color: var(--bh-color-ink);
  font-size: 12px;
}

.bhx-product-card__rating.is-empty {
  color: var(--bh-color-muted);
}

.bhx-product-card__rating-empty {
  font-size: 11px;
  white-space: nowrap;
}

.bhx-rating-stars {
  position: relative;
  display: inline-block;
  color: var(--bh-color-primary);
  font-size: 14px;
  letter-spacing: 1px;
  line-height: 1;
  white-space: nowrap;
}

.bhx-rating-stars::before {
  color: #d9dde2;
  content: "★★★★★";
}

.bhx-rating-stars > span {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--bhx-rating-width);
  overflow: hidden;
  white-space: nowrap;
}

.bhx-product-card__title {
  display: -webkit-box;
  min-height: 40px;
  margin: 0 0 12px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 15px;
  font-weight: 650;
  line-height: 1.35;
}

.bhx-product-card__title a:hover {
  color: var(--bh-color-primary);
}

.bhx-product-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
}

.bhx-product-card__price {
  font-size: 18px;
  font-weight: 800;
  line-height: 1.2;
}

.bhx-price-from {
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
}

.bhx-price-from__label {
  margin-right: 0.15em;
  font-size: 0.72em;
  font-weight: 650;
  text-transform: lowercase;
}

.bhx-product-card__price .woocommerce-Price-amount {
  /* A price range may wrap between its two amounts on a narrow card, but a
     single monetary value such as “6 300 руб.” must remain one visual unit. */
  display: inline-block;
  white-space: nowrap;
}

.bhx-product-card__price del,
.bhx-product-card__price del .woocommerce-Price-amount {
  display: block;
  color: var(--bh-color-muted);
  font-size: 12px;
  font-weight: 500;
  text-decoration: line-through !important;
  text-decoration-color: currentColor !important;
  text-decoration-thickness: 2px !important;
}

.bhx-product-card__price ins {
  text-decoration: none;
}

.bhx-product-card__action a.button {
  /* Woo archive rules load with greater specificity and restore inline-block;
     keep the icon-only control centered independently of plugin CSS order. */
  display: inline-flex !important;
  width: 42px;
  min-width: 42px;
  min-height: 42px !important;
  align-items: center;
  justify-content: center;
  gap: 0 !important;
  position: relative;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid var(--bh-color-primary) !important;
  border-radius: 11px;
  background: var(--bh-color-primary) !important;
  color: #fff !important;
  font-size: 0 !important;
  line-height: 0;
  transition: background-color var(--bh-transition), border-color var(--bh-transition), box-shadow var(--bh-transition);
}

.bhx-product-card__action a.button:hover {
  border-color: var(--bh-color-primary-hover) !important;
  background: var(--bh-color-primary-hover) !important;
  box-shadow: 0 10px 24px rgba(242, 101, 34, 0.22);
}

.bhx-product-card__cart-icon {
  display: block;
  width: 20px;
  height: 20px;
  flex: none;
  transform: none;
}

/* Reviews, FAQ and articles */

.bhx-reviews__mask {
  position: relative;
  overflow: hidden;
  mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}

.bhx-reviews__track {
  display: flex;
  width: max-content;
  gap: 16px;
  padding-block: 4px 12px;
  animation: bhx-review-marquee 46s linear infinite;
  will-change: transform;
}

.bhx-reviews__sequence {
  display: flex;
  gap: 16px;
}

.bhx-reviews__mask:hover .bhx-reviews__track,
.bhx-reviews__mask:focus-within .bhx-reviews__track {
  animation-play-state: paused;
}

.bhx-review {
  display: flex;
  width: 352px;
  min-height: 244px;
  padding: 26px;
  flex-direction: column;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius);
  background: #fff;
  box-shadow: 0 8px 28px rgba(29, 29, 31, 0.06);
}

.bhx-review__stars {
  color: var(--bh-color-primary);
  letter-spacing: 0.08em;
}

.bhx-review blockquote {
  margin: 18px 0 22px;
  color: var(--bh-color-text);
  line-height: 1.55;
}

.bhx-review blockquote p {
  margin: 0;
}

.bhx-review__author {
  display: flex;
  margin-top: auto;
  align-items: center;
  gap: 11px;
}

.bhx-review__avatar {
  display: grid;
  width: 38px;
  height: 38px;
  flex: none;
  place-items: center;
  border-radius: 50%;
  background: rgba(242, 101, 34, 0.12);
  color: var(--bh-color-primary);
  font-size: 14px;
  font-weight: 800;
}

.bhx-review__author strong {
  color: var(--bh-color-ink);
  font-size: 14px;
}

@keyframes bhx-review-marquee {
  to {
    transform: translateX(calc(-50% - 8px));
  }
}

.bhx-faq {
  max-width: 820px;
  margin-inline: auto;
}

.bhx-faq details {
  border-bottom: 1px solid var(--bh-color-line);
}

.bhx-faq summary {
  display: flex;
  padding: 20px 4px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  cursor: pointer;
  font-size: 17px;
  font-weight: 650;
  list-style: none;
}

.bhx-faq summary::-webkit-details-marker {
  display: none;
}

.bhx-faq summary span {
  display: grid;
  width: 28px;
  height: 28px;
  flex: none;
  place-items: center;
  border-radius: 8px;
  background: var(--bh-color-soft);
  color: var(--bh-color-primary);
  font-size: 20px;
}

.bhx-faq details[open] summary span {
  transform: rotate(45deg);
}

.bhx-faq details > div {
  padding: 0 46px 20px 4px;
  color: var(--bh-color-text);
}

.bhx-article-grid,
.bhx-content-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.bhx-article-card,
.bhx-content-card {
  overflow: hidden;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius);
  background: #fff;
}

.bhx-article-card__media,
.bhx-content-card__media {
  display: grid;
  height: 190px;
  place-items: center;
  overflow: hidden;
  background: linear-gradient(130deg, #eef1f4, #e1e5ea);
  color: var(--bh-color-primary);
  font-size: 20px;
  font-weight: 850;
}

body.bhx-site .bhx-article-card__media img,
body.bhx-site .bhx-content-card__media img,
.bhx-article-card__media img,
.bhx-content-card__media img {
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  padding: 10px;
  object-fit: contain;
  transition: transform 300ms ease;
}

.bhx-article-card:hover .bhx-article-card__media img,
.bhx-content-card:hover .bhx-content-card__media img {
  transform: scale(1.025);
}

.bhx-article-card__body,
.bhx-content-card__body {
  padding: 20px;
}

.bhx-article-card time,
.bhx-content-card time {
  color: var(--bh-color-muted);
  font-size: 12px;
}

.bhx-article-card h3,
.bhx-content-card h2 {
  margin: 8px 0 18px;
  font-size: 18px;
  line-height: 1.35;
}

.bhx-article-card__body > span {
  color: var(--bh-color-primary);
  font-size: 13px;
  font-weight: 650;
}

/* Content and forms */

.bhx-page-header {
  margin-bottom: 34px;
}

.bhx-page-header h1,
.bhx-article h1,
body.bhx-site .woocommerce-products-header__title,
body.bhx-site .product_title {
  margin: 0;
  font-size: clamp(34px, 4.5vw, 54px);
  line-height: 1.05;
  letter-spacing: -0.045em;
}

.bhx-rich-text {
  color: var(--bh-color-text);
  font-size: 17px;
  line-height: 1.75;
}

.bhx-rich-text h2,
.bhx-rich-text h3 {
  margin: 1.6em 0 0.6em;
  color: var(--bh-color-ink);
  line-height: 1.2;
}

.bhx-rich-text table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
}

.bhx-rich-text th,
.bhx-rich-text td {
  padding: 12px;
  border: 1px solid var(--bh-color-line);
}

body.bhx-site input[type="text"],
body.bhx-site input[type="email"],
body.bhx-site input[type="tel"],
body.bhx-site input[type="password"],
body.bhx-site input[type="number"],
body.bhx-site input[type="search"],
body.bhx-site select,
body.bhx-site textarea {
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius-sm);
  background: #fff;
  color: var(--bh-color-ink);
}

body.bhx-site textarea {
  min-height: 120px;
}

/** Contact Form 7 content comes from the database and varies by page. These
    structural rules provide one predictable field rhythm without requiring
    every imported form to carry theme-specific utility classes. */
body.bhx-site .wpcf7-form > .mb-3 {
  margin-bottom: 16px;
}

body.bhx-site .wpcf7-form-control-wrap {
  display: block;
}

/* Imported CF7 fields and map embeds carry desktop pixel widths in post/form
 * content. Cap both at their live content column so contact pages remain
 * usable on phones without rewriting customer-managed database markup. */
body.bhx-site .wpcf7-form-control-wrap input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
body.bhx-site .wpcf7-form-control-wrap select,
body.bhx-site .wpcf7-form-control-wrap textarea,
body.bhx-site .bhx-rich-text iframe {
  width: 100% !important;
  max-width: 100%;
}

body.bhx-site input:focus,
body.bhx-site select:focus,
body.bhx-site textarea:focus {
  border-color: var(--bh-color-primary);
  box-shadow: 0 0 0 3px rgba(242, 101, 34, 0.12);
  outline: none;
}

.bhx-empty-state {
  padding: 50px 24px;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius);
  background: var(--bh-color-soft-2);
  text-align: center;
}

.bhx-empty-state--404 {
  max-width: 760px;
  margin: 30px auto;
  padding: 80px 30px;
}

.bhx-empty-state h1,
.bhx-empty-state h2 {
  margin: 0 0 16px;
}

.bhx-empty-state__actions {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 28px;
}

.bhx-article {
  max-width: 860px;
  margin: 0 auto;
}

.bhx-article__hero {
  margin: 0 0 32px;
  overflow: hidden;
  border-radius: var(--bh-radius);
}

.bhx-sitemap-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.bhx-sitemap-grid section {
  padding: 24px;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius);
  background: #fff;
}

.bhx-sitemap-grid ul {
  padding-left: 20px;
}

.bhx-sitemap-grid li {
  margin-bottom: 7px;
}

.bhx-sitemap-grid a:hover {
  color: var(--bh-color-primary);
}

/* WooCommerce */

.bhx-commerce-layout {
  display: grid;
  align-items: start;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 30px;
}

body.bhx-site .woocommerce .bhx-commerce-layout__content ul.products {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bhx-catalog-filters {
  position: sticky;
  top: 16px;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius);
  background: #fff;
}

.bhx-catalog-filters details {
  padding: 16px;
  border-bottom: 1px solid var(--bh-color-line-soft);
}

.bhx-catalog-filters details:last-child {
  border-bottom: 0;
}

.bhx-catalog-filters summary {
  cursor: pointer;
  font-weight: 800;
}

.bhx-catalog-filters ul {
  display: flex;
  padding: 0;
  margin: 14px 0 0;
  flex-direction: column;
  gap: 8px;
  list-style: none;
}

.bhx-catalog-filters details:first-child ul {
  max-height: 360px;
  padding-right: 4px;
  overflow-y: auto;
  scrollbar-width: thin;
}

.bhx-catalog-filters li a {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: var(--bh-color-text);
  font-size: 13px;
}

.bhx-catalog-filters li a:hover {
  color: var(--bh-color-primary);
}

.bhx-catalog-filters li a[aria-current] {
  color: var(--bh-color-primary);
  font-weight: 750;
}

.bhx-catalog-filters li span {
  color: var(--bh-color-muted-2);
}

.bhx-price-filter {
  display: grid;
  margin-top: 14px;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.bhx-price-filter label span {
  display: block;
  margin-bottom: 4px;
  color: var(--bh-color-muted);
  font-size: 11px;
}

.bhx-price-filter input[type="number"] {
  width: 100%;
  min-height: 42px;
}

.bhx-price-filter .bhx-button {
  min-height: 42px;
  grid-column: 1 / -1;
}

/* Customer-managed secondary category copy remains readable and indexable,
   but follows the products instead of pushing the catalog below the fold. */
body.bhx-site .bhx-commerce-layout__content > .term-description,
body.bhx-site .bhx-commerce-layout__content > .page-description {
  max-width: 860px;
  padding-top: 30px;
  margin-top: 42px;
  border-top: 1px solid var(--bh-color-line-soft);
  color: var(--bh-color-text);
  font-size: 15px;
  line-height: 1.7;
}

body.bhx-site .bhx-commerce-layout__content > :is(.term-description, .page-description) > :first-child {
  margin-top: 0;
}

body.bhx-site .woocommerce .woocommerce-breadcrumb {
  margin: 0 0 28px;
  color: var(--bh-color-muted);
  font-size: 13px;
}

body.bhx-site .woocommerce .woocommerce-breadcrumb a:hover {
  color: var(--bh-color-primary);
}

.bhx-catalog-toolbar {
  display: flex;
  min-height: 42px;
  margin: 0 0 16px;
  align-items: center;
  justify-content: space-between;
  gap: 12px 20px;
}

body.bhx-site .bhx-catalog-toolbar .woocommerce-result-count,
body.bhx-site .bhx-catalog-toolbar .woocommerce-ordering {
  float: none;
  margin: 0;
  color: var(--bh-color-muted);
  font-size: 13px;
}

body.bhx-site .bhx-catalog-toolbar .woocommerce-ordering select {
  min-height: 40px;
  height: 40px;
  padding-block: 6px;
  font-size: 13px;
}

body.bhx-site:is(.woocommerce-shop, .tax-product_cat) :is(.woocommerce-products-header__title, h1.page-title) {
  margin-bottom: 14px;
  font-size: clamp(28px, 2.4vw, 32px);
}

@media (max-width: 768px) {
  /* Preserve native 40px controls while stacking the two toolbar concepts on
     narrow screens; shrinking either control would hurt touch accessibility. */
  .bhx-catalog-toolbar {
    min-height: 0;
    margin-bottom: 12px;
    align-items: stretch;
    flex-direction: column;
    gap: 8px;
  }

  body.bhx-site .bhx-catalog-toolbar .woocommerce-ordering select {
    width: 100%;
  }
}

body.bhx-site .woocommerce span.onsale {
  min-width: auto;
  min-height: auto;
  padding: 6px 10px;
  border-radius: 7px;
  background: var(--bh-color-primary);
  line-height: 1.2;
}

body.bhx-site div.product {
  position: relative;
  display: grid;
  margin-top: 10px;
  grid-template-columns: minmax(0, 1.03fr) minmax(0, 0.97fr);
  column-gap: 48px;
  align-items: start;
}

body.bhx-site.single-product div.product::after {
  display: none;
}

/* The gallery and native summary remain WooCommerce-owned, while the parent
   theme establishes the reusable two-column product-stage composition. */
body.bhx-site.single-product div.product > .woocommerce-product-gallery {
  width: 100%;
  float: none;
  grid-column: 1;
  grid-row: 1;
}

body.bhx-site.single-product div.product > .summary {
  display: grid;
  width: 100%;
  min-width: 0;
  float: none;
  grid-column: 2;
  grid-row: 1;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-content: start;
}

body.bhx-site.single-product div.product > :is(.bhx-product-highlights, .woocommerce-tabs, .bhx-product-profile, .bhx-product-tools, .upsells, .bhx-anchor-target, .related) {
  grid-column: 1 / -1;
}

body.bhx-site div.product .product_title {
  margin: 0 0 14px;
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1.08;
  letter-spacing: -0.04em;
}

body.bhx-site div.product div.images,
body.bhx-site div.product div.summary {
  margin-bottom: 42px;
}

body.bhx-site div.product div.images img {
  border-radius: var(--bh-radius);
}

body.bhx-site div.product div.images.woocommerce-product-gallery {
  opacity: 1 !important;
}

body.bhx-site.single-product .woocommerce-product-gallery:has(.flex-control-thumbs) {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 16px;
}

body.bhx-site.single-product .woocommerce-product-gallery:has(.flex-control-thumbs) > :is(.flex-viewport, .woocommerce-product-gallery__wrapper) {
  grid-column: 2;
  grid-row: 1;
}

body.bhx-site.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image {
  overflow: hidden;
  border-radius: var(--bh-radius-lg);
  background: var(--bh-color-soft-2);
}

body.bhx-site.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
  top: 18px;
  right: 18px;
  display: grid;
  width: 48px;
  height: 48px;
  border: 1px solid var(--bh-color-line-soft);
  background: #fff;
  box-shadow: 0 10px 24px rgba(29, 29, 31, 0.08);
  place-items: center;
}

body.bhx-site div.product .flex-control-thumbs {
  display: flex;
  max-height: 570px;
  padding: 0 4px 4px 0;
  margin: 0;
  overflow-y: auto;
  flex-direction: column;
  gap: 12px;
  grid-column: 1;
  grid-row: 1;
  scrollbar-width: thin;
}

body.bhx-site div.product div.images .flex-control-thumbs li {
  width: 78px !important;
  height: 78px;
  flex: 0 0 78px;
  float: none;
  padding: 5px;
  border: 1px solid var(--bh-color-line);
  border-radius: 14px;
  background: var(--bh-color-soft-2);
}

body.bhx-site div.product .flex-control-thumbs li img {
  width: 100%;
  height: 100%;
  border-radius: 9px;
  object-fit: contain;
}

body.bhx-site div.product .flex-control-thumbs li img.flex-active {
  outline: 2px solid var(--bh-color-primary);
  outline-offset: 1px;
}

body.bhx-site div.product .summary .price {
  grid-column: 1 / -1;
  order: 4;
  margin: 28px 0 30px;
  color: var(--bh-color-ink);
  font-size: clamp(32px, 3vw, 42px);
  font-weight: 850;
}

body.bhx-site.single-product .summary > * {
  grid-column: 1 / -1;
}

body.bhx-site.single-product .summary .product_title {
  order: 2;
  margin-bottom: 18px;
}

.bhx-product-summary__badges {
  display: flex;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 10px;
  order: 1;
}

.bhx-product-summary__badges > span {
  display: inline-flex;
  min-height: 44px;
  padding: 10px 16px;
  align-items: center;
  border-radius: 11px;
  background: var(--bh-color-soft-2);
  color: var(--bh-color-text);
  font-size: 14px;
  font-weight: 750;
}

.bhx-product-summary__badges > .is-in-stock {
  background: #edf8f1;
  color: #438b5a;
}

/* Sale shares the summary badge contract instead of floating over product
   media, so galleries and thumbnail rails can resize without collisions. */
.bhx-product-summary__badges > .is-sale {
  background: #fff0e8;
  color: #d84e0b;
}

.bhx-product-summary__badges > .is-sale::before {
  width: 7px;
  height: 7px;
  margin-right: 8px;
  border-radius: 50%;
  background: var(--bh-color-primary);
  content: "";
}

.bhx-product-summary__badges > .is-in-stock::before,
.bhx-product-summary__badges > .is-out-of-stock::before {
  width: 7px;
  height: 7px;
  margin-right: 8px;
  border-radius: 50%;
  background: currentcolor;
  content: "";
}

.bhx-product-summary__badges > .is-out-of-stock {
  background: #fff1ed;
  color: #b6472c;
}

.bhx-product-summary__meta {
  display: flex;
  min-width: 0;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 18px;
  order: 3;
  color: var(--bh-color-muted);
  font-size: 14px;
}

.bhx-product-summary__meta a {
  color: inherit;
}

.bhx-product-summary__meta a:hover,
.bhx-product-summary__meta a:focus-visible {
  color: var(--bh-color-primary);
}

.bhx-product-summary__stars {
  display: inline-flex;
  gap: 2px;
  color: #d7dbe0;
  letter-spacing: 0.02em;
}

.bhx-product-summary__stars .is-filled {
  color: var(--bh-color-primary);
}

body.bhx-site.single-product .summary > .woocommerce-product-details__short-description {
  order: 3;
  margin-top: 18px;
  color: var(--bh-color-text);
}

body.bhx-site.single-product .summary > p.stock {
  display: none;
}

body.bhx-site div.product form.cart {
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: center;
  gap: 14px;
  margin-bottom: 0;
  grid-column: 1;
  order: 6;
}

.bhx-product-purchase-row > p.stock {
  display: none;
}

.bhx-product-purchase-row {
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: stretch;
  gap: 12px;
  grid-column: 1 / -1 !important;
  order: 6;
}

.bhx-product-purchase-row > form.cart,
.bhx-product-purchase-row > .bhx-stock-recovery {
  min-width: 0;
  flex: 1 1 auto;
}

.bhx-product-purchase-row > .bhx-single-actions {
  flex: 0 0 auto;
}

body.bhx-site div.product form.variations_form.cart,
body.bhx-site div.product form.cart:has(.woosb-wrap) {
  display: block;
  grid-column: 1 / -1;
}

body.bhx-site div.product .woocommerce-variation-add-to-cart {
  display: flex;
  align-items: center;
  gap: 14px;
}

body.bhx-site.single-product div.product form.cart .quantity {
  display: grid;
  width: 178px;
  height: 64px;
  flex: 0 0 178px;
  overflow: hidden;
  border: 1px solid var(--bh-color-line);
  border-radius: 14px;
  background: #fff;
  margin-right: 0;
  grid-template-columns: 52px minmax(52px, 1fr) 52px;
}

body.bhx-site.single-product div.product form.cart .quantity .qty {
  width: 100%;
  height: 62px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: 18px;
  font-weight: 750;
  text-align: center;
  appearance: textfield;
}

.bhx-quantity-stepper__button {
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bh-color-ink);
  cursor: pointer;
  font-size: 22px;
}

.bhx-quantity-stepper__button:hover {
  background: var(--bh-color-soft-2);
  color: var(--bh-color-primary);
}

.bhx-quantity-stepper__button:focus-visible {
  outline: 2px solid var(--bh-color-primary);
  outline-offset: -5px;
}

body.bhx-site div.product form.cart .variations {
  margin-bottom: 14px;
}

body.bhx-site div.product form.cart .variations th,
body.bhx-site div.product form.cart .variations td {
  padding: 6px 10px 6px 0;
  text-align: left;
}

body.bhx-site.woocommerce div.product form.cart .button,
body.bhx-site div.product form.cart .button,
body.bhx-site.woocommerce #payment #place_order,
body.bhx-site .woocommerce #payment #place_order {
  background: var(--bh-color-primary) !important;
  color: #fff !important;
}

body.bhx-site.single-product div.product form.cart .single_add_to_cart_button {
  display: inline-flex;
  min-width: 0;
  min-height: 64px;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border-radius: 14px;
  font-size: 17px;
}

.bhx-single-cart-icon {
  width: 22px;
  height: 22px;
}

.bhx-single-actions {
  display: flex;
  margin: 0;
  flex-wrap: nowrap;
  gap: 8px;
  grid-column: auto !important;
  order: 6;
}

body.bhx-site.single-product .summary:has(form.variations_form) .bhx-single-actions,
body.bhx-site.single-product .summary:has(form.cart .woosb-wrap) .bhx-single-actions {
  margin-top: 0;
  grid-column: auto !important;
}

/** Recovery CTA for unavailable products; the target sits above related cards. */
.bhx-stock-recovery {
  margin: 0;
  grid-column: auto !important;
  order: 6;
}

.bhx-anchor-target {
  display: block;
  scroll-margin-top: 24px;
}

.bhx-single-actions .bhx-button {
  width: 64px;
  min-width: 64px;
  height: 64px;
  min-height: 64px;
  padding: 0;
  border-radius: 14px;
}

.bhx-single-actions__label {
  display: none;
}

.bhx-single-actions .bhx-button.is-active {
  border-color: var(--bh-color-primary);
  color: var(--bh-color-primary);
}

.bhx-product-consultation {
  display: grid;
  min-height: 104px;
  padding: 20px;
  margin-top: 22px;
  align-items: center;
  border: 1px solid var(--bh-color-line-soft);
  border-radius: 16px;
  background: var(--bh-color-soft-2);
  grid-template-columns: 54px minmax(0, 1fr) 28px;
  gap: 16px;
  order: 7;
  transition: border-color 160ms ease, background-color 160ms ease;
}

.bhx-product-consultation:hover,
.bhx-product-consultation:focus-visible {
  border-color: color-mix(in srgb, var(--bh-color-primary), #fff 55%);
  background: #fff7f2;
}

.bhx-product-consultation__icon {
  display: grid;
  width: 54px;
  height: 54px;
  border-radius: 13px;
  background: #e2e5e9;
  color: var(--bh-color-primary);
  place-items: center;
}

.bhx-product-consultation strong,
.bhx-product-consultation small {
  display: block;
}

.bhx-product-consultation strong {
  margin-bottom: 7px;
  color: var(--bh-color-ink);
  font-size: 17px;
}

.bhx-product-consultation small {
  color: var(--bh-color-muted);
  font-size: 13px;
}

.bhx-product-consultation__arrow {
  color: var(--bh-color-primary);
}

.bhx-product-service-facts {
  display: grid;
  padding: 24px 2px 4px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 24px;
  order: 8;
}

.bhx-product-service-facts > div {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  gap: 12px;
}

.bhx-product-service-facts .bhx-icon {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  color: var(--bh-color-muted);
}

.bhx-product-service-facts strong,
.bhx-product-service-facts small {
  display: block;
}

.bhx-product-service-facts strong {
  margin-bottom: 4px;
  color: var(--bh-color-ink);
  font-size: 14px;
}

.bhx-product-service-facts small {
  color: var(--bh-color-muted);
  font-size: 12px;
}

/** Product facts are editorial content, but their visual contract is reusable
    by every storefront child theme: one compact summary and calm detail cards. */
.bhx-product-highlights {
  clear: both;
  margin: 4px 0 32px;
  overflow: hidden;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius);
  background: #fff;
}

.bhx-product-highlights ul {
  display: grid;
  padding: 0;
  margin: 0;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  list-style: none;
}

.bhx-product-highlights li {
  display: flex;
  min-height: 92px;
  padding: 16px 12px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 10px;
  border-right: 1px solid var(--bh-color-line-soft);
  color: var(--bh-color-text);
  text-align: center;
  font-size: 13px;
}

.bhx-product-highlights li:last-child {
  border-right: 0;
}

.bhx-product-highlights .bhx-icon {
  width: 24px;
  height: 24px;
  color: var(--bh-color-primary);
}

.bhx-product-highlights img.bhx-product-effect-icon {
  display: block;
  object-fit: contain;
}

.bhx-product-profile {
  clear: both;
  display: grid;
  margin: 36px 0 48px;
  gap: 32px;
}

.bhx-product-profile__section h2 {
  margin: 0 0 16px;
  color: var(--bh-color-ink);
  font-size: 24px;
  line-height: 1.2;
}

.bhx-product-effects {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.bhx-product-effects article {
  display: grid;
  min-height: 100px;
  padding: 20px;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  border: 1px solid var(--bh-color-line-soft);
  border-radius: var(--bh-radius);
  background: var(--bh-color-soft-2);
}

.bhx-product-effects__icon {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 9px;
  background: color-mix(in srgb, var(--bh-color-primary) 10%, #fff);
  color: var(--bh-color-primary);
}

.bhx-product-effects__icon .bhx-icon {
  width: 20px;
  height: 20px;
}

.bhx-product-effects__icon img.bhx-product-effect-icon {
  display: block;
  object-fit: contain;
}

.bhx-product-effects__copy {
  min-width: 0;
  overflow-wrap: anywhere;
}

.bhx-product-effects h3 {
  margin: 1px 0 8px;
  color: var(--bh-color-ink);
  font-size: 16px;
  line-height: 1.3;
}

.bhx-product-effects p {
  margin: 0;
  color: var(--bh-color-muted);
  font-size: 14px;
}

.bhx-product-audience ul {
  display: grid;
  padding: 0;
  margin: 0;
  gap: 10px;
  list-style: none;
}

.bhx-product-audience li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--bh-color-text);
}

.bhx-product-audience .bhx-icon {
  width: 22px;
  height: 22px;
  padding: 3px;
  border-radius: 6px;
  background: var(--bh-color-success-bg);
  color: var(--bh-color-success);
}

.bhx-product-specifications {
  overflow: hidden;
  margin: 0;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius);
  background: #fff;
}

.bhx-product-specifications > div {
  display: grid;
  min-height: 58px;
  padding: 14px 18px;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 0.8fr);
  align-items: center;
  gap: 24px;
  border-bottom: 1px solid var(--bh-color-line-soft);
}

.bhx-product-specifications > div:last-child {
  border-bottom: 0;
}

.bhx-product-specifications dt {
  color: var(--bh-color-muted);
}

.bhx-product-specifications dd {
  margin: 0;
  color: var(--bh-color-ink);
  text-align: right;
  font-weight: 600;
}

body.bhx-site .woocommerce .quantity .qty {
  width: 76px;
  min-height: 48px;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius-sm);
}

body.bhx-site div.product .woocommerce-tabs ul.tabs {
  display: flex;
  padding: 0;
  margin: 0 0 28px;
  gap: 28px;
  overflow-x: auto;
}

body.bhx-site div.product .woocommerce-tabs ul.tabs::before,
body.bhx-site div.product .woocommerce-tabs ul.tabs li::before,
body.bhx-site div.product .woocommerce-tabs ul.tabs li::after {
  display: none;
}

body.bhx-site div.product .woocommerce-tabs ul.tabs li {
  padding: 0 0 12px;
  margin: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
}

body.bhx-site div.product .woocommerce-tabs ul.tabs li.active {
  border-bottom-color: var(--bh-color-primary);
}

/** Keep the WooCommerce tab labels on the approved prototype palette instead
    of inheriting each child site's general-purpose link color. */
body.bhx-site div.product .woocommerce-tabs ul.tabs li a {
  color: #8b9096;
}

body.bhx-site div.product .woocommerce-tabs ul.tabs li.active a,
body.bhx-site div.product .woocommerce-tabs ul.tabs li a:hover,
body.bhx-site div.product .woocommerce-tabs ul.tabs li a:focus-visible {
  color: var(--bh-color-primary);
}

body.bhx-site .woocommerce table.shop_table {
  overflow: hidden;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius);
  border-collapse: separate;
  background: #fff;
}

body.bhx-site .woocommerce table.shop_table th,
body.bhx-site .woocommerce table.shop_table td {
  padding: 16px;
  border-color: var(--bh-color-line-soft);
}

/** The generic content page is intentionally narrow for reading, but the cart
    needs the storefront container so price and subtotal columns stay useful. */
body.bhx-site.woocommerce-cart .bhx-wrap--content {
  max-width: var(--bh-container);
}

body.bhx-site.woocommerce-cart .bhx-article {
  max-width: none;
}

@media (min-width: 769px) {
  body.bhx-site.woocommerce-cart .woocommerce-cart-form table.shop_table {
    display: table;
    width: 100%;
    table-layout: fixed;
    font-size: 15px;
  }

  body.bhx-site.woocommerce-cart .woocommerce-cart-form table.shop_table th,
  body.bhx-site.woocommerce-cart .woocommerce-cart-form table.shop_table td {
    padding: 10px 12px;
  }

  body.bhx-site.woocommerce-cart .woocommerce-cart-form .product-remove {
    width: 46px;
  }

  body.bhx-site.woocommerce-cart .woocommerce-cart-form .product-thumbnail {
    width: 72px;
  }

  body.bhx-site.woocommerce-cart .woocommerce-cart-form .product-price,
  body.bhx-site.woocommerce-cart .woocommerce-cart-form .product-subtotal {
    width: 118px;
  }

  body.bhx-site.woocommerce-cart .woocommerce-cart-form .product-quantity {
    width: 120px;
  }
}

body.bhx-site.woocommerce-cart .product-price .woocommerce-Price-amount,
body.bhx-site.woocommerce-cart .product-price .woocommerce-Price-amount bdi,
body.bhx-site.woocommerce-cart .product-subtotal .woocommerce-Price-amount,
body.bhx-site.woocommerce-cart .product-subtotal .woocommerce-Price-amount bdi {
  white-space: nowrap;
}

body.bhx-site.woocommerce-cart .product-remove a.remove {
  display: inline-flex !important;
  width: 26px;
  height: 26px;
  align-items: center;
  justify-content: center;
  font-size: 0 !important;
  line-height: 1;
}

body.bhx-site.woocommerce-cart .product-remove a.remove::before {
  content: "×";
  font-size: 24px;
  line-height: 1;
  transform: translateY(-2px);
}

body.bhx-site.woocommerce-cart .woocommerce-cart-form .coupon {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

body.bhx-site.woocommerce-cart .woocommerce-cart-form #coupon_code {
  width: 240px !important;
  max-width: 100%;
}

body.bhx-site .woocommerce form.checkout,
body.bhx-site .woocommerce form.login,
body.bhx-site .woocommerce form.register,
body.bhx-site .woocommerce-MyAccount-content {
  padding: 24px;
  border: 1px solid var(--bh-color-line);
  border-radius: var(--bh-radius);
  background: #fff;
}

body.bhx-site .woocommerce-info,
body.bhx-site .woocommerce-message,
body.bhx-site .woocommerce-error {
  border: 1px solid var(--bh-color-line);
  border-top: 3px solid var(--bh-color-primary);
  border-radius: var(--bh-radius-sm);
  background: var(--bh-color-soft-2);
}

body.bhx-site .woocommerce-MyAccount-navigation ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

body.bhx-site .woocommerce-MyAccount-navigation a {
  display: block;
  padding: 12px 16px;
  border-bottom: 1px solid var(--bh-color-line-soft);
}

body.bhx-site .woocommerce-MyAccount-navigation .is-active a {
  color: var(--bh-color-primary);
  font-weight: 700;
}

/** Account endpoints are operational tables and forms, not long-form content.
    They need the storefront container before Woo splits navigation and content. */
body.bhx-site.woocommerce-account .bhx-wrap--content {
  max-width: var(--bh-container);
}

body.bhx-site.woocommerce-account .bhx-article {
  max-width: none;
}

@media (min-width: 1001px) {
  body.bhx-site.woocommerce-account .woocommerce-MyAccount-navigation {
    width: 22%;
  }

  body.bhx-site.woocommerce-account .woocommerce-MyAccount-content {
    width: 75%;
    padding: 20px;
  }

  body.bhx-site.woocommerce-account .woocommerce-orders-table {
    width: 100%;
    table-layout: fixed;
    font-size: 14px;
  }

  body.bhx-site.woocommerce-account .woocommerce-orders-table th,
  body.bhx-site.woocommerce-account .woocommerce-orders-table td {
    padding: 12px 10px;
  }

  body.bhx-site.woocommerce-account .woocommerce-orders-table__header-order-number {
    width: 18%;
  }

  body.bhx-site.woocommerce-account .woocommerce-orders-table__header-order-date,
  body.bhx-site.woocommerce-account .woocommerce-orders-table__header-order-status {
    width: 17%;
  }

  body.bhx-site.woocommerce-account .woocommerce-orders-table__header-order-total {
    width: 24%;
  }

  body.bhx-site.woocommerce-account .woocommerce-orders-table__header-order-actions {
    width: 24%;
  }
}

body.bhx-site.woocommerce-account .woocommerce-orders-table__cell-order-total,
body.bhx-site.woocommerce-account .woocommerce-orders-table__cell-order-total .woocommerce-Price-amount,
body.bhx-site.woocommerce-account .woocommerce-orders-table__cell-order-total bdi {
  white-space: nowrap;
}

body.bhx-site.woocommerce-account .woocommerce-orders-table__cell-order-actions .button {
  width: 100%;
  min-height: 40px;
  padding: 0 10px;
  font-size: 13px;
  white-space: nowrap;
}

body.bhx-site.woocommerce-account .woocommerce-orders-table__cell-order-actions .button + .button {
  margin-top: 6px;
}

/* Footer */

.bhx-footer {
  background: #1a1a1c;
  color: #c5c9ce;
}

.bhx-footer__grid {
  display: grid;
  padding-block: 52px 38px;
  grid-template-columns: 1.25fr 0.85fr 0.9fr 1.3fr;
  gap: clamp(28px, 3.4vw, 48px);
}

.bhx-logo--footer .bhx-logo__primary {
  color: #fff;
}

.bhx-footer__brand p {
  max-width: 280px;
  margin: 18px 0 22px;
  color: #a3a8ae;
  font-size: 13px;
  line-height: 1.55;
}

.bhx-footer__socials {
  display: flex;
  gap: 8px;
}

.bhx-footer__socials a {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.04);
  transition: border-color var(--bh-transition), background-color var(--bh-transition);
}

.bhx-footer__socials a:hover,
.bhx-footer__socials a:focus-visible {
  border-color: rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.1);
}

body.bhx-site .bhx-footer__social-link--telegram img,
body.bhx-site .bhx-footer__social-link--whatsapp img {
  width: 26px;
  height: 26px;
}

.bhx-footer__heading,
.bhx-footer__contacts h2 {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  padding: 0;
  margin: 0 0 18px;
  border: 0;
  background: none;
  color: #fff;
  font-size: 15px;
  font-weight: 750;
  text-align: left;
}

.bhx-footer__heading span {
  display: none;
}

.bhx-footer__menu {
  display: flex;
  flex-direction: column;
  gap: 11px;
  font-size: 13px;
  line-height: 1.4;
}

.bhx-footer__menu a:hover,
.bhx-footer__contacts a:hover {
  color: var(--bh-color-primary);
}

.bhx-footer__contacts {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  font-size: 14px;
}

.bhx-footer__phone {
  color: #fff;
  font-size: 16px;
  font-weight: 750;
  line-height: 1.2;
  white-space: nowrap;
}

.bhx-footer__phone--primary {
  font-size: 20px;
}

.bhx-footer__contact-note {
  margin: 4px 0 14px;
  color: #8f959c;
  font-size: 11px;
  line-height: 1.35;
}

.bhx-footer__email {
  margin-top: 2px;
  color: #d7dadd;
  font-size: 13px;
}

.bhx-footer__contact-actions {
  display: flex;
  margin-top: 18px;
  flex-wrap: wrap;
  gap: 8px;
}

.bhx-footer__contact-actions a {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  transition: border-color var(--bh-transition), background-color var(--bh-transition);
}

.bhx-footer__contact-actions a:hover,
.bhx-footer__contact-actions a:focus-visible {
  border-color: rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.bhx-footer__contact-actions img {
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.bhx-footer__bottom {
  display: flex;
  padding-block: 20px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  color: #92979d;
  font-size: 11px;
}

.bhx-footer__legal {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px 22px;
}

.bhx-footer__legal a:hover,
.bhx-footer__legal a:focus-visible {
  color: #fff;
}

.bhx-footer__disclaimer {
  padding-block: 0 26px;
  color: #747a81;
  font-size: 10px;
  line-height: 1.5;
}

@media (max-width: 1000px) {
  .bhx-utility .bhx-city-picker--desktop {
    display: block;
  }

  .bhx-category-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .bhx-wrap {
    width: min(100% - 32px, var(--bh-container));
  }

  .bhx-utility__nav,
  .bhx-primary-nav,
  .bhx-catalog,
  .bhx-header-action--compare {
    display: none;
  }

  .bhx-header__burger {
    display: grid;
  }

  .bhx-header__main {
    flex-wrap: wrap;
    gap: 10px;
    padding-block: 12px;
  }

  .bhx-city-picker--desktop {
    display: none;
  }

  .bhx-city-picker--mobile {
    display: block;
    margin: -12px 0 22px;
  }

  .bhx-city-picker--mobile .bhx-city-picker__toggle {
    width: 100%;
    max-width: none;
    justify-content: flex-start;
    padding: 0 11px;
    border: 1px solid var(--bh-color-line-soft);
    border-radius: 10px;
    background: var(--bh-color-soft-2);
  }

  .bhx-city-picker--mobile .bhx-city-picker__chevron {
    margin-left: auto;
  }

  .bhx-city-picker--mobile .bhx-city-picker__panel {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
    margin-top: 8px;
    box-shadow: var(--bh-shadow);
  }

  .bhx-contact-bar__inner {
    padding-block: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .bhx-contact-bar__telegram {
    grid-column: span 2;
  }

  .bhx-logo {
    order: 2;
  }

  .bhx-header__burger {
    order: 1;
  }

  .bhx-header-actions {
    order: 3;
    margin-left: auto;
  }

  .bhx-search {
    order: 4;
    flex-basis: 100%;
  }

  .bhx-hero {
    grid-template-columns: 1fr 0.8fr;
  }

  .bhx-hero__content {
    padding: 40px;
  }

  .bhx-feature-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bhx-product-grid,
  body.bhx-site.woocommerce ul.products,
  body.bhx-site .woocommerce ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .bhx-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /** Match the prototype tablet transition: both promos stack, then the
      partner details use the full card width instead of forming thin columns. */
  .bhx-home-duo,
  .bhx-home-duo__partner {
    grid-template-columns: 1fr;
  }

  /** At tablet widths a sidebar would recreate the narrow orders table bug;
      the account menu becomes a compact horizontal row above full-width data. */
  body.bhx-site.woocommerce-account .woocommerce-MyAccount-navigation,
  body.bhx-site.woocommerce-account .woocommerce-MyAccount-content {
    float: none;
    width: 100%;
  }

  body.bhx-site.woocommerce-account .woocommerce-MyAccount-navigation {
    margin-bottom: 20px;
  }

  body.bhx-site.woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: flex;
    padding-bottom: 4px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
  }

  body.bhx-site.woocommerce-account .woocommerce-MyAccount-navigation li {
    flex: none;
    scroll-snap-align: start;
  }

  body.bhx-site.woocommerce-account .woocommerce-MyAccount-navigation a {
    border-right: 1px solid var(--bh-color-line-soft);
    white-space: nowrap;
  }

  body.bhx-site.woocommerce-account .woocommerce-orders-table {
    font-size: 13px;
  }

  body.bhx-site.woocommerce-account .woocommerce-orders-table th,
  body.bhx-site.woocommerce-account .woocommerce-orders-table td {
    padding: 10px 8px;
  }
}

@media (max-width: 768px) {
	.bhx-commerce-layout {
		display: block;
	}

	.bhx-catalog-filters {
		position: static;
		margin-bottom: 22px;
	}
  .bhx-category-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 8px;
  }

  .bhx-category-card {
    flex: 0 0 132px;
    scroll-snap-align: start;
  }
  .bhx-utility {
    display: none;
  }

  .bhx-contact-bar__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .bhx-contact-bar__telegram {
    grid-column: 1 / -1;
  }

  .bhx-contact-bar__telegram {
    padding: 12px 14px;
    font-size: 12px;
  }

  .bhx-contact-bar__telegram > strong {
    font-size: 12px;
  }

  .bhx-contact-bar__telegram-links a {
    min-height: 32px;
  }

  .bhx-contact-bar__consultation {
    width: 100%;
  }

  .bhx-main {
    padding: 32px 0 54px;
  }

  .bhx-section {
    margin-bottom: 46px;
  }

  .bhx-hero {
    display: flex;
    min-height: 0;
    flex-direction: column-reverse;
    text-align: center;
  }

  .bhx-hero__content {
    padding: 16px 24px 30px;
  }

  .bhx-hero__media {
    width: 100%;
    min-height: 220px;
    padding: 0;
  }

  body.bhx-site .bhx-hero__image {
    height: 220px;
    max-height: none;
  }

  .bhx-hero__placeholder {
    width: 120px;
    height: 160px;
    border-radius: 20px 20px 26px 26px;
  }

  .bhx-hero__placeholder span,
  .bhx-hero__placeholder strong {
    font-size: 18px;
  }

  .bhx-hero h1,
  .bhx-hero h2 {
    font-size: clamp(30px, 9vw, 42px);
  }

  .bhx-hero .bhx-button {
    width: 100%;
  }

  .bhx-hero-slider__controls {
    bottom: 4px;
    left: 50%;
    transform: translateX(-50%);
  }

  .bhx-hero__content {
    padding-bottom: 52px;
  }

  .bhx-feature-strip {
    display: flex;
    /* Full-bleed against the actual wrapper inset; fixed -16px overflowed
       narrow viewports when a child theme used a 12px mobile gutter. */
    margin-inline: calc((100vw - 100%) / -2);
    padding: 0 16px 6px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }

  .bhx-feature-card {
    min-width: 240px;
    scroll-snap-align: start;
  }

  .bhx-promos {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    margin-inline: 0;
  }

  .bhx-store-benefits {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

	.bhx-promo--large {
		grid-row: auto;
	}

  /* Preserve the prototype's compact stacked cards instead of allowing the
     uploaded artwork to dictate arbitrary row heights. */
  .bhx-promo--large {
    min-height: 300px;
  }

  .bhx-promo:not(.bhx-promo--large) {
    min-height: 154px;
  }

  .bhx-home-duo__consultation {
    padding: 30px 22px;
    align-items: center;
    text-align: center;
  }

  .bhx-home-duo__consultation-copy {
    display: flex;
    align-items: center;
    flex-direction: column;
  }

  .bhx-home-duo__doctor {
    position: static;
    order: -1;
    margin: 0 0 8px;
    font-size: 58px;
    opacity: 1;
    filter: none;
  }

  .bhx-home-duo h2 {
    font-size: 22px;
  }

  .bhx-home-duo__consultation p {
    max-width: 100%;
  }

  .bhx-home-duo__button {
    width: 100%;
  }

  .bhx-home-duo__partner {
    padding: 30px 22px;
    gap: 24px;
  }

  .bhx-home-duo__partner h2 {
    font-size: 24px;
  }

  .bhx-home-duo__partner-copy > p:not(.bhx-home-duo__kicker) {
    font-size: 14px;
  }

  .bhx-home-duo__perk {
    padding: 14px 16px;
    gap: 12px;
  }

  .bhx-home-duo__perk > span {
    min-width: 58px;
    font-size: 20px;
  }

  .bhx-promo {
    min-height: 200px;
    padding: 24px;
  }

  .bhx-product-grid,
  body.bhx-site.woocommerce ul.products,
  body.bhx-site .woocommerce ul.products {
    /* Woo's columns-N selector otherwise keeps three narrow cards and pushes
       the favorite/compare controls beyond the mobile viewport. */
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px;
  }

  body.bhx-site.woocommerce ul.products li.product,
  body.bhx-site .woocommerce ul.products li.product,
  .bhx-product-card {
    min-height: 322px;
    padding: 12px;
  }

  .bhx-product-card__image {
    height: auto;
  }

  .bhx-product-card__top {
    top: 12px;
    right: 12px;
    left: 12px;
  }

  .bhx-product-card__title {
    font-size: 14px;
  }

  .bhx-product-card__price {
    font-size: 16px;
  }

  .bhx-article-grid,
  .bhx-content-grid {
    display: flex;
    margin-inline: calc((100vw - 100%) / -2);
    padding: 0 16px 6px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }

  .bhx-article-card,
  .bhx-content-card {
    min-width: min(82vw, 330px);
    scroll-snap-align: start;
  }

  /* A blog archive is a reading and discovery flow, so visitors should move
     through posts with the page's native vertical scroll. Homepage article
     previews intentionally keep the compact horizontal rail above. */
  .bhx-content-grid--archive {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    margin-inline: 0;
    padding: 0;
    overflow: visible;
    scroll-snap-type: none;
  }

  .bhx-content-grid--archive .bhx-content-card {
    min-width: 0;
    scroll-snap-align: none;
  }

  .bhx-content-grid--archive .navigation.pagination {
    grid-column: 1 / -1;
  }

  .bhx-review {
    width: 290px;
    min-height: 236px;
    padding: 22px;
  }

  .bhx-page-header h1,
  .bhx-article h1,
  body.bhx-site .woocommerce-products-header__title,
  body.bhx-site .product_title {
    font-size: 34px;
  }

  body.bhx-site div.product div.images,
  body.bhx-site div.product div.summary {
    float: none;
    width: 100%;
  }

  body.bhx-site.single-product div.product {
    display: block;
  }

  body.bhx-site.single-product div.product > .woocommerce-product-gallery,
  body.bhx-site.single-product div.product > .summary {
    margin-bottom: 30px;
  }

  body.bhx-site.single-product .woocommerce-product-gallery:has(.flex-control-thumbs) {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 10px;
  }

  body.bhx-site div.product div.images .flex-control-thumbs li {
    width: 60px !important;
    height: 60px;
    flex-basis: 60px;
  }

  body.bhx-site.single-product .summary .product_title {
    font-size: clamp(30px, 9vw, 42px);
  }

  body.bhx-site.single-product .summary > form.cart,
  body.bhx-site.single-product .summary > .bhx-stock-recovery {
    grid-column: 1 / -1 !important;
  }

  .bhx-product-purchase-row {
    flex-wrap: wrap;
  }

  .bhx-product-purchase-row > .bhx-single-actions {
    margin-top: 0;
    justify-content: flex-start;
  }

  body.bhx-site.single-product div.product form.cart {
    flex-wrap: wrap;
  }

  body.bhx-site.single-product div.product form.cart .quantity {
    width: 140px;
    flex-basis: 140px;
    grid-template-columns: 42px minmax(52px, 1fr) 42px;
  }

  body.bhx-site.single-product div.product form.cart .single_add_to_cart_button {
    min-width: min(190px, 100%);
  }

  .bhx-product-consultation {
    grid-template-columns: 48px minmax(0, 1fr) 24px;
    padding: 16px;
  }

  .bhx-product-consultation__icon {
    width: 48px;
    height: 48px;
  }

  .bhx-product-service-facts {
    grid-template-columns: 1fr;
    gap: 16px;
  }

	body.bhx-site .woocommerce table.shop_table_responsive tr td::before {
    color: var(--bh-color-muted);
	}

  .bhx-product-highlights ul,
  .bhx-product-effects {
    grid-template-columns: 1fr 1fr;
  }

  .bhx-product-highlights li {
    min-height: 88px;
    border-bottom: 1px solid var(--bh-color-line-soft);
  }

  .bhx-product-profile {
    margin-block: 28px 40px;
    gap: 26px;
  }

  .bhx-product-profile__section h2 {
    font-size: 22px;
  }

  .bhx-product-specifications > div {
    grid-template-columns: minmax(0, 1fr) minmax(120px, 1fr);
    gap: 14px;
  }

  body.bhx-site.woocommerce-account .woocommerce-MyAccount-content {
    padding: 16px;
  }

  /** Woo renders the order number as a tbody TH and hides it in its default
      responsive table. Restore it as the first labeled row and make every
      order field consume the card width instead of inheriting table sizing. */
  body.bhx-site.woocommerce-account .woocommerce-orders-table tbody,
  body.bhx-site.woocommerce-account .woocommerce-orders-table tr,
  body.bhx-site.woocommerce-account .woocommerce-orders-table td,
  body.bhx-site.woocommerce-account .woocommerce-orders-table th.woocommerce-orders-table__cell-order-number {
    display: block;
    box-sizing: border-box;
    width: 100%;
  }

  body.bhx-site.woocommerce-account .woocommerce-orders-table th.woocommerce-orders-table__cell-order-number {
    padding: 10px 8px;
    border-color: var(--bh-color-line-soft);
    text-align: right !important;
  }

  body.bhx-site.woocommerce-account .woocommerce-orders-table th.woocommerce-orders-table__cell-order-number::before {
    content: attr(data-title) ": ";
    float: left;
    color: var(--bh-color-muted);
    font-weight: 700;
  }

  body.bhx-site.woocommerce-account .woocommerce-orders-table__cell-order-actions .button {
    min-height: 44px;
  }

  .bhx-footer__grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .bhx-footer__heading {
    padding: 15px 0;
    margin: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }

  .bhx-footer__heading span {
    display: inline;
    font-size: 20px;
  }

  .bhx-footer__content {
    display: none;
    padding: 14px 0 8px;
  }

  .bhx-footer__column.is-open .bhx-footer__content {
    display: block;
  }

  .bhx-footer__column.is-open .bhx-footer__heading span {
    transform: rotate(45deg);
  }

  .bhx-footer__contacts {
    padding-top: 20px;
  }

  .bhx-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }

  .bhx-footer__legal {
    justify-content: flex-start;
  }
}

@media (max-width: 430px) {
  .bhx-wrap {
    width: min(100% - 24px, var(--bh-container));
  }

  .bhx-header-action--account {
    display: none;
  }

  .bhx-logo {
    font-size: 21px;
  }

  .bhx-contact-bar__hours,
  .bhx-contact-bar__email,
  .bhx-contact-bar__whatsapp,
  .bhx-contact-bar__consultation {
    min-height: 54px;
    justify-content: center;
  }

  .bhx-section-heading h2,
  .bhx-callout h2,
  .bhx-promo h2 {
    font-size: 22px;
  }

  .bhx-section-heading {
    align-items: flex-end;
  }

  .bhx-promo {
    align-items: center;
    flex-direction: row;
    padding: 22px;
  }

  .bhx-promo--large {
    min-height: 313px;
    padding: 24px 20px;
  }

  .bhx-promo__media {
    width: 64px;
    height: 64px;
    flex-basis: 64px;
  }

  .bhx-promo:not(.bhx-promo--large) .bhx-promo__media {
    right: 22px;
  }

  .bhx-promo:not(.bhx-promo--large) h2 {
    max-width: 245px;
    font-size: 18px;
    line-height: 1.4;
  }

  .bhx-promo:not(.bhx-promo--large) p {
    max-width: 260px;
    font-size: 12px;
    line-height: 1.4;
  }

  .bhx-promo--large .bhx-promo__media {
    position: absolute;
    right: 22px;
    bottom: 18px;
    width: 118px;
    height: 118px;
  }

  .bhx-promo--large h2 {
    max-width: 260px;
    font-size: 34px;
  }

  .bhx-store-benefit {
    min-height: 106px;
    gap: 12px;
    padding: 16px 14px;
  }

  .bhx-store-benefit__icon {
    width: 26px;
    height: 26px;
    flex-basis: 26px;
  }

  .bhx-store-benefit strong {
    font-size: 13px;
  }

  .bhx-callout {
    min-height: 0;
    align-items: flex-start;
    padding: 24px;
  }

  .bhx-callout > span {
    width: 52px;
    height: 52px;
  }

  .bhx-product-card__image {
    height: 130px;
  }

  .bhx-product-card__favorite,
  .bhx-product-card__compare {
    width: 34px;
    height: 34px;
  }

  .bhx-empty-state__actions {
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  .bhx-reviews__mask {
    padding: 0 16px 8px;
    overflow-x: auto;
    mask-image: none;
    -webkit-mask-image: none;
    scroll-snap-type: x mandatory;
  }

  .bhx-reviews__track {
    animation: none !important;
    will-change: auto;
  }

  .bhx-reviews__sequence[aria-hidden="true"] {
    display: none;
  }

  .bhx-review {
    scroll-snap-align: start;
  }
}

/** Customer clarification 09–14: one full-width service header, an image-led
    hero, and reusable component geometry. These rules live after legacy
    breakpoints so old contact-strip selectors cannot recreate a double header. */
.bhx-site-frame {
  width: 100%;
}

.bhx-utility__inner {
  min-height: 52px;
  gap: 20px;
}

.bhx-utility__hours,
.bhx-utility__email {
  white-space: nowrap;
}

.bhx-utility__consultation {
  display: flex;
  margin-left: auto;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.bhx-utility__consultation strong {
  margin-right: 4px;
  color: var(--bh-color-ink);
  font-size: 12px;
}

.bhx-messenger-link {
  display: inline-flex;
  min-height: 34px;
  padding: 0 11px;
  align-items: center;
  gap: 6px;
  border-radius: 9px;
  background: var(--bh-color-primary);
  color: #fff !important;
  font-weight: 750;
}

.bhx-messenger-link img {
  width: 18px;
  height: 18px;
  object-fit: contain;
}

.bhx-header-action {
  width: auto;
  min-width: 52px;
  height: 52px;
  padding: 5px 8px;
  grid-template-rows: 24px auto;
  gap: 2px;
}

.bhx-header-action__label {
  font-size: 10px;
  font-weight: 650;
  line-height: 1;
  white-space: nowrap;
}

.bhx-header-action__badge {
  right: 4px;
}

.bhx-hero {
  display: block;
  min-height: 440px;
  background: #30343a;
}

.bhx-hero::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, rgba(18, 20, 24, 0.86) 0%, rgba(18, 20, 24, 0.64) 43%, rgba(18, 20, 24, 0.08) 78%);
  pointer-events: none;
}

.bhx-hero__content {
  position: relative;
  z-index: 2;
  width: min(66%, 720px);
  padding: 64px 56px 92px;
  color: #fff;
}

.bhx-hero__content .bhx-kicker,
.bhx-hero__content .bhx-hero__text {
  color: rgba(255, 255, 255, 0.86);
}

.bhx-hero__media {
  position: absolute;
  z-index: 0;
  inset: 0;
  min-height: 0;
  background: #30343a;
}

.bhx-home-duo__consultation-copy,
.bhx-home-duo__partner-copy {
  display: flex;
  height: 100%;
  align-items: flex-start;
  flex-direction: column;
}

.bhx-home-duo__button {
  margin-top: auto;
}

.bhx-home-duo__doctor {
  right: 12px;
  bottom: 8px;
  max-width: 34%;
  overflow: hidden;
  font-size: 76px;
  opacity: 0.62;
}

@media (max-width: 1000px) {
  .bhx-utility .bhx-city-picker--desktop {
    display: block;
  }

  .bhx-utility__inner {
    flex-wrap: wrap;
    gap: 8px 14px;
    padding-block: 8px;
  }

  .bhx-utility__consultation {
    margin-left: 0;
  }

  .bhx-header-action__label {
    display: none;
  }

  .bhx-header-action {
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    display: grid;
  }
}

@media (max-width: 768px) {
  .bhx-utility {
    display: block;
  }

  .bhx-utility__inner {
    min-height: 0;
    justify-content: center;
    font-size: 11px;
  }

  .bhx-utility__hours {
    display: none;
  }

  .bhx-utility__consultation {
    width: 100%;
    justify-content: center;
  }

  .bhx-messenger-link {
    min-height: 32px;
    padding-inline: 9px;
  }

  .bhx-hero {
    display: block;
    min-height: 410px;
    text-align: left;
  }

  .bhx-hero::after {
    background: linear-gradient(90deg, rgba(18, 20, 24, 0.86), rgba(18, 20, 24, 0.46));
  }

  .bhx-hero__content {
    width: 100%;
    padding: 46px 24px 72px;
  }

  .bhx-hero__media {
    position: absolute;
    width: auto;
    min-height: 0;
  }

  body.bhx-site .bhx-hero__image {
    height: 100%;
  }

  .bhx-hero .bhx-button {
    width: auto;
  }
}

@media (max-width: 520px) {
  .bhx-utility__email {
    display: none;
  }

  .bhx-utility__inner {
    justify-content: space-between;
  }

  /* Keep the consultation promise and both channel names visible on phones.
     The dedicated second row avoids ambiguous icon-only service controls. */
  .bhx-utility__consultation {
    width: 100%;
    margin-left: 0;
    justify-content: center;
    gap: 6px;
  }

  .bhx-utility__consultation strong {
    margin-right: 2px;
    font-size: 11px;
  }

  .bhx-messenger-link {
    width: auto;
    min-height: 32px;
    padding: 0 8px;
    justify-content: center;
    font-size: 11px;
  }

  .bhx-product-card__image {
    height: auto;
  }
}
