/* S16 «Партнёрство» (/partners) — облако, 27.09.2026.

   СВОЙ ЛИСТ, как у S15: общий слой витрины (css/v2/public.css) правится под
   S14, а здесь только классы `.pt-*` этой страницы. Цвета, отступы, радиус и
   движение — из токенов; своих значений нет, кроме размеров шрифта из SPEC
   §S16 п. 2, для которых токена нет (h1 52/60, h2 36/44).

   Размеры — SPEC §S16 п. 2: контейнер 1200, поля 32 (20); первый экран 72
   (40), секции 88 (48); lead 18/28 (16/26) — это `--type-lead`. Колонки на
   1024 и уже становятся одной (приёмка п. 9); поля формы — по два в ряд, на
   телефоне по одному.

   СОСТОЯНИЯ — АТРИБУТАМИ, А НЕ КЛАССАМИ (как в vhod-s20.css): сторож
   KlassIzVidaImeetPraviloTest ищет правила для `is-*` только в своих листах. */

.pt { color: var(--color-text); font-family: var(--font); }
.pt *, .pt *::before, .pt *::after { box-sizing: border-box; }

/* Отступы SPEC суммой токенов: секция 88 = 48 + 32 + 8, первый экран
   72 = 48 + 24; на телефоне поле 20 = 16 + 4, первый экран 40 = 32 + 8. */
.pt-wrap { max-width: 1200px; margin: 0 auto; padding: 0 var(--space-8); }

[data-layer="public"] .pt-h1 { margin: 0; font: 600 52px/60px var(--font); letter-spacing: var(--tracking-hero); color: var(--color-text); }
[data-layer="public"] .pt-h2 { margin: var(--space-3) 0 0; font: 600 36px/44px var(--font); color: var(--color-text); }
[data-layer="public"] .pt-h3 { margin: 0; font: 600 18px/26px var(--font); color: var(--color-text); }
[data-layer="public"] .pt-lead { margin: var(--space-4) 0 0; max-width: 760px; font: var(--type-lead); color: var(--color-text-2); }
.pt-metka { margin: 0; font: 600 13px/20px var(--font); color: var(--color-text-3); }
.pt-metka--accent { color: var(--color-accent); }
.pt-metka--tiho { color: var(--color-text-2); }

/* Якорь под липкой шапкой: блок не должен уйти под неё при переходе. */
.pt [id] { scroll-margin-top: calc(var(--public-nav-h) + var(--space-4)); }
html:has(.pt) { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html:has(.pt) { scroll-behavior: auto; }
}

.pt-sekciya { padding: calc(var(--space-12) + var(--space-8) + var(--space-2)) 0; border-top: var(--border-line); }
.pt-sekciya--svetlaya { background: var(--color-surface); }
.pt-sekciya--fon { background: var(--color-bg-page); }

/* part-hero + part-doors */
.pt-hero { padding: calc(var(--space-12) + var(--space-6)) 0 calc(var(--space-12) + var(--space-8) + var(--space-2)); background: var(--color-surface); }
.pt-dveri { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-12); }
.pt-dver {
  display: flex; flex-direction: column; gap: var(--space-2);
  padding: var(--space-6); border: var(--border-line); border-radius: var(--radius);
  background: var(--color-surface); color: var(--color-text); text-decoration: none;
  transition: border-color var(--dur-1) var(--ease-out);
}
.pt-dver:hover { border-color: var(--color-accent); }
.pt-dver:focus-visible { outline: var(--focus-outline); outline-offset: var(--focus-offset); }
.pt-dver__tekst { margin: 0; flex: 1; font: var(--type-read); color: var(--color-text-2); }
.pt-dver__hod { margin-top: var(--space-2); font: 600 14px/20px var(--font); color: var(--color-accent); }

/* part-comp: три колонки по три пункта */
.pt-kolonki { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-8); }
.pt-kolonka { padding: var(--space-6); border: var(--border-line); border-radius: var(--radius); background: var(--color-surface); }
.pt-kolonka ul { margin: var(--space-4) 0 0; padding: 0 0 0 var(--space-4); display: flex; flex-direction: column; gap: var(--space-3); }
.pt-kolonka li { font: var(--type-read); color: var(--color-text-2); }

/* part-inv: другой фон, списков нет */
.pt-inv { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-12); align-items: center; }
.pt-inv__ogovorka { margin: var(--space-4) 0 0; max-width: 760px; font: var(--type-read); color: var(--color-text-2); }
.pt-knopki { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-6); }
.pt-oblozhka {
  display: flex; flex-direction: column; justify-content: space-between; gap: var(--space-6);
  aspect-ratio: 4 / 3; padding: var(--space-8);
  border: var(--border-line); border-radius: var(--radius); background: var(--color-surface);
}
.pt-oblozhka__nazvanie { margin: 0; font: var(--type-section); color: var(--color-text); }
.pt-oblozhka__podpis { margin: 0; font: var(--type-caption); color: var(--color-text-2); }

