/* ==========================================================================
   ГЛАВНАЯ — «Печатный лист» + «Отделка» (дизайн-система starprint.pro).
   Подключается только на index.html последним стилем и перекрывает старые
   правила css/home.css, которые остаются для страниц кейсов.
   Композиции: паспорт заказа и мини-конструктор на стопках листов, «Пять
   цехов» с окном вырубки, кейсы зигзагом, «1500 м²» фольгой на бурой бумаге,
   этапы и рейтинг, бланк заказа на чёрном листе.
   ========================================================================== */

.ds-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-5); }

/* ── HERO ─────────────────────────────────────────────────────────────── */
.home-hero.ds-hero {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--space-12);
  align-items: start;
  padding-block: var(--space-12) var(--space-16);
}
.ds-hero__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(2.5rem, 1.4rem + 3.2vw, 4.5rem);
  line-height: 0.86;
  letter-spacing: -0.012em;
  margin-bottom: var(--space-6);
  max-width: 19ch;
}
/* Ближайший дедлайн к НГ над заголовком: даты подставляет js/season.js,
   без JS остаётся статическая фраза про стандартный срок. */
.ds-hero__deadline {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3);
  margin: 0 0 var(--space-6); font-size: var(--text-sm); line-height: 1.4; max-width: 60ch;
}
.ds-hero__deadline a { display: inline-block; padding-block: 3px; min-height: 24px; color: var(--color-text); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.ds-hero__deadline a:hover { text-decoration-thickness: 2px; }
.ds-hero__deadline a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
/* Оффер через гарантию цвета (pages/garantii.html). */
.ds-hero__lead { margin: 0 0 var(--space-10); font-size: var(--text-lg); line-height: 1.5; color: var(--color-text-muted); max-width: 52ch; }
.ds-hero__lead a { color: var(--color-text); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.ds-hero__lead a:hover { text-decoration-thickness: 2px; }
.ds-passport { max-width: 600px; padding: var(--space-6) var(--space-8) var(--space-4); }
.ds-passport__head {
  display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4);
  padding-bottom: var(--space-3);
  border-bottom: 1.5px solid var(--color-text);
}
.ds-passport__head b { font: 800 1.375rem/1 var(--font-display); }
.ds-passport__head span { font-size: var(--text-xs); color: var(--color-text-faint); }
.ds-passport .spec-list__row { grid-template-columns: 9ch 1fr; padding-block: var(--space-3); }
.ds-passport .spec-list__row:first-child { border-top: 0; }
.ds-passport .spec-list__row:last-child { border-bottom: 0; }
.ds-hero__actions { margin-top: var(--space-10); }
.ds-hero__peek { padding: var(--space-5); margin-top: var(--space-2); }
.ds-hero__peek .cpeek { max-width: none; }
.ds-hero__peek .cpeek__dims { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ds-hero__peek .cpeek .segmented { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ds-hero__peek .cpeek__dim, .ds-hero__peek .cpeek__field { min-width: 0; }

/* ── Клиенты: имена набором, кресты приводки вместо разделителей ──────── */
.home-clients.ds-clients {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-10);
  align-items: center;
  padding-block: var(--space-8);
  border-block: 1px solid var(--color-divider);
}
.ds-clients__title { font-size: var(--text-label); color: var(--color-text-faint); max-width: 12ch; line-height: 1.3; margin: 0; }
.ds-clients__list { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) 0; list-style: none; margin: 0; padding: 0; }
.ds-clients__list li {
  display: flex; align-items: center;
  font: 800 1.5rem/1 var(--font-display);
  letter-spacing: -0.005em;
  color: var(--color-text);
  max-width: none;
}
.ds-clients__note { grid-column: 2; margin: calc(-1 * var(--space-6)) 0 0; font-size: var(--text-sm); color: var(--color-text-muted); }
.ds-clients__list li + li::before {
  content: ''; width: 12px; height: 12px; margin-inline: var(--space-4);
  color: var(--color-text-faint);
  background:
    linear-gradient(currentColor, currentColor) center / 1px 100% no-repeat,
    linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat;
}

/* ── Пять цехов: окно вырубки слева, цеха строками справа ─────────────── */
.home-services { padding-bottom: var(--section-airy); }
.ds-shops { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-16); align-items: start; }
.ds-shops__stage { position: sticky; top: 104px; }
.ds-shops__win { --diewin-ratio: 4 / 4.6; --diewin-fit: contain; --diewin-bg: var(--color-surface-offset); }
.ds-shops__win .diewin__line .mark { fill: none; stroke: var(--color-text); stroke-width: 1; vector-effect: non-scaling-stroke; }
/* Смена цеха: окно перетекает в новую форму штампа, старый контур гаснет,
   новый рез проводится ножом, затем проступают биговка и отверстия (js/ds-peek.js). */
