/* Horizontal scroll fix - только на html, не на body (иначе ломает sticky) */
html {
    overflow-x: hidden;
}

ul {
	/* 2025
	list-style: none;
	padding: 0;
	margin: 0;
	*/
}

/* Стандартные списки с фиолетовыми маркерами */
ul:not(.e-menu):not(.e-menu ul):not(.s-foot__menu):not(.main-navigation ul):not(.b-lmenu):not(.b-lmenu ul):not(.related-list):not(.siblings-list):not(.tree-children):not(.documents-list):not(.prices-order-list):not(.prices-services-list):not(.prices-factors-list):not(.prices-examples-list):not(.prices-advantages-list):not(.sidebar-posts-list):not(.languages-list):not(.macro-sticky-messengers__list) {
	list-style-type: disc;
	list-style-position: outside;
	padding-left: 30px;
	margin: 0 0 20px;
}

ul:not(.e-menu):not(.e-menu ul):not(.s-foot__menu):not(.main-navigation ul):not(.b-lmenu):not(.b-lmenu ul):not(.related-list):not(.siblings-list):not(.tree-children):not(.documents-list):not(.prices-order-list):not(.prices-services-list):not(.prices-factors-list):not(.prices-examples-list):not(.prices-advantages-list):not(.sidebar-posts-list):not(.languages-list):not(.macro-sticky-messengers__list) li {
	margin-bottom: 6px;
	padding-left: 8px;
}

ul:not(.e-menu):not(.e-menu ul):not(.s-foot__menu):not(.main-navigation ul):not(.b-lmenu):not(.b-lmenu ul):not(.related-list):not(.siblings-list):not(.tree-children):not(.documents-list):not(.prices-order-list):not(.prices-services-list):not(.prices-factors-list):not(.prices-examples-list):not(.prices-advantages-list):not(.sidebar-posts-list):not(.languages-list):not(.macro-sticky-messengers__list) li::marker {
	color: #6430a1;
}

/* Посилання в текстовому контенті (the_content): фіолетові + підкреслення */
.service-content__main a:where(:not(.btn):not(.btn-snap):not(.child-service-card):not(.wp-block-button__link)),
.entry-content a:where(:not(.btn):not(.btn-snap):not(.wp-block-button__link)),
.page-content a:where(:not(.btn):not(.btn-snap):not(.wp-block-button__link)),
.about-content a:where(:not(.btn):not(.btn-snap):not(.wp-block-button__link)),
.clients-page-content a:where(:not(.btn):not(.btn-snap):not(.wp-block-button__link)),
.contacts-page-content a:where(:not(.btn):not(.btn-snap):not(.wp-block-button__link)),
.wp-block-post-content a:where(:not(.btn):not(.btn-snap):not(.wp-block-button__link)) {
	color: #6430a1;
	text-decoration: underline;
}

.service-content__main a:where(:not(.btn):not(.btn-snap):not(.child-service-card):not(.wp-block-button__link)):hover,
.entry-content a:where(:not(.btn):not(.btn-snap):not(.wp-block-button__link)):hover,
.page-content a:where(:not(.btn):not(.btn-snap):not(.wp-block-button__link)):hover,
.about-content a:where(:not(.btn):not(.btn-snap):not(.wp-block-button__link)):hover,
.clients-page-content a:where(:not(.btn):not(.btn-snap):not(.wp-block-button__link)):hover,
.contacts-page-content a:where(:not(.btn):not(.btn-snap):not(.wp-block-button__link)):hover,
.wp-block-post-content a:where(:not(.btn):not(.btn-snap):not(.wp-block-button__link)):hover {
	color: #8b5cc7;
}

/* Семантические теги - убираем стили по умолчанию */
address {
	font-style: normal !important;
	margin: 0 !important;
	padding: 0 !important;
}

figure {
	margin: 0 !important;
	padding: 0 !important;
	display: block !important;
}

/* Компактний заголовок сторінки (як на Послуги) — на всіх шаблонах */
.service-header-compact {
	padding: 20px 0;
	background: rgba(100, 48, 161, 0.5);
	position: relative;
}
.service-title-compact {
	font-size: 32px;
	font-weight: 700;
	color: #fff;
	margin: 0;
	line-height: 1.2;
	text-align: center;
}
@media (max-width: 767px) {
	.service-title-compact {
		font-size: 24px;
	}
}

/* Семантическая кнопка для мобильного меню */
button.e-toggle {
	background: none !important;
	border: none !important;
	padding: 0 !important;
	cursor: pointer !important;
	outline: none !important;
}

/* Screen reader only класс */
.sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border-width: 0 !important;
}

/* Блок с адресом в хедере - увеличиваем ширину */
.b-head .cn-pt-10 {
	min-width: 200px !important;
	max-width: 300px !important;
}

/* Равномерная ширина для блоков логотипа, ISO и адреса */
.b-head .cn-cols-row {
	display: flex !important;
	align-items: center !important;
	width: 100% !important;
}

/* Контейнер логотипа - оптимизированная ширина */
.b-head .cn-w-4_12.cn-w-3_12--xl.cn-w-4_12--md.cn-w-6_12--sm.cn-w-7_12--xs {
	flex: 0 0 auto !important;
	min-width: 180px !important;
	max-width: 300px !important;
	width: auto !important;
	display: block !important;
	visibility: visible !important;
}

.b-head .logo {
	display: flex !important;
	align-items: center !important;
	width: 100% !important;
	visibility: visible !important;
	opacity: 1 !important;
	height: 56px !important;
}

.b-head .logo img {
	max-width: 100% !important;
	max-height: 56px !important;
	height: auto !important;
	width: auto !important;
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	object-fit: contain !important;
	transform: scale(1.15) !important;
}

.b-head .cn-w-8_12 {
	flex: 1 1 auto !important;
	max-width: none !important;
	display: flex !important;
	justify-content: flex-end !important;
	align-items: center !important;
	min-width: 0 !important;
}

.b-head .cn-gutter-h-30 {
	display: flex !important;
	width: 100% !important;
	justify-content: flex-end !important;
	align-items: center !important;
	gap: 1em !important;
	flex-wrap: nowrap !important;
}

.b-head .iso {
	flex: 0 0 auto !important;
	height: 56px !important;
	display: flex !important;
	align-items: center !important;
	margin-left: 2.0em !important; /* увеличенный отступ между логотипом и ISO */
}

.b-head .cn-pt-10 {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	max-width: none !important;
}

.e-menu ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

/* Контейнер меню - растягиваем на всю ширину и делаем sticky */
.e-menu-container {
	width: 100vw !important;
	margin-left: calc(-50vw + 50%) !important;
	margin-right: calc(-50vw + 50%) !important;
	position: -webkit-sticky !important; /* для Safari */
	position: sticky !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 1000 !important;
	background-color: #F3EEFA !important;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
	will-change: transform !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding-left: 15px !important;
	padding-right: 15px !important;
	max-width: 100vw !important;
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Панель WordPress — завжди зверху екрану і не перекривається хедером */
#wpadminbar {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 999999 !important;
}

/* Контент під панеллю, верстка не ламається */
body.admin-bar {
	padding-top: 32px !important;
}
@media screen and (max-width: 782px) {
	body.admin-bar {
		padding-top: 46px !important;
	}
}

/* Sticky-меню під панеллю, не перекриває її */
.admin-bar .e-menu-container {
	top: 32px !important;
	margin-top: -1px !important;
}
.admin-bar .s-head {
	margin-top: 0;
}

@media screen and (max-width: 782px) {
	.admin-bar .e-menu-container {
		top: 46px !important;
		margin-top: -1px !important;
	}
}

/* Логотип в sticky меню - абсолютное позиционирование слева */
.sticky-logo {
	display: none;
	align-items: center;
	position: absolute;
	left: calc((100vw - 1200px) / 2);
	top: 50%;
	transform: translateY(-50%);
	flex-shrink: 0;
}

.sticky-logo__picture {
	display: flex;
	align-items: center;
	line-height: 0;
	margin: 0;
}

.sticky-logo img {
	height: 36px;
	width: auto;
}

@media (min-width: 1200px) {
	.sticky-logo {
		left: calc((100vw - 1450px) / 2);
	}
}

@media (min-width: 1630px) {
	.sticky-logo {
		left: calc((100vw - 1600px) / 2);
	}
}

@media (max-width: 1200px) {
	.sticky-logo {
		left: 15px;
	}
}

/* Кнопка калькулятора в sticky меню */
.sticky-calc {
	display: none;
	position: absolute;
	right: calc((100vw - 1200px) / 2 + 95px);
	top: 50%;
	transform: translateY(-50%);
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	min-height: 32px !important;
	background-color: #6430a1 !important;
	color: #fff !important;
	border-radius: 6px !important;
	text-align: center !important;
	line-height: 32px !important;
	font-size: 16px !important;
	padding: 0 !important;
	box-sizing: border-box !important;
	align-items: center !important;
	justify-content: center !important;
}

.sticky-calc i {
	line-height: 1 !important;
}

/* Кнопка телефона в sticky меню */
.sticky-phone {
	display: none;
	position: absolute;
	right: calc((100vw - 1200px) / 2 + 135px);
	top: 50%;
	transform: translateY(-50%);
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	min-height: 32px !important;
	background-color: #6430a1 !important;
	color: #fff !important;
	border-radius: 6px !important;
	text-align: center !important;
	line-height: 32px !important;
	font-size: 16px !important;
	padding: 0 !important;
	box-sizing: border-box !important;
	align-items: center !important;
	justify-content: center !important;
}

.sticky-phone:hover {
	background-color: #7a3fc2 !important;
	color: #fff !important;
}

.sticky-phone i {
	line-height: 1 !important;
}

.sticky-calc:hover {
	background-color: #7a3fc2;
	color: #fff;
}

/* Кнопка в sticky меню - абсолютное позиционирование справа */
.sticky-btn,
.sticky-btn.btn,
.sticky-btn.btn.btn-snap,
a.sticky-btn.btn.btn-snap {
	display: none;
	position: absolute;
	right: calc((100vw - 1200px) / 2);
	top: 50%;
	transform: translateY(-50%);
	flex-shrink: 0;
	height: 32px !important;
	min-height: 32px !important;
	max-height: 32px !important;
	line-height: 32px !important;
	padding: 0 14px !important;
	font-size: 13px !important;
	box-sizing: border-box !important;
	border-radius: 6px !important;
}

