/* ============================================================
   БИНЭКСТ — каталог. Стили (белый + тёмно-синий).
   Токены дизайна (--navy, --acc, --cham, --hdr-h…) и шапка —
   в site-header.css, который подключается ПЕРВЫМ.
   Стили корзины — в cart.css.
   Иерархия слоёв: шапка 100 > тулбар 50 > заголовок 20 > дерево 5 > товары 1

   Исправлено:
   - убран глобальный scroll-behavior:smooth для тач-устройств;
   - модальное окно гарантированно скрывается и не перехватывает события;
   - скролл внутри модалки изолирован от страницы.
   ============================================================ */

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

/* ---------- ФИКС: smooth-скролл только для мыши ---------- */
@media (hover:hover) and (pointer:fine){
  html{
    scroll-behavior:smooth;
  }
}

body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--body);
  font-size:16px;
  line-height:1.6;
}

::selection{
  background:var(--navy);
  color:#fff;
}

a{
  color:inherit;
  text-decoration:none;
}

button{
  font-family:inherit;
  cursor:pointer;
}

h1,h2,h3{
  font-family:var(--disp);
  font-weight:700;
  line-height:1.15;
}

:focus-visible{
  outline:2px solid var(--acc);
  outline-offset:3px;
}

.mono{
  font-family:var(--mono);
}

.wrap{
  max-width:1320px;
  margin:0 auto;
  padding:0 24px;
}

/* ---------- кнопки ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family:var(--mono);
  font-size:12.5px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:13px 22px;
  border:none;
  clip-path:var(--cham);
  transition:transform .25s,background .25s,color .25s,box-shadow .25s;
}

.btn-navy{
  background:var(--navy);
  color:#fff;
}

.btn-navy:hover{
  background:var(--navy2);
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(10,31,68,.25);
}

.btn-ghost{
  background:transparent;
  color:var(--navy);
  box-shadow:inset 0 0 0 1.5px var(--navy);
}

.btn-ghost:hover{
  background:var(--navy);
  color:#fff;
}

/* ---------- заголовок каталога ---------- */
.cat-head{
  padding:26px 0 26px;
  position:relative;
  z-index:20;
  background:var(--bg);
}

.eyebrow{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--acc);
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-bottom:16px;
}

.eyebrow::before{
  content:"";
  width:26px;
  height:2px;
  background:var(--acc);
}

.cat-head h1{
  font-size:clamp(26px,4vw,44px);
  text-transform:uppercase;
  color:var(--navy);
}

.cat-head p{
  color:var(--muted);
  margin-top:12px;
  max-width:640px;
}

#banner{
  display:none;
  margin-top:18px;
  font-family:var(--mono);
  font-size:12.5px;
  padding:12px 16px;
  border-left:3px solid var(--amber);
  background:#fff7e8;
  color:#7a5410;
}

#banner.show{
  display:block;
}

/* ---------- панель инструментов ---------- */
.toolbar{
  position:sticky;
  top:var(--hdr-h);
  z-index:50;
  background:var(--bg);
  padding:14px 0 16px;
  border-bottom:1px solid var(--line);
}

.toolbar-row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
}

.search{
  flex:1 1 260px;
  position:relative;
}

.search input{
  width:100%;
  background:#fff;
  border:1px solid var(--line2);
  padding:13px 16px 13px 42px;
  font-family:var(--body);
  font-size:15px;
  color:var(--ink);
}

.search input:focus{
  outline:none;
  border-color:var(--acc);
  box-shadow:0 0 0 3px rgba(26,92,255,.14);
}

.search svg{
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  color:var(--muted);
}

select.sort{
  background:#fff;
  border:1px solid var(--line2);
  padding:13px 14px;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.06em;
  color:var(--navy);
  text-transform:uppercase;
}

.count{
  font-family:var(--mono);
  font-size:12px;
  color:var(--muted);
  letter-spacing:.08em;
  margin-left:auto;
}

/* ---------- кнопка "В наличии и транзите" ---------- */
.stock-btn{
  padding:12px 18px;
  font-size:11.5px;
  gap:8px;
  color:var(--navy);
  background:#fff;
}

