/* ============================================
RSM SERVICE — landing page styles
============================================ */

* {
	box-sizing: border-box
}

html {
	scroll-behavior: smooth
}

body {
	margin: 0;
	background: #FFFFFF;
	color: #071225;
	font-family: 'Manrope', system-ui, -apple-system, "Segoe UI", sans-serif;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

a {
	color: #087BFF;
	text-decoration: none
}

a:hover {
	color: #0A5FCC
}

input,
textarea,
button {
	font-family: inherit;
	font-size: inherit;
	color: inherit
}

input::placeholder,
textarea::placeholder {
	color: #9BAABD
}

h1,
h2,
h3,
h4,
p {
	margin: 0
}

img {
	max-width: 100%
}

/* ---------- Keyframes ---------- */
@keyframes rsmFlow {

	0%,
	100% {
		opacity: .25;
		transform: translateX(0) scale(1)
	}

	50% {
		opacity: .6;
		transform: translateX(-16px) scale(1.06)
	}
}

@keyframes rsmSweep {
	0% {
		transform: translateX(-70%)
	}

	100% {
		transform: translateX(180%)
	}
}

@keyframes rsmRise {
	from {
		opacity: 0;
		transform: translateY(28px)
	}

	to {
		opacity: 1;
		transform: translateY(0)
	}
}

@keyframes rsmFade {
	from {
		opacity: 0
	}

	to {
		opacity: 1
	}
}

@keyframes rsmPop {
	from {
		opacity: 0;
		transform: translateY(24px) scale(.98)
	}

	to {
		opacity: 1;
		transform: translateY(0) scale(1)
	}
}

/* ============================================
Responsive visibility helpers
(mirrors original breakpoints: mobile <900px, wide >=1150px)
============================================ */
.mobile-only {
	display: block
}

.desk-only {
	display: none
}

.narrow-only {
	display: block
}

.wide-only {
	display: none
}

@media (min-width:900px) {
	.mobile-only {
		display: none
	}

	.desk-only {
		display: block
	}
}

@media (min-width:1150px) {
	.narrow-only {
		display: none
	}

	.wide-only {
		display: block
	}
}

/* dropdown panels (mobile address / mobile nav) start hidden via [hidden] */
.dropdown-panel[hidden] {
	display: none
}

/* ============================================
Hero section responsive padding
============================================ */
.hero-inner {
	position: relative;
	max-width: 1560px;
	margin: 0 auto;
	padding: 48px clamp(20px, 5vw, 60px) 56px;
	min-height: auto;
	display: flex;
	align-items: center;
}

@media (min-width:1150px) {
	.hero-inner {
		padding: clamp(60px, 7vw, 110px) 60px clamp(64px, 7vw, 120px);
		min-height: min(920px, calc(100vh - 88px));
	}
}

/* ============================================
Mobile sticky bottom bar
============================================ */
.mobile-sticky-bar {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 70;
	gap: 10px;
	padding: 12px 14px;
	background: rgba(255, 255, 255, .95);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-top: 1px solid rgba(8, 123, 255, .16);
	box-shadow: 0 -10px 30px -20px rgba(7, 18, 37, .5);
}

@media (max-width:899px) {
	.mobile-sticky-bar {
		display: flex
	}

	body {
		padding-bottom: 76px
	}
}

/* ============================================
Modal
============================================ */
.modal-overlay[hidden] {
	display: none
}

/* ============================================
Reveal-on-scroll animation
IMPORTANT: the hidden (opacity:0) state is scoped under html.js,
a class that script.js adds the instant it starts running. If the
script fails to load for any reason (wrong path, blocked, WP
stripped it, etc.) this selector never matches and every block
is simply visible by default — no permanently-blank sections.
JS then toggles .rv-in on elements with [data-rv] as they scroll
into view.
============================================ */
html.js [data-rv] {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s cubic-bezier(.22, .61, .36, 1), transform .7s cubic-bezier(.22, .61, .36, 1)
}

html.js [data-rv].rv-in {
	opacity: 1;
	transform: translateY(0)
}

/* ============================================
Cases slider (scroll-snap)
============================================ */
.cases__track {
	display: flex;
	gap: 28px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 4px 20px 20px max(20px, calc((100vw - 1560px)/2 + 20px));
	scrollbar-width: none;
	-ms-overflow-style: none;
}

@media (max-width: 767px) {
	.cases__track {
		margin-left: 5px;
	}
}

.cases__track::-webkit-scrollbar {
	display: none
}

.case-card {
	flex: 0 0 100%;
	scroll-snap-align: start;
	min-width: 0;
}

@media (min-width:1100px) {
	.case-card {
		flex: 0 0 72%
	}
}

.case-card__inner {
	position: relative;
	overflow: hidden;
	border-radius: 30px;
	border: 1px solid rgba(8, 123, 255, .14);
	background: #fff;
	box-shadow: 0 34px 74px -46px rgba(7, 18, 37, .55);
	display: grid;
	grid-template-columns: 1fr;
	min-height: 520px;
}

@media (min-width:1100px) {
	.case-card__inner {
		grid-template-columns: 0.9fr 1.1fr
	}
}

.case-card__img {
	position: relative;
	background: #EDF3FB;
	min-height: 260px;
	overflow: hidden
}

.case-card__img img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover
}

.case-card__body {
	position: relative;
	padding: clamp(32px, 3vw, 54px)
}

.case-card__num {
	position: absolute;
	right: 28px;
	top: 10px;
	font-size: 112px;
	font-weight: 800;
	letter-spacing: -.05em;
	color: rgba(8, 123, 255, .07);
	line-height: 1
}

.case-card__content {
	position: relative
}

.case-card__car {
	display: block;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #087BFF;
	margin-bottom: 14px
}

.case-card__title {
	display: block;
	font-size: clamp(19px, 1.5vw, 24px);
	font-weight: 800;
	text-transform: uppercase;
	line-height: 1.2;
	color: #071225;
	margin-bottom: 30px;
	max-width: 520px
}

.case-card__steps {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-bottom: 28px
}

.case-card__step {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 18px
}

.case-card__step-dot {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px
}

.case-card__step-dot span:first-child {
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: #087BFF;
	margin-top: 5px;
	display: block
}

.case-card__step-line {
	flex: 1;
	width: 1px;
	background: linear-gradient(180deg, rgba(8, 123, 255, .5), rgba(8, 123, 255, .12));
	display: block
}

.case-card__step-label {
	display: block;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #9BAABD;
	margin-bottom: 8px
}

.case-card__step p {
	font-size: 15.5px;
	line-height: 1.55;
	color: #3F4E62;
	text-wrap: pretty;
	margin: 0
}

