[x-cloak] {
  display: none !important;
}

.js-add-to-cart[data-action-state="disabled"] .js-add-to-cart__state:not(.js-add-to-cart__state--disabled),
.js-add-to-cart[data-action-state="add"] .js-add-to-cart__state:not(.js-add-to-cart__state--add),
.js-add-to-cart[data-action-state="preorder"] .js-add-to-cart__state:not(.js-add-to-cart__state--preorder),
.js-add-to-cart[data-action-state="notify"] .js-add-to-cart__state:not(.js-add-to-cart__state--notify) {
  display: none !important;
}

.catalog__item-color span {
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 30px;
  box-sizing: border-box;
}

.classics-slider__color {
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
}

.catalog__item-color.disabled span {
  opacity: 0.4;
}

.catalog__item-color.disabled span::before,
.catalog__item-color.disabled span::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  background-color: #d6d6d6;
  top: 50%;
  left: 0;
  transform-origin: center;
}

.catalog__item-color.disabled span::before {
  transform: translateY(-50%) rotate(45deg);
}

.catalog__item-color.disabled span::after {
  transform: translateY(-50%) rotate(-45deg);
}

.content,
.order {
  position: relative;
}

.profile__close {
  top: 41px;
  right: 15px;
}

@media (max-width: 600px) {
  .profile__close {
    top: 32px;
  }
}

.catalog__item {
  position: relative;
  background: white;
  flex: 0 0 calc(16.666% - 1px);
  padding: 0 13px 13px;
}

.catalog__item--navigating {
  pointer-events: none;
}

.catalog__item-nav-loader {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  pointer-events: none;
}

.catalog__item-images-container {
  position: relative;
}

.catalog__item-nav-loader-spinner {
  width: 22px;
  height: 22px;
  color: #4a4a4a;
  animation: catalog-item-nav-spin 0.8s linear infinite;
}

.catalog__item-nav-loader-spinner circle {
  stroke: #cccccc;
}

.catalog__item-nav-loader-spinner path {
  fill: #4a4a4a;
}

.classics-slider__title {
  font-size: 26px;
  line-height: 30px;
}

@media (max-width: 768px) {
  .classics-slider__title {
    font-size: 16px;
    line-height: 24px;
    letter-spacing: 2px;
  }
}

@keyframes catalog-item-nav-spin {
  to {
    transform: rotate(360deg);
  }
}

.catalog__item-top,
.catalog__item-top:hover,
.catalog__item-top:active,
.catalog__item-top:focus,
.catalog__item-offer a,
.catalog__item-offer a:hover,
.catalog__item-offer a:active,
.catalog__item-offer a:focus {
  opacity: 1 !important;
}

@media screen and (max-width: 992px) {
  .catalog__item {
    flex: 0 0 calc(25% - 1px);
  }
}

@media screen and (max-width: 480px) {
  .catalog__item {
    flex: 0 0 calc(50% - 1px);
    padding: 0 7.5px 15px 7.5px;
  }
}

.catalog__items > .catalog__item {
  min-width: 0;
}

.catalog__item .classics-slider__colors {
  flex-wrap: wrap;
}

.classics-slider__color--inactive {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}

.single__add-btn {
  display: block;
  text-align: center;
  text-transform: uppercase;
  font-size: 14px;
  line-height: 15px;
  letter-spacing: 4%;
  padding: 8px;
  border-radius: 30px;
  border: 1px solid #DADADA;
}

.single__add-el-text {
  text-transform: uppercase;
}

.single__btn {
  text-align: center;
  display: block;
  color: white;
  background: var(--color-body);
  border-radius: 30px;
  font-size: 18px;
  line-height: 15px;
  letter-spacing: 4%;
  padding: 16px;
  text-transform: uppercase;
  /* margin-bottom: 33px; */
  border-radius: 30px;
}

@media (max-width: 600px) {
  .single__btn {
    display: none;
  }

  .single__cart-bar .single__btns .single__btn,
  .single__cart-bar .single__btn,
  .cart-popup .single__btn {
    display: block;
  }
}

.single__btns .single__btn {
  text-align: center;
  display: block;
  color: white;
  background: var(--color-body);
  font-size: 18px;
  line-height: 15px;
  padding: 18px;
  text-transform: uppercase;
  border-radius: 30px;
}

.single__btns .btn--outline {
  background: #fff;
  color: var(--color-body);
  border: 1px solid var(--air-grey);
}

.single__cart-bar .single__btn.btn--outline {
  background: #fff;
}

.single__btn.btn--outline:hover,
.single__btns .single__btn.btn--outline:hover {
  background: var(--color-body);
  color: #fff;
  opacity: 1;
}

.btn--outline:hover {
  opacity: 0.6;
  background: var(--color-body);
  color: white;
}

/* "N ждут поступления" под кнопкой вейтлиста — только когда ждущих 3+. */
.single__waitlist-count {
  font-size: 11px;
  color: var(--dark-grey);
  text-align: center;
  margin: 8px 0 0;
}

.single__add-btns{
  width: 100%;
}

.single__add-btns .single__btn {
  display: block;
  text-align: center;
  text-transform: uppercase;
  background: var(--bg-body);
  color: var(--color-text);
  font-size: 14px;
  line-height: 15px;
  padding: 8px;
  border-radius: 30px;
  border: 1px solid #DADADA;
}

.cart__radios label span::after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-55%);
  border-radius: 100%;
  width: 8px;
  height: 8px;
  border: 3px solid white;
  box-sizing: content-box;
}

.single__el-items .filter__item span {
  font-size: 18px;
  line-height: 15px;
  letter-spacing: -0.5px;
}

.filter__item.disabled span {
  color: #aaa;
  border-color: #aaa;
}

.single__el .catalog__item-colors {
  gap: 6px;
}

.catalog__items {
  background: inherit;
}

input {
  --tw-ring-shadow: 0 0 #000 !important;
  --tw-ring-color: transparent;
}

.header__right {
  column-gap: 18px;
}

.header__search-btn {
  margin-right: 0;
}

.cart__wrapper .single__add-img {
  height: 112px;
}

.single__add-img img {
  object-fit: contain;
}

.cart__radio-wrap.mt-1 {
  margin-top: 1.5rem;
  margin-bottom: 30px;
}

.autocomplete-results {
  max-height: 200px;
  overflow-y: scroll;
  padding: 0 15px;
}

.autocomplete-results div {
  padding: 10px 0;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.orders__el-img {
  height: 74px;
}

.orders__el-img img {
  object-fit: contain;
}

.single__thumbs {
  height: auto;
  max-height: auto;
  overflow: hidden;
  min-width: 118px;
  z-index: 1;
}

@media screen and (max-width: 768px) {
  .burger-btn {
    padding: 25px 35px 25px 20px;
  }

  .single__sliders {
    margin: 0;
  }
}

.burger-btn i::after, .burger-btn i::before {
  height: 1.5px;
}

.overlay__menu {
  line-height: 88%;
}

.catalog__item-label {
  position: absolute;
  top: 24px;
  right: 16px;
  padding: 2px 12px;
  font-size: 11px;
  line-height: 191%;
  background: #f9f7ef;
  color: var(--color-body);
  border-width: 1px;
  border-style: solid;
  border-color: #00000009;
  border-radius: 21px;
  z-index: 2;
}

@media screen and (max-width: 992px) {
  .catalog__item-label {
    font-size: 11px;
    padding: 1.58px 11px;
    border-width: 1px;
    border-style: solid;
    border-color: #00000009;
    border-radius: 11px;
  }
}

.footer__subscribe {
  flex-direction: column;
  width: 600px;
  margin: 0 auto;
  padding: 32px 36px 46px;
}

@media screen and (max-width: 768px) {
  .footer__subscribe {
    width: 100%;
  }
}

.profile__params-items {
  margin-bottom: 20px;
}

.profile__params-item {
  display: flex;
  flex-direction: column;
  row-gap: 6px;
}

.profile__params-item label {
  font-size: 18px;
  line-height: 116%;
  color: var(--light-grey);
}

@media (max-width: 600px) {
  .profile__params-item label {
    font-size: 13px;
  }
}

.profile__params-item input {
  text-align: center;
  font-size: 18px;
  line-height: 116%;
  border: none;
  outline: none;
  border-bottom: 1px solid transparent;
  transition: 0.1s ease;
  width: 70px;
}

@media (max-width: 600px) {
  .profile__params-item input {
    font-size: 15px;
  }
}

.profile__params-item input:focus {
  border-bottom: none;
}

.single__thumb {
  position: relative;
  height: 0;
  padding-bottom: 100%;
  background-size: contain;
  background-position: center;
}

.single__slide {
  object-fit: contain;
  object-position: center;
  width: 100%;
  height: 100%;
  display: block;
}

@media (min-width: 1800px) and (min-aspect-ratio: 16/9) {
  .single__slide {
    padding-bottom: 80px;
  }
}

.single__sliders {
  height: fit-content;
  overflow: visible;
  display: flex;
  align-items: flex-start;
  column-gap: 0px;
  width: 100%;
}

@media (min-width: 993px) {
  /* Symmetric vertical offset so the product photo is always centered
     in the viewport (equal whitespace above and below the image). */
  .single__left {
    --single-gallery-offset: 31px;
  }

  .single .single__container {
    align-items: stretch;
    height: 100svh;
    overflow: hidden;
  }

  .single__left {
    position: relative;
    top: auto;
    align-self: stretch;
    box-sizing: border-box;
    height: 100svh;
    margin-top: 0;
    padding-top: var(--single-gallery-offset);
    padding-bottom: var(--single-gallery-offset);
  }

  .single__sliders {
    position: relative;
    top: auto;
    align-items: center;
    height: calc(100svh - (var(--single-gallery-offset) * 2));
    max-height: calc(100svh - (var(--single-gallery-offset) * 2));
  }

  .single__thumbs {
    max-height: calc(100svh - (var(--single-gallery-offset) * 2));
    overflow-y: auto;
    scrollbar-width: none;
  }

  .single__thumbs::-webkit-scrollbar {
    display: none;
  }

  .single__slider {
    aspect-ratio: auto;
    height: calc(100svh - (var(--single-gallery-offset) * 2));
    max-height: calc(100svh - (var(--single-gallery-offset) * 2));
  }

  .single__slide {
    width: 100%;
    height: 100%;
    margin-top: 0;
    margin-left: 0;
    object-fit: contain;
    object-position: center;
  }

  .single__content {
    box-sizing: border-box;
    height: 100svh;
    max-height: 100svh;
    margin-top: 0;
    margin-left: 10px;
    padding-top: 64px;
    padding-bottom: 40px;
    overflow-y: auto;
    scrollbar-width: none;
  }

  .single__content::-webkit-scrollbar {
    display: none;
  }
}

@media (max-width: 992px) {
  .single {
    width: 100%;
    overflow-x: clip;
  }

  .single .single__container {
    margin-left: auto;
    margin-right: auto;
  }

  .single__left,
  .single__sliders {
    width: 100%;
    max-width: 100%;
  }

  .single__sliders {
    justify-content: center;
  }

  .single__slider {
    width: 100%;
    margin-inline: auto;
  }
}

.single__slider.swiper-horizontal > .swiper-pagination-bullets,
.single__slider .swiper-pagination-bullets.swiper-pagination-horizontal,
.single__slider .swiper-pagination-custom,
.single__slider .swiper-pagination-fraction {
  bottom: var(--swiper-pagination-bottom, 0px);
}

.single__loader {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  transform: none !important;
  background: rgba(255, 255, 255, 0.55) !important;
  pointer-events: none;
  overflow: hidden;
}

/* Заморозка кадра при смене цвета: копия текущего фото поверх галереи.
   Пока swiper пересобирается под ней — мерцания не видно, затем плавный кроссфейд. */
.single__slider-freeze {
  position: absolute;
  inset: 0;
  z-index: 15;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent;
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.32s ease;
  overflow: hidden;
}

.single__slider-freeze.is-hidden {
  opacity: 0;
}

/* Первая загрузка: галерея проявляется плавным fade-in без белой вуали поверх фото. */
.single__slider {
  transition: opacity 0.32s ease;
}

.single__slider.is-loading {
  opacity: 0;
}

.single__loader-spinner {
  width: 28px;
  height: 28px;
  color: #4a4a4a;
  animation: single-loader-spin 0.8s linear infinite;
}

.single__loader-spinner circle {
  stroke: #cccccc;
}

.single__loader-spinner path {
  fill: #4a4a4a;
}

@keyframes single-loader-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 600px) {
  .single__loader-spinner {
    width: 24px;
    height: 24px;
  }
}

/* Monochrome preloaders — black / gray / white only */
.single__loader-spinner,
.catalog__item-nav-loader-spinner,
.catalog__loader-spinner,
.catalog__filter-loader-content svg,
.loader svg,
#checkout-loader svg,
#full-page-loader svg,
.payment-loader svg,
.btn__loader svg {
  color: #4a4a4a !important;
}

.single__loader-spinner circle,
.catalog__item-nav-loader-spinner circle,
.catalog__loader-spinner circle,
.catalog__filter-loader-content svg circle,
.loader svg circle,
#checkout-loader svg circle,
#full-page-loader svg circle,
.payment-loader svg circle,
.btn__loader svg circle {
  stroke: #cccccc !important;
}

#checkout-loader svg,
#full-page-loader svg {
  width: 32px !important;
  height: 32px !important;
}

.single__loader-spinner path,
.catalog__item-nav-loader-spinner path,
.catalog__loader-spinner path,
.catalog__filter-loader-content svg path,
.loader svg path,
#checkout-loader svg path,
#full-page-loader svg path,
.payment-loader svg path,
.btn__loader svg path {
  fill: #4a4a4a !important;
}

/* Universal button loading state */
.btn,
.single__btn,
.cart-btn,
.cart__btn,
.filter__btn {
  position: relative;
}