@media (min-width: 1200px) {
	.sticky-btn,
	.sticky-btn.btn,
	.sticky-btn.btn.btn-snap,
	a.sticky-btn.btn.btn-snap {
		right: calc((100vw - 1450px) / 2);
	}
	.sticky-calc {
		right: calc((100vw - 1450px) / 2 + 95px);
	}
	.sticky-phone {
		right: calc((100vw - 1450px) / 2 + 135px);
	}
}

@media (min-width: 1630px) {
	.sticky-btn,
	.sticky-btn.btn,
	.sticky-btn.btn.btn-snap,
	a.sticky-btn.btn.btn-snap {
		right: calc((100vw - 1600px) / 2);
	}
	.sticky-calc {
		right: calc((100vw - 1600px) / 2 + 95px);
	}
	.sticky-phone {
		right: calc((100vw - 1600px) / 2 + 135px);
	}
}

@media (max-width: 1200px) {
	.sticky-btn,
	.sticky-btn.btn,
	.sticky-btn.btn.btn-snap,
	a.sticky-btn.btn.btn-snap {
		right: 15px;
	}
	.sticky-calc {
		right: 110px;
	}
	.sticky-phone {
		right: 150px;
	}
}

/*
 * Середні ширини: JS показує .sticky-logo та кнопки лише після прокрутки нижче хедера
 * (один раз при зміні стану + rAF на scroll, без navOverflow на кожному кадрі).
 * Елементи absolute — не стискають flex-ряд меню.
 */
@media (min-width: 992px) and (max-width: 1399px) {
	.e-menu-container {
		/* Не ставити position:relative — ламає sticky. Sticky сам дає контекст для absolute-дітей */
		position: -webkit-sticky !important;
		position: sticky !important;
		top: 0 !important;
		justify-content: center !important;
		flex-wrap: nowrap !important;
		gap: 0 !important;
		padding-left: 48px !important;
		padding-right: 188px !important;
		box-sizing: border-box !important;
	}

	.sticky-logo {
		position: absolute !important;
		left: 10px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		margin: 0 !important;
		z-index: 2 !important;
	}

	.sticky-phone {
		position: absolute !important;
		right: 138px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		margin-left: 0 !important;
		z-index: 2 !important;
	}

	.sticky-calc {
		position: absolute !important;
		right: 98px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		z-index: 2 !important;
	}

	.sticky-btn,
	.sticky-btn.btn,
	.sticky-btn.btn.btn-snap,
	a.sticky-btn.btn.btn-snap {
		position: absolute !important;
		right: 10px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		margin-left: 0 !important;
		z-index: 2 !important;
	}

	.e-menu--main {
		flex: 0 1 auto !important;
		min-width: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		justify-content: center !important;
		gap: clamp(0.25rem, 1.2vw, 1.15rem) !important;
		padding-left: 0.35em !important;
		padding-right: 0.35em !important;
		box-sizing: border-box !important;
	}

	.e-menu--main > li {
		flex-shrink: 1 !important;
	}

	.e-menu--main .e-menu__uibus {
		font-size: clamp(0.875rem, 1vw, 1.05em) !important;
		padding-top: 0.55em !important;
		padding-bottom: 0.55em !important;
		padding-left: 0.35em !important;
		padding-right: 0.35em !important;
	}

	.e-menu--main > li.current-menu-item,
	.e-menu--main > li.current-menu-ancestor {
		padding-left: 0.35em !important;
		padding-right: 0.35em !important;
	}

	/* Верхній ряд: менше тисне по ширині */
	.s-head .b-head {
		gap: 12px !important;
		flex-wrap: wrap !important;
		row-gap: 10px !important;
	}

	.s-head .b-head .btn-calculator-text {
		display: none !important;
	}

	.b-head .logo img {
		transform: scale(1) !important;
		max-height: 52px !important;
	}
}

/*
 * ~1024px та вузький десктоп: верхній ряд «слипається» через адресу + ISO + месенджери.
 * Ховаємо другорядні блоки (контакти є в sticky та футері).
 */
