/* ==========================================================================
   PK VOIR — base.css  ·  V2 «CINEMATIC LUXURY»
   Design tokens, typography, grid, utilities, header, footer, modals, search.
   Palette per design/DESIGN-CONTRACT.md v1.0.
   Rule: on dark/video backgrounds ONLY white text (#FFFFFF / --paper).
   V2: film grain + vignette overlays, extreme type contrast (900 vs 200),
   refined buttons (thin outline + glow + backdrop-blur), slow luxury motion.
   ========================================================================== */

:root{
  /* --- palette (contract) --- */
  --ink:      #070B14;  /* deep space base */
  --ink-2:    #0E1524;  /* panels / layers */
  --amber:    #E8A33D;  /* main accent: invention, warmth, zakroma */
  --amber-hi: #FFD089;  /* highlights */
  --teal:     #2FB8A6;  /* network / cooperation */
  --azure:    #3E7BFA;  /* tech accent: AI-OS */
  --paper:    #F5EFE4;  /* warm white for light sections */
  /* ПРАВИЛО ЗАКАЗЧИКА: на тёмном — только белый. --mute = near-white для
     вторичного текста (хлебные крошки, футер, хинты), контраст на #070B14 ≈ 12:1 */
  --mute:     #EDE6DA;   /* V2 mobile: тёплый near-white (не холодный серый) */

  /* white text on dark (Raman rule) */
  --on-dark:  #FFFFFF;

  /* --- type scale (V2: extremes — display 900 tight, body 200 light) --- */
  --font-display: 'Manrope', system-ui, sans-serif;
  --font-accent:  'Unbounded', 'Manrope', sans-serif;
  --font-body:    'Inter', system-ui, sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, monospace;

  /* V2 hero display: экстремально крупно, но ВСЕ строки должны влезать в фолд
     (приёмка v2: обрезанный заголовок = «дёшево»). */
  --fs-hero: clamp(2.4rem, 6.8vw, 5.8rem);
  --fs-h1: clamp(2.6rem, 6.5vw, 5.6rem);
  --fs-h2: clamp(2rem, 4.6vw, 3.6rem);
  --fs-h3: clamp(1.25rem, 2.2vw, 1.8rem);
  --fs-body: clamp(1rem, 1.15vw, 1.2rem);
  --fs-small: clamp(0.85rem, 0.9vw, 0.95rem);

  /* --- rhythm --- */
  --sp-1: 0.5rem;  --sp-2: 1rem;   --sp-3: 1.5rem;  --sp-4: 2rem;
  --sp-5: 3rem;    --sp-6: 4.5rem; --sp-7: 7rem;
  --maxw: 1240px;
  --gutter: clamp(1rem, 4vw, 2.5rem);
  --radius: 14px;
  --radius-sm: 8px;
  --header-h: 68px;
  --ease: cubic-bezier(.22,.61,.36,1);

  /* --- V2 motion tokens: slow, luxurious --- */
  --ease-lux: cubic-bezier(.16,1,.3,1);   /* brief: единая кривая v2 */
  --dur-fast: .4s;
  --dur-med:  .8s;
  --dur-slow: 1.1s;

  /* --- V2 cinematic layers --- */
  --grain-opacity: .06;
  --grade: contrast(1.05) saturate(1.06);
}

/* ===== reset ===== */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  font-weight:200;                 /* V2: лёгкий премиум-текст */
  font-size:var(--fs-body);
  line-height:1.75;
  letter-spacing:.005em;
  color:var(--on-dark);
  background:var(--ink);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,video,canvas,svg{ display:block; max-width:100%; }
a{ color:var(--amber-hi); text-decoration:none; }
a:hover{ color:var(--amber); }
button{ font:inherit; color:inherit; cursor:pointer; }
ul,ol{ padding:0; margin:0; list-style:none; }
/* V2: экстремальный контраст — заголовки 900 tight-tracking */
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:900;
  line-height:1.02;
  letter-spacing:-0.035em;
  margin:0 0 var(--sp-2);
  text-wrap:balance;
}
h1{ font-size:var(--fs-h1); font-weight:900; }
h2{ font-size:var(--fs-h2); font-weight:900; letter-spacing:-0.03em; }
h3{ font-size:var(--fs-h3); font-weight:800; letter-spacing:-0.02em; }
h4{ font-weight:700; }
p{ margin:0 0 var(--sp-2); }
strong, b{ font-weight:600; }      /* body 200 → b 600 даёт иерархию без «жирного шума» */