.btn__loader {
  display: none;
  position: absolute;
  inset: 0;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.btn--loading,
.single__btn.btn--loading,
.cart-btn.btn--loading,
.cart__btn.btn--loading,
.filter__btn.btn--loading {
  position: relative;
  pointer-events: none;
  opacity: 0.85;
}

.btn--loading .btn__text {
  opacity: 0;
  visibility: hidden;
}

.btn--loading .btn__loader {
  display: flex;
  position: absolute;
  inset: 0;
  width: auto;
  height: auto;
  margin: 0;
  transform: none;
  align-items: center;
  justify-content: center;
}

.btn--loading .btn__loader svg {
  width: 1.125rem;
  height: 1.125rem;
}

.single__btn.btn--loading {
  min-height: 49px;
}

.btn--outline.btn--loading .btn__loader,
.single__btn.btn--outline.btn--loading .btn__loader,
.filter__btn--outline.btn--loading .btn__loader {
  color: var(--color-body);
}

.catalog__empty {
  display: flex;
  grid-column: span 12;
  justify-content: center;
  align-items: center;
  height: 30vh;
  width: 100%;
}

.more__items {
  overflow-x: hidden;
}

.more__items::-webkit-scrollbar {
  display: none;
}

.more__items-wrapper {
  min-height: 0 !important;
  display: flex;
  padding: 0;
}

.more__items-wrapper .catalog__item {
  min-width: 487px;
  padding: 0 62px 24px 24px;
  border-right: 1px solid var(--air-grey);
}

.more__items-wrapper .catalog__item:last-child {
  border: none;
}

@media screen and (max-width: 992px) {
  .more__items-wrapper {
    overflow-x: scroll;
  }
  
  .more__items-wrapper .catalog__item {
    min-width: 240px;
    padding: 0 3px 24px 24px;
    border: none;
  }
}

@media screen and (max-width: 480px) {
  .more__items-wrapper {
    padding: 0 12px;
  }
  
  .more__items-wrapper .catalog__item {
    min-width: 190px;
    border: none;
    padding: 0;
    padding-bottom: 21px;
  }
}

section.search .catalog__contents {
  position: absolute;
  z-index: 999;
  background-color: white;
  inset: 0;
  top: 102px;
}

@media (max-width: 768px) {
  section.search .catalog__contents {
    overflow-y: scroll;
    position: fixed;
    top: 94px;
  }
}

/* Убираем стрелки для всех браузеров */
input[type="number"] {
  -webkit-appearance: textfield;
  -moz-appearance: textfield;
  appearance: textfield;
}

/* Убираем стрелки в Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Убираем стрелки в Firefox */
input[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}

.header__search input::placeholder {
  text-transform: uppercase;
}

.main__slide-img img {
  -o-object-fit: cover;
  object-fit: cover;
}

/* Полноэкранный флекс-макет для страницы логина */
body._login {
  min-height: 100svh;
  min-height: 100vh; /* Fallback для старых браузеров */
  display: flex;
  flex-direction: column;
}

body._login main {
  flex-grow: 1;
  display: flex;
}

body._login .registration {
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 0;
  margin-top: 0 !important; /* Убираем стандартный margin-top */
}

body._login .footer {
  margin-top: 0 !important; /* Убираем стандартный margin-top у футера */
}

.single__acc-item {
  border-bottom: 1px solid var(--air-grey);
  padding-bottom: 16px;
  margin-bottom: 33px;
}

.single__acc-item:has(.single__acc-desc.active) {
  border-bottom: none;
  padding-bottom: 0;
}

.single__acc-item:last-child {
  margin-bottom: 0;
}

.single__acc-top,
.single__acc-top span {
  font-family: "XSAI-Bold", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 23px;
  line-height: 19px;
  letter-spacing: 1px;
  color: #000;
}

.single__acc-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}

.single__acc-top img {
  transition: transform 0.3s ease;
  flex-shrink: 0;
}

.single__acc-item:has(.single__acc-desc.active) .single__acc-top img {
  transform: rotate(180deg);
}

.single__acc-top img.active {
  transform: none;
}

.single__acc-desc {
  display: none;
  font-size: 18px;
  line-height: 116%;
  color: var(--color-text);
  max-height: none;
  overflow: visible;
  opacity: 1;
  transition: none;
  padding-top: 0;
  letter-spacing: -0.13rem;
}

.single__acc-desc.active {
  display: block;
  padding-top: 16px;
}

.single__acc-desc.active:not(.complete-the-look) {
  max-height: none;
  letter-spacing: -0.13rem;
}

.single__acc-desc ul {
  list-style: disc;
  padding-left: 25px;
  text-transform: uppercase;
}

.single__acc-desc ul li {
  color: var(--dark-grey);
}

.single__acc-desc--plain,
.single__acc-desc--plain p,
.single__acc-desc--plain ul,
.single__acc-desc--plain li {
  list-style: none;
  padding: 0;
  margin: 0;
  text-transform: none;
  color: var(--color-text);
  letter-spacing: -0.13rem;
}

.single__acc-desc--plain p {
  letter-spacing: -1px;
  padding-top: 18px;
}

/* Единый верхний отступ контента всех табов (как у Product details):
   убираем ведущие 18px у первого абзаца, межабзацный отступ сохраняется. */
.single__acc-desc--plain > p:first-child,
.single__acc-desc--plain > .single__acc-block:first-child > p:first-child {
  padding-top: 0;
}

/* Только таб «Product details» (состав) — и на десктопе, и на мобилке.
   Класс есть исключительно на этом табе, поэтому Care и остальные не трогаем. */
.single__acc-desc--composition,
.single__acc-desc--composition.active:not(.complete-the-look) {
  letter-spacing: -1px;
}

@media (max-width: 768px) {
  .single__acc-top,
  .single__acc-top span {
    font-size: 15px;
    line-height: 17px;
    padding-bottom: 8px;
  }

  .single__acc-desc {
    font-size: 16px;
  }
}

/* PDP accordion: composition/care subblocks, fit, delivery & return */
.single__acc-block + .single__acc-block {
  margin-top: 16px;
}

.single__acc-subtitle {
  font-family: "XSAI-Bold", sans-serif;
  font-size: 18px;
  line-height: 130%;
  letter-spacing: 0;
  text-transform: uppercase;
  color: #a9a9a9;
  margin-bottom: 6px;
  padding-top: 12px;
}

.single__acc-text {
  font-size: 18px;
  line-height: 114%;
  letter-spacing: -1px;
}

.single__delivery-rows {
  display: flex;
  flex-direction: column;
}

.single__delivery-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 7px 0;
  border-bottom: 1px dotted #d8d5ce;
  font-size: 17px;
  line-height: 120%;
  letter-spacing: -0.5px;
}

.single__delivery-row:last-child {
  border-bottom: 0;
}

.single__delivery-label {
  color: #353535;
}

.single__delivery-value {
  color: #676767;
  text-align: right;
  white-space: nowrap;
}

.single__delivery-foot {
  margin-top: 10px;
  font-size: 14px;
  line-height: 120%;
  letter-spacing: -0.3px;
  color: #a9a9a9;
}

.single__acc-link {
  display: inline-block;
  margin-top: 12px;
  padding: 0;
  background: none;
  border: 0;
  cursor: pointer;
  font-family: "XSAI", sans-serif;
  font-size: 15px;
  line-height: 130%;
  color: var(--color-body);
  text-decoration: none;
  text-decoration-style: dotted;
}

.single__acc-link:hover {
  text-decoration-style: solid;
}

.single__delivery-list {
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
}

.single__delivery-item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid var(--air-grey);
  letter-spacing: -0.04em;
}

.single__delivery-item:last-child {
  border-bottom: 0;
}

.single__delivery-name {
  font-size: 18px;
  line-height: 195%;
  letter-spacing: -1px;
  color: var(--color-body);
}

.single__delivery-meta {
  flex-shrink: 0;
  font-size: 18px;
  color: var(--dark-grey);
  text-align: right;
}

.single__return-note {
  margin-top: 22px;
  padding-top: 23px;
  font-size: 18px;
  line-height: 130%;
  letter-spacing: -1px;
  color: var(--dark-grey);
}

.single__return-note--none {
  color: #b0413e;
}

.single__measurements-title {
  font-family: "XSAI-Bold", sans-serif;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 16px;
  text-align: center;
}

.single__measurements-img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* "Вам может понравиться" reroll button */
.classics-slider__reroll {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  font-family: "XSAI", sans-serif;
  font-size: 14px;
  line-height: 24px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--dark-grey);
  text-decoration: none;
  flex-shrink: 0;
  transition: opacity 0.2s ease;
}

.classics-slider__reroll-icon {
  display: block;
}

.classics-slider__reroll:hover {
  opacity: 0.6;
}

.classics-slider__reroll:disabled {
  opacity: 0.4;
  cursor: default;
}

@media (max-width: 768px) {
  .single__delivery-name,
  .single__delivery-meta,
  .single__return-note {
    font-size: 16px;
  }

  .classics-slider__reroll {
    font-size: 13px;
  }
}

/* Стили для input элементов на странице checkout */
.cart__wrapper .input {
  border-bottom: 1px solid var(--outline-grey);
}

/* Убираем border-bottom для input с кастомным селектом (в стиле FAQ) */
.input--select {
  border-bottom: none !important;
}

.cart__wrapper .input--select {
  border-bottom: none !important;
}

/* Uppercase для select и их option */
select.uppercase,
select.uppercase option {
  text-transform: uppercase;
}

/* Лоадер для фильтров в каталоге */
.catalog__filter-loader {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.catalog__filter-loader-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.catalog__filter-loader-content svg {
  width: 32px;
  height: 32px;
  color: #4a4a4a;
}

@media (max-width: 768px) {
  .catalog__filter-loader-content svg {
    width: 28px;
    height: 28px;
  }
}

/* Instagram-style swipe on product page (mobile): override fade-only opacity rules */
@media (max-width: 576px) {
  .single__slider:not(.swiper-fade) .swiper-wrapper {
    display: flex;
    will-change: transform;
  }
  .single__slider:not(.swiper-fade) .swiper-slide,
  .single__slider:not(.swiper-fade) .swiper-slide:not(.swiper-slide-active),
  .single__slider:not(.swiper-fade) .swiper-slide-active,
  .single__slider:not(.swiper-fade) .swiper-slide:first-child,
  .single__slider:not(.swiper-fade) .swiper-wrapper .swiper-slide:first-child,
  .single__slider:not(.swiper-fade) .swiper-wrapper .swiper-slide:first-of-type,
  .single__slider:not(.swiper-fade) .swiper-wrapper .swiper-slide:nth-child(1),
  .single__slider:not(.swiper-fade) .swiper-wrapper .swiper-slide[data-swiper-slide-index="0"] {
    opacity: 1 !important;
    transition: none !important;
  }
}

/* Homepage: halve the gap below the bestsellers carousel (footer default margin-top is 160px) */
body._home .footer,
body._home .footer-mob {
  margin-top: 80px;
}

/* Horizontal scroll strips (Noisiv-style: native scroll, snap on mobile, drag on desktop) */
.horizontal-scroll {
  overflow: hidden;
  width: 100%;
}

.horizontal-scroll__track {
  display: flex;
  align-items: stretch;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  scroll-behavior: auto;
}

.horizontal-scroll__track::-webkit-scrollbar {
  display: none;
}

.horizontal-scroll__slide {
  flex-shrink: 0;
  min-width: 0;
  height: auto;
}

.horizontal-scroll__end {
  flex: 0 0 1px;
  width: 1px;
  height: 1px;
}

@media (max-width: 768px) {
  .horizontal-scroll__track {
    scroll-snap-type: x mandatory;
  }

  .horizontal-scroll__slide {
    scroll-snap-align: start;
  }
}

@media (min-width: 769px) {
  .horizontal-scroll__track {
    cursor: grab;
  }

  .horizontal-scroll__track.is-dragging {
    cursor: grabbing;
    user-select: none;
  }
}

.classics-slider__btn-prev:disabled,
.classics-slider__btn-next:disabled {
  cursor: default;
  pointer-events: none;
}

/* Product carousels: same peek ratios as former Swiper breakpoints */
[data-scroll-variant="product"] .horizontal-scroll__track {
  gap: 30px;
}

[data-scroll-variant="product"] .horizontal-scroll__slide {
  flex: 0 0 calc((100% - 30px * 3.5) / 4.5);
}

@media (max-width: 1199px) {
  [data-scroll-variant="product"] .horizontal-scroll__slide {
    flex-basis: calc((100% - 30px * 2.5) / 3.5);
  }
}

@media (max-width: 767px) {
  [data-scroll-variant="product"] .horizontal-scroll__track {
    gap: 20px;
  }

  [data-scroll-variant="product"] .horizontal-scroll__slide {
    flex-basis: calc((100% - 20px * 1.5) / 2.5);
  }
}

@media (max-width: 479px) {
  [data-scroll-variant="product"] .horizontal-scroll__track {
    gap: 15px;
  }

  [data-scroll-variant="product"] .horizontal-scroll__slide {
    flex-basis: calc((100% - 15px * 0.5) / 1.5);
  }
}

/* Shop the look / trending strips */
[data-scroll-variant="shop-look"] .horizontal-scroll__track {
  gap: 10px;
}

[data-scroll-variant="shop-look"] .horizontal-scroll__slide {
  flex: 0 0 calc((100% - 10px * 0.5) / 1.5);
}

@media (min-width: 481px) {
  [data-scroll-variant="shop-look"] .horizontal-scroll__track {
    gap: 20px;
  }

  [data-scroll-variant="shop-look"] .horizontal-scroll__slide {
    flex-basis: calc((100% - 20px * 1) / 2);
  }
}

@media (min-width: 769px) {
  [data-scroll-variant="shop-look"] .horizontal-scroll__track {
    gap: 30px;
  }

  [data-scroll-variant="shop-look"] .horizontal-scroll__slide {
    flex-basis: calc((100% - 30px * 2) / 3);
  }
}

.shop-look__slider.horizontal-scroll {
  overflow: hidden;
}

.classics-slider__swiper.horizontal-scroll {
  overflow: hidden;
}

/* Full-bleed horizontal strips inside padded sections */
.classics-slider,
.shop-look,
.more.classics-slider {
  --hscroll-inset: 50px;
}

html,
body {
  scrollbar-gutter: auto;
}

@media (max-width: 768px) {
  .classics-slider,
  .shop-look,
  .more.classics-slider {
    --hscroll-inset: 30px;
  }
}

.classics-slider > .horizontal-scroll,
.classics-slider > .classics-slider__swiper.horizontal-scroll,
.shop-look > .horizontal-scroll,
.shop-look > .shop-look__slider.horizontal-scroll,
.more.classics-slider > .classics-slider__swiper.horizontal-scroll {
  width: calc(100% + (var(--hscroll-inset) * 2));
  margin-left: calc(-1 * var(--hscroll-inset));
  margin-right: calc(-1 * var(--hscroll-inset));
  overflow: hidden;
}

.more.classics-slider {
  overflow-x: visible;
}

.classics-slider .horizontal-scroll__track,
.shop-look .horizontal-scroll__track,
.more.classics-slider .horizontal-scroll__track {
  padding-left: var(--hscroll-inset);
  padding-right: 0;
  scroll-padding-inline-start: var(--hscroll-inset);
  box-sizing: border-box;
}

.single__top-right {
  justify-content: flex-start;
  gap: 6px;
}

.single__priceplan-wrap {
  display: flex;
  justify-content: flex-end;
}

.single__priceplan {
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  color: var(--dark-grey);
  text-transform: uppercase;
  white-space: nowrap;
}

.single__priceplan:hover {
  opacity: 0.6;
}

/* Desktop banner: scale font instead of wrapping */
.main__slider .main__offer {
  font-size: clamp(2rem, 6.5vw, 91.02px);
  line-height: 0.95;
  white-space: nowrap;
}

.main__slider .main__offer-additional {
  font-size: clamp(1rem, 1.8vw, 21.456px);
  line-height: 1.35;
  white-space: nowrap;
}

/* Crossed-out price to the left of main price; prevent line breaks */
.single__price > span {
  display: inline-flex;
  align-items: baseline;
}

.single__price > span > span {
  white-space: nowrap;
}

.single__price > span > .line-through {
  order: -1;
  margin-right: 6px;
  margin-left: 0;
}

@media (max-width: 600px) {
  .single__priceplan-wrap {
    justify-content: center;
    margin-top: 4px;
  }

  .single__price {
    margin-bottom: 0;
  }

  /* На мобилке зачёркнутую старую цену ставим под обычной, а не слева. */
  .single__price > span {
    flex-direction: column;
    align-items: center;
  }

  .single__price > span > .line-through {
    order: 1;
    margin-right: 0;
    margin-left: 0;
    margin-top: 2px;
  }

  .single__top {
    flex-direction: column;
    text-align: center;
    margin-bottom: 20px;
  }

  .single__el-items {
    justify-content: center;
    margin-bottom: 10px;
    padding-left: 10px;
    padding-right: 10px;
  }
}

.single__installment-modal-content {
  padding: 56px 32px;
}

.single__installment-modal-text {
  font-family: "XSAI";
  font-size: 18px;
  line-height: 116%;
  text-transform: uppercase;
  margin: 0;
}

@media (max-width: 600px) {
  .single__installment-modal-content {
    padding: 48px 24px;
  }

  .single__installment-modal-text {
    font-size: 14px;
  }
}

.home-product-carousel__grid,
.more-classics-slider__grid {
  display: none;
}

.classics-slider__header-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}

