@font-face {
	font-family: "Euclid";
	src: url("/wp-content/themes/casp/fonts/euclidflex-regular-webfont.woff2") format("woff2");
	font-display: swap;
	font-weight: 400;
}
@font-face {
	font-family: "Euclid";
	src: url("/wp-content/themes/casp/fonts/euclidflex-medium-webfont.woff2") format("woff2");
	font-display: swap;
	font-weight: 600;
}
@font-face {
	font-family: "Euclid";
	src: url("/wp-content/themes/casp/fonts/euclidflex-bold-webfont.woff2") format("woff2");
	font-display: swap;
	font-weight: 750;
}

:root {
	--cn-ink: #0b111b;
	--cn-ink-soft: #4f5b6d;
	--cn-navy: #09111f;
	--cn-navy-2: #101d32;
	--cn-line: #dfe5eb;
	--cn-paper: #f4f6f8;
	--cn-white: #ffffff;
	--cn-accent: #bbff3c;
	--cn-accent-dark: #7cae18;
	--cn-blue: #5f7cff;
	--cn-radius: 22px;
	--cn-container: min(1180px, calc(100vw - 48px));
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 96px;
}

body.casp-next {
	margin: 0;
	background: var(--cn-white);
	color: var(--cn-ink);
	font-family: "Euclid", Arial, sans-serif;
	font-size: 17px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

body.cn-menu-open {
	overflow: hidden;
}

.casp-next *,
.casp-next *::before,
.casp-next *::after {
	box-sizing: border-box;
}

.casp-next a {
	color: inherit;
	text-decoration: none;
}

.casp-next img {
	display: block;
	max-width: 100%;
}

.casp-next button,
.casp-next input,
.casp-next select,
.casp-next textarea {
	font: inherit;
}

.casp-next h1,
.casp-next h2,
.casp-next h3,
.casp-next p {
	margin-top: 0;
}

.casp-next h1,
.casp-next h2,
.casp-next h3 {
	letter-spacing: -.035em;
	line-height: 1.03;
}

.casp-next h1 {
	font-size: clamp(48px, 6vw, 86px);
}

.casp-next h2 {
	margin-bottom: 0;
	font-size: clamp(38px, 4.2vw, 62px);
}

.casp-next h3 {
	font-size: 27px;
}

.cn-container {
	width: var(--cn-container);
	margin-inline: auto;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.cn-skip-link {
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 1000;
	padding: 10px 14px;
	background: var(--cn-accent);
	transform: translateY(-160%);
}

.cn-skip-link:focus {
	transform: none;
}

.cn-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 100;
	height: 84px;
	color: var(--cn-white);
	transition: transform .3s ease, background .3s ease, box-shadow .3s ease;
}

.cn-header.is-scrolled,
.casp-next--privacy .cn-header {
	background: rgba(9, 17, 31, .93);
	box-shadow: 0 10px 35px rgba(0, 0, 0, .12);
	backdrop-filter: blur(18px);
}

.cn-header.is-hidden {
	transform: translateY(-100%);
}

.cn-header__inner {
	display: flex;
	align-items: center;
	height: 100%;
	gap: 34px;
}

.cn-logo {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 23px;
	font-weight: 750;
	letter-spacing: -.04em;
	white-space: nowrap;
}

.cn-logo__mark {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 10px;
	background: var(--cn-accent);
	color: var(--cn-navy);
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.28), 0 6px 16px rgba(187,255,60,.12);
	font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
	font-size: 18px;
	font-weight: 750;
	letter-spacing: -.15em;
}

.cn-logo__mark b,
.cn-logo__mark i {
	font: inherit;
	line-height: 1;
}

.cn-logo__mark b {
	transform: translate(-3px, -1px);
}

.cn-logo__mark i {
	position: absolute;
	right: 6px;
	bottom: 7px;
	font-style: normal;
	font-size: 14px;
	letter-spacing: 0;
}

.cn-nav {
	display: flex;
	align-items: center;
	gap: 28px;
	margin-left: auto;
	font-size: 15px;
}

.cn-nav a,
.cn-header__telegram {
	color: #dbe1ea;
	transition: color .2s ease;
}

.cn-nav a:hover,
.cn-header__telegram:hover {
	color: var(--cn-accent);
}

.cn-header__actions {
	display: flex;
	align-items: center;
	gap: 20px;
	font-size: 15px;
}

.cn-menu-button {
	display: none;
	width: 42px;
	height: 42px;
	padding: 10px;
	border: 0;
	background: transparent;
}

.cn-menu-button > span:not(.screen-reader-text) {
	display: block;
	height: 2px;
	margin: 5px 0;
	background: var(--cn-white);
}

.cn-button {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 12px;
	min-height: 58px;
	padding: 0 24px;
	border: 1px solid transparent;
	border-radius: 12px;
	background: var(--cn-navy);
	color: var(--cn-white);
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: transform .2s ease, background .2s ease, border-color .2s ease;
}

