.dekmann-shop-shell {
  background: var(--dk-bg);
  padding: clamp(1.1rem, 2.4vw, 2rem) 0 clamp(3rem, 7vw, 6rem);
}

.dekmann-shop-head {
  align-items: end;
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
  margin-bottom: 2rem;
}

.dekmann-shop-head h1 {
  font-size: clamp(2.3rem, 5vw, 4.5rem);
  margin: 0;
}

.dekmann-shop-head p {
  color: var(--dk-muted);
  font-size: 1.05rem;
  margin: 0;
}

.dekmann-shop-breadcrumbs {
  color: var(--dk-muted);
  font-size: 0.84rem;
  line-height: 1.4;
  margin-bottom: 0.75rem;
}

.dekmann-shop-breadcrumbs a {
  color: var(--dk-muted);
  font-weight: 500;
  text-decoration: none;
}

.dekmann-shop-breadcrumbs a:hover,
.dekmann-shop-breadcrumbs a:focus-visible {
  color: var(--dk-red);
  text-decoration: underline;
}

.dekmann-shop-content {
  background: var(--dk-white);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--dk-radius);
  box-shadow: var(--dk-shadow);
  padding: clamp(1.25rem, 3vw, 2.25rem);
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
  margin-bottom: 1.5rem;
}

.woocommerce .woocommerce-ordering select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .quantity .qty {
  border: 1px solid var(--dk-border);
  border-radius: 6px;
  min-height: 46px;
  padding: 0.75rem 0.9rem;
}

.woocommerce ul.products {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  background: var(--dk-white);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--dk-radius);
  float: none;
  margin: 0;
  overflow: hidden;
  padding: 1rem;
  width: auto;
}

.woocommerce ul.products li.product a img {
  aspect-ratio: 1 / 1;
  border-radius: 6px;
  margin: 0 0 1rem;
  object-fit: cover;
  width: 100%;
}

.woocommerce-loop-product__title,
.woocommerce div.product .product_title {
  color: var(--dk-dark);
  font-family: var(--font-heading);
  text-transform: uppercase;
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--dk-red);
  font-weight: 800;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.wc-block-components-button {
  align-items: center;
  background: var(--dk-red);
  border: 0;
  border-radius: 6px;
  color: var(--dk-white);
  display: inline-flex;
  font-weight: 800;
  justify-content: center;
  min-height: 46px;
  padding: 0.75rem 1rem;
  text-transform: uppercase;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.wc-block-components-button:hover {
  background: #b91212;
  color: var(--dk-white);
}

.woocommerce span.onsale {
  background: var(--dk-yellow);
  border-radius: 4px;
  color: var(--dk-dark);
  font-weight: 900;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-top-color: var(--dk-red);
  border-radius: var(--dk-radius);
}

.woocommerce-message::before,
.woocommerce-info::before {
  color: var(--dk-red);
}

.woocommerce table.shop_table {
  border-color: var(--dk-border);
  border-radius: var(--dk-radius);
}

.woocommerce table.shop_table th {
  color: var(--dk-dark);
  font-family: var(--font-heading);
  text-transform: uppercase;
}

.woocommerce-cart-form,
.cart-collaterals,
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading {
  margin-top: 1.5rem;
}

.woocommerce-checkout #order_review_heading {
  font-size: 1.75rem;
}

.woocommerce div.product div.images img {
  border-radius: var(--dk-radius);
}

.woocommerce div.product .summary {
  background: var(--dk-bg);
  border-radius: var(--dk-radius);
  padding: clamp(1rem, 3vw, 2rem);
}

.dekmann-product-shell {
  background: var(--dk-bg);
}

.product-b2b-layout {
  display: grid;
  gap: 1.5rem;
}

.product-b2b-hero {
  align-items: stretch;
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1.1fr);
}

.product-b2b-media,
.product-b2b-summary,
.product-b2b-specs,
.product-b2b-description,
.product-b2b-documents,
.product-b2b-analogs {
  background: var(--dk-white);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--dk-radius);
  box-shadow: var(--dk-shadow);
}

.product-b2b-media {
  display: grid;
  gap: 1rem;
  padding: clamp(1rem, 3vw, 1.5rem);
}

.product-b2b-image {
  align-items: center;
  aspect-ratio: 1 / 1;
  background: linear-gradient(135deg, rgba(30, 35, 40, 0.04), rgba(230, 183, 58, 0.12));
  border: 1px solid var(--dk-border);
  border-radius: 8px;
  display: flex;
  justify-content: center;
  overflow: hidden;
}

.product-b2b-image img {
  display: block;
  height: 100%;
  object-fit: contain;
  padding: 1rem;
  width: 100%;
}

.product-b2b-media-note {
  align-items: flex-start;
  color: var(--dk-muted);
  display: flex;
  font-size: 0.92rem;
  gap: 0.6rem;
  line-height: 1.45;
}

.product-b2b-media-note i {
  color: var(--dk-red);
  margin-top: 0.2rem;
}

.product-b2b-summary {
  display: grid;
  gap: 1.25rem;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.product-b2b-title-row h1 {
  color: var(--dk-dark);
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.6rem);
  line-height: 0.98;
  margin: 0.3rem 0 0;
  text-transform: uppercase;
}

.product-b2b-meta {
  color: var(--dk-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.95rem;
  gap: 0.75rem 1rem;
}

.product-b2b-meta a,
.product-b2b-cart-link {
  color: var(--dk-red);
  font-weight: 800;
}

.product-b2b-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.product-b2b-badges span {
  background: var(--dk-bg);
  border: 1px solid var(--dk-border);
  border-radius: 999px;
  color: var(--dk-dark);
  font-size: 0.82rem;
  font-weight: 900;
  padding: 0.45rem 0.75rem;
  text-transform: uppercase;
}

.product-b2b-lead {
  color: var(--dk-muted);
  font-size: 1.05rem;
  line-height: 1.65;
}

.product-b2b-lead p {
  margin: 0;
}

.product-b2b-request-card {
  background: var(--dk-dark);
  border-radius: 8px;
  color: var(--dk-white);
  display: grid;
  gap: 1rem;
  padding: clamp(1rem, 3vw, 1.5rem);
}

.product-b2b-price-label {
  color: var(--dk-yellow);
  display: block;
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.product-b2b-price {
  display: block;
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  line-height: 1;
  margin-top: 0.35rem;
  text-transform: uppercase;
}

.product-b2b-request-card p {
  color: rgba(255, 255, 255, 0.78);
  margin: 0.75rem 0 0;
}

.product-b2b-cart-form {
  display: grid;
  gap: 0.45rem;
}

.product-b2b-cart-form label {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.8rem;
  font-weight: 900;
  text-transform: uppercase;
}

.product-b2b-cart-actions,
.product-b2b-request-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.product-b2b-cart-actions input {
  border: 0;
  border-radius: 6px;
  min-height: 48px;
  padding: 0.75rem;
  width: 110px;
}

.product-b2b-request-links {
  align-items: center;
}

.product-b2b-request-links .btn-brand-outline {
  border-color: rgba(255, 255, 255, 0.4);
  color: var(--dk-white);
}

.product-b2b-jump-nav {
  background: var(--dk-white);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--dk-radius);
  box-shadow: var(--dk-shadow);
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.75rem;
  position: sticky;
  top: 0.75rem;
  z-index: 3;
}

.product-b2b-jump-nav a {
  background: var(--dk-bg);
  border: 1px solid var(--dk-border);
  border-radius: 999px;
  color: var(--dk-dark);
  font-size: 0.82rem;
  font-weight: 900;
  padding: 0.55rem 0.85rem;
  text-transform: uppercase;
}

.product-b2b-jump-nav a:hover {
  background: var(--dk-red);
  border-color: var(--dk-red);
  color: var(--dk-white);
}

.product-b2b-specs,
.product-b2b-description,
.product-b2b-documents,
.product-b2b-analogs {
  padding: clamp(1.25rem, 3vw, 2rem);
}

.product-b2b-section-head {
  align-items: end;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}

.product-b2b-section-head h2 {
  color: var(--dk-dark);
  font-family: var(--font-heading);
  font-size: clamp(1.7rem, 3vw, 2.6rem);
  margin: 0.25rem 0 0;
  text-transform: uppercase;
}

.product-b2b-spec-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
}

.product-b2b-spec-grid div {
  background: var(--dk-bg);
  border: 1px solid var(--dk-border);
  border-radius: 8px;
  padding: 1rem;
}

.product-b2b-spec-grid dt {
  color: var(--dk-muted);
  font-size: 0.78rem;
  font-weight: 900;
  margin-bottom: 0.45rem;
  text-transform: uppercase;
}

.product-b2b-spec-grid dd {
  color: var(--dk-dark);
  font-size: 1.05rem;
  font-weight: 900;
  margin: 0;
}

.product-b2b-description-content {
  color: var(--dk-muted);
  font-size: 1.02rem;
  line-height: 1.7;
}

.product-b2b-description-content > *:last-child {
  margin-bottom: 0;
}

.product-b2b-document-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.product-b2b-document-card {
  background: var(--dk-bg);
  border: 1px solid var(--dk-border);
  border-radius: 8px;
  color: var(--dk-dark);
  display: grid;
  gap: 0.7rem;
  min-height: 190px;
  padding: 1rem;
}

a.product-b2b-document-card:hover {
  border-color: var(--dk-red);
  color: var(--dk-dark);
  transform: translateY(-2px);
}

.product-b2b-document-card span {
  align-items: center;
  background: var(--dk-red);
  border-radius: 999px;
  color: var(--dk-white);
  display: inline-flex;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.product-b2b-document-card strong {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  line-height: 1.1;
  text-transform: uppercase;
}

.product-b2b-document-card small {
  color: var(--dk-muted);
  font-size: 0.92rem;
  line-height: 1.5;
}

.product-b2b-service {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.product-b2b-service-card {
  background: var(--dk-dark);
  border-radius: var(--dk-radius);
  box-shadow: var(--dk-shadow);
  color: var(--dk-white);
  padding: clamp(1.25rem, 3vw, 2rem);
}

.product-b2b-service-card:nth-child(2) {
  background: var(--dk-red);
}

.product-b2b-service-card h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.65rem, 3vw, 2.35rem);
  margin: 0.35rem 0 1rem;
  text-transform: uppercase;
}

.product-b2b-service-card ul {
  display: grid;
  gap: 0.75rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.product-b2b-service-card li {
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.55;
  padding-left: 1.35rem;
  position: relative;
}

.product-b2b-service-card li::before {
  background: var(--dk-yellow);
  border-radius: 999px;
  content: "";
  height: 0.45rem;
  left: 0;
  position: absolute;
  top: 0.55rem;
  width: 0.45rem;
}

.product-b2b-analog-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-bottom: 1.25rem;
}

.product-b2b-analog-list span {
  background: var(--dk-bg);
  border: 1px solid var(--dk-border);
  border-radius: 999px;
  color: var(--dk-dark);
  font-weight: 900;
  padding: 0.55rem 0.85rem;
}

.product-b2b-bottom-cta {
  align-items: center;
  background: var(--dk-bg);
  border: 1px solid var(--dk-border);
  border-radius: 8px;
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 1.25rem;
}

.product-b2b-bottom-cta h3 {
  color: var(--dk-dark);
  font-family: var(--font-heading);
  font-size: 1.55rem;
  margin: 0 0 0.4rem;
  text-transform: uppercase;
}

.product-b2b-bottom-cta p {
  color: var(--dk-muted);
  margin: 0;
}

.dekmann-category-shell {
  background: var(--dk-bg);
}

.category-layout {
  align-items: start;
  display: grid;
  gap: 1.5rem;
  grid-template-columns: 280px minmax(0, 1fr);
}

.catalog-landing-head {
  display: grid;
  gap: 0.65rem;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.catalog-landing-head > div {
  align-items: end;
  display: grid;
  gap: 1.25rem 2.5rem;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.55fr);
}

.catalog-landing-head h1 {
  font-size: clamp(2.6rem, 6vw, 5rem);
  margin: 0;
  max-width: 900px;
}

.catalog-landing-head p,
.catalog-products-head p {
  color: var(--dk-muted);
  margin: 0;
}

.catalog-directory,
.catalog-popular {
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.catalog-directory-all {
  color: var(--dk-red);
  display: block;
  font-size: 0.88rem;
  font-weight: 750;
  margin: 0 0 1rem auto;
  text-align: right;
  width: max-content;
}

.catalog-section-title,
.catalog-products-head {
  align-items: end;
  display: flex;
  gap: 1.5rem;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}

.catalog-section-title h2,
.catalog-products-head h2 {
  font-size: clamp(1.8rem, 3.5vw, 3rem);
  margin: 0.2rem 0 0;
}

.catalog-section-title > a {
  color: var(--dk-red);
  flex: 0 0 auto;
  font-size: 0.88rem;
  font-weight: 750;
}

.catalog-directory-grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.catalog-directory-card {
  background: var(--dk-white);
  border: 1px solid rgba(14, 14, 14, 0.09);
  border-radius: var(--dk-radius);
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.055);
  min-width: 0;
  padding: 0.75rem;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.catalog-directory-card:hover,
.catalog-directory-card:focus-within {
  border-color: rgba(225, 26, 26, 0.35);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.09);
  transform: translateY(-2px);
}

.catalog-directory-card-main {
  align-items: center;
  display: grid;
  gap: 0.65rem;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  min-height: 76px;
}

.catalog-directory-icon {
  align-items: center;
  display: inline-flex;
  height: 64px;
  justify-content: center;
  width: 64px;
}

.catalog-directory-card-copy {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}

