/* ============================================================
   OpenCart Theme — Stylesheet
   ============================================================ */

/* ── Fonts ─────────────────────────────────────────────────── */
@font-face {
  font-family: "TTFors";
  font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/TTFors-Regular.woff2") format("woff2"),
       url("../fonts/TTFors-Regular.woff") format("woff");
}
@font-face {
  font-family: "TTFors";
  font-style: normal; font-weight: 500; font-display: swap;
  src: url("../fonts/TTFors-Medium.woff2") format("woff2"),
       url("../fonts/TTFors-Medium.woff") format("woff");
}
@font-face {
  font-family: "KudryashevHeadline";
  font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/kudryashevheadline-sans.woff2") format("woff2"),
       url("../fonts/kudryashevheadline-sans.woff") format("woff");
}

/* ── CSS Variables ───────────────────────────────────────────── */
:root {
  --color-text:       #251e19;
  --color-text-mid:   #514b47;
  --color-text-light: #7c7875;
  --color-accent:     #975730;
  --color-accent-dark:#40332b;
  --color-border:     #d3d2d1;
  --color-bg:         #fff;
  --color-bg-soft:    #f3f0ee;
  --color-bg-pale:    #f0ede9;
  --font-main:        "TTFors", sans-serif;
  --font-heading:     "KudryashevHeadline", "TTFors", serif;
  --header-h:         3.4375rem;
  --side-pad:         2rem;

  /* Icon variables — paths relative to this CSS file location */
  --icon-favorites:              url("../icons/icon-favorites.svg");
  --icon-favorites-fill:         url("../icons/icon-favorites-fill.svg");
  --icon-bag:                    url("../icons/icon-bag.svg");
  --icon-bag-fill:               url("../icons/icon-bag-fill.svg");
  --icon-bag-white:              url("../icons/icon-bag-white.svg");
  --icon-bag-white-fill:         url("../icons/icon-bag-white-fill.svg");
  --icon-subscribe:              url("../icons/icon-subscribe.svg");
  --icon-subscribe-fill:         url("../icons/icon-subscribe-fill.svg");
  --icon-arrow-left-accent:      url("../icons/icon-arrow-left-accent.svg");
  --icon-arrow-right-accent:     url("../icons/icon-arrow-right-accent.svg");
  --icon-ruler:                  url("../icons/icon-ruler.svg");
  --icon-stars:                  url("../icons/icon-stars.svg");
  --icon-card:                   url("../icons/icon-card.svg");
  --icon-success:                url("../icons/icon-success.svg");
  --icon-chevron-down:           url("../icons/icon-chevron-down.svg");
  --icon-check-white:            url("../icons/icon-check-white.svg");
  --icon-close:                  url("../icons/icon-close.svg");
  --icon-close-org:              url("../icons/icon-close-org.svg");
  --icon-close-disabled:         url("../icons/icon-close-disabled.svg");
  --icon-search:                 url("../icons/icon-search.svg");
  --icon-search-mob:             url("../icons/icon-search-mob.svg");
  --icon-user:                   url("../icons/icon-user.svg");
  --icon-user-accent:            url("../icons/icon-user-accent.svg");
  --icon-chevron-right:          url("../icons/icon-chevron-right.svg");
  --icon-pgn-chevron-left:       url("../icons/icon-pgn-chevron-left.svg");
  --icon-minus:                  url("../icons/icon-minus.svg");
  --icon-minus-accent:           url("../icons/icon-minus-accent.svg");
  --icon-plus-accent:            url("../icons/icon-plus-accent.svg");
  --icon-chat:                   url("../icons/icon-chat.svg");
  --icon-filter-fill:            url("../icons/icon-filter-fill.svg");
  --icon-grid:                   url("../icons/icon-grid.svg");
  --icon-siteline-disabled:      url("../icons/icon-siteline-disabled.svg");
  --icon-info-accent:            url("../icons/icon-info-accent.svg");
  --icon-info-grey:              url("../icons/icon-info-grey.svg");
  --icon-whishlist:              url("../icons/icon-whishlist.svg");
  --icon-whishlist-fill:         url("../icons/icon-whishlist-fill.svg");
  --icon_notice:                 url("../icons/icon_notice.svg");
  --icon-time:                   url("../icons/icon-time.svg");
  --icon-calendar:               url("../icons/icon-calendar.svg");
  --icon-delivery-accent:        url("../icons/icon-delivery-accent.svg");
  --icon-free-shipping-accent:   url("../icons/icon-free-shipping-accent.svg");
  --icon-notification-accent:    url("../icons/icon-notification-accent.svg");
  --icon-notification-fill-accent: url("../icons/icon-notification-fill-accent.svg");
  --icon-check-fill-white:       url("../icons/icon-check-fill-white.svg");
  --icon-share:                  url("../icons/icon-share.svg");
  --icon-share-accent:           url("../icons/icon-share-accent.svg");
  --icon-whatsapp:               url("../icons/icon-whatsapp.svg");
  --icon-telegram:               url("../icons/icon-telegram.svg");
}

/* ── Reset ───────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html, body {
  margin: 0; padding: 0;
  width: 100%;
  background: var(--color-bg);
}
html {
  overflow-x: hidden;
}
body {
  font-family: var(--font-main);
  font-size: 16px;
  line-height: 1.3;
  color: var(--color-text);
  overflow-x: hidden;
}
h1,h2,h3,h4,h5,h6 { font-family: var(--font-main); font-weight: 500; color: var(--color-text); margin-top: 0; }
a { color: var(--color-accent); text-decoration: none; }
a:hover { color: #af6537; }
:focus { outline: none; }
img { max-width: 100%; height: auto; display: block; }

/* ── Bootstrap grid stubs (no bootstrap.css loaded) ─────────── */
.container, .container-fluid {
  width: 100%;
}

.row { display: flex; flex-wrap: wrap; margin: 0 -0.75rem; }
.col-sm-12,.col-md-12 { flex: 0 0 100%; width: 100%; padding: 0 0.75rem; }
.col-sm-9,.col-md-9   { flex: 0 0 75%;  width: 75%;  padding: 0 0.75rem; }
.col-sm-3,.col-md-3   { flex: 0 0 25%;  width: 25%;  padding: 0 0.75rem; }
.col-sm-6,.col-md-6   { flex: 0 0 50%;  width: 50%;  padding: 0 0.75rem; }
.col-sm-4,.col-md-4   { flex: 0 0 33.333%; width: 33.333%; padding: 0 0.75rem; }
.col-sm-2,.col-md-2   { flex: 0 0 16.666%; width: 16.666%; padding: 0 0.75rem; }
.col-sm-1,.col-md-1   { flex: 0 0 8.333%;  width: 8.333%;  padding: 0 0.75rem; }

/* ── Hide old OpenCart nav/top bar ──────────────────────────── */
nav#top, #top, #menu, .navbar { display: none !important; }

/* ── Page wrapper ───────────────────────────────────────────── */
#page-wrapper {
  padding-top: var(--header-h);
  min-height: 60vh;
  width: 100%;
}

/* На главной баннер идёт под прозрачный хедер */
body.common-home #page-wrapper {
  padding-top: 0;
}

/* ── Header ─────────────────────────────────────────────────── */
.header {
  position: relative;
  z-index: 100;
  background-color: var(--color-bg);
}
/* On home page the header floats over the slider — no reserved space */

.header__wrapper {
  position: fixed;
  z-index: 100;
  top: 0; left: 0;
  width: 100%;
  background-color: var(--color-bg);
  transition: background-color 0.35s ease;
}
.header__container { position: relative; z-index: 10; }
.header__body {
  min-height: var(--header-h);
  display: flex;
  align-items: center;
  padding: 0 var(--side-pad);
}
.header__logo { align-self: center; padding: 0.375rem 0; flex-shrink: 0; position: relative; }
.header__logo img { max-width: 100%; height: auto; display: block; }

.header__logo-black {
  display: block !important;
}
.header__logo-white {
  display: none !important;
}
._header-not-white img.header__logo-white {
  display: block !important;
}

._header-not-white img.header__logo-black {
  display: none !important;
}

/* ── Transparent header on homepage ──────────────────────────── */
._header-not-white {
  background-color: #ffffff00 !important;
  transition: background-color 0.35s ease;
}
._header-not-white .menu__link {
  color: #fff;
}
._header-not-white .menu__link:hover {
  color: var(--color-accent);
}

