/* ============================================================
   Сфера ОПТ - редизайн 2 (osf2). Подключается последним в <head>
   только при оформлении '2' (header.php), body имеет класс osf2.
   Размеры в rem: на широких экранах растет базовый кегль html,
   и вместе с ним шапка, карточки и отступы.
   ============================================================ */

/* ---------- 0. Масштаб и переменные ---------- */
/* Базовый кегль задаем явно: на странице корзины /bitrix/css/main/bootstrap.css (Bootstrap 3)
   ставит html { font-size: 10px }, и все размеры в rem уменьшались в 1.6 раза. */
html { font-size: 16px; }
@media (min-width: 1900px) { html { font-size: 17px; } }
@media (min-width: 2300px) { html { font-size: 19px; } }

.osf2 {
  --osf-blue: #0b77cf;
  --osf-blue-d: #0963ae;
  --osf-blue-l: #eaf3fc;
  --osf-ink: #1b2430;
  --osf-muted: #5b6472;
  --osf-line: #e3e7ee;
  --osf-bg: #f4f6fa;
  --osf-green: #17a44d;
  --osf-r: .75rem;
  --osf-r-lg: 1rem;
  --osf-shadow: 0 .625rem 1.875rem rgba(16, 42, 80, .12);
  --osf-font: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", Arial, sans-serif;
  background: var(--osf-bg) !important;
  color: var(--osf-ink);
  font-family: var(--osf-font);
  font-size: .9375rem;
  line-height: 1.5;
}

/* Шаблон задает "Noto Sans" (файл NotoSansJP, только обычное начертание) и Arimo:
   полужирный получается синтетическим. Весь текст переводим на системный шрифт. */
.osf2 h1, .osf2 h2, .osf2 h3, .osf2 h4, .osf2 h5, .osf2 h6,
.osf2 p, .osf2 a, .osf2 li, .osf2 td, .osf2 th, .osf2 label, .osf2 b, .osf2 strong,
.osf2 input, .osf2 button, .osf2 select, .osf2 textarea,
.osf2 div:not(.fa):not(.fas):not(.far):not(.fab),
.osf2 span:not(.fa):not(.fas):not(.far):not(.fab):not(.glyphicon):not([class^="icon-"]):not([class*=" icon-"]) {
  font-family: var(--osf-font) !important;
}

.osf2 a { color: var(--osf-blue); }
.osf2 a:hover { color: var(--osf-blue-d); }

/* Контейнер: до 1200px во всю ширину с полями, дальше ступенями. */
.osf2 .container { width: 100%; max-width: 100%; padding-left: 1rem; padding-right: 1rem; }
@media (min-width: 1200px) { .osf2 .container { max-width: 1180px; } }
@media (min-width: 1320px) { .osf2 .container { max-width: 1280px; } }
@media (min-width: 1400px) { .osf2 .container { max-width: 1340px; } }
@media (min-width: 1600px) { .osf2 .container { max-width: 1500px; } }
@media (min-width: 1900px) { .osf2 .container { max-width: 1700px; } }
@media (min-width: 2300px) { .osf2 .container { max-width: 2060px; } }
/* Вложенные .container внутри страницы не сужают содержимое повторно. На странице контактов
   #pageBody без класса container (карта во всю ширину) - там внутренний контейнер остается обычным. */
.osf2 #pageBody.container .container { max-width: none; padding-left: 0; padding-right: 0; }
.osf2 #pageBody:not(.container) { overflow-x: hidden; }
/* Подвал прижат к низу окна на коротких страницах (корзина, вход). */
body.osf2 { display: flex; flex-direction: column; min-height: 100vh; }
.osf2 #pageBody { flex: 1 0 auto; padding-bottom: 2.5rem; }
.osf2 > footer, .osf2 > .osf-topbar, .osf2 > .osf-header { flex: 0 0 auto; }

/* На странице корзины подключается Bootstrap 3: его .container::before/::after (clearfix)
   становятся лишними элементами flex и grid в шапке и добавляют пустые отступы и строку. */
.osf2 .osf-topbar-in::before, .osf2 .osf-topbar-in::after,
.osf2 .osf-header-in::before, .osf2 .osf-header-in::after { display: none !important; content: none !important; }

/* ---------- 1. Служебная полоса ---------- */
/* Слои: шапка ниже всплывающих окон Битрикса (popup-window, z-index 1000) и модальных окон,
   служебная полоса выше шапки (ее выпадающие списки раскрываются поверх основной строки). */
.osf2 .osf-topbar { position: relative; z-index: 995; background: #fff; border-bottom: 1px solid var(--osf-line);
  font-size: .8125rem; color: var(--osf-muted); }
.osf2 .osf-topbar-in { display: flex; align-items: center; gap: 1.375rem; height: 2.5rem; }
.osf2 .osf-topbar a { color: inherit; text-decoration: none; white-space: nowrap; }
.osf2 .osf-topbar a:hover { color: var(--osf-blue); }
.osf2 .osf-topbar-sep { flex: 1 1 auto; }
.osf2 .osf-city { flex: 0 0 auto; }
.osf2 .osf-city-btn { display: inline-flex; align-items: center; gap: .3rem; background: none; border: 0; padding: 0;
  font-size: inherit; font-weight: 600; color: var(--osf-ink); cursor: pointer; white-space: nowrap; }
.osf2 .osf-city-btn svg { color: var(--osf-blue); }
.osf2 .osf-city-btn:focus { outline: 0; }
.osf2 .osf-city-addr { padding: .35rem 1rem .6rem; font-size: .8125rem; color: var(--osf-muted);
  border-bottom: 1px solid var(--osf-line); margin-bottom: .35rem; white-space: nowrap; }
.osf2 .osf-topbar .dropdown-menu { border: 1px solid var(--osf-line); border-radius: var(--osf-r);
  box-shadow: var(--osf-shadow); font-size: .875rem; padding: .5rem 0; margin-top: .5rem; }
.osf2 .osf-topbar .dropdown-item { color: var(--osf-ink); padding: .4rem 1rem; }
.osf2 .osf-topbar .dropdown-item:hover { background: var(--osf-blue-l); color: var(--osf-blue); }
.osf2 .osf-topnav { flex: 0 1 auto; min-width: 0; overflow: hidden; }
.osf2 .osf-topnav ul { display: flex; align-items: center; gap: 1.375rem; list-style: none; margin: 0; padding: 0; }
.osf2 .osf-topnav li { float: none; width: auto; margin: 0; padding: 0; }
.osf2 .osf-topnav .clearfix { display: none; }
.osf2 .osf-topnav a { display: inline-block; text-transform: lowercase; }
.osf2 .osf-topnav a::first-letter { text-transform: uppercase; }
.osf2 .osf-topnav a.active { color: var(--osf-blue); font-weight: 600; }
.osf2 .osf-worktime { white-space: nowrap; }
.osf2 .osf-phone { display: inline-flex; align-items: center; flex: 0 0 auto; }
.osf2 .osf-phone-main { display: inline-flex; align-items: center; gap: .35rem; color: var(--osf-blue) !important;
  font-weight: 700; font-size: .875rem; }
.osf2 .osf-phone-more { background: none; border: 0; padding: 0 0 0 .3rem; color: var(--osf-muted); cursor: pointer; }
.osf2 .osf-phone-more:focus { outline: 0; }
.osf2 .osf-callback { text-decoration: underline !important; text-decoration-style: dashed !important;
  text-underline-offset: .2em; }

/* ---------- 2. Основная строка шапки ---------- */
.osf2 .osf-header { position: -webkit-sticky; position: sticky; top: 0; z-index: 990; background: #fff;
  border-bottom: 1px solid var(--osf-line); transition: box-shadow .2s; }
.osf2 .osf-header.osf-stuck { box-shadow: 0 .375rem 1.25rem rgba(16, 42, 80, .10); }
.osf2 .osf-header-in { position: relative; display: flex; align-items: center; gap: 1.375rem; height: 5.25rem; }
.osf2 .osf-logo { display: flex; align-items: center; gap: .5625rem; flex: 0 0 auto; text-decoration: none; }
.osf2 .osf-logo img { display: block; height: 2.875rem; width: auto; max-width: none; }
.osf2 .osf-opt { display: inline-block; background: var(--osf-blue); color: #fff; font-size: .75rem; font-weight: 800;
  letter-spacing: .09em; line-height: 1; padding: .28rem .55rem; border-radius: .45rem; }