.case-card__result {
	border-radius: 16px;
	background: linear-gradient(120deg, #F1F7FE, #E9F2FD);
	border: 1px solid rgba(8, 123, 255, .16);
	padding: 20px 24px
}

.case-card__result p {
	font-size: 15px;
	font-weight: 700;
	line-height: 1.5;
	color: #071225;
	text-wrap: pretty;
	margin: 0
}

/* ============================================
Reviews slider (scroll-snap)
============================================ */
.reviews__track {
	display: flex;
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 10px 4px 50px;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.reviews__track::-webkit-scrollbar {
	display: none
}

.review-card {
	flex: 0 0 100%;
	scroll-snap-align: start;
	min-width: 0;
}

@media (min-width:760px) {
	.review-card {
		flex: 0 0 calc(50% - 12px)
	}
}

@media (min-width:1200px) {
	.review-card {
		flex: 0 0 calc(33.333% - 16px)
	}
}

.review-card__inner {
	position: relative;
	height: 100%;
	background: #fff;
	border: 1px solid rgba(8, 123, 255, .14);
	border-radius: 26px;
	padding: 38px 34px;
	box-shadow: 0 26px 58px -42px rgba(7, 18, 37, .5);
}

.review-card__quote {
	position: absolute;
	right: 28px;
	top: 16px;
	font-size: 64px;
	line-height: 1;
	font-weight: 800;
	color: rgba(8, 123, 255, .10);
	font-family: Georgia, serif
}

.review-card__head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 20px
}

.review-card__avatar {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: linear-gradient(135deg, #E3EEFB, #CFE2F8);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 17px;
	font-weight: 800;
	color: #087BFF;
	flex: none
}

.review-card__name {
	font-size: 16px;
	font-weight: 800;
	color: #071225
}

.review-card__stars {
	font-size: 14px;
	color: #FBBC04;
	letter-spacing: 1.5px;
	line-height: 1.3
}

.review-card__text {
	font-size: 15.5px;
	line-height: 1.62;
	color: #3F4E62;
	margin-bottom: 26px;
	text-wrap: pretty
}

.review-card__foot {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-top: 18px;
	border-top: 1px solid rgba(8, 123, 255, .12);
	font-size: 14px;
	font-weight: 800;
	color: #5A6979
}

.review-card__foot span:nth-child(3) {
	font-size: 13px;
	color: #8593A5;
	font-weight: 400
}

.review-card__foot-dot {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: #C3CEDB
}

/* ============================================
FAQ accordion
============================================ */
.faq-item {
	background: #fff;
	border: 1px solid rgba(8, 123, 255, .14);
	border-radius: 20px;
	overflow: hidden;
	transition: border-color .4s, box-shadow .4s;
	box-shadow: 0 18px 44px -38px rgba(7, 18, 37, .4);
}

.faq-item.open {
	border-color: rgba(8, 123, 255, .42);
	box-shadow: 0 26px 56px -40px rgba(8, 123, 255, .6);
}

.faq-item__question {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	background: transparent;
	border: 0;
	padding: 28px 32px;
	text-align: left;
	cursor: pointer;
}

.faq-item__question span:first-child {
	font-size: clamp(16px, 1.2vw, 19px);
	font-weight: 700;
	line-height: 1.4;
	color: #071225;
	text-wrap: pretty
}

.faq-item__icon {
	flex: none;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid rgba(8, 123, 255, .28);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 19px;
	font-weight: 600;
	color: #087BFF;
	transition: transform .4s cubic-bezier(.22, .61, .36, 1), background .4s;
}

.faq-item.open .faq-item__icon {
	transform: rotate(135deg);
	background: rgba(8, 123, 255, .10)
}

.faq-item__answer {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .5s cubic-bezier(.22, .61, .36, 1);
}

.faq-item.open .faq-item__answer {
	grid-template-rows: 1fr
}

.faq-item__answer>.faq-item__answer-inner {
	overflow: hidden
}

.faq-item__answer p {
	padding: 0 32px 30px;
	font-size: 16px;
	line-height: 1.65;
	color: #5A6979;
	max-width: 900px;
	text-wrap: pretty;
	margin: 0
}

/* Prev/next slider buttons and other interactive elements below use
real :hover / :focus rules (see each block's own selectors). */
/* ============================================
Component & utility classes
BEM-style names (block__element--modifier).
Everything that used to be an inline style="..." attribute now
lives here as a class.
============================================ */
.page-wrap {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: rgba(255, 255, 255, .88);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	border-bottom: 1px solid rgba(8, 123, 255, .10);
}

.site-header__bar {
	max-width: 1560px;
	margin: 0 auto;
	padding: 14px clamp(16px, 4vw, 60px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	flex-wrap: wrap;
}

.site-header__logo-link {
	display: flex;
	align-items: center;
	flex: none;
}

.site-header__logo {
	height: 24px;
	width: auto;
	display: block;
}

.site-header__mobile-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}

.site-header__addr-btn {
	width: 46px;
	height: 46px;
	border-radius: 13px;
	border: 1px solid rgba(8, 123, 255, .22);
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.site-header__addr-btn-icon {
	width: 19px;
	height: 24px;
	object-fit: contain;
}

.site-header__call-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 13px;
	border: 1px solid rgba(8, 123, 255, .22);
}

.site-header__call-btn-icon {
	width: 24px;
	height: 24px;
	object-fit: contain;
}

.site-header__burger-btn {
	width: 46px;
	height: 46px;
	border-radius: 13px;
	border: 1px solid rgba(8, 123, 255, .22);
	background: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	cursor: pointer;
}

.site-header__burger-line {
	width: 19px;
	height: 2px;
	background: #087BFF;
	border-radius: 2px;
}

.site-header__nav {
	display: flex;
	align-items: center;
	gap: 30px;
	flex-wrap: wrap;
}

.site-header__nav-link {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .11em;
	text-transform: uppercase;
	color: #3C4A5E;
}

.site-header__nav-link:hover {
	color: #087BFF;
}

.site-header__info {
	display: flex;
	flex-direction: column;
	gap: 7px;
	align-items: flex-end;
	flex: none;
}

.site-header__info-row {
	display: flex;
	align-items: center;
	gap: 11px;
}

.site-header__info-icon--phone {
	width: 28px;
	height: 28px;
	object-fit: contain;
}

.site-header__info-text {
	display: flex;
	flex-direction: column;
	gap: 1px;
	align-items: flex-start;
}

.site-header__info-phone {
	font-size: 18px;
	font-weight: 800;
	color: #071225;
	letter-spacing: -.01em;
}

.site-header__info-hours {
	font-size: 12px;
	color: #6B7A8D;
}

.site-header__info-icon--pin {
	width: 19px;
	height: 24px;
	object-fit: contain;
	margin: 0 4px;
}

.site-header__info-address {
	font-size: 13.5px;
	color: #3C4A5E;
	font-weight: 500;
}

.addr-panel__inner {
	border-top: 1px solid rgba(8, 123, 255, .12);
	background: #fff;
	padding: 16px 20px 20px;
	animation: rsmFade .25s ease both;
}

.addr-panel__row {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.addr-panel__icon {
	width: 19px;
	height: 24px;
	object-fit: contain;
	margin-top: 2px;
}

.addr-panel__address {
	font-size: 16px;
	font-weight: 800;
	color: #071225;
	line-height: 1.4;
}

.addr-panel__hours {
	font-size: 13.5px;
	color: #6B7A8D;
	margin-top: 4px;
}

.addr-panel__route-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 14px;
	background: #087BFF;
	color: #fff;
	border-radius: 13px;
	padding: 15px;
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	min-height: 50px;
}

.nav-panel__inner {
	border-top: 1px solid rgba(8, 123, 255, .12);
	background: #fff;
	padding: 18px 20px 24px;
	animation: rsmFade .25s ease both;
}

.nav-panel__nav {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.nav-panel__link {
	padding: 14px 8px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #3C4A5E;
	border-bottom: 1px solid rgba(8, 123, 255, .08);
}

.nav-panel__link--last {
	padding: 14px 8px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #3C4A5E;
}

.nav-panel__footer {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid rgba(8, 123, 255, .12);
}

.nav-panel__phone {
	font-size: 19px;
	font-weight: 800;
	color: #071225;
}

.nav-panel__hours {
	font-size: 13.5px;
	color: #6B7A8D;
}

.hero {
	position: relative;
	background: linear-gradient(180deg, #FFFFFF 0%, #F1F6FD 100%);
	overflow: hidden;
}

.hero__bg {
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	width: min(64%, 1180px);
	pointer-events: none;
}

.hero__bg-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 65% 50%;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .65) 22%, #000 46%);
	mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .65) 22%, #000 46%);
}

.hero__bg-glow {
	position: absolute;
	left: 6%;
	top: 26%;
	width: 56%;
	height: 34%;
	background: radial-gradient(ellipse at 85% 50%, rgba(96, 196, 255, .5), rgba(8, 123, 255, .12) 45%, transparent 72%);
	filter: blur(22px);
	animation: rsmFlow 7s ease-in-out infinite;
}

.hero__content {
	width: 100%;
	max-width: 820px;
	animation: rsmRise .9s cubic-bezier(.22, .61, .36, 1) both;
}

.eyebrow--hero {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 38px;
}

.eyebrow__dash {
	width: 46px;
	height: 3px;
	background: #087BFF;
	border-radius: 2px;
}

.eyebrow__label {
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: #087BFF;
}

.hero__title {
	font-size: clamp(32px, 5vw, 90px);
	line-height: .98;
	font-weight: 800;
	letter-spacing: -.03em;
	text-transform: uppercase;
	color: #071225;
	margin-bottom: 30px;
}

.text-accent {
	color: #087BFF;
}

.hero__lead {
	font-size: clamp(16px, 1.2vw, 21px);
	line-height: 1.5;
	color: #3F4E62;
	font-weight: 500;
	max-width: 620px;
	margin-bottom: 52px;
	text-wrap: pretty;
}

.hero__stats {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 30px;
	margin-bottom: 56px;
}

.hero__stat {
	display: flex;
	align-items: center;
	gap: 14px;
}

.hero__stat-icon--experience {
	width: 36px;
	height: 33px;
	object-fit: contain;
}

.hero__stat-label {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.25;
	color: #071225;
}

.hero__stat-divider {
	width: 1px;
	height: 44px;
	background: rgba(8, 123, 255, .20);
}

.hero__stat-icon--guarantee {
	width: 31px;
	height: 36px;
	object-fit: contain;
}

.hero__stat-icon--diagnostics {
	width: 38px;
	height: 30px;
	object-fit: contain;
}

.hero__cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	background: #087BFF;
	color: #fff;
	border: 0;
	border-radius: 16px;
	padding: 24px 40px;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 22px 44px -18px rgba(8, 123, 255, .85);
	transition: transform .35s cubic-bezier(.22, .61, .36, 1), box-shadow .35s;
}

