/* ==========================================================================
   Оформление страниц продуктов и решений.
   Подключается только на страницах продуктов/решений. Кнопки, шапка и подвал — общие, из style.css и header.css.
   ========================================================================== */

/* ---------- Токены, база, типографика ---------- */
/* ==========================================================================
   RT-IB redesign layer («Контур»)
   Подключается после assets/css/style.css и переопределяет визуальный слой.
   ========================================================================== */
/* ---------- Шрифт: Proxima Nova (3 полноценных начертания, woff2-сабсет: латиница + кириллица) ---------- */
@font-face {
	font-family: "Proxima Nova RT";
	src: url("../fonts/ProximaNova/proximanova-400.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Proxima Nova RT";
	src: url("../fonts/ProximaNova/proximanova-600.woff2") format("woff2");
	font-weight: 500 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Proxima Nova RT";
	src: url("../fonts/ProximaNova/proximanova-700.woff2") format("woff2");
	font-weight: 650 800;
	font-style: normal;
	font-display: swap;
}
/* ---------- Токены ---------- */
:root {
	--rx-void: #000000;
	--rx-carbon: #0c0c0e;
	--rx-surface: #151518;
	--rx-raised: #1d1d21;
	--rx-line: rgba(255, 255, 255, 0.09);
	--rx-line-strong: rgba(255, 255, 255, 0.18);
	--rx-bone: #f3f2ee;
	--rx-text: #d9d8d3;
	--rx-ash: #8f8e8a;
	--rx-signal: #ffcb05;
	--rx-signal-hi: #ffe066;
	--rx-ember: #ff8a00;
	--rx-ink: #0a0a0a;

	--rx-font: "Proxima Nova RT", "Helvetica Neue", Arial, sans-serif;

	--rx-fs-display: clamp(2.75rem, 1.5rem + 4.6vw, 6.25rem);
	--rx-fs-h1: clamp(2.5rem, 1.7rem + 3.6vw, 5rem);
	--rx-fs-h2: clamp(2.125rem, 1.6rem + 2.4vw, 4rem);
	--rx-fs-h3: clamp(1.375rem, 1.2rem + 0.7vw, 1.75rem);
	--rx-fs-lead: clamp(1.125rem, 1.05rem + 0.35vw, 1.375rem);
	--rx-fs-body: 1.0625rem;
	--rx-fs-small: 0.9375rem;
	--rx-fs-micro: 0.8125rem;

	--rx-gap: clamp(16px, 2vw, 24px);
	--rx-section: clamp(88px, 7vw + 40px, 168px);
	--rx-r-s: 10px;
	--rx-r-m: 18px;
	--rx-r-l: 28px;
	--rx-ease: cubic-bezier(0.2, 0.7, 0.1, 1);
	--rx-header-h: 76px;
}
/* ---------- База ---------- */
html {
	scroll-padding-top: calc(var(--rx-header-h) + 16px);
	-webkit-text-size-adjust: 100%;
}
body {
	background: var(--rx-void) !important;
	color: var(--rx-text);
	font-family: var(--rx-font) !important;
	font-size: var(--rx-fs-body);
	line-height: 1.6;
	font-feature-settings: "ss01" 0, "tnum" 0;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
/* Единая гарнитура: убираем JetBrains Mono / Proxima / Inter из всех компонентов */
body *:not(svg):not(svg *):not(code):not(pre):not(kbd) {
	font-family: var(--rx-font) !important;
}
h1, h2, h3, h4, h5, h6 {
	color: var(--rx-bone);
	font-weight: 600;
	letter-spacing: -0.025em;
	text-wrap: balance;
}
p { text-wrap: pretty; }
::selection { background: var(--rx-signal); color: var(--rx-ink); }
:focus-visible {
	outline: 2px solid var(--rx-signal) !important;
	outline-offset: 3px !important;
	border-radius: 6px;
}
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }

/* ---------- Секции и заголовки ---------- */
/* ==========================================================================
   Секции, заголовки
   ========================================================================== */
.rx-section { padding: var(--rx-section) 0; position: relative; }
.rx-head {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	align-items: end;
	gap: 24px 48px;
	margin-bottom: clamp(40px, 5vw, 72px);
}
.rx-head .rx-lead { justify-self: start; }
.rx-head--nav { grid-template-columns: minmax(0, 1fr) auto; }
.rx-head--nav .rx-lead { margin-top: 20px; }
@media (max-width: 991.98px) {
.rx-head { grid-template-columns: 1fr; }
}
.rx-nav { display: flex; align-items: center; gap: 10px; }
.rx-nav .rx-link { margin-right: 14px; }
.rx-nav__btn {
	display: inline-grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 1px solid var(--rx-line-strong);
	background: transparent;
	color: var(--rx-bone);
	transition: background-color 0.2s, color 0.2s, border-color 0.2s, opacity 0.2s;
}
.rx-nav__btn:hover { background: var(--rx-bone); color: var(--rx-ink); border-color: var(--rx-bone); }
.rx-nav__btn.swiper-button-disabled { opacity: 0.3; pointer-events: none; }

/* ---------- Внутренние страницы — общий каркас и страница продукта ---------- */
/* ==========================================================================
   Внутренние страницы — общий каркас
   ========================================================================== */
.single-page { background: var(--rx-void); }
.page-bg-top {
	background:
		radial-gradient(60% 60% at 85% 0%, rgba(255, 166, 0, 0.16), transparent 70%),
		radial-gradient(40% 40% at 10% 0%, rgba(255, 255, 255, 0.04), transparent 70%) !important;
}
.page-bg-top > *:not(.container):not(section) { }
.bg-bottom { background: none !important; }
.section-top {
	padding-top: calc(var(--rx-header-h) + clamp(24px, 3vw, 48px)) !important;
	padding-bottom: clamp(48px, 6vw, 96px) !important;
}
.breadcrumbs {
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: clamp(24px, 3vw, 40px) !important;
	color: var(--rx-ash) !important;
	font-size: var(--rx-fs-small) !important;
	font-weight: 500 !important;
}
.breadcrumbs a { color: var(--rx-ash) !important; text-decoration: none; transition: color 0.2s; }
.breadcrumbs a:hover { color: var(--rx-bone) !important; }
.breadcrumbs * { font-size: var(--rx-fs-small) !important; letter-spacing: 0 !important; }
.banner__content h1, .section-top h1 {
	font-size: var(--rx-fs-h1) !important;
	line-height: 1 !important;
	letter-spacing: -0.045em !important;
	font-weight: 600 !important;
	color: var(--rx-bone) !important;
	margin-bottom: 28px !important;
	max-width: 18ch;
}
.banner__content p, .banner__content > div:not(.breadcrumbs) {
	color: var(--rx-text) !important;
	font-size: var(--rx-fs-lead) !important;
	line-height: 1.55 !important;
	max-width: 60ch;
}
.banner__content p + p { margin-top: 12px; }
/* Заголовки секций, которые в исходнике были капсом */
.section-title, .about-values__title, .advantages-section__title, .service-structure__title, .service-inside__title, .integration-services__title, .docs-section__title, .partners__title, .contacts-feedback__title, .products-section__head h2, .solutions-section__head h2, .questions-left h2, .instructions-left h2, .interaction-left h2 {
	font-size: var(--rx-fs-h2) !important;
	line-height: 1.02 !important;
	letter-spacing: -0.04em !important;
	font-weight: 600 !important;
	color: var(--rx-bone) !important;
	text-transform: none !important;
}
.section-label { display: none !important; }
hr, .hr { border-color: var(--rx-line) !important; background: var(--rx-line) !important; opacity: 1 !important; }
/* Чипы-фильтры (продукты, блог) */
/* Общая карточка-поверхность */
.product-card, .solution-card, .advantage-card, .contacts-card, .docs-card, .instruction-box, .questions-accordion__item, .algorithm-item {
	border-radius: var(--rx-r-l) !important;
	border: 1px solid var(--rx-line) !important;
	background: var(--rx-carbon) !important;
	box-shadow: none !important;
	transition: border-color 0.3s var(--rx-ease), background-color 0.3s var(--rx-ease);
}
.product-card:hover, .solution-card:hover, .docs-card:hover { border-color: var(--rx-line-strong) !important; background: var(--rx-surface) !important; }
.product-card::before, .product-card::after, .solution-card::before, .solution-card::after, .advantage-card::before, .advantage-card::after { display: none !important; }
.algorithm-item { border: 0 !important; background: transparent !important; border-top: 1px solid var(--rx-line-strong) !important; border-radius: 0 !important; padding-top: 24px !important; }
/* Подбор решения: выравнивание по левому краю */
/* ---------- Уважение к reduce motion ---------- */
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-delay: 0s !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
.rx-marquee__track { animation: none !important; flex-wrap: wrap; width: auto; }
}
/* Навигация слайдеров внутренних страниц: единый круглый контрол */
/* Стрелка в кнопках — единая (шеврон), вместо треугольников из макета */
/* Метаданные карточек блога — читаемый контраст */
/* Иконки-«шапочки» у категорий блога одинаковые и ничего не различают — убираем */
/* Партнёры: вкладки без шестерёнок, активная — жёлтая метка */
/* Отдел вакансии */
/* Контакты */
.contacts-card__title { font-size: var(--rx-fs-h3) !important; letter-spacing: -0.025em !important; }
/* Видео о компании показываем и на мобильных */
@media (max-width: 575.98px) {
.rx-play { width: 64px !important; height: 64px !important; }
}
/* Шапка читается над любым фоном */
/* Страница продукта / решения: hero */
.product-page .section-top {
	min-height: min(760px, 92svh);
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: var(--rx-void);
}
.product-page .section-top > .container { position: relative; z-index: 2; width: 100%; }
.product-page__image {
	left: auto !important;
	width: 64% !important;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 38%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 38%);
}
.product-page__image img { object-position: 85% 50%; }
.product-page__image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, #000 0%, transparent 30%);
}
.banner-product-name {
	display: flex !important;
	align-items: center;
	gap: 18px !important;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 0 24px !important;
	background: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}