.stock-btn svg{
  opacity:.9;
}

.stock-btn[aria-pressed="true"]{
  background:var(--navy);
  color:#fff;
  box-shadow:none;
}

.stock-btn[aria-pressed="true"]:hover{
  background:var(--navy2);
}

/* ---------- сегментный переключатель вида ---------- */
.view-switch{
  display:flex;
  border:1px solid var(--line2);
  background:#fff;
  clip-path:var(--cham);
  overflow:hidden;
}

.vs-btn{
  width:44px;
  height:45px;
  border:none;
  background:none;
  color:var(--muted);
  display:grid;
  place-items:center;
  transition:background .2s,color .2s;
}

.vs-btn + .vs-btn{
  border-left:1px solid var(--line);
}

.vs-btn:hover{
  color:var(--navy);
}

.vs-btn.active{
  background:var(--navy);
  color:#fff;
}

/* ---------- раскладка ---------- */
.cat-layout{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:28px;
  align-items:start;
  padding-top:22px;
  position:relative;
}

.products{
  min-width:0;
  position:relative;
  z-index:1;
}

#treeToggle{
  display:none;
  width:100%;
  margin-top:16px;
}

/* ---------- дерево категорий ---------- */
.tree-panel{
  position:sticky;
  top:calc(var(--hdr-h) + var(--tb-h) + 12px);
  z-index:5;
  max-height:calc(100vh - var(--hdr-h) - var(--tb-h) - 32px);
  overflow:auto;
  background:#fff;
  border:1px solid var(--line);
  clip-path:var(--cham);
  padding:16px 12px 20px;
  scrollbar-width:thin;
}

.tree ul{
  list-style:none;
}

.tree .t-children{
  margin-left:12px;
  border-left:1px dashed var(--line2);
  padding-left:6px;
}

.t-row{
  display:flex;
  align-items:center;
  gap:4px;
  padding:7px 8px;
  transition:background .2s;
}

.t-row:hover{
  background:#f2f6ff;
}

.t-row.active{
  background:#e4edff;
}

.t-row.active > .t-name{
  color:var(--acc);
}

.t-toggle{
  width:24px;
  height:24px;
  border:none;
  background:none;
  color:var(--muted);
  font-size:11px;
  flex:none;
  transition:transform .25s,color .2s;
}

.t-toggle:hover{
  color:var(--acc);
}

.t-node.open > .t-row .t-toggle{
  transform:rotate(90deg);
  color:var(--acc);
}

.t-spacer{
  width:24px;
  flex:none;
}

.t-name{
  flex:1;
  text-align:left;
  background:none;
  border:none;
  font-family:var(--body);
  font-size:13.5px;
  font-weight:600;
  color:var(--ink);
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:2px 0;
}

.t-name:hover{
  color:var(--acc);
}

.t-name b{
  font-family:var(--mono);
  font-size:10.5px;
  color:var(--muted);
  font-weight:500;
  flex:none;
}

.t-children{
  display:none;
}

.t-node.open > .t-children{
  display:block;
}

.t-all .t-name{
  font-family:var(--mono);
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:.14em;
  border-bottom:1px solid var(--line);
  padding-bottom:10px;
  margin-bottom:6px;
}

/* ---------- хлебные крошки ---------- */
.crumbs{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:.06em;
  color:var(--muted);
  text-transform:uppercase;
  padding:6px 0 2px;
}

.crumbs button{
  background:none;
  border:none;
  font:inherit;
  color:var(--muted);
  letter-spacing:inherit;
  text-transform:inherit;
  padding:2px 0;
}

.crumbs button:hover{
  color:var(--acc);
}

.crumbs .sep{
  color:var(--line2);
}

.crumbs .cur{
  color:var(--navy);
  font-weight:700;
}

.crumbs .reset{
  margin-left:10px;
  color:var(--acc);
  border:1px solid #c3d6ff;
  background:#e4edff;
  padding:4px 10px;
  clip-path:var(--cham);
}

/* ---------- вид: плитка ---------- */
.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(225px,1fr));
  gap:18px;
  padding:16px 0 10px;
}

