/* Shared AVM site shell: the same header and footer used on the front page. */
.site-header,
.footer {
	--red: #e30613;
	--red-600: #c8050f;
	--red-soft-2: #fbefef;
	--ink: #14161c;
	--muted: #767c87;
	--line: #e7e9ee;
	--line-2: #edeef2;
	--dark: #15171e;
	--dark-line: rgba(255, 255, 255, 0.1);
	--dark-text: #afb4be;
	--shadow: 0 14px 40px -18px rgba(20, 22, 28, 0.18);
	--shadow-red: 0 16px 34px -14px rgba(227, 6, 19, 0.5);
	--container: 1200px;
	--gut: clamp(16px, 4vw, 24px);
	--ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--ff: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--ff-head: "Manrope", "Inter", system-ui, sans-serif;
	--ic-accent: var(--red);
	--ic-fill: rgba(227, 6, 19, 0.12);
	--ic-line: var(--ink);
	font-family: var(--ff);
	line-height: 1.55;
}

.site-header *,
.site-header *::before,
.site-header *::after,
.footer *,
.footer *::before,
.footer *::after {
	box-sizing: border-box;
}

.site-header a,
.footer a {
	color: inherit;
	text-decoration: none;
}

.site-header ul,
.footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-header p,
.footer p,
.footer h4 {
	margin: 0;
}

.site-header .container,
.footer .container {
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gut);
}

.icon-sprite {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
}

.site-header .ic,
.footer .ic {
	display: block;
	width: 24px;
	height: 24px;
	max-width: 100%;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	--ic-accent: var(--red);
	--ic-fill: rgba(227, 6, 19, 0.12);
}

.site-header .ic--arrow {
	width: 18px;
	height: 18px;
	stroke-width: 2.1;
	transition: transform 0.25s var(--ease);
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, 0.88);
	backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid var(--line);
	transition: transform 0.38s var(--ease), box-shadow 0.3s;
	will-change: transform;
}

/* Legacy lesson/quiz styles used to suppress the global site header. */
body:not(.lms-focus-mode) > .site-header {
	display: block !important;
}

body.admin-bar .site-header {
	top: 32px;
}

.site-header.is-scrolled {
	box-shadow: 0 8px 30px -18px rgba(20, 22, 28, 0.3);
}

.site-header.is-hidden {
	transform: translateY(-100%);
	pointer-events: none;
}

.site-header .header__inner {
	display: flex;
	align-items: center;
	gap: 28px;
	height: 76px;
}

.site-header .logo,
.footer .logo {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	flex-shrink: 0;
}

.site-header .logo__img,
.footer .logo__img {
	display: block;
	height: 46px;
	width: auto;
	max-width: 140px;
	object-fit: contain;
	object-position: left center;
}

.site-header .logo__text,
.footer .logo__text {
	font-size: 9px;
	line-height: 1.25;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--muted);
	font-weight: 600;
}

.footer .logo--light .logo__text {
	color: rgba(255, 255, 255, 0.6);
}

.site-header .nav {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-left: 10px;
}