/* header__notice: flex by default, hidden when scrolling down */
.header__notice {
  display: flex;
}
.header__notice._hidden {
  display: none !important;
}

/* ── Nav ─────────────────────────────────────────────────────── */
.header__menu { flex: 1 1 auto; }
.menu__body { height: 100%; }
.menu__list {
  height: var(--header-h);
  display: flex;
  align-items: stretch;
  list-style: none;
  margin: 0 2.5rem;
  padding: 0;
}
.menu__item { display: flex; align-items: stretch; }
.menu__link {
  display: flex;
  align-items: center;
  padding: 0 0.75rem;
  font-size: 1rem;
  line-height: 120%;
  color: var(--color-text);
  transition: color 0.3s;
  white-space: nowrap;
}
.menu__link:hover { color: var(--color-accent); }

/* ── Mega dropdown ───────────────────────────────────────────── */
.sub-wrapper {
  position: absolute;
  z-index: 100;
  top: 100%; left: 0;
  width: 100%;
  border-top: 1px solid var(--color-border);
  background-color: var(--color-bg);
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}
.sub-wrapper._active,
.menu__item--has-sub:hover > .sub-wrapper {
  opacity: 1;
  pointer-events: all;
  visibility: visible;
}
/* body overlay on menu hover */
.menu__item--has-sub:hover ~ * .menu-hover-overlay,
.menu__item--has-sub:hover .menu-hover-overlay { display: block; }
.sub-wrapper__container { padding: 0 var(--side-pad); }
.sub-wrapper__body {
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  gap: 0.75rem;
  padding: 1.25rem 0 4.6875rem;
}
/* Sitemap variant: auto height */
.sub-wrapper__body--sitemap {
  height: auto;
  padding-bottom: 2rem;
}
.sub-wrapper__submenu { grid-column: 6 span; }
.sub-wrapper__products {
  grid-column: 4 span;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 0.75rem;
}
.sub-wrapper__search { grid-column: 4 span / -1; }
.sub-wrapper__products-item { position: relative; height: 100%; }
.sub-wrapper__products-item-img {
  display: block;
  position: relative;
  overflow: hidden;
  height: 100%;
}
.sub-wrapper__products-item-img img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.sub-wrapper__products-item-img--empty {
  background: var(--color-bg-pale);
  border-radius: 2px;
}
.sub-wrapper__body--search {
  display: block;
  height: auto;
  padding: 1.5rem 0;
}
.sub-wrapper__search { max-width: 600px; }

/* ── Header Search ──────────────────────────── */
.header-search__form {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  height: 2rem;
  margin-bottom: 1.25rem;
  overflow: visible;
}
.header-search__form-input {
  height: 1.8125rem;
  width: 100%;
  border: none !important;
  border-left: 0.0625rem solid #000 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: 1.75rem;
  line-height: 100%;
  color: var(--color-text);
  background: transparent;
  outline: none;
  padding-left: 0.75rem;
  caret-color: #000;
}
/* Placeholder visible by default, hidden when input is focused */
.header-search__form-input::placeholder {
  color: var(--color-text-light);
  transition: opacity 0.15s ease;
}
.header-search__form-input:focus::placeholder {
  opacity: 0;
}
/* Remove the old cursor span style */
#search-cursor-line { display: none; }
.header-search__form-input::placeholder { color: var(--color-text-light); }
.header-search__form-submit {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}
.header-search__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
}
.header-search__group_wide { grid-column: 1 / -1; }
.header-search__label {
  padding: 0.25rem 0;
  font-size: 1rem;
  line-height: 120%;
  color: var(--color-text-light);
  margin-bottom: 0.5rem;
}
.header-search__list { list-style: none; margin: 0; padding: 0; }
.header-search__list-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.25rem 0;
  font-size: 1rem;
  line-height: 120%;
  color: var(--color-text);
}
.header-search__list-link:hover { color: var(--color-accent); }
.header-search__empty-title {
  font-size: 1rem;
  line-height: 120%;
  color: var(--color-text);
  margin-bottom: 0.5rem;
}
.header-search__empty-text { font-size: 1rem; line-height: 120%; color: var(--color-text-mid); }

/* ── Submenu columns ─────────────────────────────────────────── */
.submenu {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 0.75rem;
}
.submenu__group_wide { grid-column: 2 span; }
.submenu__group_wide .submenu__list {
  columns: 2;
  column-gap: 0.75rem;
  column-fill: auto;
  height: 17.1875rem;
}
/* ── New two-column sitemap submenu ── */
.submenu--sitemap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 2rem;
}
.submenu__col { /* each column */ }
.submenu__list--tree { list-style: none; margin: 0; padding: 0; }
.submenu__list--nested {
  list-style: none;
  margin: 0;
  padding: 0 0 0.25rem 0.875rem;
  margin-left: 0.125rem;
}
.submenu--sitemap .submenu__item { padding: 0.15rem 0; }
.submenu--sitemap .submenu__link { font-size: 0.875rem; line-height: 130%; }
.submenu__item--parent > .submenu__link {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--color-text);
}
.submenu__label {
  display: block;
  padding: 0 0 0.375rem;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--color-text-mid);
}
.submenu__link--section {
  display: inline-block;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--color-text-mid);
  cursor: default;
  padding: 0.15rem 0;
}
.submenu__label {
  display: block;
  padding: 0.25rem 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 120%;
  color: var(--color-text-mid);
  transition: color 0.3s;
}
.submenu__label:not(:last-child) { margin-bottom: 0.5rem; }
.submenu__label:hover { color: var(--color-accent); }
.submenu__list { list-style: none; margin: 0; padding: 0; }
.submenu__item { padding: 0.25rem 0; }
.submenu__link {
  display: inline-block;
  font-size: 1rem;
  line-height: 120%;
  color: var(--color-text);
  transition: color 0.3s;
}
.submenu__link:hover { color: var(--color-accent); }
.submenu__link--all { color: var(--color-accent); font-weight: 500; }

/* ── Header icons ────────────────────────────────────────────── */
.header__actions {
  align-self: center;
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 0.375rem 0;
  flex-shrink: 0;
}
.header__icon {
  position: relative;
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 0;
  color: var(--color-text);
  cursor: pointer;
  transition: color 0.2s;
}
.header__icon:hover { color: var(--color-accent); }
.header__icon svg { width: 20px; height: 20px; }
.header__icon path { fill: currentColor; transition: fill 0.2s; }

/* ── Banner / Slideshow ──────────────────────────────────────── */
.banner {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.banner__swiper { position: relative; width: 100%; }
.banner__swiper .swiper-container {
  width: 100%;
  height: 100vh;
  min-height: 500px;
  overflow: hidden;
}
.banner__logo {
  display: none;
  position: absolute;
  top: 1.5rem; left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  width: auto; height: auto;
  filter: brightness(0) invert(1);
  pointer-events: none;
}
.banner__slide {
  position: relative;
  width: 100%; height: 100%;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.banner__link {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  width: 100%; height: 100%;
}
.banner__img { position: absolute; inset: 0; width: 100%; height: 100%; }
.banner__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center top;
}
.banner__title {
  position: relative;
  z-index: 5;
  color: #fff;
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 4vw, 3rem);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 3rem;
  text-shadow: 0 2px 12px rgba(0,0,0,0.25);
  pointer-events: none;
}
.banner__swiper .swiper-button-next,
.banner__swiper .swiper-button-prev {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 20% !important;
    height: 100%;
    margin-top: 0;
}
.banner__swiper .swiper-button-next {
	right: 0;
    cursor: url(../icons/point-arrow-right.svg) 16 16, auto;
}
.banner__swiper .swiper-button-prev {
	left: 0;
    cursor: url(../icons/point-arrow-left.svg) 16 16, auto;
}
.banner__swiper .swiper-pagination-bullet {
    margin: 0 4px;
}
.banner__swiper .swiper-pagination-bullet {
    width: 2rem;
    height: 0.125rem;
    border: 20px;
    background: rgba(255,255,255,0.6);
}
.banner__swiper .swiper-pagination-bullet-active { background: #fff; opacity: 1; }
.banner .swiper-viewport { overflow: visible; }

/* ── Product grid section ────────────────────────────────────── */
.products-section {
  padding: 2rem var(--side-pad);
  width: 100%;
}
.section-title {
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--color-text);
  margin: 0 0 1.25rem;
}
.products-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.75rem;
}
@media (max-width: 1200px) { .products-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 768px)  { .products-grid { grid-template-columns: repeat(2, 1fr); } }