@media (prefers-reduced-motion: no-preference) {
  .ds-shops__win .diewin__cut { transition: clip-path var(--dur-morph, 640ms) var(--ease-in-out); }
  .ds-shops__win .diewin__cut img { transition: opacity 220ms var(--ease-out), transform 900ms var(--ease-out), filter 420ms var(--ease-out); }
  .ds-shops__win .diewin__cut img.is-leaving { opacity: 0; transform: scale(0.985); filter: blur(2px); transition-duration: 220ms; }
  .ds-shops__win .diewin__line { transition: opacity 240ms var(--ease-out); }
  .ds-shops__win.is-morphing .diewin__line { opacity: 0; }
  .ds-shops__win.is-drawing .diewin__line .cut { animation: shop-cut var(--dur-draw, 1100ms) var(--ease-in-out) backwards; }
  .ds-shops__win.is-drawing .diewin__line .handle { animation: shop-cut var(--dur-slow, 640ms) var(--ease-out) calc(var(--dur-draw, 1100ms) * 0.55) backwards; }
  .ds-shops__win.is-drawing .diewin__line :is(.crease, .mark) { animation: shop-fade var(--dur-slow, 640ms) var(--ease-out) calc(var(--dur-draw, 1100ms) * 0.6) backwards; }
  .ds-shops__win.is-drawing .diewin__line .hole { transform-box: fill-box; transform-origin: center; animation: shop-pop var(--dur-base, 360ms) var(--ease-out) calc(var(--dur-draw, 1100ms) * 0.8) backwards; }
  /* Штрих задан только внутри кадров: после прорисовки линия снова сплошная. */
  @keyframes shop-cut { from { stroke-dasharray: var(--len) 9999px; stroke-dashoffset: var(--len); } to { stroke-dasharray: var(--len) 9999px; stroke-dashoffset: 0; } }
  @keyframes shop-fade { from { opacity: 0; } }
  @keyframes shop-pop { from { opacity: 0; transform: scale(0.2); } }
}
.ds-shops__list { list-style: none; margin: 0; padding: 0; border-top: 1.5px solid var(--color-text); }
.ds-shops__list li { max-width: none; }
.ds-ws {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-2) var(--space-8);
  align-items: baseline;
  padding: var(--space-6) var(--space-5);
  margin-inline: calc(-1 * var(--space-5));
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid var(--color-divider);
  border-radius: var(--radius-die);
  transition: background-color 360ms var(--ease-out), box-shadow 360ms var(--ease-out);
}
.ds-ws__name { font: 800 clamp(1.875rem, 1.4rem + 1.4vw, 2.75rem)/0.92 var(--font-display); letter-spacing: -0.005em; }
.ds-ws__price { font-size: var(--text-sm); font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ds-ws__desc { grid-column: 1 / -1; font-size: var(--text-sm); color: var(--color-text-muted); max-width: 58ch; }
.ds-ws:hover, .ds-ws:focus-visible, .ds-ws[aria-current='true'] {
  color: inherit;
  background: var(--grain-paper), var(--color-surface);
  box-shadow: var(--shadow-emboss), var(--shadow-lift);
  border-bottom-color: transparent;
}
.ds-ws:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }

