/* ============ Каталог (мультибренд) ============ */
.catalog-page{background:var(--sand)}
.catalog-page .header{position:sticky}

.cat-hero{background:var(--wine);color:var(--cream);padding:120px 0 44px;position:relative;overflow:hidden}
.cat-hero::after{content:"";position:absolute;inset:0;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cpath fill='%23c6ac90' d='M40 6 L43 37 L74 40 L43 43 L40 74 L37 43 L6 40 L37 37 Z'/%3E%3C/svg%3E");background-size:80px}
.cat-hero>.container{position:relative;z-index:2}
.cat-hero .section__kicker{color:var(--champagne-2)}
.cat-hero__title{font-family:var(--head);font-weight:300;font-size:clamp(2rem,4vw,3.2rem);margin:6px 0 12px}
.cat-hero__sub{color:rgba(243,237,228,.82);font-weight:300;max-width:620px}
.cat-hero__sub span{color:var(--champagne);font-weight:500}

.cat-layout{display:grid;grid-template-columns:262px 1fr;gap:36px;padding-top:40px;padding-bottom:80px;align-items:start}

/* filters */
.filters-panel{position:sticky;top:90px;background:#fff;border-radius:4px;padding:24px;box-shadow:0 12px 34px -24px rgba(43,41,38,.4)}
.filters-panel__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.filters-panel__head span{font-family:var(--head);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:.8rem;color:var(--wine)}
.filters-reset{background:none;border:none;color:#9a8a7c;font-size:.8rem;cursor:pointer;font-family:var(--head);transition:.3s}
.filters-reset:hover{color:var(--wine)}
.filter-group{margin-bottom:26px}
.filter-group h4{font-family:var(--head);font-weight:600;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#8a7c70;margin-bottom:12px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-family:var(--head);font-size:.76rem;font-weight:500;padding:8px 13px;border:1px solid var(--line);border-radius:30px;background:transparent;color:var(--ink);cursor:pointer;transition:.3s var(--ease);white-space:nowrap}
.chip:hover{border-color:var(--wine)}
.chip.is-active{background:var(--wine);color:var(--cream);border-color:var(--wine)}
.chip small{opacity:.6;margin-left:4px}
.scroll-list{max-height:230px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding-right:6px}
.scroll-list::-webkit-scrollbar{width:5px}
.scroll-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.list-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 9px;border-radius:4px;cursor:pointer;font-size:.86rem;color:#4f443c;transition:.2s;border:none;background:none;text-align:left;width:100%;font-family:var(--body)}
.list-item:hover{background:var(--sand)}
.list-item.is-active{background:var(--wine);color:var(--cream)}
.list-item span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list-item small{opacity:.55;font-size:.76rem;flex:0 0 auto}

/* results */
.results__bar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;flex-wrap:wrap}
.search-box{flex:1;min-width:220px}
.search-box input{width:100%;font-family:var(--body);font-size:.95rem;padding:13px 18px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--ink)}
.search-box input:focus{outline:none;border-color:var(--wine)}
.results__meta{display:flex;align-items:center;gap:16px}
.results__count{font-size:.86rem;color:#8a7c70;white-space:nowrap}
.sort-select{font-family:var(--head);font-size:.82rem;padding:12px 16px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--ink);cursor:pointer}
.sort-select:focus{outline:none;border-color:var(--wine)}

.active-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.active-tags:empty{display:none}
.tag{display:inline-flex;align-items:center;gap:8px;background:var(--wine);color:var(--cream);font-family:var(--head);font-size:.74rem;padding:6px 8px 6px 13px;border-radius:30px}
.tag button{background:rgba(255,255,255,.25);border:none;color:#fff;width:16px;height:16px;border-radius:50%;cursor:pointer;line-height:1;font-size:.8rem}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:22px}
.card{background:#fff;border-radius:4px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 10px 30px -22px rgba(43,41,38,.35);transition:.4s var(--ease);opacity:0;animation:fadeUp .5s var(--ease) forwards}
@keyframes fadeUp{to{opacity:1}}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.card__media{aspect-ratio:1/1;background:var(--sand-2);position:relative;overflow:hidden}
.card__media img{width:100%;height:100%;object-fit:contain;padding:10px;transition:transform .6s var(--ease)}
.card:hover .card__media img{transform:scale(1.05)}
.card__badge{position:absolute;top:10px;left:10px;background:rgba(74,36,32,.92);color:var(--cream);font-family:var(--head);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 9px;border-radius:2px}
.card__body{padding:15px 16px 18px;display:flex;flex-direction:column;gap:7px;flex:1}
.card__vendor{font-family:var(--head);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--champagne);font-weight:600;min-height:.8em}
.card__name{font-size:.9rem;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card__foot{margin-top:auto;padding-top:10px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.card__price{font-family:var(--head);font-weight:600;font-size:1rem;color:var(--wine)}
.card__price.is-request{font-size:.8rem;font-weight:500;color:#8a7c70}
.card__link{font-family:var(--head);font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--wine);border:1px solid var(--line);padding:8px 11px;border-radius:2px;transition:.3s;white-space:nowrap}
.card__link:hover{background:var(--wine);color:var(--cream);border-color:var(--wine)}
.card__more{font-family:var(--head);font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--champagne);transition:.3s;white-space:nowrap}
.card:hover .card__more{color:var(--wine)}

.card--skeleton{opacity:1;animation:none;pointer-events:none}
.card--skeleton .card__media{background:linear-gradient(100deg,var(--sand-2) 30%,#e6dccb 50%,var(--sand-2) 70%);background-size:200% 100%;animation:sk 1.2s infinite}
@keyframes sk{to{background-position:-200% 0}}

.grid-empty{text-align:center;padding:70px 0;color:#8a7c70}
.grid-empty svg{width:56px;height:56px;fill:var(--champagne);opacity:.5;margin-bottom:16px}

.pagination{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:48px;flex-wrap:wrap}
.pagination button{font-family:var(--head);font-size:.85rem;min-width:40px;height:40px;padding:0 12px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:3px;cursor:pointer;transition:.25s}
.pagination button:hover:not(:disabled){border-color:var(--wine)}
.pagination button.is-active{background:var(--wine);color:var(--cream);border-color:var(--wine)}
.pagination button:disabled{opacity:.4;cursor:default}
.pagination .dots{border:none;background:none;cursor:default}

.burger-filters{display:none}

/* ---- быстрый просмотр ---- */
.card{cursor:pointer}
.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}
.modal[hidden]{display:none}
.modal__backdrop{position:absolute;inset:0;background:rgba(30,18,16,.6);backdrop-filter:blur(4px);animation:fade .3s}
@keyframes fade{from{opacity:0}}
.modal__box{position:relative;z-index:2;background:#fff;border-radius:6px;max-width:920px;width:100%;max-height:90vh;overflow:hidden;display:grid;grid-template-columns:1.1fr 1fr;box-shadow:var(--shadow);animation:pop .35s var(--ease)}
@keyframes pop{from{opacity:0;transform:translateY(20px) scale(.98)}}
.modal__close{position:absolute;top:14px;right:16px;z-index:3;width:38px;height:38px;border-radius:50%;border:none;background:rgba(255,255,255,.9);color:var(--wine);font-size:1.5rem;line-height:1;cursor:pointer;transition:.3s}
.modal__close:hover{background:var(--wine);color:#fff}
.modal__media{background:var(--sand-2);display:flex;align-items:center;justify-content:center;padding:24px;min-height:340px}
.modal__media img{max-width:100%;max-height:70vh;object-fit:contain}
.modal__info{padding:44px 40px;display:flex;flex-direction:column;justify-content:center;overflow-y:auto}
.modal__supplier{font-family:var(--head);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--wine);font-weight:600}
.modal__vendor{font-family:var(--head);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--champagne);font-weight:600;margin-top:6px;min-height:.8em}
.modal__name{font-family:var(--head);font-weight:400;font-size:1.4rem;line-height:1.3;color:var(--ink);margin:10px 0 14px}
.modal__cat{font-size:.86rem;color:#8a7c70;margin-bottom:18px}
.modal__cat::before{content:"✦ ";color:var(--champagne)}
.modal__price{font-family:var(--head);font-weight:600;font-size:1.7rem;color:var(--wine);margin-bottom:24px}
.modal__price.is-request{font-size:1rem;font-weight:500;color:#8a7c70}
.modal__cta{align-self:flex-start}
.modal__note{margin-top:18px;font-size:.8rem;color:#9a8a7c;font-weight:300}
@media(max-width:720px){
  .modal__box{grid-template-columns:1fr;max-height:88vh;overflow-y:auto}
  .modal__media{min-height:240px;padding:16px}
  .modal__info{padding:26px 24px}
  .modal__name{font-size:1.2rem}
}

@media(max-width:860px){
  .cat-layout{grid-template-columns:1fr}
  .filters-panel{position:fixed;inset:0 0 0 auto;width:min(88vw,340px);z-index:120;border-radius:0;overflow-y:auto;transform:translateX(100%);transition:.4s var(--ease);top:0;height:100%}
  .filters-panel.is-open{transform:translateX(0)}
  .burger-filters{display:block;position:fixed;right:20px;bottom:20px;z-index:90;background:var(--wine);color:var(--cream);border:none;font-family:var(--head);font-weight:600;letter-spacing:.08em;padding:14px 22px;border-radius:40px;box-shadow:var(--shadow);cursor:pointer}
}