.product-card { position: relative; }
.product-card__img-wrap {
  display: block;
  position: relative;
  overflow: hidden;
  background: var(--color-bg-soft);
}
.product-card__img-wrap::before {
  content: '';
  display: block;
  padding-top: 133%;
}
.product-card__img-wrap img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.product-card:hover .product-card__img-wrap img { transform: scale(1.03); }

.product-card__actions {
  position: absolute;
  top: 0.25rem; right: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  z-index: 10;
  opacity: 0;
  transition: opacity 0.2s;
}
.product-card:hover .product-card__actions { opacity: 1; }
.product-card__action-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem; height: 1.5rem;
  background: none;
  border: none;
  color: var(--color-text);
  cursor: pointer;
  padding: 0;
  transition: color 0.2s;
}
.product-card__action-btn:hover { color: var(--color-accent); }

.product-card__info { padding: 0.5rem 0.5rem 0.5rem 0; }
.product-card__name {
  display: block;
  font-size: 0.9375rem;
  color: var(--color-text);
  line-height: 1.3;
  margin-bottom: 0.25rem;
  transition: color 0.2s;
}
.product-card__name:hover { color: var(--color-accent); }
.product-card__price {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  font-size: 0.9375rem;
  color: var(--color-text);
}
.price-new { font-weight: 500; }
.price-old { font-size: 0.8125rem; color: var(--color-text-light); text-decoration: line-through; }

/* Keep old class aliases so twig templates still work */
.siteline-products-section { padding: 2rem var(--side-pad); width: 100%; }
.siteline-section-title { font-size: 1.125rem; font-weight: 500; color: var(--color-text); margin: 0 0 1.25rem; }
.siteline-products-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.75rem;
}
@media (max-width: 1200px) { .siteline-products-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 768px)  { .siteline-products-grid { grid-template-columns: repeat(2, 1fr); } }
.siteline-product-card { position: relative; }
.siteline-product-card__img-wrap {
  display: block; position: relative; overflow: hidden; background: var(--color-bg-soft);
}
.siteline-product-card__img-wrap::before { content: ''; display: block; padding-top: 133%; }
.siteline-product-card__img-wrap img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s;
}
.siteline-product-card:hover .siteline-product-card__img-wrap img { transform: scale(1.03); }
.siteline-product-card__actions {
  position: absolute; top: 0.25rem; right: 0; display: flex; flex-direction: column;
  gap: 0.25rem; z-index: 10; opacity: 0; transition: opacity 0.2s;
}
.siteline-product-card:hover .siteline-product-card__actions { opacity: 1; }
.siteline-product-card__action-btn {
  display: flex; align-items: center; justify-content: center;
  width: 2rem; height: 1.5rem; background: none; border: none;
  color: var(--color-text); cursor: pointer; padding: 0; transition: color 0.2s;
}
.siteline-product-card__action-btn:hover { color: var(--color-accent); }
.siteline-product-card__info { padding: 0.5rem 0 0.75rem; }
.siteline-product-card__name {
  display: block; font-size: 0.9375rem; color: var(--color-text);
  line-height: 1.3; margin-bottom: 0.25rem; transition: color 0.2s;
}
.siteline-product-card__name:hover { color: var(--color-accent); }
.siteline-product-card__price {
  display: flex; align-items: baseline; gap: 0.5rem;
  font-size: 0.9375rem; color: var(--color-text);
}
.siteline-price-new { font-weight: 500; }
.siteline-price-old { font-size: 0.8125rem; color: var(--color-text-light); text-decoration: line-through; }

/* ── Breadcrumb ─────────────────────────────────────────────── */
.breadcrumb {
  background: none; border: none;
  padding: 1.25rem var(--side-pad) 0.75rem;
  margin: 0; font-size: 0.875rem;
  list-style: none; display: flex; flex-wrap: wrap;
}
.breadcrumb > li { display: inline; line-height: 1; }
.breadcrumb > li + li::before { content: " / "; color: var(--color-text-light); padding: 0 0.25rem; }
.breadcrumb a { color: var(--color-text-light); }
.breadcrumb > li::after { display: none; }

/* ── Content area ───────────────────────────────────────────── */
#content {
  min-height: 600px;
  padding: 0;
}

