/* Легенда: типографика для чтения, а не для макета.
   Макет был свёрстан в 9–13 px — это нечитаемо для людей 50+ и со слабым зрением.
   Шкала (одинакова на всех ширинах, поэтому правила вне media перекрывают уменьшения из style.css):
     --fs-xs 13px — сноски, юридический текст, теги, мелкие подписи (минимум на сайте)
     --fs-sm 14px — подписи полей, меню, заголовки таблиц, ссылки в подвале
     --fs-md 16px — основной текст, описания карточек, ответы, кнопки
     --fs-lg 18px — лиды, заголовки карточек
   Поля ввода — 16px: при меньшем размере iOS увеличивает страницу при фокусе.
   Серые оттенки затемнены до контраста не ниже 4.5:1 на белом (WCAG AA). */
:root{--fs-xs:13px;--fs-sm:14px;--fs-md:16px;--fs-lg:18px;--muted:#56657a}
body{font-size:var(--fs-md);line-height:1.6}
p{color:var(--muted)}

/* Шапка и меню */
.brand>span{font-size:12px;color:#d3dbe4}
.city-button{font-size:var(--fs-sm)}
.header__trust{font-size:var(--fs-xs)}
.header__trust small{font-size:12px;color:#c3cfdb}
.header__messengers button{font-size:var(--fs-xs)}
.header__phone{font-size:15px}
.header__cta{font-size:var(--fs-sm)}
.header__nav,.header__nav a,.header__nav .menu{font-size:var(--fs-sm)}
.header__nav .sub-menu a{font-size:var(--fs-sm)}
@media(max-width:1280px){.header__messengers button span{display:none}.header__nav .menu{gap:22px}}
@media(max-width:1100px){.header__nav .menu{gap:16px}.header__nav,.header__nav a,.header__nav .menu{font-size:13px}}
@media(max-width:900px){.header__nav .menu{gap:12px}.header__phone{font-size:var(--fs-sm)}}
@media(max-width:767px){.header__nav a,.header__nav .sub-menu a{font-size:var(--fs-md)}}

/* Первый экран */
.eyebrow{font-size:12px;letter-spacing:.12em}
.hero .eyebrow{font-size:12px}
.eyebrow--muted,.expert-card__text .eyebrow,.dialog__header .eyebrow{font-size:12px;color:#5d6c80}
.hero__lead{font-size:var(--fs-lg);line-height:1.55}
.hero__note{font-size:var(--fs-xs);color:#b9c7d4}
.guarantee strong{font-size:var(--fs-md)}
.guarantee>span>span{font-size:var(--fs-sm);line-height:1.5}
.hero__actions .btn,.btn{font-size:15px}
.rating-card b{font-size:var(--fs-xs)}
.rating-card small{font-size:12px}
.page-hero__points li{font-size:var(--fs-md)}
.breadcrumbs{font-size:var(--fs-sm)}

/* Форма оценки */
.valuation-form__heading p{font-size:var(--fs-sm)}
.field>span:first-child:not(.input-wrap):not(.sr-only),.field-label,.choice-field legend{font-size:var(--fs-sm)}
.field-label small{font-size:var(--fs-xs)}
.field input,.field select,.quiz-dialog .field input,.quiz-dialog .field select{font-size:var(--fs-md)}
.chips>label>span,.chips--contact>label>span,.quiz-lead .chips>label>span{font-size:var(--fs-sm)}
.dropzone b,.dropzone--quiz b{font-size:var(--fs-sm)}
.dropzone small,.dropzone--quiz small{font-size:var(--fs-xs)}
.consent,.quiz-dialog .consent,.quiz-lead .consent{font-size:var(--fs-xs);line-height:1.5}
.form-message,.quiz-error{font-size:var(--fs-sm)}
.valuation-form .btn-full{font-size:var(--fs-md)}
.valuation-form__quiz{font-size:var(--fs-sm)}
.text-button{font-size:15px}

/* Полоса преимуществ */
.benefit strong{font-size:15px}
.benefit span{font-size:var(--fs-sm);color:#c9d6e2}

/* Заголовки секций */
.section-heading h2+p,.section-heading>p{font-size:var(--fs-md)}
.section-heading>.text-button{font-size:15px}
.fine-print{font-size:var(--fs-xs);color:#5b6a7d}

/* Карточки категорий, примеры, этапы */
.category-card h3,.case-card h3{font-size:var(--fs-lg)}
.category-card p,.case-card p{font-size:15px;line-height:1.5;max-width:none}
.category-card__bottom>b{font-size:var(--fs-md)}
.case-card__tag{font-size:12px}
.case-card__bottom>span:first-child{font-size:var(--fs-xs)}
.step h3{font-size:var(--fs-lg)}
.step p{font-size:15px;line-height:1.6}
.step__number{font-size:var(--fs-xs)}

/* Сравнение и эксперт */
.compare-card h3{font-size:var(--fs-lg)}
.check-list{font-size:15px}
.expert-card__text p{font-size:15px}
.expert-card__text .text-button{font-size:var(--fs-sm)}

/* Отзывы */
.review-card__copy blockquote{font-size:var(--fs-md);line-height:1.55}
.review-card__copy>strong{font-size:var(--fs-sm)}
.review-card__copy>span:not(.stars),.review-card__copy>.text-button{font-size:var(--fs-xs)}
.review-card__poster>small,.office-teaser>small,.branch-feature>small,.image-caption{font-size:12px}
.office-teaser>strong{font-size:var(--fs-md)}
.office-teaser>span{font-size:var(--fs-sm)}

/* Прайс */
.tab{font-size:var(--fs-sm)}
.price-table{font-size:15px}
.price-table th{font-size:var(--fs-xs);color:#4f5f73}
.price-table td,.price-table td:first-child{font-size:15px}
.price-table td:last-child{font-size:var(--fs-md)}
.price-table td:before,.price-table td:last-child:before{font-size:12px}
.pricing-foot p,.pricing-foot>p{font-size:var(--fs-xs)}
.pricing-foot>.text-button{font-size:var(--fs-sm)}
.price-help p{font-size:15px}
.price-help .btn{font-size:var(--fs-sm)}

/* FAQ */
.faq-item summary{font-size:var(--fs-md);line-height:1.45}
.faq-item__answer p{font-size:15px;line-height:1.7;color:#4a5a6e}

/* Филиалы и карта */
.branch-button strong{font-size:var(--fs-md)}
.branch-button>span{font-size:var(--fs-sm);color:#5a6a7e}
.branch-button__bottom{font-size:var(--fs-sm)!important}
.branch-button small{font-size:var(--fs-xs)}
.branch-item__link{font-size:var(--fs-sm)}
.map__overlay p{font-size:var(--fs-sm);color:#3a566e}
.map__overlay .btn{font-size:var(--fs-sm)}
.route-button>span{font-size:var(--fs-sm)}
.route-button small{font-size:var(--fs-xs)}

/* Контакты */
.contact-banner p{font-size:var(--fs-md)}
.contact-action{font-size:var(--fs-sm)}
.contact-action--phone{font-size:var(--fs-sm)}
.contact-action--phone small{font-size:var(--fs-xs)}

/* Подвал */
.footer__grid :is(h3,.footer__title){font-size:15px;margin-bottom:10px}
.footer__grid>div>a:not(.footer__phone),.footer__grid>div>button,.footer__grid>div>span{font-size:var(--fs-sm);line-height:1.5;color:#4f5f73;margin-top:8px}
.footer__brand p{font-size:var(--fs-sm)}
.footer__brand>span{font-size:var(--fs-xs)}
.footer__phone{font-size:var(--fs-md)}
.footer__legal p{font-size:var(--fs-xs);color:#5b6a7d}
.footer__legal b{color:#46566a}

/* Мобильная панель */
.mobile-bar>a,.mobile-bar>button{font-size:12px}
.mobile-bar>.mobile-bar__primary{font-size:var(--fs-sm)}

/* Квиз и диалоги */
.quiz-progress__labels{font-size:var(--fs-xs)}
.quiz-panel>p,.quiz-lead>p{font-size:15px}
.quiz-panel>.text-button{font-size:var(--fs-sm)}
.quiz-category{font-size:var(--fs-sm)}
.model-option{font-size:var(--fs-sm)}
.condition-options b{font-size:var(--fs-md)}
.condition-options small{font-size:var(--fs-sm)}
.kit-field label{font-size:var(--fs-sm)}
.kit-field legend{font-size:var(--fs-sm)}
.hint p{font-size:var(--fs-sm)}
.quiz-result p{font-size:var(--fs-sm)}
.quiz-result__overline{font-size:12px}
.quiz-footer .btn,.quiz-footer #quiz-submit{font-size:15px}
.info-content{font-size:var(--fs-md)}
.info-content .submission-summary{font-size:var(--fs-sm)}
.city-option small{font-size:var(--fs-xs)}
.toast{font-size:var(--fs-sm)}

/* Подгонка вёрстки под крупный шрифт */
.valuation-form__heading .valuation-form__title{color:var(--ink)}
.chips>label>span{white-space:normal;text-align:center;line-height:1.2;padding-inline:6px}
.header__trust span{white-space:nowrap}
@media(max-width:1500px){.header__messengers button span{display:none}.header__messengers{gap:14px}.header__messengers .icon{width:24px;height:24px}}
.mobile-bar>.mobile-bar__primary{white-space:nowrap;font-size:var(--fs-xs)}
.dropzone>span:not(.upload-plus){min-width:0}

/* Контраст не ниже 4.5:1 (замер tools/check-visual.mjs) */
.text-button,.branch-item__link,.branch-button__bottom,.branch-detail dd a,.prose a,.office-teaser>span,.route-button small,.breadcrumbs a:hover{color:#54675c!important}
.category-card__bottom>b,.catalog-branch__head b{color:#54675c}
.step__number{color:#4c5851}
.case-card__tag{color:#4a5a6e}
.tab:not(.is-active){color:#4a5a6e}
.price-table td:last-child{color:#118044}
.pricing-foot p,.pricing-foot>p,.dropzone small,.dropzone--quiz small,.field-label small{color:#5b6a7d}
.branch-button small,.branch-button__bottom>small{color:#56657a}
.contact-action--telegram{background:#647069}
/* Фирменный фиолетовый MAX: на тёмной шапке — светлее, на белом — насыщенный (контраст AA) */
.header__messengers button[data-contact=max]>.icon{color:#9ca39c}
.chips--contact input[value=max]+span>.icon{color:#505d56}
.contact-action--max{background:#505d56}
/* Кнопка «очки» в шапке: на планшетах город уступает ей место (город выбирается и в блоке адресов) */
@media(max-width:900px){.city-button{display:none}}