.site-header .nav__list {
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-header .nav__list > li {
	margin: 0;
	padding: 0;
	flex-shrink: 0;
}

.site-header .nav__link,
.site-header .nav__list > li > a {
	font-size: 14.5px;
	font-weight: 600;
	color: var(--ink);
	position: relative;
	padding: 9px 14px;
	border-radius: 10px;
	white-space: nowrap;
	transition: color 0.2s, background 0.2s;
}

.site-header .nav__link::after,
.site-header .nav__list > li > a::after {
	content: "";
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: 5px;
	height: 2px;
	background: var(--red);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.25s var(--ease);
	border-radius: 2px;
}

.site-header .nav__link:hover,
.site-header .nav__list > li > a:hover,
.site-header .nav__link:focus-visible,
.site-header .nav__list > li > a:focus-visible {
	color: var(--red);
	background: var(--red-soft-2);
}

.site-header .nav__link:hover::after,
.site-header .nav__list > li > a:hover::after {
	transform: scaleX(1);
}

.site-header .header__actions {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-left: auto;
}

.site-header .header__phone {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-family: var(--ff-head);
	font-weight: 700;
	font-size: 14.5px;
	color: var(--ink);
	white-space: nowrap;
	padding: 6px;
	border-radius: 8px;
}

.site-header .header__phone .ic {
	color: var(--ic-line);
	width: 20px;
	height: 20px;
}

.site-header .header__phone:hover {
	color: var(--red);
}

.site-header .header__phones { position: relative; flex-shrink: 0; }
.site-header summary.header__phone { cursor: pointer; list-style: none; min-height: 44px; }
.site-header summary.header__phone::-webkit-details-marker { display: none; }
.site-header .header__phone-chevron { flex-shrink: 0; transition: transform .2s; }
.site-header .header__phones[open] .header__phone-chevron { transform: rotate(180deg); }
.site-header .header__phones[open] summary { color: var(--red); background: #f7f4f4; }
.site-header .header__phone-list {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	width: 238px;
	padding: 8px;
	margin: 0;
	list-style: none;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 14px;
	box-shadow: 0 12px 32px rgba(24, 28, 33, .14);
	z-index: 10;
}
.site-header .header__phone-list a {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 10px 12px;
	border-radius: 8px;
	color: var(--ink);
	font-family: var(--ff-head);
	font-size: 15px;
	font-weight: 700;
	white-space: nowrap;
}
.site-header .header__phone-list a:hover { color: var(--red); background: #f7f4f4; }
.site-header summary.header__phone:focus-visible,
.site-header .header__phone-list a:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
@media (max-width: 980px) {
	.site-header .header__phones { position: static; }
	.site-header .header__phone-list { right: 16px; top: calc(100% + 4px); max-width: calc(100vw - 32px); }
}
.site-header .header__messengers { display: flex; align-items: center; gap: 6px; }
.site-header .header__messenger { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: #fff; transition: color 0.2s, background 0.2s, border-color 0.2s, transform 0.2s; }
.site-header .header__messenger .ic { width: 19px; height: 19px; --ic-fill: transparent; --ic-accent: currentColor; }
.site-header .header__messenger:hover, .site-header .header__messenger:focus-visible { color: #fff; transform: translateY(-2px); outline: none; }
.site-header .header__messenger--telegram:hover, .site-header .header__messenger--telegram:focus-visible { background: #229ed9; border-color: #229ed9; }
.site-header .header__messenger--viber:hover, .site-header .header__messenger--viber:focus-visible { background: #7360f2; border-color: #7360f2; }
.site-header .header__messenger--account:hover, .site-header .header__messenger--account:focus-visible { background: var(--red); border-color: var(--red); }

.site-header .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-family: var(--ff-head);
	font-weight: 700;
	font-size: 15px;
	padding: 15px 26px;
	border-radius: 12px;
	min-height: 48px;
	white-space: nowrap;
	line-height: 1;
	transition: transform 0.2s var(--ease), box-shadow 0.25s var(--ease), background 0.2s, color 0.2s;
}

.site-header .btn--primary {
	background: var(--red);
	color: #fff;
	box-shadow: var(--shadow-red);
}

.site-header .btn--primary:hover {
	background: var(--red-600);
	transform: translateY(-2px);
	box-shadow: 0 20px 40px -14px rgba(227, 6, 19, 0.6);
}

.site-header .btn--primary:hover .ic--arrow {
	transform: translateX(4px);
}

.site-header .header__cta {
	min-height: 42px;
	padding: 11px 22px;
}

.site-header .burger {
	display: none;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 10px;
	position: relative;
	font: inherit;
	cursor: pointer;
	background: none;
	color: inherit;
}

.site-header .burger span {
	position: absolute;
	left: 11px;
	right: 11px;
	height: 2px;
	background: var(--ink);
	border-radius: 2px;
	transition: 0.3s var(--ease);
}

.site-header .burger span:nth-child(1) { top: 15px; }
.site-header .burger span:nth-child(2) { top: 21px; }
.site-header .burger span:nth-child(3) { top: 27px; }
.site-header .burger.is-open span:nth-child(1) { top: 21px; transform: rotate(45deg); }
.site-header .burger.is-open span:nth-child(2) { opacity: 0; }
.site-header .burger.is-open span:nth-child(3) { top: 21px; transform: rotate(-45deg); }

.footer {
	background: var(--dark);
	color: var(--dark-text);
	padding-top: clamp(48px, 6vw, 76px);
}

.footer .footer__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(180px, 0.8fr) minmax(280px, 1fr);
	gap: 36px;
	padding-bottom: 50px;
}

.footer .footer__desc {
	font-size: 14px;
	margin: 20px 0 26px;
	max-width: 320px;
	line-height: 1.6;
}

.footer .footer__col h4,
.footer .footer__contact h4 {
	color: #fff;
	font-family: var(--ff-head);
	font-size: 17px;
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -0.02em;
	margin-bottom: 20px;
	position: relative;
	padding-bottom: 12px;
}

.footer .footer__col h4::after,
.footer .footer__contact h4::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 28px;
	height: 2px;
	background: var(--red);
}

.footer .footer__col {
	display: flex;
	flex-direction: column;
	gap: 13px;
}

.footer .footer__menu {
	display: flex;
	flex-direction: column;
	gap: 13px;
}

.footer .footer__menu > li {
	margin: 0;
	padding: 0;
}

.footer .footer__col a {
	font-size: 14px;
	color: var(--dark-text);
	transition: color 0.2s, padding-left 0.2s;
	width: fit-content;
}

.footer .footer__col a:hover {
	color: #fff;
	padding-left: 5px;
}

.footer .footer__contacts {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-bottom: 22px;
}

.footer .footer__contacts li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: 14px;
}

.footer .footer__contacts .ic {
	color: #d7dae0;
	--ic-accent: #ff5762;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	flex: none;
}

.footer .footer__contacts a:hover {
	color: #fff;
}

.footer .footer__contacts a[href^="tel:"] {
	white-space: nowrap;
}

.footer .footer__social {
	display: flex;
	gap: 12px;
}

.footer .footer__social a {
	width: 42px;
	height: 42px;
	border-radius: 11px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid var(--dark-line);
	display: grid;
	place-items: center;
	color: #fff;
	transition: 0.25s var(--ease);
}

.footer .footer__social a:hover {
	background: var(--red);
	border-color: var(--red);
	transform: translateY(-3px);
}

.footer .footer__social .ic {
	width: 20px;
	height: 20px;
	color: #fff;
	--ic-accent: #fff;
	--ic-fill: rgba(255, 255, 255, 0.16);
}

.footer .footer__bottom {
	border-top: 1px solid var(--dark-line);
	padding: 24px 0;
}

.footer .footer__bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}

.footer .footer__bottom p {
	font-size: 12.5px;
	color: #757b86;
	line-height: 1.5;
}

/* Keep the desktop navigation on one line until it switches to the burger. */
@media (max-width: 1679px) {
	.site-header .header__inner { gap: 18px; }
	.site-header .nav { gap: 2px; margin-left: 0; }
	.site-header .nav__link,
	.site-header .nav__list > li > a {
		font-size: 13px;
		padding: 9px 10px;
	}
	.site-header .header__phone span { display: none; }
	.site-header .header__cta { padding-inline: 16px; }
}

@media (max-width: 1180px) {
	.site-header .nav,
	.site-header .header__cta { display: none; }
	.site-header .header__actions { gap: 10px; }
	.site-header .header__messengers { gap: 4px; }
	.site-header .burger { display: block; }
	.site-header .header__inner { height: 68px; }
	.site-header .nav.is-open {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		margin: 0;
		background: #fff;
		border-bottom: 1px solid var(--line);
		padding: 14px var(--gut) 22px;
		box-shadow: var(--shadow);
	}
	.site-header .nav.is-open .nav__list {
		width: 100%;
		flex-direction: column;
		align-items: stretch;
	}
	.site-header .nav.is-open .nav__link,
	.site-header .nav.is-open .nav__list > li > a {
		display: block;
		width: 100%;
		padding: 12px 0;
		border-bottom: 1px solid var(--line-2);
		font-size: 15px;
	}
	.footer .footer__inner { grid-template-columns: 1fr 1fr; }
	.footer .footer__brand,
	.footer .footer__contact { grid-column: span 2; }
	.footer .footer__contact { order: 3; }
}

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

@media (max-width: 680px) {
	.site-header,
	.footer { --gut: 18px; }
	.site-header .logo__text { display: none; }
	.footer .footer__inner { grid-template-columns: 1fr; }
	.footer .footer__brand,
	.footer .footer__contact { grid-column: auto; }
	.footer .footer__bottom-inner { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 380px) {
	.site-header { --gut: 12px; }
	.site-header .header__inner { gap: 8px; }
	.site-header .logo__img { max-width: 64px; height: auto; }
	.site-header .header__actions { gap: 4px; }
	.site-header summary.header__phone { gap: 4px; padding-inline: 4px; }
}

/* Match the landing-page container at every wide-screen breakpoint. */
@media (min-width: 1440px) {
	.site-header,
	.footer {
		--container: 1320px;
		--gut: 32px;
	}
}

@media (min-width: 1680px) {
	.site-header,
	.footer {
		--container: 1500px;
		--gut: 40px;
	}
}

@media (min-width: 2000px) {
	.site-header,
	.footer {
		--container: 1720px;
		--gut: 48px;
	}

	.site-header .header__inner { height: 84px; }
}

@media (prefers-reduced-motion: reduce) {
	.site-header,
	.site-header *,
	.footer * {
		transition: none !important;
	}
}