.cn-button:hover {
	transform: translateY(-2px);
}

.cn-button svg,
.cn-service-card__link svg,
.cn-contact__direct svg {
	width: 21px;
	height: 21px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cn-button--small {
	min-height: 43px;
	padding-inline: 17px;
	border-color: rgba(255, 255, 255, .25);
	background: rgba(255, 255, 255, .06);
	font-size: 14px;
}

.cn-button--accent {
	background: var(--cn-accent);
	color: var(--cn-navy);
}

.cn-button--accent:hover {
	background: #ccff6c;
}

.cn-button--light {
	background: var(--cn-white);
	color: var(--cn-navy);
}

.cn-button--wide {
	width: 100%;
}

.cn-eyebrow {
	display: block;
	margin-bottom: 22px;
	color: var(--cn-blue);
	font-size: 13px;
	font-weight: 750;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.cn-section {
	padding: 112px 0;
}

.cn-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(280px, .65fr);
	align-items: end;
	gap: 80px;
	margin-bottom: 62px;
}

.cn-section-heading > p {
	margin-bottom: 6px;
	color: var(--cn-ink-soft);
	font-size: 18px;
}

.cn-summary {
	background: #f2f5fa;
}

.cn-summary__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 90px;
	align-items: start;
}

.cn-summary__copy p {
	margin: 0 0 18px;
	color: var(--cn-ink-soft);
	font-size: 18px;
}

.cn-summary__copy .cn-text-link {
	margin-top: 12px;
}

.cn-hero {
	position: relative;
	min-height: 760px;
	overflow: hidden;
	background:
		radial-gradient(circle at 77% 45%, rgba(95, 124, 255, .23), transparent 25%),
		linear-gradient(135deg, #08101d 0%, #0b1627 58%, #101a2c 100%);
	color: var(--cn-white);
}

.cn-hero__grid {
	position: absolute;
	inset: 0;
	opacity: .22;
	background-image:
		linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px);
	background-size: 64px 64px;
	mask-image: linear-gradient(to bottom, black, transparent 86%);
}

.cn-hero__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1.15fr .85fr;
	align-items: center;
	min-height: 650px;
	padding-top: 90px;
}

.cn-hero__content {
	position: relative;
	z-index: 3;
	max-width: 770px;
}

.cn-status {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 34px;
	padding: 8px 12px;
	border: 1px solid rgba(255,255,255,.13);
	border-radius: 999px;
	background: rgba(255,255,255,.05);
	color: #d4dce7;
	font-size: 13px;
}

.cn-status span {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--cn-accent);
	box-shadow: 0 0 0 5px rgba(187,255,60,.12);
}

.cn-hero h1 {
	margin-bottom: 28px;
	max-width: 850px;
}

.cn-hero h1 em {
	color: var(--cn-accent);
	font-style: normal;
}

.cn-hero__lead {
	max-width: 680px;
	margin-bottom: 36px;
	color: #b7c2d0;
	font-size: 21px;
}

.cn-hero__actions {
	display: flex;
	align-items: center;
	gap: 26px;
}

.cn-text-link {
	border-bottom: 1px solid currentColor;
	font-size: 15px;
	font-weight: 600;
}

.cn-hero__visual {
	position: relative;
	width: min(500px, 39vw);
	aspect-ratio: 1;
	margin-left: -5%;
}

.cn-orbit,
.cn-core,
.cn-signal {
	position: absolute;
}

.cn-orbit {
	inset: 8%;
	border: 1px solid rgba(255,255,255,.14);
	border-radius: 50%;
}

.cn-orbit::before,
.cn-orbit::after {
	content: "";
	position: absolute;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--cn-accent);
	box-shadow: 0 0 18px rgba(187,255,60,.7);
}

.cn-orbit::before { top: 12%; left: 18%; }
.cn-orbit::after { right: 8%; bottom: 26%; }
.cn-orbit--two { inset: 21%; transform: rotate(45deg); }

.cn-core {
	inset: 34%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	border: 1px solid rgba(255,255,255,.2);
	border-radius: 32%;
	background: linear-gradient(145deg, rgba(95,124,255,.52), rgba(18,29,49,.7));
	box-shadow: 0 30px 90px rgba(0,0,0,.35), inset 0 1px rgba(255,255,255,.28);
	transform: rotate(45deg);
}

.cn-core span,
.cn-core small {
	transform: rotate(-45deg);
}

.cn-core span {
	font-size: 28px;
	font-weight: 750;
}

.cn-core small {
	margin-top: -2px;
	color: #cbd4df;
	font-size: 10px;
}

