/* ─────────────────────────────────────────────────────────────────────────
   СЛОЙ НАПРАВЛЕНИЯ — «эппл», design/tokens.project.json.

   Подключается ПОСЛЕ style.css. Ядро задаёт компоненты, направление задаёт
   типографику, ритм, радиусы и движение. Файл генерируется сборкой, руками
   не правится.

   Механика направления (ядро/дизайн/НАПРАВЛЕНИЯ.md, п. 5):
     · системный шрифт, веб-шрифты не грузим вовсе
     · контраст display к body 3,5-4,5x: body 17, display 34-62
     · радиус 16 у карточек и кадров, 12 у кнопок, пилюля у чипов —
       радиус зависит от роли, одинаковый у всего подряд это анти-признак
     · липкая шапка: backdrop-filter blur(20px) на полупрозрачной подложке
     · пружина с критическим затуханием, без отскока; отклик на НАЖАТИЕ
     · тёмный фон не используется
   ───────────────────────────────────────────────────────────────────────── */
:root{
  --display:clamp(33px,4.7vw,64px);   /* 64/17 = 3,8x — коридор направления 3,5-4,5x */
  --h2:clamp(24px,2.5vw,34px);
  --h3:19px;
  --body:17px;
  --rhythm:clamp(56px,7vw,112px);
  --col:700px;
  --ff:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --spring:cubic-bezier(.32,.72,0,1);
  --dur:.35s;
  --r-btn:12px;
  --r-card:16px;
  --r-chip:999px;
  --sh-1:0 1px 2px rgba(23,23,26,.05);
  --sh-2:0 2px 6px rgba(23,23,26,.05),0 12px 28px rgba(23,23,26,.07);
}
body{font-family:var(--ff);font-size:var(--body);line-height:1.6;background:var(--bg);
  -webkit-font-smoothing:antialiased}

/* типографика: трекинг и интерлиньяж зависят от размера, один на все — анти-признак */
h1{font-size:var(--display);line-height:1.04;letter-spacing:-.022em;font-weight:700}
h2{font-size:var(--h2);line-height:1.12;letter-spacing:-.018em;font-weight:700;margin-bottom:16px}
h3{font-size:var(--h3);line-height:1.3;letter-spacing:-.01em;font-weight:600;margin:24px 0 10px}
.col{max-width:var(--col)}
.intro{color:var(--mut);max-width:var(--col);margin:-4px 0 22px}
.eyebrow{font-size:13px;letter-spacing:.02em;color:var(--accent);font-weight:600;margin-bottom:8px}
.src{font-size:14px;color:var(--mut);margin-top:14px;max-width:var(--col)}
.more{margin-top:22px}
section{padding:calc(var(--rhythm)/2) 0}
section.tight{padding:24px 0}