@media (min-width: 992px) and (max-width: 1279px) {
	.s-head .b-head > address.cn-d-no--md,
	.s-head .b-head > div.cn-d-no--md {
		display: none !important;
	}

	.s-head .b-head > .iso.iso--stack {
		display: none !important;
	}

	.s-head .b-head {
		flex-wrap: nowrap !important;
		justify-content: space-between !important;
		align-items: center !important;
		column-gap: 10px !important;
		row-gap: 0 !important;
		min-height: 0 !important;
		padding-top: 12px !important;
		padding-bottom: 12px !important;
	}

	.s-head .b-head .cn-d-fx.cn-gutter-h-10 {
		flex-shrink: 0 !important;
		margin-left: auto !important;
		gap: 8px !important;
	}

	.s-head .b-head .logo {
		flex-shrink: 0 !important;
		min-width: 0 !important;
		max-width: min(200px, 38vw) !important;
	}

	.s-head .b-head .logo img {
		max-height: 48px !important;
		width: auto !important;
		height: auto !important;
	}

	.sticky-logo img {
		height: 32px !important;
		max-height: 32px !important;
		width: auto !important;
	}

	.e-menu--main {
		gap: 0.2rem !important;
		padding-left: 0.2em !important;
		padding-right: 0.2em !important;
	}

	.e-menu--main .e-menu__uibus {
		font-size: 0.8125rem !important;
		padding-top: 0.45em !important;
		padding-bottom: 0.45em !important;
		padding-left: 0.28em !important;
		padding-right: 0.28em !important;
	}

	.e-menu--main > li.current-menu-item,
	.e-menu--main > li.current-menu-ancestor {
		padding-left: 0.28em !important;
		padding-right: 0.28em !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	.sticky-btn,
	.sticky-btn.btn,
	.sticky-btn.btn.btn-snap,
	a.sticky-btn.btn.btn-snap {
		padding: 0 10px !important;
		font-size: 12px !important;
	}
}

/*
 * Swiper (головна, блок послуг): .sw-b-absolute тягне стрілки на -33px —
 * на 576–1399px вони обрізаються (html overflow-x) і слайдер виглядає «криво».
 */
@media (min-width: 576px) and (max-width: 1399px) {
	.sw-b-absolute .swiper-button-prev {
		left: 6px !important;
	}

	.sw-b-absolute .swiper-button-next {
		right: 6px !important;
	}

	.sw-b-absolute .swiper-button {
		width: 2.2em !important;
		min-width: 36px !important;
		height: 2.2em !important;
		min-height: 36px !important;
		background-size: contain !important;
		background-position: center !important;
		background-repeat: no-repeat !important;
	}

	/* Місце під стрілки всередині контейнера */
	.s-services .sw-b-absolute + .swiper-container,
	.swiper-outside .sw-b-absolute + .swiper-container {
		padding-left: 2.75rem !important;
		padding-right: 2.75rem !important;
		box-sizing: border-box !important;
		max-width: 100% !important;
	}
}

/* Стиль пунктов меню - меньший шрифт, жирный, выравнивание по центру, расстояния между пунктами */
.e-menu--main {
	justify-content: center !important;
	gap: 2em !important;
	font-family: "GT Walsheim Pro", sans-serif !important;
	margin-bottom: 0 !important;
	margin-top: 0 !important;
	background-color: #F3EEFA !important;
	padding: 0.245em 1em !important;
	border-radius: 0 !important;
	width: 100% !important;
}

.e-menu--main > li {
	margin-left: 0 !important;
	margin-right: 0 !important;
	font-family: "GT Walsheim Pro", sans-serif !important;
}

.e-menu__uibus {
	font-size: 1.13em !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	font-family: "GT Walsheim Pro", sans-serif !important;
	color: #000000 !important;
}

.e-menu--main .e-menu__uibus {
	display: block !important;
	padding-top: 0.735em !important;
	padding-bottom: 0.735em !important;
	font-size: 1.13em !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	font-family: "GT Walsheim Pro", sans-serif !important;
	color: #000000 !important;
}

.e-menu--main > li {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Активный пункт главного меню - стиль как при наведении */
.e-menu--main > li.current-menu-item .e-menu__uibus,
.e-menu--main > li.current-menu-ancestor .e-menu__uibus {
	color: #fff !important;
}

.e-menu--main > li.current-menu-item,
.e-menu--main > li.current-menu-ancestor {
	background-color: #6430a1 !important;
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
	box-shadow: none;
	margin: -0.245em 0 !important;
	padding: 0.245em 1em !important;
}

/* Стрелка для пунктов с выпадающим меню */
.e-menu--main > li.menu-item-has-children > a::after,
.e-menu--main > li.menu-item-has-children > .e-menu__uibus::after {
	content: '›';
	margin-left: 6px;
	font-size: 22px;
	font-weight: bold;
	display: inline-block;
	transform: rotate(90deg);
	vertical-align: middle;
	line-height: 0;
}

/* Выпадающее меню */
.e-menu--main > li.menu-item-has-children {
	position: relative;
}

.e-menu--main > li.menu-item-has-children {
	position: relative;
}

.e-menu--main > li.menu-item-has-children > .sub-menu,
.e-menu--main > li.menu-item-has-children > .e-menu__drop {
	display: none;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	background: #fff;
	min-width: 220px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	border-radius: 4px;
	z-index: 1001;
	padding: 10px 0;
}

.e-menu--main > li.menu-item-has-children:hover > .sub-menu,
.e-menu--main > li.menu-item-has-children:hover > .e-menu__drop {
	display: block;
}

.e-menu--main > li.menu-item-has-children > .sub-menu li,
.e-menu--main > li.menu-item-has-children > .e-menu__drop li {
	list-style: none;
}

.e-menu--main > li.menu-item-has-children > .sub-menu li a,
.e-menu--main > li.menu-item-has-children > .e-menu__drop li a {
	display: block;
	padding: 8px 20px;
	color: #333;
	font-size: 14px;
	text-decoration: none;
	white-space: nowrap;
	border-bottom: 1px solid #eee;
}

.e-menu--main > li.menu-item-has-children > .sub-menu li:last-child a,
.e-menu--main > li.menu-item-has-children > .e-menu__drop li:last-child a {
	border-bottom: none;
}

.e-menu--main > li.menu-item-has-children > .sub-menu li a:hover,
.e-menu--main > li.menu-item-has-children > .e-menu__drop li a:hover {
	background-color: #6430a1;
	color: #fff;
}

/* Другий рівень вкладення в головному меню (підменю всередині підменю) */
.e-menu--main .e-menu__drop > li.menu-item-has-children {
	position: relative;
}
.e-menu--main .e-menu__drop > li.menu-item-has-children > .e-menu__drop {
	display: none;
	position: absolute;
	left: 100%;
	top: 0;
	background: #fff;
	min-width: 200px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	border-radius: 4px;
	z-index: 1002;
	padding: 10px 0;
	margin-left: 0;
}
.e-menu--main .e-menu__drop > li.menu-item-has-children:hover > .e-menu__drop {
	display: block;
}
.e-menu--main .e-menu__drop > li > a,
.e-menu--main .e-menu__drop > li > span {
	display: block;
	padding: 8px 20px;
	padding-right: 32px;
	color: #333;
	font-size: 14px;
	text-decoration: none;
	white-space: nowrap;
	border-bottom: 1px solid #eee;
	cursor: pointer;
}
.e-menu--main .e-menu__drop > li:hover > a,
.e-menu--main .e-menu__drop > li.toggle:hover > span {
	background-color: #6430a1;
	color: #fff;
}
.e-menu--main .e-menu__drop > li.menu-item-has-children > a::after,
.e-menu--main .e-menu__drop > li.menu-item-has-children > span::after {
	content: '›';
	position: absolute;
	right: 12px;
	top: 50%;
	margin-top: -0.5em;
	font-size: 16px;
}
.e-menu--main .e-menu__drop > li.menu-item-has-children:hover > a::after,
.e-menu--main .e-menu__drop > li.menu-item-has-children:hover > span::after {
	color: #fff;
}
.e-menu--main .e-menu__drop .e-menu__drop li a {
	border-bottom: 1px solid #eee;
}
.e-menu--main .e-menu__drop .e-menu__drop li:last-child a {
	border-bottom: none;
}

/* Пункт «⋯»: непоміщені пункти головного меню (JS macro_main_nav_overflow) */
@media (min-width: 992px) {
	.e-menu--main.macro-menu-overflow--active {
		flex-wrap: nowrap !important;
	}

	/*
	 * Інакше flex стискає <li> — scrollWidth ніколи не > clientWidth,
	 * JS не бачить переповнення. Натуральна ширина пунктів + nowrap у тексту.
	 */
	.e-menu-container .e-menu--main.macro-menu-overflow--active > li:not(.macro-menu-more) {
		flex-shrink: 0 !important;
		flex-grow: 0 !important;
	}

	.e-menu-container .e-menu--main.macro-menu-overflow--active > li:not(.macro-menu-more) .e-menu__uibus {
		white-space: nowrap !important;
	}

	.e-menu--main > li.macro-menu-more {
		position: relative;
		flex-shrink: 0;
		list-style: none;
	}

	.e-menu--main > li.macro-menu-more.macro-menu-more--hidden {
		display: none !important;
	}

	.e-menu--main > li.macro-menu-more > .macro-menu-more__btn {
		cursor: pointer;
		user-select: none;
		font-size: 1.35em !important;
		line-height: 1 !important;
		padding: 0.55em 0.4em !important;
		min-width: 1.65em;
		text-align: center;
	}

	.e-menu--main > li.macro-menu-more.menu-item-has-children > .macro-menu-more__btn::after {
		display: none !important;
	}

	.e-menu--main > li.macro-menu-more .macro-menu-more__list {
		left: auto !important;
		right: 0 !important;
		transform: none !important;
		min-width: 240px;
		text-align: left;
	}

	.e-menu--main > li.macro-menu-more .macro-menu-more__list > li {
		margin: 0 !important;
		width: 100%;
	}

	.e-menu--main > li.macro-menu-more .macro-menu-more__list .e-menu__uibus {
		white-space: nowrap !important;
	}
}

.text-uppercase {
	text-transform: uppercase;
}

.wpcf7 form.sent .wpcf7-response-output {
	background-color: #46b450;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
	background-color: #ffb900;
}

/* leftmenu */
.b-lmenu > li.toggle {
	position: relative;
}

.b-lmenu > li.toggle:after {
	content: url(../img/icons/menu-arrow.svg);
	position: absolute;
	top: 25px;
	right: 1.9em;
	margin-top: -0.54em;
	-webkit-transition: all 200ms;
	-o-transition: all 200ms;
	-moz-transition: all 200ms;
	transition: all 200ms;
}

.b-lmenu > li.toggle:hover:after,
.b-lmenu > li.toggle.current-menu-item:after,
.b-lmenu > li.toggle.current-menu-ancestor:after {
	-webkit-filter: grayscale(100%) brightness(430%);
	filter: grayscale(100%) brightness(430%);
}

.b-lmenu > li.toggle.current-menu-item:after,
.b-lmenu > li.toggle.current-menu-ancestor:after {
	transform: rotate(90deg);
}

.b-lmenu > li.current-menu-item > a,
.b-lmenu > li.current-menu-ancestor > a {
	background-color: #6330a1;
	color: #ffffff;
}

.b-lmenu > li.current-menu-item > a:after,
.b-lmenu > li.current-menu-ancestor > a:after {
	opacity: 0;
}

/* drop */
.b-lmenu > li.current-menu-item > .e-menu__drop,
.b-lmenu > li.current-menu-ancestor > .e-menu__drop {
	display: block;
	background: #ffffff;
}

.b-lmenu .e-menu__drop > li {
	position: relative;
}
.b-lmenu .e-menu__drop > li > a,
.b-lmenu .e-menu__drop > li > span {
	font-size: 0.88em;
	font-weight: 500;
	line-height: 1.5;
	display: block;
	padding-left: 2.2em;
	padding-right: 2.2em;
	padding-top: 0.72em;
	padding-bottom: 0.72em;
	position: relative;
	-webkit-transition: all 200ms;
	-o-transition: all 200ms;
	-moz-transition: all 200ms;
	transition: all 200ms;
	cursor: pointer;
}
.b-lmenu .e-menu__drop > li > a:after,
.b-lmenu .e-menu__drop > li > span:after {
	content: '';
	display: block;
	position: absolute;
	border-bottom: 1px solid #efefef;
	left: 2.2em;
	bottom: 0;
	right: 2.2em;
	-webkit-transition: all 200ms;
	-o-transition: all 200ms;
	-moz-transition: all 200ms;
	transition: all 200ms;
}

.b-lmenu .e-menu__drop > li:hover > a,
.b-lmenu .e-menu__drop > li:hover > span {
	color: #ffffff;
	background-color: #6330a1;
}
.b-lmenu .e-menu__drop > li:hover > a:after,
.b-lmenu .e-menu__drop > li:hover > span:after {
	opacity: 0;
}

.b-lmenu .e-menu__drop > li.current-menu-item {
	background: #ccc;
}

/* modal */
.modal .modal-body {
	text-align: center;
}

.modal .modal-title {
	color: #000;
	font-size: 1.5em;
	margin-bottom: 1.2em;
	text-align: center;
}

.modal .form-item {
	margin-bottom: 1em;
}

.modal .form-item select option {
	font-size: 17px;
}

.modal .wpcf7-response-output {
	color: #ffffff;
}

.modal div.wpcf7 input[type='file'] {
	padding: 15px;
}

/* to top */

#toTop {
	color: #fff;
	text-align: center;
	bottom: 60px;
	display: none;
	height: 40px;
	line-height: 40px;
	overflow: hidden;
	position: fixed;
	right: 10px;
	text-decoration: none;
	width: 45px;
	background-color: #6333a0;
	text-transform: uppercase;
	z-index: 100;
	border-radius: 2px;
}
#toTop:hover {
	color: #565656;
	background-color: #c8c8c8;
}

#toTop:before {
	content: '';
	display: block;
	background: url(../img/to-top-arrow.png) no-repeat center;
	width: 45px;
	height: 40px;
	position: absolute;
	left: 0;
	top: 0;
}

.form {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	gap: 40px;
	margin: 20px 0;
}
.form-calculator {
	max-width: 500px;
	height: 460px;
	width: 90%;
	padding: 15px 30px;
	box-shadow: 0 0 20px #a3a7ff;
	border-radius: 8px;
	text-align: center;
}
.form-calculator-title {
	color: #000;
	font-size: 1.5em;
	margin-bottom: 1.2em;
	text-align: center;
}
.form-item {
	margin-bottom: 1em;
}
.descr {
	font-size: 14px;
	max-width: 500px;
	width: 90%;
	height: 460px;
	padding: 15px 30px;
	box-shadow: 0 0 20px #a3a7ff;
	border-radius: 8px;
}
.descr > p > b {
	color: #6333a0;
}
@media (max-width: 991px) {
	.form {
		flex-direction: column;
		gap: 20px;
	}
	.form-calculator {
		height: auto;
	}
	.descr {
		height: auto;
	}
}
textarea {
	resize: vertical;
}
.btn-margin {
	display: block;
	margin: auto;
}

