/* Каталог sotik.org. Светлая полка, без чужого синего. s.css не меняется. */

body.k-page h1 {
  margin: 12px 0 10px;
  font-size: 28px;
  line-height: 1.15;
  letter-spacing: -0.03em;
}

/* chiptotal-20261009: число товаров в одной строке с заголовком, чип без обводки */
.k-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 12px 0 10px;
}

body.k-page .k-title h1 {
  margin: 0;
  min-width: 0;
}

.k-total {
  margin: 0;
  flex: 0 0 auto;
  color: #8d9096;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.2;
  white-space: nowrap;
}

.k-crumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
  color: var(--muted, #666);
  font-size: 14px;
  line-height: 1.4;
}

.k-crumbs li {
  display: inline-flex;
  align-items: center;
}

.k-crumbs li:not(:last-child)::after {
  content: "/";
  margin: 0 8px;
  color: #b0b0b6;
}

.k-crumbs a {
  color: inherit;
  text-decoration: none;
}

.k-crumbs a:hover {
  text-decoration: underline;
}

.k-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  overflow: visible;
  margin: 0 0 18px;
}

.k-chips a {
  flex: 0 1 auto;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 14px;
  border: 0;
  box-shadow: none;
  border-radius: 999px;
  background: #fff;
  color: var(--ink, #141418);
  font-size: 14px;
  line-height: 1.25;
  white-space: normal;
  text-decoration: none;
}

.k-shelf {
  margin-bottom: 28px;
  align-items: stretch;
}

body.k-page .k-shelf > .card > .price {
  margin-top: auto;
}

.k-ph {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  border-radius: 12px;
  background: #fff;
}

body.k-page .card img {
  aspect-ratio: 1;
  object-fit: contain;
  height: auto;
}

.k-empty {
  margin: 0 0 24px;
  color: var(--muted, #666);
}

.k-sku-section {
  margin-top: 8px;
}

.k-near {
  margin-bottom: 12px;
}

body.k-page .card img,
body.k-page .k-open img {
  pointer-events: none;
}

body.k-page .card:hover img,
body.k-page .card:active img {
  transform: none;
}

body.k-page .cat-grid a {
  text-decoration: none;
}

@media (max-width: 700px) {
  body.k-page h1 {
    font-size: 22px;
  }
  .k-title { gap: 10px; }
  .k-total { font-size: 13px; }
}

@media (min-width: 900px) {
  body.k-page .k-shelf {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 1200px) {
  body.k-page .k-shelf {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

.sku-rail {
  margin: 0 0 28px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  touch-action: pan-x pan-y;
}

.sku-rail::-webkit-scrollbar { display: none; }

.sku-rail.is-dragging {
  scroll-snap-type: none;
  cursor: grabbing;
}

/* nearsize-20261011: «Похожие товары» того же размера, что полка «Новинки».
   Телефон: две карточки в окне. С 800px ширина 220px, с 1100px — 232px.
   Короткий ряд карточку не растягивает. */
.sku-track {
  display: flex;
  align-items: stretch;
  gap: 12px;
}

.sku-track > .sku-card,
.sku-track > .sku-card:only-child,
.sku-rail.is-still .sku-track > .sku-card {
  flex: 0 0 calc(50% - 6px);
  min-width: 168px;
  scroll-snap-align: start;
}

@media (min-width: 800px) {
  .sku-track > .sku-card,
  .sku-track > .sku-card:only-child,
  .sku-rail.is-still .sku-track > .sku-card {
    flex-basis: 220px;
    min-width: 220px;
  }
}

@media (min-width: 1100px) {
  .sku-track > .sku-card,
  .sku-track > .sku-card:only-child,
  .sku-rail.is-still .sku-track > .sku-card {
    flex-basis: 232px;
    min-width: 232px;
  }
}

.k-config-row {
  display: grid;
  gap: 16px;
  align-items: start;
}

.k-config {
  padding: 4px 2px 8px;
}

.k-config-block + .k-config-block {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(20, 20, 24, 0.08);
}

.k-config h2 {
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 750;
  letter-spacing: -0.02em;
}

.k-config-price {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.k-config-price input {
  width: 100%;
  min-height: 36px;
  margin: 0;
  padding: 0 10px;
  border: 1px solid rgba(20, 20, 24, 0.12);
  border-radius: 10px;
  background: #fff;
  color: var(--ink, #141418);
  font: inherit;
  font-size: 14px;
}

.k-config-range {
  position: relative;
  height: 18px;
  margin: 12px 0 0;
  pointer-events: none;
}

.k-config-range::before {
  content: "";
  position: absolute;
  left: 8px;
  right: 8px;
  top: 7px;
  height: 4px;
  border-radius: 999px;
  background: #e4e4e7;
}

.k-config-range span {
  position: absolute;
  top: 1px;
  width: 16px;
  height: 16px;
  border: 2px solid #141418;
  border-radius: 50%;
  background: #fff;
}

.k-config-range span:first-child { left: 0; }
.k-config-range span:last-child { right: 0; }

.k-config-empty {
  margin: 0;
  color: var(--muted, #666);
  font-size: 13px;
}

.k-config-open,
.k-config-bar,
.k-config-done { display: none; }

.k-config-block summary {
  display: block;
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 750;
  letter-spacing: -0.02em;
  list-style: none;
}

.k-config-block summary::-webkit-details-marker { display: none; }

@media (max-width: 899px) {
  .k-config-open {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    margin: 0 0 16px;
    padding: 0 16px 0 12px;
    border: 1px solid rgba(20, 20, 24, 0.08);
    border-radius: 999px;
    background: #fff;
    color: var(--ink, #141418);
    font: inherit;
    font-size: 15px;
    font-weight: 650;
  }

  .k-config-open svg { display: block; flex: 0 0 auto; }

  .k-config { display: none; }

  .k-config.is-open {
    display: flex;
    flex-direction: column;
    position: fixed;
    inset: 0;
    z-index: 80;
    margin: 0;
    padding: calc(14px + env(safe-area-inset-top, 0px)) 16px calc(16px + env(safe-area-inset-bottom, 0px));
    background: #fff;
    overflow: hidden;
  }

  .k-config.is-open .k-config-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 8px;
    margin: 0 0 6px;
  }

  .k-config-title {
    margin: 0;
    font-size: 22px;
    font-weight: 750;
    letter-spacing: -0.03em;
  }

  .k-config-clear,
  .k-config-close,
  .k-config-done {
    font: inherit;
    cursor: pointer;
  }

  .k-config-clear {
    border: 0;
    background: transparent;
    color: #8d8d93;
    font-size: 16px;
    padding: 8px;
  }

  .k-config-close {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: #f3f3f5;
    color: #141418;
    font-size: 22px;
    line-height: 1;
  }

  .k-config-body {
    flex: 1 1 auto;
    overflow: auto;
    min-height: 0;
  }

  .k-config.is-open .k-config-block + .k-config-block {
    margin-top: 0;
    padding-top: 0;
  }

  .k-config.is-open .k-config-block {
    border-bottom: 1px solid rgba(20, 20, 24, 0.08);
  }

  .k-config.is-open .k-config-block summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 52px;
    margin: 0;
    font-size: 17px;
    cursor: pointer;
  }

  .k-config.is-open .k-config-block summary::after {
    content: "";
    width: 8px;
    height: 8px;
    margin-right: 4px;
    border-right: 2px solid #141418;
    border-bottom: 2px solid #141418;
    transform: rotate(45deg);
  }

  .k-config.is-open .k-config-block[open] summary::after {
    transform: rotate(-135deg);
    margin-top: 4px;
  }

  .k-config.is-open .k-config-price,
  .k-config.is-open .k-config-range,
  .k-config.is-open .k-config-empty {
    margin-bottom: 14px;
  }

  .k-config.is-open .k-config-price input {
    min-height: 44px;
    border: 0;
    border-radius: 999px;
    background: #f3f3f5;
  }

  .k-config.is-open .k-config-done {
    display: block;
    width: 100%;
    min-height: 52px;
    margin-top: 12px;
    border: 0;
    border-radius: 16px;
    background: #141418;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
  }
}

body.k-config-on { overflow: hidden; }

@media (min-width: 900px) {
  .k-config-row {
    grid-template-columns: 232px minmax(0, 1fr);
    gap: 28px;
  }

  .k-config-block summary { pointer-events: none; }

  body.k-page .k-config-row .k-shelf {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1200px) {
  /* config-tile-20261008: плитка фильтра в первом ряду, дальше пять столбцов. */
  .k-config-row {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    align-items: stretch;
    margin-bottom: 28px;
  }

  /* shelfcol-20261015: при ленте полку не растворять, иначе карточка встаёт под фильтр. */
  .k-config-row:not(:has(.k-cat-promo)) .k-config-main,
  .k-config-row:not(:has(.k-cat-promo)) .k-shelf {
    display: contents;
  }

  .k-config {
    grid-column: 1;
    grid-row: 1;
    align-self: stretch;
    height: auto;
    margin: 0;
    padding: 14px 12px 16px;
    background: var(--surface, #fff);
    border-radius: 20px;
    box-sizing: border-box;
  }
}

/* open-card-20261008: раскрытая карточка /tovar/ по раскладке референса. Свёрнутая sku-card не здесь. Пустые значения не заполняются. */
.k-open {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 8px 0 28px;
}

.k-lead {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  order: 1;
}

.k-open-grid { display: contents; }

.k-plate { display: contents; }

.k-gallery { order: 2; min-width: 0; width: 100%; }
.k-facts { order: 4; min-width: 0; width: 100%; }
.k-open .k-buy { order: 3; }

body.k-page .k-open h1 {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 26px;
  line-height: 1.15;
  letter-spacing: -0.03em;
}

.k-side-acts {
  display: flex;
  flex: none;
  gap: 8px;
}

.k-side-acts .sku-cmp { order: 1; }
.k-side-acts .sku-fav { order: 2; }

.k-art {
  margin: 0 0 12px;
  color: var(--muted, #8d8d93);
  font-size: 14px;
  text-align: right;
}

.k-art-top { display: none; }

.k-art span { min-height: 1.2em; }

.k-gallery {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.k-stage { grid-column: 1; grid-row: 1; }
.k-thumbs { grid-column: 1; grid-row: 2; }

.k-gallery > input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.k-stage {
  background: #fff;
  border-radius: 20px;
  aspect-ratio: 1;
  min-width: 0;
}

.k-stage > .k-shot {
  display: none;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 20px;
}

.k-gallery:not(:has(> input)) .k-stage > .k-shot { display: block; }

.k-gallery > input:nth-of-type(1):checked ~ .k-stage > .k-shot:nth-child(1),
.k-gallery > input:nth-of-type(2):checked ~ .k-stage > .k-shot:nth-child(2),
.k-gallery > input:nth-of-type(3):checked ~ .k-stage > .k-shot:nth-child(3),
.k-gallery > input:nth-of-type(4):checked ~ .k-stage > .k-shot:nth-child(4),
.k-gallery > input:nth-of-type(5):checked ~ .k-stage > .k-shot:nth-child(5),
.k-gallery > input:nth-of-type(6):checked ~ .k-stage > .k-shot:nth-child(6),
.k-gallery > input:nth-of-type(7):checked ~ .k-stage > .k-shot:nth-child(7),
.k-gallery > input:nth-of-type(8):checked ~ .k-stage > .k-shot:nth-child(8) {
  display: block;
}

.k-thumbs {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

.k-thumbs label {
  display: block;
  width: 64px;
  border: 1px solid rgba(20, 20, 24, 0.08);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
}

.k-thumbs img {
  width: 64px;
  height: 64px;
  object-fit: contain;
  border-radius: 11px;
}

.k-gallery > input:nth-of-type(1):checked ~ .k-thumbs > label:nth-child(1),
.k-gallery > input:nth-of-type(2):checked ~ .k-thumbs > label:nth-child(2),
.k-gallery > input:nth-of-type(3):checked ~ .k-thumbs > label:nth-child(3),
.k-gallery > input:nth-of-type(4):checked ~ .k-thumbs > label:nth-child(4),
.k-gallery > input:nth-of-type(5):checked ~ .k-thumbs > label:nth-child(5),
.k-gallery > input:nth-of-type(6):checked ~ .k-thumbs > label:nth-child(6),
.k-gallery > input:nth-of-type(7):checked ~ .k-thumbs > label:nth-child(7),
.k-gallery > input:nth-of-type(8):checked ~ .k-thumbs > label:nth-child(8),
.k-gallery > input:nth-of-type(1):focus-visible ~ .k-thumbs > label:nth-child(1),
.k-gallery > input:nth-of-type(2):focus-visible ~ .k-thumbs > label:nth-child(2),
.k-gallery > input:nth-of-type(3):focus-visible ~ .k-thumbs > label:nth-child(3),
.k-gallery > input:nth-of-type(4):focus-visible ~ .k-thumbs > label:nth-child(4),
.k-gallery > input:nth-of-type(5):focus-visible ~ .k-thumbs > label:nth-child(5),
.k-gallery > input:nth-of-type(6):focus-visible ~ .k-thumbs > label:nth-child(6),
.k-gallery > input:nth-of-type(7):focus-visible ~ .k-thumbs > label:nth-child(7),
.k-gallery > input:nth-of-type(8):focus-visible ~ .k-thumbs > label:nth-child(8) {
  border-color: #29292c;
  box-shadow: none; /* oneframe-20261009 */
}

.k-axes { display: grid; gap: 16px; }

.k-axis h2,
.k-ship h2 {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 650;
  color: var(--ink, #29292c);
}

.k-picks {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-height: 40px;
}

.k-picks a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid rgba(20, 20, 24, 0.12);
  border-radius: 12px;
  background: #fff;
  color: var(--ink, #29292c);
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
}

.k-picks a.is-shot {
  width: 56px;
  height: 56px;
  min-height: 56px;
  padding: 0;
  border-radius: 50%;
  overflow: hidden;
}

/* shotfit-20261012: масштаб 0.84 задан размером, не transform.
   На телефоне кружок лежит в плитке .card, и касание не увеличивает фото. */
.k-picks a.is-shot img {
  width: 84%;
  height: 84%;
  object-fit: contain;
  object-position: center center;
  transform: none;
  transition: none;
}

.k-picks a.is-on:not(.is-shot) {
  background: var(--yellow, #ffd302);
  border-color: var(--yellow, #ffd302);
}

.k-picks a.is-shot.is-on {
  background: #fff;
  border-color: #29292c;
  box-shadow: none; /* oneframe-20261009 */
}

.k-specs { margin-top: 8px; }

.k-specs dl { margin: 0; }

.k-specs div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(40px, auto);
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid rgba(20, 20, 24, 0.08);
}

.k-specs dt {
  color: var(--muted, #8d8d93);
  font-weight: 500;
}

.k-specs dd {
  margin: 0;
  text-align: right;
  min-height: 1.2em;
}

.k-specs summary {
  margin-top: 12px;
  cursor: pointer;
  font-weight: 700;
  color: var(--ink, #29292c);
}

.k-open .k-buy {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 0;
  margin: 0;
  padding: 16px;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 8px 24px rgba(20, 20, 24, 0.05);
  transform: none;
}

.k-open .k-buy:hover,
.k-open .k-buy:active {
  transform: none;
  box-shadow: 0 8px 24px rgba(20, 20, 24, 0.05);
}

.k-buy-top {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.k-open .sku-cmp {
  display: inline-flex;
  opacity: 1;
  pointer-events: auto;
}

.k-cheap {
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--ink, #29292c);
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.k-open .k-buy .price {
  margin: 14px 0 0;
  font-size: 32px;
  font-weight: 750;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  min-height: 1.15em;
}

.k-open .k-buy .add-cart {
  width: 100%;
  min-height: 48px;
  margin-top: 14px;
  border-radius: 24px;
  font-size: 16px;
}

.k-one {
  width: 100%;
  min-height: 48px;
  margin-top: 8px;
  border: 1px solid rgba(20, 20, 24, 0.16);
  border-radius: 24px;
  background: #fff;
  color: var(--ink, #29292c);
  font: inherit;
  font-size: 16px;
  font-weight: 750;
  cursor: pointer;
}

.k-credit {
  min-height: 1.2em;
  margin: 10px 0 0;
  color: var(--muted, #8d8d93);
  font-size: 14px;
}

.k-ship { margin-top: 16px; }

.k-ship-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(72px, auto);
  gap: 2px 12px;
  padding: 12px 0;
  border-top: 1px solid rgba(20, 20, 24, 0.08);
}

.k-ship-row h3 {
  margin: 0;
  grid-row: 1 / span 3;
  align-self: start;
  font-size: 15px;
  font-weight: 700;
}

.k-ship-row p {
  margin: 0;
  min-height: 1.1em;
  text-align: right;
}

@media (max-width: 899px) {
  body.k-page > main {
    margin-top: calc(48px + env(safe-area-inset-top, 0px));
    padding-top: 12px;
  }
  body.k-page .k-crumbs ol {
    margin: 0 0 16px;
    row-gap: 6px;
    line-height: 1.35;
  }
  body.k-page .k-open { margin-top: 0; }
  .k-thumbs { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .k-thumbs::-webkit-scrollbar { display: none; }
  .k-gallery,
  .k-facts {
    background: #fff;
    border-radius: 20px;
    padding: 16px;
    box-shadow: 0 8px 24px rgba(20, 20, 24, 0.05);
  }
  .k-gallery { position: relative; }
  .k-side-acts {
    position: absolute;
    top: 24px;
    right: 24px;
    z-index: 3;
  }
  .k-open .k-buy { position: static; }
  .k-open .k-buy .price { font-size: 28px; }
  body.k-page .k-open h1 { font-size: 22px; }
}

@media (min-width: 900px) {
  .k-open {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    grid-template-areas:
      "lead lead"
      "plate buy";
    column-gap: 20px;
    row-gap: 16px;
    align-items: stretch;
  }
  .k-lead { display: contents; }
  .k-open h1 { grid-area: lead; }
  .k-gallery { position: static; }
  .k-side-acts {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 3;
  }
  .k-open-grid { display: contents; }
  .k-plate {
    position: relative;
    display: grid;
    grid-area: plate;
    grid-template-columns: minmax(200px, 380px) minmax(200px, 1fr);
    gap: 22px;
    align-items: start;
    min-width: 0;
    background: #fff;
    border-radius: 24px;
    padding: 18px;
    box-shadow: 0 8px 24px rgba(20, 20, 24, 0.05);
  }
  .k-gallery, .k-facts, .k-open .k-buy { order: 0; width: auto; }
  .k-gallery { width: 100%; max-width: 380px; }
  .k-facts { margin-top: 0; min-width: 0; padding-right: 96px; }
  .k-plate,
  .k-open .k-buy {
    align-self: stretch;
    height: auto;
  }
  .k-open .k-buy {
    grid-area: buy;
    position: relative;
    top: auto;
  }
  .k-crumb-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
  }
  .k-crumb-row .k-crumbs { flex: 1; min-width: 0; }
  .k-art-top {
    display: block;
    flex: none;
    margin: 14px 0 0;
    white-space: nowrap;
  }
  .k-facts > .k-art { display: none; }
  body.k-page .k-open h1 { font-size: 32px; }
}

/* photo-20261008: на телефоне свайп листает кадр, нажатие открывает крупный просмотр */
@media (max-width: 899px) {
  .k-stage { touch-action: pan-y; cursor: pointer; }
  .k-stage > .k-shot { transition: none; }
}

.k-photo {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 90;
  background: #fff;
}

.k-photo.is-on { display: block; }

.k-photo-close {
  position: absolute;
  top: calc(10px + env(safe-area-inset-top, 0px));
  right: 12px;
  z-index: 3;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: #f2f2f4;
  color: #141418;
  font: inherit;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}

.k-photo-prev,
.k-photo-next {
  position: absolute;
  top: 46%;
  z-index: 3;
  width: 36px;
  height: 64px;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.k-photo-prev { left: 2px; }
.k-photo-next { right: 2px; }

.k-photo-prev::before,
.k-photo-next::before {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  margin: 0 auto;
  border-top: 2px solid #c5c5c8;
  border-left: 2px solid #c5c5c8;
}

.k-photo-prev::before { transform: rotate(-45deg); }
.k-photo-next::before { transform: rotate(135deg); }

.k-photo-view {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(64px + env(safe-area-inset-top, 0px));
  bottom: calc(96px + env(safe-area-inset-bottom, 0px));
  overflow: hidden;
  touch-action: pan-y;
}

.k-photo.is-single .k-photo-view {
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
}

.k-photo-track {
  display: flex;
  height: 100%;
  will-change: transform;
}

.k-photo-track img {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.k-photo-thumbs {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(14px + env(safe-area-inset-bottom, 0px));
  display: flex;
  justify-content: center;
  gap: 8px;
  overflow-x: auto;
  padding: 0 16px 2px;
  scrollbar-width: none;
}

.k-photo-thumbs::-webkit-scrollbar { display: none; }

.k-photo-thumb {
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  padding: 4px;
  border: 1px solid rgba(20, 20, 24, 0.08);
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
}

.k-photo-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.k-photo-thumb.is-on {
  border-color: #29292c;
  box-shadow: none; /* oneframe-20261009 */
}

.k-photo.is-single .k-photo-prev,
.k-photo.is-single .k-photo-next,
.k-photo.is-single .k-photo-thumbs { display: none; }

body.k-photo-on { overflow: hidden; }


/* refcard-20261009: одна белая карточка, пустые подписи референса, без чужих чисел. */
.k-gallery {
  grid-template-columns: 36px minmax(0, 1fr) 36px;
}

.k-stage { grid-column: 1 / -1; }

.k-frame-prev,
.k-frame-next {
  align-self: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: #29292c;
  box-shadow: 0 4px 12px rgba(20, 20, 24, 0.08);
  cursor: pointer;
}

.k-frame-prev svg,
.k-frame-next svg {
  display: block;
  width: 18px;
  height: 18px;
  margin: 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.k-frame-prev:hover,
.k-frame-next:hover { background: #ffd302; }

.k-thumbs {
  grid-column: 2;
  grid-row: 2;
  justify-content: center;
}

.k-idline {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 16px;
}

.k-brand,
.k-idline .k-art,
.k-avail,
.k-bonus-line,
.k-credit {
  margin: 0;
  font-size: 14px;
  font-weight: 650;
  color: var(--ink, #29292c);
}

.k-idline .k-art {
  flex: none;
  color: var(--muted, #8d8d93);
  font-weight: 500;
  text-align: right;
}

.k-buy-top { justify-content: space-between; gap: 12px; }

.k-bonus-line { margin-top: 8px; color: var(--muted, #8d8d93); }

.k-ship-row p:empty { display: none; }

.k-ship-row h3 { grid-row: auto; }

@media (max-width: 899px) {
  .k-frame-prev,
  .k-frame-next { display: none; }

  .k-thumbs {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .k-open .sku-cmp {
    display: inline-flex;
    opacity: 1;
    pointer-events: auto;
  }

  /* buyflow-20261009: цена и «В корзину» в плитке оплаты, не закреп над нижней полосой */
  .k-dockbuy { display: contents; }
}

@media (min-width: 900px) {
  .k-open {
    position: relative;
    background: #fff;
    border-radius: 24px;
    padding: 8px 18px 22px;
    column-gap: 28px;
    row-gap: 8px;
    box-shadow: 0 8px 24px rgba(20, 20, 24, 0.05);
    grid-template-areas:
      "crumbs crumbs"
      "lead lead"
      "plate buy";
  }

  .k-crumb-row {
    grid-area: crumbs;
    margin: 0;
    padding-right: 96px;
  }

  .k-plate,
  .k-gallery { position: static; }

  .k-plate {
    background: transparent;
    box-shadow: none;
    padding: 0;
  }

  .k-facts { padding-right: 0; }

  .k-side-acts {
    position: absolute;
    top: 12px;
    right: 16px;
  }

  .k-open .k-buy {
    background: transparent;
    box-shadow: none;
    padding: 4px 0 0 22px;
    border-left: 1px solid rgba(20, 20, 24, 0.08);
  }

  .k-open .k-buy:hover,
  .k-open .k-buy:active {
    box-shadow: none;
  }

  .k-dockbuy { display: contents; }

  .k-buy-top { order: 1; }
  .k-open .k-buy .price { order: 2; }
  .k-bonus-line { order: 3; }
  .k-open .k-buy .add-cart { order: 4; }
  .k-open .k-buy .k-one { order: 5; }
  .k-credit { order: 6; }
  .k-ship { order: 7; }
}


/* crumbgap-20261009: на телефоне между крошками и именем товара около 8px, как на компьютере.
   Поле списка 16px и зазор колонки 16px вместе давали 32px. Зазор до фото не меняется. */
@media (max-width: 899px) {
  body.k-page .k-open .k-crumbs ol {
    margin: 0;
  }
  body.k-page .k-open > .k-crumb-row {
    margin-bottom: -8px;
  }
}

/* twowin-20261009: на компьютере снова два белых окна. Крошки и имя над ними.
   «Арт.:» справа в полосе крошек. Сердечко и сравнение в правом верхнем углу левого окна.
   Строки «Бонусы» нет. Телефонный зазор крошек не меняется. */
.k-bonus-line { display: none; }

@media (min-width: 900px) {
  .k-open {
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    padding: 0;
    column-gap: 20px;
    row-gap: 8px;
    grid-template-areas:
      "crumbs crumbs"
      "lead lead"
      "plate buy";
  }

  .k-crumb-row {
    grid-area: crumbs;
    padding-right: 0;
    align-items: flex-start;
  }

  .k-art-top {
    display: block;
    margin: 14px 0 0;
  }

  .k-plate {
    position: relative;
    background: #fff;
    box-shadow: 0 8px 24px rgba(20, 20, 24, 0.05);
    border-radius: 24px;
    padding: 18px;
    margin-top: 10px;
  }

  .k-gallery { position: static; }

  .k-facts { padding-right: 96px; }

  .k-idline .k-art { display: none; }

  .k-side-acts {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 3;
  }

  .k-open .k-buy {
    background: #fff;
    box-shadow: 0 8px 24px rgba(20, 20, 24, 0.05);
    border-radius: 24px;
    border-left: 0;
    padding: 16px;
    margin-top: 10px;
  }

  .k-open .k-buy:hover,
  .k-open .k-buy:active {
    box-shadow: 0 8px 24px rgba(20, 20, 24, 0.05);
  }
}

/* k-pages-20261009: номера порций полки. Карточку товара не описывает. */
.k-pages {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 18px 0 4px;
}
.k-pages a,
.k-pages span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 12px;
  border-radius: 12px;
  background: #f6f6f6;
  color: inherit;
  text-decoration: none;
}
.k-pages a:hover {
  background: #ececec;
}
.k-pages [aria-current="page"] {
  background: #29292c;
  color: #fff;
}

/* sale-state-20261010 */
/* statusink-20261010: те же тихие цвета, что на свёрнутой карточке. */
.k-avail.sku-state { font-weight: 500; }
.k-avail.sku-state-stock { color: #42774e; }
.sku-state-instock { color: #297772; }
.k-avail.sku-state-order { color: #4e6f90; }
.k-avail.sku-state-preorder { color: #7e628b; }
.k-avail.sku-state-absent { color: #886439; }
.k-avail.sku-state-gone { color: #676c73; }

/* deskphoto-20261010: на компьютере нажатие на фото открывает тот же белый лист.
   Крестик как на телефоне, без чужой панели. Курсор тянет кадр. */
.k-photo-close:focus,
.k-photo-close:focus-visible {
  outline: none;
  box-shadow: none;
}
@media (min-width: 900px) {
  .k-open .k-stage {
    cursor: pointer;
  }
  .k-photo-view {
    cursor: grab;
    user-select: none;
  }
  .k-photo-view.is-drag {
    cursor: grabbing;
  }
}

/* photoring-20261010: крестик по центру кружка. На компьютере у него голубая рамка,
   как у поля поиска. По краям миниатюр стрелки листают кадр. На телефоне этих стрелок нет. */
.k-photo-close {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  appearance: none;
}
.k-photo-close svg {
  display: block;
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}
.k-photo-film {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(14px + env(safe-area-inset-bottom, 0px));
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 0 16px;
}
.k-photo-thumbs {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  width: auto;
  max-width: min(100%, 720px);
  flex: 0 1 auto;
  padding: 0;
}
.k-photo.is-single .k-photo-film { display: none; }
.k-photo-film-prev,
.k-photo-film-next { display: none; }
@media (min-width: 900px) {
  .k-photo-close,
  .k-photo-close:focus,
  .k-photo-close:focus-visible {
    outline: none;
    box-shadow: 0 0 0 1.5px #3d9bff, 0 0 0 4px rgba(61, 155, 255, 0.32);
  }
  .k-photo-film-prev,
  .k-photo-film-next {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: #29292c;
    box-shadow: 0 4px 12px rgba(20, 20, 24, 0.08);
    cursor: pointer;
  }
  .k-photo-film-prev svg,
  .k-photo-film-next svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .k-photo-film-prev:hover,
  .k-photo-film-next:hover { background: #ffd302; }
}

/* k-pages-row-20261010: номера страниц.
   shelfcol-20261015: при ленте полка не растворяется, пагинация идёт под
   товарами в правой колонке. grid-column здесь никого не двигает и не повод
   возвращать display:contents. */
@media (min-width: 1200px) {
  .k-config-row .k-pages {
    grid-column: 1 / -1;
    justify-self: stretch;
    align-self: start;
    width: 100%;
    box-sizing: border-box;
    flex-wrap: nowrap;
  }
}


/* picks-20261010 */
.k-config-picks {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.k-config-picks a {
  color: inherit;
  text-decoration: none;
  font-weight: 650;
}
.k-config-picks a[aria-current="page"] {
  text-decoration: underline;
  text-underline-offset: 3px;
}


/* pricedrop-20261010: на раскрытой карточке тот же ряд цены. */
.k-open .k-buy .price-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 10px;
  margin: 14px 0 0;
  order: 2;
}

.k-open .k-buy .price-row > .price {
  margin: 0;
}

@media (max-width: 899px) {
  .k-open .k-buy .price-row > .price { font-size: 28px; }
}

/* availdot-20261010: на раскрытой карточке тот же кружок статуса, что на свёрнутой. */
.k-avail.sku-state {
  position: relative;
  padding-left: 12px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -0.01em;
}

.k-avail.sku-state::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  margin-top: -3px;
  border-radius: 50%;
  background: currentColor;
}

.k-avail.sku-state-instock { color: #297772; }


/* k-price-20261010: поля «от» и «до» и два ползунка. Пустые блоки производителя и модели не здесь. */
.k-config-block[data-price-min] .k-config-price {
  gap: 8px;
}

.k-config-block[data-price-min] .k-config-price input {
  min-width: 0;
  min-height: 42px;
  padding: 0 8px;
  border: 0;
  border-radius: 14px;
  background: #f3f3f5;
  text-align: center;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

.k-config-block[data-price-min] .k-config-price input:focus {
  outline: none;
  background: #fff;
  box-shadow: inset 0 0 0 1.5px #141418;
}

.k-config-block[data-price-min] .k-config-range {
  height: 28px;
  margin: 12px 8px 0;
  pointer-events: none;
}

.k-config-block[data-price-min] .k-config-range::before {
  left: 0;
  right: 0;
  top: 12px;
  height: 3px;
  background: #e4e4e8;
}

.k-config-block[data-price-min] .k-range-fill {
  position: absolute;
  top: 12px;
  height: 3px;
  border-radius: 999px;
  background: #141418;
}

.k-config-block[data-price-min] .k-config-range input[type="range"] {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 28px;
  margin: 0;
  background: none;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none;
}

.k-config-block[data-price-min] .k-config-range input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  pointer-events: auto;
  width: 20px;
  height: 20px;
  border: 2px solid #141418;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(20, 20, 24, 0.18);
  cursor: grab;
}

.k-config-block[data-price-min] .k-config-range input[type="range"]::-moz-range-thumb {
  pointer-events: auto;
  width: 16px;
  height: 16px;
  border: 2px solid #141418;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(20, 20, 24, 0.18);
  cursor: grab;
}

.k-config-block[data-price-min] .k-range-max { z-index: 4; }

.k-price-reset {
  display: inline-flex;
  margin: 8px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #8d8d93;
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  cursor: pointer;
}

.k-price-reset[hidden] { display: none; }

.k-price-none {
  margin: 8px 0 0;
  color: #6d6d73;
  font-size: 14px;
}

article.sku-card.is-price-off { display: none !important; }

@media (max-width: 899px) {
  .k-config.is-open .k-config-block[data-price-min] .k-config-price input {
    min-height: 44px;
    border-radius: 999px;
    background: #f3f3f5;
    box-shadow: none;
  }

  .k-config.is-open .k-config-block[data-price-min] .k-config-price input:focus {
    background: #fff;
    box-shadow: inset 0 0 0 1.5px #141418;
  }
}

@media (min-width: 1200px) {
  .k-price-none { grid-column: 2 / -1; }
}


/* catbanner-20261010: узкая лента над первым рядом. Смена как у баннеров под шапкой. */
.k-cat-promo {
  margin: 0 0 14px;
}

.k-cat-rail {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  cursor: grab;
  user-select: none;
  border-radius: 24px;
  overscroll-behavior-x: contain;
  touch-action: pan-x pan-y;
  background: transparent;
}

.k-cat-rail::-webkit-scrollbar { display: none; }

.k-cat-rail.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
}

.k-cat-track { display: flex; }

.k-cat-slide {
  position: relative;
  flex: 0 0 100%;
  display: flex;
  align-items: center;
  min-height: 112px;
  scroll-snap-align: start;
  overflow: hidden;
  border-radius: 24px;
  text-decoration: none;
  color: #fff;
}

.k-cat-slide:focus-visible {
  outline: 2px solid var(--ink, #29292c);
  outline-offset: 3px;
}

.k-cat-photo {
  position: absolute;
  right: 0;
  top: 0;
  width: 54%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  -webkit-user-drag: none;
}

.k-cat-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.k-cat-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 14px;
  max-width: 64%;
  padding: 16px 8px 18px 22px;
}

.k-cat-copy strong {
  flex: 1 0 100%;
  font-size: 28px;
  font-weight: 760;
  letter-spacing: -0.045em;
  line-height: 1.05;
}

.k-cat-sub {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.25;
}

.k-cat-pill {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 16px;
  border: 1.5px solid currentColor;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 650;
  letter-spacing: -0.02em;
  line-height: 1;
  white-space: nowrap;
}

.k-cat-trade { background: #000; }

.k-cat-trade .k-cat-photo { object-position: 78% 46%; }

.k-cat-trade::before {
  background: linear-gradient(90deg, #000 0%, #000 34%, rgba(0, 0, 0, 0.78) 52%, rgba(0, 0, 0, 0) 76%);
}

.k-cat-trade .k-cat-copy strong {
  background: linear-gradient(180deg, #f3c8f8 0%, #d58fe4 46%, #b44ed6 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.k-cat-trade .k-cat-sub { color: #fff; }

.k-cat-call {
  background: #fff;
  color: #141418;
  box-shadow: inset 0 0 0 1px rgba(20, 20, 24, 0.06);
}

.k-cat-call .k-cat-photo { object-position: 62% 0%; }

.k-cat-call::before {
  background: linear-gradient(90deg, #fff 0%, #fff 36%, rgba(255, 255, 255, 0.9) 54%, rgba(255, 255, 255, 0) 78%);
}

.k-cat-call .k-cat-copy strong {
  color: #fa7122;
  -webkit-text-fill-color: #fa7122;
}

.k-cat-call .k-cat-sub { color: #141418; }

.k-cat-dots {
  display: flex;
  justify-content: center;
  gap: 5px;
  margin: 8px 0 0;
}

.k-cat-dot {
  width: 5px;
  height: 5px;
  min-width: 5px;
  min-height: 5px;
  flex: 0 0 5px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #c8c8cc;
  cursor: pointer;
  line-height: 0;
  font-size: 0;
}

.k-cat-dot.is-on { background: #29292c; }

@media (max-width: 699px) {
  .k-cat-promo { margin-bottom: 12px; }
  .k-cat-slide { min-height: 124px; }
  .k-cat-photo { width: 48%; }
  .k-cat-copy {
    max-width: 72%;
    padding: 14px 8px 16px 14px;
    gap: 4px 10px;
  }
  .k-cat-copy strong { font-size: 20px; }
  .k-cat-sub { font-size: 13px; }
  .k-cat-pill {
    min-height: 30px;
    padding: 0 12px;
    font-size: 13px;
  }
  .k-cat-trade::before {
    background: linear-gradient(90deg, #000 0%, #000 42%, rgba(0, 0, 0, 0.72) 64%, rgba(0, 0, 0, 0) 88%);
  }
  .k-cat-call::before {
    background: linear-gradient(90deg, #fff 0%, #fff 44%, rgba(255, 255, 255, 0.88) 66%, rgba(255, 255, 255, 0) 90%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .k-cat-rail { scroll-behavior: auto; }
}


/* creditunder-20261010: плашка под строкой про наличный расчёт. */
@media (min-width: 900px) {
  .k-open .k-buy .sku-credit { order: 4; }
  .k-open .k-buy .sku-credit + .price,
  .k-open .k-buy .sku-credit + .price-row { order: 2; margin-top: 14px; }
}

/* priceline-20261010: прямая цена на одной линии с круглой корзиной.
   Прежний margin-top: auto опускал её на низ клетки, если зачёркнутой цены нет. */
body.k-page .k-shelf > .card.sku-card > .price {
  margin-top: 0;
  align-self: center;
}

/* specshow-20261019: пустой блок скрыт. Строка видна только с непустым значением. */
.k-specs {
  display: none;
}

.k-specs:has(dd:not(:empty)) {
  display: block;
}

/* pricemid-20261010: на телефоне цена между плашкой рассрочки и кнопкой корзины.
   На компьютере порядок из min-width: 900px не меняется. */
@media (max-width: 899px) {
  .k-open .k-buy .k-buy-top { order: 1; }
  .k-open .k-buy .sku-credit { order: 4; }
  .k-open .k-buy .price,
  .k-open .k-buy .price-row { order: 2; }
  .k-open .k-buy .add-cart,
  .k-open .k-buy .sku-pre,
  .k-open .k-buy .sku-ask,
  .k-open .k-buy .sku-gone { order: 4; }
  .k-open .k-buy .k-one,
  .k-open .k-buy > .k-credit { order: 5; }
  .k-open .k-buy > .k-ship { order: 6; }
}

/* thumbpeek-20261010: на компьютере миниатюры в один ряд.
   Видны четыре целиком и резко. У выглядывающего края только светлая вуаль, без размытия.
   Сдвигает её стрелка, не жест. На телефоне лента как была. */
@media (min-width: 900px) {
  .k-thumbs {
    position: relative;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    overflow: hidden;
    scroll-behavior: smooth;
    scrollbar-width: none;
  }

  .k-thumbs::-webkit-scrollbar { display: none; }

  .k-thumbs:not(:has(> label:nth-child(5))) {
    justify-content: center;
  }

  .k-thumbs label {
    flex: 0 0 58px;
    width: 58px;
  }

  .k-thumbs img {
    width: 58px;
    height: 58px;
  }

  .k-thumbs.is-more::after,
  .k-thumbs.is-back::before {
    content: "";
    position: absolute;
    z-index: 2;
    top: 0;
    bottom: 0;
    width: 0;
    pointer-events: none;
  }

  .k-thumbs.is-more::after {
    right: 0;
    width: var(--peek-r, 0px);
    background: linear-gradient(270deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0) 100%);
  }

  .k-thumbs.is-back::before {
    left: 0;
    width: var(--peek-l, 0px);
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0) 100%);
  }
}

@media (min-width: 900px) and (prefers-reduced-motion: reduce) {
  .k-thumbs { scroll-behavior: auto; }
}

@media (min-width: 900px) and (prefers-reduced-transparency: reduce) {
  .k-thumbs.is-more::after,
  .k-thumbs.is-back::before {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}

/* goneshort-20261010: на компьютере при «Нет в продаже», предзаказе и «Нет в наличии»
   правая плитка по высоте статуса и кнопки, ширина колонки прежняя. Пустое место под ней не заполняем. */
@media (min-width: 900px) {
  .k-open .k-buy:has(.sku-gone),
  .k-open .k-buy:has(.sku-pre),
  .k-open .k-buy:has(.sku-ask) {
    align-self: stretch;
    justify-self: stretch;
    width: 100%;
    height: fit-content;
  }
}

/* pricefirst-20261010: в плитке покупки сначала цена, потом -%, потом зачёркнутая.
   order у .price внутри ряда не утаскивает её в конец. */
.k-open .k-buy .price-row > .price,
.k-open .k-buy .price-row > .price-off,
.k-open .k-buy .price-row > .price-was {
  order: 0;
}

/* cashnote-20261010: под ценой открытой карточки серая строка про наличный расчёт. -0.02em, чтобы в колонке 328px фраза была одной строкой.
   На свёрнутых карточках её нет. */
.k-open .k-buy .k-cashnote {
  order: 3;
  margin: 8px 0 0;
  color: #5a5e66;
  font-size: 13px;
  font-weight: 550;
  line-height: 1.35;
  letter-spacing: -0.02em;
}

/* creditbig-20261010: на компьютере плашка рассрочки открытой карточки
   по ширине кнопок корзины, чуть выше и крупнее. Телефон не меняется. */
@media (min-width: 900px) {
  .k-open .k-buy .sku-credit {
    display: flex;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    align-self: stretch;
    justify-content: center;
    margin: 12px 0 0;
    padding: 11px 16px;
    min-height: 44px;
    border-radius: 22px;
    font-size: 16px;
  }

  .k-open .k-buy .sku-credit svg {
    width: 22px;
    height: 22px;
  }
}

/* shelf-pack-20261011 снят: фильтр не вынимать из потока.
   Живая раскладка — shelfcol-20261015 в конце файла.
   Не возвращать position:absolute и display:contents ради пяти карточек в ряд. */
@media (min-width: 1200px) {
  .k-config-row .k-cat-rail,
  .k-config-row .k-cat-track {
    flex: none;
  }

  .k-config-row .k-cat-slide {
    height: auto;
    min-height: 112px;
  }
}

/* catrow-20261010: на телефоне баннер по-прежнему над кнопкой «Фильтры». */
@media (max-width: 899px) {
  body.k-page:has(.k-cat-promo) .wrap {
    display: flex;
    flex-direction: column;
  }

  body.k-page:has(.k-cat-promo) .k-config-row,
  body.k-page:has(.k-cat-promo) .k-config-main {
    display: contents;
  }

  body.k-page:has(.k-cat-promo) .k-crumbs { order: 1; }
  body.k-page:has(.k-cat-promo) .k-title,
  body.k-page:has(.k-cat-promo) .wrap > h1 { order: 2; }
  body.k-page:has(.k-cat-promo) .k-chips { order: 3; }
  body.k-page:has(.k-cat-promo) .k-cat-promo { order: 4; }
  body.k-page:has(.k-cat-promo) .k-config-open { order: 5; }
  body.k-page:has(.k-cat-promo) .k-shelf,
  body.k-page:has(.k-cat-promo) .k-empty { order: 6; }
  body.k-page:has(.k-cat-promo) .k-pages { order: 7; }
  body.k-page:has(.k-cat-promo) .wrap > .foot { order: 8; }
}

/* histtile-20261010: история стоимости — своя белая плитка под «Похожие товары».
   Плашка рассрочки не меняется. */
.k-open .k-buy > .k-ship {
  order: 7;
}

.k-hist {
  margin-top: 28px;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 10px 30px rgba(20, 20, 24, 0.06);
  overflow: hidden;
}

.k-hist-body {
  padding: 22px 24px 8px;
}

.k-hist-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}

.k-hist h2 {
  margin: 0;
  font-size: 22px;
  line-height: 1.15;
  font-weight: 750;
  letter-spacing: -0.04em;
}

.k-hist-note {
  margin: 0;
  color: #909295;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
}

.k-hist-range {
  margin: 14px 0 0;
  color: #29292c;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
}

.k-hist-line {
  display: block;
  width: 100%;
  height: 168px;
  margin-top: 4px;
}

.k-hist-axis {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 0;
  color: #909295;
  font-size: 13px;
  font-weight: 500;
}

.k-hist-one {
  margin: 18px 0 10px;
  color: #29292c;
  font-size: 22px;
  font-weight: 750;
  letter-spacing: -0.03em;
}

.k-hist-empty {
  margin: 18px 0 12px;
  color: #5c5f66;
  font-size: 16px;
  font-weight: 550;
  letter-spacing: -0.02em;
}

/* cheappill-20261010: «Нашли дешевле?» как «Войти» в мобильной шапке. */
.k-hist .k-cheap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 32px;
  margin: 8px auto 0;
  padding: 0 12px;
  border: 0;
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  font-family: inherit;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: normal;
  text-decoration: none;
  cursor: pointer;
}

.k-hist .k-cheap:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

/* cheappay-20261010: «Нашли дешевле?» в плитке оплаты как в истории цен. */
.k-buy-top .k-cheap,
.k-pay > .k-cheap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: fit-content;
  min-height: 32px;
  margin: 0;
  padding: 0 12px;
  border: 0;
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  font-family: inherit;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: normal;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.k-buy-top .k-cheap:focus-visible,
.k-pay > .k-cheap:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

/* aligntop-20261010: «Есть на складе» и «Нашли дешевле?» на одной линии. */
.k-buy-top > .k-avail {
  align-self: center;
}

@media (max-width: 699px) {
  .k-hist {
    margin-top: 16px;
    border-radius: 20px;
  }

  .k-hist-body {
    padding: 16px 16px 6px;
  }

  .k-hist h2 {
    font-size: 18px;
  }

  .k-hist-range,
  .k-hist-one {
    font-size: 16px;
  }

  .k-hist-line {
    height: 132px;
  }
}

/* installflat-20261010: «Оформить в рассрочку» — отдельная кнопка под «Купить в 1 клик».
   Плоская, как соседние кнопки. Без золота и без блика. */
.k-open .k-buy .k-install {
  order: 6;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  margin: 8px 0 0;
  padding: 0 16px;
  border: 0;
  /* btnround-20261010 */
  border-radius: 24px;
  background: #29292c;
  color: #fff;
  font: inherit;
  font-size: 16px;
  font-weight: 750;
  letter-spacing: -0.02em;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.k-open .k-buy .k-install:hover { background: #3a3a3e; }

.k-open .k-buy .k-install:active { transform: translateY(1px); }

.k-open .k-buy .k-install:focus-visible {
  outline: 2px solid #29292c;
  outline-offset: 3px;
}

.k-buy:has(.sku-gone) > .k-install,
.k-buy:has(.sku-ask) > .k-install { display: none; }

@media (prefers-reduced-motion: reduce) {
  .k-open .k-buy .k-install:active { transform: none; }
}

/* histtip-20261010: подпись у заголовка, график на всю ширину, жёлтая линия, подсказка. */
.k-hist-head {
  justify-content: flex-start;
  gap: 8px;
}

.k-hist-plot {
  margin-top: 12px;
}

.k-hist-line {
  width: 100%;
  height: 156px;
  margin: 0;
  display: block;
  touch-action: pan-y;
}

.k-hist-hit {
  fill: transparent;
}

.k-hist-dot {
  stroke: #fff;
  stroke-width: 3;
}

.k-hist-axis {
  padding: 4px 8px 0;
}

.k-hist-tip {
  position: fixed;
  z-index: 80;
  transform: translateY(-100%);
  min-width: 88px;
  padding: 8px 10px 7px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(20, 20, 24, 0.12);
  pointer-events: none;
  text-align: left;
}

.k-hist-tip b {
  display: block;
  color: #29292c;
  font-size: 14px;
  font-weight: 750;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

.k-hist-tip span {
  display: block;
  margin-top: 2px;
  color: #909295;
  font-size: 12px;
  font-weight: 500;
}

/* histdot-20261010: график на всю ширину плитки, точки видны, на телефоне без выделения. */
.k-hist,
.k-hist-tip {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

.k-hist-line {
  width: 100%;
  height: auto;
  aspect-ratio: 720 / 156;
  margin: 0;
  display: block;
  touch-action: none;
}

.k-hist-hit {
  fill: #fff;
  stroke: #ffd302;
  stroke-width: 2.5;
}

.k-hist-dot {
  fill: #ffd302;
  stroke: #fff;
  stroke-width: 2;
}

@media (max-width: 699px) {
  .k-hist-line {
    height: auto;
    aspect-ratio: 720 / 156;
  }
}

/* histlog-20261010: все смены цены столбиком, сверху новая, с датой и временем. */
.k-hist-log {
  margin: 12px 0 0;
  padding: 0 24px;
  max-height: 280px;
  overflow: auto;
  list-style: none;
}

.k-hist-log li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  min-height: 40px;
  border-top: 1px solid rgba(20, 20, 24, 0.06);
  color: #5c5f66;
  font-size: 14px;
  font-weight: 550;
}

.k-hist-log b {
  color: #29292c;
  font-weight: 750;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

.k-hist-log li.is-on span {
  color: #29292c;
}

.k-hist-tip p {
  margin: 0;
}

.k-hist-tip p + p {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(20, 20, 24, 0.06);
}

@media (max-width: 699px) {
  .k-hist-log {
    padding: 0 16px;
    max-height: 220px;
  }
}

/* histfast-20261010: тонкая линия и точки. Актуальная цена в плитке, не на экране. */
.k-hist-plot {
  position: relative;
  width: 100%;
  aspect-ratio: 720 / 156;
}

.k-hist-plot .k-hist-line {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.k-hist-now {
  position: absolute;
  z-index: 2;
  top: 0;
  right: auto;
  max-width: min(240px, 70%);
  margin: 0;
  padding: 8px 10px 7px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(20, 20, 24, 0.12);
  pointer-events: none;
}

.k-hist-now b,
.k-hist-now span {
  display: block;
}

.k-hist-now b {
  color: #29292c;
  font-size: 14px;
  font-weight: 750;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

.k-hist-now span {
  margin-top: 2px;
  color: #909295;
  font-size: 12px;
  font-weight: 500;
}

.k-hist-now p {
  margin: 0;
}

.k-hist-now p + p {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(20, 20, 24, 0.06);
}

.k-hist-hit {
  stroke-width: 1.25;
}

.k-hist-dot {
  stroke: #fff;
  stroke-width: 1.25;
}

/* histscroll-20261010: палец по графику листает страницу. */
.k-hist,
.k-hist-plot,
.k-hist-line,
.k-hist-now,
.k-hist-axis {
  touch-action: pan-y;
}

/* histnolist-20261010: столбик всех смен под графиком не показываем. */
.k-hist-log {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}

/* histunder-20261011: плашка истории не перекрывает шапку. */
#sotik-hist-plaque {
  z-index: 5 !important;
}

/* shiptile-20261010: покупка и способы получения — две белые плашки друг под другом.
   Чип жёлтый, как наши капсулы. Чужие тарифы и чужой адрес не пишем. */
.k-buycol { display: contents; }

.k-ship {
  margin: 0;
  background: #fff;
  border-radius: 20px;
  padding: 16px 16px 8px;
  box-shadow: 0 8px 24px rgba(20, 20, 24, 0.05);
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
}

.k-ship h2 {
  margin: 0 0 16px;
  font-size: 20px;
  font-weight: 750;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--ink, #29292c);
}

.k-ship-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  margin: 0;
  padding: 0 0 16px;
  border: 0;
}

.k-ship-row:last-child { padding-bottom: 2px; }

.k-ship-row h3 {
  margin: 0;
  grid-row: auto;
  font-size: 16px;
  font-weight: 750;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--ink, #29292c);
}

.k-ship-row .k-ship-line,
.k-ship-row .k-ship-note {
  margin: 0;
  min-height: 0;
  text-align: left;
}

.k-ship-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.k-ship-chip {
  display: inline-flex;
  align-items: center;
  flex: none;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: var(--yellow, #ffd302);
  color: #29292c;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: -0.01em;
  line-height: 1;
}

.k-ship-when {
  color: #29292c;
  font-size: 14px;
  font-weight: 550;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.k-ship-note {
  color: #8a8a90;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.35;
}

@media (max-width: 899px) {
  .k-facts { order: 5; }
  .k-ship { order: 4; }
}

@media (min-width: 900px) {
  .k-buycol {
    display: flex;
    flex-direction: column;
    gap: 12px;
    grid-area: buy;
    align-self: start;
    justify-self: stretch;
    min-width: 0;
    width: auto;
  }

  .k-ship { border-radius: 24px; }
}

/* histslim-20261011: плашка истории по ширине текста. */
.k-hist-now,
#sotik-hist-plaque {
  right: auto !important;
  width: max-content !important;
  max-width: 220px !important;
}

/* paytile-20261011: открытая плашка двойная. Сверху рассрочка, снизу оплата картой.
   Белая, с монеткой. По карте нет старой цены и нет процента. Свёрнутая карточка не здесь. */
.k-open .k-buy .sku-credit {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  align-self: stretch;
  margin: 12px 0 0;
  padding: 0;
  min-height: 0;
  border-radius: 22px;
  background: #fff;
  color: #29292c;
  font-size: 16px;
  line-height: 1.2;
  white-space: normal;
  text-align: left;
  overflow: hidden;
}

.k-open .k-buy .sku-credit .sku-credit-word {
  display: block;
  color: #29292c;
  font-size: 15px;
  font-weight: 750;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.k-open .k-buy .sku-pay-install,
.k-open .k-buy .sku-pay-card {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.k-open .k-buy .sku-pay-install {
  padding: 12px 14px 10px;
}

.k-open .k-buy .sku-pay-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}

.k-open .k-buy .sku-pay-term {
  color: #8a8a90;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.25;
}

.k-open .k-buy .sku-pay-month {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin-left: auto;
  white-space: nowrap;
}

.k-open .k-buy .sku-pay-month .sku-credit-sum {
  font-size: 16px;
  font-weight: 750;
  letter-spacing: -0.03em;
}

.k-open .k-buy .sku-pay-card {
  justify-content: space-between;
  padding: 11px 14px 12px;
  border-top: 0;
  /* paynoline-20261011: серой линии между полями нет */
  background: #f6f6f6;
}

.k-open .k-buy .sku-pay-card-label {
  flex: 1 1 auto;
  min-width: 0;
  color: #29292c;
  font-size: 14px;
  font-weight: 650;
  letter-spacing: -0.02em;
  line-height: 1.25;
}

.k-open .k-buy .sku-pay-card-sum {
  flex: none;
  color: #29292c;
  font-size: 18px;
  font-weight: 750;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* buyrow-20261011: на открытой карточке «В корзину» и «Купить в 1 клик» в одну линию.
   Корзина — круглая жёлтая иконка 48px, вторая кнопка занимает остаток.
   «Оформить в рассрочку» остаётся строкой ниже. Свёрнутая карточка и предзаказ не здесь. */
.k-open .k-buy .k-buy-row {
  order: 5;
  display: flex;
  align-items: stretch;
  gap: 8px;
  width: 100%;
  margin-top: 14px;
}

.k-open .k-buy .k-buy-row > .add-cart,
.k-open .k-buy .k-buy-row > .k-one {
  order: 0;
}

.k-open .k-buy .k-buy-row > .add-cart {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 48px;
  width: 48px;
  min-width: 48px;
  height: 48px;
  min-height: 48px;
  margin: 0;
  padding: 0;
  border-radius: 24px;
  font-size: 0;
  line-height: 0;
  color: var(--ink, #29292c);
}

.k-open .k-buy .k-buy-row > .add-cart::before {
  content: "";
  display: block;
  width: 22px;
  height: 22px;
  background: currentColor;
  pointer-events: none;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.8h2.4'/%3E%3Cpath d='M15.6 9.8H18v7.2a2.5 2.5 0 0 1-2.5 2.5H8.5A2.5 2.5 0 0 1 6 17V9.8'/%3E%3Cpath d='M9.2 9.8V7.4a2.8 2.8 0 0 1 5.6 0v2.4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.8h2.4'/%3E%3Cpath d='M15.6 9.8H18v7.2a2.5 2.5 0 0 1-2.5 2.5H8.5A2.5 2.5 0 0 1 6 17V9.8'/%3E%3Cpath d='M9.2 9.8V7.4a2.8 2.8 0 0 1 5.6 0v2.4'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.k-open .k-buy .k-buy-row > .add-cart.is-in[data-qty]::after {
  content: attr(data-qty);
  position: absolute;
  top: -4px;
  right: -4px;
  z-index: 1;
  display: block;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--yellow, #ffd302);
  color: var(--ink, #29292c);
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0;
  text-align: center;
  font-family: var(--font);
  font-variant-numeric: tabular-nums;
  box-shadow: 0 0 0 2px #fff;
  pointer-events: none;
}

.k-open .k-buy .k-buy-row > .k-one {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  min-height: 48px;
  margin: 0;
  white-space: nowrap;
}

/* nametile-20261011: на компьютере имя на левой плитке, над фото.
   Сравнение и избранное остаются справа в первой строке имени.
   Длинное имя переносится вниз и под кнопками идёт на всю ширину.
   На телефоне имя по-прежнему над карточками, кнопки на фото. */
.k-name-gap { display: none; }

@media (max-width: 899px) {
  .k-name {
    order: 1;
    width: 100%;
    min-width: 0;
  }
}

@media (min-width: 900px) {
  .k-open {
    grid-template-areas:
      "crumbs crumbs"
      "plate buy";
  }

  .k-name {
    order: 0;
    grid-column: 1 / -1;
    display: flow-root;
    min-width: 0;
  }

  .k-name-gap {
    display: block;
    float: right;
    width: 92px;
    height: 36px;
  }

  .k-open .k-name h1 {
    grid-area: auto;
    margin: 0;
    font-size: 32px;
    line-height: 36px;
  }

  .k-gallery { position: static; }

  .k-plate {
    position: relative;
    grid-auto-rows: min-content;
  }

  .k-side-acts {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 3;
    width: 80px;
    height: 36px;
    justify-content: flex-end;
  }

  .k-facts { padding-right: 0; }

  .k-plate > .k-name,
  .k-plate > .k-gallery,
  .k-plate > .k-facts {
    min-height: 0;
  }

  .k-name { grid-row: 1; }

  .k-plate > .k-gallery { grid-column: 1; grid-row: 2; }

  .k-plate > .k-facts { grid-column: 2; grid-row: 2; }

  body.k-page .k-open .k-name h1 { line-height: 36px; }
}

/* carticon-20261011: сумка рисуется фоном жёлтой кнопки.
   Маска на ::before в части браузеров оставляла пустой круг. */
.k-open .k-buy .k-buy-row > .add-cart {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2329292c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.8h2.4'/%3E%3Cpath d='M15.6 9.8H18v7.2a2.5 2.5 0 0 1-2.5 2.5H8.5A2.5 2.5 0 0 1 6 17V9.8'/%3E%3Cpath d='M9.2 9.8V7.4a2.8 2.8 0 0 1 5.6 0v2.4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 22px 22px;
}

.k-open .k-buy .k-buy-row > .add-cart::before {
  content: none;
}

/* artside-20261011: на компьютере сравнение и избранное справа от «Арт.:».
   Имя больше не обтекает это место и чуть меньше. Телефон не меняется. */
@media (min-width: 900px) {
  .k-open { position: relative; }

  .k-plate,
  .k-gallery { position: static; }

  .k-gallery > input {
    position: fixed;
    left: 0;
    top: 0;
    width: 1px;
    height: 1px;
    margin: 0;
    opacity: 0;
    pointer-events: none;
  }

  .k-name-gap { display: none; }

  .k-crumb-row { padding-right: 92px; }

  .k-side-acts {
    position: absolute;
    top: 6px;
    right: 0;
    z-index: 4;
    width: 80px;
    height: 36px;
  }

  body.k-page .k-open .k-name h1 {
    font-size: 28px;
    line-height: 34px;
  }
}

/* oneshadow-20261011: «Купить в 1 клик» на открытой карточке берёт обводку и тень
   белой плашки рассрочки .sku-credit. Радиус кнопки 24px не меняется. */
.k-open .k-buy .k-buy-row > .k-one {
  border: 1px solid rgba(20, 20, 24, 0.08);
  box-shadow: 0 6px 16px rgba(20, 20, 24, 0.06);
}

/* installglint-20261011: по «Оформить в рассрочку» редко проходит мягкий блик.
   Узкая светлая полоса наискосок, не заливка всей кнопки. Едет только сдвигом,
   около секунды, потом кнопка спокойна примерно пять секунд.
   Мигания нет. Если человеку лучше без движения, блик не играет. Золота нет. */
.k-open .k-buy .k-install {
  position: relative;
  overflow: hidden;
}

.k-open .k-buy .k-install::after {
  content: "";
  position: absolute;
  top: -45%;
  bottom: -45%;
  left: 0;
  width: 34%;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.07) 36%,
    rgba(255, 255, 255, 0.5) 50%,
    rgba(255, 255, 255, 0.07) 64%,
    transparent 100%
  );
  transform: translateX(-220%) rotate(18deg);
  animation: k-install-glint 6s ease-in-out 0.7s infinite;
  pointer-events: none;
}

@keyframes k-install-glint {
  0% { transform: translateX(-220%) rotate(18deg); }
  18% { transform: translateX(480%) rotate(18deg); }
  100% { transform: translateX(480%) rotate(18deg); }
}

@media (prefers-reduced-motion: reduce) {
  .k-open .k-buy .k-install::after {
    animation: none;
    transform: translateX(-140%);
  }
}

/* shiplive-20261011: в самовывозе адрес открывает ту же карточку Яндекс Карт, что шапка.
   Точка «открыто / закрыто» — тот же смысл, что .desk-live: с 12:00 до 20:00 по Москве зелёная,
   иначе красная. Скрипт стоит сразу после подписи. Город и Россия без этой точки и без ссылки. */
.k-ship-row .k-ship-live {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  min-height: 0;
  text-align: left;
  color: #8e9094;
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.2;
  white-space: nowrap;
}

.k-ship .desk-live {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #e24b4b;
  animation: desk-live-pulse-closed 2s infinite;
}

.k-ship .desk-live.is-open {
  background: #2ecc71;
  animation: desk-live-pulse 2s infinite;
}

.k-ship .desk-live-label {
  color: #3f4146;
  font-weight: 650;
}

@keyframes desk-live-pulse {
  0% { box-shadow: 0 0 0 0 rgba(46, 204, 113, 0.55); }
  70% { box-shadow: 0 0 0 7px rgba(46, 204, 113, 0); }
  100% { box-shadow: 0 0 0 0 rgba(46, 204, 113, 0); }
}

@keyframes desk-live-pulse-closed {
  0% { box-shadow: 0 0 0 0 rgba(226, 75, 75, 0.55); }
  70% { box-shadow: 0 0 0 7px rgba(226, 75, 75, 0); }
  100% { box-shadow: 0 0 0 0 rgba(226, 75, 75, 0); }
}

.k-ship-note a {
  color: inherit;
  text-decoration: none;
}

.k-ship-note a:hover,
.k-ship-note a:focus-visible {
  color: #29292c;
  text-decoration: none;
}

@media (prefers-reduced-motion: reduce) {
  .k-ship .desk-live,
  .k-ship .desk-live.is-open { animation: none; }
}

/* crumbcard-20261011: на компьютере крошки, «Арт.:» и кнопки сравнения с избранным
   стоят на левой карточке, над названием. Название 22px. Телефон: крошки по-прежнему
   над именем, кнопки на фото. */
@media (max-width: 899px) {
  body.k-page .k-open .k-crumb-row { margin-bottom: -8px; }
}

@media (min-width: 900px) {
  .k-open {
    grid-template-areas: "plate buy";
    row-gap: 0;
  }

  .k-plate,
  .k-open .k-buy { margin-top: 0; }

  .k-plate { position: relative; }

  .k-plate > .k-crumb-row {
    grid-area: auto;
    grid-column: 1 / -1;
    grid-row: 1;
    align-items: center;
    min-height: 36px;
    margin: 0;
    padding-right: 92px;
  }

  .k-plate .k-crumbs ol,
  .k-plate .k-art-top { margin: 0; }

  .k-name { grid-row: 2; }

  .k-plate > .k-gallery,
  .k-plate > .k-facts { grid-row: 3; }

  .k-side-acts {
    top: 18px;
    right: 18px;
  }

  body.k-page .k-open .k-name h1 {
    font-size: 22px;
    line-height: 28px;
  }
}

/* payline-20261011: на открытой карточке верх плашки — одна строка:
   монетка, «В рассрочку», платёж в месяц. Под ней срок: «До N мес. · без первого взноса».
   Оплата картой и свёрнутая карточка не здесь. */
.k-open .k-buy .sku-pay-install {
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
}

.k-open .k-buy .sku-pay-head {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.k-open .k-buy .sku-pay-head .sku-credit-word {
  flex: 1 1 auto;
  min-width: 0;
}

.k-open .k-buy .sku-pay-term {
  padding-left: 32px;
}

/* shipzones-20261011: справа от капсулы «от 700 рублей» серая подпись «Зоны доставки».
   Нажатия нет. Позже подпись откроет окно карты. Самовывоз и Россия без неё. */
.k-ship-zones {
  flex: none;
  color: #8a8a90;
  font-size: 13px;
  font-weight: 550;
  letter-spacing: -0.01em;
  line-height: 1.2;
  white-space: nowrap;
}

/* histpad-20261011: под «Нашли дешевле?» остаётся белое поле плитки.
   Нижний margin кнопки схлопывался за край: у плитки overflow visible,
   чтобы подсказка цены могла выйти наружу. */
.k-hist {
  padding-bottom: 22px;
}

@media (max-width: 699px) {
  .k-hist {
    padding-bottom: 20px;
  }
}

/* payclose-20261011: «В рассрочку от … ₽ /мес.» одной фразой.
   Платёж не уезжает к правому краю. Оплата картой по-прежнему по краям.
   Вторая строка срока остаётся под словом «В рассрочку». */
.k-open .k-buy .sku-pay-head {
  justify-content: flex-start;
  gap: 0;
}

.k-open .k-buy .sku-pay-head > svg {
  margin-right: 10px;
}

.k-open .k-buy .sku-pay-head .sku-credit-word {
  flex: none;
}

.k-open .k-buy .sku-pay-head .sku-pay-month {
  margin-left: 0.3em;
}

/* brand-rail-20261011 */

.brand-rail {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.brand-rail::-webkit-scrollbar { display: none; }
.brand-rail.is-dragging { cursor: grabbing; }
.brand-track {
  display: flex;
  gap: 12px;
  width: max-content;
  padding: 2px 0 8px;
}
.brand-card {
  flex: 0 0 auto;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 148px;
  min-height: 96px;
  padding: 14px 12px;
  border-radius: 18px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  font-size: 13px;
  font-weight: 650;
  text-align: center;
}
.brand-card img {
  height: 28px;
  width: auto;
  max-width: 116px;
  object-fit: contain;
  pointer-events: none;
}
.k-brand-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: inherit;
  text-decoration: none;
  font-weight: 650;
}
.k-brand-link img {
  height: 20px;
  width: auto;
  max-width: 120px;
  object-fit: contain;
  pointer-events: none;
}

/* config-chips-20261011: параметры конфигуратора теми же чипами, что ряд над полкой. */
.k-config-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 2px;
}
.k-config-chips a {
  flex: 0 0 auto;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: #f3f3f5;
  color: var(--ink, #141418);
  font-size: 14px;
  line-height: 1.2;
  font-weight: 500;
  white-space: nowrap;
  text-decoration: none;
}
.k-config-chips a[aria-current="page"] {
  background: #fff;
  border-color: #141418;
  box-shadow: none;
}
.k-config.is-open .k-config-chips {
  margin-bottom: 14px;
}

/* idline-20261011: на телефоне знак бренда и «Арт.:» стоят по центру одной строки. */
@media (max-width: 899px) {
  .k-idline {
    align-items: center;
  }
  .k-brand {
    display: flex;
    align-items: center;
    line-height: 0;
  }
  .k-idline .k-art {
    line-height: 20px;
  }
}

/* chosen-20261011: на телефоне счётчик на кнопке и выбранные параметры в полосе листа. */
.k-config-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: #ffd302;
  color: #141418;
  font-size: 13px;
  font-weight: 750;
  line-height: 1;
}
.k-config-count[hidden] { display: none; }
.k-config-chosen {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 4px 0 8px;
}
.k-config-chosen[hidden] { display: none; }
.k-config-chosen-label {
  color: #8d8d93;
  font-size: 13px;
  font-weight: 650;
}
.k-chosen-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  min-height: 28px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #f3f3f5;
  color: #141418;
  font-size: 13px;
  line-height: 1.2;
}
.k-chosen-chip b {
  font-weight: 650;
  color: #6e6e74;
}


/* pricey-20261011: на телефоне цена в фильтре — жёлтый диапазон и крупные ручки. */
@media (max-width: 899px) {
  .k-config.is-open .k-config-block[data-price-min] .k-config-price {
    gap: 10px;
  }

  .k-config.is-open .k-config-block[data-price-min] .k-config-price input {
    min-height: 52px;
    border-radius: 18px;
    background: #f4f4f6;
    font-size: 17px;
    font-weight: 750;
    letter-spacing: -0.03em;
    box-shadow: none;
  }

  .k-config.is-open .k-config-block[data-price-min] .k-config-price input:focus {
    background: #fff;
    box-shadow: inset 0 0 0 2px #ffd302;
  }

  .k-config.is-open .k-config-block[data-price-min] .k-config-range {
    height: 40px;
    margin: 18px 12px 4px;
  }

  .k-config.is-open .k-config-block[data-price-min] .k-config-range::before {
    top: 18px;
    height: 4px;
    background: #ececef;
  }

  .k-config.is-open .k-config-block[data-price-min] .k-range-fill {
    top: 18px;
    height: 4px;
    background: #ffd302;
  }

  .k-config.is-open .k-config-block[data-price-min] .k-config-range input[type="range"] {
    height: 40px;
  }

  .k-config.is-open .k-config-block[data-price-min] .k-config-range input[type="range"]::-webkit-slider-thumb {
    width: 28px;
    height: 28px;
    border: 3px solid #fff;
    background: #ffd302;
    box-shadow: 0 2px 8px rgba(20, 20, 24, 0.16);
  }

  .k-config.is-open .k-config-block[data-price-min] .k-config-range input[type="range"]::-moz-range-thumb {
    width: 22px;
    height: 22px;
    border: 3px solid #fff;
    background: #ffd302;
    box-shadow: 0 2px 8px rgba(20, 20, 24, 0.16);
  }

  .k-config.is-open .k-config-block[data-price-min] > .k-price-reset {
    display: flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    height: 36px;
    min-height: 36px;
    margin: 8px 0 12px;
    padding: 0 16px;
    border: 0;
    border-radius: 999px;
    background: #ffd302;
    color: #141418;
    font-size: 14px;
    font-weight: 650;
    line-height: 1;
    letter-spacing: 0;
  }
}


/* brandcap-20261011: над знаком на открытой карточке маленькая серая подпись «Бренд». */
.k-idline {
  align-items: flex-end;
}
.k-idline .k-brand:has(img) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  line-height: normal;
}
.k-idline .k-brand:has(img)::before {
  content: "Бренд";
  color: #8a8a90;
  font-size: 12px;
  font-weight: 500;
  line-height: 14px;
  letter-spacing: 0.02em;
}
@media (max-width: 899px) {
  .k-idline {
    align-items: flex-end;
  }
  .k-idline .k-brand:has(img) {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    line-height: normal;
  }
}

/* fold-desk-20261011: на компьютере пройденные параметры — одна строка. */
@media (min-width: 900px) {
  .k-config-block summary {
    pointer-events: auto;
    cursor: pointer;
    display: flex;
    align-items: baseline;
    gap: 8px;
  }

  .k-config-now {
    margin-left: auto;
    color: #8a8a90;
    font-size: 12px;
    font-weight: 550;
    letter-spacing: 0;
    max-width: 48%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .k-config-now:empty { display: none; }

  .k-config-block[open] > summary .k-config-now {
    display: none;
  }

  .k-config-block > summary::after {
    content: "";
    flex: none;
    width: 7px;
    height: 7px;
    margin-top: -3px;
    border-right: 1.5px solid #141418;
    border-bottom: 1.5px solid #141418;
    transform: rotate(45deg);
  }

  .k-config-block[open] > summary::after {
    transform: rotate(-135deg);
    margin-top: 3px;
  }
}

/* colorcap-20261011: подпись «Цвет» как «Бренд» — маленькая и серая. */
.k-axis h2.k-cap {
  margin: 0 0 6px;
  color: #8a8a90;
  font-size: 12px;
  font-weight: 500;
  line-height: 14px;
  letter-spacing: 0.02em;
}

/* cardh-20261011: карточка не тянется на фильтр, но плитки одного ряда одной высоты. */
@media (min-width: 1200px) {
  .k-config-row {
    align-items: start;
    align-content: start;
  }

  .k-config-row .k-shelf > .sku-card {
    align-self: stretch;
    height: auto;
    min-height: 0;
  }
}

/* memcap-20261011: подпись памяти как «Бренд». Кнопки — круглые плашки, выбранная с тёмной рамкой. */
.k-mem > h2.k-cap {
  margin: 0 0 6px;
  color: #8a8a90;
  font-size: 12px;
  font-weight: 500;
  line-height: 14px;
  letter-spacing: 0.02em;
}

.k-mem .k-picks {
  min-height: 0;
}

.k-mem .k-picks a {
  min-height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid transparent;
  background: #f3f3f5;
  color: #141418;
  font-size: 14px;
  font-weight: 550;
  letter-spacing: -0.01em;
}

.k-mem .k-picks a:hover {
  background: #ececef;
}

.k-mem .k-picks a.is-on,
.k-mem .k-picks a.is-on:not(.is-shot) {
  background: #fff;
  border-color: #141418;
  color: #141418;
}

.k-mem .k-picks a.is-on:hover {
  background: #fff;
}

/* nodots-20261011: под лентой категории точек нет. Смена баннера остаётся. */
.k-cat-dots {
  display: none;
}

/* qsoft-20261011: маленький светлый круг. Строка статуса его не обрезает. */
.k-open .k-avail.sku-state {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: auto;
  min-height: 0;
  max-height: none;
  overflow: visible;
}

.k-mark {
  position: relative;
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
}

.k-mark input {
  position: absolute;
  width: 16px;
  height: 16px;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.k-mark-face {
  display: grid;
  place-items: center;
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  border: 1px solid #c5c5ca;
  background: #f4f4f6;
  color: #3a3c42;
  font-size: 11px;
  font-weight: 650;
  line-height: 1;
  box-shadow: none;
}

/* markabove-20261012: пояснение только над знаком и по его центру.
   На компьютере оно ещё появляется от наведения. На телефоне зона нажатия шире кружка. */
.k-mark-note {
  display: none;
  position: absolute;
  top: auto;
  right: auto;
  bottom: calc(100% + 8px);
  left: 50%;
  z-index: 12;
  width: max-content;
  max-width: min(220px, 70vw);
  padding: 8px 10px;
  border-radius: 12px;
  background: #141418;
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0;
  white-space: normal;
  text-align: left;
  transform: translateX(-50%);
}

.k-mark-note::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 10px;
}

.k-mark.is-end .k-mark-note {
  top: auto;
  right: auto;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
}

.k-mark input:checked ~ .k-mark-note {
  display: block;
}

@media (min-width: 900px) {
  .k-mark:hover .k-mark-note {
    display: block;
  }
}

@media (max-width: 899px) {
  .k-mark input {
    width: 44px;
    height: 44px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }
}

.k-mark input:focus-visible ~ .k-mark-face {
  outline: 2px solid #141418;
  outline-offset: 2px;
}

/* mobpicks-20261012: на телефоне бренд, артикул, цвет, память и конфигурация sim-карт
   стоят в плитке покупки между наличием и ценой. На компьютере остаются слева. */
.k-mobfacts { display: none; }
@media (max-width: 899px) {
  .k-plate > .k-facts { display: none; }
  .k-mobfacts {
    display: block;
    order: 2;
    margin-top: 16px;
  }
  .k-mobfacts .k-idline { margin-bottom: 16px; }
}

/* brandrow-20261012: знак в плитке покупки не берёт квадрат фото полки.
   Подпись «Бренд» над знаком, «Арт.:» справа на одной линии со знаком. */
.k-open .k-idline .k-brand img {
  width: auto;
  height: 20px;
  max-width: 120px;
  max-height: 20px;
  aspect-ratio: auto;
  border-radius: 0;
  background: transparent;
  object-fit: contain;
  transform: none;
  transition: none;
}


/* halvaclear-20261018: надпись «халва» не берёт белый квадрат фото карточки. */
.k-open .k-buy .k-halva .halva-widget__logoimg {
  display: block;
  width: auto;
  height: 16px;
  max-width: 115px;
  max-height: 16px;
  aspect-ratio: auto;
  border-radius: 0;
  background: transparent;
  object-fit: contain;
  transform: none;
  transition: none;
  box-shadow: none;
}

/* splitbuy-20261012: на телефоне покупка — две белые плитки.
   Первая держит наличие и конфигуратор. Вторая — «Нашли дешевле?», цену и кнопки.
   На компьютере оболочки прозрачны, кнопка остаётся у статуса. */
.k-pick,
.k-pay { display: contents; }

.k-pay > .k-cheap { display: none; }

.k-buy:has(.sku-pre) .k-one { display: none; }

@media (max-width: 899px) {
  .k-open .k-buy:has(.k-pick) {
    display: contents;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    min-height: 0;
  }

  .k-open .k-buy:has(.k-pick):hover,
  .k-open .k-buy:has(.k-pick):active {
    box-shadow: none;
    transform: none;
  }

  .k-pick,
  .k-pay {
    display: flex;
    flex-direction: column;
    order: 3;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    margin: 0;
    padding: 16px;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 8px 24px rgba(20, 20, 24, 0.05);
  }

  .k-pick .k-cheap { display: none; }

  .k-pay > .k-cheap {
    display: inline-flex;
    align-self: flex-end;
    order: 0;
    margin-bottom: 2px;
  }
}

/* costrow-20261012: на телефоне цена и «Нашли дешевле?» в одном ряду.
   Над суммой серая «Стоимость». Зачёркнутая цена прижата к основной,
   чип процента над ней. «Арт.:» в одной строке с наличием. */
@media (max-width: 899px) {
  .k-pick {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 12px;
    row-gap: 16px;
    align-items: start;
  }

  .k-pick > .k-buy-top,
  .k-pick > .k-mobfacts,
  .k-pick .k-idline {
    display: contents;
  }

  .k-pick .k-avail {
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    align-self: center;
    margin: 0;
  }

  .k-pick .k-art {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    margin: 0;
    line-height: 16px;
    white-space: nowrap;
  }

  .k-pick .k-brand {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 0;
  }

  .k-pick .k-axes {
    grid-column: 1 / -1;
    grid-row: 3;
    margin: 0;
  }

  .k-pay {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 8px;
    row-gap: 0;
    align-items: start;
  }

  .k-pay > .k-cheap {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    justify-self: end;
    min-height: 24px;
    height: 24px;
    margin: 0;
    padding: 0 8px;
    font-size: 11px;
    font-weight: 650;
  }

  .k-open .k-pay .k-dockbuy > .price,
  .k-open .k-pay .price-row {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    margin: 0;
    min-width: 0;
    max-width: 100%;
  }

  .k-open .k-pay .k-cashnote,
  .k-open .k-pay .sku-credit,
  .k-open .k-pay .sku-pay,
  .k-open .k-pay .k-buy-row,
  .k-open .k-pay .k-install,
  .k-open .k-pay .k-halva,
  .k-open .k-pay .sku-pre,
  .k-open .k-pay .sku-ask,
  .k-open .k-pay .sku-gone,
  .k-open .k-pay > .k-one {
    grid-column: 1 / -1;
  }

  .k-open .k-pay .k-dockbuy > .price {
    font-size: clamp(20px, 6.2vw, 26px);
    line-height: 1.05;
    min-height: 0;
  }

  .k-open .k-pay .k-dockbuy > .price::before {
    content: "Стоимость";
    display: block;
    margin: 0 0 6px;
    color: #8a8a90;
    font-size: 12px;
    font-weight: 500;
    line-height: 14px;
    letter-spacing: 0.02em;
  }

  .k-open .k-pay .price-row {
    position: relative;
    display: grid;
    grid-template-columns: auto auto;
    grid-template-rows: auto auto;
    column-gap: 4px;
    row-gap: 0;
    align-items: last baseline;
    justify-content: start;
    width: max-content;
  }

  .k-open .k-pay .price-row::before {
    content: "Стоимость";
    grid-column: 1;
    grid-row: 1;
    align-self: end;
    margin: 0 0 6px;
    color: #8a8a90;
    font-size: 12px;
    font-weight: 500;
    line-height: 14px;
    letter-spacing: 0.02em;
  }

  .k-open .k-pay .price-row > .price {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
    font-size: clamp(20px, 6.2vw, 26px);
    line-height: 1.05;
    min-height: 0;
    white-space: nowrap;
  }

  .k-open .k-pay .price-row > .price-off {
    position: absolute;
    position-anchor: --sotik-was;
    bottom: anchor(top);
    left: anchor(left);
    translate: 0 -2px;
    z-index: 1;
    margin: 0;
    padding: 0 4px;
    border-radius: 4px;
    font-size: 10px;
    line-height: 13px;
  }

  .k-open .k-pay .price-row > .price-was {
    anchor-name: --sotik-was;
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
    align-self: last baseline;
    margin: 0;
    font-size: 12px;
    white-space: nowrap;
  }
}

@media (max-width: 359px) {
  .k-pay > .k-cheap {
    height: 22px;
    min-height: 22px;
    padding: 0 6px;
    font-size: 10px;
  }

  .k-open .k-pay .price-row {
    column-gap: 3px;
  }
}

/* onehover-20261012: на компьютере «Купить в 1 клик» чуть темнеет,
   как жёлтая корзина рядом. На телефоне наведения нет. */
@media (min-width: 900px) {
  .k-open .k-buy .k-buy-row > .k-one:hover {
    background: #ececec;
  }
}

/* cmpempty-20261012: на компьютере пустое сравнение той же ширины, что избранное.
   С товарами сравнение остаётся широким. */
@media (min-width: 900px) {
  .keep.is-cmp:has(.keep-empty) .keep-panel {
    width: min(440px, 100%);
  }
}

/* histday-20261014: список смен в плитке. График не рисуем. */
.k-hist-daylist {
  list-style: none;
  margin: 14px 0 8px;
  padding: 0;
  max-height: 280px;
  overflow: auto;
}

.k-hist-daylist li {
  padding: 8px 0;
}

.k-hist-daylist li + li {
  border-top: 1px solid rgba(20, 20, 24, 0.06);
}

.k-hist-daylist b {
  display: block;
  color: #29292c;
  font-size: 16px;
  font-weight: 750;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

.k-hist-daylist span {
  display: block;
  margin-top: 2px;
  color: #909295;
  font-size: 12px;
  font-weight: 500;
}

@media (max-width: 699px) {
  .k-hist-daylist {
    max-height: 240px;
  }
}


/* softlaw-20261015: чип «Без обязательного ПО» справа от нижней плашки фото.
   На компьютере тёмная подсказка, как у знака наличия. На телефоне белый лист на весь экран, как окно «Войти». */
.k-name > .k-programs {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.k-stage > .k-programs {
  position: absolute;
  z-index: 4;
  left: 14px;
  bottom: 14px;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  pointer-events: auto;
}

.k-programs-open {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  height: 32px;
  max-width: 100%;
  margin: 0;
  padding: 0 8px 0 12px;
  border: 0;
  border-radius: 999px;
  background: #ffd302;
  color: #1a1a1a;
  font: inherit;
  font-size: 15px;
  font-weight: 650;
  letter-spacing: -0.02em;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  touch-action: manipulation;
}

.k-programs-open > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.k-programs-bang {
  display: grid;
  place-items: center;
  flex: none;
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  border: 1px solid #141418;
  border-radius: 999px;
  background: #141418 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='7.2' y='3.6' width='1.6' height='5.7' rx='0.8' fill='%23fff'/%3E%3Ccircle cx='8' cy='11.4' r='1' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  background-origin: border-box;
  background-clip: border-box;
  color: transparent;
  font-style: normal;
  font-size: 0;
  font-weight: 650;
  line-height: 1;
}

.k-programs-open:focus-visible {
  outline: 2px solid #141418;
  outline-offset: 2px;
}

.k-programs-note {
  display: none;
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
  z-index: 12;
  box-sizing: border-box;
  width: max-content;
  max-width: min(360px, 70vw);
  max-height: min(320px, 46vh);
  margin: 0;
  padding: 8px 10px;
  overflow: auto;
  border-radius: 12px;
  background: #141418;
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0;
  text-align: left;
  white-space: normal;
  user-select: text;
  -webkit-user-select: text;
}

.k-programs-note::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 10px;
}

.k-programs-note b,
.k-programs-note > span {
  display: block;
}

.k-programs-note b {
  font-weight: 750;
}

.k-programs-note > span {
  margin-top: 8px;
}

.k-programs-x {
  display: none;
}

@media (min-width: 900px) {
  .k-programs.is-hover > .k-programs-note,
  .k-programs.is-on > .k-programs-note {
    display: block;
  }
}

@media (max-width: 899px) {
  .k-stage > .k-programs {
    left: 10px;
    bottom: 10px;
  }

  .k-programs-open {
    height: 28px;
    gap: 4px;
    padding: 0 6px 0 10px;
    font-size: 13px;
  }
}

.k-programs-dim {
  position: fixed;
  inset: 0;
  z-index: 90;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(20, 20, 24, 0.45);
  cursor: pointer;
}

.k-programs-dim[hidden] {
  display: none !important;
}

.k-programs-note.is-sheet {
  display: flex;
  flex-direction: column;
  justify-content: safe center;
  position: fixed;
  inset: 0;
  z-index: 200;
  width: auto;
  max-width: none;
  height: auto;
  max-height: none;
  margin: 0;
  padding: calc(72px + env(safe-area-inset-top, 0px)) 24px calc(28px + env(safe-area-inset-bottom, 0px));
  transform: none;
  border-radius: 0;
  background: #fff;
  color: #29292c;
  font-size: 15px;
  line-height: 1.45;
  box-shadow: none;
  overflow: auto;
}

.k-programs-note.is-sheet::before {
  content: none;
}

.k-programs-note.is-sheet .k-programs-x {
  position: absolute;
  top: calc(10px + env(safe-area-inset-top, 0px));
  right: 12px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #f2f2f4;
  color: #141418;
  cursor: pointer;
  box-shadow: 0 0 0 1.5px #3d9bff, 0 0 0 4px rgba(61, 155, 255, 0.32);
}

.k-programs-note.is-sheet .k-programs-x svg {
  display: block;
  width: 16px;
  height: 16px;
}

.k-programs-note.is-sheet b {
  padding-right: 0;
  font-size: 22px;
  font-weight: 750;
  letter-spacing: -0.03em;
  line-height: 1.2;
}

.k-programs-note.is-sheet > span {
  margin-top: 12px;
}

html.k-programs-lock .k-programs-dim {
  z-index: 199;
  background: #fff;
}

.k-programs-x:focus-visible {
  outline: 2px solid #141418;
  outline-offset: 2px;
}

.k-programs-note.is-sheet .k-programs-x:focus,
.k-programs-note.is-sheet .k-programs-x:focus-visible {
  outline: none;
  box-shadow: 0 0 0 1.5px #3d9bff, 0 0 0 4px rgba(61, 155, 255, 0.32);
}

html.k-programs-lock,
html.k-programs-lock body {
  overflow: hidden;
}

/* shelfcol-20261015: товары не встают в колонку фильтра.
   display:contents отдавал первую карточку в пустую клетку под абсолютным фильтром.
   Ряд становился высотой карточки, плашка «Скидка» всплывала на фильтре,
   видимый первый ряд уезжал вниз. Так ломалось уже несколько раз.
   Не возвращать position:absolute у .k-config и display:contents у .k-shelf
   или .k-config-main. Пять колонок под фильтром делает k-shelf.js
   полкой .k-shelf-rest, а не растворением этой сетки.
   Пока фильтр идёт, полка справа — сетка из 4 колонок. */
@media (min-width: 1200px) {
  .k-config-row:has(.k-cat-promo) {
    align-items: start;
  }

  .k-config-row:has(.k-cat-promo) .k-config {
    position: static;
    top: auto;
    left: auto;
    width: auto;
    height: auto;
    grid-column: 1;
    grid-row: 1;
    z-index: auto;
    align-self: start;
  }

  .k-config-row:has(.k-cat-promo) .k-config-main {
    display: flex;
    flex-direction: column;
    grid-column: 2 / -1;
    grid-row: 1;
    gap: 14px;
    min-width: 0;
  }

  /* body.k-page нужен: с 900px селектор на 3 колонки специфичнее короткого. */
  body.k-page .k-config-row:has(.k-cat-promo) .k-shelf {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 0;
    width: auto;
    min-width: 0;
  }

  .k-config-row:has(.k-cat-promo) .k-cat-promo {
    margin: 0;
    min-width: 0;
    width: 100%;
  }
}

/* softunder-20261016: на компьютере чип «Без обязательного ПО» ниже конфигуратора,
   слева, сразу после .k-axes. Подсказка — целое окно без внутренней прокрутки.
   До 899px чип остаётся на фото. Не возвращать его на фото и в строку бренда
   на широком экране. Колонку фактов из-за чипа больше не расширять. */
@media (min-width: 900px) {
  .k-facts > .k-programs {
    position: relative;
    z-index: 5;
    left: auto;
    bottom: auto;
    display: block;
    width: max-content;
    max-width: 100%;
    height: auto;
    margin: 16px 0 8px;
    overflow: visible;
    align-self: start;
    justify-self: start;
    flex: none;
    clip: auto;
  }

  .k-facts > .k-programs::before {
    content: "Информация для покупателей";
    display: block;
    margin: 0 0 6px;
    color: #8a8a90;
    font-size: 12px;
    font-weight: 500;
    line-height: 14px;
    letter-spacing: 0.02em;
  }

  .k-facts > .k-programs .k-programs-open {
    height: 26px;
    gap: 5px;
    padding: 0 7px 0 10px;
    font-size: 13px;
  }

  .k-facts > .k-programs .k-programs-bang {
    width: 14px;
    height: 14px;
    font-size: 0;
  }

  .k-programs.is-hover > .k-programs-note,
  .k-programs.is-on > .k-programs-note {
    position: fixed;
    top: 12px;
    left: 12px;
    right: auto;
    bottom: auto;
    z-index: 40;
    width: min(440px, calc(100vw - 24px));
    max-width: none;
    max-height: none;
    overflow: visible;
    padding: 14px 16px;
    font-size: 13px;
    line-height: 1.45;
    box-shadow: 0 16px 40px rgba(20, 20, 24, 0.28);
  }

  .k-programs.is-under > .k-programs-note::before {
    top: auto;
    bottom: 100%;
    height: 12px;
  }

  .k-programs.is-over > .k-programs-note::before {
    top: 100%;
    bottom: auto;
    height: 12px;
  }
}

/* shelf5-20261015: ряд, который начинается ниже фильтра, тянется под него — 5 колонок.
   k-shelf.js переносит туда карточки. display:contents для этого не включать. */
.k-shelf.is-empty {
  display: none !important;
}

@media (min-width: 1200px) {
  body.k-page .k-config-row:has(.k-cat-promo) .k-shelf.k-shelf-rest {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    width: calc(100% + (100% - 42px) / 4 + 14px);
    margin-left: calc((42px - 100%) / 4 - 14px);
    margin-bottom: 0;
    min-width: 0;
  }

  body.k-page .k-config-row:has(.k-cat-promo) .k-config-main:has(.k-shelf-rest:not(.is-empty)) > .k-pages {
    width: calc(100% + (100% - 42px) / 4 + 14px);
    margin-left: calc((42px - 100%) / 4 - 14px);
    box-sizing: border-box;
  }
}

/* axison-20261015: уже выбранный параметр не нажимается ни на компьютере, ни на телефоне.
   Соседние значения остаются ссылками. Серия без aria-current по-прежнему открывается. */
.k-picks a.is-on[aria-current="page"],
.k-picks a.is-on[aria-current="page"] * {
  pointer-events: none;
  cursor: default;
}

/* chiprow-20261017: на телефоне чипы раздела — одна лента, её листают пальцем.
   На компьютере чипы по-прежнему переносятся на строки. */
@media (max-width: 899px) {
  .k-chips {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .k-chips::-webkit-scrollbar {
    display: none;
  }

  .k-chips a {
    flex: 0 0 auto;
    max-width: none;
    white-space: nowrap;
  }
}

/* halva-20261018: калькулятор карты «Халва» над виджетом Ванты.
   Кнопка-заготовка схлопнута. Скрипт /sku-halva.js ставит виджет.
   Заявка не уходит. */
.k-open .k-buy .k-halva,
.k-open .k-pay .k-halva {
  order: 6;
  grid-column: 1 / -1;
  width: 100%;
  max-width: 100%;
  margin: 14px 0 0;
}

.k-open button.k-halva {
  display: block;
  height: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  color: transparent;
  background: transparent;
}

/* leftstack-20261018: на компьютере три отдельные белые плитки друг под другом
   в левой колонке. Сначала товар, ниже «Похожие товары», ниже история стоимости.
   Колонка покупки справа и не раздувает зазор между этими плитками.
   На телефоне оба нижних блока по-прежнему ниже доставки. */
.k-stack { display: contents; }

@media (max-width: 899px) {
  #pohozhie-tovary {
    order: 6;
    width: 100%;
    margin-top: 0;
  }

  .k-hist {
    order: 7;
    width: 100%;
    margin-top: 12px;
  }
}

@media (min-width: 900px) {
  .k-open { align-items: start; }

  .k-open > .k-open-grid > .k-stack {
    display: flex;
    flex-direction: column;
    gap: 20px;
    grid-area: plate;
    align-self: start;
    justify-self: stretch;
    min-width: 0;
    width: auto;
  }

  .k-open > .k-open-grid > .k-buycol,
  .k-open > .k-open-grid > .k-buy {
    align-self: start;
  }

  .k-open .k-stack > #pohozhie-tovary,
  .k-open .k-stack > .k-hist {
    min-width: 0;
    width: auto;
    max-width: none;
    margin: 0;
  }

  /* nearplain-20261018: без белой подложки, карточки видны на сером фоне */
  .k-open .k-stack > #pohozhie-tovary {
    box-sizing: border-box;
    padding: 0;
    background: transparent;
    box-shadow: none;
  }

  /* nearsmall-20261019: плитки как уменьшенная полка корзины, 156px.
     Подпись и стрелки прежние, в одну линию. Отступ от карточки сверху
     и от плиток снизу один и тот же, 20px. */
  .k-open .k-stack > #pohozhie-tovary .section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 20px;
  }

  .k-open .k-stack > #pohozhie-tovary .section-head h2,
  .k-open .k-stack > .k-hist h2 {
    font-size: 22px;
    font-weight: 750;
    letter-spacing: -0.03em;
    line-height: 1.15;
  }

  .k-open .k-stack > #pohozhie-tovary .section-head h2 { margin: 0; }

  .k-open .k-stack > #pohozhie-tovary .k-near { margin-bottom: 0; }

  .k-open .k-stack > #pohozhie-tovary .sku-rail { margin: 0; }

  .k-open .k-stack > #pohozhie-tovary .sku-track { gap: 10px; }

  .k-open .k-stack > #pohozhie-tovary .sku-track > .sku-card {
    flex: 0 0 156px;
    width: 156px;
    min-width: 156px;
    max-width: 156px;
    padding: 8px 8px 10px;
  }

  .k-open .k-stack > #pohozhie-tovary .sku-card h3 {
    margin: 6px 2px 0;
    padding: 0;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.25;
    letter-spacing: -0.02em;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    overflow: hidden;
    height: calc(1.25em * 3);
    min-height: calc(1.25em * 3);
    max-height: calc(1.25em * 3);
  } /* mininame-20261019 */

  .k-open .k-stack > #pohozhie-tovary .sku-line { margin: 6px 2px 0; }

  .k-open .k-stack > #pohozhie-tovary .sku-state,
  .k-open .k-stack > #pohozhie-tovary .sku-art { font-size: 11px; }

  .k-open .k-stack > #pohozhie-tovary .sku-credit {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    white-space: nowrap;
    box-sizing: border-box;
    max-width: calc(100% - 4px);
    margin: 4px 2px 0;
    min-height: 20px;
    padding: 1px 6px 1px 4px;
    gap: 3px;
    border-radius: 999px;
    box-shadow: none;
    font-size: 10px;
    line-height: 1.15;
  }

  .k-open .k-stack > #pohozhie-tovary .sku-credit svg {
    width: 11px;
    height: 11px;
    flex: 0 0 auto;
  }

  .k-open .k-stack > #pohozhie-tovary .price,
  .k-open .k-stack > #pohozhie-tovary .price-row { margin: 6px 2px 0; font-size: 15px; }

  .k-open .k-stack > #pohozhie-tovary .price-row > .price { font-size: 15px; }

  .k-open .k-stack > #pohozhie-tovary .price-off {
    font-size: 12px;
    padding: 1px 6px;
    line-height: 1.3;
    border-radius: 6px;
  }

  .k-open .k-stack > #pohozhie-tovary .sku-badge {
    height: 20px;
    padding: 0 7px 0 5px;
    gap: 3px;
    font-size: 11px;
  }

  .k-open .k-stack > #pohozhie-tovary .sku-badge svg { width: 11px; height: 11px; }

  .k-open .k-stack > #pohozhie-tovary .sku-acts { top: 8px; right: 8px; gap: 4px; }

  .k-open .k-stack > #pohozhie-tovary .sku-act { width: 28px; height: 28px; }

}

/* nearfit-20261019: в похожих сравнение только при наведении, как на полках.
   Кнопка сравнения у покупки этого товара остаётся на виду. */
@media (min-width: 900px) {
  .k-open #pohozhie-tovary .sku-cmp {
    opacity: 0;
    pointer-events: none;
  }

  .k-open #pohozhie-tovary .sku-card:hover .sku-cmp,
  .k-open #pohozhie-tovary .sku-cmp:focus-visible,
  .k-open #pohozhie-tovary .sku-cmp.is-on {
    opacity: 1;
    pointer-events: auto;
  }
}

@media (max-width: 899px) {
  .k-open #pohozhie-tovary .sku-cmp { display: none; }
}

/* artfit-20261019: статус и артикул делят строку, только если оба входят.
   Иначе артикул уходит на вторую строку и обрезается, статус остаётся целиком. */
.sku-line {
  flex-wrap: wrap;
  align-content: flex-start;
  overflow: hidden;
  height: 1.25em;
  min-height: 1.25em;
  max-height: 1.25em;
}

.sku-line > .sku-state {
  flex: 0 0 auto;
  max-width: 100%;
}

/* prefit-20261019: в похожих «Оформить предзаказ» и «Уведомить о наличии»
   ниже жёлтого круга «В корзину» (40px) и с более тихим текстом. */
@media (min-width: 900px) {
  .k-open #pohozhie-tovary .sku-pre,
  .k-open #pohozhie-tovary .sku-ask,
  .k-open #pohozhie-tovary .sku-gone {
    box-sizing: border-box;
    height: 32px;
    min-height: 32px;
    max-height: 32px;
    padding: 0 8px;
    border-radius: 16px;
    font-size: 11px;
    font-weight: 650;
    line-height: 1;
    letter-spacing: -0.03em;
  }
}

/* softquiet-20261019: на компьютере чип «Без обязательного ПО» без жёлтой капсулы.
   Серый текст и тонкий значок, чтобы не спорить с жёлтыми кнопками.
   До 899px жёлтая капсула на фото остаётся. */
@media (min-width: 900px) {
  .k-facts > .k-programs .k-programs-open {
    height: auto;
    gap: 6px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #6f737a;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.2;
  }

  .k-facts > .k-programs .k-programs-open:hover,
  .k-facts > .k-programs.is-on > .k-programs-open,
  .k-facts > .k-programs.is-hover > .k-programs-open {
    color: #29292c;
  }

  .k-facts > .k-programs .k-programs-open:hover > .k-programs-bang,
  .k-facts > .k-programs.is-on > .k-programs-open > .k-programs-bang,
  .k-facts > .k-programs.is-hover > .k-programs-open > .k-programs-bang {
    color: #29292c;
    background: #29292c;
  }

  .k-facts > .k-programs .k-programs-bang {
    width: 14px;
    height: 14px;
    border: 0;
    color: #6f737a;
    background: #6f737a;
    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2016%2016%27%3E%3Ccircle%20cx%3D%278%27%20cy%3D%278%27%20r%3D%276.15%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.35%27%2F%3E%3Crect%20x%3D%277.35%27%20y%3D%274.05%27%20width%3D%271.3%27%20height%3D%274.85%27%20rx%3D%270.65%27%20fill%3D%27%23000%27%2F%3E%3Ccircle%20cx%3D%278%27%20cy%3D%2711.45%27%20r%3D%270.9%27%20fill%3D%27%23000%27%2F%3E%3C%2Fsvg%3E") center / 14px 14px no-repeat;
    mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2016%2016%27%3E%3Ccircle%20cx%3D%278%27%20cy%3D%278%27%20r%3D%276.15%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.35%27%2F%3E%3Crect%20x%3D%277.35%27%20y%3D%274.05%27%20width%3D%271.3%27%20height%3D%274.85%27%20rx%3D%270.65%27%20fill%3D%27%23000%27%2F%3E%3Ccircle%20cx%3D%278%27%20cy%3D%2711.45%27%20r%3D%270.9%27%20fill%3D%27%23000%27%2F%3E%3C%2Fsvg%3E") center / 14px 14px no-repeat;
  }
}


/* offerlead-20261019: абзац цены, вопрос про российские приложения и получение заказа. */
.k-offer-lead,
.k-law-line,
.k-ship-lead {
  margin: 12px 0 0;
  font-size: 16px;
  line-height: 1.45;
  color: var(--ink, #29292c);
}

.k-law-q {
  margin: 18px 0 0;
  font-size: 20px;
  line-height: 1.25;
  font-weight: 750;
  letter-spacing: -0.03em;
  color: var(--ink, #29292c);
}

.k-specs:has(dd:not(:empty)) {
  display: block;
}
