/* ============================================================
   CONSENT.CSS — стили только для страницы "Информированное согласие"
   (consent.html). Токены — в tokens.css, общая обвязка (база документа,
   шапка, футер, стикеры, кнопки) — в smelost.css.
   Вид один в один с макетом дизайнера; вынесено из inline-стилей в классы.
   ============================================================ */

:root { --tint-purple: #EDE8FE; }

/* Контейнер контента страницы. */
.c-main {
  max-width: 1200px;
  margin: 0 auto;
  padding: 56px 40px 20px;
}

/* ============================================================
   HERO
   ============================================================ */
.c-hero { position: relative; margin-bottom: 40px; }
.vf-stkr--c-hero { top: -10px; right: 0; --stkr-r: -6deg; }
.c-eyebrow {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--c-purple);
  margin-bottom: 16px;
}
.c-hero-h1 {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 60px;
  line-height: .98;
  letter-spacing: -.03em;
  margin: 0 0 22px;
  padding-right: 112px;
  /* "Информированное" — очень длинное слово; на узком экране переносим по
     слогам (lang=ru), а break-word — гарантия, что не уедет за край. */
  overflow-wrap: break-word;
  hyphens: auto;
}
.c-lead { font-size: 19px; line-height: 1.65; color: var(--c-ink-70); max-width: 60ch; margin: 0; }

/* ============================================================
   МАКЕТ ДОКУМЕНТА: липкое оглавление + текст
   ============================================================ */
.doc-layout { display: grid; grid-template-columns: 264px 1fr; gap: 56px; align-items: start; }

/* Оглавление на десктопе — липкое сбоку */
.toc-desktop { position: sticky; top: 96px; max-height: calc(100vh - 120px); overflow: auto; }
.toc-title {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--c-ink-45);
  padding: 0 12px 10px;
}
.toc-nav { display: flex; flex-direction: column; gap: 1px; }
.toc-link {
  display: flex;
  gap: 10px;
  align-items: baseline;
  padding: 7px 12px;
  border-radius: 12px;
  color: var(--c-ink-70);
  font-size: 14.5px;
  line-height: 1.35;
  transition: background .15s, color .15s;
}
.toc-link:hover { background: var(--tint-purple); color: var(--c-ink); }
.toc-link .n {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 13px;
  color: var(--c-purple);
  flex: none;
  min-width: 16px;
}

/* Оглавление на мобильном — раскрывающийся блок (нативный details) */
.toc-mobile {
  display: none;
  margin-bottom: 26px;
  background: var(--c-white);
  border-radius: 18px;
  box-shadow: var(--sh-1);
  overflow: hidden;
}
.toc-mobile__summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 17px;
}
.toc-mobile__summary::-webkit-details-marker { display: none; }
.toc-mobile__icon { color: var(--c-purple); transition: transform .2s ease; }
.toc-mobile[open] .toc-mobile__icon { transform: rotate(180deg); }
.toc-mobile__nav { display: flex; flex-direction: column; gap: 1px; padding: 4px 8px 12px; }

/* Разделы документа */
.doc-sec { padding: 34px 0; border-top: 1px solid var(--c-ink-12); }
.doc-sec:first-of-type { border-top: none; padding-top: 6px; }
.doc-sec__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 26px;
  margin: 0 0 18px;
  letter-spacing: -.01em;
  display: flex;
  gap: 14px;
  align-items: baseline;
  /* Длинные слова заголовков ("терапевтические") не должны уезжать за край
     узкой колонки на телефоне: перенос по слогам + break-word как гарантия. */
  overflow-wrap: break-word;
  hyphens: auto;
}
.doc-sec__num { color: var(--c-purple); font-size: 19px; }
.doc-sec p { font-size: 17px; line-height: 1.78; color: var(--c-ink); margin: 0 0 16px; max-width: 66ch; }
.doc-sec p:last-child { margin-bottom: 0; }

.doc-confirm {
  text-align: center;
  font-style: italic;
  font-size: 15px;
  color: var(--c-ink-70);
  margin: 36px auto 0;
  max-width: 52ch;
  line-height: 1.6;
}

/* ============================================================
   ФИНАЛЬНЫЙ ПРИЗЫВ
   ============================================================ */
.c-cta { text-align: center; padding: 56px 20px 60px; }
.c-cta__inner { max-width: 38ch; margin: 0 auto 16px; }
.c-cta__title {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 40px;
  line-height: 1.14;
  letter-spacing: -.02em;
  text-wrap: balance;
  overflow-wrap: break-word;
  hyphens: auto;
}
.c-cta__lead { font-size: 18px; line-height: 1.6; color: var(--c-ink-70); max-width: 48ch; margin: 0 auto 30px; }

/* ============================================================
   АДАПТИВ
   ============================================================ */
@media (max-width: 1040px) {
  .c-hero-h1 { padding-right: 0; }
  .vf-stkr--c-hero { display: none; }
}
@media (max-width: 960px) {
  /* minmax(0, 1fr), а не 1fr: у 1fr неявный минимум min-content, и колонка
     не сжимается уже вьюпорта (текст раздувает ее до ~66ch и уезжает вправо
     на телефоне). minmax(0,...) разрешает колонке быть уже содержимого. */
  .doc-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .toc-desktop { display: none; }
  .toc-mobile { display: block; }
}
@media (max-width: 760px) {
  .c-hero-h1 { font-size: 46px; }
  .c-cta__title { font-size: 32px; }
  .doc-sec p { font-size: 16.5px; }
  .c-main { padding-left: 20px; padding-right: 20px; }
}
@media (max-width: 420px) {
  .c-hero-h1 { font-size: 36px; }
  .c-cta__title { font-size: 27px; }
  .doc-sec__title { font-size: 23px; }
}
/* Самые узкие телефоны (320px): у кнопки дизайн-системы текст не переносится
   (white-space: nowrap), и "Написать в телеграм" не влезает. Ужимаем кнопку. */
@media (max-width: 360px) {
  .c-cta .btn--lg { padding: 14px 18px; font-size: 15px; }
}