/* ===== V2 GLOBAL CINEMATIC LAYERS =====
   Grain + vignette живут на body::before/::after (fixed, pointer-events:none):
   работают на КАЖДОЙ странице без JS, поверх контента, но не мешают кликам. */
body::before{
  content:"";
  position:fixed; inset:-50%;
  z-index:9000; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='1.7' intercept='-0.28'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23g)'/%3E%3C/svg%3E");
  background-size:220px 220px;
  opacity:var(--grain-opacity);
  mix-blend-mode:overlay;
  animation:grainShift 7s steps(6) infinite;
  will-change:transform;
}
@keyframes grainShift{
  0%{transform:translate(0,0)}      16%{transform:translate(-2%,1.5%)}
  33%{transform:translate(1.5%,-2%)} 50%{transform:translate(-1%,-1%)}
  66%{transform:translate(2%,1%)}    83%{transform:translate(-1.5%,2%)}
  100%{transform:translate(0,0)}
}
body::after{
  content:"";
  position:fixed; inset:0;
  z-index:8990; pointer-events:none;
  background:
    radial-gradient(135% 105% at 50% 45%, rgba(0,0,0,0) 62%, rgba(0,0,0,.3) 100%);
}
/* модалки выше grain/vignette — не «в зерне» */
.modal{ z-index:9500; }
/* кино-лётбокс в hero главной (дом-страница включает .has-letterbox) */
.letterbox-bar{
  position:fixed; left:0; right:0; height:clamp(18px,3.2vh,42px);
  background:#020409; z-index:150; pointer-events:none;
  transition:transform 1s var(--ease-lux);
}
.letterbox-bar.top{ top:0; transform:translateY(-100%); }
.letterbox-bar.bottom{ bottom:0; transform:translateY(100%); }
.has-letterbox .letterbox-bar.top{ transform:translateY(0); }
.has-letterbox .letterbox-bar.bottom{ transform:translateY(0); }
@media (prefers-reduced-motion: reduce){
  body::before{ animation:none; }
}
@media (max-width:640px){
  body::before{ opacity:.05; }
}

/* ===== utilities ===== */
.wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); width:100%; }
.mono{ font-family:var(--font-mono); }

/* ПРАВИЛО ЗАКАЗЧИКА: на тёмном фоне/видео — ТОЛЬКО белый текст.
   V2: бейдж — не «моно-плашка с рамкой» (v1-дёшево), а воздушный
   надзаголовок: белый лёгкий текст, широкий трекинг, короткая янтарная черта. */
.tag{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--font-body); font-size:0.72rem; font-weight:400;
  letter-spacing:0.28em; text-transform:uppercase; color:#FFFFFF;
  padding:0; border:0; background:none; border-radius:0;
  text-shadow:0 1px 3px rgba(0,0,0,.9);
}
.tag::before{
  content:""; width:26px; height:1px; flex:0 0 auto;
  background:linear-gradient(90deg, var(--amber), rgba(232,163,61,.15));
  box-shadow:0 0 8px rgba(232,163,61,.55);
}
/* варианты — алиасы единого янтарного стиля (цвет дисциплины: только amber) */
.tag.teal::before, .tag.azure::before{
  background:linear-gradient(90deg, var(--amber), rgba(232,163,61,.15));
  box-shadow:0 0 8px rgba(232,163,61,.55);
}

/* Юр-сноска (note): белый лёгкий текст, тонкая янтарная линия слева.
   Моно-шрифт убран (v1 был перегружен моно) — Inter 300, кегль мелкий. */