ol {
	list-style-type: decimal !important;
	list-style-position: inside !important;
}
ol li::marker {
	color: #6330a1;
}
.table-wrapper {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
@media (max-width: 575px) {
	.table-wrapper {
		padding-bottom: 5px;
	}
}
@media (max-width: 575px) {
	table {
		width: 985px;
	}
}

.calculate-wrap > .form {
	margin-top: 50px;
	flex-wrap: wrap;
}

.calculate-wrap > .form > .form-calculator {
	height: auto !important;
}

.calculate-wrap > .form > .descr {
	height: auto !important;
}

@media (max-width: 991px) {
	.calculate-wrap > .form {
		position: absolute;
		bottom: 0;
		left: 0;
		flex-direction: row;
	}
	.custom-section {
		position: relative;
		padding-bottom: 950px;
	}
}
@media (max-width: 767px) {
	.custom-section {
		padding-bottom: 1180px;
	}
}
.tenders {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: stretch;
	gap: 16px;
	flex-wrap: wrap;
}
.tenders__item {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 32px;
	padding: 24px;
	border-radius: 12px;
	border: 1px solid #e4e4e7;
	width: 49%;
	height: auto;
}
.tenders__item img {
	width: 160px;
	min-width: 160px;
	height: auto;
	object-fit: cover;
	flex-shrink: 0;
}
.tenders__info {
	flex-grow: 1;
}
.tenders__info h3 {
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 8px;
}
@media (max-width: 991px) {
	.tenders__item {
		flex-wrap: wrap;
		width: 100%;
	}
	.tenders__info h3 {
		font-size: 18px;
	}
}
@media (max-width: 991px) {
	.text-align-justify p {
		text-align: justify;
	}
	.faq-text-align-justify p {
		text-align: justify;
	}
	.faq-text-align-justify p > b {
		display: inline-block;
		text-align: left;
	}
}

.btn-white {
	color: #6333a0;
	font-size: 0.88em;
	font-family: GT Walsheim Pro;
	font-weight: 700;
	line-height: 1.2;
	background-color: #ffffff;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	border-radius: 10px;
	display: -webkit-inline-box;
	display: -webkit-inline-flex;
	display: -moz-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-moz-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-webkit-justify-content: center;
	-moz-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	min-height: 3.91em;
	padding-left: 2.13em;
	padding-right: 2.13em;
}
/* Клієнти */
.clients {
	padding-top: 15px;
	padding-bottom: 90px;
}
.clients-icon {
	display: block;
	margin: auto;
	margin-bottom: 10px;
}
.clients-title {
	max-width: 731px;
	color: #6430a1;
	text-align: center;
	font-feature-settings: 'liga' off, 'clig' off;
	font-family: 'GT Walsheim Pro';
	font-size: 48px;
	font-style: normal;
	font-weight: 700;
	line-height: 55px;
	letter-spacing: -1px;
	margin: auto;
	margin-bottom: 20px;
}
.clients-text {
	max-width: 731px;
	color: #000;
	text-align: center;
	font-feature-settings: 'liga' off, 'clig' off;
	font-family: 'GT Walsheim Pro';
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	line-height: 28px;
	margin: auto;
	margin-bottom: 50px;
}
@media (max-width: 991px) {
	.clients {
		padding-bottom: 50px;
	}
	.clients-title {
		max-width: 100%;
		font-size: 24px;
		line-height: 30px;
	}
	.clients-text {
		max-width: 100%;
		font-size: 16px;
		line-height: 20px;
		margin-bottom: 30px;
	}
}

/* Про нас */
.about-us {
	background-image: url(../../assets/img/about-us-bg.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-color: transparent;
}
.s-50langs {
	padding-top: 2rem;
}
@media (max-width: 991px) {
	.about-us {
		background-image: url(../../assets/img/about-us-bg-mobile-2.png);
	}
	.about-us {
		color: #fff;
	}
}

/* advantages */
.advantages {
	padding: 50px 0;
}
.advantages__title {
	color: #000;
	font-family: 'GT Walsheim Pro';
	font-size: 50px;
	font-style: normal;
	font-weight: 500;
	line-height: 50px;
	letter-spacing: -0.5px;
	margin-bottom: 20px;
}
.advantages__row {
	display: flex;
	flex-direction: row;
	gap: 24px;
	margin-bottom: 40px;
}
.advantages__col {
	width: 50%;
}
.advantages__col-text {
	color: #000;
	font-feature-settings: 'liga' off, 'clig' off;
	font-family: 'GT Walsheim Pro';
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	line-height: 26px;
	margin-bottom: 40px;
}
.advantages__col-list {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}
.advantages__col-item {
	width: 47%;
}
.advantages__col-item > img {
	width: 50px;
	height: 50px;
	margin-bottom: 5px;
}
.advantages__col-item > span {
	display: block;
	color: #000;
	font-feature-settings: 'liga' off, 'clig' off;
	font-family: 'GT Walsheim Pro';
	font-size: 24px;
	font-style: normal;
	font-weight: 500;
	line-height: 30px;
	margin-bottom: 10px;
}
.advantages__col-item > p {
	color: #000;
	font-feature-settings: 'liga' off, 'clig' off;
	font-family: 'GT Walsheim Pro';
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	line-height: 20px; /* 125% */
}
.advantages__btn {
	display: flex;
	justify-content: center;
}

@media (max-width: 1024px) {
	.advantages__row {
		flex-direction: column;
	}
	.advantages__col {
		width: 100%;
	}
}

@media (max-width: 991px) {
	.advantages {
		padding: 30px 0;
	}
	.advantages__title {
		font-size: 30px;
		line-height: 30px;
		margin-bottom: 10px;
	}
	.advantages__row {
		gap: 20px;
		margin-bottom: 30px;
	}
	.advantages__col-text {
		font-size: 16px;
		line-height: 20px;
		margin-bottom: 20px;
	}
	.advantages__col-list {
		gap: 20px;
	}
	.advantages__col-item {
		width: 100%;
	}
	.advantages__col-item > span {
		font-size: 20px;
		line-height: 24px;
	}
}

/* Наші послуги */
.our-services {
	padding: 60px 0 50px 0;
	background: #fafafa;
}
.our-services__title {
	color: #000;
	font-family: 'GT Walsheim Pro';
	font-size: 50px;
	font-style: normal;
	font-weight: 500;
	line-height: 50px; /* 100% */
	letter-spacing: -0.5px;
	margin-bottom: 20px;
}
.our-services__text {
	color: #000;
	font-feature-settings: 'liga' off, 'clig' off;
	font-family: 'GT Walsheim Pro';
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
	text-align: justify;
	margin-bottom: 50px;
}
.our-services__list {
	display: flex;
	flex-wrap: wrap;
	gap: 83px;
	row-gap: 53px;
}
.our-services__item {
	width: 45%;
}
.our-services__item-title {
	display: flex;
	align-items: center;
	color: #000;
	font-feature-settings: 'liga' off, 'clig' off;
	font-family: 'GT Walsheim Pro';
	font-size: 24px;
	font-style: normal;
	font-weight: 700;
	line-height: 30px;
	margin-bottom: 17px;
}
.our-services__item-title > span {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	border-radius: 100px;
	background: #6334a1;
	margin-right: 10px;
	color: var(--palette-white, #fff);
	text-align: center;
	font-family: 'Open Sans';
	font-size: 16px;
	font-style: normal;
	font-weight: 600;
	line-height: 16px;
}
.our-services__item-text {
	color: #000;
	text-align: justify;
	font-feature-settings: 'liga' off, 'clig' off;
	font-family: 'GT Walsheim Pro';
	font-size: 16px;
	font-style: normal;
	font-weight: 500;
	line-height: 22px;
}

@media (max-width: 1024px) {
	.our-services__item {
		width: 100%;
	}
}

@media (max-width: 991px) {
	.our-services {
		padding: 30px 0 20px 0;
	}
	.our-services__title {
		font-size: 30px;
		line-height: 35px;
	}
	.our-services__text {
		font-size: 16px;
		margin-bottom: 20px;
	}
	.our-services__list {
		gap: 30px;
		row-gap: 30px;
	}
	.our-services__item-title {
		font-size: 20px;
		line-height: 24px;
		margin-bottom: 10px;
	}
}
/* Гарантії */
.guarantee {
	padding: 50px 0 80px 0;
}
.guarantee__img {
	display: block;
	margin: auto;
	margin-bottom: 10px;
}
.guarantee__title {
	max-width: 977px;
	margin: auto;
	color: #6430a1;
	text-align: center;
	font-feature-settings: 'liga' off, 'clig' off;
	font-family: 'GT Walsheim Pro';
	font-size: 40px;
	font-style: normal;
	font-weight: 700;
	line-height: normal;
	letter-spacing: -2px;
}
.guarantee__row {
	display: flex;
	align-items: flex-end;
	gap: 30px;
	margin-bottom: 50px;
}
.guarantee__info-title {
	color: #000;
	font-family: 'GT Walsheim Pro';
	font-size: 50px;
	font-style: normal;
	font-weight: 500;
	line-height: 50px;
	letter-spacing: -0.5px;
	margin-bottom: 20px;
}
.guarantee__info-text {
	color: #000;
	font-feature-settings: 'liga' off, 'clig' off;
	font-family: 'GT Walsheim Pro';
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
}
.guarantee__list {
	display: flex;
	gap: 26px;
}
.guarantee__item {
	width: 25%;
}
.guarantee__item-title {
	color: #6430a1;
	font-family: 'GT Walsheim Pro';
	font-size: 24px;
	font-style: normal;
	font-weight: 700;
	line-height: normal;
	margin-bottom: 10px;
}
.guarantee__item-text {
	color: #000;
	font-family: 'GT Walsheim Pro';
	font-size: 18px;
	font-style: normal;
	font-weight: 400;
	line-height: normal;
}
.guarantee__btn {
	margin-top: 50px;
	display: flex;
	justify-content: center;
}

@media (max-width: 991px) {
	.guarantee {
		padding: 25px 0 40px 0;
	}
	.guarantee__title {
		max-width: 100%;
		font-size: 30px;
		margin-bottom: 30px;
	}
	.guarantee__row {
		flex-direction: column;
		gap: 20px;
		margin-bottom: 30px;
	}
	.guarantee__info-title {
		font-size: 24px;
		line-height: 26px;
		margin-bottom: 10px;
	}
	.guarantee__info-text {
		font-size: 16px;
	}
	.guarantee__el {
		display: none;
	}
	.guarantee__list {
		flex-direction: column;
		gap: 20px;
	}
	.guarantee__item {
		width: 100%;
	}
	.guarantee__item-title {
		font-size: 20px;
	}
	.guarantee__item-text {
		font-size: 16px;
	}
	.guarantee__btn {
		margin-top: 20px;
	}
}

/* Price */
.price {
	margin-top: 136px;
	padding: 50px 0;
	background: url(../../assets/img/price.png);
	background-size: cover;
	background-repeat: no-repeat;
	margin-bottom: 50px;
}
.price__content {
	position: relative;
}
.price__bg-el {
	position: absolute;
	right: 0;
	top: -166px;
}
.price__title {
	color: #fff;
	font-family: 'GT Walsheim Pro';
	font-size: 50px;
	font-style: normal;
	font-weight: 500;
	line-height: 50px;
	letter-spacing: -0.5px;
	margin-bottom: 20px;
}
.price__text {
	position: relative;
	z-index: 2;
	max-width: 834px;
	color: #fff;
	font-feature-settings: 'liga' off, 'clig' off;
	font-family: 'GT Walsheim Pro';
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
	margin-bottom: 50px;
}
.price__list {
	display: flex;
	flex-direction: column;
	gap: 41px;
}
.price__item {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	padding-bottom: 9px;
	border-bottom: 1px solid #b687ed;
}
.price__item > p {
	color: #fff;
	font-feature-settings: 'liga' off, 'clig' off;
	font-family: 'GT Walsheim Pro';
	font-size: 24px;
	font-style: normal;
	font-weight: 500;
	line-height: 23px;
}
.price__desc {
	margin-bottom: 50px;
}
.price__desc-text {
	max-width: 1017px;
	color: #000;
	text-align: center;
	font-feature-settings: 'liga' off, 'clig' off;
	font-family: 'GT Walsheim Pro';
	font-size: 24px;
	font-style: normal;
	font-weight: 500;
	line-height: 30px;
	margin: auto;
	margin-bottom: 50px;
}
.price__desc-btn {
	display: flex;
	justify-content: center;
}
@media (max-width: 1024px) {
	.price__bg-el {
		display: none;
	}
}
@media (max-width: 991px) {
	.price {
		position: relative;
		margin-top: 50px;
		padding: 30px 0;
		background: url(../../assets/img/price-mobile.png);
		background-size: cover;
		background-repeat: no-repeat;
	}
	.price__title {
		font-size: 30px;
		line-height: 30px;
		margin-bottom: 10px;
	}
	.price__text {
		max-width: 100%;
		font-size: 16px;
		margin-bottom: 30px;
	}
	.price__list {
		gap: 30px;
	}
	.price__item {
		gap: 10px;
	}
	.price__item > p {
		font-size: 14px;
		line-height: 16px;
	}
	.price__item > .text-right {
		text-align: right;
	}
	.price__desc {
		margin-bottom: 30px;
	}
	.price__desc-text {
		max-width: 100%;
		font-size: 18px;
		line-height: 20px;
		margin-bottom: 30px;
	}
}
.e-client {
	max-width: 200px;
}
@media (max-width: 767px) {
	.s-50langs .cn-cols-row > div:nth-child(n + 5) {
		display: none;
	}
}
@media (max-width: 991px) {
	.faq h4 {
		font-size: 18px !important;
	}
}

@media (max-width: 1024px) {
	.schedule-img {
		display: none;
	}
	.info-block-item {
		flex-basis: calc(50% - 20px) !important;
	}
}
.info-block-work,
.info-block-con {
	font-feature-settings: 'liga' off, 'clig' off !important;
	font-family: 'GT Walsheim Pro' !important;
}

@media (max-width: 991px) {
	.s-head {
		position: sticky;
		top: 0;
		left: 0;
		background-color: #fff;
	}
}

/* Блок з мовами в постах */
.langs-for-service {
	margin-top: 40px;
	padding-top: 20px;
	width: 100%;
	background: url(../../assets/img/langs-for-service.svg);
	background-repeat: no-repeat;
	background-size: cover;
	padding-bottom: 50px;
}
.langs-for-service__img {
	display: block;
	margin: auto;
	margin-bottom: 10px;
}
.langs-for-service__title {
	color: #6430a1;
	text-align: center;
	font-size: 36px;
	font-weight: 500;
	line-height: 40px;
	letter-spacing: -0.48px;
	margin-bottom: 50px;
}
.langs-for-service__list {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 8px;
	row-gap: 20px;
}
.langs-for-service__item {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 6px;
	margin-left: 30px;
}
.langs-for-service__flag picture {
	display: flex;
}
.langs-for-service__flag img {
	object-fit: cover;
	width: 32px;
	height: 32px;
	min-width: 32px;
	min-height: 32px;
	flex-shrink: 0;
	border-radius: 32px;
}
.langs-for-service__text {
	display: flex;
	flex-direction: row;
	align-items: center;
	flex-wrap: wrap;
	gap: 2px;
	color: #4e4e4e;
	font-size: 13px;
	font-weight: 500;
	line-height: 18px;
	transition: all 0.3;
}
.langs-for-service__text:hover {
	color: #6430a1;
}
.langs-for-service__more-btn {
	display: block;
	margin: auto;
	margin-top: 20px;
	color: #6430a1;
	background-color: transparent;
}
.langs-for-service__open-modal {
	margin-top: 50px;
	display: flex;
	justify-content: center;
}
@media (max-width: 991px) {
	.langs-for-service {
		margin-top: 20px;
		padding-bottom: 30px;
	}
	.langs-for-service__title {
		font-size: 24px;
		line-height: 30px;
		margin-bottom: 30px;
	}
	.langs-for-service__list {
		grid-template-columns: repeat(4, 1fr);
	}
	.langs-for-service__item {
		margin-left: 0;
	}
	.langs-for-service__open-modal {
		margin-top: 30px;
	}
}
@media (max-width: 768px) {
	.langs-for-service__list {
		grid-template-columns: repeat(3, 1fr);
		row-gap: 12px;
	}
}
@media (max-width: 480px) {
	.langs-for-service__list {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (min-width: 767px) {
	.langs-for-service__more-btn {
		display: none !important;
	}
}

.photo-article {
	width: 100% !important;
	height: 600px !important;
	object-fit: cover !important;
	object-position: center 30%;
}
@media (max-width: 991px) {
	.photo-article {
		height: 300px !important;
	}
}

/* Container and Wrap */
.cn-container {
	max-width: 1200px;
	margin: 0 auto;
	padding-left: 15px;
	padding-right: 15px;
}

/* Контейнер в хедере - на ширину контентной области, синхронизирован с .wrap */
.s-head .cn-container {
	max-width: 1200px !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 15px !important;
	padding-right: 15px !important;
	box-sizing: border-box !important;
	position: relative !important;
}

.s-head .cn-container > .b-head {
	margin-left: -15px !important;
	margin-right: -15px !important;
	width: calc(100% + 30px) !important;
	padding-left: 15px !important;
	padding-right: 15px !important;
}

@media (min-width: 1200px) {
	.s-head .cn-container {
		max-width: 1450px !important;
	}
}

@media (min-width: 1630px) {
	.s-head .cn-container {
		max-width: 1600px !important;
	}
}

@media (max-width: 767px) {
	.s-head .cn-container {
		max-width: 100% !important;
		width: 100% !important;
		padding-left: 15px !important;
		padding-right: 15px !important;
	}
}

/* Убеждаемся, что хедер занимает всю ширину и контент выровнен */
.s-head {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
}

.s-head__top .cn-container {
	max-width: 1200px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 15px !important;
	padding-right: 15px !important;
	box-sizing: border-box !important;
}

@media (min-width: 1200px) {
	.s-head__top .cn-container {
		max-width: 1450px !important;
	}
}

@media (min-width: 1630px) {
	.s-head__top .cn-container {
		max-width: 1600px !important;
	}
}

@media (max-width: 767px) {
	.s-head__top .cn-container {
		max-width: 100% !important;
		width: 100% !important;
		padding-left: 15px !important;
		padding-right: 15px !important;
	}
}

@media (min-width: 1200px) {
	.cn-container {
		max-width: 1450px;
	}
}

@media (min-width: 1630px) {
	.cn-container {
		max-width: 1600px;
	}
}

@media (max-width: 767px) {
	.cn-container {
		max-width: 100%;
		width: 100%;
		padding-left: 15px;
		padding-right: 15px;
	}
}

.wrap {
	overflow: visible !important; /* важно для работы sticky меню */
	max-width: 1200px;
	margin: 0 auto;
	padding-left: 15px;
	padding-right: 15px;
}

@media (min-width: 1200px) {
	.wrap {
		max-width: 1450px;
	}
}

@media (min-width: 1630px) {
	.wrap {
		max-width: 1600px;
	}
}

@media (max-width: 767px) {
	.wrap {
		max-width: 100%;
		width: 100%;
		padding-left: 15px;
		padding-right: 15px;
	}
}

/* Перемикання хедера по ширині екрана. Десктоп: display: contents щоб sticky-меню працювало (діти як у body). */
.header-wrap--desktop {
	display: contents !important;
}
.header-wrap--mobile {
	display: none !important;
}
@media (max-width: 991px) {
	/* На мобільному ховаємо десктопний хедер і sticky-меню */
	.header-wrap--desktop .s-head,
	.header-wrap--desktop .e-menu-container {
		display: none !important;
	}
	.header-wrap--mobile {
		display: block !important;
	}
}

/* Header Styles from old theme */
.s-head {
	border-bottom: 2px solid #EFEFEF;
	z-index: 4;
	position: relative;
	background-color: #fff;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
	display: block !important;
	overflow: visible !important; /* важно для работы sticky */
	height: auto !important; /* убираем ограничения высоты */
}

.s-head__top {
	background-color: #fafafa;
	padding-top: 0.38em;
	padding-bottom: 0.38em;
	display: none;
}

.b-head {
	padding-top: 1.00em;
	padding-bottom: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	min-height: 80px;
	display: flex;
	align-items: center;
	width: 100% !important;
	margin: 0 !important;
	box-sizing: border-box !important;
}

.b-head .cn-cols-row {
	align-items: stretch;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
}

.iso {
	flex-grow: 2;
	display: flex;
	align-items: center;
}

.iso img {
	width: 56px;
	min-width: 56px;
	height: 56px;
	max-height: 56px;
	object-fit: contain;
}

.logo {
	display: flex;
	align-items: center;
	height: 100%;
}

.logo img {
	max-width: 180px;
	width: auto;
	height: 100%;
	max-height: 80px;
	object-fit: contain;
}

/* Utility Classes */
.cn-container {
	width: 100%;
	margin: 0 auto;
	padding-left: 15px;
	padding-right: 15px;
}

.cn-d-fx {
	display: flex;
}

.cn-jc-between {
	justify-content: space-between;
}

.cn-jc-end {
	justify-content: flex-end;
}

.cn-ai-center {
	align-items: center;
}

.cn-fs-11 {
	font-size: 11px;
}

.cn-cols-row {
	display: flex;
	flex-wrap: wrap;
	margin-left: -15px;
	margin-right: -15px;
}

.cn-gutter-a-30 {
	margin-left: -15px;
	margin-right: -15px;
}

.cn-gutter-a-30 > * {
	padding-left: 15px;
	padding-right: 15px;
}

.cn-gutter-h-30 {
	margin-left: -15px;
	margin-right: -15px;
}

.cn-gutter-h-30 > * {
	padding-left: 15px;
	padding-right: 15px;
}

.cn-w-4_12 {
	width: 33.333333%;
}

.cn-w-8_12 {
	width: 66.666667%;
}

.cn-w-3_12 {
	width: 25%;
}

.cn-w-9_12 {
	width: 75%;
}

.cn-pt-10 {
	padding-top: 10px;
}

.cn-d-no {
	display: none;
}

.cn-d-bl {
	display: block;
}

.cn-fc-nowrap {
	white-space: nowrap;
}

/* Responsive utilities */
@media (max-width: 1199px) {
	.cn-w-3_12--xl {
		width: 25%;
	}
	.cn-w-9_12--xl {
		width: 75%;
	}
}

@media (max-width: 991px) {
	.cn-w-4_12--md {
		width: 33.333333%;
	}
	.cn-w-8_12--md {
		width: 66.666667%;
	}
	.cn-d-no--md {
		display: none;
	}
	.cn-fc-nowrap--xl {
		white-space: normal;
	}
}

@media (max-width: 767px) {
	.cn-w-6_12--sm {
		width: 50%;
	}
	.cn-w-7_12--xs {
		width: 58.333333%;
	}
	.cn-w-5_12--xs {
		width: 41.666667%;
	}
	.cn-d-no--sm {
		display: none;
	}
	.cn-ai-center--sm {
		align-items: center;
	}
	.iso {
		display: none;
	}
	.s-head__top {
		display: block;
	}
	.b-head {
		padding-top: 0.70em;
		padding-bottom: 0.70em;
	}
}

@media (max-width: 575px) {
	.cn-w-6_12--sm {
		width: 100%;
	}
	.cn-w-7_12--xs {
		width: 100%;
	}
	.cn-w-5_12--xs {
		width: 100%;
	}
}

@media (min-width: 992px) {
	.cn-d-no--lg {
		display: none;
	}
	.cn-d-bl--lg {
		display: block;
	}
}

.m-d-n {
	display: none;
}

/* Typography */
.typo-unire {
	font-size: 1.25em;
	font-weight: 500;
	line-height: 1.5;
}

.typo-videt {
	font-size: 0.88em;
	line-height: 1.5;
}

.typo-titur {
	font-size: 0.88em;
	font-weight: 500;
	line-height: 1.5;
}

/* Icons */
.elem-icon-phone:before {
	content: url(../img/icons/phone.svg);
	margin-right: 0.30em;
}

.elem-icon-metro:before {
	content: url(../img/icons/metro.svg);
	margin-right: 0.30em;
}

.elem-icon-email:before {
	content: url(../img/icons/ask.svg);
	margin-right: 0.30em;
	margin-bottom: -0.50em;
}

.elem-icon-route:before {
	content: url(../img/icons/map.svg);
	margin-right: 0.30em;
	margin-bottom: -0.50em;
}

.elem-icon-phone {
	white-space: nowrap;
}

/* Buttons */
.btn-snap {
	color: #ffffff;
	font-size: 0.88em;
	font-family: GT Walsheim Pro;
	font-weight: 700;
	line-height: 1.3;
	background-color: #6333a0;
	border-radius: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 56px;
	min-height: 56px;
	padding: 0.5em 0.8em;
	max-width: 140px;
	white-space: normal !important;
	text-align: center !important;
	word-wrap: break-word !important;
	overflow-wrap: break-word !important;
	text-decoration: none;
	transition: all 0.2s;
}

.btn-snap:hover {
	color: #ffffff;
	filter: brightness(119%);
}

/* Кнопка "Замовити переклад" в блоке процесса - в одну строку */
.process-button .btn-snap {
	max-width: none !important;
	min-width: 200px !important;
	width: auto !important;
	white-space: nowrap !important;
	word-wrap: normal !important;
	overflow-wrap: normal !important;
	flex-shrink: 1 !important;
	display: inline-flex !important;
}

/* Кнопка калькулятора - разделенная на две части */
.btn-calculator-split {
	display: inline-flex !important;
	align-items: stretch !important;
	border-radius: 10px !important;
	overflow: hidden !important;
	text-decoration: none !important;
	transition: all 0.2s !important;
	flex-shrink: 0 !important;
	max-width: 240px !important;
}

/* Левая часть - иконка на темном фоне */
.btn-calculator-icon {
	background-color: #6330a1 !important;
	color: #ffffff !important;
	border-radius: 10px 0 0 10px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 1.0em !important; /* было 0.5em, увеличено в 2 раза */
	min-width: 60px !important; /* добавлена минимальная ширина */
	font-size: 1.2em !important;
	height: 56px !important;
	flex-shrink: 0 !important;
}

/* Правая часть - текст на белом фоне с обводкой */
.btn-calculator-text {
	background-color: #ffffff !important;
	color: #6330a1 !important;
	border: 2px solid #6330a1 !important;
	border-left: none !important;
	border-radius: 0 10px 10px 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 0.8em !important;
	font-size: 0.88em !important;
	font-family: "GT Walsheim Pro", sans-serif !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	height: 56px !important;
	min-height: 56px !important;
	white-space: normal !important;
	text-align: center !important;
	word-wrap: break-word !important;
	overflow-wrap: break-word !important;
}

.btn-calculator-split:hover .btn-calculator-icon {
	background-color: #7a3fb8 !important;
}

.btn-calculator-split:hover .btn-calculator-text {
	background-color: #6330a1 !important;
	color: #ffffff !important;
	border-color: #6330a1 !important;
}

/* Иконка маршрута - использует стандартный стиль ссылки как у email */
.elem-icon-route:before {
	content: url(../img/icons/map.svg);
	margin-right: 0.30em;
	margin-bottom: -0.50em;
	vertical-align: middle;
}

/* Ссылка "Маршрут" - увеличенный отступ слева и пунктирное подчеркивание */
.typo-titur.elem-icon-route {
	margin-left: 1.0em !important; /* увеличен отступ слева */
	text-decoration: none !important;
	border-bottom: 1px dashed currentColor !important; /* пунктирное подчеркивание */
	padding-bottom: 1px !important;
	display: inline-block !important;
}

.typo-titur.elem-icon-route:hover {
	border-bottom-color: #6330a1 !important;
}

/* Hero з фото (hero-block-2) — зміщення фону: ПК і моб */
@media (min-width: 769px) {
	.s-welcome--photo .hero-bg {
		background-size: cover !important;
		background-position: 70% center !important;
	}
}
@media (max-width: 768px) {
	.s-welcome--photo .hero-bg {
		/* background-image — з wp_upload_dir() через wp_add_inline_style у functions.php */
		background-size: auto 100% !important;
		background-position: right center !important;
	}
}

/* Hero-блок (s-welcome) - фон на 100% ширины экрана, уменьшен на 30% */
.s-welcome {
	width: 100vw !important;
	margin-left: calc(-50vw + 50%) !important;
	margin-right: calc(-50vw + 50%) !important;
	position: relative !important;
	left: 0 !important;
	right: 0 !important;
	padding-top: 4.27em !important; /* было 6.10em, уменьшено на 30% */
	padding-bottom: 1.12em !important; /* было 1.60em, уменьшено на 30% */
}

.s-welcome .cn-container {
	position: relative !important;
	z-index: 1 !important;
	max-width: 1200px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Уменьшаем отступы внутри hero-блока на 30% */
.s-welcome .cn-mb-30 {
	margin-bottom: 21px !important; /* было 30px, уменьшено на 30% */
}

.s-welcome .cn-mb-15 {
	margin-bottom: 10.5px !important; /* было 15px, уменьшено на 30% */
}

/* Уменьшаем размер изображения в hero-блоке */
.s-welcome__mentu img {
	max-width: 70% !important; /* уменьшено на 30% */
	height: auto !important;
}

/* Блок с кнопками в хедере - исправление искажений и сдвигов */
.b-head .cn-d-fx {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	flex-shrink: 0 !important;
	flex-wrap: nowrap !important;
	min-width: 0 !important;
	position: relative !important;
}

.btn-snap {
	flex-shrink: 0 !important;
	white-space: normal !important;
}

/* Кнопка "Замовити переклад" в блоке процесса - в одну строку (переопределение) */
.process-button .btn-snap {
	max-width: none !important;
	min-width: 200px !important;
	width: auto !important;
	white-space: nowrap !important;
	word-wrap: normal !important;
	overflow-wrap: normal !important;
	flex-shrink: 1 !important;
	display: inline-flex !important;
}

/* Модалка «Замовити переклад» (Contact Form 7) — вище мобільного меню (z-index 1000) */
.macro-cf7-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 100500;
	align-items: center;
	justify-content: center;
	padding: 16px;
	box-sizing: border-box;
}

.macro-cf7-modal.is-open {
	display: flex;
}

.macro-cf7-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	cursor: pointer;
}

.macro-cf7-modal__dialog {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 560px;
	max-height: min(90vh, 720px);
	overflow: auto;
	background: #fff;
	border-radius: 12px;
	padding: 28px 24px 24px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.22);
	box-sizing: border-box;
}

.macro-cf7-modal__title {
	margin: 0 0 16px;
	padding-right: 36px;
	font-size: 1.35rem;
	font-weight: 700;
	color: #333;
}

.macro-cf7-modal__close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: none;
	background: transparent;
	font-size: 28px;
	line-height: 1;
	color: #666;
	cursor: pointer;
	border-radius: 8px;
	transition: background 0.2s, color 0.2s;
}

.macro-cf7-modal__close:hover {
	background: #f0f0f0;
	color: #111;
}

.macro-cf7-modal__body .wpcf7-form {
	margin: 0;
}

/*
 * Кнопка відправки в модалці: краще без class:btn-snap у шорткоді CF7
 * ([submit class:btn "…"]) — тоді не тягнуться max-width:140px та 0.88em з хедера.
 * Нижче — повний вигляд «як snap», лише для цієї форми.
 */
.macro-cf7-modal__body .wpcf7-form input.wpcf7-submit,
.macro-cf7-modal__body .wpcf7-form button.wpcf7-submit {
	max-width: none !important;
	width: 100% !important;
	min-width: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	min-height: 56px !important;
	padding: 0.5em 1em !important;
	border: none !important;
	border-radius: 10px !important;
	cursor: pointer !important;
	color: #ffffff !important;
	background-color: #6333a0 !important;
	font-family: "GT Walsheim Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 1rem !important;
	line-height: 1.35 !important;
	text-align: center !important;
	transition: filter 0.2s, background-color 0.2s !important;
}

.macro-cf7-modal__body .wpcf7-form input.wpcf7-submit:hover,
.macro-cf7-modal__body .wpcf7-form button.wpcf7-submit:hover {
	filter: brightness(1.12) !important;
	color: #ffffff !important;
}

.macro-cf7-modal__body .wpcf7-form p:has(.wpcf7-submit) {
	display: block !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

body.macro-cf7-modal-open {
	overflow: hidden;
}

/* Mobile menu */
.mobile-over {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	z-index: 999;
	display: none;
}

.mobile-over.active {
	display: block;
}

.mobile {
	position: fixed;
	top: 0;
	right: -100%;
	width: 300px;
	height: 100%;
	background: #fff;
	z-index: 1000;
	transition: right 0.3s;
}

.mobile.active {
	right: 0;
}

.mobile-body {
	padding: 20px;
}

/*
 * Крошки та компактний заголовок (як у single-services.php) — глобально,
 * щоб page.php / page-info.php та інші шаблони мали той самий вигляд, що й сторінки послуг.
 */
.service-breadcrumbs {
	background-color: #6430a1;
	padding: 15px 0;
	width: 100%;
	box-sizing: border-box;
}

.service-breadcrumbs .breadcrumbs-wrapper {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 15px;
	box-sizing: border-box;
}

.service-breadcrumbs .breadcrumbs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 14px;
	color: #fff;
}

.service-breadcrumbs .breadcrumbs a {
	color: #fff;
	text-decoration: none;
	transition: opacity 0.2s;
	white-space: nowrap;
	flex-shrink: 0;
}

.service-breadcrumbs .breadcrumbs a:hover {
	opacity: 0.8;
	text-decoration: underline;
}

.service-breadcrumbs .breadcrumbs-separator {
	color: rgba(255, 255, 255, 0.7);
	margin: 0 4px;
}

.service-breadcrumbs .breadcrumbs-current {
	color: #fff;
	font-weight: 600;
}

.service-header-compact {
	padding: 20px 0;
	background: rgba(100, 48, 161, 0.5);
	position: relative;
	width: 100%;
	box-sizing: border-box;
}

.service-title-compact {
	font-size: 32px;
	font-weight: 700;
	color: #fff;
	margin: 0;
	line-height: 1.2;
	text-align: center;
}

@media (min-width: 1200px) {
	.service-breadcrumbs .breadcrumbs-wrapper {
		max-width: 1450px;
	}
}

@media (min-width: 1630px) {
	.service-breadcrumbs .breadcrumbs-wrapper {
		max-width: 1600px;
	}
}

@media (max-width: 767px) {
	.service-title-compact {
		font-size: 1.5rem;
	}
}

/* Звичайні крошки видимі на мобільних і не під fixed-хедером */
@media (max-width: 991px) {
	.service-breadcrumbs {
		display: block !important;
		margin-top: 56px !important; /* під fixed мобільним хедером */
	}

	/* Сторінки без крошок (archive, 404): заголовок під fixed-хедер */
	.service-header-compact {
		margin-top: 56px;
	}

	.service-breadcrumbs + .service-header-compact {
		margin-top: 0;
	}

	/* Крошки + заголовок уже зміщені — зайвий padding-top у .wrap не потрібен */
	.service-header-compact + main.wrap,
	.service-header-compact + .wrap {
		padding-top: 0 !important;
	}
}

/* Блог: менший верхній відступ контенту на мобільному */
@media (max-width: 767px) {
	.blog-page-section,
	.blog-index-section,
	.blog-archive-section {
		padding-top: 16px !important;
		padding-bottom: 48px !important;
	}

	.service-header-compact {
		padding-top: 12px;
		padding-bottom: 12px;
	}
}

/* Мобільна панель: пункти меню завжди вертикальним списком (перебиває .e-menu--main) */
#mobile-menu .mobile-nav ul,
#mobile-menu ul.e-menu,
#mobile-menu ul#mobile-menu-items,
#mobile-menu #mobile-menu-items {
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
#mobile-menu .mobile-nav ul > li,
#mobile-menu ul.e-menu > li,
#mobile-menu #mobile-menu-items > li {
	display: block !important;
	width: 100% !important;
	box-sizing: border-box !important;
}
#mobile-menu .mobile-nav ul > li > a,
#mobile-menu .mobile-nav ul > li > .e-menu__uibus,
#mobile-menu ul.e-menu > li > a,
#mobile-menu ul.e-menu > li > .e-menu__uibus,
#mobile-menu #mobile-menu-items > li > a,
#mobile-menu #mobile-menu-items > li > .e-menu__uibus {
	display: block !important;
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 14px 0 !important;
	min-height: 44px !important;
}

