/* Каталог светильников — в фирменной обвязке (b-section / l-container / h1 сайта) */

/* body сайта — флекс-колонка с height:100% (ровно один экран).
   flex:1 0 auto — «липкий футер»: main растягивается на свободное место
   (короткая страница — футер у низа экрана) и не сжимается
   (длинная страница — контент не уезжает под футер). */
main.cat-page,main.cat-detail{flex:1 0 auto;height:auto;}
main.cat-page ~ .b-footer,main.cat-detail ~ .b-footer{flex-shrink:0;}
.b-section .cat-count{color:#6b7280;font-size:15px;margin:2px 0 22px;}
.cat-error{padding:40px;text-align:center;color:#b91c1c;background:#fef2f2;border-radius:14px;}
.cat-error a{color:#2563eb;}
.cat-empty{padding:48px 20px;text-align:center;color:#6b7280;background:#f8fafc;border-radius:14px;}
.cat-empty--sm{padding:16px;font-size:13px;}

.cat-layout{display:grid;grid-template-columns:250px 1fr;gap:28px;align-items:start;color:#1f2937;}

/* Фильтры */
/* Форма-обёртка тянется на всю высоту ряда, липкость — на внутренней панели.
   Важно: sticky создаёт stacking-контекст, поэтому модалка лежит вне .cat-filters. */
.cat-filters-form{align-self:stretch;min-width:0;}
/* Липкий сайдбар: фильтры скроллятся внутри, кнопки «Применить/Сбросить» всегда видны */
.cat-filters{position:sticky;top:16px;display:flex;flex-direction:column;background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;padding:18px;}
.cat-filters__scroll{display:flex;flex-direction:column;gap:18px;}
.cat-filter-block{display:flex;flex-direction:column;gap:8px;}
/* Заголовок-переключатель со шевроном */
.cat-filter-title{display:flex;align-items:center;gap:8px;width:100%;padding:2px 0;background:none;border:0;cursor:pointer;text-align:left;
  font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:#374151;font-family:inherit;}
.cat-filter-title::after{content:"⌃";margin-left:auto;font-size:13px;line-height:1;color:#6b7280;transform:translateY(3px);transition:transform .15s;}
.cat-filter-title[aria-expanded="false"]::after{transform:rotate(180deg) translateY(2px);}
.cat-filter-title:hover{color:#2563eb;}
.cat-filter-title__badge{font-style:normal;min-width:18px;text-align:center;padding:0 5px;border-radius:20px;background:#2563eb;color:#fff;font-size:11px;line-height:17px;}
.cat-filter-body{display:flex;flex-direction:column;gap:8px;}
.cat-filter-body[hidden]{display:none;}
.cat-filter-search{width:100%;box-sizing:border-box;padding:7px 10px;border:1px solid #d1d5db;border-radius:8px;font-size:13px;}
.cat-check.is-extra{display:none;}
.cat-filter-more{align-self:flex-start;padding:2px 0;background:none;border:0;border-bottom:1px dashed #93b4f5;color:#2563eb;font:600 12.5px Arial;cursor:pointer;}
.cat-filter-more:hover{color:#1d4ed8;}
/* Поиск по названиям фильтров — над списком фильтров */
.cat-filters__find{flex:none;margin-bottom:14px;}
.cat-filters__find-input{width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid #d1d5db;border-radius:10px;font-size:13.5px;background:#fff;}
.cat-filters__find-input:focus{outline:none;border-color:#2563eb;}

/* Поиск по названию светильника — над карточками */
.cat-searchbar{display:flex;gap:8px;align-items:center;margin-bottom:14px;}
.cat-searchbar__input{flex:1;min-width:0;box-sizing:border-box;padding:11px 14px;border:1px solid #d1d5db;border-radius:10px;font-size:14px;}
.cat-searchbar__input:focus{outline:none;border-color:#2563eb;}
.cat-searchbar__clear{width:38px;height:38px;flex:none;display:flex;align-items:center;justify-content:center;border:1px solid #d1d5db;border-radius:10px;color:#6b7280;text-decoration:none;font-size:20px;line-height:1;}
.cat-searchbar__clear:hover{border-color:#ef4444;color:#ef4444;}
.cat-cats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;}
.cat-cats a{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:8px;color:#374151;text-decoration:none;font-size:13.5px;}
.cat-cats a:hover{background:#eef2f7;}
.cat-cats a.is-active{background:#2563eb;color:#fff;}
.cat-cats a.is-active em{color:#dbeafe;}
.cat-cats em{font-style:normal;color:#6b7280;font-size:12px;}
.cat-check{display:flex;align-items:center;gap:8px;font-size:13.5px;cursor:pointer;padding:2px 0;}
.cat-check input{margin:0;}
.cat-check span{flex:1;}
.cat-check em{font-style:normal;color:#6b7280;font-size:12px;}
.cat-checks{display:flex;flex-direction:column;gap:1px;}
.cat-range{display:flex;align-items:center;gap:8px;}

/* Кнопка «Все фильтры» */
.cat-btn--all{width:100%;justify-content:center;gap:8px;background:#fff;border:1px solid #2563eb;color:#2563eb;}
.cat-btn--all:hover{background:#eff6ff;}
.cat-allfilters__badge{min-width:20px;padding:0 6px;border-radius:20px;background:#2563eb;color:#fff;font-size:11px;line-height:18px;}

/* Модалка «Все фильтры» */
.cat-modal{position:fixed;inset:0;z-index:100001;display:flex;align-items:center;justify-content:center;padding:20px;}
.cat-modal[hidden]{display:none;}
.cat-modal__backdrop{position:absolute;inset:0;background:rgba(2,6,23,.55);}
.cat-modal__box{position:relative;background:#fff;border-radius:16px;width:min(94vw,980px);max-height:88vh;display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(0,0,0,.35);}
.cat-modal__head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #e5e7eb;}
.cat-modal__head h3{margin:0;font-size:20px;font-weight:800;color:#192033;}
.cat-modal__close{width:34px;height:34px;border-radius:9px;border:1px solid #e5e7eb;background:#fff;font-size:22px;line-height:1;color:#6b7280;cursor:pointer;}
.cat-modal__close:hover{border-color:#2563eb;color:#2563eb;}
/* DNS-раскладка: слева навигация по группам + кнопки, справа скролл групп */
.cat-modal__main{display:grid;grid-template-columns:220px 1fr;min-height:0;flex:1;}
.cat-modal__nav{display:flex;flex-direction:column;justify-content:space-between;gap:16px;padding:16px;border-right:1px solid #e5e7eb;background:#fff;border-radius:0 0 0 16px;}
.cat-modal__nav-list{display:flex;flex-direction:column;gap:2px;overflow-y:auto;}
.cat-modal__nav-item{text-align:left;padding:9px 12px;border:0;border-radius:8px;background:none;color:#374151;font:600 13.5px Arial;cursor:pointer;}
.cat-modal__nav-item:hover{background:#f1f5f9;}
.cat-modal__nav-item.is-active{background:#eff6ff;color:#2563eb;}
.cat-modal__nav-actions{display:flex;flex-direction:column;gap:8px;}
.cat-modal__nav-actions .cat-btn{width:100%;}
.cat-modal__body{padding:8px 22px 18px;overflow-y:auto;min-height:0;}
.cat-modal__group{padding:14px 0;border-bottom:1px solid #f1f5f9;}
.cat-modal__group:last-child{border-bottom:none;}
.cat-modal__group-title{font-size:16px;font-weight:800;color:#192033;margin-bottom:12px;}
.cat-modal__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 28px;align-items:start;}
.cat-modal__grid .cat-filter-block{gap:6px;padding:6px 0;}
@media (max-width:760px){
  .cat-modal__main{grid-template-columns:1fr;}
  .cat-modal__nav{flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid #e5e7eb;}
  .cat-modal__nav-list{flex-direction:row;flex-wrap:wrap;}
  .cat-modal__grid{grid-template-columns:1fr;}
}
.cat-range input{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;}
.cat-filter-actions{display:flex;gap:8px;flex:none;padding-top:12px;margin-top:12px;border-top:1px solid #e5e7eb;background:#f8fafc;}
.cat-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;border:1px solid transparent;}
.cat-btn--primary{background:#2563eb;color:#fff;flex:1;}
.cat-btn--primary:hover{background:#1d4ed8;}
.cat-btn--ghost{background:#fff;border-color:#d1d5db;color:#374151;}
.cat-btn--ghost:hover{background:#f3f4f6;}

/* Тулбар + сетка */
.cat-toolbar{display:flex;align-items:center;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid #eef1f5;}
.cat-sortbar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:14px;}
.cat-sortbar__label{color:#6b7280;margin-right:6px;}
.cat-sort{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:8px;color:#374151;text-decoration:none;font-weight:600;transition:color .12s,background .12s;}
.cat-sort:hover{color:#2563eb;background:#f3f6fb;}
.cat-sort.is-active{color:#2563eb;}
.cat-sort__dir{font-size:12px;color:#9aa3af;line-height:1;}
.cat-sort.is-active .cat-sort__dir{color:#2563eb;}

/* Заголовки групп-производителей в сетке */
.cat-mfr-title{font-size:18px;font-weight:800;color:#192033;margin:26px 0 14px;display:flex;align-items:center;gap:10px;}
.cat-mfr-title:first-of-type{margin-top:2px;}
.cat-mfr-count{font-size:12px;font-weight:700;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;padding:1px 9px;}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;}
.cat-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e5e7eb;border-radius:16px;overflow:hidden;text-decoration:none;color:inherit;transition:box-shadow .16s,transform .16s,border-color .16s;}
.cat-card:hover{box-shadow:0 10px 26px rgba(2,6,23,.10);transform:translateY(-2px);border-color:#c7d2fe;}
.cat-card__img{position:relative;aspect-ratio:1/1;background:#f1f5f9;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.cat-card__img img{width:100%;height:100%;object-fit:contain;padding:10px;box-sizing:border-box;}
.cat-card__noimg{color:#6b7280;font-size:13px;}
.cat-card__noimg--lg{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border-radius:14px;}
.cat-badge{position:absolute;top:10px;font-size:11px;font-weight:700;padding:4px 9px;border-radius:20px;}
.cat-badge--ies{left:10px;background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;}
.cat-badge--new{right:10px;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;}
/* Платное продвижение. Ставится под «Новинкой», чтобы метки не наезжали. */
.cat-badge--promo{right:10px;top:38px;background:#fffbeb;color:#b45309;border:1px solid #fde68a;}
.cat-card__img:not(:has(.cat-badge--new)) .cat-badge--promo{top:10px;}
.cat-card__body{padding:12px 14px 16px;display:flex;flex-direction:column;gap:5px;flex:1;}
.cat-card__cat{font-size:11.5px;color:#2563eb;font-weight:600;text-transform:uppercase;letter-spacing:.02em;}
.cat-card__name{font-size:15px;font-weight:700;line-height:1.25;}
.cat-card__meta{display:flex;gap:10px;flex-wrap:wrap;color:#4b5563;font-size:13px;margin-top:2px;}
.cat-card__mods{margin-top:auto;color:#6b7280;font-size:12px;padding-top:6px;}

/* Пагинация */
.cat-pager{display:flex;gap:6px;justify-content:center;margin-top:28px;flex-wrap:wrap;}
.cat-pager a,.cat-pager__cur,.cat-pager__gap{min-width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:9px;font-size:14px;text-decoration:none;}
.cat-pager a{border:1px solid #d1d5db;color:#374151;}
.cat-pager a:hover{background:#f3f4f6;}
.cat-pager__cur{background:#2563eb;color:#fff;font-weight:700;}
.cat-pager__gap{color:#6b7280;}

/* Детальная */
.cat-detail .b-section{color:#1f2937;}
.cat-detail__top{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:6px 0 36px;}
.cat-gallery__main{background:#f1f5f9;border-radius:16px;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.cat-gallery__main img{width:100%;height:100%;object-fit:contain;padding:16px;box-sizing:border-box;}
.cat-gallery__thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
.cat-gallery__thumbs img{width:64px;height:64px;object-fit:contain;background:#f1f5f9;border:2px solid transparent;border-radius:10px;cursor:pointer;padding:4px;box-sizing:border-box;}
.cat-gallery__thumbs img.is-active{border-color:#2563eb;}
.cat-detail__cats{font-size:12.5px;color:#2563eb;font-weight:600;text-transform:uppercase;letter-spacing:.02em;margin:2px 0 18px;}
.cat-detail__summary{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px;}
.cat-detail__summary>div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;gap:2px;}
.cat-detail__summary span{font-size:12px;color:#6b7280;}
.cat-detail__summary b{font-size:18px;color:#111827;}
.cat-detail__desc{color:#374151;font-size:14px;line-height:1.6;}

.cat-mods-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:6px 0 14px;}
.cat-section-title{font-size:20px;font-weight:700;letter-spacing:.02em;line-height:1.3;margin:0;}
.cat-mods-count{display:inline-block;min-width:22px;text-align:center;font-size:13px;font-weight:700;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;padding:1px 9px;margin-left:6px;vertical-align:middle;}
.cat-mods-filter{flex:0 1 300px;padding:9px 12px;border:1px solid #d1d5db;border-radius:10px;font-size:14px;}

/* Таблица исполнений */
.cat-mods-wrap{border:1px solid #e5e7eb;border-radius:14px;overflow:hidden;overflow-x:auto;background:#fff;}
.cat-mods{width:100%;border-collapse:collapse;font-size:14px;color:#1f2937;min-width:640px;}
.cat-mods thead th{text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:#6b7280;background:#f8fafc;padding:11px 14px;border-bottom:1px solid #e5e7eb;white-space:nowrap;}
.cat-mods__th-name{min-width:260px;}
.cat-mod-group>td{padding:0;background:#eef2f7;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;}
.cat-mods tbody .cat-mod-group:first-child>td{border-top:none;}
.cat-mod-group__btn{width:100%;display:flex;align-items:center;gap:12px;padding:11px 14px;background:none;border:0;cursor:pointer;font:inherit;text-align:left;}
.cat-mod-group__btn::before{content:"▾";font-size:11px;color:#64748b;transition:transform .15s;flex:none;}
.cat-mod-group.is-collapsed .cat-mod-group__btn::before{transform:rotate(-90deg);}
.cat-mod-group__label{font-weight:700;color:#192033;font-size:14px;}
.cat-mod-group__count{color:#6b7280;font-size:12.5px;}
.cat-mod-group__btn:hover .cat-mod-group__label{color:#2563eb;}
.cat-mod{cursor:pointer;transition:background .12s;}
.cat-mod>td{padding:12px 14px;border-bottom:1px solid #f1f5f9;vertical-align:middle;white-space:nowrap;}
.cat-mod:hover{background:#f8fafc;}
.cat-mod.is-open{background:#eff6ff;}
.cat-mod__name{font-weight:600;color:#111827;white-space:normal;min-width:260px;}
.cat-mod__nofile{color:#6b7280;}
.cat-mod__act{text-align:right;}
.cat-mod__toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #cfd6df;border-radius:8px;background:#fff;color:#374151;font:600 12.5px Arial;cursor:pointer;white-space:nowrap;}
.cat-mod__toggle:hover{border-color:#2563eb;color:#2563eb;}
.cat-mod__toggle::after{content:"▾";font-size:11px;transition:transform .15s;}
.cat-mod.is-open .cat-mod__toggle{background:#2563eb;border-color:#2563eb;color:#fff;}
.cat-mod.is-open .cat-mod__toggle::after{transform:rotate(180deg);}
.cat-mod-detail>td{padding:0;background:#fbfcfe;border-bottom:1px solid #e5e7eb;}
.cat-mod-detail__body{padding:16px 16px 20px;}
.cat-spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;}
.cat-spec-grid__row{display:flex;justify-content:space-between;gap:14px;padding:7px 2px;border-bottom:1px solid #eef1f5;font-size:13.5px;}
.cat-spec-grid__row span{color:#6b7280;}
.cat-spec-grid__row b{color:#111827;text-align:right;font-weight:600;}
.cat-photo-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;}
.cat-photo-actions .mf-photo-open{margin:0;}
.cat-analog-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid #fed7aa;border-radius:10px;background:#fff7ed;color:#c2410c;font:600 13px/1 sans-serif;text-decoration:none;cursor:pointer;transition:border-color .15s,background .15s;}
.cat-analog-btn:hover{background:#ffedd5;border-color:#fdba74;}
.cat-analog-btn__ic{width:15px;height:15px;flex:none;background:currentColor;-webkit-mask:no-repeat center/contain;mask:no-repeat center/contain;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3H5a2 2 0 0 0-2 2v3'/%3E%3Cpath d='M16 3h3a2 2 0 0 1 2 2v3'/%3E%3Cpath d='M8 21H5a2 2 0 0 1-2-2v-3'/%3E%3Cpath d='M16 21h3a2 2 0 0 0 2-2v-3'/%3E%3Cpath d='m9 15 6-6'/%3E%3Cpath d='M9 9h.01'/%3E%3Cpath d='M15 15h.01'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3H5a2 2 0 0 0-2 2v3'/%3E%3Cpath d='M16 3h3a2 2 0 0 1 2 2v3'/%3E%3Cpath d='M8 21H5a2 2 0 0 1-2-2v-3'/%3E%3Cpath d='M16 21h3a2 2 0 0 0 2-2v-3'/%3E%3Cpath d='m9 15 6-6'/%3E%3Cpath d='M9 9h.01'/%3E%3Cpath d='M15 15h.01'/%3E%3C/svg%3E");}
/* Скачивание файлов (карточка «Документы и файлы» + файлы исполнения). */
.cat-files{margin:0 0 8px;}
.cat-files--card{margin:22px 0 8px;padding:16px 18px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;}
.cat-files__head{font-size:14px;font-weight:700;color:#192033;margin:0 0 12px;letter-spacing:.01em;}
.cat-files__n{display:inline-block;min-width:20px;text-align:center;font-size:12px;font-weight:700;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;padding:0 7px;margin-left:4px;}
.cat-files--mod .cat-files__head{font-size:12.5px;color:#475569;margin:2px 0 8px;text-transform:uppercase;letter-spacing:.04em;}
.cat-files__list{display:flex;flex-wrap:wrap;gap:8px;}
.cat-file{display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:8px 12px 8px 8px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;text-decoration:none;transition:border-color .15s,box-shadow .15s;}
.cat-file:hover{border-color:#93c5fd;box-shadow:0 2px 8px rgba(37,99,235,.1);}
.cat-file__ext{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:30px;padding:0 6px;border-radius:7px;font:700 10px/1 sans-serif;text-transform:uppercase;letter-spacing:.02em;color:#475569;background:#eef2f7;}
.cat-file__ext[data-ext="pdf"]{color:#b91c1c;background:#fef2f2;}
.cat-file__ext[data-ext="ies"]{color:#047857;background:#ecfdf5;}
.cat-file__ext[data-ext="dwg"]{color:#c2410c;background:#fff7ed;}
.cat-file__ext[data-ext="zip"],.cat-file__ext[data-ext="rar"]{color:#7c3aed;background:#f5f3ff;}
.cat-file__ext[data-ext="3ds"]{color:#0e7490;background:#ecfeff;}
.cat-file__label{font-size:13.5px;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cat-file__dl{flex:none;width:16px;height:16px;background:currentColor;color:#64748b;-webkit-mask:no-repeat center/contain;mask:no-repeat center/contain;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");}
.cat-file:hover .cat-file__dl{color:#2563eb;}

/* Протоколы испытаний — отдельный раздел карточки (созвон 06.10).
   Блок выводится только когда протоколы есть; отсутствие не показываем. */
.cat-files--protocols{margin:22px 0 0;padding:16px 18px;background:#fefce8;border:1px solid #fde68a;border-radius:14px;}
.cat-files--protocols .cat-files__head{color:#854d0e;}
.cat-files--protocols .cat-files__n{color:#854d0e;background:#fef9c3;border-color:#fde68a;}
.cat-files--card + .cat-files--protocols{margin-top:10px;}

/* Возврат из подбора аналогов: короткая подсветка исполнения. */
.cat-mod.is-flash{animation:catModFlash 1.8s ease-out;}
@keyframes catModFlash{0%,30%{background:#fef3c7;box-shadow:inset 3px 0 0 #f59e0b;}100%{background:transparent;box-shadow:inset 3px 0 0 transparent;}}

@media (max-width:900px){
  .cat-layout{grid-template-columns:1fr;}
  .cat-filters{position:static;}
  .cat-detail__top{grid-template-columns:1fr;gap:20px;}
  .cat-spec-grid{grid-template-columns:1fr;gap:0;}
}

/* Ссылка на подбор аналогов в шапке каталога */
.cat-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.cat-analogs-link{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#f97316;text-decoration:none;border:1px solid #fed7aa;background:#fff7ed;padding:8px 14px;border-radius:10px;transition:.15s;}
.cat-analogs-link:hover{background:#ffedd5;border-color:#fdba74;}

/* ---------- Пояснение под заголовком ----------
   Человек, попавший в каталог впервые, не понимает, что это за список. */
.cat-lead{max-width:820px;margin:10px 0 4px;font-size:15px;line-height:1.55;color:#475569;}
.cat-lead__link{color:#f97316;text-decoration:none;border-bottom:1px dashed #fdba74;}
.cat-lead__link:hover{color:#ea580c;border-bottom-style:solid;}

/* ---------- Карусель производителей ----------
   Полоса логотипов: у кого оплачено продвижение — впереди и с меткой. */
.cat-mfr-strip{position:relative;margin:16px 0 4px;padding:10px 0;border-top:1px solid #eef2f7;border-bottom:1px solid #eef2f7;overflow:hidden;}
.cat-mfr-strip__track{display:flex;gap:10px;align-items:stretch;transition:transform .5s ease;}
/* Широкий баннер: картинку производитель загружает сам. Крутится тем же
   скриптом, что и полоса логотипов, — отсюда те же data-атрибуты. */
.cat-mfr-wide{position:relative;margin:16px 0 8px;overflow:hidden;border-radius:14px;}
.cat-mfr-wide__track{display:flex;gap:10px;transition:transform .5s ease;}
.cat-mfr-wide__slide{position:relative;flex:0 0 100%;border-radius:14px;overflow:hidden;background:#f8fafc;}
.cat-mfr-wide__link{display:block;}
.cat-mfr-wide__link img{display:block;width:100%;height:auto;max-height:240px;object-fit:cover;}
/* Подпись поверх картинки: у баннеров бывает светлый низ, поэтому подложка. */
.cat-mfr-wide__cat{position:absolute;left:14px;bottom:12px;padding:6px 12px;border-radius:999px;
  background:rgba(15,23,42,.72);color:#fff;font-size:12.5px;font-weight:600;text-decoration:none;}
.cat-mfr-wide__cat:hover{background:#f97316;color:#fff;text-decoration:none;}
.cat-mfr-wide .cat-mfr-item__ad{top:10px;right:12px;padding:2px 7px;border-radius:999px;background:rgba(15,23,42,.6);color:#fde68a;}
@media(max-width:700px){.cat-mfr-wide__link img{max-height:150px;}}

/* Плитка — контейнер с двумя ссылками: логотип ведёт на сайт производителя
   (за это место платят), подпись — в наш каталог. Вложить ссылку в ссылку
   нельзя, поэтому плитка перестала быть <a>. */
.cat-mfr-item{position:relative;flex:0 0 calc((100% - 50px) / 6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  min-height:64px;padding:10px 12px;background:#fff;border:1px solid #eef2f7;border-radius:12px;transition:.15s;}
.cat-mfr-item:hover{border-color:#cbd5e1;box-shadow:0 6px 18px rgba(15,23,42,.07);}
.cat-mfr-item__main{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;text-decoration:none;}
.cat-mfr-item__cat{font-size:10.5px;line-height:1.2;color:#64748b;text-decoration:none;white-space:nowrap;}
.cat-mfr-item__cat:hover{color:#f97316;text-decoration:underline;}
.cat-mfr-item img{max-width:100%;max-height:44px;object-fit:contain;}
.cat-mfr-item__text{font-size:13px;font-weight:700;color:#334155;text-align:center;}
.cat-mfr-item.is-promoted{border-color:#fde68a;background:#fffbeb;}
.cat-mfr-item__ad{position:absolute;top:4px;right:6px;font-style:normal;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#b45309;}
@media(max-width:1100px){.cat-mfr-item{flex:0 0 calc((100% - 30px) / 4);}}
@media(max-width:700px){.cat-mfr-item{flex:0 0 calc((100% - 20px) / 3);}}

/* ---------- Назначения плиткой (витрина) ---------- */
.cat-purpose{margin:16px 0 8px;}
.cat-purpose__head{font-size:14px;font-weight:700;letter-spacing:.02em;color:#0f172a;margin-bottom:8px;}
/* Компактная плитка: иконка + подпись. Показывается на всех страницах, поэтому
   не должна съедать экран — отсюда небольшой размер и авто-заполнение ряда. */
.cat-purpose__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;}
.cat-purpose__tile{display:flex;align-items:center;gap:8px;padding:9px 11px;min-width:0;
  background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;text-decoration:none;
  transition:border-color .15s,background .15s;}
.cat-purpose__tile:hover{background:#eef2f7;border-color:#cbd5e1;}
.cat-purpose__tile.is-active{background:#eff6ff;border-color:#2563eb;}
.cat-purpose__ic{flex:none;width:22px;height:22px;color:#64748b;}
.cat-purpose__tile.is-active .cat-purpose__ic{color:#2563eb;}
.cat-purpose__name{flex:1;min-width:0;font-size:12.5px;font-weight:600;line-height:1.25;color:#334155;
  overflow:hidden;text-overflow:ellipsis;}
.cat-purpose__tile.is-active .cat-purpose__name{color:#1d4ed8;}
.cat-purpose__n{flex:none;font-size:11px;font-weight:700;color:#64748b;}
.cat-purpose__tile--all .cat-purpose__name{color:#64748b;}

.cat-verify h1{margin-bottom:14px;}
.cat-verify__lead{max-width:800px;font-size:17px;line-height:1.6;color:#334155;margin:0 0 26px;
  padding-left:16px;border-left:3px solid #f97316;}
.cat-verify__block{max-width:800px;margin:0 0 26px;}
.cat-verify__block h2{font-size:19px;font-weight:700;color:#0f172a;margin:0 0 10px;}
.cat-verify__block p{font-size:15px;line-height:1.6;color:#475569;margin:0 0 10px;}
.cat-verify__list{margin:0 0 10px;padding-left:20px;font-size:15px;line-height:1.7;color:#475569;}
.cat-verify__note{font-size:13.5px;color:#64748b;}
.cat-verify__cta{margin-top:30px;}

/* Снят с производства: в каталоге остаётся, в плагин не выгружается. */
.cat-badge--off{left:10px;top:38px;background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0;}
.cat-card__img:not(:has(.cat-badge--ies)) .cat-badge--off{top:10px;}
.cat-mod__off{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:20px;
  background:#f1f5f9;border:1px solid #e2e8f0;color:#64748b;font-size:11px;white-space:nowrap;}
.cat-check--off{margin:0 0 12px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;}
.cat-check--off span{color:#475569;font-size:13px;}

/* Приглашение производителям — под выдачей каталога.
   Заметное, но не кричащее: кнопка контурная, а не сплошная, чтобы не
   соперничать с карточками и не собирать случайные нажатия. */
.cat-invite{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  margin:36px 0 8px;padding:22px 26px;border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;}
.cat-invite__text{flex:1 1 320px;min-width:0;}
.cat-invite__title{display:block;font-size:17px;color:#0f172a;margin-bottom:4px;}
.cat-invite__sub{display:block;font-size:14px;line-height:1.5;color:#64748b;}
.cat-invite__btn{flex:none;padding:12px 22px;border:1px solid #1c62d6;border-radius:10px;
  color:#1c62d6;background:#fff;font-size:14.5px;font-weight:600;text-decoration:none;
  white-space:nowrap;transition:background .15s,color .15s;}
.cat-invite__btn:hover{background:#1c62d6;color:#fff;text-decoration:none;}
@media(max-width:640px){
  .cat-invite{padding:18px;}
  .cat-invite__btn{width:100%;text-align:center;}
}

/* Системная настройка «уменьшить движение»: карусели производителей
   прокручиваются сами, карточки приподнимаются при наведении. */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Подходящие опоры и кронштейны в карточке светильника: те же плитки, что в
   каталоге; подзаголовок нужен, когда серии разбиты по разделам. */
.cat-mk-title { margin: 18px 0 10px; font-size: 16px; font-weight: 600; color: #1f2937; }
.cat-mk-title .cat-mods-count { margin-left: 6px; }
.cat-mk-grid { margin-bottom: 28px; }


/* Диапазон значений группы исполнений в свёрнутом виде (27.10 #4). */
.cat-mod-group__range{color:#2563eb;font-size:12px;font-weight:500;}

/* Свёрнутая группа — сеткой колонок таблицы, значения под своими шапками
   (27.10 #5). Перекрывает базовые правила группы выше по файлу. */
.cat-mod-group>td{padding:9px 12px;}
.cat-mod-group__cell{font-size:13px;color:#334155;white-space:nowrap;}
.cat-mod-group__cell--name{font-weight:600;color:#0f172a;}
.cat-mod-group__btn{width:auto;display:inline-flex;align-items:center;gap:8px;padding:0;background:none;border:0;cursor:pointer;font:inherit;font-weight:600;color:#0f172a;text-align:left;font-size:13px;}
.cat-mod-group__btn::before{font-size:11px;color:#64748b;}
.cat-mod-group__btn:hover{color:#1d4ed8;}
.cat-mod-group .cat-mod-group__range{color:#2563eb;font-weight:600;}
.cat-mod-group__count{color:#475569;}

/* Аксессуары серии в карточке (27.10). */
.cat-acc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin:12px 0 18px;}
.cat-acc-row{display:flex;align-items:center;gap:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;}
.cat-acc-photo{flex:0 0 44px;width:44px;height:44px;border-radius:8px;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center;}
.cat-acc-photo img{max-width:100%;max-height:100%;object-fit:contain;}
.cat-acc-body{min-width:0;}
.cat-acc-name{font-size:13.5px;font-weight:600;color:#0f172a;line-height:1.35;}
.cat-acc-art{font-size:12px;color:#64748b;margin-top:2px;}