.note{
  font-family:var(--font-body); font-size:0.8rem; font-weight:300; line-height:1.65;
  color:#FFFFFF; border-left:1px solid rgba(232,163,61,.55);
  background:linear-gradient(90deg, rgba(7,11,20,.66), rgba(7,11,20,.34) 72%, rgba(7,11,20,0));
  padding:0.6rem 1rem; border-radius:0 10px 10px 0; margin-top:0.85rem;
  text-shadow:0 1px 2px rgba(0,0,0,.9);
  letter-spacing:.01em;
}
.note b{ color:#FFFFFF; font-weight:600; }
.note::before{ content:""; }

.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link{ position:absolute; left:-999px; top:0; z-index:9999; background:var(--amber); color:var(--ink); padding:.6rem 1rem; border-radius:0 0 var(--radius-sm) 0; }
.skip-link:focus{ left:0; }

/* ===== buttons — V2 refined: тонкая обводка + inner light + hover-glow + blur ===== */
.btn{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--font-display); font-weight:700; font-size:0.9rem;
  letter-spacing:.02em;
  padding:0.85rem 1.9rem; border-radius:999px; border:1px solid transparent;
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  transition:transform var(--dur-fast) var(--ease-lux),
             box-shadow var(--dur-med) var(--ease-lux),
             background var(--dur-med) var(--ease-lux),
             border-color var(--dur-med) var(--ease-lux),
             color var(--dur-fast);
  will-change:transform; text-align:center; overflow:hidden; isolation:isolate;
}
/* мягкий световой «блик», наезжающий при hover */
.btn::before{
  content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit;
  background:radial-gradient(120% 160% at 50% 120%, rgba(255,208,137,.35), transparent 55%);
  opacity:0; transition:opacity var(--dur-med) var(--ease-lux);
}
.btn:hover::before{ opacity:1; }
.btn:active{ transform:translateY(1px) scale(.99); }
.btn:focus-visible{ outline:2px solid var(--amber-hi); outline-offset:3px; }

/* primary — МАТОВЫЙ янтарь с тонким внутренним светом (приёмка v2: глянец-2012
   = дёшево; у премиума — матовая заливка и мягкое свечение). */
