/*
 * КнигДекор · типографическая шкала v1
 *
 * Этот файл подключается последним и служит миграционным слоем поверх
 * исторических размеров в style.css и стилях отдельных страниц.
 * Размер выбирается по роли текста, а не по конкретному блоку.
 */

:root {
  --type-meta: clamp(0.8125rem, 0.78rem + 0.12vw, 0.875rem);
  --type-ui: clamp(0.875rem, 0.84rem + 0.16vw, 0.9375rem);
  --type-body: clamp(1rem, 0.96rem + 0.18vw, 1.0625rem);
  --type-lead: clamp(1.0625rem, 0.98rem + 0.42vw, 1.25rem);
  --type-title-product: clamp(1.25rem, 1.14rem + 0.46vw, 1.5rem);
  --type-title-card: clamp(1.5rem, 1.3rem + 0.9vw, 2rem);
  --type-title-section: clamp(2.125rem, 1.8rem + 1.35vw, 2.75rem);
  --type-title-page: clamp(2.375rem, 2rem + 1.5vw, 3.25rem);
  --type-title-display: clamp(2.5rem, 2.1rem + 1.8vw, 3.5rem);

  --leading-meta: 1.45;
  --leading-ui: 1.4;
  --leading-body: 1.62;
  --leading-lead: 1.55;
  --leading-card: 1.1;
  --leading-section: 1.06;
  --leading-page: 1.04;
  --leading-display: 1.02;
}

/* Общие роли ----------------------------------------------------------- */

