/**
 * Layout fixes from "Правки PL+RU" document.
 */

/* Site grid: 1360px @ 1440 viewport = 94.444vw */
:root {
	--ls-grid-width: min(94.444vw, 1360px);
}

.elementor-location-header .elementor-element-06c4895 {
	--content-width: var(--ls-grid-width) !important;
	width: 100% !important;
	max-width: var(--ls-grid-width) !important;
	margin-inline: auto !important;
}

.wd-page-content.main-page-wrapper > .container,
.wd-page-content .wd-content-layout.container {
	max-width: var(--ls-grid-width) !important;
	width: 100% !important;
	margin-inline: auto !important;
	padding-inline: 0 !important;
	box-sizing: border-box !important;
}

.elementor-2617 {
	width: 100% !important;
	max-width: 100% !important;
}

/* All homepage sections = same width as header (1360px / 94.444vw) */
@media (min-width: 768px) {
	.elementor-2617 > .e-con.e-con-boxed.e-parent {
		--content-width: var(--ls-grid-width) !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.elementor-2617 > .e-con.e-con-boxed.e-parent > .e-con-inner {
		max-width: var(--ls-grid-width) !important;
		width: 100% !important;
		margin-inline: auto !important;
		box-sizing: border-box !important;
	}

	/* Full-bleed sections: background edge-to-edge, content on grid */
	.elementor-2617 > .e-con.e-con-full.e-parent > .e-con-inner {
		width: 100% !important;
		max-width: var(--ls-grid-width) !important;
		margin-inline: auto !important;
		box-sizing: border-box !important;
	}

	/* Hero: drop extra side padding so text aligns with grid */
	.elementor-2617 .elementor-element-49a57ba8 {
		--padding-left: 0px !important;
		--padding-right: 0px !important;
	}

	.elementor-2617 .elementor-element-49a57ba8 > .e-con-inner {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* Footer — same grid */
@media (min-width: 768px) {
	.elementor-location-footer .elementor-element-dc2faff,
	.elementor-location-footer .elementor-element-eaf7d73,
	.elementor-location-footer > .e-con.e-con-boxed.e-parent {
		--content-width: var(--ls-grid-width) !important;
		width: 100% !important;
		max-width: none !important;
		margin-inline: 0 !important;
		background-color: #051120 !important;
	}

	.elementor-location-footer .elementor-element-dc2faff > .e-con-inner,
	.elementor-location-footer > .e-con.e-con-boxed.e-parent > .e-con-inner {
		max-width: var(--ls-grid-width) !important;
		width: 100% !important;
		margin-inline: auto !important;
		box-sizing: border-box !important;
	}
}

/* #11 — Content not flush to screen edge */
@media (max-width: 767px) {
	.elementor-2617 > .e-con-boxed > .e-con-inner {
		padding-inline: max(16px, 4.1vw) !important;
	}

	.elementor-2617 .elementor-element-3a1e2244,
	.elementor-2617 .elementor-element-25e7f7f1 {
		padding-inline: max(12px, 3vw) !important;
		box-sizing: border-box !important;
	}
}

/* #1 / #12 — Service cards: spacing + equal heights */
.elementor-2617 .elementor-element-3a1e2244 {
	align-items: stretch !important;
	gap: 16px !important;
}

.elementor-2617 .elementor-element-3a1e2244 > .e-con {
	align-items: stretch !important;
	height: auto !important;
}

.elementor-2617 .elementor-element-358706de,
.elementor-2617 .elementor-element-62cc096b,
.elementor-2617 .elementor-element-3a1e2244 > .e-con {
	flex: 1 1 0 !important;
	min-width: 0 !important;
}

.elementor-2617 .elementor-element-1f81eb29,
.elementor-2617 .elementor-element-3072275c,
.elementor-2617 .elementor-element-5a2fad8a,
.elementor-2617 .elementor-element-2e8de557,
.elementor-2617 .elementor-element-2b26332a,
.elementor-2617 .elementor-element-501fc666,
.elementor-2617 .elementor-element-72b7b5d2,
.elementor-2617 .elementor-element-6b68329e,
.elementor-2617 .elementor-element-657fa0d0 {
	margin-top: 4px !important;
	margin-bottom: 10px !important;
}

.elementor-2617 .elementor-element-7d645028,
.elementor-2617 .elementor-element-358706de .e-con:has(.icongra) {
	margin-top: auto !important;
}

/* #25–28 — Desktop: prices on the right of titles */
@media (min-width: 768px) {
	.elementor-2617 .elementor-element-1f81eb29,
	.elementor-2617 .elementor-element-3072275c,
	.elementor-2617 .elementor-element-5a2fad8a,
	.elementor-2617 .elementor-element-2e8de557,
	.elementor-2617 .elementor-element-2b26332a,
	.elementor-2617 .elementor-element-501fc666,
	.elementor-2617 .elementor-element-72b7b5d2,
	.elementor-2617 .elementor-element-6b68329e,
	.elementor-2617 .elementor-element-657fa0d0,
	.elementor-2617 .elementor-element-a9f0e03,
	.elementor-2617 .elementor-element-52b1bd2 {
		flex-direction: row !important;
		justify-content: space-between !important;
		align-items: flex-start !important;
		flex-wrap: nowrap !important;
		gap: 12px 20px !important;
		width: 100% !important;
	}

	.elementor-2617 .elementor-element-1f81eb29 > .elementor-widget-wd_text_block:first-child,
	.elementor-2617 .elementor-element-3072275c > .elementor-widget-wd_text_block:first-child,
	.elementor-2617 .elementor-element-5a2fad8a > .elementor-widget-wd_text_block:first-child,
	.elementor-2617 .elementor-element-2e8de557 > .elementor-widget-wd_text_block:first-child,
	.elementor-2617 .elementor-element-2b26332a > .elementor-widget-wd_text_block:first-child,
	.elementor-2617 .elementor-element-501fc666 > .elementor-widget-wd_text_block:first-child,
	.elementor-2617 .elementor-element-72b7b5d2 > .elementor-widget-wd_text_block:first-child,
	.elementor-2617 .elementor-element-6b68329e > .elementor-widget-wd_text_block:first-child,
	.elementor-2617 .elementor-element-657fa0d0 > .elementor-widget-wd_text_block:first-child,
	.elementor-2617 .elementor-element-a9f0e03 > .elementor-widget-wd_text_block:first-child,
	.elementor-2617 .elementor-element-52b1bd2 > .elementor-widget-wd_text_block:first-child {
		flex: 1 1 auto !important;
		min-width: 0 !important;
		max-width: 58% !important;
	}

	.elementor-2617 .elementor-element-792135b6,
	.elementor-2617 .elementor-element-7ef30e10,
	.elementor-2617 .elementor-element-7ab9f186,
	.elementor-2617 .elementor-element-7544a409,
	.elementor-2617 .elementor-element-73a53d8c,
	.elementor-2617 .elementor-element-363a1d8c,
	.elementor-2617 .elementor-element-19833f7,
	.elementor-2617 .elementor-element-7810c65e,
	.elementor-2617 .elementor-element-7f520f5a,
	.elementor-2617 .elementor-element-c40pric,
	.elementor-2617 .elementor-element-c50pric {
		flex: 0 0 auto !important;
		max-width: 42% !important;
		margin-left: auto !important;
		align-self: flex-start !important;
	}

	.elementor-2617 .elementor-element-792135b6 .wd-text-block,
	.elementor-2617 .elementor-element-7ef30e10 .wd-text-block,
	.elementor-2617 .elementor-element-7ab9f186 .wd-text-block,
	.elementor-2617 .elementor-element-7544a409 .wd-text-block,
	.elementor-2617 .elementor-element-73a53d8c .wd-text-block,
	.elementor-2617 .elementor-element-363a1d8c .wd-text-block,
	.elementor-2617 .elementor-element-19833f7 .wd-text-block,
	.elementor-2617 .elementor-element-7810c65e .wd-text-block,
	.elementor-2617 .elementor-element-7f520f5a .wd-text-block,
	.elementor-2617 .elementor-element-c40pric .wd-text-block,
	.elementor-2617 .elementor-element-c50pric .wd-text-block {
		text-align: right !important;
	}

	.elementor-2617 .elementor-element-7810c65e {
		max-width: 180px !important;
		width: auto !important;
	}
}

/* #15 — Ensure popup/CTA buttons stay clickable */
.elementor-2617 .elementor-widget-button .elementor-button,
.elementor-2617 a.icongra {
	position: relative;
	z-index: 6;
	pointer-events: auto !important;
}

/* #12 / #13 — Popup form: close button + text layout */
@media (max-width: 767px) {
	.elementor-popup-modal .dialog-close-button {
		right: 10px !important;
		left: auto !important;
		top: 10px !important;
		margin: 0 !important;
		inset-inline-end: 10px !important;
		inset-inline-start: auto !important;
	}

	.elementor-popup-modal .dialog-widget-content {
		padding: 44px 16px 20px !important;
		box-sizing: border-box !important;
	}

	.elementor-popup-modal .tp-content,
	.elementor-popup-modal .elementor-field-group {
		max-width: 100% !important;
		box-sizing: border-box !important;
	}

	.elementor-popup-modal .elementor-field-type-acceptance label {
		font-size: 13px !important;
		line-height: 1.35 !important;
		padding-right: 28px !important;
	}
}

/* #16 / #39 — Header like Figma 1440: logo+slogan | menu center | CTA right */
@media (min-width: 768px) {
	.elementor-location-header #hede1 > .e-con-inner {
		position: relative !important;
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: flex-start !important;
		min-height: 69px !important;
		width: 100% !important;
		max-width: 100% !important;
		padding-inline: 0 !important;
	}

	.elementor-location-header .elementor-element-8544452 {
		flex: 0 0 auto !important;
		order: 1;
		z-index: 2;
		align-self: center !important;
	}

	.elementor-location-header .constalt-header-location {
		flex: 0 0 auto !important;
		order: 2;
		align-self: center !important;
		z-index: 2;
		margin-left: clamp(10px, 1.1vw, 18px) !important;
	}

	.elementor-location-header .elementor-element-9a5c4cf,
	.elementor-location-header .elementor-element-3faa3de {
		display: none !important;
	}

	.elementor-location-header .elementor-element-f9544af {
		order: 3;
		--width: auto !important;
		--margin-left: 0 !important;
		--margin-right: 0 !important;
		width: auto !important;
		min-width: max-content !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 14px 22px !important;
		align-self: center !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		z-index: 1;
	}

	.elementor-location-header .elementor-element-6098a43,
	.elementor-location-header .elementor-element-6098a43 > .elementor-widget-container {
		width: auto !important;
		max-width: none !important;
		display: flex !important;
		align-items: center !important;
	}

	.elementor-location-header .elementor-element-6098a43 .elementor-nav-menu--main,
	.elementor-location-header .elementor-element-6098a43 .elementor-nav-menu {
		display: flex !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		width: max-content !important;
		max-width: none !important;
	}

	.elementor-location-header .elementor-element-6098a43 .elementor-nav-menu > li {
		flex: 0 0 auto !important;
		display: flex !important;
		align-items: center !important;
		white-space: nowrap !important;
	}

	.elementor-location-header .elementor-element-6098a43 .elementor-nav-menu .elementor-item {
		display: inline-flex !important;
		align-items: center !important;
		white-space: nowrap !important;
		padding: 0 12px !important;
		font-size: 13px !important;
		line-height: 1 !important;
	}

	.elementor-location-header .elementor-element-c160a8b {
		flex: 0 0 auto !important;
		order: 4;
		--width: auto !important;
		--margin-left: 0 !important;
		width: auto !important;
		margin: 0 0 0 auto !important;
		align-items: center !important;
		align-self: center !important;
		gap: 12px !important;
		padding: 6px 8px 6px 14px !important;
		z-index: 2;
	}

	.elementor-location-header .elementor-element-355cf5c {
		width: auto !important;
		max-width: none !important;
		--container-widget-width: auto !important;
		flex: 0 0 auto !important;
	}

	.elementor-location-header .elementor-element-355cf5c .elementor-button-wrapper,
	.elementor-location-header .elementor-element-355cf5c .elementor-button {
		width: auto !important;
		max-width: none !important;
	}

	.elementor-location-header .elementor-element-355cf5c .elementor-button {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		white-space: nowrap !important;
		font-size: 13px !important;
		line-height: 1.2 !important;
		padding: 15px 32px !important;
		min-height: 48px !important;
		box-sizing: border-box !important;
	}

	.elementor-location-header .elementor-element-355cf5c .elementor-button-text {
		white-space: nowrap !important;
	}

	/* Lang switcher */
	.elementor-location-header .elementor-element-dab1ce3 {
		width: auto !important;
		max-width: none !important;
		min-width: 0 !important;
		height: auto !important;
		align-self: center !important;
	}

	.elementor-location-header .elementor-element-dab1ce3 .wd-text-block,
	.elementor-location-header .elementor-element-dab1ce3 .trp-language-item,
	.elementor-location-header .elementor-element-dab1ce3 .trp-language-item__current,
	.elementor-location-header .elementor-element-dab1ce3 .trp-language-item-name {
		font-size: 12px !important;
		font-weight: 300 !important;
		line-height: 1.1 !important;
		letter-spacing: 0.08em !important;
		min-width: 0 !important;
	}

	.elementor-location-header .elementor-element-dab1ce3 .trp-current-language-item__wrapper {
		min-width: 0 !important;
		height: auto !important;
		padding: 0 !important;
		gap: 4px !important;
	}

	.elementor-location-header .elementor-element-dab1ce3 .trp-shortcode-overlay {
		min-width: 0 !important;
		height: auto !important;
	}

	.elementor-location-header .elementor-element-dab1ce3 .trp-shortcode-overlay .trp-shortcode-arrow {
		width: 8px !important;
		height: 8px !important;
	}
}

/* Desktop: menu centered in header (Figma) */
@media (min-width: 1200px) {
	.elementor-location-header .elementor-element-f9544af {
		position: absolute !important;
		left: 50% !important;
		top: 50% !important;
		transform: translate(-50%, -50%) !important;
		margin: 0 !important;
	}
}

@media (min-width: 768px) and (max-width: 1199px) {
	.elementor-location-header #hede1 > .e-con-inner {
		gap: clamp(10px, 1.2vw, 16px) !important;
	}

	.elementor-location-header .elementor-element-f9544af {
		position: static !important;
		transform: none !important;
		padding: 10px 14px !important;
	}

	.elementor-location-header .constalt-header-location {
		max-width: 150px !important;
	}

	.elementor-location-header .elementor-element-6098a43 .elementor-nav-menu .elementor-item {
		font-size: 11px !important;
		padding: 0 7px !important;
	}

	.elementor-location-header .elementor-element-355cf5c .elementor-button {
		font-size: 11px !important;
		padding: 12px 18px !important;
	}
}

@media (min-width: 1025px) and (max-width: 1280px) {
	.elementor-location-header .constalt-header-location {
		max-width: 185px !important;
	}

	.elementor-location-header .elementor-element-6098a43 .elementor-nav-menu .elementor-item {
		font-size: 12px !important;
		padding: 6px 8px !important;
	}

	.elementor-location-header .elementor-element-dab1ce3 .trp-language-item,
	.elementor-location-header .elementor-element-dab1ce3 .trp-language-item__current,
	.elementor-location-header .elementor-element-dab1ce3 .trp-language-item-name {
		font-size: 12px !important;
	}
}

@media (min-width: 1281px) {
	.elementor-location-header .constalt-header-location {
		max-width: 190px !important;
		font-size: 11px !important;
	}

	.elementor-location-header .elementor-element-6098a43 .elementor-nav-menu .elementor-item {
		padding: 0 14px !important;
		font-size: 14px !important;
	}

	.elementor-location-header .elementor-element-dab1ce3 .wd-text-block,
	.elementor-location-header .elementor-element-dab1ce3 .trp-language-item,
	.elementor-location-header .elementor-element-dab1ce3 .trp-language-item__current,
	.elementor-location-header .elementor-element-dab1ce3 .trp-language-item-name {
		font-size: 13px !important;
	}

	.elementor-location-header .elementor-element-355cf5c .elementor-button {
		font-size: 14px !important;
		padding: 15px 36px !important;
	}
}

/* #29 — FAQ accordion spacing + question icon alignment */
.ls-faq__q {
	padding-left: 16px !important;
	gap: 12px !important;
	align-items: flex-start !important;
}

.ls-faq__q::after {
	flex: 0 0 10px !important;
	align-self: center !important;
	margin-top: 0 !important;
}

.ls-faq__item.is-open .ls-faq__q::after {
	margin-top: 0 !important;
}

/* #30 / #31 — Stages scroll hint: no layout jump when hidden */
.ls-stages-header-row {
	position: relative;
	min-height: 28px;
}

.ls-stages-swipe-hint.is-hidden {
	display: inline-flex !important;
	visibility: hidden !important;
	opacity: 0 !important;
	animation: none !important;
}
