/* ============================================================
   Блокбаза — единый дизайн-код Русстана.
   Грузится последним. Разметка блоков Антикторга/Show остаётся,
   визуальный язык — только Русстан: токены, шрифт, кнопки,
   карточки, зебра, hover-scale.
   ============================================================ */

:root {
  --container: 1920px;
  --pad: 60px;
  --header-h: 84px;
  --section-pad: 86px;
  --section-title-max: 1060px;
  --radius: 16px;
  --radius-md: 12px;
  --radius-sm: 10px;
  --radius-xs: 8px;

  --bg: #F7F9FC;
  --section-white: #F7F9FC;
  --section-stripe: #E4ECF5;
  --bg-soft: #E4ECF5;
  --card-on-white: #FFFFFF;
  --card-on-stripe: #FBFCFE;
  --card-face: var(--card-on-white);
  --bg-card: var(--card-face);
  --card-hover-scale: 1.012;
  --card-text-unscale: calc(1 / var(--card-hover-scale));
  --card-media-zoom: 1.05;
  --btn-hover-scale: 1.03;
  --bg-card-2: #EEF3F9;
  --bg-alt: #EEF3F9;
  --amber: #F59E0B;
  --amber-bg: rgba(245, 158, 11, .13);

  --cream: #F5F7FA;
  --cream-card: #FFFFFF;
  --cream-border: #E6EBF2;
  --cream-border-2: #EEF2F7;

  --text: #15233B;
  --text-muted: #263141;
  --text-dim: #2E3A4A;
  --label: #3C4A5C;
  --ink: #15233B;
  --ink-muted: #43505F;
  --ink-dim: #5A6678;

  --accent: #0059F2;
  --accent-hover: #0047C7;
  --accent-soft: rgba(0, 89, 242, .09);
  --accent-line: rgba(0, 89, 242, .26);

  --red: #E11D2A;
  --red-soft: rgba(225, 29, 42, .09);
  --red-line: rgba(225, 29, 42, .28);

  --border: #E6EBF2;
  --border-2: #E2E8F0;
  --border-3: #CBD5E1;

  --font-display: 'Montserrat', 'PT Sans', sans-serif;
  --font-body: 'Montserrat', 'PT Sans', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;

  --shadow-card: none;
  --shadow-hover: none;
  --ease-premium: cubic-bezier(.22, 1, .36, 1);
  --ease-out: cubic-bezier(.16, 1, .3, 1);

  /* Антикторг → Русстан */
  --color-brand-yellow: var(--accent);
  --color-brand-yellow-hover: var(--accent-hover);
  --color-gray-dark: var(--text);
  --color-gray-light: var(--section-stripe);
  --color-white: var(--card-on-white);
  --color-text-muted: var(--text-muted);
  --color-border: var(--border);
  --font-primary: var(--font-body);
  --font-heading: var(--font-display);
  --container-width: var(--container);
  --container-padding: var(--pad);

  /* ResonanceShow → Русстан */
  --accent1: var(--accent);
  --accent2: var(--accent-hover);
  --accent3: var(--red);
}

@media (max-width: 1439px) { :root { --pad: 40px; --container-padding: 40px; } }
@media (max-width: 1279px) { :root { --pad: 30px; --header-h: 70px; --section-pad: 84px; --container-padding: 30px; } }
@media (max-width: 1023px) { :root { --pad: 24px; --container-padding: 24px; } }
@media (max-width: 767px) { :root { --pad: 20px; --header-h: 60px; --section-pad: 40px; --container-padding: 20px; } }
@media (max-width: 479px) { :root { --pad: 16px; --container-padding: 16px; } }

/* ---------- База: снять глобальный сброс Антикторга ---------- */
body {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.55;
  background: var(--bg);
  color: var(--text);
}