.p-card{
  background:var(--panel);
  border:1px solid var(--line);
  clip-path:var(--cham);
  display:flex;
  flex-direction:column;
  cursor:pointer;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s,border-color .3s;
  animation:cardIn .4s ease both;
}

@keyframes cardIn{
  from{
    opacity:0;
    transform:translateY(16px);
  }
  to{
    opacity:1;
    transform:none;
  }
}

.p-card:hover{
  transform:translateY(-6px);
  border-color:var(--navy);
  box-shadow:0 22px 44px rgba(10,31,68,.14);
}

.p-thumb{
  position:relative;
  aspect-ratio:1/1;
  min-height:200px;
  background:#fff;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}

.p-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:10px;
  transition:transform .4s;
}

.p-card:hover .p-thumb img{
  transform:scale(1.06);
}

.p-thumb img.is-ph{
  object-fit:cover;
  padding:0;
  opacity:.9;
}

.p-badge{
  position:absolute;
  top:10px;
  left:10px;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.08em;
  padding:5px 9px;
  text-transform:uppercase;
}

.p-badge.in{
  background:#e3f8ec;
  color:var(--mint-dk);
}

.p-badge.ord{
  background:#e4edff;
  color:var(--acc);
}

.p-badge.transit{
  background:#fff4e0;
  color:#8a5a00;
}

.p-badge.out{
  background:#fde8e8;
  color:#b3261e;
}

.p-body{
  padding:16px 16px 18px;
  display:flex;
  flex-direction:column;
  gap:8px;
  flex:1;
}

.p-art{
  font-family:var(--mono);
  font-size:11px;
  color:var(--muted);
  letter-spacing:.1em;
}

.p-name{
  font-family:var(--body);
  font-weight:600;
  font-size:12px;
  line-height:1.4;
  color:var(--ink);
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.p-cat{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--acc);
}

.p-foot{
  margin-top:auto;
  padding-top:12px;
  border-top:1px dashed var(--line2);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}

.p-price{
  font-family:var(--mono);
  font-weight:700;
  font-size:15px;
  color:var(--navy);
}

.p-price.req{
  font-size:12px;
  color:var(--muted);
}

.p-add{
  width:38px;
  height:38px;
  flex:none;
  border:1px solid var(--line2);
  background:#fff;
  color:var(--navy);
  display:grid;
  place-items:center;
  clip-path:var(--cham);
  transition:all .2s;
}

.p-add:hover{
  background:var(--acc);
  border-color:var(--acc);
  color:#fff;
  transform:translateY(-2px);
}

/* ---------- вид: список ---------- */
.grid-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:16px 0 10px;
}

.p-row{
  background:var(--panel);
  border:1px solid var(--line);
  clip-path:var(--cham);
  display:grid;
  grid-template-columns:96px 1fr auto auto auto auto;
  gap:18px;
  align-items:center;
  padding:14px 18px;
  cursor:pointer;
  transition:border-color .3s,box-shadow .3s,transform .25s;
  animation:cardIn .35s ease both;
}

.p-row:hover{
  border-color:var(--navy);
  box-shadow:0 12px 30px rgba(10,31,68,.12);
  transform:translateX(4px);
}

.pr-thumb{
  position:relative;
  width:96px;
  height:78px;
  background:#fff;
  border:1px solid var(--line);
  display:grid;
  place-items:center;
  overflow:hidden;
}

.pr-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:6px;
}

.pr-thumb img.is-ph{
  object-fit:cover;
  padding:0;
  opacity:.9;
}

.pr-info{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}

.pr-info .p-art{
  font-size:10.5px;
}