/* ── Кейсы зигзагом: оттиск с метками реза и паспорт заказа ───────────── */
.home-cases { padding-block: var(--section-airy); }
.home-cases .section__head { margin-bottom: var(--space-12); }
.ds-zig {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--space-16);
  align-items: center;
  padding-block: var(--space-12);
}
.ds-zig + .ds-zig { border-top: 1px solid var(--color-divider); }
.ds-zig--flip > :first-child { order: 2; }
.ds-zig .specimen__frame { background: var(--color-surface); }
.ds-case__kind { display: block; font: 500 var(--text-label)/1.3 var(--font-body); color: var(--color-text-faint); margin-bottom: var(--space-3); }
.ds-zig__title { font: 800 clamp(2.25rem, 1.6rem + 2vw, 3.5rem)/0.9 var(--font-display); letter-spacing: -0.005em; margin-bottom: var(--space-5); }
.ds-zig__text p { color: var(--color-text-muted); font-size: var(--text-base); max-width: 52ch; }
.ds-zig__text p + p { margin-top: var(--space-3); }
.ds-zig .spec-list { margin-top: var(--space-6); border-top: 1.5px solid var(--color-text); }
.ds-zig .spec-list__row { grid-template-columns: 12ch 1fr; }
.ds-zig .spec-list__row:first-child { border-top: 0; }
.ds-cases__more { margin-top: var(--space-12); }

/* ── 1500 м²: цифра фольгой на бурой бумаге, техкарта цеха на стопке ─── */
.home-production.section--kraft { padding-block: var(--section-airy); }
.ds-shop { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-16); align-items: center; }
.ds-shop__title { font-weight: 400; letter-spacing: 0; }
.ds-shop__fact {
  display: block;
  font: 800 clamp(5rem, 3rem + 6vw, 9.5rem)/0.8 var(--font-display);
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  padding-bottom: 0.06em;
}
.ds-shop__lead {
  display: block;
  margin-top: var(--space-6);
  font: 400 var(--text-lg)/1.45 var(--font-body);
  max-width: 26ch;
  color: var(--color-text-muted);
}
.ds-shop__actions { margin-top: var(--space-10); }
.ds-shop__card { padding: var(--space-8); }
.ds-shop__card-title { font: 800 1.75rem/1 var(--font-display); margin-bottom: var(--space-5); }
.ds-x-list { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: var(--space-10); }
.ds-x-list li {
  break-inside: avoid;
  display: flex; gap: var(--space-3); align-items: baseline;
  padding-block: var(--space-3);
  border-bottom: 1px solid var(--color-divider);
  font-size: var(--text-base);
  max-width: none;
}
.ds-x-list li::before {
  content: ''; flex: none; width: 10px; height: 10px; transform: translateY(1px);
  color: var(--color-cut);
  background:
    linear-gradient(currentColor, currentColor) center / 1px 100% no-repeat,
    linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat;
}
/* На бурой бумаге лист техкарты — мелованный белый в обеих темах
   (--color-text-inverse — постоянный белый), текст — K 100. */
.section--kraft .ds-shop__card {
  --color-text: var(--ink-key);
  --color-text-muted: var(--ink-key);
  --color-divider: var(--color-divider-on-kraft, rgba(29, 29, 27, 0.18));
  color: var(--ink-key);
  background: var(--grain-paper), var(--color-text-inverse);
}

/* ── Процесс и отзывы ────────────────────────────────────────────────── */
.home-process .timeline { margin-top: 0; }
.home-process .timeline::before { content: none; }
.ds-proc { display: grid; grid-template-columns: minmax(0, 9fr) minmax(0, 3fr); gap: var(--space-12); align-items: end; }
.ds-proc .timeline { margin: 0; padding: 0; }
.ds-proc .timeline__step { max-width: none; }
.ds-reviews { padding: var(--space-6); }
.ds-reviews__title { font: 800 1.75rem/1 var(--font-display); margin: 0; }
.ds-reviews__text { font-size: var(--text-sm); color: var(--color-text-muted); margin: 0; }

