/* Catalog navigation: one task/category level at a time. */
.catalog-app-screen { min-height: calc(100dvh - 180px); padding: 24px 0 40px; background: #fff; }
.catalog-app-screen h1 { margin: 18px 0 8px; font-size: clamp(24px, 3vw, 36px); line-height: 1.15; }
.catalog-app-screen p { color: #58655e; margin: 0 0 22px; }
.catalog-app-screen .catalog-app-summary { margin: -2px 0 18px; color: #66716a; font-size: 13px; }
.catalog-app-trail { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; }
.catalog-app-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.catalog-app-card { min-width: 0; min-height: 190px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 16px; border-radius: 14px; background: #f2f5f3; color: #173d2c; text-decoration: none; overflow: hidden; overflow-wrap: anywhere; }
.catalog-app-card:hover, .catalog-app-card:focus-visible { background: #e3eee7; outline: 2px solid #19663c; }
.catalog-app-card strong { font-size: 16px; line-height: 1.25; }
.catalog-app-card__media { width: 100%; height: 104px; display: flex; align-items: center; justify-content: center; margin-top: auto; overflow: hidden; }
.catalog-app-card__media img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; mix-blend-mode: darken; }
.catalog-app-card small { color: #58655e; margin-top: auto; }
.catalog-app-shortcuts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.catalog-app-shortcuts a, .catalog-app-all { display: inline-block; border: 1px solid #d2ded6; border-radius: 10px; padding: 12px 16px; color: #175535; text-decoration: none; font-weight: 600; }
.catalog-app-all { margin-top: 20px; }
.catalog-app-mobile-head,
.catalog-app-mobile-topbar,
.catalog-app-mobile-search { display: none; }
.catalog-app-card__icon { width: 48px; height: 48px; display: grid; place-items: center; color: #08643f; }
.catalog-app-card__icon svg,
.catalog-app-mobile-head svg,
.catalog-app-mobile-search svg,
.catalog-app-card__chevron { display: block; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.catalog-app-card__icon svg { width: 44px; height: 44px; }
.catalog-app-card__icon .fill { fill: currentColor; stroke: none; }
.catalog-app-card__chevron { display: none; }
.header-catalog-panel__items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.catalog-page .catalog-focus { display: none; }
@media (max-width: 780px) {
 .catalog-app-screen { padding: 14px 0 calc(88px + env(safe-area-inset-bottom)); min-height: calc(100dvh - 90px); }
 .catalog-app-screen .container { width: 100%; padding: 0 14px; }
 .catalog-app-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
 .catalog-app-card { padding: 10px 9px 8px; gap: 5px; min-height: 158px; border-radius: 12px; }
 .catalog-app-card strong { font-size: 12px; line-height: 1.3; }
 .catalog-app-card__media { height: 82px; }
 .catalog-app-card small { display: none; }
 .catalog-app-shortcuts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
 .catalog-app-shortcuts a { text-align: center; padding: 12px 8px; }
 .catalog-app-screen ~ .site-footer { display: none; }
 .app-category-grid { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
 .catalog-app-screen h1 { font-size: 25px; }
 .catalog-page .catalog-load { padding-bottom: 90px; }
 .catalog-page .catalog-mobile-filters { max-height: calc(100dvh - 230px); overflow-y: auto; }

 body.catalog-menu-root { background: #fff; }
 body.catalog-menu-root .topbar,
 body.catalog-menu-root .site-header,
 body.catalog-menu-root .site-footer { display: none !important; }
 body.catalog-menu-root .mobile-app-nav { display: grid !important; }
 body.catalog-menu-root .site-shell { min-height: 100dvh; }
 .catalog-app-screen--root { min-height: 100dvh; padding: 0 0 calc(92px + env(safe-area-inset-bottom)); }
 .catalog-app-screen--root .container { width: 100%; padding: 0 18px; }
 .catalog-app-screen--root .catalog-app-trail,
 .catalog-app-screen--root > .container > h1 { display: none; }
 .catalog-app-mobile-head { min-height: 60px; display: grid; grid-template-columns: 42px minmax(0, 1fr) 42px; align-items: center; margin: 0 -18px; padding: 0 18px; border-bottom: 1px solid #eff1f2; }
 .catalog-app-mobile-head strong { color: #16181d; text-align: center; font-size: 20px; font-weight: 760; }
 .catalog-app-mobile-head a { width: 42px; height: 42px; display: grid; place-items: center; color: #8f969b; }
 .catalog-app-mobile-head svg { width: 27px; height: 27px; }
 .catalog-app-mobile-search { position: sticky; top: 0; z-index: 120; height: 48px; display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 8px; margin: 0 0 10px; padding: 0 14px; border: 1.5px solid #d5d8dc; border-radius: 16px; background: #fff; color: #9ba0a6; box-shadow: 0 5px 14px rgba(17, 51, 35, .07); }
 body.admin-bar .catalog-app-mobile-search { top: 46px; }
 .catalog-app-mobile-search svg { width: 22px; height: 22px; }
 .catalog-app-mobile-search input { width: 100%; min-width: 0; height: 44px; padding: 0; border: 0; outline: 0; background: transparent; color: #16181d; font: inherit; font-size: 16px; }
 .catalog-app-mobile-search input::placeholder { color: #9ba0a6; opacity: 1; }
 .catalog-app-grid--main { display: block; }
 .catalog-app-card--main { min-height: 62px; display: grid; grid-template-columns: 44px minmax(0, 1fr) 24px; align-items: center; gap: 10px; padding: 0; border-bottom: 1px solid #e1e3e6; border-radius: 0; background: #fff; color: #16181d; overflow: visible; }
 .catalog-app-card--main:first-child { border-top: 1px solid #e1e3e6; }
 .catalog-app-card--main:hover,
 .catalog-app-card--main:focus-visible { background: #f6f8f7; outline: 0; }
 .catalog-app-card--main strong { font-size: 16px; font-weight: 540; line-height: 1.23; }
 .catalog-app-card--main small { display: none; }
 .catalog-app-card--main .catalog-app-card__icon { width: 38px; height: 38px; color: #08643f; }
 .catalog-app-card--main .catalog-app-card__icon svg { width: 34px; height: 34px; }
 .catalog-app-card--main .catalog-app-card__chevron { width: 20px; height: 20px; display: block; justify-self: end; color: #92979d; }
 .catalog-app-screen--root .catalog-app-shortcuts { margin-top: 20px; }
}

/* 2026-09-08 mobile performance pass: a real More screen, streamed products
   and larger original product photography without visible square backdrops. */
.catalog-stream-loader {
  min-height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #627068;
  font-size: 12px;
  font-weight: 700;
}
.catalog-stream-loader[hidden] { display: none !important; }
.catalog-stream-loader > span {
  width: 20px;
  height: 20px;
  border: 2px solid #d7e0da;
  border-top-color: #087443;
  border-radius: 50%;
  animation: catalog-stream-spin .7s linear infinite;
}
.catalog-stream-loader.is-error {
  min-height: 52px;
  margin: 10px 0;
  padding: 12px 16px;
  border: 1px solid #d9e3dc;
  border-radius: 14px;
  background: #f5f8f6;
  color: #075c39;
  cursor: pointer;
  text-align: center;
}
.catalog-stream-loader.is-error > span { display: none; }
.catalog-stream-loader.is-error:focus-visible { outline: 3px solid rgba(8, 116, 67, .24); outline-offset: 2px; }
@keyframes catalog-stream-spin { to { transform: rotate(360deg); } }

.mobile-more-menu { display: none; }

@media (max-width: 920px) {
  .mobile-more-menu:not([hidden]) {
    position: fixed;
    inset: 0 0 calc(66px + env(safe-area-inset-bottom));
    z-index: 9998;
    display: block;
    padding: calc(18px + env(safe-area-inset-top)) 16px 28px;
    overflow-y: auto;
    background: #f4f5f6;
  }

  body.admin-bar .mobile-more-menu:not([hidden]) { top: 46px; }
  .mobile-more-menu header { margin: 0 0 16px; padding: 4px 4px 15px; border-bottom: 1px solid #dfe3e1; }
  .mobile-more-menu header strong { display: block; color: #17251d; font-size: 23px; line-height: 1.1; }
  .mobile-more-menu header span { display: block; margin-top: 5px; color: #6c7770; font-size: 11px; font-weight: 750; letter-spacing: .06em; }
  /* 18.10.2026: the full-screen menu has its own × (the ≡ button is under the menu) */
  .mobile-more-menu header { position: relative; padding-right: 52px; }
  .mobile-more-menu__close { position: absolute; top: 0; right: 0; width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid #dfe3e1; border-radius: 50%; background: #fff; color: #17251d; font-size: 26px; line-height: 1; cursor: pointer; }
  .mobile-more-menu nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .mobile-more-menu nav a {
    min-height: 88px;
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: start;
    gap: 9px;
    padding: 14px 12px;
    border: 1px solid #e0e5e2;
    border-radius: 15px;
    background: #fff;
    color: #203c2d;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(22, 39, 30, .035);
  }
  .mobile-more-menu nav a > .dashicons { width: 28px; height: 28px; color: #087443; font-size: 27px; line-height: 28px; }
  .mobile-more-menu nav a > span:last-child { min-width: 0; }
  .mobile-more-menu nav strong { display: block; font-size: 13px; line-height: 1.2; }
  .mobile-more-menu nav small { display: block; margin-top: 4px; color: #727b76; font-size: 10px; line-height: 1.3; }
  .mobile-more-menu__install,
  .mobile-more-menu__request {
    width: 100%;
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 12px;
    border: 0;
    border-radius: 14px;
    background: #155f3b;
    color: #fff;
    font: 750 13px/1.2 system-ui, sans-serif;
    text-decoration: none;
  }
  .mobile-more-menu__install[hidden] { display: none !important; }
  body.menu-is-open { overflow: hidden !important; }
}

@media (max-width: 780px) {
  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product:not([data-product-category="decor"]) .product-card {
    grid-template-columns: 126px minmax(0, 1fr);
  }

  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product:not([data-product-category="decor"]) .product-card__image {
    width: 126px !important;
    height: 164px !important;
    min-height: 164px !important;
    padding: 0 !important;
    overflow: hidden;
    background: transparent !important;
  }

  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product:not([data-product-category="decor"]) .product-card__image picture {
    width: 100%;
    height: 100%;
  }

  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product:not([data-product-category="decor"]) .product-card__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    clip-path: none;
    mix-blend-mode: normal;
    filter: none;
    transform: none !important;
  }
}

/* Final audit: make the flat catalogue readable on desktop and keep every
   quantity control usable in the desktop cart drawer. */
@media (min-width: 781px) {
  .catalog-flat-menu {
    margin: 20px 0 16px;
    padding: 18px;
    border: 1px solid #dfe5e1;
    border-radius: 16px;
    background: #fff;
  }

  .catalog-audience-line {
    margin: 0 0 12px;
    color: #3f6651;
    font-size: 13px;
    font-weight: 800;
  }

  .catalog-flat-track {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 8px;
  }

  .catalog-flat-link {
    min-width: 0;
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0 12px;
    border: 1px solid #e0e5e1;
    border-radius: 11px;
    background: #f7f9f7;
    color: #183c2b;
  }

  .catalog-flat-link__media {
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    overflow: hidden;
  }

  .catalog-flat-link__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    mix-blend-mode: darken;
  }

  .catalog-flat-link__copy {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .catalog-flat-link:hover,
  .catalog-flat-link:focus-visible {
    border-color: #8aae98;
    background: #edf5f0;
  }

  .catalog-flat-link strong {
    min-width: 0;
    font-size: 13px;
    line-height: 1.2;
    white-space: normal;
  }

  .catalog-flat-link small {
    flex: 0 0 auto;
    color: #6f7973;
    font-size: 10px;
    white-space: nowrap;
  }

  .catalog-root-product-header { margin-top: 16px; }

  .request-item {
    grid-template-columns: minmax(0, 1fr) minmax(272px, 272px);
  }

  .request-item__controls {
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(132px, 1fr));
    gap: 8px;
    align-content: center;
  }

  .request-item__controls > .request-item__unit-control:only-of-type {
    grid-column: 1 / -1;
  }

  .request-item__unit-control {
    min-width: 0;
    display: grid;
    grid-template-columns: 44px minmax(44px, 1fr) 44px;
    grid-template-rows: 20px 44px;
    overflow: hidden;
    border: 1px solid #d7ddd9;
    border-radius: 11px;
    background: #f7f9f8;
  }

  .request-item__unit-control > span {
    grid-column: 1 / -1;
    padding-top: 5px;
    color: #4c5f53;
    text-align: center;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
  }

  .request-item__unit-control button,
  .request-item__unit-control strong {
    min-width: 0;
    height: 44px;
    display: grid;
    place-items: center;
    grid-row: 2;
    border: 0;
    border-radius: 0;
    background: transparent;
  }
}

/* 2026-09 audit: one predictable mobile interaction layer. */
@media (max-width: 780px) {
  .catalog-app-mobile-search { min-height: 44px; }
  .catalog-app-mobile-voice,
  .catalog-app-mobile-back,
  .catalog-view-switch button,
  .catalog-product-sort-select select,
  .catalog-product-filter-button { min-width: 44px; min-height: 44px; }

  body.catalog-menu-root.catalog-navigation-ready .catalog-feed-product .product-card__image .product-card__favorite {
    top: 4px;
    right: 4px;
    width: 44px;
    height: 44px;
  }

  body.catalog-menu-root .catalog-feed-product .product-card__stepper,
  .catalog-feed-product .product-card__stepper {
    grid-template-columns: 44px minmax(44px, 1fr) 44px;
    min-height: 48px;
  }

  .catalog-feed-product .product-card__buy-row > :only-child,
  .request-item__controls > .request-item__unit-control:only-of-type { grid-column: 1 / -1; }

  .request-item__unit-control {
    grid-template-columns: 44px minmax(44px, 1fr) 44px !important;
    grid-template-rows: 24px 44px !important;
  }

  .request-item__unit-control button,
  .request-item__unit-control strong { height: 44px !important; }

  .catalog-feed-product .product-card__code-row {
    grid-column: 2;
    grid-row: 2;
    min-height: 0;
    margin: 0 0 3px;
    padding: 0;
    border: 0;
  }

  .catalog-feed-product .product-card__code { color: #747a7f; font-size: 13px; }
  .catalog-feed-product .product-card__selection-total { grid-row: 3; }
  .catalog-feed-product .product-card__footer > div:first-child { grid-row: 4; }
  .catalog-feed-product .product-card__availability-line { grid-row: 5; }
  .catalog-feed-product .product-card__buy-row { grid-row: 6; margin-top: 10px; }
}

/* Homepage: the catalogue is now one customer-facing level. */
.app-category-card__count {
  position: relative;
  z-index: 2;
  display: block;
  padding: 0 12px 5px;
  color: #68766e;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.15;
}

.app-category-card--flat strong {
  min-height: 0;
}

.app-category-grid.app-category-grid--flat {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.app-category-grid--flat .app-category-card--flat {
  height: 220px;
}

.app-category-card--flat strong {
  padding: 15px 15px 5px;
  font-size: 16px;
}

.app-category-card--flat .app-category-card__count {
  padding: 0 15px 7px;
  font-size: 11px;
}

.app-category-card--flat img {
  height: 154px;
  padding: 2px 9px 7px;
}

@media (max-width: 780px) {
  .app-categories--flat { overflow: visible; }

  .app-category-grid.app-category-grid--flat {
    width: auto;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px;
    margin: 0;
    padding: 0;
    overflow: visible;
  }

  .app-category-grid--flat::-webkit-scrollbar { display: none; }

  .app-category-grid--flat .app-category-card--flat {
    width: auto;
    height: 184px;
  }

  .app-category-card--flat strong {
    min-height: 0;
    padding: 11px 11px 3px;
    font-size: 13px;
    line-height: 1.16;
  }

  .app-category-card--flat .app-category-card__count {
    padding: 0 11px 3px;
    font-size: 10px;
  }

  .app-category-card--flat img {
    display: block;
    width: calc(100% - 8px) !important;
    height: 116px !important;
    min-height: 0;
    max-width: calc(100% - 8px) !important;
    max-height: 116px !important;
    margin: auto 4px 5px !important;
    object-fit: contain !important;
    object-position: center !important;
    transform: none !important;
  }
}

/* One-level mobile catalogue navigation: proven retail pattern with a single
   horizontally scrollable row of customer-facing product sections. */
@media (max-width: 780px) {
  .catalog-flat-menu {
    margin: 2px -14px 10px;
    padding: 0 0 10px;
    border-bottom: 1px solid #e4e8e5;
  }

  .catalog-audience-line {
    margin: 0;
    padding: 2px 16px 9px;
    color: #3f6651;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.3;
  }

  .catalog-audience-line span { color: #97a39b; }

  .catalog-flat-track {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 0 16px 4px;
    scroll-padding-inline: 16px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
  }

  .catalog-flat-track::-webkit-scrollbar { display: none; }

  .catalog-flat-link {
    flex: 0 0 auto;
    min-height: 58px;
    display: inline-flex;
    align-items: center;
    padding: 4px 13px 4px 5px;
    border: 0;
    border-radius: 999px;
    background: #f2f2f4;
    color: #3f4347;
    white-space: nowrap;
  }

  .catalog-flat-link__media {
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    overflow: hidden;
  }

  .catalog-flat-link__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    mix-blend-mode: darken;
  }

  .catalog-flat-link__copy { display: block; }

  .catalog-flat-link strong {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.15;
  }

  .catalog-flat-link small { display: none; }

  .catalog-root-product-header { margin-top: 4px; }
}

/* Mobile bottom-menu opens as a real screen, not over visible catalogue cards. */
@media (max-width: 640px) {
  body.menu-is-open main,
  body.menu-is-open .site-footer {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .js .site-nav.is-open {
    position: fixed !important;
    inset: 0 0 calc(70px + env(safe-area-inset-bottom)) 0 !important;
    z-index: 9998 !important;
    display: flex !important;
    width: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: calc(22px + env(safe-area-inset-top)) 18px 24px !important;
    overflow-y: auto;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
  }
  body.menu-is-open .mobile-app-nav { z-index: 9999; }
  body.menu-is-open .site-nav::before {
    content: 'Меню';
    display: block;
    padding: 0 8px 12px;
    border-bottom: 1px solid #e2e6e3;
    color: #17251d;
    font-size: 22px;
    font-weight: 850;
  }
}

/* 2026-09-07: one-screen catalogue filters and direct quantity controls. */
.catalog-inline-groups {
  margin-top: 12px;
  padding: 11px 12px 12px;
  border: 1px solid #dfe6e1;
  border-radius: 14px;
  background: #fff;
}
.catalog-inline-groups__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.catalog-inline-groups__head strong { color: #17251d; font-size: 13px; }
.catalog-inline-groups__head button { padding: 0; border: 0; background: transparent; color: #69736d; font: inherit; font-size: 11px; cursor: pointer; }
.catalog-inline-groups__track { display: flex; gap: 7px; padding-bottom: 2px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; }
.catalog-inline-groups__track::-webkit-scrollbar { display: none; }
.catalog-inline-groups__track button,
.catalog-inline-filter-options button {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid #dfe4e1;
  border-radius: 999px;
  background: #f2f4f3;
  color: #34453c;
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
}
.catalog-inline-groups__track button.is-active,
.catalog-inline-filter-options button.is-active { border-color: #08643f; background: #08643f; color: #fff; }
.catalog-inline-filter-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(180px, .7fr) auto;
  align-items: end;
  gap: 14px;
  margin: 8px 0 12px;
  padding: 14px;
  border: 1px solid #dfe4e1;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(20, 35, 27, .07);
}
.catalog-inline-filter-panel[hidden] { display: none !important; }
.catalog-inline-filter-panel strong { display: block; margin-bottom: 7px; color: #17251d; font-size: 12px; }
.catalog-inline-filter-options { display: flex; flex-wrap: wrap; gap: 6px; }
.catalog-inline-filter-panel select { width: 100%; min-height: 38px; padding: 0 34px 0 11px; border: 1px solid #d9dfdb; border-radius: 10px; background: #f6f7f6; color: #25342c; font: inherit; font-size: 12px; }
.catalog-inline-filter-reset { min-height: 38px; padding: 0 13px; border: 0; border-radius: 10px; background: #eef1ef; color: #415047; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.catalog-mobile-filter-sheet { grid-template-columns: 1fr; }
.catalog-filter-flags { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.catalog-filter-check {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid #dce2de;
  border-radius: 10px;
  background: #fff;
  color: #26382e;
  font-size: 12px;
  font-weight: 680;
  cursor: pointer;
}
.catalog-filter-check[hidden] { display: none !important; }
.catalog-filter-check input { flex: 0 0 auto; width: 18px; height: 18px; margin: 0; accent-color: #08643f; }
.catalog-filter-check:has(input:checked) { border-color: #77a18a; background: #edf6f0; color: #075c39; }
.catalog-filter-section { border-top: 1px solid #e1e5e2; }
.catalog-filter-section summary { display: flex; align-items: center; justify-content: space-between; min-height: 43px; color: #17251d; font-size: 13px; font-weight: 800; cursor: pointer; list-style: none; }
.catalog-filter-section summary::-webkit-details-marker { display: none; }
.catalog-filter-section summary::after { content: '+'; color: #607067; font-size: 19px; font-weight: 500; }
.catalog-filter-section[open] summary::after { content: '−'; }
.catalog-filter-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 0 0 10px; }

.product-card__stepper {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 38px;
  align-items: stretch;
  padding: 0 !important;
  overflow: hidden;
  cursor: default;
}
.product-card__stepper button {
  min-width: 0;
  min-height: inherit;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  touch-action: manipulation;
}
.product-card__stepper-action { font-size: 21px !important; font-weight: 500 !important; }
.product-card__stepper-action:disabled { cursor: default; opacity: .28; }
.product-card__stepper-value {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border-inline: 1px solid rgba(91, 96, 99, .12) !important;
  white-space: nowrap;
}
.product-card__stepper-value span { font-weight: 750; }
.product-card__stepper-value small { color: inherit; font-size: .72em; font-weight: 650; }
.product-card__stepper.is-added {
  border-color: #087443 !important;
  background: #087443 !important;
  color: #fff !important;
  box-shadow: 0 5px 13px rgba(8, 116, 67, .23) !important;
}
.product-card__stepper.is-added .product-card__stepper-value { border-inline-color: rgba(2, 47, 27, .58) !important; }

@media (max-width: 780px) {
  .catalog-inline-groups { margin: 9px 0 0; padding: 9px 10px 10px; border-radius: 12px; }
  .catalog-inline-groups__head { margin-bottom: 6px; }
  .catalog-inline-groups__track button { min-height: 34px; padding-inline: 11px; font-size: 11px; }
  .catalog-inline-filter-panel { grid-template-columns: 1fr; gap: 12px; margin: 6px 0 10px; padding: 12px; border-radius: 12px; }
  .catalog-inline-filter-options { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .catalog-inline-filter-options::-webkit-scrollbar { display: none; }
  .catalog-inline-filter-options button { min-height: 34px; padding-inline: 10px; font-size: 11px; }
  .catalog-inline-filter-reset { width: 100%; }
  .catalog-filter-flags { grid-template-columns: 1fr; }
  .catalog-filter-flags .catalog-filter-check { min-height: 44px; font-size: 13px; }
  .catalog-filter-checks { grid-template-columns: 1fr; }
  .catalog-filter-check { min-height: 42px; }
  body.catalog-menu-root .catalog-feed-product .product-card__stepper,
  .catalog-feed-product .product-card__stepper,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__stepper {
    grid-template-columns: 44px minmax(44px, 1fr) 44px !important;
    min-height: 48px;
    padding: 0 !important;
  }
  .catalog-feed-product .product-card__stepper-value { gap: 4px; font-size: 14px; }
  .catalog-feed-product .product-card__stepper-action { font-size: 21px !important; }
}

/* Approved practical mobile card inside the three-level catalogue. */
@media (max-width: 780px) {
  .catalog-feed-products { grid-template-columns: 1fr; gap: 12px; }
  .catalog-feed-product .product-card {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    grid-template-rows: auto auto auto auto auto;
    gap: 0 12px;
    height: auto;
    padding: 13px;
    overflow: hidden;
    border: 0;
    border-radius: 18px;
    background: #fff;
    box-shadow: none;
  }
  .catalog-feed-product .product-card__image {
    grid-column: 1;
    grid-row: 1 / span 4;
    width: 104px;
    height: 104px;
    min-height: 104px;
    padding: 4px;
    overflow: hidden;
    border: 0;
    background: #fff;
  }
  .catalog-feed-product .product-card__image picture { display: grid; width: 100%; height: 100%; place-items: center; }
  .catalog-feed-product .product-card__image img,
  .catalog-feed-product .product-card__image.is-card-cover img { width: 100%; height: 100%; object-fit: contain; object-position: center; mix-blend-mode: normal; }
  .catalog-feed-product .product-card__stock,
  .catalog-feed-product .product-card__favorite,
  .catalog-feed-product .product-card__quality,
  .catalog-feed-product .product-card__gallery-dots { display: none; }
  .catalog-feed-product .product-card__body { display: contents; min-height: 0; padding: 0; }
  .catalog-feed-product .product-card__category { display: none; }
  .catalog-feed-product .product-card__title {
    display: block;
    grid-column: 2;
    grid-row: 1;
    min-height: 0;
    margin: 2px 0 4px;
    overflow: visible;
    font-size: 17px;
    font-weight: 780;
    line-height: 1.16;
    -webkit-line-clamp: unset;
  }
  .catalog-feed-product .product-card__spec { display: none; }
  .catalog-feed-product .product-card__selection-total { display: block; grid-column: 2; grid-row: 3; color: #1496e8; font-size: 19px; font-weight: 750; line-height: 1.2; }
  .catalog-feed-product .product-card__availability-line { display: block; grid-column: 2; grid-row: 5; color: #6c7073; font-size: 14px; }
  .catalog-feed-product .product-card__footer { display: contents; }
  .catalog-feed-product .product-card__footer > div:first-child { grid-column: 2; grid-row: 4; }
  .catalog-feed-product .product-card__footer small { display: none; }
  .catalog-feed-product .product-card__price { display: block; margin: 0; color: #6c7073; font-size: 15px; font-weight: 500; }
  .catalog-feed-product .product-card__price::before { content: 'Цена: '; }
  .catalog-feed-product .product-card__price::after { content: ' НДС (12%)'; }
  .catalog-feed-product .product-card__pack-price { display: none; }
  .catalog-feed-product .product-card__code-row { grid-column: 1 / -1; grid-row: 6; min-height: 44px; margin-top: 12px; padding-top: 10px; border-top: 1px solid #e7e8ea; }
  .catalog-feed-product .product-card__code { color: #17191a; font-size: 17px; }
  .catalog-feed-product .product-card__material { display: none; }
  .catalog-feed-product .product-card__buy-row { display: grid; grid-column: 1 / -1; grid-row: 7; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; }
  .catalog-feed-product .product-card__request {
    min-width: 0;
    min-height: 48px;
    padding: 0 8px;
    border: 0;
    border-radius: 999px;
    background: #f4f3f8;
    color: #5a5d60;
    box-shadow: none;
    font-size: 17px;
    font-weight: 500;
  }
  .catalog-feed-product .product-card__request.is-added { border-color: #087443 !important; background: #087443 !important; color: #fff !important; box-shadow: 0 5px 13px rgba(8, 116, 67, .23) !important; }
}

/* Canonical catalogue pages: one purpose per screen and working browser history. */
.catalog-level-title h1 {
  margin: 0;
  color: #14231c;
  font: 800 clamp(18px, 4vw, 24px)/1.15 system-ui, sans-serif;
}

.catalog-product-group-chips a {
  flex: 0 0 auto;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  padding: 0 13px;
  border-radius: 999px;
  background: #f0f2f1;
  color: #33443a;
  font: 600 13px/1.15 system-ui, sans-serif;
  text-decoration: none;
  white-space: nowrap;
}

.catalog-product-group-chips a.is-active {
  background: #dcebe2;
  color: #075d39;
}

.catalog-product-filter-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #303338;
  font: 600 14px/1.15 system-ui, sans-serif;
  text-decoration: none;
  cursor: pointer;
}

.catalog-product-sort-select select {
  max-width: 172px;
  min-height: 38px;
  padding: 0 30px 0 10px;
  border: 0;
  border-radius: 9px;
  background: #f2f3f4;
  color: #303338;
  font: 600 13px/1.15 system-ui, sans-serif;
}

.catalog-group-card__media--icon {
  color: #075d39;
  background: #edf5f0;
}

.catalog-group-card__media--icon .dashicons {
  width: 42px;
  height: 42px;
  font-size: 42px;
}

.catalog-server-level { padding-bottom: 30px; }
.catalog-empty-state { max-width: 680px; margin: 40px auto; padding: 28px; border: 1px solid #e1e6e3; border-radius: 18px; background: #fff; text-align: center; }
.catalog-empty-state h1 { margin-top: 0; }

@media (max-width: 780px) {
  .catalog-app-screen--root[data-catalog-level="groups"] .catalog-app-mobile-topbar,
  .catalog-app-screen--root[data-catalog-level="products"] .catalog-app-mobile-topbar {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  body.catalog-level-products .catalog-app-mobile-topbar,
  body.catalog-level-products .catalog-app-mobile-search { display: grid; }

  body.catalog-level-products .catalog-product-level-header {
    top: 60px;
    z-index: 110;
    margin-inline: -4px;
    padding: 4px 0 7px;
  }

  body.admin-bar.catalog-level-products .catalog-product-level-header { top: 106px; }

  .catalog-product-group-chips { margin-top: 0; }

  .catalog-product-group-chips a {
    min-height: 34px;
    padding-inline: 12px;
    background: #f2f2f4;
    color: #3f4347;
    font-size: 14px;
    font-weight: 500;
  }

  .catalog-product-group-chips a.is-active {
    background: #e2e3e6;
    color: #25282c;
    font-weight: 650;
  }

  .catalog-product-sort-select select {
    max-width: 142px;
    min-height: 36px;
    font-size: 12px;
  }

  .catalog-product-filter-button { flex-direction: row-reverse; font-size: 13px; }
  .catalog-product-context { display: none; }
  .catalog-server-level { padding-bottom: 86px; }
  .catalog-empty-state { margin: 20px 0; padding: 22px 16px; }
}

@media (max-width: 340px) {
  .mobile-store-utility {
    grid-template-columns: minmax(102px, 1fr) auto 36px 36px;
    gap: 4px;
    padding-inline: 8px;
  }

  .mobile-store-utility > button:nth-child(2) strong { font-size: 10px; }
  .mobile-store-utility > a:nth-child(3) {
    width: 36px;
    min-width: 36px;
    padding: 0;
    overflow: hidden;
    gap: 0;
    font-size: 0;
  }
  .mobile-brand span strong { font-size: 11px; }
  .mobile-brand span small { font-size: 7px; }
}

/* 2026-09 visual audit: shorter home, unambiguous catalogue levels and calmer mobile pages. */
.app-help-banner__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 24px;
}

.app-help-banner__actions .app-help-banner__primary,
.app-help-banner__actions .app-help-banner__secondary,
.app-help-banner__actions button {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0 18px;
  border: 1px solid var(--green);
  border-radius: 10px;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
}

.app-help-banner__actions .app-help-banner__primary {
  background: var(--green);
  color: #fff;
}

.app-help-banner__actions .app-help-banner__secondary,
.app-help-banner__actions button {
  background: rgba(255, 255, 255, .8);
  color: var(--green);
}

.app-product-shelf--promo,
.app-product-shelf--recent {
  margin-top: 16px;
}

.app-promo-empty {
  min-height: 112px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  padding: 20px;
  border: 1px dashed #b9cfc0;
  border-radius: 14px;
  background: linear-gradient(135deg, #f4faf6 0%, #fff 100%);
  color: #526059;
}

.app-promo-empty strong { color: #173d2c; font-size: 17px; }
.app-promo-empty span { max-width: 620px; font-size: 13px; line-height: 1.45; }

.product-card__promo-badge {
  position: absolute;
  z-index: 4;
  left: 10px;
  bottom: 10px;
  padding: 5px 8px;
  border-radius: 7px;
  background: #d7182a;
  color: #fff;
  font-size: 11px;
  font-weight: 850;
  line-height: 1;
}

/* The discount belongs with the price, not over the product image. */
.product-card__footer .product-card__promo-badge {
  position: static;
  display: table;
  width: max-content;
  margin: 0 0 5px;
  padding: 5px 8px;
  background: #2f7d18; /* a23 23.10.2026: contrast 5.2:1 with white */
}

.product-card__old-price {
  display: block;
  margin: 2px 0 1px;
  color: #5f6b66; /* a23 23.10.2026: old price 5.5:1 (was #8a8f8b, 3.3:1) */
  font-size: 12px;
  line-height: 1.2;
  text-decoration: line-through;
}

.product-card--promo .product-card__price { color: #c91626; }

html.js .catalog-app-screen--root .catalog-feed,
html.js .catalog-app-screen--root .catalog-front-products-heading,
html.js .catalog-app-screen--root .catalog-front-load-sentinel {
  display: none;
}

html.js body.catalog-level-products .catalog-app-screen--root .catalog-feed {
  display: block;
}

html.js body.catalog-level-groups .catalog-app-screen--root .catalog-feed {
  display: block;
}

html.js body.catalog-has-products .catalog-app-screen--root .catalog-feed {
  display: block;
}

.catalog-app-card--all {
  border-color: #cbdcd1;
  background: #edf5f0;
}

.catalog-app-card--all .catalog-app-card__icon {
  color: #075d39;
}

@media (max-width: 780px) {
  body { background: #f4f5f6; }

  .site-header {
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 2px 10px rgba(18, 42, 29, .07);
  }

  .mobile-store-utility { min-height: 52px; }
  .site-header__main { min-height: 56px; }

  .app-home {
    padding-top: 10px;
    background: #f4f5f6;
  }

  .app-help-banner {
    min-height: 204px;
    border-color: #e2e5e3;
    box-shadow: 0 2px 10px rgba(20, 42, 29, .035);
  }

  .app-help-banner__copy {
    width: 72%;
    padding: 20px 16px;
  }

  .app-help-banner h1 {
    max-width: 250px;
    margin: 6px 0 8px;
    font-size: 25px;
    line-height: 1.02;
  }

  .app-help-banner p {
    max-width: 245px;
    font-size: 12px;
    line-height: 1.34;
  }

  .app-help-banner img {
    width: 62%;
    object-position: 58% center;
  }

  .app-help-banner__actions {
    gap: 7px;
    margin-top: 13px;
  }

  .app-help-banner__actions .app-help-banner__primary,
  .app-help-banner__actions .app-help-banner__secondary,
  .app-help-banner__actions button {
    min-height: 36px;
    padding: 0 10px;
    border-radius: 9px;
    font-size: 11px;
  }

  .app-categories,
  .app-benefits,
  .app-product-shelf {
    border-color: #e6e8e6;
    box-shadow: 0 2px 9px rgba(21, 41, 31, .025);
  }

  .app-product-shelf--promo,
  .app-product-shelf--recent { margin-top: 12px; }

  .app-promo-empty { min-height: 96px; padding: 15px; }
  .app-promo-empty strong { font-size: 15px; }
  .app-promo-empty span { font-size: 11px; }

  .app-benefits > h2 {
    max-width: none;
    font-size: 19px;
  }

  .app-benefits__track > div {
    flex-basis: 164px;
    min-height: 82px;
    padding: 11px;
  }

  .app-product-shelf--featured { margin-bottom: 0; }

  .app-all-products {
    border-color: #bfd4c7;
    background: #f8fbf9;
  }

  .site-footer { display: none; }

  .catalog-app-mobile-topbar {
    grid-template-columns: minmax(0, 1fr);
    margin-bottom: 12px;
  }

  .catalog-app-card--all {
    border-top: 8px solid #fff;
    border-bottom-color: #cadad0;
    background: #edf5f0;
  }

  body.catalog-level-categories .catalog-page-up,
  body.catalog-level-groups .catalog-page-up { display: none !important; }

  .catalog-group-screen .catalog-level-header {
    position: sticky;
    top: 0;
    z-index: 110;
    margin-inline: -4px;
    padding-inline: 4px;
    background: rgba(255, 255, 255, .98);
  }

  .catalog-group-screen .catalog-level-back--secondary { display: none; }

  .catalog-product-level-header {
    border-bottom: 1px solid #e7e9e8;
    box-shadow: 0 4px 12px rgba(18, 43, 30, .055);
  }

  .catalog-product-group-chips {
    padding-bottom: 2px;
    scrollbar-width: none;
  }

  .catalog-product-group-chips::-webkit-scrollbar { display: none; }

  .product-page .product-breadcrumbs { display: none; }
  .product-detail { padding-top: 14px; }
  .product-summary h1 { font-size: clamp(25px, 7vw, 34px); line-height: 1.08; }
  .product-summary__price { margin-top: 20px; padding: 17px 0; }
  .product-summary__facts { margin-top: 12px; }
  .product-summary__service { display: none; }
  .product-summary__order { margin-top: 18px; }
  .product-information { margin-top: 34px; padding-top: 27px; }
  .product-information h2 { font-size: 25px; }

  .commercial-page .product-breadcrumbs { display: none; }
  .commercial-page .catalog-hero { padding-top: 22px; }
  .commercial-page .catalog-hero__copy h1 { font-size: clamp(30px, 9vw, 42px); }
  .commercial-page .section { padding-block: 38px; }
  .commercial-page .section-heading { margin-bottom: 22px; }
  .commercial-page .services-grid { gap: 10px; }
  .commercial-page .service-card { padding: 19px; }
  .content-page .section { padding-block: 32px; }
  .product-not-found { min-height: calc(100dvh - 190px); }

  .catalog-page--all .catalog-category-nav,
  .catalog-page--all .catalog-trail,
  .catalog-page--all .catalog-context { display: none; }

  .catalog-page--all .catalog-browser { display: block; }
  .catalog-page--all .catalog-results { min-width: 0; }
  .catalog-page--all .catalog-section { padding-top: 12px; }
}

/* Approved mobile catalogue modes: separated list and two-column grid. */
@media (max-width: 780px) {
  body.catalog-menu-root .catalog-feed-products {
    background: #eef0f2;
  }

  body.catalog-menu-root.catalog-navigation-ready .catalog-feed-product .product-card__image .product-card__favorite {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 8;
    width: 32px;
    height: 32px;
    display: grid !important;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .96);
    color: #8d9390;
    box-shadow: none;
    font: 700 22px/1 Arial, sans-serif;
  }
  body.catalog-menu-root.catalog-navigation-ready .catalog-feed-product .product-card__image .product-card__favorite.is-favorite { color: #d71920; }
  body.catalog-menu-root.catalog-view-list .catalog-feed-product .product-card__title { padding-right: 34px; }

  body.catalog-menu-root.catalog-view-grid .catalog-feed-products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    align-items: stretch;
  }
  body.catalog-menu-root.catalog-view-grid .catalog-front-group-heading { grid-column: 1 / -1; }
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product,
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card { height: 100%; }
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 132px auto auto auto auto auto 1fr;
    gap: 0;
    padding: 9px 9px 10px;
    border: 0;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
  }
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__image {
    position: static;
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    height: 132px;
    min-height: 132px;
    padding: 3px;
    border: 0;
    background: #fff;
  }
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__code-row {
    grid-column: 1;
    grid-row: 2;
    min-height: 0;
    margin: 5px 0 3px;
    padding: 0;
    border: 0;
  }
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__code { color: #9a9da2; font-size: 11px; }
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__title {
    grid-column: 1;
    grid-row: 3;
    margin: 0 0 5px;
    padding: 0;
    font-size: 13px;
    line-height: 1.2;
  }
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__selection-total {
    grid-column: 1;
    grid-row: 4;
    font-size: 15px;
  }
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__footer > div:first-child {
    grid-column: 1;
    grid-row: 5;
  }
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__price { font-size: 13px; }
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__availability-line {
    grid-column: 1;
    grid-row: 6;
    margin: 2px 0 7px;
    font-size: 12px;
  }
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__buy-row {
    align-self: end;
    grid-column: 1;
    grid-row: 7;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    margin-top: 5px;
  }
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__request {
    min-height: 38px;
    padding: 0 3px;
    font-size: 11px;
  }
}

/* Compact marketplace-style controls shared by the catalogue product screen. */
.catalog-product-searchbar { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 10px; }
.catalog-product-searchbar .catalog-product-search { grid-template-columns: 28px minmax(0, 1fr) 40px; margin-top: 0; }
.catalog-product-search [data-catalog-voice] { width: 40px; height: 40px; display: grid; place-items: center; padding: 0; border: 0; background: transparent; color: #8d9499; }
.catalog-product-search [data-catalog-voice] svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.catalog-product-group-chips { display: flex; gap: 8px; margin-top: 12px; overflow-x: auto; }
.catalog-product-group-chips button { flex: 0 0 auto; min-height: 36px; padding: 0 13px; border: 0; border-radius: 999px; background: #f0f2f1; color: #33443a; font: 600 13px/1.15 system-ui, sans-serif; }
.catalog-product-group-chips button.is-active { background: #dcebe2; color: #075d39; }
.catalog-product-list-tools { position: relative; display: flex; align-items: center; justify-content: space-between; min-height: 48px; margin-top: 7px; }
.catalog-product-list-tools button { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0; border: 0; background: transparent; color: #303338; cursor: pointer; font: 600 14px/1.15 system-ui, sans-serif; }
.catalog-product-list-tools svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.catalog-product-sort-menu { position: absolute; top: 44px; left: 0; z-index: 5; min-width: 195px; display: grid; padding: 6px; border: 1px solid #dfe4e1; border-radius: 12px; background: #fff; box-shadow: 0 12px 28px rgba(18, 24, 21, .14); }
.catalog-product-sort-menu[hidden] { display: none !important; }
.catalog-product-sort-menu button { min-height: 39px; padding: 0 10px; border-radius: 8px; text-align: left; }

/* Compact mobile catalogue inspired by a familiar marketplace list pattern. */
@media (max-width: 780px) {
  body.catalog-menu-root,
  body.catalog-menu-root .catalog-app-screen { background: #fff; }

  .catalog-app-mobile-topbar {
    position: sticky;
    top: 0;
    z-index: 121;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 7px;
    margin: 0 -4px 14px;
    padding: 8px 0;
    background: rgba(255, 255, 255, .97);
  }
  body.admin-bar .catalog-app-mobile-topbar { top: 46px; }
  body.catalog-level-products .catalog-app-mobile-topbar { display: none; }

  .catalog-app-mobile-back {
    width: 38px;
    height: 44px;
    display: grid;
    place-items: center;
    color: #16191c;
    text-decoration: none;
    font: 400 29px/1 system-ui, sans-serif;
  }

  .catalog-app-mobile-search {
    position: static;
    height: 44px;
    grid-template-columns: 24px minmax(0, 1fr) 36px;
    gap: 7px;
    margin: 0;
    padding: 0 5px 0 12px;
    border: 0;
    border-radius: 13px;
    background: #f3f4f6;
    box-shadow: none;
    color: #979ca2;
  }
  .catalog-app-mobile-search input { height: 42px; font-size: 16px; }
  .catalog-app-mobile-search__icon { width: 22px !important; height: 22px !important; }
  .catalog-app-mobile-voice,
  .catalog-product-search [data-catalog-voice] {
    width: 36px;
    height: 38px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #9ba0a6;
  }
  .catalog-app-mobile-voice svg,
  .catalog-product-search [data-catalog-voice] svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
  .catalog-app-mobile-voice.is-listening,
  .catalog-product-search [data-catalog-voice].is-listening { color: #08643f; background: #e8f2ec; }

  .catalog-product-level-header {
    top: 0;
    margin: 0 -4px 8px;
    padding: 8px 0 10px;
    border-bottom: 1px solid #eceef0;
    background: rgba(255, 255, 255, .98);
    box-shadow: none;
  }
  body.admin-bar .catalog-product-level-header { top: 46px; }

  .catalog-product-searchbar {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 7px;
  }
  .catalog-product-searchbar .catalog-level-back {
    width: 38px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #171a1d;
    font: 400 29px/1 system-ui, sans-serif;
  }
  .catalog-product-search {
    min-height: 44px;
    grid-template-columns: 24px minmax(0, 1fr) 36px;
    gap: 7px;
    margin: 0;
    padding: 0 5px 0 12px;
    border: 0;
    border-radius: 13px;
    background: #f3f4f6;
    color: #979ca2;
  }
  .catalog-product-search > svg { width: 22px; height: 22px; }
  .catalog-product-search input { height: 42px; font-size: 16px; }

  .catalog-product-group-chips {
    display: flex;
    gap: 8px;
    margin: 13px -14px 0;
    padding: 0 14px 3px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .catalog-product-group-chips::-webkit-scrollbar { display: none; }
  .catalog-product-group-chips button {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 0 13px;
    border: 0;
    border-radius: 999px;
    background: #f2f2f4;
    color: #3f4347;
    font: 500 14px/1.15 system-ui, sans-serif;
    white-space: nowrap;
  }
  .catalog-product-group-chips button.is-active { background: #e2e3e6; color: #25282c; font-weight: 650; }

  .catalog-product-list-tools {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 48px;
    margin-top: 6px;
  }
  .catalog-product-tools-start { display: flex; align-items: center; gap: 10px; min-width: 0; }
  .catalog-view-switch { display: inline-flex; align-items: center; gap: 3px; flex: 0 0 auto; }
  .catalog-view-switch button {
    width: 36px;
    min-height: 36px;
    display: grid;
    place-items: center;
    padding: 0;
    border-radius: 8px;
    color: #8a8f92;
  }
  .catalog-view-switch button.is-active { background: #e8f1eb; color: #087343; }
  .catalog-view-switch button svg { width: 22px; height: 22px; }
  .catalog-product-list-tools button {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #303338;
    font: 500 14px/1.15 system-ui, sans-serif;
  }
  .catalog-product-list-tools svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .catalog-product-filter-button { flex-direction: row-reverse; }
  .catalog-product-sort-menu {
    position: absolute;
    top: 43px;
    left: 0;
    z-index: 5;
    min-width: 195px;
    display: grid;
    gap: 2px;
    padding: 6px;
    border: 1px solid #e1e3e6;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(18, 24, 21, .14);
  }
  .catalog-product-sort-menu[hidden] { display: none !important; }
  .catalog-product-sort-menu button { min-height: 39px; padding: 0 10px; border-radius: 8px; }
  .catalog-product-sort-menu button:active { background: #f1f3f4; }
  .catalog-product-context { display: none; }

  body.catalog-menu-root .catalog-feed-products,
  .catalog-page:not(.catalog-page--home) .catalog-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    background: #eef0f2;
  }

  body.catalog-menu-root .catalog-feed-product,
  .catalog-page:not(.catalog-page--home) .catalog-grid > .product-card { margin: 0; }

  body.catalog-menu-root .catalog-feed-product .product-card,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card {
    position: relative;
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    grid-template-rows: auto auto auto auto auto auto;
    column-gap: 14px;
    width: 100%;
    min-width: 0;
    height: auto;
    padding: 15px 10px 16px 4px;
    overflow: visible;
    border: 0;
    border-bottom: 0;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
  }

  body.catalog-menu-root .catalog-feed-product .product-card__image,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__image {
    position: static;
    grid-column: 1;
    grid-row: 2 / span 5;
    align-self: start;
    width: 100px;
    height: 132px;
    min-height: 132px;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: transparent;
  }
  body.catalog-menu-root .catalog-feed-product .product-card__image picture,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__image picture { width: 100%; height: 100%; display: grid; place-items: center; }
  body.catalog-menu-root .catalog-feed-product .product-card__image img,
  body.catalog-menu-root .catalog-feed-product .product-card__image.is-card-cover img,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__image img,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__image.is-card-cover img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left top;
    mix-blend-mode: normal;
  }

  body.catalog-menu-root .catalog-feed-product .product-card__stock,
  body.catalog-menu-root .catalog-feed-product .product-card__favorite,
  body.catalog-menu-root .catalog-feed-product .product-card__quality,
  body.catalog-menu-root .catalog-feed-product .product-card__gallery-dots,
  body.catalog-menu-root .catalog-feed-product .product-card__category,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__stock,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__favorite,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__quality,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__gallery-dots,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__category { display: none !important; }

  body.catalog-menu-root .catalog-feed-product .product-card__body,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__body { display: contents; min-height: 0; padding: 0; }

  body.catalog-menu-root .catalog-feed-product .product-card__code-row,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__code-row {
    grid-column: 2;
    grid-row: 1;
    min-height: 0;
    margin: 0 0 4px;
    padding: 0;
    border: 0;
  }
  body.catalog-menu-root .catalog-feed-product .product-card__code,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__code { color: #9a9da2; font-size: 12px; font-weight: 450; }
  body.catalog-menu-root .catalog-feed-product .product-card__material,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__material { display: none; }

  body.catalog-menu-root .catalog-feed-product .product-card__title,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__title {
    display: block;
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    min-height: 0;
    margin: 0 0 5px;
    overflow: visible;
    overflow-wrap: anywhere;
    font-size: 14px;
    font-weight: 720;
    line-height: 1.22;
    -webkit-line-clamp: unset;
  }
  body.catalog-menu-root .catalog-feed-product .product-card__title a,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__title a { color: #15181b !important; }
  body.catalog-menu-root .catalog-feed-product .product-card__spec,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__spec { display: none; }

  body.catalog-menu-root .catalog-feed-product .product-card__selection-total,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__selection-total {
    display: block;
    grid-column: 2;
    grid-row: 3;
    margin: 0;
    color: #1496e8;
    font-size: 16px;
    font-weight: 750;
    line-height: 1.15;
  }
  body.catalog-menu-root .catalog-feed-product .product-card__footer,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__footer { display: contents; }
  body.catalog-menu-root .catalog-feed-product .product-card__footer > div:first-child,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__footer > div:first-child { grid-column: 2; grid-row: 4; }
  body.catalog-menu-root .catalog-feed-product .product-card__footer small,
  body.catalog-menu-root .catalog-feed-product .product-card__pack-price,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__footer small,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__pack-price { display: none; }
  body.catalog-menu-root .catalog-feed-product .product-card__price,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__price { display: block; margin: 1px 0 0; color: #686c71; font-size: 15px; font-weight: 500; line-height: 1.2; }
  body.catalog-menu-root .catalog-feed-product .product-card__price::before,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__price::before { content: 'Цена: '; }
  body.catalog-menu-root .catalog-feed-product .product-card__price::after,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__price::after { content: ' НДС (12%)'; }
  body.catalog-menu-root .catalog-feed-product .product-card__availability-line,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__availability-line { display: block; grid-column: 2; grid-row: 5; margin-top: 1px; color: #686c71; font-size: 14px; line-height: 1.2; }

  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product .product-card__buy-row,
  body:not(.catalog-view-grid) .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__buy-row {
    display: grid;
    grid-column: 2;
    grid-row: 6;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    width: 100%;
    margin-top: 9px;
  }
  body.catalog-menu-root .catalog-feed-product .product-card__request,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__request {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    padding: 0 5px;
    border: 0;
    border-radius: 999px;
    background: #f3f3f7;
    color: #55595e;
    box-shadow: none;
    font-size: 13px;
    font-weight: 520;
  }
  body.catalog-menu-root .catalog-feed-product .product-card__request.is-added,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__request.is-added { border-color: #087443 !important; background: #087443 !important; color: #fff !important; }

  body.catalog-menu-root .catalog-feed-product .product-card--large-media,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card--large-media {
    grid-template-columns: 112px minmax(0, 1fr);
    column-gap: 14px;
  }

  body.catalog-menu-root .catalog-feed-product .product-card--large-media .product-card__image,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card--large-media .product-card__image {
    width: 112px;
    height: 150px;
    min-height: 150px;
    overflow: visible;
  }

  body.catalog-menu-root .catalog-feed-product .product-card--large-media .product-card__image img,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card--large-media .product-card__image img {
    clip-path: inset(5%);
    filter: contrast(1.045) brightness(1.035);
    transform: scale(1.1);
    transform-origin: left top;
  }

  body.catalog-menu-root .catalog-feed-product .product-card__stepper,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__stepper { min-height: 44px !important; }

  body.catalog-menu-root .catalog-feed-product .product-card__stepper-value small,
  .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__stepper-value small {
    font-size: 12px !important;
    font-weight: 800;
    letter-spacing: .01em;
  }
}

/* One-page catalog feed: category -> subgroup filter -> products. */
.catalog-feed-menu { margin: 18px 0 34px; }
.catalog-feed-heading,
.catalog-feed-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.catalog-feed-heading { margin-bottom: 14px; }
.catalog-feed-heading h2,
.catalog-feed-section__head h2 { margin: 0; color: #17251d; font-size: clamp(23px,3vw,34px); line-height: 1.08; }
.catalog-feed-heading > small,
.catalog-feed-section__head > small { flex: 0 0 auto; color: #66716a; font-size: 12px; }
.catalog-app-screen--root .catalog-app-grid--main { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.catalog-app-screen--root .catalog-app-card--main { min-height: 80px; display: grid; grid-template-columns: 42px minmax(0,1fr) 20px; align-items: center; gap: 9px; padding: 10px 12px; border: 1px solid #dfe7e1; border-radius: 13px; background: #f5f8f6; }
.catalog-app-screen--root .catalog-app-card--main:hover,
.catalog-app-screen--root .catalog-app-card--main:focus-visible { background: #eaf2ed; outline: 2px solid #19663c; }
.catalog-app-card__copy { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.catalog-app-screen--root .catalog-app-card--main strong { color: #173d2c; font-size: 13px; line-height: 1.2; }
.catalog-app-screen--root .catalog-app-card--main small { margin: 0; color: #6f7b74; font-size: 10px; }
.catalog-app-screen--root .catalog-app-card--main .catalog-app-card__chevron { display: block; width: 18px; color: #789083; }
.catalog-feed { min-width: 0; display: grid; gap: 42px; }
.catalog-feed-section { min-width: 0; scroll-margin-top: 18px; }
.catalog-feed-section__head { padding-bottom: 13px; border-bottom: 1px solid #dfe5e1; }
.catalog-feed-filters { display: flex; gap: 8px; margin: 13px 0 15px; overflow-x: auto; padding: 2px 1px 5px; scrollbar-width: none; }
.catalog-feed-filters::-webkit-scrollbar { display: none; }
.catalog-feed-filters button { flex: 0 0 auto; min-height: 38px; display: inline-flex; align-items: center; gap: 7px; padding: 0 13px; border: 1px solid #d7dfda; border-radius: 999px; background: #fff; color: #355443; cursor: pointer; font: inherit; font-size: 12px; font-weight: 720; white-space: nowrap; }
.catalog-feed-filters button small { color: #7f8b84; font-size: 10px; }
.catalog-feed-filters button.is-active { border-color: #08643f; background: #08643f; color: #fff; }
.catalog-feed-filters button.is-active small { color: #fff; }
.catalog-feed-products { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.catalog-feed-product { min-width: 0; }
/* audit 08.10.2026: P2 — «auto»: a card drawn once keeps its real height while skipped, so scrolling back up no longer
   makes the rows grow again from the 420 px stand-in (layout shift). */
.catalog-feed-product { content-visibility: auto; contain-intrinsic-size: auto 420px; }
.catalog-feed-product[hidden], .catalog-front-group-heading[hidden], .catalog-feed-section[hidden] { display: none !important; }
.catalog-feed-product > .product-card { height: 100%; }
.catalog-front-load-sentinel { width: 100%; height: 2px; }
.catalog-front-load-sentinel[hidden] { display: none; }
.catalog-feed-status { min-height: 20px; margin: -16px 0 16px; color: #315e47 !important; font-size: 13px; font-weight: 760; }
.catalog-feed-status:empty { display: none; }
.catalog-feed-empty { margin: 30px 0; padding: 22px; border-radius: 14px; background: #f3f6f4; color: #526058; text-align: center; }

@media (max-width: 980px) {
 .catalog-app-screen--root .catalog-app-grid--main,
 .catalog-feed-products { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 780px) {
 .catalog-feed-menu { margin: 12px 0 30px; }
 .catalog-feed-heading { margin-bottom: 10px; }
 .catalog-feed-heading h2,
 .catalog-feed-section__head h2 { font-size: 22px; }
 .catalog-feed-heading > small,
 .catalog-feed-section__head > small { font-size: 10px; }
 .catalog-app-screen--root .catalog-app-grid--main { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
 .catalog-app-screen--root .catalog-app-card--main,
 .catalog-app-screen--root .catalog-app-card--main:first-child { min-height: 70px; grid-template-columns: 34px minmax(0,1fr); gap: 7px; padding: 8px; border: 1px solid #e0e7e2; border-radius: 11px; background: #f5f8f6; }
 .catalog-app-screen--root .catalog-app-card--main .catalog-app-card__icon { width: 31px; height: 31px; }
 .catalog-app-screen--root .catalog-app-card--main .catalog-app-card__icon svg { width: 30px; height: 30px; }
 .catalog-app-screen--root .catalog-app-card--main .catalog-app-card__chevron { display: none; }
 .catalog-app-screen--root .catalog-app-card--main strong { font-size: 11px; }
 .catalog-app-screen--root .catalog-app-card--main small { display: block; font-size: 9px; }
 .catalog-feed { gap: 36px; }
 .catalog-feed-section { scroll-margin-top: 10px; }
 .catalog-feed-section__head { align-items: flex-end; gap: 8px; padding-bottom: 10px; }
 .catalog-feed-section__head span { font-size: 8px; }
 .catalog-feed-filters { margin: 10px -18px 12px; padding: 2px 18px 5px; }
 .catalog-feed-filters button { min-height: 36px; padding: 0 11px; font-size: 11px; }
 .catalog-feed-products { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
 .catalog-feed-product .product-card { border-radius: 11px; box-shadow: 0 2px 8px rgba(24,34,29,.045); }
 .catalog-feed-product .product-card__image { height: auto; aspect-ratio: 1/1; padding: 9px; }
 .catalog-feed-product .product-card__stock { left: 6px; top: 6px; min-height: 22px; padding: 0 6px; font-size: 8px; }
 .catalog-feed-product .product-card__quality,
 .catalog-feed-product .product-card__category,
 .catalog-feed-product .product-card__spec,
 .catalog-feed-product .product-card__details { display: none; }
 .catalog-feed-product .product-card__body { min-height: 190px; padding: 9px; }
 .catalog-feed-product .product-card__code-row { min-height: 18px; margin: 0; }
 .catalog-feed-product .product-card__code { font-size: 9px; }
 .catalog-feed-product .product-card__material { display: none; }
 .catalog-feed-product .product-card__title { min-height: 4.5em; display: -webkit-box; margin: 3px 0 8px; overflow: hidden; font-size: 12px; line-height: 1.22; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
 .catalog-feed-product .product-card__footer { align-items: stretch; flex-direction: column; gap: 6px; margin-top: auto; padding-top: 7px; }
 .catalog-feed-product .product-card__footer small { font-size: 8px; }
 .catalog-feed-product .product-card__price { font-size: 14px; }
 .catalog-feed-product .product-card__buy-row { display: grid; grid-template-columns: minmax(58px,.8fr) minmax(72px,1.2fr); gap: 5px; }
 .catalog-feed-product .product-card__quantity { display: grid; grid-template-columns: 1fr 22px 1fr; min-height: 36px; border: 1px solid #d7ded9; border-radius: 9px; overflow: hidden; }
 .catalog-feed-product .product-card__quantity button,
 .catalog-feed-product .product-card__quantity input { min-width: 0; padding: 0; border: 0; background: #fff; color: #173d2c; text-align: center; }
 .catalog-feed-product .product-card__quantity input { width: 100%; font-size: 10px; font-weight: 750; }
 .catalog-feed-product .product-card__quantity button { font-size: 15px; }
 .catalog-feed-product .product-card__request { width: 100%; min-height: 36px; padding: 0 5px; border-color: #e9b800; background: var(--yellow); color: #172018; font-size: 9px; }
 .catalog-feed-product .product-card__request.is-added { border-color: #08643f; background: #08643f; color: #fff; }
}


/* Active category in the one-page catalogue switcher. */
.catalog-app-screen--root .catalog-app-card--main.is-active {
  border-color: #08643f;
  background: #08643f;
  box-shadow: 0 5px 16px rgba(8, 100, 63, .18);
}
.catalog-app-screen--root .catalog-app-card--main.is-active strong,
.catalog-app-screen--root .catalog-app-card--main.is-active small,
.catalog-app-screen--root .catalog-app-card--main.is-active .catalog-app-card__icon,
.catalog-app-screen--root .catalog-app-card--main.is-active .catalog-app-card__chevron { color: #fff; }
.catalog-feed { scroll-margin-top: 16px; }
.catalog-feed-section[hidden] { display: none !important; }

/* Sticky subgroup bar and quick return in long catalogues. */
.catalog-back-to-top {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(18px + env(safe-area-inset-bottom));
  z-index: 90;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #08643f;
  color: #fff;
  box-shadow: 0 8px 24px rgba(8, 100, 63, .28);
  cursor: pointer;
  font: 800 25px/1 system-ui, sans-serif;
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity .2s ease, transform .2s ease;
}
.catalog-back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.catalog-back-to-top:focus-visible { outline: 3px solid #f5c400; outline-offset: 3px; }

@media (max-width: 780px) {
  .catalog-feed-section:not([hidden]) .catalog-feed-filters {
    position: sticky;
    top: 0;
    z-index: 80;
    margin: 10px -18px 12px;
    padding: 8px 18px;
    border-top: 1px solid #edf1ee;
    border-bottom: 1px solid #dfe7e2;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 6px 14px rgba(17, 51, 35, .08);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }
  body.admin-bar .catalog-feed-section:not([hidden]) .catalog-feed-filters { top: 46px; }
}


/* Sticky global category switcher. */
.catalog-category-switcher {
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 -18px 14px;
  padding: 8px 10px;
  border-top: 1px solid #edf1ee;
  border-bottom: 1px solid #dfe7e2;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 6px 14px rgba(17, 51, 35, .08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
body.admin-bar .catalog-category-switcher { top: 32px; }
.catalog-category-switcher__track {
  min-width: 0;
  display: flex;
  gap: 8px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.catalog-category-switcher__track::-webkit-scrollbar { display: none; }
.catalog-category-switcher__chip {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 9px 13px;
  border: 1px solid #dce8e1;
  border-radius: 13px;
  background: #edf5f0;
  color: #174c36;
  cursor: pointer;
  font: 750 14px/1.15 system-ui, sans-serif;
  white-space: nowrap;
}
.catalog-category-switcher__chip.is-active {
  border-color: #08643f;
  background: #08643f;
  color: #fff;
}
.catalog-back-to-top.catalog-back-to-top--header {
  position: relative;
  inset: auto;
  z-index: 1;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  opacity: 1;
  pointer-events: auto;
  transform: none;
  box-shadow: 0 5px 15px rgba(8, 100, 63, .22);
}
.catalog-feed-section { scroll-margin-top: 68px; }

@media (max-width: 780px) {
  body.admin-bar .catalog-category-switcher { top: 46px; }
  .catalog-feed-section:not([hidden]) .catalog-feed-filters {
    position: static;
    z-index: auto;
    margin: 10px 0 12px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}


/* Three-level catalogue: categories -> pictured groups -> products. */
.catalog-level-screen[hidden],
.catalog-product-level-header[hidden],
.catalog-feed[hidden] {
  display: none !important;
}

.catalog-three-level-ready .catalog-category-switcher,
.catalog-three-level-ready .catalog-back-to-top {
  display: none !important;
}

.catalog-level-screen {
  margin-top: 14px;
}

.catalog-level-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 16px;
  padding: 10px 0 12px;
  border-bottom: 1px solid #e3e9e5;
  background: #fff;
}

.catalog-product-level-header {
  position: sticky;
  top: 0;
  z-index: 105;
  display: block;
  margin: 0 -18px 12px;
  padding: 10px 18px 12px;
  box-shadow: 0 5px 14px rgba(17, 51, 35, .07);
}

.catalog-product-toolbar {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.catalog-product-toolbar > strong {
  color: #14171a;
  font: 800 21px/1.15 system-ui, sans-serif;
}

.catalog-product-toolbar .catalog-level-back {
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #14171a;
  font-size: 30px;
}

.catalog-product-toolbar__actions {
  display: flex;
  align-items: center;
  gap: 3px;
}

.catalog-product-toolbar__actions button {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: #111519;
  cursor: pointer;
}

.catalog-product-toolbar__actions svg,
.catalog-product-search svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.catalog-product-toolbar__actions [data-product-more-toggle] span {
  font: 800 27px/1 system-ui, sans-serif;
}

.catalog-product-search {
  min-height: 44px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 0 12px;
  border: 1px solid #d9dde0;
  border-radius: 13px;
  background: #fff;
  color: #8d9499;
}

.catalog-product-search[hidden],
.catalog-product-more[hidden] { display: none !important; }

.catalog-product-search input {
  width: 100%;
  min-width: 0;
  height: 42px;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: #15181b;
  font: 16px/1.2 system-ui, sans-serif;
}

.catalog-product-more {
  position: absolute;
  top: 56px;
  right: 14px;
  z-index: 2;
  width: 190px;
  display: grid;
  padding: 6px;
  border: 1px solid #dfe4e1;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(16, 38, 26, .18);
}

.catalog-product-more button {
  min-height: 42px;
  padding: 8px 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #15221b;
  cursor: pointer;
  text-align: left;
  font: 650 14px/1.2 system-ui, sans-serif;
}

.catalog-product-more button:hover,
.catalog-product-more button:focus-visible { background: #f0f4f1; }

.catalog-product-context { margin: 8px 0 0 50px; }

body.admin-bar .catalog-product-level-header {
  top: 32px;
}

.catalog-level-back {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #d8e2dc;
  border-radius: 12px;
  background: #f2f6f3;
  color: #0b5d3b;
  cursor: pointer;
  font: 800 22px/1 system-ui, sans-serif;
}

.catalog-level-title {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.catalog-level-title small {
  color: #6f8177;
  font: 800 10px/1.2 system-ui, sans-serif;
  letter-spacing: .08em;
}

.catalog-level-title h2 {
  margin: 0;
  color: #14231c;
  font: 800 clamp(18px, 4vw, 24px)/1.15 system-ui, sans-serif;
}

.catalog-level-title span {
  color: #718078;
  font: 650 12px/1.25 system-ui, sans-serif;
}

.catalog-group-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.catalog-group-card {
  min-width: 0;
  min-height: 192px;
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e4e9e6;
  border-radius: 16px;
  background: #f3f5f4;
  color: #14231c;
  text-decoration: none;
  cursor: pointer;
  text-align: left;
  box-shadow: 0 2px 7px rgba(16, 48, 31, .04);
}

.catalog-group-card__media {
  width: 100%;
  height: 116px;
  display: grid;
  place-items: center;
  padding: 8px;
  background: #fff;
}

.catalog-group-card__media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.catalog-group-card__copy {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px;
}

.catalog-group-card__copy strong {
  color: #173c2c;
  font: 750 13px/1.22 system-ui, sans-serif;
  overflow-wrap: anywhere;
}

.catalog-group-card__copy small {
  margin-top: auto;
  color: #748079;
  font: 650 11px/1.2 system-ui, sans-serif;
}

.catalog-group-card:active {
  transform: scale(.985);
}

body.catalog-level-products .catalog-feed-section__head,
body.catalog-level-products .catalog-feed-filters {
  display: none !important;
}

body.catalog-level-products .catalog-feed-section {
  padding-top: 0;
  border-top: 0;
}

@media (max-width: 780px) {
  body.admin-bar .catalog-product-level-header {
    top: 46px;
  }

  .catalog-product-level-header {
    margin-inline: -12px;
    padding: 8px 12px;
  }

  body.catalog-level-products .catalog-app-mobile-search { display: grid; }
  .catalog-product-context { display: none; }
  .catalog-product-toolbar { grid-template-columns: 38px minmax(0, 1fr) auto; gap: 6px; }
  .catalog-product-toolbar > strong { font-size: 20px; }
  .catalog-product-toolbar .catalog-level-back,
  .catalog-product-toolbar__actions button { width: 38px; height: 38px; }
  .catalog-product-toolbar__actions svg { width: 24px; height: 24px; }
  .catalog-product-more { top: 51px; right: 9px; }

  .catalog-group-grid {
    gap: 8px;
  }

  .catalog-group-card {
    min-height: 176px;
    border-radius: 14px;
  }

  .catalog-group-card__media {
    height: 102px;
    padding: 6px;
  }

  .catalog-group-card__copy {
    padding: 8px;
  }

  .catalog-group-card__copy strong {
    font-size: 12px;
  }
}


/* Product feed directly below the first-level category cards. */
.catalog-front-products-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 22px 0 12px;
}

.catalog-front-products-heading h2 {
  margin: 0;
  color: #14231c;
  font: 800 clamp(21px, 5vw, 28px)/1.15 system-ui, sans-serif;
}

body:not(.catalog-level-categories) .catalog-front-products-heading {
  display: none !important;
}

.catalog-root-product-header { margin-top: 22px; }

body.catalog-level-categories .catalog-feed-filters {
  display: none !important;
}

body.catalog-level-categories .catalog-feed-section {
  margin: 0 0 30px;
  padding-top: 0;
  border-top: 0;
}

body.catalog-level-categories .catalog-feed-section__head {
  display: flex;
  margin-bottom: 12px;
}

body.catalog-level-categories .catalog-feed-products {
  margin-top: 0;
}

.catalog-front-group-heading {
  grid-column: 1 / -1;
  display: grid;
  gap: 3px;
  margin: 10px 0 0;
  padding-top: 13px;
  border-top: 1px solid #e2e8e4;
}

.catalog-front-group-heading:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.catalog-front-group-heading h3 {
  margin: 0;
  color: #193d2c;
  font: 800 clamp(17px, 4vw, 21px)/1.2 system-ui, sans-serif;
}

body.catalog-level-products .catalog-front-group-heading,
body.catalog-level-groups .catalog-front-group-heading {
  display: none !important;
}

.catalog-page-up {
  position: fixed;
  top: max(76px, calc(env(safe-area-inset-top) + 62px));
  right: max(12px, env(safe-area-inset-right));
  z-index: 115;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #d8dfdb;
  border-radius: 50%;
  background: rgba(243, 245, 244, .96);
  color: #175b3b;
  box-shadow: 0 5px 15px rgba(20, 46, 32, .13);
  cursor: pointer;
  font: 800 20px/1 system-ui, sans-serif;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
  transition: opacity .18s ease, transform .18s ease, top .15s ease;
}

.catalog-page-up.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.catalog-page-up:focus-visible {
  outline: 3px solid #f5c400;
  outline-offset: 2px;
}

/* Keep the exact source photo, but do not show a second white rectangle inside
   the soft-grey navigation card. `darken` only blends the source matte into
   the card surface; it does not crop, rotate or regenerate the product. */
.catalog-group-card__media { padding: 0; background: #f3f5f4; }
.catalog-group-card__media img { object-fit: contain; mix-blend-mode: darken; }

@media (max-width: 780px) {
  .catalog-feed-products { grid-template-columns: 1fr; gap: 9px; }
  .catalog-feed-product .product-card {
    display: grid;
    grid-template-columns: 108px minmax(0, 1fr);
    border-radius: 13px;
  }
  .catalog-feed-product .product-card__image {
    grid-column: 1;
    width: 108px;
    height: 108px;
    min-height: 108px;
    aspect-ratio: 1 / 1;
    align-self: start;
    padding: 0;
    border-right: 1px solid #e2e6e3;
    border-bottom: 1px solid #e2e6e3;
    background: #fff;
  }
  .catalog-feed-product .product-card__body {
    grid-column: 2;
    min-width: 0;
    min-height: 244px;
    padding: 10px;
  }
  .catalog-feed-product .product-card__title {
    min-height: 0;
    margin: 3px 32px 8px 0;
    font-size: 14px;
    line-height: 1.22;
    -webkit-line-clamp: 4;
  }
  .catalog-feed-product .product-card__price { font-size: 17px; }
  .catalog-feed-product .product-card__buy-row { display: grid; grid-template-columns: 1fr; gap: 7px; }
  .catalog-feed-product .product-card__quantity {
    grid-template-columns: 42px minmax(48px, 1fr) 42px;
    grid-template-rows: 18px 42px;
    width: 100%;
    min-height: 60px;
    overflow: visible;
    border: 1px solid #d8dfda;
    border-radius: 11px;
    background: #fff;
  }
  .catalog-feed-product .product-card__quantity button,
  .catalog-feed-product .product-card__quantity input {
    grid-row: 2;
    width: 100%;
    height: 42px;
    background: transparent;
    font-size: 15px;
  }
  .catalog-feed-product .product-card__quantity button { font-size: 22px; }
  .catalog-feed-product .product-card__request { width: 100%; min-height: 42px; padding: 0 8px; font-size: 11px; }
}

@media (max-width: 780px) {
  .catalog-app-screen { background: #eff0f4; }
  .catalog-feed-products { width: 100%; min-width: 0; max-width: 100%; grid-template-columns: 1fr; gap: 12px; }
  .catalog-feed-product { width: 100%; min-width: 0; max-width: 100%; }
  .catalog-feed-product .product-card { position: relative; display: grid; grid-template-columns: 76px minmax(0,1fr); grid-template-rows: auto auto auto auto auto; gap: 0 12px; width: 100%; min-width: 0; max-width: 100%; height: auto; padding: 13px; overflow: hidden; border: 1px solid #e3e4e9; border-radius: 18px; background: #fff; box-shadow: 0 2px 7px rgba(21,27,24,.045); }
  .catalog-feed-product .product-card__image { position: absolute; top: 13px; left: 13px; width: 76px; height: 76px; min-height: 76px; padding: 4px; overflow: hidden; border: 0; background: #fff; }
  .catalog-feed-product .product-card__image picture { display: grid; width: 100%; height: 100%; place-items: center; }
  .catalog-feed-product .product-card__image img,
  .catalog-feed-product .product-card__image.is-card-cover img { width: 100%; height: 100%; object-fit: contain; object-position: center; mix-blend-mode: normal; }
  .catalog-feed-product .product-card__stock,
  .catalog-feed-product .product-card__favorite,
  .catalog-feed-product .product-card__quality,
  .catalog-feed-product .product-card__gallery-dots,
  .catalog-feed-product .product-card__category { display: none; }
  .catalog-feed-product .product-card__body { display: contents; min-height: 0; padding: 0; }
  .catalog-feed-product .product-card__title { display: block; grid-column: 2; grid-row: 1; min-width: 0; max-width: 100%; min-height: 0; margin: 2px 0 4px; overflow: visible; overflow-wrap: anywhere; font-size: 16px; font-weight: 780; line-height: 1.16; -webkit-line-clamp: unset; }
  .catalog-feed-product .product-card__title a { max-width: 100%; overflow-wrap: anywhere; }
  .catalog-feed-product .product-card__spec { display: none; }
  .catalog-feed-product .product-card__selection-total { display: block; grid-column: 2; grid-row: 3; color: #1496e8; font-size: 19px; font-weight: 750; line-height: 1.2; }
  .catalog-feed-product .product-card__availability-line { display: block; grid-column: 2; grid-row: 5; color: #6c7073; font-size: 16px; }
  .catalog-feed-product .product-card__footer { display: contents; }
  .catalog-feed-product .product-card__footer > div:first-child { grid-column: 2; grid-row: 4; }
  .catalog-feed-product .product-card__footer small,
  .catalog-feed-product .product-card__pack-price { display: none; }
  .catalog-feed-product .product-card__price { display: block; margin: 0; color: #6c7073; font-size: 17px; font-weight: 500; }
  .catalog-feed-product .product-card__price::before { content: 'Цена: '; }
  .catalog-feed-product .product-card__price::after { content: ' НДС (12%)'; }
  .catalog-feed-product .product-card__code-row { grid-column: 1 / -1; grid-row: 6; min-height: 44px; margin-top: 12px; padding-top: 10px; border-top: 1px solid #e7e8ea; }
  .catalog-feed-product .product-card__code { color: #17191a; font-size: 18px; }
  .catalog-feed-product .product-card__material { display: none; }
  .catalog-feed-product .product-card__buy-row { display: grid; grid-column: 1 / -1; grid-row: 7; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; width: 100%; min-width: 0; max-width: 100%; }
  .catalog-feed-product .product-card__request { width: 100%; min-width: 0; max-width: 100%; min-height: 48px; padding: 0 8px; border: 0; border-radius: 999px; background: #f4f3f8; color: #5a5d60; box-shadow: none; font-size: 17px; font-weight: 500; white-space: normal; }
  .catalog-feed-product .product-card__request.is-added { border-color: #087443 !important; background: #087443 !important; color: #fff !important; box-shadow: 0 5px 13px rgba(8, 116, 67, .23) !important; }
}

/* Final cascade for server-rendered catalogue levels. */
@media (max-width: 780px) {
  .catalog-app-mobile-search { width: 100%; min-width: 0; }

  .catalog-app-screen--root[data-catalog-level="categories"] .catalog-app-mobile-topbar {
    grid-template-columns: minmax(0, 1fr);
  }

  .catalog-app-screen--root[data-catalog-level="categories"] .catalog-app-mobile-search {
    grid-column: 1 / -1;
  }

  .catalog-app-screen--root[data-catalog-level="groups"] .catalog-app-mobile-topbar,
  .catalog-app-screen--root[data-catalog-level="products"] .catalog-app-mobile-topbar {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  body.catalog-level-products .catalog-app-mobile-topbar { display: grid; }

  body.catalog-level-products .catalog-product-level-header {
    top: 60px;
    z-index: 110;
    margin-inline: -4px;
    padding: 4px 0 7px;
  }

  body.admin-bar.catalog-level-products .catalog-product-level-header { top: 106px; }

  body.catalog-level-categories.catalog-has-products .catalog-product-level-header { top: 60px; }
  body.admin-bar.catalog-level-categories.catalog-has-products .catalog-product-level-header { top: 106px; }
  body.catalog-level-categories.catalog-has-products .catalog-product-context {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    margin: 0 2px 5px;
  }
  body.catalog-level-categories.catalog-has-products .catalog-product-context h1,
  body.catalog-level-categories.catalog-has-products .catalog-product-context h2 {
    margin: 0;
    overflow: hidden;
    color: #171a1d;
    font-size: 16px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  body.catalog-level-categories.catalog-has-products .catalog-product-context span {
    color: #747a7f;
    font-size: 11px;
  }
  body.catalog-level-categories.catalog-has-products .catalog-page-up { display: grid !important; }
  .catalog-root-product-header { margin-top: 18px; }

  body.catalog-level-products .catalog-product-context {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    margin: 0 2px 5px;
  }

  body.catalog-level-products .catalog-product-context small { display: none; }
  body.catalog-level-products .catalog-product-context h1 {
    overflow: hidden;
    font-size: 15px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  body.catalog-level-products .catalog-product-context span { white-space: nowrap; }

  .catalog-level-title h1 {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  body.catalog-menu-root.menu-is-open .site-header {
    position: fixed;
    inset: 0;
    z-index: 90;
    height: 0;
    display: block !important;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  body.catalog-menu-root.menu-is-open .mobile-store-utility,
  body.catalog-menu-root.menu-is-open .site-header__main {
    display: none !important;
  }

  body.catalog-menu-root.menu-is-open .site-header__navigation { border: 0; }

  body.catalog-menu-root.menu-is-open .site-nav.is-open {
    position: fixed;
    inset: 12px 12px calc(74px + env(safe-area-inset-bottom));
    z-index: 94;
    max-height: none;
    margin: 0;
    overflow-y: auto;
  }

  .catalog-feed-product .product-card__stepper-value small {
    display: inline !important;
  }

  .catalog-app-screen .catalog-audience-line {
    margin: 0;
    color: #3f6651;
  }

  body.request-drawer-is-open .mobile-app-nav {
    display: grid !important;
    z-index: 1002 !important;
  }

  .request-drawer.is-mobile-cart-open {
    position: fixed !important;
    inset: 0 0 calc(66px + env(safe-area-inset-bottom)) 0 !important;
    z-index: 1000 !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .request-drawer.is-mobile-cart-open .request-drawer__panel {
    padding: 17px 16px 18px;
  }

  .request-drawer__head [data-request-close] { display: none !important; }

  .request-item__controls {
    width: 100%;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    justify-content: stretch !important;
  }

  .request-item__unit-control {
    display: grid !important;
    grid-template-columns: 44px minmax(44px, 1fr) 44px !important;
    grid-template-rows: 24px 44px !important;
    overflow: hidden;
    border: 1px solid #d7ddd9 !important;
    border-radius: 12px !important;
    background: #f7f9f8 !important;
  }

  .request-item__unit-control.is-selected {
    border-color: #78a98d !important;
    background: #e9f5ed !important;
  }

  .request-item__unit-control > span {
    grid-column: 1 / -1 !important;
    display: block !important;
    padding: 6px 5px 2px !important;
    color: #4c5f53 !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
  }

  .request-item__unit-control button,
  .request-item__unit-control strong {
    min-width: 0 !important;
    height: 44px !important;
    display: grid !important;
    place-items: center !important;
    grid-row: 2 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #163c2b !important;
    font-size: 17px !important;
  }

  .request-item__unit-control button:disabled {
    color: #b2bab5 !important;
    cursor: default;
  }

}

.request-item__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  margin-top: 14px;
  padding: 0 13px;
  border: 1px solid #d7ddd9;
  border-radius: 10px;
  background: #fff;
  color: #6f5550;
  font: 700 12px/1 Arial, sans-serif;
  cursor: pointer;
}

.request-item__remove:hover,
.request-item__remove:focus-visible {
  border-color: #af8d86;
  background: #fbf4f2;
  color: #6f2f27;
}

.request-item.is-quantity-empty {
  border-color: #d7ddd9;
}

.request-item.is-quantity-empty .request-item__quantity-summary {
  color: #8a5d24;
  font-weight: 700;
}

.request-remove-dialog {
  width: min(420px, calc(100% - 32px));
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: 18px;
  background: #fff;
  color: #17231c;
  box-shadow: 0 24px 70px rgba(17, 32, 24, .24);
}

.request-remove-dialog::backdrop {
  background: rgba(18, 27, 22, .48);
}

.request-remove-dialog__panel {
  display: grid;
  gap: 22px;
  padding: 24px;
}

.request-remove-dialog__panel h2 {
  margin: 0;
  color: #17231c;
  font: 800 20px/1.3 Arial, sans-serif;
  text-align: center;
}

.request-remove-dialog__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.request-remove-dialog__actions button {
  min-height: 46px;
  padding: 10px 16px;
  border-radius: 12px;
  font: 700 14px/1 Arial, sans-serif;
  cursor: pointer;
}

.request-remove-dialog__cancel {
  border: 1px solid #d7ddd9;
  background: #fff;
  color: #31513f;
}

.request-remove-dialog__confirm {
  border: 1px solid #a33b31;
  background: #a33b31;
  color: #fff;
}

.request-remove-dialog__cancel:hover,
.request-remove-dialog__cancel:focus-visible {
  background: #f2f6f3;
}

.request-remove-dialog__confirm:hover,
.request-remove-dialog__confirm:focus-visible {
  border-color: #7f2d26;
  background: #7f2d26;
}

@media (max-width: 780px) {
  .request-item__remove {
    min-height: 44px;
    margin-top: 16px;
  }
}

/* Keep this final override after all legacy catalogue layouts. */
@media (max-width: 780px) {
  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product:not([data-product-category="decor"]) .product-card {
    grid-template-columns: 126px minmax(0, 1fr) !important;
  }
  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product:not([data-product-category="decor"]) .product-card__image {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 126px !important;
    height: 164px !important;
    min-height: 164px !important;
    padding: 0 !important;
    overflow: hidden;
    background: transparent !important;
  }
  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product:not([data-product-category="decor"]) .product-card__image picture {
    width: 100% !important;
    height: 100% !important;
    place-items: start !important;
  }
  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product:not([data-product-category="decor"]) .product-card__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: left top !important;
    align-self: start !important;
    justify-self: start !important;
    clip-path: none;
    mix-blend-mode: normal;
    filter: none;
    transform: none !important;
  }
  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product:not([data-product-category="decor"]) .product-card__promo-badge {
    top: 6px;
    right: auto;
    bottom: auto;
    left: 6px;
  }
}

/* Final audit: the visible mobile controls are also their full touch targets.
   Keep this after every legacy mobile catalogue layer. */
@media (max-width: 780px) {
  .mobile-store-utility {
    grid-template-columns: auto minmax(56px, 1fr) auto 44px;
  }

  .mobile-store-utility > button,
  .mobile-store-utility > a,
  .mobile-store-utility > .mobile-brand {
    min-height: 44px;
  }

  .catalog-app-screen--root[data-catalog-level="groups"] .catalog-app-mobile-topbar,
  .catalog-app-screen--root[data-catalog-level="products"] .catalog-app-mobile-topbar {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .catalog-app-mobile-back,
  .catalog-product-searchbar .catalog-level-back,
  .catalog-app-mobile-voice,
  .catalog-product-search [data-catalog-voice] {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px;
    min-height: 44px;
  }

  .catalog-view-switch button {
    width: 44px;
    min-width: 44px;
    min-height: 44px;
  }

  .catalog-product-list-tools button,
  .catalog-product-filter-button,
  .catalog-flat-link,
  .catalog-product-group-chips button,
  .catalog-inline-groups__track button,
  .catalog-inline-filter-options button {
    min-height: 44px;
  }

  body.catalog-menu-root.catalog-navigation-ready .catalog-feed-product .product-card__image .product-card__favorite {
    width: 44px;
    height: 44px;
  }

  /* Keep the promotion label on the left and the favourite action on the
     right edge of the whole list card. Both controls used to share the
     narrow media column and could overlap on phones. */
  body.catalog-menu-root:not(.catalog-view-grid).catalog-navigation-ready .catalog-feed-product .product-card__image {
    position: static !important;
  }

  body.catalog-menu-root:not(.catalog-view-grid).catalog-navigation-ready .catalog-feed-product .product-card__image .product-card__promo-badge {
    top: 8px;
    right: auto;
    bottom: auto;
    left: 8px;
  }

  body.catalog-menu-root:not(.catalog-view-grid).catalog-navigation-ready .catalog-feed-product .product-card__image .product-card__favorite {
    top: 6px;
    right: 8px;
  }

  body.catalog-menu-root.catalog-view-list .catalog-feed-product .product-card__title {
    padding-right: 46px;
  }

  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product .product-card__buy-row,
  body:not(.catalog-view-grid) .catalog-page:not(.catalog-page--home) .catalog-grid .product-card__buy-row {
    grid-column: 1 / -1 !important;
    grid-row: 7 !important;
    grid-template-columns: repeat(2, minmax(132px, 1fr)) !important;
  }

  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__buy-row {
    width: 100%;
    min-width: 0;
    grid-template-columns: minmax(132px, 1fr) !important;
    gap: 6px;
  }

  .catalog-product-sort-select select {
    min-height: 44px;
  }

  .product-card__buy-row > :only-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 380px) {
  .catalog-product-list-tools,
  .catalog-product-tools-start {
    gap: 4px;
  }

  .catalog-product-sort-select select {
    width: 120px;
    max-width: 120px;
  }
}

/* Homepage hero stage 1: make the wholesale offer and ordering conditions
   readable before visitors enter the catalogue. */
.catalog-page--home .app-help-banner {
  min-height: 430px;
}

.catalog-page--home .app-help-banner::after {
  background: linear-gradient(90deg, rgba(245, 247, 243, .99) 0%, rgba(245, 247, 243, .96) 46%, rgba(245, 247, 243, .18) 74%);
}

.catalog-page--home .app-help-banner__copy {
  width: min(60%, 760px);
  padding: 34px 44px;
}

.catalog-page--home .app-help-banner h1 {
  max-width: 690px;
  margin: 8px 0 13px;
  font-size: clamp(38px, 3.55vw, 54px);
  line-height: 1.02;
  letter-spacing: -.04em;
}

.catalog-page--home .app-help-banner .app-help-banner__lead {
  max-width: 630px;
  margin: 0;
  color: #46564d;
  font-size: 16px;
  line-height: 1.45;
}

.app-help-banner__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.app-help-banner__fact {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid rgba(0, 92, 54, .16);
  border-radius: 9px;
  background: rgba(255, 255, 255, .84);
  color: #203b2d;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.25;
}

.app-help-banner__fact > span {
  width: 17px;
  height: 17px;
  display: inline-grid;
  flex: 0 0 17px;
  place-items: center;
  border-radius: 50%;
  background: var(--green);
  color: #fff;
  font-size: 11px;
  line-height: 1;
}

.catalog-page--home .app-help-banner .app-help-banner__note {
  max-width: 620px;
  margin: 11px 0 0;
  color: #657169;
  font-size: 12px;
  line-height: 1.4;
}

.catalog-page--home .app-help-banner__actions {
  margin-top: 18px;
}

.catalog-page--home .app-help-banner__actions .app-help-banner__primary,
.catalog-page--home .app-help-banner__actions .app-help-banner__secondary {
  min-height: 46px;
}

.catalog-page--home .app-help-banner__actions .app-help-banner__primary {
  padding-inline: 21px;
  box-shadow: 0 7px 18px rgba(0, 92, 54, .16);
}

.catalog-page--home .app-help-banner__actions .app-help-banner__secondary {
  border-color: rgba(0, 92, 54, .42);
  background: rgba(255, 255, 255, .72);
  font-weight: 750;
}

@media (max-width: 780px) {
  .catalog-page--home .app-help-banner {
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: #f5f7f3;
  }

  .catalog-page--home .app-help-banner::after {
    display: none;
  }

  .catalog-page--home .app-help-banner__copy {
    width: 100%;
    padding: 21px 16px 17px;
  }

  .catalog-page--home .app-help-banner__copy > span {
    font-size: 10px;
  }

  .catalog-page--home .app-help-banner h1 {
    max-width: 660px;
    margin: 6px 0 11px;
    font-size: clamp(28px, 7.6vw, 38px);
    line-height: 1.04;
  }

  .catalog-page--home .app-help-banner .app-help-banner__lead {
    max-width: 680px;
    font-size: 14px;
    line-height: 1.4;
  }

  .catalog-page--home .app-help-banner__facts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    margin-top: 15px;
  }

  .catalog-page--home .app-help-banner__fact {
    min-height: 32px;
    width: 100%;
    padding: 6px 9px;
    font-size: 12px;
  }

  .catalog-page--home .app-help-banner .app-help-banner__note {
    margin-top: 10px;
    font-size: 11px;
  }

  .catalog-page--home .app-help-banner__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 15px;
  }

  .catalog-page--home .app-help-banner__actions .app-help-banner__primary,
  .catalog-page--home .app-help-banner__actions .app-help-banner__secondary {
    width: 100%;
    min-height: 44px;
    padding: 0 14px;
    font-size: 13px;
  }

  .catalog-page--home .app-help-banner img {
    position: static;
    width: 100%;
    height: clamp(108px, 29vw, 156px);
    flex: 0 0 auto;
    object-fit: cover;
    object-position: center 54%;
  }
}

@media (max-width: 390px) {
  .catalog-page--home .app-help-banner h1 {
    font-size: 28px;
  }
}

/* 2026-09-11 interaction audit: keep touch feedback on the control that was
   actually pressed and preserve a visible keyboard-only focus indicator. */
.mobile-app-nav > a,
.mobile-app-nav > button {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.mobile-app-nav > a:focus:not(:focus-visible),
.mobile-app-nav > button:focus:not(:focus-visible) {
  outline: none;
}

.mobile-app-nav > a:focus-visible,
.mobile-app-nav > button:focus-visible {
  outline: 2px solid #087545;
  outline-offset: -3px;
}

@media (max-width: 780px) {
  /* The cart occupies the space above the persistent bottom navigation. Its
     primary action must remain wholly inside that usable viewport. */
  .request-drawer.is-mobile-cart-open .request-review-actions {
    position: sticky;
    z-index: 5;
    bottom: 0;
    margin-top: 13px;
    padding: 10px 0 2px;
    background: #fff;
  }

  /* A filter list can contain all catalogue groups. Keep it within one screen
     and leave the result action reachable without a long page scroll. */
  .catalog-mobile-filter-sheet:not([hidden]) {
    position: fixed;
    z-index: 94;
    top: var(--catalog-filter-top, 250px);
    right: 18px;
    bottom: calc(132px + env(safe-area-inset-bottom));
    left: 18px;
    max-height: none;
    margin: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scroll-padding-bottom: 62px;
  }

  .catalog-inline-filter-apply {
    position: fixed;
    z-index: 94;
    right: 30px;
    bottom: calc(76px + env(safe-area-inset-bottom));
    left: 30px;
    width: auto;
    min-height: 46px;
    border: 0;
    border-radius: 11px;
    background: #087545;
    color: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    box-shadow: 0 -8px 18px rgba(255,255,255,.92);
    cursor: pointer;
  }

  /* Decorative profiles are long and low. Give their exact source images a
     wider media area instead of shrinking them into the former 76 px box. */
  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product[data-product-category="decor"] .product-card {
    grid-template-columns: 112px minmax(0, 1fr) !important;
  }

  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product[data-product-category="decor"] .product-card__image {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 112px !important;
    height: 140px !important;
    min-height: 140px !important;
    padding: 0 !important;
    overflow: hidden;
    background: transparent !important;
  }

  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product[data-product-category="decor"] .product-card__image picture {
    place-items: start !important;
  }

  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product[data-product-category="decor"] .product-card__image img {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-position: left top !important;
    align-self: start !important;
    justify-self: start !important;
  }

  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product:not([data-product-category="decor"]) .product-card__image img {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
  }

  /* Keep every product photo inside its own media cell. A late legacy rule
     made non-decor list media static, so absolutely positioned photos used
     the whole card as their containing block and covered the text. */
  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product:not([data-product-category="decor"]) .product-card__image {
    position: relative !important;
  }

  /* In the two-column view the enlarged photos previously remained 150 px
     tall inside a 132 px grid row. Reserve a square media row and hard-bound
     the image so it cannot reach the code or title below. */
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card {
    grid-template-rows: 156px auto auto auto auto auto 1fr !important;
  }

  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__image,
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card--large-media .product-card__image {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    height: 156px !important;
    min-height: 156px !important;
    padding: 3px !important;
    overflow: hidden !important;
  }

  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__image picture {
    width: 100% !important;
    height: 100% !important;
    display: grid !important;
    place-items: center !important;
  }

  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__image img,
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card__image.is-card-cover img,
  body.catalog-menu-root.catalog-view-grid .catalog-feed-product .product-card--large-media .product-card__image img {
    position: absolute !important;
    top: 3px !important;
    right: 3px !important;
    bottom: 3px !important;
    left: 3px !important;
    width: calc(100% - 6px) !important;
    height: calc(100% - 6px) !important;
    object-fit: contain !important;
    object-position: center !important;
    clip-path: none !important;
    filter: none !important;
    transform: none !important;
  }
}

/* The desktop grid becomes unwieldy on tablets: the 26 group links consumed
   almost a full screen at 820 px and four product columns were too narrow at
   1024 px. Use the same compact horizontal catalogue strip until desktop. */
@media (min-width: 781px) and (max-width: 920px) {
  .catalog-flat-menu {
    padding: 14px;
  }

  .catalog-flat-track {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 5px;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
  }

  .catalog-flat-link {
    flex: 0 0 220px;
    scroll-snap-align: start;
  }

}

@media (min-width: 781px) and (max-width: 1120px) {
  .catalog-feed-products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .catalog-product-level-header {
    position: static;
  }
}

@media (max-width: 380px) {
  .mobile-store-utility {
    grid-template-columns: auto minmax(58px, 1fr) 44px 44px;
    gap: 4px;
  }

  .mobile-store-utility .mobile-terms-link {
    padding-inline: 0;
  }

  .mobile-store-utility .mobile-terms-link > span:not(.dashicons) {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product[data-product-category="decor"] .product-card {
    grid-template-columns: 104px minmax(0, 1fr) !important;
  }

  body.catalog-menu-root:not(.catalog-view-grid) .catalog-feed-product[data-product-category="decor"] .product-card__image {
    width: 104px !important;
    height: 132px !important;
    min-height: 132px !important;
  }
}

/* a23 23.10.2026: the «Фильтры» sheet has its own heading and «×» (inc/catalog-browser.php, Esc closes it too). */
.catalog-filter-panel__head { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: -4px 0 2px; }
.catalog-filter-panel__title { margin: 0; color: #14231c; font: 800 17px/1.2 system-ui, sans-serif; }
.catalog-filter-panel__close { flex: 0 0 auto; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: #eef1ef; color: #17251d; font: 400 26px/1 Arial, sans-serif; cursor: pointer; }
.catalog-filter-panel__close:hover, .catalog-filter-panel__close:focus-visible { background: #dfe7e1; }
.catalog-filter-panel__close:focus-visible { outline: 2px solid #246940; outline-offset: 2px; }