.pr-name{
  font-family:var(--body);
  font-weight:600;
  font-size:12px;
  line-height:1.4;
  color:var(--ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.pr-info .p-cat{
  font-size:10px;
}

.pr-price{
  font-family:var(--mono);
  font-weight:700;
  font-size:16px;
  color:var(--navy);
  text-align:right;
  min-width:110px;
}

.pr-price.req{
  font-size:12px;
  color:var(--muted);
  min-width:auto;
}

.pr-stock{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.08em;
  padding:5px 9px;
  text-transform:uppercase;
  white-space:nowrap;
}

.pr-stock.in{
  background:#e3f8ec;
  color:var(--mint-dk);
}

.pr-stock.ord{
  background:#e4edff;
  color:var(--acc);
}

.pr-stock.transit{
  background:#fff4e0;
  color:#8a5a00;
}

.pr-stock.out{
  background:#fde8e8;
  color:#b3261e;
}

.pr-more{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.1em;
  color:var(--muted);
  text-transform:uppercase;
  border:1px solid var(--line2);
  background:#fff;
  padding:9px 14px;
  clip-path:var(--cham);
  transition:all .2s;
  white-space:nowrap;
}

.pr-more:hover{
  background:var(--navy);
  color:#fff;
  border-color:var(--navy);
}

.p-row:hover .pr-more{
  border-color:var(--navy);
  color:var(--acc);
}

.p-row:hover .pr-more:hover{
  color:#fff;
}

/* ---------- список на мобильных ---------- */
@media(max-width:720px){
  .p-row{
    grid-template-columns:84px 1fr auto auto;
    grid-template-rows:auto auto;
    grid-template-areas:
      "thumb info info info"
      "thumb price stock add";
    gap:8px 14px;
    padding:12px 14px;
    align-items:center;
  }

  .pr-thumb{
    grid-area:thumb;
    width:84px;
    height:84px;
  }

  .pr-info{
    grid-area:info;
    min-width:0;
  }

  .pr-name{
    white-space:normal;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    text-overflow:clip;
  }

  .pr-price{
    grid-area:price;
    text-align:left;
    min-width:auto;
    font-size:15px;
  }

  .pr-stock{
    grid-area:stock;
  }

  .p-add{
    width:42px;
    height:42px;
  }

  .pr-more{
    display:none;
  }
}

.more-wrap{
  display:flex;
  justify-content:center;
  padding:26px 0 60px;
}

.empty{
  padding:70px 0;
  text-align:center;
  color:var(--muted);
  font-family:var(--mono);
  font-size:14px;
  letter-spacing:.06em;
}

.skel{
  background:var(--panel);
  border:1px solid var(--line);
  clip-path:var(--cham);
  aspect-ratio:4/5;
  animation:pulse 1.2s ease-in-out infinite;
}

@keyframes pulse{
  0%,100%{
    opacity:1;
  }
  50%{
    opacity:.45;
  }
}

/* ---------- модальное окно ---------- */

/* ФИКС: закрытая модалка гарантированно не перехватывает события */
.modal{
  position:fixed;
  inset:0;
  z-index:200;
  background:rgba(7,20,41,.72);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  display:none;
  visibility:hidden;
  pointer-events:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}

.modal.open{
  display:flex;
  visibility:visible;
  pointer-events:auto;
}

/* ФИКС: изоляция скролла внутри карточки модалки */
.modal-card{
  background:#fff;
  width:min(1060px,100%);
  max-height:92vh;
  max-height:92dvh;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  touch-action:pan-y;
  clip-path:var(--cham);
  display:grid;
  grid-template-columns:1fr;
  position:relative;
  animation:cardIn .35s ease;
}

@media(min-width:900px){
  .modal-card{
    grid-template-columns:minmax(0,1fr) minmax(320px,450px);
  }
}

/* миниатюры галереи скроллятся изолированно */
.g-thumbs{
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

.m-close{
  position:absolute;
  top:12px;
  right:12px;
  z-index:5;
  width:42px;
  height:42px;
  background:var(--navy);
  color:#fff;
  border:none;
  font-size:20px;
  clip-path:var(--cham);
}

.m-close:hover{
  background:var(--acc);
}

.m-art{
  font-family:var(--mono);
  font-size:12px;
  color:var(--muted);
  letter-spacing:.14em;
  margin-bottom:10px;
}

.m-name{
  font-size:20px;
  color:var(--navy);
  margin-bottom:12px;
  max-width:390px;
}

.m-cat{
  display:inline-block;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--acc);
  border:1px solid #c3d6ff;
  background:#e4edff;
  padding:6px 12px;
  margin-bottom:20px;
  cursor:pointer;
  transition:background .2s,color .2s,border-color .2s;
}

.m-cat:hover{
  background:var(--navy);
  border-color:var(--navy);
  color:#fff;
}

/* сетка товаров не прячется под липкую шапку/тулбар при прокрутке */
#grid{
  scroll-margin-top:calc(var(--hdr-h) + var(--tb-h) + 16px);
}

.m-rows{
  border-top:1px solid var(--line);
  margin-bottom:22px;
}

.m-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:12px 2px;
  border-bottom:1px solid var(--line);
  font-size:14.5px;
}

