/* =========================================================
   All in Wood — Core 0.6.0: фильтры и сортировка страницы категории
   Кнопки и поля изолированы от глобальных стилей темы/Elementor Kit
   (иначе тема красит button/input при hover и focus).
   ========================================================= */

/* Панель: «N моделей» · фильтры · сортировка справа */
.aiw-cat--term .aiw-cat__bar{ align-items:center; flex-wrap:wrap; column-gap:clamp(12px, 2vw, 28px); row-gap:12px; }
.aiw-cat--term .aiw-cat__h2--count{ white-space:nowrap; }

.aiw-cat .aiw-f{ flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:8px; margin:0; padding:0; border:0; }
.aiw-cat .aiw-f__groups{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; flex:1 1 auto; min-width:0; }
.aiw-cat .aiw-f__sort{ margin-left:auto; }
.aiw-cat .aiw-f.is-loading{ opacity:.6; pointer-events:none; transition:opacity .2s ease; }

/* Сброс глобальных стилей для наших кнопок и полей */
.aiw-cat .aiw-f, .aiw-cat .aiw-f__chips{ -webkit-tap-highlight-color:transparent; }
.aiw-cat .aiw-f button, .aiw-cat .aiw-f__chips button{
  -webkit-appearance:none; appearance:none; margin:0; min-height:0; width:auto;
  font-family:inherit !important; text-transform:none !important; letter-spacing:0 !important; line-height:1.2 !important;
  box-shadow:none !important; text-decoration:none !important; cursor:pointer;
}
.aiw-cat .aiw-f fieldset{ margin:0 !important; padding:0 !important; border:0 !important; min-width:0; }
.aiw-cat .aiw-f summary{ list-style:none; cursor:pointer; -webkit-user-select:none; user-select:none; }
.aiw-cat .aiw-f summary::-webkit-details-marker{ display:none; }
.aiw-cat .aiw-f summary::marker{ content:""; }
.aiw-f__chev{ flex:none; transition:transform .25s var(--aiw-ease,ease); }
details[open] > summary .aiw-f__chev{ transform:rotate(180deg); }