.hero__cta-btn:hover {
	transform: translateY(-3px);
	box-shadow: 0 28px 54px -16px rgba(8, 123, 255, .95);
}

.btn-icon {
	width: 24px;
	height: 22px;
	object-fit: contain;
	filter: brightness(0) invert(1);
}

.hero__mobile-image {
	position: relative;
	margin-top: 44px;
	border-radius: 24px;
	overflow: hidden;
	border: 1px solid rgba(8, 123, 255, .14);
	box-shadow: 0 30px 64px -44px rgba(7, 18, 37, .55);
}

.hero__mobile-image-img {
	display: block;
	width: 100%;
	height: clamp(220px, 46vw, 360px);
	object-fit: cover;
	object-position: 62% 50%;
}

.problems {
	padding: clamp(64px, 9vw, 150px) clamp(20px, 5vw, 60px);
	background: #fff;
}

.container {
	max-width: 1560px;
	margin: 0 auto;
}

.problems__header {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s cubic-bezier(.22, .61, .36, 1), transform .7s cubic-bezier(.22, .61, .36, 1);
	max-width: 960px;
	margin-bottom: 70px;
}

.eyebrow {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 26px;
}

.problems__title {
	font-size: clamp(30px, 3.5vw, 60px);
	line-height: 1.03;
	font-weight: 800;
	letter-spacing: -.025em;
	text-transform: uppercase;
	color: #071225;
	margin-bottom: 26px;
}

.problems__lead {
	font-size: clamp(15px, 1.15vw, 19px);
	line-height: 1.6;
	color: #5A6979;
	max-width: 720px;
	text-wrap: pretty;
}

.cards-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
	gap: 24px;
}

.problem-card {
	position: relative;
	overflow: hidden;
	height: 100%;
	background: #fff;
	border: 1px solid rgba(8, 123, 255, .12);
	border-radius: 26px;
	padding: 44px 38px 40px;
	box-shadow: 0 22px 50px -34px rgba(7, 18, 37, .35);
	transition: transform .45s cubic-bezier(.22, .61, .36, 1), box-shadow .45s, border-color .45s;
}

.problem-card:hover {
	transform: translateY(-6px);
	border-color: rgba(8, 123, 255, .45);
	box-shadow: 0 34px 62px -30px rgba(8, 123, 255, .45);
}

.problem-card__num {
	position: absolute;
	right: 26px;
	top: 12px;
	font-size: 86px;
	font-weight: 800;
	letter-spacing: -.04em;
	color: rgba(8, 123, 255, .09);
	line-height: 1;
}

.problem-card__icon {
	position: relative;
	display: block;
	height: 56px;
	width: auto;
	max-width: 100%;
	object-fit: contain;
	margin-bottom: 26px;
}

.problem-card__title {
	position: relative;
	font-size: 19px;
	font-weight: 800;
	text-transform: uppercase;
	color: #071225;
	margin-bottom: 14px;
}

.problem-card__text {
	position: relative;
	font-size: 15.5px;
	line-height: 1.55;
	color: #5A6979;
	text-wrap: pretty;
}