.e-toggle {
	width: 30px;
	height: 30px;
	position: relative;
	cursor: pointer;
	background: none !important;
	border: none !important;
	padding: 0 !important;
	outline: none !important;
	display: block !important;
}

.e-toggle:before,
.e-toggle:after {
	content: '';
	position: absolute;
	width: 100%;
	height: 2px;
	background: #000;
	transition: all 0.3s;
}

.e-toggle:before {
	top: 8px;
}

.e-toggle:after {
	bottom: 8px;
}

.e-toggle.active:before {
	transform: rotate(45deg);
	top: 14px;
}

.e-toggle.active:after {
	transform: rotate(-45deg);
	bottom: 14px;
}

/* Navigation */
.main-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 20px;
}

.main-navigation a {
	text-decoration: none;
	color: inherit;
}

/* WOW animations */
/* .wow-delay - удален, не используем wow эффекты */
	animation-delay: 0.2s;
}

/* .wow.fadeInUp - удален, не используем wow эффекты */
/* @keyframes fadeInUp - удален, не используем wow эффекты */

/* Footer Styles from old theme */
.s-foot {
	background-color: #fafafa;
	padding-top: 3.00em;
	padding-bottom: 6.00em;
}

.s-foot__map {
	background-color: #c8c8c8;
	height: 7.80em;
}