.more.classics-slider .classics-slider__title {
  color: #000;
  line-height: 1.25;
}

.classics-slider__all {
  display: none;
  font-family: "XSAI";
  font-size: 14px;
  line-height: 24px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--dark-grey);
  text-decoration: none;
  flex-shrink: 0;
}

.classics-slider__all:hover {
  opacity: 0.6;
}

@media (max-width: 768px) {
  .classics-slider {
    padding: 0 20px;
  }

  .home-product-carousel__scroll,
  .more-classics-slider__scroll {
    display: none !important;
  }

  .home-product-carousel__grid,
  .more-classics-slider__grid {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    width: 100%;
    gap: 1px;
  }

  .home-product-carousel__grid > .catalog__item,
  .more-classics-slider__grid > .catalog__item,
  .more-classics-slider__grid > div > .catalog__item {
    flex: 0 0 calc(50% - 1px);
    max-width: calc(50% - 1px);
    min-width: 0;
    padding: 0 0 15px 0;
    box-sizing: border-box;
  }

  .more-classics-slider__grid > div {
    flex: 0 0 calc(50% - 1px);
    max-width: calc(50% - 1px);
    min-width: 0;
  }

  .more.classics-slider {
    margin-bottom: 32px;
  }

  .more.classics-slider .classics-slider__header {
    padding: 0;
    margin-bottom: 20px;
    gap: 12px;
    align-items: flex-start;
    overflow: visible;
  }

  .more.classics-slider .classics-slider__title {
    flex: 1 1 auto;
    min-width: 0;
    color: #000;
    font-size: 16px;
    line-height: 24px;
    letter-spacing: 0.1em;
  }

  .more.classics-slider .classics-slider__header-actions {
    margin-left: auto;
    flex-shrink: 0;
  }

  .more.classics-slider .classics-slider__nav {
    display: none;
  }

  .more.classics-slider .classics-slider__swiper {
    padding: 0;
  }

  .home-product-carousel .classics-slider__nav {
    display: none;
  }

  .home-product-carousel .classics-slider__all {
    display: inline-block;
  }

  .home-product-carousel .classics-slider__header {
    gap: 12px;
  }

  .home-product-carousel .classics-slider__title {
    flex: 1 1 auto;
    min-width: 0;
  }

  .home-product-carousel .classics-slider__header-actions {
    margin-left: auto;
  }
}

/* Product page: sticky add-to-cart above mobile nav */
@media (min-width: 769px) {
  .single__cart-bar {
    margin-bottom: 32px;
  }
}

@media (max-width: 768px) {
  .single__cart-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 66px;
    z-index: 9998;
    padding: 10px 16px 8px;
    background: none;
    border: 0;
    backdrop-filter: none;
  }

  .single__cart-bar .single__btns,
  .single__cart-bar .js-add-to-cart {
    margin: 0;
  }

  .single__cart-bar .single__btns .single__btn {
    margin-bottom: 0;
  }

  .single .single__container {
    margin-left: 16px;
    margin-right: 16px;
    padding-bottom: 32px;
  }

  .single ~ .mobile-nav-spacer,
  body:has(.single) .mobile-nav-spacer {
    height: 130px;
  }
}

.preorder-notice-pill {
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  max-width: 100%;
  padding: 12px 16px;
  margin-bottom: 20px;
  border-radius: 999px;
  background: #f3f3f3;
  color: #353535;
  font-family: "XSAI", sans-serif;
  font-size: 14px;
  line-height: 130%;
  letter-spacing: -0.04em;
}

.preorder-notice-pill__icon {
  display: inline-flex;
  flex: 0 0 auto;
  margin-top: 1px;
  color: #676767;
}

.preorder-notice-pill__text {
  flex: 1 1 auto;
  min-width: 0;
  text-transform: uppercase;
}

.single__preorder-notice {
  margin-top: -42px;
  background-color: white;
  border-color: #c3c3c3;
  border-width: 1px;
}

@media (max-width: 600px) {
  .preorder-notice-pill {
    border-radius: 20px;
    font-size: 13px;
    text-align: left;
    margin-bottom: 16px;
  }

  .single__preorder-notice {
    margin-top: 0;
  }
}

.preorder-notice-pill--compact {
  margin-bottom: 8px;
  padding: 8px 12px;
  font-size: 12px;
  line-height: 125%;
  border-radius: 16px;
  gap: 8px;
}

.preorder-notice-pill--compact .preorder-notice-pill__icon svg {
  width: 14px;
  height: 14px;
}

.preorder-notice-pill--cart {
  margin-top: 12px;
  margin-bottom: 0;
  padding: 10px 14px;
  font-size: 13px;
  border-radius: 20px;
}

/* Product page: low stock hint, trust line, description after cart */
.single__low-stock {
  width: 100%;
  font-family: "XSAI", sans-serif;
  font-size: 12px;
  line-height: 130%;
  color: #777;
  margin-top: 10px;
  letter-spacing: 0;
  text-align: center;
  text-transform: uppercase;
}

.single__preorder-text {
  width: 100%;
  margin-top: 10px;
  font-family: "XSAI", sans-serif;
  font-size: 12px;
  line-height: 130%;
  letter-spacing: 0;
  text-align: center;
  text-transform: uppercase;
  color: #777;
}

.single__el--size {
  display: flex;
  flex-direction: column;
}

.single__el--size .single__el-offer {
  order: 1;
}

.single__el--size .single__el-items {
  order: 2;
}

.single__el--size .single__low-stock,
.single__el--size .single__preorder-text {
  order: 3;
}

.single__purchase-trust {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0 8px;
  margin-top: 10px;
  font-family: "XSAI", sans-serif;
  font-size: 11px;
  line-height: 130%;
  color: var(--color-body);
  opacity: 0.45;
  text-align: center;
  text-transform: uppercase;
}

.single__purchase-trust-item {
  display: inline-flex;
  align-items: center;
}

.single__purchase-trust-separator {
  line-height: 1;
}

.single__desc.single__desc--before-options {
  margin-top: 0;
  margin-bottom: 24px;
  font-size: 18px;
  letter-spacing: -1px;
}

/* MacBook Pro 13" (1280×800) & 16" (1536×960 / 1728×1117) — Retina screens only */
@media screen and (min-width: 1278px) and (max-width: 1282px) and (min-resolution: 2dppx),
       screen and (min-width: 1534px) and (max-width: 1538px) and (min-resolution: 2dppx),
       screen and (min-width: 1726px) and (max-width: 1730px) and (min-resolution: 2dppx) {
  .single__desc.single__desc--before-options {
    letter-spacing: -2px;
  }
}

@media (max-width: 600px) {
  .single__content {
    display: flex;
    flex-direction: column;
  }

  .single__content > .single__top {
    order: 1;
  }

  .single__content > .single__el--color {
    order: 11;
  }

  .single__content > .single__el--size {
    order: 12;
  }

  .single__content > .single__el:not(.single__el--color):not(.single__el--size) {
    order: 13;
  }

  .single__content > .single__desc,
  .single__content > .single__desc.single__desc--before-options {
    order: 20;
  }

  .single__content > .single__preorder-notice {
    order: 25;
  }

  .single__content > .single__cart-bar {
    order: 30;
  }

  .single__content > .single__acc {
    order: 40;
  }

  .single__el--size {
    flex-direction: column;
  }

  .single__el--size .single__el-items {
    order: 1;
  }

  .single__el--size .single__el-offer {
    order: 2;
  }

  .single__el--size .single__low-stock,
  .single__el--size .single__preorder-text {
    order: 3;
  }

  .single__low-stock {
    text-align: center;
    margin-top: 6px;
  }

  .single__desc.single__desc--before-options {
    margin-top: 0;
    margin-bottom: 34px;
    font-size: 15px;
    letter-spacing: -1px;
  }

  .single__add-offer {
    font-size: 16px;
    letter-spacing: 0;
  }

  .single__add-price {
    font-size: 14px;
    letter-spacing: 0;
  }

  .single__acc-subtitle {
    font-family: "XSAI-Bold", sans-serif;
    font-size: 15px;
    line-height: 130%;
    letter-spacing: 0;
  }

  .single__acc-text {
    letter-spacing: 0;
    font-size: 14px;
  }

  .single__acc-desc--plain p,
  .single__acc-desc--plain ul,
  .single__acc-desc--plain li {
    font-size: 14px;
    letter-spacing: -1px;
  }

  .single__return-note {
    padding-top: 17px;
    font-size: 14px;
    letter-spacing: -1px;
  }

  .single__acc-desc.active:not(.complete-the-look) {
    padding-top: 5px;
  }

  .single__acc-item:last-child .single__acc-desc.active {
    line-height: 192%;
  }
}

@media (max-width: 768px) {
  .single__cart-bar {
    padding: 10px 16px 6px;
  }

  .single__purchase-trust {
    display: none;
  }

  body:has(.single) .mobile-nav-spacer {
    height: 148px;
  }
}

.complete-the-look .single__add-item {
  align-items: stretch;
}

.complete-the-look .single__add-wrapper {
  min-width: 0;
}

.single__add-offer {
  font-size: 20px;
  line-height: 116%;
  letter-spacing: 0;
}

.single__add-price {
  font-size: 15px;
  letter-spacing: 0;
}

.shop-look-popup__products-list .single__add-item {
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #ececec;
}

.shop-look-popup__products-list .single__add-item:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.shop-look-popup__products-list .preorder-notice-pill--compact {
  margin-top: 2px;
}

/* Desktop quick filters: pills on the right, immediately left of "Filters". */
.catalog__top-right {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-left: auto;
}

.catalog__quick {
  display: none;
}

@media (min-width: 993px) {
  .catalog__quick {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
  }
}

.catalog__quick-item {
  position: relative;
}

.catalog__quick-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "XSAI-Bold";
  font-size: 13px;
  line-height: 14px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  padding: 7px 14px 6px;
  background: #fff;
  border: 1px solid var(--air-grey);
  border-radius: 27px;
  cursor: pointer;
  transition: 0.1s ease;
  white-space: nowrap;
}

.catalog__quick-pill:hover,
.catalog__quick-pill.is-active {
  border-color: var(--color-body);
}

.catalog__quick-dots {
  display: inline-flex;
  align-items: center;
}

.catalog__quick-dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, 0.15);
  flex-shrink: 0;
}

.catalog__quick-dots .catalog__quick-dot:not(:first-child) {
  margin-left: -5px;
}

/* Popover — position: fixed so it paints above all catalog stacking contexts */
.catalog__quick-pop {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  left: auto;
  z-index: 200;
}

.catalog__quick-pop--fixed {
  position: fixed;
  z-index: 10001;
  min-width: 190px;
  max-height: 340px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--air-grey);
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1);
  padding: 6px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.catalog__quick-option {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  padding: 9px 11px;
  border: none;
  border-radius: 10px;
  background: transparent;
  cursor: pointer;
  text-align: left;
  font-family: "XSAI-Bold";
  font-size: 13px;
  line-height: 14px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: var(--color-body);
  transition: background 0.1s ease;
}

.catalog__quick-option:hover {
  background: #f5f5f5;
}

.catalog__quick-option input {
  display: none;
}

.catalog__quick-option:has(input:checked),
.catalog__quick-option--btn.is-selected {
  background: #f0f0f0;
}

.catalog__quick-swatch {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, 0.15);
  flex-shrink: 0;
}

.catalog__quick-option:has(input:checked) .catalog__quick-swatch {
  box-shadow: 0 0 0 1px var(--color-body);
}

/* Auth forms: login / register / popup */
.registration__bottom {
  row-gap: 6px;
}

.registration__bottom .btn,
.registration__bottom .auth-tg__button {
  background-color: #222 !important;
  color: #fff !important;
  border-color: #222 !important;
  letter-spacing: 4%;
  line-height: 15px;
  font-size: 18px;
  text-transform: uppercase;
}

.registration__bottom .auth-tg__button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
}

.registration__bottom .btn:hover,
.registration__bottom .auth-tg__button:hover {
  background-color: #222 !important;
  color: #fff !important;
  border-color: #222 !important;
  opacity: 1;
}

.registration .registration__bottom-text,
.registration .registration__check,
.desc {
  margin-top: 10px;
}

.registration .input input,
.registration .input textarea {
  background-color: #fff !important;
  background-image: none !important;
}

.registration .input input:-webkit-autofill,
.registration .input input:-webkit-autofill:hover,
.registration .input input:-webkit-autofill:focus,
.registration .input input:-webkit-autofill:active,
.registration .input textarea:-webkit-autofill,
.registration .input textarea:-webkit-autofill:hover,
.registration .input textarea:-webkit-autofill:focus,
.registration .input textarea:-webkit-autofill:active {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-color: #fff !important;
  background-image: none !important;
  background-clip: content-box !important;
  -webkit-background-clip: text !important;
  -webkit-box-shadow: 0 0 0 100vmax #fff inset !important;
  box-shadow: 0 0 0 100vmax #fff inset !important;
  -webkit-text-fill-color: var(--color-black) !important;
  caret-color: var(--color-black) !important;
  color: var(--color-black) !important;
  transition: background-color 999999s ease-in-out 0s, color 999999s ease-in-out 0s !important;
}

.registration .input input:autofill,
.registration .input textarea:autofill {
  background-color: #fff !important;
  background-image: none !important;
  box-shadow: 0 0 0 100vmax #fff inset !important;
  -webkit-text-fill-color: var(--color-black) !important;
  color: var(--color-black) !important;
}

/* Telegram login button on auth pages */
.auth-tg {
  margin-top: 0;
  width: 100%;
}

.auth-tg__button {
  position: relative;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100%;
  text-decoration: none !important;
  font-family: "XSAI", sans-serif;
  text-transform: uppercase;
  letter-spacing: 4%;
  line-height: 15px;
  font-size: 18px;
  background-color: #222 !important;
  color: #fff !important;
  border: 1px solid #222 !important;
  cursor: pointer;
}

.auth-tg__button:hover {
  background-color: #222 !important;
  color: #fff !important;
  opacity: 1;
}

