/* Дополнения аудита: исходный утверждённый site.css остаётся неизменным. */
/* Прямая ссылка магазина — в начале первого экрана, без дубля в мобильной плашке. */
.hero__actions .hero__play { min-height: 44px; min-width: 0; max-width: 100%; height: auto; padding: 10px 18px; white-space: normal; line-height: 1.25; text-align: center; }
/* Динамическая надпись бесплатной пробы длиннее исходной: не сжимать её в ширину макета. */
@media (min-width: 1100px), (min-width: 900px) and (orientation: landscape) {
  .hero__actions { left: 0; right: 0; justify-content: center; }
  .hero__actions .btn { min-width: max-content; padding-inline: 18px; }
}
/* На телефоне декоративное кольцо не должно отодвигать выбор класса ещё на целый экран.
   Обложки самих книг и все преимущества остаются доступны в каталоге. */
@media (max-width: 640px) {
  .catalog__top .halo-book { display: none; }
  .catalog .perks { margin-top: 20px; }
  .catalog .grades { margin-top: 24px; }
}
.chosen-book { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px; border: 1px solid var(--mint); border-radius: 18px; margin-bottom: 16px; }
.chosen-book p { font-weight: 700; line-height: 1.5; }
.chosen-book .btn-text { flex-shrink: 0; }
.chosen-book[hidden], #bookSelectionControls[hidden] { display: none; }
#accountFields, #bookFields, #sumTitle { scroll-margin-top: 110px; }
.future-months { margin-top: 10px; color: var(--text-2); }
.future-months summary { min-height: 44px; display: list-item; padding: 10px 0; cursor: pointer; font-size: 14px; }
.future-months .months { margin-top: 8px; }
.trial-callout .trial-availability { margin-top: 12px; font-size: 14px; font-weight: 600; }
.trial-steps { display: grid; gap: 6px; margin: 16px 0; padding-left: 24px; list-style: decimal; font-weight: 600; }
.trial-conditions > summary { min-height: 44px; display: list-item; align-content: center; cursor: pointer; font-weight: 600; }
.trial-conditions > summary:focus-visible { outline: 3px solid var(--sun); outline-offset: 4px; }
.trial-conditions[open] > summary { margin-bottom: 8px; }
/* Ошибка — отдельная строка под заданием: не сдвигает поле ответа и доступна без цвета. */
.demo-sec .task__error { grid-column: 2 / -1; margin: 0; }
.catalog-swipe-hint { display: none; }
.app__stage .dphone__screen { padding: 0; overflow: hidden; background: #f8f9fc; }
.real-cabinet-screen { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.site-announcement { padding: 20px; margin-top: 24px; background: var(--ground-2); border: 1px solid var(--sky); border-radius: 20px; line-height: 1.5; }
.site-announcement a { margin-left: 12px; text-decoration: underline; }
#faqList p { white-space: pre-line; }
.release-mail .field { margin-top: 12px; }
.release-mail input[readonly] { cursor: text; user-select: text; }
/* На переходе с широкой страницы к мобильной закрытое меню сразу невидимо: задержка visibility
   из исходного макета показывала ссылки на один кадр. Открытие и прокрутка меню остаются прежними. */
@media (max-width: 899px), (max-width: 1099px) and (orientation: portrait) {
  .nav { transition: opacity .25s, transform .3s; }
}
@media (max-width: 699px) {
  .chosen-book { flex-wrap: wrap; }
  .series .umk-chips { gap: 8px; }
  .series .umk-chip { min-height: 44px; font-size: 13px; padding: 8px 12px; }
  .catalog-swipe-hint { display: block; color: var(--text-2); font-size: 13px; text-align: right; margin: 8px 0 20px; }
}
/* Владелец 12.10, iPhone: правый край шага «Книга» обрезался. Заголовок группы плавает на всю ширину
   (site.css: legend float), а «legend + *» снимал обтекание только у скрытой плашки выбранной книги —
   блок со списками сжимался рядом с заголовком в полоску у правого края. Обтекание снимают все блоки
   после заголовка; колонка поля — не шире формы, длинный вариант списка её не раздвигает. */
.field-group > legend ~ * { clear: both; }
.field { grid-template-columns: minmax(0, 1fr); }
.field select { min-width: 0; text-overflow: ellipsis; }
/* Длинные надписи итоговых кнопок («Сначала проверьте прошлый заказ») переносятся, а не вылезают за кнопку. */
.summary__card .btn--block { height: auto; min-height: 52px; padding-top: 12px; padding-bottom: 12px; white-space: normal; line-height: 1.25; text-align: center; }
.summary__card .btn--lg { min-height: 60px; }
/* «Проверить существующий заказ» на белой карточке: тёмной рамкой — белая на белом была не видна. */
.summary__card .btn--ghost { margin-top: 10px; border-color: var(--ink); color: var(--ink); font-weight: 600; }
.summary__card .btn--ghost:hover { background: var(--ink); color: #fff; }
@media (max-width: 420px) {
  .summary__card .btn--lg { padding-left: 18px; padding-right: 18px; }
}
/* Прайс и персональная цена одного предложения — рядом, с переносом на узком экране. */
.price-base { color: inherit; opacity: .75; font-size: .85em; font-weight: 600; }
.price-base s { white-space: nowrap; }
.summary__list .price-base { color: inherit; opacity: 1; }
.price-card__base { display: inline-block; margin-right: .35em; color: inherit; font-size: 22px; font-weight: 600; }
.price-card__base .price-base { font-size: inherit; }
.price-card__base[hidden] { display: none; }
.umk-chip, .month { min-height: 44px; height: auto; padding: 10px 16px; }
.month { padding-inline: 14px; }
.section.prices-sec { padding-block: clamp(36px, 4vw, 64px); }
.prices-sec .head h2 { font-size: clamp(28px, 4vw, 48px); }
.prices-sec .head .lead { margin-top: 12px; font-size: clamp(16px, 1.7vw, 20px); }
.prices-sec .prices { margin-top: 24px; }
.prices-sec .price-card { padding: 58px 24px 24px; }
.prices-sec .price-card__flag { top: 18px; left: 24px; }
.prices-sec .price-card__price { margin-top: 18px; }
.prices-sec .price-card .ticks { margin: 16px 0 20px; }
.prices-sec .badge-spin { width: 104px; margin: 20px auto 0; }
.prices-sec .badge-spin span { width: 64px; gap: 2px; }
.prices-sec .badge-spin b { font-size: 20px; }
.prices-sec .badge-spin small { font-size: 9px; max-width: 54px; }
.prices-sec .badge-spin svg { animation: none; }
/* Аудит 01.11: подробности по запросу, основные действия остаются на первом уровне. */
.site-disclosure, .series__details { border: 1px solid rgba(255,255,255,.16); border-radius: 20px; padding: 12px 20px; }
.site-disclosure > summary, .series__details > summary { min-height: 44px; display: list-item; align-content: center; cursor: pointer; font-weight: 600; }
.site-disclosure[open] > summary, .series__details[open] > summary { margin-bottom: 24px; }
.site-disclosure > summary:focus-visible, .series__details > summary:focus-visible { outline: 3px solid var(--sun); outline-offset: 5px; }
.mission-sec, .soon-sec { padding-block: 32px; }
.series__details { margin-top: 12px; padding: 8px 16px; }
.series__details .series__authors { margin-bottom: 12px; }
.series__details .cart-set { margin-top: 12px; }
.order-steps > li { padding: 0; }
.order-steps button { display: flex; gap: 8px; align-items: center; min-height: 48px; padding: 8px 16px; border: 0; background: none; border-radius: inherit; color: inherit; font: inherit; cursor: pointer; }
.order-steps button:disabled { cursor: default; opacity: .6; }
.order-steps button:focus-visible { outline: 3px solid var(--sun); outline-offset: 4px; }
.checkout-flow { display: block; max-width: 780px; margin-inline: auto; }
.checkout-flow [hidden] { display: none !important; }
.checkout-flow .summary { position: static; }
.checkout-flow .field-group, .checkout-flow .summary { scroll-margin-top: 110px; }
.checkout-controls { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 24px; }
.checkout-controls .btn-text { min-height: 44px; }
@media (max-width: 600px) {
  .series__cover { width: 140px; margin-inline: auto; }
  .series__title h4 { font-size: 23px; }
  .series__details { font-size: 14px; }
  .order-steps { gap: 6px; }
  .order-steps button { padding: 8px; font-size: 12px; gap: 5px; }
  .checkout-controls > .btn { width: 100%; }
  .app__stage { display: none; }
}
/* Длинная подпись четвёртого шага — выше сужения овала, не у нижней дуги.
   Размеры в единицах макета сохраняют пропорции телефона; мобильный flex-макет не меняем. */
@media (min-width: 1100px), (min-width: 900px) and (orientation: landscape) {
  .step--4 .step__cap { top: calc(600 * var(--u)); font-size: calc(26 * var(--u)); line-height: calc(36 * var(--u)); }
}

/* Главная: сначала выбор книги и покупка, подробные повторные объяснения — по запросу.
   Согласованные тексты, плитки, анимации и исходный site.css остаются на месте. */
.section.catalog, .section.how, .section.demo-sec, .section.order-sec,
.section.gift-order-sec, .section.discounts-sec, .section.app-sec { padding-block: clamp(36px, 5vw, 72px); }
.catalog__top .head h2, .how .head h2, .app__copy h2 { font-size: clamp(28px, 3.4vw, 48px); line-height: 1.2; }
.catalog__top .head .lead, .how .head .lead { margin-top: 12px; font-size: clamp(16px, 1.5vw, 20px); line-height: 1.5; }
.catalog .grades { margin-top: 24px; }
.catalog .perks { margin-top: 24px; }
.homepage-details { padding: 0; }
.homepage-details > summary { min-height: 52px; padding: 16px 20px; cursor: pointer; font-weight: 700; line-height: 1.4; }
.homepage-details > summary:focus-visible { outline: 3px solid var(--sun); outline-offset: 5px; }
.homepage-details[open] > summary { margin-bottom: 0; }
.homepage-details__hint { display: block; margin-top: 4px; color: var(--text-2); font-size: 14px; font-weight: 400; }
.homepage-details__body { padding: 20px; }
.homepage-details .stairs { max-width: 900px; margin-inline: auto; }
.homepage-details .stair:nth-child(n) { width: 100%; margin-left: 0; }
#how .homepage-details .needs { display: grid; margin-top: 24px; }
.how__foot { margin-top: 24px; gap: 16px; }
.after { padding: 0; }
.after > .homepage-details { border: 0; }
.after .homepage-details > summary h3 { display: inline; margin: 0; font-size: 22px; }
.after .homepage-details__hint { color: inherit; }
.after .after__steps { margin-top: 0; }
.demo-disclosure .homepage-details__body { padding: 0 0 20px; }
.demo-disclosure .demo__intro { padding: 20px 20px 0; }
.demo-disclosure .demo-g1 { margin: 28px 20px 0; }
@media (min-width: 1100px) {
  .prices-sec .prices { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
  .prices-sec .price-card { width: 100%; max-width: 400px; justify-self: center; }
}
@media (max-width: 699px) {
  #how .homepage-details .needs { grid-template-columns: 1fr; }
  .homepage-details .stair { grid-template-columns: 44px minmax(0, 1fr); gap: 12px; border-radius: 24px; }
  .homepage-details .stair__n { width: 44px; font-size: 24px; }
  .homepage-details .stair__ico { display: none; }
  .demo-disclosure .demo__card { padding: 20px; border: 0; border-radius: 0; box-shadow: none; }
}
