
/* === FIX: полоса на всю ширину и корректные плитки === */
.sp-tiles__wrapper--six {
  display: block !important;
  width: 100% !important;
  margin: 0 auto;
}

.sp-tiles__grid.sp-tiles__grid--six {
  display: grid !important;
  justify-content: center;
  grid-template-columns: repeat(3, minmax(298px, max-content)) !important;
  gap: 16px;
  margin: 0 auto;
}

@media (max-width: 980px) {
  .sp-tiles__grid.sp-tiles__grid--six {
    grid-template-columns: repeat(2, minmax(298px, max-content)) !important;
  }
}

@media (max-width: 600px) {
  .sp-tiles__grid.sp-tiles__grid--six {
    grid-template-columns: minmax(320px, 92vw) !important;
    justify-content: center;
  }
  .sp-tiles__grid.sp-tiles__grid--six .sp-tile {
    width: min(520px, 92vw) !important;
  }
}

.sp-cta-fullbleed {
  display: block !important;
  width: 100% !important;
  margin: 24px 0 !important;
  padding: 18px 0 !important;
  background: #f5f6f7 !important;
  border-top: 1px solid var(--sp-border, #d7d9dc);
  border-bottom: 1px solid var(--sp-border, #d7d9dc);
  box-sizing: border-box;
}

.sp-cta-fullbleed__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  text-align: center;
}

.sp-cta-fullbleed__title {
  margin: 0;
  font-weight: 800;
  font-size: 1.2rem;
}

.sp-cta-fullbleed__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 10px;
  color: #fff;
  background: #0b84ff;
  text-decoration: none;
  font-weight: 800;
  white-space: nowrap;
  transition: 0.2s;
}

.sp-cta-fullbleed__btn:hover {
  background: #0066cc;
}
/* ====== HARD RESET / LAYOUT STABILIZER ====== */

/* 0) Больше не делаем wrapper сеткой: пусть будет обычный блочный контейнер */
.sp-tiles__wrapper--six { display:block !important; width:100% !important; margin:0 auto !important; }
.sp-tiles__wrapper--two { display:block !important; width:100% !important; margin:0 auto !important; }

/* 1) 6-кнопочная сетка — стабильная, центрируем через max-width, а не через grid-обёртки */
.sp-tiles__grid.sp-tiles__grid--six {
  display:grid !important;
  grid-template-columns: repeat(3, minmax(298px, 1fr)) !important;
  gap:16px !important;
  max-width:1200px !important;
  padding:0 16px !important;
  margin:0 auto !important;
  justify-content:normal !important;
  justify-items:stretch !important;
  width:100% !important;
}
@media (max-width: 980px){
  .sp-tiles__grid.sp-tiles__grid--six { grid-template-columns: repeat(2, minmax(298px, 1fr)) !important; }
}
@media (max-width: 640px){
  .sp-tiles__grid.sp-tiles__grid--six { grid-template-columns: 1fr !important; }
  .sp-tiles__grid.sp-tiles__grid--six .sp-tile { width:min(520px,92vw) !important; margin:0 auto !important; }
}

/* 2) 2-кнопочная сетка — строго по центру, одинаковый размер как у больших плиток */
.sp-tiles__grid.sp-tiles__grid--two {
  display:flex !important;
  flex-wrap:wrap !important;
  gap:16px !important;
  justify-content:center !important;
  max-width:1200px !important;
  padding:0 16px !important;
  margin:0 auto !important;
  width:100% !important;
}
.sp-tiles__grid.sp-tiles__grid--two .sp-tile {
  width:min(520px,92vw) !important;
  margin:0 auto !important;
}