.auth-tg__button .btn__text {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.auth-tg__icon {
  flex: 0 0 auto;
  display: inline-block;
  width: 18px;
  height: 18px;
  background-color: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.78 18.65l.28-4.23 7.68-6.92c.34-.31-.07-.46-.52-.19L7.74 13.3 3.64 12c-.88-.25-.89-.86.2-1.3l15.97-6.16c.73-.33 1.43.18 1.15 1.3l-2.72 12.81c-.19.91-.74 1.13-1.5.71L12.6 16.3l-1.99 1.93c-.23.23-.42.42-.83.42z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.78 18.65l.28-4.23 7.68-6.92c.34-.31-.07-.46-.52-.19L7.74 13.3 3.64 12c-.88-.25-.89-.86.2-1.3l15.97-6.16c.73-.33 1.43.18 1.15 1.3l-2.72 12.81c-.19.91-.74 1.13-1.5.71L12.6 16.3l-1.99 1.93c-.23.23-.42.42-.83.42z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.auth-tg__label {
  display: inline-block;
  line-height: 1;
  color: #fff !important;
  -webkit-text-fill-color: #fff;
  white-space: nowrap;
}

.registration__bottom-auth .auth-tg {
  margin-top: 0;
}

@media screen and (max-width: 480px) {
  .registration__bottom .btn,
  .registration__bottom .auth-tg__button {
    font-size: 16px;
  }
}

/* Registration / login form spacing & typography polish */
.registration .offer {
  margin-bottom: 34px;
}

.registration .desc {
  font-size: 19px;
  line-height: 100%;
  margin: 0 0 18px 0;
}

.registration input {
  margin-bottom: 5px;
}

.registration__bottom .auth-tg__button {
  padding: 14px !important;
}

/*
 * Telegram Mini App fullscreen (паттерн NOISIA):
 * --tg-layout-top — под кнопки «Закрыть» / «…» Telegram;
 * --tg-layout-bottom — небольшой отступ снизу, чтобы нижнее меню не прилипало к краю.
 */
html.tg-mini-app {
  --tg-extra-top: 0px;
  --tg-extra-bottom: 0px;
  /* Резерв под верхнюю шапку TG нужен только в фуллскрине (правило ниже). В оконном
     режиме шапку рисует сам Telegram — иначе контент уезжал вниз на ~90px. */
  --tg-chrome-min-top: 0px;
  --tg-layout-top: max(
    calc(var(--tg-safe-top, 0px) + var(--tg-extra-top)),
    var(--tg-chrome-min-top)
  );
  --tg-layout-bottom: calc(
    var(--tg-safe-bottom, env(safe-area-inset-bottom, 0px)) + var(--tg-extra-bottom)
  );
  /* header (57px) + TG insets + нижнее меню (~70px) */
  --tg-viewport-chrome: calc(var(--tg-layout-top) + 57px + var(--tg-layout-bottom) + 70px);
}

/* Фуллскрин: резервируем место под верхнюю шапку Telegram (close/more). */
html.tg-mini-app--fullscreen {
  --tg-chrome-min-top: 90px;
}

html.tg-mini-app body {
  border-top-width: 0;
  padding-top: calc(52px + var(--top-banner-offset, 0px) + var(--tg-layout-top));
}

/* Белая «шапка» над fixed header — при скролле контент не просвечивает в зоне TG-inset */
html.tg-mini-app body::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1099;
  pointer-events: none;
  background: #fff;
  height: calc(var(--tg-layout-top) + var(--top-banner-offset, 0px) + 52px);
}

@media screen and (max-width: 992px) {
  html.tg-mini-app body {
    padding-top: calc(57px + var(--top-banner-offset, 0px) + var(--tg-layout-top));
  }

  html.tg-mini-app body::before {
    height: calc(var(--tg-layout-top) + var(--top-banner-offset, 0px) + 57px);
  }
}

html.tg-mini-app .top-page-banner {
  top: var(--tg-layout-top);
}

html.tg-mini-app .header {
  top: calc(var(--top-banner-offset, 0px) + var(--tg-layout-top));
}

html.tg-mini-app .search {
  top: calc(52px + var(--top-banner-offset, 0px) + var(--tg-layout-top));
}

html.tg-mini-app .header__search--mob {
  top: calc(var(--top-banner-offset, 0px) + var(--tg-layout-top));
}

html.tg-mini-app .search-modal {
  top: calc(57px + var(--top-banner-offset, 0px) + var(--tg-layout-top));
}

@media screen and (max-width: 992px) {
  html.tg-mini-app .search {
    top: calc(57px + var(--top-banner-offset, 0px) + var(--tg-layout-top));
  }
}

@media screen and (min-width: 769px) {
  html.tg-mini-app .search-modal {
    top: calc(103px + var(--top-banner-offset, 0px) + var(--tg-layout-top));
  }
}

html.tg-mini-app .mobile-nav {
  padding-bottom: calc(10px + var(--tg-safe-bottom, env(safe-area-inset-bottom, 0px)));
}

html.tg-mini-app .mobile-nav-spacer {
  height: calc(50px + var(--tg-safe-bottom, env(safe-area-inset-bottom, 0px)));
}

/* Бургер: на всю высоту до низа — mobile-nav (z-index 9999) перекрывает снизу */
html.tg-mini-app:not(:has(.mobile-nav)) {
  --tg-menu-bottom-offset: var(--tg-layout-bottom, 0px);
}

html.tg-mini-app .burger {
  top: calc(var(--top-banner-offset, 0px) + var(--tg-layout-top, 0px) + 57px) !important;
  bottom: 0 !important;
  height: auto !important;
}

html.tg-mini-app .burger__wrapper {
  padding-bottom: calc(72px + var(--tg-safe-bottom, env(safe-area-inset-bottom, 0px)));
}

html.tg-mini-app .burger__settings {
  bottom: calc(72px + var(--tg-safe-bottom, env(safe-area-inset-bottom, 0px)));
}

html.tg-mini-app .burger__nav-scroll {
  max-height: calc(100% - 160px);
}

html.tg-mini-app .overlay__content {
  top: calc(107.58px + var(--top-banner-offset, 0px) + var(--tg-layout-top, 0px)) !important;
  height: calc(100vh - 107.58px - var(--top-banner-offset, 0px) - var(--tg-layout-top, 0px) - var(--tg-menu-bottom-offset, 0px)) !important;
}

html.tg-mini-app .overlay__content--clear {
  top: calc(48.8px + var(--top-banner-offset, 0px) + var(--tg-layout-top, 0px)) !important;
  height: calc(100% - 48.8px - var(--top-banner-offset, 0px) - var(--tg-layout-top, 0px) - var(--tg-menu-bottom-offset, 0px)) !important;
}

html.tg-mini-app .overlay__content--crumbs {
  top: calc(97.58px + var(--top-banner-offset, 0px) + var(--tg-layout-top, 0px)) !important;
}

html.tg-mini-app .search__overlay {
  top: calc(var(--top-banner-offset, 0px) + var(--tg-layout-top, 0px) + 57px) !important;
}

html.tg-mini-app .tg-sub-popup {
  display: none !important;
}

/* TG WebView: постер виден, видео скрыто до первого кадра (NOISIA) */
html.tg-mini-app .main__slide--video .main__slide-video {
  opacity: 0;
  transition: opacity 0.3s ease;
}

html.tg-mini-app .main__slide--video .main__slide-video.tg-video-playing {
  opacity: 1;
  z-index: 2;
}

html.tg-mini-app .main__slide--video:has(.main__slide-video.tg-video-playing) .main__slide-video-cover {
  opacity: 0;
  visibility: hidden;
}

html.tg-mini-app .cloudpayments-tg-hint {
  display: block;
}

.cloudpayments-tg-hint {
  display: none;
}

/* Текст про бесплатную доставку в попапе корзины — десктоп и мобилка */
.cart-freeship .text-gray-900 {
  font-size: 12px;
  letter-spacing: 1px;
}

/* Обычная мобилка: чуть выше фото товара (перекрывает 60svh из main.css). */
@media (max-width: 541px) {
  .single__slider {
    max-height: 60.4svh;
  }
}

@media (max-width: 768px) {
  html.tg-mini-app .main--mobile-full-height {
    height: 87svh;
    max-height: 87svh;
    min-height: 240px;
    padding-bottom: calc(70px + var(--tg-layout-bottom));
  }

  html.tg-mini-app .single__cart-bar {
    bottom: calc(66px + var(--tg-layout-bottom));
  }

  html.tg-mini-app body:has(.single) .mobile-nav-spacer {
    height: calc(148px + var(--tg-layout-bottom));
  }

  /* TG WebView: vh/svh резолвятся выше, чем в Safari, поэтому фото товара
     раздувается и налезает на цену/рассрочку (их перекрывает кнопка корзины).
     Жёстко привязываем высоту галереи к высоте контейнера, чтобы фото
     не переполняло блок и цена была видна — как в обычном мобильном Safari. */
  html.tg-mini-app .single__left {
    height: auto;
  }

  /* Фото не больше 55svh, но и не выше, чем (вьюпорт − 440px): этот резерв
     гарантирует, что цена + рассрочка остаются над кнопкой корзины на любой
     высоте экрана + небольшой отступ. На высоких экранах работает 55svh
     (крупное фото), на низких/айфоне — calc, который держит отступ от кнопки. */
  html.tg-mini-app .single__slider {
    height: auto;
    max-height: min(55svh, calc(100svh - 440px));
    overflow: hidden;
  }

  html.tg-mini-app .single__slide {
    max-height: min(55svh, calc(100svh - 440px));
  }
}

@media (orientation: landscape) {
  html.tg-mini-app {
    --tg-extra-top: 0px;
    --tg-chrome-min-top: 0px;
    --tg-layout-top: 0px;
  }
}

/* Telegram Desktop: узкое окно Mini App — без 90px chrome (не зависит от ширины viewport) */
html.tg-mini-app.tg-mini-app--desktop {
  --tg-extra-top: 0px;
  --tg-extra-bottom: 0px;
  --tg-chrome-min-top: 0px;
  --tg-layout-top: 0px;
  --tg-layout-bottom: 0px;
  background: #fff;
}

html.tg-mini-app.tg-mini-app--desktop body {
  background: #fff;
  border-top-width: 0;
}

html.tg-mini-app.tg-mini-app--desktop body::before {
  height: calc(var(--top-banner-offset, 0px) + 52px);
}

@media screen and (max-width: 992px) {
  html.tg-mini-app.tg-mini-app--desktop body::before {
    height: calc(var(--top-banner-offset, 0px) + 57px);
  }
}


/* ===== Сетка категорий (app-icon style) ===== */
[x-cloak] {
  display: none !important;
}

.category-grid {
  margin: 47px 0 0;
  padding: 0 20px;
}

/* Ссылка ALL в шапке блока — как в каруселях, но видима на всех ширинах */
.category-grid .classics-slider__all {
  display: inline-block;
}

.category-grid__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-top: 34px;
}

.category-grid__tile {
  display: block;
  min-width: 0;
  text-align: center;
  text-decoration: none;
}

.category-grid__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  background: var(--bg-body);
  border: 1px solid rgba(45, 45, 45, 0.14);
  border-radius: 18px;
  color: var(--color-black);
  transition: border-color 0.2s var(--transition), background 0.2s var(--transition);
}

.category-grid__tile:hover .category-grid__icon {
  border-color: rgba(45, 45, 45, 0.4);
}

/* Текстовые плитки (без иконки/фото) — не квадрат, а компактная карточка с именем */
.category-grid__icon--text {
  aspect-ratio: auto;
  min-height: 74px;
  padding: 8px 4px;
}

/* Фото-плитки (как значки App Store): белый квадрат с бордером, фото вписано по
   длинной стороне (contain), остальное — белый фон; подпись под квадратом. */
.category-grid__icon--photo {
  aspect-ratio: auto;
  min-height: 74px;
  padding: 8px;
  overflow: hidden;
}

.category-grid__icon--photo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.category-grid__caption {
  display: block;
  margin-top: 8px;
  font-family: "XSAI-Bold", sans-serif;
  font-size: 12px;
  letter-spacing: 0.04em;
  line-height: 1.25;
  text-transform: uppercase;
  text-align: center;
  color: var(--color-black);
}

.category-grid__name {
  font-family: "XSAI-Bold", sans-serif;
  font-size: 12px;
  letter-spacing: 0.04em;
  line-height: 1.25;
  text-transform: uppercase;
  color: var(--color-black);
}

.category-grid__icon svg {
  width: 46%;
  height: 46%;
  display: block;
}

@media screen and (max-width: 767px) {
  .category-grid--hide-mobile {
    display: none;
  }
}

@media screen and (min-width: 768px) {
  .category-grid {
    margin-top: 67px;
    padding: 0 50px;
  }

  .category-grid--hide-desktop {
    display: none;
  }

  .category-grid__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-top: 32px;
  }

  .category-grid__icon--text,
  .category-grid__icon--photo {
    min-height: 116px;
  }

  .category-grid__name,
  .category-grid__caption {
    font-size: 15px;
  }
}

/* ===== ДРОП: тизер коллекции + блокировка карточек ===== */
.drop-teaser {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

/* В режиме дропа постер растёт под контент (заголовок + тизер), а не обрезает */
.posters__item:has(.drop-teaser) {
  height: auto;
  min-height: 35svh;
  padding: 30px 0;
}

@media screen and (max-width: 480px) {
  .posters__item:has(.drop-teaser) {
    min-height: 238px;
  }
}

.drop-teaser__label {
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.9;
}

.drop-teaser__timer {
  display: flex;
  gap: 10px;
}

.drop-teaser__cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 48px;
}

.drop-teaser__cell b {
  font-size: 30px;
  font-weight: 400;
  line-height: 1;
  width: 100%;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.drop-teaser__cell i {
  margin-top: 6px;
  font-style: normal;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.7;
}

.drop-teaser__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  padding: 0 26px;
  border: 1px solid currentColor;
  border-radius: 100px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: opacity 0.2s var(--transition);
}

.drop-teaser__btn:hover {
  opacity: 0.6;
}

.drop-teaser__btn svg {
  flex: 0 0 auto;
}

.drop-teaser__done {
  font-size: 13px;
  letter-spacing: 0.04em;
  opacity: 0.85;
}

/* Попап подписки на дроп */
.drop-popup {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(0, 0, 0, 0.55);
}

.drop-popup__box {
  position: relative;
  width: 100%;
  max-width: 360px;
  background: #fff;
  color: var(--color-black);
  border-radius: 16px;
  padding: 32px 26px 28px;
  text-align: center;
}

.drop-popup__close {
  position: absolute;
  top: 10px;
  right: 14px;
  border: 0;
  background: none;
  font-size: 26px;
  line-height: 1;
  color: var(--dark-grey);
  cursor: pointer;
}

.drop-popup__title {
  font-size: 16px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-black);
}

.drop-popup__sub {
  margin: 8px 0 18px;
  font-size: 13px;
  color: var(--dark-grey);
}

.drop-popup__form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.drop-popup__form input {
  height: 46px;
  padding: 0 16px;
  border: 1px solid var(--air-grey);
  border-radius: 100px;
  background: #fff;
  color: var(--color-black);
  font-size: 14px;
  text-align: center;
}

.drop-popup__form button {
  height: 46px;
  border: 1px solid var(--color-body);
  border-radius: 100px;
  background: var(--color-body);
  color: #fff;
  cursor: pointer;
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: 0.3s ease;
}

.drop-popup__form button:hover {
  background: transparent;
  color: var(--color-body);
}

.drop-popup__done {
  font-size: 14px;
  color: var(--color-black);
  padding: 6px 0;
}