.btn-primary{
  background:#E39A34;              /* V2.1: матовый плоский янтарь, без глянца */
  color:#14100A;
  box-shadow:0 6px 20px rgba(3,5,11,.42);
}
.btn-primary::before{ display:none; }   /* матовый: никакого hover-блика */
.btn-primary:hover{
  color:#14100A; background:#EBA645; transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(3,5,11,.48);
}
/* ghost — тонкая обводка + blur; hover-glow янтарём */
.btn-ghost{
  background:rgba(255,255,255,.04); color:#fff;
  border-color:rgba(255,255,255,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.btn-ghost:hover{
  background:rgba(255,255,255,.07); color:#fff;
  border-color:rgba(232,163,61,.65);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 0 28px rgba(232,163,61,.22);
  transform:translateY(-2px);
}
.btn-teal{
  background:rgba(47,184,166,.14); color:#fff;
  border-color:rgba(47,184,166,.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 8px 26px rgba(47,184,166,.18);
}
.btn-teal:hover{ color:#fff; transform:translateY(-2px); border-color:rgba(47,184,166,.9); box-shadow:0 12px 40px rgba(47,184,166,.35), 0 0 22px rgba(47,184,166,.3); }
.btn-azure{
  background:rgba(62,123,250,.14); color:#fff;
  border-color:rgba(62,123,250,.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 8px 26px rgba(62,123,250,.18);
}
.btn-azure:hover{ color:#fff; transform:translateY(-2px); border-color:rgba(62,123,250,.9); box-shadow:0 12px 40px rgba(62,123,250,.35), 0 0 22px rgba(62,123,250,.3); }
.btn-sm{ padding:.55rem 1.15rem; font-size:.8rem; }

/* ===== header ===== */
.site-header{
  position:fixed; inset:0 0 auto 0; height:var(--header-h); z-index:200;
  display:flex; align-items:center;
  background:linear-gradient(to bottom, rgba(3,5,11,.6) 0%, rgba(3,5,11,.26) 50%, rgba(3,5,11,0) 100%);
  border-bottom:0;
  transition:background var(--dur-med) var(--ease-lux);
}
.site-header.scrolled{
  background:linear-gradient(to bottom, rgba(3,5,11,.66) 0%, rgba(3,5,11,.3) 56%, rgba(3,5,11,0) 100%);
  border-bottom:0;
}
.header-inner{ display:flex; align-items:center; gap:var(--sp-3); width:100%; }
.logo{ display:flex; align-items:center; gap:.65rem; font-family:var(--font-display); font-weight:900; letter-spacing:-0.01em; color:#fff; flex:0 0 auto; }
.logo:hover{ color:#fff; }
.logo-txt b{ white-space:nowrap; }
/* маркер-лого: строгий тёмный квадрат с тонкой янтарной нитью (приёмка v2:
   «радужная градиентная рамка» читалась как чужой бренд) */
.logo-mark{
  width:36px; height:36px; border-radius:11px; flex:0 0 auto;
  background:linear-gradient(160deg, #101728, #0a0f1c);
  display:grid; place-items:center; position:relative;
  box-shadow:inset 0 0 0 1px rgba(232,163,61,.35), 0 4px 22px rgba(232,163,61,.14);
  transition:box-shadow var(--dur-med) var(--ease-lux);
}
.logo:hover .logo-mark{ box-shadow:inset 0 0 0 1px rgba(232,163,61,.6), 0 4px 30px rgba(232,163,61,.28); }
.logo-mark svg{ position:relative; z-index:1; }
.logo-txt{ line-height:1.05; }
.logo-txt b{ font-size:1.05rem; font-weight:900; display:block; letter-spacing:-0.02em; }
.logo-txt span{ font-size:.58rem; font-weight:400; font-family:var(--font-body); color:#FFFFFF; letter-spacing:.24em; text-transform:uppercase; text-shadow:0 1px 2px rgba(0,0,0,.7); }

.main-nav{ margin-left:auto; display:flex; align-items:center; gap:.25rem; }
.main-nav a{
  font-size:.82rem; font-weight:400; color:rgba(255,248,238,.92); letter-spacing:.015em;
  padding:.45rem .7rem; border-radius:var(--radius-sm); position:relative; white-space:nowrap;
  transition:color var(--dur-fast), background var(--dur-fast);
}
.main-nav a:hover{ color:#fff; background:rgba(255,255,255,.06); }
.main-nav a[aria-current="page"]{ color:#fff; }
.main-nav a::after{
  content:""; position:absolute; left:.7rem; right:.7rem; bottom:.2rem; height:1px;
  background:linear-gradient(90deg, var(--amber), var(--amber-hi));
  box-shadow:0 0 8px rgba(232,163,61,.6);
  transform:scaleX(0); transform-origin:left; transition:transform var(--dur-med) var(--ease-lux);
  border-radius:2px;
}
.main-nav a:hover::after{ transform:scaleX(1); }

.header-actions{ display:flex; align-items:center; gap:.5rem; }
.icon-btn{
  width:38px; height:38px; border-radius:10px; display:grid; place-items:center;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); color:#fff;
  transition:background .18s, border-color .18s, transform .18s;
}
.icon-btn:hover{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.25); transform:translateY(-1px); }
.search-btn{ position:relative; width:38px; padding:0; }
/* белый (правило: на тёмном только белый), opacity ≥ 0.75 */
.search-btn kbd{
  font-family:var(--font-mono); font-size:.62rem; color:#FFFFFF; opacity:.85;
  border:1px solid rgba(255,255,255,.22); border-radius:5px; padding:.05rem .3rem; line-height:1.4;
}
/* V2.1: бургер виден всегда — в мобильном меню полный список разделов + «Войти» */
.burger{ display:grid; }

/* ===== mobile nav ===== */
.mobile-nav{
  position:fixed; inset:0; z-index:300; background:rgba(7,11,20,.97);
  backdrop-filter:blur(8px); display:flex; flex-direction:column;
  padding:var(--sp-3); transform:translateY(-100%); opacity:0; pointer-events:none;
  transition:transform .4s var(--ease), opacity .3s;
}
.mobile-nav.open{ transform:translateY(0); opacity:1; pointer-events:auto; }
.mobile-nav-top{ display:flex; align-items:center; justify-content:space-between; }
.mobile-nav ul{ margin-top:var(--sp-4); display:flex; flex-direction:column; gap:.2rem; }
.mobile-nav a{ display:block; font-family:var(--font-display); font-weight:900; letter-spacing:-0.025em; font-size:1.7rem; color:#fff; padding:.65rem 0; border-bottom:1px solid rgba(255,255,255,.06); transition:color var(--dur-fast), padding-left var(--dur-med) var(--ease-lux); }
.mobile-nav a:hover{ color:#fff; padding-left:.4rem; }
.mobile-nav-actions{ margin-top:auto; display:flex; gap:.75rem; }
.mobile-nav-actions .btn{ flex:1; }

/* ===== breadcrumbs (V2: лёгкий белый текст, без моно-плашки) ===== */
.breadcrumbs{ font-family:var(--font-body); font-weight:400; font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(245,239,228,.82); padding-top:calc(var(--header-h) + 1.1rem); }
.breadcrumbs ol{ display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; }
.breadcrumbs li+li::before{ content:"/"; margin-right:.35rem; opacity:.4; }
.breadcrumbs a{ color:rgba(245,239,228,.82); transition:color var(--dur-fast); }
.breadcrumbs a:hover{ color:#fff; }
.breadcrumbs [aria-current]{ color:#fff; }

/* ===== modals (auth + search) ===== */
.modal{
  position:fixed; inset:0; z-index:400; display:grid; place-items:center;
  padding:1rem; visibility:hidden;
}
.modal[open], .modal.open{ visibility:visible; }
.modal-backdrop{ position:absolute; inset:0; background:rgba(3,5,11,.8); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); opacity:0; transition:opacity var(--dur-med) var(--ease-lux); }
.modal.open .modal-backdrop{ opacity:1; }
.modal-panel{
  position:relative; width:min(480px, 100%); max-height:90vh; overflow:auto;
  background:linear-gradient(165deg, rgba(20,28,46,.96), rgba(7,11,20,.98));
  border:1px solid rgba(255,255,255,.09); border-radius:18px;
  padding:var(--sp-4);
  box-shadow:0 40px 100px rgba(0,0,0,.66), inset 0 1px 0 rgba(255,255,255,.07), 0 0 60px rgba(232,163,61,.05);
  transform:translateY(20px) scale(.97); opacity:0;
  transition:transform var(--dur-med) var(--ease-lux), opacity var(--dur-fast);
}
.modal.open .modal-panel{ transform:none; opacity:1; }
.modal-close{ position:absolute; top:.7rem; right:.7rem; width:34px; height:34px; border-radius:9px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); display:grid; place-items:center; color:#fff; }
.modal-close:hover{ background:rgba(255,255,255,.14); }
.modal h3{ font-size:1.3rem; }

/* auth tabs */
.tabs{ display:flex; gap:.3rem; background:rgba(255,255,255,.05); padding:.28rem; border-radius:999px; margin-bottom:var(--sp-3); border:1px solid rgba(255,255,255,.07); }
.tabs button{ flex:1; background:transparent; border:0; color:#F5EFE4; padding:.5rem; border-radius:999px; font-weight:600; font-size:.85rem; transition:.2s; }
.tabs button[aria-selected="true"]{ background:var(--amber); color:var(--ink); }
.tab-panel[hidden]{ display:none; }

.field{ margin-bottom:1rem; }
.field label{ display:block; font-size:.78rem; font-weight:600; color:#F5EFE4; margin-bottom:.3rem; }
.field input, .field select, .field textarea{
  width:100%; padding:.72rem .9rem; border-radius:10px; font-size:.95rem;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.14); color:#fff;
  transition:border-color .18s, box-shadow .18s;
}
.field input:focus, .field textarea:focus, .field select:focus{ outline:none; border-color:var(--amber); box-shadow:0 0 0 3px rgba(232,163,61,.18); }
.field input::placeholder{ color:rgba(245,239,228,.6); }
.consent{ display:flex; gap:.6rem; align-items:flex-start; font-size:.78rem; color:#F5EFE4; margin:1rem 0; }
.consent input{ width:18px; height:18px; margin-top:.1rem; accent-color:var(--amber); flex:0 0 auto; }
.consent a{ text-decoration:underline; }

.divider{ display:flex; align-items:center; gap:.75rem; color:#F5EFE4; font-size:.74rem; font-family:var(--font-mono); margin:1.1rem 0; text-transform:uppercase; letter-spacing:.08em; }
.divider::before,.divider::after{ content:""; flex:1; height:1px; background:rgba(255,255,255,.12); }

.social-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:.6rem; }
.social-btn{
  display:flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.68rem; border-radius:10px; background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12); color:#fff; font-size:.85rem; font-weight:600;
  transition:.18s; position:relative;
}
.social-btn:hover{ background:rgba(255,255,255,.11); transform:translateY(-1px); }
.social-btn .dot{ width:8px; height:8px; border-radius:50%; background:var(--mute); flex:0 0 auto; }
.social-btn.is-pending{ opacity:.7; }
.stub-note{ font-family:var(--font-body); font-weight:300; font-size:.72rem; color:#F5EFE4; margin-top:.7rem; line-height:1.5; }

/* search modal */
.search-panel{ width:min(560px,100%); }
.search-input-row{ display:flex; align-items:center; gap:.6rem; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.15); border-radius:12px; padding:.6rem .9rem; }
.search-input-row input{ flex:1; background:transparent; border:0; color:#fff; font-size:1rem; }
.search-input-row input:focus{ outline:none; }
.search-results{ margin-top:1rem; max-height:52vh; overflow:auto; }
.search-results li a{ display:block; padding:.7rem .8rem; border-radius:10px; color:#fff; }
.search-results li a:hover, .search-results li a.active{ background:rgba(232,163,61,.14); }
.search-results .sec{ font-family:var(--font-body); font-weight:400; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:rgba(245,239,228,.85); display:block; }
.search-empty{ color:#F5EFE4; font-size:.9rem; padding:1rem .3rem; }
.search-hint{ font-family:var(--font-body); font-weight:300; font-size:.7rem; color:rgba(245,239,228,.8); margin-top:.8rem; }

/* ===== footer ===== */
.site-footer{ background:var(--ink-2); border-top:1px solid rgba(255,255,255,.07); padding:var(--sp-6) 0 var(--sp-3); position:relative; z-index:50; }
.footer-grid{ display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:var(--sp-4); }
/* белый текст + акцентная линия (правило: на тёмном только белый) */
.footer-col h4{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:#fff; margin-bottom:.9rem; font-weight:500; padding-bottom:.4rem; border-bottom:2px solid var(--amber); display:inline-block; }
.footer-col a{ display:block; color:#F5EFE4; font-size:.88rem; padding:.24rem 0; }
.footer-col a:hover{ color:#fff; }
.footer-about p{ color:#F5EFE4; font-size:.86rem; max-width:34ch; }
.footer-contacts{ font-size:.86rem; color:#F5EFE4; line-height:1.7; }
.footer-contacts a{ display:inline; }
.footer-bottom{ margin-top:var(--sp-5); padding-top:var(--sp-2); border-top:1px solid rgba(255,255,255,.07); display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; font-family:var(--font-body); font-weight:300; font-size:.72rem; color:#F5EFE4; }

/* ===== responsive ===== */
@media (max-width: 1080px){
  .main-nav a{ padding:.45rem .5rem; font-size:.8rem; }
}
@media (max-width: 900px){
  .main-nav{ display:none; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 640px){
  :root{ --header-h:58px; --gutter:20px; }   /* ЕДИНАЯ мобильная сетка отступов 20px */
  .logo-txt span{ display:none; }
  .search-btn span, .search-btn kbd{ display:none; }
  /* шапка компактнее: logo + поиск + 1 CTA + бургер; все тач-цели >=44px */
  .header-inner{ gap:.35rem; padding-inline:var(--gutter); }
  .header-actions{ margin-left:auto; gap:.3rem; }
  .header-actions .btn{ display:inline-flex; }        /* ОДНА CTA остаётся (приёмка) */
  .header-actions .btn-ghost{ display:none; }         /* «Войти» — в бургере */
  .btn-sm{ padding:.5rem .95rem; font-size:.78rem; min-height:40px; }
  .icon-btn{ width:44px; height:44px; border-radius:12px; }
  .search-btn{ width:44px; padding:0; }
  /* DEFECT 9: логотип и крошки — тоже тач-цели >=44px (hit-area без роста визуала) */
  .logo{ min-height:44px; display:inline-flex; align-items:center; }
  /* MOBILE-FIX: логотип «ПК «ВОИР»» в одну строку (был перенос на 2 строки) */
  .logo-txt b{ white-space:nowrap; font-size:.95rem; letter-spacing:-0.03em; }
  .logo{ gap:.5rem; }
  .logo-mark{ width:32px; height:32px; border-radius:9px; }
  .breadcrumbs{ padding-block:.4rem; }
  .breadcrumbs a, .breadcrumbs [aria-current]{ display:inline-block; min-height:44px; line-height:44px; padding:0 .1rem; margin:-.55rem 0; }
  .breadcrumbs ol{ align-items:center; }
  .footer-grid{ grid-template-columns:1fr; }
  .social-row{ grid-template-columns:1fr; }
  /* единые поля контента */
  .wrap{ padding-inline:var(--gutter); }
  /* крошки: на pages nav.breadcrumbs содержит внутренний div.wrap (20px) →
     у самого nav обнуляем padding (иначе nav+wrap = 36px против 20px у H1).
     На index nav.breadcrumbs САМ является .wrap → :not(.wrap) его не трогает. */
  .breadcrumbs:not(.wrap){ padding-inline:0; }
  .breadcrumbs{ font-size:.66rem; }
}
/* тач-цели >=44px ГЛОБАЛЬНО на touch-устройствах (не только по ширине) */
@media (hover:none) and (pointer:coarse){
  .btn{ min-height:46px; }
  .icon-btn{ min-width:44px; min-height:44px; }
  .tabs button{ min-height:44px; }
  .faq-q{ min-height:52px; }
  .acc-tabs button{ min-height:46px; }
  .doc-dl, .office-link, .plot-item{ min-height:44px; }
}

/* ===== reduced motion ===== */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}
