/* Knowledge marketing - Global header, navigation and footer */
:root { --km-global-header-height: 88px; }
html { scroll-padding-top: var(--km-global-header-height); }
body.km-menu-open { overflow: hidden; }
body.km-has-solid-header { padding-top: var(--km-global-header-height); }

.km-site-header,
body.home .km-site-header.cs-front-page-header,
body.post-name-service .km-site-header,
body.post-name-company .km-site-header {
	position: fixed !important;
	z-index: 1000;
	top: 0;
	right: 0;
	left: 0;
	width: 100%;
	height: var(--km-global-header-height) !important;
	min-height: var(--km-global-header-height) !important;
	border: 0;
	background: rgba(255,255,255,.96);
	box-shadow: 0 1px 0 rgba(10,16,32,.12);
	transition: background-color .3s ease, box-shadow .3s ease;
}

.admin-bar .km-site-header { top: 32px; }
.km-site-header--overlay:not(.is-scrolled):not(.is-menu-open) { background: transparent !important; box-shadow: none !important; }
.km-site-header__inner,
body.home .km-site-header #site-header-container {
	display: flex;
	width: 100%;
	max-width: none;
	height: 100%;
	min-height: 0;
	padding: 0 clamp(24px, 3.5vw, 58px);
	align-items: center;
	justify-content: space-between;
}

.km-site-header__logo,
body.home .km-site-header .site-header-logo {
	display: flex;
	width: clamp(170px, 15vw, 220px);
	height: auto;
	max-height: none;
	margin: 0;
	padding: 0;
	align-items: center;
}
.km-site-header__logo a { display: block; line-height: 0; }
.km-site-header__logo img,
body.home .km-site-header .site-header-logo img { display: block; width: 100%; height: auto; max-height: none; filter: invert(1); transition: filter .3s ease; }
.km-site-header--overlay:not(.is-scrolled):not(.is-menu-open) .km-site-header__logo img { filter: none; }

