@font-face { font-family:'Montserrat'; font-style:normal; font-weight:300; font-display:swap; src:url('fonts/montserrat-cyrillic-ext-300.woff2') format('woff2');
  unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:300; font-display:swap; src:url('fonts/montserrat-cyrillic-300.woff2') format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:300; font-display:swap; src:url('fonts/montserrat-latin-ext-300.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:300; font-display:swap; src:url('fonts/montserrat-latin-300.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/montserrat-cyrillic-ext-400.woff2') format('woff2');
  unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/montserrat-cyrillic-400.woff2') format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/montserrat-latin-ext-400.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/montserrat-latin-400.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:500; font-display:swap; src:url('fonts/montserrat-cyrillic-ext-500.woff2') format('woff2');
  unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:500; font-display:swap; src:url('fonts/montserrat-cyrillic-500.woff2') format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:500; font-display:swap; src:url('fonts/montserrat-latin-ext-500.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:500; font-display:swap; src:url('fonts/montserrat-latin-500.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:600; font-display:swap; src:url('fonts/montserrat-cyrillic-ext-600.woff2') format('woff2');
  unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:600; font-display:swap; src:url('fonts/montserrat-cyrillic-600.woff2') format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:600; font-display:swap; src:url('fonts/montserrat-latin-ext-600.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:600; font-display:swap; src:url('fonts/montserrat-latin-600.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:700; font-display:swap; src:url('fonts/montserrat-cyrillic-ext-700.woff2') format('woff2');
  unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:700; font-display:swap; src:url('fonts/montserrat-cyrillic-700.woff2') format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:700; font-display:swap; src:url('fonts/montserrat-latin-ext-700.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:700; font-display:swap; src:url('fonts/montserrat-latin-700.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:800; font-display:swap; src:url('fonts/montserrat-cyrillic-ext-800.woff2') format('woff2');
  unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:800; font-display:swap; src:url('fonts/montserrat-cyrillic-800.woff2') format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:800; font-display:swap; src:url('fonts/montserrat-latin-ext-800.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:800; font-display:swap; src:url('fonts/montserrat-latin-800.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:900; font-display:swap; src:url('fonts/montserrat-cyrillic-ext-900.woff2') format('woff2');
  unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:900; font-display:swap; src:url('fonts/montserrat-cyrillic-900.woff2') format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:900; font-display:swap; src:url('fonts/montserrat-latin-ext-900.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:900; font-display:swap; src:url('fonts/montserrat-latin-900.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ──────────────────────────────────────────────────────────
   ФЛиС — Спецодежда · редизайн (B2B, смелый журнальный стиль)
   Шрифт: Montserrat (геометрический, с кириллицей; Poppins её не имел)
   Палитра: синий + оранжевый (фирменные цвета ФЛиС)
   ──────────────────────────────────────────────────────── */

/* ── Montserrat (локальные woff2, поднаборы cyrillic/latin) ── */

:root {
  /* ─── Бренд: синий + оранжевый ─────────────────────── */
  --blue:        #1B4DAB;   /* основной — структура, шапка, ссылки */
  --blue-dark:   #143A82;   /* hover / нажатие */
  --blue-deep:   #0C2552;   /* тёмные секции, hero, футер */
  --blue-tint:   #EAF0FB;   /* светлая заливка, чипы */
  --orange:      #F2641E;   /* акцент / hi-vis CTA */
  --orange-dark: #D24F0E;   /* hover на оранжевом */
  --orange-tint: #FDEDE3;   /* светлая заливка под акцент */

  --ink:         #15181E;   /* основной текст, журнальные заголовки */
  --canvas:      #F4F3EF;   /* фон страницы, тёплый */
  --white:       #FFFFFF;
  --gray-line:   #E4E3DD;   /* разделители */
  --gray-mute:   #565961;   /* приглушённый текст */
  --gray-soft:   #9A9DA4;   /* подписи, мета */

  /* живой акцент — переключается через Tweaks */
  --accent:      var(--orange);
  --accent-dark: var(--orange-dark);
  --accent-tint: var(--orange-tint);

  /* ─── Семантика ────────────────────────────────────── */
  --fg-1: var(--ink);
  --fg-2: #41454D;
  --fg-3: var(--gray-mute);
  --fg-4: var(--gray-soft);
  --on-dark-1: #FFFFFF;
  --on-dark-2: #AEB7C8;
  --on-dark-3: #6E7790;

  --bg-canvas:  var(--canvas);
  --bg-surface: var(--white);
  --bg-inverse: var(--blue-deep);
  --bg-muted:   #ECEBE5;

  --status-ok-bg:  rgba(27,77,171,0.10);
  --status-ok-fg:  var(--blue);
  --status-stock:  #2E9B5B;

  /* ─── Spacing (base-8) ─────────────────────────────── */
  --space-xs:4px; --space-sm:8px; --space-md:16px; --space-lg:24px;
  --space-xl:40px; --space-2xl:64px; --space-3xl:96px;

  /* ─── Radii (broadcast-hardware, не SaaS) ──────────── */
  --radius-sm:3px; --radius-md:6px; --radius-lg:10px; --radius-pill:100px;

  /* ─── Shadows ──────────────────────────────────────── */
  --shadow-sm: 0 1px 2px rgba(12,37,82,.06), 0 1px 3px rgba(12,37,82,.05);
  --shadow-md: 0 6px 18px rgba(12,37,82,.10), 0 2px 6px rgba(12,37,82,.06);
  --shadow-lg: 0 18px 44px rgba(12,37,82,.16), 0 6px 14px rgba(12,37,82,.08);
  --shadow-cta: 0 8px 20px rgba(242,100,30,.34);

  /* ─── Type ─────────────────────────────────────────── */
  --font-sans:'Montserrat', system-ui, -apple-system, sans-serif;
  --font-mono:'JetBrains Mono','Courier New', ui-monospace, monospace;

  --ease: cubic-bezier(.4,0,.2,1);
  --dur-fast:150ms; --dur-base:220ms; --dur-slow:420ms;

  --maxw: 1280px;
}

/* ───────────────────────── Base reset ───────────────────── */
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  font-family:var(--font-sans);
  font-weight:400;
  font-size:16px;
  line-height:1.7;
  color:var(--fg-2);
  background:var(--bg-canvas);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img { display:block; max-width:100%; }
button { font-family:inherit; cursor:pointer; }
a { color:inherit; text-decoration:none; }
::selection { background:var(--accent); color:#fff; }

/* density via root attr */
:root[data-density="compact"] { --card-pad: var(--space-md); }
:root[data-density="comfy"]   { --card-pad: var(--space-xl); }
:root { --card-pad: var(--space-lg); }

/* ───────────────────────── Type roles ───────────────────── */
.t-mega   { font-weight:900; line-height:.92; letter-spacing:-.03em; color:var(--ink);
            font-size:clamp(52px, 7.4vw, 116px); text-transform:uppercase; }
.t-display{ font-weight:800; line-height:1.0; letter-spacing:-.02em; color:var(--ink);
            font-size:clamp(38px,4.6vw,68px); }
.t-h1 { font-weight:800; font-size:clamp(30px,3.2vw,46px); line-height:1.06; letter-spacing:-.02em; color:var(--ink); }
.t-h2 { font-weight:800; font-size:clamp(24px,2.3vw,34px); line-height:1.12; letter-spacing:-.015em; color:var(--ink); }
.t-h3 { font-weight:700; font-size:21px; line-height:1.25; color:var(--ink); }
.t-h4 { font-weight:600; font-size:17px; line-height:1.35; color:var(--ink); }
.t-lead { font-weight:300; font-size:19px; line-height:1.6; color:var(--fg-2); }
.t-body { font-weight:400; font-size:16px; line-height:1.7; color:var(--fg-2); }
.t-sm  { font-size:14px; line-height:1.6; color:var(--fg-3); }
.t-cap { font-size:12px; line-height:1.5; color:var(--fg-2); font-weight:500; }
.t-over{ font-weight:700; font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--accent); }
.t-mono{ font-family:var(--font-mono); font-size:12px; letter-spacing:.02em; }

/* ───────────────────────── Layout ───────────────────────── */
.wrap { max-width:var(--maxw); margin:0 auto; padding:0 32px; }
.section { padding:var(--space-3xl) 0; }
@media (max-width:760px){ .wrap{ padding:0 20px; } .section{ padding:var(--space-2xl) 0; } }

/* ─── Виньетка-уголки (фирменный приём видоискателя) ─────── */
.brackets { position:relative; }
.brackets::before, .brackets::after{
  content:""; position:absolute; width:22px; height:22px; pointer-events:none;
}
.brackets::before{ top:-7px; right:-7px; border-top:2.5px solid var(--accent); border-right:2.5px solid var(--accent); }
.brackets::after { bottom:-7px; left:-7px; border-bottom:2.5px solid var(--accent); border-left:2.5px solid var(--accent); }

/* ───────────────────────── Buttons ──────────────────────── */
.btn { display:inline-flex; align-items:center; gap:10px; border:none; font-weight:600;
       font-size:15px; padding:14px 26px; border-radius:var(--radius-md);
       transition:transform var(--dur-base) var(--ease), background var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease), color var(--dur-base) var(--ease);
       letter-spacing:.01em; white-space:nowrap; }
.btn svg{ width:18px; height:18px; }
.btn-primary { background:var(--accent); color:#fff; }
.btn-primary:hover { background:var(--accent-dark); transform:translateY(-2px); box-shadow:var(--shadow-cta); }
.btn-primary:active{ transform:translateY(0); box-shadow:none; }
.btn-blue { background:var(--blue); color:#fff; }
.btn-blue:hover { background:var(--blue-dark); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-dark { background:var(--ink); color:#fff; }
.btn-dark:hover { background:#000; transform:translateY(-2px); }
.btn-ghost { background:transparent; color:var(--ink); border:1.5px solid var(--ink); }
.btn-ghost:hover { background:var(--ink); color:#fff; }
.btn-ghost-light { background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.4); }
.btn-ghost-light:hover { background:#fff; color:var(--ink); border-color:#fff; }
.btn-lg { padding:17px 34px; font-size:16px; }
.btn-sm { padding:10px 18px; font-size:14px; }
.btn-block{ width:100%; justify-content:center; }

/* ───────────────────────── Chips / tags ─────────────────── */
.chip { display:inline-flex; align-items:center; gap:6px; padding:6px 13px; border-radius:var(--radius-pill);
        font-size:13px; font-weight:500; background:var(--bg-muted); color:var(--fg-2); border:1px solid transparent; }
.chip-line { background:transparent; border:1px solid var(--gray-line); color:var(--fg-3); }
.chip-blue { background:var(--blue-tint); color:var(--blue); }
.chip-accent { background:var(--accent-tint); color:var(--accent-dark); }
.chip-active { background:var(--ink); color:#fff; }
.chip.click { cursor:pointer; transition:all var(--dur-fast) var(--ease); }
.chip.click:hover { border-color:var(--ink); color:var(--ink); }

/* hi-vis stripe accent block */
.hivis { background-image:repeating-linear-gradient(45deg, var(--accent) 0 14px, var(--ink) 14px 28px); }

/* placeholder image surface */
.ph { position:relative; overflow:hidden; background:#E7E6E0;
      background-image:linear-gradient(135deg, #ECEBE5 0%, #DEDDD6 100%); }
.ph[data-tone="blue"]{ background-image:linear-gradient(135deg, #1B4DAB 0%, #0C2552 100%); }
.ph[data-tone="dark"]{ background-image:linear-gradient(135deg, #2A2E36 0%, #15181E 100%); }
.ph[data-tone="orange"]{ background-image:linear-gradient(135deg, #F2641E 0%, #D24F0E 100%); }
.ph .ph-ico { position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
              color:rgba(21,24,30,.16); }
.ph[data-tone] .ph-ico{ color:rgba(255,255,255,.30); }
.ph .ph-tag { position:absolute; left:12px; bottom:12px; font-family:var(--font-mono);
              font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:rgba(21,24,30,.45); }
.ph[data-tone] .ph-tag{ color:rgba(255,255,255,.6); }

/* card base */
.card { background:var(--bg-surface); border:1px solid var(--gray-line); border-radius:var(--radius-lg);
        overflow:hidden; transition:transform var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease); }

/* divider */
.rule { height:1px; background:var(--gray-line); border:none; margin:0; }

/* scrollbar (catalog filters etc.) */
.thin-scroll::-webkit-scrollbar{ width:8px; height:8px; }
.thin-scroll::-webkit-scrollbar-thumb{ background:#cfceC7; border-radius:8px; }

/* marquee */
@keyframes flis-marquee { from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.marquee-track{ display:inline-flex; white-space:nowrap; animation:flis-marquee 28s linear infinite; }

/* fade-up reveal */
@keyframes flis-up { from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
.reveal{ animation:flis-up var(--dur-slow) var(--ease) both; }

/* utility */
.flex{ display:flex; } .center{ align-items:center; } .between{ justify-content:space-between; }
.col{ flex-direction:column; } .wrap-w{ flex-wrap:wrap; }
.grid{ display:grid; }
.muted{ color:var(--fg-3); }
.accent-c{ color:var(--accent); }
.blue-c{ color:var(--blue); }

/* ─── тело статьи ─── */
.article-body{ font-size:17px; line-height:1.8; color:var(--fg-2); font-weight:400; }
.article-body h2{ font-size:26px; font-weight:800; color:var(--ink); margin:36px 0 12px; letter-spacing:-.01em; }
.article-body p{ margin:0 0 18px; }
.article-body ul{ margin:0 0 18px; padding-left:0; list-style:none; }
.article-body ul li{ position:relative; padding-left:28px; margin-bottom:10px; }
.article-body ul li::before{ content:""; position:absolute; left:6px; top:12px; width:8px; height:8px; background:var(--accent); border-radius:2px; }
.article-body blockquote{ margin:26px 0; padding:4px 0 4px 24px; border-left:4px solid var(--accent);
  font-size:20px; line-height:1.55; color:var(--ink); font-weight:500; }
.article-body b{ color:var(--ink); font-weight:600; }

/* ─── icon button ─── */
.flis-iconbtn{ width:42px; height:42px; border-radius:8px; border:1px solid var(--gray-line); background:var(--bg-surface);
  display:inline-flex; align-items:center; justify-content:center; color:var(--ink); transition:.18s; flex:0 0 auto; }
.flis-iconbtn:hover{ border-color:var(--ink); background:var(--ink); color:#fff; }

/* ─── hover-эффекты ─── */
.flis-prodcard:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--gray-soft); }
.flis-cat:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.flis-catrow:hover{ background:var(--blue-tint); padding-left:18px; }
.flis-catrow:hover .ph,.flis-catrow{ }
.flis-ind:hover{ border-color:var(--ink); box-shadow:var(--shadow-md); transform:translateY(-3px); }
.flis-serv{ transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.flis-serv:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }

/* ─── адаптив ─── */
.show-md{ display:none; }
@media (max-width:980px){
  .hide-md{ display:none !important; }
  .show-md{ display:inline-flex; }
  .section .wrap[style*="grid"]{ }
}
@media (max-width:760px){
  .hide-sm{ display:none !important; }
}
/* грид-коллапс на узких экранах */
@media (max-width:980px){
  .wrap.grid[style*="264px"]{ grid-template-columns:1fr !important; }
}
/* стек 2-колоночных раскладок на мобильном */
@media (max-width:820px){
  [style*="1.1fr"],[style*="1.05fr"],[style*="1.6fr"],[style*="1.1fr .9fr"]{ grid-template-columns:1fr !important; }
  [style*="repeat(4,1fr)"]{ grid-template-columns:repeat(2,1fr) !important; }
  [style*="repeat(5,1fr)"]{ grid-template-columns:repeat(2,1fr) !important; }
  .section{ padding:48px 0 !important; }
}

/* ===== miniShop2: корзина и оформление (ФЛиС) ===== */
#msCart table{width:100%;border-collapse:collapse}
#msCart .ms-header th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);padding:0 8px 12px;border-bottom:1px solid var(--gray-line)}
#msCart td{padding:16px 8px;border-bottom:1px solid var(--gray-line);vertical-align:middle}
#msCart .ms-image img{width:74px;height:74px;object-fit:contain;background:#fff;border:1px solid var(--gray-line);border-radius:8px}
#msCart .ms-image{padding-right:14px}
#msCart .ms-title .title a{font-weight:600;color:var(--ink);font-size:15px}
#msCart .ms-title .title .small{color:var(--fg-3);font-size:13px;margin-top:4px}
#msCart .d-flex{display:flex;align-items:center}
#msCart .ms-weight,#msCart .ms-header .ms-weight{display:none}
#msCart input[name=count]{width:66px;text-align:center;border:1.5px solid var(--gray-line);border-radius:8px;padding:9px 6px;font-weight:700;font-family:inherit}
#msCart .ms-count button[name=ms2_action]{margin-top:8px;background:var(--blue);color:#fff;border:none;border-radius:6px;padding:6px 12px;cursor:pointer;font-size:13px}
#msCart .ms-price{white-space:nowrap;color:var(--fg-2)}
#msCart .ms-price .old_price{color:var(--gray-soft);text-decoration:line-through;font-size:13px;margin-left:6px}
#msCart .ms-cost{font-weight:800;color:var(--ink);font-size:18px;white-space:nowrap}
#msCart .ms-remove button{background:none;border:1px solid var(--gray-line);border-radius:8px;width:40px;height:40px;cursor:pointer;color:var(--fg-3);font-size:16px}
#msCart .ms-remove button:hover{border-color:var(--ink);color:var(--ink)}
#msCart .alert{padding:18px;border:1px solid var(--gray-line);border-radius:var(--radius-lg);color:var(--fg-3)}

#msOrder .row{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start;margin-bottom:8px}
#msOrder h4{font-size:17px;font-weight:700;color:var(--ink);margin:18px 0 14px}
#msOrder .form-group{margin-bottom:14px}
#msOrder .col-form-label{display:block;font-size:13px;color:var(--fg-2);margin-bottom:6px}
#msOrder .required-star{color:var(--accent)}
#msOrder .form-control{width:100%;padding:12px 14px;border:1.5px solid var(--gray-line);border-radius:8px;font-family:inherit;font-size:15px;background:var(--bg-surface)}
#msOrder textarea.form-control{min-height:90px;resize:vertical}
#msOrder .form-control.error{border-color:var(--accent)}
#msOrder .checkbox label{display:flex;align-items:center;gap:10px;padding:9px 0;cursor:pointer;color:var(--fg-2)}
#msOrder .input-group{display:flex;gap:8px;align-items:center}
#msOrder button[type=submit]{margin-top:18px}
/* лишние для B2B адресные поля скрываем */
#msOrder .form-group.input-parent:has(#entrance),#msOrder .form-group.input-parent:has(#floor),#msOrder .form-group.input-parent:has(#room),#msOrder .form-group.input-parent:has(#index){display:none}
@media(max-width:760px){#msOrder .row{grid-template-columns:1fr}}
#msCart .total_weight,#msCart .ms-footer .total_weight{display:none}
#msCart .ms-footer th{padding:14px 8px;border-top:2px solid var(--gray-line);font-size:15px;color:var(--ink)}
#msCart .ms-footer .total_cost .ms2_total_cost{font-size:20px;font-weight:800}

/* msOrder field stack — подпись над полем, поле на всю ширину колонки */
#msOrder .form-group.row{display:block;margin-bottom:16px}
#msOrder .form-group.row > .col-md-8,#msOrder .form-group.row > div{width:100%;max-width:100%}
#msOrder .col-md-4.col-form-label,#msOrder .col-form-label{width:auto;float:none;padding:0}

/* msOrder neutralize bootstrap cols (ms2 default.css ставит label|input в ряд) */
#msOrder .form-group.row > label.col-form-label,#msOrder .form-group.row > .col-md-4,#msOrder .form-group.row > .col-md-8{display:block !important;width:100% !important;max-width:100% !important;flex:0 0 100% !important;float:none !important;padding-left:0 !important;padding-right:0 !important;}
#msOrder .col-form-label{margin-bottom:6px;}

/* ===== мобильное меню и каталог ===== */
@media (max-width:980px){
  .wrap[style*="264px 1fr"]{ grid-template-columns:1fr !important; }
  .wrap[style*="264px 1fr"] > aside{ display:none !important; }
}
.mnav{ display:none; }
#mnav-toggle:checked ~ .mnav{ display:block; }
.mnav a{ display:block; padding:15px 24px; font-size:17px; font-weight:600; color:var(--ink); border-bottom:1px solid var(--gray-line); }
.mnav a:last-child{ border-bottom:none; }
.mnav .mnav-cta{ color:var(--accent); }

/* flis-product min-width fix — грид-дети должны сжиматься (иначе галерея раздувает страницу на мобиле) */
@media (max-width:980px){
  .flis-product{ grid-template-columns:1fr !important; }
  .flis-product > *{ min-width:0 !important; }
}

/* tabs wrap fix — табы карточки переносятся на мобиле, а не подрезаются */
@media (max-width:980px){
  div:has(> button[data-tab]){ flex-wrap:wrap; }
}

/* ===== мобильный аудит: формы, карта, 2-колонки, корзина ===== */
@media (max-width:820px){
  [style*="1fr 1fr"]:not([style*="1fr 1fr 1fr"]){ grid-template-columns:1fr !important; }
  [style*="repeat(2,1fr)"]{ grid-template-columns:1fr !important; }
  iframe{ max-width:100% !important; }
}
@media (max-width:640px){
  #msCart .table-responsive{ overflow:visible; }
  #msCart table, #msCart tbody, #msCart tr, #msCart td{ display:block; width:auto; }
  #msCart .ms-header, #msCart .ms-price{ display:none; }
  #msCart tr[id]{ position:relative; border:1px solid var(--gray-line); border-radius:10px; padding:14px 14px 12px; margin-bottom:12px; }
  #msCart tr[id] td{ border:none !important; padding:5px 0 !important; }
  #msCart tr[id] .ms-remove{ position:absolute; top:10px; right:10px; }
  #msCart tr.ms-footer{ border:none; padding-top:6px; }
  #msCart .ms-footer th{ display:inline-block; padding:4px 14px 4px 0 !important; border:none; }
}
/* flis-form input fit — поля формы не шире контейнера (фикс переполнения на мобиле) */
.flis-form{ min-width:0; }
.flis-form > *{ min-width:0; }
.flis-form input:not([type=checkbox]):not([type=radio]), .flis-form textarea, .flis-form select{ width:100%; box-sizing:border-box; min-width:0; }


/* ===== sticky-галерея карточки на мобиле: отключаем прилипание ===== */
@media (max-width:980px){
  .flis-product > div[style*="position:sticky"],
  .flis-product > div[style*="sticky"]{
    position:static !important;
    top:auto !important;
    max-width:100% !important;
  }
}

/* ===== фильтры и корзина: отклик выбора + иконки ===== */
/* чип размера: чекбокс скрыт визуально, но состояние видно */
.flis-fchip{ display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:500;
  border:1.5px solid var(--gray-line); border-radius:6px; padding:6px 10px; cursor:pointer;
  user-select:none; background:var(--bg-surface); color:var(--ink); transition:.15s var(--ease); }
.flis-fchip input{ position:absolute; opacity:0; width:0; height:0; }
.flis-fchip:hover{ border-color:var(--ink); }
.flis-fchip:has(input:checked){ background:var(--ink); border-color:var(--ink); color:#fff; }
/* кнопка пересчёта количества — не нужна: количество пересчитывается само */
#msCart .flis-count-apply{ display:none !important; }
/* удалить из корзины — иконка-урна */
#msCart .ms-remove button.flis-remove{ display:inline-flex; align-items:center; justify-content:center;
  padding:0 !important; gap:0; min-width:0; background:none; border:1px solid var(--gray-line); border-radius:8px;
  width:40px; height:40px; cursor:pointer; color:var(--fg-3); transition:.15s var(--ease); }
#msCart .ms-remove button.flis-remove svg{ flex:0 0 auto; width:18px !important; height:18px !important; }
/* фото товара в корзине */
#msCart .ms-image img{ width:74px; height:92px; object-fit:contain; background:#fff; }
#msCart .ms-remove button.flis-remove:hover{ border-color:var(--accent); color:var(--accent); background:transparent; }

/* ===== мега-меню каталога ===== */
.flis-mega-wrap{ position:static; display:inline-flex; align-items:center; }
.flis-mega-wrap > a:hover{ color:var(--accent); }
.flis-mega-chev{ transition:transform .18s var(--ease); }
.flis-mega-wrap:hover .flis-mega-chev{ transform:rotate(180deg); }
.flis-mega{ position:absolute; left:0; right:0; top:100%; background:var(--bg-surface);
  border-top:1px solid var(--gray-line); border-bottom:1px solid var(--gray-line);
  box-shadow:var(--shadow-lg); opacity:0; visibility:hidden; transform:translateY(-8px);
  transition:opacity .18s var(--ease), transform .18s var(--ease), visibility .18s; z-index:59; }
.flis-mega-wrap:hover > .flis-mega,
.flis-mega-wrap:focus-within > .flis-mega{ opacity:1; visibility:visible; transform:translateY(0); }
.flis-mega-inner{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:var(--space-lg); padding:22px 0 24px; align-items:start; }
.flis-mega-col{ display:flex; flex-direction:column; gap:10px; min-width:0; }
.flis-mega-title{ display:flex; flex-direction:row; align-items:center; gap:11px; font-weight:700; font-size:15px;
  color:var(--ink); transition:color .15s var(--ease); }
.flis-mega-title:hover{ color:var(--accent); }
.flis-mega-title i{ font-style:normal; font-weight:500; font-size:12px; color:var(--gray-soft); }
.flis-mega-img{ flex:0 0 auto; width:46px; height:61px; object-fit:contain; background:#fff;
  border:1px solid var(--gray-line); border-radius:6px; display:block; }
.flis-mega-subs{ display:flex; flex-direction:column; gap:7px; }
.flis-mega-sub{ font-size:13.5px; color:var(--fg-2); transition:color .15s var(--ease); }
a.flis-mega-sub:hover{ color:var(--blue); }
/* на мобильном — обычный бургер, мега-меню не показываем */
@media (max-width:980px){ .flis-mega{ display:none; } .flis-mega-chev{ display:none; } }

/* ===== подразделы: бургер и главная ===== */
/* бургер: категории каталога с подразделами */
.mnav a.mnav-cat{ padding:13px 24px 9px; font-size:15.5px; font-weight:700; border-bottom:none; }
.mnav a.mnav-cat i{ font-style:normal; font-weight:500; font-size:12px; color:var(--gray-soft); margin-left:6px; }
.mnav a.mnav-sub{ padding:9px 24px 9px 40px; font-size:14.5px; font-weight:500; color:var(--fg-2); border-bottom:none; }
.mnav a.mnav-sub:last-of-type{ padding-bottom:13px; border-bottom:1px solid var(--gray-line); }
/* главная: карточка категории с ссылками на подразделы */
.flis-homecat-title{ display:inline-flex; align-items:center; gap:7px; font-weight:700; font-size:16.5px;
  color:var(--ink); transition:color .15s var(--ease); }
.flis-homecat-title:hover{ color:var(--accent); }
.flis-homecat-title i{ font-style:normal; font-weight:500; font-size:12.5px; color:var(--gray-soft); }
.flis-homecat-subs{ display:flex; flex-direction:column; gap:6px; }
.flis-homecat-subs a{ font-size:13.5px; color:var(--fg-2); transition:color .15s var(--ease); }
.flis-homecat-subs a:hover{ color:var(--blue); }

/* ===== поиск по сайту ===== */
.flis-search{ flex:1; max-width:400px; margin-left:16px; margin-right:auto; display:flex; align-items:center; gap:9px;
  background:var(--bg-canvas); border:1.5px solid var(--gray-line); border-radius:10px; padding:0 14px; height:44px; transition:.15s var(--ease); }
.flis-search:focus-within{ border-color:var(--ink); }
.flis-search > svg{ flex:0 0 auto; color:var(--fg-3); }
.flis-search input{ flex:1; min-width:0; border:none; background:none; outline:none; font:inherit; font-size:14.5px; color:var(--ink); }
.flis-search input::placeholder{ color:var(--gray-soft); }
.flis-search input::-webkit-search-cancel-button{ cursor:pointer; }
.flis-search--page{ height:52px; padding:0 8px 0 16px; }
.flis-search--page .btn{ margin-left:6px; }
.flis-search--mnav{ flex:none; max-width:none; margin:12px 20px 6px; }

/* ===== живой поиск: выпадающие подсказки ===== */
.flis-sug{ position:absolute; top:calc(100% + 8px); left:0; right:0; background:var(--bg-surface);
  border:1px solid var(--gray-line); border-radius:12px; box-shadow:var(--shadow-lg); padding:7px;
  z-index:90; max-height:440px; overflow-y:auto; display:none; }
.flis-sug.is-open{ display:block; }
.flis-sug-group{ font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--fg-3); font-weight:700; padding:8px 10px 4px; }
.flis-sug-cat{ display:flex; align-items:center; gap:9px; padding:9px 10px; border-radius:8px; font-size:14px; color:var(--ink); font-weight:500; }
.flis-sug-cat svg{ color:var(--fg-3); flex:0 0 auto; }
.flis-sug-cat:hover{ background:var(--bg-canvas); color:var(--blue); }
.flis-sug-item{ display:flex; align-items:center; gap:11px; padding:7px 10px; border-radius:8px; }
.flis-sug-item:hover{ background:var(--bg-canvas); }
.flis-sug-item img,.flis-sug-item .flis-sug-ph{ width:40px; height:52px; flex:0 0 auto; object-fit:contain; background:#fff; border:1px solid var(--gray-line); border-radius:6px; }
.flis-sug-item .name{ flex:1; min-width:0; font-size:13.5px; color:var(--ink); line-height:1.3; }
.flis-sug-hit{ display:inline-block; margin-left:7px; font-size:10px; font-weight:700; text-transform:uppercase; color:var(--accent); vertical-align:middle; }
.flis-sug-item .price{ font-weight:700; font-size:13.5px; color:var(--ink); white-space:nowrap; }
.flis-sug-all{ display:block; text-align:center; padding:11px; margin-top:5px; border-top:1px solid var(--gray-line); font-size:13.5px; font-weight:600; color:var(--blue); }
.flis-sug-all:hover{ background:var(--bg-canvas); }
.flis-sug-empty{ padding:16px 12px; font-size:14px; color:var(--fg-3); text-align:center; }

/* ===== расцветки на карточке товара (каталог/поиск/выводы) ===== */
.flis-dots{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.flis-dot{ width:15px; height:15px; border-radius:50%; border:2px solid #fff;
  box-shadow:0 0 0 1px var(--gray-line); cursor:pointer; transition:.15s var(--ease); }
.flis-dot:hover{ box-shadow:0 0 0 2px var(--ink); transform:scale(1.15); }

/* ===== цвет на карточке каталога (расцветка = отдельная позиция) ===== */
.flis-cardcolor{ display:flex; align-items:center; gap:7px; font-size:12.5px; color:var(--gray-mute); line-height:1.3; }
.flis-cdot{ width:12px; height:12px; border-radius:50%; flex:0 0 auto; border:1.5px solid #fff; box-shadow:0 0 0 1px var(--gray-line); }