/* ── Forms ──────────────────────────────────────────────────── */
.form-control {
  height: 2.75rem; padding: 0 0.75rem;
  font-size: 1rem; font-family: inherit;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: 0.5rem;
  box-shadow: none; background: var(--color-bg);
  width: 100%;
}
.form-control:focus { border-color: #a38775; box-shadow: none; }
label { font-size: 1rem; font-weight: normal; }

/* ── Buttons ─────────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0.5rem 1rem; font-size: 1rem;
  font-family: inherit; font-weight: 500;
  border: 1px solid; border-radius: 0.5rem;
  cursor: pointer; transition: background-color 0.2s, border-color 0.2s, color 0.2s;
  box-shadow: none; text-shadow: none; background-image: none; text-decoration: none;
}
.btn-primary  { background: var(--color-accent-dark); border-color: var(--color-accent-dark); color: #fff !important; }
.btn-primary:hover { background: #594133; border-color: #594133; }
.btn-default  { background: var(--color-bg-soft); border-color: var(--color-bg-soft); color: var(--color-accent); }
.btn-default:hover { background: #e8e1dc; }
.btn-success  { background: #429e58; border-color: #429e58; color: #fff; }
.btn-danger   { background: #b60017; border-color: #b60017; color: #fff; }
.btn-warning  { background: var(--color-accent); border-color: var(--color-accent); color: #fff; }
.btn-info     { background: var(--color-text-mid); border-color: var(--color-text-mid); color: #fff; }
.btn-link     { background: none; border-color: transparent; color: var(--color-accent); }

/* ── Alerts ─────────────────────────────────────────────────── */
.alert { padding: 0.75rem 1rem; border-radius: 0.5rem; border: none; margin-bottom: 1rem; position: relative; }
.alert-success { background: #d4edda; color: #155724; }
.alert-danger  { background: #fdeee9; color: #b60017; }
.alert-warning { background: #fff3cd; color: #856404; }
.alert-info    { background: #cce5ff; color: #004085; }

/* ── Footer ─────────────────────────────────────────────────── */
.site-footer {
  background: var(--color-bg-soft);
  margin-top: 4rem;
}
.site-footer__body {
  width: 100%;
  padding: 2.5rem var(--side-pad);
  display: grid;
  grid-template-columns: 1fr 0.5fr 0.5fr 0.7fr;
  gap: 2rem;
}
@media (max-width: 900px) { .site-footer__body { grid-template-columns: 1fr 1fr; } }
@media (max-width: 500px) { .site-footer__body { grid-template-columns: 1fr; } }
.site-footer__logo img { max-height: 2.5rem; width: auto; }
.site-footer__socials { display: flex; gap: 1rem; margin-top: 1.25rem; }
.site-footer__social-link { font-size: 0.875rem; color: var(--color-text-mid); }
.site-footer__social-link:hover { color: var(--color-accent); }
.site-footer__col-title { font-weight: 500; font-size: 1rem; color: var(--color-text); margin-bottom: 0.75rem; }
.site-footer__link-list { display: flex; flex-direction: column; gap: 0.3rem; }
.site-footer__link { font-size: 0.875rem; color: var(--color-text-mid); line-height: 1.6; transition: color 0.2s; }
.site-footer__link:hover { color: var(--color-accent); }
.site-footer__form-title { font-weight: 500; font-size: 1rem; color: var(--color-text); margin-bottom: 0.5rem; }
.site-footer__form { display: grid; grid-template-columns: 1fr auto; gap: 0.5rem; }
.site-footer__input {
  height: 2.5rem; padding: 0 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: 0.5rem;
  font-family: inherit; font-size: 0.9rem; background: var(--color-bg);
}
.site-footer__submit {
  height: 2.5rem; padding: 0 1rem;
  background: var(--color-accent-dark); border: none; border-radius: 0.5rem;
  color: #fff; font-family: inherit; font-size: 0.875rem; font-weight: 500; cursor: pointer;
}
.site-footer__bottom {
  width: 100%;
  padding: 1.25rem var(--side-pad);
  border-top: 1px solid var(--color-border);
  display: flex; justify-content: space-between; align-items: center;
}
.site-footer__copy { font-size: 0.875rem; color: var(--color-text-light); }
.site-footer__copy a { color: var(--color-accent); }
.site-footer__sitemap a { font-size: 0.875rem; color: var(--color-text-light); }

/* Keep old footer class aliases */
.siteline-footer { background: #f1f1f1; margin-top: 4rem; }
.siteline-footer__body {
  width: 100%; padding: 2.5rem var(--side-pad);
  display: grid; grid-template-columns: 1fr 0.5fr 0.5fr 0.7fr; gap: 2rem;
}
@media (max-width: 900px) { .siteline-footer__body { grid-template-columns: 1fr 1fr; } }
@media (max-width: 500px) { .siteline-footer__body { grid-template-columns: 1fr; } }
.siteline-footer__logo img { max-height: 2.5rem; width: auto; }
.siteline-footer__socials { display: flex; gap: 1rem; margin-top: 1.25rem; }
.siteline-footer__social-link { font-size: 0.875rem; color: var(--color-text-mid); }
.siteline-footer__social-link:hover { color: var(--color-accent); }
.siteline-footer__col-title { font-weight: 500; font-size: 1rem; color: var(--color-text); margin-bottom: 0.75rem; }
.siteline-footer__link-list { display: flex; flex-direction: column; gap: 0.3rem; }
.siteline-footer__link { font-size: 0.875rem; color: var(--color-text-mid); line-height: 1.6; transition: color 0.2s; }
.siteline-footer__link:hover { color: var(--color-accent); }
.siteline-footer__form-title { font-weight: 500; font-size: 1rem; color: var(--color-text); margin-bottom: 0.5rem; }
.siteline-footer__form { display: grid; grid-template-columns: 1fr auto; gap: 0.5rem; }
.siteline-footer__input {
  height: 2.5rem; padding: 0 0.75rem;
  border: 1px solid var(--color-border); border-radius: 0.5rem;
  font-family: inherit; font-size: 0.9rem; background: var(--color-bg);
}
.siteline-footer__submit {
  height: 2.5rem; padding: 0 1rem;
  background: var(--color-accent-dark); border: none; border-radius: 0.5rem;
  color: #fff; font-family: inherit; font-size: 0.875rem; font-weight: 500; cursor: pointer;
}
.siteline-footer__bottom {
  width: 100%; padding: 1.25rem var(--side-pad);
  border-top: 1px solid var(--color-border);
  display: flex; justify-content: space-between; align-items: center;
}
.siteline-footer__copy { font-size: 0.875rem; color: var(--color-text-light); }
.siteline-footer__copy a { color: var(--color-accent); }
.siteline-footer__sitemap a { font-size: 0.875rem; color: var(--color-text-light); }

/* ── Bootstrap misc overrides ────────────────────────────────── */
.list-group a {
  padding: 0.5rem 0.75rem; display: block; border-radius: 0.5rem; margin-bottom: 0.25rem;
}
.list-group a.active, .list-group a:hover { background: var(--color-bg-soft); color: var(--color-text); }
.nav-tabs { border-bottom: 1px solid var(--color-border); }
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:focus,
.nav-tabs > li.active > a:hover { border-color: var(--color-border); border-bottom-color: transparent; }
.nav > li > a:focus, .nav > li > a:hover { background: var(--color-bg-soft); }
div.required .control-label::before { content: "* "; color: #b60017; font-weight: bold; }
.input-group .form-control[name^=quantity] { min-width: 50px; }
.pagination { margin: 0; }
.pagination > li > a, .pagination > li > span { color: var(--color-accent); }
.pagination > .active > a, .pagination > .active > span {
  background: var(--color-accent-dark); border-color: var(--color-accent-dark); color: #fff;
}
.product-layout { padding: 0; }
.product-thumb { display: none !important; }
.img-responsive { max-width: 100%; height: auto; }
html[dir=rtl] .checkbox input[type="checkbox"],
html[dir=rtl] .radio input[type="radio"] { margin-right: -20px; margin-left: unset; }

/* ── Mobile overrides (max-width: 63.99875em ≈ 1023px) ────── */
@media (max-width: 63.99875em) {
  /* Шапка скрыта на мобильных — показывается tap-bar */
  .header { display: none; }
  /* Убираем отступ сверху для page-wrapper на мобильных */
  #page-wrapper { padding-top: 0; }
  /* Убираем фиксированную ширину логотипа на баннере */
  .banner__logo { display: block; width: auto; }
}

/* ── OpenCart filter module inside catalog sidebar ────────── */
.catalog__navigation-filters .panel {
  border: none;
  background: none;
  margin-bottom: 1.5rem;
}
.catalog__navigation-filters .panel-heading {
  padding: 0;
  background: none;
  border: none;
  font-weight: 500;
  font-size: 1rem;
  line-height: 120%;
  color: #251e19;
  margin-bottom: 0.75rem;
}
.catalog__navigation-filters .panel-body,
.catalog__navigation-filters .list-group {
  border: none;
  background: none;
  padding: 0;
  margin: 0;
  box-shadow: none;
}
.catalog__navigation-filters .list-group-item {
  border: none;
  background: none;
  padding: 0.25rem 0;
  font-size: 1rem;
  line-height: 120%;
  color: #7c7875;
  border-radius: 0 !important;
}
.catalog__navigation-filters .list-group-item.active,
.catalog__navigation-filters .list-group-item:hover {
  background: none;
  color: #251e19;
  font-weight: 500;
}
.catalog__navigation-filters .list-group-item > a {
  color: inherit;
  text-decoration: none;
}
.catalog__navigation-filters a.list-group-item {
  display: block;
  padding: 0.25rem 0;
  font-size: 1rem;
  line-height: 120%;
  color: #7c7875;
}
.catalog__navigation-filters a.list-group-item:hover {
  color: #251e19;
  background: none;
}
.catalog__navigation-filters a.list-group-item.active {
  color: #251e19;
  font-weight: 500;
  background: none;
}
.catalog__navigation-filters .checkbox {
  display: flex;
  align-items: center;
  padding: 0.25rem 0;
}
.catalog__navigation-filters .checkbox label {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 1rem;
  line-height: 120%;
  color: #251e19;
  cursor: pointer;
  margin: 0;
  font-weight: 400;
}
.catalog__navigation-filters .checkbox input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  border: 0.0625rem solid #bebcba;
  border-radius: 0.25rem;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  flex-shrink: 0;
}
.catalog__navigation-filters .checkbox input[type="checkbox"]:checked {
  background-color: #40332b;
  border-color: #40332b;
}
.catalog__navigation-filters .panel-footer {
  background: none;
  border: none;
  padding: 0.75rem 0 0;
}
.catalog__navigation-filters #button-filter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: 0.5rem 0.9375rem;
  border: 0.0625rem solid #40332b;
  border-radius: 0.5rem;
  background-color: #40332b;
  color: #fff;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  transition: background-color .3s ease;
}
.catalog__navigation-filters #button-filter:hover {
  background-color: #594133;
}



/* ═══════════════════════════════════════════════════════════
   CATALOG PAGE & MOBILE POPUPS — all fixes
   ═══════════════════════════════════════════════════════════ */

/* 1. h1 font-size reset */
h1 { font-size: 1em; }

/* 2. Action buttons — reset browser default */
.products-item__action {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

/* 3. catalog__grid padding */
.catalog__container {
  padding: 0rem var(--side-pad, 2rem);
}
.catalog__grid {
  padding: 0;
}

/* 4. Column gap between product cards */
.catalog__list {
  column-gap: 0.25rem !important;
  grid-column-gap: 0.25rem !important;
}

/* 5. catalog__filters-search and catalog__filters-button — no border, proper icon */
.catalog__filters-search,
.catalog__filters-button {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  -webkit-appearance: none;
  appearance: none;
  padding: 0;
  cursor: pointer;
}

/* icon for mobile search button in catalog__top */
.catalog__filters-search {
  background-image: var(--icon-search-mob) !important;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1.25rem 1.25rem;
}

/* 6. Sort/limit bar desktop */
.catalog__sort-bar {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-shrink: 0;
}
.catalog__sort-select {
  border: none;
  font-size: 1rem;
  font-family: var(--font-main);
  color: #514b47;
  cursor: pointer;
  background: transparent;
  outline: none;
}

/* 7. Category description */
.catalog__category-desc {
  font-size: 1rem;
  line-height: 150%;
  color: var(--color-text-mid);
  margin-bottom: 1.25rem;
}
.catalog__category-desc p { margin: 0; }
.catalog__category-thumb {
  max-width: 100%;
  border-radius: 0.5rem;
  margin-bottom: 1.25rem;
  display: block;
}

/* 8. Pagination */
.catalog__pagination { margin-top: 2rem; }

/* 9. products-item info */
.products-item__info { padding: 0.625rem 0 0; }
.products-item__prices {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin-top: 0.25rem;
}

/* 10. module/category.twig navigation list */
.catalog__navigation-module-list,
.catalog__navigation-submenu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 11. OpenCart column_left filter styling */
.catalog__navigation-filters .col-sm-3,
.catalog__navigation-filters aside {
  float: none !important;
  width: 100% !important;
  padding: 0 !important;
  display: block !important;
}
.catalog__navigation-filters .hidden-xs { display: block !important; }
.catalog__navigation-filters .panel {
  border: none; background: none; margin-bottom: 1.5rem; box-shadow: none;
}
.catalog__navigation-filters .panel-heading {
  padding: 0; background: none; border: none;
  font-weight: 500; font-size: 1rem; color: #251e19; margin-bottom: 0.75rem;
}
.catalog__navigation-filters .panel-body,
.catalog__navigation-filters .list-group {
  border: none; background: none; padding: 0; margin: 0; box-shadow: none;
}
.catalog__navigation-filters .list-group-item {
  border: none !important; background: none !important;
  padding: 0.25rem 0; font-size: 1rem; color: #7c7875; border-radius: 0 !important;
}
.catalog__navigation-filters a.list-group-item { display: block; }
.catalog__navigation-filters a.list-group-item:hover,
.catalog__navigation-filters a.list-group-item.active { color: #251e19; font-weight: 500; }
.catalog__navigation-filters .checkbox {
  display: flex; align-items: center; padding: 0.25rem 0;
}
.catalog__navigation-filters .checkbox label {
  display: flex; align-items: center; gap: 0.625rem;
  font-size: 1rem; color: #251e19; cursor: pointer; margin: 0; font-weight: 400;
}
.catalog__navigation-filters .checkbox input[type="checkbox"] {
  width: 1rem; height: 1rem; border: 0.0625rem solid #bebcba;
  border-radius: 0.25rem; appearance: none; -webkit-appearance: none;
  cursor: pointer; flex-shrink: 0; background: #fff;
}
.catalog__navigation-filters .checkbox input[type="checkbox"]:checked {
  background-color: #40332b; border-color: #40332b;
}
.catalog__navigation-filters .panel-footer { background: none; border: none; padding: 0.75rem 0 0; }
.catalog__navigation-filters #button-filter {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 2.5rem; padding: 0.5rem 0.9375rem;
  border: 0.0625rem solid #40332b; border-radius: 0.5rem;
  background-color: #40332b; color: #fff;
  font-size: 0.875rem; font-weight: 500; cursor: pointer;
  -webkit-appearance: none; appearance: none;
  transition: background-color .3s ease;
}
.catalog__navigation-filters #button-filter:hover { background-color: #594133; }

.catalog__navigation-filters .swiper-viewport.banner__swiper {
  margin: 50px 0 0 0;
}

/* banner0 in sidebar renders via swiper-viewport - do not hide it */

/* 12. Mobile filters popup — style OpenCart column_left inside mob-popup */
.mob-popup__filters-oc .col-sm-3,
.mob-popup__filters-oc aside { float: none !important; width: 100% !important; padding: 0 !important; }
.mob-popup__filters-oc .hidden-xs { display: block !important; }
.mob-popup__filters-oc .panel { border: none; background: none; box-shadow: none; margin-bottom: 0; }
.mob-popup__filters-oc .panel-heading {
  font-weight: 500; font-size: 1rem; color: #251e19;
  padding: 0 0 0.75rem; background: none; border: none;
}
.mob-popup__filters-oc .list-group { border: none; background: none; padding: 0; margin: 0; }
.mob-popup__filters-oc .list-group-item {
  border: none !important; background: none !important;
  padding: 0.5rem 0; font-size: 1rem; color: #514b47; border-radius: 0 !important;
}
.mob-popup__filters-oc a.list-group-item { display: block; }
.mob-popup__filters-oc a.list-group-item.active { color: #251e19; font-weight: 500; }
.mob-popup__filters-oc .panel-footer { padding: 0.75rem 0 0; border: none; background: none; }
.mob-popup__filters-oc #button-filter {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 2.5rem; padding: 0.5rem 0.9375rem;
  border: 0.0625rem solid #40332b; border-radius: 0.5rem;
  background-color: #40332b; color: #fff;
  font-size: 0.875rem; font-weight: 500; cursor: pointer; -webkit-appearance: none; appearance: none;
}
.mob-popup__filters-oc .catalog__navigation-module-list {
  margin-top: 1.25rem;
}
.mob-popup__filters-oc .swiper-viewport,
.mob-popup__filters-oc .swiper-container { display: none !important; }
.mob-popup__filters-oc .checkbox {
  display: flex; align-items: center; padding: 0.3rem 0;
}
.mob-popup__filters-oc .checkbox label {
  display: flex; align-items: center; gap: 0.5rem;
  font-size: 1rem; color: #251e19; cursor: pointer; margin: 0;
}
.mob-popup__filters-oc .checkbox input[type="checkbox"] {
  width: 1rem; height: 1rem; border: 0.0625rem solid #bebcba;
  border-radius: 0.25rem; appearance: none; -webkit-appearance: none;
  cursor: pointer; flex-shrink: 0; background: #fff;
}
.mob-popup__filters-oc .checkbox input[type="checkbox"]:checked {
  background-color: #40332b; border-color: #40332b;
}

/* 13. mob-popup search form */
.mob-popup__form { position: relative; }
.mob-popup__form-submit {
  position: absolute; top: 50%; left: 0.75rem;
  transform: translateY(-50%); width: 1rem; height: 1rem;
  background: var(--icon-search-mob) no-repeat center / contain;
  border: none; background-color: transparent; padding: 0; cursor: pointer;
}
.mob-popup__form-input.input {
  display: block; width: 100%;
  padding: 0.75rem 0.75rem 0.75rem 2.5rem;
  border: 0.0625rem solid #d3d2d1; border-radius: 0.5rem;
  font-size: 1rem; font-family: var(--font-main); color: #251e19;
  background: #fff; outline: none;
}

/* 13b. mob-popup button resets — remove browser border/bg */
.mob-popup__back,
.mob-popup__actions-item,
.mob-popup__actions-item_close,
.mob-popup__button,
.mob-popup__form-submit {
  background-color: transparent;
  border: none !important;
  box-shadow: none !important;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  padding: 0;
  outline: none;
}
/* Restore primary button styling */
.mob-popup__button.btn_primary {
  background-color: #40332b;
  color: #fff;
  border: none !important;
}

/* 14. mob-popup base show/hide */
.mob-popup {
  transform: translateX(100%) !important;
  transition: transform 0.3s ease !important;
  visibility: hidden;
}
.mob-popup._active {
  transform: translateX(0) !important;
  visibility: visible;
}

/* 15. Mobile overrides */
@media (max-width: 63.99875em) {
  .catalog { padding: 0 var(--side-pad);}
  .catalog__sort-bar { display: none; }
}
@media (min-width: 64em) {
  .catalog__filters-search,
  .catalog__filters-button { display: none !important; }
  .catalog__back { display: none !important; }
}

/* mob-popup__filters-oc: отступ между кнопкой Фильтр и списком категорий */
.mob-popup__filters-oc .panel + .panel {
  margin-top: 1.5rem;
}
.mob-popup__filters-oc .panel-footer {
  background: none;
  border: none;
  padding: 0.75rem 0 0;
}

/* mob-popup__actions-item_close — ensure visibility */
.mob-popup__actions-item_close {
  min-width: 2.5rem;
  min-height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* breadcrumbs: hide separator after first item */
.breadcrumbs__item:first-child::after {
  display: none;
}

/* Banner images inside search sub-wrapper */
.sub-wrapper__products-item-img img {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  -o-object-fit: cover;
}

/* Banner images in mob search popup */
.sub-wrapper__products--mob {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.sub-wrapper__products--mob .sub-wrapper__products-item-img {
  display: block;
  position: relative;
  overflow: hidden;
  padding-bottom: 100%;
  border-radius: 0.5rem;
}

/* ── Product card page ── */

/* Price variants */
.product-card-info__prices-item_old {
  font-size: 0.875rem;
  text-decoration: line-through;
  color: #7c7875;
}
.product-card-info__prices-item_new {
  color: #b60017;
}

/* Breadcrumbs: hide desktop on mobile, show mob-breadcrumbs on mobile */
.product-card__breadcrumbs-desktop { display: block; margin-bottom: 1rem; }
.mob-breadcrumbs { display: none; }

@media (max-width: 63.99875em) {
  .product-card__breadcrumbs-desktop { display: none; }
  .mob-breadcrumbs { display: block; padding: 0 0.75rem; margin-bottom: 0.75rem; }
}

/* Attribute rows in description */
.product-card-descr__attr-group { font-weight: 500; margin: 0.5rem 0 0.25rem; }
.product-card-descr__attr-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.25rem 0;
  border-bottom: 1px solid #f3f0ee;
  font-size: 0.9rem;
}
.product-card-descr__attr-name { color: #7c7875; }

/* Related products title */
.products-slider__title {
  font-weight: 500;
  font-size: 1.5rem;
  line-height: 120%;
  color: #251e19;
}

/* Spoller active state */
.product-card-descr__title._active .product-card-descr__title-icon::before {
  transform: rotate(0deg);
}

/* Reset button styles inside product card */
.product-card-info__button.btn-icon {
  border: none;
  background-color: transparent;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
}
.product-card-info__buttons {
  align-items: center;
}

/* ── Product card: button resets ── */
.product-card__img {
  display: block;
  width: 100%;
  border: none !important;
  background: transparent;
  padding: 0;
  -webkit-appearance: none;
  appearance: none;
  cursor: zoom-in;
}

.btn-icon_whishlist,
.btn-icon_secondary.btn-icon_whishlist {
  border: none !important;
  box-shadow: none !important;
  background-color: transparent;
  -webkit-appearance: none;
  appearance: none;
}

/* ── Product card: select / input ── */
.product-card__select {
  display: block;
  width: 100%;
  padding: 0.625rem 0.875rem;
  border: 1px solid #d3d2d1;
  border-radius: 0.5rem;
  font-size: 1rem;
  font-family: var(--font-main);
  color: #251e19;
  background: #fff;
  cursor: pointer;
  outline: none;
  -webkit-appearance: auto;
  appearance: auto;
}

.product-card__input {
  display: block;
  width: 100%;
  padding: 0.625rem 0.875rem;
  border: 1px solid #d3d2d1;
  border-radius: 0.5rem;
  font-size: 1rem;
  font-family: var(--font-main);
  color: #251e19;
  background: #fff;
  outline: none;
}

/* ── Desktop: gallery wrapper is a 2-col grid (CSS from theme.min.css handles this) ── */
/* Ensure gallery fills its grid area properly */
.product-card__gallery {
  min-width: 0;
}

/* ── Mobile breadcrumbs ── */
.mob-breadcrumbs {
  display: none;
}
.product-card__breadcrumbs-desktop {
  display: block;
  margin-bottom: 0.75rem;
}

@media (max-width: 63.99875em) {
  .product-card__breadcrumbs-desktop { display: none; }
  .mob-breadcrumbs { display: block; padding: 0.5rem 0.75rem; }
}

/* ── Global button border/bg reset (browser UA adds border:2px outset by default) ── */
button {
  border: none;
  background-color: transparent;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  padding: 0;
}

/* Restore btn class borders (theme buttons need their borders back) */
.btn {
  border: 0.0625rem solid;
}
.btn_primary { border-color: #40332b; background-color: #40332b; }
.btn_secondary { border-color: #f3f0ee; background-color: #f3f0ee; }
.btn_outline { border-color: #d3d2d1; background-color: #fff; }
.btn-icon_secondary { background-color: #f3f0ee; }
.btn-icon_primary { background-color: #40332b; }

/* product-card-descr__title — no border/bg, full width */
.product-card-descr__title {
  width: 100%;
  background: none;
  border: none !important;
  box-shadow: none !important;
}

/* product-card__select — proper styled select */
.product-card__select {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 0.625rem 2rem 0.625rem 0.875rem;
  border: 0.0625rem solid #d3d2d1 !important;
  border-radius: 0.5rem;
  font-size: 1rem;
  font-family: var(--font-main);
  color: #251e19;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%23251e19' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 0.75rem;
  cursor: pointer;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  box-shadow: none;
}
.product-card__select:focus {
  border-color: #a38775 !important;
}

/* ── Buttons row: pull-left/pull-right always inline ── */
.pull-left { float: left; }
.pull-right { float: right; }
.clearfix::after { content: ''; display: table; clear: both; }

.buttons,
.buttons.clearfix {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.buttons .pull-left,
.buttons .pull-right,
.buttons.clearfix .pull-left,
.buttons.clearfix .pull-right {
  float: none;
}

body:not(.common-home):not(.product-category):not(.product-product) #content {
  margin: 0 auto;
  padding: 0rem;
}

body:not(.common-home):not(.product-category):not(.product-product) #page-wrapper > .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem 2rem;
}

#information-information, #information-sitemap, #information-contact, #account-account, #account-login, #account-return, #account-register, #account-password, #account-download, #account-order, #account-reward, #account-transaction, #account-recurring, #account-newsletter, #error-not-found, #account-address, #account-forgotten, #common-success {
    margin: 0 auto;
    padding: 5rem 2rem 0rem 2rem;
}

.breadcrumb {
    padding: 1.25rem 0;
}

@media (max-width: 767px) {
	.breadcrumb {
		padding: 1.25rem 0 0.75rem;
	}
	body:not(.common-home):not(.product-category):not(.product-product) #content, body:not(.common-home):not(.product-category):not(.product-product) #page-wrapper > .container {
		margin: 0;
    padding: 0rem 2rem;
}
  body:not(.common-home):not(.product-category):not(.product-product) #content{
    padding: 0rem;
  }
  /* col-sm-9 full width on mobile when column_right is hidden */
  .col-sm-9, .col-md-9 {
    width: 100%;
    flex: 0 0 100%;
  }
  /* Buttons row: side by side on mobile */
  .buttons,
  .buttons.clearfix {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
  }
  .buttons .pull-left,
  .buttons .pull-right,
  .buttons.clearfix .pull-left,
  .buttons.clearfix .pull-right {
    float: none;
  }
  .product-card .product-card-info__buttons {
		display: flex;
		align-items: center;
    }
	.product-card-descr__title {
		padding: 1rem 0;
	}
	.col-sm-6 {
		flex: auto;
        width: 100%;
        padding: 0;
    }
	.col-sm-10, .btn {
    margin: 1rem 0;
}
.col-sm-4, .col-md-4 {
    flex: 0 0 100%;
    width: 100%;
}
.col-sm-3, .col-md-3 {
    margin: 0.5rem 0;
    flex: 0 0 100%;
    width: 100%;
    padding: 0;
}
.catalog__container {
	padding: 0rem 0;
}
}

@media (max-width: 767px) {
	#information-information, #information-sitemap, #information-contact, #account-account, #account-login, #account-return, #account-register, #account-password, #account-download, #account-order, #account-reward, #account-transaction, #account-recurring, #account-newsletter, #error-not-found, #account-address, #account-forgotten, #common-success {
		padding: 0;
	}
	.breadcrumb {
		padding: 1.25rem 2rem 0.75rem;
	}
	#information-information #content, #information-sitemap #content, #information-contact #content, #account-account #content, #account-login #content, #account-return #content, #account-register #content, #account-password #content, #account-download #content, #account-order #content, #account-reward #content, #account-transaction #content, #account-recurring #content, #account-newsletter #content, #error-not-found #content, #account-address #content, #account-forgotten #content, #common-success #content {
		margin: 0;
		padding: 2rem;
	}
}

/* ── Account » Order list: card layout on mobile ── */
@media (max-width: 767px) {
  #account-order .order-list-table.table-bordered {
    border: none;
  }
  #account-order .table-responsive {
    overflow: visible;
    border: none;
    margin: 0 0 1.5rem;
  }
  #account-order .order-list-table {
    margin: 0 auto;
  }
  #account-order .order-list-table thead {
    display: none;
  }
  #account-order .order-list-table tbody {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }
  #account-order .order-list-table tbody tr {
    display: block;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 0.75rem;
    padding: 0.25rem 1rem;
  }
  #account-order .order-list-table tbody tr td {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    text-align: right;
    border: none;
    border-bottom: 1px solid var(--color-bg-soft);
    padding: 0.625rem 0;
  }
  #account-order .order-list-table tbody tr td::before {
    content: attr(data-label);
    font-weight: 500;
    color: var(--color-text-mid);
    text-align: left;
    white-space: nowrap;
  }
  #account-order .order-list-table tbody tr td.order-list-table__action {
    border-bottom: none;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }
  #account-order .order-list-table tbody tr td.order-list-table__action::before {
    content: none;
  }
  #account-order .order-list-table tbody tr td.order-list-table__action a.btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.625rem 1rem;
    border-radius: 0.5rem;
  }
  #account-order .order-status-badge {
    display: inline-block;
    background: var(--color-bg-soft);
    color: var(--color-accent);
    font-size: 0.8125rem;
    font-weight: 500;
    padding: 0.25rem 0.625rem;
    border-radius: 999px;
  }
}