/* 3) Универсальные размеры самих плиток (оба блока) */
.sp-tile__media {
  width:100% !important;
  aspect-ratio: 3 / 2 !important;
  min-height:200px !important;
  border:2px solid var(--sp-border,#d7d9dc) !important;
  border-radius:12px !important;
  background:#fff !important;
  overflow:hidden !important;
}
.sp-tile__media img { width:100% !important; height:100% !important; object-fit:cover !important; display:block !important; }
.sp-tile__title { font-size:1.05rem !important; line-height:1.3 !important; text-align:center !important; margin-top:6px !important; }

/* 4) Полоса «Другая продукция» — на ВЕСЬ экран, нормальные отступы и центр */
.sp-cta-fullbleed {
  display:block !important;
  width:100% !important;
  margin:24px 0 !important;
  padding:16px 0 !important;
  background:#f5f6f7 !important;
  border-top:1px solid var(--sp-border,#d7d9dc) !important;
  border-bottom:1px solid var(--sp-border,#d7d9dc) !important;
  box-sizing:border-box !important;
}
.sp-cta-fullbleed__inner {
  max-width:1200px !important;
  margin:0 auto !important;
  padding:0 16px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
  flex-wrap:wrap !important;
}
@media (max-width: 768px){
  .sp-cta-fullbleed__inner { justify-content:center !important; text-align:center !important; gap:12px !important; }
}
.sp-cta-fullbleed__title { margin:0 !important; font-weight:800 !important; font-size:1.15rem !important; }
.sp-cta-fullbleed__btn {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  padding:10px 16px !important; border-radius:10px !important;
  color:#fff !important; background:#0b84ff !important; text-decoration:none !important; font-weight:800 !important; white-space:nowrap !important;
}

/* 5) Сброс «липких» свойств, из-за которых всё съезжало */
.sp-tiles, .sp-tiles__grid { max-width:100% !important; }
.sp-tiles__grid { justify-self:stretch !important; }
.sp-tiles__wrapper--six > .sp-cta-fullbleed,
.sp-tiles > .sp-cta-fullbleed { justify-self:stretch !important; width:100% !important; }

/* 6) На совсем узких экранах — гарантированный «крупный» вид */
@media (max-width: 400px){
  .sp-tile__media { min-height: 220px !important; }
  .sp-cta-fullbleed__title { font-size:1.05rem !important; }
}
/* === FULL-BLEED для полосы "Другая продукция" === */
.sp-cta-fullbleed.sp-cta-bleed{
  display:block !important;

  /* выходим из контейнера и растягиваемся на всю ширину окна */
  position: relative !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  width: 100vw !important;

  /* базовые стили */
  margin-top: 24px !important;
  margin-bottom: 24px !important;
  padding: 16px 0 !important;
  background: #f5f6f7 !important;
  border-top:1px solid var(--sp-border,#d7d9dc) !important;
  border-bottom:1px solid var(--sp-border,#d7d9dc) !important;

  /* на случай, если родитель — grid: растянуть по строке */
  justify-self: stretch !important;
  align-self: stretch !important;
  grid-column: 1 / -1 !important;
}

/* внутренний контейнер по центру, фиксируем липкость отступов */
.sp-cta-fullbleed.sp-cta-bleed .sp-cta-fullbleed__inner{
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 16px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  text-align: center !important;
}

/* защита от горизонтального скролла из-за 100vw */
html, body { overflow-x: hidden; }
/* === FIX внутреннего выравнивания для полосы "Другая продукция" === */
.sp-cta-fullbleed.sp-cta-bleed .sp-cta-fullbleed__inner {
  display: flex !important;
  flex-direction: row !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 20px !important;              /* промежуток между текстом и кнопкой */
  flex-wrap: wrap !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 16px !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

.sp-cta-fullbleed__title {
  font-weight: 800 !important;
  font-size: 1.2rem !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}

.sp-cta-fullbleed__btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 20px !important;
  border-radius: 10px !important;
  background: #0b84ff !important;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
  transition: background .2s ease !important;
}

.sp-cta-fullbleed__btn:hover {
  background: #0066cc !important;
}

/* На телефонах — текст сверху, кнопка снизу, отступы больше */
@media (max-width: 768px) {
  .sp-cta-fullbleed.sp-cta-bleed .sp-cta-fullbleed__inner {
    flex-direction: column !important;
    gap: 12px !important;
  }
}

.soho-home-intro {
  margin: 30px 0 10px;
}

.soho-section {
  margin: 0 0 28px;
}

.soho-section__inner {
  width: 100%;
}

.soho-block,
.soho-cta,
.soho-advantages__item,
.soho-block--accent {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(0,0,0,.04);
}

.soho-block,
.soho-block--accent,
.soho-cta {
  padding: 28px 30px;
}

.soho-block--accent {
  border-color: rgba(19,136,59,.18);
}

.soho-title {
  margin: 0 0 18px;
  font-size: 38px;
  line-height: 1.15;
  font-weight: 800;
  color: #2f3a45;
}

.soho-subtitle {
  margin: 0 0 16px;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 800;
  color: #2f3a45;
}

.soho-card-title {
  margin: 0 0 12px;
  font-size: 24px;
  line-height: 1.25;
  font-weight: 800;
  color: #2f3a45;
}

.soho-text p {
  margin: 0 0 14px;
  font-size: 18px;
  line-height: 1.7;
  color: #4b5563;
}

.soho-text p:last-child {
  margin-bottom: 0;
}

.soho-service-list,
.soho-check-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 22px 0;
}

.soho-service-list__item,
.soho-check-list__item {
  display: flex;
  align-items: center;
  min-height: 58px;
  padding: 14px 18px;
  background: #f8f9fa;
  border: 1px solid #ececec;
  border-radius: 14px;
  font-size: 17px;
  line-height: 1.45;
  font-weight: 600;
  color: #2f3a45;
}

.soho-check-list__item::before {
  content: "✓";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  min-width: 22px;
  height: 22px;
  margin-right: 10px;
  border-radius: 50%;
  background: #13883b;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}

.soho-advantages {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 20px;
}

.soho-advantages__item {
  padding: 24px 24px;
}

.soho-advantages__item p {
  margin: 0;
  font-size: 17px;
  line-height: 1.7;
  color: #4b5563;
}

.soho-cta {
  background: linear-gradient(180deg, #ffffff 0%, #f8fcf9 100%);
  border-color: rgba(19,136,59,.16);
}

@media (max-width: 991px) {
  .soho-title {
    font-size: 32px;
  }

  .soho-subtitle {
    font-size: 26px;
  }

  .soho-card-title {
    font-size: 22px;
  }

  .soho-block,
  .soho-block--accent,
  .soho-cta {
    padding: 24px 22px;
  }
}

@media (max-width: 767px) {
  .soho-home-intro {
    margin-top: 22px;
  }

  .soho-title {
    font-size: 28px;
  }

  .soho-subtitle {
    font-size: 23px;
  }

  .soho-card-title {
    font-size: 20px;
  }

  .soho-text p {
    font-size: 16px;
    line-height: 1.65;
  }

  .soho-service-list,
  .soho-check-list,
  .soho-advantages {
    grid-template-columns: 1fr;
  }

  .soho-service-list__item,
  .soho-check-list__item {
    min-height: 52px;
    font-size: 16px;
  }

  .soho-advantages__item p {
    font-size: 16px;
  }

  .soho-block,
  .soho-block--accent,
  .soho-cta {
    padding: 20px 16px;
    border-radius: 16px;
  }
}
.spc-add-to-cart-btn {

  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 52px;
  padding: 0 24px;

  border: 0;
  border-radius: 14px;

  background: #13883b;
  color: #fff;

  font-size: 17px;
  font-weight: 700;

  cursor: pointer;

  transition: .2s ease;
}

.spc-add-to-cart-btn:hover {
  transform: translateY(-1px);
}
.soho-header-buttons {

  display: flex;
  align-items: center;
  gap: 12px;

}

.soho-header-btn {

  display: inline-flex;
  align-items: center;
  justify-content: center;

  height: 42px;
  padding: 0 16px;

  border-radius: 12px;

  background: #ffffff;

  border: 1px solid #e5e7eb;

  font-size: 15px;
  font-weight: 700;

  color: #2f3a45;

  text-decoration: none;

  transition: .2s ease;

}

.soho-header-btn:hover {

  background: #13883b;
  color: #fff;

}

.soho-header-cart {

  position: relative;
  padding-right: 36px;

}

.soho-cart-count {

  position: absolute;
  top: -6px;
  right: -6px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 22px;
  height: 22px;

  border-radius: 50%;

  background: #e53935;
  color: #fff;

  font-size: 12px;
  font-weight: 700;

}

/* === HEADER ACTIONS: контакты / мессенджеры / кабинет / заказы / корзина === */
.sp-header__inner--top {
  display: flex;
  align-items: flex-start;
  gap: 24px;
}

.sp-logo {
  flex: 0 0 auto;
}

.sp-contact-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
}

.sp-contact-action.soho-header-action--contact {
  min-width: 120px;
}

.sp-contact-action.soho-header-action--contact .soho-header-action__label {
  font-size: 15px;
  font-weight: 600;
}

.sp-phone--stacked {
  display: inline-block;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  color: #2f3a45;
  text-decoration: none;
  white-space: nowrap;
}

.sp-phone--stacked:hover {
  color: #13883b;
  text-decoration: none;
}

.sp-header__right {
  margin-left: auto;
  display: flex;
  align-items: flex-start;
  gap: 26px;
}

.sp-header-messengers {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 6px;
}

.sp-messenger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: #f3f5f7;
  color: #3b4a5a;
  text-decoration: none;
  transition: .2s ease;
}

.sp-messenger:hover {
  background: #13883b;
  color: #fff;
  text-decoration: none;
}

.sp-messenger svg {
  display: block;
  width: 20px;
  height: 20px;
}

.sp-messenger--max span {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
}

.sp-header-usernav {
  display: flex;
  align-items: flex-start;
}

.soho-header-actions {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 28px;
}

.soho-header-action {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  min-width: 74px;
  text-decoration: none;
  color: #3b4a5a;
  transition: .2s ease;
}

.soho-header-action:hover {
  color: #13883b;
  text-decoration: none;
}

.soho-header-action__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-bottom: 8px;
  color: #3b4a5a;
}

.soho-header-action__icon img {
  display: block;
  width: 30px;
  height: 30px;
  object-fit: contain;
}

.soho-header-action__icon svg {
  display: block;
  width: 28px;
  height: 28px;
}

.soho-header-action__label {
  font-size: 14px;
  line-height: 1.2;
  font-weight: 500;
  color: #3b4a5a;
  white-space: nowrap;
}

.soho-header-action:hover .soho-header-action__label,
.soho-header-action:hover .soho-header-action__icon {
  color: #13883b;
}

.soho-header-action--cart .soho-cart-count {
  position: absolute;
  top: -2px;
  right: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 999px;
  background: #10b981;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 2px 8px rgba(16, 185, 129, .35);
}

/* убрать старый стиль прямоугольных кнопок */
.soho-header-buttons,
.soho-header-btn,
.soho-header-cart {
  all: unset;
}

@media (max-width: 1199px) {
  .sp-header__inner--top {
    gap: 18px;
  }

  .sp-header__right {
    gap: 18px;
  }

  .soho-header-actions {
    gap: 18px;
  }
}

@media (max-width: 991px) {
  .sp-header__inner--top {
    align-items: center;
    gap: 14px;
  }

  .sp-contact-stack {
    margin-top: 0;
  }

  .sp-contact-action.soho-header-action--contact {
    min-width: 104px;
  }

  .sp-header__right {
    gap: 12px;
  }

  .sp-header-messengers {
    gap: 8px;
    padding-top: 0;
  }

  .sp-messenger {
    width: 36px;
    height: 36px;
  }

  .sp-messenger svg {
    width: 18px;
    height: 18px;
  }

  .sp-messenger--max span {
    font-size: 11px;
  }

  .soho-header-actions {
    gap: 12px;
  }

  .soho-header-action {
    min-width: 56px;
  }

  .soho-header-action__icon {
    width: 34px;
    height: 34px;
    margin-bottom: 6px;
  }

  .soho-header-action__icon img,
  .soho-header-action__icon svg {
    width: 24px;
    height: 24px;
  }

  .soho-header-action__label,
  .sp-phone--stacked {
    font-size: 12px;
  }
}

@media (max-width: 767px) {
  .sp-header__inner--top {
    align-items: center;
    gap: 10px;
  }

  .sp-contact-stack,
  .soho-header-action--orders,
  .sp-burger {
    display: none !important;
  }

  .sp-header__right {
    margin-left: auto;
    gap: 8px;
    align-items: center;
  }

  .sp-header-messengers {
    gap: 8px;
  }

  .sp-messenger {
    width: 34px;
    height: 34px;
  }

  .sp-messenger svg {
    width: 17px;
    height: 17px;
  }

  .sp-messenger--max span {
    font-size: 10px;
  }

  .soho-header-actions {
    gap: 8px;
    align-items: center;
  }

  .soho-header-action {
    min-width: auto;
  }

  .soho-header-action__icon {
    width: 34px;
    height: 34px;
    margin-bottom: 0;
  }

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

  .soho-header-action--cart .soho-cart-count {
    top: -5px;
    right: -4px;
  }
}

/* === HEADER: messengers closer to contacts + mobile burger === */
.sp-header__right {
  margin-left: 14px;
  gap: 14px;
}

.sp-header-messengers {
  gap: 8px;
  padding-top: 2px;
}

.sp-header-usernav {
  margin-left: auto;
}

.sp-messenger {
  width: 38px;
  height: 38px;
  padding: 0;
  background: transparent;
  border-radius: 10px;
}

.sp-messenger img {
  display: block;
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.sp-messenger:hover {
  background: transparent;
  transform: translateY(-1px);
}

.sp-messenger:hover img {
  transform: scale(1.05);
}

.sp-contact-stack {
  margin-right: 0;
}

.sp-contact-action.soho-header-action--contact {
  min-width: 112px;
}

.sp-phone--stacked {
  margin-top: 2px;
}

@media (max-width: 991px) {
  .sp-header__right {
    margin-left: 8px;
    gap: 10px;
  }

  .sp-messenger {
    width: 34px;
    height: 34px;
  }

  .sp-messenger img {
    width: 24px;
    height: 24px;
  }
}

@media (max-width: 767px) {
  .sp-burger {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }

  .sp-header__right {
    margin-left: auto;
    gap: 6px;
    align-items: center;
  }

  .sp-header-usernav {
    margin-left: 0;
  }

  .sp-header-messengers {
    gap: 6px;
  }

  .sp-messenger {
    width: 32px;
    height: 32px;
  }

  .sp-messenger img {
    width: 22px;
    height: 22px;
  }

  .soho-header-actions {
    gap: 6px;
  }

  .soho-header-action--orders {
    display: none !important;
  }

  .sp-burger {
    margin-left: 2px;
  }
}

/* === HEADER TUNE: contacts left, messengers closer, icons x2, bottom alignment === */
.sp-header__inner--top {
  align-items: flex-end !important;
  gap: 14px !important;
}

.sp-logo {
  margin-right: 6px !important;
}

.sp-contact-stack {
  align-items: flex-start !important;
  gap: 6px !important;
  margin: 0 4px 0 0 !important;
}

.sp-contact-action.soho-header-action--contact {
  min-width: 132px !important;
}

.sp-phone--stacked {
  margin-top: 0 !important;
}

.sp-header__right {
  flex: 1 1 auto !important;
  margin-left: 4px !important;
  gap: 10px !important;
  align-items: flex-end !important;
}

.sp-header-messengers {
  gap: 4px !important;
  padding-top: 0 !important;
  align-items: flex-end !important;
}

.sp-header-usernav {
  margin-left: auto !important;
  display: flex !important;
  align-items: flex-end !important;
}

.soho-header-actions {
  align-items: flex-end !important;
  gap: 20px !important;
}

.soho-header-action {
  min-width: 96px !important;
  align-items: center !important;
  justify-content: flex-end !important;
}

.soho-header-action__icon {
  width: 72px !important;
  height: 72px !important;
  margin-bottom: 10px !important;
}

.soho-header-action__icon img,
.soho-header-action__icon svg {
  width: 56px !important;
  height: 56px !important;
}

.soho-header-action__label {
  font-size: 15px !important;
}

.soho-header-action--cart .soho-cart-count {
  top: 2px !important;
  right: 10px !important;
  min-width: 24px !important;
  height: 24px !important;
  font-size: 12px !important;
}

.sp-messenger {
  width: 72px !important;
  height: 72px !important;
}

.sp-messenger img {
  width: 56px !important;
  height: 56px !important;
}

.sp-burger {
  align-self: flex-end !important;
  margin-bottom: 6px !important;
}

@media (max-width: 1199px) {
  .sp-header__inner--top { gap: 10px !important; }
  .sp-header__right { gap: 8px !important; }
  .soho-header-actions { gap: 14px !important; }
  .soho-header-action { min-width: 84px !important; }
  .soho-header-action__icon,
  .sp-messenger { width: 58px !important; height: 58px !important; }
  .soho-header-action__icon img,
  .soho-header-action__icon svg,
  .sp-messenger img { width: 44px !important; height: 44px !important; }
}

@media (max-width: 991px) {
  .sp-header__inner--top { gap: 8px !important; }
  .sp-contact-action.soho-header-action--contact { min-width: 116px !important; }
  .sp-phone--stacked { font-size: 13px !important; }
  .sp-header__right { gap: 6px !important; }
  .soho-header-actions { gap: 10px !important; }
  .soho-header-action { min-width: 68px !important; }
  .soho-header-action__icon,
  .sp-messenger { width: 46px !important; height: 46px !important; }
  .soho-header-action__icon img,
  .soho-header-action__icon svg,
  .sp-messenger img { width: 34px !important; height: 34px !important; }
}

@media (max-width: 767px) {
  .sp-header__inner--top {
    align-items: center !important;
    gap: 8px !important;
  }

  .sp-header__right {
    flex: 0 0 auto !important;
    margin-left: auto !important;
    gap: 4px !important;
    align-items: center !important;
  }

  .sp-header-messengers,
  .soho-header-actions {
    align-items: center !important;
    gap: 4px !important;
  }

  .sp-messenger,
  .soho-header-action__icon {
    width: 38px !important;
    height: 38px !important;
    margin-bottom: 0 !important;
  }

  .sp-messenger img,
  .soho-header-action__icon img,
  .soho-header-action__icon svg {
    width: 28px !important;
    height: 28px !important;
  }

  .sp-burger {
    margin-bottom: 0 !important;
  }
}
/* === ПОДПИСИ ПРИЖАТЬ К ИКОНКАМ === */

.soho-header-action {

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;

}

.soho-header-action__icon {

  margin-bottom: 2px !important;

}

.soho-header-action__label {

  margin-top: 0 !important;
  font-size: 13px;
  line-height: 1.1;

}

/* === УВЕЛИЧИТЬ ИКОНКИ (ДЕСКТОП) === */

.soho-header-action__icon img {

  width: 48px !important;
  height: 48px !important;

}

.sp-messenger img {

  width: 42px !important;
  height: 42px !important;

}

/* === МОБИЛЬНАЯ ВЕРСИЯ === */

@media (max-width: 768px) {

  /* увеличить все иконки ×2 */

  .soho-header-action__icon img {

    width: 52px !important;
    height: 52px !important;

  }

  .sp-messenger img {

    width: 48px !important;
    height: 48px !important;

  }

  /* подписи скрыть (как в макете) */

  .soho-header-action__label {

    display: none;

  }

  /* уменьшить расстояния */

  .soho-header-actions {

    gap: 12px !important;

  }

  .sp-messengers {

    gap: 10px !important;

  }

}
/* ===== ШАПКА: подгонка под образец ===== */

/* вся верхняя линия */
.sp-header__inner {
  display: flex;
  align-items: flex-end !important;
}

/* логотип */
.sp-logo {
  display: flex;
  align-items: flex-end;
  margin-right: 28px;
}

.sp-logo img {
  display: block;
  max-height: 64px;
  width: auto;
}

/* правый блок шапки */
.sp-cta {
  display: flex;
  align-items: flex-end !important;
  gap: 18px !important;
  margin-left: 12px !important;
}

/* блок контактов ближе к логотипу */
.sp-contact-block {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  margin-left: 0 !important;
  margin-right: 8px !important;
}

/* кнопка контакты */
.sp-button.sp-button--contact,
.sp-button[href*="kontakty"] {
  min-height: auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: 18px !important;
  line-height: 1.1 !important;
  font-weight: 500 !important;
  color: #31455a !important;
}

/* телефон под контактами */
.sp-phone {
  display: block;
  margin-top: 6px !important;
  font-size: 17px !important;
  line-height: 1.1 !important;
  font-weight: 700 !important;
  color: #31455a !important;
  text-decoration: none;
}

/* мессенджеры ближе к контактам */
.sp-messengers {
  display: flex;
  align-items: flex-end !important;
  gap: 10px !important;
  margin-left: 4px !important;
  margin-right: 18px !important;
}

.sp-messenger {
  display: inline-flex;
  align-items: flex-end;
  justify-content: center;
  text-decoration: none;
}

.sp-messenger img {
  display: block;
  width: 34px !important;
  height: 34px !important;
  object-fit: contain;
}

/* модуль кнопок справа */
.soho-header-actions {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: flex-end;
  gap: 26px !important;
  margin-left: auto !important;
}

/* каждая иконка */
.soho-header-action {
  position: relative;
  display: inline-flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  min-width: 54px !important;
  text-decoration: none;
  color: #31455a;
}

/* иконка */
.soho-header-action__icon {
  display: flex !important;
  align-items: center;
  justify-content: center;
  margin-bottom: 2px !important;
  height: auto !important;
}

.soho-header-action__icon img,
.soho-header-action__icon svg {
  display: block;
  width: 32px !important;
  height: 32px !important;
  object-fit: contain;
}

/* подпись максимально близко к иконке */
.soho-header-action__label {
  margin-top: 0 !important;
  padding-top: 0 !important;
  font-size: 13px !important;
  line-height: 1 !important;
  font-weight: 500 !important;
  color: #31455a !important;
  white-space: nowrap;
}

/* счетчик корзины */
.soho-header-action--cart .soho-cart-count {
  position: absolute;
  top: -6px !important;
  right: -8px !important;
  min-width: 22px !important;
  height: 22px !important;
  padding: 0 6px;
  border-radius: 999px;
  background: #10b981 !important;
  color: #fff !important;
  font-size: 12px !important;
  line-height: 22px !important;
  font-weight: 700;
}

/* бургер на десктопе можно прижать вниз */
.sp-burger {
  align-self: flex-end;
  margin-left: 8px;
}

/* ===== МОБИЛЬНАЯ ВЕРСИЯ ===== */
@media (max-width: 768px) {
  .sp-header__inner {
    align-items: center !important;
  }

  .sp-logo {
    margin-right: 10px;
  }

  .sp-logo img {
    max-height: 52px;
  }

  .sp-contact-block,
  .soho-header-action--orders,
  .soho-header-action[href*="orders"] {
    display: none !important;
  }

  .sp-messengers {
    gap: 8px !important;
    margin-left: auto !important;
    margin-right: 10px !important;
  }

  .sp-messenger img {
    width: 40px !important;
    height: 40px !important;
  }

  .soho-header-actions {
    gap: 12px !important;
    margin-left: 0 !important;
  }

  .soho-header-action {
    min-width: auto !important;
  }

  .soho-header-action__icon img,
  .soho-header-action__icon svg {
    width: 40px !important;
    height: 40px !important;
  }

  .soho-header-action__label {
    display: none !important;
  }

  .sp-burger {
    display: inline-flex !important;
    align-self: center !important;
    margin-left: 10px !important;
  }
}
/* === МЕССЕНДЖЕРЫ КАК КНОПКИ (КАК КОРЗИНА) === */

.sp-messengers {

  display: flex;
  align-items: flex-end;
  gap: 12px;

}

/* блок каждой иконки */

.sp-messenger {

  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;

  min-width: 54px;
  text-decoration: none;

}

/* контейнер иконки как у корзины */

.sp-messenger img {

  display: block;

  width: 64px !important;
  height: 64px !important;

  object-fit: contain;

}

/* выравнивание по нижней линии */

.sp-messenger,
.soho-header-action {

  align-items: center;
  justify-content: flex-end;

}

/* === МОБИЛКУ НЕ ТРОГАЕМ === */

@media (max-width: 768px) {

  .sp-messenger img {

    width: 40px !important;
    height: 40px !important;

  }

}
/* ===== СТРАНИЦА КОРЗИНЫ ===== */

.soho-cart-page {
  max-width: 1100px;
  margin: 32px auto;
  padding: 0 16px;
}

.soho-cart-page__title {
  margin: 0 0 24px;
  font-size: 36px;
  line-height: 1.15;
  font-weight: 800;
  color: #2f3a45;
}

.soho-cart-page__items {
  display: grid;
  gap: 18px;
}

.soho-cart-item {
  background: #fff;
  border: 1px solid #e7eaee;
  border-radius: 18px;
  padding: 22px 24px;
  box-shadow: 0 8px 24px rgba(0,0,0,.04);
}

.soho-cart-title {
  margin-bottom: 14px;
  font-size: 22px;
  line-height: 1.2;
  font-weight: 800;
  color: #2f3a45;
}

.soho-cart-options {
  display: grid;
  gap: 8px;
  margin-bottom: 14px;
}

.soho-cart-option {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 6px;
  border-bottom: 1px dashed #e5e7eb;
  font-size: 16px;
  line-height: 1.45;
  color: #4b5563;
}

.soho-cart-option span {
  font-weight: 500;
}

.soho-cart-option strong {
  text-align: right;
  color: #2f3a45;
}

.soho-cart-price {
  margin-bottom: 14px;
  font-size: 22px;
  line-height: 1.2;
  font-weight: 800;
  color: #13883b;
}

.soho-cart-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border: 0;
  border-radius: 12px;
  background: #ef4444;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.soho-cart-page__summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-top: 28px;
  padding: 22px 24px;
  background: #fff;
  border: 1px solid #e7eaee;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(0,0,0,.04);
}

.soho-cart-page__total {
  font-size: 24px;
  line-height: 1.2;
  font-weight: 800;
  color: #2f3a45;
}

.soho-cart-page__total strong {
  color: #13883b;
}

.soho-cart-page__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.soho-cart-page__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 20px;
  border-radius: 14px;
  text-decoration: none;
  font-size: 15px;
  font-weight: 700;
  transition: .2s ease;
}

.soho-cart-page__btn--clear {
  border: 0;
  background: #f3f4f6;
  color: #2f3a45;
  cursor: pointer;
}

.soho-cart-page__btn--checkout {
  background: #13883b;
  color: #fff;
}

.soho-cart-empty {
  padding: 18px 0;
  font-size: 18px;
  color: #6b7280;
}

@media (max-width: 768px) {
  .soho-cart-page__title {
    font-size: 28px;
  }

  .soho-cart-item {
    padding: 18px 16px;
  }

  .soho-cart-title {
    font-size: 20px;
  }

  .soho-cart-price {
    font-size: 20px;
  }

  .soho-cart-option {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .soho-cart-option strong {
    text-align: left;
  }

  .soho-cart-page__summary {
    flex-direction: column;
    align-items: flex-start;
    padding: 18px 16px;
  } 

  .soho-cart-page__total {
    font-size: 22px;
  }

  .soho-cart-page__actions {
    width: 100%;
  }

  .soho-cart-page__btn {
    width: 100%;
  }
}

#spc-details,
.spc-result__details {
  display: none !important;
}
/* ===== ОФОРМЛЕНИЕ ЗАКАЗА ===== */

.soho-checkout {
  max-width: 900px;
  margin: 30px auto;
}

.soho-checkout__title {
  margin-bottom: 24px;
  font-size: 32px;
  font-weight: 800;
}

.soho-checkout__grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, 1fr);
}

.soho-field {
  display: flex;
  flex-direction: column;
}

.soho-field label {
  margin-bottom: 6px;
  font-weight: 600;
}

.soho-field input,
.soho-field select,
.soho-field textarea {
  padding: 12px;
  border-radius: 10px;
  border: 1px solid #ddd;
  font-size: 15px;
}

.soho-field textarea {
  min-height: 90px;
}

.soho-checkout__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 24px;
}