.banner-product-name::before { display: none !important; }
.banner-product-name h1 {
	color: var(--rx-bone) !important;
	font-size: var(--rx-fs-h1) !important;
	margin: 0 !important;
	max-width: 12ch;
}
.banner-product-icon:empty { display: none; }
.banner-product-icon img { width: 64px; height: 64px; object-fit: contain; }
.product-page .banner__text { max-width: 46ch !important; }
@media (max-width: 991.98px) {
.product-page .section-top { min-height: 0; flex-direction: column; align-items: stretch; }
.product-page__image { position: absolute !important; width: 100% !important; opacity: 0.45; -webkit-mask-image: linear-gradient(0deg, transparent 10%, #000 60%); mask-image: linear-gradient(0deg, transparent 10%, #000 60%); }
.banner-product-icon img { width: 44px; height: 44px; }
}
.banner-product-icon:not(:has(img)) { display: none !important; }
@media (max-width: 991.98px) {
.product-page .section-top { padding-bottom: 56px !important; }
.main-banner__image.product-page__image { z-index: 0 !important; opacity: 0.55; }
}
.rx-header::after { display: none !important; }
.ai-message--user { color: var(--rx-bone) !important; }
.ai-message--user * { color: var(--rx-bone) !important; }
.ai-message--bot .ai-message__inner { padding: 16px 18px !important; }
.ai-quick { display: flex !important; flex-wrap: wrap; gap: 8px !important; margin-top: 14px !important; padding: 0 !important; background: none !important; border: 0 !important; }
.ai-quick button { min-height: 38px !important; padding: 0 14px !important; }
/* Мобильное меню: панель внутри нижней навигации */
/* Затухание края слайдеров — чистый градиент вместо размытого «стекла» */
.advantages-section { padding-top: var(--rx-section) !important; padding-bottom: var(--rx-section) !important; }
.rx-play { background: rgba(10, 10, 10, 0.78) !important; color: var(--rx-signal) !important; box-shadow: 0 0 0 1px rgba(255, 203, 5, 0.5), 0 0 0 12px rgba(0, 0, 0, 0.25) !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.rx-media:hover .rx-play { background: var(--rx-signal) !important; color: var(--rx-ink) !important; box-shadow: 0 0 0 16px rgba(255, 203, 5, 0.16) !important; }

/* ---------- Типографическая система Proxima Nova ---------- */
/* ==========================================================================
   Типографическая система Proxima Nova
   Display/H1 — Bold 700, ss01 (однокомнатная «а») · H2–H4 — Semibold 600, ss01
   Текст — Regular 400 · UI — Semibold 600 · цифры — табличные
   Шкала ~1.25 от 17px: 13 · 15 · 17 · 21 · 26 · 33 · 41 · 52 · 65 · 81 · 101 · 126
   ========================================================================== */
:root {
	--rx-fs-micro: 0.8125rem;   /* 13 */
	--rx-fs-small: 0.9375rem;   /* 15 */
	--rx-fs-body: 1.0625rem;    /* 17 */
	--rx-fs-lead: clamp(1.1875rem, 1.1rem + 0.35vw, 1.3125rem); /* 19–21 */
	--rx-fs-h4: clamp(1.25rem, 1.15rem + 0.4vw, 1.625rem);      /* 20–26 */
	--rx-fs-h3: clamp(1.5rem, 1.3rem + 0.8vw, 2.0625rem);       /* 24–33 */
	--rx-fs-h2: clamp(2.25rem, 1.6rem + 2.6vw, 4.0625rem);      /* 36–65 */
	--rx-fs-h1: clamp(2.75rem, 1.7rem + 4.2vw, 5.0625rem);      /* 44–81 */
	--rx-fs-display: clamp(3rem, 1.4rem + 6.2vw, 7.875rem);     /* 48–126 */
	--rx-ff-display: "kern" 1, "liga" 1, "ss01" 1;
	--rx-ff-text: "kern" 1, "liga" 1;
}
body {
	font-size: var(--rx-fs-body);
	line-height: 1.6;
	font-feature-settings: var(--rx-ff-text) !important;
	letter-spacing: 0.003em;
}
/* Крупные заголовки — Bold, плотный трекинг, ss01 */
.rx-display, .banner__content h1, .section-top h1, .banner-product-name h1 {
	font-weight: 700 !important;
	font-feature-settings: var(--rx-ff-display) !important;
	letter-spacing: -0.045em !important;
}
.banner__content h1, .section-top h1, .banner-product-name h1 { font-size: var(--rx-fs-h1) !important; line-height: 0.95 !important; }
/* Заголовки секций — Semibold, ss01 */
.rx-h2, .section-title, .about-values__title, .advantages-section__title, .service-structure__title, .service-inside__title, .integration-services__title, .docs-section__title, .partners__title, .contacts-feedback__title, .products-section__head h2, .solutions-section__head h2, .questions-left h2, .instructions-left h2, .interaction-left h2, .modal__title, .rx-statement {
	font-weight: 600 !important;
	font-feature-settings: var(--rx-ff-display) !important;
	letter-spacing: -0.035em !important;
}
.rx-h2, .section-title, .about-values__title, .advantages-section__title, .service-structure__title, .service-inside__title, .integration-services__title, .docs-section__title, .partners__title, .contacts-feedback__title, .products-section__head h2, .solutions-section__head h2, .questions-left h2, .instructions-left h2, .interaction-left h2 { font-size: var(--rx-fs-h2) !important; line-height: 1 !important; }
.rx-statement { font-size: clamp(1.75rem, 1.2rem + 2.1vw, 3.25rem) !important; line-height: 1.1 !important; letter-spacing: -0.03em !important; font-weight: 600 !important; }
/* H3/H4 карточек */
h3, .rx-post__title, .product-card h3, .solution-card h3, .docs-card h3, .advantage-card h3, .about-values__info h3, .contacts-card__title, .events-card__item h3 {
	font-weight: 600 !important;
	letter-spacing: -0.02em !important;
	font-feature-settings: var(--rx-ff-display) !important;
}
/* Цифры */
.rx-fact__value { font-weight: 700 !important; font-feature-settings: "kern" 1, "tnum" 1, "lnum" 1, "ss01" 1 !important; letter-spacing: -0.05em !important; }
.flatpickr-day, time { font-feature-settings: "kern" 1, "tnum" 1, "lnum" 1 !important; }
/* UI */
.rx-tag {
	font-weight: 600 !important;
	letter-spacing: 0.005em !important;
}
.rx-lead, .banner__content p { letter-spacing: 0 !important; }
/* Сеть в hero */
.rx-net { position: absolute; inset: 0; z-index: 0; display: block; pointer-events: none; }
[data-rx-net] { position: relative; isolation: isolate; }
/* Hero: заголовок в шкале H1, а не плакатный — гармония с живой схемой справа */
.solutions-section { padding-top: var(--rx-section) !important; }

/* ---------- Заголовки, документы, кейсы ---------- */
.banner__content h1, .section-top h1, .banner-product-name h1 {
	font-size: clamp(2.5rem, 1.6rem + 2.8vw, 4.25rem) !important;
	line-height: 1 !important;
	letter-spacing: -0.04em !important;
}
.section-top[data-rx-scene] .banner__content p { font-size: 1.1875rem !important; line-height: 1.6 !important; }
/* Документация: фирменная обложка файла */
.docs-card { min-height: 0 !important; }
.docs-card > a { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
/* все карточки в карусели — одной высоты (по самой высокой), кнопки «Подробнее» — на одной линии внизу */
.docs-section .swiper-wrapper { align-items: stretch; }
.docs-card.swiper-slide { height: auto !important; }
.docs-card > a { flex: 1 1 auto; }
.docs-card__body { margin-top: 0 !important; flex: 1 1 auto; display: flex; flex-direction: column; align-items: flex-start; }
.docs-card__body > .btn-default { margin-top: auto; }
.rx-doc {
	width: 100% !important;
	height: 168px !important;
	margin: 0 0 28px !important;
	display: grid !important;
	place-items: center;
	border-radius: var(--rx-r-m) !important;
	background:
		radial-gradient(80% 90% at 70% 0%, rgba(255, 203, 5, 0.16), transparent 70%),
		repeating-linear-gradient(90deg, transparent 0 23px, rgba(255, 255, 255, 0.04) 23px 24px),
		var(--rx-surface) !important;
	overflow: visible !important;
	position: relative;
}
.rx-doc__sheet {
	position: relative;
	width: 92px;
	height: 116px;
	padding: 20px 16px;
	border-radius: 8px;
	background: var(--rx-bone);
	clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%);
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
	transform: rotate(-4deg);
	transition: transform 0.45s var(--rx-ease);
}
.rx-doc__sheet::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 22px;
	height: 22px;
	background: linear-gradient(225deg, transparent 50%, #c9c8c2 50%);
}
.rx-doc__lines { display: grid; gap: 7px; }
.rx-doc__lines i { display: block; height: 4px; border-radius: 2px; background: rgba(10, 10, 10, 0.16); }
.rx-doc__lines i:nth-child(1) { width: 70%; background: rgba(10, 10, 10, 0.5); }
.rx-doc__lines i:nth-child(4) { width: 55%; }
.rx-doc__ext {
	position: absolute;
	left: -10px;
	bottom: 14px;
	padding: 4px 8px;
	border-radius: 4px;
	background: var(--rx-signal);
	color: var(--rx-ink);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
}
.docs-card:hover .rx-doc__sheet { transform: rotate(0deg) translateY(-4px); }
.docs-card h3 { font-size: var(--rx-fs-h4) !important; line-height: 1.2 !important; margin-bottom: 20px !important; }
/* Кейсы: карточка во всю ширину контейнера {
	max-width: none !important;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0;
	padding: 0 !important;
}

.rx-doc { justify-content: center !important; align-content: center !important; align-items: center !important; }
.rx-doc__sheet { clip-path: none !important; border-radius: 6px; }
.rx-doc__sheet::after { background: linear-gradient(225deg, #1a1a1d 50%, #c9c8c2 50%) !important; border-radius: 0 6px 0 0; }
.rx-scene { position: absolute; inset: 0; z-index: 0; display: block; pointer-events: none; }
/* Декоративные слои исходной вёрстки не должны перехватывать клики */
.bg-bottom, .page-bg-top::before, .page-bg-top::after, .banner__noise, .glass-group, .rx-scene, .rx-net { pointer-events: none !important; }
/* Календарь: кнопка в потоке, под текстом события */

/* ---------- Появление шапки страницы ---------- */
/* ==========================================================================
   Внутренние страницы: появление шапки как в hero главной
   (крошки → заголовок → текст → кнопки → фильтры)
   ========================================================================== */
.section-top .breadcrumbs { animation: rx-rise 0.9s 0.05s var(--rx-ease) both; }
.section-top .banner__content > *:nth-child(1) { animation: rx-rise 0.9s 0.15s var(--rx-ease) both; }
.section-top .banner__content > *:nth-child(2) { animation: rx-rise 0.9s 0.3s var(--rx-ease) both; }
.section-top .banner__content > *:nth-child(3) { animation: rx-rise 0.9s 0.45s var(--rx-ease) both; }
.section-top .banner__content > *:nth-child(n + 4) { animation: rx-rise 0.9s 0.55s var(--rx-ease) both; }
@media (prefers-reduced-motion: reduce) {
.section-top .breadcrumbs, .section-top .banner__content > * { animation: none !important; }
}
/* без капса и разрядки в тексте (кнопки — по правилам style.css) */
body :is(span, div, p, li, label, h1, h2, h3, h4, h5, h6, .breadcrumbs, .section-label) {
	text-transform: none !important;
	letter-spacing: normal;
}