/* ── CTA: бланк заказа на чёрном листе ───────────────────────────────── */
.home-cta .cta-sheet__title { margin: 0; }
.home-cta .home-cta__contacts { font-size: var(--text-sm); line-height: 1.5; }
.home-cta .cta-sheet__paper .form__hint { display: block; }
.home-cta .cta-sheet__paper .form__consent span { display: inline; }
.home-cta .home-cta__nomaket { margin-top: var(--space-4); font-size: var(--text-base); }
.home-cta .home-cta__nomaket b { color: var(--color-text-inverse); font-weight: 600; }

/* ── Успеть к Новому году: три даты на листе (js/season.js) ─────────────── */
.ds-season { padding-block: var(--space-16); }
.ds-season__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-12); align-items: center; }
.ds-season__lead { margin-top: var(--space-5); font-size: var(--text-lg); line-height: 1.5; color: var(--color-text-muted); max-width: 46ch; }
.ds-season__actions { margin-top: var(--space-8); }
.ds-season__sheet { padding: var(--space-6) var(--space-8); }
.ds-season__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1.5px solid var(--color-text); }
.ds-season__step { display: grid; align-content: start; gap: var(--space-2); padding: var(--space-5) var(--space-5) var(--space-5) 0; max-width: none; }
.ds-season__step + .ds-season__step { padding-left: var(--space-5); border-left: 1px solid var(--color-divider); }
.ds-season__label { font-size: var(--text-label); font-weight: 500; color: var(--color-text-faint); }
.ds-season__date { font: 800 clamp(1.75rem, 1.2rem + 1.6vw, 2.75rem)/0.95 var(--font-display); font-variant-numeric: tabular-nums; letter-spacing: -0.005em; }
.ds-season__note { font-size: var(--text-sm); color: var(--color-text-muted); line-height: 1.45; }
.ds-season__late { margin: var(--space-4) 0 0; font-size: var(--text-sm); font-weight: 600; color: var(--color-text); }
.ds-season__late:empty { display: none; }
.ds-season__caption { margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--color-divider); max-width: none; }

/* ── Цены «от»: строки прайса, цена — главным кеглем ───────────────────── */
.ds-prices__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1.5px solid var(--color-text); }
.ds-price { display: grid; grid-template-rows: auto 1fr auto; gap: var(--space-2); padding: var(--space-5) var(--space-5) var(--space-5) 0; max-width: none; }
.ds-price + .ds-price { padding-left: var(--space-5); border-left: 1px solid var(--color-divider); }
.ds-price__name { font-size: var(--text-sm); font-weight: 600; line-height: 1.35; }
.ds-price__value { align-self: end; font: 800 clamp(2.25rem, 1.6rem + 1.8vw, 3.25rem)/0.9 var(--font-display); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ds-price__cond { font-size: var(--text-xs); color: var(--color-text-muted); font-variant-numeric: tabular-nums; }
.ds-prices__more { margin-top: var(--space-8); }

/* ── Сценарии и пилот ─────────────────────────────────────────────────── */
.ds-paths { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); }
.ds-paths li { max-width: none; display: grid; }
.ds-path-card {
  display: grid; align-content: start; gap: var(--space-3);
  padding: var(--space-6); min-height: 100%;
  color: inherit; text-decoration: none;
  background: var(--grain-paper), var(--color-surface);
  border: 1px solid var(--color-divider); border-radius: var(--radius-die);
  box-shadow: var(--shadow-emboss);
  transition: box-shadow 360ms var(--ease-out);
}
.ds-path-card:hover { color: inherit; box-shadow: var(--shadow-emboss), var(--shadow-lift); }
.ds-path-card:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.ds-path-card__name { font: 800 1.625rem/1 var(--font-display); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 0.18em; }
.ds-path-card__desc { font-size: var(--text-sm); color: var(--color-text-muted); line-height: 1.5; }
.ds-pilot {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-6) var(--space-10); align-items: center;
  margin-top: var(--space-8); padding: var(--space-6) var(--space-8);
}
.ds-pilot__title { font: 800 clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem)/0.95 var(--font-display); margin: var(--space-3) 0 var(--space-3); }
.ds-pilot__text { margin: 0; font-size: var(--text-base); color: var(--color-text-muted); max-width: 62ch; }