.cn-signal {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	column-gap: 9px;
	min-width: 128px;
	padding: 10px 13px;
	border: 1px solid rgba(255,255,255,.13);
	border-radius: 12px;
	background: rgba(7,15,27,.76);
	box-shadow: 0 18px 40px rgba(0,0,0,.25);
	backdrop-filter: blur(14px);
	font-size: 11px;
}

.cn-signal i {
	grid-row: span 2;
	align-self: center;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--cn-accent);
}

.cn-signal span { color: #8e9bad; }
.cn-signal b { color: var(--cn-white); font-size: 12px; }
.cn-signal--one { top: 15%; right: -2%; }
.cn-signal--two { bottom: 20%; left: -4%; }
.cn-signal--three { right: 2%; bottom: 5%; }

.cn-proof-strip {
	position: relative;
	z-index: 4;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid rgba(255,255,255,.13);
}

.cn-proof-strip > div {
	padding: 30px 24px;
	border-right: 1px solid rgba(255,255,255,.13);
}

.cn-proof-strip > div:first-child { padding-left: 0; }
.cn-proof-strip > div:last-child { border-right: 0; }
.cn-proof-strip strong,
.cn-proof-strip span { display: block; }
.cn-proof-strip strong { margin-bottom: 4px; font-size: 23px; }
.cn-proof-strip span { color: #8f9caf; font-size: 13px; }

.cn-services {
	background: var(--cn-white);
}

.cn-services__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	border-top: 1px solid var(--cn-line);
	border-left: 1px solid var(--cn-line);
}

.cn-service-card {
	position: relative;
	min-height: 330px;
	padding: 36px;
	border-right: 1px solid var(--cn-line);
	border-bottom: 1px solid var(--cn-line);
	overflow: hidden;
	transition: background .25s ease, color .25s ease;
}

.cn-service-card::after {
	content: "";
	position: absolute;
	right: -80px;
	bottom: -90px;
	width: 210px;
	height: 210px;
	border: 1px solid rgba(95,124,255,.22);
	border-radius: 50%;
	transition: transform .35s ease;
}

.cn-service-card:hover {
	background: var(--cn-navy);
	color: var(--cn-white);
}

.cn-service-card:hover::after {
	transform: scale(1.25);
	border-color: rgba(187,255,60,.35);
}

.cn-service-card__top {
	display: flex;
	justify-content: space-between;
	margin-bottom: 60px;
	color: #8c97a7;
	font-size: 13px;
}

.cn-service-card__top i {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 14px;
	background: var(--cn-paper);
	color: var(--cn-blue);
}

.cn-service-card__top svg,
.cn-why__items svg {
	width: 24px;
	height: 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.65;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cn-service-card h3 {
	margin-bottom: 14px;
}

.cn-service-card p {
	max-width: 500px;
	margin-bottom: 28px;
	color: var(--cn-ink-soft);
}

.cn-service-card:hover p {
	color: #aab5c4;
}

.cn-service-card__link {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 14px;
	font-weight: 600;
}

.cn-situations {
	background: var(--cn-paper);
}

.cn-situations__grid {
	display: grid;
	grid-template-columns: .85fr 1.15fr;
	gap: 90px;
}

.cn-situations__list {
	border-top: 1px solid #cdd4dc;
}

.cn-situations__list > div {
	display: grid;
	grid-template-columns: 52px 1fr;
	gap: 20px;
	padding: 26px 0;
	border-bottom: 1px solid #cdd4dc;
}

.cn-situations__list span {
	color: var(--cn-blue);
	font-size: 13px;
}

.cn-situations__list p {
	margin: 0;
	font-size: 20px;
}

.cn-process {
	background: var(--cn-navy);
	color: var(--cn-white);
}

.cn-process .cn-section-heading > p {
	color: #98a6b9;
}

.cn-process__line {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
}

.cn-process__line::before {
	content: "";
	position: absolute;
	top: 17px;
	left: 3px;
	right: 3px;
	height: 1px;
	background: rgba(255,255,255,.18);
}

.cn-process__line > div {
	position: relative;
	padding-top: 64px;
}

.cn-process__line b {
	position: absolute;
	top: 0;
	left: 0;
	display: grid;
	place-items: center;
	width: 35px;
	height: 35px;
	border: 1px solid rgba(255,255,255,.3);
	border-radius: 50%;
	background: var(--cn-navy);
	color: var(--cn-accent);
	font-size: 11px;
}

.cn-process__line h3 {
	margin-bottom: 12px;
	font-size: 22px;
}

.cn-process__line p {
	color: #9aa7b8;
	font-size: 15px;
}

.cn-cases__grid {
	display: grid;
	grid-template-columns: 1.55fr .85fr;
	gap: 22px;
}

.cn-case {
	padding: 34px;
	border: 1px solid var(--cn-line);
	border-radius: var(--cn-radius);
}

.cn-case--featured {
	grid-row: span 2;
	padding: 44px;
	background: linear-gradient(145deg, #f1f4f8, #fff);
}

.cn-case__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-bottom: 65px;
}

.cn-case__meta span,
.cn-case__label {
	padding: 6px 9px;
	border-radius: 99px;
	background: #e7ecf3;
	color: #5b6778;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.cn-case--featured h3 {
	max-width: 650px;
	margin-bottom: 20px;
	font-size: 36px;
}

.cn-case--featured > p {
	max-width: 650px;
	color: var(--cn-ink-soft);
}

.cn-case blockquote {
	margin: 40px 0 16px;
	padding-left: 22px;
	border-left: 3px solid var(--cn-accent-dark);
	font-size: 19px;
}

.cn-case footer {
	color: var(--cn-ink-soft);
	font-size: 13px;
}

.cn-case--metric {
	background: var(--cn-blue);
	color: var(--cn-white);
}

.cn-case--metric .cn-case__label {
	background: rgba(255,255,255,.16);
	color: var(--cn-white);
}

.cn-case--metric strong {
	display: block;
	margin: 43px 0 0;
	font-size: clamp(43px, 5vw, 68px);
	letter-spacing: -.055em;
}

.cn-case--metric p {
	margin-bottom: 0;
	color: #e5e9ff;
}

.cn-case--quote p {
	margin: 34px 0 22px;
	font-size: 20px;
}

.cn-clients {
	padding-top: 25px;
}

.cn-clients__logos {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	border-top: 1px solid var(--cn-line);
	border-left: 1px solid var(--cn-line);
}

.cn-clients__logos > div {
	display: grid;
	place-items: center;
	height: 112px;
	padding: 18px;
	border-right: 1px solid var(--cn-line);
	border-bottom: 1px solid var(--cn-line);
	filter: grayscale(1);
	opacity: .72;
}

.cn-clients__logos img {
	max-height: 55px;
}

.cn-why {
	background: var(--cn-paper);
}

.cn-why__grid {
	display: grid;
	grid-template-columns: .9fr 1.1fr;
	gap: 90px;
}

.cn-why__items {
	display: grid;
	gap: 16px;
}

.cn-why__items > div {
	display: grid;
	grid-template-columns: 52px 1fr;
	column-gap: 20px;
	padding: 28px;
	border: 1px solid #d8dee6;
	border-radius: 16px;
	background: rgba(255,255,255,.6);
}

.cn-why__items i {
	grid-row: span 2;
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: var(--cn-white);
	color: var(--cn-blue);
}

.cn-why__items h3 {
	margin: 3px 0 8px;
	font-size: 21px;
}

.cn-why__items p {
	margin-bottom: 0;
	color: var(--cn-ink-soft);
	font-size: 15px;
}

.cn-faq__grid {
	display: grid;
	grid-template-columns: .7fr 1.3fr;
	gap: 100px;
}

.cn-accordion {
	border-top: 1px solid var(--cn-line);
}

.cn-accordion details {
	border-bottom: 1px solid var(--cn-line);
}

.cn-accordion summary {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding: 25px 0;
	font-size: 19px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.cn-accordion summary::-webkit-details-marker {
	display: none;
}

.cn-accordion summary span {
	color: var(--cn-blue);
	font-size: 28px;
	font-weight: 400;
	transition: transform .2s ease;
}

.cn-accordion details[open] summary span {
	transform: rotate(45deg);
}

.cn-accordion details p {
	max-width: 720px;
	padding: 0 45px 25px 0;
	color: var(--cn-ink-soft);
}

.cn-contact {
	padding: 105px 0;
	background: var(--cn-accent);
	color: var(--cn-navy);
}

.cn-contact .cn-eyebrow {
	color: #4d6f09;
}

.cn-contact__grid {
	display: grid;
	grid-template-columns: .92fr 1.08fr;
	gap: 110px;
}

.cn-contact__copy h2 {
	margin-bottom: 24px;
}

.cn-contact__copy > p {
	max-width: 520px;
	margin-bottom: 40px;
	color: #354213;
	font-size: 18px;
}

.cn-contact__direct {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}

.cn-contact__direct a:first-child {
	display: flex;
	align-items: center;
	gap: 10px;
	border-bottom: 1px solid;
	font-weight: 600;
}

.cn-form {
	position: relative;
	padding: 38px;
	border-radius: var(--cn-radius);
	background: var(--cn-navy);
	color: var(--cn-white);
	box-shadow: 0 32px 80px rgba(50,75,0,.16);
}

.cn-field {
	display: block;
	margin-bottom: 20px;
}

.cn-field > span {
	display: block;
	margin-bottom: 8px;
	color: #9facbd;
	font-size: 12px;
}

.cn-field input,
.cn-field select,
.cn-field textarea {
	width: 100%;
	padding: 15px 0;
	border: 0;
	border-bottom: 1px solid #39465a;
	border-radius: 0;
	outline: none;
	background: transparent;
	color: var(--cn-white);
	resize: vertical;
}

.cn-field select {
	padding-right: 28px;
	appearance: none;
	background-image:
		linear-gradient(45deg, transparent 50%, #8d9bad 50%),
		linear-gradient(135deg, #8d9bad 50%, transparent 50%);
	background-position:
		calc(100% - 12px) calc(50% + 1px),
		calc(100% - 7px) calc(50% + 1px);
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
}

.cn-field select option {
	background: var(--cn-navy);
	color: var(--cn-white);
}

.cn-captcha {
	min-height: 124px;
	margin: 24px 0 14px;
}

.cn-captcha [data-smartcaptcha] {
	min-height: 100px;
}

.cn-captcha__error {
	min-height: 18px;
	margin-top: 6px;
	color: #ff8e8e;
	font-size: 12px;
}

.cn-field input:focus,
.cn-field select:focus,
.cn-field textarea:focus {
	border-color: var(--cn-accent);
}

.cn-field input::placeholder,
.cn-field textarea::placeholder {
	color: #657287;
}

.cn-form__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.cn-simple-toggle {
	display: grid;
	grid-template-columns: 22px 1fr;
	gap: 13px;
	align-items: start;
	margin-bottom: 26px;
	padding: 17px 18px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 12px;
	background: rgba(255, 255, 255, .045);
	cursor: pointer;
	transition: border-color .2s ease, background .2s ease;
}

.cn-simple-toggle:hover {
	border-color: rgba(182, 255, 43, .55);
	background: rgba(182, 255, 43, .06);
}

.cn-simple-toggle input {
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--cn-accent);
}

.cn-simple-toggle span,
.cn-simple-toggle strong,
.cn-simple-toggle small {
	display: block;
}

.cn-simple-toggle strong {
	margin-bottom: 3px;
	color: var(--cn-white);
	font-size: 15px;
}

.cn-simple-toggle small {
	color: #8d9bad;
	font-size: 12px;
}

.cn-questionnaire[hidden] {
	display: none;
}

.cn-questionnaire {
	margin-bottom: 2px;
}

.cn-mascot {
	position: fixed;
	z-index: 70;
	right: 18px;
	bottom: 14px;
	display: block;
	width: 145px;
	filter: drop-shadow(0 16px 22px rgba(0, 0, 0, .32));
	transition: transform .22s ease, filter .22s ease, opacity .22s ease, visibility .22s ease;
}

.cn-mascot:hover,
.cn-mascot:focus-visible {
	transform: translateY(-5px);
	filter: drop-shadow(0 20px 26px rgba(0, 0, 0, .4));
}

.cn-mascot:focus-visible {
	outline: 3px solid var(--cn-accent);
	outline-offset: 4px;
	border-radius: 18px;
}

.cn-mascot.is-hidden {
	visibility: hidden;
	opacity: 0;
	transform: translateY(16px);
	pointer-events: none;
}

.cn-mascot img {
	width: 100%;
	height: auto;
	image-rendering: pixelated;
	transform: scaleX(-1);
}

.cn-mascot__hint {
	position: absolute;
	right: 90px;
	top: 7px;
	width: max-content;
	padding: 9px 13px;
	border: 1px solid rgba(187, 255, 60, .35);
	border-radius: 10px 10px 2px 10px;
	background: var(--cn-navy);
	color: var(--cn-white);
	box-shadow: 0 10px 25px rgba(0, 0, 0, .24);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .01em;
	opacity: 0;
	transform: translate(-5px, 5px);
	pointer-events: none;
	transition: opacity .22s ease, transform .22s ease;
}

.cn-mascot:hover .cn-mascot__hint,
.cn-mascot:focus-visible .cn-mascot__hint {
	opacity: 1;
	transform: none;
}

.cn-mascot__status {
	position: absolute;
	left: 22px;
	bottom: 21px;
	width: 9px;
	height: 9px;
	border: 2px solid var(--cn-navy);
	border-radius: 50%;
	background: var(--cn-accent);
	box-shadow: 0 0 0 0 rgba(187, 255, 60, .55);
	animation: cn-mascot-status 2.8s ease-out infinite;
}

@keyframes cn-mascot-status {
	0%, 48% { box-shadow: 0 0 0 0 rgba(187, 255, 60, .5); }
	75%, 100% { box-shadow: 0 0 0 10px rgba(187, 255, 60, 0); }
}

.cn-consent {
	display: grid;
	grid-template-columns: 18px 1fr;
	gap: 10px;
	margin: 24px 0;
	color: #8d9bad;
	font-size: 12px;
	line-height: 1.4;
}

.cn-consent input {
	margin: 2px 0 0;
	accent-color: var(--cn-accent);
}

.cn-consent a {
	color: var(--cn-white);
	text-decoration: underline;
}

.cn-honeypot {
	position: absolute;
	left: -9999px;
}

.cn-form__status {
	min-height: 22px;
	margin-top: 14px;
	font-size: 13px;
}

.cn-form__status.is-success { color: var(--cn-accent); }
.cn-form__status.is-error { color: #ff8e8e; }

.cn-footer {
	padding: 78px 0 28px;
	background: #060c16;
	color: var(--cn-white);
}

.cn-footer__grid {
	display: grid;
	grid-template-columns: 1.8fr 1fr 1fr;
	gap: 80px;
}

.cn-logo--footer {
	margin-bottom: 20px;
}

.cn-footer p {
	color: #7e8a9a;
	font-size: 14px;
}

.cn-footer__title {
	margin-bottom: 18px;
	color: #7e8a9a;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .1em;
}

.cn-footer__grid > div:not(:first-child) {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	font-size: 14px;
}

.cn-footer__grid a:hover {
	color: var(--cn-accent);
}

.cn-footer__bottom {
	display: flex;
	justify-content: space-between;
	margin-top: 60px;
	padding-top: 22px;
	border-top: 1px solid rgba(255,255,255,.1);
	color: #667386;
	font-size: 11px;
}

/* Service pages */
.cn-service-hero {
	padding: 135px 0 95px;
	background:
		radial-gradient(circle at 80% 20%, rgba(95,124,255,.2), transparent 28%),
		var(--cn-navy);
	color: var(--cn-white);
}

.cn-breadcrumbs {
	display: flex;
	gap: 10px;
	margin-bottom: 70px;
	color: #7e8c9f;
	font-size: 12px;
}

.cn-breadcrumbs a:hover {
	color: var(--cn-accent);
}

.cn-knowledge {
	background: var(--cn-white);
}

.cn-knowledge__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid var(--cn-line);
	border-left: 1px solid var(--cn-line);
}

.cn-knowledge-card {
	display: flex;
	min-height: 330px;
	flex-direction: column;
	padding: 32px;
	border-right: 1px solid var(--cn-line);
	border-bottom: 1px solid var(--cn-line);
	background: var(--cn-white);
	transition: transform .2s ease, box-shadow .2s ease;
}

.cn-knowledge-card:hover {
	position: relative;
	z-index: 1;
	transform: translateY(-4px);
	box-shadow: 0 18px 45px rgba(9, 17, 31, .11);
}

.cn-knowledge-card > span {
	margin-bottom: 18px;
	color: var(--cn-blue);
	font-size: 11px;
	font-weight: 750;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.cn-knowledge-card h3 {
	margin: 0 0 18px;
	font-size: 23px;
	line-height: 1.25;
}

.cn-knowledge-card h3 a:hover {
	color: var(--cn-blue);
}

.cn-knowledge-card p {
	margin: 0 0 28px;
	color: var(--cn-ink-soft);
	font-size: 15px;
}

.cn-knowledge-card__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	color: var(--cn-blue);
	font-size: 14px;
	font-weight: 750;
}

.cn-knowledge-card__link svg {
	width: 17px;
}

.cn-service-hero__grid {
	display: grid;
	grid-template-columns: 1.25fr .55fr;
	align-items: end;
	gap: 85px;
}

.cn-service-hero h1 {
	max-width: 830px;
	margin-bottom: 28px;
	font-size: clamp(46px, 5.4vw, 76px);
}

.cn-service-hero__grid > div:first-child > p {
	max-width: 760px;
	margin-bottom: 36px;
	color: #aeb9c7;
	font-size: 20px;
}

.cn-outcome-card {
	padding: 30px;
	border: 1px solid rgba(255,255,255,.14);
	border-radius: var(--cn-radius);
	background: rgba(255,255,255,.055);
}

.cn-outcome-card > span {
	color: var(--cn-accent);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .1em;
}

.cn-outcome-card > p {
	margin: 42px 0;
	font-size: 22px;
	line-height: 1.25;
}

.cn-outcome-card__line {
	display: flex;
	align-items: center;
	gap: 9px;
	padding-top: 18px;
	border-top: 1px solid rgba(255,255,255,.12);
	color: #8e9cae;
	font-size: 11px;
}

.cn-outcome-card__line i {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--cn-accent);
}

.cn-audience {
	padding-block: 75px;
	background: var(--cn-paper);
}

.cn-audience__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid #cfd6df;
}

.cn-audience__grid > div {
	display: grid;
	grid-template-columns: 42px 1fr;
	gap: 15px;
	padding: 28px 28px 10px 0;
}

.cn-audience__grid span {
	color: var(--cn-blue);
	font-size: 12px;
}

.cn-audience__grid p {
	margin: 0;
	font-size: 19px;
}

.cn-deliverables__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 100px;
}

.cn-deliverables__grid > div:first-child > p {
	max-width: 500px;
	margin-top: 24px;
	color: var(--cn-ink-soft);
}

.cn-deliverables__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}