/* ---------- Кнопки фильтров (desktop) ---------- */
.aiw-f__dd{ position:relative; }
.aiw-cat .aiw-f__pill{
  height:44px; padding:0 16px 0 18px; border-radius:var(--aiw-r-pill,999px);
  display:inline-flex; align-items:center; gap:8px; white-space:nowrap;
  background:#fff; border:1px solid #D9D6D1; color:var(--aiw-ink,#161616);
  font-size:15px; line-height:1; transition:border-color .2s ease, background .2s ease, color .2s ease;
}
.aiw-cat .aiw-f__pill:hover, .aiw-cat details[open] > .aiw-f__pill{ border-color:var(--aiw-ink,#161616); }
.aiw-cat .aiw-f__pill:focus-visible, .aiw-cat .aiw-f__sortbtn:focus-visible{ outline:2px solid var(--aiw-olive,#5E6B4E); outline-offset:2px; }
.aiw-cat .aiw-f__pill.is-active{ background:var(--aiw-ink,#161616); border-color:var(--aiw-ink,#161616); color:#fff; }
.aiw-f__pill-sum{ display:none; }
.aiw-f__pill-val{ color:rgba(255,255,255,.72); }
.aiw-f__n{
  display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px;
  border-radius:var(--aiw-r-pill,999px); background:#fff; color:var(--aiw-ink,#161616); font-size:12px; font-weight:500; line-height:1;
}

/* Сортировка */
.aiw-cat .aiw-f__sortbtn{
  height:44px; padding:0 4px; display:inline-flex; align-items:center; gap:6px; white-space:nowrap;
  font-size:15px; line-height:1; color:var(--aiw-ink,#161616); border-radius:var(--aiw-r-sm,12px);
}
.aiw-f__sort-k{ color:var(--aiw-muted,#6E6B66); }

/* Выпадающая панель */
.aiw-cat .aiw-f__panel{
  position:absolute; z-index:60; top:calc(100% + 8px); left:0; width:320px; max-width:calc(100vw - 32px);
  padding:8px; background:#fff; border:1px solid var(--aiw-line,#ECEAE6); border-radius:var(--aiw-r-md,18px);
  box-shadow:0 18px 48px rgba(22,22,22,.10), 0 2px 8px rgba(22,22,22,.04);
}
.aiw-cat .aiw-f__sort .aiw-f__panel{ left:auto; right:0; width:260px; }
.aiw-f__opts{ max-height:min(360px, 60vh); overflow:auto; overscroll-behavior:contain; }

/* Строка значения */
.aiw-cat .aiw-f__opt{
  position:relative; display:flex; align-items:center; gap:12px; margin:0; padding:10px 12px; border-radius:var(--aiw-r-sm,12px);
  font-size:15px; line-height:1.3; color:var(--aiw-ink,#161616); cursor:pointer; transition:background .15s ease;
}
.aiw-cat .aiw-f__opt:hover{ background:var(--aiw-panel,#F3F2EF); }
.aiw-f__opt input{ position:absolute; opacity:0; width:1px; height:1px; margin:0; pointer-events:none; }
.aiw-f__box{
  flex:none; width:18px; height:18px; border-radius:5px; border:1px solid #BDB8B0; background:#fff; position:relative;
  transition:background .15s ease, border-color .15s ease;
}
.aiw-f__opt input:checked + .aiw-f__box{ background:var(--aiw-ink,#161616); border-color:var(--aiw-ink,#161616); }
.aiw-f__opt input:checked + .aiw-f__box::after{
  content:""; position:absolute; left:6px; top:2px; width:4px; height:9px; border:solid #fff; border-width:0 1.6px 1.6px 0; transform:rotate(45deg);
}
.aiw-f__opt input:focus-visible + .aiw-f__box{ outline:2px solid var(--aiw-olive,#5E6B4E); outline-offset:2px; }
.aiw-f__name{ flex:1; min-width:0; }
.aiw-f__cnt{ flex:none; font-size:13px; color:var(--aiw-muted,#6E6B66); font-variant-numeric:tabular-nums; }
.aiw-cat .aiw-f__opt.is-off{ cursor:default; color:#A8A39C; }
.aiw-cat .aiw-f__opt.is-off:hover{ background:none; }
.aiw-f__opt.is-off .aiw-f__box, .aiw-f__opt.is-off .aiw-f__sw{ opacity:.45; }
.aiw-f__opt.is-off .aiw-f__cnt{ color:#C4BFB8; }

/* Образец цвета / фактуры */
.aiw-f__sw{
  flex:none; width:20px; height:20px; border-radius:50%; overflow:hidden; display:inline-block;
  box-shadow:inset 0 0 0 1px rgba(22,22,22,.14); background:var(--aiw-panel,#F3F2EF);
}
.aiw-cat .aiw-f__sw img{ width:100%; height:100%; max-width:none; margin:0; border:0; border-radius:0; object-fit:cover; display:block; }
.aiw-f__sw--none{ background:repeating-linear-gradient(135deg, #F3F2EF 0 3px, #E2DED8 3px 4px); }

/* Сортировка: радиокнопки как строки с галочкой */
.aiw-f__tick{ flex:none; opacity:0; color:var(--aiw-ink,#161616); }
.aiw-f__opt--radio input:checked ~ .aiw-f__name{ font-weight:500; }
.aiw-f__opt--radio input:checked ~ .aiw-f__tick{ opacity:1; }
.aiw-f__opt--radio input:focus-visible ~ .aiw-f__name{ text-decoration:underline; }

/* Цена */
.aiw-f__price{ display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:8px 4px 4px; }
.aiw-cat .aiw-f__pfield{
  display:flex; align-items:center; gap:8px; height:48px; margin:0; padding:0 14px; border-radius:var(--aiw-r-sm,12px);
  border:1px solid #D9D6D1; background:#fff; color:var(--aiw-muted,#6E6B66); font-size:14px; transition:border-color .2s ease;
}
.aiw-cat .aiw-f__pfield:focus-within{ border-color:var(--aiw-ink,#161616); }
.aiw-cat .aiw-f__pfield input{
  flex:1; min-width:0; width:100% !important; height:auto !important; margin:0 !important; padding:0 !important;
  border:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; outline:none !important;
  font:inherit !important; font-size:15px !important; color:var(--aiw-ink,#161616) !important; font-variant-numeric:tabular-nums;
}
.aiw-f__pfield input::placeholder{ color:#A8A39C; opacity:1; }
.aiw-f__note{ margin:8px 8px 4px; font-size:13px; line-height:1.45; color:var(--aiw-muted,#6E6B66); }

/* Кнопки «Сбросить» / «Применить» */
.aiw-f__actions{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; padding:12px 4px 4px; border-top:1px solid var(--aiw-line,#ECEAE6); }
.aiw-cat .aiw-f .aiw-f__clear{
  height:40px; padding:0 8px !important; border:0 !important; border-radius:var(--aiw-r-sm,12px) !important;
  background:transparent !important; color:var(--aiw-muted,#6E6B66) !important; font-size:14px !important; font-weight:400 !important;
}
.aiw-cat .aiw-f .aiw-f__clear:hover, .aiw-cat .aiw-f .aiw-f__clear:focus{ background:transparent !important; color:var(--aiw-ink,#161616) !important; }
.aiw-cat .aiw-f .aiw-f__apply{
  height:40px; padding:0 22px !important; border:1px solid var(--aiw-ink,#161616) !important; border-radius:var(--aiw-r-pill,999px) !important;
  background:var(--aiw-ink,#161616) !important; color:#fff !important; font-size:14px !important; font-weight:500 !important;
}
.aiw-cat .aiw-f .aiw-f__apply:hover, .aiw-cat .aiw-f .aiw-f__apply:focus{ background:#2A2825 !important; border-color:#2A2825 !important; color:#fff !important; }
.aiw-cat .aiw-f .aiw-f__clear:focus-visible, .aiw-cat .aiw-f .aiw-f__apply:focus-visible{ outline:2px solid var(--aiw-olive,#5E6B4E) !important; outline-offset:2px; }

.aiw-f.aiw-js .aiw-f__nojs{ display:none; }

/* Элементы только для шторок — на desktop скрыты */
.aiw-cat .aiw-f__mbtn, .aiw-f__sheet-head, .aiw-f__sheet-foot, .aiw-f__backdrop{ display:none; }

/* ---------- Плашки выбранных фильтров ---------- */
.aiw-f__chips{ display:flex; flex-wrap:wrap; gap:8px; margin:calc(clamp(20px, 2.4vw, 32px) * -1 + 4px) 0 clamp(20px, 2.4vw, 32px); }
.aiw-cat .aiw-f__chips .aiw-f__chip{
  height:36px; padding:0 12px 0 14px !important; border-radius:var(--aiw-r-pill,999px) !important;
  display:inline-flex; align-items:center; gap:8px;
  background:var(--aiw-panel,#F3F2EF) !important; border:1px solid var(--aiw-panel,#F3F2EF) !important; color:var(--aiw-ink,#161616) !important;
  font-size:14px !important; font-weight:400 !important; transition:background .2s ease, border-color .2s ease;
}
.aiw-cat .aiw-f__chips .aiw-f__chip:hover, .aiw-cat .aiw-f__chips .aiw-f__chip:focus{ background:#E8E6E2 !important; border-color:#E8E6E2 !important; color:var(--aiw-ink,#161616) !important; }
.aiw-cat .aiw-f__chips .aiw-f__chip:focus-visible{ outline:2px solid var(--aiw-olive,#5E6B4E) !important; outline-offset:2px; }
.aiw-f__chip .aiw-f__sw{ width:16px; height:16px; margin-left:-4px; }
.aiw-f__chip svg{ color:var(--aiw-muted,#6E6B66); }
.aiw-cat .aiw-f__chips .aiw-f__chip--all{
  padding:0 12px !important; background:transparent !important; border-color:transparent !important; color:var(--aiw-muted,#6E6B66) !important;
}
.aiw-cat .aiw-f__chips .aiw-f__chip--all:hover, .aiw-cat .aiw-f__chips .aiw-f__chip--all:focus{ background:transparent !important; border-color:transparent !important; color:var(--aiw-ink,#161616) !important; }

/* Пустая выдача при фильтрах */
.aiw-cat__empty-reset{ margin-right:24px; }

/* ---------- Диагностика (только администраторам) ---------- */
.aiw-fdiag{
  margin:0 0 24px; padding:12px 16px; border:1px dashed #C9C4BC; border-radius:var(--aiw-r-sm,12px);
  background:#FBFAF8; font-size:13px; line-height:1.5; color:var(--aiw-muted,#6E6B66);
}
.aiw-fdiag summary{ cursor:pointer; color:var(--aiw-ink,#161616); }
.aiw-fdiag ul{ margin:10px 0 6px; padding-left:18px; }
.aiw-fdiag li{ margin:2px 0; }
.aiw-fdiag b{ color:var(--aiw-ink,#161616); font-weight:500; }
.aiw-fdiag p{ margin:6px 0 0; }

/* =========================================================
   Tablet и mobile: кнопки «Фильтры» и «Сортировка» + нижние шторки
   ========================================================= */
@media (max-width:899px){
  .aiw-cat .aiw-f{ flex:1 1 100%; }
  .aiw-cat .aiw-f__sort{ margin-left:0; }

  /* Без JS: фильтры остаются обычным рядом кнопок, сортировка — строкой ниже */
  .aiw-cat .aiw-f:not(.aiw-js){ flex-wrap:wrap; }
  .aiw-cat .aiw-f:not(.aiw-js) .aiw-f__groups{ flex:1 1 100%; }
  .aiw-f.aiw-js .aiw-f__groups{ display:none; }

  .aiw-cat .aiw-f.aiw-js .aiw-f__mbtn, .aiw-cat .aiw-f.aiw-js .aiw-f__sortbtn{
    flex:1 1 0; justify-content:center; height:48px; padding:0 16px !important; gap:8px;
    display:inline-flex; align-items:center; border-radius:var(--aiw-r-pill,999px) !important;
    background:#fff !important; border:1px solid #D9D6D1 !important; color:var(--aiw-ink,#161616) !important;
    font-size:15px !important; font-weight:400 !important;
  }
  .aiw-cat .aiw-f.aiw-js .aiw-f__mbtn:hover, .aiw-cat .aiw-f.aiw-js .aiw-f__mbtn:focus{ background:#fff !important; color:var(--aiw-ink,#161616) !important; border-color:var(--aiw-ink,#161616) !important; }
  .aiw-f__mbtn .aiw-f__n{ background:var(--aiw-ink,#161616); color:#fff; }
  .aiw-f.aiw-js .aiw-f__sort{ flex:1 1 0; display:flex; }
  .aiw-f.aiw-js .aiw-f__sort > summary{ width:100%; }
  .aiw-f.aiw-js .aiw-f__sort-k .aiw-f__sort-colon, .aiw-f.aiw-js .aiw-f__sort-v{ display:none; }
  .aiw-f.aiw-js .aiw-f__sort-k{ color:var(--aiw-ink,#161616); }

  /* Шторка — общая основа */
  .aiw-f.aiw-js .aiw-f__groups.is-open,
  .aiw-f.aiw-js .aiw-f__sort[open] > .aiw-f__panel{
    position:fixed; z-index:10001; left:0; right:0; bottom:0; top:auto; width:auto; max-width:none;
    max-height:88vh; overflow:auto; overscroll-behavior:contain;
    display:block; margin:0; padding:0 20px; background:#fff; border:0;
    border-radius:var(--aiw-r-lg,22px) var(--aiw-r-lg,22px) 0 0; box-shadow:0 -12px 40px rgba(22,22,22,.14);
    animation:aiw-f-up .28s var(--aiw-ease,ease);
  }
  .aiw-f.aiw-js .aiw-f__sort[open] > .aiw-f__panel{ padding-bottom:max(16px, env(safe-area-inset-bottom)); }
  .aiw-f.aiw-js .aiw-f__sheet-head{
    position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between;
    height:60px; margin:0 -20px; padding:0 12px 0 20px; background:#fff; border-bottom:1px solid var(--aiw-line,#ECEAE6);
  }
  .aiw-f__sheet-title{ font-family:var(--aiw-font-head,"Geologica",system-ui,sans-serif); font-size:20px; letter-spacing:-.02em; color:var(--aiw-ink,#161616); }
  .aiw-cat .aiw-f .aiw-f__close{
    width:44px; height:44px; padding:0 !important; display:inline-flex; align-items:center; justify-content:center;
    border:0 !important; border-radius:50% !important; background:transparent !important; color:var(--aiw-ink,#161616) !important;
  }
  .aiw-cat .aiw-f .aiw-f__close:hover, .aiw-cat .aiw-f .aiw-f__close:focus{ background:transparent !important; color:var(--aiw-ink,#161616) !important; }
  .aiw-cat .aiw-f .aiw-f__close:focus-visible{ background:var(--aiw-panel,#F3F2EF) !important; }

  /* Фильтры в шторке — аккордеон */
  .aiw-f.aiw-js .aiw-f__groups .aiw-f__dd{ border-bottom:1px solid var(--aiw-line,#ECEAE6); }
  .aiw-cat .aiw-f.aiw-js .aiw-f__groups .aiw-f__pill{
    width:100%; height:60px; padding:0; border:0; border-radius:0; background:transparent !important; color:var(--aiw-ink,#161616) !important;
    font-size:16px; gap:10px;
  }
  .aiw-f.aiw-js .aiw-f__groups .aiw-f__pill-label{ flex:none; }
  .aiw-f.aiw-js .aiw-f__groups .aiw-f__pill .aiw-f__n,
  .aiw-f.aiw-js .aiw-f__groups .aiw-f__pill-val{ display:none; }
  .aiw-f.aiw-js .aiw-f__groups .aiw-f__pill-sum{
    display:block; flex:1; min-width:0; text-align:right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    font-size:14px; color:var(--aiw-muted,#6E6B66);
  }
  .aiw-f.aiw-js .aiw-f__groups .aiw-f__pill .aiw-f__chev{ margin-left:auto; }
  .aiw-f.aiw-js .aiw-f__groups .aiw-f__pill-sum + .aiw-f__chev{ margin-left:0; }
  .aiw-cat .aiw-f.aiw-js .aiw-f__groups .aiw-f__panel{
    position:static; width:auto; max-width:none; padding:0 0 12px; border:0; border-radius:0; box-shadow:none;
  }
  .aiw-f.aiw-js .aiw-f__groups .aiw-f__opts{ max-height:none; overflow:visible; }
  .aiw-f.aiw-js .aiw-f__groups .aiw-f__opt{ padding:12px 4px; }
  .aiw-f.aiw-js .aiw-f__groups .aiw-f__actions{ display:none; }

  .aiw-f.aiw-js .aiw-f__sheet-foot{
    position:sticky; bottom:0; display:flex; gap:12px; align-items:center; justify-content:space-between;
    margin:0 -20px; padding:14px 20px max(14px, env(safe-area-inset-bottom)); background:#fff; border-top:1px solid var(--aiw-line,#ECEAE6);
  }
  .aiw-cat .aiw-f.aiw-js .aiw-f__sheet-foot .aiw-f__apply{ flex:1; height:52px; font-size:15px !important; }

  /* Сортировка в шторке */
  .aiw-f.aiw-js .aiw-f__sort .aiw-f__opts{ max-height:none; padding:8px 0; }
  .aiw-f.aiw-js .aiw-f__sort .aiw-f__opt{ padding:14px 4px; font-size:16px; }

  .aiw-f.aiw-js .aiw-f__backdrop:not([hidden]){
    display:block; position:fixed; inset:0; z-index:10000; background:rgba(22,22,22,.42); animation:aiw-f-fade .2s ease;
  }
  html.aiw-f-lock, html.aiw-f-lock body{ overflow:hidden; }

  .aiw-f__chips{ margin-top:-8px; }
}
@media (max-width:767px){
  .aiw-cat--term .aiw-cat__bar{ align-items:stretch; }
  .aiw-cat--term .aiw-cat__bar .aiw-f{ width:100%; }
  .aiw-cat .aiw-f.aiw-js .aiw-f__mbtn, .aiw-cat .aiw-f.aiw-js .aiw-f__sortbtn{ height:46px; font-size:14px !important; }
  .aiw-cat .aiw-f__chips .aiw-f__chip{ height:34px; font-size:13px !important; }
}
@keyframes aiw-f-up{ from{ transform:translateY(24px); opacity:0; } to{ transform:none; opacity:1; } }
@keyframes aiw-f-fade{ from{ opacity:0; } to{ opacity:1; } }
@media (prefers-reduced-motion:reduce){
  .aiw-f.aiw-js .aiw-f__groups.is-open, .aiw-f.aiw-js .aiw-f__sort[open] > .aiw-f__panel, .aiw-f.aiw-js .aiw-f__backdrop:not([hidden]){ animation:none; }
}
