/* BY HOME — каталог. Цвета, шапка и подвал — в layout.css (общие для всех страниц). */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip}
body{font-family:"Manrope",system-ui,sans-serif;color:var(--ink);background:var(--bg);
  -webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select{font-family:inherit}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}


/* ░ HERO ░ — запасной вариант первого экрана, вёрстка = .bnr-row из
   promo.css (Филипп 28.09: без баннеров из панели первый экран должен
   выглядеть как с ними, а не как отдельный старый блок). Тут — только то,
   что сверх .bnr-*: кнопки поверх фото и отступ сверху, как у .bnr-sec. */
.hero{margin:26px auto 0}
.hero .bnr-txt p{font-size:13.5px}
.hero-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.bnr-btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.6);color:#fff}
.bnr-btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.12)}

/* ░ Полка категорий ░ */
.promo{background:#fff;border-bottom:1px solid var(--line);padding:14px 0}
.promo-row{display:flex;align-items:center;gap:14px}
.circles{display:flex;gap:8px;overflow-x:auto;flex:1;scrollbar-width:none;scroll-behavior:smooth}
.circles::-webkit-scrollbar{display:none}
.circle{flex-shrink:0;width:88px;display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer}
.circle-img{width:74px;height:74px;border-radius:50%;background:var(--panel);border:1px solid var(--line);
  transition:.2s;box-shadow:inset 0 0 0 2px #fff;object-fit:cover;display:block}
.circle:hover .circle-img{border-color:var(--brass);transform:translateY(-2px);box-shadow:inset 0 0 0 2px #fff,0 6px 16px rgba(20,18,14,.1)}
.circle span{font-size:11.5px;text-align:center;color:#3a3934;line-height:1.15;font-weight:500}
.circles-next{flex-shrink:0;width:38px;height:38px;border-radius:50%;border:1px solid var(--line2);
  display:grid;place-items:center;background:#fff}
.circles-next:hover{border-color:var(--ink)}
.circles-next svg{width:18px;height:18px}

/* ░ MAIN ░ */
.main{padding:26px 20px 8px}
.main-head{margin-bottom:18px;display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.main-title{font-family:var(--serif);font-size:clamp(26px,2.6vw,34px);font-weight:600;letter-spacing:0;line-height:1.02}
.main-head .sub{font-size:13.5px;color:var(--soft);font-weight:500}
/* единый видимый фокус для доступности */
:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}
.co-pay:focus-within{border-color:var(--ink)}
.layout{display:grid;grid-template-columns:236px minmax(0,1fr) 248px;gap:22px;align-items:start}

/* FILTERS */
.filters{position:sticky;top:144px;background:#fff}
.filters-head{margin-bottom:6px}
.f-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#43423c;
  border:1px solid var(--line2);border-radius:8px;padding:8px 12px}
.f-toggle svg{width:16px;height:16px}
.f-toggle:hover{border-color:var(--ink)}
.f-block{border-bottom:1px solid var(--line);padding:14px 0}
.f-title{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:700;
  cursor:pointer;user-select:none}
.f-chev{width:9px;height:9px;border-right:2px solid var(--soft);border-bottom:2px solid var(--soft);
  transform:rotate(45deg);transition:.2s}
.f-block.closed .f-chev{transform:rotate(-135deg)}
.f-body{margin-top:12px}
.f-block.closed .f-body{display:none}
.f-opt{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:13.5px;cursor:pointer;color:#34332e}
.f-opt input{width:16px;height:16px;accent-color:var(--ink);cursor:pointer}
.f-opt .cnt{margin-left:auto;color:var(--soft2);font-family:var(--mono);font-size:10.5px;font-variant-numeric:tabular-nums}
.f-opt:hover{color:var(--ink)}
.f-more{font-size:12.5px;color:var(--orange-d);font-weight:600;margin-top:6px;background:none}
.f-select{width:100%;height:40px;border:1px solid var(--line2);border-radius:9px;padding:0 12px;font-size:13.5px;
  background:#fff;color:var(--ink)}
.price-inputs{display:flex;align-items:center;gap:8px}
.price-inputs input{width:100%;height:40px;border:1px solid var(--line2);border-radius:9px;padding:0 10px;font-size:13px;
  -moz-appearance:textfield}
.price-inputs input::-webkit-outer-spin-button,.price-inputs input::-webkit-inner-spin-button{-webkit-appearance:none}
.price-inputs span{color:var(--soft2)}
.price-range{width:100%;margin-top:14px;accent-color:var(--green-cta)}
.f-apply{width:100%;height:46px;background:var(--green-cta);color:#fff;border-radius:10px;font-weight:700;font-size:14px;margin-top:16px}
.f-apply:hover{background:var(--accent-d)}
.f-apply:disabled{background:#c9c8bf;color:#fff;cursor:not-allowed}
.f-apply-hint{margin:8px 2px 0;font-size:12.5px;color:var(--soft)}
.f-hint{margin-top:8px;font-size:12.5px;color:#b0392b}
.f-hint[hidden],.f-apply-hint[hidden]{display:none}
.f-reset{width:100%;text-align:center;font-size:12.5px;color:var(--soft);margin-top:10px;background:none}
.f-reset:hover{color:var(--ink);text-decoration:underline}

/* RESULTS */
.toolbar{display:flex;align-items:center;gap:14px;padding-bottom:14px;margin-bottom:4px;flex-wrap:wrap}
.tb-filters{display:none;align-items:center;gap:7px;border:1px solid var(--line2);border-radius:8px;padding:7px 12px;font-size:13px;font-weight:600}
.tb-filters svg{width:16px;height:16px}
.tb-found{font-size:13.5px;color:var(--soft);font-weight:500}
.tb-stock{display:flex;align-items:center;gap:7px;font-size:13px;color:#43423c;cursor:pointer}
.tb-stock input{width:15px;height:15px;accent-color:var(--ink)}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.tb-sort{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--soft)}
.tb-sort select{height:38px;border:1px solid var(--line2);border-radius:9px;padding:0 30px 0 12px;font-size:13px;font-weight:600;
  color:var(--ink);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2386857d' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 9px center/15px;-webkit-appearance:none;appearance:none}
.tb-view{display:flex;border:1px solid var(--line2);border-radius:9px;overflow:hidden}
.tb-view button{width:38px;height:38px;display:grid;place-items:center;color:var(--soft)}
.tb-view button svg{width:17px;height:17px;stroke-width:1.8}
.tb-view button.on{background:var(--ink);color:#fff}
.tb-compare{display:flex;align-items:center;gap:7px;height:38px;padding:0 14px;border:1px solid var(--line2);border-radius:9px;font-size:13px;font-weight:600}
.tb-compare b{background:var(--green);color:#fff;border-radius:999px;min-width:18px;height:18px;display:grid;place-items:center;font-size:11px}
.tb-compare:hover{border-color:var(--ink)}

.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 18px}
.grid.list{grid-template-columns:1fr}
.card{min-width:0;display:flex;flex-direction:column;border:none;border-radius:0;overflow:visible;
  background:transparent;transition:transform .2s ease-out;position:relative;isolation:isolate;animation:cardIn .4s backwards;animation-delay:var(--d,0s)}
@keyframes cardIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* Фото на общем «каменном» фоне: белый фон снимков (почти все они на белом
   или вписаны в белый квадрат) растворяется наложением, и товары выглядят
   снятыми в одной студии, а не вырезанными из разных каталогов. */
.card-ph{position:relative;aspect-ratio:1/1;background:var(--stone);overflow:hidden;border-radius:6px;display:block;text-decoration:none;color:inherit}
.card-ph img{width:100%;height:100%;object-fit:contain;padding:2.5%;mix-blend-mode:multiply;display:block;transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .25s ease-out}
.badges{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:5px;z-index:2}
/* Метки — тихой надписью на светлой подложке, без цветных заливок */
.badge{font-size:11.5px;font-weight:600;padding:4px 7px;border-radius:3px;line-height:1;letter-spacing:.02em;
  background:rgba(251,250,247,.94)}
.b-new{color:var(--accent)}.b-sale{color:var(--sale)}.b-stock{color:var(--accent)}
.wish{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.92);
  display:grid;place-items:center;z-index:2;border:1px solid var(--line);transition:opacity .2s ease-out,transform .2s ease-out,background .2s,border-color .2s}
.wish svg{width:17px;height:17px;color:#9a988f;stroke-width:1.8}
.wish:hover{background:#fff}
.wish.on svg{color:var(--orange);fill:var(--orange)}
/* сравнение — парная кнопка под избранным, тот же размер и посадка */
.cmp-add{position:absolute;top:48px;right:10px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.92);
  display:grid;place-items:center;z-index:2;border:1px solid var(--line);transition:opacity .2s ease-out,transform .2s ease-out,background .2s,border-color .2s}
.cmp-add svg{width:16px;height:16px;color:#9a988f;stroke-width:2}
.cmp-add:hover{background:#fff}
.cmp-add.on{border-color:var(--ink)}
.cmp-add.on svg{color:var(--ink)}
/* Избранное и сравнение — при наведении (где наведение есть); отмеченные видны всегда */
@media(hover:hover){
  .wish,.cmp-add,.qv-eye{opacity:0;transform:translateY(-3px);background:transparent;border-color:transparent}
  .card:hover .wish,.card:hover .cmp-add,.card:hover .qv-eye,.wish.on,.cmp-add.on{opacity:1;background:rgba(251,250,247,.94);border-color:var(--line);transform:none}
}
/* быстрый просмотр — отдельная кнопка-глазок на фото, третья в столбик под
   избранным и сравнением, только при наведении: клик по самой карточке
   теперь ведёт на страницу товара, а не открывает просмотр (Филипп 28.09) */
.qv-eye{position:absolute;top:86px;right:10px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.92);
  display:grid;place-items:center;z-index:2;border:1px solid var(--line);transition:opacity .2s ease-out,transform .2s ease-out,background .2s,border-color .2s}
.qv-eye svg{width:17px;height:17px;color:#9a988f;stroke-width:1.8}
.qv-eye:hover{background:#fff}
@media(hover:none){ .qv-eye{display:none} }
.tb-compare.on{border-color:var(--ink);color:var(--ink);font-weight:700}
/* короткое сообщение вместо alert (лимит сравнения и подобное) */
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,12px);z-index:120;
  background:var(--ink);color:#fff;padding:12px 20px;border-radius:12px;font-size:13.5px;font-weight:600;
  box-shadow:0 12px 32px -8px rgba(28,27,25,.45);opacity:0;pointer-events:none;transition:.22s}
.toast.on{opacity:1;transform:translate(-50%,0)}
.card-body{padding:12px 2px 6px;display:flex;flex-direction:column;gap:4px;flex:1}
.card-name{font-size:14px;font-weight:500;line-height:1.3;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:35px;text-decoration:none}
.card-brand{font-size:11.5px;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-price{display:flex;align-items:baseline;gap:8px;margin-top:5px}
.card-price b{font-size:16px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.card-qty{margin-top:3px;font-size:12px;color:#a4481f}
.card-price s{font-size:13px;color:var(--soft2);text-decoration:line-through}
.card-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;margin-top:8px}
.card-deliv{font-size:11.5px;color:var(--green);display:flex;align-items:center;gap:5px}
.card-deliv svg{width:14px;height:14px;color:var(--green)}
.card-cmp{width:30px;height:30px;border:1px solid var(--line2);border-radius:8px;display:grid;place-items:center;color:var(--soft)}
.card-cmp svg{width:15px;height:15px}
.card-cmp:hover{border-color:var(--ink);color:var(--ink)}
.card.lrow{flex-direction:row}
.card.lrow .card-ph{width:260px;aspect-ratio:1/1;flex-shrink:0}
.card.lrow .card-body{padding:16px}
.card.lrow{gap:6px;border-bottom:1px solid var(--line);padding-bottom:12px}

.more-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 0 6px}
.more-btn{padding:13px 40px;border:1.5px solid var(--ink);border-radius:999px;font-weight:700;font-size:14px;background:#fff}
.more-btn:hover{background:var(--ink);color:#fff}
.more-info{font-size:12.5px;color:var(--soft)}
.empty{grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--soft)}

/* ROOMS */
.rooms{position:sticky;top:144px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.rooms-head{margin-bottom:14px}
.rooms-head b{font-family:var(--serif);font-size:19px;font-weight:600;display:block;margin-bottom:5px}
.rooms-head span{font-size:12px;color:var(--soft);line-height:1.35}
.rooms-list{display:flex;flex-direction:column;gap:7px}
.room{display:flex;align-items:center;gap:11px;padding:7px;border-radius:10px;background:#fff;border:1px solid var(--line);cursor:pointer;transition:.18s}
.room:hover{border-color:var(--ink);transform:translateX(2px)}
.room-img{width:52px;height:46px;border-radius:8px;background:var(--panel2) center/cover;flex-shrink:0}
.room-meta{flex:1;min-width:0}
.room-meta b{font-size:13px;font-weight:700;display:block}
.room-meta span{font-size:11.5px;color:var(--soft)}
.room-chev{width:8px;height:8px;border-right:2px solid var(--soft2);border-top:2px solid var(--soft2);transform:rotate(45deg)}
.rooms-all{width:100%;height:42px;margin-top:12px;border:1px solid var(--line2);border-radius:10px;font-weight:600;font-size:13px;background:#fff}
.rooms-all:hover{border-color:var(--ink)}

/* TRUST */
.trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;margin-top:30px}
.trust-row{display:flex;justify-content:space-between;gap:18px;padding:22px 20px}
.trust-item{display:flex;flex-direction:column;gap:2px;flex:1;padding-left:42px;position:relative}
.trust-ic{position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;background:var(--panel);display:grid;place-items:center}
.trust-ic svg{width:19px;height:19px;color:var(--brass);stroke-width:1.5}
.trust-item{padding-left:50px}
.trust-item b{font-size:13px;font-weight:700}
.trust-item i{font-size:11.5px;color:var(--soft);font-style:normal}

/* FOOTER */

/* QUICK VIEW */
.qv{position:fixed;inset:0;z-index:80;display:none;place-items:center;padding:20px}
.qv:not([hidden]){display:grid}
.qv-back{position:absolute;inset:0;background:rgba(20,18,14,.55);backdrop-filter:blur(3px)}
.qv-card{position:relative;background:#fff;border-radius:18px;max-width:min(1080px,94vw);width:100%;display:grid;grid-template-columns:1.25fr 1fr;overflow:hidden;max-height:90vh}
.qv-gallery{position:relative;background:#f7f6f2;min-height:520px;display:flex;flex-direction:column}
/* contain, не cover: цель правки — товар виден целиком, не обрезан по краям */
.qv-gallery .qv-main{flex:1;width:100%;object-fit:contain;display:block;min-height:0}
.qv-nav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;
  background:rgba(255,255,255,.92);display:grid;place-items:center;box-shadow:0 1px 4px rgba(0,0,0,.15)}
.qv-nav svg{width:18px;height:18px}
.qv-prev{left:10px}.qv-next{right:10px}
.qv-thumbs{display:flex;gap:6px;padding:8px;overflow-x:auto;background:#fff}
.qv-thumb{width:44px;height:44px;border-radius:8px;object-fit:cover;flex-shrink:0;cursor:pointer;
  opacity:.55;transition:.15s;box-shadow:inset 0 0 0 1px var(--line2)}
.qv-thumb.on{opacity:1;box-shadow:inset 0 0 0 2px var(--ink)}
.qv-info{padding:30px}
.qv-info h3{font-family:var(--serif);font-size:26px;font-weight:600;line-height:1.15;margin-bottom:8px}
.qv-info .qv-brand{font-family:var(--mono);font-size:11px;color:var(--soft2);margin-bottom:18px;letter-spacing:.04em}
.qv-info .qv-price{font-size:26px;font-weight:800;margin-bottom:6px}
.qv-meta{font-size:13px;color:var(--soft);margin-bottom:20px;line-height:1.7}
.qv-buy{height:50px;width:100%;background:var(--accent);color:#fff;border-radius:12px;font-weight:700;font-size:15px}
.qv-buy:hover{background:var(--accent-d)}
.qv-wish{height:44px;width:100%;margin-top:9px;border:1px solid var(--line2);border-radius:12px;font-weight:600;font-size:13.5px;color:#43423c;transition:.15s}
.qv-wish:hover{border-color:var(--orange-d);color:var(--orange-d)}
.qv-wish.on{border-color:var(--orange);color:var(--orange-d);background:#fdf6ef}
.qv-link{display:block;text-align:center;margin-top:12px;font-size:13px;color:var(--orange-d);font-weight:600}
.qv-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.9);display:grid;place-items:center;z-index:3}

/* RESPONSIVE */
@media(max-width:1120px){
  .layout{grid-template-columns:210px minmax(0,1fr)}
  .rooms{display:none}
  .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:880px){
  .hero-row{grid-template-columns:1fr}
  .hero-txt{padding:26px 0 22px}
  .hero h1{font-size:30px}
  .hero-sub{font-size:13.5px;margin-bottom:16px}
  .hero-chip{height:36px;padding:0 14px;font-size:12.5px}
  .hero-ph{min-height:170px;margin:0 -20px}
  .hero-ph img{-webkit-mask:linear-gradient(180deg,transparent,#000 14%);mask:linear-gradient(180deg,transparent,#000 14%)}
  .circle{width:76px}
  .circle-img{width:62px;height:62px}
  .circles-next{display:none}
  .filters{display:none;position:fixed;inset:0;top:0;z-index:60;overflow:auto;padding:20px;border-radius:0}
  .filters.open{display:block}
  .tb-filters{display:inline-flex}
  .layout{grid-template-columns:minmax(0,1fr)}
  .results{min-width:0}
  .tb-right{flex-wrap:wrap;gap:8px}
  .tb-sort select{height:36px}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}
  .trust-row{flex-wrap:wrap}.trust-item{flex-basis:46%}
  .qv-card{grid-template-columns:minmax(0,1fr);max-height:88vh;overflow:auto}
  .qv-gallery,.qv-info{min-width:0}
  .qv-gallery{min-height:240px;max-height:300px}
}
@media(max-width:560px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 10px}
  .main-head h1{font-size:21px}
  .card-name{font-size:12.5px}
}

/* мобильная плавающая кнопка фильтров (thumb-zone) */
.m-pill{position:fixed;left:16px;bottom:calc(18px + var(--cookie-h,0px));z-index:90;display:none;align-items:center;gap:8px;height:46px;
  padding:0 18px;border-radius:999px;background:var(--ink);color:#fff;font-weight:700;font-size:13.5px;
  box-shadow:0 10px 30px rgba(20,18,14,.28)}
.m-pill svg{width:17px;height:17px}
.m-pill b{background:var(--brass);color:#fff;border-radius:999px;min-width:19px;height:19px;display:grid;
  place-items:center;font-size:11px;padding:0 5px}
.m-pill[hidden]{display:none !important}
.m-pill b[hidden]{display:none}
@media(max-width:880px){ .m-pill.show{display:inline-flex} }

/* уважение к prefers-reduced-motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .card{ animation:none; }
}

/* QA: убираем мёртвые контролы сравнения (фича — отдельная фаза) */
.tb-compare,.card-cmp{ display:none !important; }
/* активное «Избранное» в шапке */

/* маркетинговый бейдж (Хит/Тренд/Рекомендуем) — брасс-акцент */
.badge.b-mark{ color:var(--brass); }
/* наличие на карточке */
.card-avail{ font-size:11.5px; font-weight:600; display:inline-flex; align-items:center; gap:6px; }
.card-avail::before{ content:""; width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.av-in{ color:var(--green); } .av-in::before{ background:var(--green); }
.av-order{ color:var(--orange-d); } .av-order::before{ background:var(--orange); }
.av-no{ color:#b0392b; } .av-no::before{ background:#b0392b; }
.av-show{ color:#4f6d8a; } .av-show::before{ background:#4f6d8a; }
.av-ask{ color:#8a6d3b; } .av-ask::before{ background:#8a6d3b; }
/* размеры/наличие в быстром просмотре — жирные подписи */
.qv-meta b{ color:var(--ink); font-weight:700; }

/* Силуэты карточек на время загрузки каталога — вместо пустой сетки */
.card.skel{pointer-events:none;animation:none}
.card.skel .card-ph,.card.skel i{background:linear-gradient(90deg,var(--panel) 0%,#f7f6f2 50%,var(--panel) 100%);background-size:200% 100%;animation:skel 1.4s ease-in-out infinite}
.card.skel i{display:block;height:11px;border-radius:6px;margin:4px 0}
.card.skel i:nth-child(1){width:85%}.card.skel i:nth-child(2){width:55%}.card.skel i:nth-child(3){width:35%;height:15px;margin-top:10px}
@keyframes skel{from{background-position:100% 0}to{background-position:-100% 0}}
.more-wrap[hidden]{display:none}

/* Второе фото при наведении — мягкая смена, только там, где есть наведение */
.card-ph img.ph2{position:absolute;inset:0;opacity:0;transition:opacity .3s ease-out;pointer-events:none}
@media(hover:hover){
  .card:hover .card-ph img.ph2[src]:not(.ld){opacity:1}
  /* Первое фото гаснет, пока видно второе: у фото разные пропорции
     (товар на белом и снимок в интерьере), и без этого края первого
     торчали из-под второго. Пока второе не загрузилось — первое на месте. */
  .card:hover .card-ph:has(img.ph2[src]:not(.ld)) img:not(.ph2){opacity:0}
}
@media(hover:none){ .card-ph img.ph2{display:none} }

/* ░ Разделы на главной — крупные плитки ░ */
.tiles-sec{padding:40px 0 8px}
.tiles-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px}
.tiles-head h2{font-family:var(--serif);font-weight:500;font-size:clamp(26px,2.6vw,34px)}
.tiles-head a{font-size:13.5px;color:var(--soft)}
.tiles-head a:hover{color:var(--ink)}
.tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.tile{display:flex;flex-direction:column;gap:4px}
.tile-ph{display:block;aspect-ratio:4/3;background:var(--stone);border-radius:6px;overflow:hidden}
.tile-ph img{width:100%;height:100%;object-fit:contain;padding:10%;mix-blend-mode:multiply;transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .25s ease-out}
.tile-name{font-size:15px;font-weight:600;margin-top:8px}
.tile-cnt{font-size:12.5px;color:var(--soft)}
@media(max-width:880px){
  .tiles-sec{padding:26px 0 0}
  .tiles{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:6px;scrollbar-width:none}
  .tile{flex:0 0 42%;scroll-snap-align:start}
  .tile-name{font-size:13.5px}
}

.b-show{color:var(--accent)}
@media(max-width:1120px){ .tiles{grid-template-columns:repeat(4,minmax(0,1fr))} }

/* Дерево категорий в фильтрах */
.f-opt.f-lvl2{padding-left:18px}
.f-arr{flex:none;width:7px;height:7px;margin:0 3px 0 6px;border-right:1.8px solid var(--soft);border-bottom:1.8px solid var(--soft);transform:rotate(-45deg);transition:transform .2s}
.f-arr.open{transform:rotate(45deg)}
.f-opt:hover .f-arr{border-color:var(--ink)}
.f-more>summary{cursor:pointer;font-size:12.5px;color:var(--soft);padding:4px 0;list-style:none}
.f-more>summary::-webkit-details-marker{display:none}
.f-more>summary::before{content:"+ "}
.f-more[open]>summary::before{content:"− "}
.f-opt.f-lvl3{padding-left:36px;font-size:13px}
.f-attr{margin-bottom:12px}
.f-attr-t{font-size:12px;color:var(--soft);text-transform:uppercase;letter-spacing:.05em;margin:6px 0 4px}
.f-block[hidden]{display:none}
/* Серии внутри коллекции */
.col-series{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;width:100%}
.col-series button{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line2);font-size:12.5px;font-weight:600;background:#fff}
.col-series button.on{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ── Лёгкое движение (Филипп, 01.10): только transform и opacity, всё внутри hover:hover ── */
.card::before,.tile::before{content:"";position:absolute;inset:-8px -8px -4px;z-index:-1;border-radius:10px;background:var(--bg);
  box-shadow:0 12px 26px -12px rgba(20,18,14,.28);opacity:0;transition:opacity .2s ease-out;pointer-events:none}
.tile{position:relative;isolation:isolate;transition:transform .2s ease-out}
@media(hover:hover){
  .card:hover,.tile:hover{transform:translateY(-3px)}
  .card:hover::before,.tile:hover::before{opacity:1}
  .card:hover .card-ph img:not(.ph2),.tile:hover .tile-ph img{transform:scale(1.04)}
}
.card.skel::before{display:none}
/* фото проявляется, когда загрузилось; класс ld снимается по load/error (layout.js) */
.card-ph img.ld,.tile-ph img.ld{opacity:0}
/* открытие быстрого просмотра, сравнения и панели фильтров на телефоне: без display-анимации,
   стартовое состояние задаёт @starting-style (где не поддерживается — просто без анимации) */
.qv-back,.qv-card{transition:opacity .2s ease-out,transform .2s ease-out}
@starting-style{.qv-back{opacity:0}.qv-card{opacity:0;transform:translateY(8px) scale(.98)}}
@media(max-width:880px){
  .filters{transition:opacity .2s ease-out,transform .2s ease-out}
  @starting-style{.filters{opacity:0;transform:translateY(8px)}}
}
.rv{opacity:0;transform:translateY(12px)}
.rv.in{opacity:1;transform:none;transition:opacity .3s ease-out,transform .3s ease-out}
@media(prefers-reduced-motion:reduce){
  .card::before,.tile::before{display:none}
  .card:hover,.tile:hover,.card:hover .card-ph img,.tile:hover .tile-ph img{transform:none !important}
  .qv-back,.qv-card,.filters{transition:none}
  .rv{opacity:1;transform:none}
}

/* Группа вариантов в каталоге: кружки с фото других цветов (или размеры) под фото
   и подпись «ещё N цветов». Сама карточка - один товар группы. */
.card-vars{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:0 0 8px;min-height:24px}
.card-sw{width:24px;height:24px;border-radius:50%;border:1px solid var(--line2);padding:1px;background:#fff;
  display:block;overflow:hidden;box-sizing:border-box;transition:border-color .15s}
.card-sw img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;background:var(--panel)}
.card-sw:hover{border-color:var(--ink)}
.card-sw.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink) inset}
.card-sz{min-width:30px;padding:3px 7px;border:1px solid var(--line2);border-radius:6px;font-size:11.5px;font-weight:600;
  text-align:center;box-sizing:border-box;color:var(--ink)}
.card-sz:hover,.card-sz.on{border-color:var(--ink)}
.card-sw-more{font-size:11px;color:var(--soft);font-weight:600}
.card-vars-t{font-size:12px;color:var(--soft);font-weight:500;margin-left:3px}
.card.lrow .card-vars{margin-bottom:10px}