/* Show button label only on mobile (desktop keeps the compact icon-only button) */
.order-list-table__action-text {
  display: none;
}
@media (max-width: 767px) {
  .order-list-table__action-text {
    display: inline;
  }
}

/* ── Update cart counter via OC common.js response ── */
#cart-total { }

/* ── Swiper arrows: suppress swiper-bundle default pseudo-elements ── */
.swiper-button-prev::before,
.swiper-button-prev::after,
.swiper-button-next::before,
.swiper-button-next::after {
  content: none !important;
  display: none !important;
}
.swiper-button-disabled { opacity: 0.3; pointer-events: none; }

/* ── Header icon counter - proper positioning ── */
.header__icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.header__icon .icon-counter {
  position: absolute;
  top: -0.5rem;
  right: -0.75rem;
  left: auto;
  min-width: 1.25rem;
  border-radius: 0.5rem;
  padding: 0.0625rem 0.4rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: #fff;
  background-color: #975730;
  pointer-events: none;
}

/* ── products-item wishlist button active state ── */
.products-item__action-whishlist._active::before,
.products-item__action-whishlist.favorites-added::before {
  opacity: 0;
}
.products-item__action-whishlist._active::after,
.products-item__action-whishlist.favorites-added::after {
  opacity: 1;
}