.catalog-directory-card-copy strong {
  color: var(--dk-dark);
  font-size: 0.92rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.catalog-directory-card-copy em {
  color: var(--dk-muted);
  font-size: 0.7rem;
  font-style: normal;
  font-weight: 650;
}

.catalog-directory-card-main > i {
  color: var(--dk-red);
  font-size: 0.72rem;
}

.catalog-directory-card ul {
  border-top: 1px solid rgba(14, 14, 14, 0.08);
  display: grid;
  gap: 0.3rem;
  list-style: none;
  margin: 0.65rem 0 0;
  padding: 0.65rem 0.2rem 0.15rem;
}

.catalog-directory-card li a,
.catalog-directory-card > p {
  color: var(--dk-muted);
  font-size: 0.76rem;
  line-height: 1.35;
}

.catalog-directory-card li a:hover,
.catalog-directory-card li a:focus-visible {
  color: var(--dk-red);
}

.catalog-directory-card > p {
  border-top: 1px solid rgba(14, 14, 14, 0.08);
  margin: 0.65rem 0 0;
  padding: 0.65rem 0.2rem 0.15rem;
}

.catalog-popular-grid {
  display: grid;
  gap: 0.7rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.catalog-popular-grid > a {
  align-items: center;
  background: var(--dk-dark);
  border: 1px solid var(--dk-dark);
  border-radius: var(--dk-radius);
  color: var(--dk-white);
  display: grid;
  font-size: 0.85rem;
  font-weight: 750;
  gap: 0.7rem;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  line-height: 1.25;
  min-height: 64px;
  padding: 0.45rem 0.7rem;
}

.catalog-popular-grid > a:hover,
.catalog-popular-grid > a:focus-visible {
  border-color: var(--dk-red);
  color: var(--dk-yellow);
}

.catalog-popular-icon {
  align-items: center;
  display: inline-flex;
  height: 44px;
  justify-content: center;
  width: 44px;
}

.catalog-products-head {
  border-top: 1px solid rgba(14, 14, 14, 0.12);
  margin-top: 0;
  padding-top: clamp(1.75rem, 3vw, 2.5rem);
}

.catalog-products-head p {
  max-width: 520px;
}

.category-content {
  min-width: 0;
  width: 100%;
}

.catalog-page-layout {
  align-items: start;
  display: grid;
  gap: 1.5rem;
  grid-template-columns: 280px minmax(0, 1fr);
}

.catalog-page-main {
  min-width: 0;
}

.catalog-navigation-sidebar {
  max-height: calc(100vh - 154px);
  overflow: auto;
  position: sticky;
  scrollbar-width: thin;
  top: var(--header-height, 138px);
}

.catalog-sidebar-disclosure > summary {
  display: none;
}

.catalog-sidebar-panel {
  background: var(--dk-white);
  border: 1px solid rgba(14, 14, 14, 0.1);
  border-radius: var(--dk-radius);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.07);
  overflow: hidden;
}

.catalog-sidebar-heading,
.catalog-sidebar-link {
  align-items: center;
  display: grid;
  text-decoration: none;
}

.catalog-sidebar-heading {
  background: var(--dk-dark);
  color: var(--dk-white);
  gap: 0.7rem;
  grid-template-columns: auto minmax(0, 1fr);
  min-height: 52px;
  padding: 0.75rem 0.9rem;
  text-transform: uppercase;
}

.catalog-sidebar-heading:hover,
.catalog-sidebar-heading:focus-visible {
  color: var(--dk-yellow);
}

.catalog-sidebar-link > i {
  font-size: 0.68rem;
}

.catalog-sidebar-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.catalog-sidebar-item + .catalog-sidebar-item {
  border-top: 1px solid rgba(14, 14, 14, 0.09);
}

.catalog-sidebar-link {
  color: var(--dk-dark);
  gap: 0.6rem;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  min-height: 46px;
  padding: 0.45rem 0.7rem;
}

.catalog-sidebar-link:hover,
.catalog-sidebar-link:focus-visible,
.catalog-sidebar-item.is-active-path > .catalog-sidebar-link {
  background: rgba(225, 26, 26, 0.07);
  color: var(--dk-red);
}

.catalog-sidebar-link.is-current {
  background: var(--dk-red);
  color: var(--dk-white);
  font-weight: 750;
}

.catalog-sidebar-icon {
  align-items: center;
  display: inline-flex;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.catalog-sidebar-icon img {
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.catalog-sidebar-level-1,
.catalog-sidebar-level-2 {
  background: #fafafa;
  border-top: 1px solid rgba(14, 14, 14, 0.08);
  padding: 0.3rem 0;
}

.catalog-sidebar-level-1 .catalog-sidebar-link,
.catalog-sidebar-level-2 .catalog-sidebar-link {
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 38px;
  padding: 0.4rem 0.75rem 0.4rem 1.25rem;
}

.catalog-sidebar-level-2 .catalog-sidebar-link {
  font-size: 0.82rem;
  padding-left: 2rem;
}

.catalog-directory-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.catalog-popular-grid {
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.catalog-page-layout.is-filtering {
  cursor: progress;
}

.catalog-page-layout.is-filtering .category-products-table-section {
  opacity: 0.62;
  pointer-events: none;
  transition: opacity 0.18s ease;
}

.category-sidebar {
  max-height: calc(100vh - 2rem);
  overflow: auto;
  position: sticky;
  top: 1rem;
}

.category-filter-disclosure > summary {
  display: none;
}

.category-filter-panel {
  background: var(--dk-white);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--dk-radius);
  box-shadow: var(--dk-shadow);
  padding: 0.75rem;
  position: sticky;
  top: 138px;
  z-index: 12;
}

.category-filter-head strong {
  color: var(--dk-dark);
  display: block;
  font-family: var(--font-heading);
  font-size: 1.05rem;
  line-height: 1.05;
  margin-top: 0.2rem;
  text-transform: uppercase;
}

.category-filter-form {
  position: relative;
}

.category-filter-quick {
  align-items: end;
  display: grid;
  gap: 0.65rem;
  grid-template-columns: minmax(220px, 1.7fr) repeat(2, minmax(135px, 0.75fr)) minmax(190px, 0.9fr) auto;
}

.category-filter-form label {
  display: grid;
  gap: 0.35rem;
}

.category-filter-form label span {
  color: var(--dk-muted);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
}

.category-filter-form input,
.category-filter-form select {
  border: 1px solid var(--dk-border);
  border-radius: 6px;
  font-size: 0.86rem;
  min-height: 38px;
  padding: 0.55rem 0.65rem;
  width: 100%;
}

.category-filter-dropdown {
  position: relative;
}

.category-filter-advanced {
  position: static;
}

.category-filter-dropdown > summary,
.category-filter-advanced > summary {
  cursor: pointer;
  list-style: none;
}

.category-filter-dropdown > summary::-webkit-details-marker,
.category-filter-advanced > summary::-webkit-details-marker {
  display: none;
}

.category-filter-dropdown > summary {
  align-items: center;
  border: 1px solid var(--dk-border);
  border-radius: 6px;
  display: grid;
  gap: 0.15rem 0.45rem;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 38px;
  padding: 0.43rem 0.65rem;
}

.category-filter-dropdown > summary span {
  color: var(--dk-muted);
  font-size: 0.62rem;
  font-weight: 750;
  grid-column: 1;
  text-transform: uppercase;
}

.category-filter-dropdown > summary strong {
  font-size: 0.78rem;
  font-weight: 650;
  grid-column: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.category-filter-dropdown > summary i {
  grid-column: 2;
  grid-row: 1 / span 2;
}

.category-filter-dropdown[open] > summary,
.category-filter-advanced[open] > summary {
  border-color: var(--dk-red);
}

.category-filter-dropdown > .category-filter-group {
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.14);
  left: 0;
  max-height: min(420px, 60vh);
  min-width: 300px;
  overflow: auto;
  position: absolute;
  top: calc(100% + 0.5rem);
  z-index: 4;
}

.category-filter-advanced > summary {
  align-items: center;
  background: var(--dk-dark);
  border: 1px solid var(--dk-dark);
  border-radius: 6px;
  color: var(--dk-white);
  display: flex;
  gap: 0.45rem;
  justify-content: center;
  min-height: 38px;
  padding: 0.55rem 0.8rem;
  white-space: nowrap;
}

.category-filter-advanced > summary em {
  align-items: center;
  background: var(--dk-red);
  border-radius: 999px;
  display: inline-flex;
  font-size: 0.68rem;
  font-style: normal;
  height: 20px;
  justify-content: center;
  min-width: 20px;
  padding: 0 0.35rem;
}

.category-filter-advanced-grid {
  background: var(--dk-white);
  border: 1px solid rgba(14, 14, 14, 0.1);
  border-radius: var(--dk-radius);
  box-shadow: 0 20px 44px rgba(0, 0, 0, 0.16);
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  left: 0;
  max-height: min(560px, calc(100vh - 250px));
  overflow: auto;
  padding: 0.9rem;
  position: absolute;
  right: 0;
  top: calc(100% + 0.5rem);
  z-index: 3;
}

.category-filter-advanced-grid .category-filter-actions {
  grid-column: 1 / -1;
  justify-content: flex-end;
}

.category-filter-group {
  background: #fbfbfb;
  border: 1px solid var(--dk-border);
  border-radius: 8px;
  display: grid;
  gap: 0.45rem;
  margin: 0;
  padding: 0.75rem;
}

.category-filter-group legend {
  color: var(--dk-dark);
  float: none;
  font-size: 0.72rem;
  font-weight: 800;
  margin: 0 0 0.1rem;
  text-transform: uppercase;
}

.category-filter-check-grid {
  display: grid;
  gap: 0.28rem;
  grid-template-columns: 1fr;
}

.category-filter-check {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 4px;
  cursor: pointer;
  display: grid;
  gap: 0.4rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 24px;
  padding: 0.15rem 0.1rem;
}

.category-filter-check input[type="checkbox"] {
  accent-color: var(--dk-red);
  height: 14px;
  min-height: 0;
  padding: 0;
  width: 14px;
}

.category-filter-check span {
  color: var(--dk-dark);
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.25;
  overflow-wrap: anywhere;
  text-transform: none;
}

.category-filter-check em {
  align-items: center;
  background: transparent;
  border-radius: 999px;
  color: var(--dk-muted);
  display: inline-flex;
  font-size: 0.68rem;
  font-style: normal;
  font-weight: 600;
  justify-content: center;
  min-width: 1.45rem;
  padding: 0;
}

.category-filter-check:has(input:checked) {
  color: var(--dk-red);
}

.category-filter-check:has(input:checked) span {
  color: var(--dk-red);
  font-weight: 700;
}

.category-filter-more {
  display: grid;
  gap: 0.55rem;
}

.category-filter-more summary {
  color: var(--dk-red);
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 700;
  list-style-position: inside;
}

.category-filter-form select:disabled,
.category-filter-form button:disabled {
  cursor: not-allowed;
  opacity: 0.58;
}

.category-filter-actions {
  align-items: center;
  display: flex;
  gap: 0.85rem;
  justify-content: space-between;
  margin-top: 0.25rem;
}

.category-filter-actions a {
  color: var(--dk-muted);
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.category-filter-panel p {
  color: var(--dk-muted);
  font-size: 0.78rem;
  margin: 0;
}

.category-content {
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}

.category-hero,
.category-banner,
.category-stage {
  background: var(--dk-white);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--dk-radius);
  box-shadow: var(--dk-shadow);
}

.category-hero {
  align-items: end;
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.55fr);
  padding: clamp(1.25rem, 3vw, 2rem);
}

.category-hero h1 {
  font-size: clamp(2rem, 4.2vw, 3.8rem);
  margin: 0;
}

.category-hero p {
  color: var(--dk-muted);
  margin: 0;
}

.category-banner {
  align-items: center;
  background: var(--dk-yellow);
  color: var(--dk-dark);
  display: flex;
  gap: 24px;
  justify-content: space-between;
  padding: 13px 24px;
}

.category-banner > div {
  flex: 1 1 auto;
  min-width: 0;
}

.category-banner h2 {
  color: var(--dk-dark);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  margin: 0 0 0.35rem;
}

.category-banner p {
  color: var(--dk-dark);
  font-size: 0.95rem;
  line-height: 1.45;
  margin: 0;
}

.category-banner .btn {
  align-items: center;
  display: inline-flex;
  flex: 0 0 auto;
  height: 46px;
  justify-content: center;
  padding: 0 26px;
  white-space: nowrap;
}

.category-subcategories {
  background: var(--dk-white);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--dk-radius);
  box-shadow: var(--dk-shadow);
  padding: clamp(0.75rem, 1.5vw, 1rem);
}

.category-section-head {
  align-items: end;
  display: grid;
  gap: 1.25rem;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.45fr);
  margin-bottom: 1.25rem;
}

.category-section-head h2 {
  font-size: clamp(1.65rem, 3vw, 2.6rem);
  margin: 0;
}

.category-section-head p {
  color: var(--dk-muted);
  margin: 0;
}