/* ── Кейсы: задача → риск → как сняли ─────────────────────────────────── */
.ds-path { list-style: none; margin: var(--space-6) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); counter-reset: path; }
.ds-path li { max-width: none; padding-top: var(--space-3); border-top: 1px solid var(--color-divider); }
.ds-path li + li { border-top-style: dashed; }
.ds-path__label { display: block; margin-bottom: var(--space-2); font-size: var(--text-label); font-weight: 600; color: var(--color-text); }
.ds-zig__text .ds-path p { font-size: var(--text-sm); line-height: 1.5; margin: 0; }
.ds-zig__more { margin-top: var(--space-6); }

/* ── Чего боятся заказчики: вопрос набором, ответ фактами ─────────────── */
.ds-fears { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--space-12); border-top: 1.5px solid var(--color-text); }
.ds-fear { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--space-6); padding-block: var(--space-6); border-bottom: 1px solid var(--color-divider); }
.ds-fear__q { font: 800 1.5rem/1.05 var(--font-display); margin: 0; }
.ds-fear__a { margin: 0; display: grid; gap: var(--space-3); justify-items: start; align-content: start; }
.ds-fear__a p { margin: 0; font-size: var(--text-sm); line-height: 1.55; color: var(--color-text-muted); }

/* ── Адаптив ─────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .home-hero.ds-hero, .ds-shops, .ds-zig, .ds-shop, .ds-proc { grid-template-columns: minmax(0, 1fr); gap: var(--space-10); }
  .ds-zig--flip > :first-child { order: 0; }
  .ds-shops__stage { position: static; }
  .home-clients.ds-clients { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .ds-clients__note { grid-column: auto; margin-top: 0; }
  .ds-season__grid, .ds-pilot, .ds-fears { grid-template-columns: minmax(0, 1fr); }
  .ds-prices__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-price:nth-child(odd) { padding-left: 0; border-left: 0; }
  .ds-price { border-bottom: 1px solid var(--color-divider); }
  .ds-paths { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-path { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
}
@media (max-width: 640px) {
  .home-hero.ds-hero { padding-block: var(--space-8) var(--space-12); }
  .ds-hero__title { margin-bottom: var(--space-8); }
  .ds-passport { padding: var(--space-5); }
  .ds-passport .spec-list__row { grid-template-columns: minmax(0, 1fr); }
  .ds-hero__actions { flex-direction: column; align-items: stretch; }
  .ds-hero__actions .btn { white-space: normal; }
  .ds-hero__peek { padding: var(--space-3); }
  .ds-hero__peek .cpeek { padding: var(--space-3); }
  .ds-hero__peek .cpeek .segmented { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-hero__peek .cpeek__dims { gap: var(--space-2); }
  .ds-hero__peek .cpeek__field { padding: 0 var(--space-2); }
  .ds-clients__list li { font-size: 1.25rem; }
  .ds-clients__list li + li::before { margin-inline: var(--space-3); }
  .ds-ws { grid-template-columns: minmax(0, 1fr); margin-inline: 0; padding-inline: var(--space-3); }
  .ds-x-list { columns: 1; }
  .ds-zig { padding-block: var(--space-8); }
  .ds-zig .spec-list__row { grid-template-columns: minmax(0, 1fr); }
  .ds-season__sheet { padding: var(--space-5); }
  .ds-season__steps { grid-template-columns: minmax(0, 1fr); }
  .ds-season__step, .ds-season__step + .ds-season__step { padding: var(--space-4) 0; border-left: 0; }
  .ds-season__step + .ds-season__step { border-top: 1px solid var(--color-divider); }
  .ds-paths { grid-template-columns: minmax(0, 1fr); }
  .ds-price { padding-block: var(--space-4); }
  .ds-price + .ds-price { padding-left: var(--space-4); }
  .ds-price:nth-child(odd) { padding-left: 0; padding-right: var(--space-4); }
  .ds-price__value { font-size: 2rem; }
  .ds-pilot { padding: var(--space-5); }
  .ds-pilot .btn { white-space: normal; }
  .ds-fear { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
}

/* Старые кресты и риски .specimen из прежней вёрстки (css/components.css)
   накладываются на уголки реза дизайн-системы — на главной гасим старые. */