.km-global-nav { display: block; margin-left: auto; }
.km-global-nav__list { display: flex; margin: 0; padding: 0; gap: clamp(18px, 2.4vw, 42px); align-items: center; list-style: none; }
.km-global-nav__item { position: relative; margin: 0; padding: 0; }
.km-global-nav__item::before { display: none !important; }
.km-global-nav__item > a,
body.home .km-site-header .km-global-nav__item > a {
	position: relative;
	display: flex;
	min-height: 44px;
	padding: 0;
	color: #0a1020;
	font: 700 12px/1 sans-serif !important;
	letter-spacing: .09em;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	transition: color .25s ease, opacity .25s ease;
}
.km-site-header--overlay:not(.is-scrolled):not(.is-menu-open) .km-global-nav__item > a { color: #fff !important; }
.km-global-nav__item > a::after { position: absolute; right: 0; bottom: 6px; left: 0; height: 1px; content: ""; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.km-global-nav__item > a:hover::after,
.km-global-nav__item > a:focus-visible::after,
.km-global-nav__item.is-active > a::after { transform: scaleX(1); transform-origin: left; }
.km-global-nav__item.is-active > a { color: #1f5eff; }
.km-site-header--overlay:not(.is-scrolled) .km-global-nav__item.is-active > a { color: #80a4ff !important; }
.km-global-nav__item--contact > a { min-width: 116px; padding: 0 14px; border-left: 1px solid currentColor; border-right: 1px solid currentColor; justify-content: space-between; }
.km-global-nav__item--contact > a::after { display: none; }
.km-global-nav__item > a:focus-visible,
.km-menu-button:focus-visible,
.km-mobile-navigation a:focus-visible,
.km-mobile-navigation button:focus-visible { outline: 2px solid #1f5eff; outline-offset: 4px; }

.km-menu-button { display: none; min-height: 44px; padding: 0; border: 0; background: transparent; color: #0a1020; font: 700 11px/1 sans-serif !important; letter-spacing: .12em; align-items: center; gap: 13px; }
.km-site-header--overlay:not(.is-scrolled):not(.is-menu-open) .km-menu-button { color: #fff; }
.km-menu-button__icon { display: block; width: 25px; }
.km-menu-button__icon i { display: block; height: 1px; margin: 6px 0; background: currentColor; transition: transform .25s ease; }

.km-mobile-navigation { display: none; }
.vk-mobile-nav-menu-btn, .vk-mobile-nav { display: none !important; }

.km-site-footer { padding: clamp(80px, 9vw, 130px) clamp(24px, 4vw, 64px) 30px; background: #071022 !important; color: #fff; }
.km-site-footer__inner { display: grid; grid-template-columns: 1.1fr 1fr .85fr 220px; gap: clamp(40px, 6vw, 95px); max-width: 1440px; margin: 0 auto; align-items: start; }
.km-site-footer__brand > a { display: inline-block; color: #fff; font: 800 clamp(38px, 4.7vw, 72px)/.83 sans-serif !important; letter-spacing: -.065em; text-decoration: none; }
.km-site-footer__brand p { margin: 32px 0 0; color: #7396f4; font: 700 10px/1 sans-serif !important; letter-spacing: .18em; }
.km-footer-navigation ul { margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.2); list-style: none; }
.km-footer-navigation li { margin: 0; }
.km-footer-navigation a { display: flex; min-height: 52px; padding: 0 4px; border-bottom: 1px solid rgba(255,255,255,.2); color: #fff; font: 700 12px/1 sans-serif !important; letter-spacing: .1em; justify-content: space-between; align-items: center; text-decoration: none; }
.km-footer-navigation a:hover { color: #80a4ff; opacity: 1; }
.km-site-footer__label { margin: 0 0 24px; color: #80a4ff; font: 700 10px/1 sans-serif !important; letter-spacing: .16em; }
.km-site-footer__information > p:last-child { margin: 0; color: #bac4d8; font-size: 12px !important; line-height: 1.9; }
.km-site-footer__information strong { color: #fff; }
.km-site-footer .km-footer__cert { width: 220px; margin: 0; }
.km-site-footer .km-footer__cert-card { padding: 7px; border-radius: 0; }
.km-site-footer .km-footer__cert-image { width: 100%; height: auto; }
.km-site-footer__widgets { display: grid; grid-template-columns: repeat(3, 1fr); gap: 35px; max-width: 1440px; margin: 70px auto 0; padding-top: 40px; border-top: 1px solid rgba(255,255,255,.15); }
.km-site-footer__widget { min-width: 0; color: #bac4d8; }
.km-site-footer__bottom { display: flex; max-width: 1440px; margin: 80px auto 0; padding-top: 25px; border-top: 1px solid rgba(255,255,255,.2); justify-content: space-between; align-items: center; }
.km-site-footer__bottom a, .km-site-footer__bottom p { margin: 0; color: rgba(255,255,255,.62); font: 600 10px/1.4 sans-serif !important; letter-spacing: .08em; text-decoration: none; }

@media (max-width: 1100px) {
	.km-site-footer__inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 991px) {
	:root { --km-global-header-height: 72px; }
	.admin-bar .km-site-header { top: 32px; }
	.km-global-nav { display: none; }
	.km-ui-js .km-menu-button { display: flex; }
	.km-site-header__logo, body.home .km-site-header .site-header-logo { display: flex; width: 175px; }
	.km-mobile-navigation { display: block; position: static; padding: 0 24px 30px; background: #071022; color: #fff; }
	.km-ui-js .km-mobile-navigation { position: fixed; z-index: -1; inset: 0; height: 100dvh; padding: 25px clamp(24px, 6vw, 55px) 35px; overflow-y: auto; opacity: 0; visibility: hidden; transform: translateY(-16px); transition: opacity .25s ease, visibility .25s ease, transform .25s ease; }
	.km-ui-js .km-site-header.is-menu-open .km-mobile-navigation { z-index: 1; opacity: 1; visibility: visible; transform: translateY(0); }
	.km-site-header.is-menu-open { background: #071022 !important; box-shadow: none !important; }
	.km-site-header.is-menu-open .km-site-header__inner { position: relative; z-index: 2; }
	.km-site-header.is-menu-open .km-site-header__logo img { filter: none; }
	.km-site-header.is-menu-open .km-menu-button { color: #fff; }
	.km-mobile-navigation__top { display: flex; min-height: 45px; color: #80a4ff; font: 700 10px/1 sans-serif; letter-spacing: .14em; align-items: center; justify-content: space-between; }
	.km-mobile-navigation__close { min-height: 44px; padding: 0; border: 0; background: transparent; color: #fff; font: 700 10px/1 sans-serif !important; letter-spacing: .12em; }
	.km-mobile-navigation nav { margin-top: clamp(45px, 9vh, 90px); }
	.km-mobile-navigation ol { margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.22); list-style: none; }
	.km-mobile-navigation li { margin: 0; }
	.km-mobile-navigation a { display: grid; grid-template-columns: 42px 1fr auto; min-height: clamp(72px, 11vh, 108px); border-bottom: 1px solid rgba(255,255,255,.22); color: #fff; align-items: center; text-decoration: none; }
	.km-mobile-navigation a > span { color: #80a4ff; font: 700 10px/1 sans-serif; }
	.km-mobile-navigation a strong { font: 800 clamp(34px, 8vw, 62px)/1 sans-serif; letter-spacing: -.04em; }
	.km-mobile-navigation a i { font-style: normal; }
	.km-mobile-navigation li.is-active a strong { color: #80a4ff; }
	.km-mobile-navigation__brand { margin: 45px 0 0; color: rgba(255,255,255,.12); font: 800 clamp(50px, 14vw, 100px)/.8 sans-serif !important; letter-spacing: -.06em; }
}

@media (max-width: 782px) { .admin-bar .km-site-header { top: 46px; } }

@media (max-width: 767px) {
	.km-site-header__inner, body.home .km-site-header #site-header-container { padding-inline: 16px; }
	.km-site-footer { padding: 75px 16px 25px; }
	.km-site-footer__inner { grid-template-columns: 1fr; gap: 55px; }
	.km-site-footer__brand > a { font-size: clamp(48px, 15vw, 74px) !important; }
	.km-site-footer .km-footer__cert { width: 190px; }
	.km-site-footer__widgets { grid-template-columns: 1fr; margin-top: 55px; }
	.km-site-footer__bottom { display: block; margin-top: 60px; }
	.km-site-footer__bottom p { margin-top: 15px; }
}

@media (prefers-reduced-motion: reduce) {
	.km-site-header, .km-site-header *, .km-mobile-navigation { scroll-behavior: auto !important; transition-duration: .01ms !important; animation: none !important; }
}
