/* RTL — сгенерировано tools/rtl.py из woocommerce.css, не править руками */
/* ==========================================================================
   WooCommerce — приведение стандартного вывода к дизайн-системе.
   Если каталог собран на Elementor Loop Grid, большая часть этого файла
   не нужна, но он не мешает.
   ========================================================================== */

.woocommerce ul.products{
  display: grid;
  grid-template-columns: repeat(var(--imi-cols, 4), 1fr);
  gap: 1px;
  background: var(--imi-edge);
  box-shadow:0 0 0 1px var(--imi-edge);
  margin:0; padding:0; list-style: none;
}
/* Clearfix WooCommerce (::before/::after display:table) в grid становится пустой первой ячейкой */
.woocommerce ul.products::before, .woocommerce ul.products::after{ display: none; }
@media (max-width: 1024px){ .woocommerce ul.products{ grid-template-columns: repeat(var(--imi-cols-m, 2), 1fr); } }
/* woocommerce-smallscreen.css (≤768px) задаёт li.product width:48%; float:left — в сетке это ломает плитки */
@media (max-width: 768px){
  .woocommerce ul.products[class*=columns-] li.product, .woocommerce-page ul.products[class*=columns-] li.product,
  .woocommerce ul.products li.product{ width: auto !important; float: none !important; clear: none !important; margin:0 !important; }
}
@media (max-width: 560px){
  .woocommerce ul.products li.product .woocommerce-loop-product__title{ font-size: .92rem; padding:11px 11px 0; }
  .woocommerce ul.products li.product .price{ font-size: 1.12rem; padding:0 11px 11px; }
  .woocommerce ul.products li.product .button{ margin:8px 11px 12px; padding:7px 10px; font-size: .7rem; }
  .imi-loop-data{ padding:6px 11px 0; }
}

.woocommerce ul.products li.product{
  background: none;
  margin:0; padding:0; width: auto; float: none;
  display: flex; flex-direction: column;
  position: relative;
  transition: background .2s;
}


/* Фото на светлой подложке — белый фон снимка становится прозрачным.
   Подложка на обёртке .imi-loop-plate (её выводит inc/woocommerce.php), multiply — только на img:
   на одном элементе background + mix-blend-mode не работают (картинка темнеет). */
.woocommerce ul.products li.product .imi-loop-plate{
  display: block; background: var(--imi-photo-bg); aspect-ratio: 1 / 1; overflow: hidden; position: relative;
}
/* Кадры лежат стопкой, показан один. Прокручиваемой ленты здесь быть не должно:
   Safari на iPhone выносит любой скроллер в отдельный слой, и mix-blend-mode
   внутри него перестаёт работать — вокруг снимка появляется белый квадрат. */
.woocommerce ul.products li.product .imi-loop-track{
  position: absolute; inset:0; display: block; background: none;
}
.woocommerce ul.products li.product .imi-loop-slide{
  position: absolute; inset:0; display: block; background: none;
  visibility: hidden;   /* не opacity и не transform: они изолируют смешивание */
}
.woocommerce ul.products li.product .imi-loop-slide.is-on{ visibility: visible; }
/* Страховка для страниц из кэша, свёрстанных старой разметкой без is-on. */
.woocommerce ul.products li.product .imi-loop-plate:not(:has(.imi-loop-slide.is-on)) .imi-loop-slide:first-child{ visibility: visible; }
.woocommerce ul.products li.product .imi-loop-arrow{
  position: absolute; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; display: grid; place-items: center;
  background: none; color: var(--imi-photo-fg); opacity: 0; transition: opacity .18s; z-index: 2; cursor: pointer;
}
.woocommerce ul.products li.product .imi-loop-arrow .imi-ico{ width: 18px; height: 18px; }
.woocommerce ul.products li.product .imi-loop-arrow--prev{ right: 8px; } .woocommerce ul.products li.product .imi-loop-arrow--prev .imi-ico{ transform: rotate(90deg); }
.woocommerce ul.products li.product .imi-loop-arrow--next{ left: 8px; } .woocommerce ul.products li.product .imi-loop-arrow--next .imi-ico{ transform: rotate(-90deg); }
.woocommerce ul.products li.product:hover .imi-loop-arrow{ opacity: 1; }
.woocommerce ul.products li.product .imi-loop-dots{ position: absolute; right: 0; left: 0; bottom: 8px; display: flex; justify-content: center; gap: 6px; z-index: 3; }
.woocommerce ul.products li.product .imi-loop-dots i{ width: 8px; height: 8px; border-radius:50%; background: color-mix(in srgb, var(--imi-photo-fg) 25%, transparent); transition: background .18s, transform .18s; cursor: pointer; }
.woocommerce ul.products li.product .imi-loop-dots i:hover{ background: color-mix(in srgb, var(--imi-photo-fg) 55%, transparent); transform: scale(1.15); }
.woocommerce ul.products li.product .imi-loop-dots i:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 2px; }
.woocommerce ul.products li.product .imi-loop-dots i.is-on{ background: var(--imi-photo-fg); }
@media (hover: none){ .woocommerce ul.products li.product .imi-loop-arrow{ display: none; } }
.woocommerce ul.products li.product .imi-loop-plate img,
.woocommerce ul.products li.product a > img{
  background: none;
  mix-blend-mode: multiply;
  width: 100%; height: 100%; aspect-ratio: 1 / 1;
  object-fit: contain;
  padding:10%;
  margin:0;
  display: block;
  transition: transform .5s var(--imi-ease);
}


.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family: var(--imi-fd); font-weight: 700;
  font-size: 1.06rem; line-height: .94; letter-spacing: .005em;
  color: var(--imi-bone);
  padding:15px 16px 0; margin:0;
}
.woocommerce ul.products li.product .price{
  font-family: var(--imi-fd); font-weight: 800; font-size: 1.3rem; line-height: 1;
  color: var(--imi-bone); font-variant-numeric: tabular-nums;
  padding:0 18px 18px; margin-top: auto;
}
.woocommerce ul.products li.product .price del{ color: var(--imi-ash-2); font-size: .86rem; margin-left: 7px; }
.woocommerce ul.products li.product .price ins{ text-decoration: none; }

/* Строка данных испытаний, которую добавляет inc/woocommerce.php */
.imi-loop-data{
  display: flex; gap: 12px; flex-wrap: wrap;
  font-family: var(--imi-fc); font-weight: 500; font-size: .76rem; color: var(--imi-ash-2);
  padding:8px 16px 0; margin:0;
}
.imi-loop-data b{ color: var(--imi-ash); font-weight: 600; }

/* Кнопка «в корзину» в каталоге */
.woocommerce ul.products li.product .button{
  margin:12px 18px 18px; align-self: stretch; text-align: center;
  background: var(--imi-void); color: var(--imi-bone);
  box-shadow:inset 0 0 0 1px var(--imi-edge-2);
  border-radius:var(--imi-r); padding:10px 14px;
  font-family: var(--imi-fc); font-weight: 700; font-size: .76rem;
  transition: color .18s, background .18s, box-shadow .18s;
}
.woocommerce ul.products li.product .button:hover{ background: var(--imi-ink); color: var(--imi-on-ink); box-shadow:inset 0 0 0 1px var(--imi-ink); }

/* Плашка «Sale» — в системе это метка в углу, а не круг */
.woocommerce span.onsale{
  position: absolute; top: 0; right: 0; left: auto; z-index: 2;
  min-width: 0; min-height: 0; line-height: 1; border-radius:0; margin:0;
  background: var(--imi-sig); color: #fff;
  font-family: var(--imi-fc); font-weight: 700; font-size: .68rem; padding:5px 9px; border-radius:var(--imi-r);
}

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

.woocommerce div.product .woocommerce-product-gallery__image,
.woocommerce div.product .flex-control-thumbs li{ background: var(--imi-photo-bg); }
.woocommerce div.product .woocommerce-product-gallery__image img,
.woocommerce div.product .flex-control-thumbs li img{ background: none; mix-blend-mode: multiply; }
.woocommerce div.product .product_title{
  font-family: var(--imi-fd); font-weight: 900;
  font-size: clamp(1.9rem, 3.4vw, 2.9rem); line-height: .86; letter-spacing: -.018em;
}
.woocommerce div.product p.price{
  font-family: var(--imi-fd); font-weight: 900;
  font-size: clamp(2.2rem, 3.6vw, 3rem); line-height: .9; letter-spacing: -.02em;
  color: var(--imi-bone); font-variant-numeric: tabular-nums;
}
.woocommerce div.product p.price del{ color: var(--imi-ash-2); font-size: 1.05rem; }
.woocommerce div.product p.price ins{ text-decoration: none; }

.woocommerce div.product form.cart .button{
  background: var(--imi-gold); color: var(--imi-ink); border-radius:0;
  font-family: var(--imi-fd); font-weight: 800;
  font-size: 1.02rem; letter-spacing: .02em; padding:15px 28px;
}
.woocommerce div.product form.cart .button:hover{ background: var(--imi-gold-2); color: var(--imi-ink); }