.drop-popup__error {
  margin-top: 8px;
  font-size: 12px;
  color: var(--red, #ff5656);
}

/* В режиме дропа прячем верхнюю панель с быстрыми фильтрами */
.catalog--drop .catalog__top {
  display: none;
}

/* Карточки в дропе неактивны: прячем активные свотчи, показываем счётчик цветов */
.catalog__items--drop .classics-slider__colors {
  display: none;
}

.catalog__items--drop .catalog__item {
  cursor: default;
}

.drop-colors-count {
  margin-top: 6px;
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--dark-grey);
}

.drop-toast {
  position: fixed;
  left: 50%;
  bottom: 32px;
  transform: translateX(-50%);
  z-index: 10060;
  background: var(--color-black);
  color: #fff;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 13px 24px;
  border-radius: 100px;
  pointer-events: none;
}

/* Карточки в режиме дропа/закрытой секции: заблюрена вся карточка (фото, название, цена) и не кликается */
.catalog__items--drop .catalog__item {
  filter: blur(var(--drop-blur, 12px));
  pointer-events: none;
}

.catalog__items--drop .catalog__item a,
.catalog__items--drop a.catalog__item {
  pointer-events: none;
  cursor: default;
}

/* Пока дроп не наступил — прячем бейджи/лейблы на карточках */
.catalog__items--drop .catalog__item-label {
  display: none;
}

/* Кроп фото товара (PDP): зумнутый слайд/фриз-оверлей клипается по 3:4-боксу
   слайдера, чтобы увеличенная картинка не вылезала вправо на блок товара. */
.single__slider { overflow: hidden; }

/* ---------------------------------------------------------------------------
   Реферальная программа (/account/referral) — вёрстка в манере страницы
   лояльности: узкая колонка, аплеркейс, тонкие разделители.
   --------------------------------------------------------------------------- */
.referral {
  display: flex;
  flex-direction: column;
  row-gap: 50px;
  max-width: 420px;
  margin: 0 auto;
  text-transform: uppercase;
  text-align: left;
}

@media screen and (max-width: 480px) {
  .referral {
    row-gap: 36px;
  }
}

.referral__intro-title {
  font-size: 18px;
  line-height: 116%;
  margin-bottom: 12px;
}

.referral__intro-text,
.referral__note {
  font-size: 12px;
  line-height: 150%;
  color: var(--light-grey);
  text-transform: none;
}

.referral__note--ok {
  color: #2f7a3d;
}

.referral__note--error {
  color: #c0392b;
}

.referral__section-title {
  font-size: 14px;
  line-height: 116%;
  letter-spacing: 0.06em;
  margin-bottom: 18px;
}

/* Баланс */
.referral__balance {
  display: flex;
  flex-direction: column;
  row-gap: 14px;
  font-size: 18px;
  line-height: 116%;
}

.referral__balance-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.referral__balance-label {
  color: var(--light-grey);
  font-size: 13px;
}

.referral__balance-value--muted {
  color: var(--light-grey);
}

/* Ссылка и промокод */
.referral__share {
  display: flex;
  flex-direction: column;
  row-gap: 22px;
}

.referral__field-label {
  display: block;
  font-size: 12px;
  color: var(--light-grey);
  margin-bottom: 8px;
}

.referral__field-row {
  display: flex;
  align-items: center;
  column-gap: 12px;
}

.referral__field-input {
  flex: 1 1 auto;
  min-width: 0;
  border: none;
  border-bottom: 1px solid #dadada;
  background: transparent;
  font: inherit;
  font-size: 14px;
  padding: 8px 0;
  text-transform: none;
}

.referral__field-input--promo {
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.referral__copy {
  flex: 0 0 auto;
  background: none;
  border: none;
  cursor: pointer;
  font: inherit;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--light-grey);
  padding: 0;
}

.referral__copy:hover {
  color: var(--color-black);
}

.referral__socials {
  display: flex;
  column-gap: 20px;
}

.referral__social {
  font-size: 11px;
  letter-spacing: 0.06em;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Статистика */
.referral__stats {
  display: flex;
  justify-content: space-between;
  column-gap: 12px;
  border-top: 1px solid #dadada;
  border-bottom: 1px solid #dadada;
  padding: 22px 0;
}

.referral__stat {
  display: flex;
  flex-direction: column;
  row-gap: 6px;
  text-align: center;
  flex: 1 1 0;
}

.referral__stat-value {
  font-size: 20px;
  line-height: 116%;
}

.referral__stat-label {
  font-size: 10px;
  line-height: 130%;
  color: var(--light-grey);
}

/* Вывод денег */
.referral__form {
  display: flex;
  flex-direction: column;
  row-gap: 16px;
}

.referral__form-row {
  display: flex;
  flex-direction: column;
  row-gap: 6px;
}

.referral__form-label {
  font-size: 11px;
  color: var(--light-grey);
}

.referral__form-input {
  border: none;
  border-bottom: 1px solid #dadada;
  background: transparent;
  font: inherit;
  font-size: 14px;
  padding: 8px 0;
  text-transform: none;
}

.referral__submit {
  background: var(--color-black);
  color: #fff;
  border: none;
  border-radius: 100px;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 14px 24px;
  margin-top: 6px;
}

/* Списки заявок и начислений */
.referral__list {
  margin-top: 24px;
}

.referral__list-row {
  display: grid;
  grid-template-columns: 0.8fr 0.8fr 1fr 1fr;
  column-gap: 10px;
  align-items: center;
  font-size: 11px;
  line-height: 130%;
  border-bottom: 1px solid #ededed;
  padding: 12px 0;
}

.referral__list-row span:last-child {
  color: var(--light-grey);
  text-align: right;
}

@media screen and (max-width: 480px) {
  .referral__list-row {
    grid-template-columns: 1fr 1fr;
    row-gap: 4px;
  }
}

/* ===== ОТЗЫВЫ: шапка таба (как у остальных .single__acc-top) ===== */
.single__acc-top .single__acc-top-left {
  display: flex;
  align-items: center;
  gap: 10px;
  /* На мобилке .single__acc-top span получает padding-bottom: 8px; на
     span-обёртке это давало двойной отступ и поднимало лейбл выше стрелки. */
  padding-bottom: 0;
}

.single__acc-top .single__acc-score,
.single__acc-top .single__acc-score b {
  font-family: "XSAI-Bold", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 23px;
  line-height: 19px;
  letter-spacing: 1px;
  color: var(--dark-grey);
}

@media (max-width: 768px) {
  .single__acc-top .single__acc-score,
  .single__acc-top .single__acc-score b {
    font-size: 15px;
    line-height: 17px;
  }
}

/* ===== ОТЗЫВЫ: подоценки внутри раскрытого таба ===== */
.single__reviews-subscores {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin: 0 0 18px;
}

.single__reviews-sub {
  font-size: 11px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--dark-grey);
}

.single__reviews-sub b {
  color: var(--color-black);
}

/* ===== ОТЗЫВЫ: карточка отзыва (стиль Яндекс Маркета) ===== */
.single__review-list {
  display: flex;
  flex-direction: column;
}

.single__review-card {
  padding: 16px 0;
  border-bottom: 1px solid var(--cement);
}

.single__review-card:first-child {
  padding-top: 0;
}

.single__review-card:last-child {
  border-bottom: none;
}

.single__review-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.single__review-avatar-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.single__review-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--color-black);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  flex-shrink: 0;
}

.single__review-name {
  display: block;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--color-black);
}

.single__review-date {
  display: block;
  font-size: 11px;
  letter-spacing: 0.02em;
  color: var(--light-grey);
  margin-top: 2px;
}

.single__review-verified {
  font-size: 9.5px;
  color: #3a7d44;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
}

/* Ряд «звёзды слева · личные подоценки автора справа». */
.single__review-rating-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.single__review-stars {
  display: inline-flex;
  gap: 2px;
  flex-shrink: 0;
}

.single__review-stars svg {
  width: 13px;
  height: 13px;
}

.single__review-subscores {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 10.5px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--dark-grey);
}

.single__review-subscores b {
  color: var(--color-black);
}

.single__review-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.single__review-chip {
  font-size: 10px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--dark-grey);
  background: #eeecea;
  border-radius: 20px;
  padding: 4px 10px;
}

.single__review-text {
  font-size: 13px;
  color: var(--color-text);
  line-height: 1.6;
  margin-top: 10px;
}

.single__review-photos {
  display: flex;
  gap: 6px;
  margin-top: 10px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.single__review-photo {
  width: 64px;
  height: 80px;
  border-radius: 8px;
  overflow: hidden;
  position: relative;
  flex-shrink: 0;
  background: var(--air-grey);
}

.single__review-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.single__review-photo-cap {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(255, 255, 255, 0.92);
  font-size: 8px;
  letter-spacing: 0.02em;
  padding: 2px 4px;
  color: var(--color-black);
}

.single__reviews-cta {
  display: block;
  width: 100%;
  text-align: center;
  font-family: inherit;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: none;
  border: 1px solid var(--color-black);
  border-radius: 30px;
  padding: 11px 0;
  margin-top: 16px;
  text-decoration: none;
  color: var(--color-black);
  cursor: pointer;
}

.single__reviews-empty {
  font-size: 12px;
  color: var(--dark-grey);
  padding: 0 0 4px;
}

/* ===== ОТЗЫВЫ: форма отправки (страница из TG-ссылки) ===== */
.review-form-page {
  max-width: 440px;
  margin: 0 auto;
  padding: 24px 20px 60px;
}

.review-form__head {
  margin-bottom: 20px;
}

.review-form__product {
  display: flex;
  align-items: center;
  gap: 12px;
}

.review-form__thumb {
  width: 52px;
  height: 66px;
  background: var(--tofu);
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
}

.review-form__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.review-form__name {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
}

.review-form__meta {
  font-size: 11px;
  color: var(--dark-grey);
}

.review-form__q {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin: 16px 0 8px;
}

.review-form__q:first-of-type {
  margin-top: 0;
}

.review-form__opt {
  color: var(--light-grey);
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0.02em;
}

.review-form__scale {
  display: flex;
  gap: 8px;
}

.review-form__star {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--cement);
  background: #fff;
  font-size: 13px;
  font-family: inherit;
  cursor: pointer;
}

.review-form__star.is-active {
  border-color: var(--color-black);
  background: var(--color-black);
  color: #fff;
  font-weight: 700;
}

.review-form__subrow {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
}

.review-form__sublabel {
  font-size: 12px;
  color: var(--color-text);
}

.review-form__scale--small .review-form__star--sm {
  width: 30px;
  height: 30px;
  font-size: 11px;
}

.review-form__chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.review-form__chip {
  border: 1px solid var(--cement);
  border-radius: 30px;
  background: #fff;
  font-size: 11px;
  padding: 7px 14px;
  letter-spacing: 0.03em;
  font-family: inherit;
  cursor: pointer;
}

.review-form__chip.is-active {
  border-color: var(--color-black);
  font-weight: 700;
}

.review-form__textarea,
.review-form__input {
  width: 100%;
  border: 1px solid var(--cement);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 12px;
  font-family: inherit;
  resize: vertical;
}

.review-form__input--sm {
  width: 110px;
}

.review-form__photos {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.review-form__photo-slot {
  width: 64px;
  height: 64px;
  border: 1px dashed var(--light-grey);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 300;
  color: var(--light-grey);
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.review-form__photo-slot--filled {
  border-style: solid;
  cursor: default;
}

.review-form__photo-slot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.review-form__photo-input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.review-form__photo-remove {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  border: 0;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
}

.review-form__submit {
  width: 100%;
  background: var(--color-black);
  color: #fff;
  border: 0;
  border-radius: 30px;
  padding: 13px 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-top: 18px;
  cursor: pointer;
}

.review-form__submit[disabled] {
  opacity: 0.6;
}

.review-form__bonus-note {
  font-size: 10px;
  color: #3a7d44;
  margin-top: 10px;
  letter-spacing: 0.02em;
}

.review-form__error {
  font-size: 10px;
  color: #c0392b;
  margin-top: 4px;
}

.review-form__done {
  text-align: center;
  padding: 60px 0;
}

.review-form__done h1 {
  font-size: 18px;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.review-form__done p {
  font-size: 13px;
  color: var(--dark-grey);
  max-width: 320px;
  margin: 0 auto 20px;
}

.review-form__cta {
  display: inline-block;
  border: 1px solid var(--color-black);
  border-radius: 30px;
  padding: 11px 24px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-black);
}

/* ---------------------------------------------------------------------------
   Секретный код на бонусы (/account/loyalty): блок под балансом карты.
   --------------------------------------------------------------------------- */
.loyalty__promo {
  display: flex;
  flex-direction: column;
  row-gap: 14px;
  /* Разделитель убран — блоки разводит row-gap контейнера .loyalty */
  margin-top: -18px;
}

@media screen and (max-width: 480px) {
  .loyalty__promo {
    margin-top: -12px;
  }
}

.loyalty__promo-head {
  display: flex;
  flex-direction: column;
  row-gap: 6px;
}

.loyalty__promo-title {
  font-size: 14px;
  line-height: 116%;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.loyalty__promo-hint {
  font-size: 12px;
  line-height: 140%;
  color: var(--light-grey);
  /* .loyalty задаёт uppercase на весь блок — длинные пояснения капсом нечитаемы */
  text-transform: none;
}

/* Поле кода повторяет промокод на чекауте: .input/.input-wrap дают типографику,
   линия снизу добавляется здесь (на чекауте её даёт .cart__wrapper .input). */
.loyalty__promo-form.input {
  border-bottom: 1px solid var(--outline-grey);
  margin-bottom: 0;
}

.loyalty__promo-form .input-wrap {
  display: flex;
  align-items: center;
  column-gap: 8px;
}

.loyalty__promo-form .input-wrap input {
  width: 100%;
}

.loyalty__promo-submit {
  flex: 0 0 auto;
  background: none;
  border: none;
  cursor: pointer;
  font: inherit;
  font-size: 16px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-black);
  padding-top: 17px;
  white-space: nowrap;
  transition: 0.3s ease;
}

.loyalty__promo-submit:hover {
  opacity: 0.6;
}

@media screen and (max-width: 480px) {
  .loyalty__promo-submit {
    font-size: 14px;
  }
}

.loyalty__promo-note {
  font-size: 12px;
  line-height: 140%;
  text-transform: none;
}

.loyalty__promo-note--ok {
  color: #2f7a3d;
}

.loyalty__promo-note--error {
  color: #c0392b;
}

@media screen and (max-width: 480px) {
  .loyalty__promo-form {
    flex-direction: column;
    align-items: stretch;
    row-gap: 14px;
  }

  .loyalty__promo-submit {
    width: 100%;
    padding: 14px 22px;
  }
}

/* Выпуск карты лояльности из ЛК (когда карты ещё нет) */
.loyalty__join {
  display: flex;
  flex-direction: column;
  row-gap: 14px;
  text-align: left;
}

.loyalty__join-title {
  font-size: 18px;
  line-height: 116%;
  text-transform: uppercase;
}

.loyalty__join-text {
  font-size: 12px;
  line-height: 150%;
  color: var(--light-grey);
  text-transform: none;
}

.loyalty__join-form {
  display: flex;
  flex-direction: column;
  row-gap: 16px;
  margin-top: 8px;
}

.loyalty__join-row {
  display: flex;
  flex-direction: column;
  row-gap: 6px;
}

.loyalty__join-label {
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--light-grey);
}

.loyalty__join-input {
  border: none;
  border-bottom: 1px solid #dadada;
  background: transparent;
  font: inherit;
  font-size: 15px;
  padding: 9px 0;
  text-transform: none;
}

.loyalty__join-input:focus {
  outline: none;
  border-bottom-color: var(--color-black);
}

.loyalty__join-submit {
  background: var(--color-black);
  color: #fff;
  border: none;
  border-radius: 100px;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 14px 24px;
  margin-top: 6px;
}

.loyalty__join-input option {
  text-transform: none;
}

/* ---------------------------------------------------------------------------
   Табы личного кабинета: при 5 пунктах они смыкались в сплошную строку.
   Выход убран из навигации вниз страницы, остальным задан явный интервал.
   --------------------------------------------------------------------------- */
.content__tabs {
  justify-content: center;
  column-gap: 30px;
}

@media screen and (max-width: 600px) {
  .content__tabs {
    column-gap: 20px;
  }
}

.content__logout {
  display: flex;
  justify-content: center;
  margin-top: 60px;
}

/* Рамка того же цвета, что и надпись — кнопка читается как единый контур. */
.content__logout-button {
  background: transparent;
  border: 1px solid var(--light-grey);
  border-radius: 100px;
  cursor: pointer;
  font: inherit;
  font-size: 15px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--light-grey);
  padding: 15px 48px;
  transition: 0.3s ease;
}