.problems__banner {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s cubic-bezier(.22, .61, .36, 1), transform .7s cubic-bezier(.22, .61, .36, 1);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	margin-top: 60px;
	padding: 38px 44px;
	border-radius: 24px;
	background: linear-gradient(120deg, #F2F7FE, #E9F2FD);
	border: 1px solid rgba(8, 123, 255, .14);
}

.problems__banner-text {
	font-size: clamp(16px, 1.3vw, 20px);
	line-height: 1.5;
	font-weight: 600;
	color: #071225;
	max-width: 760px;
	text-wrap: pretty;
}

.problems__banner-btn {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	background: #087BFF;
	color: #fff;
	border-radius: 14px;
	padding: 20px 34px;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	box-shadow: 0 20px 40px -20px rgba(8, 123, 255, .8);
	transition: transform .35s, box-shadow .35s;
}

.problems__banner-btn:hover {
	transform: translateY(-3px);
	color: #fff;
	box-shadow: 0 26px 48px -18px rgba(8, 123, 255, .9);
}

.section--tinted {
	scroll-margin-top: 92px;
	padding: clamp(64px, 9vw, 150px) clamp(20px, 5vw, 60px);
	background: linear-gradient(180deg, #F5F8FC, #FFFFFF);
}

.about__grid {
	max-width: 1560px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr));
	gap: clamp(40px, 5vw, 88px);
	align-items: center;
}

.about__image-wrap {
	position: relative;
	border-radius: 28px;
	overflow: hidden;
	border: 1px solid rgba(8, 123, 255, .16);
	min-height: min(620px, 62vh);
	box-shadow: 0 40px 80px -50px rgba(7, 18, 37, .5);
}

.about__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 55% 50%;
}

.about__title {
	font-size: clamp(28px, 3.1vw, 54px);
	line-height: 1.05;
	font-weight: 800;
	letter-spacing: -.025em;
	text-transform: uppercase;
	color: #071225;
	margin-bottom: 32px;
}

.about__text {
	font-size: clamp(15px, 1.15vw, 18.5px);
	line-height: 1.65;
	color: #5A6979;
	margin-bottom: 20px;
	max-width: 640px;
	text-wrap: pretty;
}

.about__text--last {
	font-size: clamp(15px, 1.15vw, 18.5px);
	line-height: 1.65;
	color: #5A6979;
	margin-bottom: 44px;
	max-width: 640px;
	text-wrap: pretty;
}

.about__highlight {
	position: relative;
	overflow: hidden;
	border-radius: 22px;
	padding: 34px 38px;
	background: linear-gradient(120deg, rgba(8, 123, 255, .10), rgba(8, 123, 255, .03));
	border: 1px solid rgba(8, 123, 255, .24);
	margin-bottom: 44px;
}

.about__highlight-sweep {
	position: absolute;
	inset: 0;
	width: 40%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .55), transparent);
	animation: rsmSweep 7s linear infinite;
	pointer-events: none;
}

.about__highlight-title {
	position: relative;
	font-size: 16px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #087BFF;
	margin-bottom: 12px;
}

.about__highlight-text {
	position: relative;
	font-size: 16px;
	line-height: 1.55;
	font-weight: 600;
	color: #071225;
	text-wrap: pretty;
}

.about__cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	background: #087BFF;
	color: #fff;
	border: 0;
	border-radius: 14px;
	padding: 22px 36px;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 20px 40px -20px rgba(8, 123, 255, .8);
	transition: transform .35s, box-shadow .35s;
}

.about__cta-btn:hover {
	transform: translateY(-3px);
	box-shadow: 0 26px 48px -18px rgba(8, 123, 255, .9);
}

.about__cta-icon {
	width: 22px;
	height: 20px;
	object-fit: contain;
	filter: brightness(0) invert(1);
}

.section--plain {
	scroll-margin-top: 92px;
	padding: clamp(64px, 9vw, 150px) clamp(20px, 5vw, 60px);
	background: #fff;
}

.services__header {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s, transform .7s;
	max-width: 920px;
	margin-bottom: 70px;
}

.services__title {
	font-size: clamp(30px, 3.5vw, 60px);
	line-height: 1.03;
	font-weight: 800;
	letter-spacing: -.025em;
	text-transform: uppercase;
	color: #071225;
	margin-bottom: 24px;
}

.services__lead {
	font-size: clamp(15px, 1.15vw, 19px);
	line-height: 1.6;
	color: #5A6979;
	max-width: 680px;
}

.service-tile--wide {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s, transform .7s;
	grid-column: span 2;
	min-width: 0;
}


@media (max-width: 767px) {
	.service-tile--wide {
		grid-column: span 1;
	}
}