.m-row .l{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
}

.m-row .v{
  font-weight:600;
  text-align:right;
}

.m-row .v.price{
  font-family:var(--mono);
  font-size:18px;
  color:var(--navy);
}

.m-actions{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.m-note{
  font-family:var(--mono);
  font-size:11px;
  color:var(--muted);
  margin-top:14px;
  line-height:1.8;
}

/* ---------- футер ---------- */
footer{
  background:var(--deep);
  color:#8fa5c8;
  padding:26px 0;
  margin-top:40px;
}

.f-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:.08em;
}

.f-row a:hover{
  color:var(--mint);
}

@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation-duration:.001s!important;
    transition-duration:.001s!important;
  }
}

.p-add-wrap{
  position:relative;
  display:inline-flex;
  flex:none;
  align-self:center;
}

@media(max-width:720px){
  .p-add-wrap{
    grid-area:add;
  }
}

.p-add-count{
  position:absolute;
  top:-7px;
  right:-7px;
  z-index:2;
  min-width:18px;
  height:18px;
  padding:0 4px;
  background:var(--acc);
  color:#fff;
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
  line-height:1;
  display:grid;
  place-items:center;
  border-radius:9px;
  box-shadow:0 0 0 2px var(--panel);
  pointer-events:none;
  transition:transform .2s;
}

.p-add-count.zero{
  display:none;
}

@media(max-width:999px){
  .cat-layout{
    grid-template-columns:1fr;
  }

  #treeToggle{
    display:inline-flex;
    position:sticky;
    top:calc(var(--hdr-h) + var(--tb-h) + 10px);
    z-index:40;
    width:100%;
    margin-top:10px;
    box-shadow:0 8px 20px rgba(10,31,68,.18);
  }

  #treeToggle[aria-expanded="true"]{
    background:var(--navy2);
  }

  .tree-panel{
    display:none;
    scroll-margin-top:calc(var(--hdr-h) + var(--tb-h) + 70px);
  }

  body.tree-open .tree-panel{
    display:block;
  }
}

/* ---------- мобильная раскладка ---------- */
@media(max-width:999px){
  .cat-layout{
    grid-template-columns:1fr;
  }

  .cat-togglebar{
    position:sticky;
    top:calc(var(--hdr-h) + var(--tb-h) + 8px);
    z-index:40;
    display:flex;
    justify-content:flex-start;
    align-items:center;
    margin:0 0 12px;
    padding:10px 0;
    background:rgba(244,246,249,.92);
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }

  #treeToggle{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    width:auto;
    flex:none;
    margin:0;
    padding:8px 14px;
    background:#fff;
    border:1px solid var(--line2);
    color:var(--navy);
    font-family:var(--mono);
    font-size:11.5px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    clip-path:var(--cham);
    box-shadow:0 6px 18px rgba(10,31,68,.12);
    transition:background .2s,border-color .2s,color .2s;
  }

  #treeToggle::before{
    content:"";
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--line2);
    flex:none;
    transition:background .2s;
  }

  #treeToggle:hover{
    border-color:var(--navy);
  }

  #treeToggle[aria-expanded="true"]{
    background:var(--navy);
    border-color:var(--navy);
    color:#fff;
  }

  #treeToggle[aria-expanded="true"]::before{
    background:var(--acc);
  }

  .tree-panel{
    display:none;
    scroll-margin-top:calc(var(--hdr-h) + var(--tb-h) + 70px);
  }

  body.tree-open .tree-panel{
    display:block;
  }
}