.crumbs,
.designers-crumbs,
.projects-crumbs,
.delivery-crumbs,
.customer-photos-crumbs,
.about-page__crumbs,
.privacy-crumbs {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

.eyebrow,
.card__kicker,
.projects-eyebrow,
.delivery-eyebrow,
.designers-scale-card__value,
.catalog-department-card__kicker,
.art-filter-label {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

.btn,
.form__label,
.form__radio span,
.catalog-department-card__link,
.catalog-color-category,
.catalog-advanced-filter-trigger,
.art-filter,
.art-order-note > a {
  font-size: var(--type-ui);
  line-height: var(--leading-ui);
}

.lead {
  font-size: var(--type-lead);
  line-height: var(--leading-lead);
}

.form__hint,
.form__state,
.form__check > span {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

/* Маркетинговые страницы ---------------------------------------------- */

body:is(
  .theme-v2.home-store,
  .theme-v2.catalog-store,
  .theme-v2.projects-page,
  .theme-v2.designers-page,
  .theme-v2.about-content-page,
  .theme-v2.delivery-page,
  .theme-v2.customer-photos-page
) main p {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

body:is(
  .theme-v2.catalog-store,
  .theme-v2.projects-page,
  .theme-v2.designers-page,
  .theme-v2.about-content-page,
  .theme-v2.delivery-page,
  .theme-v2.customer-photos-page
) main h1 {
  font-size: var(--type-title-page);
  line-height: var(--leading-page);
}

body:is(
  .theme-v2.home-store,
  .theme-v2.catalog-store,
  .theme-v2.projects-page,
  .theme-v2.designers-page,
  .theme-v2.about-content-page,
  .theme-v2.delivery-page,
  .theme-v2.customer-photos-page
) main h2 {
  font-size: var(--type-title-section);
  line-height: var(--leading-section);
}

body:is(
  .theme-v2.home-store,
  .theme-v2.catalog-store,
  .theme-v2.projects-page,
  .theme-v2.designers-page,
  .theme-v2.about-content-page,
  .theme-v2.delivery-page
) main h3 {
  font-size: var(--type-title-card);
  line-height: var(--leading-card);
}

.projects-page .projects-hero h1,
.designers-page .designers-hero h1,
.delivery-page .delivery-hero h1,
.customer-photos-page .customer-photos__head h1 {
  font-size: var(--type-title-display);
  line-height: var(--leading-display);
}

.about-content-page .about-hero__copy h1,
.catalog-store .catalog-hero__copy h1 {
  font-size: var(--type-title-page);
  line-height: var(--leading-page);
}

.projects-page .projects-hero__lead,
.designers-page .designers-hero__lead,
.delivery-page .delivery-hero__lead,
.about-content-page .about-hero__copy > p,
.catalog-store .catalog-hero__copy > p {
  font-size: var(--type-lead);
  line-height: var(--leading-lead);
}

.projects-page .projects-hero__aside,
.delivery-page .delivery-hero__note,
.designers-page .designers-partner-card > p:last-child,
.designers-page .designers-scale-card > p:not(.designers-scale-card__value),
.designers-page .designers-contact__copy > p {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

.projects-page .projects-hero__aside strong,
.delivery-page .delivery-hero__note strong {
  font-size: var(--type-body);
}

.designers-page .designers-partner-card h3,
.designers-page .designers-scale-card h3,
.projects-page .project-card h3 {
  font-size: var(--type-title-card);
  line-height: var(--leading-card);
}

.designers-page .designers-scale-card__value,
.designers-page .designers-scale-card a,
.delivery-page .delivery-fact span,
.delivery-page .delivery-tariff__label {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

.designers-page .designers-scale-card a {
  font-size: var(--type-ui);
}

/* Главная -------------------------------------------------------------- */

.home-store .home-v3-hero__intro h1 {
  font-size: var(--type-title-section);
  line-height: var(--leading-section);
}

.home-store .home-slide__content > span,
.home-store .home-art-card__kicker,
.home-store .home-product-grid .card__kicker {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

.home-store .home-slide__content h2 {
  font-size: var(--type-title-display);
  line-height: var(--leading-display);
}

.home-store .home-commerce-head h2,
.home-store .home-origin__copy h2,
.home-store .home-interiors__copy h2,
.home-store .home-audiences__intro h2,
.home-store .home-art__head h2,
.home-store .home-faq__intro h2 {
  font-size: var(--type-title-section);
  line-height: var(--leading-section);
}

.home-store .home-origin__copy p,
.home-store .home-interiors__copy p,
.home-store .home-audience-card p,
.home-store .home-art-card p,
.home-store .home-faq .faq__a {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

.home-store .home-audience-card h3,
.home-store .home-art-card h3 {
  font-size: var(--type-title-card);
  line-height: var(--leading-card);
}

.home-store .home-path-card strong,
.home-store .home-color-card > span,
.home-store .home-origin__cta,
.home-store .home-origin__proof span,
.home-store .home-origin__proof a {
  font-size: var(--type-ui);
  line-height: var(--leading-ui);
}

/* Каталог и карточки товара ------------------------------------------- */

.catalog-store .catalog-department-card h2,
.catalog-store .catalog-shop__title,
.catalog-store .catalog-overview-help h2,
.catalog-store .catalog-help h2,
.art-store .art-process__intro h2,
.art-store .art-final h2 {
  font-size: var(--type-title-section);
  line-height: var(--leading-section);
}

.catalog-store .catalog-department-card p,
.catalog-store .catalog-overview-help p,
.catalog-store .catalog-help p,
.art-store .art-process__intro p,
.art-store .art-steps p,
.art-store .art-final p,
.art-store .art-order-note p {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

.catalog-store .catalog-card .card__kicker,
.catalog-store .catalog-preview-card > span,
.catalog-store .catalog-result-status,
.catalog-store .catalog-color-categories__label,
.catalog-store .catalog-facet__label,
.catalog-store .catalog-applied__label,
.art-store .art-steps li > span {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

.catalog-store .catalog-card .card__title,
.catalog-store .catalog-preview-card h3 {
  font-size: var(--type-title-product);
  line-height: var(--leading-card);
}

.catalog-store .catalog-card .card__price,
.catalog-store .catalog-card .card__add-btn,
.catalog-store .catalog-preview-card strong,
.art-store .art-filter span {
  font-size: var(--type-ui);
  line-height: var(--leading-ui);
}

.art-store .art-steps h3 {
  font-size: var(--type-title-card);
  line-height: var(--leading-card);
}

.product__title,
.pdp-page .product__title {
  font-size: var(--type-title-page);
  line-height: var(--leading-page);
}

.product__intro,
.pdp-page .product__intro,
.product__description,
.pdp-page .product__description {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

.product__photo-note,
.pdp-page .product__photo-note,
.product__facts span,
.pdp-page .product__facts span,
.product__return,
.product__protective,
.product__delivery-link {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

.product__facts strong,
.pdp-page .product__facts strong,
.product__delivery-option b,
.product__delivery-option small,
.product__total,
.pdp-page .product__gift span,
.pdp-page .product__buy .btn {
  font-size: var(--type-ui);
  line-height: var(--leading-ui);
}

/* Старые проектные страницы ------------------------------------------- */

body:not([class]) .hero h1 {
  font-size: var(--type-title-display);
  line-height: var(--leading-display);
}

body:not([class]) .section-head h2,
body:not([class]) .section h2.mt-16 {
  font-size: var(--type-title-section);
  line-height: var(--leading-section);
}

body:not([class]) .hero .lead,
body:not([class]) .section .lead {
  font-size: var(--type-lead);
  line-height: var(--leading-lead);
}

body:not([class]) .card h3,
body:not([class]) .step h3 {
  font-size: var(--type-title-card);
  line-height: var(--leading-card);
}

body:not([class]) .card p,
body:not([class]) .step p,
body:not([class]) .perks,
body:not([class]) .faq__a {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

/* Корзина -------------------------------------------------------------- */

.cart-page .cart-page__title-row h1 {
  font-size: var(--type-title-page);
  line-height: var(--leading-page);
}

.cart-page .cart-page__title-row p,
.cart-page .cart-empty-v2 > p:not(.cart-empty-v2__eyebrow) {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

.cart-page .cart-empty-v2 h2 {
  font-size: var(--type-title-section);
  line-height: var(--leading-section);
}

.cart-page .cart-page__eyebrow,
.cart-page .cart-empty-v2__eyebrow,
.cart-page .cart-product__type,
.cart-page .cart-product__price small,
.cart-page .cart-order__head span,
.cart-page .cart-order__delivery-next strong,
.cart-page .cart-order__assurances,
.cart-page .cart-gift__copy small {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

.cart-page .cart-product__title {
  font-size: var(--type-title-product);
  line-height: var(--leading-card);
}

.cart-page .cart-order__rows > div,
.cart-page .cart-order__delivery-next span,
.cart-page .cart-gift__copy b,
.cart-page .cart-gift > strong,
.cart-page .cart-primary-action,
.cart-page .cart-secondary-action,
.cart-page .cart-order__continue {
  font-size: var(--type-ui);
  line-height: var(--leading-ui);
}

/* Оформление заказа ---------------------------------------------------- */

.checkout-page .checkout-page__title-row h1 {
  font-size: var(--type-title-page);
  line-height: var(--leading-page);
}

.checkout-page .checkout-page__title-row p,
.checkout-page .checkout-empty p {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

.checkout-page .checkout-page__back,
.checkout-page .checkout-page__eyebrow,
.checkout-page .checkout-card__head p,
.checkout-page .checkout-field small,
.checkout-page .checkout-wrap-note small,
.checkout-page .checkout-consent,
.checkout-page .checkout-state,
.checkout-page .checkout-payment-note,
.checkout-page .checkout-order-v2__head a,
.checkout-page .checkout-product__copy a,
.checkout-page .checkout-product__copy span,
.checkout-page .checkout-product__copy em,
.checkout-page .checkout-product > strong,
.checkout-page .checkout-order-v2__assurances {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

.checkout-page .checkout-field > span,
.checkout-page .checkout-field legend,
.checkout-page .checkout-contact-method span,
.checkout-page .checkout-wrap-note b,
.checkout-page .checkout-order-v2__rows > div,
.checkout-page .checkout-empty a {
  font-size: var(--type-ui);
  line-height: var(--leading-ui);
}

.checkout-page .checkout-field input,
.checkout-page .checkout-field select,
.checkout-page .checkout-field textarea,
.checkout-page .checkout-submit {
  font-size: var(--type-body);
}

.checkout-page .checkout-empty h2 {
  font-size: var(--type-title-card);
  line-height: var(--leading-card);
}

/* Статус заказа -------------------------------------------------------- */

.order-status-page .order-status-title {
  font-size: var(--type-title-page);
  line-height: var(--leading-page);
}

.order-status-page .order-status-copy {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

.order-status-page .order-status-eyebrow,
.order-status-page .order-status-meta span,
.order-status-page .order-status-meta strong,
.order-status-page .order-status-steps span,
.order-status-page .order-status-steps small,
.order-status-page .order-status-note {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

.order-status-page .order-status-next h2,
.order-status-page .order-status-steps b,
.order-status-page .order-status-action {
  font-size: var(--type-ui);
  line-height: var(--leading-ui);
}

/* Информационные и юридические страницы ------------------------------- */

.privacy-page .privacy-hero h1 {
  font-size: var(--type-title-page);
  line-height: var(--leading-page);
}

.privacy-page .privacy-hero__inner > p {
  font-size: var(--type-lead);
  line-height: var(--leading-lead);
}

.privacy-page .privacy-document h2 {
  font-size: var(--type-title-card);
  line-height: var(--leading-card);
}

.privacy-page .privacy-document h2 span,
.privacy-page .privacy-hero__facts dt,
.privacy-page .privacy-document__legal {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

.privacy-page .privacy-document p,
.privacy-page .privacy-document li {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

.privacy-page .privacy-toc,
.privacy-page .privacy-hero__facts dd {
  font-size: var(--type-ui);
  line-height: var(--leading-ui);
}

/* Семантические исключения имеют приоритет над общим размером абзаца. */

body.projects-page.theme-v2 .projects-hero h1,
body.delivery-page.theme-v2 .delivery-hero h1,
body.customer-photos-page.theme-v2 .customer-photos__head h1 {
  font-size: var(--type-title-display);
  line-height: var(--leading-display);
}

body.designers-page.theme-v2 .designers-hero h1 {
  font-size: var(--type-title-page);
  line-height: var(--leading-page);
}

body.home-store.theme-v2 .home-slide__content h2 {
  font-size: var(--type-title-display);
  line-height: var(--leading-display);
}

body.projects-page.theme-v2 .projects-hero__lead,
body.designers-page.theme-v2 .designers-hero__lead,
body.delivery-page.theme-v2 .delivery-hero__lead,
body.about-content-page.theme-v2 .about-hero__copy > p,
body.catalog-store.theme-v2 .catalog-hero__copy > p {
  font-size: var(--type-lead);
  line-height: var(--leading-lead);
}

body.projects-page.theme-v2 .projects-eyebrow,
body.delivery-page.theme-v2 .delivery-eyebrow,
body.designers-page.theme-v2 .designers-scale-card__value,
body.catalog-store.theme-v2 .catalog-result-status,
body.privacy-page.theme-v2 .privacy-document__legal {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

body.theme-v2 .crumbs,
body.pdp-page.pdp-store.theme-v2 .crumbs {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

body.privacy-page.theme-v2 .privacy-toc,
body.privacy-page.theme-v2 .privacy-toc a {
  font-size: var(--type-ui);
  line-height: var(--leading-ui);
}

/* Карточка товара догружает свою тему динамически, поэтому здесь нужна
   более высокая специфичность, а не зависимость от порядка загрузки. */
body.pdp-page.pdp-store.theme-v2 .product__title {
  font-size: var(--type-title-page);
  line-height: var(--leading-page);
}

body.pdp-page.pdp-store.theme-v2 .product__intro,
body.pdp-page.pdp-store.theme-v2 .product__description {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

body.pdp-page.pdp-store.theme-v2 .product__photo-note,
body.pdp-page.pdp-store.theme-v2 .product__facts span,
body.pdp-page.pdp-store.theme-v2 .product__return,
body.pdp-page.pdp-store.theme-v2 .product__protective,
body.pdp-page.pdp-store.theme-v2 .product__delivery-link {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}

body.pdp-page.pdp-store.theme-v2 .product__facts strong,
body.pdp-page.pdp-store.theme-v2 .product__delivery-option b,
body.pdp-page.pdp-store.theme-v2 .product__delivery-option small,
body.pdp-page.pdp-store.theme-v2 .product__total,
body.pdp-page.pdp-store.theme-v2 .product__gift span,
body.pdp-page.pdp-store.theme-v2 .product__buy .btn {
  font-size: var(--type-ui);
  line-height: var(--leading-ui);
}

body.theme-v2.catalog-store .catalog-color-chapter__intro p {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

/* Никогда не уменьшаем содержательный текст на мобильном --------------- */

@media (max-width: 680px) {
  .designers-page .designers-hero__lead,
  .projects-page .projects-hero__lead,
  .delivery-page .delivery-hero__lead,
  .catalog-store .catalog-hero__copy > p,
  .about-content-page .about-hero__copy > p {
    font-size: var(--type-lead);
  }

  .designers-page .designers-form .form__radio span,
  .catalog-store .catalog-color-category,
  .checkout-page .checkout-contact-method span {
    font-size: var(--type-ui);
  }

  body:not([class]) .section .grid > *,
  body:not([class]) .section .form {
    min-width: 0;
  }

  body:not([class]) .section .form {
    padding: 24px;
  }

  body:not([class]) .section .form__radio-group {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