.specimen__marks { background-image: none; }
.specimen__marks::before, .specimen__marks::after,
.specimen__marks i::before, .specimen__marks i::after { background: none; }

/* Старые правила формы (.form input / .form label в css/components.css)
   перебивают поля дизайн-системы по специфичности: возвращаем поля-окна
   и чекбокс согласия. */
.home-cta .form .form__input {
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-die);
  background: var(--grain-paper), var(--color-surface);
  box-shadow: var(--shadow-deboss);
  min-height: 48px;
}
.home-cta .form .form__input:focus { border-color: var(--color-focus); }
.home-cta .form textarea.form__input { min-height: 112px; }
.home-cta .form .form__field label { margin-bottom: 0; }
.home-cta .form label.form__consent { display: flex; gap: var(--space-3); align-items: flex-start; font-size: var(--text-sm); color: var(--color-text-muted); margin: 0; }
.home-cta .form .form__consent input[type='checkbox'] {
  appearance: none; flex: none; width: 20px; height: 20px; min-height: 0; margin-top: 1px; padding: 0;
  border: 1.5px solid var(--color-border); border-radius: var(--radius-die);
  background: var(--color-surface); box-shadow: none;
  display: grid; place-content: center;
}
.home-cta .form .form__consent input[type='checkbox']:checked { background: var(--color-text); border-color: var(--color-text); }
.home-cta .form .form__consent input[type='checkbox']:checked::after {
  content: ''; width: 10px; height: 6px; border: 2px solid var(--color-surface); border-top: 0; border-right: 0;
  transform: rotate(-45deg) translate(1px, -1px);
}
.home-cta .form .form__consent input[type='checkbox']:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }

/* Мобильное меню: правило дизайн-системы в css/components.css
   (@media ≤1100 .site-header__nav { display: none }) прячет старый оверлей
   даже в состоянии .is-open, а дропдаун становится абсолютным. До общей
   правки в components.css возвращаем оверлей на главной. */
@media (max-width: 1100px) {
  .site-header .site-header__nav { display: flex; flex-direction: column; align-items: stretch; gap: 0; margin-right: 0; }
  .site-header .site-header__nav > a,
  .site-header .site-header__nav .site-header__dropdown-toggle {
    width: 100%; justify-content: space-between;
    font: 800 var(--text-xl)/1.1 var(--font-display);
    padding-block: var(--space-3);
    border-bottom: 1px solid var(--color-divider);
    text-decoration: none;
  }
  .site-header .site-header__nav > a[aria-current='page'], .site-header .site-header__nav > a.is-active { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 0.2em; }
  .site-header .site-header__dropdown { width: 100%; }
  .site-header .site-header__dropdown.is-open .site-header__dropdown-menu {
    position: static; display: grid; grid-template-columns: 1fr;
    padding: 0 0 var(--space-4) 0; box-shadow: none; border: 0; background: transparent;
  }
}

/* Бирка «К Новому году»: под градиентом фольги — сплошной тон фольги,
   чтобы текст K 100 держал контраст и там, где градиент не отрисован. */
.ds-hero__deadline .tag--foil { background-color: var(--foil-mid); }