/* ---------- доводка: мобильная панель «Категории» ---------- */
@media(max-width:999px){
  .cat-togglebar{
    top:calc(var(--hdr-h) + var(--tb-h));
    padding:8px 0;
    margin:0 0 10px;
    background:rgba(244,246,249,.96);
  }

  .tree-panel{
    scroll-margin-top:calc(var(--hdr-h) + var(--tb-h) + 64px);
  }
}

@media(max-width:640px){
  #treeToggle{
    width:100%;
  }
}

.count{
  display:none!important;
}

/* ---------- стартовая витрина топа ---------- */
.top-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  margin:0 0 14px;
}

.top-head h2{
  margin:0;
  font-family:var(--disp);
  font-size:22px;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--navy);
}

/* ---------- скрытие карточек вне топа ---------- */
.top-hidden{
  display:none!important;
}
/* ========== v25: карточки: без «Подробнее», бейдж в углу, имя шире ========== */
/* 1) кнопка «Подробнее» не показывается нигде */
.pr-more,.p-more,.card-more,.p-row .btn-more,.p-card .btn-more{display:none !important;}

/* 2) карточка — позиционированный контейнер */
.p-card,.p-row{position:relative;}

/* 3) бейдж наличия — в правый верхний угол карточки */
.p-card .p-badge,
.p-row .pr-stock,
.p-row .p-badge{
  position:absolute;
  top:8px;
  right:8px;
  margin:0 !important;
  z-index:2;
}

/* 4) названию товара — больше места: перенос до 2 строк вместо обрезки «…» */
.p-card .p-name,
.p-row .pr-name{
  white-space:normal;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  max-width:none;
}

/* 5) в списке: инфо-блок тянется на освободившееся место */
.p-row .pr-info{flex:1 1 auto;min-width:0;padding-right:96px;}
/* ========== v26: списочная карточка — имя шире, зазор бейдж→корзина ≥10px ========== */
/* строка: элементы сверху, чтобы корзина не наезжала на бейдж */
.p-row{position:relative;align-items:flex-start;}
/* инфо-блок тянется на всё свободное место, имя не обрезается одной строкой */
.p-row .pr-info{flex:1 1 auto;min-width:0;width:auto;padding-right:10px;}
.p-row .pr-name{
  white-space:normal;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
/* бейдж наличия — фиксированно в правом верхнем углу (низ бейджа ≈28px) */
.p-row .pr-stock{position:absolute;top:8px;right:8px;margin:0;}
/* цена и корзина начинаются с 38px сверху → зазор от бейджа ровно 10px */
.p-row .pr-price,
.p-row .p-price{margin-left:auto;margin-top:38px;flex:0 0 auto;}
.p-row .p-add{margin-top:0px;flex:0 0 auto;}
/* миниатюра и инфо остаются сверху, высота строки растёт от контента */
.p-row .pr-thumb{flex:0 0 auto;}
/* ========== v30: мобильный списочный режим — бейдж наличия слева внизу карточки ========== */
@media(max-width:767px){
  .p-row{position:relative !important;}
  .p-row .pr-stock,
  .p-row .p-badge,
  .p-row .pr-badge{
    grid-area:auto !important;      /* отвязать от области сетки */
    justify-self:auto !important;
    align-self:auto !important;
    position:absolute !important;   /* позиционируем от границ карточки */
    top:auto !important;
    right:auto !important;
    left:8px !important;
    bottom:8px !important;
    margin:0 !important;
    z-index:2;
  }
  /* нижняя полоса карточки: бейдж слева, цена+корзина справа, без пересечений */
  .p-row .pr-info{padding-bottom:4px;}
}/* ========== окно «Ссылка на товар» — поверх модалки товара ========== */
.psh-ov{
  z-index:3000 !important;
  position:fixed;
  inset:0;
  background:rgba(10,31,68,.55);
}
.psh-ov.show{display:flex !important;align-items:center;justify-content:center;}
.psh-ov .psh-box{
  z-index:3001 !important;
  position:relative;
  max-width:min(520px,92vw);
  background:#fff;
  padding:22px 24px;
}