/* ── basket-item__actions-wishlist uses icons.css background ── */
.basket-item__actions-wishlist::before {
  width: 1rem;
  height: 1rem;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* ── quantity buttons ── */
.quantity__button_minus::before { transform: translate(-50%, -50%); }
.quantity__button_plus::after { transform: translate(-50%, -50%); }

/* ── Checkout pages: hide header__actions, show header__socials right ── */
body.checkout-checkout .header__actions,
body.checkout-cart .header__actions {
  display: none !important;
}
body.checkout-checkout .header__socials,
body.checkout-cart .header__socials {
  margin-left: auto;
  display: flex;
}

/* ── Swiper navigation buttons: full height, no pseudo-element squares ── */
.swiper-button-prev,
.swiper-button-next {
  position: absolute;
  top: 0;
  bottom: 0;
  height: 100%;
  width: 5rem;
  z-index: 10;
  cursor: pointer;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 1.25rem 1.25rem;
  background-image: var(--icon-chevron-right);
  background-color: transparent;
  transition: background-color 0.25s ease;
}
.swiper-button-prev {
  left: 0;
  transform: rotate(180deg);
}
.swiper-button-next {
  right: 0;
}
.swiper-button-prev:hover,
.swiper-button-next:hover {
  background-color: rgba(255,255,255,0.12);
}
.swiper-button-prev::before,
.swiper-button-prev::after,
.swiper-button-next::before,
.swiper-button-next::after {
  content: none !important;
  display: none !important;
}
.swiper-button-disabled {
  opacity: 0.35;
  pointer-events: none;
}

/* ── header__socials: hidden by default, shown on checkout ── */
.header__socials {
  display: none;
}
body.checkout-checkout .header__socials,
body.checkout-cart .header__socials {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
}
body.checkout-checkout .header__actions,
body.checkout-cart .header__actions {
  display: none !important;
}

/* ── #cart button styles (OC needs <div id="cart"><button>) ── */
#cart > button.header__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 1.25rem;
  height: 1.25rem;
  color: #251e19;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
#cart-total.icon-counter { }

/* ── tap-bar counters ── */
.tap-bar__counter {
  position: absolute;
  top: 0.25rem;
  right: 0.5rem;
}
.tap-bar__actions-item {
  position: relative;
}

/* ── product-card__img-zoom cursor ── */
.product-card__img-zoom {
  display: block;
  cursor: zoom-in;
}

/* ── Bootstrap hidden-xs polyfill + column_right mobile hide ── */
@media (max-width: 767px) {
  .hidden-xs { display: none !important; }
}

/* ── Sitemap: col-sm-6 full width on mobile ── */
@media (max-width: 767px) {
  #information-sitemap .col-sm-6 {
    width: 66.666%;
  }
}