.cn-deliverables__list > div {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	min-height: 112px;
	padding: 22px;
	border: 1px solid var(--cn-line);
	border-radius: 14px;
	background: var(--cn-paper);
}

.cn-deliverables__list svg {
	flex: 0 0 auto;
	width: 21px;
	height: 21px;
	fill: none;
	stroke: var(--cn-blue);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cn-service-process {
	background: var(--cn-navy);
	color: var(--cn-white);
}

.cn-service-process .cn-section-heading > p {
	color: #95a2b3;
}

.cn-service-process__grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 12px;
}

.cn-service-process__grid > div {
	min-height: 205px;
	padding: 24px;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 14px;
	background: rgba(255,255,255,.035);
}

.cn-service-process__grid b {
	display: block;
	margin-bottom: 70px;
	color: var(--cn-accent);
	font-size: 12px;
}

.cn-service-process__grid p {
	margin-bottom: 0;
	color: #c1cad5;
	font-size: 15px;
}

.cn-sla {
	background: var(--cn-paper);
}

.cn-sla__grid {
	display: grid;
	grid-template-columns: .85fr 1.15fr;
	gap: 90px;
}

.cn-sla__table {
	border-top: 1px solid #ccd4dd;
}

.cn-sla__table > div {
	display: grid;
	grid-template-columns: .5fr 1fr;
	gap: 20px;
	padding: 24px 0;
	border-bottom: 1px solid #ccd4dd;
}