.soho-checkout__total {
  font-size: 20px;
  font-weight: 700;
}

.soho-checkout__submit {
  padding: 14px 26px;
  border: 0;
  border-radius: 12px;
  background: #13883b;
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

@media (max-width: 768px) {

  .soho-checkout__grid {
    grid-template-columns: 1fr;
  }

}
/* ===== КОРЗИНА gmprint стиль ===== */

.soho-cart {
  max-width: 1000px;
  margin: 30px auto;
}

/* шаги */

.soho-cart__steps {
  display: flex;
  gap: 30px;
  margin-bottom: 20px;
}

.soho-step {
  color: #9ca3af;
  font-weight: 600;
}

.soho-step.is-active {
  color: #16a34a;
}

/* заголовок */

.soho-cart__title {
  font-size: 30px;
  font-weight: 800;
  margin-bottom: 20px;
}

/* карточка товара */

.soho-cart-item {

  display: grid;

  grid-template-columns:
    120px
    1fr
    auto;

  gap: 20px;

  padding: 20px;

  border: 1px solid #e5e7eb;

  border-radius: 14px;

  margin-bottom: 16px;

}

/* блок макета */

.soho-cart-item__preview {

  width: 120px;
  height: 120px;

  border: 2px dashed #d1d5db;

  border-radius: 12px;

  display: flex;
  align-items: center;
  justify-content: center;

  color: #9ca3af;

  font-size: 14px;

}

/* описание */

.soho-cart-item__info h3 {

  font-size: 18px;
  font-weight: 700;

  margin-bottom: 8px;

}

.soho-cart-item__info p {

  margin: 2px 0;

  color: #6b7280;

  font-size: 14px;

}

/* цена */

.soho-cart-item__price {

  font-size: 22px;

  font-weight: 800;

  white-space: nowrap;

}

/* нижний блок */

.soho-cart__bottom {

  display: flex;

  justify-content: space-between;

  align-items: center;

  margin-top: 30px;

}

/* итог */

.soho-cart__total {

  font-size: 22px;

  font-weight: 700;

}

/* кнопка далее */

.soho-cart__next {

  padding: 14px 28px;

  background: #16a34a;

  color: #fff;

  border-radius: 12px;

  text-decoration: none;

  font-weight: 700;

}

.soho-cart__next:hover {

  opacity: .9;

}
/* ===== ДОЖИМАЕМ СТРАНИЦУ КОРЗИНЫ ===== */

.soho-cart {
  max-width: 1180px !important;
  margin: 34px auto !important;
  padding: 0 20px !important;
}

.soho-cart__steps {
  justify-content: center !important;
  gap: 56px !important;
  margin-bottom: 18px !important;
  font-size: 15px !important;
}

.soho-step {
  position: relative;
  color: #94a3b8 !important;
  font-weight: 600 !important;
}

.soho-step.is-active {
  color: #16a34a !important;
}

.soho-cart__title {
  text-align: left !important;
  font-size: 32px !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  color: #1f2937 !important;
  margin: 0 0 24px !important;
}

/* контейнер с товарами */
#sohoCartItems {
  display: grid !important;
  gap: 18px !important;
}

/* карточка товара */
.soho-cart-item {
  display: grid !important;
  grid-template-columns: 170px 1fr 140px !important;
  gap: 26px !important;
  align-items: start !important;
  width: 100% !important;
  padding: 20px 22px !important;
  background: #fff !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 18px !important;
  box-shadow: 0 4px 16px rgba(0,0,0,.03) !important;
  margin-bottom: 0 !important;
}

/* левый блок макета */
.soho-cart-item__preview-wrap {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 8px !important;
}

.soho-cart-item__preview {
  width: 116px !important;
  height: 116px !important;
  border: 2px dashed #cfd8dc !important;
  border-radius: 14px !important;
  background: #fafafa !important;
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  color: #9ca3af !important;
}

.soho-cart-item__upload,
.soho-cart-item__link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  min-height: 28px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  text-decoration: underline !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #6d28d9 !important;
}

/* центральный блок */
.soho-cart-item__info h3 {
  margin: 0 0 14px !important;
  font-size: 20px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  color: #111827 !important;
}

.soho-cart-item__options {
  display: grid !important;
  gap: 6px !important;
}

.soho-cart-item__option {
  display: grid !important;
  grid-template-columns: 110px 1fr !important;
  gap: 10px !important;
  font-size: 15px !important;
  line-height: 1.45 !important;
}

.soho-cart-item__option span {
  color: #6b7280 !important;
  font-weight: 500 !important;
}

.soho-cart-item__option strong {
  color: #111827 !important;
  font-weight: 700 !important;
}

/* правый блок */
.soho-cart-item__side {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  justify-content: flex-start !important;
  gap: 12px !important;
  min-width: 120px !important;
}

.soho-cart-item__price {
  font-size: 24px !important;
  line-height: 1.1 !important;
  font-weight: 800 !important;
  color: #111827 !important;
}

.soho-cart-item__remove {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 34px !important;
  padding: 0 14px !important;
  border: 1px solid #d1d5db !important;
  border-radius: 6px !important;
  background: #fff !important;
  color: #374151 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
}

/* низ страницы */
.soho-cart__bottom {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 34px !important;
  margin-top: 28px !important;
}

.soho-cart__total {
  font-size: 24px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  color: #111827 !important;
}

.soho-cart__total strong {
  font-size: 26px !important;
  font-weight: 800 !important;
  color: #111827 !important;
}

.soho-cart__next {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 120px !important;
  min-height: 48px !important;
  padding: 0 24px !important;
  background: #10b981 !important;
  color: #fff !important;
  border-radius: 10px !important;
  text-decoration: none !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}

.soho-cart__next:hover {
  opacity: .92 !important;
}

/* мобильная версия */
@media (max-width: 768px) {
  .soho-cart {
    padding: 0 14px !important;
  }

  .soho-cart__steps {
    justify-content: flex-start !important;
    gap: 20px !important;
    flex-wrap: wrap !important;
  }

  .soho-cart__title {
    font-size: 28px !important;
  }

  .soho-cart-item {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    padding: 16px !important;
  }

  .soho-cart-item__preview {
    width: 100% !important;
    max-width: 160px !important;
    height: 120px !important;
  }

  .soho-cart-item__side {
    align-items: flex-start !important;
  }

  .soho-cart__bottom {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px !important;
  }
}
/* ===== КНОПКИ МАКЕТОВ ===== */

.soho-cart-item__upload {

  display: flex;
  align-items: center;
  justify-content: center;

  height: 34px;

  background: #10b981;
  color: #fff;

  border-radius: 6px;

  font-size: 14px;
  font-weight: 700;

  border: 0;
  cursor: pointer;

}

.soho-cart-item__upload:hover {

  opacity: .92;

}

.soho-cart-item__link {

  display: block;

  text-align: center;

  font-size: 14px;

  color: #6d28d9;

  text-decoration: underline;

}
/* ===== КОРЗИНА: ШАГИ КАК В ОБРАЗЦЕ ===== */

.soho-cart__steps {
  position: relative !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  align-items: center !important;
  gap: 0 !important;
  margin: 0 0 26px !important;
  padding: 0 12px !important;
}

.soho-cart__steps::before {
  content: "" !important;
  position: absolute !important;
  left: 40px !important;
  right: 40px !important;
  top: 16px !important;
  height: 2px !important;
  background: #d7e0e3 !important;
  z-index: 0 !important;
}

.soho-step {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  color: #94a3b8 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-align: center !important;
  background: transparent !important;
}

.soho-step::before {
  content: "" !important;
  width: 30px !important;
  height: 30px !important;
  border-radius: 999px !important;
  border: 2px solid #c6d3d7 !important;
  background: #fff !important;
  box-sizing: border-box !important;
  flex: 0 0 30px !important;
}

.soho-step.is-active {
  color: #10b981 !important;
}

.soho-step.is-active::before {
  border-color: #10b981 !important;
  box-shadow: inset 0 0 0 6px #fff !important;
  background: #10b981 !important;
}

@media (max-width: 768px) {
  .soho-cart__steps {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 0 !important;
  }

  .soho-cart__steps::before {
    display: none !important;
  }

  .soho-step {
    justify-content: flex-start !important;
  }
}

/* ===== КОРЗИНА: КАРТОЧКИ КАК В ОБРАЗЦЕ ===== */

.soho-cart {
  max-width: 1240px !important;
}

#sohoCartItems {
  display: grid !important;
  gap: 18px !important;
}

.soho-cart-item {
  display: grid !important;
  grid-template-columns: 165px 1fr 120px !important;
  gap: 26px !important;
  padding: 20px 22px !important;
  background: #fff !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 18px !important;
  box-shadow: 0 2px 10px rgba(0,0,0,.03) !important;
}