/* Кнопки страницы. `.btn` витрины рисуется слоем автора; здесь только
   высота 48 основной кнопки формы и вторичная без заливки. */
.pt-knopka {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: var(--control-lg); padding: 0 var(--space-6);
  border: 1px solid var(--color-accent); border-radius: var(--radius);
  background: var(--color-accent); color: var(--color-on-accent);
  font: 600 15px/20px var(--font); text-decoration: none; cursor: pointer;
  transition: background var(--dur-1) var(--ease-out), border-color var(--dur-1) var(--ease-out);
}
.pt-knopka:hover { background: var(--color-accent-hover); border-color: var(--color-accent-hover); color: var(--color-on-accent); }
.pt-knopka:focus-visible { outline: var(--focus-outline); outline-offset: var(--focus-offset); }
.pt-knopka--vtoraya { background: var(--color-surface); color: var(--color-text); border-color: var(--color-line-strong); }
.pt-knopka--vtoraya:hover { background: var(--color-surface-2); border-color: var(--color-line-strong); color: var(--color-text); }
.pt-knopka[aria-busy="true"] { opacity: .7; cursor: progress; }

/* part-talk */
.pt-talk { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-12); align-items: start; }
.pt-talk__pochta { color: var(--color-accent); text-decoration: underline; text-underline-offset: 2px; }

.pt-segment { display: inline-flex; margin: 0 0 var(--space-6); padding: 0; border: 0; border-radius: var(--radius); overflow: hidden; }
.pt-segment input { position: absolute; opacity: 0; pointer-events: none; }
.pt-segment label {
  display: inline-flex; align-items: center; min-height: var(--touch); padding: 0 var(--space-4);
  border: 1px solid var(--color-line-strong); background: var(--color-surface); color: var(--color-text);
  font: 600 14px/20px var(--font); cursor: pointer;
  transition: background var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out);
}
.pt-segment label + input + label { margin-left: -1px; }
.pt-segment input:checked + label { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-on-accent); }
/* Рамка сегмента обрезает выступающее: фокус рисуется внутрь. */
.pt-segment input:focus-visible + label { outline: var(--focus-outline); outline-offset: calc(-1 * var(--focus-offset)); }

.pt-forma { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-4) var(--space-6); }
.pt-forma .form-group { margin: 0; }
.pt-forma__vsya { grid-column: 1 / -1; }
.pt-forma .agree {
  display: flex; align-items: flex-start; gap: var(--space-2);
  margin-top: var(--space-2); color: var(--color-text-2); font: var(--type-caption);
}
.pt-forma .agree a { color: var(--color-accent); }
.pt-lovushka { position: absolute; left: -9999px; }
.pt-oshibka-polya { margin: var(--space-1) 0 0; color: var(--color-danger); font: var(--type-caption); }

/* Поле «Компания» — только у строительной компании (SPEC §S16 п. 4). */
.pt-talk[data-vy="investor"] [data-pole-kompaniya],
.pt-talk[data-vy="drugoe"] [data-pole-kompaniya] { display: none; }

.pt-spasibo {
  padding: var(--space-4); border-radius: var(--radius);
  background: var(--color-success-soft); color: var(--color-success);
  font: 600 16px/24px var(--font);
}
.pt-sboy {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3);
  padding: var(--space-3) var(--space-4); border-radius: var(--radius);
  background: var(--color-danger-soft); color: var(--color-danger); font: var(--type-body);
}
.pt-sboy button {
  min-height: var(--touch); padding: 0 var(--space-4); border: 1px solid var(--color-danger); border-radius: var(--radius);
  background: var(--color-surface); color: var(--color-danger); font: 600 14px/20px var(--font); cursor: pointer;
}

/* Приёмка §S16 п. 9: «На 1024 всё в одну колонку» — порог включает 1024. */
@media (max-width: 1024px) {
  .pt-dveri, .pt-kolonki, .pt-inv, .pt-talk { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 759px) {
  .pt-wrap { padding: 0 calc(var(--space-4) + var(--space-1)); }
  .pt-hero { padding: calc(var(--space-8) + var(--space-2)) 0 var(--space-12); }
  .pt-sekciya { padding: var(--space-12) 0; }
  [data-layer="public"] .pt-h1 { font: 600 34px/42px var(--font); }
  [data-layer="public"] .pt-h2 { font: 600 26px/34px var(--font); }
  .pt-forma { grid-template-columns: minmax(0, 1fr); }
  .pt-segment { display: flex; }
  .pt-segment label { flex: 1; justify-content: center; padding: 0 var(--space-2); text-align: center; }
}