a {
  display: inline;
  height: auto;
  color: inherit;
}
.logo,
.nav__link,
.header-cart,
.header-social,
.header-lines__col a,
.footer-links a,
.footer-phone,
.footer-social,
.mega__link,
.mega__col-head--link,
.drawer a,
.fab__btn,
.fab__panel a,
.blokbaza-toc a {
  display: inline-flex;
}
.btn {
  display: inline-flex;
}

p a,
li a,
td a,
.lead a,
.hero__subtitle a,
.eval-form a,
.custom-checkbox__link {
  display: inline;
  color: var(--accent);
  text-decoration: none;
}
p a:hover,
li a:hover,
.custom-checkbox__link:hover {
  color: var(--accent-hover);
}

.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding-left: var(--pad);
  padding-right: var(--pad);
}

.page__content {
  padding-top: var(--header-h);
}
.page__content section.section,
.page__content section.hero:not(.section) {
  padding: var(--section-pad) 0;
  scroll-margin-top: calc(var(--header-h) + 16px);
}
.page__content section.hero:not(.section) {
  padding: 0;
}
.page__content section.page-hero {
  padding: 14px 0 40px;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  color: var(--text);
  letter-spacing: -.02em;
}

/* ---------- Кнопки: эталон .btn Русстана, не жёлтый uppercase ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  appearance: none;
  -webkit-appearance: none;
  font: 600 15px/1 var(--font-body);
  text-decoration: none;
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
  padding: 14px 22px;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  margin: 0;
  white-space: nowrap;
  box-shadow: none;
  transition: filter .2s var(--ease-out), background .2s var(--ease-out),
    border-color .2s var(--ease-out), color .2s var(--ease-out),
    transform .2s var(--ease-premium);
}
.btn--primary,
.btn--outline,
.page__wrapper .btn--primary,
.page__wrapper .btn--outline {
  background: linear-gradient(135deg, #1170FF 0%, #0047C7 100%);
  color: #fff;
  border-color: rgba(255, 255, 255, .28);
}
.btn--outline,
.page__wrapper .btn--outline {
  background: transparent;
  border-color: var(--accent);
  color: var(--text);
}
.btn--primary svg,
.btn--primary .btn__path {
  fill: currentColor;
  color: #fff;
}
.btn--outline svg,
.btn--outline .btn__path {
  fill: currentColor;
  color: currentColor;
}
.btn--primary:hover,
.page__wrapper .btn--primary:hover {
  background: var(--accent-hover);
  border-color: var(--accent-hover);
  color: #fff;
  transform: scale(var(--btn-hover-scale));
  box-shadow: none;
}
.btn--outline:hover,
.page__wrapper .btn--outline:hover {
  color: var(--accent);
  background: var(--accent-soft);
  border-color: var(--accent-hover);
  transform: scale(var(--btn-hover-scale));
  box-shadow: none;
}
.btn--line:hover,
.btn--secondary:hover,
.btn--ghost:hover {
  transform: scale(var(--btn-hover-scale));
}

.eval-form__submit {
  background: linear-gradient(135deg, #1170FF 0%, #0047C7 100%);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: var(--radius-sm);
  text-transform: none;
  font: 600 15px/1 var(--font-body);
  letter-spacing: 0;
  min-height: 48px;
}
.eval-form__submit:hover {
  background: var(--accent-hover);
  color: #fff;
  transform: scale(var(--btn-hover-scale));
}

.custom-checkbox__text::before {
  border-color: var(--accent);
  border-radius: 6px;
}
.custom-checkbox:checked + .custom-checkbox__text::before {
  background-color: var(--accent);
}
.custom-checkbox__text::after {
  border-color: #fff;
}

/* ---------- Карточки: лицо, рамка, scale, без translateY и жёлтого ---------- */
.feature-card,
.category-card,
.review-card,
.expert-card,
.accordion__item,
.real-experience__card,
.pricing-factors__accordion .accordion__item,
.cat-benefit-card,
.seo-types__card,
.stamps-catalog__card,
.expert-guide__step,
.icon-eval-grid__item,
.comparison-v2__card,
.comparison__card,
.quiz-icon__card,
.photo-guide__item,
.item-structure__card,
.book-condition__card,
.logistics__card,
.anti-pawnshop__card,
.buyout-steps__step,
.restoration__card,
.factor-card,
.webuy-card,
.catalog__card,
.archive-grid__card {
  background: var(--card-face);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: none;
  overflow: hidden;
  transition: transform .3s var(--ease-premium), border-color .2s var(--ease-out);
}
.feature-card:hover,
.category-card:hover,
.review-card:not(.card--static):hover,
.expert-card:hover,
.cat-benefit-card:hover,
.seo-types__card:hover,
.stamps-catalog__card:hover,
.expert-guide__step:hover,
.icon-eval-grid__item:hover,
.comparison-v2__card:hover,
.comparison__card:hover,
.quiz-icon__card:hover,
.webuy-card:hover,
.catalog__card:hover,
.archive-grid__card:hover,
.page__wrapper .feature-card:hover,
.page__wrapper .category-card:hover,
.page__wrapper .review-card:not(.card--static):hover,
.page__wrapper .expert-card:hover,
.page__wrapper .cat-benefit-card:hover {
  transform: scale(var(--card-hover-scale));
  border-color: var(--accent);
  box-shadow: none;
}
a.category-card {
  display: flex;
  flex-direction: row;
  text-decoration: none;
  color: var(--text);
}
.category-card:hover {
  transform: scale(var(--card-hover-scale));
}
.comparison__chart-fill {
  background: linear-gradient(90deg, var(--accent), #1170FF);
}
.review-card__star.is-filled {
  fill: var(--amber, #F59E0B);
}
.catalog__grid,
.seo-types__grid,
.stamps-catalog__grid,
.icon-eval-grid__list,
.comparison-v2__grid {
  padding: 8px 4px;
}
.accordion__item:hover,
.accordion__item--active,
.page__wrapper .accordion__item:hover,
.page__wrapper .accordion__item--active {
  border-color: var(--accent);
  transform: none;
}
.real-experience__card,
.page__wrapper .real-experience__card,
.card--highlight-top {
  border-top: 3px solid var(--accent);
}
.feature-card--offset {
  transform: none;
}

/* ---------- Заголовки секций Антикторга = H2 Русстана ---------- */
.section-title,
.how-it-works__title,
.catalog__title,
.expert-eval__title,
.pricing-factors__title,
.real-experience__title-main,
.comparison__title,
.reviews__title,
.experts__title,
.faq__title,
.online-eval__instruction-title,
.cat-hero__title,
.seo-types__title,
.quiz-icon__title,
.photo-guide__title,
.icon-eval-grid__title,
.price-table__title,
.silver-table__title,
.expert-guide__title,
.stamps-catalog__title,
.item-structure__title,
.restoration__title,
.book-condition__title,
.comparison-v2__title,
.logistics__title,
.anti-pawnshop__title,
.buyout-steps__title {
  font: 700 clamp(28px, 3vw, 42px)/1.05 var(--font-display);
  letter-spacing: -.014em;
  color: var(--text);
  text-align: left;
  max-width: var(--section-title-max);
  margin: 0 0 28px;
  text-transform: none;
}
.section .h2,
.section-head h2 {
  max-width: var(--section-title-max);
}

/* ---------- Hero: два разных блока, один класс — развести ---------- */
.hero:not(.section) {
  position: relative;
  overflow: hidden;
  z-index: 0;
  background: var(--navy);
  min-height: max(560px, calc(100svh - var(--header-h)));
  display: flex;
  align-items: center;
  padding: 0;
}
.hero:not(.section) .h1 { color: #fff; }
.hero:not(.section) .lead { color: rgba(255, 255, 255, .88); }
.hero:not(.section) .btn--line {
  border-color: rgba(255, 255, 255, .5);
  color: #fff;
}

.section.hero {
  position: relative;
  overflow-x: clip;
  overflow-y: visible;
  z-index: 1;
  min-height: 0;
  display: block;
  background: var(--section-white);
  color: var(--text);
  --card-face: var(--card-on-white);
}
.section.hero .hero__title {
  font: 800 clamp(34px, 4vw, 54px)/1.04 var(--font-display);
  letter-spacing: -.018em;
  color: var(--text);
  margin: 0 0 18px;
  font-weight: 800;
}
.section.hero .hero__subtitle {
  font: 400 clamp(16px, 1.4vw, 18px)/1.6 var(--font-body);
  color: var(--text-muted);
  max-width: 900px;
}
.section.hero .hero__slider {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card-face);
  overflow: hidden;
}
.section.hero .hero__bullet--active {
  border-color: var(--accent);
  background: var(--accent);
}
.section.hero .hero__decor-bg {
  opacity: .12;
  filter: grayscale(1);
}
.section.hero .step__path {
  stroke: var(--accent);
}
.section.hero .step__title,
.section.hero .step__desc {
  color: var(--text);
}

@media (max-width: 768px) {
  .hero:not(.section) { padding: 0; }
  .section.hero { padding: var(--section-pad) 0; }
}

/* ---------- Зебра Антикторга ---------- */
.section--white {
  background: var(--section-white);
  color: var(--text);
  --card-face: var(--card-on-white);
}
.section--stripe,
.section--cream,
.section--dark {
  background: var(--section-stripe);
  color: var(--text);
  --card-face: var(--card-on-stripe);
}

/* ---------- Формы Антикторга ---------- */
.eval-form__title {
  font: 700 21px/1.2 var(--font-display);
  color: var(--text);
}
.eval-form input,
.eval-form textarea,
.eval-form select,
.eval-form__field input,
.eval-form__field textarea {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--text);
  border: 1px solid var(--border-2);
  border-radius: var(--radius-xs);
  background: #fff;
}
.eval-form input:focus,
.eval-form textarea:focus,
.eval-form select:focus {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
  border-color: var(--accent);
}

/* Модалка перекрашиваться заплаткой больше не должна: она одна и живёт
   в словаре — resources/site/primitives/modal.css. */

/* ---------- FAB: синий, не жёлтый ---------- */
.fab__btn--phone,
.fab__toggle {
  background: var(--accent);
  color: #fff;
}
.fab__btn--phone::after {
  border-color: var(--accent);
}
.fab__panel {
  border-color: var(--border);
  border-radius: var(--radius-md);
}
.fab__panel a {
  display: flex;
  font: 600 15px var(--font-body);
  color: var(--text);
}
.fab__panel a:hover {
  background: var(--accent-soft);
  color: var(--accent);
}
.fab__panel a svg {
  color: var(--accent);
  stroke: var(--accent);
}

/* ---------- Акценты, которые остались жёлтым hex ---------- */
.quiz-progress,
.quiz-icon__progress-bar,
.progress-bar,
[class*="progress"] > [class*="fill"] {
  background: var(--accent);
}

/* ---------- Programs: светлые карточки Русстана ---------- */
#programs {
  padding: var(--section-pad) 0;
  background: var(--section-white);
  --card-face: var(--card-on-white);
}
#programs .programs-header {
  text-align: left;
  max-width: var(--section-title-max);
  margin: 0 0 42px;
  margin-left: 0;
  margin-right: 0;
}
#programs .programs-header h2 {
  font: 700 clamp(28px, 3vw, 42px)/1.05 var(--font-display);
  color: var(--text);
  text-transform: none;
  letter-spacing: -.014em;
  margin: 0 0 14px;
}
#programs .programs-header p {
  color: var(--text-muted);
  font: 400 clamp(16px, 1.4vw, 18px)/1.6 var(--font-body);
  margin: 0;
}
#programs .program-koster-card,
#programs .program-card-vert,
#programs .program-full-card,
#programs .program-card {
  background: var(--card-face);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text);
  box-shadow: none;
  overflow: hidden;
  transition: transform .3s var(--ease-premium), border-color .2s var(--ease-out);
}
#programs .program-koster-card:hover,
#programs .program-card-vert:hover,
#programs .program-full-card:hover {
  border-color: var(--accent);
  transform: scale(var(--card-hover-scale));
  box-shadow: none;
}
#programs .program-card:hover {
  transform: scale(var(--card-hover-scale));
  filter: none;
}
#programs .program-info h3,
#programs .program-card-vert h3,
#programs .program-card h3,
#programs .program-full-card h3 {
  color: var(--text);
  text-transform: none;
  font: 600 21px/1.2 var(--font-display);
}
#programs .program-tags span {
  background: var(--accent-soft);
  color: var(--accent);
  border: 1px solid var(--accent-line);
  font: 600 13px/1 var(--font-body);
}
#programs .program-text-content,
#programs .program-vert-copy,
#programs .program-info p {
  color: var(--text-muted);
}
#programs .program-details {
  background: var(--bg-soft);
  border: 1px solid var(--border);
  color: var(--text);
}
#programs .program-details li {
  color: var(--text-muted);
}
#programs .program-details strong {
  color: var(--text);
}
#programs .koster-thumb {
  background: var(--bg-soft);
  border-radius: var(--radius-xs);
}
#programs .koster-thumb:hover {
  border-color: var(--accent);
}
#programs .cast-switch {
  background: var(--bg-soft);
  border-color: var(--border);
}
#programs .cast-switch-btn {
  color: var(--text-dim);
}
#programs .cast-switch-btn.is-active {
  background: var(--accent);
  color: #fff;
}
#programs .program-promo-pill {
  background: var(--red-soft);
  border-color: var(--red-line);
  color: var(--red);
  box-shadow: none;
}
#programs .programs-pair {
  padding: 8px 4px;
}
#programs .program-koster-card,
#programs .program-card-vert {
  padding: 22px;
}
#programs .program-video {
  min-width: 0;
}