.service-tile__feature {
	position: relative;
	overflow: hidden;
	height: 100%;
	min-height: 300px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background: linear-gradient(135deg, #071225, #0B2547);
	border-radius: 28px;
	padding: 52px 46px;
	box-shadow: 0 34px 70px -40px rgba(7, 18, 37, .7);
}

.service-tile__feature-glow {
	position: absolute;
	right: -8%;
	top: -25%;
	width: 58%;
	height: 150%;
	background: radial-gradient(circle at 50% 50%, rgba(8, 123, 255, .5), transparent 62%);
	filter: blur(28px);
	animation: rsmFlow 9s ease-in-out infinite;
}

.u-relative {
	position: relative;
}

.service-tile__feature-eyebrow {
	display: inline-block;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #5FA8FF;
	margin-bottom: 22px;
}

.service-tile__feature-title {
	font-size: clamp(23px, 2vw, 34px);
	font-weight: 800;
	letter-spacing: -.01em;
	text-transform: uppercase;
	color: #fff;
	line-height: 1.1;
	margin-bottom: 18px;
}

.service-tile__feature-text {
	font-size: 16.5px;
	line-height: 1.6;
	color: rgba(255, 255, 255, .72);
	max-width: 460px;
	text-wrap: pretty;
}

.service-tile__feature-link {
	position: relative;
	align-self: flex-start;
	margin-top: 34px;
	background: transparent;
	border: 0;
	padding: 0;
	color: #5FA8FF;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.service-tile__feature-link:hover {
	color: #fff;
}

.service-tile {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s, transform .7s;
	min-width: 0;
}

.service-tile__card {
	height: 100%;
	min-height: 280px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background: #fff;
	border: 1px solid rgba(8, 123, 255, .12);
	border-radius: 28px;
	padding: 44px 38px;
	box-shadow: 0 22px 50px -34px rgba(7, 18, 37, .35);
	transition: transform .45s, box-shadow .45s, border-color .45s;
}

.service-tile__card:hover {
	transform: translateY(-6px);
	border-color: rgba(8, 123, 255, .45);
	box-shadow: 0 34px 62px -30px rgba(8, 123, 255, .45);
}

.service-tile__num {
	display: block;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #9BAABD;
	margin-bottom: 22px;
}

.service-tile__title {
	font-size: 20px;
	font-weight: 800;
	text-transform: uppercase;
	color: #071225;
	line-height: 1.2;
	margin-bottom: 16px;
}

.service-tile__text {
	font-size: 15.5px;
	line-height: 1.55;
	color: #5A6979;
	text-wrap: pretty;
}

.service-tile__link {
	align-self: flex-start;
	margin-top: 30px;
	background: transparent;
	border: 0;
	padding: 0;
	color: #087BFF;
	font-size: 13.5px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.service-tile__link:hover {
	color: #0A5FCC;
}

.service-tile__image-wrap {
	position: relative;
	overflow: hidden;
	height: 100%;
	min-height: 280px;
	border-radius: 28px;
	border: 1px solid rgba(8, 123, 255, .16);
}

.service-tile__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 55%;
}

.service-tile__cta {
	height: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	background: linear-gradient(120deg, #F2F7FE, #E8F1FD);
	border: 1px solid rgba(8, 123, 255, .18);
	border-radius: 28px;
	padding: 46px 44px;
}

.service-tile__cta-content {
	max-width: 620px;
}

.service-tile__cta-num {
	display: block;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #087BFF;
	margin-bottom: 20px;
}

.service-tile__cta-title {
	font-size: clamp(20px, 1.7vw, 26px);
	font-weight: 800;
	text-transform: uppercase;
	color: #071225;
	line-height: 1.15;
	margin-bottom: 14px;
}

.service-tile__cta-text {
	font-size: 16px;
	line-height: 1.55;
	color: #5A6979;
	text-wrap: pretty;
}

.service-tile__cta-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	background: #087BFF;
	color: #fff;
	border-radius: 14px;
	padding: 20px 32px;
	font-size: 13.5px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	box-shadow: 0 20px 40px -20px rgba(8, 123, 255, .8);
	transition: transform .35s;
}

.service-tile__cta-link:hover {
	transform: translateY(-3px);
	color: #fff;
}

.advantages {
	scroll-margin-top: 92px;
	padding: clamp(64px, 9vw, 160px) clamp(20px, 5vw, 60px);
	background: linear-gradient(180deg, #FFFFFF, #F4F8FD);
}

.advantages__header {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s, transform .7s;
	margin-bottom: 84px;
}

.section-title {
	font-size: clamp(30px, 3.5vw, 60px);
	line-height: 1.03;
	font-weight: 800;
	letter-spacing: -.025em;
	text-transform: uppercase;
	color: #071225;
}

.advantages__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: clamp(32px, 4vw, 60px);
}

.advantages__item {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s, transform .7s;
	border-top: 1px solid rgba(8, 123, 255, .22);
	padding-top: 32px;
}

.advantages__number {
	font-size: clamp(56px, 6vw, 104px);
	font-weight: 800;
	letter-spacing: -.05em;
	line-height: 1;
	color: #087BFF;
	margin-bottom: 22px;
}

.advantages__item-title {
	font-size: 15.5px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #071225;
	margin-bottom: 14px;
}

.advantages__item-text {
	font-size: 15px;
	line-height: 1.6;
	color: #5A6979;
	text-wrap: pretty;
}

.advantages__number-prefix {
	font-size: .4em;
	letter-spacing: 0;
	vertical-align: middle;
	margin-right: .14em;
	color: #071225;
}

.advantages__number--text {
	font-size: clamp(30px, 3vw, 52px);
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1.1;
	color: #087BFF;
	margin-bottom: 22px;
	text-transform: uppercase;
	padding-top: .35em;
}

.cta-form {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .8s, transform .8s;
	max-width: 1560px;
	margin: 0 auto;
	border-radius: 36px;
	overflow: hidden;
	background: linear-gradient(125deg, #EDF4FE, #F8FBFE 55%, #E8F1FD);
	border: 1px solid rgba(8, 123, 255, .16);
	box-shadow: 0 50px 100px -60px rgba(7, 18, 37, .5);
}

.cta-form__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
}

.cta-form__col {
	padding: clamp(38px, 4vw, 70px);
}

.cta-form__eyebrow {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 24px;
}

.eyebrow__dash--tight {
	width: 46px;
	height: 3px;
	background: #087BFF;
	border-radius: 2px;
	flex: none;
}

.eyebrow__label--sm {
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #087BFF;
}

.cta-form__title {
	font-size: clamp(26px, 2.7vw, 46px);
	line-height: 1.07;
	font-weight: 800;
	letter-spacing: -.025em;
	text-transform: uppercase;
	color: #071225;
	margin-bottom: 22px;
}

.cta-form__lead {
	font-size: 16.5px;
	line-height: 1.6;
	color: #5A6979;
	max-width: 560px;
	margin-bottom: 40px;
	text-wrap: pretty;
}

.cta-form__row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 18px;
	margin-bottom: 18px;
}

.form-field {
	display: block;
}

.form-field__label {
	display: block;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #6B7A8D;
	margin-bottom: 10px;
}

.form-field__input {
	width: 100%;
	padding: 17px 20px;
	border-radius: 14px;
	border: 1px solid rgba(8, 123, 255, .20);
	background: #fff;
	font-size: 16px;
	outline: none;
	transition: border-color .3s, box-shadow .3s;
}

.form-field__input:focus {
	border-color: #087BFF;
	box-shadow: 0 0 0 4px rgba(8, 123, 255, .12);
}

.form-field--gap {
	display: block;
	margin-bottom: 18px;
}

.form-field--gap-lg {
	display: block;
	margin-bottom: 28px;
}

.form-field__textarea {
	width: 100%;
	padding: 17px 20px;
	border-radius: 14px;
	border: 1px solid rgba(8, 123, 255, .20);
	background: #fff;
	font-size: 16px;
	outline: none;
	resize: vertical;
	line-height: 1.5;
	transition: border-color .3s, box-shadow .3s;
}

.form-field__textarea:focus {
	border-color: #087BFF;
	box-shadow: 0 0 0 4px rgba(8, 123, 255, .12);
}

.cta-form__submit {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	background: #087BFF;
	color: #fff;
	border: 0;
	border-radius: 14px;
	padding: 22px 38px;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 20px 40px -20px rgba(8, 123, 255, .85);
	transition: transform .35s, box-shadow .35s;
}

.cta-form__submit:hover {
	transform: translateY(-3px);
	box-shadow: 0 26px 48px -18px rgba(8, 123, 255, .95);
}

.cta-form__success {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 22px 26px;
	border-radius: 16px;
	background: rgba(8, 123, 255, .08);
	border: 1px solid rgba(8, 123, 255, .28);
	animation: rsmPop .45s cubic-bezier(.22, .61, .36, 1) both;
}

.cta-form__success-icon {
	width: 24px;
	height: 28px;
	object-fit: contain;
}

.cta-form__success-title {
	font-size: 15px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: #071225;
	margin-bottom: 4px;
}

.cta-form__success-text {
	font-size: 14.5px;
	line-height: 1.5;
	color: #5A6979;
}

.cta-form__disclaimer {
	font-size: 12.5px;
	line-height: 1.6;
	color: #8593A5;
	margin-top: 18px;
	max-width: 460px;
}

.cta-form__alt-phone {
	font-size: 16px;
	font-weight: 700;
	color: #071225;
	margin-top: 26px;
}

.cta-form__image-wrap {
	position: relative;
	min-height: 380px;
	border-left: 1px solid rgba(8, 123, 255, .12);
	overflow: hidden;
}

.cta-form__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 45%;
}

.steps__header {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s, transform .7s;
	max-width: 900px;
	margin-bottom: 76px;
}