.soho-cart-item__preview-wrap {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.soho-cart-item__preview {
  width: 116px !important;
  height: 116px !important;
  border: 2px dashed #d6dde1 !important;
  border-radius: 14px !important;
  background: #fafafa !important;
  color: #a1aab3 !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
}

/* зелёная кнопка */
.soho-cart-item__upload,
button.soho-cart-item__upload,
a.soho-cart-item__upload {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 34px !important;
  padding: 0 12px !important;
  background: #10b981 !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}

.soho-cart-item__upload:hover,
button.soho-cart-item__upload:hover,
a.soho-cart-item__upload:hover {
  opacity: .92 !important;
  color: #fff !important;
  text-decoration: none !important;
}

/* ссылка под кнопкой */
.soho-cart-item__link,
a.soho-cart-item__link {
  display: block !important;
  text-align: center !important;
  color: #6d28d9 !important;
  text-decoration: underline !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
}

/* информация */
.soho-cart-item__info h3 {
  margin: 0 0 12px !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  color: #111827 !important;
}

.soho-cart-item__options {
  display: grid !important;
  gap: 5px !important;
}

.soho-cart-item__option {
  display: grid !important;
  grid-template-columns: 96px 1fr !important;
  gap: 8px !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}

.soho-cart-item__option span {
  color: #6b7280 !important;
  font-weight: 500 !important;
}

.soho-cart-item__option strong {
  color: #111827 !important;
  font-weight: 700 !important;
}

/* цена + удалить */
.soho-cart-item__side {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  justify-content: flex-start !important;
  gap: 12px !important;
}

.soho-cart-item__price {
  font-size: 22px !important;
  line-height: 1.1 !important;
  font-weight: 800 !important;
  color: #111827 !important;
  white-space: nowrap !important;
}

.soho-cart-item__remove {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 32px !important;
  padding: 0 12px !important;
  border: 1px solid #d1d5db !important;
  border-radius: 6px !important;
  background: #fff !important;
  color: #374151 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
}

/* низ страницы */
.soho-cart__bottom {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 26px !important;
  margin-top: 28px !important;
}

.soho-cart__total {
  font-size: 20px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  color: #111827 !important;
}

.soho-cart__total strong {
  font-size: 22px !important;
  font-weight: 800 !important;
  color: #111827 !important;
}

.soho-cart__next {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 108px !important;
  min-height: 42px !important;
  padding: 0 18px !important;
  background: #10b981 !important;
  color: #fff !important;
  border-radius: 10px !important;
  text-decoration: none !important;
  font-size: 15px !important;
  font-weight: 700 !important;
}

.soho-cart__next:hover {
  opacity: .92 !important;
}

@media (max-width: 768px) {
  .soho-cart-item {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .soho-cart-item__preview {
    width: 100% !important;
    max-width: 170px !important;
    height: 120px !important;
  }

  .soho-cart-item__side {
    align-items: flex-start !important;
  }

  .soho-cart__bottom {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px !important;
  }
}
/* ===== FINAL OVERRIDES: корзина / шаги / кнопка макетов ===== */

/* шаги: линия за кружками, не перечеркивает текст */
.soho-cart__steps {
  position: relative !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 0 !important;
  margin: 0 0 28px !important;
  padding: 0 8px !important;
}

.soho-cart__steps::before {
  content: "" !important;
  position: absolute !important;
  left: 60px !important;
  right: 60px !important;
  top: 14px !important;
  height: 2px !important;
  background: #d7e0e3 !important;
  z-index: 0 !important;
}

.soho-step {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  color: #94a3b8 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-align: center !important;
}

.soho-step::before {
  content: "" !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  border: 2px solid #c6d3d7 !important;
  background: #fff !important;
  box-sizing: border-box !important;
  flex: 0 0 28px !important;
}

.soho-step span {
  position: relative !important;
  z-index: 2 !important;
  background: #fff !important;
  padding: 0 4px !important;
  line-height: 1.2 !important;
}

.soho-step.is-active {
  color: #10b981 !important;
}

.soho-step.is-active::before {
  border-color: #10b981 !important;
  background: #10b981 !important;
  box-shadow: inset 0 0 0 6px #fff !important;
}

/* карточки корзины */
.soho-cart {
  max-width: 1240px !important;
}

#sohoCartItems {
  display: grid !important;
  gap: 18px !important;
}

.soho-cart-item {
  display: grid !important;
  grid-template-columns: 165px 1fr 120px !important;
  gap: 26px !important;
  padding: 20px 22px !important;
  background: #fff !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 18px !important;
  box-shadow: 0 2px 10px rgba(0,0,0,.03) !important;
}

.soho-cart-item__preview-wrap {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.soho-cart-item__preview {
  width: 116px !important;
  height: 116px !important;
  border: 2px dashed #d6dde1 !important;
  border-radius: 14px !important;
  background: #fafafa !important;
  color: #a1aab3 !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
}

/* зелёная кнопка загрузки */
.soho-cart-item__upload,
button.soho-cart-item__upload,
a.soho-cart-item__upload {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 34px !important;
  padding: 0 12px !important;
  background: #10b981 !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}

.soho-cart-item__upload:hover,
button.soho-cart-item__upload:hover,
a.soho-cart-item__upload:hover {
  opacity: .92 !important;
  color: #fff !important;
  text-decoration: none !important;
}

.soho-cart-item__link,
a.soho-cart-item__link {
  display: block !important;
  text-align: center !important;
  color: #6d28d9 !important;
  text-decoration: underline !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
}

.soho-cart-item__info h3 {
  margin: 0 0 12px !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  color: #111827 !important;
}

.soho-cart-item__options {
  display: grid !important;
  gap: 5px !important;
}

.soho-cart-item__option {
  display: grid !important;
  grid-template-columns: 96px 1fr !important;
  gap: 8px !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}

.soho-cart-item__option span {
  color: #6b7280 !important;
  font-weight: 500 !important;
}

.soho-cart-item__option strong {
  color: #111827 !important;
  font-weight: 700 !important;
}

.soho-cart-item__side {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  justify-content: flex-start !important;
  gap: 12px !important;
}

.soho-cart-item__price {
  font-size: 22px !important;
  line-height: 1.1 !important;
  font-weight: 800 !important;
  color: #111827 !important;
  white-space: nowrap !important;
}

.soho-cart-item__remove {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 32px !important;
  padding: 0 12px !important;
  border: 1px solid #d1d5db !important;
  border-radius: 6px !important;
  background: #fff !important;
  color: #374151 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
}

.soho-cart__bottom {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 26px !important;
  margin-top: 28px !important;
}

.soho-cart__total {
  font-size: 20px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  color: #111827 !important;
}

.soho-cart__total strong {
  font-size: 22px !important;
  font-weight: 800 !important;
  color: #111827 !important;
}

.soho-cart__next {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 108px !important;
  min-height: 42px !important;
  padding: 0 18px !important;
  background: #10b981 !important;
  color: #fff !important;
  border-radius: 10px !important;
  text-decoration: none !important;
  font-size: 15px !important;
  font-weight: 700 !important;
}

.soho-cart__next:hover {
  opacity: .92 !important;
}

@media (max-width: 768px) {
  .soho-cart__steps {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 0 !important;
  }

  .soho-cart__steps::before {
    display: none !important;
  }

  .soho-step {
    justify-content: flex-start !important;
  }

  .soho-step span {
    padding: 0 !important;
  }

  .soho-cart-item {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .soho-cart-item__preview {
    width: 100% !important;
    max-width: 170px !important;
    height: 120px !important;
  }

  .soho-cart-item__side {
    align-items: flex-start !important;
  }

  .soho-cart__bottom {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px !important;
  }
}


/* ===== REMOVE STEP LINE COMPLETELY ===== */
/* Полностью убираем линию между шагами */

.soho-cart__steps::before {
  display: none !important;
  content: none !important;
}

.soho-step::after {
  display: none !important;
  content: none !important;
}

/* Небольшая корректировка отступов */
.soho-step {
  gap: 10px !important;
}

.soho-step span {
  background: transparent !important;
  padding: 0 !important;
}

/* ===== ЗАГРУЗКА МАКЕТА В КОРЗИНЕ ===== */

.soho-cart-item__preview {
  transition: .2s ease;
  cursor: pointer;
}

.soho-cart-item__preview.is-dragover {
  border-color: #10b981 !important;
  background: #ecfdf5 !important;
  color: #047857 !important;
}

.soho-cart-item__upload,
button.soho-cart-item__upload,
a.soho-cart-item__upload {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 34px !important;
  padding: 0 12px !important;
  background: #10b981 !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}

.soho-cart-item__upload:hover {
  opacity: .92 !important;
}

.soho-cart-item__link,
.soho-cart-item__link-value {
  display: block !important;
  text-align: center !important;
  color: #6d28d9 !important;
  text-decoration: underline !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
  word-break: break-word;
}
/* ===== PDF upload in cart ===== */

.soho-cart-item__preview {
  transition: .2s ease;
  cursor: pointer;
}

.soho-cart-item__preview.is-dragover {
  border-color: #10b981 !important;
  background: #ecfdf5 !important;
  color: #047857 !important;
}

.soho-cart-item__hint {
  text-align: center;
  font-size: 12px;
  line-height: 1.35;
  color: #6b7280;
}

.soho-cart-item__preview canvas {
  width: 100%;
  height: auto;
  display: block;
}

.soho-cart-item__preview {
  overflow: hidden;
  background: #fff;
}
.soho-cart-item__preview {
  transition: .2s ease;
  cursor: pointer;
}

.soho-cart-item__preview.is-dragover {
  border-color: #10b981 !important;
  background: #ecfdf5 !important;
  color: #047857 !important;
}

.soho-cart-item__hint {
  text-align: center;
  font-size: 12px;
  line-height: 1.35;
  color: #6b7280;
}
/* ===== PDF preview styles ===== */

.soho-cart-item__preview {
  overflow: hidden;
  background: #fff;
  transition: .2s ease;
  cursor: pointer;
}

.soho-cart-item__preview.is-dragover {
  border-color: #10b981 !important;
  background: #ecfdf5 !important;
  color: #047857 !important;
}

.soho-cart-item__preview.is-loading {
  background: #f8fafc !important;
}

.soho-cart-item__preview-status {
  display: inline-block;
  text-align: center;
  font-size: 12px;
  line-height: 1.35;
  color: #6b7280;
  padding: 8px;
}

.soho-cart-item__preview-canvas {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  background: #fff;
}

.soho-cart-item__pdf-link,
.soho-cart-item__link,
.soho-cart-item__link-value {
  display: block !important;
  text-align: center !important;
  color: #6d28d9 !important;
  text-decoration: underline !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
  word-break: break-word;
}
/* Вход перед оформлением */

.soho-login-checkout {
  max-width: 520px;
  margin: 40px auto;
  text-align: center;
}

.soho-login-checkout h1 {
  margin-bottom: 15px;
}

.soho-login-actions {
  display: flex;
  gap: 15px;
  justify-content: center;
  margin-top: 25px;
}

.soho-btn {
  padding: 12px 22px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 600;
}

.soho-btn--green {
  background: #1bb56d;
  color: white;
}

.soho-btn--border {
  border: 2px solid #1bb56d;
  color: #1bb56d;
}
/* ===== ВХОД В ЛИЧНЫЙ КАБИНЕТ ===== */

.com-users-login,
.view-login {
  background: #fff;
}

.com-users-login .container-component,
.view-login .container-component,
.com-users-login #content,
.view-login #content {
  max-width: 520px;
  margin: 40px auto 70px;
  padding: 0 16px;
}

.com-users-login h1,
.view-login h1,
.com-users-login .page-header h1,
.view-login .page-header h1 {
  margin: 0 0 14px;
  text-align: center;
  font-size: 54px;
  line-height: 1.05;
  font-weight: 800;
  color: #31455a;
}

.com-users-login form,
.view-login form,
.com-users-login .login,
.view-login .login {
  margin: 0;
}

.com-users-login .control-group,
.view-login .control-group,
.com-users-login .mb-3,
.view-login .mb-3,
.com-users-login .form-group,
.view-login .form-group {
  margin-bottom: 22px;
}

.com-users-login label,
.view-login label {
  display: block;
  margin-bottom: 8px;
  font-size: 16px;
  line-height: 1.35;
  font-weight: 600;
  color: #31455a;
}

.com-users-login input[type="text"],
.com-users-login input[type="email"],
.com-users-login input[type="password"],
.view-login input[type="text"],
.view-login input[type="email"],
.view-login input[type="password"] {
  width: 100%;
  height: 58px;
  padding: 0 18px;
  border: 1px solid #cfd8dc;
  border-radius: 10px;
  background: #fff;
  font-size: 18px;
  color: #1f2937;
  box-sizing: border-box;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.com-users-login input:focus,
.view-login input:focus {
  outline: none;
  border-color: #15b56f;
  box-shadow: 0 0 0 3px rgba(21,181,111,.12);
}

.com-users-login .btn,
.view-login .btn,
.com-users-login button[type="submit"],
.view-login button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 58px;
  padding: 0 22px;
  border: 0;
  border-radius: 10px;
  background: #15b56f;
  color: #fff;
  font-size: 20px;
  line-height: 1;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  transition: opacity .2s ease, transform .2s ease;
}

.com-users-login .btn:hover,
.view-login .btn:hover,
.com-users-login button[type="submit"]:hover,
.view-login button[type="submit"]:hover {
  opacity: .94;
  transform: translateY(-1px);
}

.com-users-login .form-check,
.view-login .form-check,
.com-users-login .remember,
.view-login .remember {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 18px 0 0;
}

.com-users-login input[type="checkbox"],
.view-login input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: #15b56f;
}

.com-users-login .form-check label,
.view-login .form-check label,
.com-users-login .remember label,
.view-login .remember label {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  color: #556575;
}

.com-users-login .login-links,
.view-login .login-links,
.com-users-login .nav,
.view-login .nav {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.com-users-login .login-links a,
.view-login .login-links a,
.com-users-login .nav a,
.view-login .nav a,
.com-users-login a,
.view-login a {
  color: #2f6db2;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.com-users-login .nav li,
.view-login .nav li {
  margin: 0;
}

.com-users-login .login-description,
.view-login .login-description,
.com-users-login .login-note,
.view-login .login-note {
  margin: 0 0 18px;
  text-align: center;
  font-size: 18px;
  color: #6b7280;
}

.com-users-login .page-header,
.view-login .page-header {
  margin: 0 0 18px;
  border: 0;
  padding: 0;
}

.com-users-login .well,
.view-login .well,
.com-users-login .card,
.view-login .card {
  border: 0;
  box-shadow: none;
  background: transparent;
  padding: 0;
}

@media (max-width: 768px) {
  .com-users-login .container-component,
  .view-login .container-component,
  .com-users-login #content,
  .view-login #content {
    margin: 24px auto 40px;
  }

  .com-users-login h1,
  .view-login h1,
  .com-users-login .page-header h1,
  .view-login .page-header h1 {
    font-size: 38px;
  }

  .com-users-login .login-links,
  .view-login .login-links,
  .com-users-login .nav,
  .view-login .nav {
    flex-direction: column;
    align-items: flex-start;
  }
}/* =========================================================
   JOOMLA LOGIN — ЖЕСТКИЙ OVERRIDE
   ========================================================= */

/* центральный блок страницы входа */
main.sp-main form[action*="task=user.login"],
main.sp-main form[action*="task=user.login"] + *,
main.sp-main .login,
main.sp-main .com-users-login__login {
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}

main.sp-main form[action*="task=user.login"] {
/* заголовок страницы */
main.sp-main .page-header,
main.sp-main .componentheading,
main.sp-main h1 {
  text-align: center;
}

main.sp-main .page-header h1,
main.sp-main .componentheading,
main.sp-main h1 {
  font-size: 52px !important;
  line-height: 1.06 !important;
  font-weight: 800 !important;
  color: #31455a !important;
  margin-bottom: 20px !important;
}

/* сама форма */
main.sp-main form[action*="task=user.login"] fieldset {
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

main.sp-main form[action*="task=user.login"] .control-group,
main.sp-main form[action*="task=user.login"] .mb-3,
main.sp-main form[action*="task=user.login"] .form-group,
main.sp-main form[action*="task=user.login"] .mod-field {
  margin-bottom: 18px !important;
}

main.sp-main form[action*="task=user.login"] label {
  display: block !important;
  margin: 0 0 8px !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
  color: #31455a !important;
}

/* поля */
main.sp-main form[action*="task=user.login"] input[type="text"],
main.sp-main form[action*="task=user.login"] input[type="email"],
main.sp-main form[action*="task=user.login"] input[type="password"] {
  width: 100% !important;
  height: 56px !important;
  padding: 0 18px !important;
  border: 1px solid #cfd8dc !important;
  border-radius: 10px !important;
  background: #fff !important;
  font-size: 18px !important;
  color: #1f2937 !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}

main.sp-main form[action*="task=user.login"] input:focus {
  outline: none !important;
  border-color: #12b76a !important;
  box-shadow: 0 0 0 3px rgba(18,183,106,.12) !important;
}

/* главная кнопка входа */
main.sp-main form[action*="task=user.login"] button[type="submit"],
main.sp-main form[action*="task=user.login"] .btn-primary,
main.sp-main form[action*="task=user.login"] .btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 58px !important;
  padding: 0 22px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: #12b76a !important;
  color: #fff !important;
  font-size: 20px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

main.sp-main form[action*="task=user.login"] button[type="submit"]:hover,
main.sp-main form[action*="task=user.login"] .btn-primary:hover,
main.sp-main form[action*="task=user.login"] .btn:hover {
  opacity: .94 !important;
  transform: translateY(-1px);
}

/* запомнить меня */
main.sp-main form[action*="task=user.login"] input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  margin-right: 8px !important;
  accent-color: #12b76a !important;
}

main.sp-main form[action*="task=user.login"] .remember,
main.sp-main form[action*="task=user.login"] .form-check {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-top: 14px !important;
}

/* ссылки снизу */
main.sp-main form[action*="task=user.login"] + ul,
main.sp-main form[action*="task=user.login"] ~ ul,
main.sp-main .login-links,
main.sp-main .nav {
  max-width: 520px;
  margin: 18px auto 0 !important;
  padding: 0 16px !important;
  list-style: none !important;
  display: flex !important;
  justify-content: space-between !important;
  gap: 14px !important;
  box-sizing: border-box;
}

main.sp-main form[action*="task=user.login"] + ul li,
main.sp-main form[action*="task=user.login"] ~ ul li,
main.sp-main .login-links li,
main.sp-main .nav li {
  margin: 0 !important;
}

main.sp-main form[action*="task=user.login"] + ul a,
main.sp-main form[action*="task=user.login"] ~ ul a,
main.sp-main .login-links a,
main.sp-main .nav a,
main.sp-main a[href*="registration"],
main.sp-main a[href*="remind"],
main.sp-main a[href*="reset"] {
  color: #2f6db2 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

/* скрыть лишние рамки/карточки */
main.sp-main .well,
main.sp-main .card,
main.sp-main .login,
main.sp-main .com-users-login__login {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* мобильная версия */
@media (max-width: 768px) {
  main.sp-main form[action*="task=user.login"] {
    margin-top: 80px;
    margin-bottom: 40px;
  }

  main.sp-main form[action*="task=user.login"]::before,
  main.sp-main form[action*="task=user.login"]::after,
  main.sp-main form[action*="task=user.login"] > fieldset::before,
  main.sp-main form[action*="task=user.login"] > .login-fields::before,
  main.sp-main form[action*="task=user.login"] > .userdata::before {
    display: none !important;
  }

  main.sp-main .page-header h1,
  main.sp-main .componentheading,
  main.sp-main h1 {
    font-size: 38px !important;
  }

  main.sp-main form[action*="task=user.login"] + ul,
  main.sp-main form[action*="task=user.login"] ~ ul,
  main.sp-main .login-links,
  main.sp-main .nav {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
}
/* =========================================================
   FINAL OVERRIDE: ВХОД ПЕРЕД ОФОРМЛЕНИЕМ
   вставить в САМЫЙ КОНЕЦ style_patch.css
   ========================================================= */

/* контейнер формы входа */
main.sp-main form[action*="task=user.login"] {
  max-width: 520px !important;
  margin: 150px auto 70px !important;
  padding: 0 16px !important;
  position: relative !important;
  box-sizing: border-box !important;
}

/* линия и кружки */
main.sp-main form[action*="task=user.login"]::before {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: -88px !important;
  transform: translateX(-50%) !important;
  width: 360px !important;
  height: 28px !important;
  z-index: 1 !important;
  background:
    radial-gradient(circle at 14px 14px, #12b76a 0 7px, #ffffff 8px 10px, #12b76a 11px 14px, transparent 15px),
    radial-gradient(circle at 180px 14px, #ffffff 0 10px, #cfd8dc 11px 14px, transparent 15px),
    radial-gradient(circle at 346px 14px, #ffffff 0 10px, #cfd8dc 11px 14px, transparent 15px),
    linear-gradient(#d9e2e7, #d9e2e7) !important;
  background-size:
    28px 28px,
    28px 28px,
    28px 28px,
    292px 2px !important;
  background-repeat: no-repeat !important;
  background-position:
    0 0,
    166px 0,
    332px 0,
    34px 13px !important;
}

/* полностью выключаем старые подписи, которые дублировались */
main.sp-main form[action*="task=user.login"]::after,
main.sp-main form[action*="task=user.login"] > fieldset::before,
main.sp-main form[action*="task=user.login"] > .login-fields::before,
main.sp-main form[action*="task=user.login"] > .userdata::before {
  content: none !important;
  display: none !important;
}

/* новые подписи шагов */
main.sp-main form[action*="task=user.login"] .soho-login-step-labels {
  position: absolute !important;
  left: 50% !important;
  top: -62px !important;
  transform: translateX(-50%) !important;
  width: 430px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  z-index: 3 !important;
  pointer-events: none !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: #9aa8b6 !important;
}

main.sp-main form[action*="task=user.login"] .soho-login-step-labels span {
  background: #fff !important;
  padding: 0 4px !important;
  line-height: 1.2 !important;
}

main.sp-main form[action*="task=user.login"] .soho-login-step-labels span:first-child {
  color: #12b76a !important;
  font-weight: 700 !important;
}

/* заголовок */
main.sp-main .page-header,
main.sp-main .componentheading,
main.sp-main h1 {
  text-align: center !important;
}

main.sp-main .page-header h1,
main.sp-main .componentheading,
main.sp-main h1 {
  margin: 0 0 20px !important;
  font-size: 52px !important;
  line-height: 1.06 !important;
  font-weight: 800 !important;
  color: #31455a !important;
}

/* форма */
main.sp-main form[action*="task=user.login"] fieldset {
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

main.sp-main form[action*="task=user.login"] .control-group,
main.sp-main form[action*="task=user.login"] .mb-3,
main.sp-main form[action*="task=user.login"] .form-group,
main.sp-main form[action*="task=user.login"] .mod-field {
  margin-bottom: 18px !important;
}

main.sp-main form[action*="task=user.login"] label {
  display: block !important;
  margin: 0 0 8px !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
  color: #31455a !important;
}

main.sp-main form[action*="task=user.login"] input[type="text"],
main.sp-main form[action*="task=user.login"] input[type="email"],
main.sp-main form[action*="task=user.login"] input[type="password"] {
  width: 100% !important;
  height: 56px !important;
  padding: 0 18px !important;
  border: 1px solid #cfd8dc !important;
  border-radius: 10px !important;
  background: #fff !important;
  font-size: 18px !important;
  color: #1f2937 !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}

main.sp-main form[action*="task=user.login"] input:focus {
  outline: none !important;
  border-color: #12b76a !important;
  box-shadow: 0 0 0 3px rgba(18,183,106,.12) !important;
}

/* кнопки */
main.sp-main form[action*="task=user.login"] button[type="submit"],
main.sp-main form[action*="task=user.login"] .btn-primary,
main.sp-main form[action*="task=user.login"] .btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 58px !important;
  padding: 0 22px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: #12b76a !important;
  color: #fff !important;
  font-size: 20px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

main.sp-main form[action*="task=user.login"] button[type="submit"]:hover,
main.sp-main form[action*="task=user.login"] .btn-primary:hover,
main.sp-main form[action*="task=user.login"] .btn:hover {
  opacity: .94 !important;
  transform: translateY(-1px) !important;
}

/* чекбокс */
main.sp-main form[action*="task=user.login"] .remember,
main.sp-main form[action*="task=user.login"] .form-check {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-top: 14px !important;
}

main.sp-main form[action*="task=user.login"] input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  accent-color: #12b76a !important;
}

/* ссылки снизу */
main.sp-main form[action*="task=user.login"] + ul,
main.sp-main form[action*="task=user.login"] ~ ul,
main.sp-main .login-links,
main.sp-main .nav {
  max-width: 520px !important;
  margin: 18px auto 0 !important;
  padding: 0 16px !important;
  list-style: none !important;
  display: flex !important;
  justify-content: space-between !important;
  gap: 14px !important;
  box-sizing: border-box !important;
}

main.sp-main form[action*="task=user.login"] + ul li,
main.sp-main form[action*="task=user.login"] ~ ul li,
main.sp-main .login-links li,
main.sp-main .nav li {
  margin: 0 !important;
}

main.sp-main form[action*="task=user.login"] + ul a,
main.sp-main form[action*="task=user.login"] ~ ul a,
main.sp-main .login-links a,
main.sp-main .nav a,
main.sp-main a[href*="registration"],
main.sp-main a[href*="remind"],
main.sp-main a[href*="reset"] {
  color: #2f6db2 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

/* мобильная версия */
@media (max-width: 768px) {
  main.sp-main form[action*="task=user.login"] {
    margin-top: 90px !important;
    margin-bottom: 40px !important;
  }

  main.sp-main form[action*="task=user.login"]::before,
  main.sp-main form[action*="task=user.login"] .soho-login-step-labels {
    display: none !important;
  }

  main.sp-main .page-header h1,
  main.sp-main .componentheading,
  main.sp-main h1 {
    font-size: 38px !important;
  }

  main.sp-main form[action*="task=user.login"] + ul,
  main.sp-main form[action*="task=user.login"] ~ ul,
  main.sp-main .login-links,
  main.sp-main .nav {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
}
/* =========================================================
   LOGIN PAGE = STYLE LIKE CART
   вставить в самый конец style_patch.css
   ========================================================= */

/* контейнер страницы входа */
main.sp-main form[action*="task=user.login"] {
  max-width: 620px !important;
  margin: 150px auto 70px !important;
  padding: 0 16px !important;
  position: relative !important;
  box-sizing: border-box !important;
}

/* шаги сверху — как в корзине */
main.sp-main form[action*="task=user.login"]::before {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: -92px !important;
  transform: translateX(-50%) !important;
  width: 430px !important;
  height: 30px !important;
  z-index: 1 !important;
  background:
    radial-gradient(circle at 15px 15px, #10b981 0 7px, #ffffff 8px 10px, #10b981 11px 15px, transparent 16px),
    radial-gradient(circle at 215px 15px, #ffffff 0 10px, #cfd8dc 11px 15px, transparent 16px),
    radial-gradient(circle at 415px 15px, #ffffff 0 10px, #cfd8dc 11px 15px, transparent 16px),
    linear-gradient(#d9e2e7, #d9e2e7) !important;
  background-size:
    30px 30px,
    30px 30px,
    30px 30px,
    370px 2px !important;
  background-repeat: no-repeat !important;
  background-position:
    0 0,
    200px 0,
    400px 0,
    30px 14px !important;
}

/* отключаем старые дубли шагов */
main.sp-main form[action*="task=user.login"]::after,
main.sp-main form[action*="task=user.login"] > fieldset::before,
main.sp-main form[action*="task=user.login"] > .login-fields::before,
main.sp-main form[action*="task=user.login"] > .userdata::before {
  content: none !important;
  display: none !important;
}

/* подписи шагов */
main.sp-main form[action*="task=user.login"] .soho-login-step-labels {
  position: absolute !important;
  left: 50% !important;
  top: -63px !important;
  transform: translateX(-50%) !important;
  width: 470px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  z-index: 3 !important;
  pointer-events: none !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  color: #9aa8b6 !important;
}

main.sp-main form[action*="task=user.login"] .soho-login-step-labels span {
  background: #fff !important;
  padding: 0 6px !important;
  line-height: 1.2 !important;
}

main.sp-main form[action*="task=user.login"] .soho-login-step-labels span:first-child {
  color: #10b981 !important;
  font-weight: 700 !important;
}

/* большой заголовок как в корзине */
.com-users-login .page-header,
.view-login .page-header,
main.sp-main .page-header {
  margin: 0 0 18px !important;
  padding: 0 !important;
  border: 0 !important;
}

.com-users-login .page-header h1,
.view-login .page-header h1,
main.sp-main .page-header h1,
main.sp-main h1 {
  margin: 0 0 18px !important;
  text-align: center !important;
  font-size: 56px !important;
  line-height: 1.05 !important;
  font-weight: 800 !important;
  color: #31455a !important;
}

/* если Joomla выводит маленький системный заголовок — прячем его */
main.sp-main .componentheading {
  display: none !important;
}

/* форма */
main.sp-main form[action*="task=user.login"] fieldset {
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

main.sp-main form[action*="task=user.login"] .control-group,
main.sp-main form[action*="task=user.login"] .mb-3,
main.sp-main form[action*="task=user.login"] .form-group,
main.sp-main form[action*="task=user.login"] .mod-field {
  margin-bottom: 18px !important;
}

/* подписи */
main.sp-main form[action*="task=user.login"] label {
  display: block !important;
  margin: 0 0 8px !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
  color: #31455a !important;
}

/* поля как в checkout */
main.sp-main form[action*="task=user.login"] input[type="text"],
main.sp-main form[action*="task=user.login"] input[type="email"],
main.sp-main form[action*="task=user.login"] input[type="password"] {
  width: 100% !important;
  height: 58px !important;
  padding: 0 18px !important;
  border: 1px solid #d1d5db !important;
  border-radius: 10px !important;
  background: #fff !important;
  font-size: 18px !important;
  color: #1f2937 !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}

main.sp-main form[action*="task=user.login"] input:focus {
  outline: none !important;
  border-color: #10b981 !important;
  box-shadow: 0 0 0 3px rgba(16,185,129,.12) !important;
}

/* скрыть лишнюю кнопку show password, если плагин её вставляет */
main.sp-main form[action*="task=user.login"] .btn-password,
main.sp-main form[action*="task=user.login"] .password-toggle,
main.sp-main form[action*="task=user.login"] .show-password,
main.sp-main form[action*="task=user.login"] button[aria-label*="password" i] {
  display: none !important;
}

/* главная кнопка */
main.sp-main form[action*="task=user.login"] button[type="submit"],
main.sp-main form[action*="task=user.login"] .btn-primary,
main.sp-main form[action*="task=user.login"] .btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 58px !important;
  padding: 0 22px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: #10b981 !important;
  color: #fff !important;
  font-size: 20px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

main.sp-main form[action*="task=user.login"] button[type="submit"]:hover,
main.sp-main form[action*="task=user.login"] .btn-primary:hover,
main.sp-main form[action*="task=user.login"] .btn:hover {
  opacity: .94 !important;
  transform: translateY(-1px) !important;
}

/* remember me */
main.sp-main form[action*="task=user.login"] .remember,
main.sp-main form[action*="task=user.login"] .form-check {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-top: 14px !important;
}

main.sp-main form[action*="task=user.login"] input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  accent-color: #10b981 !important;
}

/* ссылки снизу */
main.sp-main form[action*="task=user.login"] + ul,
main.sp-main form[action*="task=user.login"] ~ ul,
main.sp-main .login-links,
main.sp-main .nav {
  max-width: 620px !important;
  margin: 18px auto 0 !important;
  padding: 0 16px !important;
  list-style: none !important;
  display: flex !important;
  justify-content: space-between !important;
  gap: 14px !important;
  box-sizing: border-box !important;
}

main.sp-main form[action*="task=user.login"] + ul li,
main.sp-main form[action*="task=user.login"] ~ ul li,
main.sp-main .login-links li,
main.sp-main .nav li {
  margin: 0 !important;
}

main.sp-main form[action*="task=user.login"] + ul a,
main.sp-main form[action*="task=user.login"] ~ ul a,
main.sp-main .login-links a,
main.sp-main .nav a,
main.sp-main a[href*="registration"],
main.sp-main a[href*="remind"],
main.sp-main a[href*="reset"] {
  color: #2f6db2 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

/* мобильная версия */
@media (max-width: 768px) {
  main.sp-main form[action*="task=user.login"] {
    margin-top: 90px !important;
    margin-bottom: 40px !important;
  }

  main.sp-main form[action*="task=user.login"]::before,
  main.sp-main form[action*="task=user.login"] .soho-login-step-labels {
    display: none !important;
  }

  .com-users-login .page-header h1,
  .view-login .page-header h1,
  main.sp-main .page-header h1,
  main.sp-main h1 {
    font-size: 40px !important;
  }

  main.sp-main form[action*="task=user.login"] + ul,
  main.sp-main form[action*="task=user.login"] ~ ul,
  main.sp-main .login-links,
  main.sp-main .nav {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
}
/* =====================================================
   ШАГИ ОФОРМЛЕНИЯ — ТАКИЕ ЖЕ КАК В КОРЗИНЕ
   для страницы входа
   ===================================================== */

.com-users-login .soho-cart__steps {

  position: relative !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;

  gap: 0 !important;
  margin: 0 auto 32px !important;

  padding: 0 8px !important;
  max-width: 520px !important;

}

.com-users-login .soho-cart__steps::before {

  content: "" !important;

  position: absolute !important;

  left: 60px !important;
  right: 60px !important;

  top: 14px !important;

  height: 2px !important;

  background: #d7e0e3 !important;

  z-index: 0 !important;

}

.com-users-login .soho-step {

  position: relative !important;

  z-index: 1 !important;

  display: flex !important;

  flex-direction: row !important;

  align-items: center !important;

  justify-content: center !important;

  gap: 10px !important;

  color: #94a3b8 !important;

  font-size: 15px !important;

  font-weight: 600 !important;

  text-align: center !important;

}

.com-users-login .soho-step::before {

  content: "" !important;

  width: 28px !important;

  height: 28px !important;

  border-radius: 50% !important;

  border: 2px solid #c6d3d7 !important;

  background: #fff !important;

  box-sizing: border-box !important;

  flex: 0 0 28px !important;

}

.com-users-login .soho-step span {

  position: relative !important;

  z-index: 2 !important;

  background: #fff !important;

  padding: 0 4px !important;

  line-height: 1.2 !important;

}

.com-users-login .soho-step.is-active {

  color: #10b981 !important;

}

.com-users-login .soho-step.is-active::before {

  border-color: #10b981 !important;

  background: #10b981 !important;

  box-shadow: inset 0 0 0 6px #fff !important;

}
/* шаги входа — как в корзине */
.com-users-login .soho-cart__steps,
.view-login .soho-cart__steps {
  position: relative !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 0 !important;
  margin: 0 auto 28px !important;
  padding: 0 8px !important;
  max-width: 520px !important;
}

.com-users-login .soho-cart__steps::before,
.view-login .soho-cart__steps::before {
  content: "" !important;
  position: absolute !important;
  left: 60px !important;
  right: 60px !important;
  top: 14px !important;
  height: 2px !important;
  background: #d7e0e3 !important;
  z-index: 0 !important;
}

.com-users-login .soho-step,
.view-login .soho-step {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  color: #94a3b8 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-align: center !important;
}

.com-users-login .soho-step::before,
.view-login .soho-step::before {
  content: "" !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  border: 2px solid #c6d3d7 !important;
  background: #fff !important;
  box-sizing: border-box !important;
  flex: 0 0 28px !important;
}

.com-users-login .soho-step span,
.view-login .soho-step span {
  position: relative !important;
  z-index: 2 !important;
  background: #fff !important;
  padding: 0 4px !important;
  line-height: 1.2 !important;
}

.com-users-login .soho-step.is-active,
.view-login .soho-step.is-active {
  color: #10b981 !important;
}

.com-users-login .soho-step.is-active::before,
.view-login .soho-step.is-active::before {
  border-color: #10b981 !important;
  background: #10b981 !important;
  box-shadow: inset 0 0 0 6px #fff !important;
}
.com-users-login form[action*="task=user.login"],
.view-login form[action*="task=user.login"] {
  max-width: 620px !important;
  margin: 0 auto 70px !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}

.com-users-login .page-header h1,
.view-login .page-header h1,
.com-users-login h1,
.view-login h1 {
  margin: 0 0 18px !important;
  text-align: center !important;
  font-size: 56px !important;
  line-height: 1.05 !important;
  font-weight: 800 !important;
  color: #31455a !important;
}


/* =========================================================
   SAFE LOGIN CHECKOUT STYLE
   ========================================================= */

.is-login-checkout .soho-cart__steps {
  position: relative !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 0 !important;
  margin: 0 auto 24px !important;
  padding: 0 8px !important;
  max-width: 620px !important;
}

.is-login-checkout .soho-cart__steps::before {
  display: none !important;
  content: none !important;
}

.is-login-checkout .soho-step {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  color: #94a3b8 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-align: center !important;
}

.is-login-checkout .soho-step::before {
  content: "" !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  border: 2px solid #c6d3d7 !important;
  background: #fff !important;
  box-sizing: border-box !important;
  flex: 0 0 28px !important;
}

.is-login-checkout .soho-step span {
  background: #fff !important;
  padding: 0 4px !important;
  line-height: 1.2 !important;
}

.is-login-checkout .soho-step.is-active {
  color: #10b981 !important;
}

.is-login-checkout .soho-step.is-active::before {
  border-color: #10b981 !important;
  background: #10b981 !important;
  box-shadow: inset 0 0 0 6px #fff !important;
}

.is-login-checkout .soho-login-checkout-title {
  max-width: 570px !important;
  margin: 0 auto 12px !important;
  text-align: left !important;
  font-size: 34px !important;
  line-height: 1.1 !important;
  font-weight: 800 !important;
  color: #31455a !important;
}

.is-login-checkout .soho-login-checkout-note {
  max-width: 570px !important;
  margin: 0 auto 18px !important;
  text-align: left !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  color: #6b7280 !important;
}

.is-login-checkout .soho-login-checkout-note a {
  color: #2f6db2 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  font-weight: 600 !important;
}

.is-login-checkout form[action*="task=user.login"] {
  max-width: 570px !important;
  margin: 0 auto 60px !important;
}

.is-login-checkout .page-header,
.is-login-checkout .componentheading,
.is-login-checkout .page-header h1 {
  display: none !important;
}

@media (max-width: 768px) {
  .is-login-checkout .soho-cart__steps {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 0 !important;
  }

  .is-login-checkout .soho-login-checkout-title,
  .is-login-checkout .soho-login-checkout-note {
    max-width: calc(100% - 32px) !important;
  }

  .is-login-checkout .soho-step {
    justify-content: flex-start !important;
  }

  .is-login-checkout .soho-step span {
    padding: 0 !important;
  }

  .is-login-checkout .soho-login-checkout-title {
    font-size: 28px !important;
  }

  .is-login-checkout form[action*="task=user.login"] {
    max-width: 100% !important;
    padding: 0 16px !important;
    box-sizing: border-box !important;
  }
}
/* =========================================================
   LOGIN FORM — STYLE LIKE TARGET SCREENSHOT
   ========================================================= */

/* общий контейнер страницы входа */
.is-login-checkout form[action*="task=user.login"] {
  max-width: 380px !important;
  margin: 0 auto 50px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* скрыть стандартный заголовок Joomla, если он есть */
.is-login-checkout .page-header,
.is-login-checkout .page-header h1,
.is-login-checkout .componentheading {
  display: none !important;
}

/* шаги сверху */
.is-login-checkout .soho-cart__steps {
  max-width: 380px !important;
  margin: 0 auto 14px !important;
  padding: 0 !important;
}

.is-login-checkout .soho-cart__steps::before {
  display: none !important;
  content: none !important;
}

.is-login-checkout .soho-step {
  font-size: 11px !important;
  font-weight: 500 !important;
  gap: 6px !important;
}

.is-login-checkout .soho-step::before {
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 18px !important;
  border-width: 2px !important;
}

.is-login-checkout .soho-step.is-active::before {
  box-shadow: inset 0 0 0 4px #fff !important;
}

/* заголовок */
.is-login-checkout .soho-login-checkout-title {
  max-width: 380px !important;
  margin: 0 auto 8px !important;
  text-align: left !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  color: #31455a !important;
}

/* строка регистрации */
.is-login-checkout .soho-login-checkout-note {
  max-width: 380px !important;
  margin: 0 auto 12px !important;
  text-align: left !important;
  font-size: 10px !important;
  line-height: 1.3 !important;
  color: #6b7280 !important;
}

.is-login-checkout .soho-login-checkout-note a {
  color: #2f6db2 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  font-weight: 500 !important;
}

/* группы полей */
.is-login-checkout form[action*="task=user.login"] .control-group,
.is-login-checkout form[action*="task=user.login"] .mb-3,
.is-login-checkout form[action*="task=user.login"] .form-group,
.is-login-checkout form[action*="task=user.login"] .mod-field {
  margin-bottom: 10px !important;
}

/* подписи */
.is-login-checkout form[action*="task=user.login"] label {
  display: block !important;
  margin: 0 0 5px !important;
  font-size: 10px !important;
  line-height: 1.3 !important;
  font-weight: 500 !important;
  color: #4b5563 !important;
  text-align: left !important;
}

/* обычные поля */
.is-login-checkout form[action*="task=user.login"] input[type="text"],
.is-login-checkout form[action*="task=user.login"] input[type="email"],
.is-login-checkout form[action*="task=user.login"] input[type="password"] {
  width: 100% !important;
  height: 24px !important;
  padding: 0 8px !important;
  border: 1px solid #c9d6e2 !important;
  border-radius: 2px !important;
  background: #eaf2fb !important;
  font-size: 10px !important;
  color: #1f2937 !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}

.is-login-checkout form[action*="task=user.login"] input:focus {
  outline: none !important;
  border-color: #b9cadb !important;
  background: #eef5fc !important;
  box-shadow: none !important;
}

/* контейнер пароля */
.is-login-checkout .input-group,
.is-login-checkout .password-group,
.is-login-checkout .field-password,
.is-login-checkout .mod-login__password {
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
}

/* поле пароля */
.is-login-checkout .input-group input[type="password"],
.is-login-checkout .input-group input[type="text"],
.is-login-checkout .password-group input[type="password"],
.is-login-checkout .password-group input[type="text"],
.is-login-checkout .field-password input[type="password"],
.is-login-checkout .field-password input[type="text"],
.is-login-checkout .mod-login__password input[type="password"],
.is-login-checkout .mod-login__password input[type="text"] {
  flex: 1 1 auto !important;
  width: auto !important;
  height: 24px !important;
  border: 1px solid #c9d6e2 !important;
  border-right: 0 !important;
  border-radius: 2px 0 0 2px !important;
  background: #eaf2fb !important;
  padding: 0 8px !important;
  font-size: 10px !important;
  box-shadow: none !important;
}

/* кнопка Show Password / глаз */
.is-login-checkout .input-group button,
.is-login-checkout .password-group button,
.is-login-checkout .field-password button,
.is-login-checkout .mod-login__password button,
.is-login-checkout .input-group .btn,
.is-login-checkout .password-group .btn,
.is-login-checkout .field-password .btn,
.is-login-checkout .mod-login__password .btn,
.is-login-checkout .input-group .input-group-text,
.is-login-checkout .password-group .input-group-text,
.is-login-checkout .field-password .input-group-text,
.is-login-checkout .mod-login__password .input-group-text {
  flex: 0 0 24px !important;
  width: 24px !important;
  min-width: 24px !important;
  max-width: 24px !important;
  height: 24px !important;
  min-height: 24px !important;
  max-height: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #c9d6e2 !important;
  border-left: 0 !important;
  border-radius: 0 2px 2px 0 !important;
  background: #eaf2fb !important;
  color: #8a99a8 !important;
  box-shadow: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 0 !important;
  line-height: 0 !important;
  overflow: hidden !important;
}

/* убираем зелёный hover/active */
.is-login-checkout .input-group button:hover,
.is-login-checkout .password-group button:hover,
.is-login-checkout .field-password button:hover,
.is-login-checkout .mod-login__password button:hover,
.is-login-checkout .input-group button:active,
.is-login-checkout .password-group button:active,
.is-login-checkout .field-password button:active,
.is-login-checkout .mod-login__password button:active,
.is-login-checkout .input-group button:focus,
.is-login-checkout .password-group button:focus,
.is-login-checkout .field-password button:focus,
.is-login-checkout .mod-login__password button:focus,
.is-login-checkout .input-group .btn:hover,
.is-login-checkout .password-group .btn:hover,
.is-login-checkout .field-password .btn:hover,
.is-login-checkout .mod-login__password .btn:hover {
  background: #eaf2fb !important;
  color: #8a99a8 !important;
  border-color: #c9d6e2 !important;
  box-shadow: none !important;
  outline: none !important;
  transform: none !important;
}

/* кнопка входа */
.is-login-checkout form[action*="task=user.login"] button[type="submit"],
.is-login-checkout form[action*="task=user.login"] .btn-primary,
.is-login-checkout form[action*="task=user.login"] .btn[type="submit"] {
  width: 100% !important;
  height: 22px !important;
  min-height: 22px !important;
  padding: 0 10px !important;
  margin-top: 8px !important;
  border: 0 !important;
  border-radius: 2px !important;
  background: #18b36a !important;
  color: #fff !important;
  font-size: 10px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  box-shadow: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.is-login-checkout form[action*="task=user.login"] button[type="submit"]:hover,
.is-login-checkout form[action*="task=user.login"] .btn-primary:hover,
.is-login-checkout form[action*="task=user.login"] .btn[type="submit"]:hover {
  background: #18b36a !important;
  transform: none !important;
  opacity: 1 !important;
}

/* remember me */
.is-login-checkout form[action*="task=user.login"] .remember,
.is-login-checkout form[action*="task=user.login"] .form-check {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 8px 0 8px !important;
}

.is-login-checkout form[action*="task=user.login"] input[type="checkbox"] {
  width: 10px !important;
  height: 10px !important;
  margin: 0 !important;
}

.is-login-checkout form[action*="task=user.login"] .remember label,
.is-login-checkout form[action*="task=user.login"] .form-check label {
  margin: 0 !important;
  font-size: 9px !important;
  font-weight: 400 !important;
  color: #6b7280 !important;
}

/* нижние ссылки */
.is-login-checkout form[action*="task=user.login"] + ul,
.is-login-checkout form[action*="task=user.login"] ~ ul,
.is-login-checkout .login-links,
.is-login-checkout .nav {
  max-width: 380px !important;
  margin: 10px auto 0 !important;
  padding: 0 !important;
  list-style: none !important;
  display: flex !important;
  justify-content: space-between !important;
  gap: 8px !important;
  box-sizing: border-box !important;
}

.is-login-checkout form[action*="task=user.login"] + ul a,
.is-login-checkout form[action*="task=user.login"] ~ ul a,
.is-login-checkout .login-links a,
.is-login-checkout .nav a,
.is-login-checkout a[href*="registration"],
.is-login-checkout a[href*="remind"],
.is-login-checkout a[href*="reset"] {
  font-size: 9px !important;
  color: #2f6db2 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}
/* =========================================================
   LOGIN OVERRIDE STYLE
   Add to:
   /templates/tpl_sohoprint_full/css/style_patch.css
   ========================================================= */

.soho-login-page {
  max-width: 380px;
  margin: 0 auto 48px;
}

.soho-login-page .soho-cart__steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin: 0 0 14px;
  padding: 0;
}

.soho-login-page .soho-cart__steps::before {
  content: "";
  display: none;
}

.soho-login-page .soho-step {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #94a3b8;
  font-size: 11px;
  font-weight: 500;
  text-align: center;
}

.soho-login-page .soho-step::before {
  content: "";
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid #c6d3d7;
  background: #fff;
  box-sizing: border-box;
  flex: 0 0 18px;
}

.soho-login-page .soho-step span {
  background: #fff;
  padding: 0 4px;
  line-height: 1.2;
}

.soho-login-page .soho-step.is-active {
  color: #10b981;
}

.soho-login-page .soho-step.is-active::before {
  border-color: #10b981;
  background: #10b981;
  box-shadow: inset 0 0 0 4px #fff;
}

.soho-login-checkout-title {
  margin: 0 0 8px;
  text-align: left;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 700;
  color: #31455a;
}

.soho-login-checkout-note {
  margin: 0 0 12px;
  text-align: left;
  font-size: 10px;
  line-height: 1.3;
  color: #6b7280;
}

.soho-login-checkout-note a {
  color: #2f6db2;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.soho-login-form__group {
  margin-bottom: 10px;
}

.soho-login-form__group label {
  display: block;
  margin: 0 0 5px;
  font-size: 10px;
  line-height: 1.3;
  font-weight: 500;
  color: #4b5563;
  text-align: left;
}

.soho-login-form input[type="text"],
.soho-login-form input[type="password"] {
  width: 100%;
  height: 24px;
  padding: 0 8px;
  border: 1px solid #c9d6e2;
  border-radius: 2px;
  background: #eaf2fb;
  font-size: 10px;
  color: #1f2937;
  box-sizing: border-box;
  box-shadow: none;
  outline: none;
}

.soho-login-form input[type="text"]:focus,
.soho-login-form input[type="password"]:focus {
  border-color: #b9cadb;
  background: #eef5fc;
  box-shadow: none;
}

.soho-password-wrap {
  display: flex;
  align-items: stretch;
  width: 100%;
}

.soho-password-wrap input {
  flex: 1 1 auto;
  width: auto;
  border-right: 0;
  border-radius: 2px 0 0 2px;
}

.soho-password-toggle {
  flex: 0 0 24px;
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  height: 24px;
  min-height: 24px;
  max-height: 24px;
  margin: 0;
  padding: 0;
  border: 1px solid #c9d6e2;
  border-left: 0;
  border-radius: 0 2px 2px 0;
  background: #eaf2fb;
  color: #8a99a8;
  box-shadow: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.soho-password-toggle:hover,
.soho-password-toggle:active,
.soho-password-toggle:focus {
  background: #eaf2fb;
  color: #8a99a8;
  border-color: #c9d6e2;
  box-shadow: none;
  outline: none;
}

.soho-password-toggle__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  font-size: 12px;
  line-height: 1;
}

.soho-login-form__remember {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 8px 0;
}

.soho-login-form__remember input {
  width: 10px;
  height: 10px;
  margin: 0;
}

.soho-login-form__remember label {
  margin: 0;
  font-size: 9px;
  font-weight: 400;
  color: #6b7280;
}

.soho-login-form__submit {
  width: 100%;
  height: 22px;
  min-height: 22px;
  padding: 0 10px;
  margin-top: 8px;
  border: 0;
  border-radius: 2px;
  background: #18b36a;
  color: #fff;
  font-size: 10px;
  line-height: 1;
  font-weight: 700;
  box-shadow: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.soho-login-form__submit:hover,
.soho-login-form__submit:focus,
.soho-login-form__submit:active {
  background: #18b36a;
  color: #fff;
  box-shadow: none;
  outline: none;
}

.soho-login-form__links {
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.soho-login-form__links a {
  font-size: 9px;
  color: #2f6db2;
  text-decoration: underline;
  text-underline-offset: 2px;
}
/* =========================================================
   LOGIN SCALE x2
   ========================================================= */

.soho-login-page {
  transform: scale(2);
  transform-origin: top center;
  margin-top: 40px !important;
}

/* чтобы форма не уезжала вниз */
@media (min-width: 768px) {

  .soho-login-page {
    margin-top: 60px !important;
    margin-bottom: 200px !important;
  }

}

/* увеличим ширину контейнера чтобы всё выглядело ровно */

.soho-login-page {
  max-width: 760px !important;
}
/* =========================================================
   LOGIN OVERRIDE SCALE UP x2
   ========================================================= */

.soho-login-page {
  max-width: 760px !important;
  margin: 0 auto 90px !important;
}

.soho-login-page .soho-cart__steps {
  max-width: 760px !important;
  margin: 0 0 28px !important;
}

.soho-login-page .soho-step {
  font-size: 22px !important;
  gap: 12px !important;
}

.soho-login-page .soho-step::before {
  width: 36px !important;
  height: 36px !important;
  flex: 0 0 36px !important;
}

.soho-login-page .soho-step.is-active::before {
  box-shadow: inset 0 0 0 8px #fff !important;
}

.soho-login-checkout-title {
  font-size: 36px !important;
  margin: 0 0 16px !important;
}

.soho-login-checkout-note {
  font-size: 20px !important;
  margin: 0 0 24px !important;
}

.soho-login-form__group {
  margin-bottom: 20px !important;
}

.soho-login-form__group label {
  font-size: 18px !important;
  margin-bottom: 10px !important;
}

.soho-login-form input[type="text"],
.soho-login-form input[type="password"] {
  height: 48px !important;
  padding: 0 16px !important;
  font-size: 18px !important;
  border-radius: 4px !important;
}

.soho-password-wrap input {
  height: 48px !important;
}

.soho-password-toggle {
  width: 48px !important;
  min-width: 48px !important;
  max-width: 48px !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  border-radius: 0 4px 4px 0 !important;
}

.soho-password-toggle__icon {
  width: 24px !important;
  height: 24px !important;
  font-size: 20px !important;
}

.soho-login-form__remember {
  gap: 10px !important;
  margin: 14px 0 !important;
}

.soho-login-form__remember input {
  width: 18px !important;
  height: 18px !important;
}

.soho-login-form__remember label {
  font-size: 16px !important;
}

.soho-login-form__submit {
  height: 44px !important;
  min-height: 44px !important;
  font-size: 18px !important;
  border-radius: 4px !important;
  margin-top: 14px !important;
}

.soho-login-form__links {
  margin-top: 18px !important;
  gap: 16px !important;
}

.soho-login-form__links a {
  font-size: 16px !important;
}
/* =========================================================
   LOGIN FIELD FIX
   ========================================================= */

/* поле логина — как поле пароля */

.soho-login-form input[type="text"] {
  width: 100% !important;
  height: 48px !important;
  padding: 0 16px !important;

  border: 1px solid #c9d6e2 !important;
  border-radius: 4px !important;

  background: #eaf2fb !important;

  font-size: 18px !important;
  box-sizing: border-box !important;
}

/* поле пароля — рамка как у логина */

.soho-password-wrap input {
  border: 1px solid #c9d6e2 !important;
  border-right: 0 !important;

  border-radius: 4px 0 0 4px !important;

  height: 48px !important;
  padding: 0 16px !important;
}

/* кнопка глаза */

.soho-password-toggle {

  width: 48px !important;
  height: 48px !important;

  border: 1px solid #c9d6e2 !important;
  border-left: 0 !important;

  border-radius: 0 4px 4px 0 !important;

  background: #eaf2fb !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  cursor: pointer !important;
}

/* убираем старый emoji глаз */

.soho-password-toggle__icon {
  display: none !important;
}

/* вставляем твою иконку */

.soho-password-toggle {
  background-image: url("/templates/tpl_sohoprint_full/images/icons/eye-open.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 22px;
}

/* состояние "пароль показан" */

.soho-password-toggle.is-open {
  background-image: url("/templates/tpl_sohoprint_full/images/icons/eye-close.png");
}
/* логин = как пароль */
.soho-login-form__group #username,
.soho-login-form input[name="username"] {
  width: 100% !important;
  height: 48px !important;
  padding: 0 16px !important;
  border: 1px solid #c9d6e2 !important;
  border-radius: 4px !important;
  background: #eaf2fb !important;
  font-size: 18px !important;
  color: #1f2937 !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
  outline: none !important;
}

.soho-login-form__group #username:focus,
.soho-login-form input[name="username"]:focus {
  border-color: #b9cadb !important;
  background: #eef5fc !important;
  box-shadow: none !important;
}
/* кнопка глаза */
.soho-password-toggle {
  flex: 0 0 48px !important;
  width: 48px !important;
  min-width: 48px !important;
  max-width: 48px !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #c9d6e2 !important;
  border-left: 0 !important;
  border-radius: 0 4px 4px 0 !important;
  background-color: #eaf2fb !important;
  background-image: url("/templates/tpl_sohoprint_full/images/icons/eye-open.png") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 22px 22px !important;
  box-shadow: none !important;
  outline: none !important;
  cursor: pointer !important;
  font-size: 0 !important;
  color: transparent !important;
}

.soho-password-toggle:hover,
.soho-password-toggle:focus,
.soho-password-toggle:active {
  background-color: #eaf2fb !important;
  background-image: url("/templates/tpl_sohoprint_full/images/icons/eye-open.png") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 22px 22px !important;
  border-color: #c9d6e2 !important;
  box-shadow: none !important;
  outline: none !important;
  color: transparent !important;
}

.soho-password-toggle.is-open {
  background-image: url("/templates/tpl_sohoprint_full/images/icons/eye-close.png") !important;
}

.soho-password-toggle.is-open:hover,
.soho-password-toggle.is-open:focus,
.soho-password-toggle.is-open:active {
  background-image: url("/templates/tpl_sohoprint_full/images/icons/eye-close.png") !important;
}

/* прячем текст/emoji внутри кнопки */
.soho-password-toggle__icon {
  display: none !important;
}
/* =========================================================
   HIDE CHECKOUT STEPS ON MOBILE
   ========================================================= */

@media (max-width: 768px) {

  .soho-login-page .soho-cart__steps {
    display: none !important;
  }

}
/* =========================================================
   REGISTRATION FORM FIX
   ========================================================= */

.soho-register-page {
  max-width: 380px !important;
  margin: 0 auto 60px !important;
}

.soho-register-page .soho-login-checkout-title {
  margin: 0 0 8px !important;
  text-align: left !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  color: #31455a !important;
}

.soho-register-page .soho-login-checkout-note {
  margin: 0 0 12px !important;
  text-align: left !important;
  font-size: 10px !important;
  line-height: 1.3 !important;
  color: #6b7280 !important;
}

.soho-register-page .soho-login-checkout-note a {
  color: #2f6db2 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

.soho-register-page .soho-login-form__group {
  margin-bottom: 14px !important;
}

.soho-register-page .soho-login-form__group label {
  display: block !important;
  margin: 0 0 6px !important;
  font-size: 11px !important;
  line-height: 1.35 !important;
  font-weight: 500 !important;
  color: #4b5563 !important;
  text-align: left !important;
}

.soho-register-page .soho-login-form input[type="text"],
.soho-register-page .soho-login-form input[type="email"],
.soho-register-page .soho-login-form input[type="password"] {
  width: 100% !important;
  height: 40px !important;
  padding: 0 12px !important;
  border: 1px solid #c9d6e2 !important;
  border-radius: 2px !important;
  background: #eaf2fb !important;
  font-size: 12px !important;
  color: #1f2937 !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
  outline: none !important;
}

.soho-register-page .soho-login-form input[type="text"]:focus,
.soho-register-page .soho-login-form input[type="email"]:focus,
.soho-register-page .soho-login-form input[type="password"]:focus {
  border-color: #b9cadb !important;
  background: #eef5fc !important;
  box-shadow: none !important;
}

.soho-register-page .soho-password-wrap {
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
}

.soho-register-page .soho-password-wrap input {
  flex: 1 1 auto !important;
  width: auto !important;
  height: 40px !important;
  border-right: 0 !important;
  border-radius: 2px 0 0 2px !important;
}

.soho-register-page .soho-password-toggle {
  flex: 0 0 40px !important;
  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;
  height: 40px !important;
  min-height: 40px !important;
  max-height: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #c9d6e2 !important;
  border-left: 0 !important;
  border-radius: 0 2px 2px 0 !important;
  background-color: #eaf2fb !important;
  background-image: url("/templates/tpl_sohoprint_full/images/icons/eye-open.png") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 20px 20px !important;
  box-shadow: none !important;
  outline: none !important;
  cursor: pointer !important;
}

.soho-register-page .soho-password-toggle:hover,
.soho-register-page .soho-password-toggle:focus,
.soho-register-page .soho-password-toggle:active {
  background-color: #eaf2fb !important;
  border-color: #c9d6e2 !important;
  box-shadow: none !important;
  outline: none !important;
}

.soho-register-page .soho-password-toggle.is-open {
  background-image: url("/templates/tpl_sohoprint_full/images/icons/eye-close.png") !important;
}

.soho-register-page .soho-password-toggle__icon {
  display: none !important;
}

.soho-register-page .soho-login-form__submit {
  width: 100% !important;
  height: 36px !important;
  min-height: 36px !important;
  padding: 0 12px !important;
  margin-top: 6px !important;
  border: 0 !important;
  border-radius: 2px !important;
  background: #18b36a !important;
  color: #fff !important;
  font-size: 12px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  box-shadow: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
}

.soho-register-page .soho-login-form__submit:hover,
.soho-register-page .soho-login-form__submit:focus,
.soho-register-page .soho-login-form__submit:active {
  background: #18b36a !important;
  color: #fff !important;
  box-shadow: none !important;
  outline: none !important;
}
/* ===== REGISTRATION SAME STYLE AS LOGIN ===== */

.soho-register-page {
  max-width: 570px !important;
  margin: 0 auto 60px !important;
}

.soho-register-page .soho-login-checkout-title {
  max-width: 570px !important;
  margin: 0 auto 12px !important;
  text-align: left !important;
  font-size: 34px !important;
  line-height: 1.1 !important;
  font-weight: 800 !important;
  color: #31455a !important;
}

.soho-register-page .soho-login-checkout-note {
  max-width: 570px !important;
  margin: 0 auto 18px !important;
  text-align: left !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  color: #6b7280 !important;
}

.soho-register-page .soho-login-checkout-note a {
  color: #2f6db2 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  font-weight: 600 !important;
}

.soho-register-page .soho-login-form__group {
  margin-bottom: 18px !important;
}

.soho-register-page .soho-login-form__group label {
  display: block !important;
  margin: 0 0 8px !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
  color: #31455a !important;
  text-align: left !important;
}

.soho-register-page .soho-login-form input[type="text"],
.soho-register-page .soho-login-form input[type="email"],
.soho-register-page .soho-login-form input[type="password"] {
  width: 100% !important;
  height: 48px !important;
  padding: 0 16px !important;
  border: 1px solid #c9d6e2 !important;
  border-radius: 4px !important;
  background: #eaf2fb !important;
  font-size: 18px !important;
  color: #1f2937 !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
  outline: none !important;
}

.soho-register-page .soho-login-form input[type="text"]:focus,
.soho-register-page .soho-login-form input[type="email"]:focus,
.soho-register-page .soho-login-form input[type="password"]:focus {
  border-color: #b9cadb !important;
  background: #eef5fc !important;
  box-shadow: none !important;
}

.soho-register-page .soho-password-wrap {
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
}

.soho-register-page .soho-password-wrap input {
  flex: 1 1 auto !important;
  width: auto !important;
  height: 48px !important;
  border-right: 0 !important;
  border-radius: 4px 0 0 4px !important;
}

.soho-register-page .soho-password-toggle {
  flex: 0 0 48px !important;
  width: 48px !important;
  min-width: 48px !important;
  max-width: 48px !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #c9d6e2 !important;
  border-left: 0 !important;
  border-radius: 0 4px 4px 0 !important;
  background-color: #eaf2fb !important;
  background-image: url("/templates/tpl_sohoprint_full/images/icons/eye-open.png") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 22px 22px !important;
  box-shadow: none !important;
  outline: none !important;
  cursor: pointer !important;
}

.soho-register-page .soho-password-toggle:hover,
.soho-register-page .soho-password-toggle:focus,
.soho-register-page .soho-password-toggle:active {
  background-color: #eaf2fb !important;
  border-color: #c9d6e2 !important;
  box-shadow: none !important;
  outline: none !important;
}

.soho-register-page .soho-password-toggle.is-open {
  background-image: url("/templates/tpl_sohoprint_full/images/icons/eye-close.png") !important;
}

.soho-register-page .soho-password-toggle__icon {
  display: none !important;
}

.soho-register-page .soho-login-form__submit {
  width: 100% !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 12px !important;
  margin-top: 8px !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: #18b36a !important;
  color: #fff !important;
  font-size: 16px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  box-shadow: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
}

.soho-register-page .soho-login-form__submit:hover,
.soho-register-page .soho-login-form__submit:focus,
.soho-register-page .soho-login-form__submit:active {
  background: #18b36a !important;
  color: #fff !important;
  box-shadow: none !important;
  outline: none !important;
}
.soho-login-form__error {
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid #f1b5b5;
  border-radius: 4px;
  background: #fff3f3;
  color: #b42318;
  font-size: 14px;
  line-height: 1.35;
}
.soho-login-form__error {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.35;
  color: #d93025;
  display: none;
}
.soho-login-form__error {
  margin-top: 8px;
  padding: 8px 10px;
  font-size: 14px;
  border-radius: 4px;
  background: #fff2f2;
  border: 1px solid #f1b5b5;
  color: #d93025;
  display: none;
}
/* ===== кабинет: выпадающее меню ===== */

.soho-cabinet-wrap {
  position: relative;
}

.soho-cabinet-dropdown {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  width: 320px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14);
  padding: 14px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index: 200;
}

.logged-in .soho-cabinet-wrap:hover .soho-cabinet-dropdown,
.logged-in .soho-cabinet-wrap:focus-within .soho-cabinet-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.soho-cabinet-dropdown__item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 22px;
  color: #41566d;
  text-decoration: none;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 500;
  transition: background-color .15s ease, color .15s ease;
}

.soho-cabinet-dropdown__item:hover {
  background: #f6f8fb;
  color: #23384d;
}

.soho-cabinet-dropdown__item--logout {
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  margin-top: 8px;
}

.soho-cabinet-dropdown__icon {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.soho-cabinet-dropdown__icon img {
  width: 22px;
  height: 22px;
  object-fit: contain;
}

body:not(.logged-in) .soho-cabinet-dropdown {
  display: none;
}

@media (max-width: 991px) {
  .soho-cabinet-dropdown {
    right: -20px;
    width: 280px;
  }
}

@media (max-width: 767px) {
  .soho-cabinet-dropdown {
    display: none !important;
  }
}
/* ===== кабинет: выпадающее меню ===== */

.soho-cabinet-wrap {
  position: relative;
}

.soho-cabinet-dropdown {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  width: 320px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14);
  padding: 14px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index: 200;
}

.logged-in .soho-cabinet-wrap.is-user:hover .soho-cabinet-dropdown,
.logged-in .soho-cabinet-wrap.is-user:focus-within .soho-cabinet-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.soho-cabinet-dropdown__item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 22px;
  color: #41566d;
  text-decoration: none;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 500;
  transition: background-color .15s ease, color .15s ease;
}

.soho-cabinet-dropdown__item:hover {
  background: #f6f8fb;
  color: #23384d;
}

.soho-cabinet-dropdown__item--logout {
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  margin-top: 8px;
}

.soho-cabinet-dropdown__icon {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.soho-cabinet-dropdown__icon img {
  width: 22px;
  height: 22px;
  object-fit: contain;
}

body:not(.logged-in) .soho-cabinet-dropdown {
  display: none;
}

@media (max-width: 991px) {
  .soho-cabinet-dropdown {
    right: -20px;
    width: 280px;
  }
}

@media (max-width: 767px) {
  .soho-cabinet-dropdown {
    display: none !important;
  }
}
/* ===== cabinet dropdown final fix ===== */

.sp-header-usernav .soho-header-actions {
  display: flex !important;
  align-items: flex-start !important;
  gap: 20px !important;
}

.sp-header-usernav .soho-cabinet-wrap {
  position: relative !important;
}

.sp-header-usernav .soho-cabinet-dropdown {
  position: absolute !important;
  top: calc(100% + 10px) !important;
  right: 0 !important;
  width: 280px !important;
  background: #fff !important;
  border: 1px solid rgba(15, 23, 42, 0.08) !important;
  border-radius: 14px !important;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14) !important;
  padding: 10px 0 !important;
  z-index: 500 !important;

  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(8px) !important;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;

  display: block !important;
}

.sp-header-usernav .soho-cabinet-wrap:hover .soho-cabinet-dropdown,
.sp-header-usernav .soho-cabinet-wrap:focus-within .soho-cabinet-dropdown {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
}

.sp-header-usernav .soho-cabinet-dropdown__item {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 12px 18px !important;
  color: #41566d !important;
  text-decoration: none !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  font-weight: 500 !important;
}

.sp-header-usernav .soho-cabinet-dropdown__item:hover {
  background: #f6f8fb !important;
  color: #23384d !important;
}

.sp-header-usernav .soho-cabinet-dropdown__item--logout {
  border-top: 1px solid rgba(15, 23, 42, 0.08) !important;
  margin-top: 6px !important;
}

.sp-header-usernav .soho-cabinet-dropdown__icon {
  width: 20px !important;
  height: 20px !important;
  flex: 0 0 20px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.sp-header-usernav .soho-cabinet-dropdown__icon img {
  width: 20px !important;
  height: 20px !important;
  object-fit: contain !important;
}

@media (max-width: 767px) {
  .sp-header-usernav .soho-cabinet-dropdown {
    display: none !important;
  }
}
/* =========================================================
   FINAL FIX: HEADER USER MENU / CABINET DROPDOWN
   ========================================================= */

/* контейнер правой части шапки */
.sp-header-usernav {
  position: relative !important;
  display: flex !important;
  align-items: flex-end !important;
}

/* вся группа кнопок справа */
.sp-header-usernav .soho-header-actions {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: flex-end !important;
  gap: 20px !important;
  margin-left: auto !important;
}

/* обёртка кнопки кабинета */
.sp-header-usernav .soho-cabinet-wrap {
  position: relative !important;
  display: inline-flex !important;
  align-items: flex-end !important;
}

/* сама кнопка кабинета */
.sp-header-usernav .soho-cabinet-wrap > .soho-header-action {
  position: relative !important;
  z-index: 20 !important;
}

/* выпадающее меню — всегда абсолютное и скрытое по умолчанию */
.sp-header-usernav .soho-cabinet-dropdown {
  position: absolute !important;
  top: calc(100% + 10px) !important;
  right: 0 !important;

  width: 290px !important;
  margin: 0 !important;
  padding: 10px 0 !important;

  background: #fff !important;
  border: 1px solid rgba(15, 23, 42, 0.08) !important;
  border-radius: 16px !important;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14) !important;

  list-style: none !important;
  z-index: 999 !important;

  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(8px) !important;
  transition:
    opacity .18s ease,
    transform .18s ease,
    visibility .18s ease !important;

  display: block !important;
  float: none !important;
  clear: none !important;
}

/* показываем меню только при наведении / фокусе */
.sp-header-usernav .soho-cabinet-wrap:hover > .soho-cabinet-dropdown,
.sp-header-usernav .soho-cabinet-wrap:focus-within > .soho-cabinet-dropdown {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}

/* ссылки внутри меню */
.sp-header-usernav .soho-cabinet-dropdown__item {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;

  width: 100% !important;
  padding: 12px 18px !important;
  margin: 0 !important;

  text-decoration: none !important;
  color: #41566d !important;
  background: transparent !important;

  font-size: 15px !important;
  line-height: 1.2 !important;
  font-weight: 500 !important;

  box-sizing: border-box !important;
}

.sp-header-usernav .soho-cabinet-dropdown__item:hover {
  background: #f6f8fb !important;
  color: #23384d !important;
}

/* иконки пунктов */
.sp-header-usernav .soho-cabinet-dropdown__icon {
  width: 20px !important;
  height: 20px !important;
  flex: 0 0 20px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.sp-header-usernav .soho-cabinet-dropdown__icon img {
  width: 20px !important;
  height: 20px !important;
  object-fit: contain !important;
}

/* пункт выхода */
.sp-header-usernav .soho-cabinet-dropdown__item--logout {
  border-top: 1px solid rgba(15, 23, 42, 0.08) !important;
  margin-top: 6px !important;
  padding-top: 14px !important;
}

/* защита от показа меню гостям */
body:not(.logged-in) .sp-header-usernav .soho-cabinet-dropdown {
  display: none !important;
}

/* мобильная версия: меню кабинета скрываем */
@media (max-width: 767px) {
  .sp-header-usernav .soho-cabinet-dropdown {
    display: none !important;
  }
}
/* ===== user cabinet dropdown ===== */

.soho-user-menu {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}

.soho-user-menu__trigger {
  position: relative;
  z-index: 20;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  min-width: 74px;
  text-decoration: none;
  color: #3b4a5a;
}

.soho-user-menu__trigger-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-bottom: 8px;
}

.soho-user-menu__trigger-icon img {
  display: block;
  width: 30px;
  height: 30px;
  object-fit: contain;
}

.soho-user-menu__trigger-label {
  font-size: 14px;
  line-height: 1.2;
  font-weight: 500;
  color: #3b4a5a;
  white-space: nowrap;
}

.soho-user-menu__dropdown {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 300px;
  padding: 10px 0;
  background: #fff;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 16px;
  box-shadow: 0 16px 40px rgba(15,23,42,.14);
  z-index: 9999;

  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.soho-user-menu.is-open .soho-user-menu__dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.soho-user-menu__item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 12px 18px;
  box-sizing: border-box;
  text-decoration: none;
  color: #41566d;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 500;
}

.soho-user-menu__item:hover {
  background: #f6f8fb;
  color: #23384d;
}

.soho-user-menu__item-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.soho-user-menu__item-icon img {
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.soho-user-menu__item--logout {
  border-top: 1px solid rgba(15,23,42,.08);
  margin-top: 6px;
  padding-top: 14px;
}

@media (max-width: 767px) {
  .soho-user-menu__dropdown {
    display: none !important;
  }
}
/* ===== delivery checkout page ===== */

.soho-delivery-page {
  max-width: 1180px;
  margin: 28px auto 40px;
  padding: 0 16px;
}

.soho-delivery-page__title {
  margin: 0 0 28px;
  font-size: 36px;
  line-height: 1.15;
  font-weight: 800;
  color: #31455a;
}

.soho-delivery-page__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 34px;
  align-items: start;
}

.soho-delivery-page__methods {
  border-top: 1px solid #dbe3e8;
}

.soho-delivery-method {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 14px;
  padding: 22px 0 28px;
  border-bottom: 1px solid #e5edf1;
  cursor: pointer;
}

.soho-delivery-method input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.soho-delivery-method__control {
  width: 18px;
  height: 18px;
  border: 2px solid #c8d2d9;
  border-radius: 50%;
  margin-top: 4px;
  box-sizing: border-box;
  position: relative;
}

.soho-delivery-method input:checked + .soho-delivery-method__control::after {
  content: "";
  position: absolute;
  inset: 3px;
  background: #10b981;
  border-radius: 50%;
}

.soho-delivery-method__top {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}

.soho-delivery-method__title {
  font-size: 18px;
  line-height: 1.2;
  font-weight: 800;
  color: #31455a;
}

.soho-delivery-method__price {
  font-size: 16px;
  line-height: 1.2;
  font-weight: 700;
  color: #10b981;
}

.soho-delivery-method__meta {
  font-size: 15px;
  line-height: 1.5;
  color: #7a8794;
}

.soho-delivery-method__meta strong {
  color: #31455a;
  font-weight: 700;
}

.soho-delivery-summary {
  padding-top: 8px;
}

.soho-delivery-summary__title {
  margin-bottom: 6px;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 700;
  color: #31455a;
}

.soho-delivery-summary__sum {
  margin-bottom: 18px;
  font-size: 24px;
  line-height: 1.1;
  font-weight: 800;
  color: #111827;
}

.soho-delivery-summary__row {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 10px;
  font-size: 15px;
  line-height: 1.3;
  color: #7a8794;
}

.soho-delivery-summary__row strong {
  color: #31455a;
  font-weight: 700;
}

.soho-delivery-summary__actions {
  display: flex;
  gap: 12px;
  margin-top: 18px;
}

.soho-delivery-summary__back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 42px;
  border-radius: 8px;
  background: #e5e7eb;
  color: #31455a;
  text-decoration: none;
  font-size: 24px;
  line-height: 1;
}

.soho-delivery-summary__next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 158px;
  height: 42px;
  padding: 0 20px;
  border-radius: 8px;
  background: #10b981;
  color: #fff;
  text-decoration: none;
  font-size: 16px;
  line-height: 1;
  font-weight: 700;
}

@media (max-width: 900px) {
  .soho-delivery-page__layout {
    grid-template-columns: 1fr;
    gap: 26px;
  }

  .soho-delivery-summary {
    max-width: 360px;
  }
}

@media (max-width: 767px) {
  .soho-delivery-page__title {
    font-size: 28px;
  }

  .soho-delivery-method__title {
    font-size: 16px;
  }

  .soho-delivery-method__meta {
    font-size: 14px;
  }

  .soho-delivery-summary {
    max-width: none;
  }

  .soho-delivery-summary__actions {
    width: 100%;
  }

  .soho-delivery-summary__next {
    flex: 1 1 auto;
  }
}