.s-foot__menu {
	line-height: 1.5;
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	padding: 0;
	margin: 0;
}

.s-foot__menu > li {
	width: 50%;
}

.s-foot__menu a {
	text-decoration: none;
	color: inherit;
	transition: all 0.2s;
}

.s-foot__menu a:hover {
	color: #6333a0;
}

/* Social Icons */
.e-social {
	color: #b8b8b8;
	font-family: Gotham Pro;
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
}

.e-social a {
	display: flex;
	align-items: center;
	gap: 5px;
	text-decoration: none;
	color: inherit;
	transition: all 0.2s;
}

.e-social a:hover {
	color: #6333a0;
}

.e-social i {
	vertical-align: middle;
}

.e-social span {
	font-size: 0.88em;
}

/* Additional Utility Classes */
.cn-wp-30 {
	width: 30%;
}

.cn-wp-45 {
	width: 45%;
}

.cn-pt-45 {
	padding-top: 45px;
}

.cn-pt-55 {
	padding-top: 55px;
}

.cn-mt-25 {
	margin-top: 25px;
}

.cn-mb-20 {
	margin-bottom: 20px;
}

.cn-mb-25 {
	margin-bottom: 25px;
}

.cn-mb-5 {
	margin-bottom: 5px;
}

.cn-gutter-v-10 {
	margin-top: -5px;
	margin-bottom: -5px;
}

