/**
 * Formula Market — типографика компонентов (фаза 2)
 * Подключается после app.css, переопределяет размеры через токены
 */

/* === Утилиты === */
.section-title--page {
	font-size: var(--text-3xl);
	margin-top: 30px;
}

.link-secondary {
	font-size: var(--text-xs);
	color: #4D69BB;
	text-decoration: none;
}

.link-secondary:hover {
	color: var(--text-primary);
}

.error-text {
	font-size: var(--text-xs);
	color: #F04B69;
}

.btn-file {
	padding: 4px 7px;
	font-size: var(--text-sm);
}

/* === Формы === */
.form-group p {
	font-size: var(--text-sm);
	color: var(--text-muted);
}

.form-group.error .error-text {
	font-size: var(--text-xs);
}

.form-control {
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
}

.checkbox-wrapper {
	font-size: var(--text-sm);
}

.checkbox-wrapper a {
	font-size: var(--text-sm) !important;
}

.checkbox-wrapper .text {
	font-size: var(--text-sm);
	line-height: var(--leading-ui);
}

.tq_validate .error-text {
	font-size: var(--text-xs);
}

/* === Шапка === */
header .search-form .search-elements .title,
header .search-form .search-elements .category-item,
header .search-form .search-elements .product-elem .info .code,
header .search-form .search-elements .product-elem .info .product-name,
header .search-form .search-field,
header .top-nav .top-menu li a,
header .top-nav .logo .tfl__link,
header .top-nav .logo .tfl__link-label,
header .top-nav .logo span,
header .all_results {
	font-size: var(--text-sm);
}

header .body-nav .catalog-btn,
header .body-nav .catalog-menu > ul > li > a,
header .body-nav .catalog-menu > ul .submenu li a {
	font-size: var(--text-sm);
}

header .body-nav .contacts .phone {
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
}

	/* Компактная шапка на десктопе — всё в одну строку */
@media screen and (min-width: 992px) {
	header .top-nav .container {
		flex-wrap: nowrap;
		align-items: center;
		gap: 6px;
	}

	header .body-nav .container {
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 6px;
	}

	header .top-nav .logo {
		flex: 0 1 auto;
		min-width: 0;
		flex-wrap: nowrap;
		align-items: center;
		gap: 12px;
	}

	header .top-nav .logo > a,
	header .top-nav .logo > div {
		margin-right: 0;
		flex-shrink: 0;
	}

	header .top-nav .logo .tfl__link-container {
		flex-shrink: 0;
		max-width: 164px;
	}

	header .top-nav .social {
		display: none !important;
		margin: 0 !important;
		padding: 0 !important;
		border-left: none !important;
	}

	header .top-nav .social a {
		margin: 0 12px 0 0;
	}

	header .top-nav .top-menu {
		flex: 1 1 auto;
		justify-content: flex-end;
		min-width: 0;
		flex-wrap: nowrap;
		gap: 0;
	}

	header .top-nav .top-menu li {
		margin: 0 22px 0 0;
	}

	header .top-nav .top-menu li:last-child {
		margin-right: 0;
	}

	header .top-nav .top-menu li a {
		font-size: var(--text-sm);
		white-space: nowrap;
	}

	header .top-nav .logo .tfl__link,
	header .top-nav .logo .tfl__link-label,
	header .top-nav .logo .tfl__link-container,
	header .top-nav .logo span {
		font-size: var(--text-sm);
		font-weight: 500;
	}

	header .body-nav .catalog-nav {
		flex: 0 0 auto;
		align-self: stretch;
		display: flex;
		align-items: stretch;
		position: relative;
	}

	header .body-nav .catalog-btn {
		flex: 0 0 auto;
		padding: 0 24px 0 0;
		white-space: nowrap;
		align-self: stretch;
	}

	header .body-nav .search-form {
		flex: 1 1 0;
		width: auto;
		min-width: 0;
		max-width: none;
		align-self: stretch;
		display: flex;
		align-items: center;
		min-height: 100%;
		height: auto;
		box-sizing: border-box;
	}

	header .body-nav .contacts {
		flex: 0 0 auto;
		padding: 0 20px 0 24px;
		min-width: 0;
		flex-wrap: nowrap;
		align-self: center;
	}

	header .body-nav .contacts .contacts-elem {
		display: block;
		min-width: 0;
	}

	header .body-nav .contacts .phone {
		width: 100%;
		font-size: var(--text-sm);
		line-height: var(--leading-ui);
		white-space: nowrap;
	}

	header .body-nav .contacts .info {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
	}

	header .body-nav .contacts .info p {
		margin: 0 15px 0 0;
	}

	header .body-nav .user-nav {
		flex: 0 0 auto;
		flex-wrap: nowrap;
		min-width: 0;
		margin-left: 0;
		border-left: 1px solid #CBD2DF;
		padding-left: 20px;
		align-self: center;
	}

	header .body-nav .user-nav > div {
		display: flex;
		align-items: center;
		flex-wrap: nowrap;
	}

	header .body-nav .user-nav a {
		margin: 0 14px 0 0;
	}

	header .body-nav .user-nav a.login {
		margin-right: 14px;
	}

	header .body-nav .user-nav .bx-basket {
		border-left: 1px solid #CBD2DF;
		padding-left: 16px;
		margin-left: 4px;
	}

	header .body-nav .user-nav .l_kab {
		display: none;
	}
}