/* ── шапка: полупрозрачная, содержимое идёт под ней ── */
header{background:color-mix(in srgb,var(--surface) 72%,transparent);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.logo{font-weight:700;letter-spacing:-.01em}
.logo em{color:var(--brand)}
.logo span{color:var(--mut);font-weight:400}
.navlang{font-weight:600}

/* ── герой: кадр край в край, поверх затемнение ядра ── */
.hero{padding:clamp(84px,11vw,148px) 0 clamp(40px,5vw,68px)}
.hero h1{font-size:var(--display);line-height:1.04;letter-spacing:-.022em;
  margin-bottom:16px;max-width:17ch}
.hero .sub{font-size:clamp(17px,1.4vw,20px);max-width:620px}
.hero .cta{margin-top:28px}
.badges{margin-bottom:20px}
.chip{border-radius:var(--r-chip);padding:6px 14px;font-size:12.5px;letter-spacing:.01em;
  font-weight:600;backdrop-filter:blur(8px)}
.chip.accent{background:var(--accent);border-color:transparent;color:#fff}
.hero .facts{margin-top:32px;gap:12px}
.hero .fact{border-radius:var(--r-card);padding:16px 18px;backdrop-filter:blur(10px)}
.hero .fact b{font-size:clamp(20px,2vw,26px);letter-spacing:-.02em;font-weight:700}
.hero-shot{display:none}

/* ── кнопки: радиус свой, блик ядра выключен, отклик на нажатие ── */
.btn{border-radius:var(--r-btn);font-weight:600;letter-spacing:-.01em;
  transition:background-color var(--dur) var(--spring),transform .12s var(--spring),
             box-shadow var(--dur) var(--spring)}
.btn::before{content:none}
.btn:active{transform:scale(.975)}
.btn-o{border-width:1.5px}
.nav .btn{box-shadow:var(--sh-1)}

/* ── answer-first ── */
.answer{border-radius:var(--r-card);background:var(--surface);box-shadow:var(--sh-1);
  border-color:color-mix(in srgb,var(--line) 80%,transparent)}
.answer .lead{font-size:17.5px;line-height:1.55}
.answer ul.facts li{font-size:16px}

/* ── карточки: подъём мягкий и только при наведении ── */
.grid3{gap:16px}
.card{border-radius:var(--r-card);border:1px solid var(--line);padding:22px 20px;
  box-shadow:var(--sh-1);transition:box-shadow var(--dur) var(--spring),
             transform var(--dur) var(--spring)}
.card:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}
.card b{display:block;font-size:21px;letter-spacing:-.02em;margin-bottom:6px;font-weight:700}
.card p{font-size:15px;color:var(--mut);line-height:1.5}

.rowlist{border-top:1px solid var(--line)}
.rowitem{display:grid;grid-template-columns:minmax(120px,230px) 1fr;gap:20px;
  padding:18px 0;border-bottom:1px solid var(--line)}
.rowitem b{font-size:17px;font-weight:600}
.rowitem span{color:var(--mut)}
@media(max-width:640px){.rowitem{grid-template-columns:1fr;gap:4px}}

.steps{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.steps li{display:grid;grid-template-columns:minmax(150px,270px) 1fr;gap:20px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);
  padding:18px 20px;box-shadow:var(--sh-1)}
.steps b{font-size:17px;font-weight:600}
.steps span{color:var(--mut)}
@media(max-width:640px){.steps li{grid-template-columns:1fr;gap:4px}}

/* ── кадры: крупные, скруглённые, на светлом ── */
.gal{gap:16px}
.gal figure{margin:0}
.gal img{border-radius:var(--r-card);cursor:zoom-in;box-shadow:var(--sh-1)}
.gal figcaption{font-size:14px;color:var(--mut);padding-top:10px;line-height:1.45}
.gal.plates{grid-template-columns:repeat(auto-fit,minmax(min(310px,100%),1fr))}
.gal.plates img{background:var(--surface);border:1px solid var(--line)}
figure img{border-radius:var(--r-card)}
.map-still,.map-frame{border-radius:var(--r-card)}

/* ── планировки ── */
.plangrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:16px}
.plangrid.wide{grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));margin-bottom:12px}
.plancard,.plan{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);
  padding:16px;margin:0;display:block;color:var(--ink);box-shadow:var(--sh-1);
  transition:box-shadow var(--dur) var(--spring),transform var(--dur) var(--spring)}
.plancard:hover,.plan:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}
.plancard:active{transform:scale(.99)}
.plancard img,.plan img{background:var(--surface);cursor:zoom-in;box-shadow:none}
.plancard b,.plan figcaption b{display:block;font-size:17px;margin-top:12px;font-weight:600}
.plancard span,.plan figcaption span{display:block;font-size:14px;color:var(--mut)}
.plan figcaption .tags{color:var(--accent);font-size:13px}

/* ── честный блок «кому подходит» ── */
.grid2.fit{gap:16px;align-items:stretch}
.pro,.con{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);
  padding:24px 22px;box-shadow:var(--sh-1)}
.pro h3,.con h3{margin-top:0}
.pro ul,.con ul{margin:0;padding-left:20px}
.pro li,.con li{margin-bottom:10px;line-height:1.5}
.pro h3{color:var(--accent)}
.con h3{color:var(--brand)}
@media(max-width:760px){.grid2.fit{grid-template-columns:1fr}}

/* ── таблицы и списки ── */
.tbl-scroll{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);
  box-shadow:var(--sh-1)}
table{border-collapse:collapse;width:100%;margin:0}
table th{text-align:left;font-size:13px;letter-spacing:.01em;color:var(--mut);
  border-bottom:1px solid var(--line);padding:14px 16px;font-weight:600;white-space:nowrap}
table td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}
table tbody tr:last-child td{border-bottom:0}
.tags-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.tags-list li{border:1px solid var(--line);border-radius:var(--r-chip);padding:8px 15px;
  font-size:14px;color:var(--mut);background:var(--surface)}