.cn-gutter-v-10 > * {
	padding-top: 5px;
	padding-bottom: 5px;
}

.cn-gutter-h-50 {
	margin-left: -25px;
	margin-right: -25px;
}

.cn-gutter-h-50 > * {
	padding-left: 25px;
	padding-right: 25px;
}

.cn-ord-1--xs {
	order: 1;
}

.cn-fs-12--xs {
	font-size: 12px;
}

.cn-w-auto {
	width: auto;
}

.text-justify {
	text-align: justify;
}

/* Colors */
.color__royal-purple {
	color: #6333a0;
}

.color__royal-blue {
	color: dodgerblue;
}

.color__silver-chalice {
	color: #a19f9f;
}

/* Typography */
.typo-corpu {
	font-size: 1.13em;
	font-weight: 700;
	line-height: 1.5;
}

.typo-ritur {
	font-weight: 500;
	line-height: 1.5;
}

.elem-viber,
.elem-telegram {
	text-decoration: none;
	margin-left: 10px;
	display: inline-block;
}

.elem-viber:before {
	content: url(../img/icons/viber.png);
	margin-right: 0.40em;
	vertical-align: middle;
}

.elem-telegram:before {
	content: url(../img/icons/telegram.png);
	margin-right: 0.40em;
	vertical-align: middle;
}

/* Responsive Footer */
@media (max-width: 991px) {
	.cn-w-6_12--lg {
		width: 50%;
	}
	.cn-d-no--lg {
		display: none;
	}
}

@media (max-width: 767px) {
	.s-foot {
		padding-top: 2.00em;
		padding-bottom: 3.00em;
	}
	.cn-w-12_12--xs {
		width: 100%;
	}
	.cn-ord-1--xs {
		order: 1;
	}
	.cn-pt-45 {
		padding-top: 20px;
	}
	.s-foot__menu > li {
		width: 100%;
	}
}

/* Modal Styles */
.modal {
	display: none;
	position: fixed;
	z-index: 10000;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: auto;
	background-color: rgba(0, 0, 0, 0.5);
}

.modal.fade {
	opacity: 0;
	transition: opacity 0.15s linear;
}

.modal.fade.show {
	opacity: 1;
	display: block;
}

.modal-dialog {
	position: relative;
	width: auto;
	max-width: 500px;
	margin: 1.75rem auto;
}

.modal-content {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	background-color: #fff;
	border-radius: 0.3rem;
	box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

.modal-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	padding: 1rem;
	border-bottom: 1px solid #dee2e6;
	border-top-left-radius: 0.3rem;
	border-top-right-radius: 0.3rem;
}

.modal-title {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 500;
}

.modal-body {
	position: relative;
	flex: 1 1 auto;
	padding: 1rem;
}

.margin-bottom-15 {
	margin-bottom: 15px;
}

.size__18 {
	font-size: 18px;
}

/* Главная: меньший отступ между «Нам довіряють» и «Блог про переклади» */
.front-page-wrap .section.clients {
	padding-bottom: 2.5rem;
}

.front-page-wrap .blog-section {
	padding-top: 2.5rem;
}

@media (max-width: 991px) {
	.front-page-wrap .section.clients {
		padding-bottom: 1.75rem;
	}

	.front-page-wrap .blog-section {
		padding-top: 1.75rem;
	}
}