.category-subcategory-grid {
  display: grid;
  gap: 0.55rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.category-subcategory-card {
  background: #fbfbfb;
  border: 1px solid var(--dk-border);
  border-radius: 6px;
  color: var(--dk-text);
  display: grid;
  min-height: 100%;
  overflow: hidden;
  text-decoration: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.category-subcategory-card:hover {
  border-color: rgba(225, 26, 26, 0.38);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);
  color: var(--dk-text);
  transform: translateY(-1px);
}

.category-subcategory-media {
  align-items: center;
  aspect-ratio: 16 / 8;
  background:
    linear-gradient(135deg, rgba(225, 26, 26, 0.08), rgba(255, 194, 14, 0.14)),
    var(--dk-bg);
  color: var(--dk-red);
  display: flex;
  justify-content: center;
  padding: 0.4rem;
}

.category-subcategory-media img {
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.category-subcategory-placeholder {
  height: 42px;
  max-width: 72px;
  width: 100%;
}

.category-subcategory-body {
  display: grid;
  gap: 0.18rem;
  padding: 0.5rem;
}

.category-subcategory-body strong {
  color: var(--dk-dark);
  font-family: var(--font-heading);
  font-size: 0.78rem;
  line-height: 1.15;
  text-transform: uppercase;
}

.category-subcategory-body small {
  color: var(--dk-muted);
  line-height: 1.4;
}

.category-subcategory-body em {
  color: var(--dk-red);
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 700;
  margin-top: 0;
}

.category-products-table-section {
  background: var(--dk-white);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--dk-radius);
  box-shadow: var(--dk-shadow);
  min-width: 0;
  padding: clamp(0.75rem, 1.5vw, 1rem);
}

.category-products-table-wrap {
  border: 1px solid var(--dk-border);
  border-radius: 8px;
  max-width: 100%;
  min-width: 0;
  overscroll-behavior-inline: contain;
  overflow: auto;
  width: 100%;
}

.category-active-filters {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.category-active-filters span,
.category-active-filters a {
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 900;
  padding: 0.45rem 0.7rem;
}

.category-active-filters span {
  background: rgba(255, 194, 14, 0.2);
  color: var(--dk-dark);
}

.category-active-filters a {
  background: var(--dk-dark);
  color: var(--dk-white);
}

.category-products-table {
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.9rem;
  min-width: 0;
  table-layout: fixed;
  width: 100%;
}

.category-products-table th {
  background: var(--dk-dark);
  color: var(--dk-white);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  padding: 0.85rem 0.75rem;
  text-align: left;
  text-transform: uppercase;
  overflow-wrap: anywhere;
  white-space: normal;
}

.category-products-table td {
  border-top: 1px solid var(--dk-border);
  overflow-wrap: anywhere;
  padding: 0.65rem 0.5rem;
  vertical-align: middle;
}

.category-product-photo-column {
  width: 8%;
}

.category-product-title-column {
  width: 30%;
}

.category-product-sku-column {
  width: 13%;
}

.category-product-size-column {
  width: 8%;
}

.category-product-material-column {
  width: 10%;
}

.category-product-price-column {
  width: 13%;
}

.category-product-multiple-column {
  width: 9%;
}

.category-product-cart-column {
  width: 9%;
}

.category-products-table tbody tr:nth-child(even) td {
  background: #fafafa;
}

.category-product-photo-cell {
  width: auto;
}

.category-product-photo-cell a {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-sizing: border-box;
  display: flex;
  height: 58px;
  justify-content: center;
  max-width: 58px;
  overflow: hidden;
  width: 100%;
}

.category-product-photo-cell a:focus-visible {
  outline: 2px solid var(--dk-red);
  outline-offset: 2px;
}

.category-product-photo-cell img {
  display: block;
  height: 100%;
  object-fit: contain;
  padding: 0.25rem;
  width: 100%;
}

.category-product-title-cell {
  min-width: 0;
}

.category-product-title-cell a {
  color: var(--dk-dark);
  display: block;
  font-weight: 800;
  line-height: 1.3;
}

.category-product-title-cell small {
  color: var(--dk-muted);
  display: block;
  font-size: 0.78rem;
  margin-top: 0.25rem;
}

.category-product-price-cell {
  color: var(--dk-red);
  font-weight: 900;
  white-space: nowrap;
}

.category-product-price-cell .woocommerce-Price-amount {
  color: inherit;
}

.category-product-multiple {
  display: grid;
  gap: 0.3rem;
  max-width: 64px;
  min-width: 0;
  width: 100%;
}

.category-product-multiple span {
  color: var(--dk-muted);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
}

.category-product-qty {
  border: 1px solid var(--dk-border);
  border-radius: 6px;
  box-sizing: border-box;
  height: 42px;
  max-width: 100%;
  min-width: 0;
  padding: 0 0.2rem;
  text-align: center;
  width: 100%;
}

.category-product-cart-form .btn,
.category-products-table .btn {
  min-height: 42px;
  padding: 0.55rem 0.85rem;
  white-space: nowrap;
}

.category-product-cart-cell .btn {
  max-width: 100%;
  overflow-wrap: anywhere;
  padding-inline: 0.35rem;
  white-space: normal;
  width: 100%;
}

.category-products-empty {
  background: var(--dk-bg);
  border-radius: 8px;
  display: grid;
  gap: 0.6rem;
  padding: 1.25rem;
}

.category-products-empty h3 {
  margin: 0;
}

.category-products-empty p {
  color: var(--dk-muted);
  margin: 0;
}

.category-products-empty .btn {
  justify-self: start;
  margin-top: 0.35rem;
}

.category-request-cta {
  align-items: center;
  background:
    linear-gradient(135deg, rgba(14, 14, 14, 0.96), rgba(23, 23, 23, 0.94)),
    var(--dk-dark);
  border-radius: var(--dk-radius);
  box-shadow: var(--dk-shadow);
  color: var(--dk-white);
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.category-request-copy {
  align-items: center;
  display: grid;
  gap: 1rem;
  grid-template-columns: auto minmax(0, 1fr);
}

.category-request-icon {
  align-items: center;
  border: 2px solid var(--dk-yellow);
  border-radius: 6px;
  color: var(--dk-yellow);
  display: inline-flex;
  font-size: 2rem;
  height: 4rem;
  justify-content: center;
  width: 4rem;
}

.category-request-cta .section-kicker {
  color: var(--dk-yellow);
}

.category-request-cta h2 {
  color: var(--dk-white);
  font-size: clamp(1.6rem, 3vw, 2.5rem);
  margin: 0.15rem 0 0.45rem;
}

.category-request-cta p {
  color: #d8d8d8;
  margin: 0;
  max-width: 760px;
}

.category-request-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  justify-content: flex-end;
}

.category-request-actions .btn-brand-outline {
  border-color: rgba(255, 255, 255, 0.45);
  color: var(--dk-white);
}

.category-request-actions .btn-brand-outline:hover {
  border-color: var(--dk-yellow);
  color: var(--dk-yellow);
}

.category-seo-text {
  background: var(--dk-white);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--dk-radius);
  box-shadow: var(--dk-shadow);
  display: grid;
  gap: 1rem;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.category-seo-text h2 {
  font-size: clamp(1.65rem, 3vw, 2.45rem);
  margin: 0;
}

.category-seo-content {
  color: var(--dk-muted);
  display: grid;
  gap: 0.85rem;
  max-width: 980px;
}

.category-seo-content p,
.category-seo-content ul,
.category-seo-content ol {
  margin-bottom: 0;
}

.category-seo-content strong {
  color: var(--dk-dark);
}

.category-stage {
  align-items: center;
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.45fr);
  padding: clamp(1.25rem, 3vw, 2rem);
}

.category-stage h2 {
  font-size: clamp(1.65rem, 3vw, 2.6rem);
  margin: 0 0 0.5rem;
}

.category-stage p {
  color: var(--dk-muted);
  margin: 0;
}

.category-stage-list {
  display: grid;
  gap: 0.65rem;
}

.category-stage-list span {
  align-items: center;
  background: var(--dk-bg);
  border-radius: 6px;
  display: flex;
  font-weight: 800;
  min-height: 44px;
  padding: 0.65rem 0.85rem;
}

@media (max-width: 991.98px) {
  .dekmann-shop-head {
    grid-template-columns: 1fr;
  }

  .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .category-layout,
  .category-hero,
  .category-section-head,
  .product-b2b-hero,
  .category-stage {
    grid-template-columns: 1fr;
  }

  .category-sidebar {
    max-height: none;
    overflow: visible;
    position: static;
  }

  .catalog-page-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .catalog-navigation-sidebar {
    max-height: none;
    overflow: visible;
    position: static;
  }

  .catalog-sidebar-disclosure > summary {
    align-items: center;
    background: var(--dk-dark);
    border-radius: var(--dk-radius);
    color: var(--dk-white);
    cursor: pointer;
    display: flex;
    font-family: var(--dk-font-heading);
    font-size: 1rem;
    gap: 0.65rem;
    justify-content: flex-start;
    list-style: none;
    padding: 0.85rem 1rem;
    text-transform: uppercase;
  }

  .catalog-sidebar-disclosure > summary::-webkit-details-marker {
    display: none;
  }

  .catalog-sidebar-disclosure > summary::after {
    content: "+";
    font-size: 1.35rem;
    margin-left: auto;
  }

  .catalog-sidebar-disclosure[open] > summary::after {
    content: "−";
  }

  .catalog-sidebar-disclosure[open] .catalog-sidebar-panel {
    margin-top: 0.65rem;
    max-height: min(560px, 68vh);
    overflow: auto;
  }

  .catalog-sidebar-heading {
    display: none;
  }

  .category-filter-panel {
    position: static;
  }

  .category-filter-quick {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .category-filter-search {
    grid-column: 1 / -1;
  }

  .category-filter-advanced > summary {
    width: 100%;
  }

  .category-filter-advanced-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: none;
    position: static;
    margin-top: 0.65rem;
  }

  .category-filter-disclosure > summary {
    align-items: center;
    background: var(--dk-dark);
    border-radius: var(--dk-radius);
    color: var(--dk-white);
    cursor: pointer;
    display: flex;
    font-family: var(--dk-font-heading);
    font-size: 1.1rem;
    justify-content: space-between;
    padding: 1rem;
    text-transform: uppercase;
  }

  .category-filter-disclosure > summary::after {
    content: "+";
    font-size: 1.4rem;
  }

  .category-filter-disclosure[open] > summary::after {
    content: "−";
  }

  .category-filter-disclosure[open] .category-filter-panel {
    margin-top: 0.75rem;
  }

  .category-banner {
    align-items: stretch;
    flex-direction: column;
    gap: 0.8rem;
    overflow: hidden;
    padding: 16px 18px;
  }

  .category-banner .btn {
    height: 46px;
    justify-content: center;
    justify-self: start;
    max-width: 100%;
    white-space: nowrap;
    width: 100%;
  }

  .category-banner h2,
  .category-banner p {
    overflow-wrap: anywhere;
  }

  .category-request-cta {
    grid-template-columns: 1fr;
  }

  .category-request-actions {
    justify-content: flex-start;
  }

  .category-subcategory-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .product-b2b-spec-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .product-b2b-document-grid,
  .product-b2b-service,
  .product-b2b-bottom-cta {
    grid-template-columns: 1fr;
  }

  .product-b2b-bottom-cta .btn {
    justify-self: start;
  }
}

@media (max-width: 575.98px) {
  .dekmann-shop-content {
    padding: 1rem;
  }

  .woocommerce ul.products {
    grid-template-columns: 1fr;
  }

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

  .category-filter-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .catalog-page-layout {
    gap: 1rem;
  }

  .category-filter-quick,
  .category-filter-advanced-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .category-filter-search,
  .category-filter-advanced-grid .category-filter-actions {
    grid-column: auto;
  }

  .category-filter-dropdown > .category-filter-group {
    min-width: 0;
    position: static;
    margin-top: 0.55rem;
  }

  .category-filter-actions .btn,
  .category-banner .btn,
  .category-request-actions .btn {
    width: 100%;
  }

  .category-request-copy {
    align-items: start;
    grid-template-columns: 1fr;
  }

  .category-products-table-section {
    padding: 1rem;
  }

  .product-b2b-spec-grid {
    grid-template-columns: 1fr;
  }

  .product-b2b-jump-nav {
    position: static;
  }

  .product-b2b-cart-actions,
  .product-b2b-request-links {
    align-items: stretch;
    flex-direction: column;
  }

  .product-b2b-cart-actions input,
  .product-b2b-cart-actions .btn,
  .product-b2b-request-links .btn {
    width: 100%;
  }
}

.category-products-summary {
    color: var(--dekmann-muted, #667085);
    margin: 0 0 12px;
}

.category-pagination ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    list-style: none;
    margin: 24px 0 0;
    padding: 0;
}

.category-pagination a,
.category-pagination span {
    align-items: center;
    border: 1px solid #d7dce2;
    border-radius: 6px;
    display: inline-flex;
    min-height: 38px;
    min-width: 38px;
    justify-content: center;
    padding: 6px 10px;
}

.category-pagination .current {
    background: #d9232e;
    border-color: #d9232e;
    color: #fff;
}

.product-b2b-vat-note {
    display: block;
    margin-top: 4px;
}

.product-b2b-wholesale-prices {
    margin: 12px 0;
    padding-left: 20px;
}

@media (max-width: 1399.98px) and (min-width: 992px) {
  .category-filter-quick {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .category-filter-search {
    grid-column: 1 / -1;
  }
}

/* Product page: compact technical layout. All selectors are scoped to the single product. */
.dekmann-product-shell .dekmann-shop-breadcrumbs {
  font-size: .8rem;
  line-height: 1.45;
  margin-bottom: .85rem;
  overflow-wrap: normal;
}

.product-b2b-layout { --product-nav-height: 55px; gap: 1.25rem; min-width: 0; }
.product-b2b-hero {
  align-items: start;
  gap: 0 1.5rem;
  grid-template-areas: "media intro" "media summary";
  grid-template-columns: minmax(0, 45%) minmax(0, 55%);
  grid-template-rows: auto auto;
}
.product-b2b-intro { grid-area: intro; }
.product-b2b-media { grid-area: media; align-self: start; }
.product-b2b-summary { grid-area: summary; }
.product-b2b-intro,
.product-b2b-summary,
.product-b2b-media {
  background: var(--dk-white);
  border: 1px solid var(--dk-border);
  box-shadow: none;
  min-width: 0;
}
.product-b2b-intro { border-bottom: 0; border-radius: 8px 8px 0 0; padding: 1.25rem 1.5rem .65rem; }
.product-b2b-intro .section-kicker { font-size: .73rem; }
.product-b2b-intro h1 {
  color: var(--dk-dark);
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 2.7vw, 2.55rem);
  line-height: 1.1;
  margin: .35rem 0 .8rem;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  text-transform: uppercase;
}
.product-b2b-intro .catalog-tech-token { white-space: nowrap; }
.product-b2b-meta { font-size: .82rem; gap: .2rem .85rem; line-height: 1.4; }
.product-b2b-meta strong { color: var(--dk-dark); font-weight: 750; }
.product-b2b-meta a { color: var(--dk-muted); font-weight: 650; }
.product-b2b-badges { gap: .35rem; margin-top: .65rem; }
.product-b2b-badges span { border-radius: 6px; font-size: .72rem; font-weight: 750; line-height: 1.2; padding: .3rem .55rem; white-space: nowrap; }
.product-b2b-summary { border-top: 0; border-radius: 0 0 8px 8px; gap: .7rem; padding: .35rem 1.5rem 1.25rem; }
.product-b2b-media { border-radius: 8px; gap: .65rem; padding: 1rem; }
.product-b2b-image { aspect-ratio: 1 / 1; background: #fafafa; border: 1px solid var(--dk-border); border-radius: 8px; max-height: 520px; text-decoration: none; }
.product-b2b-image img { height: 100%; object-fit: contain; padding: .75rem; width: 100%; }
.product-b2b-image-placeholder { color: var(--dk-muted); flex-direction: column; gap: .75rem; min-height: 220px; }
.product-b2b-image-placeholder i { font-size: 2.4rem; }
.product-b2b-media-note { align-items: start; font-size: .78rem; gap: .45rem; margin: 0; }
.product-b2b-media-note i { margin-top: .1rem; }
.product-b2b-thumbnails { display: flex; flex-wrap: wrap; gap: .5rem; }
.product-b2b-thumb { background: #fff; border: 1px solid var(--dk-border); border-radius: 6px; height: 58px; padding: 3px; width: 58px; }
.product-b2b-thumb.is-active, .product-b2b-thumb:hover { border-color: var(--dk-red); }
.product-b2b-thumb img { height: 100%; object-fit: contain; width: 100%; }
.product-b2b-quick-specs { display: grid; gap: 0 .9rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.product-b2b-quick-specs div { border-bottom: 1px solid var(--dk-border); display: grid; gap: .15rem; min-width: 0; padding: .32rem 0; }
.product-b2b-quick-specs dt { color: var(--dk-muted); font-size: .71rem; font-weight: 700; text-transform: uppercase; }
.product-b2b-quick-specs dd { color: var(--dk-dark); font-size: .88rem; font-weight: 750; margin: 0; overflow-wrap: anywhere; }
.product-b2b-request-card { background: #fafafa; border: 1px solid var(--dk-border); border-radius: 8px; color: var(--dk-dark); gap: .65rem; padding: 1rem; }
.product-b2b-price-line { align-items: start; display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; justify-content: space-between; }
.product-b2b-price-label, .product-b2b-availability > span { color: var(--dk-muted); display: block; font-size: .72rem; font-weight: 750; text-transform: uppercase; }
.product-b2b-price { color: var(--dk-dark); font-size: clamp(1.45rem, 2.5vw, 1.9rem); line-height: 1.1; margin-top: .18rem; text-transform: none; }
.product-b2b-vat-note { color: var(--dk-muted); font-size: .75rem; margin-top: .1rem; }
.product-b2b-availability strong { color: var(--dk-dark); display: block; font-size: .88rem; margin-top: .3rem; }
.product-b2b-availability strong::before { background: #80858b; border-radius: 50%; content: ""; display: inline-block; height: .4rem; margin-right: .4rem; vertical-align: middle; width: .4rem; }
.product-b2b-supply-meta { border-top: 1px solid var(--dk-border); color: var(--dk-muted); display: flex; flex-wrap: wrap; font-size: .79rem; gap: .25rem 1rem; padding-top: .55rem; }
.product-b2b-supply-meta strong { color: var(--dk-dark); }
.product-b2b-tiers { border-top: 1px solid var(--dk-border); font-size: .77rem; padding-top: .55rem; }
.product-b2b-tiers > span { color: var(--dk-muted); display: block; margin-bottom: .25rem; }
.product-b2b-tiers table { border-collapse: collapse; width: 100%; }
.product-b2b-tiers th, .product-b2b-tiers td { border-top: 1px solid var(--dk-border); font-weight: 600; padding: .25rem 0; }
.product-b2b-tiers td { font-weight: 750; text-align: right; }
.product-b2b-cart-form label { color: var(--dk-dark); font-size: .73rem; }
.product-b2b-cart-actions { align-items: center; flex-wrap: nowrap; }
.product-b2b-cart-actions .btn { min-height: 44px; }
.product-b2b-quantity { align-items: center; background: #fff; border: 1px solid var(--dk-border); border-radius: 6px; display: flex; min-width: 0; }
.product-b2b-cart-actions .product-b2b-quantity input { background: none; border: 0; min-height: 44px; padding: .45rem .2rem .45rem .6rem; width: 100px; }
.product-b2b-quantity span { color: var(--dk-muted); font-size: .78rem; padding-right: .5rem; }
.product-b2b-request-links { gap: .5rem .9rem; }
.product-b2b-request-links .btn-brand-outline { border-color: var(--dk-border); color: var(--dk-dark); min-height: 40px; }
.product-b2b-request-links .btn-brand-outline:hover { border-color: var(--dk-red); color: var(--dk-red); }
.product-b2b-cart-link { font-size: .82rem; }
.product-b2b-lead { color: var(--dk-muted); font-size: .83rem; line-height: 1.45; }
.product-b2b-lead ul { display: flex; flex-wrap: wrap; gap: .2rem 1rem; margin: 0; padding-left: 1rem; }
.product-b2b-jump-nav { border-radius: 8px; box-shadow: none; flex-wrap: nowrap; gap: 1.25rem; overflow-x: auto; padding: 0 1rem; top: var(--product-header-height, 0px); white-space: nowrap; z-index: 20; }
.product-b2b-jump-nav a { background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0; font-size: .75rem; padding: .85rem .15rem; }
.product-b2b-jump-nav a:hover, .product-b2b-jump-nav a.is-active, .product-b2b-jump-nav a:focus-visible { background: none; border-color: var(--dk-red); color: var(--dk-red); }
.product-b2b-layout > section,
.product-b2b-layout [id^="product-b2b-"] { scroll-margin-top: calc(var(--product-header-height, 0px) + var(--product-nav-height) + 12px); }
.product-b2b-specs, .product-b2b-description, .product-b2b-documents, .product-b2b-analogs { box-shadow: none; padding: 1.25rem 1.5rem; }
.product-b2b-section-head { margin-bottom: .65rem; }
.product-b2b-section-head h2 { font-size: clamp(1.45rem, 2.3vw, 2rem); }
.product-b2b-spec-group-title { color: var(--dk-dark); font-size: .85rem; font-weight: 750; margin: 1rem 0 .35rem; }
.product-b2b-spec-grid { display: block; margin: 0; }
.product-b2b-spec-grid div { background: none; border: 0; border-top: 1px solid var(--dk-border); border-radius: 0; display: grid; gap: 1rem; grid-template-columns: minmax(0, 33%) minmax(0, 1fr); padding: .45rem 0; }
.product-b2b-spec-grid dt { font-size: .76rem; font-weight: 650; margin: 0; text-transform: none; }
.product-b2b-spec-grid dd { font-size: .85rem; font-weight: 700; overflow-wrap: anywhere; }
.product-b2b-description-content { max-width: 82ch; }
.product-b2b-document-list { list-style: none; margin: 0; padding: 0; }
.product-b2b-document-list a { align-items: center; border-top: 1px solid var(--dk-border); color: var(--dk-dark); display: flex; gap: .75rem; min-height: 48px; padding: .5rem 0; }
.product-b2b-document-list a i { color: var(--dk-red); }
.product-b2b-document-list a small { color: var(--dk-muted); margin-left: auto; }
.product-b2b-empty-note { color: var(--dk-muted); font-size: .9rem; margin: 0; }
.product-b2b-variants { margin-bottom: 1rem; }
.product-b2b-variants h3 { color: var(--dk-dark); font-size: .9rem; font-weight: 750; margin: 0 0 .5rem; }
.product-b2b-variant-links { display: flex; flex-wrap: wrap; gap: .4rem; }
.product-b2b-variant-links :is(a, span) { border: 1px solid var(--dk-border); border-radius: 6px; color: var(--dk-dark); font-size: .8rem; font-weight: 700; min-height: 40px; padding: .55rem .7rem; }
.product-b2b-variant-links span { background: var(--dk-dark); border-color: var(--dk-dark); color: #fff; }
.product-b2b-variant-links a:hover { border-color: var(--dk-red); color: var(--dk-red); }
.product-b2b-related-grid { display: grid; gap: .75rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 1rem; }
.product-b2b-related-card { border: 1px solid var(--dk-border); border-radius: 8px; color: var(--dk-dark); display: grid; font-size: .8rem; gap: .35rem; padding: .75rem; }
.product-b2b-related-card img { aspect-ratio: 1; object-fit: contain; width: 100%; }
.product-b2b-related-card strong { line-height: 1.4; }
.product-b2b-related-card > span { font-weight: 750; }
.product-b2b-related-card small { color: var(--dk-muted); }
.product-b2b-layout :is(button, a, input):focus-visible { outline: 2px solid var(--dk-red); outline-offset: 2px; }

@media (max-width: 991.98px) {
  .product-b2b-hero { grid-template-areas: "intro" "media" "summary"; grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .product-b2b-intro, .product-b2b-summary { border: 1px solid var(--dk-border); border-radius: 8px; padding: 1rem; }
  .product-b2b-media { width: 100%; }
  .product-b2b-image { max-height: 420px; }
  .product-b2b-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .product-b2b-intro h1 { font-size: clamp(1.5rem, 6vw, 1.8rem); }
  .product-b2b-image { max-height: 340px; }
  .product-b2b-quick-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-b2b-jump-nav { position: sticky; }
  .product-b2b-cart-actions { align-items: stretch; flex-direction: column; }
  .product-b2b-cart-actions .product-b2b-quantity, .product-b2b-cart-actions .btn { width: 100%; }
  .product-b2b-request-links { align-items: start; flex-direction: row; }
  .product-b2b-request-links .btn { width: auto; }
  .product-b2b-related-grid { grid-template-columns: 1fr; }
}

@media (max-width: 1199.98px) {
  .catalog-directory-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .category-products-table {
    min-width: 820px;
  }
}

@media (max-width: 991.98px) {
  .catalog-landing-head > div {
    align-items: start;
    grid-template-columns: 1fr;
  }

  .catalog-directory-grid,
  .catalog-popular-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .catalog-section-title,
  .catalog-products-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.75rem;
  }

  .catalog-directory-grid,
  .catalog-popular-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .catalog-directory-card-main {
    grid-template-columns: 56px minmax(0, 1fr) auto;
    min-height: 66px;
  }

  .catalog-directory-icon {
    height: 56px;
    width: 56px;
  }
}

/* CAT-005: selection and product rows */
.catalog-page-title { color: var(--dk-dark); font-size: clamp(1.25rem, 2vw, 1.65rem); font-weight: 750; line-height: 1.15; margin: .2rem 0 .75rem; }
.catalog-page-layout .category-products-table-section { position: relative; }
.catalog-page-layout.is-filtering .category-products-table-section::after { animation: catalog-spin .7s linear infinite; background: transparent; border: 3px solid #d7dce2; border-top-color: var(--dk-red); border-radius: 50%; content: ""; height: 28px; left: calc(50% - 14px); position: absolute; top: 3.5rem; width: 28px; z-index: 2; }
@keyframes catalog-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .catalog-page-layout.is-filtering .category-products-table-section::after { animation: none; border-color: var(--dk-red); } }
.catalog-page-layout .category-filter-quick {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: end;
}
.catalog-page-layout { grid-template-columns: 240px minmax(0, 1fr); }
.catalog-page-layout > .catalog-mobile-toggle, .catalog-page-main > .category-content > .catalog-mobile-toggle { display: none; }
.catalog-page-layout .category-content > .catalog-mobile-toggle { display: none; }
.catalog-page-layout .category-filter-type { min-width: 0; margin: 0; padding: 0; border: 0; }
.catalog-page-layout .category-filter-type legend { float: none; font-size: .72rem; font-weight: 700; color: var(--dk-muted); margin: 0 0 .35rem; text-transform: uppercase; }
.catalog-page-layout .category-filter-advanced > summary { background: #fff; color: var(--dk-dark); border-color: var(--dk-border); justify-content: flex-start; }
.catalog-page-layout .category-filter-advanced > summary em { background: var(--dk-dark); color: #fff; }
.catalog-standard-help { align-self: center; color: var(--dk-dark); font-size: .8rem; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.catalog-standard-help:hover, .catalog-standard-help:focus-visible { color: var(--dk-red); }
.category-products-empty .catalog-standard-help { display: inline-block; margin-left: .75rem; }
.catalog-page-layout .category-filter-panel { box-shadow: none; }
.catalog-page-layout .catalog-sidebar-link.is-current { background: #f3f4f5; border-left: 3px solid var(--dk-red); color: var(--dk-dark); }
.category-active-filters .category-filter-chip { background: #f3f4f5; border: 1px solid #d7dce2; color: var(--dk-dark); font-weight: 600; text-decoration: none; }
.category-active-filters .category-filter-chip:hover { border-color: var(--dk-red); }
.category-active-filters .category-filter-clear { background: transparent; color: var(--dk-dark); font-weight: 600; text-decoration: underline; }
.catalog-page-layout .category-products-table { table-layout: auto; min-width: 0; }
.catalog-page-layout .category-products-table th { background: #f3f4f5; color: var(--dk-dark); padding: .65rem .5rem; overflow-wrap: normal; }
.catalog-page-layout .category-products-table td { padding: .7rem .5rem; vertical-align: middle; overflow-wrap: normal; }
.catalog-page-layout .category-products-table th:first-child { width: 36%; }
.catalog-page-layout .category-products-table th:nth-child(2) { width: 20%; }
.catalog-page-layout .category-products-table th:nth-child(3) { width: 17%; }
.catalog-page-layout .category-products-table th:nth-child(4) { width: 15%; }
.catalog-page-layout .category-products-table th:nth-child(5) { width: 12%; }
.catalog-product-identity { display: grid; grid-template-columns: 52px minmax(0, 1fr); align-items: center; gap: .6rem; }
.catalog-product-identity--no-image { grid-template-columns: minmax(0, 1fr); }
.catalog-product-image { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; }
.catalog-product-image img { max-width: 100%; max-height: 100%; object-fit: contain; }
.catalog-product-name { color: var(--dk-dark); display: -webkit-box; font-weight: 700; line-height: 1.25; overflow: hidden; text-decoration: none; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.catalog-product-name:hover { text-decoration: underline; }
.catalog-product-sku, .catalog-product-subtitle, .catalog-product-details, .catalog-pack-price, .catalog-stock-status, .catalog-quantity-help, .catalog-selected-total { display: block; color: var(--dk-muted); font-size: .76rem; font-weight: 400; line-height: 1.4; margin-top: .2rem; }
/* CAT-042: хвост наименования вместо артикула — тем же шрифтом, но не длиннее двух строк. */
.catalog-product-subtitle { display: -webkit-box; max-height: 2.8em; overflow: hidden; overflow-wrap: break-word; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.catalog-selected-total { color: var(--dk-dark); font-weight: 600; }
.catalog-product-size { display: block; color: var(--dk-dark); font-size: 1.08rem; line-height: 1.25; }
.catalog-product-standard { display: block; color: var(--dk-dark); font-weight: 650; margin-top: .15rem; }
.catalog-page-layout .category-product-price-cell { color: var(--dk-dark); white-space: normal; font-weight: 400; }
.catalog-unit-price { display: block; font-weight: 750; white-space: nowrap; }
.catalog-unit-price small { font-size: .75rem; font-weight: 400; }
.catalog-price-request { font-weight: 650; color: var(--dk-dark); }
.catalog-quantity { display: grid; grid-template-columns: 32px minmax(42px, 1fr) 32px; max-width: 150px; }
.catalog-quantity-step { background: #fff; border: 1px solid var(--dk-border); min-height: 40px; padding: 0; }
.catalog-quantity-step:first-child { border-radius: 6px 0 0 6px; }
.catalog-quantity-step:last-child { border-radius: 0 6px 6px 0; }
.catalog-quantity .category-product-qty { border-radius: 0; border-inline: 0; height: 40px; appearance: textfield; }
.catalog-quantity .category-product-qty::-webkit-inner-spin-button, .catalog-quantity .category-product-qty::-webkit-outer-spin-button { appearance: none; margin: 0; }
.catalog-quantity-step:focus-visible, .catalog-product-action:focus-visible { outline: 2px solid var(--dk-red); outline-offset: 2px; }
/* Bootstrap .btn снимает outline на :focus-visible и полагается на focus-shadow,
   которого у фирменных кнопок нет. Возвращаем видимый индикатор фокуса. */
.catalog-page-layout .btn:focus-visible,
.catalog-page-layout .category-request-cta .btn:focus-visible,
.catalog-page-layout .category-banner .btn:focus-visible { outline: 2px solid var(--dk-red); outline-offset: 2px; box-shadow: none; }
/* Без JavaScript форму отправляет кнопка из <noscript>; чипы — нативные
   checkbox, поэтому дублирующий набор контролов не нужен. */
.category-filter-submit-row { display: flex; justify-content: flex-end; margin-top: .75rem; }
.catalog-page-layout .category-product-cart-cell .catalog-product-action { min-width: max-content; width: auto; max-width: none; padding: .55rem .7rem; white-space: nowrap; overflow-wrap: normal; }
.catalog-page-layout.is-filtering .category-filter-panel { opacity: 1; pointer-events: auto; }
.catalog-page-layout.is-filtering .category-products-table-section { opacity: .65; }
.category-products-error { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; background: #fff7e5; border: 1px solid #d8b56b; border-radius: 6px; color: var(--dk-dark); padding: .75rem; margin-bottom: .75rem; }
.modal-request-product { background: #f3f4f5; border-left: 3px solid var(--dk-red); color: var(--dk-dark); padding: .6rem .75rem; overflow-wrap: anywhere; }
@media (max-width: 1199.98px) {
  .catalog-page-layout .category-products-table { min-width: 0; }
  .catalog-page-layout .category-filter-quick { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
  .catalog-page-layout { grid-template-columns: minmax(0, 1fr); }
  .catalog-page-layout > .catalog-mobile-toggle, .catalog-page-layout .category-content > .catalog-mobile-toggle { display: inline-flex; justify-content: center; }
  .catalog-page-layout .category-products-table thead { clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
  .catalog-page-layout .category-products-table, .catalog-page-layout .category-products-table tbody, .catalog-page-layout .category-products-table tr, .catalog-page-layout .category-products-table td { display: block; width: 100%; }
  .catalog-page-layout .category-products-table { border-spacing: 0; }
  .catalog-page-layout .category-products-table tr { border: 1px solid var(--dk-border); border-radius: 8px; margin-bottom: .75rem; padding: .55rem; }
  .catalog-page-layout .category-products-table td { border: 0; padding: .35rem .4rem; }
  .catalog-page-layout .category-product-spec-cell::before, .catalog-page-layout .category-product-price-cell::before, .catalog-page-layout .category-product-multiple-cell::before { color: var(--dk-muted); content: attr(data-label); display: block; font-size: .7rem; font-weight: 700; margin-bottom: .15rem; text-transform: uppercase; }
  .catalog-page-layout .category-products-table tbody tr:nth-child(even) td { background: transparent; }
  .catalog-page-layout .category-products-table-wrap { border: 0; overflow: visible; }
  .catalog-page-layout .category-product-cart-cell .catalog-product-action { width: 100%; min-width: 0; }
  .catalog-page-layout .catalog-navigation-sidebar.offcanvas-xl, .catalog-page-layout .category-filter-panel.offcanvas-lg { position: fixed; }
  .catalog-page-layout .catalog-navigation-sidebar.offcanvas-xl, .catalog-page-layout .category-filter-panel.offcanvas-lg { z-index: 1200; }
  body:has(.catalog-page-layout .offcanvas-lg.show, .catalog-page-layout .offcanvas-xl.show) > .offcanvas-backdrop { z-index: 1190; }
  .catalog-page-layout .category-filter-panel.offcanvas-lg .offcanvas-body { overflow-y: auto; }
}
@media (max-width: 575.98px) {
  .catalog-page-layout .category-filter-quick { grid-template-columns: minmax(0, 1fr); }
  .catalog-page-layout .catalog-product-identity { grid-template-columns: 48px minmax(0, 1fr); }
  .catalog-page-layout .catalog-product-name { overflow-wrap: anywhere; }
  .catalog-page-layout .catalog-product-name { -webkit-line-clamp: 3; }
  .catalog-page-layout .category-products-table-section { padding: .6rem; }
}

/* Final catalog filter rules follow the older responsive overrides above. */
.catalog-page-layout .catalog-mobile-filter-bar { display: none; }
.catalog-page-layout .category-filter-panel.offcanvas-lg {
  background-color: #fff !important; /* Bootstrap sets offcanvas-lg transparent on desktop. */
  border: 1px solid #e5e5e5;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .06);
  top: var(--header-height, 126px);
  z-index: 1020;
}
.catalog-page-layout .category-filter-quick {
  align-items: start;
  gap: .65rem .75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.catalog-page-layout .category-filter-field { min-width: 0; }
.catalog-page-layout .category-filter-label {
  color: var(--dk-dark);
  display: block;
  font-size: .8rem;
  font-weight: 650;
  line-height: 1.25;
  margin-bottom: .35rem;
}
.catalog-page-layout .category-filter-form label span,
.catalog-page-layout .category-filter-advanced-grid .category-filter-type legend {
  color: var(--dk-dark);
  font-size: .8rem;
  font-weight: 650;
  text-transform: none;
}
/* Пометка о неполных данных у ввода толщины пакета (CAT-033). */
.catalog-page-layout .category-filter-grip-note {
  color: var(--dk-muted);
  display: block;
  font-size: .72rem;
  font-weight: 400;
  line-height: 1.3;
  margin-top: .3rem;
}
.catalog-page-layout .category-filter-dropdown > summary,
.catalog-page-layout .category-filter-form input,
.catalog-page-layout .category-filter-form select {
  background-color: #fff;
  border-color: #cfd5dc;
  border-radius: 6px;
  min-height: 42px;
}
.catalog-page-layout .category-filter-dropdown > summary:hover,
.catalog-page-layout .category-filter-form input:hover,
.catalog-page-layout .category-filter-form select:hover { border-color: #9da6b0; }
.catalog-page-layout .category-filter-dropdown > summary:focus-visible,
.catalog-page-layout .category-filter-advanced > summary:focus-visible,
.catalog-page-layout .category-filter-form input:focus,
.catalog-page-layout .category-filter-form select:focus { border-color: var(--dk-red); box-shadow: 0 0 0 2px rgba(217, 35, 46, .12); outline: 0; }
.catalog-page-layout .category-filter-dropdown > summary {
  background: #fff;
  display: flex;
  gap: .5rem;
  justify-content: space-between;
  min-height: 42px;
  padding: .55rem .7rem;
}
.catalog-page-layout .category-filter-dropdown > summary strong {
  font-size: .86rem;
  font-weight: 500;
  line-height: 1.4;
  min-width: 0;
}
.catalog-page-layout .category-filter-dropdown > summary i { font-size: .75rem; }
.catalog-page-layout .category-filter-dropdown[open] > summary { border-color: #8b949e; }
.catalog-page-layout .category-filter-form select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='m2 4 4 4 4-4' fill='none' stroke='%23212529' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position: right .8rem center;
  background-repeat: no-repeat;
  background-size: 12px;
  padding-right: 2rem;
}
.catalog-page-layout .category-filter-standard { display: block; }
.catalog-page-layout .catalog-standard-help { display: inline-block; font-size: .875rem; font-weight: 400; line-height: 1.25; margin-top: .3rem; max-width: 100%; }
.catalog-page-layout .category-filter-search-row {
  align-items: end;
  display: grid;
  gap: .75rem;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) max-content;
  min-width: 0;
}
.catalog-page-layout .category-filter-search-row .category-filter-search {
  grid-column: auto;
  min-width: 0;
}
.catalog-page-layout .category-filter-search-row .category-filter-advanced { min-width: 0; }
.catalog-page-layout .category-filter-advanced > summary { background: #fff; border-color: #cfd5dc; color: var(--dk-dark); font-weight: 600; min-height: 42px; }
.catalog-page-layout .category-filter-advanced > summary:hover { border-color: #9da6b0; }
.catalog-page-layout .category-filter-advanced > summary em { background: var(--dk-dark); }
.catalog-page-layout .category-filter-advanced-grid {
  align-items: start;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-height: min(420px, calc(100vh - var(--header-height, 126px) - 285px));
}
.catalog-page-layout .category-filter-advanced-grid > label { align-content: start; }
.catalog-page-layout .category-filter-search-row .category-filter-advanced > summary {
  justify-content: center;
  width: auto;
}
.catalog-page-layout .category-filter-advanced-grid .category-filter-type legend {
  color: var(--dk-dark);
  font-size: .8rem;
  font-weight: 650;
  text-transform: none;
}
@media (max-width: 1199.98px) and (min-width: 992px) {
  .catalog-page-layout .category-filter-quick { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
  .catalog-page-layout .catalog-mobile-filter-bar {
    display: flex;
    gap: .6rem;
    min-width: 0;
  }
  .catalog-page-layout .catalog-mobile-search { flex: 1 1 auto; min-width: 0; }
  .catalog-page-layout .catalog-mobile-search input {
    background: #fff;
    border: 1px solid #cfd5dc;
    border-radius: 6px;
    font-size: .9rem;
    height: 44px;
    padding: .55rem .75rem;
    width: 100%;
  }
  .catalog-page-layout .catalog-mobile-search input:focus-visible { border-color: var(--dk-red); outline: 2px solid rgba(217, 35, 46, .18); }
  .catalog-page-layout .catalog-mobile-filter-bar .catalog-mobile-toggle {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    gap: .35rem;
    justify-content: center;
    min-height: 44px;
    white-space: nowrap;
  }
  .catalog-mobile-filter-count { background: var(--dk-dark); border-radius: 50%; color: #fff; display: inline-flex; font-size: .72rem; justify-content: center; min-width: 1.25rem; padding: .1rem .25rem; }
  .catalog-mobile-filter-count[hidden] { display: none; }
  .catalog-page-layout .category-filter-panel.offcanvas-lg { top: 0; box-shadow: none; z-index: 1200; }
  .catalog-page-layout .category-filter-quick { grid-template-columns: minmax(0, 1fr); }
  .catalog-page-layout .category-filter-search-row { grid-template-columns: minmax(0, 1fr); }
  .catalog-page-layout .category-filter-search-row .category-filter-search { display: none; }
  .catalog-page-layout .category-filter-search-row .category-filter-advanced { width: auto; }
  .catalog-page-layout .category-filter-advanced-grid { grid-template-columns: minmax(0, 1fr); max-height: none; }
}
@media (max-width: 575.98px) {
  .catalog-page-layout .catalog-mobile-filter-bar { flex-direction: column; }
  .catalog-page-layout .catalog-mobile-filter-bar .catalog-mobile-toggle { width: 100%; }
}

/* CAT-009: denser buying surface, readable technical data. */
.catalog-page-layout { gap: 1.15rem; grid-template-columns: 218px minmax(0, 1fr); }
.catalog-page-layout .catalog-navigation-sidebar { scrollbar-color: #c4c9ce transparent; scrollbar-width: thin; }
.catalog-page-layout .catalog-navigation-sidebar::-webkit-scrollbar { width: 5px; }
.catalog-page-layout .catalog-navigation-sidebar::-webkit-scrollbar-thumb { background: #c4c9ce; border-radius: 10px; }
.catalog-page-layout .catalog-sidebar-panel { border-color: #e2e5e8; box-shadow: none; margin-right: .3rem; }
.catalog-page-layout .catalog-sidebar-heading { background: #f3f4f5; color: var(--dk-dark); font-size: .84rem; min-height: 42px; padding: .55rem .7rem; text-transform: none; }
.catalog-page-layout .catalog-sidebar-heading:hover, .catalog-page-layout .catalog-sidebar-heading:focus-visible { color: var(--dk-red); }
.catalog-page-layout .catalog-sidebar-link { gap: .45rem; grid-template-columns: 26px minmax(0, 1fr) auto; min-height: 40px; padding: .35rem .55rem; font-size: .84rem; }
.catalog-page-layout .catalog-sidebar-icon { height: 26px; width: 26px; }
.catalog-page-layout .catalog-sidebar-link.is-current { background: #f6eeee; border-left: 3px solid var(--dk-red); color: var(--dk-dark); font-weight: 700; padding-left: calc(.55rem - 3px); }
.catalog-page-layout .catalog-sidebar-level-1 .catalog-sidebar-link { font-size: .8rem; min-height: 34px; padding: .3rem .55rem .3rem 1.4rem; }
.catalog-page-layout .catalog-sidebar-level-2 .catalog-sidebar-link { padding-left: 2rem; }
.catalog-page-layout .catalog-sidebar-level-1 .catalog-sidebar-link.is-current { padding-left: calc(1.4rem - 3px); }
.catalog-page-layout .catalog-sidebar-level-2 .catalog-sidebar-link.is-current { padding-left: calc(2rem - 3px); }
.catalog-page-layout .category-products-table-section { box-shadow: none; border-color: #e2e5e8; padding: .75rem; }
.catalog-page-layout .category-products-table-wrap { border-color: #e2e5e8; border-radius: 4px; }
.catalog-page-layout .category-products-table { table-layout: fixed; min-width: 0; margin-bottom: 0; }
.catalog-page-layout .category-products-table th { background: #f5f6f7; border-bottom: 1px solid #dce1e5; color: #3b4249; font-size: .72rem; font-weight: 650; letter-spacing: 0; padding: .55rem .6rem; text-transform: none; }
.catalog-page-layout .category-products-table td { border-color: #e8ebed; padding: .65rem .6rem; }
/* CAT-045: базовые доли ниже действуют только до 1200 px (992–1199,98 px,
   колонка категорий в drawer); от 1200 px их переопределяют блоки CAT-045 в конце файла. */
.catalog-page-layout .category-products-table th:first-child { width: 32%; }
.catalog-page-layout .category-products-table th:nth-child(2) { width: 16%; }
.catalog-page-layout .category-products-table th:nth-child(3) { width: 19%; }
.catalog-page-layout .category-products-table th:nth-child(4) { width: 17%; }
.catalog-page-layout .category-products-table th:nth-child(5) { width: 16%; }
.catalog-page-layout .catalog-table-no-price th:first-child { width: 43%; }
.catalog-page-layout .catalog-table-no-price th:nth-child(2) { width: 22%; }
.catalog-page-layout .catalog-table-no-price th:nth-child(3) { width: 18%; }
.catalog-page-layout .catalog-table-no-price th:nth-child(4) { width: 17%; }
.catalog-page-layout .category-products-table tbody tr:nth-child(even) td { background: #fcfcfc; }
.catalog-page-layout .category-products-table tbody tr:hover td { background: #f8f9fa; }
.catalog-page-layout .catalog-product-identity { grid-template-columns: 60px minmax(0, 1fr); }
.catalog-page-layout .catalog-product-identity--no-image { grid-template-columns: minmax(0, 1fr); }
.catalog-page-layout .catalog-product-image { height: 60px; width: 60px; }
.catalog-page-layout .catalog-product-image img { height: 100%; width: 100%; object-fit: contain; }
.catalog-page-layout .catalog-product-name { display: block; overflow: visible; overflow-wrap: break-word; line-height: 1.3; }
.catalog-page-layout .catalog-tech-token { display: inline-block; white-space: nowrap; }
.catalog-page-layout .catalog-product-sku { overflow-wrap: break-word; }
.catalog-page-layout .catalog-product-subtitle { overflow-wrap: break-word; }
/* CAT-042: параметры ячейки — ссылки фильтра. Вид прежний, кликабельность — на hover/focus. */
.catalog-page-layout .catalog-param-filter { color: inherit; text-decoration: none; }
.catalog-page-layout .catalog-param-filter:hover, .catalog-page-layout .catalog-param-filter:focus { color: var(--dk-red); text-decoration: underline; }
.catalog-page-layout .catalog-param-filter:focus-visible { outline: 2px solid var(--dk-red); outline-offset: 2px; }
.catalog-page-layout .category-product-spec-cell .catalog-product-page-link { margin-top: .45rem; }
.catalog-page-layout .catalog-product-size { font-size: 1rem; }
.catalog-page-layout .catalog-product-details { line-height: 1.35; }
.catalog-page-layout .catalog-unit-price { color: var(--dk-dark); font-size: 1rem; }
.catalog-page-layout .catalog-pack-price { color: #4c555d; }
.catalog-page-layout .catalog-stock-status { color: #576067; font-weight: 600; margin-top: .35rem; }
.catalog-page-layout .catalog-selected-total { color: var(--dk-dark); font-size: .78rem; margin-top: .35rem; }
.catalog-page-layout .catalog-selected-total[hidden] { display: none; }
.catalog-page-layout .catalog-quantity { grid-template-columns: 38px minmax(48px, 1fr) 38px; max-width: 156px; }
.catalog-page-layout .catalog-quantity-step { font-size: 1.1rem; min-height: 42px; }
.catalog-page-layout .catalog-quantity .category-product-qty { height: 42px; }
.catalog-page-layout .category-product-cart-cell .catalog-product-action { font-size: .82rem; min-height: 42px; padding: .55rem .55rem; }
.catalog-page-layout .category-active-filters { gap: .35rem; margin-bottom: .55rem; }
.catalog-page-layout .category-filter-chip { border-radius: 4px; font-size: .76rem; font-weight: 500; padding: .3rem .5rem; }
.catalog-page-layout .category-filter-chip span { background: none; border-radius: 0; color: var(--dk-red); font-size: .9rem; font-weight: 600; margin-left: .25rem; padding: 0; }
.catalog-page-layout .category-filter-clear { border-radius: 0; font-size: .76rem; padding: .3rem .35rem; }
.catalog-page-layout .category-products-summary { color: var(--dk-dark); font-size: .82rem; font-weight: 650; margin: 0 0 .45rem; }
.catalog-page-layout .catalog-sidebar-link:focus-visible, .catalog-page-layout .catalog-sidebar-heading:focus-visible, .catalog-page-layout .category-filter-chip:focus-visible, .catalog-page-layout .category-filter-clear:focus-visible, .catalog-page-layout .catalog-product-name:focus-visible, .catalog-page-layout .catalog-product-image:focus-visible, .catalog-page-layout .catalog-quantity-step:focus-visible { outline: 2px solid var(--dk-red); outline-offset: -2px; }
.catalog-page-layout .catalog-quantity-step:hover:not(:disabled) { background: #f3f4f5; }
.catalog-page-layout .catalog-quantity-step:active:not(:disabled) { background: #e9ecef; }
.catalog-page-layout .catalog-quantity-step:disabled { cursor: not-allowed; opacity: .55; }
@media (max-width: 1199.98px) and (min-width: 992px) {
  .catalog-page-layout .category-products-table { min-width: 820px; }
}
@media (max-width: 1199.98px) {
  .catalog-page-layout { grid-template-columns: minmax(0, 1fr); }
  .catalog-page-layout > .catalog-mobile-toggle { display: inline-flex; justify-content: center; width: fit-content; }
  .catalog-page-layout .catalog-navigation-sidebar.offcanvas-xl { max-height: 100vh; overflow-y: auto; position: fixed; top: 0; z-index: 1200; }
  .catalog-page-layout .catalog-sidebar-disclosure > summary { display: none; }
  .catalog-page-layout .catalog-sidebar-disclosure[open] .catalog-sidebar-panel { margin-top: 0; max-height: none; overflow: visible; }
  .catalog-page-layout .catalog-sidebar-heading { display: grid; }
  body:has(.catalog-page-layout .offcanvas-xl.show) > .offcanvas-backdrop { z-index: 1190; }
}
@media (max-width: 991.98px) {
  .catalog-page-layout { grid-template-columns: minmax(0, 1fr); }
  .catalog-page-layout .category-products-table { min-width: 0; }
  .catalog-page-layout .category-products-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-page-layout .category-products-table td { width: auto; min-width: 0; }
  .catalog-page-layout .category-product-title-cell, .catalog-page-layout .category-product-spec-cell, .catalog-page-layout .category-product-cart-cell { grid-column: 1 / -1; }
  .catalog-page-layout .category-product-price-cell { grid-column: 1; }
  .catalog-page-layout .category-product-multiple-cell { grid-column: 2; }
  .catalog-page-layout .catalog-table-no-price .category-product-multiple-cell { grid-column: 1 / -1; }
  .catalog-page-layout .catalog-product-identity { grid-template-columns: 60px minmax(0, 1fr); }
  .catalog-page-layout .catalog-product-identity--no-image { grid-template-columns: minmax(0, 1fr); }
  .catalog-page-layout .category-products-table tr { border-radius: 5px; }
}

/* ==========================================================================
   PROD-002. Профили номенклатуры, размеры, семейство и аналоги.
   Все правила ограничены карточкой товара .product-b2b-layout.
   ========================================================================== */
/* ==========================================================================
   DEKMANN — прототип карточки товара (PROD-002)
   Только новые/уточнённые компоненты. Базовые стили темы (main.css,
   responsive.css, woocommerce.css) подключаются из локального сайта как есть,
   поэтому визуальный стиль DEKMANN сохраняется.
   Все селекторы ограничены карточкой товара (.product-b2b-layout).
   ========================================================================== */

/* --- 0. Шапка товара: заголовок под крошками, артикул под заголовком ----- */

/* Заголовок без карточки и фона. Класс .container выравнивает его по сетке
   макета; max-width: none снимает глобальный лимит темы h1 { max-width: 720px },
   из-за которого длинное наименование переносилось на половине строки. */
.product-b2b-layout .product-b2b-titleblock {
  background: none;
  border: 0;
  border-radius: 0;
  padding-block: 0;
}

.product-b2b-layout .product-b2b-titleblock h1 {
  color: var(--dk-dark);
  font-family: var(--font-heading);
  font-size: clamp(1.07rem, 1.47vw, 1.47rem);
  hyphens: none;
  line-height: 1.18;
  margin: 0 0 0.4rem;
  /* Тема ограничивает все H1 шириной 720 px — для заголовка товара снимаем. */
  max-width: none;
  overflow-wrap: break-word;
  text-wrap: balance;
  text-transform: uppercase;
  word-break: normal;
}

.product-b2b-layout .product-b2b-titleblock .catalog-tech-token {
  white-space: nowrap;
}

.product-b2b-layout .product-b2b-titleblock .product-b2b-meta {
  margin-bottom: 0.4rem;
}

/* Особенности товара живут в колонке «размер + характеристики». */
.product-b2b-layout .product-b2b-details .product-b2b-lead {
  border-top: 1px solid var(--dk-border);
  line-height: 1.45;
  padding-top: 0.7rem;
}

.product-b2b-layout .product-b2b-details .product-b2b-lead ul {
  display: block;
  margin: 0;
  padding-left: 1.05rem;
}

.product-b2b-layout .product-b2b-details .product-b2b-lead li {
  margin-bottom: 0.2rem;
}

.product-b2b-layout .product-b2b-details .product-b2b-lead li:last-child {
  margin-bottom: 0;
}

/* --- 0b. Три колонки первого экрана: фото / размер+характеристики / цена -- */

.product-b2b-layout .product-b2b-hero {
  align-items: start;
  gap: 1.25rem;
  grid-template-areas: "media details summary";
  grid-template-columns: minmax(0, 33fr) minmax(0, 37fr) minmax(0, 30fr);
  grid-template-rows: auto;
}

.product-b2b-layout .product-b2b-media { grid-area: media; }
.product-b2b-layout .product-b2b-details { grid-area: details; }
.product-b2b-layout .product-b2b-summary { grid-area: summary; }

.product-b2b-layout .product-b2b-details {
  align-content: start;
  background: var(--dk-white);
  border: 1px solid var(--dk-border);
  border-radius: 8px;
  display: grid;
  gap: 0.85rem;
  min-width: 0;
  padding: 1rem 1.15rem 1.15rem;
}

.product-b2b-layout .product-b2b-summary {
  border: 1px solid var(--dk-border);
  border-radius: 8px;
  gap: 0.5rem;
  padding: 1rem 1.15rem 1.15rem;
}

/* Фото без рамки: изображение не оформляется карточкой. */
.product-b2b-layout .product-b2b-media {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}

.product-b2b-layout .product-b2b-image {
  aspect-ratio: auto;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  cursor: zoom-in;
  display: block;
  max-height: none;
  padding: 0;
  width: 100%;
}

.product-b2b-layout .product-b2b-image img {
  display: block;
  height: auto;
  max-height: 460px;
  object-fit: contain;
  padding: 0;
  width: 100%;
}

.product-b2b-layout .product-b2b-media-note {
  margin-top: 0.6rem;
}

/* --- 1. Переключатель размеров ------------------------------------------- */

/* Карточка — grid с неявной колонкой auto: без этого колонка растягивается
   до min-content дочерних блоков и страница получает горизонтальный скролл. */
.product-b2b-layout {
  grid-template-columns: minmax(0, 1fr);
}

.product-b2b-layout > * {
  min-width: 0;
}

/* Заголовок раздела и пояснение профиля: переносим и разрешаем ломать
   длинные технические токены (self_drilling_screw, артикулы). */
.product-b2b-layout .product-b2b-section-head {
  align-items: end;
  flex-wrap: wrap;
}

.product-b2b-profile-note {
  flex: 1 1 14rem;
  min-width: 0;
  overflow-wrap: anywhere;
}

.product-b2b-size-picker {
  border-top: 1px solid var(--dk-border);
  display: grid;
  gap: 0.35rem 0.6rem;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 0.55rem;
  padding-top: 0.5rem;
}

.product-b2b-size-picker-label {
  grid-column: 1 / -1;
}

/* Свёрнутый список размеров стоит рядом с chips, а не отдельной строкой:
   так блок не отодвигает цену и CTA за пределы первого экрана. */
.product-b2b-size-chips {
  grid-column: 1;
}

.product-b2b-size-toggle {
  grid-column: 2;
}

.product-b2b-size-picker-label {
  align-items: baseline;
  color: var(--dk-muted);
  display: flex;
  font-size: 0.71rem;
  font-weight: 750;
  gap: 0.5rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.product-b2b-size-picker-label b {
  color: var(--dk-dark);
  font-weight: 750;
  letter-spacing: 0;
  text-transform: none;
}

.product-b2b-size-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}

.product-b2b-size-chip {
  align-items: center;
  background: var(--dk-white);
  border: 1px solid var(--dk-border);
  border-radius: 6px;
  color: var(--dk-dark);
  display: inline-flex;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.2;
  min-height: 32px;
  padding: 0.3rem 0.55rem;
  white-space: nowrap;
}

.product-b2b-size-chip:hover {
  border-color: var(--dk-red);
  color: var(--dk-red);
}

.product-b2b-size-chip.is-current {
  background: var(--dk-dark);
  border-color: var(--dk-dark);
  color: var(--dk-white);
}

.product-b2b-size-chip.is-extra[hidden] {
  display: none;
}

.product-b2b-size-toggle {
  align-items: center;
  align-self: start;
  background: none;
  border: 1px dashed var(--dk-border);
  border-radius: 6px;
  color: var(--dk-muted);
  cursor: pointer;
  display: inline-flex;
  font-size: 0.76rem;
  font-weight: 700;
  gap: 0.35rem;
  min-height: 32px;
  padding: 0.3rem 0.6rem;
}

.product-b2b-size-toggle:hover {
  border-color: var(--dk-red);
  color: var(--dk-red);
}

.product-b2b-size-toggle i {
  transition: transform 0.15s ease;
}

.product-b2b-size-toggle[aria-expanded="true"] i {
  transform: rotate(180deg);
}

/* --- 2. Sticky-меню разделов -------------------------------------------- */

.product-b2b-layout .product-b2b-jump-nav {
  background: var(--dk-white); /* непрозрачный фон: текст не просвечивает */
  border: 1px solid var(--dk-border);
  border-radius: 8px;
  box-shadow: none;
  flex-wrap: nowrap;
  gap: 1.15rem;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0 1rem;
  position: sticky;
  scrollbar-width: thin;
  top: var(--product-header-height, 0px);
  white-space: nowrap;
  z-index: 20; /* ниже .site-header.sticky-top (1100) */
}

.product-b2b-layout .product-b2b-jump-nav a {
  flex: 0 0 auto;
  text-transform: uppercase;
}

.product-b2b-layout .product-b2b-jump-nav a.is-active {
  color: var(--dk-red);
}

/* Заголовок раздела не должен уезжать под header + sticky-меню. */
.product-b2b-layout [id^="product-b2b-"] {
  scroll-margin-top: calc(var(--product-header-height, 0px) + var(--product-nav-height, 0px) + 14px);
}

/* --- 3. «Варианты»: строки одного бренда и вида -------------------------- */

.product-b2b-variants-count {
  color: var(--dk-muted);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0;
  margin-left: 0.6rem;
  text-transform: none;
  white-space: nowrap;
}

/* Full product pages retain the profile columns of legacy size families. */
.product-b2b-sizes { overflow-x: auto; margin-top: 0.75rem; }
.product-b2b-sizes-table { border-collapse: collapse; min-width: 100%; font-size: 0.83rem; }
.product-b2b-sizes-table th,
.product-b2b-sizes-table td { border-bottom: 1px solid var(--dk-border); padding: 0.55rem 0.65rem; text-align: left; vertical-align: middle; }
.product-b2b-sizes-table thead th { color: var(--dk-muted); font-size: 0.7rem; white-space: nowrap; }
.product-b2b-sizes-table tbody th { font-weight: 750; white-space: nowrap; }
.product-b2b-sizes-table tbody tr.is-current { background: #f7f7f5; box-shadow: inset 3px 0 0 var(--dk-red); }
.product-b2b-sizes-table tbody tr:hover { background: #fafafa; }
.product-b2b-sizes-table .product-b2b-size-link:hover { color: var(--dk-red); }
.product-b2b-sizes-open { white-space: nowrap; }

.product-b2b-variant-list {
  display: grid;
  gap: 0.5rem;
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
}

.product-b2b-variant {
  margin: 0;
  min-width: 0;
}

.product-b2b-variant-card {
  border: 1px solid var(--dk-border);
  border-radius: 8px;
  color: var(--dk-dark);
  display: grid;
  gap: 0.2rem;
  padding: 0.6rem 0.75rem;
  text-decoration: none;
}

a.product-b2b-variant-card:hover,
a.product-b2b-variant-card:focus-visible {
  border-color: var(--dk-red);
  outline: 0;
}

a.product-b2b-variant-card:focus-visible {
  box-shadow: 0 0 0 2px rgba(217, 35, 46, 0.12);
}

.product-b2b-variant.is-current .product-b2b-variant-card {
  border-color: var(--dk-red);
  box-shadow: inset 3px 0 0 var(--dk-red);
}

.product-b2b-variant-title {
  font-size: 0.92rem;
  font-weight: 750;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.product-b2b-variant-meta {
  color: var(--dk-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.75rem;
  gap: 0.1rem 0.6rem;
  line-height: 1.4;
}

.product-b2b-variant-meta span + span::before {
  color: var(--dk-border);
  content: '·';
  margin-right: 0.6rem;
}

.product-b2b-variant-foot {
  align-items: baseline;
  border-top: 1px solid var(--dk-border);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.78rem;
  gap: 0.15rem 0.75rem;
  margin-top: 0.15rem;
  padding-top: 0.35rem;
}

.product-b2b-variant-price {
  font-weight: 750;
}

.product-b2b-variant-price .is-muted {
  color: var(--dk-muted);
  font-weight: 500;
}

.product-b2b-variant-available {
  color: var(--dk-muted);
}

.product-b2b-variant-open {
  color: var(--dk-red);
  font-weight: 750;
  margin-left: auto;
}

.product-b2b-variant-open::after {
  content: ' →';
}

/* Текущий товар: тот же блок без ссылки, метка «Текущий» в заголовке. */
.product-b2b-current-mark {
  background: var(--dk-dark);
  border-radius: 4px;
  color: var(--dk-white);
  font-size: 0.62rem;
  font-weight: 750;
  letter-spacing: 0.03em;
  margin-left: 0.4rem;
  padding: 0.15rem 0.35rem;
  text-transform: uppercase;
  vertical-align: middle;
  white-space: nowrap;
}

/* --- 4. Аналоги ---------------------------------------------------------- */

.product-b2b-analog-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 1rem;
}

.product-b2b-analog-card {
  border: 1px solid var(--dk-border);
  border-radius: 8px;
  color: var(--dk-dark);
  display: grid;
  gap: 0.4rem;
  grid-template-rows: auto auto 1fr;
  padding: 0.75rem;
}

.product-b2b-analog-card:hover {
  border-color: var(--dk-red);
}

.product-b2b-analog-card img {
  background: #fafafa;
  border-radius: 6px;
  height: 132px;
  object-fit: contain;
  padding: 0.3rem;
  width: 100%;
}

.product-b2b-analog-card strong {
  font-size: 0.85rem;
  line-height: 1.35;
}

.product-b2b-analog-reason {
  color: var(--dk-muted);
  font-size: 0.72rem;
  line-height: 1.35;
  margin: 0;
}

.product-b2b-analog-meta {
  display: flex;
  flex-wrap: wrap;
  font-size: 0.75rem;
  gap: 0.15rem 0.6rem;
}

.product-b2b-analog-meta span {
  color: var(--dk-muted);
}

.product-b2b-analog-meta b {
  color: var(--dk-dark);
  font-weight: 750;
}

.product-b2b-analog-foot {
  align-items: baseline;
  border-top: 1px solid var(--dk-border);
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.75rem;
  justify-content: space-between;
  padding-top: 0.4rem;
}

.product-b2b-analog-foot .product-b2b-analog-price {
  font-size: 0.95rem;
  font-weight: 750;
}

.product-b2b-analog-foot .product-b2b-analog-stock {
  color: var(--dk-muted);
  font-size: 0.74rem;
}

.product-b2b-analog-label {
  border: 1px solid var(--dk-border);
  border-radius: 4px;
  color: var(--dk-muted);
  display: inline-block;
  font-size: 0.63rem;
  font-weight: 750;
  justify-self: start;
  letter-spacing: 0.03em;
  padding: 0.14rem 0.35rem;
  text-transform: uppercase;
}

.product-b2b-analog-label.is-strong {
  background: var(--dk-dark);
  border-color: var(--dk-dark);
  color: var(--dk-white);
}

/* --- 5. Характеристики по группам профиля -------------------------------- */

.product-b2b-profile-note {
  color: var(--dk-muted);
  font-size: 0.78rem;
  margin: 0 0 0.75rem;
}

.product-b2b-section-head .product-b2b-profile-note {
  margin-bottom: 0;
}

/* Прототип: компактнее, чтобы цена и CTA помещались в первый экран 1440×900. */
.product-b2b-layout .product-b2b-quick-specs div {
  padding: 0.22rem 0;
}

.product-b2b-layout .product-b2b-request-card {
  gap: 0.5rem;
}

.product-b2b-layout .product-b2b-summary {
  gap: 0.55rem;
}

/* Переключатель размеров — первый блок в колонке «размер + характеристики». */
.product-b2b-layout .product-b2b-details > .product-b2b-size-picker:first-child {
  border-top: 0;
  margin-top: 0;
  padding-top: 0;
}

.product-b2b-layout .product-b2b-cart-form label {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* Поле количества и кнопка «В заявку» — одной высоты. */
.product-b2b-layout .product-b2b-cart-actions {
  align-items: stretch;
}

.product-b2b-layout .product-b2b-cart-actions .btn,
.product-b2b-layout .product-b2b-cart-actions .product-b2b-quantity {
  height: 44px;
  min-height: 44px;
}

.product-b2b-layout .product-b2b-cart-actions .product-b2b-quantity input {
  height: 100%;
  min-height: 0;
  padding-bottom: 0;
  padding-top: 0;
}

.product-b2b-layout .product-b2b-cart-actions .btn {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  padding-bottom: 0;
  padding-top: 0;
}

/* Проверка кратности в поле количества. */
.product-b2b-layout .product-b2b-quantity.is-invalid {
  border-color: var(--dk-red);
}

.product-b2b-layout .product-b2b-quantity input.is-invalid {
  color: var(--dk-red);
}

.product-b2b-layout .product-b2b-quantity-hint {
  color: var(--dk-red);
  font-size: 0.75rem;
  line-height: 1.4;
  margin: 0;
}

.product-b2b-layout .product-b2b-quantity-hint[hidden] {
  display: none;
}

.product-b2b-layout .product-b2b-quantity-fix {
  background: none;
  border: 0;
  border-bottom: 1px dashed currentColor;
  color: inherit;
  cursor: pointer;
  font: inherit;
  padding: 0;
}

.product-b2b-layout .product-b2b-quantity-fix:hover {
  border-bottom-style: solid;
}

@media (max-width: 767.98px) {
  .product-b2b-size-picker {
    grid-template-columns: minmax(0, 1fr);
  }

  .product-b2b-size-chips,
  .product-b2b-size-toggle {
    grid-column: 1;
  }

  .product-b2b-size-toggle {
    justify-self: start;
  }
}

/* --- 5b. Галерея: увеличенное фото по клику ------------------------------ */

.product-b2b-lightbox {
  align-items: center;
  background: rgba(14, 14, 14, 0.88);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 1.5rem;
  position: fixed;
  z-index: 1300; /* выше .site-header.sticky-top (1100) */
}

.product-b2b-lightbox[hidden] {
  display: none;
}

.product-b2b-lightbox-body {
  align-items: center;
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  max-height: 100%;
  max-width: 1400px;
  position: relative;
  width: 100%;
}

.product-b2b-lightbox-image {
  background: var(--dk-white);
  border-radius: 8px;
  height: auto;
  max-height: calc(100vh - 6rem);
  object-fit: contain;
  width: auto;
  max-width: 100%;
}

.product-b2b-lightbox-close,
.product-b2b-lightbox-nav {
  align-items: center;
  background: var(--dk-white);
  border: 1px solid var(--dk-border);
  border-radius: 999px;
  color: var(--dk-dark);
  cursor: pointer;
  display: inline-flex;
  height: 44px;
  justify-content: center;
  width: 44px;
}

.product-b2b-lightbox-close {
  position: absolute;
  right: 0;
  top: -0.25rem;
  transform: translateY(-100%);
}

.product-b2b-lightbox-nav[hidden] {
  display: none;
}

.product-b2b-lightbox-close:hover,
.product-b2b-lightbox-nav:hover {
  background: var(--dk-red);
  border-color: var(--dk-red);
  color: var(--dk-white);
}

.product-b2b-lightbox-caption {
  bottom: -2.2rem;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.8rem;
  left: 0;
  margin: 0;
  position: absolute;
  right: 0;
  text-align: center;
}

body.product-b2b-lightbox-open {
  overflow: hidden;
}


.product-b2b-profile-note b {
  color: var(--dk-dark);
  font-weight: 750;
}

.product-b2b-spec-group {
  margin-bottom: 1.1rem;
}

.product-b2b-spec-group:last-child {
  margin-bottom: 0;
}

/* --- 6. Адаптив ---------------------------------------------------------- */

/* 992–1199 px: фото и характеристики рядом, цена уходит на всю ширину. */
@media (max-width: 1199.98px) and (min-width: 992px) {
  .product-b2b-layout .product-b2b-hero {
    grid-template-areas: "media details" "summary summary";
    grid-template-columns: minmax(0, 40fr) minmax(0, 60fr);
  }
}

/* До 992 px: одна колонка. Перекрывает правило темы с устаревшей областью intro. */
@media (max-width: 991.98px) {
  .product-b2b-layout .product-b2b-hero {
    grid-template-areas: "media" "details" "summary";
    grid-template-columns: minmax(0, 1fr);
    gap: 0.85rem;
  }
}

@media (max-width: 1199.98px) {
  .product-b2b-analog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .product-b2b-layout .product-b2b-jump-nav {
    gap: 0.9rem;
    padding: 0 0.75rem;
  }

  /* «Варианты»: строка-карточка и на узком экране держит ту же структуру. */
  .product-b2b-variant-card {
    padding: 0.55rem 0.65rem;
  }
}

@media (max-width: 767.98px) {
  .product-b2b-analog-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 575.98px) {
  .product-b2b-size-chip {
    font-size: 0.75rem;
    min-height: 30px;
    padding: 0.25rem 0.45rem;
  }

  .product-b2b-layout .product-b2b-jump-nav a {
    font-size: 0.72rem;
    padding: 0.75rem 0.1rem;
  }
}

/* ==========================================================================
   CHECKOUT-003: простая B2B-корзина-заявка на /cart/
   ========================================================================== */

.dekmann-shop-head.dekmann-request-head {
  align-items: center;
  gap: 1rem 2rem;
  margin-bottom: 1rem;
}

.dekmann-request-head h1 {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  line-height: 1.1;
}

.dekmann-request-content {
  padding: 1rem;
}

.dekmann-request-layout {
  align-items: start;
  display: grid;
  gap: 1.25rem;
  grid-template-columns: minmax(0, 1fr) 320px;
}

.dekmann-request-block-title {
  color: var(--dk-dark);
  font-family: var(--font-heading);
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  margin: 0 0 0.65rem;
  text-transform: uppercase;
}

.dekmann-request-items {
  min-width: 0;
}

.dekmann-request-items-form {
  margin: 0;
}

.dekmann-request-table {
  border-collapse: collapse;
  margin: 0;
  table-layout: fixed;
  width: 100%;
}

.dekmann-request-table th,
.dekmann-request-table td {
  border-bottom: 1px solid var(--dk-border);
  padding: 4px 6px;
  text-align: left;
  vertical-align: middle;
}

.dekmann-request-table th {
  color: var(--dk-muted);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
}

.dekmann-request-table th:nth-child(1) { width: auto; }
.dekmann-request-table th:nth-child(2) { width: 110px; }
.dekmann-request-table th:nth-child(3) { width: 92px; }
.dekmann-request-table th:nth-child(4) { width: 125px; }
.dekmann-request-table th:nth-child(5) { width: 44px; }

.dekmann-request-table tbody tr:last-child td {
  border-bottom: 0;
}

.dekmann-request-product {
  align-items: center;
  display: flex;
  gap: 10px;
  min-width: 0;
}

.dekmann-request-item-image,
.dekmann-request-item-image img {
  display: block;
  flex: 0 0 60px;
  height: 60px;
  object-fit: contain;
  width: 60px;
}

.dekmann-request-item-description {
  min-width: 0;
}

.dekmann-request-item-name {
  color: var(--dk-text);
  display: block;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.dekmann-request-item-name:hover,
.dekmann-request-item-name:focus-visible {
  color: var(--dk-red);
}

.dekmann-request-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  margin-top: 3px;
}

.dekmann-request-item-sku,
.dekmann-request-item-multiple {
  color: var(--dk-muted);
  font-size: 12px;
}

.dekmann-request-item-multiple {
  display: block;
  margin-top: 3px;
}

.dekmann-request-item-price,
.dekmann-request-item-subtotal {
  font-size: 14px;
  overflow-wrap: anywhere;
}

.dekmann-request-item-unit {
  color: var(--dk-muted);
  display: block;
  font-size: 0.78rem;
}

.dekmann-request-table .quantity {
  margin: 0;
}

.dekmann-request-table .quantity .qty {
  max-width: 100%;
  appearance: textfield;
  min-height: 34px;
  padding: 4px;
  width: 64px;
}

.dekmann-request-table .quantity .qty::-webkit-inner-spin-button,
.dekmann-request-table .quantity .qty::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.dekmann-request-item-remove-link {
  align-items: center;
  border: 1px solid var(--dk-border);
  border-radius: 50%;
  color: var(--dk-muted);
  display: inline-flex;
  height: 32px;
  justify-content: center;
  text-decoration: none;
  width: 32px;
}

.dekmann-request-item-remove-link:hover,
.dekmann-request-item-remove-link:focus-visible {
  background: var(--dk-red);
  border-color: var(--dk-red);
  color: var(--dk-white);
}

.dekmann-request-items-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-top: 0.75rem;
}

.dekmann-request-items-hint {
  color: var(--dk-muted);
  font-size: 0.85rem;
  margin: 0;
}

.dekmann-request-summary {
  background: var(--dk-bg);
  border: 1px solid var(--dk-border);
  border-radius: var(--dk-radius);
  padding: 1rem;
  position: sticky;
  top: calc(var(--header-height, 126px) + 16px);
}

.dekmann-request-count,
.dekmann-request-total {
  margin: 0 0 0.5rem;
}

.dekmann-request-count {
  color: var(--dk-muted);
  font-size: 0.92rem;
  font-weight: 600;
}

.dekmann-request-total {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  justify-content: space-between;
}

.dekmann-request-total span {
  color: var(--dk-muted);
  font-size: 0.92rem;
}

.dekmann-request-total strong {
  font-family: var(--font-heading);
  font-size: clamp(1.35rem, 2.4vw, 1.8rem);
}

.dekmann-request-saving,
.dekmann-request-tax {
  color: var(--dk-muted);
  font-size: 0.85rem;
  margin: 0 0 0.35rem;
}

.dekmann-request-errors {
  background: rgba(225, 26, 26, 0.08);
  border: 1px solid rgba(225, 26, 26, 0.35);
  border-radius: 6px;
  color: var(--dk-dark);
  margin: 1rem 0;
  padding: 0.85rem 1rem;
}

.dekmann-request-errors:focus {
  outline: 2px solid var(--dk-red);
  outline-offset: 2px;
}

.dekmann-request-errors-title {
  font-weight: 700;
  margin: 0 0 0.35rem;
}

.dekmann-request-errors ul {
  margin: 0;
  padding-left: 1.1rem;
}

.dekmann-request-form {
  border-top: 1px solid var(--dk-border);
  display: grid;
  gap: 0.6rem;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
}

.dekmann-request-field {
  display: grid;
  gap: 0.3rem;
}

.dekmann-request-field .form-label {
  font-size: 14px;
  margin: 0;
}

.dekmann-request-field .form-control {
  font-size: 16px;
  line-height: 1.4;
  min-height: 38px;
  padding: 6px 10px;
}

.dekmann-request-form .invalid-feedback:empty {
  display: none !important;
}

.dekmann-request-optional {
  color: var(--dk-muted);
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: lowercase;
}

.dekmann-request-consent {
  align-items: flex-start;
  display: flex;
  font-size: 0.85rem;
  gap: 0.55rem;
}

.dekmann-request-consent input {
  flex: 0 0 auto;
  height: 18px;
  margin-top: 0.2rem;
  width: 18px;
}

.dekmann-request-submits {
  display: grid;
  gap: 0.6rem;
}

.dekmann-request-submits .btn {
  width: 100%;
}

.dekmann-request-submit-note {
  color: var(--dk-muted);
  font-size: 0.8rem;
  margin: 0;
}

.dekmann-request-form.is-submitting {
  opacity: 0.75;
}

.dekmann-request-success,
.dekmann-request-empty {
  margin: 0 auto;
  max-width: 720px;
  padding: clamp(1.25rem, 3vw, 2.5rem);
  text-align: center;
}

.dekmann-request-success-icon {
  color: #1f9d55;
  font-size: clamp(2.2rem, 5vw, 3rem);
  line-height: 1;
  margin-bottom: 0.75rem;
}

.dekmann-request-success h2,
.dekmann-request-empty h2 {
  color: var(--dk-dark);
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  margin: 0 0 0.75rem;
}

.dekmann-request-success-lead {
  font-size: 1.05rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
}

.dekmann-request-success-quote {
  background: rgba(255, 194, 14, 0.18);
  border-radius: 6px;
  display: inline-block;
  font-weight: 600;
  padding: 0.5rem 0.9rem;
}

.dekmann-request-success-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  margin-top: 1.5rem;
}

.dekmann-request-empty-alt {
  color: var(--dk-muted);
  font-size: 0.9rem;
  margin: 1rem 0 0;
}

@media (max-width: 1199.98px) {
  .dekmann-request-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .dekmann-request-summary {
    position: static;
    top: auto;
  }
}

@media (max-width: 767.98px) {
  /* Labels move into each cell through [data-title]; the header row would only
     widen the card layout, so it is removed from the mobile layout entirely. */
  .dekmann-request-table thead {
    display: none;
  }

  .dekmann-request-table,
  .dekmann-request-table tbody,
  .dekmann-request-table td {
    display: block;
    width: 100%;
  }

  .dekmann-request-table tr {
    border: 1px solid var(--dk-border);
    border-radius: var(--dk-radius);
    margin-bottom: 0.85rem;
    display: grid;
    gap: 6px;
    grid-template-columns: minmax(0, 1fr) 80px minmax(0, 1fr);
    padding: 8px;
    position: relative;
  }

  .dekmann-request-table td {
    border: 0;
    padding: 0.25rem 0;
  }

  .dekmann-request-table .dekmann-request-item-main {
    grid-column: 1 / -1;
    padding-right: 34px;
  }

  .dekmann-request-table .dekmann-request-item-main::before {
    display: none;
  }

  .dekmann-request-table td::before {
    color: var(--dk-muted);
    content: attr(data-title);
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: normal;
    text-transform: none;
  }

  .dekmann-request-table .dekmann-request-item-remove {
    padding: 0;
    position: absolute;
    right: 0.35rem;
    top: 0.35rem;
    width: auto;
  }

  .dekmann-request-item-remove::before {
    display: none;
  }
}

@media (pointer: coarse) {
  .dekmann-request-item-remove-link {
    height: 44px;
    width: 44px;
  }

  .dekmann-request-table .quantity .qty {
    min-height: 44px;
  }

  .dekmann-request-table th:nth-child(5) { width: 56px; }
}

@media (pointer: coarse) and (max-width: 767.98px) {
  .dekmann-request-table .dekmann-request-item-main { padding-right: 48px; }
}

@media (max-width: 430px) {
  .dekmann-request-content {
    padding: 0.85rem;
  }

  .dekmann-request-summary {
    padding: 0.85rem;
  }

  .dekmann-request-submits .btn {
    font-size: 0.9rem;
  }
}

/* CAT-012: компактный CTA и фильтры каталога в один ряд.
   Блок читается последним, поэтому перекрывает более ранние правила
   `.catalog-page-layout .category-*`, не меняя разметку логики фильтрации. */

/* CTA: горизонтальная плашка 72–80 px вместо рекламного баннера. */
.catalog-page-layout .category-banner {
  border-radius: 8px;
}

.catalog-page-layout .category-banner p {
  color: var(--dk-dark);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.4;
}

@media (min-width: 992px) {
  .catalog-page-layout .category-banner {
    gap: 24px;
    min-height: 72px;
    padding: 16px 24px;
  }

  .catalog-page-layout .category-banner .btn {
    flex: 0 0 auto;
    font-size: 0.875rem;
    height: 44px;
    min-height: 44px;
    min-width: 180px;
    padding: 0 24px;
  }
}

/* Шесть основных фильтров одной строкой на desktop. */
.catalog-page-layout .category-filter-quick {
  align-items: start;
  gap: 12px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.catalog-page-layout .category-filter-label,
.catalog-page-layout .category-filter-form label > span:not(.visually-hidden),
.catalog-page-layout .category-filter-advanced-grid .category-filter-type legend {
  color: var(--dk-dark);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 5px;
  text-transform: none;
}

.catalog-page-layout .category-filter-field { margin-bottom: 0; }
/* Отступ между подписью и контролом задаёт margin подписи. Второй gap у
   обычных label опускал select диаметра и длины на 5 px. */
.catalog-page-layout .category-filter-form label { gap: 0; }

/* Единые 44 px контролы: select, dropdown-сводка, поиск, secondary-кнопки. */
.catalog-page-layout .category-filter-dropdown > summary,
.catalog-page-layout .category-filter-form input,
.catalog-page-layout .category-filter-form select,
.catalog-page-layout .category-filter-advanced > summary {
  border: 1px solid #d5dbe3;
  border-radius: 6px;
  font-size: 0.875rem;
  height: 44px;
  min-height: 44px;
}

.catalog-page-layout .category-filter-form select {
  background-color: #fff;
  padding: 0 36px 0 12px;
}

.catalog-page-layout .category-filter-dropdown > summary {
  background: #fff;
  padding: 0 12px;
}

.catalog-page-layout .category-filter-dropdown > summary strong {
  font-size: 0.875rem;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.catalog-page-layout .category-filter-advanced > summary { padding: 0 14px; }

/* Второй ряд: поиск основной ширины и «Все параметры» справа. */
.catalog-page-layout .category-filter-search-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  grid-column: 1 / -1;
  min-width: 0;
}

.catalog-page-layout .category-filter-search-row .category-filter-search {
  flex: 1 1 auto;
  min-width: 280px;
}

.catalog-page-layout .category-filter-search-row .category-filter-search input {
  padding: 0 12px;
  width: 100%;
}

.catalog-page-layout .category-filter-search-row .category-filter-advanced {
  flex: 0 0 auto;
  min-width: 0;
}

/* Контейнер фильтров: лёгкая рамка и тень, без тяжёлой тени. */
.catalog-page-layout .category-filter-panel.offcanvas-lg {
  border: 1px solid #e1e5ea;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

/* Адаптив: 3 колонки на 992–1199.98 px, 2 на tablet, 1 на mobile. */
@media (min-width: 1200px) and (max-width: 1439.98px) {
  /* Шесть колонок в узком desktop-диапазоне: меньше зазор и 13 px,
     иначе «Все стандарты»/«Все диаметры» обрезаются многоточием. */
  .catalog-page-layout .category-filter-quick { gap: 10px; }
  .catalog-page-layout .category-filter-form select,
  .catalog-page-layout .category-filter-dropdown > summary,
  .catalog-page-layout .category-filter-advanced > summary { font-size: 0.8125rem; }
  .catalog-page-layout .category-filter-form select { padding: 0 28px 0 10px; }
  .catalog-page-layout .category-filter-dropdown > summary { gap: 0.3rem; padding: 0 8px; }
  .catalog-page-layout .category-filter-dropdown > summary strong { font-size: 0.8125rem; }
}

/* Нижний ряд использует те же треки, что и основные фильтры. Subgrid сохраняет
   точные границы колонок при любом доступном размере основной области. */
@media (min-width: 992px) {
  .catalog-page-layout .category-filter-search-row {
    align-items: center;
    display: grid;
    gap: inherit;
    grid-template-columns: subgrid;
  }

  .catalog-page-layout .category-filter-search-row .category-filter-search {
    grid-column: auto;
    min-width: 0;
  }

  /* CAT-017: кнопка «Все параметры» — компактное действие, а не широкая полоса. */
  .catalog-page-layout .category-filter-search-row .category-filter-advanced {
    position: static;
    width: auto;
  }

  /* Панель — обычный поток внутри карточки фильтра (см. блок CAT-017 ниже). */
  .catalog-page-layout .category-filter-advanced-grid {
    left: auto;
    max-height: none;
    overflow: visible;
    right: auto;
    width: auto;
  }

  .catalog-page-layout .category-filter-advanced-grid > .category-filter-type,
  .catalog-page-layout .category-filter-advanced-grid > .category-filter-group {
    grid-column: span 1;
  }

  .catalog-page-layout .category-filter-advanced-grid:has(> .category-filter-type) > label {
    grid-column: span 2;
  }

  .catalog-page-layout .category-filter-advanced-grid .category-filter-group {
    align-self: start;
    max-height: none;
    overflow-x: visible;
    overflow-y: visible;
  }
}

@media (min-width: 1200px) {
  .catalog-page-layout .category-filter-search-row .category-filter-search {
    grid-column: auto;
  }
}

@media (max-width: 1199.98px) and (min-width: 992px) {
  .catalog-page-layout .category-filter-quick { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
}

@media (max-width: 991.98px) {
  .catalog-page-layout .category-filter-search-row .category-filter-advanced { width: 100%; }
}

@media (max-width: 575.98px) {
  .catalog-page-layout .category-filter-quick { grid-template-columns: minmax(0, 1fr); }
  .catalog-page-layout .category-filter-search-row { flex-direction: column; align-items: stretch; }
  .catalog-page-layout .category-filter-search-row .category-filter-advanced { justify-content: center; width: 100%; }
}

/* CAT-015: левое меню категорий шире на 20 % (218 → 262 px) от 1200 px.
   CAT-016: ещё +10 % (262 → 288 px); колонка категорий больше не прокручивается
   внутри себя — она идёт вместе со страницей и останавливается, когда её низ
   достигает нижнего края экрана (--catalog-sidebar-sticky-top, assets/js/main.js).
   CAT-045: 288 px сохраняются только от 1400 px (контейнер 1320 px);
   в диапазоне 1200–1399,98 px (контейнер 1140 px) колонка сужена до 240 px —
   см. блок долей колонок ниже. */
@media (min-width: 1200px) {
  .catalog-page-layout { grid-template-columns: 288px minmax(0, 1fr); }

  .catalog-navigation-sidebar {
    max-height: none;
    overflow: visible;
    top: var(--catalog-sidebar-sticky-top, auto);
  }
}

/* CAT-045: доли колонок товарной таблицы подобраны по измеренному содержимому
   ячеек, а не по «остатку» ширины. Неснижаемые требования (с padding 0,6rem),
   замерены сплошным обходом 800 строк в 16 разделах каталога:
   «Товар» — фото 60 + зазор + подпись (слова переносятся, ограничение мягкое);
   «Размер и параметры» — 142,8 px (слово «термодиффузионное» 123,6 px);
   «Цена и наличие» — 150,2 px (nowrap «242220,00 ₽ / шт.» = 131 px);
   «Количество» — 139,2 px (степпер 120 px при поле от 44 px);
   «Действие» — 144,8 px («Запросить цену» 125,6 px).
   Итого минимум ≈ 806 px, поэтому 782 px прежнего диапазона не хватало.
   1200–1399,98 px: контейнер Bootstrap здесь ещё 1140 px, поэтому колонка
   категорий сужена 288 → 240 px, таблица получает 832 px вместо 782 px. */
@media (min-width: 1200px) and (max-width: 1399.98px) {
  .catalog-page-layout { grid-template-columns: 240px minmax(0, 1fr); }

  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th:first-child { width: 28%; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th:nth-child(2) { width: 18%; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th:nth-child(3) { width: 19%; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th:nth-child(4) { width: 17%; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th:nth-child(5) { width: 18%; }

  .catalog-page-layout .catalog-table-no-price th:first-child { width: 32%; }
  .catalog-page-layout .catalog-table-no-price th:nth-child(2) { width: 30%; }
  .catalog-page-layout .catalog-table-no-price th:nth-child(3) { width: 19%; }
  .catalog-page-layout .catalog-table-no-price th:nth-child(4) { width: 19%; }

  /* Поле количества: 48 → 44 px, иначе степпер (124 px) не помещается
     в 122 px содержимого колонки 141 px. */
  .catalog-page-layout .catalog-quantity { grid-template-columns: 38px minmax(44px, 1fr) 38px; }
}

/* CAT-045: от 1400 px контейнер 1320 px, таблица 962 px. «Размер и параметры»
   получают 173 px вместо 154 px — техническая строка сокращается на строку;
   по 10 px снято с «Товара» (число строк подписи не меняется) и «Количества»
   (154 px всё ещё больше минимума 143 px). Таблица без цен вместо 43/22/18/17
   получает 36/27/19/18: «Параметры» были уже «Товара» при более длинном тексте. */
@media (min-width: 1400px) {
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th:first-child { width: 31%; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th:nth-child(2) { width: 18%; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th:nth-child(3) { width: 19%; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th:nth-child(4) { width: 16%; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th:nth-child(5) { width: 16%; }

  .catalog-page-layout .catalog-table-no-price th:first-child { width: 36%; }
  .catalog-page-layout .catalog-table-no-price th:nth-child(2) { width: 27%; }
  .catalog-page-layout .catalog-table-no-price th:nth-child(3) { width: 19%; }
  .catalog-page-layout .catalog-table-no-price th:nth-child(4) { width: 18%; }
}

/* =====================================================================
   CAT-017: «Все параметры» — inline-блок технических фильтров.
   Правила идут в конец файла, чтобы перебить более ранние объявления
   popover-варианта CAT-013 (позиционирование, ширина 780 px, max-height).
   ===================================================================== */

/* Раскрытый блок — продолжение карточки фильтров, а не панель поверх товаров:
   никаких position absolute/fixed, ничто не перекрывает список товаров. */
.catalog-page-layout .category-filter-advanced {
  position: static;
  width: 100%;
}
.catalog-page-layout .category-filter-advanced > summary {
  float: right;
  gap: .4rem;
  justify-content: center;
  margin-top: 12px;
  padding: 0 14px;
  width: auto;
}
.catalog-page-layout .category-filter-advanced-panel {
  clear: both;
}
.catalog-page-layout .category-filter-advanced > summary em {
  background: var(--dk-yellow);
  border-radius: 999px;
  color: var(--dk-dark);
  font-size: .72rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  min-width: 1.15rem;
  padding: .22rem .4rem;
  text-align: center;
}
.catalog-page-layout .category-filter-advanced > summary i {
  transition: transform .15s ease;
}
.catalog-page-layout .category-filter-advanced[open] > summary {
  border-color: var(--dk-dark);
  color: var(--dk-dark);
}
.catalog-page-layout .category-filter-advanced[open] > summary i {
  transform: rotate(180deg);
}
/* Когда дополнительные фильтры применены, свёрнутая кнопка это показывает. */
.catalog-page-layout .category-filter-advanced.is-active > summary {
  background: #fffdf5;
  border-color: var(--dk-dark);
}

/* Панель — визуальное продолжение карточки фильтра: одна рамка, без второй карточки. */
.catalog-page-layout .category-filter-advanced-panel {
  background: transparent;
  border: 0;
  border-top: 1px solid #e5e7eb;
  box-shadow: none;
  margin-top: 12px;
  padding-top: 12px;
}
.catalog-page-layout .category-filter-advanced-empty {
  color: var(--dk-muted);
  font-size: .82rem;
  margin: 0;
}
.catalog-page-layout .category-filter-advanced-grid {
  align-items: start;
  display: grid;
  gap: 14px 16px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-height: none;
  overflow: visible;
  position: static;
  width: auto;
}
/* Компактная сетка: широкие контролы занимают две колонки. */
.catalog-page-layout .category-filter-advanced-grid > label,
.catalog-page-layout .category-filter-advanced-grid > .category-filter-group,
.catalog-page-layout .category-filter-advanced-grid > .category-filter-type {
  align-content: start;
  grid-column: span 1;
  min-width: 0;
  width: auto;
}
.catalog-page-layout .category-filter-advanced-grid > .category-filter-span-2 { grid-column: span 2; }
.catalog-page-layout .category-filter-advanced-grid > label:has(> input) { grid-column: span 2; }
.catalog-page-layout .category-filter-advanced-grid .category-filter-group {
  border: 0;
  margin: 0;
  max-height: none;
  overflow: visible;
  padding: 0;
}
.catalog-page-layout .category-filter-advanced-grid .category-filter-group legend,
.catalog-page-layout .category-filter-advanced-grid .category-filter-type legend {
  color: var(--dk-dark);
  float: none;
  font-size: .72rem;
  font-weight: 600;
  line-height: 1.2;
  margin: 0 0 5px;
  padding: 0;
  text-transform: none;
}

/* Chips: короткие дискретные значения вместо вертикального списка checkbox.
   Сам контрол — настоящий checkbox: он один отвечает за значение формы и в JS,
   и без него, поэтому визуально скрыт, но остаётся фокусируемым. */
.catalog-page-layout .category-filter-advanced-grid .category-filter-chip-input {
  align-items: baseline;
  background: #fff;
  border: 1px solid #d5dbe3;
  border-radius: var(--dk-radius);
  color: var(--dk-dark);
  cursor: pointer;
  display: inline-flex;
  font-size: .8125rem;
  font-weight: 500;
  gap: .3rem;
  line-height: 1.1;
  min-height: 32px;
  padding: .3rem .55rem;
  position: relative;
  transition: border-color .12s ease, background-color .12s ease, color .12s ease;
}
.catalog-page-layout .category-filter-advanced-grid .category-filter-chip-input > .category-filter-chip-checkbox {
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
/* Счётчик товаров вторичен по отношению к значению. */
.catalog-page-layout .category-filter-advanced-grid .category-filter-chip-input small {
  color: #6b7280;
  font-size: 11px;
  font-weight: 400;
}
.catalog-page-layout .category-filter-advanced-grid .category-filter-chip-input:hover {
  background: #f7f8f9;
  border-color: #9da6b0;
}
.catalog-page-layout .category-filter-advanced-grid .category-filter-chip-input:focus-within {
  border-color: var(--dk-red);
  box-shadow: 0 0 0 2px rgba(217, 35, 46, .12);
  outline: 0;
}
.catalog-page-layout .category-filter-advanced-grid .category-filter-chip-input[hidden] { display: none; }
.catalog-page-layout .category-filter-advanced-grid .category-filter-chip-more {
  background: transparent;
  border: 1px dashed #c9cfd6;
  border-radius: var(--dk-radius);
  color: var(--dk-muted);
  cursor: pointer;
  font-size: .78rem;
  min-height: 32px;
  padding: .3rem .6rem;
}
.catalog-page-layout .category-filter-advanced-grid .category-filter-chip-more:hover {
  border-color: var(--dk-dark);
  color: var(--dk-dark);
}
.catalog-page-layout .category-filter-advanced-grid .category-filter-group.is-expanded .category-filter-chip-more {
  display: none;
}
/* Выбранное состояние спокойным фирменным жёлтым, а не красной/тёмной заливкой. */
.catalog-page-layout .category-filter-advanced-grid .category-filter-chip-input.is-selected {
  background: #fff8e1;
  border-color: var(--dk-yellow);
  color: var(--dk-dark);
  font-weight: 600;
}
.catalog-page-layout .category-filter-advanced-grid .category-filter-chip-input.is-selected small {
  color: #7a6a34;
}
.catalog-page-layout .category-filter-advanced-grid fieldset.category-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.catalog-page-layout .category-filter-advanced-grid fieldset.category-filter-chips legend {
  flex: 0 0 100%;
}

/* Мультивыбор для длинных списков: блок прокручивается внутри себя,
   горизонтальной прокрутки страницы не появляется. */
.catalog-page-layout .category-filter-advanced-grid select[multiple] {
  background-image: none;
  height: auto;
  max-height: 148px;
  min-height: 84px;
  overflow-y: auto;
  padding: .35rem .5rem;
}
.catalog-page-layout .category-filter-advanced-grid select[multiple] option {
  border-radius: 4px;
  padding: .22rem .45rem;
}

.catalog-page-layout .category-filter-advanced-rest {
  margin-top: 10px;
}
.catalog-page-layout .category-filter-advanced-rest > summary {
  color: var(--dk-red);
  cursor: pointer;
  font-size: .82rem;
  font-weight: 600;
  list-style: none;
}
.catalog-page-layout .category-filter-advanced-rest > summary::-webkit-details-marker { display: none; }
.catalog-page-layout .category-filter-advanced-rest > summary::before {
  content: "+";
  display: inline-block;
  font-weight: 700;
  margin-right: .3rem;
}
.catalog-page-layout .category-filter-advanced-rest[open] > summary::before { content: "−"; }
.catalog-page-layout .category-filter-advanced-rest > .category-filter-advanced-grid {
  margin-top: 10px;
}
.catalog-page-layout .category-filter-advanced-actions {
  margin-top: 10px;
  text-align: right;
}
.catalog-page-layout .category-filter-advanced-actions a {
  color: var(--dk-red);
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none;
}
.catalog-page-layout .category-filter-advanced-actions a:hover { text-decoration: underline; }

/* Активные фильтры остаются видимыми и после сворачивания блока. */
.catalog-page-layout .category-active-filters .category-filter-chip {
  max-width: 100%;
}

/* Основные фильтры занимают доступную ширину, а не оставляют пустую область справа:
   колонки подстраиваются под реальное число фильтров категории. */
.catalog-page-layout .category-filter-quick {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
/* Поиск занимает свободное место, ГОСТ/DIN/ISO — по содержимому. */
.catalog-page-layout .category-filter-search-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 12px;
}
.catalog-page-layout .category-filter-search-row .category-filter-search {
  flex: 1 1 auto;
  min-width: 220px;
}

/* Ниже 992 px панель снова обычный поток: drawer и так одноколоночный. */
@media (max-width: 991.98px) {
  .catalog-page-layout .category-filter-search-row .category-filter-advanced-panel {
    margin-top: 10px;
    position: static;
  }
}

@media (min-width: 1600px) {
  .catalog-page-layout .category-filter-advanced-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 1439.98px) {
  .catalog-page-layout .category-filter-advanced-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1199.98px) {
  .catalog-page-layout .category-filter-advanced-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .catalog-page-layout .category-filter-advanced > summary { margin-top: 10px; }
}
@media (max-width: 991.98px) {
  .catalog-page-layout .category-filter-advanced-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .catalog-page-layout .category-filter-advanced-grid { grid-template-columns: minmax(0, 1fr); }
  .catalog-page-layout .category-filter-advanced-grid > label,
  .catalog-page-layout .category-filter-advanced-grid > .category-filter-group,
  .catalog-page-layout .category-filter-advanced-grid > .category-filter-type { grid-column: 1 / -1; }
  .catalog-page-layout .category-filter-advanced-actions { text-align: left; }
}

/* CAT-018: иерархия подкатегорий в колонке каталога. Уровни 1–2 больше не
   резервируют пустую колонку иконки (из-за неё название попадало в 26 px и
   переносилось по одному слову), название выравнивается по названию родителя,
   шеврон прижат к правому краю, у каждого уровня свой размер и отступ. */
.catalog-page-layout .catalog-sidebar-link > i {
  justify-self: end;
}

.catalog-page-layout .catalog-sidebar-link > span:not(.catalog-sidebar-icon) {
  min-width: 0;
  overflow-wrap: break-word;
}

.catalog-page-layout .catalog-sidebar-level-1 .catalog-sidebar-link,
.catalog-page-layout .catalog-sidebar-level-2 .catalog-sidebar-link {
  gap: .4rem;
  grid-template-columns: minmax(0, 1fr) auto;
  line-height: 1.25;
  padding: .35rem .55rem .35rem 2.625rem;
}

.catalog-page-layout .catalog-sidebar-level-1 .catalog-sidebar-link {
  font-size: .8rem;
  min-height: 36px;
}

.catalog-page-layout .catalog-sidebar-level-2 .catalog-sidebar-link {
  font-size: .76rem;
  min-height: 32px;
  padding-left: 3.5rem;
}

.catalog-page-layout .catalog-sidebar-level-1 .catalog-sidebar-link.is-current {
  padding-left: calc(2.625rem - 3px);
}

.catalog-page-layout .catalog-sidebar-level-2 .catalog-sidebar-link.is-current {
  padding-left: calc(3.5rem - 3px);
}

/* Направляющая линия иерархии проходит под иконкой родителя. */
.catalog-page-layout .catalog-sidebar-level-1,
.catalog-page-layout .catalog-sidebar-level-2 {
  position: relative;
}

.catalog-page-layout .catalog-sidebar-level-1::before,
.catalog-page-layout .catalog-sidebar-level-2::before {
  background: rgba(14, 14, 14, .12);
  bottom: .3rem;
  content: "";
  left: 1.36rem;
  position: absolute;
  top: .3rem;
  width: 1px;
}

/* CAT-020: согласованный одноуровневый интерфейс расширенных фильтров. */
.catalog-page-layout .category-filter-search-row {
  align-items: center;
  flex-wrap: nowrap;
  justify-content: flex-start;
}

.catalog-page-layout .category-filter-search-row .category-filter-search {
  flex: 0 1 640px;
  max-width: 640px;
  min-width: 280px;
  width: 100%;
}

.catalog-page-layout .category-filter-advanced-toggle {
  align-items: center;
  background: #fff;
  border: 1px solid #cfd5dc;
  border-radius: var(--dk-radius);
  color: var(--dk-dark);
  cursor: pointer;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: .875rem;
  font-weight: 600;
  gap: .4rem;
  justify-content: center;
  min-height: 40px;
  padding: 0 14px;
}

.catalog-page-layout .category-filter-advanced-toggle:hover,
.catalog-page-layout .category-filter-advanced-toggle[aria-expanded="true"] {
  border-color: var(--dk-dark);
}

.catalog-page-layout .category-filter-advanced-toggle:focus-visible {
  border-color: var(--dk-red);
  box-shadow: 0 0 0 2px rgba(217, 35, 46, .12);
  outline: 0;
}

.catalog-page-layout .category-filter-advanced-toggle.is-active {
  background: #fff8e1;
  border-color: var(--dk-yellow);
}

.catalog-page-layout .category-filter-advanced-toggle em {
  background: var(--dk-yellow);
  border-radius: 999px;
  color: var(--dk-dark);
  font-size: .72rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  min-width: 1.15rem;
  padding: .22rem .4rem;
  text-align: center;
}

.catalog-page-layout .category-filter-advanced-toggle i {
  transition: transform .15s ease;
}

.catalog-page-layout .category-filter-advanced-toggle[aria-expanded="true"] i {
  transform: rotate(180deg);
}

.catalog-page-layout .category-filter-advanced,
.catalog-page-layout .category-filter-advanced-panel {
  clear: none;
  width: 100%;
}

.catalog-page-layout .category-filter-advanced-panel[hidden] {
  display: none !important;
}

.catalog-page-layout .category-filter-advanced-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.catalog-page-layout .category-filter-advanced-grid > label,
.catalog-page-layout .category-filter-advanced-grid > .category-filter-group,
.catalog-page-layout .category-filter-advanced-grid > .category-filter-type,
.catalog-page-layout .category-filter-advanced-grid > .category-filter-series-search,
.catalog-page-layout .category-filter-advanced-grid > .category-filter-size-search {
  grid-column: span 1;
  min-width: 0;
}

.catalog-page-layout .category-filter-advanced-grid > label.category-filter-series-search,
.catalog-page-layout .category-filter-advanced-grid > label.category-filter-size-search {
  grid-column: span 1 !important;
}

/* CAT-038 (шаг 2): материал и покрытие показываются целиком, но чипы имеют
   ширину контента, как в основном ряду. Сетка равных колонок растягивала
   короткие значения на всю колонку и давала большие пустые промежутки. */
.catalog-page-layout .category-filter-advanced-grid fieldset.category-filter-wide-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  grid-column: 1 / -1;
}

.catalog-page-layout .category-filter-advanced-grid fieldset.category-filter-wide-chips legend {
  flex: 0 0 100%;
  grid-column: 1 / -1;
}

.catalog-page-layout .category-filter-wide-chips .category-filter-chip-input {
  flex: 0 1 auto;
  justify-content: flex-start;
  text-align: left;
  width: auto;
}

@media (max-width: 991.98px) {
  .catalog-page-layout .category-filter-search-row {
    flex-wrap: wrap;
  }

  .catalog-page-layout .category-filter-search-row .category-filter-search {
    flex: 1 1 360px;
    max-width: none;
  }

  .catalog-page-layout .category-filter-advanced-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .catalog-page-layout .category-filter-search-row .category-filter-advanced-toggle {
    width: 100%;
  }

  .catalog-page-layout .category-filter-advanced-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .catalog-page-layout .category-filter-advanced-grid > label,
  .catalog-page-layout .category-filter-advanced-grid > .category-filter-group,
  .catalog-page-layout .category-filter-advanced-grid > .category-filter-type {
    grid-column: 1 / -1;
  }
}

/* CAT-032: ряды чипов подбора в быстрой зоне фильтра (категория + технические). */
.catalog-page-layout .category-filter-quick .category-filter-chips-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  grid-column: 1 / -1;
  margin: 0;
  min-width: 0;
  width: 100%;
}
.catalog-page-layout .category-filter-quick fieldset.category-filter-chips-row {
  border: 0;
  padding: 0;
}
.catalog-page-layout .category-filter-quick .category-filter-chips-row legend {
  color: var(--dk-dark);
  flex: 0 0 auto;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
  margin: 0 6px 0 0;
  padding: 0;
  text-transform: none;
  width: auto;
}
/* Категорийный чип — ссылка с полным URL. */
.catalog-page-layout .category-filter-quick .category-filter-category-chip {
  align-items: baseline;
  background: #fff;
  border: 1px solid #d5dbe3;
  border-radius: var(--dk-radius);
  color: var(--dk-dark);
  display: inline-flex;
  font-size: 0.8125rem;
  font-weight: 500;
  gap: 0.3rem;
  line-height: 1.1;
  min-height: 32px;
  padding: 0.3rem 0.55rem;
  text-decoration: none;
  transition: border-color 0.12s ease, background-color 0.12s ease, color 0.12s ease;
}
.catalog-page-layout .category-filter-quick .category-filter-category-chip small {
  color: #6b7280;
  font-size: 11px;
  font-weight: 400;
}
.catalog-page-layout .category-filter-quick .category-filter-category-chip:hover {
  background: #f7f8f9;
  border-color: #9da6b0;
}
.catalog-page-layout .category-filter-quick .category-filter-category-chip.is-selected,
.catalog-page-layout .category-filter-quick .category-filter-category-chip[aria-current="true"] {
  background: #fff8e1;
  border-color: var(--dk-yellow);
  color: var(--dk-dark);
  font-weight: 600;
}
.catalog-page-layout .category-filter-quick .category-filter-category-chip:focus-visible {
  outline: 2px solid var(--dk-red);
  outline-offset: -2px;
}
/* Технические чипы первого/второго ряда: нейтрализуем стили «Все параметры». */
.catalog-page-layout .category-filter-quick .category-filter-chips-row .category-filter-group {
  background: transparent;
  border: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  width: 100%;
}
.catalog-page-layout .category-filter-quick .category-filter-chips-row .category-filter-group legend {
  flex: 0 0 auto;
}
.catalog-page-layout .category-filter-quick .category-filter-chips-row .category-filter-chip-input {
  align-items: baseline;
  background: #fff;
  border: 1px solid #d5dbe3;
  border-radius: var(--dk-radius);
  color: var(--dk-dark);
  cursor: pointer;
  display: inline-flex;
  font-size: 0.8125rem;
  font-weight: 500;
  gap: 0.3rem;
  line-height: 1.1;
  min-height: 32px;
  padding: 0.3rem 0.55rem;
  position: relative;
}
.catalog-page-layout .category-filter-quick .category-filter-chips-row .category-filter-chip-input > .category-filter-chip-checkbox {
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
.catalog-page-layout .category-filter-quick .category-filter-chips-row .category-filter-chip-input small {
  color: #6b7280;
  font-size: 11px;
  font-weight: 400;
}
.catalog-page-layout .category-filter-quick .category-filter-chips-row .category-filter-chip-input:hover {
  background: #f7f8f9;
  border-color: #9da6b0;
}
.catalog-page-layout .category-filter-quick .category-filter-chips-row .category-filter-chip-input.is-selected {
  background: #fff8e1;
  border-color: var(--dk-yellow);
  font-weight: 600;
}
.catalog-page-layout .category-filter-quick .category-filter-chips-row .category-filter-chip-input:focus-within {
  border-color: var(--dk-red);
  box-shadow: 0 0 0 2px rgba(217, 35, 46, 0.12);
  outline: 0;
}
.catalog-page-layout .category-filter-quick .category-filter-chips-row .category-filter-chip-input[hidden] { display: none; }
.catalog-page-layout .category-filter-quick .category-filter-chips-row .category-filter-chip-more {
  background: transparent;
  border: 1px dashed #c9cfd6;
  border-radius: var(--dk-radius);
  color: var(--dk-muted);
  cursor: pointer;
  font-size: 0.78rem;
  min-height: 32px;
  padding: 0.3rem 0.6rem;
}
.catalog-page-layout .category-filter-quick .category-filter-chips-row .category-filter-chip-more:hover {
  border-color: var(--dk-dark);
  color: var(--dk-dark);
}

/* CAT-034: «Варианты», «Система производителя» и подтверждённая совместимость. */
.product-b2b-variants-more {
  margin-top: 0.75rem;
}
.product-b2b-variants-more > summary {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 40px;
  padding: 0.4rem 0.9rem;
  border: 1px solid var(--dk-border);
  border-radius: var(--dk-radius);
  background: var(--dk-white);
  color: var(--dk-dark);
  font-size: 0.84rem;
  font-weight: 600;
}
.product-b2b-variants-more > summary:hover,
.product-b2b-variants-more > summary:focus-visible {
  border-color: var(--dk-dark);
  outline: 0;
  box-shadow: 0 0 0 2px rgba(217, 35, 46, 0.12);
}
.product-b2b-variants-more[open] > summary {
  margin-bottom: 0.75rem;
}
.product-b2b-system-source,
.product-b2b-fit-source {
  color: var(--dk-muted);
  font-size: 0.74rem;
  line-height: 1.5;
  margin: 0.5rem 0 0;
  overflow-wrap: anywhere;
}
.product-b2b-system,
.product-b2b-fit {
  margin-top: 2rem;
}
.product-b2b-system-group + .product-b2b-system-group {
  margin-top: 1.25rem;
}
.product-b2b-system-group > h3 {
  color: var(--dk-dark);
  font-size: 1rem;
  margin: 0 0 0.25rem;
}
.product-b2b-system-role {
  margin-top: 0.9rem;
}
.product-b2b-system-role > h4 {
  color: var(--dk-muted);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin: 0 0 0.4rem;
  text-transform: uppercase;
}
.product-b2b-system-list,
.product-b2b-fit-list {
  display: grid;
  gap: 0.4rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.product-b2b-system-list li,
.product-b2b-fit-list li {
  align-items: baseline;
  background: var(--dk-white);
  border: 1px solid var(--dk-border);
  border-radius: var(--dk-radius);
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  justify-content: space-between;
  padding: 0.55rem 0.75rem;
}
.product-b2b-system-list li > a,
.product-b2b-fit-list li > a {
  color: var(--dk-dark);
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.6rem;
  min-width: 0;
  text-decoration: none;
}
.product-b2b-system-list li > a:hover strong,
.product-b2b-fit-list li > a:hover strong {
  color: var(--dk-red);
}
.product-b2b-system-list strong,
.product-b2b-fit-list strong {
  font-size: 0.82rem;
  white-space: nowrap;
}
.product-b2b-system-list li > a span,
.product-b2b-fit-list li > a span {
  color: var(--dk-muted);
  font-size: 0.8rem;
}
.product-b2b-system-price {
  color: var(--dk-dark);
  font-size: 0.82rem;
  font-weight: 600;
  white-space: nowrap;
}
.product-b2b-fit-list li {
  display: block;
}
.product-b2b-fit-count {
  color: var(--dk-muted);
  font-weight: 500;
}
.product-b2b-fit-items {
  display: grid;
  gap: 0.3rem;
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
}
.product-b2b-fit-items li {
  align-items: baseline;
  border: 0;
  border-top: 1px solid var(--dk-border);
  border-radius: 0;
  display: flex;
  padding: 0.3rem 0;
}
.product-b2b-fit-items li > a {
  color: var(--dk-dark);
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.6rem;
  text-decoration: none;
}
.product-b2b-fit-items li > a:hover strong {
  color: var(--dk-red);
}
.product-b2b-fit-constraints {
  color: var(--dk-dark);
  font-size: 0.8rem;
  margin: 0.35rem 0 0;
}
@media (max-width: 600px) {
  .product-b2b-system-list li {
    display: block;
  }
  .product-b2b-system-price {
    display: block;
    margin-top: 0.25rem;
  }
}

/* =====================================================================
   CAT-038: справочник «Соответствие ГОСТ / DIN / ISO» вынесен из блока
   фильтров в строку хлебных крошек и прижат к правому краю контейнера.
   Блок идёт в конец файла, чтобы перебить прежние правила крошек
   (`.dekmann-product-shell .dekmann-shop-breadcrumbs`, margin-bottom).
   ===================================================================== */

.dekmann-shop-breadcrumbs-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  justify-content: space-between;
  margin-bottom: 0.75rem;
  min-width: 0;
}

.dekmann-shop-breadcrumbs-row .dekmann-shop-breadcrumbs {
  margin-bottom: 0;
  min-width: 0;
}

/* Кнопка-справочник: прежний фирменный жёлтый акцент CAT-020, но без
   растягивания на всю ширину колонки фильтров. */
.dekmann-shop-breadcrumbs-row .catalog-standard-button {
  align-items: center;
  background: var(--dk-yellow);
  border: 1px solid var(--dk-yellow);
  border-radius: 6px;
  color: var(--dk-dark);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 0.8125rem;
  font-weight: 600;
  gap: 0.45rem;
  height: 40px;
  justify-content: center;
  margin-left: auto;
  min-height: 40px;
  padding: 0 14px;
  text-decoration: none;
  white-space: nowrap;
}

.dekmann-shop-breadcrumbs-row .catalog-standard-button i {
  color: var(--dk-dark);
  font-size: 0.8rem;
}

.dekmann-shop-breadcrumbs-row .catalog-standard-button:hover,
.dekmann-shop-breadcrumbs-row .catalog-standard-button:focus-visible {
  background: #f2c500;
  border-color: #d8ad00;
  color: var(--dk-dark);
  text-decoration: none;
}

.dekmann-shop-breadcrumbs-row .catalog-standard-button:focus-visible {
  box-shadow: 0 0 0 2px rgba(217, 35, 46, 0.12);
  outline: 0;
}

/* CAT-046: плотная таблица — фото 60 px, прямой ввод количества, действия значками. */
.catalog-page-layout .catalog-results-summary { align-items: baseline; display: flex; flex-wrap: wrap; gap: .25rem 1rem; justify-content: space-between; margin-bottom: .45rem; }
.catalog-page-layout .catalog-results-summary .category-products-summary { margin: 0; }
.catalog-page-layout .catalog-availability-note { color: var(--dk-muted); font-size: .75rem; line-height: 1.35; margin: 0; }
.catalog-page-layout .category-products-table td { padding: 4px 8px; }
.catalog-page-layout .catalog-product-identity { gap: 8px; grid-template-columns: 60px minmax(0, 1fr); }
.catalog-page-layout .catalog-product-identity--no-image { grid-template-columns: minmax(0, 1fr); }
.catalog-page-layout .catalog-product-heading { align-items: flex-start; display: flex; gap: 4px; }
.catalog-page-layout .catalog-product-name { flex: 1 1 auto; font-size: .875rem; font-weight: 400; min-width: 0; }
.catalog-page-layout .catalog-product-subtitle { display: block; font-size: .75rem; line-height: 1.35; max-height: none; overflow: visible; -webkit-line-clamp: unset; }
.catalog-page-layout .catalog-product-heading .catalog-product-page-link { align-items: center; background: transparent; border: 0; border-radius: 3px; color: var(--dk-muted); display: inline-flex; flex: 0 0 24px; font-size: .875rem; font-weight: 400; height: 24px; justify-content: center; margin: -2px 0 0; padding: 0; text-decoration: none; }
.catalog-page-layout .catalog-product-heading .catalog-product-page-link:hover { background: #f3f4f5; color: var(--dk-red); }
.catalog-page-layout .catalog-product-size { font-size: .875rem; font-weight: 500; line-height: 1.3; }
.catalog-page-layout .catalog-product-technical { color: var(--dk-muted); font-size: .75rem; line-height: 1.35; margin-top: 3px; }
.catalog-page-layout .catalog-product-standard { color: inherit; display: inline; font-weight: 400; margin: 0; }
.catalog-page-layout .catalog-product-details { font-size: .75rem; line-height: 1.35; margin-top: 3px; }
.catalog-page-layout .catalog-unit-price { font-size: .875rem; font-weight: 500; line-height: 1.3; }
.catalog-page-layout .catalog-unit-price .woocommerce-Price-amount { font-weight: inherit; }
.catalog-page-layout .catalog-price-request { font-size: .875rem; font-weight: 500; }
.catalog-page-layout .catalog-pack-price, .catalog-page-layout .catalog-stock-status { color: var(--dk-muted); font-size: .75rem; font-weight: 400; line-height: 1.35; margin-top: 3px; }
.catalog-page-layout .catalog-pack-size, .catalog-page-layout .catalog-pack-amount { white-space: nowrap; }
.catalog-page-layout .catalog-quantity { display: block; max-width: 64px; width: 64px; }
.catalog-page-layout .catalog-quantity .category-product-qty { border: 1px solid var(--dk-border); border-radius: 4px; font-size: .875rem; height: 34px; width: 64px; }
.catalog-page-layout .catalog-quantity-help { font-size: .6875rem; line-height: 1.35; margin-top: 4px; }
.catalog-page-layout .catalog-selected-total { font-size: .75rem; font-weight: 400; line-height: 1.35; margin-top: 4px; }
.catalog-page-layout .category-product-cart-cell .catalog-product-action { align-items: center; border-radius: 4px; display: inline-flex; font-size: .875rem; height: 34px; justify-content: center; max-width: 34px; min-height: 34px; min-width: 34px; padding: 0; width: 34px; }
.catalog-page-layout .category-product-qty:focus-visible { outline: 2px solid var(--dk-red); outline-offset: 2px; }

@media (min-width: 992px) {
  .catalog-page-layout .category-products-table { min-width: 0; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th.catalog-column-product,
  .catalog-page-layout .category-products-table.catalog-table-no-price th.catalog-column-product { width: auto; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th.catalog-column-spec { width: 28%; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th.catalog-column-price { width: 190px; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th.catalog-column-quantity,
  .catalog-page-layout .category-products-table.catalog-table-no-price th.catalog-column-quantity { width: 90px; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th.catalog-column-action,
  .catalog-page-layout .category-products-table.catalog-table-no-price th.catalog-column-action { width: 52px; }
  .catalog-page-layout .category-products-table.catalog-table-no-price th.catalog-column-spec { width: 38%; }
}

@media (max-width: 991.98px) {
  .catalog-page-layout .category-products-table tr { gap: 4px 8px; grid-template-columns: minmax(0, 1fr) 80px 44px; padding: 8px; }
  .catalog-page-layout .category-product-title-cell, .catalog-page-layout .category-product-spec-cell { grid-column: 1 / -1; }
  .catalog-page-layout .category-product-price-cell { grid-column: 1; }
  .catalog-page-layout .category-product-multiple-cell, .catalog-page-layout .catalog-table-no-price .category-product-multiple-cell { grid-column: 2; }
  .catalog-page-layout .category-product-cart-cell { align-self: center; grid-column: 3; }
  .catalog-page-layout .catalog-table-no-price .category-product-multiple-cell { grid-column: 1 / 3; }
  .catalog-page-layout .category-products-table td { padding: 4px 0; }
  .catalog-page-layout .category-product-multiple-cell::before { font-size: .6875rem; font-weight: 400; text-transform: none; }
  .catalog-page-layout .catalog-unit-price { white-space: normal; }
  .catalog-page-layout .catalog-unit-price .woocommerce-Price-amount { display: inline-block; white-space: nowrap; }
}

@media (pointer: coarse) {
  .catalog-page-layout .catalog-product-heading .catalog-product-page-link { flex-basis: 44px; height: 44px; }
  .catalog-page-layout .catalog-quantity .category-product-qty { font-size: 1rem; height: 44px; }
  .catalog-page-layout .category-product-cart-cell .catalog-product-action { height: 44px; max-width: 44px; min-height: 44px; min-width: 44px; width: 44px; }
  .catalog-page-layout .category-products-table:not(.catalog-table-no-price) th.catalog-column-action,
  .catalog-page-layout .category-products-table.catalog-table-no-price th.catalog-column-action { width: 60px; }
}