.steps__line {
	position: absolute;
	left: 0;
	right: 0;
	top: 26px;
	height: 2px;
	background: rgba(8, 123, 255, .16);
	border-radius: 2px;
}

.steps__line-fill {
	position: absolute;
	left: 0;
	top: 26px;
	height: 2px;
	width: 0%;
	background: linear-gradient(90deg, #087BFF, #4FA6FF);
	border-radius: 2px;
	transition: width 1.6s cubic-bezier(.22, .61, .36, 1);
	box-shadow: 0 0 16px rgba(8, 123, 255, .55);
}

.steps__grid {
	position: relative;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 36px;
}

.steps__item {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s, transform .7s;
	padding-right: 24px;
}

.steps__item-num {
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid #087BFF;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 17px;
	font-weight: 800;
	color: #087BFF;
	margin-bottom: 30px;
	box-shadow: 0 0 0 8px rgba(255, 255, 255, .9), 0 14px 30px -16px rgba(8, 123, 255, .7);
}

.steps__item-title {
	font-size: 21px;
	font-weight: 800;
	text-transform: uppercase;
	color: #071225;
	margin-bottom: 14px;
}

.steps__item-text {
	font-size: 15.5px;
	line-height: 1.6;
	color: #5A6979;
	text-wrap: pretty;
}

.steps__banner {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s, transform .7s;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	margin-top: 70px;
	padding: 36px 44px;
	border-radius: 24px;
	background: #fff;
	border: 1px solid rgba(8, 123, 255, .16);
	box-shadow: 0 24px 56px -40px rgba(7, 18, 37, .4);
}

.steps__banner-text {
	font-size: clamp(16px, 1.25vw, 19px);
	font-weight: 700;
	color: #071225;
	max-width: 720px;
	line-height: 1.5;
	text-wrap: pretty;
}

.steps__banner-btn {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	background: #087BFF;
	color: #fff;
	border: 0;
	border-radius: 14px;
	padding: 20px 34px;
	font-size: 13.5px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 20px 40px -20px rgba(8, 123, 255, .8);
	transition: transform .35s;
}

.steps__banner-btn:hover {
	transform: translateY(-3px);
}

.cta-banner {
	position: relative;
	overflow: hidden;
	padding: clamp(64px, 9vw, 150px) clamp(20px, 5vw, 60px);
	background: linear-gradient(135deg, #050D1A 0%, #0A1D38 55%, #071225 100%);
}

.cta-banner__glow {
	position: absolute;
	left: -10%;
	top: 20%;
	width: 70%;
	height: 60%;
	background: radial-gradient(ellipse at 40% 50%, rgba(8, 123, 255, .35), transparent 65%);
	filter: blur(40px);
	animation: rsmFlow 11s ease-in-out infinite;
	pointer-events: none;
}

.cta-banner__pattern {
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(100deg, transparent 0 60px, rgba(95, 168, 255, .05) 60px 61px);
	pointer-events: none;
}

.cta-banner__grid {
	position: relative;
	max-width: 1560px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	gap: clamp(40px, 5vw, 84px);
	align-items: center;
}

.eyebrow__dash--dark {
	width: 46px;
	height: 3px;
	background: #5FA8FF;
	border-radius: 2px;
	flex: none;
}

.eyebrow__label--dark-sm {
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #5FA8FF;
}

.cta-banner__title {
	font-size: clamp(28px, 3.2vw, 56px);
	line-height: 1.04;
	font-weight: 800;
	letter-spacing: -.025em;
	text-transform: uppercase;
	color: #fff;
	margin-bottom: 32px;
}

.text-accent--light {
	color: #5FA8FF;
}

.cta-banner__text {
	font-size: clamp(15px, 1.15vw, 18.5px);
	line-height: 1.65;
	color: rgba(255, 255, 255, .66);
	max-width: 620px;
	margin-bottom: 20px;
	text-wrap: pretty;
}

.cta-banner__text--last {
	font-size: clamp(15px, 1.15vw, 18.5px);
	line-height: 1.65;
	color: rgba(255, 255, 255, .66);
	max-width: 620px;
	margin-bottom: 40px;
	text-wrap: pretty;
}

.cta-banner__quote {
	border-left: 3px solid #087BFF;
	padding: 6px 0 6px 26px;
	margin-bottom: 46px;
}

.cta-banner__quote-text {
	font-size: clamp(16px, 1.3vw, 21px);
	line-height: 1.5;
	font-weight: 700;
	color: #fff;
	max-width: 640px;
	text-wrap: pretty;
}

.cta-banner__link {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	background: #087BFF;
	color: #fff;
	border-radius: 14px;
	padding: 22px 36px;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	box-shadow: 0 24px 50px -20px rgba(8, 123, 255, .9);
	transition: transform .35s;
}

.cta-banner__link:hover {
	transform: translateY(-3px);
	color: #fff;
}

.cta-banner__image-wrap {
	position: relative;
	border-radius: 28px;
	overflow: hidden;
	border: 1px solid rgba(95, 168, 255, .22);
	min-height: min(560px, 58vh);
}

.cta-banner__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cases {
	scroll-margin-top: 92px;
	padding: clamp(64px, 9vw, 150px) 0;
	background: #fff;
	overflow: hidden;
}

.cases__container {
	max-width: 1560px;
	margin: 0 auto;
	padding: 0 clamp(20px, 5vw, 60px);
}

.cases__header {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s, transform .7s;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	margin-bottom: 64px;
}

.cases__header-text {
	max-width: 900px;
}

.cases__title {
	font-size: clamp(28px, 3.3vw, 56px);
	line-height: 1.03;
	font-weight: 800;
	letter-spacing: -.025em;
	text-transform: uppercase;
	color: #071225;
	margin-bottom: 24px;
}

.cases__lead {
	font-size: clamp(15px, 1.15vw, 18.5px);
	line-height: 1.6;
	color: #5A6979;
	max-width: 760px;
	text-wrap: pretty;
}

.cases__nav {
	display: flex;
	gap: 12px;
}

.cases__nav-btn {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	border: 1px solid rgba(8, 123, 255, .28);
	background: #fff;
	color: #087BFF;
	font-size: 18px;
	cursor: pointer;
	transition: background .3s, color .3s, transform .3s;
}

.cases__nav-btn:hover {
	background: #087BFF;
	color: #fff;
	transform: translateY(-2px);
}

.reviews__header {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s, transform .7s;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	margin-bottom: 60px;
}

.text-col {
	max-width: 820px;
}

.reviews__badge {
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 22px 28px;
	border-radius: 20px;
	background: #fff;
	border: 1px solid rgba(8, 123, 255, .16);
	box-shadow: 0 24px 50px -40px rgba(7, 18, 37, .45);
}

.reviews__badge-title {
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -.02em;
	color: #071225;
}

.reviews__badge-divider {
	width: 1px;
	height: 38px;
	background: rgba(8, 123, 255, .18);
}

.reviews__badge-stars {
	font-size: 17px;
	color: #FBBC04;
	letter-spacing: 2px;
	line-height: 1.2;
}

.reviews__badge-caption {
	font-size: 13px;
	color: #6B7A8D;
	margin-top: 4px;
}

.reviews__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 14px;
}

.reviews__nav-btn {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 1px solid rgba(8, 123, 255, .28);
	background: #fff;
	color: #087BFF;
	font-size: 17px;
	cursor: pointer;
	transition: background .3s, color .3s, transform .3s;
}

.reviews__nav-btn:hover {
	background: #087BFF;
	color: #fff;
	transform: translateY(-2px);
}

.price__grid {
	max-width: 1560px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr));
	gap: clamp(40px, 5vw, 80px);
	align-items: center;
}