/* ---------- Оглавление палитры ---------- */
.blokbaza-toc-wrap {
  padding-top: 8px;
}
.blokbaza-skip {
  padding: 24px 0;
  color: var(--text-muted);
}

/* ---------- Списки / таблицы Антикторга ---------- */
.price-table table,
.silver-table table,
.comparison table {
  border-color: var(--border);
  font-family: var(--font-body);
}
.price-table th,
.silver-table th {
  background: var(--navy);
  color: #fff;
  font: 600 14px var(--font-body);
}

.reviews .swiper-button-next,
.reviews .swiper-button-prev {
  color: var(--accent);
}

.accordion__trigger {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font: 600 16px/1.35 var(--font-body);
  color: var(--text);
  text-align: left;
  background: transparent;
}
.accordion__item {
  background: var(--card-face);
}

/* ---------- Палитра: не раздувать шапку и не давать странице уехать вбок ---------- */
.site-header .nav > .nav__link:not(.nav__link--has-mega) {
  display: none;
}
.site-header .header-actions .burger {
  display: flex;
}
.site-header__bar,
.site-header .nav,
.site-header .header-actions {
  min-width: 0;
}
.page__content,
#main,
.blokbaza-slot,
.site-footer {
  overflow-x: clip;
  max-width: 100%;
}
.price-table,
.silver-table,
.comparison,
.pricing-factors__table-wrapper {
  overflow-x: auto;
  max-width: 100%;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --card-hover-scale: 1;
    --card-media-zoom: 1;
    --btn-hover-scale: 1;
  }
  .btn--primary:hover,
  .btn--outline:hover,
  .feature-card:hover,
  .category-card:hover,
  #programs .program-koster-card:hover,
  #programs .program-card-vert:hover {
    transform: none;
  }
}