.cn-sla__table span {
	color: var(--cn-ink-soft);
}

.cn-sla__table strong {
	font-weight: 600;
}

/* Legal */
.cn-legal {
	min-height: 80vh;
	padding: 150px 0 100px;
	background: var(--cn-paper);
}

.cn-legal__inner {
	max-width: 850px;
}

.cn-legal h1 {
	margin-bottom: 42px;
	font-size: clamp(42px, 5vw, 68px);
}

.cn-legal h2 {
	margin: 45px 0 15px;
	font-size: 28px;
}

.cn-legal p {
	color: var(--cn-ink-soft);
}

.cn-legal a {
	text-decoration: underline;
}

.cn-legal__notice {
	padding: 22px;
	border: 1px solid #efbf62;
	border-radius: 12px;
	background: #fff4d9;
	color: #644814;
}

.cn-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity .55s ease, transform .55s ease;
}

.cn-reveal.is-visible {
	opacity: 1;
	transform: none;
}

@media (max-width: 1020px) {
	:root { --cn-container: min(100% - 36px, 920px); }
	.cn-nav { gap: 17px; }
	.cn-header__telegram { display: none; }
	.cn-hero__inner { grid-template-columns: 1fr .55fr; }
	.cn-hero__visual { width: 420px; margin-left: -80px; opacity: .8; }
	.cn-section-heading { gap: 40px; }
	.cn-situations__grid,
	.cn-why__grid,
	.cn-faq__grid,
	.cn-summary__grid,
	.cn-contact__grid,
	.cn-deliverables__grid,
	.cn-sla__grid { gap: 55px; }
	.cn-service-process__grid { grid-template-columns: repeat(3, 1fr); }
	.cn-service-process__grid > div:nth-child(n+4) { min-height: 165px; }
}