.osf2 .osf-mega { flex: 0 0 auto; position: static; }
.osf2 .osf-catbtn { display: inline-flex; align-items: center; gap: .625rem; height: 3.125rem; padding: 0 1.25rem;
  background: var(--osf-blue); color: #fff !important; border-radius: var(--osf-r); font-size: .9375rem;
  font-weight: 700; white-space: nowrap; text-decoration: none !important; cursor: pointer; transition: background .15s; }
.osf2 .osf-catbtn:hover, .osf2 .osf-mega.osf-open .osf-catbtn { background: var(--osf-blue-d); }
.osf2 .osf-bars { display: inline-flex; flex-direction: column; gap: 3px; }
.osf2 .osf-bars i { display: block; width: 18px; height: 2px; background: #fff; border-radius: 2px; }

.osf2 .osf-search-wrap { flex: 1 1 auto; min-width: 0; }
.osf2 .osf-search form { display: flex; height: 3.125rem; margin: 0; border: 2px solid var(--osf-blue);
  border-radius: var(--osf-r); overflow: hidden; background: #fff; }
.osf2 .osf-search input { flex: 1 1 auto; min-width: 0; width: auto; height: auto; margin: 0; border: 0; outline: 0;
  box-shadow: none; padding: 0 1rem; font-size: .9375rem; color: var(--osf-ink); background: transparent; border-radius: 0; }
.osf2 .osf-search input::placeholder { color: #8a93a0; opacity: 1; }
.osf2 .osf-search button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; flex: 0 0 auto;
  border: 0; border-radius: 0; margin: 0; padding: 0 1.375rem; background: var(--osf-blue); color: #fff;
  font-size: .9375rem; font-weight: 700; cursor: pointer; transition: background .15s; }
.osf2 .osf-search button:hover { background: var(--osf-blue-d); }
.osf2 .osf-search button svg { display: none; }

.osf2 .osf-actions { display: flex; align-items: center; gap: 1.25rem; flex: 0 0 auto; }
.osf2 .osf-user { position: relative; }
.osf2 .osf-cart { display: block; }
.osf2 .osf-act { position: relative; display: flex; flex-direction: column; align-items: center; gap: .2rem;
  min-width: 3.25rem; background: none; border: 0; padding: 0; font-size: .6875rem; line-height: 1.2;
  color: var(--osf-muted); text-decoration: none !important; cursor: pointer; }
.osf2 .osf-act:focus { outline: 0; }
.osf2 .osf-act:hover, .osf2 .osf-act:hover .osf-ico { color: var(--osf-blue); }
.osf2 .osf-ico { position: relative; display: block; line-height: 0; color: var(--osf-ink); transition: color .15s; }
.osf2 .osf-ico svg { display: block; width: 1.625rem; height: 1.625rem; }
.osf2 .osf-act-label { display: block; max-width: 5.5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.osf2 .osf-badge { position: absolute; top: -.35rem; right: -.5rem; display: flex; align-items: center;
  justify-content: center; min-width: 1.05rem; height: 1.05rem; padding: 0 .25rem; border-radius: 1rem;
  background: var(--osf-green); color: #fff; font-size: .625rem; font-weight: 700; line-height: 1; }

/* ---------- 3. Мегаменю (десктоп) ---------- */
.osf2 .osf-megapanel { display: none; position: absolute; top: calc(100% - .5rem); left: 1rem; z-index: 5;
  width: 60rem; max-width: calc(100% - 2rem); background: #fff; border: 1px solid var(--osf-line);
  border-radius: .875rem; box-shadow: var(--osf-shadow); overflow: hidden; }
.osf2 .osf-mega.osf-open .osf-megapanel { display: block; }
.osf2 .osf-drawer-head, .osf2 .osf-drawer-extra { display: none; }
.osf2 .osf-megalist { position: static; list-style: none; margin: 0; padding: .5rem; width: 18.5rem;
  min-height: 27.5rem; background: #fafbfd; border-right: 1px solid var(--osf-line); }
.osf2 .osf-megaitem { position: static; margin: 0; padding: 0; }
.osf2 .osf-megacat { display: flex; align-items: center; gap: .625rem; padding: .6rem .75rem; border-radius: .5625rem;
  font-size: .9rem; font-weight: 600; line-height: 1.3; color: var(--osf-ink) !important; text-decoration: none !important; }
.osf2 .osf-megacat .osf-mi { flex: 0 0 auto; width: 1.375rem; height: 1.375rem; color: var(--osf-blue); }
.osf2 .osf-megacat .osf-chev { flex: 0 0 auto; margin-left: auto; width: 1rem; height: 1rem; color: #a3acb9; }
.osf2 .osf-megasub { display: none; position: absolute; top: 0; left: 18.5rem; right: 0; bottom: 4.6rem;
  padding: 1.25rem 1.5rem .5rem; overflow-y: auto; }
.osf2 .osf-megasub-main { flex: 1 1 auto; min-width: 0; }
.osf2 .osf-megasub-pic { display: block; flex: 0 0 12.5rem; align-self: center; }
.osf2 .osf-megasub-pic img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; border-radius: var(--osf-r); }
.osf2 .osf-megasub-title { margin: 0 0 .6rem; font-size: .8125rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; color: var(--osf-muted); }
.osf2 .osf-megasub-cols { column-count: 2; column-gap: 1.75rem; }
.osf2 .osf-megasub-cols a { display: block; padding: .4rem 0; font-size: .9rem; line-height: 1.3;
  color: var(--osf-ink); text-decoration: none; -webkit-column-break-inside: avoid; break-inside: avoid; }
.osf2 .osf-megasub-cols a:hover { color: var(--osf-blue); }
.osf2 .osf-megasub-all { display: inline-flex; align-items: center; gap: .4rem; margin-top: .9rem; font-size: .875rem;
  font-weight: 700; color: var(--osf-blue); text-decoration: none; }
.osf2 .osf-megapromo { position: absolute; left: 20rem; right: 1.5rem; bottom: 1.1rem; display: flex; align-items: center;
  justify-content: space-between; gap: .75rem; padding: .7rem 1rem; background: var(--osf-blue-l);
  border-radius: var(--osf-r); font-size: .8125rem; line-height: 1.35; color: var(--osf-ink); }
.osf2 .osf-megapromo a { flex: 0 0 auto; font-weight: 700; color: var(--osf-blue); white-space: nowrap; }
.osf2 .osf-backdrop { display: none; }

@media (min-width: 992px) {
  .osf2 .osf-megaitem.osf-on > .osf-megacat { background: var(--osf-blue); color: #fff !important; }
  .osf2 .osf-megaitem.osf-on > .osf-megacat .osf-mi,
  .osf2 .osf-megaitem.osf-on > .osf-megacat .osf-chev { color: #fff; }
  .osf2 .osf-megaitem.osf-on > .osf-megasub { display: flex; align-items: flex-start; gap: 1.5rem; }
}

/* ---------- 4. Подсказки поиска (блок рисует JCTitleSearch в конце body) ---------- */
.osf2 div.title-search-result { display: none; z-index: 996; margin-top: .375rem; overflow: hidden; background: #fff;
  border: 1px solid var(--osf-line); border-radius: var(--osf-r); box-shadow: var(--osf-shadow); }
.osf2 table.title-search-result { width: 100%; border-collapse: collapse; border: 0; background: #fff; }
.osf2 table.title-search-result td { padding: 0; background: #fff; white-space: normal; text-align: left; }
.osf2 table.title-search-result td.title-search-separator { height: .375rem; font-size: 0; line-height: 0; }
.osf2 table.title-search-result td.title-search-item a { display: flex; align-items: center; gap: .75rem;
  padding: .45rem .9rem; font-size: .9rem; line-height: 1.3; color: var(--osf-ink); text-decoration: none; }
.osf2 table.title-search-result td.title-search-item img { flex: 0 0 auto; width: 2.5rem; height: 2.5rem;
  object-fit: contain; border: 1px solid var(--osf-line); border-radius: .5rem; background: #fff; }
.osf2 table.title-search-result td.title-search-item .osf-suggest-name { flex: 1 1 auto; min-width: 0; }
.osf2 table.title-search-result td.title-search-item b { color: var(--osf-blue); font-weight: 700; }
.osf2 table.title-search-result tr:hover td, .osf2 table.title-search-result tr:hover a,
.osf2 table.title-search-result tr.title-search-selected td,
.osf2 table.title-search-result tr.title-search-selected a { background: var(--osf-blue-l); }
.osf2 table.title-search-result td.title-search-all a { display: block; padding: .6rem .9rem; font-size: .875rem;
  font-weight: 700; color: var(--osf-blue); text-decoration: none; }
.osf2 div.title-search-fader { display: none !important; }

/* ---------- 5. Вход / кабинет ---------- */
.osf2 .osf-auth-menu { width: 19rem; max-width: calc(100vw - 2rem); margin-top: .75rem; padding: 1rem 1.1rem 1.1rem;
  border: 1px solid var(--osf-line); border-radius: .875rem; box-shadow: var(--osf-shadow); font-size: .9rem; }
.osf2 .osf-auth-title { margin: 0 0 .6rem; font-size: 1rem; font-weight: 800; color: var(--osf-ink); }
.osf2 .osf-auth-menu form { margin: 0; }
.osf2 .osf-auth-menu label { display: block; margin: .55rem 0 .25rem; font-size: .8125rem; font-weight: 600;
  color: var(--osf-muted); }
.osf2 .osf-auth-menu input[type="text"], .osf2 .osf-auth-menu input[type="password"] { display: block; width: 100%;
  height: 2.625rem; margin: 0; padding: 0 .8rem; border: 1px solid var(--osf-line); border-radius: .625rem;
  background: #fff; font-size: .9375rem; color: var(--osf-ink); box-shadow: none; }
.osf2 .osf-auth-menu input[type="text"]:focus, .osf2 .osf-auth-menu input[type="password"]:focus {
  outline: 0; border-color: var(--osf-blue); box-shadow: 0 0 0 3px rgba(11, 119, 207, .12); }
.osf2 .osf-auth-remember { display: flex; align-items: center; gap: .45rem; margin-top: .7rem; }
.osf2 .osf-auth-remember input { width: auto; height: auto; margin: 0; }
.osf2 .osf-auth-remember label { margin: 0; font-weight: 400; }
.osf2 .osf-auth-menu input[type="submit"] { display: block; width: 100%; height: 2.75rem; margin: .9rem 0 0; padding: 0;
  border: 0; border-radius: .625rem !important; background: var(--osf-blue); color: #fff; font-size: .9375rem;
  font-weight: 700; cursor: pointer; }
.osf2 .osf-auth-menu input[type="submit"]:hover { background: var(--osf-blue-d); }
.osf2 .osf-auth-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem .75rem;
  margin-top: .8rem; font-size: .8125rem; }
.osf2 .osf-auth-captcha { display: block; margin: .25rem 0 .5rem; border-radius: .5rem; }
.osf2 .osf-auth-menu .alert { margin: .75rem 0 0; padding: .5rem .75rem; font-size: .8125rem; }
.osf2 .osf-auth-menu-links { padding-left: 0; padding-right: 0; }
.osf2 .osf-auth-menu-links .osf-auth-title { padding: 0 1.1rem; }
.osf2 .osf-auth-menu-links .dropdown-item { padding: .45rem 1.1rem; color: var(--osf-ink); }
.osf2 .osf-auth-menu-links .dropdown-item:hover { background: var(--osf-blue-l); color: var(--osf-blue); }
.osf2 .osf-auth-logout { color: var(--osf-muted) !important; }

/* ---------- 6. Кнопки и заголовки ---------- */
.osf2 .osf-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; height: 3rem;
  padding: 0 1.4rem; border: 2px solid transparent; border-radius: .6875rem; font-size: .9375rem; font-weight: 700;
  line-height: 1; white-space: nowrap; text-decoration: none !important; cursor: pointer; transition: background .15s, color .15s; }
.osf2 .osf-btn-primary { background: var(--osf-blue); color: #fff !important; }
.osf2 .osf-btn-primary:hover { background: var(--osf-blue-d); }
.osf2 .osf-btn-ghost { background: #fff; border-color: var(--osf-blue); color: var(--osf-blue) !important; }
.osf2 .osf-btn-ghost:hover { background: var(--osf-blue-l); }

.osf2 .btn { border-radius: .625rem; }
.osf2 .btn-primary, .osf2 .btn-success, .osf2 .btn-info { background: var(--osf-blue) !important;
  border-color: var(--osf-blue) !important; color: #fff !important; }
.osf2 .btn-primary:hover, .osf2 .btn-success:hover, .osf2 .btn-info:hover { background: var(--osf-blue-d) !important;
  border-color: var(--osf-blue-d) !important; }

.osf2 h1, .osf2 h2, .osf2 h3, .osf2 h4 { color: var(--osf-ink); }
.osf2 h1.page-title, .osf2 #pageBody h1 { margin: 1.4rem 0 1rem; font-size: 1.75rem; font-weight: 800;
  line-height: 1.2; letter-spacing: -.01em; text-align: left !important; text-transform: none; color: var(--osf-ink); }
.osf2 h2.text-center, .osf2 #bestOffers h2, .osf2 .osf-block-head h2 { margin: 0; font-size: 1.5rem; font-weight: 800;
  line-height: 1.2; letter-spacing: -.01em; text-transform: none; color: var(--osf-ink); }
.osf2 h2.text-center, .osf2 #bestOffers h2 { margin: 2.25rem 0 1.25rem; text-align: left !important; }
.osf2 h2.text-center::first-letter, .osf2 #bestOffers h2::first-letter { text-transform: uppercase; }
.osf2 h2.text-center::after { display: none; }

/* ---------- 7. Главная ---------- */
.osf2 .osf-home { padding-top: 1.375rem; }
/* Колонки 5:7 подобраны так, чтобы карточка с заголовком была не выше баннера 3:1
   на ширинах от 1200px (иначе баннер растягивается по высоте и обрезается по краям). */
.osf2 .osf-hero { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1.125rem; align-items: stretch; }
.osf2 .osf-hero-card { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 1.25rem 1.5rem;
  background: #fff; border: 1px solid var(--osf-line); border-radius: var(--osf-r-lg); }
.osf2 .osf-hero-card h1 { margin: 0 0 .7rem !important; font-size: 1.5rem !important; font-weight: 800; line-height: 1.18;
  letter-spacing: -.01em; color: var(--osf-ink); }
.osf2 .osf-hero-card p { display: none; margin: 0 0 1.1rem; font-size: .9375rem; line-height: 1.5; color: var(--osf-muted); }
.osf2 .osf-hero-btns { display: flex; flex-wrap: wrap; gap: .625rem; }
.osf2 .osf-hero-btns .osf-btn { flex: 1 1 auto; padding: 0 1.1rem; }
/* Высота баннера = ширина / 3 (подложка ::before). Если карточка слева выше, баннер
   растягивается по ней, а картинка обрезается по краям (object-fit: cover). */
.osf2 .osf-hero-slider { position: relative; min-width: 0; overflow: hidden; border-radius: var(--osf-r-lg);
  background: #dfe6ef; }
.osf2 .osf-hero-slider::before { content: ""; display: block; padding-top: 33.3333%; }
.osf2 .osf-slider { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.osf2 .osf-slider .owl-stage-outer, .osf2 .osf-slider .owl-stage,
.osf2 .osf-slider .owl-item, .osf2 .osf-slider .item { height: 100%; }
.osf2 .osf-slider .item { position: relative; }
.osf2 .osf-slider .item img { display: block; width: 100%; height: 100%; object-fit: cover; }
.osf2 .osf-slider:not(.owl-loaded) .item + .item { display: none; }
.osf2 .osf-slider .item-content { position: absolute; top: 14%; left: 7%; max-width: 60%; }
.osf2 .osf-slider .item-title { display: block; margin-bottom: .5rem; font-size: 1.5rem; font-weight: 800;
  line-height: 1.2; color: #fff; }
.osf2 .osf-slider .item-subtitle { display: block; margin-bottom: .9rem; font-size: .9375rem; line-height: 1.35; color: #fff; }
.osf2 .osf-slider .item-content-btn .btn { padding: .55rem 1.1rem; background: var(--osf-blue); border: 0;
  border-radius: .625rem; color: #fff; font-weight: 700; }
.osf2 .osf-slider .owl-nav { position: absolute; top: 50%; left: 0; width: 100%; height: 0; margin: 0; }
.osf2 .osf-slider .owl-nav .owl-prev, .osf2 .osf-slider .owl-nav .owl-next { position: absolute; top: -1.375rem;
  width: 2.75rem; height: 2.75rem; margin: 0; padding: 0; border-radius: 50% !important;
  background: rgba(255, 255, 255, .92) !important; box-shadow: 0 .25rem .75rem rgba(16, 42, 80, .22);
  opacity: 0; transition: opacity .2s; }
.osf2 .osf-hero-slider:hover .owl-nav .owl-prev, .osf2 .osf-hero-slider:hover .owl-nav .owl-next { opacity: 1; }
.osf2 .osf-slider .owl-nav .owl-prev { left: .75rem; }
.osf2 .osf-slider .owl-nav .owl-next { right: .75rem; }
.osf2 .osf-slider .owl-nav span { display: block; width: .6rem; height: .6rem; margin: 0 auto;
  border: solid var(--osf-ink); border-width: 0 0 2px 2px; background: none !important; transform: translateX(15%) rotate(45deg); }
.osf2 .osf-slider .owl-nav .owl-next span { transform: translateX(-15%) rotate(-135deg); }
.osf2 .osf-slider .owl-dots { position: absolute; left: 0; right: 0; bottom: .6rem; margin: 0; text-align: center; line-height: 0; }
.osf2 .osf-slider .owl-dots .owl-dot { padding: 0; }
.osf2 .osf-slider .owl-dots .owl-dot span { width: .5rem; height: .5rem; margin: 0 .2rem;
  background: rgba(255, 255, 255, .6); box-shadow: 0 0 0 1px rgba(16, 42, 80, .15); }
.osf2 .osf-slider .owl-dots .owl-dot.active span { background: var(--osf-blue); }

.osf2 .osf-benefits { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.125rem; margin-top: 1.125rem; }
.osf2 .osf-benefit { display: flex; align-items: center; gap: .75rem; min-width: 0; padding: .9rem 1rem; background: #fff;
  border: 1px solid var(--osf-line); border-radius: var(--osf-r-lg); color: var(--osf-ink) !important;
  text-decoration: none !important; }
.osf2 .osf-benefit-ico { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 2.625rem;
  height: 2.625rem; border-radius: .6875rem; background: var(--osf-blue-l); color: var(--osf-blue); }
.osf2 .osf-benefit-ico svg { width: 1.5rem; height: 1.5rem; }
.osf2 .osf-benefit-text { display: block; min-width: 0; }
.osf2 .osf-benefit-text b { display: block; font-size: .9rem; font-weight: 700; line-height: 1.3; }
.osf2 .osf-benefit-text span { display: block; font-size: .8125rem; line-height: 1.35; color: var(--osf-muted); }
.osf2 .osf-benefit-link { transition: border-color .15s, box-shadow .15s; }
.osf2 .osf-benefit-link:hover { border-color: var(--osf-blue); box-shadow: 0 .5rem 1.25rem rgba(16, 42, 80, .10); }

.osf2 .osf-home-block { margin-top: 2.25rem; }
.osf2 .osf-block-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.osf2 .osf-block-head a { display: inline-flex; align-items: center; gap: .35rem; font-size: .875rem; font-weight: 700;
  color: var(--osf-blue); text-decoration: none; white-space: nowrap; }
.osf2 .osf-cats { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.osf2 .osf-cat { display: flex; flex-direction: column; flex: 0 0 calc((100% - 6rem) / 9); min-width: 0; overflow: hidden;
  background: #fff; border: 1px solid var(--osf-line); border-radius: var(--osf-r-lg); color: var(--osf-ink) !important;
  text-decoration: none !important; transition: transform .18s, box-shadow .18s, border-color .18s; }
.osf2 .osf-cat:hover { border-color: var(--osf-blue); box-shadow: 0 .75rem 1.75rem rgba(16, 42, 80, .14); transform: translateY(-3px); }
.osf2 .osf-cat-img { display: block; aspect-ratio: 4 / 3; padding: .6rem .6rem 0; background: #fff; }
.osf2 .osf-cat-img img { display: block; width: 100%; height: 100%; object-fit: contain; }
.osf2 .osf-cat-name { display: flex; align-items: center; justify-content: center; flex: 1 1 auto; min-height: 3.1rem;
  padding: .45rem .5rem .6rem; font-size: .8125rem; font-weight: 700; line-height: 1.25; text-align: center;
  overflow-wrap: anywhere; }

/* Быстрые ссылки (меню banner_bottom_catalog): шесть плиток с фото. */
.osf2 .osf-quick .container.pt30 { padding-top: 0 !important; }
.osf2 .index-catalog-menu-row { margin: 0 -.5625rem; }
.osf2 .index-catalog-menu-row .index-catalog-menu-item { flex: 0 0 33.3333%; max-width: 33.3333%;
  padding: 0 .5625rem; margin-bottom: 1.125rem; }
.osf2 .index-catalog-menu-row .index-catalog-menu-item .block { position: relative; display: block; height: 7.5rem;
  overflow: hidden; border-radius: var(--osf-r-lg); box-shadow: none; transition: transform .18s, box-shadow .18s; }
.osf2 .index-catalog-menu-row .index-catalog-menu-item .block:hover { transform: translateY(-3px);
  box-shadow: 0 .75rem 1.75rem rgba(16, 42, 80, .18); }
.osf2 .index-catalog-menu-name { display: block !important; left: .75rem; bottom: .75rem; padding: .3rem .7rem;
  background: rgba(11, 119, 207, .88); border-radius: .5rem; font-size: .8125rem; font-weight: 700; line-height: 1.2;
  letter-spacing: .03em; color: #fff; }
.osf2 .index-catalog-menu-hover-name { display: none !important; }

/* Лучшие предложения: вкладки. */
.osf2 #bestOffers { margin-top: .5rem; }
.osf2 .index-catalog-tabs { display: flex !important; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; padding: 0;
  border: 0 !important; text-align: left; }
.osf2 .index-catalog-tabs li { display: block; margin: 0; }
.osf2 .index-catalog-tabs li a { display: block; margin: 0; padding: .45rem 1rem; border: 1px solid var(--osf-line);
  border-radius: 2rem; background: #fff; font-size: .875rem; font-weight: 600; line-height: 1.3; color: var(--osf-ink); }
.osf2 .index-catalog-tabs li a:hover { border-color: var(--osf-blue); color: var(--osf-blue); }
.osf2 .index-catalog-tabs li a.active { background: var(--osf-blue); border-color: var(--osf-blue); color: #fff; }
.osf2 .tab-content.mt20 { margin-top: 0; }

/* О компании, преимущества, перелинковка. */
.osf2 .counter-section { margin-top: 2.5rem; padding: 1.5rem !important; background: #fff; border: 1px solid var(--osf-line);
  border-radius: var(--osf-r-lg); }
.osf2 .counter-section .image-column img { border-radius: var(--osf-r); }
.osf2 .index-about-title h2 { margin: 0; font-size: 1.5rem; font-weight: 800; text-transform: none; color: var(--osf-ink); }
.osf2 .index-about-text { font-size: .9375rem; line-height: 1.55; letter-spacing: 0; color: var(--osf-ink); }
.osf2 .index-about-text br:first-child { display: none; }
.osf2 #services { margin-top: 1.5rem; }
.osf2 #services .row > div { margin-bottom: 1rem; }
.osf2 #services img { height: 3.5rem; width: auto; margin: 0 auto .6rem; display: block; }
.osf2 #services p { margin: 0; font-size: .9375rem; font-weight: 600; line-height: 1.35; color: var(--osf-ink); }
.osf2 .relink-block .media, .osf2 .relink-block .thumbnail { overflow: hidden; border-radius: var(--osf-r-lg); }
.osf2 .relink-block .caption-title span { font-size: .875rem; }

/* ---------- 8. Карточки товаров в списках ---------- */
.osf2 .item_block { padding: .4375rem; }
.osf2 .catalog-section > .row, .osf2 .catalog-section .tab-pane > .row { margin-left: -.4375rem; margin-right: -.4375rem; }
/* catalog/mario/style.css дает контейнеру белую подложку с отступом 15px: получалась рамка в рамке. */
/* Скрипт каталога выставляет всем карточкам одинаковый min-height по самой высокой: у товаров без цены
   получалась пустота под названием. Ряд и так выравнивается flex-ом, поэтому min-height снимаем. */
.osf2 .product-item-container { height: 100%; min-height: 0 !important; margin: 0; padding: 0; background: transparent;
  box-shadow: none; }
.osf2 .product-item { display: flex; flex-direction: column; height: 100%; padding: 0; overflow: hidden; background: #fff;
  border: 1px solid var(--osf-line); border-radius: .875rem; box-shadow: none;
  transition: transform .18s, box-shadow .18s, border-color .18s; }
.osf2 .product-item-container:hover .product-item { border-color: var(--osf-blue);
  box-shadow: 0 .75rem 1.75rem rgba(16, 42, 80, .14); transform: translateY(-2px); }
.osf2 .product-item > pre { display: none !important; }
/* Высоту фото задает padding-top (пропорция блока), сокращенный padding сюда не ставить. */
.osf2 .product-item-image-wrapper { position: relative; display: block; flex: 0 0 auto; width: 100%; margin: 0;
  padding: 100% 0 0; background: #fff; }
.osf2 .product-item-image-original, .osf2 .product-item-image-alternative { top: .75rem; right: .75rem; bottom: .75rem;
  left: .75rem; width: auto; height: auto; background-size: contain; background-position: center; background-repeat: no-repeat; }
.osf2 .product-item-title { flex: 0 0 auto; margin: .35rem .85rem .5rem; padding: 0; min-height: 3.65em; font-size: .875rem;
  font-weight: 600; line-height: 1.3; text-align: left; white-space: normal; overflow: hidden; }
.osf2 .product-item-title a { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
  white-space: normal; text-overflow: clip; font-size: inherit; font-weight: 600; color: var(--osf-ink) !important; text-decoration: none !important; }
.osf2 .product-item-title a:hover { color: var(--osf-blue) !important; }
.osf2 .product-item-info-container { margin: 0; }
.osf2 .product-item-price-container { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: flex-end;
  gap: .25rem; padding: 0 .85rem; text-align: left; }
.osf2 .product-item .price_group { margin: 0 !important; padding: 0; }
.osf2 .product-item .price_matrix_block .price_name, .osf2 .product-item .price_matrix_block .price { margin: 0;
  clear: none; line-height: 1.3; }
.osf2 .product-item .price_name { font-size: .75rem; line-height: 1.3; color: var(--osf-muted); }
.osf2 .product-item .price_value { font-size: 1.1875rem; font-weight: 800; line-height: 1.2; color: var(--osf-ink); }
.osf2 .product-item .price_currency, .osf2 .product-item .price_measure { font-size: .8125rem; font-weight: 600; color: var(--osf-muted); }
.osf2 .product-item .price_group:not(.current) .price_value { font-size: 1rem; color: var(--osf-blue); }
/* Количество и кнопка видны всегда, в одну строку. */
.osf2 .product-item-info-container.product-item-hidden { display: block !important; position: static !important;
  visibility: visible !important; opacity: 1 !important; height: auto !important; }
.osf2 .product-item [data-entity="quantity-block"] { flex: 0 0 auto; padding: .7rem .85rem .85rem; }
.osf2 .product-item-amount { margin: 0; padding: 0; }
.osf2 .product-item-amount > .row { margin: 0; }
.osf2 .product-item-amount > .row > .col-12 { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: 0; }
.osf2 .product-item-amount-field-container { display: flex !important; flex-direction: row; flex-wrap: nowrap;
  align-items: center; flex: 0 0 auto; max-width: none; margin: 0; padding: 0; border: 1px solid var(--osf-line);
  border-radius: .625rem; overflow: hidden; background: #fff; }
.osf2 .product-item-amount .product-item-amount-field-btn-minus,
.osf2 .product-item-amount .product-item-amount-field-btn-plus { position: relative; display: block;
  flex: 0 0 auto; width: 1.75rem; min-width: 0; height: 2.375rem; margin: 0; border: 0; border-radius: 0;
  background: #f4f6fa; line-height: 1; cursor: pointer; }
.osf2 .product-item-amount-field-btn-minus::before, .osf2 .product-item-amount-field-btn-plus::before,
.osf2 .product-item-amount-field-btn-plus::after { content: ""; position: absolute; top: 50%; left: 50%; width: .625rem;
  height: 2px; margin: -1px 0 0 -.3125rem; background: var(--osf-ink); border: 0; opacity: 1; transform: none; }
.osf2 .product-item-amount-field-btn-minus::after { display: none; }
.osf2 .product-item-amount-field-btn-plus::after { transform: rotate(90deg); }
.osf2 .product-item-amount-field-btn-minus:hover, .osf2 .product-item-amount-field-btn-plus:hover { background: var(--osf-blue-l); }
.osf2 .product-item-amount-field-block { display: block; margin: 0; padding: 0; border: 0; }
.osf2 .product-item-amount input.product-item-amount-field { display: block; width: 2.25rem; height: 2.375rem; margin: 0;
  padding: 0; border: 0; border-radius: 0; background: #fff; font-size: .9375rem; font-weight: 600; line-height: 2.375rem;
  text-align: center; color: var(--osf-ink); -moz-appearance: textfield; appearance: textfield; }
.osf2 .product-item-amount input.product-item-amount-field::-webkit-outer-spin-button,
.osf2 .product-item-amount input.product-item-amount-field::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.osf2 .product-item [data-entity="buttons-block"] { flex: 1 1 5.5rem; min-width: 0; padding: 0; }
.osf2 .product-item-button-container { margin: 0; padding: 0; }
.osf2 .product-item-button-container .btn { display: block; width: 100%; height: 2.5rem; padding: 0 .5rem;
  border-radius: .625rem !important; font-size: .875rem; font-weight: 700; line-height: 2.5rem; white-space: nowrap; }
.osf2 .product-item-price-container:empty + [data-entity="quantity-block"] { display: none !important; }

/* Сетка главной: 3 карточки в ряд с 768px, 4 с 992px, 5 с 1200px, 6 с 1900px. */
@media (min-width: 768px) and (max-width: 991.98px) {
  .osf2 #bestOffers .item_block { flex: 0 0 33.3333%; max-width: 33.3333%; }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
  .osf2 #bestOffers .item_block { flex: 0 0 25%; max-width: 25%; }
}
@media (min-width: 1900px) {
  .osf2 #bestOffers .item_block { flex: 0 0 16.6667%; max-width: 16.6667%; }
}
/* Раздел каталога: боковая колонка фиксированной ширины с 1200px (25% на широком экране - слишком много),
   товары 2 / 3 / 4 / 5 / 6 в ряд. */
@media (min-width: 1200px) {
  .osf2 .row > .left_block { flex: 0 0 18.5rem; max-width: 18.5rem; }
  .osf2 .row > .right_block { flex: 1 1 0; max-width: none; min-width: 0; }
}
.osf2 .right_block .catalog-section .item_block { flex: 0 0 25%; max-width: 25%; }
@media (min-width: 1900px) {
  .osf2 .right_block .catalog-section .item_block { flex: 0 0 20%; max-width: 20%; }
}
@media (min-width: 2300px) {
  .osf2 .right_block .catalog-section .item_block { flex: 0 0 16.6667%; max-width: 16.6667%; }
}
@media (max-width: 1199.98px) {
  .osf2 .right_block .catalog-section .item_block { flex: 0 0 33.3333%; max-width: 33.3333%; }
}
@media (max-width: 767.98px) {
  .osf2 .right_block .catalog-section .item_block { flex: 0 0 50%; max-width: 50%; }
}

/* ---------- 9. Каталог ---------- */
.osf2 .breadcrumb-list, .osf2 .bx-breadcrumb { margin: .25rem 0 1rem; padding: 0; font-size: .8125rem; color: var(--osf-muted); }
.osf2 .breadcrumb-list a, .osf2 .bx-breadcrumb a { color: var(--osf-muted); }
.osf2 .breadcrumb-list a:hover, .osf2 .bx-breadcrumb a:hover { color: var(--osf-blue); }

/* Левое меню разделов. */
.osf2 .menu_top_block.catalog_block { overflow: visible; background: #fff; border: 1px solid var(--osf-line);
  border-radius: var(--osf-r-lg); padding: .375rem; }
.osf2 .menu_top_block .menu > li { border: 0; }
.osf2 .menu_top_block .menu > li > a { display: block; padding: .6rem .75rem; border: 0; border-radius: .5625rem;
  font-size: .9rem; font-weight: 600; line-height: 1.3; color: var(--osf-ink); background: transparent; }
.osf2 .menu_top_block .menu > li:hover > a, .osf2 .menu_top_block .menu > li.current > a { background: var(--osf-blue-l);
  color: var(--osf-blue); }
.osf2 .menu_top_block .menu .dropdown { border: 1px solid var(--osf-line); border-radius: var(--osf-r);
  box-shadow: var(--osf-shadow); }
.osf2 .menu_top_block .menu .dropdown a { font-size: .875rem; color: var(--osf-ink); }
.osf2 .menu_top_block .menu .dropdown a:hover { color: var(--osf-blue); }
.osf2 .catalog-left-menu-img-block { border-radius: .5rem; overflow: hidden; }

/* Плитки подразделов. */
.osf2 .catalog_section_list.row { margin-left: -.4375rem; margin-right: -.4375rem; }
.osf2 .catalog_section_list .item_block { margin: 0; padding: .4375rem; }
.osf2 .section_item { height: 100%; padding: 0; border: 0; }
.osf2 .section_item > a { display: block; height: 100%; text-decoration: none; }
.osf2 table.section_item_inner { width: 100%; height: 100%; background: #fff; border: 1px solid var(--osf-line);
  border-radius: .875rem; border-collapse: separate; overflow: hidden; transition: border-color .18s, box-shadow .18s; }
.osf2 .section_item:hover table.section_item_inner { border-color: var(--osf-blue); box-shadow: 0 .625rem 1.5rem rgba(16, 42, 80, .12); }
.osf2 .section_item_inner td.image { width: 6rem; padding: .6rem; vertical-align: middle; }
.osf2 .section_item_inner td.image img { display: block; width: 4.75rem; height: 4.75rem; object-fit: contain; border-radius: .5rem; }
.osf2 .section_item_inner td.section_info { padding: .75rem 1rem; vertical-align: middle; }
.osf2 .section_item_inner td.section_info ul { list-style: none; margin: 0; padding: 0; }
.osf2 .section_item_inner td.section_info a { font-size: .9375rem; font-weight: 700; color: var(--osf-ink) !important;
  text-decoration: none !important; }
.osf2 .section_item:hover td.section_info a { color: var(--osf-blue) !important; }
.osf2 .section_item_inner td.desc { display: none; }

/* Сортировка. */
.osf2 .sort_header { margin: .5rem 0 .75rem; padding: 0; border: 0; background: none; }
.osf2 .sort_filter { display: flex; flex-wrap: wrap; gap: .5rem; }
.osf2 .sort_btn { display: inline-flex; align-items: center; gap: .35rem; float: none; margin: 0; padding: .4rem .9rem;
  border: 1px solid var(--osf-line); border-radius: 2rem; background: #fff; font-size: .8125rem; font-weight: 600;
  color: var(--osf-ink); text-decoration: none; }
.osf2 .sort_btn:hover, .osf2 .sort_btn.current { border-color: var(--osf-blue); color: var(--osf-blue); }

/* Умный фильтр. */
.osf2 .bx-sidebar-block { margin-top: 1rem; }
.osf2 .smart-filter-section { padding: 1rem 1rem .5rem; background: #fff; border: 1px solid var(--osf-line);
  border-radius: var(--osf-r-lg); }
.osf2 .smart-filter-title { margin: 0 0 .75rem; padding: 0; font-size: 1rem; font-weight: 800; color: var(--osf-ink); }
.osf2 .smart-filter-form > .row { margin: 0; }
.osf2 .smart-filter-parameters-box { padding: .6rem 0 0; border-top: 1px solid var(--osf-line); }
.osf2 .smart-filter-form > .row > .smart-filter-parameters-box:first-child { padding-top: 0; border-top: 0; }
.osf2 .smart-filter-parameters-box-title { padding: 0 0 .5rem; font-size: .875rem; cursor: pointer; }
.osf2 .smart-filter-parameters-box-title-text { font-size: .875rem; font-weight: 700; color: var(--osf-ink); }
.osf2 .smart-filter-input-group-number > .d-flex { gap: .5rem; }
.osf2 .smart-filter-input-group-number .form-group { flex: 1 1 0; min-width: 0; margin: 0 0 .5rem; }
.osf2 .smart-filter-input-container input { width: 100%; height: 2.25rem; padding: 0 .6rem; border: 1px solid var(--osf-line);
  border-radius: .5rem; font-size: .875rem; box-shadow: none; }
.osf2 .smart-filter-slider-track-container { padding: 0 .5rem; }
.osf2 .smart-filter-checkbox-text { font-size: .875rem; color: var(--osf-ink); }
.osf2 .smart-filter-button-box { padding: .5rem 0 .25rem; }
.osf2 .smart-filter-slider-handle, .osf2 .smart-filter-slider-price-bar-v { background: var(--osf-blue) !important; }

/* Постраничная навигация. */
.osf2 .bx-pagination .bx-pagination-container ul li span { border-radius: .5rem; }
.osf2 .bx-pagination .bx-pagination-container ul li.bx-active span { background: var(--osf-blue); color: #fff; }

/* ---------- 10. Страница товара ---------- */
.osf2 .product-item-detail-slider-container { margin-bottom: 1rem; background: #fff; border: 1px solid var(--osf-line);
  border-radius: var(--osf-r-lg); overflow: hidden; }
.osf2 .product-item-detail-pay-block { background: #fff; border: 1px solid var(--osf-line); border-radius: var(--osf-r-lg);
  padding: 1.25rem 1.375rem; }
.osf2 .product-item-detail-pay-block .price_value { font-size: 1.6rem; font-weight: 800; color: var(--osf-ink); }
.osf2 .product-item-detail-pay-block .price_name { font-size: .8125rem; font-weight: 600; color: var(--osf-muted); }
.osf2 .product-item-detail-buy-button, .osf2 a.product-item-detail-buy-button { background: var(--osf-blue) !important;
  border-color: var(--osf-blue) !important; color: #fff !important; border-radius: .6875rem !important; font-weight: 700 !important; }
.osf2 .product-item-detail-buy-button:hover { background: var(--osf-blue-d) !important; }
.osf2 .product-item-detail-tab-link { font-weight: 600; color: var(--osf-muted); }
.osf2 .product-item-detail-tab.active .product-item-detail-tab-link { color: var(--osf-blue) !important; }
.osf2 .product-item-detail-properties-name { color: var(--osf-muted); }
.osf2 .product-item-detail-properties-value { font-weight: 600; color: var(--osf-ink); }

/* ---------- 11. Корзина, оформление, вход ---------- */
.osf2 .basket-checkout-container { background: #fff; border: 1px solid var(--osf-line); border-radius: var(--osf-r-lg);
  padding: 1rem 1.25rem; margin-bottom: 1.125rem; }
.osf2 .basket-coupon-block-field input, .osf2 .basket-coupon-input { border: 1px solid var(--osf-line) !important;
  border-radius: .625rem !important; box-shadow: none !important; }
.osf2 .basket-checkout-block-total-title { color: var(--osf-muted) !important; font-weight: 700 !important; }
.osf2 .basket-coupon-block-total-price-current, .osf2 .basket-checkout-block-total-price-current {
  color: var(--osf-blue) !important; font-weight: 800 !important; }
.osf2 .basket-checkout-block-btn .btn, .osf2 .basket-checkout-block-btn a { background: var(--osf-blue) !important;
  border-color: var(--osf-blue) !important; color: #fff !important; border-radius: .75rem !important; font-weight: 700 !important; }
.osf2 .basket-items-list-wrapper { background: #fff; border: 1px solid var(--osf-line); border-radius: var(--osf-r-lg);
  padding: .25rem .875rem; height: auto !important; max-height: none !important; }
.osf2 .basket-items-list-container { height: auto !important; max-height: none !important; overflow: visible !important; }
.osf2 .basket-items-list-item-container { border-bottom: 1px solid var(--osf-line); }
.osf2 .basket-item-block-image img { border-radius: .625rem; border: 1px solid var(--osf-line); }
.osf2 .basket-item-info-name-link, .osf2 .basket-item-block-info a { color: var(--osf-ink) !important; font-weight: 600 !important; }
.osf2 .basket-item-price-current-text { color: var(--osf-ink) !important; font-weight: 800 !important; }
.osf2 a.logIn, .osf2 a.registration { background: #fff !important; border: 1px solid var(--osf-line) !important;
  color: var(--osf-ink) !important; font-weight: 700 !important; }
.osf2 a.logIn.active, .osf2 a.registration.active { background: var(--osf-blue) !important;
  border-color: var(--osf-blue) !important; color: #fff !important; }
.osf2 .bx-soa-section { border: 1px solid var(--osf-line) !important; border-radius: .875rem !important; }
.osf2 .bx-soa-price-total-value, .osf2 .bx-soa-cart-total-line-total { color: var(--osf-blue) !important; font-weight: 800 !important; }

/* Плитки личного кабинета: белые карточки (синяя подложка с темным текстом читалась плохо). */
.osf2 .sale-personal-section-index-block { background: #fff !important; border: 1px solid var(--osf-line);
  border-radius: var(--osf-r-lg); transition: border-color .18s, box-shadow .18s; }
.osf2 .sale-personal-section-index-block:hover { border-color: var(--osf-blue); box-shadow: 0 .625rem 1.5rem rgba(16, 42, 80, .12); }
.osf2 .sale-personal-section-index-block-link { color: var(--osf-ink) !important; text-decoration: none !important; }
.osf2 .sale-personal-section-index-block-ico, .osf2 .sale-personal-section-index-block-ico .fa { color: var(--osf-blue) !important; }
.osf2 .sale-personal-section-index-block-name { font-size: .9375rem; font-weight: 700; color: var(--osf-ink) !important; }

/* ---------- 12. Модальные окна ---------- */
.osf2 .modal-content { border: 0 !important; border-radius: 1rem !important; overflow: hidden !important;
  box-shadow: 0 1.125rem 3.125rem rgba(16, 42, 80, .22) !important; }
.osf2 .modal-header { align-items: center; padding: 1rem 1.25rem !important; background: var(--osf-blue) !important; border-bottom: 0 !important; }
.osf2 .modal-header .modal-title, .osf2 .modal .modal-title { color: #fff !important; font-size: 1.125rem; font-weight: 700 !important; }
.osf2 .modal-header .close, .osf2 .modal .close { color: #fff !important; opacity: .9 !important; text-shadow: none !important;
  font-weight: 400 !important; font-size: 1.625rem !important; }
.osf2 .modal-body { padding: 1.25rem !important; }
.osf2 .modal-body label { margin-bottom: .375rem !important; color: var(--osf-muted) !important; font-weight: 600 !important; }
.osf2 .modal-body .form-control, .osf2 .modal-body input[type="text"], .osf2 .modal-body input[type="email"],
.osf2 .modal-body input[type="tel"], .osf2 .modal-body textarea { border: 1px solid var(--osf-line) !important;
  border-radius: .625rem !important; padding: .625rem .875rem !important; box-shadow: none !important; color: var(--osf-ink) !important; }
.osf2 .modal-body .form-control:focus { border-color: var(--osf-blue) !important; box-shadow: 0 0 0 3px rgba(11, 119, 207, .12) !important; }
.osf2 .modal-body .btn, .osf2 .modal-body button[type="submit"], .osf2 .modal-body input[type="submit"] {
  height: auto !important; min-height: 3rem !important; min-width: 11rem; padding: .75rem 1.75rem !important;
  background: var(--osf-blue) !important; border: 1px solid var(--osf-blue) !important; border-radius: .75rem !important;
  color: #fff !important; font-weight: 700 !important; line-height: 1.3 !important; overflow: visible !important; }
.osf2 .modal-body .btn:hover, .osf2 .modal-body input[type="submit"]:hover { background: var(--osf-blue-d) !important; }

/* ---------- 13. Подвал ---------- */
.osf2 footer { margin-top: 0; padding: 2.25rem 0 1.75rem; background: #fff; border-top: 1px solid var(--osf-line);
  font-size: .875rem; color: var(--osf-ink); }
.osf2 footer .logo { height: 2.75rem; width: auto; margin-bottom: .9rem; }
.osf2 footer a { color: var(--osf-ink); }
.osf2 footer a:hover { color: var(--osf-blue); }
.osf2 footer .footer-menu > span { display: block; margin-bottom: .5rem; font-size: .9375rem; font-weight: 800; color: var(--osf-ink); }
.osf2 footer .footer-menu a { font-size: .875rem; color: var(--osf-muted); }
.osf2 footer .footer-menu a:hover { color: var(--osf-blue); }
.osf2 footer .copyright, .osf2 footer .its-real-container { font-size: .8125rem; color: var(--osf-muted); }
.osf2 footer .dropdown-phone { font-size: 1rem; font-weight: 700; }
.osf2 footer .small, .osf2 footer .callback, .osf2 footer .img-place, .osf2 footer .img-email a { font-size: .8125rem; }

/* ============================================================
   Адаптив
   ============================================================ */
@media (min-width: 1400px) {
  .osf2 .osf-hero-card { padding: 1.75rem; }
  .osf2 .osf-hero-card h1 { font-size: 1.75rem !important; }
  .osf2 .osf-hero-card p { display: block; }
}
@media (min-width: 1600px) {
  .osf2 .osf-hero-card h1 { font-size: 2rem !important; }
}
@media (min-width: 1900px) {
  .osf2 .osf-hero-card { padding: 2.25rem; }
  .osf2 .osf-hero-card h1 { font-size: 2.1rem !important; }
  .osf2 .osf-megapanel { width: 66rem; }
}

@media (max-width: 1399.98px) {
  .osf2 .osf-worktime { display: none; }
  .osf2 .osf-topbar-in, .osf2 .osf-topnav ul { gap: 1.1rem; }
}

@media (max-width: 1199.98px) {
  .osf2 .osf-header-in { gap: 1rem; }
  .osf2 .osf-catbtn-long { display: none; }
  .osf2 .osf-actions { gap: .75rem; }
  .osf2 .osf-cat { flex-basis: calc((100% - 3rem) / 5); }
  .osf2 .osf-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .osf2 .osf-hero { grid-template-columns: minmax(0, 1fr); }
  .osf2 .osf-hero-card { padding: 1.375rem; }
  .osf2 .osf-hero-card p { display: block; }
  .osf2 .osf-hero-btns .osf-btn { flex: 0 1 auto; }
}

/* Телефон и планшет: меню каталога выезжает слева, служебная полоса сокращается. */
@media (max-width: 991.98px) {
  .osf2 .osf-city, .osf2 .osf-topnav { display: none; }
  .osf2 .osf-topbar-in { justify-content: flex-end; height: 2.25rem; gap: 1rem; }
  .osf2 .osf-topbar-sep { display: none; }

  /* Две строки: логотип + значки, ниже кнопка каталога + поиск. Сетка, а не flex-wrap:
     при переносе flex кнопка каталога оставалась в первой строке, а поиск сжимался до 14px. */
  .osf2 .osf-header-in { display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "logo logo actions" "mega search search"; align-items: center; gap: .625rem .75rem;
    height: auto; padding-top: .625rem; padding-bottom: .625rem; }
  .osf2 .osf-logo { grid-area: logo; justify-self: start; }
  .osf2 .osf-logo img { height: 2.375rem; }
  .osf2 .osf-actions { grid-area: actions; justify-self: end; gap: .5rem; }
  .osf2 .osf-mega { grid-area: mega; }
  .osf2 .osf-search-wrap { grid-area: search; }
  .osf2 .osf-catbtn { height: 2.75rem; padding: 0 .875rem; font-size: .875rem; gap: .5rem; }
  .osf2 .osf-search form { height: 2.75rem; }
  .osf2 .osf-search input { padding: 0 .75rem; font-size: 1rem; }
  .osf2 .osf-search button { padding: 0 .875rem; }
  .osf2 .osf-search button span { display: none; }
  .osf2 .osf-search button svg { display: block; }
  .osf2 .osf-act { min-width: 2.75rem; }
  .osf2 .osf-act-label { display: none; }

  body.osf2.osf-drawer-open { overflow: hidden; }
  body.osf2.osf-drawer-open .osf-header { z-index: 998; }
  .osf2 .osf-megapanel { display: block; position: fixed; top: 0; left: 0; bottom: 0; z-index: 20; width: 22rem;
    max-width: 88vw; border: 0; border-radius: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;
    transform: translateX(-105%); transition: transform .25s ease; visibility: hidden; }
  .osf2 .osf-mega.osf-open .osf-megapanel { transform: none; visibility: visible; }
  .osf2 .osf-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 15; background: rgba(15, 25, 40, .45); }
  body.osf2.osf-drawer-open .osf-backdrop { display: block; }
  .osf2 .osf-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: .9rem 1rem;
    border-bottom: 1px solid var(--osf-line); font-size: 1.0625rem; font-weight: 800; color: var(--osf-ink); }
  .osf2 .osf-drawer-close { display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem;
    border: 0; border-radius: .5rem; background: var(--osf-bg); color: var(--osf-ink); cursor: pointer; }
  .osf2 .osf-megalist { width: auto; min-height: 0; padding: .5rem; background: #fff; border-right: 0; }
  .osf2 .osf-megacat { padding: .75rem; font-size: .9375rem; }
  .osf2 .osf-megaitem.osf-exp > .osf-megacat .osf-chev { transform: rotate(90deg); }
  .osf2 .osf-megasub { display: none; position: static; padding: 0 .75rem .5rem 2.75rem; overflow: visible; }
  .osf2 .osf-megaitem.osf-exp > .osf-megasub { display: block; }
  .osf2 .osf-megaitem:not(.osf-has-sub) > .osf-megasub { display: none !important; }
  .osf2 .osf-megasub-title, .osf2 .osf-megasub-pic { display: none; }
  .osf2 .osf-megasub-cols { column-count: 1; }
  .osf2 .osf-megasub-cols a { padding: .5rem 0; }
  .osf2 .osf-megasub-all { margin: .4rem 0 .3rem; }
  .osf2 .osf-megapromo { position: static; flex-direction: column; align-items: flex-start; margin: .25rem 1rem .75rem; }
  .osf2 .osf-megapromo a { white-space: normal; }
  .osf2 .osf-drawer-extra { display: block; padding: .25rem 1rem 1.5rem; border-top: 1px solid var(--osf-line); }
  /* Пункты меню в шаблоне плавающие (float): без flex следующий блок сжимался до 4px рядом с ними. */
  .osf2 .osf-drawer-nav ul { display: flex; flex-direction: column; list-style: none; margin: 0; padding: .5rem 0; }
  .osf2 .osf-drawer-nav li { float: none; width: auto; margin: 0; padding: 0; }
  .osf2 .osf-drawer-nav .clearfix { display: none; }
  .osf2 .osf-drawer-nav a { display: block; padding: .55rem 0; font-size: .9375rem; font-weight: 600; color: var(--osf-ink);
    text-decoration: none; text-transform: lowercase; }
  .osf2 .osf-drawer-nav a::first-letter { text-transform: uppercase; }
  .osf2 .osf-drawer-contacts { display: flex; flex-direction: column; gap: .5rem; padding-top: .75rem;
    border-top: 1px solid var(--osf-line); }
  .osf2 .osf-drawer-phone { display: inline-flex; align-items: center; gap: .45rem; font-size: 1rem; font-weight: 700;
    color: var(--osf-blue); text-decoration: none; }
  .osf2 .osf-drawer-note { display: flex; align-items: flex-start; gap: .35rem; font-size: .8125rem; color: var(--osf-muted); }
  .osf2 .osf-drawer-note svg { flex: 0 0 auto; margin-top: .15rem; }
  .osf2 .osf-drawer-mail { font-size: .875rem; }
  .osf2 .osf-drawer-btn { display: flex; align-items: center; justify-content: center; height: 2.75rem; margin-top: .25rem;
    border-radius: .6875rem; background: var(--osf-blue); color: #fff !important; font-weight: 700; text-decoration: none !important; }
  .osf2 .osf-drawer-cities { display: flex; flex-wrap: wrap; gap: .35rem .9rem; margin-top: .5rem; font-size: .875rem; }
  .osf2 .osf-drawer-cities-title { flex: 0 0 100%; font-size: .75rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .04em; color: var(--osf-muted); }

  .osf2 .osf-slider .item-title { font-size: 1.125rem; }
  .osf2 .osf-slider .owl-nav { display: none; }
}

/* Каталог уже 992px: товары во всю ширину, список разделов есть в меню шапки,
   фильтр сворачивается в строку и раскрывается по нажатию (osf2.js). */
@media (max-width: 991.98px) {
  .osf2 .left_block, .osf2 .right_block { flex: 0 0 100%; max-width: 100%; }
  .osf2 .left_block .menu_top_block { display: none; }
  .osf2 .bx-sidebar-block { margin: 0 0 1rem; }
  .osf2 .smart-filter { margin-bottom: 0 !important; }
  .osf2 .smart-filter-section { padding: .8rem 1rem; }
  .osf2 .smart-filter-title { display: flex; align-items: center; justify-content: space-between; margin: 0;
    font-size: .9375rem; cursor: pointer; }
  .osf2 .smart-filter-title::after { content: ""; flex: 0 0 auto; width: .55rem; height: .55rem; margin: -.2rem .2rem 0 0;
    border: solid var(--osf-muted); border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .2s; }
  .osf2 .smart-filter.osf-open .smart-filter-title { margin-bottom: .75rem; }
  .osf2 .smart-filter.osf-open .smart-filter-title::after { margin-top: .2rem; transform: rotate(-135deg); }
  .osf2 .smart-filter:not(.osf-open) .smart-filter-form { display: none; }
}

@media (max-width: 767.98px) {
  .osf2 .osf-cats { gap: .5rem; }
  .osf2 .osf-cat { flex-basis: calc((100% - 1rem) / 3); }
  .osf2 .osf-cat-name { min-height: 2.75rem; font-size: .75rem; padding: .35rem .3rem .5rem; }
  .osf2 .index-catalog-menu-row .index-catalog-menu-item { flex: 0 0 50%; max-width: 50%; }
  .osf2 .index-catalog-menu-row .index-catalog-menu-item .block { height: 6rem; }
  .osf2 h1.page-title, .osf2 #pageBody h1 { font-size: 1.4rem; }
  /* Последняя крошка повторяет заголовок страницы - на телефоне не показываем. */
  .osf2 .breadcrumb-list li:last-child:not(:first-child) { display: none; }
  .osf2 h2.text-center, .osf2 #bestOffers h2, .osf2 .osf-block-head h2, .osf2 .index-about-title h2 { font-size: 1.25rem; }
  .osf2 .counter-section { padding: 1rem !important; }
  .osf2 .osf-slider .item-content { display: none; }
}

@media (max-width: 575.98px) {
  .osf2 .osf-callback { display: none; }
  .osf2 .osf-topbar-in { justify-content: center; }
  .osf2 .osf-logo img { height: 2.125rem; }
  .osf2 .osf-opt { font-size: .6875rem; padding: .25rem .45rem; }
  .osf2 .osf-act-fav { display: none; }
  .osf2 .osf-benefits { grid-template-columns: minmax(0, 1fr); gap: .625rem; }
  .osf2 .osf-slider .owl-dots { display: none; }
  .osf2 .osf-hero-card h1 { font-size: 1.4rem !important; }
  .osf2 .osf-hero-btns .osf-btn { flex: 1 1 100%; }

  .osf2 .item_block { flex: 0 0 50% !important; max-width: 50% !important; padding: .3125rem; }
  .osf2 .catalog-section > .row, .osf2 .catalog-section .tab-pane > .row { margin-left: -.3125rem; margin-right: -.3125rem; }
  .osf2 .product-item-title { margin: .25rem .6rem .4rem; font-size: .8125rem; }
  .osf2 .product-item-price-container { padding: 0 .6rem; }
  .osf2 .product-item .price_value { font-size: 1.0625rem; }
  .osf2 .product-item [data-entity="quantity-block"] { padding: .55rem .6rem .7rem; }
  .osf2 .product-item-amount > .row > .col-12 { gap: .4rem; }
  .osf2 .product-item-amount-field-container { flex: 1 1 100%; justify-content: space-between; }
  .osf2 .product-item-amount-field-block { flex: 1 1 auto; }
  .osf2 .product-item-amount input.product-item-amount-field { width: 100%; }
  .osf2 .product-item [data-entity="buttons-block"] { flex: 1 1 100%; }
  .osf2 .catalog_section_list .item_block { flex: 0 0 100% !important; max-width: 100% !important; padding: .25rem .3125rem; }
  .osf2 .section_item_inner td.image { width: 4rem; padding: .4rem .5rem; }
  .osf2 .section_item_inner td.image img { width: 3rem; height: 3rem; }
  .osf2 .section_item_inner td.section_info { padding: .5rem .75rem .5rem .25rem; }
}