/* Главная страница - секции на 100% ширины */
.front-page-wrap {
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

.front-page-wrap .section {
	width: 100vw;
	margin-left: calc(-50vw + 50%);
}

/* Відгуки Google — як на головній (головна, сторінки мов, архів мов) */
.reviews-section--home {
	position: relative;
	overflow: hidden;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding-top: 4.5rem;
	padding-bottom: 2.5rem;
	background: linear-gradient(135deg, #f8f6fc 0%, #f4effa 55%, #f0ebf8 100%);
	box-sizing: border-box;
}

/* Декор: збільшений сектор логотипу (logo-mark), блідо-фіолетовий */
.reviews-section--home::before {
	content: "";
	position: absolute;
	z-index: 0;
	pointer-events: none;
	width: clamp(380px, 52vw, 780px);
	height: clamp(380px, 52vw, 780px);
	left: -14%;
	top: 50%;
	transform: translateY(-48%);
	background-color: rgba(100, 48, 161, 0.16);
	-webkit-mask-image: url("../img/logo-mark.svg");
	mask-image: url("../img/logo-mark.svg");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.reviews-section--home .cn-container {
	position: relative;
	z-index: 1;
}

/* Сторінка «Мови перекладу»: більше зверху, менше знизу (секція окремо від сітки мов) */
.languages-page-section + .reviews-section--home {
	padding-top: 5.5rem !important;
	padding-bottom: 1.25rem !important;
}

@media (max-width: 991px) {
	.reviews-section--home::before {
		width: clamp(280px, 70vw, 480px);
		height: clamp(280px, 70vw, 480px);
		left: -28%;
		opacity: 0.9;
	}
}

@media (max-width: 767px) {
	/* 100vw на мобільному дає горизонтальний скрол (ширина з урахуванням scrollbar) */
	.front-page-wrap .reviews-section--home {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		overflow-x: clip;
	}

	.reviews-section--home::before {
		width: min(320px, 95vw);
		height: min(320px, 95vw);
		left: 50%;
		transform: translate(-50%, -42%);
		opacity: 0.75;
	}

	.languages-page-section + .reviews-section--home {
		padding-top: 3.5rem !important;
		padding-bottom: 0.75rem !important;
	}
}

/* Калькулятор: intro тільки якщо є контент сторінки; без порожнього блоку на мобільному */
.calc-page-intro {
	padding-top: 40px;
	margin-bottom: 30px;
}

@media (max-width: 767px) {
	.calc-page-intro {
		padding-top: 0;
		margin-bottom: 20px;
	}
}

/* Стандартные стили для таблиц - белый текст в заголовках на темном фоне */
table thead {
	background: linear-gradient(135deg, #6430a1 0%, #8b5cc7 100%);
	color: #fff;
}

table thead th,
table thead th * {
	color: #fff !important;
}

table thead th sup {
	color: #fff !important;
}

/* Исправление растягивания изображений в галерее и медиа-библиотеке */
.attachment img,
.wp-block-image img,
.wp-block-gallery img,
.gallery img,
.attachment-details .attachment-media-view img,
.attachment-details .attachment-media-view .thumbnail img {
	max-width: 100% !important;
	height: auto !important;
	object-fit: contain !important;
	display: block !important;
}

/* Админ-панель WordPress - просмотр изображения в медиа-библиотеке */
.attachment-details .attachment-media-view {
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 400px;
}

.attachment-details .attachment-media-view .thumbnail {
	display: inline-block;
	max-width: 100%;
	max-height: 80vh;
	width: auto;
	height: auto;
}

.attachment-details .attachment-media-view .thumbnail img {
	max-width: 100% !important;
	max-height: 80vh !important;
	width: auto !important;
	height: auto !important;
	object-fit: contain !important;
	display: block !important;
	margin: 0 auto !important;
}

/* Для горизонтальных изображений */
.attachment-details .attachment-media-view img[width][height] {
	max-width: 100% !important;
	width: auto !important;
	height: auto !important;
	aspect-ratio: attr(width) / attr(height);
}

/* Галерея WordPress на фронтенде */
.wp-block-gallery {
	display: grid;
	gap: 1em;
}

.wp-block-gallery .wp-block-image img {
	width: 100%;
	height: auto;
	object-fit: cover;
}

/* ========== Таблиці в контенті сторінок (HTML у редакторі не змінюється) ========== */
figure.wp-block-table {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	max-width: 100%;
}

.entry-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table),
.about-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table),
.service-content__main table:not(.prices-table):not(.prices-sidebar-table):not(.services-table),
.page-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table),
.clients-page-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table),
.wp-block-post-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table) {
	width: 100%;
	max-width: 100%;
	border-collapse: collapse;
}

.entry-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table) th,
.entry-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table) td,
.about-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table) th,
.about-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table) td,
.service-content__main table:not(.prices-table):not(.prices-sidebar-table):not(.services-table) th,
.service-content__main table:not(.prices-table):not(.prices-sidebar-table):not(.services-table) td,
.page-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table) th,
.page-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table) td,
.clients-page-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table) th,
.clients-page-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table) td,
.wp-block-post-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table) th,
.wp-block-post-content table:not(.prices-table):not(.prices-sidebar-table):not(.services-table) td {
	word-break: break-word;
	overflow-wrap: break-word;
	vertical-align: top;
}

/* Горизонтальний скрол у блоці тексту, якщо таблиця ширша за колонку */
@supports selector(:has(*)) {
	.entry-content:has(table:not(.prices-table):not(.prices-sidebar-table):not(.services-table)),
	.about-content:has(table:not(.prices-table):not(.prices-sidebar-table):not(.services-table)),
	.service-content__main:has(table:not(.prices-table):not(.prices-sidebar-table):not(.services-table)),
	.page-content:has(table:not(.prices-table):not(.prices-sidebar-table):not(.services-table)),
	.clients-page-content:has(table:not(.prices-table):not(.prices-sidebar-table):not(.services-table)),
	.wp-block-post-content:has(table:not(.prices-table):not(.prices-sidebar-table):not(.services-table)) {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* ========== Типові сторінки (page.php, index.php) — стиль як у контенті послуг ========== */
.service-content--default {
	padding: 60px 0 80px;
	background: #fff;
}

.service-content--default .entry-content.page-content {
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
	font-size: 17px;
	line-height: 1.8;
	color: #444;
}

.service-content--default .entry-content.page-content > *:first-child {
	margin-top: 0;
}

.service-content--default .entry-content.page-content h2,
.service-content--default .entry-content.page-content h3,
.service-content--default .entry-content.page-content h4 {
	color: #1a1a2e;
	margin-top: 1.35em;
	margin-bottom: 0.65em;
	line-height: 1.25;
}

.service-content--default .entry-content.page-content h2 {
	font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}

.service-content--default .entry-content.page-content h3 {
	font-size: clamp(1.2rem, 2vw, 1.4rem);
}

.service-content--default .entry-content.page-content p,
.service-content--default .entry-content.page-content ul,
.service-content--default .entry-content.page-content ol {
	margin-bottom: 1em;
}

.service-content--default .entry-content.page-content .page-links {
	margin-top: 2em;
	padding-top: 1em;
	border-top: 1px solid #e8e4f0;
	font-size: 15px;
	color: #555;
}

.default-page-empty {
	text-align: center;
	font-size: 17px;
	color: #666;
	margin: 0 0 16px;
}

.default-page-empty-link {
	text-align: center;
	margin: 0;
}

/* Info Page (page-info.php) — фон і типографіка як уступі «Про нас», без інших блоків */
.info-page-section {
	padding: 60px 0 80px;
	background: linear-gradient(135deg, #fff 0%, #f8f6fc 100%);
}

.info-page-section .about-content {
	max-width: 900px;
	margin: 0 auto;
	font-size: 18px;
	line-height: 1.8;
	color: #444;
}

.info-page-section .about-content > *:first-child {
	margin-top: 0;
}

.info-page-section .about-content h2,
.info-page-section .about-content h3 {
	color: #1a1a2e;
	margin-top: 40px;
	margin-bottom: 20px;
}

.info-page-section .about-content p {
	margin-bottom: 20px;
}

.info-page-section .about-content .page-links {
	margin-top: 2em;
	padding-top: 1em;
	border-top: 1px solid #e8e4f0;
	font-size: 16px;
	color: #555;
}

/* ========== Мобільна адаптивність сайту ========== */
@media (max-width: 991px) {
	img {
		max-width: 100%;
		height: auto;
	}
	/* Браузери без :has — дозволяємо горизонтальний скрол у колонці контенту */
	.entry-content,
	.about-content,
	.service-content__main,
	.page-content,
	.clients-page-content,
	.wp-block-post-content {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	/* Мінімальний розмір кнопок/посилань для торкання */
	.btn,
	button:not(.e-toggle),
	a.btn,
	.calc-row-action .btn {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 12px 20px;
	}
	.service-content--default {
		padding: 40px 0 60px;
	}
	.info-page-section {
		padding: 40px 0 60px;
	}
	.order-thanks-section {
		padding: 60px 0;
	}
}

/* Thank-you page (page-thanks.php) */
.order-thanks-section {
	padding: 80px 0 100px;
	background: linear-gradient(135deg, #fff 0%, #f8f6fc 100%);
	min-height: 50vh;
	display: flex;
	align-items: center;
}

.order-thanks-content {
	text-align: center;
	max-width: 720px;
	margin: 0 auto;
}

.order-thanks-icon {
	color: #6430a1;
	margin-bottom: 28px;
}

.order-thanks-lead {
	font-size: 22px;
	font-weight: 700;
	color: #1a1a2e;
	margin: 0 0 16px;
	line-height: 1.4;
}

.order-thanks-text {
	font-size: 18px;
	line-height: 1.7;
	color: #666;
	margin: 0 0 36px;
}

.order-thanks-editor {
	text-align: left;
	font-size: 18px;
	line-height: 1.8;
	color: #444;
	margin-bottom: 36px;
}

.order-thanks-editor > *:first-child {
	margin-top: 0;
}

.order-thanks-actions {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
}

.order-thanks-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 28px;
	border-radius: 8px;
	text-decoration: none;
	font-weight: 600;
	font-size: 16px;
	transition: all 0.3s ease;
}

.order-thanks-btn--primary {
	background: linear-gradient(135deg, #6430a1 0%, #8b5cc7 100%);
	color: #fff;
	box-shadow: 0 4px 15px rgba(100, 48, 161, 0.3);
}

.order-thanks-btn--primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(100, 48, 161, 0.4);
	color: #fff;
}

.order-thanks-btn--outline {
	background: #fff;
	color: #6430a1;
	border: 2px solid #6430a1;
}

.order-thanks-btn--outline:hover {
	background: #6430a1;
	color: #fff;
	transform: translateY(-2px);
}

@media (max-width: 767px) {
	body {
		font-size: 15px;
	}
	h1 {
		font-size: 1.75rem;
	}
	h2 {
		font-size: 1.5rem;
	}
	h3 {
		font-size: 1.25rem;
	}
	/* Калькулятор: відступи та сітка вже в шаблоні */
	.s-calc .cn-container,
	.calc-widget {
		padding-left: 15px;
		padding-right: 15px;
	}
	.calc-widget {
		padding: 20px 15px;
	}
	/* Таблиця послуг — горизонтальний скрол */
	.services-table-wrap {
		margin-left: -15px;
		margin-right: -15px;
		padding-left: 15px;
		padding-right: 15px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.services-table {
		min-width: 400px;
	}
}

@media (max-width: 480px) {
	.cn-container,
	.wrap {
		padding-left: 12px;
		padding-right: 12px;
	}
	.calc-widget {
		padding: 16px 12px;
	}
}