@media (max-width: 820px) {
	.casp-next h1 { font-size: clamp(44px, 11vw, 64px); }
	.casp-next h2 { font-size: clamp(34px, 8vw, 50px); }
	.cn-section { padding: 82px 0; }
	.cn-header__actions { margin-left: auto; }
	.cn-header__actions .cn-button { display: none; }
	.cn-menu-button { display: block; margin-left: auto; }
	.cn-nav {
		position: fixed;
		inset: 84px 0 auto;
		display: none;
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
		margin: 0;
		padding: 15px 24px 28px;
		background: rgba(9,17,31,.98);
	}
	.cn-nav.is-open { display: flex; }
	.cn-nav a { width: 100%; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.1); font-size: 18px; }
	.cn-hero { min-height: auto; }
	.cn-hero__inner { grid-template-columns: 1fr; min-height: 680px; padding: 125px 0 70px; }
	.cn-hero__content { max-width: 720px; }
	.cn-hero__visual { position: absolute; right: -170px; bottom: -70px; width: 440px; opacity: .35; }
	.cn-proof-strip { grid-template-columns: repeat(2, 1fr); }
	.cn-proof-strip > div:nth-child(2) { border-right: 0; }
	.cn-services__grid,
	.cn-knowledge__grid,
	.cn-cases__grid { grid-template-columns: 1fr; }
	.cn-service-card { min-height: 280px; }
	.cn-case--featured { grid-row: auto; }
	.cn-section-heading,
	.cn-summary__grid,
	.cn-situations__grid,
	.cn-why__grid,
	.cn-faq__grid,
	.cn-contact__grid,
	.cn-deliverables__grid,
	.cn-sla__grid,
	.cn-service-hero__grid { grid-template-columns: 1fr; }
	.cn-section-heading { align-items: start; margin-bottom: 45px; }
	.cn-process__line { grid-template-columns: repeat(2, 1fr); row-gap: 35px; }
	.cn-process__line::before { display: none; }
	.cn-process__line > div { padding-top: 52px; }
	.cn-clients__logos { grid-template-columns: repeat(3, 1fr); }
	.cn-service-hero__grid { align-items: start; }
	.cn-outcome-card { max-width: 520px; }
	.cn-audience__grid { grid-template-columns: 1fr; }
	.cn-audience__grid > div { border-bottom: 1px solid #cfd6df; }
	.cn-deliverables__list { grid-template-columns: repeat(2, 1fr); }
	.cn-footer__grid { grid-template-columns: 1.4fr 1fr 1fr; gap: 35px; }
}