.content__logout-button:hover {
  border-color: var(--color-black);
  color: var(--color-black);
}

/* Согласие на обработку персональных данных в форме выпуска карты */
.loyalty__join-consent {
  display: flex;
  align-items: flex-start;
  column-gap: 10px;
  cursor: pointer;
  margin-top: 4px;
}

.loyalty__join-consent input[type="checkbox"] {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  margin-top: 2px;
  accent-color: var(--color-black);
  cursor: pointer;
}

.loyalty__join-consent-text {
  font-size: 11px;
  line-height: 150%;
  color: var(--light-grey);
  text-transform: none;
}

.loyalty__join-consent-text a {
  color: var(--color-body);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ===========================================================================
   Лендинг реферальной/партнёрской программы (/partners).
   Всё под .rlp — рендерится внутри storefront-лейаута, поэтому классы
   намеренно префиксованы, чтобы не конфликтовать с .btn/.num/.step и пр.
   =========================================================================== */
.rlp{ --rlp-ink:var(--color-black); --rlp-btn:var(--color-body); --rlp-muted:var(--light-grey); --rlp-hair:var(--air-grey); --rlp-soft:#f5f5f4; color:var(--rlp-ink); }
.rlp *{ box-sizing:border-box; }
.rlp-wrap{ max-width:1100px; margin:0 auto; padding:0 22px; }
.rlp-section{ padding:96px 0; }
.rlp-eyebrow{ font-size:11px; letter-spacing:.28em; color:var(--rlp-muted); text-transform:uppercase; margin:0 0 18px; }
.rlp-dim{ color:var(--rlp-muted); }
.rlp-h1{ margin:0 0 26px; font-size:clamp(30px,4.4vw,46px); line-height:1.1; letter-spacing:.01em; text-transform:uppercase; font-weight:700; }
.rlp-h1__l{ display:block; }
@media screen and (min-width:900px){ .rlp-h1__l{ white-space:nowrap; } }
.rlp-h2{ margin:0 0 14px; font-size:clamp(22px,3vw,32px); text-transform:uppercase; letter-spacing:.06em; }

.rlp-btn{
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:34px; border:1px solid var(--rlp-btn);
  background:var(--rlp-btn); color:#fff;
  font-family:inherit; font-size:18px; line-height:15px; letter-spacing:.5px; text-transform:uppercase;
  padding:16px 40px; text-decoration:none; cursor:pointer; transition:.3s ease;
}
.rlp-btn:hover{ background:transparent; color:var(--rlp-btn); opacity:1; }
.rlp-btn--ghost{ background:transparent; color:var(--rlp-btn); }
.rlp-btn--ghost:hover{ opacity:.6; background:var(--rlp-btn); color:#fff; }
.rlp-btn--invert{ background:#fff; color:var(--rlp-ink); border-color:#fff; }
.rlp-btn--invert:hover{ background:transparent; color:#fff; opacity:1; }
@media screen and (max-width:480px){ .rlp-btn{ font-size:16px; } }

/* Своя шапка: назад · лого по центру · войти */
.rlp-hd{
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  padding:16px 27px; border-bottom:1px solid var(--rlp-hair);
  position:sticky; top:0; background:#fff; z-index:40;
}
.rlp-hd__logo{ justify-self:center; display:flex; align-items:center; }
.rlp-hd__logo img{ width:69px; display:block; }
.rlp-hd__link{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; text-decoration:none; color:var(--rlp-ink); transition:.3s ease; }
.rlp-hd__link:hover{ color:var(--rlp-muted); }
.rlp-hd__back{ justify-self:start; }
.rlp-hd__login{ justify-self:end; }
@media screen and (max-width:768px){ .rlp-hd{ padding:15px 20px; } }
@media screen and (max-width:480px){
  .rlp-hd__link{ font-size:11px; letter-spacing:.1em; }
}

/* HERO */
.rlp-hero{ padding:96px 0 84px; }
.rlp-hero__grid{ display:grid; grid-template-columns:1.25fr .9fr; gap:70px; align-items:center; }
.rlp-lead{ margin:0 0 40px; max-width:46ch; font-size:15px; color:#444; line-height:1.55; }
.rlp-cta-row{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
.rlp-cta-note{ font-size:11px; letter-spacing:.04em; color:var(--rlp-muted); margin:18px 0 0; text-transform:uppercase; }
@media screen and (max-width:480px){
  .rlp-cta-note{ font-size:10px; letter-spacing:0; }
}

.rlp-linkcard{ border:1px solid var(--rlp-ink); padding:30px 28px 26px; position:relative; background:#fff; }

.rlp-linkcard__tag{ position:absolute; top:-9px; left:22px; background:#fff; padding:0 10px; font-size:9px; letter-spacing:.28em; color:var(--rlp-muted); text-transform:uppercase; }
.rlp-lc-row{ display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px solid var(--rlp-hair); padding:14px 0 10px; }
.rlp-lc-row--first{ padding-top:4px; }
.rlp-lc-row--balance{ align-items:flex-end; border-bottom:none; padding-bottom:0; }
.rlp-lc-label{ font-size:10px; letter-spacing:.26em; color:var(--rlp-muted); text-transform:uppercase; }
.rlp-lc-value{ font-size:15px; letter-spacing:.06em; word-break:break-all; }
.rlp-lc-value--promo{ letter-spacing:.1em; text-transform:uppercase; }
.rlp-lc-copy{ font-size:10px; letter-spacing:.2em; color:var(--rlp-muted); text-transform:uppercase; background:none; border:none; cursor:pointer; font-family:inherit; text-decoration:none; padding:0; }
.rlp-lc-copy:hover{ color:var(--rlp-ink); }
.rlp-lc-balance{ font-size:28px; font-weight:700; font-variant-numeric:tabular-nums; }

/* ЦИФРЫ */
.rlp-numbers__grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.rlp-num{ padding:44px 26px 40px; }
.rlp-num b{ display:block; font-size:clamp(22px,2.9vw,34px); font-weight:700; font-variant-numeric:tabular-nums; letter-spacing:.02em; white-space:nowrap; }
.rlp-num span{ display:block; margin-top:10px; font-size:11px; letter-spacing:.2em; color:var(--rlp-muted); text-transform:uppercase; }

/* ШАГИ */
.rlp-steps{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--rlp-ink); }
.rlp-step{ padding:34px 30px 44px; border-bottom:1px solid var(--rlp-hair); border-left:1px solid var(--rlp-hair); }
.rlp-step:first-child{ border-left:none; }
.rlp-step__n{ font-size:11px; letter-spacing:.26em; color:var(--rlp-muted); }
.rlp-step__h{ margin:16px 0 12px; font-size:17px; letter-spacing:.1em; text-transform:uppercase; }
.rlp-step__p{ margin:0; color:#555; font-size:13.5px; max-width:34ch; line-height:1.5; }

/* КАЛЬКУЛЯТОР */
.rlp-calc{ background:var(--rlp-soft); padding:96px 0; }
.rlp-calc__grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.rlp-sub{ color:#555; font-size:13.5px; max-width:44ch; margin:0 0 42px; line-height:1.5; }
.rlp-ctrl{ margin-bottom:34px; }
.rlp-ctrl__label{ display:flex; justify-content:space-between; align-items:baseline; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--rlp-muted); margin-bottom:14px; }
.rlp-ctrl__label output{ color:var(--rlp-ink); font-size:15px; letter-spacing:.04em; font-variant-numeric:tabular-nums; }
.rlp input[type=range]{ -webkit-appearance:none; appearance:none; width:100%; height:1px; background:var(--rlp-ink); outline:none; margin:12px 0; }
.rlp input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:22px; height:22px; border-radius:50%; background:#fff; border:1px solid var(--rlp-ink); cursor:pointer; }
.rlp input[type=range]::-moz-range-thumb{ width:22px; height:22px; border-radius:50%; background:#fff; border:1px solid var(--rlp-ink); cursor:pointer; }
.rlp input[type=range]:focus-visible{ outline:2px solid var(--rlp-ink); outline-offset:8px; }
.rlp-seg{ display:flex; border:1px solid var(--rlp-ink); }
.rlp-seg button{ flex:1; background:transparent; border:none; cursor:pointer; font-family:inherit; font-size:11px; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; color:var(--rlp-muted); padding:13px 6px; border-left:1px solid var(--rlp-hair); transition:background .2s ease, color .2s ease; }
.rlp-seg button:first-child{ border-left:none; }
.rlp-seg button.on{ background:var(--rlp-ink); color:#fff; }
.rlp-seg button:focus-visible{ outline:2px solid var(--rlp-ink); outline-offset:2px; }
.rlp-result{ border:1px solid var(--rlp-ink); background:#fff; padding:44px 40px 40px; text-align:center; }
.rlp-result__label{ font-size:11px; letter-spacing:.26em; color:var(--rlp-muted); text-transform:uppercase; }
.rlp-result__value{ font-size:clamp(40px,6vw,68px); font-weight:700; line-height:1.05; font-variant-numeric:tabular-nums; margin:18px 0 6px; letter-spacing:.01em; }
.rlp-result__year{ font-size:12px; letter-spacing:.14em; color:var(--rlp-muted); text-transform:uppercase; }
.rlp-result__year b{ color:var(--rlp-ink); font-variant-numeric:tabular-nums; }
.rlp-result hr{ border:none; border-top:1px solid var(--rlp-hair); margin:30px 0 22px; }
.rlp-result__foot{ font-size:11px; color:var(--rlp-muted); letter-spacing:.08em; max-width:36ch; margin:0 auto; line-height:1.5; }

/* БАЛЛЫ = ДЕНЬГИ */
.rlp-money{ display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--rlp-ink); }
.rlp-money__col{ padding:40px 36px 44px; }
.rlp-money__col + .rlp-money__col{ border-left:1px solid var(--rlp-ink); }
.rlp-money__h{ margin:0 0 10px; font-size:16px; letter-spacing:.14em; text-transform:uppercase; }
.rlp-money__p{ margin:0 0 26px; color:#555; font-size:13.5px; max-width:38ch; line-height:1.5; }
.rlp-miniui{ border:1px solid var(--rlp-hair); padding:18px 18px 14px; font-size:12px; }
.rlp-mrow{ display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--rlp-hair); letter-spacing:.05em; }
.rlp-mrow:last-child{ border-bottom:none; }
.rlp-mrow b{ font-variant-numeric:tabular-nums; }

/* УРОВНИ */
.rlp-tablewrap{ overflow-x:auto; }
.rlp-table{ width:100%; border-collapse:collapse; font-size:13.5px; }
.rlp-table th, .rlp-table td{ text-align:left; padding:20px 18px; border-bottom:1px solid var(--rlp-hair); letter-spacing:.06em; }
.rlp-table th{ font-size:11px; letter-spacing:.22em; color:var(--rlp-muted); text-transform:uppercase; font-weight:400; border-bottom:1px solid var(--rlp-ink); }
.rlp-rate{ font-size:20px; font-weight:700; font-variant-numeric:tabular-nums; }
.rlp-note{ margin-top:18px; font-size:11.5px; color:var(--rlp-muted); letter-spacing:.06em; line-height:1.5; }

/* ДЛЯ БЛОГЕРОВ */
.rlp-partners{ background:var(--rlp-ink); color:#fff; padding:96px 0; }
.rlp-partners .rlp-eyebrow{ color:#8a8a8a; }
.rlp-partners__inner{ max-width:640px; }
.rlp-partners__h{ margin:0 0 18px; font-size:clamp(24px,3.4vw,38px); text-transform:uppercase; letter-spacing:.05em; line-height:1.15; text-wrap:balance; }
.rlp-underline{ border-bottom:1px solid #555; }
.rlp-partners__p{ color:#b9b9b9; font-size:13.5px; max-width:46ch; margin:0 0 36px; line-height:1.55; }
.rlp-partners__list{ list-style:none; margin:0; padding:0; border-top:1px solid #3a3a3a; }
.rlp-partners__list li{ padding:16px 2px; border-bottom:1px solid #3a3a3a; display:flex; justify-content:space-between; gap:20px; align-items:baseline; font-size:13px; letter-spacing:.08em; }
.rlp-partners__list li span{ color:#8a8a8a; font-size:11px; letter-spacing:.18em; text-transform:uppercase; }
.rlp-partners__example{ margin-top:34px; border:1px solid #3a3a3a; padding:22px 24px; font-size:12px; letter-spacing:.06em; }
.rlp-partners__example-label{ color:#8a8a8a; font-size:10px; letter-spacing:.24em; text-transform:uppercase; margin-bottom:14px; }
.rlp-partners__example-row{ display:flex; justify-content:space-between; padding:7px 0; border-bottom:1px solid #2c2c2c; }
.rlp-partners__example-row b{ font-variant-numeric:tabular-nums; }
.rlp-partners__example-row--total{ border-bottom:none; }
.rlp-partners__example-row--total b{ font-size:16px; }
.rlp-partners__example-row--total span{ color:#b9b9b9; }
.rlp-partners__cta{ margin-top:38px; }

/* FAQ */
.rlp-faq{ max-width:820px; }
.rlp-faq details{ border-bottom:1px solid var(--rlp-hair); }
.rlp-faq details:first-of-type{ border-top:1px solid var(--rlp-ink); }
.rlp-faq summary{ cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:20px; padding:22px 2px; font-size:14px; letter-spacing:.08em; text-transform:uppercase; }
.rlp-faq summary::-webkit-details-marker{ display:none; }
.rlp-faq summary::after{ content:"+"; font-size:18px; color:var(--rlp-muted); flex:0 0 auto; transition:transform .2s ease; }
.rlp-faq details[open] summary::after{ transform:rotate(45deg); }
.rlp-faq__a{ padding:0 2px 26px; color:#555; font-size:13.5px; max-width:68ch; line-height:1.55; }

/* ФИНАЛ */
.rlp-final{ text-align:center; padding:120px 0 130px; }
.rlp-final__h{ margin:0 0 34px; font-size:clamp(28px,4.8vw,52px); text-transform:uppercase; letter-spacing:.03em; line-height:1.08; text-wrap:balance; }
.rlp-final__small{ margin-top:20px; font-size:11px; letter-spacing:.18em; color:var(--rlp-muted); text-transform:uppercase; }

/* Мобильный sticky CTA */
.rlp-sticky{ display:none; }
.rlp-sticky.is-visible{ transform:translateY(0); }

@media (max-width:900px){
  .rlp-hero__grid{ grid-template-columns:1fr; gap:56px; }
  .rlp-hero{ padding:64px 0 56px; }
  .rlp-calc__grid{ grid-template-columns:1fr; gap:44px; }
}
@media (max-width:820px){
  .rlp-steps{ grid-template-columns:1fr; }
  .rlp-step{ border-left:none; }
  .rlp-money{ grid-template-columns:1fr; }
  .rlp-money__col + .rlp-money__col{ border-left:none; border-top:1px solid var(--rlp-ink); }
}
@media (max-width:760px){
  .rlp-section, .rlp-calc, .rlp-partners{ padding:60px 0; }
  .rlp-numbers__grid{ grid-template-columns:1fr 1fr; }
  .rlp-num{ padding:30px 20px 26px; }
}
@media (max-width:640px){
  /* Кнопки во всю ширину, стопкой */
  .rlp-cta-row{ flex-direction:column; align-items:stretch; }
  .rlp-cta-row .rlp-btn,
  .rlp-partners__cta .rlp-btn,
  .rlp-final .rlp-btn{ width:100%; }
  .rlp-h1{ font-size:clamp(22px,6.6vw,32px); }
  .rlp-seg button{ font-size:9.5px; letter-spacing:.02em; padding:12px 2px; }

  /* Плавающая кнопка: появляется снизу только по классу .is-visible (JS) */
  .rlp-sticky{ display:block; position:fixed; left:0; right:0; bottom:0; z-index:60;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    background:linear-gradient(to top,#fff 78%,rgba(255,255,255,0));
    transform:translateY(140%); transition:transform .3s ease; pointer-events:none; }
  .rlp-sticky.is-visible{ pointer-events:auto; }
  .rlp-sticky .rlp-btn{ width:100%; }
  .rlp-final{ padding-bottom:110px; }
}
@media (prefers-reduced-motion: reduce){
  .rlp-faq summary::after, .rlp-btn, .rlp-seg button{ transition:none; }
}

/* Лендинг /partners: на десктопе мелкий текст читается плохо — увеличиваем.
   Мобильные размеры остаются прежними (там всё умещается крупнее относительно). */
@media (min-width:900px){
  .rlp-eyebrow{ font-size:12px; }
  .rlp-lead{ font-size:18px; }
  .rlp-cta-note{ font-size:12px; }
  .rlp-num span{ font-size:12px; }
  .rlp-step__h{ font-size:20px; }
  .rlp-step__p{ font-size:16px; }
  .rlp-sub{ font-size:16px; }
  .rlp-ctrl__label{ font-size:13px; }
  .rlp-ctrl__label output{ font-size:17px; }
  .rlp-seg button{ font-size:14px; letter-spacing:.08em; padding:16px 6px; }
  .rlp-result__label{ font-size:12px; }
  .rlp-result__year{ font-size:13px; }
  .rlp-result__foot{ font-size:13px; }
  .rlp-money__h{ font-size:18px; }
  .rlp-money__p{ font-size:16px; }
  .rlp-miniui{ font-size:14px; }
  .rlp-table{ font-size:16px; }
  .rlp-table th{ font-size:12px; }
  .rlp-rate{ font-size:22px; }
  .rlp-note{ font-size:13px; }
  .rlp-partners__p{ font-size:16px; }
  .rlp-partners__list li{ font-size:15px; }
  .rlp-partners__list li span{ font-size:12px; }
  .rlp-partners__example{ font-size:14px; }
  .rlp-faq summary{ font-size:16px; }
  .rlp-faq__a{ font-size:15px; }
  .rlp-lc-label, .rlp-lc-copy{ font-size:11px; }
  .rlp-lc-value{ font-size:16px; }
}

/* ==== Страница «Заказ оформлен» (редизайн, 2 колонки на десктопе) ==== */
.osx{ max-width:1080px; margin:0 auto; padding-top:56px; }
.osx__grid{ display:grid; grid-template-columns:1.02fr 0.98fr; gap:56px; align-items:start; }

/* Левая колонка — подтверждение */
.osx__confirm{ padding-top:4px; }
.osx__check{
  width:66px; height:66px; margin:0 0 26px; border-radius:50%;
  background:var(--color-body); color:#fff; display:flex; align-items:center; justify-content:center;
}
.osx__check svg{ width:30px; height:30px; }
.osx__title{
  font-size:40px; line-height:1.04; font-weight:800; letter-spacing:.01em;
  text-transform:uppercase; margin:0 0 16px; color:var(--color-black);
}
.osx__sub{ font-size:14.5px; line-height:1.6; color:#565654; margin:0 0 30px; max-width:430px; }
.osx__order{
  display:flex; align-items:center; gap:14px;
  border-top:1px solid var(--air-grey,#e4e4e1); border-bottom:1px solid var(--air-grey,#e4e4e1);
  padding:16px 0; margin:0 0 28px;
}
.osx__order-label{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#8a8a86; }
.osx__order-num{ font-size:16px; font-weight:700; color:var(--color-black); letter-spacing:.02em; }
.osx__copy{
  margin-left:auto; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-body);
  background:none; border:none; cursor:pointer; padding:2px 0; border-bottom:1px solid currentColor;
}
.osx__facts{ display:flex; gap:34px; flex-wrap:wrap; margin:0 0 34px; }
.osx__fact{ display:flex; flex-direction:column; gap:5px; }
.osx__fact span{ font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:#8a8a86; }
.osx__fact b{ font-size:14px; font-weight:700; color:var(--color-black); }
.osx__actions{ display:flex; gap:14px; }
.osx__btn{
  flex:1; display:inline-flex; align-items:center; justify-content:center; min-height:56px; padding:0 26px;
  border-radius:34px; font-size:13.5px; letter-spacing:.6px; text-transform:uppercase;
  text-decoration:none; transition:.3s ease; border:1px solid var(--color-body); color:var(--color-body);
  background:transparent;
}
.osx__btn--primary{ background:var(--color-body); color:#fff; }
.osx__btn--primary:hover{ background:transparent; color:var(--color-body); }
.osx__btn--ghost:hover{ background:var(--color-body); color:#fff; }

/* Правая колонка — карточки вовлечения */
.osx__cards{ display:flex; flex-direction:column; gap:18px; }
.osx-card{
  border:1px solid var(--color-black); padding:30px 30px 32px; display:flex; flex-direction:column;
}
.osx-card__eyebrow{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#8a8a86; margin-bottom:12px; }
.osx-card__title{ font-size:21px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin:0 0 10px; color:var(--color-black); }
.osx-card__text{ font-size:13.5px; color:#565654; line-height:1.6; margin:0 0 22px; flex:1 1 auto; }
.osx-card__btn{
  align-self:flex-start; display:inline-block; background:var(--color-body); color:#fff;
  border:1px solid var(--color-body); border-radius:34px; padding:13px 32px; font-size:13px;
  letter-spacing:.5px; text-transform:uppercase; text-decoration:none; transition:.3s ease;
}
.osx-card__btn:hover{ background:transparent; color:var(--color-body); }
.osx__hint{ text-align:center; font-size:12.5px; color:#9a9a96; margin:52px 0 0; }

@media (max-width:860px){
  .osx{ max-width:560px; padding-top:32px; }
  .osx__grid{ grid-template-columns:1fr; gap:34px; }
  .osx__confirm{ text-align:center; padding-top:16px; }
  .osx__check{ margin:0 auto 22px; }
  .osx__title{ font-size:30px; }
  .osx__sub{ margin-left:auto; margin-right:auto; }
  .osx__order{ justify-content:center; }
  .osx__facts{ justify-content:center; }
  .osx__actions{ flex-direction:column; }
  .osx__hint{ margin-top:36px; }
}


/* Мостик на партнёрку со страницы лояльности */
.loyalty__crossref{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  border:1px solid var(--air-grey); padding:15px 16px;
  font-size:12px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--color-black); text-decoration:none; transition:.3s ease;
}
.loyalty__crossref:hover{ border-color:var(--color-black); }
.loyalty__crossref span{ color:var(--light-grey); }
.loyalty__crossref:hover span{ color:var(--color-black); }

/* Карта в хиро промо-страницы /loyalty — та же .loyalty__card, что в ЛК,
   но без родителя .loyalty (max-width 369px), поэтому ограничиваем сами. */
.loyalty__card--promo{ max-width:380px; margin-left:auto; }
.loyalty__card--promo img{ width:100%; display:block; }

@media screen and (max-width:900px){
  .loyalty__card--promo{ max-width:340px; margin:0 auto 16px; order:-1; }
}

/* Кнопка + подпись под ней — как одна колонка, центрируем подпись
   относительно ширины кнопки, а не всей текстовой колонки хиро. */
.loyalty__cta-block{ display:inline-flex; flex-direction:column; align-items:center; }
.loyalty__cta-block .rlp-cta-row{ display:flex; }
.loyalty__cta-note--center{ text-align:center; }

@media screen and (max-width:640px){
  /* На мобилке кнопка — во всю ширину и по центру, как везде на сайте
     (см. .rlp-cta-row .rlp-btn{width:100%} выше) — inline-flex тут не нужен,
     подпись и так центрируется text-align'ом в полную ширину колонки. */
  .loyalty__cta-block{ display:block; width:100%; }
}

/* Обычный (не капслочный) текст страницы /loyalty — плотнее, как в остальных
   местах сайта (см. .single__acc-desc). Заголовки/лейблы/кнопки не трогаем —
   у них уже свой положительный трекинг. Скоуп через .loyalty-promo, т.к.
   .rlp-* классы общие с /partners. */
.loyalty-promo .rlp-lead,
.loyalty-promo .rlp-step__p,
.loyalty-promo .rlp-note,
.loyalty-promo .rlp-faq__a,
.loyalty-promo td{ letter-spacing:-1px; }

/* Блок цифр (5-15% / 1 RUB / up to 50% / Free): значение — крупно и капсом,
   подпись под ним — наоборот некапс и плотнее (обратный контраст с шапками
   табов, где подпись капсом, а тело — нет). */
.loyalty-promo .rlp-num b{ text-transform:uppercase; white-space:normal; overflow-wrap:break-word; }
.loyalty-promo .rlp-num span{ text-transform:none; letter-spacing:-0.02em; }

/* Ничто не должно вылезать за ширину контента (=ширина кнопки/.rlp-wrap) —
   подстраховка на случай длинного слова/названия в любом из блоков. */
.loyalty-promo{ overflow-x:hidden; }
.loyalty-promo .rlp-numbers__grid{ min-width:0; }
.loyalty-promo .rlp-num{ min-width:0; }
.loyalty-promo .rlp-h1,
.loyalty-promo .rlp-h2,
.loyalty-promo .rlp-lead,
.loyalty-promo .rlp-step__p,
.loyalty-promo .rlp-faq__a{ overflow-wrap:break-word; }

/* Финальный CTA-блок ("Ваша карта уже ждёт") — на мобилке паддинги общего
   .rlp-final (120px/110px, рассчитаны на десктоп) создают гигантский отступ
   перед подпиской в футере. Сжимаем только на /loyalty. */
@media screen and (max-width:640px){
  .loyalty-promo .rlp-final{ padding:56px 0 40px; }
  .loyalty-promo .rlp-final__h{ margin-bottom:24px; }
  .loyalty-promo .rlp-final__small{ margin-top:14px; }
}

/* «Показать все» под мобильной сеткой товарных блоков главной (6 карточек).
   На десктопе блок — горизонтальный слайдер, кнопка не нужна. */
.home-product-carousel__showall { display: none; }
@media (max-width: 768px) {
  .home-product-carousel__showall {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: 14px;
  }
}

/* Методы оплаты на чекауте: открытый список вместо дропдауна */
.pm-list { display: flex; flex-direction: column; gap: 10px; }
.pm-item {
  display: flex; align-items: center; gap: 12px;
  border: 1px solid var(--air-grey);
  padding: 14px; cursor: pointer; user-select: none;
  transition: border-color .15s ease;
  position: relative;
}
.pm-item:hover { border-color: var(--light-grey); }
.pm-item--sel { border-color: var(--color-black); }
.pm-item input { position: absolute; opacity: 0; pointer-events: none; }
.pm-item__body { flex: 1; min-width: 0; }
.pm-item__name {
  font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.pm-item__desc { display: block; margin-top: 3px; font-size: 11px; color: var(--light-grey); letter-spacing: .02em; }
.pm-item__badge {
  font-size: 9px; font-weight: 700; letter-spacing: .14em; padding: 3px 9px 2px;
  background: var(--color-black); color: #fff; text-transform: uppercase; border-radius: 20px;
}
.pm-item__radio {
  width: 18px; height: 18px; border: 1px solid var(--light-grey); border-radius: 50%;
  flex-shrink: 0; display: flex; align-items: center; justify-content: center;
}
.pm-item--sel .pm-item__radio { border-color: var(--color-black); }
.pm-item--sel .pm-item__radio::after {
  content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--color-black);
}
.pm-list--disabled .pm-item { border-color: #ef4444; color: var(--light-grey); cursor: default; }

/* Профиль в шапке дублирует иконку в нижней мобильной навигации —
   прячем его из шапки на мобилке (как уже сделано для корзины).
   Скоуп .header__right не задевает нижнюю навигацию. */
@media screen and (max-width: 768px) {
  .header__right .header__profile-btn { display: none; }
}

/* Экран оплаты СБП: кнопка банка (мобилка) / QR (десктоп) */
.sbp-screen { text-align: center; padding: 8px 0 4px; }
.sbp-screen__title { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 16px; }
.sbp-screen__btn { display: flex; align-items: center; justify-content: center; width: 100%; }
.sbp-screen__qr { display: none; }
.sbp-screen__qr img { display: block; margin: 0 auto; width: 200px; height: 200px; }
.sbp-screen__hint { font-size: 11px; color: var(--light-grey); letter-spacing: .02em; margin-top: 10px; }
.sbp-screen__status { font-size: 11px; color: var(--light-grey); letter-spacing: .04em; margin-top: 16px; }

/* ============ Апселы в чекауте («Добавить к заказу») ============ */
.checkout-upsell{ margin:40px 0 10px; }
.checkout-upsell .sub{ margin-bottom:40px; }
.checkout-upsell__row{ display:flex; gap:10px; overflow-x:auto; padding-bottom:4px;
  scrollbar-width:none; -ms-overflow-style:none;
  /* Full-bleed с обеих сторон: карусель уходит за 15px-паддинг колонки .cart
     (на мобилке — в край экрана, на десктопе — к краю центрированной колонки,
     без растяжки в пустоту вьюпорта). padding-left держит стартовую позицию
     первой карточки по контенту/заголовку; padding-right — «воздух» у
     последней карточки в конце прокрутки. */
  margin-left:-15px; margin-right:-15px; padding-left:15px; padding-right:15px; }
.checkout-upsell__row::-webkit-scrollbar{ display:none; }
.checkout-upsell__card{ flex:0 0 128px; max-width:128px; border:1px solid var(--air-grey);
  padding:8px; display:flex; flex-direction:column; }
.checkout-upsell__img{ aspect-ratio:3/4; background:#f5f5f4; margin-bottom:8px; overflow:hidden; }
.checkout-upsell__img img{ width:100%; height:100%; object-fit:cover; display:block; }
.checkout-upsell__name{ font-size:11px; font-weight:700; letter-spacing:.02em; text-transform:uppercase;
  line-height:1.25; margin-bottom:6px; overflow:hidden;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
/* Размеры апсел-товара — сразу видны в карточке, без подписи «Размер».
   Дефолт выбирается на сервере (мода размеров в заказе), смена — на клиенте
   через Alpine (без роутрипа), добавляется выбранный вариант по «+». */
.checkout-upsell__sizes{ display:flex; flex-wrap:wrap; gap:4px; margin-bottom:8px; }
.checkout-upsell__size{ min-width:22px; padding:3px 5px; border:1px solid var(--air-grey);
  background:transparent; color:var(--color-black); font-size:9.5px; font-weight:700;
  letter-spacing:.02em; text-transform:uppercase; cursor:pointer; transition:border-color .15s ease; }
.checkout-upsell__size.is-on{ border-color:var(--color-black); }
.checkout-upsell__size:disabled{ color:var(--light-grey); border-color:var(--air-grey);
  text-decoration:line-through; cursor:default; }
.checkout-upsell__foot{ display:flex; justify-content:space-between; align-items:center; gap:6px; }
.checkout-upsell__price{ font-size:11px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.checkout-upsell__add{ flex:0 0 auto; border:none; background:transparent; color:var(--color-black);
  font-size:24px; line-height:1; cursor:pointer; padding:0 2px; transition:opacity .2s ease;
  display:flex; align-items:center; justify-content:center; }
.checkout-upsell__add:hover{ opacity:.55; }
.checkout-upsell__add:disabled{ opacity:.4; cursor:default; }

/* ============ Подарочная упаковка (плашка в чекауте) ============
   Рамка как у апсел-карточек; верхний отступ = межкарточному gap (10px,
   .checkout-upsell margin-bottom). Справа: цена ↔ «УБРАТЬ» при выборе. */
.checkout-packaging{ display:flex; align-items:center; justify-content:space-between; gap:12px;
  cursor:pointer; margin-bottom:20px; padding:14px 12px; border:1px solid var(--air-grey);
  font-size:12px; letter-spacing:.02em; text-transform:uppercase; user-select:none;
  transition:border-color .15s ease; }
.checkout-packaging.is-on{ border-color:var(--color-black); }
.checkout-packaging[data-loading]{ opacity:.5; pointer-events:none; }
.checkout-packaging__label{ flex:1 1 auto; font-weight:700; }
.checkout-packaging__action{ flex:0 0 auto; white-space:nowrap; font-variant-numeric:tabular-nums;
  color:var(--light-grey); }
.checkout-packaging.is-on .checkout-packaging__action{ color:var(--color-black); }

/* Быстрая авторизация в блоке контактов чекаута */
.checkout-login-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0 0 20px;
}

/* Промежуточные ширины (769–1100px): десктоп-меню наезжает на центральный логотип.
   Переключаем шапку в мобильный режим — прячем горизонтальное меню и показываем
   нижнюю навигацию (через неё открывается бургер-панель). */
@media screen and (min-width: 769px) and (max-width: 1100px) {
  .header__nav { display: none; }
  .header__right .header__cart { display: none; }
  .header__right .header__profile-btn { display: none; }
  .mobile-nav { display: flex !important; }
  .mobile-nav .mobile-nav-spacer { display: block !important; }
  .mobile-nav--hidden .mobile-nav-spacer { display: none !important; }
}

/* ==== Кабинет оптового партнёра (/wholesale) ==== */

.wholesale-login__waiting {
  text-align: center;
}
.wholesale-login__waiting .btn {
  margin: 16px 0;
}
.wholesale-login__spinner {
  width: 28px;
  height: 28px;
  margin: 12px auto 0;
  border: 3px solid var(--air-grey);
  border-top-color: var(--color-black);
  border-radius: 50%;
  animation: wholesale-spin 0.8s linear infinite;
}
@keyframes wholesale-spin {
  to { transform: rotate(360deg); }
}

.wholesale {
  max-width: 1100px;
  margin: 0 auto;
  padding: 24px 20px 140px;
}
.wholesale__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.wholesale__title {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 4px;
  text-transform: uppercase;
}
.wholesale__subtitle {
  color: var(--light-grey);
  font-size: 14px;
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.wholesale__subtitle-sep {
  margin: 0 4px;
}
.wholesale__controls {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.wholesale__sort,
.wholesale__search input {
  border: 1px solid var(--air-grey);
  border-radius: 0;
  padding: 10px 14px;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  background: #fff;
}
.wholesale__search input::placeholder {
  text-transform: uppercase;
  color: var(--light-grey);
}
.wholesale__search input {
  min-width: 240px;
}

.wholesale-hidden-bar {
  position: relative;
  margin-bottom: 16px;
  font-size: 12px;
}
.wholesale-hidden-bar__toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f7f7f7;
  border: none;
  border-radius: 0;
  padding: 8px 14px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--light-grey);
  cursor: pointer;
}
.wholesale-hidden-bar__panel {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: 5;
  width: max-content;
  max-width: min(360px, 90vw);
  max-height: 240px;
  overflow-y: auto;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: 6px;
  background: #fff;
  border: 1px solid var(--air-grey);
  padding: 12px;
}
.wholesale-hidden-bar__chip {
  border: 1px solid var(--air-grey);
  border-radius: 0;
  padding: 4px 10px;
  background: #fff;
  cursor: pointer;
  font-size: 12px;
}
.wholesale-hidden-bar__restore-all {
  flex: 0 0 100%;
  text-align: right;
  text-decoration: underline;
  color: var(--light-grey);
  cursor: pointer;
  padding-top: 4px;
  border-top: 1px solid var(--air-grey);
  margin-top: 4px;
}

.wholesale-table {
  display: flex;
  flex-direction: column;
}
.wholesale-row {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 28px 16px 0;
  border-bottom: 1px solid var(--air-grey);
  flex-wrap: wrap;
}
.wholesale-row__media {
  width: 64px;
  height: 80px;
  flex: 0 0 auto;
  background: #f5f5f5;
  border-radius: 6px;
  overflow: hidden;
}
.wholesale-row__media a {
  display: block;
  width: 100%;
  height: 100%;
}
.wholesale-row__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.wholesale-row__remove {
  position: absolute;
  top: 14px;
  right: 0;
  width: 22px;
  height: 22px;
  line-height: 20px;
  text-align: center;
  border: 1px solid var(--air-grey);
  border-radius: 50%;
  color: var(--light-grey);
  background: transparent;
  cursor: pointer;
  font-size: 14px;
}
.wholesale-row__remove:hover {
  border-color: var(--color-black);
  color: var(--color-black);
}
.wholesale-row__info {
  flex: 0 0 220px;
  min-width: 180px;
}
.wholesale-row__name {
  font-weight: 600;
  font-size: 14px;
  text-transform: uppercase;
}
.wholesale-row__name a {
  color: inherit;
  text-decoration: none;
}
.wholesale-row__name a:hover {
  text-decoration: underline;
}
.wholesale-row__badge {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  border: 1px solid var(--color-black);
  border-radius: 20px;
  vertical-align: middle;
}
.wholesale-row__color {
  color: var(--light-grey);
  font-size: 13px;
  margin-top: 2px;
}
.wholesale-row__price {
  margin-top: 6px;
  font-size: 14px;
}
.wholesale-row__price-wholesale {
  font-weight: 700;
}
.wholesale-row__price-retail {
  color: var(--light-grey);
  margin-left: 6px;
}
.wholesale-row__sizes {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  flex: 1 1 auto;
}
.wholesale-row__subtotal {
  flex: 0 0 auto;
  margin-left: auto;
  padding-left: 12px;
  font-weight: 700;
  font-size: 14px;
  white-space: nowrap;
}
.wholesale-size {
  text-align: center;
  min-width: 64px;
}
.wholesale-size__label {
  font-size: 11px;
  text-transform: uppercase;
  color: var(--light-grey);
  opacity: 0.6;
  margin-bottom: 4px;
}
.wholesale-size__stepper {
  display: flex;
  align-items: center;
  border: 1px solid var(--air-grey);
  border-radius: 8px;
  overflow: hidden;
}
.wholesale-size__stepper button {
  width: 26px;
  height: 32px;
  border: none;
  background: transparent;
  font-size: 16px;
  cursor: pointer;
}
.wholesale-size__stepper input {
  width: 44px;
  height: 32px;
  border: none;
  border-left: 1px solid var(--air-grey);
  border-right: 1px solid var(--air-grey);
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--color-black);
  padding: 0 2px;
  -moz-appearance: textfield;
}
.wholesale-size__stepper input::-webkit-outer-spin-button,
.wholesale-size__stepper input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.wholesale-size__stepper input::placeholder {
  color: var(--light-grey);
  opacity: 0.6;
  font-weight: 400;
}
.wholesale-size__oos {
  font-size: 11px;
  color: var(--light-grey);
  padding: 8px 0;
}
.wholesale-size__preorder {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--light-grey);
  margin-top: 3px;
}
.wholesale-empty {
  padding: 40px 0;
  text-align: center;
  color: var(--light-grey);
}

.wholesale-footer {
  position: sticky;
  bottom: 0;
  background: #fff;
  border-top: 1px solid var(--air-grey);
  padding: 16px 0;
  margin-top: 12px;
}
.wholesale-footer__comment {
  width: 100%;
  border: 1px solid var(--air-grey);
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 14px;
  margin-bottom: 12px;
  resize: vertical;
  min-height: 44px;
}
.wholesale-footer__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.wholesale-footer__total {
  font-size: 16px;
  font-weight: 700;
}
.wholesale-footer__bar .btn {
  width: auto;
  padding: 14px 28px;
}
.wholesale-footer__bar .btn:disabled {
  opacity: 0.4;
  cursor: default;
}

.wholesale-confirmation {
  display: flex;
  justify-content: center;
  padding: 40px 20px;
}
.wholesale-confirmation__card {
  max-width: 480px;
  width: 100%;
  text-align: center;
}
.wholesale-confirmation__icon {
  width: 56px;
  height: 56px;
  line-height: 56px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--color-black);
  color: #fff;
  font-size: 24px;
}
.wholesale-confirmation__title {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 4px;
}
.wholesale-confirmation__ref {
  color: var(--light-grey);
  margin: 0 0 24px;
}
.wholesale-confirmation__lines {
  text-align: left;
  border-top: 1px solid var(--air-grey);
  border-bottom: 1px solid var(--air-grey);
  padding: 16px 0;
  margin-bottom: 12px;
}
.wholesale-confirmation__line {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 14px;
  padding: 4px 0;
}
.wholesale-confirmation__total {
  display: flex;
  justify-content: space-between;
  font-weight: 700;
  font-size: 16px;
  margin-bottom: 24px;
}
.wholesale-confirmation__actions {
  display: flex;
  gap: 12px;
  margin-bottom: 20px;
}
.wholesale-confirmation__actions .btn {
  width: auto;
  flex: 1;
  padding: 12px;
  font-size: 14px;
}
.wholesale-confirmation__back {
  font-size: 13px;
  color: var(--light-grey);
  text-decoration: underline;
}

.wholesale-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(255, 255, 255, 0.92);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.wholesale-overlay__spinner {
  width: 36px;
  height: 36px;
  border: 3px solid var(--air-grey);
  border-top-color: var(--color-black);
  border-radius: 50%;
  animation: wholesale-spin 0.8s linear infinite;
}
.wholesale-overlay__text {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--color-black);
  text-align: center;
  padding: 0 20px;
}

/* ==== Инлайн-форма оплаты картой (checkout.js → криптограмма) ==== */
.pm-item__brands{ font-size:10px; letter-spacing:.06em; color:#b5b5b1; white-space:nowrap; margin-left:auto; padding-right:12px; }
.pm-cardform{ border:1px solid var(--color-black); border-top:none; margin-top:-12px; padding:20px 18px 18px; }
.cardf__row{ margin-bottom:10px; }
.cardf__lbl{ display:block; font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; color:#8a8a86; margin:0 0 5px 2px; }
.cardf__field{ position:relative; border:1px solid var(--air-grey,#e4e4e1); background:#fff; transition:.2s ease; }
.cardf__field:focus-within{ border-color:var(--color-black); }
.cardf__input{ width:100%; border:none; outline:none; background:transparent; font-family:inherit; font-size:15px; letter-spacing:.06em; color:var(--color-black); padding:14px 14px; }
.cardf__input::placeholder{ color:#c2c2be; letter-spacing:.04em; }
.cardf__field .cardf__input{ padding-right:56px; }
.cardf__brand{ position:absolute; top:50%; right:14px; transform:translateY(-50%); font-size:11px; letter-spacing:.08em; color:var(--color-black); text-transform:uppercase; }
.cardf__two{ display:flex; gap:10px; }
.cardf__two .cardf__row{ flex:1; }
.cardf__two .cardf__input{ padding-right:14px; }
.cardf__err{ font-size:11.5px; color:#c0392b; letter-spacing:.02em; margin:2px 2px 0; min-height:0; }
.cardf__err:not(:empty){ margin-bottom:8px; }
.cardf__secure{ font-size:10.5px; color:#9a9a96; letter-spacing:.02em; line-height:1.5; margin:10px 2px 0; }

/* 3DS-модалка (challenge банка в iframe, без ухода с сайта) */
.cp3ds-overlay{ position:fixed; inset:0; background:rgba(20,20,22,.55); display:none; align-items:center; justify-content:center; z-index:100000; padding:16px; }
.cp3ds-overlay.is-on{ display:flex; }
.cp3ds-modal{ background:#fff; width:100%; max-width:430px; max-height:92vh; display:flex; flex-direction:column; border:1px solid var(--color-black); }
.cp3ds-modal__head{ display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border-bottom:1px solid var(--air-grey,#e4e4e1); }
.cp3ds-modal__title{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.cp3ds-modal__close{ background:none; border:none; font-size:20px; line-height:1; cursor:pointer; color:#8a8a86; padding:2px 6px; }
.cp3ds-modal__body{ flex:1 1 auto; min-height:420px; }
.cp3ds-modal__body iframe{ width:100%; height:100%; min-height:420px; border:none; display:block; }
.cp3ds-modal__foot{ font-size:10.5px; color:#9a9a96; text-align:center; letter-spacing:.02em; padding:10px 16px; border-top:1px solid var(--air-grey,#e4e4e1); }
.cp3ds-modal__fallback{ margin-top:7px; background:none; border:none; cursor:pointer; font-family:inherit; font-size:11px; letter-spacing:.04em; color:var(--color-black); text-decoration:underline; padding:2px 4px; }
.cp3ds-modal__fallback:hover{ opacity:.65; }
