:root {
  --tg-bg: #0f172a;
  --tg-card: #1e293b;
  --tg-border: #334155;
  --tg-text: #f8fafc;
  --tg-muted: #94a3b8;
  --red: #e30613;
  --red-hover: #b8050f;
  --dark: #090d16;
  --dark2: #111827;
  --text: #1e293b;
  --muted: #475569;
  --border: #cbd5e1;
  --bg: #f8fafc;
  --white: #fff;
  --green: #059669;
  --blue: #0284c7;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
/* overflow-x: clip keeps sticky filters working (hidden creates a scroll container and breaks position:sticky) */
html,body{max-width:100%;overflow-x:clip;font-family:'Open Sans',Helvetica,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;scroll-behavior: smooth;}
@supports not (overflow: clip) {
  html,body{overflow-x:hidden;}
}
a{text-decoration:none;color:inherit;}
.mono{font-family:'Fira Code',monospace;font-size:11px;}

/* A11y: skip link */
.skip-link{
  position:absolute;left:12px;top:-48px;z-index:10000;
  background:var(--red);color:#fff;font-weight:700;font-size:13px;
  padding:10px 16px;border-radius:4px;text-decoration:none;
  transition:top .15s;
}
.skip-link:focus{top:12px;outline:2px solid #fff;outline-offset:2px;}


h1,h2,h3,h4,h5,h6,
.stitle,.slabel,.hero-tag,.nav-item,
.btn-red,.btn-outline,.btn-ghost,.btn-action,
.sol-card-title,.sol-card-label,.sol-card-badge,.ssi,
.faq-filter-btn,.faq-acc-qt,.faq-acc-prod,
.bim-card2-title,.calc-side-title,.calc-card-title{ font-family:'Montserrat',Helvetica,sans-serif; }

.nav-header{position:fixed;top:0;left:0;right:0;height:72px;background:rgba(9,13,22,0.98);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,0.08);z-index:1000;display:flex;align-items:center;gap:10px;padding:0 20px;min-width:0;}
/* Logo is wide wordmark 751×173 — keep natural aspect ratio */
.nav-logo img{height:36px;width:auto;max-width:170px;display:block;object-fit:contain;aspect-ratio:751/173;}
.nav-logo{display:inline-flex;align-items:center;padding:8px 0;text-decoration:none;flex-shrink:0;}

.footer-logo{display:inline-flex;align-items:center;padding:8px 0;}
.footer-logo img{height:32px;width:auto;max-width:150px;display:block;object-fit:contain;aspect-ratio:751/173;}
.nav-menu{display:flex;gap:0;align-items:center;flex:1 1 auto;min-width:0;overflow:visible;margin:0 4px;justify-content:flex-start;}
.nav-item{color:rgba(255,255,255,0.65);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;transition:color .2s;white-space:nowrap;padding:8px 9px;flex-shrink:0;}
.nav-item:hover,.nav-item.active{color:var(--red);}
.nav-item-accent{ color: var(--red) !important; font-weight: 800; }
.nav-item.nav-active,
.nav-dropdown-trigger.nav-active{
  background: var(--red) !important;
  color: #fff !important;
  border-radius: 4px;
}
.nav-item.nav-active:hover,
.nav-dropdown-trigger.nav-active:hover{ color: #fff !important; }
.nav-item-accent:hover{ color: var(--red-hover) !important; }
.nav-item-ext{ display: inline-flex; align-items: center; gap: 4px; }
.nav-item-ext svg{ opacity: .6; }
.nav-dropdown{ position: relative; flex-shrink: 0; }
.nav-dropdown-trigger{
  display: inline-flex; align-items: center; gap: 5px;
  background: none; border: none; cursor: pointer;
  font-family: inherit;
}
.nav-dropdown-trigger svg{ transition: transform .2s ease; opacity: .7; }
.nav-dropdown:hover .nav-dropdown-trigger svg{ transform: rotate(180deg); }
.nav-dropdown-panel{
  position: absolute; top: 100%; left: 50%;
  transform: translate(-50%, 8px);
  min-width: 200px;
  background: rgba(9,13,22,0.99);
  backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px;
  padding: 8px;
  display: flex; flex-direction: column; gap: 2px;
  opacity: 0; visibility: hidden;
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  box-shadow: 0 16px 40px rgba(0,0,0,.35);
  z-index: 200;
}
.nav-dropdown:hover .nav-dropdown-panel,
.nav-dropdown-panel:hover{
  opacity: 1; visibility: visible; transform: translate(-50%, 4px);
}
.nav-dropdown-link{
  display: block;
  padding: 10px 14px;
  border-radius: 6px;
  font-size: 12px; font-weight: 700;
  text-transform: uppercase;
  color: rgba(255,255,255,.75);
  white-space: nowrap;
  transition: all .15s;
}
.nav-dropdown-link:hover{ background: rgba(227,6,19,.14); color: #fff; }
.btn-action{background:var(--red);color:#fff;font-size:12px;font-weight:700;padding:10px 22px;border-radius:3px;transition:background .2s;border:none;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;}
.nav-cta{flex-shrink:0;padding:9px 16px;font-size:11px;}
/* Always-visible right cluster: Техподдержка + theme toggle */
.nav-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto;}
.nav-actions .nav-cta{margin:0;}
.nav-actions .theme-toggle-btn{margin-left:0;}
.btn-action:hover{background:var(--red-hover);}

/* Laptop / mid widths: compress nav so CTA + theme stay on screen */
@media(max-width:1500px){
  .nav-header{padding:0 14px;gap:8px;}
  .nav-item{font-size:10.5px;padding:7px 6px;letter-spacing:.02em;}
  .nav-logo img{height:32px;max-width:148px;}
  .nav-cta{padding:8px 12px;font-size:10px;}
  .theme-toggle-btn{width:34px;height:34px;}
}
@media(max-width:1366px){
  .nav-header{padding:0 10px;gap:6px;}
  .nav-item{font-size:10px;padding:6px 5px;letter-spacing:.01em;}
  .nav-item-ext{display:none;} /* hide external links first */
  .nav-logo img{height:30px;max-width:136px;}
  .nav-cta{padding:8px 10px;font-size:10px;}
  .nav-menu{margin:0 2px;}
}
@media(max-width:1280px){
  .nav-item[href="#webinars"],
  .nav-item[href="#calc"]{display:none;} /* still available under «Полезное» */
  .nav-item{font-size:9.5px;padding:6px 4px;}
  .nav-logo img{height:28px;max-width:120px;}
  .nav-header{padding:0 8px;gap:4px;}
}
@media(max-width:1100px) and (min-width:769px){
  /* Extra compression on small laptops — keep CTA + theme always visible */
  .nav-item[href="#bim"]{display:none;}
  .nav-item{font-size:9px;padding:6px 3px;}
  .nav-cta{padding:7px 9px;font-size:9.5px;}
  .theme-toggle-btn{width:32px;height:32px;}
  .nav-logo img{height:26px;max-width:110px;}
}

.hero{position:relative;overflow:hidden;color:#fff;min-height:100vh;display:flex;align-items:center;padding:0 2rem;background: #05070a;}
.hero::before{content:'';position:absolute;bottom:0;left:0;right:0;height:180px;background:linear-gradient(to bottom,transparent,#05070a);z-index:5;pointer-events:none;}
.hero-bg-image{position:absolute;inset:0;z-index:0;opacity: 0.85;}
.hero-bg-image img{width:100%;height:100%;object-fit:cover;object-position:90% center;display:block;filter: grayscale(0.2);animation: heroPan 18s ease-in-out infinite alternate;}
@keyframes heroPan {
  0%   { object-position: 90% 48%; transform: scale(1.04); filter: grayscale(0.2) brightness(0.92); }
  50%  { object-position: 95% 52%; transform: scale(1.07); filter: grayscale(0.15) brightness(0.97); }
  100% { object-position: 88% 50%; transform: scale(1.04); filter: grayscale(0.25) brightness(0.94); }
}

.hero-overlay{
  position:absolute;inset:0;z-index:1;
  background: 
    linear-gradient(105deg, rgba(140,40,5,0.28) 0%, rgba(9,13,22,0.72) 40%, rgba(9,13,22,0.88) 70%, rgba(9,13,22,0.96) 100%),
    radial-gradient(ellipse 55% 65% at 92% 45%, rgba(220,80,20,0.12) 0%, transparent 65%);
  pointer-events:none;
}

.hero-grid-lines {
  position: absolute;
  inset: 0;
  z-index: 2;
  background-image:
    linear-gradient(rgba(255,255,255,0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.09) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.4) 60%, transparent 100%);
  animation: gridDrift 60s linear infinite;
}
@keyframes gridDrift {
  0%   { background-position: 0px 0px; }
  100% { background-position: 280px 280px; }
}

.hero-grid{max-width:1280px;margin:0 auto;padding:160px 0 120px;width:100%;position:relative;z-index:10;}
.hero-content{max-width:680px;}
.hero-tag-wrap{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:28px;}
.hero-tag{
  display:inline-flex;align-items:center;
  padding:8px 20px;
  color:#fb923c;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.1em;
  position:relative;
  background:transparent;
}

.hero-tag::before,
.hero-tag::after {
  content:'';
  position:absolute;
  width:10px;
  height:10px;
  border-color:rgba(251,146,60,0.9);
  border-style:solid;
}

.hero-tag::before {
  left:0; top:0;
  border-width:2px 0 0 2px;
}

.hero-tag::after {
  right:0; top:0;
  border-width:2px 2px 0 0;
}

.hero-tag .tag-br,
.hero-tag .tag-bl {
  position:absolute;
  width:10px; height:10px;
  border-color:rgba(251,146,60,0.9);
  border-style:solid;
}
.hero-tag .tag-bl { left:0; bottom:0; border-width:0 0 2px 2px; }
.hero-tag .tag-br { right:0; bottom:0; border-width:0 2px 2px 0; }
.hero-tag.secondary { color:rgba(255,255,255,0.45); }
.hero-tag.secondary::before,
.hero-tag.secondary::after,
.hero-tag.secondary .tag-br,
.hero-tag.secondary .tag-bl { border-color:rgba(255,255,255,0.3); }
.hero h1{font-size:clamp(36px,5vw,62px);font-weight:900;line-height:1.05;letter-spacing:-.03em;margin-bottom:24px;text-transform:uppercase;}
.hero-sub{font-size:17px;color:rgba(255,255,255,.6);max-width:540px;margin-bottom:44px;line-height:1.7;}

.hero-btns{display:flex;gap:16px;flex-wrap:wrap;}
.btn-red{background:var(--red);color:#fff;font-weight:700;padding:15px 30px;border-radius:3px;transition:all .2s;display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;font-size:11px;letter-spacing:.05em;}
.btn-outline{background:transparent;color:var(--dark);border:1.5px solid var(--border);font-weight:700;padding:15px 30px;border-radius:3px;transition:all .2s;display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;font-size:11px;letter-spacing:.05em;cursor:pointer;}
.btn-outline:hover{border-color:var(--red);color:var(--red);}
/* Hero: кнопка «Услуги огнезащиты» хорошо видна на тёмном фоне (убран прозрачный невидимый вид) */
.hero .btn-outline{
  background: rgba(255,255,255,0.12);
  color: #fff !important;
  border: 1.5px solid rgba(255,255,255,0.55);
  backdrop-filter: blur(4px);
}
.hero .btn-outline:hover{
  background: #fff;
  color: #090d16 !important;
  border-color: #fff;
}
.btn-red:hover{background:var(--red-hover);transform: translateY(-2px);box-shadow: 0 10px 20px rgba(227,6,19,0.3);}
.btn-ghost{border:1px solid rgba(255,255,255,.22);color:#fff;font-weight:700;padding:15px 30px;border-radius:3px;transition:all .2s;text-transform:uppercase;font-size:11px;letter-spacing:.05em;}
.btn-ghost:hover{background:rgba(255,255,255,.06);border-color:#fff;}

.parallax-uzel {
  position: fixed;
  bottom: -12%;
  right: -2%;
  width: 42vw;
  max-width: 680px;
  pointer-events: none;
  z-index: 4;
  opacity: 1;
  transition: opacity 1.5s ease;
  will-change: transform;
}
.parallax-uzel img {
  width: 100%;
  display: block;
  filter: drop-shadow(0 0 40px rgba(200,180,100,0.08));
  opacity: 1.14;
  mix-blend-mode: screen;
}

.section{padding:120px 2rem;position: relative; z-index: 10;}
.section-white{background:var(--white);}
.section-dark{background:#0f172a;color:#f8fafc;}
.section-bg{background:var(--bg);}
.cnt{max-width:1280px;margin:0 auto;}
.slabel{display:inline-block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--red);margin-bottom:12px;}
.slabel > span[style*="font-family:monospace"]{
  position: relative;
  padding-left: 40px;
  display: inline-block;
}
.slabel > span[style*="font-family:monospace"]::before{
  content: '';
  position: absolute;
  left: 0; top: 50%;
  width: 30px;
  height: 1.5px;
  background: linear-gradient(90deg, transparent, currentColor);
  transform: translateY(-50%);
}
@media(max-width:640px){
  .slabel > span[style*="font-family:monospace"]{ padding-left: 24px; }
  .slabel > span[style*="font-family:monospace"]::before{ width: 16px; }
}
.stitle{font-size:clamp(26px,3.2vw,40px);font-weight:800;letter-spacing:-.025em;line-height:1.15;margin-bottom:14px;}
.sdesc{font-size:16px;color:var(--muted);max-width:760px;margin-bottom:56px;}

.bim-section {
  position: relative;
  background: #05070a;
  overflow: hidden;
}

.bim-section-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: url('img/intro2.jpg');
  background-size: cover;
  background-position: 90% center;
  opacity: 0.12;
  filter: grayscale(0.4) brightness(0.7);
}

.bim-section-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(105deg, rgba(140,40,5,0.22) 0%, rgba(9,13,22,0.75) 40%, rgba(9,13,22,0.92) 100%),
    radial-gradient(ellipse 40% 60% at 95% 50%, rgba(56,189,248,0.06) 0%, transparent 60%);
  pointer-events: none;
}

.bim-section::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  background-image:
    linear-gradient(rgba(255,255,255,0.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.10) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
  mask-image: linear-gradient(135deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0.7) 50%, rgba(0,0,0,0.3) 100%);
  animation: gridDrift 60s linear infinite;
}
.bim-section::after { display: none; }
.bim-section .cnt { position: relative; z-index: 3; }

.bim-layout{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;margin-top:56px;border:1px solid rgba(255,255,255,.09);border-radius:20px;overflow:hidden;background:#080d17;}
.bim-preview{
  position:relative;overflow:hidden;background:rgba(6,11,21,0.7);
  min-height:520px;
  border-right:1px solid rgba(255,255,255,.07);
}
.bim-preview::before{content:'';position:absolute;inset:0;background:
  radial-gradient(ellipse 80% 80% at 50% 50%, rgba(56,189,248,0.1) 0%, transparent 70%);pointer-events:none;z-index:2;}
.bim-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:all .6s ease;z-index:1;}
.bim-preview img.sw{opacity:0;transform:scale(.97);}
.bim-preview:hover img:not(.sw){transform:scale(1.05);}
.bim-preview-tag{position:absolute;top:16px;left:16px;font-family:'Fira Code',monospace;font-size:10px;font-weight:600;color:rgba(56,189,248,.8);background:rgba(0,0,0,.45);backdrop-filter:blur(6px);padding:4px 12px;border-radius:20px;letter-spacing:.04em;z-index:2;border:1px solid rgba(56,189,248,.15);}
.bim-preview-hint{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-size:10px;color:rgba(200,220,240,.3);letter-spacing:.04em;font-weight:500;}

.bim-list{padding:28px 24px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;max-height:500px;}
.bim-card{
  background:rgba(255,255,255,.026);border:1px solid rgba(255,255,255,.07);
  border-radius:12px;padding:18px 20px;transition:all .25s;cursor:pointer;
  position:relative;overflow:hidden;
}
.bim-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:rgba(56,189,248,0);transition:background .25s;border-radius:2px 0 0 2px;}
.bim-card:hover{background:rgba(255,255,255,.04);border-color:rgba(56,189,248,.25);}
.bim-card:hover::before{background:rgba(56,189,248,.4);}
.bim-card.active{border-color:rgba(56,189,248,.45);background:rgba(56,189,248,.06);}
.bim-card.active::before{background:#38bdf8;}

.albums-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(380px, 1fr));gap:24px;}
.album-card{
  background:var(--white);border:1px solid #e8eef4;border-radius:16px;overflow:hidden;
  transition:all .3s ease;
}
.album-card:hover{border-color:var(--red);transform:translateY(-5px);box-shadow:0 20px 40px rgba(15,23,42,0.1);}
.album-thumb {
  height: 220px; /* +10% */
  background: #f1f5f9;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-bottom: 1px solid #f0f4f8;
  position: relative;
  
  
  transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1); 
  will-change: height;
}

.album-card:hover .album-thumb {
  height: 352px; /* +10% */
}

.album-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover; 
  transition: transform 0.6s ease;
}
.album-card:hover .album-thumb img{transform: scale(1.1);}
.album-body{padding:24px;}
.album-dl{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--red);border:1.5px solid rgba(227,6,19,0.2);padding:10px 20px;border-radius:8px;transition:all .2s;cursor:pointer;}
.album-dl:hover{background:var(--red);color:#fff;}

.sol-strip {
  background: rgba(255,255,255,.97);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 72px;
  z-index: 200;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: box-shadow .2s ease, border-color .2s ease;
}
.sol-strip.is-stuck {
  box-shadow: 0 8px 24px rgba(15,23,42,.1);
  border-bottom-color: rgba(203,213,225,.95);
}
.sol-strip-inner{
  max-width:1280px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
  padding:16px 20px;
}
/* Equal-width category buttons in [ 01 ] strip */
.sol-strip .ssi{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:44px;
  padding:10px 12px;
  text-align:center;
  white-space:normal;
  line-height:1.25;
  gap:6px;
}
@media(max-width:900px){
  .sol-strip-inner{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media(max-width:420px){
  .sol-strip-inner{ grid-template-columns:1fr; }
}
/* Unified filter/sort tabs — reference: section [ 01 ] catalog .ssi */
.ssi,
.ftab,
.faq-filter-btn{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 18px;
  font-size:11px;
  font-weight:800;
  font-family:inherit;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
  background:#f8fafc;
  border:1.5px solid var(--border);
  border-radius:8px;
  cursor:pointer;
  transition:all .2s;
  white-space:nowrap;
  appearance:none;
  -webkit-appearance:none;
  box-shadow:none;
  text-decoration:none;
  line-height:1.2;
}
.ssi:hover,
.ftab:hover,
.faq-filter-btn:hover{
  border-color:var(--red);
  color:var(--red);
  background:#f8fafc;
}
.ssi.on,
.ftab.on,
.faq-filter-btn.active,
.faq-filter-btn.on{
  color:#fff !important;
  background:var(--red) !important;
  border-color:var(--red) !important;
  box-shadow:0 4px 12px rgba(227,6,19,.25);
}
.ssi img{flex-shrink:0;opacity:.8;}
.ssi.on img{opacity:1;}
.sol-block{display:none;}
.sol-block.on{display:block;animation:fadeUp .4s ease;}
.sol-layout{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-top:40px;}
.sol-img-col{border-radius:12px;overflow:hidden;background:#0f172a;min-height:380px;border:1px solid var(--border);position:relative;background-size: cover; background-position: center;}

.tbl-wrap{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:#fff;margin-top: 30px;}
.tbl{width:100%;border-collapse:collapse;font-size:14px;}
.tbl th{background:#f8fafc;padding:14px 18px;text-align:left;font-size:11px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);}
.tbl td{padding:16px 18px;border-bottom:1px solid var(--border);}

@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

.expert-col-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 48px; }
.expert-card {
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  transition: all .3s ease;
  cursor: pointer;
}
.expert-card:hover { border-color: var(--red); box-shadow: 0 16px 40px rgba(227,6,19,.08); transform: translateY(-4px); }
.expert-card-thumb {
  height: 220px;
  overflow: hidden;
  position: relative;
  background: linear-gradient(135deg, #1e293b, #0f172a);
}
.expert-card-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.expert-card:hover .expert-card-thumb img { transform: scale(1.07); }
.expert-card-category {
  position: absolute; top: 14px; left: 14px;
  background: var(--red); color: #fff;
  font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em;
  padding: 4px 12px; border-radius: 3px;
}
.expert-card-body { padding: 24px 28px 28px; }
.expert-card-author {
  display: flex; align-items: center; gap: 12px; margin-bottom: 16px;
}
.expert-author-avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: linear-gradient(135deg, #e30613, #7c0a0a);
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 14px; color: #fff; flex-shrink: 0;
  border: 2px solid rgba(227,6,19,.2);
}
.expert-author-name { font-size: 13px; font-weight: 700; color: var(--dark); }
.expert-author-role { font-size: 11px; color: var(--muted); }
.expert-card-title { font-size: 18px; font-weight: 800; color: var(--dark); line-height: 1.35; letter-spacing: -.02em; margin-bottom: 12px; }
.expert-card-excerpt { font-size: 14px; color: var(--muted); line-height: 1.7; margin-bottom: 20px; }
.expert-card-readmore {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 700; color: var(--red);
  text-transform: uppercase; letter-spacing: .05em;
  transition: gap .2s;
}
.expert-card:hover .expert-card-readmore { gap: 12px; }

.filter-bar,
.faq-filter-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:36px;
}
.filter-strip{
  background:var(--white);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  position:sticky;
  top:72px;
  z-index:98;
}
.filter-strip .filter-bar{
  max-width:1280px;
  margin:0 auto;
  padding:16px 20px;
  margin-bottom:0;
}

.norm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
.norm-card{background:var(--white);border:1px solid #e8eef4;border-radius:14px;padding:22px 24px;display:flex;gap:18px;align-items:flex-start;transition:all .22s;box-shadow:0 1px 4px rgba(15,23,42,.04);}
.norm-card:hover{border-color:#c7d8e8;box-shadow:0 6px 20px rgba(15,23,42,.07);transform:translateY(-1px);}
.norm-icon{flex-shrink:0;width:38px;height:38px;background:linear-gradient(135deg,#fff5f5,#fee2e2);border-radius:10px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(227,6,19,.1);}
.norm-code{font-size:12px;font-weight:700;color:var(--red);margin-bottom:4px;}
.norm-title{font-size:14px;font-weight:600;color:#1e293b;margin-bottom:5px;line-height:1.45;}
.norm-desc{font-size:13px;color:#64748b;line-height:1.6;}
.norm-status{display:inline-block;font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;margin-top:10px;}
.ns-active{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0;}
.ns-info{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe;}

.certs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  align-items: stretch; 
}

.cert-card {
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  transition: all .2s;
  position: relative;
  display: flex;
  flex-direction: column; 
}

.cert-card:hover {
  border-color: var(--red);
  box-shadow: 0 10px 30px rgba(0,0,0,0.05);
}

.cert-sample-badge {
  position: absolute;
  top: 0;
  right: 0;
  background: #fff;
  color: var(--red);
  border: 1.5px solid rgba(227,6,19,.25);
  font-size: 8px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 4px 10px;
  border-radius: 0 12px 0 6px;
  z-index: 5;
}

.cert-icon {
  width: 100%;
  height: 220px;
  margin-bottom: 20px;
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  background: #f8fafc;
  border: 1px solid #eef2f6;
  padding: 0;
}

.cert-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.cert-card:hover .cert-icon img {
  transform: scale(1.06);
}

.cert-title {
  font-size: 14px; 
  font-weight: 800; 
  text-transform: uppercase; 
  letter-spacing: .02em; 
  color: var(--dark); 
  margin-bottom: 8px; 
  line-height: 1.3;
}

.cert-norm {
  font-size: 12px; 
  color: var(--muted); 
  margin-bottom: 20px; 
  flex-grow: 1; 
}

.cert-dl {
  display: inline-flex; 
  align-items: center; 
  justify-content: center;
  gap: 6px; 
  font-size: 11px; 
  font-weight: 700; 
  color: var(--red); 
  border: 1px solid rgba(227,6,19,.2); 
  padding: 9px 16px; 
  border-radius: 8px; 
  cursor: pointer; 
  transition: all .2s; 
  text-transform: uppercase;
}

.cert-dl:hover {
  background: var(--red); 
  color: #fff; 
  border-color: var(--red);
}

.sol-desc-col{display:flex;flex-direction:column;justify-content:center;}
.sol-norm-tag{position:absolute;bottom:20px;left:20px;background:rgba(9,13,22,.92);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px 18px;}
.sol-norm-tag span{font-size:9px;text-transform:uppercase;color:var(--red);font-weight:800;letter-spacing:.1em;display:block;}
.sol-norm-tag p{font-size:13px;font-weight:700;color:#fff;margin-top:2px;}
.doc-table-wrap{margin-top:48px;border-top:1px solid var(--border);padding-top:40px;}
/* Second category filters — above each Документация table */
.sol-strip-docs{
  position: static;
  top: auto;
  z-index: auto;
  background: #f8fafc;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  margin: 0 0 28px;
  padding: 14px 16px 16px;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: none;
}
.sol-strip-docs .sol-strip-inner{
  max-width: none;
  margin: 0;
  padding: 0;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.sol-strip-docs-label{
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
  margin-bottom: 10px;
  font-family: 'Montserrat', Helvetica, sans-serif;
}
.sol-strip-docs .ssi{
  padding: 9px 10px;
  font-size: 10px;
  min-height: 40px;
  white-space: normal;
  text-align: center;
  justify-content: center;
  width: 100%;
}
@media(max-width:900px){
  .sol-strip-docs .sol-strip-inner{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media(max-width:420px){
  .sol-strip-docs .sol-strip-inner{ grid-template-columns: 1fr; }
}
.dt-heading{font-size:13px;font-weight:800;text-transform:uppercase;color:var(--dark);letter-spacing:.05em;margin-bottom:16px;display:flex;align-items:center;gap:8px;}
.badge{font-size:10px;font-weight:800;text-transform:uppercase;padding:3px 7px;border-radius:2px;display:inline-block;}
.bc{background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5;}
.br{background:#ffedd5;color:#c2410c;border:1px solid #fdba74;}
.bd{background:#e0f2fe;color:#0369a1;border:1px solid #7dd3fc;}
.bn{background:#f0fdf4;color:#166534;border:1px solid #86efac;}
.dl-btn{font-size:11px;font-weight:800;color:var(--red);background:rgba(227,6,19,.03);border:1px solid rgba(227,6,19,.15);padding:7px 12px;border-radius:6px;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:5px;text-transform:uppercase;}
.dl-btn:hover{background:var(--red);color:#fff;border-color:var(--red);}
.doc-valid{color:#059669;font-weight:700;font-size:12px;}

.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:56px;}
.srv-card{background:var(--white);border:1.5px solid var(--border);border-radius:12px;padding:32px;transition:all .2s;}
.srv-card:hover{border-color:var(--red);box-shadow:0 8px 28px rgba(227,6,19,.06);}
.srv-icon{width:48px;height:48px;margin-bottom:20px;}
.srv-title{font-size:15px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--dark);margin-bottom:10px;}
.srv-desc{font-size:14px;color:var(--muted);line-height:1.65;margin-bottom:20px;}
.srv-link{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.04em;transition:gap .2s;}
.srv-link:hover{gap:10px;}

.support-dark{background:#111827;color:#fff;}
.support-inner{max-width:840px;margin:0 auto;}
.support-submit{background:var(--red);color:#fff;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;padding:16px 36px;border:none;border-radius:6px;cursor:pointer;transition:background .2s;margin-top:8px;display:inline-flex;align-items:center;gap:8px;}
.support-submit:hover{background:var(--red-hover);}

.calc-placeholder{border:2px dashed var(--border);border-radius:12px;min-height:480px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--muted);background:var(--white);}

.footer{background:var(--white);border-top:1px solid var(--border);padding:48px 2rem;}
.footer-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;}
.flinks{display:flex;gap:24px;list-style:none;flex-wrap:wrap;}
.flinks a{font-size:13px;color:var(--muted);font-weight:600;transition:color .2s;}
.flinks a:hover{color:var(--red);}

.ssi img{flex-shrink:0;opacity:.8;}
.ssi.on img{opacity:1;}

@media(max-width:768px){
  .norm-grid,.certs-grid,.services-grid,.support-grid{grid-template-columns:1fr;}
}

.modul-section {
  background: #05070a;
  padding: 40px 2rem 0;
  overflow: hidden;
  position: relative;
  z-index: 10;
  text-align: center;
}

.modul-section::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 4;
  background-image:
    linear-gradient(rgba(255,255,255,0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.09) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.4) 50%, transparent 100%);
  animation: gridDrift 60s linear infinite;
}

.modul-section::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 140px;
  background: linear-gradient(to bottom, transparent 0%, #f8fafc 100%);
  z-index: 5;
  pointer-events: none;
}
.modul-section img {
  position: relative;
  z-index: 2;
  width: 90%;
  max-width: 1080px;
  display: block;
  margin: 0 auto -20px;
  filter: drop-shadow(0 0 60px rgba(220,80,20,0.18)) saturate(0.85) brightness(0.9);
  border-radius: 16px 16px 0 0;
  animation: modulFloat 9s ease-in-out infinite;
}
@keyframes modulFloat {
  0%,100% { transform: translateY(0px) scale(1); }
  50%      { transform: translateY(-14px) scale(1.01); }
}
@media(max-width:768px){ .modul-section { padding: 30px 1rem 0; } .modul-section img { width: 96%; } }

.modul-float { display: none !important; }

.faq-search-box { display: flex; align-items: center; gap: 12px; background: var(--white); border: 1.5px solid var(--border); border-radius: 4px; padding: 20px 24px; margin-bottom: 32px; }
.faq-search-box input { border: none; outline: none; background: transparent; font-family: 'Inter', sans-serif; font-size: 15px; width: 100%; color: var(--text); }
/* .faq-filter-btn unified with .ssi / .ftab above */
.faq-acc-list { display: flex; flex-direction: column; gap: 16px; max-width: 100%; }
.faq-acc-item { background: var(--white); border: 1.5px solid var(--border); border-radius: 4px; overflow: hidden; transition: all 0.2s; }
.faq-acc-item.open { border-color: var(--red); }
.faq-acc-q { width: 100%; text-align: left; padding: 28px 36px; background: transparent; border: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.faq-acc-prod { font-size: 11px; font-weight: 800; text-transform: uppercase; color: var(--red); display: block; margin-bottom: 6px; letter-spacing: 0.05em; }
.faq-acc-qt { font-size: 16px; font-weight: 800; color: var(--dark); line-height: 1.4; text-transform: uppercase; letter-spacing: 0.02em; }
.faq-acc-arrow { width: 28px; height: 28px; border-radius: 4px; background: var(--bg); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--muted); font-size: 10px; transition: transform 0.25s; }
.faq-acc-item.open .faq-acc-arrow { transform: rotate(180deg); background: var(--red); color: #fff; }
.faq-acc-a { display: none; padding: 0 36px 28px; font-size: 15px; color: var(--muted); line-height: 1.8; }
.faq-acc-a.show { display: block; }
.faq-acc-a-in { padding-top: 20px; border-top: 1.5px solid var(--border); }

.support-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 24px; }
.support-field { display: flex; flex-direction: column; gap: 8px; }
.support-field.full { grid-column: 1 / -1; }
.support-field label { font-size: 10px; font-weight: 800; text-transform: uppercase; color: rgba(255,255,255,0.4); letter-spacing: 0.08em; }
.support-field input, .support-field select, .support-field textarea { background: rgba(255,255,255,0.04); border: 1.5px solid rgba(255,255,255,0.12); border-radius: 4px; padding: 14px 18px; font-family: 'Inter', sans-serif; font-size: 14.5px; color: #fff; transition: all 0.2s; width: 100%; -webkit-appearance: none; appearance: none; }
.support-field input::placeholder, .support-field textarea::placeholder { color: rgba(255,255,255,0.25); }
.support-field input:focus, .support-field select:focus, .support-field textarea:focus { outline: none; border-color: var(--red); background: rgba(255,255,255,0.06); }
.support-field select { 
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 10 10'%3E%3Cpath fill='%23888888' d='M5 7L0 2h10z'/%3E%3C/svg%3E"); 
  background-repeat: no-repeat; 
  background-position: right 18px center; 
  padding-right: 40px; 
  cursor: pointer; 
}
.support-field select option { background: #0f172a; color: #fff; }
.support-field textarea { resize: vertical; min-height: 120px; }

.cert-group { border: 1.5px solid var(--border); border-radius: 12px; overflow: hidden; background: var(--white); }
.cert-group + .cert-group { margin-top: 4px; }
.cert-group-header { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; cursor: pointer; transition: background .2s; user-select: none; }
.cert-group-header:hover { background: var(--bg); }
.cert-group.open .cert-group-header { background: var(--bg); border-bottom: 1.5px solid var(--border); }
.cert-group-icon { width: 48px; height: 48px; border-radius: 10px; background: #f1f5f9; overflow: hidden; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cert-group-icon img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.cert-group-title { font-size: 16px; font-weight: 800; color: var(--dark); letter-spacing: -.01em; }
.cert-group-meta { font-size: 11px; color: var(--muted); margin-top: 3px; font-weight: 500; }
.cert-chevron { transition: transform .25s; flex-shrink: 0; color: var(--muted); }
.cert-group.open .cert-chevron { transform: rotate(180deg); }

.cert-group-body { display: none; flex-direction: column; }
.cert-group.open .cert-group-body { display: flex; }

.cert-doc-row { display: flex; align-items: center; gap: 12px; padding: 14px 24px; text-decoration: none; color: var(--dark); transition: background .15s; border-bottom: 1px solid var(--border); }
.cert-doc-row:last-child { border-bottom: none; }
.cert-doc-row:hover { background: #fef2f2; }
.cert-doc-icon { width: 18px; height: 18px; flex-shrink: 0; color: var(--red); }
.cert-doc-name { flex: 1; font-size: 14px; font-weight: 600; color: var(--dark); }
.cert-doc-dl { width: 16px; height: 16px; flex-shrink: 0; color: var(--muted); transition: color .15s; }
.cert-doc-row:hover .cert-doc-dl { color: var(--red); }

.cert-doc-row.cert-doc-empty,
.cert-doc-row[href="#"],
.cert-doc-row:not([href]) { opacity: .45; pointer-events: none; }

.cert-docs-panel { display:none; margin-top:14px; border-top:1px solid var(--border); padding-top:10px; flex-direction:column; gap:0; }
.cert-card.docs-open .cert-docs-panel { display:flex; }
.cert-card.docs-open { border-color:var(--red); box-shadow:0 4px 20px rgba(227,6,19,.08); }
.cert-dl svg { transition:transform .2s; }
.cert-docs-panel .cert-doc-row { padding:10px 0; border-bottom:1px solid #f1f5f9; }
.cert-docs-panel .cert-doc-row:last-child { border-bottom:none; }
.cert-docs-panel .cert-doc-name { font-size:12px; }

.album-thumb { position:relative; overflow:hidden; }
.album-hover-gif {
  position: absolute; 
  inset: 0; 
  width: 100%; 
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.4s ease; 
  pointer-events: none;
  z-index: 3;
}
.album-card:hover .album-hover-gif { opacity:1; }

.norm-link-src[href="#"],
.norm-link-src:not([href]) {
  opacity: 0.25;
  pointer-events: none;
  color: #94a3b8 !important;
  border-bottom-color: transparent !important;
}

.sol-cards { margin-bottom: 48px; }
.sol-cards-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.sol-cards-3 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.sol-cards-3 .sol-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
.sol-cards-4 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 24px; }
.sol-cards-1 { display: grid; grid-template-columns: 1fr; gap: 24px; }

.sol-card {
  background: #f8fafc;
  border: 1.5px solid var(--border);
  border-radius: 16px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
  transition: border-color .2s;
}
.sol-card:hover { border-color: var(--red); }
.sol-card > div { width: 100%; }
.sol-card-img {
  width: 90px; height: 90px;
  object-fit: cover;
  border-radius: 12px;
  flex-shrink: 0;
  border: 1px solid #e2e8f0;
}
.sol-card-img-placeholder {
  width: 90px; height: 90px;
  border-radius: 12px;
  flex-shrink: 0;
  background: #f1f5f9;
  border: 1.5px dashed #cbd5e1;
}
.sol-card-label { font-size: 12px; font-weight: 800; color: var(--red); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }
.sol-card-title { font-size: 19px; font-weight: 700; color: var(--dark); margin-bottom: 10px; line-height: 1.4; }
.sol-card-title a { color: var(--red); }
.sol-card-desc { font-size: 15px; color: var(--muted); line-height: 1.7; margin-bottom: 14px; }
.sol-card-badge { display: inline-block; font-size: 13px; font-weight: 700; background: #fee2e2; color: #b91c1c; padding: 4px 12px; border-radius: 20px; }

@media(max-width:900px) {
  .sol-cards-4 { grid-template-columns: 1fr 1fr; }
  .sol-cards-3 { grid-template-columns: 1fr; }
  .sol-cards-3 .sol-card:last-child:nth-child(odd) { grid-column: auto; }
  .sol-card { padding: 24px; gap: 16px; }
  .sol-card-img, .sol-card-img-placeholder { width: 80px; height: 80px; }
}
@media(max-width:640px) {
  .sol-cards-2, .sol-cards-4 { grid-template-columns: 1fr; }
}

.side-menu-tab {
  position: fixed;
  left: 0; top: 50%;
  transform: translateY(-50%);
  z-index: 1001;
  display: flex; align-items: center; justify-content: center;
  width: 22px; height: 64px;
  background: var(--red);
  color: #fff;
  border: none;
  border-radius: 0 8px 8px 0;
  cursor: pointer;
  box-shadow: 2px 0 12px rgba(0,0,0,.15);
  transition: width .2s ease, background .2s ease;
}
.side-menu-tab:hover, .side-menu-tab.open { width: 30px; background: var(--red-hover, #c00512); }
.side-menu-tab svg { transition: transform .25s ease; flex-shrink: 0; }
.side-menu-tab.open svg { transform: rotate(180deg); }

.side-feedback-panel {
  position: fixed;
  left: 30px; top: 50%;
  transform: translateY(-50%) translateX(-12px);
  z-index: 1001;
  width: 300px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 22px;
  box-shadow: 0 24px 60px rgba(15,23,42,.25);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .22s ease, transform .22s ease, visibility .22s;
}
.side-feedback-panel.open {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateY(-50%) translateX(0);
}
.side-feedback-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.side-feedback-title { font-size: 15px; font-weight: 800; color: var(--dark); text-transform: uppercase; letter-spacing: .02em; }
.side-feedback-close { background: none; border: none; font-size: 20px; line-height: 1; color: var(--muted); cursor: pointer; padding: 4px; }
.side-feedback-close:hover { color: var(--red); }
.side-feedback-sub { font-size: 12.5px; color: var(--muted); line-height: 1.5; margin-bottom: 14px; }
.sf-input {
  width: 100%; margin-bottom: 10px;
  padding: 11px 13px;
  border: 1.5px solid var(--border);
  border-radius: 6px;
  font-size: 13px; font-family: inherit;
  background: var(--white); color: var(--dark);
  resize: vertical;
  transition: border-color .15s;
}
.sf-input:focus { outline: none; border-color: var(--red); }
.sf-input::placeholder { color: var(--muted); }
#side-feedback-form .sf-input { width: 100%; margin-bottom: 10px; }
.sf-consent {
  display: flex; align-items: flex-start; gap: 8px;
  margin-bottom: 14px; cursor: help;
}
.sf-consent input[type="checkbox"] {
  margin-top: 2px; flex-shrink: 0;
  width: 15px; height: 15px; accent-color: var(--red); cursor: pointer;
}
.sf-consent span {
  font-size: 10.5px; line-height: 1.45; color: var(--muted);
}
#side-feedback-success { text-align: center; padding: 12px 0 4px; }

/* Side feedback + mobile nav contacts */
.side-feedback-contacts{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:0 0 14px;
  padding:10px 12px;
  border-radius:10px;
  background:rgba(227,6,19,.05);
  border:1px solid rgba(227,6,19,.12);
}
.side-feedback-contact{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:700;
  color:var(--dark);
  text-decoration:none;
  transition:color .15s;
  word-break:break-all;
}
.side-feedback-contact svg{ color:var(--red); flex-shrink:0; }
.side-feedback-contact:hover{ color:var(--red); }

.mnav-contacts{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:20px 0 0;
  padding:14px 0 4px;
  border-top:1px solid rgba(255,255,255,.1);
}
.mnav-contact{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:14px;
  font-weight:700;
  color:rgba(255,255,255,.9);
  text-decoration:none;
  padding:8px 4px;
}
.mnav-contact svg{ color:#fca5a5; flex-shrink:0; }
.mnav-contact:hover{ color:#fff; }

/* Cookie consent banner */
.cookie-banner{
  position:fixed;
  left:16px;
  right:16px;
  bottom:16px;
  z-index:10050;
  max-width:520px;
  margin:0 auto;
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:14px;
  box-shadow:0 16px 48px rgba(15,23,42,.18);
  padding:18px 20px;
  display:none;
  align-items:flex-start;
  gap:14px;
}
.cookie-banner.show{ display:flex; flex-direction:column; gap:14px; }
.cookie-banner-title{
  font-family:'Montserrat',Helvetica,sans-serif;
  font-size:14px;
  font-weight:800;
  color:var(--dark);
  margin:0 0 6px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.cookie-banner-text{
  font-size:13px;
  color:var(--muted);
  line-height:1.55;
  margin:0;
}
.cookie-banner-text a{
  color:var(--red);
  text-decoration:underline;
  text-underline-offset:2px;
}
.cookie-banner-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
}
.cookie-banner-btn{
  appearance:none;
  border:none;
  cursor:pointer;
  background:var(--red);
  color:#fff;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
  padding:12px 22px;
  border-radius:4px;
  transition:background .2s, transform .15s;
}
.cookie-banner-btn:hover{
  background:var(--red-hover,#c00512);
  transform:translateY(-1px);
}
@media(max-width:768px){
  .cookie-banner{
    left:10px; right:10px; bottom:72px; /* above mobile bottom nav */
    padding:16px;
  }
  .cookie-banner-btn{ width:100%; text-align:center; }
}
html[data-theme="dark"] .cookie-banner{
  background:#111827;
  border-color:var(--border);
}
html[data-theme="dark"] .cookie-banner-title{ color:var(--text); }
html[data-theme="dark"] .side-feedback-contacts{
  background:rgba(227,6,19,.1);
  border-color:rgba(227,6,19,.22);
}
html[data-theme="dark"] .side-feedback-contact{ color:var(--text); }
#side-feedback-success p { font-size: 13px; color: var(--muted); margin-top: 10px; line-height: 1.5; }

@media(max-width: 768px) {
  .side-feedback-panel { display: none !important; }
}

.nav-mobile-overlay {
  display: flex;
  position: fixed; inset: 0 auto 0 0; z-index: 1000;
  width: min(340px, 86vw); height: 100%;
  background: rgba(9,13,22,0.99); backdrop-filter: blur(16px);
  flex-direction: column; align-items: flex-start;
  padding: 88px 28px 40px;
  overflow-y: auto;
  transform: translateX(-100%);
  transition: transform .3s cubic-bezier(.32,.72,0,1);
  box-shadow: 8px 0 40px rgba(0,0,0,.25);
}
.nav-mobile-overlay.open { transform: translateX(0); }
.nav-mobile-overlay .nav-item {
  font-size: 18px; font-weight: 800; padding: 16px 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  width: 100%; letter-spacing: -.01em; text-transform: none;
}
.nav-mobile-overlay .nav-item:last-child { border-bottom: none; }
.nav-mobile-overlay .btn-action { margin-top: 24px; width: 100%; text-align: center; justify-content: center; padding: 16px; font-size: 14px; }
.nav-mobile-overlay .mnav-social {
  display: flex; gap: 12px; margin-top: 20px;
}
.nav-mobile-overlay .mnav-social a {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,.06); color: rgba(255,255,255,.7);
  transition: all .15s;
}
.nav-mobile-overlay .mnav-social a svg { width: 22px; height: 22px; }
.nav-mobile-overlay .mnav-social a[aria-label="ВКонтакте"] svg { width: 27px; height: 27px; }
.nav-mobile-overlay .mnav-social a:hover { background: var(--red); color: #fff; }

.nav-cta-mobile { display: none; }

@media(max-width:768px) {
  .nav-menu { display: none; }
  .btn-action.nav-cta { display: none; }
  .nav-actions { margin-left: auto; gap: 6px; }
  .nav-cta-mobile { display: inline-flex; padding: 10px 14px; font-size: 11px; }
  .nav-header { height: 60px; padding: 0 16px; gap: 8px; }
  .nav-logo { padding: 6px 0; }
  .nav-logo img { height: 28px; width: auto; max-width: 120px; }
  .nav-mobile-overlay { padding-top: 76px; width: min(300px, 82vw); }
  .side-menu-tab { height: 54px; width: 18px; }
  html { scroll-padding-top: 72px; }

  
  .hero { min-height: 100svh; padding: 0 1.2rem; align-items: flex-end; padding-bottom: 80px; }
  .hero-grid { padding: 100px 0 60px; }
  .hero-content { max-width: 100%; }
  .hero h1 { font-size: clamp(28px, 8vw, 44px); }
  .hero-sub { font-size: 15px; }
  .hero-btns { flex-direction: column; gap: 12px; }
  .hero-btns .btn-red, .hero-btns a { width: 100%; text-align: center; justify-content: center; }
  .hero-tag-wrap { gap: 8px; }
  .hero-tag { font-size: 9px; padding: 5px 14px; }

  
  .section { padding: 48px 1.2rem; }
  .cnt { padding: 0; }
  .stitle { font-size: clamp(22px, 6vw, 36px); }
  .sdesc { font-size: 14px; }

  .sol-strip { top: 60px; }

  
  .sol-cards-2, .sol-cards-3, .sol-cards-4 { grid-template-columns: 1fr; }
  .sol-cards-3 .sol-card:last-child:nth-child(odd) { grid-column: auto; }
  .sol-card { padding: 18px; gap: 14px; }
  .sol-card-img, .sol-card-img-placeholder { width: 60px; height: 60px; }

  
  .bim-layout { grid-template-columns: 1fr; }
  .bim-preview { min-height: 260px; border-right: none; border-bottom: 1px solid rgba(255,255,255,.07); }
  .bim-list { max-height: none; padding: 20px 16px; }
  .bim-card { padding: 14px 16px; }
  .bim-section .cnt { padding: 0 1rem; }

  
  .albums-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
  .album-thumb { height: 154px; /* +10% */ }
  .album-body { padding: 14px; }
  .filter-bar { gap: 8px; flex-wrap: wrap; }

  
  .certs-grid { grid-template-columns: 1fr; }
  .cert-card { padding: 18px; }

  
  .tbl-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .tbl { font-size: 12px; min-width: 600px; }
  .tbl th, .tbl td { padding: 10px 10px; }
  .dt-heading { font-size: 12px; padding: 12px 14px; }

  
  .norm-grid { grid-template-columns: 1fr; gap: 12px; }
  .norm-card { padding: 18px; }
  .faq-filter-tabs { flex-wrap: wrap; gap: 6px; }

  
  #webinars .cnt > div[style*="grid-template-columns:1fr 1fr"],
  #webinars .web-archive-grid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  #webinars [style*="height:320px"],
  #webinars .web-archive-thumb { height: 220px !important; }

  
  #events .cnt > div[style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  /* Featured webinar + speakers mobile */
  #webinars .web-featured-inner { grid-template-columns: 1fr !important; }
  #webinars .web-featured-aside { padding: 22px 18px !important; min-height: 0 !important; }
  #webinars .web-featured-body { padding: 20px 18px !important; }
  #webinars .web-featured-cta { width: 100%; justify-content: center; }
  #webinars .web-speakers { margin-top: 16px !important; }
  #webinars .web-speaker-photo {
    width: 72px !important;
    height: 72px !important;
    min-width: 72px !important;
    min-height: 72px !important;
    object-position: center 12% !important;
  }
  #webinars .web-speaker-name { color: #fff !important; }
  #webinars .web-speaker-role { color: rgba(255,255,255,.65) !important; }
  #webinars > .cnt > .btn-red { width: 100%; justify-content: center; box-sizing: border-box; }
  #webinars .web-bottom-cta { justify-content: stretch !important; }
  #webinars .web-bottom-cta .btn-red { width: 100%; justify-content: center; }

  /* Event announce mobile */
  #events .event-announce { grid-template-columns: 1fr !important; }
  #events .event-announce-media { min-height: 180px !important; }
  #events .event-announce-body { padding: 20px 18px !important; }

  /* Safer mobile overflow / touch */
  .nav-actions .nav-cta-mobile { min-height: 40px; align-items: center; }
  .theme-toggle-btn { min-width: 40px; min-height: 40px; }
  .nav-logo img { height: 28px; width: auto; max-width: 120px; }
  .web-speaker-photo,
  .web-archive-thumb img,
  .event-announce-media img { max-width: 100%; }

  
  

  
  .services-grid { grid-template-columns: 1fr; }

  .faq-acc-q { padding: 16px 16px; }
  .faq-acc-qt { font-size: 14px; }
  .faq-acc-a { padding: 0 16px 18px; font-size: 14px; }

  
  footer .footer-inner,
  footer > div[style] { flex-direction: column; gap: 18px; align-items: flex-start; padding: 24px 16px; }
  .flinks { flex-wrap: wrap; gap: 10px 18px; }

  
  .draft-tbl-wrap { margin-bottom: 16px; }
  .draft-tbl { font-size: 12px !important; min-width: 600px; }
  .draft-tbl thead th { font-size: 10px !important; }

  
  .support-form { grid-template-columns: 1fr; }

  
  .btn-red, .btn-outline { font-size: 12px; padding: 13px 22px; }
}

@media(max-width:480px) {
  
  .hero-grid { padding: 90px 0 50px; }
  .hero h1 { font-size: 26px; }

  
  .albums-grid { grid-template-columns: 1fr; }
  .album-thumb { height: 198px; /* +10% */ }

  
  .nav-logo img { height: 24px; width: auto; max-width: 110px; }

  
  .stitle { font-size: 22px; }

  
  #webinars [style*="height:320px"],
  #webinars .web-archive-thumb { height: 180px !important; }
  #webinars .web-speaker { gap: 10px; padding: 10px 12px; }
  #webinars .web-speaker-name { font-size: 13.5px; }
  #webinars .web-speaker-role { font-size: 12px; }
  #webinars .web-featured-list li { font-size: 14px; }
  #webinars .sdesc { margin-bottom: 28px; }
}

@media print {
  .nav-header, .sol-strip, #toolbar,
  .btn-print-draft, footer, .hero,
  .section:not(#draft-nastya) { display: none !important; }
  #draft-nastya { padding: 0 !important; border: none !important; background: #fff !important; }
  .draft-tbl-wrap { overflow: visible !important; border: 1px solid #ccc !important; }
  .draft-tbl { font-size: 11px !important; min-width: auto !important; width: 100% !important; }
  .draft-section-title { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .draft-badge { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  a { color: #333 !important; text-decoration: none !important; }
  .draft-tbl td, .draft-tbl th { padding: 6px 8px !important; }
  body { font-size: 11px; }
  @page { margin: 15mm; size: A4 landscape; }
}

@media(max-width:768px) {
  .sol-strip { position: sticky; top: 60px; z-index: 200; }
  .sol-strip-inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    overflow-x: visible;
    padding: 12px 12px;
  }
  .sol-strip .ssi,
  .ftab,
  .faq-filter-btn {
    font-size: 10px;
    padding: 10px 12px;
    text-align: center;
    justify-content: center;
    white-space: normal;
    line-height: 1.25;
    min-height: 40px;
  }
}

@media(max-width:768px) {
  
  .tbl-wrap table.tbl { display: none; }

  
  .tbl-mobile { display: flex; flex-direction: column; gap: 0; }
  .tbl-mobile-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0;
    border-bottom: 1px solid var(--border);
    padding: 14px 0;
    align-items: start;
  }
  .tbl-mobile-row:first-child { border-top: 1px solid var(--border); }
  .tbl-mobile-btn { padding-right: 14px; }
  .tbl-mobile-btn .dl-btn {
    display: flex; flex-direction: column; align-items: center;
    justify-content: center;
    width: 52px; height: 52px;
    background: var(--red); color: #fff;
    border: none; border-radius: 8px;
    font-size: 9px; font-weight: 800;
    text-transform: uppercase; letter-spacing: .04em;
    cursor: pointer; gap: 4px;
  }
  .tbl-mobile-btn .dl-btn svg { width: 16px; height: 16px; }
  .tbl-mobile-info { display: flex; flex-direction: column; gap: 4px; }
  .tbl-mobile-title { font-size: 13px; font-weight: 700; color: var(--dark); line-height: 1.35; }
  .tbl-mobile-meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 4px; }
  .tbl-mobile-meta .badge { font-size: 9px; }
  .tbl-mobile-meta .doc-valid { font-size: 10px; color: var(--green); font-weight: 600; }
  .tbl-mobile-meta .norm-tag-sm { font-size: 10px; color: var(--muted); }
  .tbl-mobile-meta .date-sm { font-size: 10px; color: #94a3b8; }

  
  .tbl { display: none; }
}
@media(min-width:769px) {
  .tbl-mobile { display: none; }
  .tbl { display: table; }
}

@media(max-width:768px) {
  .filter-bar {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    margin-bottom: 24px;
  }
  .ssi,
  .ftab,
  .faq-filter-btn {
    font-size: 11px !important;
    padding: 11px 12px !important;
    text-align: center;
    white-space: normal;
    line-height: 1.3;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  
  .filter-bar .ftab:first-child,
  .faq-filter-tabs .faq-filter-btn:first-child {
    grid-column: 1 / -1;
  }
  .faq-filter-tabs {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
}

.mobile-bottom-nav {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 997;
  background: rgba(9,13,22,0.97);
  backdrop-filter: blur(14px);
  border-top: 1px solid rgba(255,255,255,0.09);
  padding: 8px 4px calc(8px + env(safe-area-inset-bottom));
}
.mobile-bottom-nav-inner {
  display: flex;
  justify-content: space-around;
  align-items: flex-end;
  max-width: 500px;
  margin: 0 auto;
}
.mbn-item {
  display: flex; flex-direction: column; align-items: center;
  gap: 3px; padding: 4px 10px;
  color: rgba(255,255,255,0.45);
  font-size: 9px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em;
  text-decoration: none;
  transition: color .2s;
  cursor: pointer; border: none; background: none;
  min-width: 52px;
}
.mbn-item svg { width: 20px; height: 20px; }
.mbn-item.active, .mbn-item:hover { color: var(--red); }
.mbn-item.active svg { color: var(--red); }

.mbn-more-tray {
  position: fixed; bottom: 0; left: 0; right: 0;
  background: rgba(9,13,22,0.99);
  backdrop-filter: blur(20px);
  border-top: 1px solid rgba(255,255,255,.1);
  z-index: 999;
  transform: translateY(100%);
  transition: transform .3s cubic-bezier(0.32,0.72,0,1);
  padding: 0 0 calc(80px + env(safe-area-inset-bottom));
  max-height: 70vh;
  overflow-y: auto;
}
.mbn-more-tray.open { transform: translateY(0); }
.mbn-tray-handle {
  width: 36px; height: 4px; background: rgba(255,255,255,.2);
  border-radius: 2px; margin: 14px auto 20px;
}
.mbn-tray-grid {
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 2px; padding: 0 12px;
}
.mbn-tray-item {
  display: flex; flex-direction: column; align-items: center;
  gap: 8px; padding: 16px 8px;
  color: rgba(255,255,255,.7);
  font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em;
  text-decoration: none; text-align: center;
  border-radius: 10px;
  transition: background .15s, color .15s;
  line-height: 1.3;
}
.mbn-tray-item:hover, .mbn-tray-item:active { background: rgba(255,255,255,.07); color: #fff; }
.mbn-tray-item svg { width: 24px; height: 24px; opacity: .7; }
.mbn-tray-item.highlight { color: #f59e0b; }
.mbn-tray-item.highlight svg { color: #f59e0b; }
.mbn-tray-social {
  display: flex; align-items: center; justify-content: center;
  gap: 12px; padding: 18px 16px 4px;
  margin-top: 6px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.mbn-tray-social a {
  display: flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; border-radius: 50%;
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.7);
  transition: all .15s;
}
.mbn-tray-social a svg { width: 24px; height: 24px; }
.mbn-tray-social a[aria-label="ВКонтакте"] svg { width: 30px; height: 30px; }
.mbn-tray-social a:hover, .mbn-tray-social a:active { background: var(--red); color: #fff; }
.mbn-overlay {
  display: none; position: fixed; inset: 0;
  background: rgba(0,0,0,.5); z-index: 998;
}
.mbn-overlay.open { display: block; }

.back-to-top {
  position: fixed;
  right: 28px; bottom: 28px;
  z-index: 500;
  width: 46px; height: 46px;
  border-radius: 50%;
  background: #1a1a2e;
  color: #fff;
  border: none;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(15,23,42,.2);
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s, background .2s;
}
.back-to-top.show { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:hover { background: var(--red); }
@media(max-width:768px) {
  .back-to-top { display: none; }
}

@media(max-width:768px) {
  .mobile-bottom-nav { display: block; }
  
  body { padding-bottom: calc(65px + env(safe-area-inset-bottom)) !important; }
}

@media(min-width:769px) {
  body { padding-bottom: 0 !important; }
}

@media(max-width:768px) {
  #calc .cnt > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  #calc iframe { height: 500px !important; }
}

@media(max-width:768px) {
  .album-card:hover .album-thumb {
    height: 220px; /* +10% */
  }
}

@media(max-width:768px) {
  #calc > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
    height: auto !important;
  }
  #calc div[style*="height:100%"] { height: 500px !important; }
}

@media(max-width:768px) {
  .bim-list[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
}

@media(min-width:901px) { .expert-col-grid { grid-template-columns: repeat(3, 1fr) !important; } }
@media(max-width:900px) and (min-width:601px) { .expert-col-grid { grid-template-columns: repeat(2,1fr) !important; } }
@media(max-width:600px) { .expert-col-grid { grid-template-columns: 1fr !important; } }

#events .cnt > div[style*="grid-template-columns"] { grid-template-columns: repeat(3,1fr) !important; gap: 20px !important; }
@media(max-width:900px) { #events .cnt > div[style*="grid-template-columns"] { grid-template-columns: repeat(2,1fr) !important; } }
@media(max-width:600px) { #events .cnt > div[style*="grid-template-columns"] { grid-template-columns: 1fr !important; } }

.bim-card2 {
  padding: 16px 18px;
  border-radius: 10px;
  cursor: pointer;
  border: 1.5px solid rgba(255,255,255,.07);
  background: rgba(255,255,255,.03);
  transition: all .2s ease;
  position: relative;
  overflow: hidden;
}
.bim-card2::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(56,189,248,.06) 0%, transparent 60%);
  opacity: 0;
  transition: opacity .2s;
}
.bim-card2:hover { border-color: rgba(56,189,248,.35); background: rgba(56,189,248,.05); transform: translateY(-2px); }
.bim-card2:hover::before { opacity: 1; }
.bim-card2.active { border-color: #38bdf8; background: rgba(56,189,248,.08); }
.bim-card2.active::before { opacity: 1; }
.bim-card2.active::after {
  content: '';
  position: absolute;
  top: 12px; right: 12px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #38bdf8;
  box-shadow: 0 0 8px #38bdf8;
}

.bim-card2-label {
  font-size: 10px;
  font-weight: 800;
  color: #38bdf8;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-bottom: 5px;
  font-family: 'Fira Code', monospace;
}
.bim-card2-title {
  font-weight: 700;
  font-size: 14px;
  color: #e2eef8;
  line-height: 1.35;
  margin-bottom: 10px;
}
.bim-card2-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid rgba(255,255,255,.06);
  padding-top: 8px;
}
.bim-card2-list li {
  font-size: 12px;
  color: rgba(148, 178, 200, .7);
  padding: 3px 0;
  padding-left: 10px;
  position: relative;
  line-height: 1.5;
  border-bottom: 1px solid rgba(255,255,255,.03);
}
.bim-card2-list li::before {
  content: '›';
  position: absolute;
  left: 0;
  color: rgba(56,189,248,.5);
  font-size: 12px;
}
.bim-card2-list li:last-child { border-bottom: none; }

.bim-soon-badge {
  display: inline-block;
  vertical-align: middle;
  font-size: 11px;
  font-weight: 800;
  color: #38bdf8;
  background: rgba(56,189,248,.12);
  border: 1px solid rgba(56,189,248,.3);
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 4px 12px;
  border-radius: 20px;
  margin-left: 12px;
}
.bim-cards-frozen-wrap { position: relative; }
.bim-cards-frozen-wrap .bim-frozen {
  cursor: default;
  filter: grayscale(1);
  opacity: .45;
  pointer-events: none;
}
.bim-cards-frozen-wrap .bim-frozen:hover { transform: none; }
.bim-cards-soon-tag {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  z-index: 5;
  background: rgba(9,13,22,.9);
  border: 1.5px solid rgba(56,189,248,.4);
  color: #38bdf8;
  font-weight: 800;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: .1em;
  padding: 10px 28px;
  border-radius: 8px;
  backdrop-filter: blur(6px);
  pointer-events: none;
}
/* Full BIM block freeze (preview + cards + CTAs) */
.bim-all-frozen .bim-preview-frozen {
  pointer-events: none;
  user-select: none;
}
.bim-section.bim-locked a[href] {
  pointer-events: none;
}

@media(max-width:900px) {
  .bim-section .cnt > div[style*="grid-template-columns:280px"] {
    grid-template-columns: 1fr !important;
  }
  .bim-section .cnt > div > div[style*="position:sticky"] {
    position: static !important;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
}
@media(max-width:600px) {
  .bim-section .cnt > div > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
}

.calc-side { background: #f1f5f9; }
.calc-side-icon { background: #e2e8f0; }
.calc-side-title { color: #475569; }

.album-dl-alt { background: #f1f5f9; }

#draft-nastya { background: #fffbf0; border-top: 3px solid #f59e0b; }
.draft-section { margin-bottom: 40px; }
.draft-section-title { font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: #b45309; background: #fef3c7; border-left: 4px solid #f59e0b; padding: 8px 16px; border-radius: 0 6px 6px 0; margin-bottom: 0; }
.draft-tbl { width: 100%; border-collapse: collapse; font-size: 14px; }
.draft-tbl thead th { background: #f8fafc; color: #64748b; font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; padding: 10px 12px; text-align: left; border-bottom: 2px solid #e2e8f0; }
.draft-tbl tbody tr { border-bottom: 1px solid #f1f5f9; }
.draft-tbl tbody tr:hover { background: #fffbeb; }
.draft-tbl tbody td { padding: 10px 12px; vertical-align: top; color: #334155; line-height: 1.5; }
.draft-tbl .prod-name { font-weight: 700; color: #1c1917; }
.draft-tbl .cert-num { font-family: 'Fira Code', monospace; font-size: 12px; color: #b45309; }
.draft-tbl .cert-date { font-size: 12px; color: #64748b; white-space: nowrap; }
.draft-tbl .note { font-size: 12px; color: #78716c; font-style: italic; }
.draft-badge { display: inline-block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: 2px 8px; border-radius: 3px; white-space: nowrap; }
.draft-badge.red { background: #fee2e2; color: #b91c1c; }
.draft-badge.blue { background: #dbeafe; color: #1d4ed8; }
.draft-badge.green { background: #dcfce7; color: #15803d; }
.draft-badge.gray { background: #f1f5f9; color: #64748b; }
.draft-tbl-wrap { overflow-x: auto; border: 1.5px solid #e2e8f0; border-radius: 10px; margin-bottom: 4px; }

html { scroll-padding-top: 88px; }

.calc-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.calc-card {
  display: flex; flex-direction: row; align-items: stretch;
  background: #182533;
  border: 1.5px solid transparent;
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.calc-card:hover { transform: translateY(-3px); }
.calc-card-1 { border-color: rgba(56,189,248,.25); }
.calc-card-2 { border-color: rgba(251,146,60,.25); }
.calc-card-1:hover { border-color: #38bdf8; box-shadow: 0 12px 32px rgba(56,189,248,.12); }
.calc-card-2:hover { border-color: #fb923c; box-shadow: 0 12px 32px rgba(251,146,60,.12); }
.calc-card-body { display: flex; flex-direction: column; flex: 1; min-width: 0; padding: 28px; }
.calc-card-img {
  width: 150px; height: 150px; flex-shrink: 0;
  margin: 16px 16px 16px 0;
  border-radius: 10px;
  overflow: hidden;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
}
.calc-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.calc-card:hover .calc-card-img img { transform: scale(1.06); }
.calc-card-num { font-family:'Fira Code',monospace; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.4); margin-bottom: 8px; }
.calc-card-title { font-size: 18px; font-weight: 800; color: #fff; line-height: 1.3; margin-bottom: 10px; }
.calc-card-desc { font-size: 13px; color: rgba(255,255,255,.55); line-height: 1.6; margin-bottom: 20px; flex: 1; }
.calc-card-cta {
  display: inline-flex; align-items: center; gap: 8px;
  font-family:'Fira Code',monospace; font-size: 12.5px; font-weight: 700;
  padding: 10px 16px; border-radius: 6px;
  background: rgba(255,255,255,.08); color: #fff; width: fit-content;
}
.calc-card-1 .calc-card-cta { color: #38bdf8; }
.calc-card-2 .calc-card-cta { color: #fb923c; }

@media(max-width:768px) {
  #calc > div[style*="padding:0 40px"] { padding: 0 16px !important; }
  #calc { padding: 48px 0 !important; }
  .calc-cards { grid-template-columns: 1fr; }
  .calc-card-img { width: 120px; margin: 12px 12px 12px 0; }
  .calc-card-body { padding: 20px; }
}
@media(max-width:420px) {
  .calc-card { flex-direction: column; }
  .calc-card-img { width: auto; aspect-ratio: 16/9; margin: 0; border-radius: 0; border: none; border-bottom: 1px solid rgba(255,255,255,.08); order: -1; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-bg-image img,
  .hero-grid-lines,
  .bim-section::before,
  .modul-section::before,
  .modul-section img { animation: none !important; }
  html, body { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

.works-trust {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 40px;
  padding-top: 40px;
  border-top: 1.5px solid var(--border);
}
.works-trust-item { display: flex; gap: 14px; align-items: flex-start; }
.works-trust-item svg { color: var(--red); flex-shrink: 0; margin-top: 2px; }
.works-trust-title { font-size: 14px; font-weight: 800; color: var(--dark); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 8px; }
.works-trust-desc { font-size: 13px; color: var(--muted); line-height: 1.6; }

.works-top { display: grid; grid-template-columns: 340px 1fr; gap: 48px; align-items: start; margin-bottom: 48px; }
.works-top-photo {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  border: 1.5px solid var(--border);
  background: #f1f5f9;
}
.works-top-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.works-top-photo-badge {
  position: absolute; left: 16px; right: 16px; bottom: 16px;
  background: rgba(9,13,22,.78); backdrop-filter: blur(6px);
  color: #fff; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
  padding: 10px 14px; border-radius: 8px; text-align: center;
}
.works-top-text .stitle { margin-top: 10px; }
.works-trust-stack { grid-template-columns: 1fr; gap: 22px; margin-top: 28px; padding-top: 28px; }

@media(max-width:900px) {
  .works-trust { grid-template-columns: 1fr; gap: 28px; }
  .works-top { grid-template-columns: 1fr; gap: 28px; }
  .works-top-photo { aspect-ratio: 16 / 10; max-width: 420px; margin: 0 auto; }
}

/* === Mini action buttons on solution cards (Калькулятор / есть DWG) === */
.sol-card-actions{position:absolute;top:14px;right:14px;display:flex;flex-direction:column;gap:8px;z-index:3;align-items:flex-end;}
.sol-mini-btn{display:flex;align-items:center;gap:7px;padding:10px 16px;border-radius:22px;text-decoration:none;transition:all .2s;border:none;box-shadow:0 3px 10px rgba(15,23,42,.15);font-size:12px;font-weight:700;white-space:nowrap;}
.sol-mini-calc{background:#fff;color:var(--dark);border:1.5px solid var(--border);}
.sol-mini-calc:hover{background:var(--dark);color:#fff;border-color:var(--dark);transform:translateY(-1px);}
.sol-mini-dwg{background:#fff;color:var(--dark);border:1.5px solid var(--border);}
.sol-mini-dwg:hover{background:var(--dark);color:#fff;border-color:var(--dark);transform:translateY(-1px);}
.sol-card{position:relative;} /* ensure absolute actions work */
@media(max-width:768px){
  .sol-card-actions{top:10px;right:10px;gap:6px;}
  .sol-mini-btn{padding:7px 12px;font-size:11px;}
}
/* Переопределение переменных темы */
[data-theme="dark"] {
  --bg: #090d16;
  --white: #111827;
  --text: #f3f4f6;
  --muted: #9ca3af;
  --border: #374151;
  --dark: #f9fafb;
  --dark2: #030712;
  
  color-scheme: dark;
}

/* Переключатель темы (Кнопка в шапке) */
.theme-toggle-btn {
  background: transparent;
  border: 1.5px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.8);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 6px;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.theme-toggle-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.3);
}

/* Показ и скрытие иконок в зависимости от темы */
[data-theme="dark"] .theme-toggle-btn .moon-icon {
  display: none;
}
[data-theme="dark"] .theme-toggle-btn .sun-icon {
  display: block;
}
html:not([data-theme="dark"]) .theme-toggle-btn .moon-icon {
  display: block;
}
html:not([data-theme="dark"]) .theme-toggle-btn .sun-icon {
  display: none;
}

@media(min-width: 769px) {
  .theme-toggle-btn {
    margin-left: 0;
  }
}
@media(max-width: 768px) {
  .theme-toggle-btn {
    margin-left: 0;
    margin-right: 0;
  }
}

/* Корректировка жестко прописанных светлых фонов в темной теме */
[data-theme="dark"] body {
  background: var(--bg);
  color: var(--text);
}

[data-theme="dark"] .section-white {
  background: var(--white);
}

[data-theme="dark"] .album-card {
  background: var(--white);
  border-color: var(--border);
}

[data-theme="dark"] .album-thumb {
  background: #1f2937;
  border-bottom-color: var(--border);
}

[data-theme="dark"] .sol-strip {
  background: var(--white);
  border-color: var(--border);
}

[data-theme="dark"] .ssi,
[data-theme="dark"] .ftab,
[data-theme="dark"] .faq-filter-btn {
  background: #111827;
  border-color: var(--border);
  color: var(--muted);
}
[data-theme="dark"] .ssi.on,
[data-theme="dark"] .ftab.on,
[data-theme="dark"] .faq-filter-btn.active {
  background: var(--red) !important;
  border-color: var(--red) !important;
  color: #fff !important;
}

[data-theme="dark"] .sol-card {
  background: #111827;
  border-color: var(--border);
}

[data-theme="dark"] .tbl-wrap {
  border-color: var(--border);
  background: #111827;
}

[data-theme="dark"] .tbl th {
  background: #1f2937;
  color: var(--muted);
  border-bottom-color: var(--border);
}

[data-theme="dark"] .tbl td {
  border-bottom-color: var(--border);
  color: #e5e7eb;
}

[data-theme="dark"] .norm-card {
  background: var(--white);
  border-color: var(--border);
}

[data-theme="dark"] .norm-title {
  color: #f9fafb;
}

[data-theme="dark"] .norm-icon {
  background: linear-gradient(135deg, #111827, #1f2937);
  border-color: rgba(255, 255, 255, 0.05);
}

[data-theme="dark"] .cert-card {
  background: var(--white);
  border-color: var(--border);
}

[data-theme="dark"] .cert-icon {
  background: #1f2937;
  border-color: var(--border);
}

[data-theme="dark"] .cert-group {
  background: var(--white);
  border-color: var(--border);
}

[data-theme="dark"] .cert-group-header:hover,
[data-theme="dark"] .cert-group.open .cert-group-header {
  background: #1f2937;
}

[data-theme="dark"] .cert-group-icon {
  background: #1f2937;
}

[data-theme="dark"] .cert-doc-row {
  border-bottom-color: var(--border);
  color: #f9fafb;
}

[data-theme="dark"] .cert-doc-row:hover {
  background: rgba(227, 6, 19, 0.08);
}

[data-theme="dark"] .cert-docs-panel {
  border-top-color: var(--border);
}

[data-theme="dark"] .cert-docs-panel .cert-doc-row {
  border-bottom-color: var(--border);
}

[data-theme="dark"] .faq-search-box {
  background: var(--white);
  border-color: var(--border);
}

[data-theme="dark"] .faq-search-box input {
  color: var(--text);
}

[data-theme="dark"] .faq-filter-btn {
  background: var(--white);
  border-color: var(--border);
}

[data-theme="dark"] .faq-acc-item {
  background: var(--white);
  border-color: var(--border);
}

[data-theme="dark"] .faq-acc-arrow {
  background: #1f2937;
}

[data-theme="dark"] .faq-acc-item.open {
  border-color: var(--red);
}

[data-theme="dark"] .faq-acc-a-in {
  border-top-color: var(--border);
}

[data-theme="dark"] .modal-win {
  background: #111827;
  border: 1.5px solid var(--border);
  color: #fff;
}

[data-theme="dark"] .modal-win h3, 
[data-theme="dark"] .modal-win h4 {
  color: #fff;
}

[data-theme="dark"] .modal-win p {
  color: var(--muted);
}

[data-theme="dark"] .mf-input {
  background: #1f2937;
  border: 1px solid var(--border);
  color: #fff;
}

[data-theme="dark"] .ftab {
  background: var(--white);
  border-color: var(--border);
  color: var(--muted);
}

[data-theme="dark"] .ftab:hover {
  background: #1f2937;
  border-color: #4b5563;
}

[data-theme="dark"] .footer {
  background: #090d16;
  border-top-color: var(--border);
}

[data-theme="dark"] #draft-nastya {
  background: #1c1917;
  border-top-color: #f59e0b;
}

[data-theme="dark"] .draft-section-title {
  background: #2d2a25;
  color: #fbbf24;
  border-left-color: #fbbf24;
}

[data-theme="dark"] .draft-tbl thead th {
  background: #111827;
  color: var(--muted);
  border-bottom-color: var(--border);
}

[data-theme="dark"] .draft-tbl tbody tr {
  border-bottom-color: var(--border);
}

[data-theme="dark"] .draft-tbl tbody tr:hover {
  background: #2d2a25;
}

[data-theme="dark"] .draft-tbl tbody td {
  color: #e5e7eb;
}

[data-theme="dark"] .draft-tbl .prod-name {
  color: #fff;
}

[data-theme="dark"] .draft-tbl-wrap {
  border-color: var(--border);
}

[data-theme="dark"] .tbl-mobile-row {
  border-bottom-color: var(--border);
}

[data-theme="dark"] .tbl-mobile-row:first-child {
  border-top-color: var(--border);
}

[data-theme="dark"] .tbl-mobile-title {
  color: #f9fafb;
}

/* Кастомизация скроллбаров под темный интерфейс */
[data-theme="dark"] ::-webkit-scrollbar-track {
  background: #111827;
}
[data-theme="dark"] ::-webkit-scrollbar-thumb {
  background: #374151;
}\n/* === End merged dark-theme === */

/* ===== Enhanced dark theme fixes (full coverage) ===== */
[data-theme="dark"] html,
[data-theme="dark"] body {
  background: var(--bg) !important;
  color: var(--text) !important;
}
[data-theme="dark"] .section-white,
[data-theme="dark"] .section-bg {
  background: var(--white) !important;
}
[data-theme="dark"] .hero {
  background: #05070a !important;
}
[data-theme="dark"] .sol-card {
  background: #111827 !important;
  border-color: var(--border) !important;
}
[data-theme="dark"] .sol-card-title,
[data-theme="dark"] .stitle,
[data-theme="dark"] .sol-card-label {
  color: #f9fafb !important;
}
[data-theme="dark"] .sol-card-desc,
[data-theme="dark"] .sdesc,
[data-theme="dark"] .muted {
  color: var(--muted) !important;
}
[data-theme="dark"] .album-card,
[data-theme="dark"] .cert-card,
[data-theme="dark"] .norm-card,
[data-theme="dark"] .faq-acc-item,
[data-theme="dark"] .expert-card {
  background: #111827 !important;
  border-color: var(--border) !important;
}
[data-theme="dark"] .album-thumb {
  background: #1f2937 !important;
  border-bottom-color: var(--border) !important;
}
[data-theme="dark"] .tbl-wrap,
[data-theme="dark"] .tbl th {
  background: #1f2937 !important;
  border-color: var(--border) !important;
  color: var(--muted) !important;
}
[data-theme="dark"] .tbl td {
  border-color: var(--border) !important;
  color: #e5e7eb !important;
}
[data-theme="dark"] .ftab {
  background: #111827 !important;
  border-color: var(--border) !important;
  color: var(--muted) !important;
}
[data-theme="dark"] .ftab.on {
  background: var(--red) !important;
  color: #fff !important;
  border-color: var(--red) !important;
}
[data-theme="dark"] .ssi {
  background: #111827 !important;
  color: var(--muted) !important;
  border-color: var(--border) !important;
}
[data-theme="dark"] .ssi.on {
  background: var(--red) !important;
  color: #fff !important;
  border-color: var(--red) !important;
}
[data-theme="dark"] .sol-strip {
  background: #111827 !important;
  border-color: var(--border) !important;
}
[data-theme="dark"] .footer {
  background: #090d16 !important;
  border-top-color: var(--border) !important;
}
[data-theme="dark"] .sol-mini-calc,
[data-theme="dark"] .sol-mini-dwg {
  background: #1f2937 !important;
  color: #f9fafb !important;
  border-color: #374151 !important;
}
[data-theme="dark"] .sol-mini-calc:hover,
[data-theme="dark"] .sol-mini-dwg:hover {
  background: #fff !important;
  color: #090d16 !important;
}
[data-theme="dark"] #site-grid-layer,
[data-theme="dark"] #site-bg-layer {
  background: transparent !important;
}
/* Layout must match light theme: sections full-bleed bg, content stays 1280px */
html[data-theme="dark"] .section {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
html[data-theme="dark"] .cnt {
  max-width: 1280px !important;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
html[data-theme="dark"] .sol-strip-inner,
html[data-theme="dark"] .hero-grid,
html[data-theme="dark"] .footer > div {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}

/* Disabled / «Скоро» CTA (matches light layout, works in dark) */
.btn-soon,
a.btn-soon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 19px 44px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  border-radius: 3px;
  border: 1.5px solid var(--border);
  background: #e5e7eb;
  color: #6b7280 !important;
  cursor: not-allowed;
  pointer-events: none;
  opacity: .9;
  text-decoration: none;
  user-select: none;
}
.btn-soon-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(227, 6, 19, .12);
  color: var(--red);
  border: 1px solid rgba(227, 6, 19, .25);
}
html[data-theme="dark"] .btn-soon,
html[data-theme="dark"] a.btn-soon {
  background: #1f2937;
  border-color: #374151;
  color: #9ca3af !important;
}
html[data-theme="dark"] .btn-soon-badge {
  background: rgba(227, 6, 19, .18);
  color: #fca5a5;
  border-color: rgba(227, 6, 19, .35);
}