@media screen and (min-width: 992px) and (max-width: 1280px) {
	header .body-nav .user-nav a.login span {
		max-width: 72px;
	}
}

/* Умный поиск */
header .search-form .search-elements .search-smart-hint {
	font-size: var(--text-xs);
	color: #4D69BB;
	background: #f4f7fc;
	border-radius: 4px;
	padding: 8px 10px;
	margin: 0 0 10px;
	line-height: var(--leading-ui);
}

header .search-form .search-elements .search-smart-empty {
	font-size: var(--text-sm);
	color: #788192;
	margin-bottom: 8px;
}

header .search-form .search-elements .search-smart-suggestions {
	font-size: var(--text-xs);
	color: #333A48;
	line-height: var(--leading-ui);
}

header .search-form .search-elements .search-smart-suggestions span {
	color: #788192;
	margin-right: 4px;
}

header .search-form .search-elements .search-smart-suggestion {
	border: none;
	background: none;
	padding: 0;
	color: #4D69BB;
	font-size: var(--text-xs);
	font-weight: var(--font-medium);
	cursor: pointer;
	text-decoration: underline;
}

header .search-form .search-elements .search-smart-suggestion:hover {
	color: var(--text-primary);
}

/* === Футер (как в шапке) === */
footer .copyright p,
footer .copyright a,
footer .contacts p,
footer .contacts a:not(.phone) {
	font-size: var(--text-xs);
	line-height: var(--leading-ui);
	color: var(--text-muted);
}

footer .copyright a,
footer .contacts a:not(.phone) {
	color: #4D69BB;
}

footer .copyright a:hover,
footer .contacts a:not(.phone):hover {
	color: var(--text-primary);
}

footer form .title {
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
}

footer form .form-control,
footer form .btn {
	font-size: var(--text-sm);
}

footer .contacts .phone {
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
}

/* === Каталог: сайдбар и фильтр === */
.section-category .sidebar .title {
	font-size: var(--text-sm);
}

.section-category .sidebar .title span {
	font-size: var(--text-sm);
	color: var(--text-muted);
}

.sidebar .filtr-btn,
.sidebar .mob-sidebar-elem.head-elem {
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
}

/* === Корзина === */
.basket-total-info p {
	font-size: var(--text-sm);
	color: var(--text-muted);
}

.basket-total-info p span {
	font-size: var(--text-md);
	font-weight: var(--font-medium);
	color: var(--text-primary);
}

.table-wrapper.basket-table .product-elem .info .code,
.table-wrapper.basket-table .product-elem .info .product-name {
	font-size: var(--text-sm);
}

/* === Оформление заказа (Bitrix SOA) === */
.bx-soa-wrapper,
#bx-soa-order-form {
	font-family: var(--font-family);
	font-size: var(--text-sm);
}

.bx-soa-section-title {
	font-size: var(--text-lg);
	font-weight: var(--font-medium);
}

