:root {
  --header-h: 79px; /* уточняется из JS по реальной высоте шапки */
  --marquee-h: 0px;  /* высота бегущей строки в низу первого экрана — тоже из JS */
  --color-primary: #2563eb;
  --color-text: #0f172a;
  --color-text-light: #e5e7eb;
  --shadow-soft: 0 18px 40px rgba(15,23,42,0.15);
  --shadow-card: 0 12px 24px rgba(15,23,42,0.1);
  --transition-fast: 0.25s ease;
  --accent-gradient: linear-gradient(135deg,#60a5fa 0%,#818cf8 60%,#c4b5fd 100%);
  /* цвета значка-логотипа: серебро #c0c0c0, голубая лента #40a0d0–#50b0e0, стальная #306090 */
  --logo-gradient: linear-gradient(100deg,#d3dbe1 0%,#5ab4e2 34%,#3f9dd0 62%,#3a7fae 100%);
  color-scheme: dark;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--color-text);
  background:linear-gradient(135deg,#0b1120 0%,#020617 40%,#111827 100%);
  -webkit-font-smoothing:antialiased;
}
.container{width:100%;max-width:1120px;margin:0 auto;padding:0 20px}
.section{padding:80px 0}
.section-light{background:radial-gradient(circle at top left,#ffffff 0%,#e5e7eb 100%);color:#020617}
.section-dark{background:radial-gradient(circle at top right,#111827 0%,#020617 100%);color:var(--color-text-light)}
.section-title{font-size:32px;margin:0 0 16px}
.section-subtitle{margin:0 0 32px;max-width:720px;color:rgba(15,23,42,0.7)}
.section-dark .section-subtitle{color:rgba(226,232,240,0.7)}
/* Без backdrop-filter: шапка лежит над 3D-сценой, и размытие пересчитывалось бы на каждом её кадре */
.site-header{position:sticky;top:0;z-index:50;background:rgba(13,20,38,0.97);border-bottom:1px solid rgba(148,163,184,0.25)}
/* тонкая шапка: ~54px вместо 79px */
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:9px 20px}
.logo{display:flex;align-items:flex-end;gap:10px;color:#e5e7eb;text-decoration:none}
/* vector-mark.png — только значок «V» без пустых полей (обрезан из vector-logo-B1Wfob5Y.png) */
.logo img{height:22px;width:auto;display:block}
.logo-mark{width:36px;height:36px;border-radius:10px;background:radial-gradient(circle at 30% 30%,#38bdf8,#2563eb 60%,#1e293b 100%);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;box-shadow:0 8px 20px rgba(37,99,235,0.55)}
/* Подпись — по размеру и цвету как значок «V».
   Размер: высота заглавных (О, В) = высоте значка (22px; значок теперь обрезан без полей).
   font-size 28.7px ≈ высота заглавных 22px у системных шрифтов (коэффициент ~0,766).
   Низ заглавных — вровень с низом значка: базовая линия лежит выше низа строки на ~0,147 font-size,
   отсюда отрицательный margin-bottom (подобрано замером tools/logo-check.mjs).
   Цвет: перелив как у ленты значка — серебряный кончик → голубая лента → стальная. */
.logo-text{
  font-size:28.7px;font-weight:700;letter-spacing:-0.02em;line-height:1;white-space:nowrap;
  margin-bottom:-4.2px;
  background:var(--logo-gradient);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.main-nav{display:flex;align-items:center;gap:20px}
.main-nav a{color:#cbd5f5;text-decoration:none;font-size:14px;transition:color var(--transition-fast)}
.main-nav a:hover{color:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:999px;border:1px solid transparent;cursor:pointer;font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap;transition:background-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}
.btn-primary{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#f9fafb;box-shadow:0 12px 30px rgba(37,99,235,0.6)}
.btn-primary:hover{box-shadow:0 18px 40px rgba(37,99,235,0.8);transform:translateY(-1px)}
.btn-secondary{background:rgba(15,23,42,0.85);color:#e5e7eb;border-color:rgba(148,163,184,0.6)}
.btn-secondary:hover{background:rgba(15,23,42,1);border-color:#e5e7eb}
.btn-full{width:100%}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:32px}
.service-card{background:rgba(255,255,255,0.98);border-radius:18px;padding:24px 20px 20px;box-shadow:var(--shadow-card);border:1px solid rgba(148,163,184,0.2)}
.service-card h3{margin:0 0 10px;font-size:18px;color:#0f172a}
.service-card p{margin:0 0 12px;font-size:14px;color:rgba(15,23,42,0.8)}
.service-card ul{list-style:none;padding:0;margin:0;font-size:13px}
.service-card li{position:relative;padding-left:14px;margin-bottom:6px;color:rgba(15,23,42,0.85)}
.service-card li::before{content:"\2022";position:absolute;left:0;color:#2563eb}
.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:32px}
.project-card{background:rgba(15,23,42,0.85);border-radius:20px;overflow:hidden;border:1px solid rgba(148,163,184,0.3);box-shadow:var(--shadow-card);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}
.project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft)}
.project-image{min-height:160px;border-radius:0;border:none;box-shadow:none}
.project-body{padding:18px}
.project-body h3{margin:0 0 6px;font-size:18px;color:#f9fafb}
.project-meta{margin:0 0 10px;font-size:12px;color:#94a3b8}
.project-body p{margin:0;font-size:14px;color:#cbd5f5}
.about-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1.3fr);gap:40px;align-items:center}
.about-text p{font-size:14px;margin:0 0 10px;color:rgba(15,23,42,0.8)}
.about-list{list-style:none;padding:0;margin:16px 0 0;font-size:14px;color:rgba(15,23,42,0.85)}
.about-list li{margin-bottom:8px;padding-left:16px;position:relative}
.about-list li::before{content:"\2192";position:absolute;left:0;color:#2563eb;font-size:12px}
.about-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fact-card{background:#020617;color:#e5e7eb;border-radius:18px;padding:20px 16px;box-shadow:var(--shadow-soft);border:1px solid rgba(37,99,235,0.25)}
.fact-number{display:block;font-size:26px;font-weight:700;color:#60a5fa}
.fact-label{font-size:13px;color:#94a3b8}
.contacts-grid{display:grid;grid-template-columns:minmax(0,720px);gap:32px;align-items:flex-start}
.contacts-info p{font-size:14px;color:#cbd5f5;margin:0 0 16px}
.contacts-list{list-style:none;padding:0;margin:0;font-size:14px;color:#e5e7eb}
.contacts-list li{margin-bottom:8px}
.contacts-list a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(96,165,250,0.4);transition:color var(--transition-fast),border-color var(--transition-fast)}
.contacts-list a:hover{color:#93c5fd;border-color:#93c5fd}
.site-footer{background:#020617;color:#6b7280;font-size:12px;border-top:1px solid #1f2937}
.footer-inner{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:16px 20px}
@media(max-width:960px){
  .services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .projects-grid{grid-template-columns:minmax(0,1fr)}
  .about-grid,.contacts-grid{grid-template-columns:minmax(0,1fr)}
  .main-nav{display:none}
}
@media(max-width:640px){
  .section{padding:56px 0}
  .services-grid{grid-template-columns:minmax(0,1fr)}
  .about-facts{grid-template-columns:minmax(0,1fr)}
  .section-title{font-size:26px}
}


/* ============================================================
   HERO: 3D-сцена Корпуса 4В
   Ни .hero-scroll-wrapper, ни .hero-sticky не должны иметь
   overflow:hidden/auto — иначе position:sticky перестаёт работать.
   ============================================================ */
.hero-scroll-wrapper{ height:320vh; position:relative; }
/* Шапка sticky и занимает первые --header-h пикселей потока — вычитаем её,
   иначе центр первого экрана уезжает вниз на высоту шапки. */
.hero-sticky{
  position:sticky; top:var(--header-h);
  height:calc(100dvh - var(--header-h));
  overflow:clip;
  background:
    radial-gradient(ellipse 70% 60% at 70% 55%, rgba(37,99,235,0.22), transparent 70%),
    radial-gradient(circle at 0% 0%, rgba(37,99,235,0.18), transparent 45%),
    linear-gradient(135deg,#0b1120 0%,#020617 45%,#0a1428 100%);
}
/* Бегущая строка лежит в низу первого экрана: сцена, текст и панель этапа — над ней */
.hero-visual{ position:absolute; inset:0 0 var(--marquee-h) 0; }
.hero-canvas{ position:absolute; inset:0; width:100%; height:100%; display:block; opacity:0; transition:opacity 1.2s ease; }
.hero-visual.is-3d .hero-canvas{ opacity:1; }
.hero-fallback{
  position:absolute; right:6%; top:50%; transform:translateY(-50%);
  width:min(42vw,560px); height:auto; transition:opacity .8s ease;
}
.hero-visual.is-3d .hero-fallback{ opacity:0; pointer-events:none; }
/* затемнение слева, чтобы текст читался поверх сцены */
.hero-visual::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(90deg, rgba(2,6,23,0.92) 0%, rgba(2,6,23,0.55) 32%, transparent 58%),
             linear-gradient(0deg, rgba(2,6,23,0.8) 0%, transparent 22%);
}

/* Текст первого экрана невидим, пока скрипт не начал его проявлять (класс ставится в <head>,
   снимается в app.js в момент старта анимации). Если скрипт не загрузился — через 3 с текст
   показывается сам (страховочная анимация), чтобы страница не осталась пустой. */
.intro-pending .hero-content,
.intro-pending .hero-hud__inner{ visibility:hidden; animation:intro-failsafe 0s 3s forwards; }
@keyframes intro-failsafe{ to{ visibility:visible; } }

.hero{ position:relative; z-index:1; height:calc(100% - var(--marquee-h)); display:flex; align-items:center; color:#e5e7eb; pointer-events:none; }
.hero-content{ max-width:640px; pointer-events:auto; }
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  margin:0 0 18px; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:#93b4ff;
}
.hero-eyebrow::before{ content:""; width:28px; height:1px; background:currentColor; }
.hero-content h1{ font-size:clamp(32px,3.6vw,54px); line-height:1.05; letter-spacing:-0.02em; margin:0 0 22px; }
.hero-title-line{ display:block; }
/* «Проектирование BIM + ИИ» и «Управление проектами» — в две строки, «Строительство» — в одну;
   место под две строки держим всегда, чтобы текст ниже не прыгал при смене слова */
.hero-rotator{ display:inline-block; min-height:2.1em; }
.hero-rotator__word{
  display:inline-block;
  background:var(--accent-gradient);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  will-change:transform,opacity,filter;
}
.hero-lead{ margin:0 0 22px; font-size:16px; line-height:1.6; color:#cbd5f5; max-width:520px; }
.hero-highlights{ list-style:none; padding:0; margin:0 0 28px; display:flex; flex-wrap:wrap; gap:10px; font-size:13px; }
.hero-highlights li{
  padding:7px 13px; border-radius:999px; color:#e5e7eb;
  background:rgba(15,23,42,0.82); border:1px solid rgba(148,163,184,0.35);   /* без размытия — лежит над 3D */
}

/* Панель этапа стройки */
.hero-hud{ position:absolute; left:0; right:0; bottom:calc(var(--marquee-h) + 22px); z-index:2; pointer-events:none; }
.hero-hud__inner{ display:flex; align-items:flex-end; gap:40px; }
.hero-hud__label{ display:block; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#64748b; margin-bottom:6px; }
.hero-hud__num{ color:#93b4ff; }
.hero-hud__value{ display:block; font-size:14px; color:#e2e8f0; }
.hero-hud__stage{ min-width:220px; }
.hero-hud__bar{ display:block; margin-top:10px; height:2px; background:rgba(148,163,184,0.2); border-radius:2px; overflow:hidden; }
.hero-hud__fill{ display:block; height:100%; background:linear-gradient(90deg,#3b82f6,#a5b4fc); transform-origin:0 50%; transform:scaleX(0); }
.hero-hud__hint{ margin-left:auto; font-size:12px; color:#64748b; display:flex; align-items:center; gap:10px; }
.hero-hud__hint::after{
  content:""; width:1px; height:28px; background:linear-gradient(#64748b,transparent);
  animation:hint-drop 1.8s ease-in-out infinite;
}
@keyframes hint-drop{ 0%{transform:scaleY(0);transform-origin:top} 50%{transform:scaleY(1);transform-origin:top} 51%{transform-origin:bottom} 100%{transform:scaleY(0);transform-origin:bottom} }

/* На узких экранах hero обычный, без «прилипания»: сцена — под текстом */
@media(max-width:960px){
  .hero-scroll-wrapper{ height:auto; }
  .hero-sticky{ position:static; height:auto; display:flex; flex-direction:column; }
  .hero{ order:0; height:auto; padding:44px 0 8px; }
  .hero-visual{ order:1; position:relative; inset:auto; height:min(78vw,460px); }
  .hero-visual::after{ background:linear-gradient(0deg, rgba(2,6,23,0.7) 0%, transparent 25%), linear-gradient(180deg, rgba(2,6,23,0.9) 0%, transparent 18%); }
  .hero-fallback{ right:50%; transform:translate(50%,-50%); width:min(80vw,420px); }
  .hero-hud{ order:2; position:relative; bottom:auto; padding:6px 0 32px; }
  .hero{ height:auto; }
  .hero-hud__inner{ gap:24px; }
  .hero-hud__hint{ display:none; }
}
@media(max-width:640px){
  .hero-hud__object{ display:none; }
  .hero-hud__stage{ flex:1; }
}

/* ============ Бегущая строка ============ */
.marquee{
  overflow:hidden; border-block:1px solid rgba(148,163,184,0.15);
  background:#030a1c; padding:11px 0;
  position:absolute; left:0; right:0; bottom:0; z-index:2;
}
.marquee__track{ display:flex; width:max-content; }
.marquee__track span{
  font-size:clamp(18px,1.8vw,26px); font-weight:600; letter-spacing:-0.01em; white-space:nowrap;
  color:transparent; -webkit-text-stroke:1px rgba(148,180,255,0.45);
  padding:0 28px; display:inline-flex; align-items:center; gap:56px;
}
.marquee__track span::after{ content:"◆"; font-size:.4em; color:#3b82f6; -webkit-text-stroke:0; }
/* на узких экранах первый экран не «прилипает» — строка обычным блоком после панели этапа */
@media(max-width:960px){
  .marquee{ order:3; position:static; }
}

/* Секция услуг лежит на тёмном фоне страницы — заголовок светлый */
#services .section-title{ color:#f1f5f9; }
#services .section-subtitle{ color:rgba(226,232,240,0.7); }
.section-title{ letter-spacing:-0.01em; }
.services-grid{ perspective:1200px; }

/* ============ Заглушки проектов ============ */
.project-placeholder{
  position:relative; min-height:240px; display:flex; align-items:flex-end; justify-content:space-between;
  padding:20px; overflow:hidden;
  background-color:#07112a;
  background-image:
    linear-gradient(rgba(96,165,250,0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(96,165,250,0.09) 1px, transparent 1px),
    radial-gradient(circle at 30% 20%, rgba(59,130,246,0.25), transparent 60%);
  background-size:32px 32px, 32px 32px, 100% 100%;
}
.project-placeholder__num{
  position:absolute; top:12px; left:20px;
  font-size:84px; font-weight:700; line-height:1; letter-spacing:-0.04em;
  color:transparent; -webkit-text-stroke:1px rgba(148,180,255,0.35);
}
.project-placeholder__tag{
  font-size:12px; color:#94a3b8; padding:6px 12px; border-radius:999px;
  background:rgba(2,6,23,0.7); border:1px dashed rgba(148,163,184,0.4);
}

/* ============ Подсветка карточек под курсором ============ */
.service-card,.project-card,.fact-card{ position:relative; isolation:isolate; }
.service-card::after,.project-card::after,.fact-card::after{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; z-index:-1;
  opacity:0; transition:opacity .35s ease;
  background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%), rgba(59,130,246,0.18), transparent 60%);
}
.project-card::after,.fact-card::after{ z-index:1; }
.service-card:hover::after,.project-card:hover::after,.fact-card:hover::after{ opacity:1; }
.service-card{ transition:transform .35s ease, box-shadow .35s ease; }
.service-card:hover{ transform:translateY(-4px); box-shadow:0 22px 50px rgba(37,99,235,0.25); }
.fact-number{ font-variant-numeric:tabular-nums; }

@media(prefers-reduced-motion:reduce){
  .hero-hud__hint::after{ animation:none; }
  .hero-canvas,.hero-fallback{ transition:none; }
}

/* ============ Переключатель темы ============ */
.header-actions{ display:flex; align-items:center; gap:14px; }
.theme-toggle{
  width:34px; height:34px; border-radius:50%; display:grid; place-items:center; cursor:pointer;
  background:rgba(148,163,184,0.1); border:1px solid rgba(148,163,184,0.35); color:#e2e8f0;
  transition:background-color var(--transition-fast), border-color var(--transition-fast), transform .4s ease;
}
.theme-toggle:hover{ background:rgba(148,163,184,0.2); transform:rotate(-20deg); }
.theme-toggle:focus-visible{ outline:2px solid #60a5fa; outline-offset:3px; }
.theme-toggle svg{ grid-area:1/1; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;
  transition:opacity .3s ease, transform .4s ease; }
/* в тёмной теме показываем солнце (переключит на светлую), в светлой — луну */
.theme-toggle__moon{ opacity:0; transform:rotate(-60deg) scale(.6); }
[data-theme="light"] .theme-toggle__sun{ opacity:0; transform:rotate(60deg) scale(.6); }
[data-theme="light"] .theme-toggle__moon{ opacity:1; transform:none; fill:currentColor; stroke:none; }

/* Смена темы — круг от кнопки (анимацию задаёт JS), стандартный кроссфейд отключаем */
::view-transition-old(root),::view-transition-new(root){ animation:none; mix-blend-mode:normal; }

/* ============================================================
   СВЕТЛАЯ ТЕМА — поверх тёмной (тёмная остаётся основной)
   ============================================================ */
[data-theme="light"]{
  color-scheme: light;
  --accent-gradient: linear-gradient(135deg,#2563eb 0%,#4f46e5 60%,#7c3aed 100%);
  /* на белом серебро не видно — только голубая и стальная ленты значка */
  --logo-gradient: linear-gradient(100deg,#3fa3d8 0%,#3589bd 50%,#2c6a93 100%);
  --shadow-soft: 0 18px 40px rgba(15,23,42,0.08);
  --shadow-card: 0 10px 24px rgba(15,23,42,0.06);
}
[data-theme="light"] body{ background:#f4f7fc; color:#0f172a; }
[data-theme="light"] .site-header{ background:rgba(255,255,255,0.97); border-bottom-color:rgba(15,23,42,0.08); }
[data-theme="light"] .main-nav a{ color:#334155; }
[data-theme="light"] .main-nav a:hover{ color:#0f172a; }
[data-theme="light"] .theme-toggle{ background:#fff; border-color:rgba(15,23,42,0.14); color:#1e293b; }
[data-theme="light"] .theme-toggle:hover{ background:#eef2ff; }
[data-theme="light"] .btn-primary{ box-shadow:0 10px 24px rgba(37,99,235,0.3); }
[data-theme="light"] .btn-secondary{ background:#fff; color:#0f172a; border-color:rgba(15,23,42,0.18); }
[data-theme="light"] .btn-secondary:hover{ border-color:#2563eb; }

/* первый экран */
[data-theme="light"] .hero-sticky{
  background:
    radial-gradient(ellipse 70% 60% at 70% 55%, rgba(37,99,235,0.10), transparent 70%),
    radial-gradient(circle at 0% 0%, rgba(99,102,241,0.08), transparent 45%),
    linear-gradient(135deg,#f8fafc 0%,#eef3fb 50%,#e6edf8 100%);
}
[data-theme="light"] .hero-visual::after{
  background:linear-gradient(90deg, rgba(248,250,252,0.95) 0%, rgba(248,250,252,0.6) 32%, transparent 58%),
             linear-gradient(0deg, rgba(238,243,251,0.9) 0%, transparent 22%);
}
[data-theme="light"] .hero{ color:#0f172a; }
[data-theme="light"] .hero-eyebrow{ color:#2563eb; }
[data-theme="light"] .hero-lead{ color:#334155; }
[data-theme="light"] .hero-highlights li{ background:rgba(255,255,255,0.9); border-color:rgba(15,23,42,0.12); color:#1e293b; }
[data-theme="light"] .hero-hud__label{ color:#64748b; }
[data-theme="light"] .hero-hud__num{ color:#2563eb; }
[data-theme="light"] .hero-hud__value{ color:#0f172a; }
[data-theme="light"] .hero-hud__bar{ background:rgba(15,23,42,0.1); }
[data-theme="light"] .hero-hud__hint{ color:#64748b; }
@media(max-width:960px){
  [data-theme="light"] .hero-visual::after{
    background:linear-gradient(0deg, rgba(238,243,251,0.8) 0%, transparent 25%), linear-gradient(180deg, rgba(248,250,252,0.9) 0%, transparent 18%);
  }
}

/* бегущая строка */
[data-theme="light"] .marquee{ background:#e9eff9; border-color:rgba(15,23,42,0.08); }
[data-theme="light"] .marquee__track span{ -webkit-text-stroke-color:rgba(37,99,235,0.45); }

/* секции */
[data-theme="light"] #services .section-title,
[data-theme="light"] .section-dark{ color:#0f172a; }
[data-theme="light"] #services .section-subtitle,
[data-theme="light"] .section-dark .section-subtitle{ color:#475569; }
[data-theme="light"] .section-dark{ background:radial-gradient(circle at top right,#ffffff 0%,#eef2f9 100%); }
[data-theme="light"] .section-light{ background:#fff; }
[data-theme="light"] .service-card{ border-color:rgba(15,23,42,0.08); }
[data-theme="light"] .service-card:hover{ box-shadow:0 22px 50px rgba(37,99,235,0.14); }

/* проекты */
[data-theme="light"] .project-card{ background:#fff; border-color:rgba(15,23,42,0.08); }
[data-theme="light"] .project-body h3{ color:#0f172a; }
[data-theme="light"] .project-meta{ color:#64748b; }
[data-theme="light"] .project-body p{ color:#334155; }
[data-theme="light"] .project-placeholder{
  background-color:#e9eff9;
  background-image:
    linear-gradient(rgba(37,99,235,0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(37,99,235,0.09) 1px, transparent 1px),
    radial-gradient(circle at 30% 20%, rgba(99,102,241,0.14), transparent 60%);
}
[data-theme="light"] .project-placeholder__num{ -webkit-text-stroke-color:rgba(37,99,235,0.35); }
[data-theme="light"] .project-placeholder__tag{ background:rgba(255,255,255,0.85); color:#475569; border-color:rgba(15,23,42,0.2); }

/* о компании */
[data-theme="light"] .fact-card{ background:#f4f7fc; color:#0f172a; border-color:rgba(37,99,235,0.15); }
[data-theme="light"] .fact-number{ color:#2563eb; }
[data-theme="light"] .fact-label{ color:#64748b; }

/* контакты */
[data-theme="light"] .contacts-info p{ color:#334155; }
[data-theme="light"] .contacts-list{ color:#0f172a; }
[data-theme="light"] .contacts-list a:hover{ color:#2563eb; border-color:#2563eb; }

[data-theme="light"] .site-footer{ background:#e9eef7; color:#64748b; border-top-color:#d7deea; }
.hero-hud[hidden]{ display:none; }

/* На узких экранах значок и подпись чуть меньше (×0,91), чтобы подпись не упиралась
   в кнопку темы и оставалась ровно по высоте значка */
@media(max-width:640px){
  .logo{ gap:8px; }
  .logo img{ height:20px; }
  .logo-text{ font-size:26.1px; margin-bottom:-5px; }
}