@media (max-width: 560px) {
	:root { --cn-container: calc(100% - 30px); }
	body.casp-next { font-size: 16px; }
	.cn-header { height: 72px; }
	.cn-header__inner { gap: 10px; }
	.cn-logo { font-size: 20px; }
	.cn-logo__mark { width: 30px; height: 30px; font-size: 20px; }
	.cn-nav { inset-block-start: 72px; }
	.cn-header__actions { display: none; }
	.cn-hero__inner { min-height: 700px; padding-top: 112px; align-items: start; }
	.cn-status { margin-bottom: 25px; }
	.cn-hero h1 { margin-bottom: 22px; font-size: clamp(42px, 12vw, 58px); }
	.cn-hero__lead { font-size: 18px; }
	.cn-hero__actions { flex-direction: column; align-items: stretch; gap: 20px; }
	.cn-hero__actions .cn-text-link { align-self: flex-start; }
	.cn-hero__visual { right: -190px; bottom: -20px; width: 390px; }
	.cn-signal { display: none; }
	.cn-proof-strip { grid-template-columns: 1fr 1fr; }
	.cn-proof-strip > div { padding: 22px 12px; }
	.cn-proof-strip > div:first-child { padding-left: 0; }
	.cn-proof-strip strong { font-size: 19px; }
	.cn-proof-strip span { font-size: 11px; }
	.cn-section { padding: 68px 0; }
	.cn-section-heading { gap: 22px; }
	.cn-services__grid { border-left: 0; }
	.cn-knowledge__grid {
		grid-template-columns: 1fr;
		border-left: 0;
	}
	.cn-service-card { min-height: 265px; padding: 27px 0; border-right: 0; }
	.cn-service-card__top { margin-bottom: 35px; }
	.cn-situations__grid,
	.cn-why__grid,
	.cn-faq__grid,
	.cn-contact__grid,
	.cn-deliverables__grid,
	.cn-sla__grid { gap: 38px; }
	.cn-situations__list p { font-size: 17px; }
	.cn-process__line { grid-template-columns: 1fr; }
	.cn-case,
	.cn-case--featured { padding: 26px; }
	.cn-case__meta { margin-bottom: 38px; }
	.cn-case--featured h3 { font-size: 29px; }
	.cn-clients__logos { grid-template-columns: repeat(2, 1fr); }
	.cn-why__items > div { grid-template-columns: 44px 1fr; padding: 22px; }
	.cn-why__items i { width: 44px; height: 44px; }
	.cn-contact { padding: 70px 0; }
	.cn-form { margin-inline: -4px; padding: 25px; }
	.cn-form__grid { grid-template-columns: 1fr; gap: 0; }
	.cn-mascot { right: 8px; bottom: 8px; width: 96px; }
	.cn-mascot__hint { display: none; }
	.cn-mascot__status { left: 17px; bottom: 16px; width: 8px; height: 8px; }
	.cn-footer__grid { grid-template-columns: 1fr; gap: 38px; }
	.cn-footer__bottom { flex-direction: column; gap: 8px; }
	.cn-service-hero { padding: 110px 0 68px; }
	.cn-breadcrumbs { margin-bottom: 45px; }
	.cn-service-hero h1 { font-size: 43px; }
	.cn-service-hero__grid > div:first-child > p { font-size: 18px; }
	.cn-outcome-card > p { margin: 30px 0; }
	.cn-audience { padding-block: 55px; }
	.cn-deliverables__list,
	.cn-service-process__grid { grid-template-columns: 1fr; }
	.cn-deliverables__list > div { min-height: auto; }
	.cn-service-process__grid > div { min-height: 150px; }
	.cn-service-process__grid b { margin-bottom: 45px; }
	.cn-sla__table > div { grid-template-columns: 1fr; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.cn-reveal { opacity: 1; transform: none; transition: none; }
	.casp-next * { animation: none !important; transition-duration: 0s !important; }
}