.faclist{list-style:none;margin:0;padding:0;columns:2;column-gap:18px}
.faclist li{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);
  padding:14px 16px;margin-bottom:10px;break-inside:avoid;box-shadow:var(--sh-1)}
.faclist .n{float:left;width:32px;font-size:13px;color:var(--accent);font-weight:700;line-height:1.6}
.faclist b{display:block;font-size:16px;font-weight:600;margin-left:32px}
.faclist li > span:last-child{display:block;margin-left:32px;font-size:13px;color:var(--mut)}
@media(max-width:700px){.faclist{columns:1}}

/* ── FAQ: ядро рисует details карточкой, направление её оставляет, но мягче ── */
.faq details{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);
  padding:6px 20px;margin-bottom:10px;box-shadow:var(--sh-1)}
.faq details[open]{background:var(--surface)}
.faq summary{cursor:pointer;padding:14px 0;font-weight:600;font-size:17.5px;
  letter-spacing:-.012em;list-style:none;display:flex;justify-content:space-between;
  gap:16px;align-items:baseline;min-height:44px;padding-right:0}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:static;color:var(--accent);font-weight:400;
  font-size:24px;line-height:1;top:auto;right:auto}
.faq details[open] summary::after{content:"−"}
.faq details > div{padding:0 0 16px;max-width:var(--col);color:var(--mut)}
.faq details p{color:var(--mut);margin-top:0}

/* ── форма и подвал ── */
.lead-box{border-radius:var(--r-card);max-width:620px;box-shadow:var(--sh-1);
  background:var(--surface)}
.lead-box h2{font-size:24px}
.leadform input,.leadform button{border-radius:var(--r-btn)}
footer{margin-top:0}
footer b{display:block;margin-bottom:10px;font-size:13px;letter-spacing:.02em;font-weight:600;
  opacity:.75}
footer .cols a{display:block}

/* ── хлебные крошки ── */
.bc{font-size:14px;color:var(--mut);padding-top:18px}
.bc span{padding:0 8px;opacity:.5}

/* ── движение: пружина, ни одного transition:all, с веткой reduced-motion ── */
a,summary,.tags-list li{transition:color var(--dur) var(--spring),
  background-color var(--dur) var(--spring),border-color var(--dur) var(--spring)}
@media (prefers-reduced-motion: reduce){
  a,summary,.btn,.card,.plancard,.plan,.tags-list li{transition:none}
  .btn:active,.card:hover,.plancard:hover,.plan:hover{transform:none}
}

/* ── узкий экран: логотип, пилюля языка и бургер не помещаются в 335 px ── */
@media(max-width:440px){
  .logo{font-size:15px}
  .logo span{display:none}
}


/* ── таблицы ключ-значение: реестр и сравнение ── */
table.kv{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--r-card);
  overflow:hidden;box-shadow:var(--sh-1)}
table.kv th,table.kv td{padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:top;
  text-align:left;font-size:16px}
table.kv th{width:38%;color:var(--mut);font-weight:500}
table.kv tr:last-child th,table.kv tr:last-child td{border-bottom:0}
table.kv.registry td{font-weight:500}
table.compare{background:var(--surface);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh-1)}
table.compare th:first-child{color:var(--mut);font-weight:500;width:34%}
table.compare thead th{font-size:14px;letter-spacing:.02em;color:var(--brand);background:var(--bg)}
.grid2 table.kv{margin-top:4px}
@media (max-width:640px){
  table.kv th,table.kv td{display:block;width:100%;box-sizing:border-box}
  table.kv th{padding:12px 16px 2px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;border-bottom:0}
  table.kv td{padding:0 16px 12px}
}

/* ── подвал: блок проекта с адресом ── */
.foot-brand b{font-size:18px;letter-spacing:-.01em}
.foot-brand span{display:block;opacity:.8;margin-top:6px;font-size:14px}
.foot-lang span{font-weight:600}

/* ── нижняя строка подвала: копирайт и юридические ссылки ── */
.foot-legal a{color:inherit;text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:6px 0}

/* ── шкала времени: те же шаги, но с датой крупно ── */
.timeline li b{color:var(--brand)}

/* ── герой без настоящего кадра: подпись, что это обложка ── */
.hero .cover-note{font-size:13px;color:rgba(255,255,255,.7);margin-top:28px}