.price__title {
	font-size: clamp(28px, 3.2vw, 56px);
	line-height: 1.04;
	font-weight: 800;
	letter-spacing: -.025em;
	text-transform: uppercase;
	color: #071225;
	margin-bottom: 28px;
}

.price__lead {
	font-size: clamp(16px, 1.25vw, 20px);
	line-height: 1.6;
	color: #5A6979;
	max-width: 620px;
	text-wrap: pretty;
}

.price__card {
	border-radius: 28px;
	background: linear-gradient(125deg, #F1F7FE, #E8F1FD);
	border: 1px solid rgba(8, 123, 255, .18);
	padding: clamp(30px, 2.6vw, 44px);
	box-shadow: 0 34px 70px -50px rgba(7, 18, 37, .5);
}

.price__quick-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-bottom: 32px;
}

.price__quick-item {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	background: #fff;
	border: 1px solid rgba(8, 123, 255, .14);
	border-radius: 18px;
	padding: 22px 26px;
}

.price__quick-label {
	font-size: 16.5px;
	font-weight: 700;
	color: #071225;
}

.price__quick-value {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.02em;
	color: #087BFF;
}

.price__list-title {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #9BAABD;
	margin-bottom: 18px;
}

.price__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 26px;
}

.price__list-item {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 12px;
	align-items: start;
}

.price__list-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #087BFF;
	margin-top: 8px;
}

.price__list-text {
	font-size: 15.5px;
	line-height: 1.5;
	color: #3F4E62;
}

.price__note {
	font-size: 14.5px;
	line-height: 1.55;
	color: #5A6979;
	margin-bottom: 26px;
}

.price__cta-btn {
	width: 100%;
	background: #087BFF;
	color: #fff;
	border: 0;
	border-radius: 14px;
	padding: 22px 30px;
	font-size: 13.5px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 20px 40px -20px rgba(8, 123, 255, .85);
	transition: transform .35s;
}

.price__cta-btn:hover {
	transform: translateY(-3px);
}

.faq__layout {
	max-width: 1560px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
	gap: clamp(40px, 5vw, 80px);
	align-items: start;
}

.faq__intro {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s, transform .7s;
	position: sticky;
	top: 120px;
}

.faq__title {
	font-size: clamp(30px, 3.4vw, 58px);
	line-height: 1.03;
	font-weight: 800;
	letter-spacing: -.025em;
	text-transform: uppercase;
	color: #071225;
}

.faq__list {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s, transform .7s;
	display: flex;
	flex-direction: column;
	gap: 14px;
	grid-column: span 2;
}

@media (max-width: 767px) {
	.faq__list {
		grid-column: span 1;
	}
}

.contacts__grid {
	max-width: 1560px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr));
	gap: clamp(40px, 5vw, 72px);
	align-items: stretch;
}

.contacts__info {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s, transform .7s;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.contacts__title {
	font-size: clamp(30px, 3.4vw, 58px);
	line-height: 1.03;
	font-weight: 800;
	letter-spacing: -.025em;
	text-transform: uppercase;
	color: #071225;
	margin-bottom: 26px;
}

.contacts__lead {
	font-size: clamp(15px, 1.15vw, 18.5px);
	line-height: 1.6;
	color: #5A6979;
	max-width: 560px;
	margin-bottom: 48px;
	text-wrap: pretty;
}

.contacts__details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
	gap: 32px;
	margin-bottom: 48px;
}

.contacts__detail-label {
	display: block;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #9BAABD;
	margin-bottom: 12px;
}

.contacts__detail-value {
	font-size: 17px;
	font-weight: 700;
	color: #071225;
	line-height: 1.4;
}

.contacts__detail-phone {
	font-size: 17px;
	font-weight: 700;
	color: #071225;
}

.contacts__detail-phone:hover {
	color: #087BFF;
}

.contacts__detail-hours {
	font-size: 17px;
	font-weight: 700;
	color: #071225;
}

.contacts__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.contacts__route-btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	background: #087BFF;
	color: #fff;
	border-radius: 14px;
	padding: 21px 34px;
	font-size: 13.5px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	box-shadow: 0 20px 40px -20px rgba(8, 123, 255, .8);
	transition: transform .35s;
}

.contacts__route-btn:hover {
	transform: translateY(-3px);
	color: #fff;
}

.contacts__call-btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	border: 1px solid rgba(8, 123, 255, .32);
	color: #087BFF;
	border-radius: 14px;
	padding: 21px 34px;
	font-size: 13.5px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	transition: background .3s, color .3s, transform .3s;
}

.contacts__call-btn:hover {
	background: #087BFF;
	color: #fff;
	transform: translateY(-3px);
}

.contacts__map-wrap {
	position: relative;
	border-radius: 28px;
	overflow: hidden;
	border: 1px solid rgba(8, 123, 255, .16);
	min-height: min(600px, 60vh);
	height: 100%;
	background: #EDF3FB;
	box-shadow: 0 34px 74px -50px rgba(7, 18, 37, .5);
}

.contacts__map-iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	filter: grayscale(.35) contrast(1.03);
}

.contacts__map-card {
	position: absolute;
	left: 24px;
	bottom: 24px;
	display: flex;
	align-items: center;
	gap: 14px;
	background: rgba(255, 255, 255, .94);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(8, 123, 255, .16);
	border-radius: 18px;
	padding: 16px 22px;
	box-shadow: 0 20px 44px -28px rgba(7, 18, 37, .6);
	pointer-events: none;
}

.contacts__map-card-icon {
	width: 22px;
	height: 28px;
	object-fit: contain;
}

.contacts__map-card-title {
	font-size: 14.5px;
	font-weight: 800;
	color: #071225;
}

.contacts__map-card-text {
	font-size: 13px;
	color: #6B7A8D;
}

.final-cta {
	position: relative;
	overflow: hidden;
	background: #071225;
}

.final-cta__bg-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 60% 50%;
}

.final-cta__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(5, 13, 26, .96) 0%, rgba(5, 13, 26, .86) 34%, rgba(5, 13, 26, .35) 62%, rgba(5, 13, 26, .15) 100%);
}

.final-cta__glow {
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	width: min(58%, 1000px);
	background: radial-gradient(ellipse at 70% 50%, rgba(8, 123, 255, .28), transparent 68%);
	filter: blur(20px);
	animation: rsmFlow 10s ease-in-out infinite;
}

.final-cta__content {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .8s, transform .8s;
	position: relative;
	max-width: 1560px;
	margin: 0 auto;
	padding: clamp(64px, 10vw, 170px) clamp(20px, 5vw, 60px);
}