/* ── Remove fieldset borders globally ── */
fieldset {
  border: none;
  padding: 0;
  margin: 0;
}

/* ── Submenu sitemap column: two-col layout ── */
/* ── mob-slidenav: slide-in nested catalog navigation ── */
.mob-popup--slidenav .mob-popup__row {
  overflow: hidden;
  position: relative;
}
.mob-slidenav {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.mob-slidenav__panel {
  display: none;
  width: 100%;
}
.mob-slidenav__panel[data-active] {
  display: block;
  animation: slideInFromRight 0.25s ease forwards;
}
.mob-slidenav__panel[data-back][data-active] {
  animation: slideInFromLeft 0.25s ease forwards;
}
.mob-slidenav__panel[data-prev] {
  display: block;
  animation: slideOutToLeft 0.25s ease forwards;
  pointer-events: none;
  position: absolute;
  top: 0; left: 0; width: 100%;
}
.mob-slidenav__panel[data-prev-right] {
  display: block;
  animation: slideOutToRight 0.25s ease forwards;
  pointer-events: none;
  position: absolute;
  top: 0; left: 0; width: 100%;
}
@keyframes slideInFromRight {
  from { transform: translateX(100%); }
  to   { transform: translateX(0); }
}
@keyframes slideInFromLeft {
  from { transform: translateX(-100%); }
  to   { transform: translateX(0); }
}
@keyframes slideOutToLeft {
  from { transform: translateX(0); }
  to   { transform: translateX(-100%); }
}
@keyframes slideOutToRight {
  from { transform: translateX(0); }
  to   { transform: translateX(100%); }
}
/* Back button shown/hidden via JS resetToRoot */
/* fix: products height in auto-height sitemap mode */
.sub-wrapper__body--sitemap .sub-wrapper__products-item { height: 12rem; }

/* ── Notice info popup (#popup-info) ───────────────────────────── */
.popup {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(20, 16, 13, 0.45);
}
.popup.popup_show { display: flex; }
.popup__wrapper {
  width: 100%;
  max-width: 30rem;
  max-height: 90vh;
  overflow-y: auto;
}
.popup__content {
  position: relative;
  background: #fff;
  border-radius: 0.25rem;
  padding: 2.5rem 2rem 2rem;
  animation: popupIn 0.25s ease;
}
@keyframes popupIn {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
.popup__close {
  position: absolute;
  top: 1rem; right: 1rem;
  width: 1.5rem; height: 1.5rem;
  border: none;
  background: transparent;
  cursor: pointer;
  opacity: 0.6;
  transition: opacity 0.2s ease;
}
.popup__close:hover { opacity: 1; }
.popup__close::before,
.popup__close::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 100%; height: 2px;
  background: currentColor;
  transform-origin: center;
}
.popup__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.popup__close::after  { transform: translate(-50%, -50%) rotate(-45deg); }
.popup__title-wrapper { text-align: center; }
.popup__title {
  font-family: var(--font-heading);
  font-size: clamp(1.1rem, 2.5vw, 1.4rem);
  line-height: 1.35;
  margin-bottom: 1rem;
}
.popup__title p { margin: 0; }
.popup__subtitle {
  font-size: 0.95rem;
  line-height: 1.5;
  color: #4a4038;
  margin-bottom: 1rem;
}
.popup__subtitle p { margin: 0; }
.popup__desc-mini {
  font-size: 0.78rem;
  line-height: 1.45;
  color: #8a8076;
}
.popup__desc-mini p { margin: 0; }

/* ── Search page (/product/search) — минимальная стилизация под тему ── */
#product-search {
  padding: 2rem var(--side-pad) 4rem;
  max-width: 75rem;
  margin: 0 auto;
}
#product-search h1 {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  margin: 1rem 0 1.5rem;
}
#product-search .control-label {
  display: block;
  font-size: 0.85rem;
  color: var(--color-text-light);
  margin-bottom: 0.5rem;
}
#product-search .form-control {
  width: 100%;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--color-border, #e0d9cf);
  border-radius: 0.25rem;
  font-size: 0.95rem;
  background: #fff;
}
#product-search .checkbox-inline {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.9rem;
  margin-right: 1.5rem;
}
#product-search #button-search {
  margin-top: 1rem;
  padding: 0.7rem 1.8rem;
  background: var(--color-text);
  color: #fff;
  border: none;
  border-radius: 0.25rem;
  cursor: pointer;
  font-size: 0.9rem;
  letter-spacing: 0.03em;
}
#product-search #button-search:hover { background: var(--color-accent, #af6537); }
#product-search h2 {
  font-family: var(--font-heading);
  font-size: 1.3rem;
  margin: 2.5rem 0 1rem;
}

