/* ═══════════════════════════════════════════════════════════════
   ЦКП Омской области — cp55.ru · чистый современный B2B-дизайн
   ═══════════════════════════════════════════════════════════════ */
:root{
    --nav:#0d3b66; --nav-2:#12508c; --dark:#0a2540;
    --amber:#e59500; --amber-d:#c47f00;
    --ink:#1f2b38; --muted:#64748b; --soft:#94a3b8;
    --bg:#f6f8fb; --line:#e6ebf2; --line-2:#dbe3ee; --ok:#16a34a;
    --r:14px; --r-sm:9px;
    --sh:0 2px 10px rgba(13,59,102,.06); --sh-h:0 14px 34px rgba(13,59,102,.13);
    --wrap:1200px;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ font-family:'Montserrat',Arial,sans-serif; color:var(--ink); background:#fff; margin:0; font-size:15px; line-height:1.6; -webkit-font-smoothing:antialiased; min-height:100vh; display:flex; flex-direction:column; }
main{ flex:1 0 auto; }   /* короткие страницы: футер прижат к низу, нет белой полосы */
a{ text-decoration:none; color:var(--nav); transition:color .15s; }
a:hover{ color:var(--nav-2); }
h1,h2,h3,h4{ margin:0; font-weight:700; color:var(--dark); line-height:1.2; }
img{ max-width:100%; }
.container{ max-width:var(--wrap); }

/* ── Кнопки ── */
.btn{ border-radius:var(--r-sm); font-weight:600; font-size:14px; padding:11px 22px; display:inline-flex; align-items:center; gap:8px; line-height:1.2; border:1.5px solid transparent; transition:.16s; cursor:pointer; }
.btn svg{ width:17px; height:17px; }
.btn-pri{ background:var(--nav); color:#fff; border-color:var(--nav); }
.btn-pri:hover{ background:var(--nav-2); border-color:var(--nav-2); color:#fff; }
.btn-acc{ background:var(--amber); color:#fff; border-color:var(--amber); }
.btn-acc:hover{ background:var(--amber-d); border-color:var(--amber-d); color:#fff; }
.btn-out{ background:#fff; color:var(--nav); border-color:var(--line-2); }
.btn-out:hover{ background:var(--nav); color:#fff; border-color:var(--nav); }
.btn-ghost{ background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.35); }
.btn-ghost:hover{ background:#fff; color:var(--nav); border-color:#fff; }
.btn-sm{ padding:8px 15px; font-size:13px; }

/* ── Topbar ── */
.topbar{ background:#fff; border-bottom:1px solid var(--line); font-size:13px; color:var(--muted); }
.topbar .container{ display:flex; align-items:center; gap:22px; min-height:38px; flex-wrap:wrap; }
.topbar .sp{ margin-left:auto; display:flex; gap:16px; }
.topbar a{ color:var(--muted); font-weight:500; }
.topbar a:hover{ color:var(--nav); }

/* ── Header ── */
.hdr{ background:rgba(255,255,255,.92); backdrop-filter:saturate(1.3) blur(10px); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:100; }
.hdr .container{ display:flex; align-items:center; gap:26px; padding:15px 12px; }
.brand{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
.brand .mark{ width:48px; height:48px; border-radius:11px; background:var(--nav); color:#fff; font-weight:800; font-size:15px; letter-spacing:.5px; display:flex; align-items:center; justify-content:center; }
.brand .bt{ font-weight:700; font-size:15px; color:var(--dark); line-height:1.18; }
.brand .bt small{ display:block; font-weight:500; font-size:11.5px; color:var(--muted); margin-top:1px; }
.mainmenu{ display:flex; gap:4px; align-items:center; margin:0 auto; }
.mainmenu a{ color:var(--ink); font-weight:600; font-size:14px; padding:9px 13px; border-radius:8px; white-space:nowrap; }
.mainmenu a:hover, .mainmenu a.active{ color:var(--nav); background:var(--bg); }
.hdr-r{ margin-left:auto; display:flex; align-items:center; gap:16px; flex-shrink:0; }
.hdr-phone{ text-align:right; line-height:1.15; }
.hdr-phone b{ font-size:16px; color:var(--dark); white-space:nowrap; }
.hdr-phone b a{ color:var(--dark); }
.hdr-phone span{ font-size:11.5px; color:var(--amber-d); font-weight:600; }
.burger{ display:none; background:none; border:1.5px solid var(--line-2); border-radius:8px; padding:8px 11px; font-size:16px; color:var(--nav); }

/* ── Hero (центрированный, компактный) ── */
.hero{ background:radial-gradient(1000px 420px at 85% -30%,rgba(229,149,0,.18),transparent 60%),linear-gradient(135deg,#0a2c4d,#0d3b66 60%,#12508c); color:#fff; padding:40px 0 44px; position:relative; overflow:hidden; text-align:left; }
.hero::after{ content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:46px 46px; mask-image:radial-gradient(700px 400px at 20% 30%,#000,transparent 75%); pointer-events:none; }
.hero .container{ position:relative; z-index:1; }
.kicker{ display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; color:var(--amber); }
.hero .kicker{ color:#ffcf7a; }
.hero h1{ color:#fff; font-size:34px; font-weight:800; letter-spacing:-.4px; margin:12px 0 0; max-width:760px; }
.hero p{ color:#cbdaeb; font-size:15.5px; margin:12px 0 0; max-width:600px; }
.hero-chips{ margin-top:16px; display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-start; }
.hero-chips a{ font-size:13px; color:#d9e5f2; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.16); padding:5px 13px; border-radius:20px; font-weight:500; }
.hero-chips a:hover{ background:#fff; color:var(--nav); }

/* Телефон в герое (белый, справа сверху) */
.hero-phone{ position:absolute; top:2px; right:14px; text-align:right; color:#fff; line-height:1.2; }
.hero-phone .hp-num{ display:block; font-size:18px; font-weight:800; color:#fff; white-space:nowrap; }
.hero-phone .hp-sub{ display:block; font-size:11.5px; color:#cbdaeb; font-weight:600; }
.hero-phone:hover .hp-num{ color:#ffcf7a; }

/* Счётчики в герое (белые, растянуты на всю ширину) */
.hero-stats{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-top:26px; width:100%; border-top:1px solid rgba(255,255,255,.14); padding-top:20px; }
.hero-stats .hstat{ flex:1 1 0; min-width:110px; text-align:center; }
.hero-stats .hstat .n{ font-size:32px; font-weight:800; color:#fff; line-height:1; }
.hero-stats .hstat .l{ font-size:12.5px; color:#cbdaeb; font-weight:600; margin-top:5px; letter-spacing:.3px; }

/* Строка поиска (ниже блоков действий) */
.find-bar{ margin:26px auto 0; max-width:620px; display:flex; background:#fff; border:1px solid var(--line-2); border-radius:12px; padding:6px; box-shadow:var(--sh); }
.find-bar input{ flex:1; border:none; outline:none; padding:12px 16px; font-size:15px; font-family:inherit; color:var(--ink); background:transparent; }

/* ── Секции ── */
.sec{ padding:56px 0; }
.sec.alt{ background:var(--bg); }
.sec.dark{ background:var(--dark); }
.sec-head{ margin-bottom:30px; }
.sec-head.center{ text-align:center; }
.sec-head h2{ font-size:28px; font-weight:800; margin:8px 0 0; }
.sec-head p{ color:var(--muted); margin:8px 0 0; font-size:15px; }
.sec-head.center p{ max-width:640px; margin-left:auto; margin-right:auto; }

/* ── Действия ── */
.act{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:24px; height:100%; display:block; color:var(--ink); box-shadow:var(--sh); transition:.18s; text-align:center; }
.act:hover{ transform:translateY(-4px); box-shadow:var(--sh-h); color:var(--nav); border-color:transparent; }
.act .ico{ width:52px; height:52px; border-radius:12px; background:#eaf1f9; color:var(--nav); display:flex; align-items:center; justify-content:center; margin:0 auto 14px; }
.act.acc .ico{ background:#fdf1dc; color:var(--amber-d); }
.act .ico svg{ width:26px; height:26px; }
.act h3{ font-size:17px; font-weight:700; margin:0 0 5px; }
.act p{ font-size:13px; color:var(--muted); margin:0; }

/* ── Плитки категорий ── */
.cat{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:18px 12px; text-align:center; display:block; color:var(--ink); height:100%; transition:.16s; }
.cat:hover{ border-color:var(--nav); box-shadow:var(--sh-h); transform:translateY(-3px); color:var(--nav); }
.cat .e{ width:52px; height:52px; margin:0 auto 12px; border-radius:14px; background:#eef3f9; color:var(--nav); display:flex; align-items:center; justify-content:center; transition:.16s; }
.cat .e svg{ width:27px; height:27px; }
.cat:hover .e{ background:var(--nav); color:#fff; }
.cat .t{ font-size:13px; font-weight:600; line-height:1.3; }

/* ── Кластеры ── */
.clu{ background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; height:100%; display:flex; flex-direction:column; color:var(--ink); box-shadow:var(--sh); transition:.18s; }
.clu:hover{ transform:translateY(-4px); box-shadow:var(--sh-h); border-color:transparent; }
.clu .logo{ height:150px; background:linear-gradient(135deg,#f2f6fb,#e6eef7); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.clu .logo img{ width:100%; height:100%; object-fit:cover; }
.clu .logo .ph{ font-size:44px; color:var(--nav); opacity:.5; }
.clu .b{ padding:18px; display:flex; flex-direction:column; flex:1; }
.clu .b h3{ font-size:16px; font-weight:700; line-height:1.3; }
.clu .b p{ font-size:13px; color:var(--muted); margin:8px 0 14px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.clu .b .go{ margin-top:auto; font-size:13.5px; font-weight:700; color:var(--nav); display:inline-flex; align-items:center; gap:6px; }
.clu:hover .b .go{ gap:10px; }

/* ── Баннер ── */
.banner{ background:linear-gradient(120deg,var(--dark),var(--nav) 70%,var(--nav-2)); color:#fff; border-radius:18px; padding:44px 48px; position:relative; overflow:hidden; }
.banner h2{ color:#fff; font-size:27px; font-weight:800; max-width:640px; }
.banner p{ color:#c8d7e8; margin:12px 0 22px; max-width:600px; }
.banner .em{ position:absolute; right:34px; bottom:-10px; font-size:120px; opacity:.14; }

/* ── Новости ── */
.news{ background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; height:100%; display:flex; flex-direction:column; box-shadow:var(--sh); transition:.18s; }
.news:hover{ transform:translateY(-4px); box-shadow:var(--sh-h); }
.news .ph{ height:170px; background:linear-gradient(135deg,var(--nav),var(--nav-2)); display:flex; align-items:center; justify-content:center; color:#fff; font-size:44px; }
.news .b{ padding:20px; display:flex; flex-direction:column; flex:1; }
.news .d{ font-size:12px; color:var(--soft); font-weight:600; }
.news h3{ font-size:16px; font-weight:700; margin:7px 0 10px; line-height:1.35; }
.news .b p{ font-size:13px; color:var(--muted); margin:0 0 14px; }
.news .more{ margin-top:auto; font-size:13.5px; font-weight:700; color:var(--nav); }

/* ── Лента новостей (горизонтальный скролл) ── */
.news-scroll{ display:flex; gap:20px; overflow-x:auto; padding:6px 2px 18px; scroll-snap-type:x proximity; scrollbar-width:thin; }
.news-scroll::-webkit-scrollbar{ height:8px; }
.news-scroll::-webkit-scrollbar-thumb{ background:var(--line-2); border-radius:4px; }
.news-scroll .news-card{ flex:0 0 340px; max-width:340px; scroll-snap-align:start; color:var(--ink); }
@media (max-width:575px){ .news-scroll .news-card{ flex:0 0 82%; max-width:82%; } }

/* ── Карточка товара ── */
.prod{ background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; height:100%; display:flex; flex-direction:column; transition:.18s; }
.prod:hover{ box-shadow:var(--sh-h); transform:translateY(-4px); }
.prod .ph{ height:180px; background:var(--bg); display:flex; align-items:center; justify-content:center; color:#c3ced9; font-size:44px; position:relative; overflow:hidden; }
.prod .ph img{ width:100%; height:100%; object-fit:cover; }
.prod .badge-ok{ position:absolute; top:10px; left:10px; background:#e7f6ec; color:var(--ok); font-size:11px; font-weight:700; padding:3px 10px; border-radius:20px; }
.prod .b{ padding:15px; display:flex; flex-direction:column; flex:1; }
.prod .nm{ font-weight:700; font-size:14px; color:var(--dark); line-height:1.3; min-height:37px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.prod .meta{ font-size:12px; color:var(--muted); margin:6px 0; }
.prod .pr{ font-weight:800; color:var(--nav); font-size:16px; margin-top:auto; }
.prod .pr.dog{ color:var(--muted); font-weight:600; font-size:14px; }

/* ── Карточка компании ── */
.comp{ display:flex; gap:14px; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:18px; height:100%; color:var(--ink); box-shadow:var(--sh); transition:.18s; }
.comp:hover{ box-shadow:var(--sh-h); transform:translateY(-3px); border-color:transparent; }
.comp .ava{ flex-shrink:0; width:56px; height:56px; border-radius:12px; background:#eaf1f9; color:var(--nav); font-weight:800; font-size:22px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.comp .ava img{ width:100%; height:100%; object-fit:contain; }
.comp .info{ min-width:0; flex:1; }
.comp .nm{ font-weight:700; font-size:14px; line-height:1.3; color:var(--dark); }
.comp .meta{ font-size:12px; color:var(--muted); margin:5px 0 9px; }
.comp .meta span{ display:block; }
.comp .ru{ display:inline-block; font-size:10.5px; font-weight:700; color:#b91c1c; background:#fde8e8; border-radius:5px; padding:1px 6px; margin-top:4px; }
.comp .lnk{ font-size:13px; font-weight:700; color:var(--nav); }

/* ── Поиск-панель ── */
.panel{ background:#fff; border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh); padding:18px; }
.form-control{ border-radius:var(--r-sm); border-color:var(--line-2); }
.form-control:focus{ border-color:var(--nav); box-shadow:0 0 0 3px rgba(13,59,102,.10); }

/* ── Пагинация ── */
.pg{ min-width:38px; text-align:center; padding:8px 12px; border-radius:var(--r-sm); border:1px solid var(--line); background:#fff; color:var(--ink); font-weight:600; font-size:13.5px; }
.pg:hover{ border-color:var(--nav); color:var(--nav); }
.pg.active{ background:var(--nav); color:#fff; border-color:var(--nav); }
.pg-dots{ padding:8px 4px; color:var(--muted); }

/* ── Крошки / хедер страницы ── */
.crumb{ font-size:13px; color:var(--muted); padding:16px 0; }
.crumb a{ color:var(--nav); }
.page-head{ background:linear-gradient(135deg,var(--dark),var(--nav)); color:#fff; padding:34px 0; }
.page-head h1{ color:#fff; font-size:30px; font-weight:800; }
.page-head h1 svg{ width:30px; height:30px; }
.page-head p{ color:#c3d3e6; margin:8px 0 0; max-width:760px; }
.page-head .crumb{ color:#a9c0da; padding:0 0 12px; }
.page-head .crumb a{ color:#dbe7f3; }

/* ── Профиль компании ── */
.orghead{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:26px; display:flex; gap:20px; align-items:flex-start; box-shadow:var(--sh); }
.orghead .ava{ width:82px; height:82px; border-radius:14px; background:#eaf1f9; color:var(--nav); font-weight:800; font-size:34px; display:flex; align-items:center; justify-content:center; flex-shrink:0; overflow:hidden; }
.orghead .ava img{ width:100%; height:100%; object-fit:contain; }
.orghead h1{ font-size:23px; margin:0 0 10px; }
.rq{ font-size:13.5px; color:#475569; }
.rq b{ color:var(--dark); }

.chip{ display:inline-block; background:var(--bg); color:var(--nav); border-radius:20px; padding:6px 14px; font-size:13px; font-weight:600; margin:3px; border:1px solid var(--line); }
.chip:hover{ background:var(--nav); color:#fff; }
.sec-line{ width:52px; height:3px; background:var(--amber); border-radius:2px; }
.sec-head.center .sec-line{ margin:12px auto 0; }

/* ── Вкладки раздела «Креативные индустрии» ── */
.ctabs{ background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50; }
.ctabs .container{ display:flex; gap:6px; overflow-x:auto; }
.ctabs a{ padding:15px 18px; font-weight:600; font-size:14px; color:var(--muted); border-bottom:3px solid transparent; white-space:nowrap; }
.ctabs a:hover{ color:var(--nav); }
.ctabs a.active{ color:var(--nav); border-bottom-color:var(--amber); }

/* Инфо-блок (тексты ЦКИ) */
.cki-doc{ font-size:15px; color:var(--ink); }
.cki-doc h3{ font-size:19px; margin:26px 0 12px; }
.cki-doc p{ margin:0 0 12px; }
.cki-doc ol, .cki-doc ul{ margin:0 0 14px; padding-left:22px; }
.cki-doc li{ margin:4px 0; }
.cki-lead{ background:linear-gradient(135deg,#eef4fb,#f6f9fd); border:1px solid var(--line); border-left:4px solid var(--amber); border-radius:var(--r); padding:18px 20px; margin-bottom:22px; }
.cki-prio{ display:flex; flex-wrap:wrap; gap:10px; margin:10px 0 18px; }
.cki-prio span{ background:var(--nav); color:#fff; border-radius:20px; padding:7px 15px; font-size:13.5px; font-weight:600; }

/* Карточки индустрий (список как у кластеров) */
.indcard{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:22px; display:flex; align-items:center; gap:16px; height:100%; color:var(--ink); box-shadow:var(--sh); transition:.18s; }
.indcard:hover{ transform:translateY(-4px); box-shadow:var(--sh-h); border-color:transparent; color:var(--nav); }
.indcard .ic{ width:56px; height:56px; border-radius:14px; background:linear-gradient(135deg,var(--nav),var(--nav-2)); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.indcard .ic svg{ width:28px; height:28px; }
.indcard .t{ font-weight:700; font-size:15px; line-height:1.3; }
.indcard .c{ font-size:12.5px; color:var(--muted); margin-top:4px; }
.indcard:hover .c{ color:var(--nav); }
.indcard.empty{ opacity:.6; }
.indcard.empty .ic{ background:#c8d3e0; }

/* Фильтр по видам (чипы) */
.ind-filter{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; }
.ind-filter a{ font-size:13px; font-weight:600; color:var(--ink); background:#fff; border:1px solid var(--line-2); border-radius:20px; padding:7px 14px; }
.ind-filter a:hover{ border-color:var(--nav); color:var(--nav); }
.ind-filter a.active{ background:var(--nav); color:#fff; border-color:var(--nav); }

/* Плавающая круглая кнопка «Связаться» (FAB) */
.fab{ position:fixed; right:24px; bottom:24px; z-index:900; width:58px; height:58px; display:inline-flex; align-items:center; justify-content:center; background:rgba(13,59,102,.6); backdrop-filter:blur(8px) saturate(1.3); color:#fff; border:1px solid rgba(255,255,255,.4); border-radius:50%; cursor:pointer; box-shadow:0 10px 30px rgba(4,20,40,.38); transition:.18s; }
.fab:hover{ background:var(--nav); color:#fff; transform:translateY(-2px) scale(1.05); box-shadow:0 16px 40px rgba(4,20,40,.5); }
.fab svg{ width:24px; height:24px; }
.fab span{ display:none; }
@media (max-width:575px){ .fab{ right:16px; bottom:16px; } }

/* Модалка «Связаться» */
.cc-overlay{ display:none; position:fixed; inset:0; background:rgba(10,37,64,.55); z-index:1000; padding:20px; overflow-y:auto; }
.cc-overlay.open{ display:flex; align-items:flex-start; justify-content:center; }
.cc-box{ background:#fff; border-radius:16px; max-width:460px; width:100%; margin:6vh auto; padding:26px; position:relative; box-shadow:0 30px 70px rgba(4,20,40,.4); }
.cc-box h3{ font-size:20px; margin:0 0 4px; }
.cc-sub{ font-size:13px; color:var(--muted); margin-bottom:16px; }
.cc-x{ position:absolute; top:14px; right:16px; border:none; background:none; font-size:26px; line-height:1; color:var(--soft); cursor:pointer; }
.cc-x:hover{ color:var(--nav); }

/* ── Лайтбокс (увеличение картинки) ── */
.lb{ display:none; position:fixed; inset:0; background:rgba(10,37,64,.9); z-index:1100; align-items:center; justify-content:center; padding:30px; cursor:zoom-out; }
.lb.open{ display:flex; }
.lb img{ max-width:96%; max-height:96%; border-radius:10px; box-shadow:0 24px 70px rgba(0,0,0,.55); }
.lb .lb-x{ position:absolute; top:18px; right:24px; color:#fff; font-size:34px; line-height:1; background:none; border:none; cursor:pointer; opacity:.8; }
.lb .lb-x:hover{ opacity:1; }

/* ── Футер ── */
.footer{ background:var(--dark); color:#9fb2c9; padding:52px 0 24px; margin-top:60px; flex-shrink:0; }
.footer a{ color:#9fb2c9; display:block; font-size:13.5px; padding:3px 0; }
.footer a:hover{ color:#fff; }
.footer .fh{ color:#fff; font-weight:700; font-size:14px; margin-bottom:13px; }
.footer .note{ font-size:13px; color:#8298b2; line-height:1.7; }
.fsoc{ display:flex; gap:9px; margin-top:15px; }
.fsoc a{ width:36px; height:36px; border-radius:9px; background:rgba(255,255,255,.07); display:inline-flex; align-items:center; justify-content:center; padding:0; font-size:12px; font-weight:700; }
.fsoc a:hover{ background:var(--amber); color:#fff; }
.fcopy{ border-top:1px solid rgba(255,255,255,.1); margin-top:30px; padding-top:20px; font-size:12.5px; color:#6f86a2; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }

/* ── Адаптив ── */
@media (max-width:991px){
    .mainmenu, .topbar{ display:none; }
    .hdr .container{ position:relative; }
    .mainmenu.open{ display:flex; flex-direction:column; align-items:stretch; position:absolute; top:100%; left:0; right:0; background:#fff; border-bottom:1px solid var(--line); box-shadow:var(--sh-h); padding:10px; gap:2px; z-index:120; }
    .burger{ display:inline-flex; }
    .hdr-phone{ display:none; }
}
@media (max-width:575px){
    .hero{ padding:46px 0 56px; }
    .hero h1{ font-size:29px; }
    .banner{ padding:30px 24px; }
    .sec{ padding:42px 0; }
}