.bx-soa-wrapper .bx-soa-editstep,
.bx-soa-wrapper a.link-secondary {
	font-size: var(--text-xs);
}

.bx-soa-customer .form-group > label,
.bx-soa-section-content label {
	font-size: var(--text-sm);
}

.bx-soa-cart-t,
.bx-soa-cart-d {
	font-size: var(--text-sm);
}

/* === Cookie-баннер === */
#cookie_note p,
#cookie_note p a {
	font-size: var(--text-sm);
}

/* === Карточка товара: табы, характеристики === */
.section-wrapper.item .tabs-nav li,
.section-wrapper.item .characteristics-list li,
.section-wrapper.item .characteristics-list p {
	font-size: var(--text-sm);
}

.section-wrapper.item .right-bar .price .new-price {
	font-size: var(--text-md);
	font-weight: var(--font-medium);
}

/* === Фаза 3: личный кабинет === */
.personal-area-wrapper .title {
	font-size: var(--text-md);
	font-weight: var(--font-medium);
}

.table-wrapper.personal-area-table p {
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
}

.table-wrapper.personal-area-table span {
	color: var(--text-muted);
}

.personal-area-bar .personal-area-info .info .name {
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
}

.personal-area-bar .personal-area-info .info .email,
.personal-area-bar .personal-area-info .info .phone,
.personal-area-bar .personal-area-info .info .edit {
	font-size: var(--text-sm);
}

.personal-area-bar .personal-area-info .info .email,
.personal-area-bar .personal-area-info .info .phone {
	color: var(--text-muted);
}

.personal-area-bar .discount .discount-elem {
	font-size: var(--text-xl);
	font-weight: var(--font-medium);
}

.personal-area-bar .discount .discount-item p {
	font-size: var(--text-sm);
	color: var(--text-muted);
}

.personal-area-bar .discount .discount-item a {
	font-size: var(--text-xs);
}

.editing .photo-wrapper a {
	font-size: var(--text-sm);
}

/* === Сравнение === */
.comparison-page .comparison-table span,
.comparison-page .comparison-table p {
	font-size: var(--text-sm);
}

.comparison-page .comparison-table span {
	color: var(--text-muted);
}

.comparison-page .comparison-table p {
	font-weight: var(--font-medium);
}

.comparison-page .mob-titles ul li {
	font-size: var(--text-sm);
	color: var(--text-muted);
}

.comparison-nav .radio-wrapper p {
	font-size: var(--text-sm);
}

/* === Модальные окна === */
.modal .modal-body .modal-title {
	font-size: var(--text-md);
	font-weight: var(--font-medium);
}

.modal .modal-body .modal-subtitle,
.modal .modal-body .product-wrapper .product-elem .info .code,
.modal .modal-body .product-wrapper .product-elem .info .prodict-name,
.modal .modal-body .product-wrapper .price .new-price,
.modal .modal-body .product-wrapper .price .old-price,
.modal.modal-contacts .address {
	font-size: var(--text-sm);
}

.modal .modal-body .modal-subtitle,
.modal .modal-body .product-wrapper .product-elem .info .code,
.modal .modal-body .product-wrapper .price .old-price,
.modal.modal-contacts .address {
	color: var(--text-muted);
}

.modal .modal-body .search-items li a {
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
}

.modal.modal-how .descr {
	font-size: var(--text-sm);
}

.modal.modal-contacts .phone {
	font-size: var(--text-xl);
	font-weight: var(--font-medium);
}

/* === Таблицы и заказы === */
.table-wrapper .product-elem .info .code,
.table-wrapper .product-elem .info .product-name {
	font-size: var(--text-sm);
}

.table-wrapper .price .new-price {
	font-size: var(--text-md);
	font-weight: var(--font-medium);
}

.table-wrapper .price .old-price {
	font-size: var(--text-sm);
	color: var(--text-muted);
}

.order-processed-page .descr {
	font-size: var(--text-md);
	font-weight: var(--font-medium);
}

/* === Мобильное меню === */
.mob-main-nav .mob-elem a {
	font-size: var(--text-sm);
}

.mob-menu .head-elem {
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
}

/* === Скрытые сообщения об ошибках (вместо inline style) === */
.error-text.is-hidden {
	display: none;
}