/* ── Fix: .catalog__title h1 clipped on top due to line-height: 100% + overflow: hidden ── */
.catalog__title {
  line-height: 1.25 !important;
  padding-top: 0.15em;
}
.catalog__title > h1 {
  overflow: visible !important;
  line-height: inherit !important;
}

/* ── Spacing between stacked modules inside catalog sidebar (column_left) ── */
.catalog__navigation-filters > * + * {
  margin-top: 1.5rem;
}

/* ── Account pages (address, returns, orders, etc.) — минимальная стилизация под тему ── */

#account-address h2,
#account-return h2,
.account-page h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  margin: 1rem 0 1.5rem;
}
#account-address label,
#account-return label,
.account-page label,
.control-label {
  display: block;
  font-size: 0.85rem;
  color: var(--color-text-light);
  margin-bottom: 0.4rem;
  font-weight: 500;
}
#account-address .form-control,
#account-return .form-control,
.account-page .form-control {
  width: 100%;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--color-border, #e0d9cf);
  border-radius: 0.25rem;
  font-size: 0.95rem;
  background: #fff;
  margin-bottom: 1rem;
}
#account-address textarea.form-control,
#account-return textarea.form-control,
.account-page textarea.form-control {
  min-height: 5rem;
  resize: vertical;
}
#account-address .form-group,
#account-return .form-group,
.account-page .form-group {
  margin-bottom: 0.5rem;
}
#account-address .btn,
#account-return .btn,
.account-page .btn {
  display: inline-block;
  padding: 0.65rem 1.5rem;
  border: 1px solid transparent;
  border-radius: 0.25rem;
  font-size: 0.9rem;
  letter-spacing: 0.02em;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}
#account-address .btn-primary,
#account-return .btn-primary,
.account-page .btn-primary {
  background: var(--color-text);
  color: #fff;
}
#account-address .btn-primary:hover,
#account-return .btn-primary:hover,
.account-page .btn-primary:hover { background: var(--color-accent, #af6537); color: #fff; }
#account-address .btn-default,
#account-return .btn-default,
.account-page .btn-default {
  background: #fff;
  border-color: var(--color-border, #e0d9cf);
  color: var(--color-text);
}
#account-address .btn-default:hover,
#account-return .btn-default:hover,
.account-page .btn-default:hover { background: var(--color-bg-soft, #f5f1ea); }
#account-address .btn-info,
.account-page .btn-info {
  background: #fff;
  border-color: var(--color-border, #e0d9cf);
  color: var(--color-text);
  padding: 0.4rem 1rem;
  font-size: 0.85rem;
}
#account-address .btn-info:hover,
.account-page .btn-info:hover { background: var(--color-bg-soft, #f5f1ea); }
#account-address .btn-danger,
.account-page .btn-danger {
  background: #fff;
  border-color: #d9534f;
  color: #d9534f;
  padding: 0.4rem 1rem;
  font-size: 0.85rem;
}
#account-address .btn-danger:hover,
.account-page .btn-danger:hover { background: #d9534f; color: #fff; }

/* Address list cards */
.account-address-list { margin-bottom: 1.5rem; }
.account-address-list__item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border: 1px solid var(--color-border, #e0d9cf);
  border-radius: 0.25rem;
  margin-bottom: 0.75rem;
}
.account-address-list__text { font-size: 0.92rem; line-height: 1.5; }
.account-address-list__actions { display: flex; gap: 0.5rem; flex-shrink: 0; }

/* Radio/checkbox inline lists (return form reasons) */
.account-page .radio,
.account-page .checkbox,
#account-return .radio,
#account-return .checkbox {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9rem;
  margin: 0.4rem 0;
}
.account-page .radio label,
.account-page .checkbox label,
#account-return .radio label,
#account-return .checkbox label {
  display: inline;
  margin: 0;
  font-weight: 400;
  color: var(--color-text);
}
.account-page .radio input,
.account-page .checkbox input,
#account-return .radio input,
#account-return .checkbox input {
  margin: 0;
  width: auto;
}

/* Required field asterisk */
.account-page .required label::before,
#account-return .required label::before,
#account-address .required label::before {
  content: "* ";
  color: #d9534f;
}

/* Buttons row spacing */
/* Section legends inside account forms */
.account-page legend,
#account-return legend,
#account-address legend {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--color-text);
  margin: 1.5rem 0 1rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid var(--color-border, #e0d9cf);
  width: 100%;
}
.account-page fieldset:first-of-type legend,
#account-return fieldset:first-of-type legend {
  margin-top: 0;
}

.account-page .buttons,
#account-address .buttons {
  margin-top: 1.5rem;
}


/* ── Fix: "Оформить заказ" button was hidden on mobile/tablet by theme.min.css
   (.basket__button-wrapper{display:none} inside @media max-width:63.99875em),
   making checkout impossible from the cart page on phones. Restoring visibility. ── */
@media (max-width: 63.99875em) {
  .basket__button-wrapper {
    display: block !important;
    margin-top: 1rem;
  }
  .basket__button-wrapper .basket__button {
    width: 100%;
  }
}

/* ── Checkout step 6: order confirmation summary (replaces raw Bootstrap table) ── */
.confirm-summary { margin-bottom: 1.25rem; }
.confirm-summary__list {
  border-top: 0.0625rem solid #d3d2d1;
}
.confirm-summary__item {
  padding: 0.875rem 0;
  border-bottom: 0.0625rem solid #d3d2d1;
}
.confirm-summary__item-name {
  display: block;
  font-size: 1rem;
  font-weight: 500;
  line-height: 130%;
  color: #251e19;
}
.confirm-summary__item-name:not(:last-child) {
  margin-bottom: 0.25rem;
}
.confirm-summary__item-meta {
  font-size: 0.875rem;
  line-height: 130%;
  color: #7c7875;
}
.confirm-summary__item-meta:not(:last-child) {
  margin-bottom: 0.125rem;
}
.confirm-summary__item-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.5rem;
  font-size: 0.9375rem;
}
.confirm-summary__item-qty {
  color: #514b47;
}
.confirm-summary__item-total {
  font-weight: 500;
  color: #251e19;
  white-space: nowrap;
}
.confirm-summary__totals {
  margin-top: 1rem;
}

/* ── Checkout: sidebar removed (duplicate confirm button), body now spans full width ── */
#checkout-checkout.order__form {
  grid-template-columns: 1fr;
  grid-template-areas: "order__head" "order__body";
}
#checkout-checkout .order__body {
  max-width: 38.75rem;
}

/* ── Make the real "Подтвердить заказ" button (rendered by the selected
   payment method's own template inside #confirm) full-width on mobile,
   matching the basket checkout button style ── */
@media (max-width: 63.99875em) {
  #confirm .buttons {
    width: 100% !important;
  }
  #confirm .buttons .pull-right {
    width: 100% !important;
    flex: 1 1 100% !important;
    max-width: 100% !important;
  }
  #confirm #button-confirm,
  #confirm input#button-confirm,
  #confirm #button-confirm.btn-primary {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}