.eyebrow--final {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 28px;
}

.eyebrow__dash--light {
	width: 46px;
	height: 3px;
	background: #5FA8FF;
	border-radius: 2px;
}

.eyebrow__label--light {
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: #5FA8FF;
}

.final-cta__title {
	font-size: clamp(30px, 3.8vw, 66px);
	line-height: 1.02;
	font-weight: 800;
	letter-spacing: -.03em;
	text-transform: uppercase;
	color: #fff;
	margin-bottom: 30px;
}

.final-cta__lead {
	font-size: clamp(15px, 1.2vw, 19px);
	line-height: 1.6;
	color: rgba(255, 255, 255, .68);
	max-width: 640px;
	margin-bottom: 38px;
	text-wrap: pretty;
}

.final-cta__meta {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .85);
	margin-bottom: 46px;
}

.final-cta__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 26px;
}

.final-cta__cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	background: #087BFF;
	color: #fff;
	border: 0;
	border-radius: 16px;
	padding: 24px 40px;
	font-size: 14.5px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 26px 54px -20px rgba(8, 123, 255, .95);
	transition: transform .35s;
}

.final-cta__cta-btn:hover {
	transform: translateY(-3px);
}

.final-cta__phone {
	font-size: clamp(19px, 1.6vw, 26px);
	font-weight: 800;
	color: #fff;
	letter-spacing: -.01em;
}

.final-cta__phone:hover {
	color: #5FA8FF;
}

.site-footer {
	background: #F7FAFD;
	border-top: 1px solid rgba(8, 123, 255, .12);
	padding: 56px clamp(20px, 5vw, 60px) 40px;
}

.site-footer__top {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 44px;
	padding-bottom: 44px;
	border-bottom: 1px solid rgba(8, 123, 255, .12);
}

.site-footer__brand {
	max-width: 320px;
}

.site-footer__logo {
	height: 22px;
	width: auto;
	display: block;
	margin-bottom: 22px;
}

.site-footer__tagline {
	font-size: 14.5px;
	line-height: 1.6;
	color: #5A6979;
	text-wrap: pretty;
}

.site-footer__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 34px;
	align-content: flex-start;
	max-width: 520px;
}

.site-footer__nav-link {
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #3C4A5E;
}

.site-footer__nav-link:hover {
	color: #087BFF;
}

.site-footer__contact {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.site-footer__phone {
	font-size: 19px;
	font-weight: 800;
	color: #071225;
}

.site-footer__phone:hover {
	color: #087BFF;
}

.site-footer__meta {
	font-size: 14.5px;
	color: #5A6979;
}

.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 20px;
	padding-top: 26px;
}

.site-footer__copy {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
}

.site-footer__copy-text {
	font-size: 13px;
	color: #8593A5;
}

.site-footer__credit {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 14px;
	border-radius: 12px;
	background: #0B1B30;
	transition: transform .3s, box-shadow .3s;
}

.site-footer__credit:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px -18px rgba(7, 18, 37, .8);
}

.site-footer__credit-logo {
	height: 16px;
	width: auto;
	display: block;
}

.site-footer__credit-text {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	color: rgba(255, 255, 255, .86);
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 26px;
}

.site-footer__legal-link {
	font-size: 13px;
	color: #5A6979;
}

.site-footer__legal-link:hover {
	color: #087BFF;
}

.sticky-bar__call {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(8, 123, 255, .32);
	color: #087BFF;
	border-radius: 14px;
	padding: 16px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	min-height: 52px;
}

.sticky-bar__cta {
	flex: 1;
	background: #087BFF;
	color: #fff;
	border: 0;
	border-radius: 14px;
	padding: 16px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	min-height: 52px;
	cursor: pointer;
}

.modal__backdrop {
	position: fixed;
	inset: 0;
	z-index: 100;
	background: rgba(7, 18, 37, .55);
	backdrop-filter: blur(6px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	animation: rsmFade .3s ease both;
}

.modal__dialog {
	position: relative;
	width: min(560px, 100%);
	max-height: 92vh;
	overflow: auto;
	background: #fff;
	border-radius: 28px;
	padding: clamp(30px, 4vw, 52px);
	box-shadow: 0 60px 120px -50px rgba(7, 18, 37, .8);
	animation: rsmPop .45s cubic-bezier(.22, .61, .36, 1) both;
}

.modal__close {
	position: absolute;
	right: 22px;
	top: 22px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid rgba(8, 123, 255, .2);
	background: #fff;
	color: #5A6979;
	font-size: 19px;
	cursor: pointer;
	transition: background .3s, color .3s;
}

.modal__close:hover {
	background: #087BFF;
	color: #fff;
}

.modal__success {
	padding: 26px 0 10px;
	text-align: center;
}

.modal__success-icon-wrap {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: rgba(8, 123, 255, .10);
	border: 1px solid rgba(8, 123, 255, .3);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 28px;
}

.modal__success-icon {
	width: 30px;
	height: 34px;
	object-fit: contain;
}

.modal__success-title {
	font-size: clamp(26px, 2.4vw, 38px);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: -.02em;
	color: #071225;
	margin-bottom: 16px;
}

.modal__success-text {
	font-size: 16px;
	line-height: 1.6;
	color: #5A6979;
	max-width: 400px;
	margin: 0 auto 30px;
	text-wrap: pretty;
}

.modal__success-btn {
	background: #087BFF;
	color: #fff;
	border: 0;
	border-radius: 14px;
	padding: 20px 36px;
	font-size: 13.5px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.modal__title {
	font-size: clamp(24px, 2.3vw, 36px);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: -.02em;
	line-height: 1.1;
	color: #071225;
	margin-bottom: 16px;
	padding-right: 50px;
}

.modal__lead {
	font-size: 15.5px;
	line-height: 1.6;
	color: #5A6979;
	margin-bottom: 32px;
	text-wrap: pretty;
}

.modal__field {
	display: block;
	margin-bottom: 16px;
}

.modal__field-label {
	display: block;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #6B7A8D;
	margin-bottom: 9px;
}

.modal__field-input {
	width: 100%;
	padding: 17px 20px;
	border-radius: 14px;
	border: 1px solid rgba(8, 123, 255, .20);
	background: #F9FBFE;
	font-size: 16px;
	outline: none;
	transition: border-color .3s, box-shadow .3s;
}

.modal__field-input:focus {
	border-color: #087BFF;
	box-shadow: 0 0 0 4px rgba(8, 123, 255, .12);
}

.modal__field-optional {
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: #9BAABD;
}

.modal__submit-btn {
	width: 100%;
	background: #087BFF;
	color: #fff;
	border: 0;
	border-radius: 14px;
	padding: 22px 30px;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 20px 40px -20px rgba(8, 123, 255, .85);
	transition: transform .35s;
}

.modal__submit-btn:hover {
	transform: translateY(-2px);
}

.modal__disclaimer {
	font-size: 12.5px;
	line-height: 1.6;
	color: #8593A5;
	text-align: center;
}