/* Вкладки */
.woocommerce div.product .woocommerce-tabs ul.tabs{
  display: flex; gap: 1px; padding:0; margin:0 0 0;
  background: var(--imi-edge); box-shadow:0 0 0 1px var(--imi-edge);
  flex-wrap: wrap;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{ display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background: var(--imi-void); border: 0; border-radius:0; margin:0; padding:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{ display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  display: block; padding:13px 20px;
  font-family: var(--imi-fd); font-weight: 700;
  font-size: 1rem; color: var(--imi-ash);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{ background: var(--imi-void); box-shadow:inset 0 -3px 0 var(--imi-gold); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color: var(--imi-bone); }
.woocommerce div.product .woocommerce-tabs .panel{
  box-shadow:inset 0 0 0 1px var(--imi-edge);
  padding:clamp(22px, 3vw, 34px); margin:0;
}

/* Таблица характеристик */
.woocommerce table.shop_attributes{ border: 0; }
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td{
  border: 0; border-bottom: 1px solid var(--imi-edge);
  padding:10px 14px; font-style: normal;
}
.woocommerce table.shop_attributes th{
  font-family: var(--imi-fc); font-weight: 500; font-size: .78rem; color: var(--imi-ash-2); width: 44%;
}
.woocommerce table.shop_attributes td{ color: var(--imi-bone); font-variant-numeric: tabular-nums; }

/* Уведомления — в системе это imi-note */
.woocommerce-error,
.woocommerce-info,
.woocommerce-message{
  background: var(--imi-void); color: var(--imi-text);
  box-shadow:inset 0 0 0 1px var(--imi-edge), var(--imi-shadow);
  border-top: 0; border-right: 3px solid var(--imi-gold);
  border-radius:var(--imi-r); padding:16px 20px;
}
.woocommerce-message{ border-right-color: var(--imi-ok); }
.woocommerce-error{ border-right-color: var(--imi-sig); }
.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before{ display: none; }

/* --- Корзина, оформление, личный кабинет --------------------------------- */
.woocommerce table.shop_table{border:0;border-collapse:collapse;box-shadow:0 0 0 1px var(--imi-edge);border-radius:0}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{border:0;border-bottom:1px solid var(--imi-edge);padding:14px 16px;color:var(--imi-ash)}
.woocommerce table.shop_table th{font-family:var(--imi-fc);font-weight:700;font-size:.76rem;color:var(--imi-ash-2);background:var(--imi-steel)}
.woocommerce table.shop_table td.product-name a{color:var(--imi-bone);font-weight:600}
.woocommerce table.shop_table td.product-thumbnail a{display:inline-block;background:var(--imi-photo-bg);line-height:0}
.woocommerce table.shop_table td img{background:none;mix-blend-mode:multiply;width:64px}
.woocommerce .cart-collaterals .cart_totals,.woocommerce-checkout #order_review{background:var(--imi-steel);box-shadow:inset 0 0 0 1px var(--imi-edge);padding:22px}
.woocommerce .cart-collaterals h2,.woocommerce-checkout h3{font-family:var(--imi-fd);font-weight:800;font-size:1.3rem;line-height:1;margin:0 0 16px}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.woocommerce-cart .coupon .input-text{
  background:var(--imi-void);color:var(--imi-bone);border:0;box-shadow:inset 0 0 0 1px var(--imi-edge);border-radius:0;padding:12px 14px;font-family:var(--imi-fb);font-size:.95rem}
.woocommerce form .form-row input.input-text:focus,.woocommerce form .form-row textarea:focus{box-shadow:inset 0 0 0 1px var(--imi-gold);outline:0}
.woocommerce form .form-row label{font-family:var(--imi-fc);font-weight:600;font-size:.78rem;color:var(--imi-ash-2)}
.woocommerce #respond input#submit,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #payment #place_order{
  background:var(--imi-ink);color:var(--imi-on-ink);border-radius:var(--imi-r);font-family:var(--imi-fd);font-weight:700;font-size:1rem;padding:14px 26px;min-height:50px;border:0;transition:background .18s,color .18s}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,.woocommerce #payment #place_order:hover{background:var(--imi-gold);color:var(--imi-on-gold)}
.woocommerce a.button.alt,.woocommerce button.button.alt{background:var(--imi-ink);color:var(--imi-on-ink)}
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{background:var(--imi-gold);color:var(--imi-on-gold)}
.woocommerce #payment ul.payment_methods{border:0}.woocommerce #payment ul.payment_methods li{color:var(--imi-ash)}
.woocommerce #payment div.payment_box{background:var(--imi-steel-2);color:var(--imi-ash);border-radius:0}
.woocommerce #payment div.payment_box::before{display:none}
.woocommerce-MyAccount-navigation ul{margin:0;padding:0;list-style:none;display:grid;gap:1px;background:var(--imi-edge);box-shadow:0 0 0 1px var(--imi-edge)}
.woocommerce-MyAccount-navigation li{background:var(--imi-void)}
.woocommerce-MyAccount-navigation li a{display:block;padding:12px 16px;font-family:var(--imi-fd);font-weight:700;font-size:1rem;color:var(--imi-ash);text-decoration:none}
.woocommerce-MyAccount-navigation li.is-active a,.woocommerce-MyAccount-navigation li a:hover{background:var(--imi-steel);color:var(--imi-gold)}
.woocommerce-MyAccount-content{color:var(--imi-ash)}
.woocommerce-MyAccount-content a{color:var(--imi-gold)}
.woocommerce-form-login,.woocommerce-form-register,.woocommerce-ResetPassword{background:var(--imi-steel);box-shadow:inset 0 0 0 1px var(--imi-edge);padding:24px;border:0;border-radius:0}
.woocommerce-account .woocommerce-MyAccount-navigation{width:26%}.woocommerce-account .woocommerce-MyAccount-content{width:70%}
@media (max-width:768px){.woocommerce-account .woocommerce-MyAccount-navigation,.woocommerce-account .woocommerce-MyAccount-content{width:100%;float:none}}
.woocommerce-breadcrumb{font-family:var(--imi-fc);font-weight:500;font-size:.8rem;color:var(--imi-ash-2)!important;padding-block:16px;border-bottom:1px solid var(--imi-edge);margin:0 0 20px !important}
.woocommerce-breadcrumb a{color:var(--imi-ash-2)!important}.woocommerce-breadcrumb a:hover{color:var(--imi-gold)!important}
.woocommerce .woocommerce-result-count{font-family:var(--imi-fc);font-weight:600;font-size:.84rem;color:var(--imi-ash-2)}
.woocommerce .woocommerce-ordering select{background:var(--imi-void);color:var(--imi-ash);border:0;box-shadow:inset 0 0 0 1px var(--imi-edge);padding:9px 14px;font-family:var(--imi-fc);font-weight:600;font-size:.82rem;}
.woocommerce nav.woocommerce-pagination ul{border:0;display:flex;gap:1px;background:var(--imi-edge);box-shadow:0 0 0 1px var(--imi-edge);width:fit-content;margin:40px auto 0}
.woocommerce nav.woocommerce-pagination ul li{border:0}
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{background:var(--imi-void);color:var(--imi-ash);min-width:42px;height:42px;display:grid;place-items:center;font-family:var(--imi-fd);font-weight:700;font-size:1rem;padding-inline:14px}
.woocommerce nav.woocommerce-pagination ul li span.current,.woocommerce nav.woocommerce-pagination ul li a:hover{background:var(--imi-gold);color:var(--imi-ink)}
.woocommerce div.product .woocommerce-product-gallery{margin-bottom:0}
.woocommerce div.product form.cart .variations td{padding:6px 0}
.woocommerce div.product form.cart .variations select{background:var(--imi-void);color:var(--imi-bone);border:0;box-shadow:inset 0 0 0 1px var(--imi-edge);padding:11px 14px;font-family:var(--imi-fc);font-weight:600;font-size:.86rem;}
.woocommerce div.product form.cart .variations label{font-family:var(--imi-fc);font-weight:600;font-size:.8rem;color:var(--imi-ash-2)}
.woocommerce div.product form.cart .reset_variations{color:var(--imi-ash-2);font-size:.8rem}
.woocommerce .quantity .qty{background:var(--imi-void);color:var(--imi-bone);border:0;box-shadow:inset 0 0 0 1px var(--imi-edge);padding:12px 6px;font-family:var(--imi-fd);font-weight:700;font-size:1.05rem}
.woocommerce div.product .product_meta{font-family:var(--imi-fc);font-weight:500;font-size:.8rem;color:var(--imi-ash-2);padding-top:16px;border-top:1px solid var(--imi-edge)}
.woocommerce div.product .product_meta a{color:var(--imi-ash)}
.woocommerce div.product .woocommerce-product-details__short-description{color:var(--imi-ash);font-size:.98rem;line-height:1.6}
.woocommerce div.product .woocommerce-product-details__short-description p{max-width:60ch}


/* --- Мини-корзина Elementor и виджет корзины: подложка на обёртке ---------- */
.elementor-menu-cart__product-image{background:var(--imi-photo-bg)}
.elementor-menu-cart__product-image img{background:none;mix-blend-mode:multiply}
.woocommerce-mini-cart li img{background:var(--imi-photo-bg)}


/* --- Галерея товара: стрелки, лента миниатюр, свайп --------------------- */
.woocommerce div.product .woocommerce-product-gallery{ position: relative; }
.woocommerce div.product .flex-direction-nav{ position: absolute; inset:0; margin:0; padding:0; list-style: none; pointer-events: none; z-index: 5; }
.woocommerce div.product .flex-direction-nav li{ position: absolute; top: 50%; transform: translateY(-50%); }
.woocommerce div.product .flex-direction-nav .flex-nav-prev{ right: 12px; } .woocommerce div.product .flex-direction-nav .flex-nav-next{ left: 12px; }
.woocommerce div.product .flex-direction-nav a{
  pointer-events: auto; display: grid; place-items: center; width: 48px; height: 48px; background: rgba(255,255,255,.94); color: var(--imi-on-plate);
  text-decoration: none; font-size: 0; box-shadow:inset 0 0 0 1px var(--imi-edge); transition: background .15s; cursor: pointer;
}
.woocommerce div.product .flex-direction-nav a:hover{ background: var(--imi-bone); color: var(--imi-void); }
.woocommerce div.product .flex-direction-nav a .imi-ico{ width: 22px; height: 22px; }
.woocommerce div.product .flex-direction-nav .flex-prev .imi-ico{ transform: rotate(90deg); }
.woocommerce div.product .flex-direction-nav .flex-next .imi-ico{ transform: rotate(-90deg); }
.woocommerce div.product .flex-direction-nav a.flex-disabled{ opacity: .3; cursor: default; }
.woocommerce div.product .flex-control-thumbs{ display: flex; gap: 6px; margin:6px 0 0; padding:0; overflow-x: auto; scrollbar-width: none; }
.woocommerce div.product .flex-control-thumbs::-webkit-scrollbar{ display: none; }
.woocommerce div.product .flex-control-thumbs li{ flex: 0 0 calc(25% - 5px); width: auto; float: none; margin:0; }
.woocommerce div.product .flex-control-thumbs li img{ opacity: .55; transition: opacity .15s; cursor: pointer; }
.woocommerce div.product .flex-control-thumbs li img.flex-active, .woocommerce div.product .flex-control-thumbs li img:hover{ opacity: 1; }
.woocommerce div.product .flex-control-thumbs li img.flex-active{ outline: 0; }
.woocommerce div.product p.stock, .woocommerce .stock{ font-family: var(--imi-fc); font-weight: 600; font-size: .8rem; }
.woocommerce div.product p.stock.in-stock, .woocommerce .stock.in-stock{ color: var(--imi-ok); }
.woocommerce div.product p.stock.out-of-stock, .woocommerce .stock.out-of-stock{ color: var(--imi-sig); }
.woocommerce div.product p.stock.in-stock::before, .woocommerce div.product p.stock.out-of-stock::before{ content: ""; display: inline-block; width: 7px; height: 7px; border-radius:50%; background: currentColor; margin-left: 8px; vertical-align: 1px; }
.woocommerce div.product .woocommerce-product-gallery__trigger{ background: var(--imi-bone); color: var(--imi-void); border-radius:0; width: 42px; height: 42px; display: grid; place-items: center; }
@media (max-width: 767px){
  .woocommerce div.product .flex-direction-nav a{ width: 40px; height: 40px; }
  .woocommerce div.product .flex-control-thumbs li{ flex-basis: calc(22% - 5px); }
}

/* Зум (wc zoom.js): увеличенная копия кладётся поверх основного фото. Если и она
   в multiply, сквозь неё просвечивает оригинал — «двоится». Копия рисуется обычно. */
.woocommerce div.product .woocommerce-product-gallery__image img.zoomImg{ mix-blend-mode: normal; background: #fff; padding:0; }

/* Миниатюры сбоку (от планшета и шире): колонка слева, фото справа.
   Колонка не растягивает ряд сетки (height:0 + min-height:100%) и прокручивается, если миниатюр много. */
@media (min-width: 768px){
  .woocommerce div.product div.images.woocommerce-product-gallery{
    display: grid; grid-template-columns: 92px minmax(0, 1fr); grid-template-rows: auto; column-gap: 8px; align-items: start;
  }
  .woocommerce div.product .woocommerce-product-gallery .flex-viewport{ grid-column: 2; grid-row: 1; width: 100%; }
  .woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper{ grid-column: 2; grid-row: 1; }
  .woocommerce div.product .flex-control-thumbs{
    grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 6px; margin:0;
    height: 0; min-height: 100%; overflow-y: auto; overflow-x: hidden; scrollbar-width: none;
  }
  .woocommerce div.product div.images .flex-control-thumbs li{ flex: 0 0 auto; width: 100%; float: none; margin:0; aspect-ratio: 1 / 1; }
  .woocommerce div.product div.images .flex-control-thumbs li img{ width: 100%; height: 100%; object-fit: contain; display: block; }
  .woocommerce div.product .flex-direction-nav{ grid-column: 2; grid-row: 1; position: relative; inset:auto; height: 100%; }
}

/* --- Телефон: корзина, оформление, кнопки ------------------------------- */
@media (max-width: 767px){
  .woocommerce ul.products{ gap: 1px; }
  .woocommerce div.product .summary .cart .button, .woocommerce-cart .wc-proceed-to-checkout a.button, .woocommerce-checkout #place_order,
  .woocommerce form.cart button.button{ width: 100%; text-align: center; }
  .woocommerce table.shop_table_responsive tr td{ padding:10px 12px; }
  .woocommerce table.shop_table_responsive tr td::before{ font-family: var(--imi-fc); font-size: .74rem; color: var(--imi-ash-2); }
  .woocommerce-cart .coupon{ display: flex; gap: 6px; }
  .woocommerce-cart .coupon .input-text{ flex: 1; min-width: 0; }
  .woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout #order_review{ padding:16px; }
  .woocommerce form .form-row{ width: 100%; float: none; }
  .imi-rec{ overflow-x: auto; }
}


/* --- Карточки товаров --- */
.woocommerce ul.products{ gap: 12px; background: none; box-shadow:none; }
@media (max-width: 767px){ .woocommerce ul.products{ gap: 10px; } }
.woocommerce ul.products li.product{ background: none; box-shadow:none; overflow: visible; }
/* Никаких transform/opacity/filter на карточке при наведении: они создают
   отдельный слой, из-за которого mix-blend-mode перестаёт смешивать снимок
   с фоном раздела и вокруг фотографии появляется белый прямоугольник. */
.woocommerce ul.products li.product:hover{ background: none; }
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title{ color: var(--imi-gold-2); }

.woocommerce ul.products li.product .imi-badges{ position: absolute; top: 8px; left: 8px; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; z-index: 3; pointer-events: none; }
.imi-badge{ font: 700 .64rem/1 var(--imi-fc); padding:0; background: none; border: 0; color: var(--imi-photo-fg); opacity: .72; }
.imi-badge--new{ background: var(--imi-gold); color: var(--imi-ink); }
.imi-badge--stock{ color: var(--imi-ok); opacity: 1; }
.imi-badge--out{ color: var(--imi-sig); opacity: 1; }
.imi-badge--optics{ color: var(--imi-gold-2); opacity: 1; }
.woocommerce span.onsale{ top: 8px; right: 8px; }
.woocommerce ul.products li.product .imi-loop-cat{ display: block; font: 600 .7rem/1 var(--imi-fc); color: var(--imi-ash-2); padding:16px 18px 0; }
.woocommerce ul.products li.product .woocommerce-loop-product__title{ color: var(--imi-white); padding-top: 6px; text-wrap: balance; }
.woocommerce ul.products li.product .imi-loop-fits{ display: block; font: 500 .8rem/1.3 var(--imi-fc); color: var(--imi-text); padding:6px 16px 0; }
.woocommerce ul.products li.product .imi-swatches{ display: flex; align-items: center; gap: 6px; padding:0 16px 10px; }
.woocommerce ul.products li.product .imi-swatches .imi-swatch{ width: 18px; height: 18px; border-radius:50%; background: var(--sw, #888); box-shadow:0 0 0 1px var(--imi-edge), inset 0 0 0 1px rgba(0,0,0,.12); display: block; }
.woocommerce ul.products li.product .imi-swatches .imi-swatch:hover{ box-shadow:0 0 0 2px var(--imi-gold); }
.woocommerce ul.products li.product .imi-swatches i{ font: 600 .72rem/1 var(--imi-fc); color: var(--imi-ash); font-style: normal; }
.woocommerce ul.products li.product .price{ padding-top: 6px; }
.woocommerce ul.products li.product .button{ min-height: 40px; }
@media (max-width: 560px){
  .woocommerce ul.products li.product .imi-loop-cat{ padding:10px 11px 0; font-size: .64rem; }
  .woocommerce ul.products li.product .imi-loop-fits, .woocommerce ul.products li.product .imi-swatches{ padding-right: 11px; padding-left: 11px; }
  .woocommerce ul.products li.product .button{ width: calc(100% - 22px); text-align: center; }
}
/* --- Подкатегории и категории: фото на фоне раздела, подпись под ним --- */
.woocommerce ul.products li.product-category{ position: relative; min-height: 0; background: none; }
.woocommerce ul.products li.product-category > a{ display: block; position: relative; height: auto; min-height: 0; background: none; overflow: visible; text-decoration: none; }
/* Обложка подкатегории: обёртка держит подложку, снимок смешивается с ней */
.woocommerce ul.products li.product-category .imi-cat-plate{ display: block; width: 100%; aspect-ratio: 1 / 1; background-color: var(--imi-photo-bg); overflow: hidden; }
.woocommerce ul.products li.product-category .imi-cat-plate img{ width: 100%; height: 100%; object-fit: contain; padding:6%; margin:0; display: block; background: none; mix-blend-mode: multiply; transition: transform .5s var(--imi-ease); }
:root[data-photos="alpha"] .woocommerce ul.products li.product-category .imi-cat-plate img{ mix-blend-mode: normal; }
.woocommerce ul.products li.product-category:hover .imi-cat-plate img{ transform: scale(1.03); }
/* Старая разметка без обёртки (кэш): в тёмной теме не смешиваем, иначе снимок чернеет */
:root[data-theme="dark"] .woocommerce ul.products li.product-category.product > a > img{ mix-blend-mode: normal; background-color: var(--imi-photo-bg); }
.woocommerce ul.products li.product-category.product > a > img,
.woocommerce ul.products li.product-category img{ position: static; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; padding:6%; margin:0; background-color: var(--imi-photo-bg); transition: transform .5s var(--imi-ease); }
.woocommerce ul.products li.product-category:hover img{ transform: scale(1.03); }
.woocommerce ul.products li.product-category > a::after{ content: none; }
.woocommerce ul.products li.product-category h2.woocommerce-loop-category__title{
  position: static; margin:0; padding:12px 2px 0; z-index: auto;
  font-family: var(--imi-fd); font-weight: 700;
  font-size: 1.1rem; line-height: 1.05; color: var(--imi-bone);
}
.woocommerce ul.products li.product-category:hover h2.woocommerce-loop-category__title{ color: var(--imi-gold-2); }
.woocommerce ul.products li.product-category h2 .count{ display: block; background: none; font: 600 .7rem/1 var(--imi-fc); color: var(--imi-ash-2); margin-top: 6px; padding:0; opacity: 1; }

/* --- Карточка товара: доверие, аккордеон, sticky --- */
.imi-trust{ list-style: none; margin:16px 0 0; padding:12px 0 0; border-top: 1px solid var(--imi-edge); display: flex; flex-wrap: wrap; gap: 8px 18px; font: 600 .76rem/1.3 var(--imi-fc); color: var(--imi-ash); }
.imi-trust li{ margin:0; padding-right: 14px; position: relative; }
.imi-trust li::before{ content: ""; position: absolute; right: 0; top: .32em; width: 6px; height: 6px; background: var(--imi-gold); transform: rotate(45deg); }
.imi-trust a{ color: var(--imi-bone); text-decoration: underline; text-underline-offset: 3px; }
.imi-acc__btn{ display: none; }
@media (max-width: 767px){
  .woocommerce div.product .woocommerce-tabs ul.tabs{ display: none; }
  .imi-acc__btn{ display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 12px; background: var(--imi-steel); color: var(--imi-bone); border: 0; border-top: 1px solid var(--imi-edge); padding:15px 16px; min-height: 52px; font: 700 1.05rem var(--imi-fd); text-align: right; cursor: pointer; }
  .imi-acc__btn i{ width: 10px; height: 10px; border-left: 2px solid var(--imi-gold); border-bottom: 2px solid var(--imi-gold); transform: rotate(45deg); transition: transform .2s; margin-left: 4px; }
  .imi-acc__btn[aria-expanded="true"] i{ transform: rotate(225deg); }
  .imi-acc-ready .woocommerce-Tabs-panel{ display: none !important; padding:6px 16px 18px; }
  .imi-acc-ready .woocommerce-Tabs-panel.is-open{ display: block !important; }
}
.imi-sticky{ position: fixed; right: 0; left: 0; bottom: 0; z-index: 95; background: var(--imi-glass); backdrop-filter: blur(10px); border-top: 1px solid var(--imi-edge); padding:10px var(--imi-gut) calc(10px + env(safe-area-inset-bottom)); }
.imi-sticky[hidden]{ display: none; }
.imi-sticky__in{ display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.imi-sticky__price{ font: 700 1.35rem/1 var(--imi-fd); color: var(--imi-bone); }
.imi-sticky__btn{ flex: 0 0 auto; min-height: 48px; padding:0 24px; background: var(--imi-ink); color: var(--imi-on-ink); border: 0; border-radius:var(--imi-r); font: 700 1rem var(--imi-fd); cursor: pointer; }
@media (min-width: 768px){ .imi-sticky{ display: none !important; } }


/* --- Описание товара: название, модели и обозначения заметнее (v1.9.0) ----- */
.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-Tabs-panel{
  color: var(--imi-text); font-weight: 500; font-size: 1rem; line-height: 1.62;
}
.woocommerce div.product .woocommerce-Tabs-panel p,
.woocommerce div.product .woocommerce-product-details__short-description p{ max-width: 68ch; }
.woocommerce div.product .woocommerce-Tabs-panel--description > p:first-of-type{
  font-size: 1.08rem; color: var(--imi-bone);
}
/* Модель, артикул, калибр и всё, что автор выделил сам */
.woocommerce div.product .woocommerce-Tabs-panel strong,
.woocommerce div.product .woocommerce-Tabs-panel b,
.woocommerce div.product .woocommerce-product-details__short-description strong,
.woocommerce div.product .woocommerce-product-details__short-description b,
.imi-model{ font-weight: 800; color: var(--imi-white); }
.imi-model{ letter-spacing: .005em; }
/* Подзаголовки внутри описания */
.woocommerce div.product .woocommerce-Tabs-panel h2,
.woocommerce div.product .woocommerce-Tabs-panel h3,
.woocommerce div.product .woocommerce-Tabs-panel h4{
  font-family: var(--imi-fd); font-weight: 800; color: var(--imi-white);
  letter-spacing: .01em; line-height: 1; margin:26px 0 10px;
}
.woocommerce div.product .woocommerce-Tabs-panel h2{ font-size: 1.5rem; }
.woocommerce div.product .woocommerce-Tabs-panel h3{ font-size: 1.3rem; }
.woocommerce div.product .woocommerce-Tabs-panel h4{ font-size: 1.12rem; }
.woocommerce div.product .woocommerce-Tabs-panel li{ margin-bottom: 6px; }
/* Таблица характеристик: значения читаются как данные, а не как текст */
.woocommerce div.product table.shop_attributes th{ color: var(--imi-ash-2); font-weight: 600; }
.woocommerce div.product table.shop_attributes td{ color: var(--imi-bone); font-weight: 600; }
/* Строка совместимости под названием в каталоге */
.woocommerce ul.products li.product .imi-loop-fits b,
.woocommerce ul.products li.product .imi-loop-data b{ color: var(--imi-bone); font-weight: 700; }


/* ==========================================================================
   Светлая витрина 2.0 — каталог, карточка товара, корзина, оформление, кабинет
   ========================================================================== */

/* --- Каталог: сетка карточек с воздухом --------------------------------- */
.woocommerce ul.products{ gap: clamp(14px, 1.5vw, 22px); }


.woocommerce ul.products li.product .woocommerce-loop-product__title{ padding:6px 18px 0; }
.woocommerce ul.products li.product .imi-loop-fits{ padding:8px 18px 0; }
.woocommerce ul.products li.product .imi-swatches{ padding:10px 18px 0; }
.imi-loop-data{ padding:10px 18px 0; }
/* Число колонок задаёт ползунок «Колонок в каталоге» (--imi-cols). */
@media (min-width: 1400px){ .woocommerce ul.products{ grid-template-columns: repeat(var(--imi-cols, 4), 1fr); } }

/* Шапка архива: заголовок, счётчик, сортировка */
.woocommerce-products-header{ padding-block: clamp(22px, 3vw, 44px) 10px; }
.woocommerce-products-header .page-title, .imi-archive-title{ color: var(--imi-white); }
.term-description{ color: var(--imi-ash); }
.woocommerce .woocommerce-result-count{ margin:0; padding-block: 14px; }
.woocommerce .woocommerce-ordering{ margin:0 0 14px; }
.woocommerce .woocommerce-ordering select{ min-height: 44px; border-radius:var(--imi-r); background: var(--imi-void); color: var(--imi-bone); }
.woocommerce .products + .woocommerce-pagination{ margin-top: 40px; }

/* Фильтры и виджеты каталога — светлые карточки */
.wpc-filters-widget, .wpc-filters-section, .widget_layered_nav, .widget_price_filter,
.woocommerce-widget-layered-nav, .widget_product_categories, .widget_rating_filter{
  background: var(--imi-void); border: 1px solid var(--imi-edge); border-radius:var(--imi-r-lg);
  padding:18px 20px; margin-bottom: 16px;
}
.wpc-filters-widget .widgettitle, .widget_layered_nav .widgettitle, .widget_price_filter .widgettitle,
.woocommerce-widget-layered-nav .widget-title, .widget_product_categories .widget-title,
.wpc-filter-title{
  font-family: var(--imi-fd); font-weight: 700; font-size: 1.02rem;
  letter-spacing: .02em; color: var(--imi-bone); margin:0 0 12px;
}
.woocommerce-widget-layered-nav-list a, .widget_product_categories a{ color: var(--imi-ash); text-decoration: none; }
.woocommerce-widget-layered-nav-list a:hover, .widget_product_categories a:hover{ color: var(--imi-bone); }
.woocommerce-widget-layered-nav-list .chosen a, .wpc-term-item-content.wpc-term-item-content-selected{ color: var(--imi-gold-2); font-weight: 600; }
.widget_price_filter .ui-slider .ui-slider-range{ background: var(--imi-gold); }
.widget_price_filter .ui-slider .ui-slider-handle{ background: var(--imi-ink); border-radius:50%; }
.widget_price_filter .price_slider_wrapper .ui-widget-content{ background: var(--imi-edge); }

/* --- Карточка товара: две колонки на десктопе --------------------------- */
/* Только классический шаблон WooCommerce: у шаблона Elementor (elementor-location-single)
   класс product висит на обёртке всей страницы — её в сетку превращать нельзя. */
@media (min-width: 992px){
  .woocommerce div.product:has(> .summary):has(> div.images){
    display: grid; grid-template-columns: minmax(0, 54%) minmax(0, 1fr);
    column-gap: clamp(28px, 3vw, 56px); row-gap: 0; align-items: start;
  }
  .woocommerce div.product.elementor, .woocommerce div.product.elementor-location-single{ display: block; }
  .woocommerce div.product > div.images{ grid-column: 1; grid-row: 1; width: 100% !important; float: none !important; margin:0 !important; }
  .woocommerce div.product > .summary{ grid-column: 2; grid-row: 1; width: 100% !important; float: none !important; margin:0 !important; }
  .woocommerce div.product > .woocommerce-tabs,
  .woocommerce div.product > .related,
  .woocommerce div.product > .upsells,
  .woocommerce div.product > .woocommerce-product-gallery + .clear{ grid-column: 1 / -1; }
  .woocommerce div.product > span.onsale{ grid-column: 1; grid-row: 1; }
}
.woocommerce div.product .summary{ display: flex; flex-direction: column; gap: 16px; }
.woocommerce div.product .summary > *{ margin:0 !important; }
.woocommerce div.product .product_title{ color: var(--imi-white); font-weight: 800; letter-spacing: -.01em; line-height: .95; }
.woocommerce div.product p.price{ font-weight: 700; font-size: clamp(1.8rem, 2.6vw, 2.3rem); color: var(--imi-bone); }
.woocommerce div.product p.price ins{ color: var(--imi-sig); }
.woocommerce div.product form.cart{ display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.woocommerce div.product form.cart .variations{ width: 100%; margin:0; }
.woocommerce div.product form.cart .variations select{ min-height: 48px; width: 100%; border-radius:var(--imi-r); }
.woocommerce div.product form.cart .button{ flex: 1 1 220px; }
.woocommerce .quantity .qty{ min-height: 50px; width: 74px; text-align: center; border-radius:var(--imi-r); }
.woocommerce div.product .product_meta{ font-size: .76rem; }

/* Галерея: светлая, тонкие рамки, активная миниатюра — золото */
.woocommerce div.product .woocommerce-product-gallery__image{ border: 0; overflow: hidden; }
.woocommerce div.product .woocommerce-product-gallery__image img{ display: block; }
.woocommerce div.product .flex-control-thumbs li{ overflow: hidden; background: var(--imi-photo-bg); }
.woocommerce div.product .flex-control-thumbs li img{ opacity: 1; mix-blend-mode: multiply; }
.woocommerce div.product .flex-control-thumbs li img.flex-active{ outline: 0; }
.woocommerce div.product .flex-direction-nav a{ background: rgba(255,255,255,.94); color: var(--imi-on-plate); border-radius:50%; box-shadow:inset 0 0 0 1px #E4E4E4, var(--imi-shadow); }
.woocommerce div.product .flex-direction-nav a:hover{ background: #161616; color: #FFFFFF; }
.woocommerce div.product .woocommerce-product-gallery__trigger{ background: rgba(255,255,255,.94); color: var(--imi-on-plate); box-shadow:inset 0 0 0 1px #E4E4E4, var(--imi-shadow); border-radius:50%; }

/* Вкладки описания */
.woocommerce div.product .woocommerce-tabs{ margin-top: clamp(30px, 4vw, 56px); }
.woocommerce div.product .woocommerce-tabs ul.tabs{ background: var(--imi-void); box-shadow:inset 0 -1px 0 var(--imi-edge); gap: 0; padding:0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li{ background: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{ color: var(--imi-ash); font-weight: 700; letter-spacing: .02em; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{ color: var(--imi-bone); }
.woocommerce div.product .woocommerce-tabs .panel{ box-shadow:none; border: 1px solid var(--imi-edge); border-top: 0; border-radius:0 0 var(--imi-r-lg) var(--imi-r-lg); background: var(--imi-void); }

/* Похожие товары */
.woocommerce .related > h2, .woocommerce .upsells > h2, .woocommerce .cross-sells > h2{
  font-family: var(--imi-fd); font-weight: 800;
  font-size: clamp(1.5rem, 2.4vw, 2rem); color: var(--imi-white); margin:clamp(34px,4vw,56px) 0 20px;
}

/* --- Корзина ------------------------------------------------------------- */
.woocommerce-cart table.shop_table{ background: var(--imi-void); border-radius:var(--imi-r-lg); overflow: hidden; }
.woocommerce table.shop_table td{ color: var(--imi-text); }
.woocommerce table.shop_table td.product-name a{ color: var(--imi-bone); }
.woocommerce table.shop_table td.product-thumbnail a{ border: 1px solid var(--imi-edge); border-radius:var(--imi-r); overflow: hidden; }
.woocommerce table.shop_table td.product-price, .woocommerce table.shop_table td.product-subtotal{ color: var(--imi-bone); font-weight: 600; }
.woocommerce a.remove{ color: var(--imi-ash-2) !important; font-weight: 400; }
.woocommerce a.remove:hover{ background: none !important; color: var(--imi-sig) !important; }
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review{
  background: var(--imi-void); box-shadow:inset 0 0 0 1px var(--imi-edge), var(--imi-shadow);
  border-radius:var(--imi-r-lg); padding:clamp(20px, 2.4vw, 28px);
}
.woocommerce-cart .cart_totals table.shop_table{ box-shadow:none; }
.woocommerce-cart .cart_totals table.shop_table th{ background: none; }
.woocommerce .cart-collaterals h2, .woocommerce-checkout h3, .woocommerce-checkout h3#order_review_heading{
  font-family: var(--imi-fd); font-weight: 800; font-size: 1.24rem;
  color: var(--imi-white); margin:0 0 16px;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button{ width: 100%; text-align: center; }
.woocommerce-cart .coupon .input-text{ min-height: 50px; }
.woocommerce-cart-form__cart-item.cart_item td{ vertical-align: middle; }

/* --- Оформление заказа --------------------------------------------------- */
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2{ width: 100%; float: none; }
@media (min-width: 992px){
  .woocommerce-checkout form.checkout.woocommerce-checkout{ display: grid; grid-template-columns: minmax(0,1fr) minmax(0,420px); gap: clamp(24px,3vw,44px); align-items: start; }
  .woocommerce-checkout form.checkout > #customer_details{ grid-column: 1; }
  .woocommerce-checkout form.checkout > h3#order_review_heading{ grid-column: 2; grid-row: 1; margin-bottom: 12px; }
  .woocommerce-checkout form.checkout > #order_review{ grid-column: 2; grid-row: 2; position: sticky; top: 130px; }
  .woocommerce-checkout .col2-set{ display: grid; gap: 8px; }
}
.woocommerce-checkout #customer_details .woocommerce-billing-fields,
.woocommerce-checkout #customer_details .woocommerce-shipping-fields,
.woocommerce-checkout #customer_details .woocommerce-additional-fields{
  background: var(--imi-void); border: 1px solid var(--imi-edge); border-radius:var(--imi-r-lg);
  padding:clamp(18px, 2.2vw, 26px); margin-bottom: 16px;
}
.woocommerce-checkout #customer_details h3{ font-size: 1.14rem; }
.woocommerce #payment{ background: none; border-radius:0; }
.woocommerce #payment ul.payment_methods{ background: var(--imi-steel); border-radius:var(--imi-r); padding:14px 16px; margin:0 0 16px; }
.woocommerce #payment ul.payment_methods li{ color: var(--imi-bone); }
.woocommerce #payment div.payment_box{ background: var(--imi-void); color: var(--imi-text); border: 1px solid var(--imi-edge); border-radius:var(--imi-r); }
.woocommerce #payment #place_order{ width: 100%; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{ font-size: .9rem; color: var(--imi-ash); }
.woocommerce-order, .woocommerce-order-details, .woocommerce-customer-details{ color: var(--imi-text); }
.woocommerce ul.order_details{ background: var(--imi-steel); border-radius:var(--imi-r-lg); padding:20px; }
.woocommerce ul.order_details li{ border-left: 1px solid var(--imi-edge); color: var(--imi-ash-2); }
.woocommerce ul.order_details li strong{ color: var(--imi-bone); }

/* --- Личный кабинет ------------------------------------------------------ */
.woocommerce-MyAccount-navigation ul{ background: var(--imi-void); box-shadow:none; border: 1px solid var(--imi-edge); border-radius:var(--imi-r-lg); overflow: hidden; gap: 0; }
.woocommerce-MyAccount-navigation li{ border-bottom: 1px solid var(--imi-edge); }
.woocommerce-MyAccount-navigation li:last-child{ border-bottom: 0; }
.woocommerce-MyAccount-navigation li a{ color: var(--imi-ash); font-weight: 700; font-size: 1.02rem; border-right: 3px solid transparent; }
.woocommerce-MyAccount-navigation li a:hover{ background: var(--imi-steel); color: var(--imi-bone); }
.woocommerce-MyAccount-navigation li.is-active a{ background: var(--imi-steel); color: var(--imi-bone); border-right-color: var(--imi-gold); }
.woocommerce-MyAccount-content{ color: var(--imi-text); }
.woocommerce-MyAccount-content a:not(.button){ color: var(--imi-bone); }
.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword,
.woocommerce-EditAccountForm, .woocommerce-address-fields{
  background: var(--imi-void); box-shadow:inset 0 0 0 1px var(--imi-edge), var(--imi-shadow);
  border-radius:var(--imi-r-lg); padding:clamp(20px, 2.4vw, 28px);
}
.woocommerce-Addresses .woocommerce-Address{ background: var(--imi-void); border: 1px solid var(--imi-edge); border-radius:var(--imi-r-lg); padding:20px; }
.woocommerce-Address-title h3{ font-size: 1.1rem; }

/* --- Поля форм ----------------------------------------------------------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-cart .coupon .input-text,
.select2-container--default .select2-selection--single{
  min-height: 50px; border-radius:var(--imi-r); background: var(--imi-void); color: var(--imi-bone);
  box-shadow:inset 0 0 0 1px var(--imi-edge); border: 0;
}
.woocommerce form .form-row input.input-text::placeholder, .woocommerce form .form-row textarea::placeholder{ color: var(--imi-ash-2); }
.woocommerce form .form-row label{ color: var(--imi-ash-2); margin-bottom: 6px; display: block; }
.woocommerce form .form-row.woocommerce-invalid input.input-text{ box-shadow:inset 0 0 0 1px var(--imi-sig); }
.woocommerce form .form-row.woocommerce-validated input.input-text{ box-shadow:inset 0 0 0 1px var(--imi-ok); }
.select2-container--default .select2-selection--single .select2-selection__rendered{ line-height: 50px; color: var(--imi-bone); padding-right: 14px; }
.select2-container--default .select2-selection--single .select2-selection__arrow{ height: 50px; }
.select2-dropdown{ background: var(--imi-void); border-color:var(--imi-edge); color: var(--imi-bone); }
.select2-container--default .select2-results__option--highlighted[aria-selected]{ background: var(--imi-gold); color: var(--imi-on-gold); }

/* --- Пагинация, хлебные крошки, пустые состояния ------------------------- */
.woocommerce nav.woocommerce-pagination ul{ background: none; box-shadow:none; gap: 6px; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  background: var(--imi-void); color: var(--imi-ash); border-radius:var(--imi-r);
  box-shadow:inset 0 0 0 1px var(--imi-edge); font-weight: 700;
}
.woocommerce nav.woocommerce-pagination ul li a:hover{ background: var(--imi-steel); color: var(--imi-bone); }
.woocommerce nav.woocommerce-pagination ul li span.current{ background: var(--imi-ink); color: var(--imi-on-ink); box-shadow:none; }
.woocommerce-breadcrumb{ border-bottom: 1px solid var(--imi-edge); }
.woocommerce .cart-empty, .woocommerce-info{ color: var(--imi-text); }
.woocommerce .return-to-shop{ margin-top: 16px; }

/* --- Мини-корзина Elementor / виджет ------------------------------------- */
.elementor-menu-cart__container, .widget_shopping_cart_content{ background: var(--imi-void); color: var(--imi-bone); }
.elementor-menu-cart__product{ border-bottom: 1px solid var(--imi-edge); }
.elementor-menu-cart__product-image, .woocommerce-mini-cart li img{ border: 1px solid var(--imi-edge); border-radius:var(--imi-r); }
.woocommerce.widget_shopping_cart .total{ border-top: 1px solid var(--imi-edge); color: var(--imi-bone); }

/* --- Телефон ------------------------------------------------------------- */
@media (max-width: 767px){
  .woocommerce ul.products{ gap: 12px; grid-template-columns: repeat(2, 1fr); }
  .woocommerce ul.products li.product .woocommerce-loop-product__title{ font-size: .98rem; padding:6px 12px 0; }
  .woocommerce ul.products li.product .price{ font-size: 1.1rem; padding:6px 12px 12px; }
  .woocommerce ul.products li.product .imi-loop-cat{ padding:12px 12px 0; }
  .woocommerce ul.products li.product .imi-loop-fits, .woocommerce ul.products li.product .imi-swatches, .imi-loop-data{ padding-right: 12px; padding-left: 12px; }
  .woocommerce ul.products li.product .button{ margin:10px 12px 12px; }
  .woocommerce div.product .summary{ gap: 14px; }
  .woocommerce div.product .woocommerce-tabs .panel{ border-radius:0; }
  .woocommerce-cart table.shop_table_responsive tr{ background: var(--imi-void); border: 1px solid var(--imi-edge); border-radius:var(--imi-r-lg); display: block; margin-bottom: 12px; }
  .woocommerce-cart table.shop_table_responsive tr td{ border-bottom: 1px solid var(--imi-edge); }
  .woocommerce-cart table.shop_table_responsive tr td:last-child{ border-bottom: 0; }
}
@media (max-width: 767px){ .woocommerce-breadcrumb{ font-size: .72rem; padding-block: 12px; } }

/* Старая вёрстка карточек (кэш, ещё не обновлённые страницы) могла содержать
   второй кадр для наведения — он больше не используется и всегда скрыт. */
.woocommerce ul.products li.product .imi-loop-alt{ display: none !important; }

/* --- Общий каталог: только категории --------------------------------------- */
body.imi-shop-categories ul.products{ grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 1.8vw, 26px); }
body.imi-shop-categories ul.products li.product-category{ min-height: 0; }
body.imi-shop-categories ul.products li.product-category > a{ min-height: clamp(220px, 22vw, 320px); }
body.imi-shop-categories ul.products li.product-category h2.woocommerce-loop-category__title{ font-size: clamp(1.15rem, 1.5vw, 1.6rem); right: 20px; left: 20px; bottom: 18px; }
body.imi-shop-categories ul.products li.product-category img{ padding:8%; }
body.imi-shop-categories .woocommerce-products-header{ padding-bottom: 6px; }
/* Сортировать в списке категорий нечего — виджет Elementor тоже прячем */
body.imi-shop-categories .woocommerce-result-count,
body.imi-shop-categories .woocommerce-ordering{ display: none; }
@media (max-width: 1024px){ body.imi-shop-categories ul.products{ grid-template-columns: repeat(var(--imi-cols-m, 2), 1fr); } }
@media (max-width: 560px){
  body.imi-shop-categories ul.products{ grid-template-columns: repeat(2, 1fr); gap: 12px; }
  body.imi-shop-categories ul.products li.product-category > a{ min-height: 180px; }
}

/* --- Ровная сетка каталога: одинаковая высота карточек и линия кнопок ------
   Товары без цены (READ MORE) и с ценой раньше давали рваный низ ряда.
   Ряд сетки тянет карточки на одну высоту, название держит две строки,
   а цена и кнопка прижаты к низу — кнопки всех карточек на одной линии. */
.woocommerce ul.products{ align-items: stretch; }
.woocommerce ul.products li.product{ height: 100%; display: flex; flex-direction: column; }
.woocommerce ul.products li.product > a:not(.button){ display: block; }
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  min-height: 2.2em; display: block;
}
.woocommerce ul.products li.product .price{ margin-top: auto; padding-top: 10px; }
.woocommerce ul.products li.product .button{ margin-top: auto; }
.woocommerce ul.products li.product .price + .button,
.woocommerce ul.products li.product .price ~ .button{ margin-top: 12px; }
/* Снимок занимает одинаковую долю карточки у всех товаров */
.woocommerce ul.products li.product .imi-loop-plate{ flex: none; }
@media (max-width: 767px){
  .woocommerce ul.products li.product .woocommerce-loop-product__title{ min-height: 2.4em; }
}

/* --- Сетка товаров всегда на фоне страницы --------------------------------
   Снимки IMI сняты на белом. В светлой теме их фон растворяется режимом
   смешивания, но некоторые браузеры (Safari на iPhone) отключают смешивание
   внутри слоёв — и вокруг снимка появляется белый квадрат. Поэтому раздел,
   где стоит сетка товаров, держим на фоне страницы: тогда белый фон снимка
   не виден ни при каком раскладе. */
.elementor-element.e-con:has(> .e-con-inner ul.products),
.elementor-element.e-con:has(> ul.products){
  background-color: var(--imi-void);
}


/* ==========================================================================
   §. Витрина 2.7 — каталог, категория-лендинг и карточка товара
   Карточка каталога: крупное фото, рубрика, название, цена — и ничего лишнего;
   вся карточка это одна ссылка. Кнопки в списке выключены (включаются в
   Customize → «IMI — Каталог»). Идёт последним в файле и перекрывает прежнее.
   ========================================================================== */

/* --- Сетка и карточка ----------------------------------------------------- */
.woocommerce ul.products{
  grid-template-columns: repeat(var(--imi-cols, 4), minmax(0, 1fr));
  gap: clamp(18px, 2vw, 30px);
  background: none;
  box-shadow:none;
}
@media (max-width: 1100px){ .woocommerce ul.products{ grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 820px){ .woocommerce ul.products{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px){ .woocommerce ul.products{ gap: 14px; } }

.woocommerce ul.products li.product{ background: none; box-shadow:none; }
.woocommerce ul.products li.product > a:not(.button){ display: flex; flex-direction: column; gap: 10px; height: 100%; text-decoration: none; }
.woocommerce ul.products li.product .imi-loop-plate{ margin:0; border-radius:var(--imi-r); }

.woocommerce ul.products li.product .imi-loop-cat{
  display: block; padding:0; margin:0;
  font-family: var(--imi-fm); font-weight: 500; font-size: .63rem;
  letter-spacing: .02em; text-transform: uppercase; color: var(--imi-ash-2);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family: var(--imi-fb); font-weight: 500; font-size: .96rem; line-height: 1.35;
  letter-spacing: 0; color: var(--imi-bone); padding:0; margin:0; min-height: 0;
  transition: color .15s;
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title{ color: var(--imi-gold-2); }
.woocommerce ul.products li.product .price{
  font-family: var(--imi-fd); font-weight: 600; font-size: 1.12rem; line-height: 1.2;
  color: var(--imi-bone); padding:0; margin-top: auto; padding-top: 4px;
}
.woocommerce ul.products li.product .price del{ font-size: .82rem; }
.imi-loop-data{ padding:0; font-size: .8rem; color: var(--imi-ash); }

/* Бейджи наличия — спокойная строка над фото, без плашек */
.woocommerce ul.products li.product .imi-badges{
  position: absolute; top: 2px; left: 0; z-index: 3; display: flex; gap: 8px;
}
.woocommerce ul.products li.product .imi-badge{
  background: none; border: 0; padding:0; border-radius:0;
  font-family: var(--imi-fb); font-weight: 500; font-size: .72rem; letter-spacing: 0;
  text-transform: none; color: var(--imi-ash-2);
}
.woocommerce ul.products li.product .imi-badge--stock{ color: var(--imi-ok); }
.woocommerce ul.products li.product .imi-badge--out{ color: var(--imi-ash-2); }
.woocommerce ul.products li.product .imi-badge--optics{ display: none; }

/* Кнопка в каталоге (если её включили) */
.woocommerce ul.products li.product .button{
  margin:10px 0 0; padding:11px 16px; border-radius:var(--imi-r);
  font-family: var(--imi-fb); font-weight: 500; font-size: .86rem; letter-spacing: 0;
  background: var(--imi-void); color: var(--imi-bone); box-shadow:inset 0 0 0 1px var(--imi-edge-2);
}
.woocommerce ul.products li.product .button:hover{ background: var(--imi-ink); color: var(--imi-on-ink); box-shadow:inset 0 0 0 1px var(--imi-ink); }

/* --- Шапка категории ------------------------------------------------------ */
.woocommerce .woocommerce-products-header{ padding-block: clamp(22px, 3vw, 40px) 0; }
.woocommerce .woocommerce-products-header__title, .woocommerce h1.page-title{
  font-family: var(--imi-fd); font-weight: 600; font-size: clamp(1.9rem, 3.2vw, 2.6rem);
  line-height: 1.06; letter-spacing: -.028em; text-transform: none; margin:0 0 10px;
}
.woocommerce .term-description{ max-width: 68ch; font-size: .98rem; line-height: 1.65; color: var(--imi-text); }
.woocommerce .term-description p{ margin:0 0 10px; }
.imi-cathero__stats{ display: flex; gap: 22px; flex-wrap: wrap; font-size: .88rem; color: var(--imi-ash-2); margin:6px 0 18px; }
.imi-cathero__stats b{ color: var(--imi-bone); font-weight: 600; }
.imi-cathero__stats .woocommerce-Price-amount{ font-weight: 600; color: var(--imi-bone); }

/* Подборка «выбор редакции» над сеткой */
.imi-picks{ margin:8px 0 34px; padding:clamp(20px, 2.4vw, 30px); background: var(--imi-steel); border-radius:var(--imi-r-lg); }
.imi-picks__head{ display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.imi-picks__head h2{ margin:0; font-size: clamp(1.25rem, 1.8vw, 1.5rem); }
.imi-picks__head span{ font-size: .82rem; color: var(--imi-ash-2); }
.imi-picks__grid{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.imi-picks__c{ display: flex; flex-direction: column; gap: 10px; background: var(--imi-void); border: 1px solid var(--imi-card-edge);
  border-radius:var(--imi-r); padding:16px; text-decoration: none; color: inherit; }
.imi-picks__ph{ display: block; aspect-ratio: 1/1; }
.imi-picks__ph img{ width: 100%; height: 100%; object-fit: contain; padding:6%; mix-blend-mode: multiply; display: block; }
.imi-picks__n{ font-size: .9rem; font-weight: 500; line-height: 1.35; flex-grow: 1; }
.imi-picks__c:hover .imi-picks__n{ color: var(--imi-gold-2); }
.imi-picks__p{ font-family: var(--imi-fd); font-weight: 600; font-size: 1.02rem; }
@media (max-width: 1100px){ .imi-picks__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px){ .imi-picks__grid{ grid-template-columns: minmax(0, 1fr); } }

/* --- Карточка товара ------------------------------------------------------ */
.woocommerce div.product .product_title{
  font-family: var(--imi-fd); font-weight: 600;
  font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1.12; letter-spacing: -.025em; text-transform: none;
}
.woocommerce div.product p.price, .woocommerce div.product span.price{
  font-family: var(--imi-fd); font-weight: 600; letter-spacing: -.02em;
  font-size: clamp(1.5rem, 2vw, 1.8rem); color: var(--imi-bone);
}
.woocommerce div.product .woocommerce-product-details__short-description{ font-size: .98rem; line-height: 1.65; color: var(--imi-text); }
.woocommerce div.product form.cart .button{
  font-family: var(--imi-fb); font-weight: 500; font-size: .98rem; letter-spacing: 0;
  text-transform: none; border-radius:var(--imi-r); min-height: 54px; padding:0 32px;
  background: var(--imi-ink); color: var(--imi-on-ink);
}
.woocommerce div.product form.cart .button:hover{ background: var(--imi-ink-2); color: var(--imi-on-ink); }
.woocommerce div.product .imi-trust{ list-style: none; margin:16px 0 0; padding:14px 0 0; border-top: 1px solid var(--imi-edge);
  display: flex; gap: 20px; flex-wrap: wrap; font-size: .8rem; color: var(--imi-ash-2); }
.woocommerce div.product .imi-trust a{ color: var(--imi-ash-2); text-decoration: underline; text-underline-offset: 3px; }

/* Блок совместимости */
.imi-fits{ border: 1px solid var(--imi-edge); border-radius:var(--imi-r); background: var(--imi-steel);
  padding:14px 16px; margin:18px 0; display: flex; flex-direction: column; gap: 8px; }
.imi-fits__t{ font-family: var(--imi-fm); font-weight: 500; font-size: .63rem; letter-spacing: .02em;
  text-transform: uppercase; color: var(--imi-ash-2); }
.imi-fits__row{ display: flex; gap: 12px; font-size: .92rem; line-height: 1.5; }
.imi-fits__k{ flex: none; width: 34%; max-width: 190px; color: var(--imi-ash); }
.imi-fits__v{ color: var(--imi-bone); }
.imi-fits__ask{ font-size: .86rem; font-weight: 500; color: var(--imi-gold-2); text-decoration: none; }

/* Три карточки сервиса */
.imi-svc{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); margin:clamp(32px, 4vw, 56px) 0; }
.imi-svc__c{ display: flex; flex-direction: column; gap: 10px; padding:clamp(20px, 2.2vw, 26px);
  border: 1px solid var(--imi-edge); border-radius:var(--imi-r-lg); text-decoration: none; color: inherit;
  background: var(--imi-void); transition: border-color .15s; }
.imi-svc__c:hover{ border-color:var(--imi-edge-2); }
.imi-svc__c--soft{ background: var(--imi-steel); }
.imi-svc__c .imi-ico{ width: 22px; height: 22px; color: var(--imi-gold-2); stroke-width: 1.6; }
.imi-svc__h{ font-family: var(--imi-fd); font-weight: 600; font-size: 1.06rem; letter-spacing: -.015em; }
.imi-svc__p{ font-size: .88rem; line-height: 1.55; color: var(--imi-text); }
.imi-svc__l{ margin-top: auto; padding-top: 6px; font-size: .86rem; font-weight: 500; color: var(--imi-gold-2); }
@media (max-width: 860px){ .imi-svc{ grid-template-columns: minmax(0, 1fr); } }

/* Часто покупают вместе */
.imi-fbt{ --imi-fbt-w: 168px; margin:clamp(32px, 4vw, 56px) 0; padding:clamp(22px, 2.6vw, 32px); background: var(--imi-steel);
  border: 1px solid var(--imi-edge); border-radius:var(--imi-r); }
.imi-fbt__head{ display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.imi-fbt__head h2{ margin:0; font-size: clamp(1.25rem, 1.8vw, 1.5rem); }
.imi-fbt__head span{ font-size: .82rem; color: var(--imi-ash-2); }

/* Ряд выравнивается по верху, а не по центру: у карточек разная высота —
   название в одну или две строки, у части товаров цены нет вовсе, — и при
   выравнивании по центру снимки разъезжались по вертикали. Знак «+» получает
   высоту, равную снимку, поэтому стоит ровно посередине картинок. */
.imi-fbt__row{ display: flex; align-items: flex-start; gap: 14px; flex-wrap: wrap; }
.imi-fbt__plus{ flex: none; height: var(--imi-fbt-w); display: grid; place-items: center;
  font-size: 1.2rem; color: var(--imi-ash-2); }
.imi-fbt__c{ width: var(--imi-fbt-w); display: flex; flex-direction: column; gap: 8px;
  text-decoration: none; color: inherit; align-self: stretch; }
.imi-fbt__ph{ display: block; aspect-ratio: 1/1; background: var(--imi-photo-bg);
  border: 1px solid var(--imi-card-edge); border-radius:var(--imi-r); }
.imi-fbt__ph img{ width: 100%; height: 100%; object-fit: contain; padding:8%; mix-blend-mode: multiply; display: block; }
.imi-fbt__n{ font-size: .86rem; line-height: 1.4; }
/* Цена прижата к низу карточки, поэтому цены стоят в одну линию даже когда
   названия разной длины, а у части товаров цены нет. */
.imi-fbt__p{ margin-top: auto; padding-top: 2px; font-family: var(--imi-fd); font-weight: 600; font-size: .98rem; }
.imi-fbt__p:empty{ display: none; }
.imi-fbt__sum{ display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 20px;
  padding-top: 18px; border-top: 1px solid var(--imi-edge); }
.imi-fbt__total{ font-size: .92rem; color: var(--imi-ash); }
.imi-fbt__total b{ font-family: var(--imi-fd); font-weight: 600; font-size: 1.2rem; color: var(--imi-bone); margin-right: 6px; }
.imi-fbt__hint{ font-size: .84rem; color: var(--imi-ash-2); }
.imi-fbt__go{ margin-right: auto; }
@media (max-width: 860px){ .imi-fbt{ --imi-fbt-w: 140px; } }
@media (max-width: 640px){
  .imi-fbt{ --imi-fbt-w: calc(50% - 22px); }
  .imi-fbt__plus{ height: auto; align-self: center; }
  .imi-fbt__go{ margin-right: 0; width: 100%; justify-content: center; }
}

/* Похожие товары и апселлы — та же чистая карточка */
.woocommerce .related > h2, .woocommerce .upsells > h2, .woocommerce .cross-sells > h2{
  font-family: var(--imi-fd); font-weight: 600; font-size: clamp(1.25rem, 1.8vw, 1.5rem);
  letter-spacing: -.02em; text-transform: none; margin:0 0 20px;
}
/* Апселлы уже показаны блоком «часто покупают вместе» — второй раз не нужны */
.woocommerce .upsells.products{ display: none; }

/* --- Вкладки, таблицы, отзывы --------------------------------------------- */
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  font-family: var(--imi-fb); font-weight: 500; font-size: .92rem; letter-spacing: 0; text-transform: none;
}
.woocommerce table.shop_attributes th{ font-family: var(--imi-fb); font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--imi-ash); }
.woocommerce #reviews #comments h2, .woocommerce #review_form #respond h3{
  font-family: var(--imi-fd); font-weight: 600; letter-spacing: -.02em; text-transform: none;
}
.woocommerce #reviews .woocommerce-review__verified{ color: var(--imi-ok); font-weight: 500; }
.woocommerce .star-rating span::before, .woocommerce p.stars a::before{ color: var(--imi-gold); }

/* --- Корзина, оформление, аккаунт: те же кнопки и поля --------------------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt{
  font-family: var(--imi-fb); font-weight: 500; letter-spacing: 0; text-transform: none;
  border-radius:var(--imi-r);
}
.woocommerce-cart table.cart th, .woocommerce-checkout table.shop_table th,
.woocommerce-account table.my_account_orders th{
  font-family: var(--imi-fb); font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--imi-ash);
}
.woocommerce form .form-row label{ font-family: var(--imi-fb); font-weight: 500; font-size: .88rem; letter-spacing: 0; text-transform: none; color: var(--imi-ash); }


/* ==========================================================================
   §. Подбор по совместимости, дилерский портал и нетто-цены
   ========================================================================== */

/* --- Панель подбора над сеткой категории ---------------------------------- */
.imi-fitbar{
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  background: var(--imi-steel); border-radius:var(--imi-r-lg);
  padding:14px 16px; margin:0 0 24px;
}
.imi-fitbar__t{ font-family: var(--imi-fd); font-weight: 600; font-size: 1rem; letter-spacing: -.015em; flex: none; }
.imi-fitbar select{
  height: 44px; min-width: 170px; padding:0 12px; border: 1px solid var(--imi-edge-2);
  border-radius:var(--imi-r); background: var(--imi-void); color: var(--imi-bone);
  font-family: var(--imi-fb); font-size: .92rem;
}
.imi-fitbar__stock{ display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; color: var(--imi-text); }
.imi-fitbar__clear{ font-size: .86rem; color: var(--imi-ash); text-decoration: underline; text-underline-offset: 3px; }
.imi-fitbar__ask{ font-size: .86rem; color: var(--imi-gold-2); margin-right: auto; }
@media (max-width: 720px){
  .imi-fitbar{ gap: 10px; }
  .imi-fitbar select, .imi-fitbar__f{ width: 100%; }
  .imi-fitbar__ask{ margin-right: 0; }
}

/* --- Нетто-цена дилера ----------------------------------------------------- */
.imi-net{ display: inline-flex; align-items: baseline; gap: 10px; }
.imi-net del{ color: var(--imi-ash-2); font-weight: 400; font-size: .82em; }
.imi-net__t{
  display: block; margin-top: 4px;
  font-family: var(--imi-fm); font-weight: 500; font-size: .63rem;
  letter-spacing: .02em; text-transform: uppercase; color: var(--imi-trade);
}

/* --- Дилерский портал ------------------------------------------------------ */
.imi-portal{ display: flex; flex-direction: column; gap: 22px; }
.imi-portal--gate{ max-width: 520px; margin-inline: auto; gap: 16px; }
.imi-portal__gatehead h2{ margin:0 0 8px; font-size: clamp(1.4rem, 2.2vw, 1.8rem); }
.imi-portal__gatehead p{ margin:0; color: var(--imi-text); }
.imi-portal__apply{ font-size: .92rem; color: var(--imi-text); display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.imi-portal__apply a{ color: var(--imi-gold-2); }
.imi-portal__apply .imi-btn{ color: inherit; }

.imi-portal__top{ display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.imi-portal__top h2{ margin:0 0 4px; font-size: clamp(1.4rem, 2.2vw, 1.75rem); }
.imi-portal__meta{ margin:0; font-size: .88rem; color: var(--imi-ash-2); }
.imi-portal__tier{
  display: inline-flex; align-items: center; gap: 8px; background: var(--imi-trade); color: var(--imi-on-trade);
  border-radius:40px; padding:8px 15px; font-size: .88rem; font-weight: 500;
}
.imi-portal__kpi{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.imi-portal__kpi > div{ background: var(--imi-void); border: 1px solid var(--imi-edge); border-radius:var(--imi-r); padding:14px 16px; display: flex; flex-direction: column; gap: 6px; }
.imi-portal__kpi b{ font-family: var(--imi-fd); font-weight: 600; font-size: 1.5rem; letter-spacing: -.02em; }
.imi-portal__grid{ display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 22px; align-items: start; }
.imi-portal__main, .imi-portal__side{ display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.imi-portal__card{ background: var(--imi-void); border: 1px solid var(--imi-edge); border-radius:var(--imi-r-lg); padding:20px; display: flex; flex-direction: column; gap: 12px; }
.imi-portal__card h3{ margin:0; font-size: 1.12rem; }
.imi-portal__card p{ margin:0; font-size: .9rem; line-height: 1.55; color: var(--imi-text); }
.imi-portal__cardhead{ display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.imi-portal__cardhead span{ font-size: .82rem; color: var(--imi-ash-2); }
.imi-portal__cardhead a{ font-size: .86rem; color: var(--imi-gold-2); }
.imi-portal__card--trade{ background: var(--imi-trade); color: var(--imi-on-trade); border-color:var(--imi-trade); }
.imi-portal__card--trade h3{ color: var(--imi-on-trade); }
.imi-portal__card--trade p{ color: var(--imi-trade-mute); }

.imi-portal__table{ width: 100%; border-collapse: collapse; font-size: .88rem; }
.imi-portal__table th{ text-align: right; font-weight: 500; color: var(--imi-ash-2); padding:8px 0 8px 10px; border-bottom: 1px solid var(--imi-edge); }
.imi-portal__table td{ padding:11px 0 11px 10px; border-bottom: 1px solid var(--imi-steel-2); vertical-align: middle; }
.imi-portal__sku{ font-family: var(--imi-fm); font-size: .78rem; color: var(--imi-ash); }
.imi-portal__net{ font-weight: 600; }
.imi-portal__ok{ color: var(--imi-ok); }
.imi-portal__out{ color: var(--imi-ash-2); }
.imi-portal__order{ display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding:12px 0; border-top: 1px solid var(--imi-steel-2); font-size: .9rem; }
.imi-portal__date{ color: var(--imi-ash-2); }
.imi-portal__sum{ flex-grow: 1; }
.imi-portal__status{ border-radius:40px; padding:4px 11px; font-size: .78rem; background: var(--imi-steel-2); color: var(--imi-ash); }
.imi-portal__status--completed{ background: #E8F1EA; color: var(--imi-ok); }
.imi-portal__status--processing{ background: #FBF0DA; color: var(--imi-warn); }
.imi-portal__empty{ font-size: .9rem; color: var(--imi-ash); }
.imi-portal__file{ display: flex; align-items: center; gap: 10px; font-size: .88rem; color: var(--imi-bone); text-decoration: none; }
.imi-portal__file:hover{ color: var(--imi-gold-2); }
.imi-portal__file .imi-ico{ width: 17px; height: 17px; color: var(--imi-gold-2); flex: none; }
.imi-portal__hint{ font-size: .82rem; color: var(--imi-ash-2); }
@media (max-width: 1000px){
  .imi-portal__grid{ grid-template-columns: minmax(0, 1fr); }
  .imi-portal__kpi{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --- Вкладка «Compatibility»: свободный текст любой длины ------------------ */
.woocommerce div.product .woocommerce-tabs .panel .imi-compat{ max-width: 76ch; }
.imi-compat p{ margin:0 0 14px; font-size: .98rem; line-height: 1.7; color: var(--imi-text); }
.imi-compat p:last-child{ margin-bottom: 0; }
.imi-compat h2, .imi-compat h3, .imi-compat h4{ margin:26px 0 10px; }
.imi-compat h3{ font-size: 1.22rem; }
.imi-compat h4{ font-size: 1.06rem; }
.imi-compat ul, .imi-compat ol{ margin:0 0 16px; padding-right: 20px; }
.imi-compat li{ font-size: .98rem; line-height: 1.7; color: var(--imi-text); margin-bottom: 6px; }
.imi-compat li::marker{ color: var(--imi-ash-2); }
.imi-compat strong, .imi-compat b{ color: var(--imi-bone); font-weight: 600; }
.imi-compat a{ color: var(--imi-bone); text-decoration: underline; text-decoration-color: var(--imi-edge-2); text-underline-offset: 3px; }
.imi-compat a:hover{ color: var(--imi-gold-2); text-decoration-color: var(--imi-gold); }
.imi-compat img{ height: auto; border-radius:var(--imi-r); margin:6px 0 16px; }
.imi-compat table{ width: 100%; border-collapse: collapse; margin:0 0 18px; font-size: .94rem; }
.imi-compat th, .imi-compat td{ text-align: right; padding:10px 0 10px 12px; border-bottom: 1px solid var(--imi-edge); vertical-align: top; }
.imi-compat th{ font-weight: 500; color: var(--imi-ash); }
.imi-compat hr{ border: 0; border-top: 1px solid var(--imi-edge); margin:22px 0; }
.imi-compat blockquote{ margin:0 0 16px; padding-right: 16px; border-right: 2px solid var(--imi-gold); color: var(--imi-text); }

/* ==========================================================================
   Верх карточки товара — [imi_product_top] (2.19)

   Раскладка снята с карточки Magpul замерами при ширине 1440: колонка
   покупки 400 px, галерея 747 px, между ними 143 px. Заголовок лёгкого
   начертания 40 px, цена 30 px жирная, кнопка во всю ширину 50 px без
   скруглений, количество отдельной подписанной строкой над кнопкой,
   в строках гарантий первые слова выделены. Цвета и шрифты — наши.
   ========================================================================== */
.imi-pt{ max-width: 400px; }
@media (max-width: 1100px){ .imi-pt{ max-width: none; } }

/* Верхняя служебная строка. */
.imi-pt__top{ display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.imi-pt__top a{
  font: 700 .82rem/1 var(--imi-fb); letter-spacing: .02em; text-transform: uppercase;
  color: var(--imi-ash); text-decoration: none;
}
.imi-pt__top a:hover{ color: var(--imi-bone); }

/* Бейдж — крупный, как у образца. */
.imi-pt__badge{
  display: inline-block; margin-bottom: 16px; padding:5px 14px;
  background: var(--imi-gold); color: var(--imi-on-gold);
  font: 600 1.38rem/1.25 var(--imi-fb); letter-spacing: .01em; text-transform: uppercase;
}

/* Название: лёгкое начертание, крупный кегль. */
.imi-pt__name{
  margin:0; font-family: var(--imi-fd); font-weight: 300;
  font-size: clamp(1.9rem, 2.9vw, 2.5rem); line-height: 1.1; letter-spacing: -.02em;
  color: var(--imi-bone);
}
.imi-pt__name .imi-tm{ font-weight: 400; }

/* Строка позиционирования под названием. */
.imi-pt__tag{
  margin:12px 0 0; font-size: 1rem; line-height: 1.45; color: var(--imi-ash);
}

/* Оценка и артикулы. */
.imi-pt__meta{ margin-top: 18px; display: grid; gap: 6px; }
.imi-pt__rate{ display: flex; align-items: center; gap: 9px; font-size: 1rem; }
.imi-pt__rate b{ font: 600 1rem/1 var(--imi-fb); color: var(--imi-bone); }
.imi-pt__rate span.imi-pt__n{ color: var(--imi-ash); }
.imi-pt__rate a{ font-size: .88rem; color: var(--imi-ash); text-decoration: underline; text-underline-offset: 3px; }
.imi-pt__stars{
  font-size: 1rem; line-height: 1; letter-spacing: .02em;
  background: linear-gradient(270deg, var(--imi-gold) var(--imi-pt-fill,100%), var(--imi-edge) var(--imi-pt-fill,100%));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.imi-pt__ids{ display: grid; gap: 3px; font-size: .88rem; color: var(--imi-ash); }
.imi-pt__ids b{ font-weight: 600; color: var(--imi-bone); }

/* Цена. */
.imi-pt__price{ margin-top: 22px; }
.imi-pt__price .price{
  margin:0; display: flex; align-items: baseline; gap: 12px;
  font: 700 1.9rem/1 var(--imi-fd); color: var(--imi-bone);
}
.imi-pt__price del{ font-size: .58em; font-weight: 500; color: var(--imi-ash-2); opacity: 1; }
.imi-pt__price ins{ text-decoration: none; }

/* Форма покупки: варианты своей строкой, затем количество и кнопка в один
   ряд, а ссылки на PDF — строкой под ними.

   Форма — flex с переносом. Всё, что должно занимать всю ширину (таблица
   вариантов, сообщения, блок ссылок на файлы), получает flex-basis 100% и
   поэтому переносится на свою строку. Выравнивание по нижнему краю: подпись
   «Quantity» стоит над полем, и кнопка встаёт вровень с полем, а не с
   подписью — раньше из-за этого блок выглядел набросанным. */
.imi-pt__buy{ margin-top: 24px; }
.imi-pt__buy form.cart{
  margin:0; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px;
}
/* Всё, что идёт своей строкой. */
.imi-pt__buy form.cart > table.variations,
.imi-pt__buy form.cart > .woocommerce-variation,
.imi-pt__buy form.cart > .woocommerce-variation-description,
.imi-pt__buy form.cart > .woocommerce-variation-availability,
.imi-pt__buy form.cart .imi-docs-dl,
.imi-pt__buy form.cart .imi-trust,
.imi-pt__buy form.cart .stock{ flex: 1 1 100%; margin:0; }

.imi-pt__buy table.variations{ border: 0; }
.imi-pt__buy table.variations th,
.imi-pt__buy table.variations td{ border: 0; padding:0 0 12px; display: block; text-align: right; }
.imi-pt__buy table.variations th label{
  display: block; margin-bottom: 8px;
  font: 600 .92rem/1 var(--imi-fb); color: var(--imi-bone);
}

/* Количество: подпись над полем, сам блок — узкая колонка в ряду. */
.imi-pt__buy .quantity{
  display: flex; flex-direction: column; flex: 0 0 auto; margin:0;
}
.imi-pt__buy .imi-pt__qlabel{
  display: block; margin-bottom: 8px;
  font: 600 .92rem/1 var(--imi-fb); color: var(--imi-bone);
}
.imi-pt__buy .quantity input[type="number"]{
  width: 96px; height: 50px; padding:0 10px; text-align: center;
  border: 1px solid var(--imi-edge); background: var(--imi-void);
  font: 600 1rem var(--imi-fb); color: var(--imi-bone); border-radius:0;
}

/* Кнопка занимает остаток строки. */
.imi-pt__buy .single_add_to_cart_button{
  flex: 1 1 180px; min-width: 0; height: 50px; padding:0 20px;
  border: 0; border-radius:0; cursor: pointer;
  background: var(--imi-gold); color: var(--imi-on-gold);
  font: 700 1.19rem/50px var(--imi-fb); letter-spacing: .02em; text-transform: uppercase;
  transition: background .16s;
}
.imi-pt__buy .single_add_to_cart_button:hover{ background: #FFC24A; }
.imi-pt__buy .single_add_to_cart_button:disabled{
  background: var(--imi-steel-2); color: var(--imi-ash-2); cursor: not-allowed;
}

/* Ряд «количество + в корзину»: выравнивание по нижнему краю.
   ----------------------------------------------------------------------
   Правила выше в этом же файле оказались специфичнее моих и перебивали их:
     строка 500  .woocommerce div.product form.cart            (0,3,2)  align-items: center
     строка 1085 .imi-pt__buy form.cart                        (0,2,1)  align-items: flex-end
     строка 802  .woocommerce div.product form.cart .button    (0,3,2)  min-height: 54px
     строка 1119 .imi-pt__buy .single_add_to_cart_button       (0,2,0)  height: 50px
   В итоге поле количества получалось 50 px и центрировалось по колонке с
   подписью, а кнопка — 54 px: верх расходился на 13 px, низ на 9 px.
   Здесь специфичность поднята до (0,4,x), чтобы победить обе строки, и обе
   высоты сведены к 54 px. Цвет кнопки намеренно не трогаем — он приходит
   со строки 802 и менять его никто не просил. */
.woocommerce div.product .imi-pt__buy form.cart{ align-items: flex-end; }
.woocommerce div.product .imi-pt__buy .quantity input[type="number"]{ height: 54px; }
.woocommerce div.product .imi-pt__buy .single_add_to_cart_button{
  height: 54px; min-height: 54px; line-height: 54px;
}

/* Вариативный товар: WooCommerce кладёт количество и кнопку в свой блок. */
.imi-pt__buy .woocommerce-variation-add-to-cart{
  flex: 1 1 100%; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px;
}

/* Ссылки на PDF — своей строкой под кнопкой, без лишнего отступа сверху. */
.imi-pt__buy .imi-docs-dl{ margin-top: 4px; }

/* Вторая ссылка под кнопкой. */
.imi-pt__alt{
  display: block; margin-top: 12px; text-align: center;
  padding:14px 20px; border: 1px solid var(--imi-edge);
  font: 700 .95rem/1 var(--imi-fb); letter-spacing: .02em; text-transform: uppercase;
  color: var(--imi-bone); text-decoration: none; transition: .16s;
}
.imi-pt__alt:hover{ border-color:var(--imi-bone); background: var(--imi-bone); color: var(--imi-void); }

/* Строка гарантий: значок, выделенное начало, обычное продолжение. */
.imi-pt__trust{
  list-style: none; margin:30px 0 0; padding:0; display: grid; gap: 14px;
}
.imi-pt__trust li{
  margin:0; padding-right: 30px; position: relative;
  font-size: .98rem; line-height: 1.4; color: var(--imi-ash);
}
.imi-pt__trust b{ color: var(--imi-bone); font-weight: 700; }
.imi-pt__trust li::before{
  content: ""; position: absolute; right: 0; top: 1px; width: 19px; height: 19px;
  background: var(--imi-gold);
  -webkit-mask: no-repeat center / 19px url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E");
  mask: no-repeat center / 19px url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E");
}

/* Строка гарантий: значок по смыслу строки (inc/product-top.php →
   imi_pg_product_trust_icon), все значки одного серого цвета. */
.imi-pt__trust li{ --imi-trust-i: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8.5 12.2l2.4 2.4 4.6-4.8'/%3E%3C/svg%3E"); }
.imi-pt__trust li[data-i="flag"]{ --imi-trust-i: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Crect x='2' y='4.5' width='20' height='15' rx='1.5'/%3E%3Cpath d='M2.8 7.4h18.4M2.8 16.6h18.4' stroke-width='1.9'/%3E%3Cpath d='M12 8.67l2.89 5H9.11zM12 15.33l2.89-5H9.11z' stroke-width='1.35'/%3E%3C/svg%3E"); }
.imi-pt__trust li[data-i="truck"]{ --imi-trust-i: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.5h11.5v9.5H2zM13.5 9.5h4.2L21.5 13v3h-8'/%3E%3Ccircle cx='6.5' cy='17.5' r='1.9'/%3E%3Ccircle cx='17' cy='17.5' r='1.9'/%3E%3C/svg%3E"); }
.imi-pt__trust li[data-i="shield"]{ --imi-trust-i: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E"); }
.imi-pt__trust li::before{
  width: 20px; height: 20px; top: 0; background: var(--imi-ash-2);
  -webkit-mask: var(--imi-trust-i) no-repeat center / 20px; mask: var(--imi-trust-i) no-repeat center / 20px;
}

/* Вкладка Resources: список файлов. */
.imi-res{ list-style: none; margin:0; padding:0; display: grid; gap: 8px; max-width: 640px; }
.imi-res li{ margin:0; }
.imi-res__i{
  display: flex; align-items: center; gap: 14px; padding:14px 16px; text-decoration: none;
  background: var(--imi-steel); border: 1px solid var(--imi-edge); border-radius:var(--imi-r);
  color: var(--imi-bone); transition: border-color .15s, background .15s;
}
.imi-res__i:hover{ border-color:var(--imi-gold); background: var(--imi-void); }
.imi-res__ico{
  flex: none; width: 22px; height: 22px; fill: none; stroke: var(--imi-gold);
  stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round;
}
.imi-res__t{ display: grid; gap: 2px; min-width: 0; }
.imi-res__t b{ font-weight: 600; font-size: .98rem; }
.imi-res__n{ font-size: .8rem; color: var(--imi-ash); }

/* Вкладка Tech specs: артикул над таблицей. */
.imi-specs__sku{
  margin:0 0 14px; font: 500 .8rem/1 var(--imi-fm);
  letter-spacing: .02em; text-transform: uppercase; color: var(--imi-ash-2);
}
.imi-specs__sku b{ color: var(--imi-bone); font-weight: 600; }

/* Раздел Suggestions под карточкой: товары, выбранные вручную. */
.imi-sug{ margin:clamp(40px, 5vw, 72px) 0 0; }
.imi-sug .imi-hp-head{ margin-bottom: clamp(20px, 2.4vw, 32px); }
.imi-sug ul.products{ margin:0; }

/* Дилерские чипы статуса: светлые заливки были заданы литералом и в тёмной
   теме давали тёмный текст на светлом пятне рядом с тёмной таблицей. */
:root[data-theme="dark"] .imi-portal__status--completed{ background: rgba(46,125,70,.18); color: #7BD79B; }
:root[data-theme="dark"] .imi-portal__status--processing{ background: rgba(138,97,0,.22); color: #E7C266; }

/* ==========================================================================
   Карточка товара и каталог — крупнее и плотнее, как у Magpul
   --------------------------------------------------------------------------
   Замеры magpul.com на 1440 px: фото около 470 px и текст сразу рядом;
   кнопка 19 px жирным заглавными; вкладки 20 px жирным заглавными; заголовки
   разделов 28 px; разделы идут сразу под блоком покупки. В каталоге название
   17 px жирным, цена 19 px жирным.
   У нас было: колонка фото 796 px, зазор до текста 110 px, вкладки 14,7 px,
   до вкладок около 160 px пустоты, название в каталоге 15,4 px средним.
   ========================================================================== */

/* --- Раскладка «фото | покупка» -------------------------------------------
   Шаблон карточки собран в Elementor, ширины колонок там в процентах. Ряд
   ищется не по id элемента — он свой в каждой установке шаблона, — а по
   содержимому: контейнер, у которого в одной колонке галерея, в другой наш
   блок покупки. Ширина колонки с фото и зазор до текста — ползунки в
   «Настроить → Размеры и сетка», по умолчанию 640 и 48 px. */
@media (min-width: 1025px){
  .e-con-inner:has(> .e-con .elementor-widget-woocommerce-product-images):has(> .e-con .imi-pt){
    column-gap: var(--imi-pp-gap, 48px); padding-bottom: 24px;
  }
  .e-con-inner:has(> .e-con .elementor-widget-woocommerce-product-images):has(> .e-con .imi-pt)
    > .e-con:has(.elementor-widget-woocommerce-product-images){
    flex: 0 0 min(var(--imi-pp-photo, 640px), 55%); width: auto; max-width: none;
  }
  .e-con-inner:has(> .e-con .elementor-widget-woocommerce-product-images):has(> .e-con .imi-pt)
    > .e-con:has(.imi-pt){
    flex: 1 1 0; width: auto; min-width: 0; max-width: none;
  }
}
/* Текст крупнее — колонке нужно больше места, чем 400 px. */
.imi-pt{ max-width: 560px; }

/* Блок, идущий сразу за рядом «фото | покупка» (комплект, вкладки), стоял
   с верхним отступом ~52 px, и вместе с нижним отступом ряда выходило около
   160 px пустоты — описание казалось оторванным от товара. */
.e-con:has(> .e-con-inner > .e-con .imi-pt){ padding-bottom: 0; }
.e-con:has(> .e-con-inner > .e-con .imi-pt) + .e-con{ padding-top: 8px; }
.woocommerce div.product .woocommerce-tabs{ margin-top: 8px; }

/* --- Стрелки листания фото: без подложки ---------------------------------
   Белые круги 48 px закрывали сам товар. Остаётся только шеврон с лёгким
   светлым ореолом, чтобы читался и на тёмной детали снимка. Цвет — токен
   «значки поверх области фото», он сам верно ведёт себя в тёмной теме. */
.woocommerce div.product .flex-direction-nav a,
.woocommerce div.product .flex-direction-nav a:hover{
  background: none; box-shadow:none; border: 0; color: var(--imi-photo-fg);
}
.woocommerce div.product .flex-direction-nav a:hover{ color: var(--imi-gold-2); }
.woocommerce div.product .flex-direction-nav a .imi-ico{
  width: 30px; height: 30px; filter: drop-shadow(0 0 2px rgba(255,255,255,.85));
}

/* --- Блок покупки: мелкие подписи крупнее --------------------------------- */
.imi-pt__top a{ font-size: 14px; }
.imi-pt__buy .imi-pt__qlabel{ font-size: 15px; }
.woocommerce div.product .imi-pt__buy form.cart .variations label,
.woocommerce div.product .imi-pt__buy form.cart .variations th{ font-size: 15px; font-weight: 600; }
.woocommerce div.product .imi-pt__buy form.cart .reset_variations{ font-size: 14px; }
/* form.cart и .button в селекторе нужны ради веса: «.woocommerce div.product
   form.cart .button» (0,4,2) иначе перебивает и оставляет 15,7 px. */
.woocommerce div.product .imi-pt__buy form.cart .single_add_to_cart_button.button{
  font-family: var(--imi-fd); font-weight: 700; font-size: 19px;
  letter-spacing: .02em; text-transform: uppercase;
}

/* --- Вкладки и разделы под карточкой: как у Magpul ------------------------ */
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  padding:16px 26px;
  font-family: var(--imi-fd); font-weight: 700; font-size: 20px;
  letter-spacing: .02em; text-transform: uppercase;
}
.woocommerce div.product .woocommerce-tabs .panel h2,
.woocommerce div.product .woocommerce-tabs .panel > h3:first-child{
  font-family: var(--imi-fd); font-weight: 700; font-size: 28px; line-height: 1.1;
  letter-spacing: .01em; text-transform: uppercase; margin:0 0 18px;
}
@media (max-width: 767px){
  .woocommerce div.product .woocommerce-tabs .panel h2,
  .woocommerce div.product .woocommerce-tabs .panel > h3:first-child{ font-size: 22px; }
}

/* --- Каталог: карточки товаров -------------------------------------------- */
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-size: 17px; font-weight: 700; line-height: 1.25;
}
.woocommerce ul.products li.product .price{ font-size: 19px; font-weight: 700; }
.woocommerce ul.products li.product .imi-loop-cat{ font-size: 12px; }
.woocommerce ul.products li.product .imi-badge{ font-size: 12.5px; }

/* Кнопка «в корзину» → строка гарантий: короткий отступ.
   ----------------------------------------------------------------------
   Было 77 px: 10 px до ссылки «Product spec sheet», сама ссылка, ещё 12 px,
   потом нижний отступ формы 36 px (правило WooCommerce
   .woocommerce div.product form.cart перебивало наш margin: 0). Ссылку тема
   теперь под кнопкой не выводит, отступ формы обнулён, до гарантий — 20 px. */
.woocommerce div.product .imi-pt__buy form.cart{ margin-bottom: 0; }
.imi-pt .imi-pt__trust{ margin-top: 20px; }

/* ==========================================================================
   Карточка товара по центру: фото и колонка покупки — одна пара
   ----------------------------------------------------------------------
   Было: ряд шириной 1340 px, фото 640 px прижато к левому краю, колонка
   покупки тянулась на весь остаток, а сам блок покупки — 560 px, так что
   справа оставалась пустая полоса. Теперь у колонки покупки своя ширина
   (--imi-pp-info, ползунок в «Настроить»), а все ряды шаблона товара —
   хлебные крошки, верх, вкладки — ровно по ширине этой пары и по центру.
   Левые края крошек, фото и вкладок совпадают, правые — тоже.
   ========================================================================== */
@media (min-width: 1025px){
  .elementor-location-single.product{
    --imi-pp-w: calc(var(--imi-pp-photo, 640px) + var(--imi-pp-gap, 48px) + var(--imi-pp-info, 520px));
  }
  .elementor-location-single.product > .e-con-boxed > .e-con-inner{
    max-width: min(var(--imi-pp-w), 100%);
  }
  .e-con-inner:has(> .e-con .elementor-widget-woocommerce-product-images):has(> .e-con .imi-pt){
    justify-content: center;
  }
  .e-con-inner:has(> .e-con .elementor-widget-woocommerce-product-images):has(> .e-con .imi-pt) > .e-con:has(.imi-pt){
    flex: 0 1 var(--imi-pp-info, 520px);
  }
  .elementor-location-single.product .imi-pt{ max-width: none; }
}

/* Количество и «Add to cart» — в одну строку, сразу под ними гарантии.
   WooCommerce 11 заворачивает поля вариантов в блок без класса
   (<div data-product_id data-threshold_min …>). В нашей flex-форме он
   сжимался до ширины таблицы цветов — 310 px, и кнопка уезжала под поле
   количества. Растягиваем его на всю ширину колонки. */
.imi-pt__buy form.cart > div[data-product_id],
.imi-pt__buy form.cart > div:not([class]){ flex: 1 1 100%; min-width: 0; }
/* Clearfix WooCommerce (::before и ::after с display: table) внутри flex-формы
   становится двумя пустыми строками и добавляет по 12 px сверху и снизу —
   из-за этого «Factory direct» стоял на 32 px ниже кнопки вместо 20. */
.woocommerce div.product .imi-pt__buy form.cart::before,
.woocommerce div.product .imi-pt__buy form.cart::after{ content: none; display: none; }

/* Баннер категории (inc/category-banner.php) — как у Magpul: чистая
   картинка во всю ширину экрана под шапкой, без текста и затемнения.
   Высота одна для любых снимков, лишнее обрезается по краям. */
.imi-catban{ display: block; margin:0; background: var(--imi-steel); }
.imi-catban img{
  display: block; width: 100%; max-width: none; margin:0;
  height: clamp(180px, 23vw, 440px); object-fit: cover; object-position:center;
}
/* Сайт без Elementor: баннер внутри колонки — растягиваем на ширину экрана. */
.imi-catban--inline{ width: 100vw; margin:0 calc(50% - 50vw) 18px 0; }

/* Телефон: у шаблонов каталога и товара в Elementor нет бокового отступа —
   крошки, баннер, «97 products», плитки и колонка покупки упирались в края
   экрана. Даём тот же отступ, что у остального сайта. */
@media (max-width: 767px){
  .elementor-location-archive.product > .e-con-boxed > .e-con-inner,
  .elementor-location-single.product > .e-con-boxed > .e-con-inner{ padding-inline: max(var(--imi-gut-m, 16px), 16px); }
}


/* ==========================================================================
   Телефон — страница товара и каталог, как у Magpul
   ========================================================================== */
@media (max-width: 767px){
  /* Галерея во всю ширину экрана, листается пальцем; стрелок нет, вместо
     ряда миниатюр — точки (те же миниатюры, только круглые и без картинки). */
  /* Ширина у галереи задана жёстко (100 %), поэтому её расширяем явно. */
  .woocommerce div.product .elementor-widget-woocommerce-product-images div.images.woocommerce-product-gallery{
    width: calc(100% + 2 * max(var(--imi-gut-m, 16px), 16px)); max-width: none;
    margin-inline: calc(-1 * max(var(--imi-gut-m, 16px), 16px));
  }
  .woocommerce div.product .flex-direction-nav{ display: none; }
  .woocommerce div.product div.images.woocommerce-product-gallery .flex-control-thumbs{
    display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin:12px 0 0; padding:0 16px; overflow: visible;
  }
  .woocommerce div.product div.images.woocommerce-product-gallery .flex-control-thumbs li{
    flex: 0 0 8px; width: 8px; height: 8px; margin:0; overflow: hidden;
    /* Общее правило темы для миниатюр ставит border-radius: 0 !important. */
    border-radius: 50% !important; background: var(--imi-edge-2); aspect-ratio: auto; outline: 0;
  }
  .woocommerce div.product div.images.woocommerce-product-gallery .flex-control-thumbs li::after{ content: none; }
  .woocommerce div.product div.images.woocommerce-product-gallery .flex-control-thumbs li img,
  .woocommerce div.product div.images.woocommerce-product-gallery .flex-control-thumbs li img.flex-active{
    width: 100%; height: 100%; opacity: 0; cursor: pointer;
  }
  .woocommerce div.product div.images.woocommerce-product-gallery .flex-control-thumbs li:has(img.flex-active){ background: var(--imi-bone); }

  /* Шапка карточки: без «Back to shop» (крошки рядом), заголовок 24 px
     вместо 30 — у Magpul 26, и длинные названия не тянутся на 4 строки. */
  .imi-pt__top{ display: none; }
  .woocommerce div.product .imi-pt__name, .imi-pt__name{ font-size: 1.55rem; line-height: 1.15; }
  .elementor-location-single.product .woocommerce-breadcrumb,
  .elementor-location-archive.product .woocommerce-breadcrumb{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  /* Нижняя панель «в корзину» не залезает под круглую кнопку доступности. */
  body:has(#ea11y-root) .imi-sticky{ padding-left: calc(var(--imi-gut, 16px) + 64px); }

  /* Карточки каталога: названия до трёх строк, подпись категории в одну. */
  .woocommerce ul.products li.product .woocommerce-loop-product__title{
    font-size: 14.5px; line-height: 1.3;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  }
  .woocommerce ul.products li.product .imi-loop-cat{ display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 10.5px; }
  .woocommerce ul.products li.product .price{ font-size: 16px; }
}


/* Хлебные крошки выключены («Настроить → Каталог»): пустой виджет и строку
   шаблона, где он стоял один, прячем, чтобы не оставалось пустой полосы. */
body.imi-no-crumbs .woocommerce-breadcrumb,
body.imi-no-crumbs .elementor-widget-woocommerce-breadcrumb,
body.imi-no-crumbs .elementor-widget-breadcrumbs,
body.imi-no-crumbs .elementor-widget-shortcode:has(> .elementor-shortcode:empty){ display: none; }
body.imi-no-crumbs .e-con:has(> .e-con-inner > .elementor-widget-woocommerce-breadcrumb:only-child),
body.imi-no-crumbs .e-con:has(> .elementor-widget-woocommerce-breadcrumb:only-child),
body.imi-no-crumbs .e-con:has(> .e-con-inner > .elementor-widget-shortcode:only-child > .elementor-shortcode:empty){ display: none; }
/* Без крошек заголовок каталога не должен прилипать к баннеру или шапке. */
body.imi-no-crumbs .elementor-location-archive h1.page-title{ margin-top: clamp(20px, 3vw, 36px); }

/* Карточки товаров: название и всё под фото — по центру (просьба владельца).
   Подпись категории, название, «Fits», цена, звёзды и кружки цветов — одной
   осью, чтобы карточка не разъезжалась. Работает везде, где выводятся
   карточки: каталог, категории, «Featured items» на главной, похожие товары. */
.woocommerce ul.products li.product:not(.product-category) .woocommerce-loop-product__link,
.woocommerce ul.products li.product .imi-loop-cat,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .imi-loop-fits,
.woocommerce ul.products li.product .price{ text-align: center; }
.woocommerce ul.products li.product .imi-swatches{ justify-content: center; }
.woocommerce ul.products li.product .star-rating{ float: none; margin-inline: auto; }
.woocommerce ul.products li.product:not(.product-category) > .button,
.woocommerce ul.products li.product:not(.product-category) > .added_to_cart{ align-self: center; margin-inline: auto; }
/* Плитки подкатегорий и подборка категории — тоже по центру. */
.woocommerce ul.products li.product-category h2.woocommerce-loop-category__title{ text-align: center; }
.imi-picks__c{ text-align: center; }

/* Kidon®: строка выбранного адаптера во вкладке Adapter Compatibility
   (подсвечивается после выбора K1, K3 … — см. theme.js). Подсветка
   расширена тенью, чтобы строка не сдвигала соседние. */
#tab-imi_compat .imi-compat-hit{
  background: rgba(237, 174, 36, .18);
  box-shadow:0 0 0 6px rgba(237, 174, 36, .18);
  border-radius:2px;
}
#tab-imi_compat .imi-compat-back{
  display: inline-block; margin-right: 10px; padding:0; border: 0; background: none; cursor: pointer;
  font: 600 .8125rem/1.3 var(--imi-fb); letter-spacing: .02em; color: var(--imi-bone);
  text-decoration: underline; text-underline-offset: 3px; white-space: nowrap;
}
#tab-imi_compat .imi-compat-back:hover{ color: var(--imi-gold-2, #B98100); }
#tab-imi_compat .imi-compat-back:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference){
  #tab-imi_compat .imi-compat-hit{ animation: imi-compat-in .9s ease-out; }
}
@keyframes imi-compat-in{
  from{ background: rgba(237, 174, 36, .45); box-shadow:0 0 0 6px rgba(237, 174, 36, .45); }
}

/* Цвет на странице товара — кружки с самим цветом (inc/woocommerce.php
   переводит кнопки «Color» плагина Variation Swatches в цветные образцы).
   Между заливкой и обводкой — кольцо цвета фона, чтобы чёрный кружок
   читался и на тёмной теме; выбранный отмечен обводкой цвета текста. */
.woo-variation-swatches .variable-items-wrapper.imi-colors .variable-item:not(.radio-variable-item){
  width: 36px; height: 36px; padding:3px; margin:4px 0 4px 8px;
  background: var(--imi-void);
  box-shadow:0 0 0 1px var(--imi-edge);
}
.woo-variation-swatches .variable-items-wrapper.imi-colors .variable-item:not(.radio-variable-item):hover,
.woo-variation-swatches .variable-items-wrapper.imi-colors .variable-item:not(.radio-variable-item):focus{
  box-shadow:0 0 0 1px var(--imi-ash, #8A8D84);
}
.woo-variation-swatches .variable-items-wrapper.imi-colors .variable-item:not(.radio-variable-item).selected,
.woo-variation-swatches .variable-items-wrapper.imi-colors .variable-item:not(.radio-variable-item).selected:hover{
  box-shadow:0 0 0 2px var(--imi-bone);
}
.woo-variation-swatches .variable-items-wrapper.imi-colors .variable-item:not(.radio-variable-item):focus-visible{
  outline: 2px solid var(--imi-gold); outline-offset: 3px;
}
.woo-variation-swatches .variable-items-wrapper.imi-colors .variable-item-span-color{
  box-shadow:inset 0 0 0 1px rgba(0, 0, 0, .16);
}

/* ==========================================================================
   Каталог с фильтрами (inc/shop-filters.php, theme.js)
   Слева колонка фильтров, над сеткой — число товаров, ярлыки выбранного и
   сортировка, сетка с тонкими линиями, внизу «Load more». На телефоне и
   планшете фильтры — шторка слева.
   ========================================================================== */
.imi-shop__main{ min-width: 0; }
@media (min-width: 1025px){
  .imi-shop.has-side{
    display: grid; grid-template-columns: 248px minmax(0, 1fr);
    gap: 0 clamp(24px, 2.6vw, 44px); align-items: start;
  }
}
.imi-shop.is-loading .imi-shop__main{ opacity: .45; pointer-events: none; transition: opacity .15s; }

/* Колонка фильтров */
.imi-sf{ font: 400 .9375rem/1.35 var(--imi-fb); color: var(--imi-bone); }
@media (min-width: 1025px){
  .imi-sf{
    position: sticky; top: var(--imi-sf-top, 104px); max-height: calc(100vh - var(--imi-sf-top, 104px) - 16px); overflow: auto;
    overscroll-behavior: contain; scrollbar-width: thin; padding-left: 6px;
  }
}
.imi-sf__head{
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding:0 0 12px; border-bottom: 2px solid var(--imi-bone);
}
.imi-sf__title{ font: 700 1rem/1 var(--imi-fd); letter-spacing: .02em; text-transform: uppercase; }
.imi-sf__clear{ margin-right: auto; font-size: .8125rem; color: var(--imi-gold-2); text-decoration: underline; text-underline-offset: 3px; }
.imi-sf__close, .imi-sf__foot{ display: none; }
.imi-sf__g{ min-width: 0; margin:0; padding:16px 0; border: 0; border-bottom: 1px solid var(--imi-edge); }
/* legend у fieldset по умолчанию садится на рамку; float возвращает его
   в поток, под отступ группы. */
.imi-sf__h{
  float: right; width: 100%; margin:0 0 8px; padding:0;
  font: 700 .75rem/1 var(--imi-fc); letter-spacing: .02em; text-transform: uppercase; color: var(--imi-ash);
}
.imi-sf__g ul{ clear: both; display: grid; gap: 0; margin:0; padding:0; list-style: none; }
.imi-sf__g li{ margin:0; }
.imi-sf__g label{ position: relative; display: flex; align-items: center; gap: 10px; padding:6px 0; cursor: pointer; }
.imi-sf__g label:hover .imi-sf__n{ text-decoration: underline; text-underline-offset: 3px; }
.imi-sf__g input[type="checkbox"]{
  -webkit-appearance: none; appearance: none; display: grid; place-items: center; flex: none;
  width: 18px; height: 18px; margin:0; border: 1.5px solid var(--imi-ash); border-radius:2px;
  background: var(--imi-void); cursor: pointer;
}
.imi-sf__g input[type="checkbox"]:checked{ background: var(--imi-bone); border-color:var(--imi-bone); }
.imi-sf__g input[type="checkbox"]:checked::after{
  content: ""; width: 10px; height: 5px; border: solid var(--imi-void); border-width:0 2px 2px 0;
  transform: translateY(-1px) rotate(-45deg);
}
.imi-sf__g input:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 2px; }
.imi-sf__n{ flex: 1; min-width: 0; }
.imi-sf__c{ font: 500 .75rem/1 var(--imi-fc); color: var(--imi-ash); font-variant-numeric: tabular-nums; }
.imi-sf__dot{ flex: none; width: 18px; height: 18px; border-radius:50%; box-shadow:inset 0 0 0 1px rgba(0, 0, 0, .16); }
/* Цвет — кружок вместо галочки; выбранный обведён. */
.imi-sf__g--color input[type="checkbox"]{ position: absolute; right: 0; width: 18px; height: 18px; opacity: 0; }
.imi-sf__g--color .imi-sf__dot{ width: 22px; height: 22px; }
.imi-sf__g--color input:checked + .imi-sf__dot{ box-shadow:0 0 0 2px var(--imi-void), 0 0 0 4px var(--imi-bone); }
.imi-sf__g--color input:focus-visible + .imi-sf__dot{ outline: 2px solid var(--imi-gold); outline-offset: 5px; }
.imi-js .imi-sf__g.is-long:not(.is-all) li[data-more]{ display: none; }
.imi-sf__more{
  margin-top: 6px; padding:0; border: 0; background: none; cursor: pointer;
  font: 600 .8125rem/1.3 var(--imi-fb); color: var(--imi-bone); text-decoration: underline; text-underline-offset: 3px;
}
.imi-sf__apply{
  margin-top: 16px; height: 42px; padding:0 18px; border: 0; background: var(--imi-bone); color: var(--imi-void);
  font: 700 .8125rem/1 var(--imi-fd); letter-spacing: .02em; text-transform: uppercase; cursor: pointer;
}
.imi-js .imi-sf__apply, .imi-js .imi-sf-bar__go{ display: none; }
/* Категории */
.imi-sf__g--cats a{
  display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
  padding:6px 0; color: var(--imi-bone); text-decoration: none;
}
.imi-sf__g--cats a:hover{ text-decoration: underline; text-underline-offset: 3px; }
.imi-sf__g--cats a span{ font: 500 .75rem/1 var(--imi-fc); color: var(--imi-ash); }
.imi-sf__g--cats a.is-on{ padding-right: 10px; font-weight: 700; box-shadow:inset -3px 0 0 var(--imi-gold); }
.imi-sf__g--cats a.imi-sf__up{ font-size: .875rem; color: var(--imi-ash); }

/* Строка над сеткой */
.imi-sf-bar{
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px;
  margin:0 0 18px; padding:0 0 14px; border-bottom: 1px solid var(--imi-edge);
}
.imi-sf-bar__open{ display: none; }
.imi-sf-bar__count{ margin:0; font-size: .9375rem; color: var(--imi-ash); white-space: nowrap; }
.imi-sf-bar__count b{ color: var(--imi-bone); }
.imi-sf-bar__chips{ display: flex; flex-wrap: wrap; gap: 6px; flex: 1 1 auto; margin:0; padding:0; list-style: none; }
.imi-sf-bar__chips li{ margin:0; }
.imi-sf-bar__chips a{
  display: inline-flex; align-items: center; gap: 6px; height: 30px; padding:0 10px;
  border: 1px solid var(--imi-edge); border-radius:15px; background: var(--imi-void);
  font-size: .8125rem; color: var(--imi-bone); text-decoration: none;
}
.imi-sf-bar__chips a:hover{ border-color:var(--imi-bone); }
.imi-sf-bar__chips a span{ font-size: 1rem; line-height: 1; opacity: .6; }
.imi-sf-bar__chips .imi-sf__dot{ width: 12px; height: 12px; }
.imi-sf-bar__chips a.imi-sf-bar__reset{ border-color:transparent; background: none; color: var(--imi-gold-2); text-decoration: underline; text-underline-offset: 3px; }
.imi-sf-bar__sort{ display: flex; align-items: center; gap: 8px; margin:0 auto 0 0; }
.imi-sf-bar__sort label{ font: 700 .72rem/1 var(--imi-fc); letter-spacing: .02em; text-transform: uppercase; color: var(--imi-ash); white-space: nowrap; }
.imi-sf-bar__sort select{
  -webkit-appearance: none; appearance: none; height: 38px; margin:0; padding:0 12px 0 34px;
  border: 1px solid var(--imi-edge); border-radius:2px; cursor: pointer;
  background: var(--imi-void) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%238A8D84' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat left 12px center / 12px 8px;
  font: 500 .875rem/1 var(--imi-fb); color: var(--imi-bone);
}
.imi-sf-bar__sort select:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 2px; }
.imi-sf-bar__go{ height: 38px; padding:0 12px; border: 1px solid var(--imi-bone); background: var(--imi-void); color: var(--imi-bone); cursor: pointer; }

/* Сетка с тонкими линиями, как у SIG SAUER: у каждой клетки линия справа
   и снизу, у сетки — сверху и слева. */
.woocommerce .imi-shop ul.products{
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0; border-top: 1px solid var(--imi-edge); border-right: 1px solid var(--imi-edge);
}
.woocommerce .imi-shop ul.products li.product{
  position: relative; margin:0; padding:14px 14px 20px;
  border-left: 1px solid var(--imi-edge); border-bottom: 1px solid var(--imi-edge);
  background: var(--imi-void); transition: box-shadow .2s;
}
.woocommerce .imi-shop ul.products li.product:hover{ z-index: 1; box-shadow:inset 0 0 0 1px var(--imi-bone); }
.imi-badge--sale{ color: var(--imi-sig); opacity: 1; }

/* Ничего не нашлось */
.imi-sf-empty{ padding:48px 24px; border: 1px dashed var(--imi-edge); text-align: center; color: var(--imi-ash); }
.imi-sf-empty p{ margin:0 0 6px; }
.imi-sf-empty b{ color: var(--imi-bone); }

/* «Load more» */
.imi-more{ display: grid; justify-items: center; gap: 12px; margin:36px 0 8px; text-align: center; }
.imi-more__n{ margin:0; font-size: .875rem; color: var(--imi-ash); }
.imi-more__n b{ color: var(--imi-bone); }
.imi-more__bar{ position: relative; width: 220px; max-width: 100%; height: 2px; background: var(--imi-edge); }
.imi-more__bar i{ position: absolute; inset:0 0 0 auto; background: var(--imi-bone); }
.imi-more__btn{
  display: inline-flex; align-items: center; justify-content: center; min-width: 220px; height: 48px; padding:0 28px;
  border: 1.5px solid var(--imi-bone); color: var(--imi-bone); text-decoration: none;
  font: 700 .875rem/1 var(--imi-fd); letter-spacing: .02em; text-transform: uppercase;
  transition: background .15s, color .15s;
}
.imi-more__btn:hover, .imi-more__btn:focus-visible{ background: var(--imi-bone); color: var(--imi-void); }
.imi-more__btn.is-loading{ opacity: .6; pointer-events: none; }
.imi-more__first{ font-size: .8125rem; color: var(--imi-ash); }

/* Телефон и планшет: кнопка «Filters» и шторка */
@media (max-width: 1024px){
  .imi-js .imi-sf-bar__open{
    display: inline-flex; align-items: center; gap: 8px; height: 40px; padding:0 14px;
    border: 1px solid var(--imi-bone); background: var(--imi-void); color: var(--imi-bone); cursor: pointer;
    font: 700 .8125rem/1 var(--imi-fd); letter-spacing: .02em; text-transform: uppercase;
  }
  .imi-sf-bar__open svg{ width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
  .imi-sf-bar__open b{
    display: grid; place-items: center; min-width: 20px; height: 20px; padding:0 5px; border-radius:10px;
    background: var(--imi-gold); color: #1A1A18; font-size: .72rem;
  }
  .imi-sf-bar__open{ order: 1; }
  .imi-sf-bar__sort{ order: 2; }
  .imi-sf-bar__count{ order: 3; }
  .imi-sf-bar__chips{ order: 4; flex-basis: 100%; }
  .imi-sf-bar__sort label{ display: none; }
  .imi-sf-bar__sort select{ height: 40px; max-width: 58vw; }

  .imi-js .imi-sf{
    position: fixed; top: 0; bottom: 0; right: 0; z-index: 1001; display: flex; flex-direction: column;
    width: min(88vw, 380px); background: var(--imi-void); visibility: hidden;
    transform: translateX(100%); transition: transform .25s var(--imi-ease), visibility 0s .25s;
  }
  .imi-js .imi-shop.is-open .imi-sf{ visibility: visible; transform: none; transition: transform .25s var(--imi-ease); }
  .imi-js .imi-shop.is-open::before{ content: ""; position: fixed; inset:0; z-index: 1000; background: rgba(12, 12, 11, .5); }
  .imi-js .imi-sf__head{ padding:14px 20px 14px 16px; border-bottom: 1px solid var(--imi-edge); }
  .imi-js .imi-sf__close{
    display: grid; place-items: center; width: 40px; height: 40px; padding:0; border: 0; background: none;
    font-size: 28px; line-height: 1; color: var(--imi-bone); cursor: pointer;
  }
  .imi-js .imi-sf__body{ flex: 1; overflow: auto; overscroll-behavior: contain; padding:0 20px; }
  .imi-js .imi-sf__foot{ display: block; padding:12px 20px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--imi-edge); }
  .imi-sf__show{
    width: 100%; height: 48px; border: 0; background: var(--imi-gold); color: #1A1A18; cursor: pointer;
    font: 700 .9375rem/1 var(--imi-fd); letter-spacing: .02em; text-transform: uppercase;
  }
  html.imi-sf-lock, html.imi-sf-lock body{ overflow: hidden; }
  /* Без JS фильтры стоят над сеткой обычным блоком. */
  html:not(.imi-js) .imi-sf{ margin-bottom: 20px; }
}
@media (max-width: 767px){
  .woocommerce .imi-shop ul.products{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .woocommerce .imi-shop ul.products li.product{ padding:10px 8px 14px; }
  .imi-sf-bar{ gap: 8px 10px; }
}
@media (prefers-reduced-motion: reduce){
  .imi-js .imi-sf, .imi-js .imi-shop.is-open .imi-sf{ transition: none; }
}

/* ==========================================================================
   Карточка каталога как у SIG SAUER (inc/woocommerce.php)
   Фото, название капсом на три строки, цена одной строкой, кружки цвета и
   полоса «Add to cart» во всю ширину. Высота каждой части одинаковая у всех
   карточек, поэтому названия, цены, кружки и полосы в ряду стоят на одной
   линии. При наведении полоса становится золотой.
   ========================================================================== */
.woocommerce ul.products li.product{ display: flex; flex-direction: column; }
.woocommerce ul.products li.product > a.woocommerce-loop-product__link{
  display: flex; flex-direction: column; flex: 1 1 auto; color: inherit; text-decoration: none;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
  min-height: calc(1.3em * 3); margin:14px 0 10px; padding:0 6px;
  font: 600 .9375rem/1.3 var(--imi-fd); letter-spacing: .02em; text-transform: uppercase;
  text-align: center; color: var(--imi-bone);
}
.woocommerce ul.products li.product .price{
  margin:auto 0 0; padding:0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  text-align: center; font: 700 1.125rem/1.2 var(--imi-fd); color: var(--imi-bone);
}
.woocommerce ul.products li.product .price del{ margin-left: 6px; font-size: .8em; opacity: .55; }
.woocommerce ul.products li.product .price ins{ text-decoration: none; }

/* Варианты: кружки цвета или кнопки */
.woocommerce ul.products li.product .imi-qa{
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px;
  min-height: 30px; margin:12px 0 0;
}
.imi-qa__o{
  -webkit-appearance: none; appearance: none; min-width: 30px; height: 30px; margin:0; padding:0 10px;
  border: 1px solid var(--imi-edge); border-radius:2px; background: var(--imi-void); color: var(--imi-bone);
  font: 600 .75rem/1 var(--imi-fb); cursor: pointer;
}
.imi-qa__o[aria-checked="true"]{ border-color:var(--imi-bone); box-shadow:inset 0 0 0 1px var(--imi-bone); }
.imi-qa--color .imi-qa__o{
  display: block; width: 22px; min-width: 22px; height: 22px; padding:0; border: 0; border-radius:50%;
  background: var(--sw, #8A8D84); box-shadow:0 0 0 1px var(--imi-edge), inset 0 0 0 1px rgba(0, 0, 0, .12);
}
.imi-qa--color .imi-qa__o[aria-checked="true"]{ box-shadow:0 0 0 2px var(--imi-void), 0 0 0 3.5px var(--imi-bone); }
.imi-qa--color button.imi-qa__o:hover{ box-shadow:0 0 0 2px var(--imi-void), 0 0 0 3.5px var(--imi-ash); }
.imi-qa--color .imi-qa__o[aria-checked="true"]:hover{ box-shadow:0 0 0 2px var(--imi-void), 0 0 0 3.5px var(--imi-bone); }
.imi-qa__o:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 4px; }
.imi-qa__o:disabled{ opacity: .35; cursor: not-allowed; }
.imi-qa--static .imi-qa__o{ width: 18px; min-width: 18px; height: 18px; cursor: default; }

/* Полоса «Add to cart» */
.woocommerce ul.products li.product .imi-add.button{
  display: flex; align-items: center; justify-content: center; gap: 8px; align-self: stretch;
  width: auto; height: 46px; min-height: 0; margin:14px 0 0; padding:0 12px;
  border: 0; border-top: 1px solid var(--imi-edge); border-radius:0; box-shadow:none;
  background: var(--imi-void); color: var(--imi-bone); text-decoration: none;
  font: 700 .8125rem/1 var(--imi-fd); letter-spacing: .02em; text-transform: uppercase;
  transition: background .15s, color .15s, border-color .15s;
}
.imi-add__i{ flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.woocommerce ul.products li.product:hover .imi-add.button,
.woocommerce ul.products li.product .imi-add.button:hover,
.woocommerce ul.products li.product .imi-add.button:focus-visible{
  background: var(--imi-gold); border-top-color: var(--imi-gold); color: #1A1A18;
}
.woocommerce ul.products li.product .imi-add.button:focus-visible{ outline: 2px solid var(--imi-bone); outline-offset: -2px; }
.woocommerce ul.products li.product .imi-add.button.loading{ opacity: .6; pointer-events: none; }
.woocommerce ul.products li.product .imi-add.button.loading::after,
.woocommerce ul.products li.product .imi-add.button.added::after{ display: none; }
.woocommerce ul.products li.product .added_to_cart{ display: none; }

/* В каталоге с фильтрами: три в ряд, полоса до краёв клетки, подпись
   категории не нужна — у всех карточек страницы она одна. */
.woocommerce .imi-shop ul.products{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce .imi-shop ul.products li.product{ padding:16px 16px 0; }
.woocommerce .imi-shop ul.products li.product .imi-add.button{ margin:16px -16px 0; }
.imi-shop .imi-loop-cat{ display: none; }
@media (max-width: 767px){
  .woocommerce .imi-shop ul.products{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .woocommerce .imi-shop ul.products li.product{ padding:10px 8px 0; }
  .woocommerce .imi-shop ul.products li.product .imi-add.button{ margin:12px -8px 0; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title{ margin:10px 0 8px; padding:0; font-size: .8125rem; }
  .woocommerce ul.products li.product .price{ font-size: 1rem; }
  .woocommerce ul.products li.product .imi-add.button{ height: 42px; gap: 6px; padding:0 6px; font-size: .72rem; letter-spacing: .02em; }
  .imi-add__i{ width: 16px; height: 16px; }
}
@media (prefers-reduced-motion: reduce){
  .woocommerce ul.products li.product .imi-add.button{ transition: none; }
}

/* «Product add-ons» над кнопкой покупки (inc/product-addons.php):
   строка — галочка, фото, название со ссылкой ↗, кружки варианта и
   «+ $14.99». Блок встаёт своей строкой над количеством и кнопкой. */
.imi-addons{ order: -1; flex: 1 1 100%; min-width: 0; margin:0 0 8px; padding:0; border: 0; }
.imi-addons__h{
  float: right; width: 100%; margin:0 0 12px; padding:0;
  font: 700 1rem/1.2 var(--imi-fd); letter-spacing: .02em; text-transform: uppercase; color: var(--imi-bone);
}
.imi-addons__list{ clear: both; display: grid; gap: 10px; margin:0; padding:0; list-style: none; }
.imi-addon{
  display: grid; grid-template-columns: 22px 72px minmax(0, 1fr); align-items: center; gap: 14px;
  margin:0; padding:12px 14px; border: 1px solid var(--imi-edge); border-radius:6px;
  background: var(--imi-void); cursor: pointer; transition: border-color .15s, box-shadow .15s;
}
.imi-addon:hover{ border-color:var(--imi-ash); }
.imi-addon.is-on{ border-color:var(--imi-bone); box-shadow:inset 0 0 0 1px var(--imi-bone); }
.imi-addon__cb{
  -webkit-appearance: none; appearance: none; display: grid; place-items: center;
  width: 22px; height: 22px; margin:0; border: 1.5px solid var(--imi-ash); border-radius:4px;
  background: var(--imi-void); cursor: pointer;
}
.imi-addon__cb:checked{ background: var(--imi-bone); border-color:var(--imi-bone); }
.imi-addon__cb:checked::after{
  content: ""; width: 11px; height: 6px; border: solid var(--imi-void); border-width:0 2px 2px 0;
  transform: translateY(-1px) rotate(-45deg);
}
.imi-addon__cb:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 2px; }
.imi-addon__ph{
  display: block; width: 72px; height: 72px; overflow: hidden; border: 1px solid var(--imi-edge); border-radius:6px;
  background: var(--imi-photo-bg, #FFFFFF); cursor: pointer;
}
.imi-addon__ph img{ display: block; width: 100%; height: 100%; margin:0; object-fit: contain; }
.imi-addon__body{ display: grid; gap: 6px; min-width: 0; }
.imi-addon__top{ display: flex; align-items: flex-start; gap: 8px; margin:0; }
.imi-addon__name{ flex: 1; min-width: 0; font: 500 .95rem/1.3 var(--imi-fb); color: var(--imi-bone); cursor: pointer; }
.imi-addon__open{ flex: none; display: grid; place-items: center; width: 22px; height: 22px; margin-top: -1px; color: var(--imi-ash); }
.imi-addon__open svg{ width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.imi-addon__open:hover, .imi-addon__open:focus-visible{ color: var(--imi-bone); }
.imi-addon__price{ font: 500 .95rem/1.2 var(--imi-fb); color: var(--imi-ash); font-variant-numeric: tabular-nums; }
.imi-addon__opts{ display: flex; flex-wrap: wrap; gap: 8px; }
.imi-addon__o{
  -webkit-appearance: none; appearance: none; min-width: 28px; height: 26px; margin:0; padding:0 8px;
  border: 1px solid var(--imi-edge); border-radius:2px; background: var(--imi-void); color: var(--imi-bone);
  font: 600 .72rem/1 var(--imi-fb); cursor: pointer;
}
.imi-addon__o[aria-checked="true"]{ border-color:var(--imi-bone); }
.imi-addon__opts.is-color .imi-addon__o{
  width: 18px; min-width: 18px; height: 18px; padding:0; border: 0; border-radius:50%;
  background: var(--sw, #8A8D84); box-shadow:0 0 0 1px var(--imi-edge), inset 0 0 0 1px rgba(0, 0, 0, .12);
}
.imi-addon__opts.is-color .imi-addon__o[aria-checked="true"]{ box-shadow:0 0 0 2px var(--imi-void), 0 0 0 3.5px var(--imi-bone); }
.imi-addon__o:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 3px; }
.imi-addon__o:disabled{ opacity: .35; cursor: not-allowed; }
.imi-addons__sum{ margin:10px 2px 0; font-size: .9rem; color: var(--imi-ash); }
.imi-addons__sum b{ color: var(--imi-bone); }
@media (max-width: 480px){
  .imi-addon{ grid-template-columns: 22px 60px minmax(0, 1fr); gap: 10px; padding:10px; }
  .imi-addon__ph{ width: 60px; height: 60px; }
  .imi-addon__name{ font-size: .875rem; }
}

/* ==========================================================================
   «Frequently bought together» над вкладками (inc/product-addons.php):
   [товар] + [1] + [2] + … = итог и одна кнопка на весь набор.
   Все карточки одной ширины (--cw), фото — квадраты, «+» и «=» стоят ровно
   посередине фото, блок итога — той же высоты, что фото. Пока набор
   помещается, он стоит по центру; не помещается (много дополнений) —
   лента листается: на компьютере стрелками, на телефоне пальцем.
   ========================================================================== */
.imi-fbt{
  --cw: 168px;
  margin:clamp(28px, 4vw, 48px) 0; padding:clamp(20px, 2.6vw, 32px);
  border: 1px solid var(--imi-edge); background: var(--imi-void);
}
.imi-fbt__head{ display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 6px 16px; margin:0 0 24px; text-align: center; }
.imi-fbt__h{
  margin:0; font: 700 clamp(1.1rem, 1.6vw, 1.35rem)/1.1 var(--imi-fd);
  letter-spacing: .02em; text-transform: uppercase; color: var(--imi-bone);
}
.imi-fbt__sub{ margin:0; font-size: .9rem; color: var(--imi-ash); }

.imi-fbt__row{
  display: grid; grid-template-columns: minmax(0, max-content) 44px 248px;
  justify-content: center; align-items: start;
}
.imi-fbt__strip{ position: relative; min-width: 0; }
.imi-fbt__scroll{
  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity;
  scroll-behavior: smooth; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.imi-fbt__scroll::-webkit-scrollbar{ display: none; }
.imi-fbt__items{
  display: grid; grid-template-rows: auto auto; grid-auto-flow: column;
  grid-template-columns: repeat(var(--n, 3), var(--cw) 30px) var(--cw);
  row-gap: 12px; width: max-content; margin:0 auto; padding:0; list-style: none;
}
.imi-fbt__it, .imi-fbt__plus{ grid-row: 1 / span 2; display: grid; grid-template-rows: subgrid; row-gap: 12px; min-width: 0; margin:0; }
.imi-fbt__it{ scroll-snap-align: start; }
.imi-fbt__plus span{
  grid-row: 1; align-self: center; justify-self: center;
  font: 300 1.9rem/1 var(--imi-fd); color: var(--imi-ash); transition: opacity .2s;
}
.imi-fbt__plus.is-off span{ opacity: .3; }
.imi-fbt__ph{
  position: relative; display: block; width: var(--cw); height: var(--cw); overflow: hidden; cursor: pointer;
  border: 1px solid var(--imi-edge); background: var(--imi-photo-bg, #FFFFFF);
}
.imi-fbt__ph img{ display: block; width: 100%; height: 100%; margin:0; padding:8%; object-fit: contain; transition: opacity .2s; }
.is-main .imi-fbt__ph{ cursor: default; border-color:var(--imi-bone); }
.imi-fbt__tag{
  position: absolute; right: 0; top: 0; padding:5px 8px; background: var(--imi-bone); color: var(--imi-void);
  font: 700 .64rem/1 var(--imi-fc); letter-spacing: .02em; text-transform: uppercase;
}
.imi-fbt__cb{
  -webkit-appearance: none; appearance: none; position: absolute; top: 8px; right: 8px; z-index: 2;
  display: grid; place-items: center; width: 24px; height: 24px; margin:0; cursor: pointer;
  border: 1.5px solid var(--imi-ash); border-radius:4px; background: var(--imi-void);
}
.imi-fbt__cb:checked{ background: var(--imi-bone); border-color:var(--imi-bone); }
.imi-fbt__cb:checked::after{
  content: ""; width: 11px; height: 6px; border: solid var(--imi-void); border-width:0 2px 2px 0;
  transform: translateY(-1px) rotate(-45deg);
}
.imi-fbt__cb:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 2px; }
.imi-fbt__it.is-on .imi-fbt__ph{ border-color:var(--imi-bone); }
/* Подписи: название на две строки, цена, кружки — у всех на одной высоте. */
.imi-fbt__txt{ display: grid; grid-template-rows: auto auto auto; align-content: start; gap: 6px; width: var(--cw); min-width: 0; }
.imi-fbt__name{
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; height: 2.6em;
  font: 500 .85rem/1.3 var(--imi-fb); color: var(--imi-bone); text-decoration: none;
}
a.imi-fbt__name:hover{ text-decoration: underline; text-underline-offset: 2px; }
.imi-fbt__open svg{ width: 12px; height: 12px; vertical-align: -1px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; color: var(--imi-ash); }
.imi-fbt__price{ font: 700 1rem/1.2 var(--imi-fd); color: var(--imi-bone); font-variant-numeric: tabular-nums; }
.imi-fbt__opts{ display: flex; flex-wrap: wrap; gap: 7px; min-height: 16px; }
.imi-fbt__o{
  -webkit-appearance: none; appearance: none; min-width: 26px; height: 24px; margin:0; padding:0 7px; cursor: pointer;
  border: 1px solid var(--imi-edge); border-radius:2px; background: var(--imi-void); color: var(--imi-bone); font: 600 .7rem/1 var(--imi-fb);
}
.imi-fbt__o[aria-checked="true"]{ border-color:var(--imi-bone); }
.imi-fbt__opts.is-color .imi-fbt__o{
  width: 16px; min-width: 16px; height: 16px; padding:0; border: 0; border-radius:50%;
  background: var(--sw, #8A8D84); box-shadow:0 0 0 1px var(--imi-edge), inset 0 0 0 1px rgba(0, 0, 0, .12);
}
.imi-fbt__opts.is-color .imi-fbt__o[aria-checked="true"]{ box-shadow:0 0 0 2px var(--imi-void), 0 0 0 3.5px var(--imi-bone); }
.imi-fbt__o:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 3px; }
.imi-fbt__o:disabled{ opacity: .35; cursor: not-allowed; }
/* Снятая галочка — товар бледнеет, но остаётся на месте. */
.imi-fbt__it:not(.is-on):not(.is-main) img,
.imi-fbt__it:not(.is-on):not(.is-main) .imi-fbt__txt{ opacity: .38; }

/* Стрелки ленты — только когда она не помещается. */
.imi-fbt__arr{
  position: absolute; top: calc(var(--cw) / 2 - 20px); z-index: 3; display: grid; place-items: center;
  width: 40px; height: 40px; padding:0; border: 1px solid var(--imi-edge); border-radius:50%;
  background: var(--imi-void); color: var(--imi-bone); cursor: pointer; box-shadow:0 4px 14px rgba(0, 0, 0, .12);
}
.imi-fbt__arr[hidden]{ display: none; }
.imi-fbt__arr--prev{ right: -12px; }
.imi-fbt__arr--next{ left: -12px; }
.imi-fbt__arr svg{ width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.imi-fbt__arr:hover{ border-color:var(--imi-bone); }
.imi-fbt__arr:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 2px; }

/* «=» и итог: по центру фото и той же высоты. */
.imi-fbt__eq{ height: var(--cw); display: grid; place-items: center; font: 300 1.9rem/1 var(--imi-fd); color: var(--imi-ash); }
.imi-fbt__total{
  display: grid; align-content: center; gap: 8px; min-height: var(--cw); padding:16px 18px;
  background: var(--imi-steel);
}
.imi-fbt__lbl{ margin:0; font: 700 .72rem/1 var(--imi-fc); letter-spacing: .02em; text-transform: uppercase; color: var(--imi-ash); }
.imi-fbt__lbl b{ color: var(--imi-bone); }
.imi-fbt .imi-fbt__sum{ margin:0 0 4px; padding:0; border: 0; font: 800 1.9rem/1 var(--imi-fd); color: var(--imi-bone); font-variant-numeric: tabular-nums; }
.imi-fbt__add{
  height: 50px; padding:0 14px; border: 0; background: var(--imi-gold); color: #1A1A18; cursor: pointer;
  font: 700 .88rem/1 var(--imi-fd); letter-spacing: .02em; text-transform: uppercase; transition: filter .15s;
}
.imi-fbt__add:hover{ filter: brightness(1.06); }
.imi-fbt__add:focus-visible{ outline: 2px solid var(--imi-bone); outline-offset: 2px; }
.imi-fbt__add.is-busy{ opacity: .6; pointer-events: none; }
.imi-fbt__note{ margin:0; font-size: .82rem; color: var(--imi-sig); }
/* Форма покупки мигает, если сначала нужно выбрать вариант. */
form.cart.imi-attn{ animation: imi-attn 1.4s ease-out; }
@keyframes imi-attn{ 0%, 60%{ box-shadow:0 0 0 3px var(--imi-gold); } 100%{ box-shadow:0 0 0 3px transparent; } }

/* Планшет: итог под лентой во всю ширину. */
@media (max-width: 1024px){
  .imi-fbt{ --cw: 150px; }
  .imi-fbt__row{ grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .imi-fbt__eq{ display: none; }
  .imi-fbt__total{ grid-template-columns: 1fr auto; align-items: center; min-height: 0; }
  .imi-fbt__lbl{ grid-column: 1; }
  .imi-fbt .imi-fbt__sum{ grid-column: 2; grid-row: 1; margin:0; }
  .imi-fbt__add, .imi-fbt__note{ grid-column: 1 / -1; }
}
/* Телефон: лента листается пальцем, без стрелок. */
@media (max-width: 767px){
  .imi-fbt{ --cw: 124px; margin:28px 0; padding:18px 0 20px; border-inline: 0; }
  .imi-fbt__head{ margin-bottom: 14px; }
  .imi-fbt__arr{ display: none; }
  .imi-fbt__plus span{ font-size: 1.5rem; }
  .imi-fbt__name{ font-size: .8rem; }
  .imi-fbt__price{ font-size: .95rem; }
  .imi-fbt__cb{ top: 6px; right: 6px; width: 26px; height: 26px; }
  .imi-fbt__total{ padding:14px 16px; }
  .imi-fbt .imi-fbt__sum{ font-size: 1.6rem; }
  .imi-fbt__add{ height: 54px; font-size: .95rem; }
}
@media (prefers-reduced-motion: reduce){
  .imi-fbt__ph img, .imi-fbt__plus span{ transition: none; }
  .imi-fbt__scroll{ scroll-behavior: auto; }
  form.cart.imi-attn{ animation: none; box-shadow:0 0 0 3px var(--imi-gold); }
}

/* Страница товара: от шапки до карточки было 90 px — пустая секция из-под
   хлебных крошек (28 px, крошки выключены) и общий отступ секций 52 px.
   Пустые секции шаблона не показываем, а над карточкой оставляем
   плотный отступ — около 30 px, как у SIG SAUER. */
.elementor-location-single.product > .e-con.e-con-boxed:not(:has(.e-con-inner > *)){ display: none; }
.elementor .elementor-location-single.product > .e-con.e-parent:has(.imi-pt),
.elementor-location-single.product > .e-con.e-parent:has(.imi-pt){ padding-top: clamp(12px, 1.4vw, 20px); }

/* ==========================================================================
   Фото в отзывах (inc/reviews.php)
   ========================================================================== */
.imi-rv-photos{ display: none; margin:4px 0 18px; }
.imi-js .imi-rv-photos{ display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px 14px; }
.imi-rv-photos input[type="file"]{ position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; clip-path: inset(50%); }
.imi-rv-photos__btn{
  box-sizing: border-box; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding:0 16px;
  border: 1px dashed var(--imi-edge-2); border-radius:var(--imi-r); background: var(--imi-void);
  font: 600 .9rem/1 var(--imi-fb); color: var(--imi-bone); cursor: pointer; transition: border-color .15s, background .15s;
}
.imi-rv-photos__btn:hover{ border-color:var(--imi-gold); background: var(--imi-gold-bg); }
.imi-rv-photos input[type="file"]:focus-visible + .imi-rv-photos__hint,
.imi-rv-photos__btn:focus-within{ outline: none; }
.imi-rv-photos:has(input:focus-visible) .imi-rv-photos__btn{ outline: 2px solid var(--imi-gold); outline-offset: 2px; }
.imi-rv-photos__btn svg{ width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linejoin: round; }
.imi-rv-photos.is-full .imi-rv-photos__btn{ opacity: .45; pointer-events: none; }
.imi-rv-photos__hint{ font-size: .82rem; line-height: 1.4; color: var(--imi-ash-2); }
.imi-rv-photos__list{ grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px; margin:0; padding:0; list-style: none; }
.imi-rv-photos__list:empty{ display: none; }
.imi-rv-photos__list li{ position: relative; width: 76px; height: 76px; margin:0; border-radius:var(--imi-r); overflow: hidden; background: var(--imi-steel); }
.imi-rv-photos__list img{ display: block; width: 100%; height: 100%; object-fit: cover; }
.imi-rv-photos__list li.is-busy::after{
  content: ""; position: absolute; inset:0; margin:auto; width: 22px; height: 22px; border-radius:50%;
  border: 2px solid var(--imi-edge-2); border-top-color: var(--imi-gold); animation: imi-rv-spin .8s linear infinite;
}
@keyframes imi-rv-spin{ to{ transform: rotate(360deg); } }
.imi-rv-photos__x{
  position: absolute; top: 4px; left: 4px; display: grid; place-items: center; width: 26px; height: 26px; padding:0;
  border: 0; border-radius:50%; background: rgba(10,10,9,.72); color: #fff; font: 600 16px/1 var(--imi-fb); cursor: pointer;
}
.imi-rv-photos__x:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 1px; }
.imi-rv-photos__err{ grid-column: 1 / -1; margin:0; font-size: .86rem; color: var(--imi-sig); }
@media (max-width: 520px){
  .imi-js .imi-rv-photos{ grid-template-columns: 1fr; }
  .imi-rv-photos__btn{ justify-content: center; width: 100%; }
}

/* Снимки под текстом отзыва + просмотр во весь экран. */
.imi-rv-ph{ display: flex; flex-wrap: wrap; gap: 8px; margin:12px 0 0; padding:0; list-style: none; }
.imi-rv-ph li{ margin:0; }
.imi-rv-ph a{ display: block; width: 88px; height: 88px; border-radius:var(--imi-r); overflow: hidden; background: var(--imi-steel); }
.imi-rv-ph img{ display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s; }
.imi-rv-ph a:hover img{ transform: scale(1.05); }
.imi-rv-ph a:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 2px; }
@media (max-width: 520px){ .imi-rv-ph a{ width: 72px; height: 72px; } }
.imi-lightbox{ width: 100vw; height: 100dvh; max-width: none; max-height: none; margin:0; padding:0; border: 0; background: rgba(8,8,7,.94); color: #fff; }
.imi-lightbox[open]{ display: grid; place-items: center; }
.imi-lightbox::backdrop{ background: rgba(8,8,7,.94); }
.imi-lightbox img{ max-width: calc(100vw - 32px); max-height: calc(100dvh - 120px); width: auto; height: auto; object-fit: contain; }
.imi-lightbox__x, .imi-lightbox__nav{
  position: absolute; display: grid; place-items: center; width: 48px; height: 48px; padding:0; border: 0; border-radius:50%;
  background: rgba(255,255,255,.12); color: #fff; font: 400 26px/1 var(--imi-fb); cursor: pointer;
}
.imi-lightbox__x{ top: 14px; left: 14px; }
.imi-lightbox__nav{ top: 50%; transform: translateY(-50%); }
.imi-lightbox__nav--prev{ right: 14px; }
.imi-lightbox__nav--next{ left: 14px; }
.imi-lightbox__nav[hidden]{ display: none; }
.imi-lightbox__n{ position: absolute; bottom: 18px; right: 0; left: 0; text-align: center; font: 500 .82rem/1 var(--imi-fb); color: rgba(255,255,255,.7); }
.imi-lightbox button:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 2px; }
