@font-face {
  font-family: "Inter";
  src: url("/static/fonts/inter.ttf");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Material Symbols Outlined";
  src: url("/static/fonts/material.ttf") format("truetype");
  font-weight: 100 700;
  font-style: normal;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: 'Inter', sans-serif;
}

h1, h2, h3, h4 {
	color: var(--text-color-w);
}

h1 {
	font-size: 50px;
	letter-spacing: -1.5px;
	font-weight: 700;
}

p {
	color: var(--text-color-p);
}

:root {
	--bg-color: rgb(21 21 25);
	--section-bg-color-gray: rgb(30 30 36 / 0.3);
	--block-bg-hover: rgb(30 30 36);
	--utp-bg-color: rgb(30 30 36);
	--semilight-block-bg-color: rgb(30, 30, 37);
	--light-block-bg-color: rgb(42 42 53);
	--v-btn-bg-color: rgb(99 102 241);
	--v-btn-bg-color-hover: rgb(79 70 229);
	--w-btn-bg-color: rgb(255 255 255);
	--w-op-btn-bg-color: rgb(255 255 255 / 0.05);
	--btn-color: rgb(255 255 255);
	--text-color-main: rgb(226 232 240);
	--text-color-p: rgb(148 163 184);
	--text-color-w: rgb(255 255 255);
	--border-main: 1px solid  rgba(255, 255, 255, 0.08);
	--border-hover-v: 1px solid  rgb(99 102 241 / 0.5);
	--border-gray: 1px solid  rgb(255 255 255 / 0.05);
	--border-gray-hover: 1px solid  rgb(255 255 255 / 0.1);
	--section-border: 1px solid rgb(255 255 255 / 0.05);
	--border-radius-16: 16px;
	--border-radius-12: 12px;
	--border-radius-8: 8px;
	--border-radius-max: 9999px;
	--shadow-v: rgb(99 102 241 / 0.2);
	--font-size-standart: 16px;
}

.material-symbols-outlined {
  font-family: "Material Symbols Outlined";
  font-weight: 400;
  font-style: normal;
  line-height: 1;
  display: inline-block;
  white-space: nowrap;
  direction: ltr;

  /* ВАЖНО: чтобы текст "home" превратился в иконку */
  font-feature-settings: "liga";
  -webkit-font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;

  /* variable-настройки */
  font-variation-settings:
    "FILL" 0,
    "wght" 300,
    "GRAD" 0,
    "opsz" 24;
}

body {
	background-color: var(--bg-color);
	
}

main {
	min-height: 80vh;
	padding-top: 65px !important;
}

.input {
	padding: 13px;
	background-color: var(--section-bg-color-gray);
	border: var(--border-main);
	border-radius: var(--border-radius-12);
	width: 100%;
	font-weight: 500;
	color: var(--text-color-w);
	outline: none;

	&:focus {
		outline: 2px solid var(--v-btn-bg-color-hover);
	}
}

.textarea {
	padding: 13px;
	background-color: var(--section-bg-color-gray);
	border: var(--border-main);
	border-radius: var(--border-radius-12);
	width: 100%;
	resize: vertical;
	font-weight: 500;
	color: var(--text-color-w);
	outline: none;

	&:focus {
		outline: 2px solid var(--v-btn-bg-color-hover);
	}
}

.section-wrapper {
	max-width: 1280px;
	width: 100%;
	margin: auto;
	padding: 60px 32px;
}

.rel {
	position: relative;
}

.flex-row-sb {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
}

.flex-col-sb {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
}

.flex-col-c {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.flex-col {
	display: flex;
	flex-direction: column;
}

.btn {
	padding: 12px 16px;
	background-color: var(--v-btn-bg-color);
	font-weight: 600;
	font-size: 14px;
	color: var(--text-color-w);
	border: none;
	border-radius: var(--border-radius-8);
	cursor: pointer;
	transition: 0.3s;

	&:hover {
		background-color: var(--v-btn-bg-color-hover);
		transition: 0.3s;
	}
}

.btn-w-op {
	background-color: var(--w-op-btn-bg-color);
	padding: 12px 24px;
	border: var(--border-main);
	font-weight: 600;
	border-radius: var(--border-radius-12);

	&:hover {
		background-color: rgb(255 255 255 / 0.1);
	}
}

.np-tb {
	padding-top: 16px !important;
	padding-bottom: 16px !important;
}

.bg-h::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(600px circle at var(--mouse-x) var(--mouse-y), rgba(255,255,255,0.06), transparent 40%);
    opacity: 0;
    transition: opacity 0.5s;
    pointer-events: none;
    z-index: 1;
}

.bg-h:hover::before { opacity: 0.5; }

.mb-n {
	margin-bottom: 0px !important;
}

.pdt-n {
	padding-top: 0px !important;
}

.loader {
    width: 20px;
    height: 20px;
    border: 3px solid #FFF;
    border-bottom-color: transparent;
    border-radius: 50%;
    display: inline-block;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
}

@keyframes rotation {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.status-message {
    margin-top: 10px;
    font-size: 14px;
    text-align: center;
}
.status-message.success {
    color: #27ae60;
}
.status-message.error {
    color: #c0392b;
}

a {
	text-decoration: none;
	color: var(--text-color-p);

	&:hover {
		color: var(--text-color-w);
	}
}

header {
	min-height: 65px;
	border-bottom: var(--border-main);
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	background-color: rgb(21 21 25 / 0.8);
	backdrop-filter: blur(12px);
	z-index: 999;
}

.header-logo__wrapper {
	width: 100px;
}

.header-logo__wrapper img {
	width: 100%;
}

.header-nav-bar {
	gap: 30px;
	font-weight: 500;
	font-size: 14px;
}

footer {
	border-top: var(--border-main);
	color: var(--text-color-p);
	font-size: 14px;
	/* padding-top: 64px;
	padding-bottom: 32px; */
	background-color: var(--section-bg-color-gray);
}

footer li {
	list-style: none;
}

.footer-logo__wrapper {
	display: block;
	width: 100px;
}

.footer-logo__wrapper img {
	width: 100%;
}

.footer__top {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 30px;
	/* padding-bottom: 32px; */
}

.footer-info__item {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.footer-description {
	grid-column: 1;
}

.footer-logo__wrapper,
.footer-description__text {
	margin-bottom: 32px;
}

.footer-info-item__title {
	color: var(--text-color-w);
	margin-bottom: 24px;
}

.footer-info-list__item {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 5px;
}

.footer-info-list__item span {
	color: var(--v-btn-bg-color-hover);
}

.footer-info-list__item:not(:first-child) {
	margin-top: 20px;
}

.footer__bottom {
	margin-top: 60px;
	padding-top: 32px;
	text-align: center;
	border-top: var(--border-main);
}

.contact-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;

	padding: 80px;
	color: var(--text-color-p);
	background-color: var(--semilight-block-bg-color);
	border-radius: 40px;
	border: var(--border-main);
	margin-top: 80px;
	overflow: hidden;
	position: relative;
}

.form-title {
	color: var(--text-color-w);
	font-size: 36px;
	font-weight: 700;
	margin-bottom: 24px;
}

.form-text {
	font-size: 18px;
	line-height: 28px;
	max-width: 510px;
	margin-bottom: 24px;
}

.form-body {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 32px;
	position: relative;

	background-color: rgb(21 21 25 / 0.6);
	border-radius: 24px;
	border: var(--border-gray);
	box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);;
}

.form-body input {
	color: var(--text-color-w);
	font-size: 14px;
}

@keyframes expand-center {
    0% {
      transform: scale(0);
      opacity: 0;
    }
    100% {
      transform: scale(1);
      opacity: 1;
    }
  }

@keyframes expand-center-revers {
    0% {
    	transform: scale(1);
    	opacity: 1;
    }
    100% {
    	transform: scale(0);
    	opacity: 0;
    }
  }

.popup-form {
	z-index: 20;
	max-width: 487px;
	max-height: 500px;
	background-color: rgb(21 21 25);
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	display: none;
}

.form-bg {
	width: 100%;
	height: 100%;
	background-color: #000000c7;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 10;
	display: none;
}

.popup-form.active {
	display: flex;
	animation: expand-center 0.4s ease-out forwards;
}

.form-bg.active {
	display: block;
	animation: expand-center 0.4s ease-out forwards;
}

.cancel {
	color: var(--text-color-w);
	font-size: 22px;
	position: absolute;
	right: -20px;
	top: -15px;
	cursor: pointer;
}

.input_wrapper {
	display: flex;
	flex-direction: column;
	gap: 24px;
	position: relative;
}

.input-block label {
	color: var(--text-color-w);
	font-size: 14px;
	font-weight: 500;
}

.input-block input,
.input-block textarea {
	margin-top: 10px;
}

.input-block textarea {
	min-height: 100px;
}

.form-btn {
	background-color: rgb(255 255 255);
	color: black;
	border-radius: var(--border-radius-12);
	padding: 16px;

	&:hover {
		background-color: rgb(255 255 255 / 0.7);
	}
}

.form-description {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.contact-form-neon {
	position: absolute;
	top: 0;
	left: 0;
	width: 100px;
	height: 100px;
	background-color: rgb(99 102 241 / 0.6);
	filter: blur(80px);
}

.form-description-utp__item {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 10px;
	margin-bottom: 15px;
}

.form-description-utp-item__icon {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;

	color: var(--v-btn-bg-color);
	width: 32px;
	height: 32px;
	border-radius: var(--border-radius-max);
	background-color: rgb(79 70 229 / 0.1);;
}

.index-header {
	background-color: var(--section-bg-color-gray);
	overflow: hidden;
}

.index-header__wrapper {
	padding: 20px 0px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
}

.index__title {
	font-size: 64px;
	line-height: 1;
	max-width: 900px;
	text-align: center;
	margin: auto;
	margin-bottom: 50px;
}

.index__description {
	max-width: 670px;
	text-align: center;
	font-size: 18px;
	line-height: 32px;
}

.index-category__title {
	font-size: 36px;
	line-height: 40px;
}

.index-category__description {
	font-size: 18px;
	line-height: 28px;
	margin-top: 16px;
}

.btn-arrow {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 5px;
}

.service-header {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: relative;
	min-height: 400px;
	overflow: hidden;
	border-bottom: var(--border-main);
}

.service-description {
	max-width: 672px;
	text-align: center;
	font-size: 18px;
	line-height: 1.625;
}

.service-title {
	margin-bottom: 16px;
}

.service-header-neon-first {
	position: absolute;
	background-color: rgb(168 85 247 / 0.1);
	width: 300px;
	height: 300px;
	left: 20%;
	bottom: 5%;
	border-radius: 9999px;
	filter: blur(110px);
	z-index: -10;
}

.service-header-neon-last {
	position: absolute;
	background-color: rgb(99 102 241 / 0.1);
	width: 500px;
	height: 500px;
	right: 15%;
	top: -20%;
	border-radius: 9999px;
	filter: blur(120px);
	z-index: -10;
}

.service-category-container {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin-top: 24px;
}


.service-category-container__item {
	display: flex;
	flex-direction: column;
	padding: 32px;

	background-color: var(--block-bg-hover);
	border-radius: var(--border-radius-12);
	border: var(--border-gray);
	transition: 0.3s;

	&:hover {
		background-color: rgb(26 26 30);
		border-color: rgb(99 102 241 / 0.3);
	}
}

.service-category-item__info-wrapper {
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.service-category-item__icon {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;

	width: 56px;
	height: 56px;
	min-height: 56px;
	color: rgb(99 102 241);
	background-color: rgb(99 102 241 / 0.1);
	font-size: 30px;
	line-height: 36px;
	border-radius: var(--border-radius-16);
	margin-bottom: 24px;
	transition: 0.3s;
}

.service-category-container__item:hover .service-category-item__icon {
	background-color: rgb(99 102 241);
	color: var(--text-color-w);
}

.service-category-container__item:hover .service-category-item__link span {
	transform: rotate(30deg);
	transition: 0.3s;
}

.service-category-item__title {
	font-size: 20px;
	font-weight: 700;
	margin-bottom: 12px;
}

.service-category-item__description {
	font-size: 14px;
	line-height: 1.625;
	margin-bottom: 24px;
}

.service-category-item__bottom {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;

	border-top: var(--border-main);
	padding-top: 24px;
}

.service-category-item__count {
	font-size: 14px;
	color: var(--text-color-p);
}

.service-category-item__link {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 5px;
	font-size: 14px;
	transition: 0.3s;
}

.service-category-item__link span {
	line-height: 1.5rem;
	font-size: 16px;
	font-weight: 500;
	margin-bottom: -3px;
	transition: 0.3s;
}

.category-header {
	padding-top: 80px;
	padding-bottom: 48px;
	border-bottom: var(--border-main);
	overflow: hidden;
}

.category-header-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 64px;
	align-items: center;
}

.category-header-info__title {
	margin-bottom: 24px;
	line-height: 1;
}

.category-header-info__description {
	margin-bottom: 32px;
	line-height: 1.625;
	font-size: 18px;
	max-width: 670px;
}

.category-header-info__bottom-wrapper {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 40px;
}

.category-header-info__price {
	color: var(--text-color-w);
	font-size: 36px;
	font-weight: 700;
}

.price-unit {
	font-size: 14px;
	font-weight: 500;
	color: var(--text-color-p);
}

.category-header-utp {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.category-header-utp__item {
	display: flex;
	flex-direction: column;
	position: relative;
    overflow: hidden;

	padding: 24px;
	border: var(--border-gray);
	background-color: var(--utp-bg-color);
	border-radius: var(--border-radius-16);
}

.gr-col-2 {
	grid-column: 1/3;
}

.gr-col-2 .category-header-utp__item-title {
	font-size: 16px;
	font-weight: 500;
}

.category-header-utp__item-title {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 10px;

	font-size: 30px;
	font-weight: 700;
	margin-bottom: 5px;
	color: var(--text-color-w);
}

.category-header-utp__item-description {
	font-size: 14px;
	line-height: 20px;
}

.category-header-neon-first {
	position: absolute;
	background-color: rgb(16 185 129 / 0.1);
	width: 300px;
	height: 300px;
	left: 22%;
	bottom: 0px;
	border-radius: 9999px;
	filter: blur(110px);
	z-index: -10;
}

.category-header-neon-last {
	position: absolute;
	background-color: rgb(99 102 241 / 0.1);
	width: 500px;
	height: 500px;
	right: 20%;
	top: -200px;
	border-radius: 9999px;
	filter: blur(120px);
	z-index: -10;
}

.category-utp {
	border-bottom: var(--border-main);
	background-color: var(--section-bg-color-gray);
}

.category-utp__container {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
}

.category-utp__container-item {
	display: flex;
	flex-direction: row;
	gap: 16px;
}

.category-utp__container-item-icon {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: var(--border-main);
	background-color: var(--utp-bg-color);
	border-radius: var(--border-radius-12);
	min-width: 48px;
	color: rgb(99 102 241);
	transition: 0.3s;
}

.category-utp__container-item-icon span {
	font-size: 24px;
	line-height: 32px;
}

.category-utp__container-item:hover .category-utp__container-item-icon {
	background-color: rgb(99 102 241);
	color: var(--text-color-w);
	transition: 0.3s;
}

.category-utp__container-item-wrapper {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.category-utp__container-item-description {
	font-size: 14px;
	line-height: 1.625;
}

.category-tabs__title {
	margin-bottom: 16px;
}

.category-tabs__description {
	max-width: 670px;
}

.category-tabs__wrapper {
	margin-top: 48px;
}

.category-tabs__nav {
	display: flex;
	flex-direction: row;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 20px;
}

.category-tabs__nav-item {
	padding: 10px 20px;
	background-color: var(--utp-bg-color);
	color: var(--text-color-p);
	border: var(--border-gray);
	border-radius: var(--border-radius-max);
	cursor: pointer;
	transition: 0.3s;
	font-size: 14px;

	&:hover {
		background-color: rgb(42 42 53);
		color: var(--text-color-w);
		transition: 0.3s;
	}
}

.category-tabs__container {
	padding: 40px;
	background-color: var(--section-bg-color-gray);
	border: var(--border-gray);
	border-radius: 24px;
	position: relative;
    overflow: hidden;
}

.category-tabs__container-title {
	margin-bottom: 32px;
}

.category-tabs__container-wrapper {
	display: none;
	flex-direction: row;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	min-height: 40px;
	max-height: 150px;
	overflow-y: auto;
}

.category-tabs__container-wrapper.active {
	display: flex;
}

.category-tabs__container-wrapper::-webkit-scrollbar {
	width: 0px;
}

.category-tabs__container-wrapper-item {
	padding: 10px 20px;
	background-color: var(--utp-bg-color);
	color: var(--text-color-p);
	border: var(--border-gray);
	border-radius: var(--border-radius-8);
	cursor: pointer;
	transition: 0.3s;
	font-size: 14px;

	&:hover {
		background-color: rgb(52 211 153 / 0.1);
		border-color: rgb(16 185 129 / 0.3);
		color: var(--text-color-w);
		transition: 0.3s;
	}
}

.category-tabs__nav-item.active {
	background-color: rgb(52 211 153 / 0.4);
	border-color: rgb(52 211 153);
	color: var(--text-color-w);
}



.service-detail-utp__header {
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	justify-content: space-between;

	padding-bottom: 32px;
	margin-bottom: 64px;
	border-bottom: var(--border-main);
}

.service-detail-utp__header-title {
	font-size: 36px;
	line-height: 40px;
	font-weight: 700;
	max-width: 570px;
}

.service-detail-utp__header-description {
	max-width: 380px;
	font-size: 14px;
	line-height: 20px;
}

.service-detail-utp__container {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
}

.service-detail-utp__container-item {
	display: flex;
	flex-direction: column;
	padding: 32px;

	
	background-color: var(--block-bg-hover);
	border-radius: var(--border-radius-12);
	border: var(--border-gray);
	transition: 0.3s;
	position: relative;
    overflow: hidden;

	&:hover {
		
		border: var(--border-gray-hover);
	}
}

.service-detail-utp__container-item:hover .service-detail-utp__container-item-icon {
	background-color: rgb(52 211 153 / 0.5);
	color: var(--text-color-w);
	transition: 0.3s;
}

.service-detail-utp__container-item-icon {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;

	width: 56px;
	height: 56px;
	background-color: rgb(52 211 153 / 0.1);
	border-radius: var(--border-radius-12);
	margin-bottom: 24px;
	color: rgb(52 211 153);
	transition: 0.3s;
}

.service-detail-utp__container-item-icon span {
	font-size: 30px;
	line-height: 24px;
}

.service-detail-utp__container-item-title {
	margin-bottom: 12px;
}

.service-detail-utp__container-item-description {
	font-size: 16px;
	line-height: 1.625;
	margin-bottom: 24px;
}

.service-detail-utp__container-item-benefit {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 5px;

	padding-top: 18px;
	border-top: var(--border-gray);
	
}

.utp-item-icon {
	font-size: 24px;
	color: rgb(52 211 153);;
}

.utp-item-benefit {
	font-size: 12px;
	color: var(--text-color-w);
}

.item-title__icon {
	color: var(--v-btn-bg-color);
	font-size: 24px;
	font-weight: 400;
}


.tech-stack__container {
	display: grid;
	grid-template-rows: repeat(2, minmax(0, 1fr));
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	height: 600px;
}

.tech-stack__header-title {
	font-size: 36px;
	margin-bottom: 24px;
}

.tech-stack__container-item {
	background-color: var(--utp-bg-color);
	border: var(--border-gray);
	border-radius: 24px;
	overflow: hidden;
	position: relative;
	padding: 32px;

	
	&:hover {
		border: var(--border-main);
	}
}

.grid-item-4 {
	grid-column: 1/3;
	grid-row: 1/3;
}

.grid-item-2 {
	grid-column: 3/5;
}

.stack-item-neon {
	display: none;
	position: absolute;
	top: -100px;
	right: -100px;
	width: 300px;
	height: 300px;
	background-color: rgb(99 102 241 / 0.2);
	border-radius: var(--border-radius-max);
	filter: blur(80px);
}

.tech-stack__container-item:hover .stack-item-neon {
	background-color: rgb(99 102 241 / 0.3);
}

.tech-stack-item__icon-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: var(--text-color-w);
	background-color: rgb(255 255 255 / 0.1);
	border-radius: var(--border-radius-8);

	width: 45px;
	height: 45px;
}

.tech-stack-item__icon-wrapper span {
	font-size: 24px;
}

.tech-stack__container-item-icon {
	font-size: 32px;
	color: rgb(251 146 60);
}

.tech-stack__tags {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.tech-stack__tags-item {
	color: var(--text-color-w);
	font-size: 12px;
	line-height: 16px;
	padding: 4px 12px;
	background-color: rgb(0 0 0 / 0.3);
	border: var(--border-main);
	border-radius: var(--border-radius-max);
	cursor: pointer;
	transition: 0.3s;

	&:hover {
		background-color: rgb(255 255 255 / 0.9);
		color: black;
		transition: 0.3s;
	}
}

.tech-stack-item__title-wrapper {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 12px;
}

.tech-stack__container-item.grid-item-4 {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background-image: linear-gradient(to bottom right, #2a2a35, #1e1e24);
}

.tech-stack__container-item.grid-item-4 .stack-item-neon {
	display: block;
}

.tech-stack__container-item.grid-item-4 .tech-stack__container-item-icon {
	display: none;
}

.tech-stack__container-item.grid-item-4 .tech-stack-item__title {
	font-size: 24px;
	font-weight: 700;
	line-height: 32px;
}

.tech-stack__container-item.grid-item-4 .tech-stack-item__title-wrapper {
	margin-bottom: 24px;
}

.tech-stack__container-item.grid-item-4 .tech-stack-item__description {
	font-size: 18px;
	line-height: 28px;
}

.tech-stack__container-item.grid-item-2 .tech-stack-item__icon-wrapper,
.tech-stack__container-item.grid-item-2 .tech-stack__tags,
.tech-stack__container-item.grid-item-1 .tech-stack-item__icon-wrapper,
.tech-stack__container-item.grid-item-1 .tech-stack__tags {
	display: none;
}

.tech-stack__container-item.grid-item-2 {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	justify-content: space-between;
}

.tech-stack__container-item.grid-item-2 .tech-stack-item__info-wrapper {
	max-width: 320px;
}

.tech-stack__container-item.grid-item-2 .tech-stack-item__title {
	font-size: 20px;
	font-weight: 700;
	line-height: 28px;
	margin-bottom: 8px;
}

.tech-stack__container-item.grid-item-2 .tech-stack-item__description {
	font-size: 14px;
	line-height: 20px;
}

.tech-stack__container-item.grid-item-1 {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.tech-stack__container-item.grid-item-1 .tech-stack-item__title {
	font-size: 18px;
	font-weight: 700;
	line-height: 28px;
}

.tech-stack__container-item.grid-item-1 .tech-stack-item__description {
	font-size: 12px;
	line-height: 16px;
}

.working-process-container {
	display: flex;
	flex-direction: row;
	gap: 90px;
}

.working-process__info {
	width: 32%;
}

.working-process__title {
	font-size: 36px;
	line-height: 40px;
	font-weight: 700;
	margin-bottom: 16px;
}

.working-process__steps {
	width: 66%;
	position: relative;
}

.working-process__step {
	display: flex;
	flex-direction: row;
	gap: 24px;
}

.working-process__step:not(:last-child) {
	margin-bottom: 88px;
}

.working-process__step:last-child {
	background-color: rgb(24, 24, 28);
}

.working-process__step-number {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 48px;
	height: 30px;
	border: var(--border-main);
	border-radius: var(--border-radius-max);

	color: var(--text-color-w);
	background-color: var(--light-block-bg-color);

	font-size: 20px;
	font-weight: 700;
}

.step-info__title {
	font-size: 20px;
	line-height: 28px;
	font-weight: 700;
	margin-bottom: 8px;
}

.working-process__steps-line {
	position: absolute;
	left: 24px;
	top: 0px;
	width: 1px;
	height: 100%;
	background-color: rgb(255 255 255 / 0.1);
	z-index: -10;
}

.why-not {
	border-bottom: var(--border-main);
}

.why-not__wrapper {
	display: flex;
	flex-direction: row;
	gap: 48px;
}

.why-not__title {
	font-size: 36px;
	line-height: 40px;
	margin-bottom: 24px;
}

.why-not__description {
	font-size: 18px;
	line-height: 1.625;
}

.why-not__container {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
}

.why-not__container-item {
	display: flex;
	flex-direction: column;
	padding: 32px;

	
	
	background-color: var(--block-bg-hover);
	border-radius: var(--border-radius-12);
	border: var(--border-gray);
	transition: 0.3s;
	position: relative;
    overflow: hidden;
}

.why-not__container-item:hover .why-not__container-item-icon {
	background-color: rgb(251 113 133 / 0.5);
	color: var(--text-color-w);
	transition: 0.3s;
}

.why-not__container-item-icon {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;

	width: 56px;
	height: 56px;
	background-color: rgb(244 63 94 / 0.1);
	border-radius: var(--border-radius-12);
	margin-bottom: 24px;
	color: rgb(251 113 133);
	transition: 0.3s;
}

.why-not__container-item-icon span {
	font-size: 30px;
	line-height: 24px;
}

.why-not__container-item-title {
	margin-bottom: 12px;
}

.why-not__container-item-description {
	font-size: 16px;
	line-height: 1.625;
}

.pre-sale__container {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
}

.faq__title,
.popular__title {
	margin-bottom: 32px;
}

.faq__wrapper {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.faq__item {
	display: flex;
	flex-direction: column;
	padding: 24px;
	position: relative;
    overflow: hidden;

	background-color: var(--utp-bg-color);
	border-radius: var(--border-radius-12);
	border: var(--border-main);
	cursor: pointer;
}

.question__text {
	font-size: 18px;
	font-weight: 500;
}

.question__icon {
	color: var(--text-color-w);
	font-size: 24px;
	transition: 0.3s;
}

.faq__item-question {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
}

.faq__item-answer p {
	font-size: 14px;
	max-height: 0px;
	overflow: hidden;
	transition: 0.2s linear;
}

.faq__item-answer p.active {
	margin-top: 24px;
	display: block;
	transition: 0.2s linear;
}

.question__icon.active {
	transform: rotate(180deg);
	transition: 0.3s;
}

.popular__items-container {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 12px;
	max-height: 140px;
	overflow-y: auto;
}

.popular__items-container::-webkit-scrollbar {
    width: 0px;
}

.items-container__item {
	font-size: 14px;
	line-height: 20px;

	padding: 8px 16px;
	background-color: var(--utp-bg-color);
	border: var(--border-main);
	border-radius: var(--border-radius-8);
	cursor: pointer;
	transition: 0.3s;

	&:hover {
		background-color: var(--v-btn-bg-color);
		transition: 0.3s;
	}
}

.mobile-header {
	display: none;
}

.menu-icon-wrapper {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 15px;
}

.menu-burger {
	color: var(--text-color-w);
	font-size: 36px;
	cursor: pointer;
	transition: 0.3s;
}

.menu-burger.active,
.menu-search.active {
	transform: scale(1.3);
	transition: 0.3s;
}

.menu-search {
	color: var(--text-color-w);
	font-size: 30px;
	cursor: pointer;
	transition: 0.3s;
}

.menu__navbox,
.menu__searchbox {
	max-height: 0px;
	overflow: hidden;
	transition: 0.5s;
}

.menu__navbox.active {
	padding: 10px 0px;
}

.menu__searchbox.active {
	padding-top: 10px;
}

.mobile-header-nav-bar {
	gap: 16px;
}

.search-input {
	width: 100%;
	height: 40px;
	background-color: transparent;
	border: none;
	outline: none;
	border-bottom: 4px solid rgb(148 163 184 / 0.1);
	color: var(--text-color-p);
	font-size: 16px;
}

.input-wrapper {
	position: relative;
}

.resp-wrapper {
	display: flex;
	flex-direction: column;
	max-height: 300px;

	overflow-y: auto;
}

.resp__item {
	padding: 20px 0px;
	color: var(--text-color-p);
	
}

.resp__item:not(:last-child) {
	border-bottom: var(--border-main);
}


.home-hero {
    padding-top: 40px;
    padding-bottom: 40px;
}
.home-hero__wrapper {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 60px;
    align-items: center;
}
.home-hero__title {
    font-size: 56px;
    line-height: 1.1;
    margin-bottom: 24px;
}
.home-hero__description {
    font-size: 20px;
    line-height: 1.6;
    margin-bottom: 40px;
    max-width: 600px;
}
.home-hero__actions {
    display: flex;
    gap: 16px;
}
.label-accent {
    color: var(--v-btn-bg-color);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 16px;
    display: block;
}

/* Hero Visual (Code UI) */
.home-hero__visual {
    position: relative;
}
.code-ui-block {
    background-color: var(--section-bg-color-gray);
    border: var(--border-main);
    border-radius: var(--border-radius-16);
    padding: 30px;
    font-family: monospace;
    font-size: 14px;
    color: var(--text-color-p);
    position: relative;
    z-index: 1;
    backdrop-filter: blur(10px);
}
.code-line { margin-bottom: 8px; }
.code-line.comment { color: #666; }
.code-line .success { color: rgb(16, 185, 129); }
.code-line .accent { color: var(--v-btn-bg-color); }

.hero-neon-first {
    position: absolute;
    top: -50px; right: -50px;
    width: 200px; height: 200px;
    background-color: rgb(99 102 241 / 0.2);
    filter: blur(80px);
    z-index: 0;
    border-radius: 50%;
}
.hero-neon-second {
    position: absolute;
    bottom: -30px; left: -30px;
    width: 150px; height: 150px;
    background-color: rgb(168 85 247 / 0.15);
    filter: blur(60px);
    z-index: 0;
    border-radius: 50%;
}

/* --- BENTO GRID --- */
.home-bento {
    /* Фон секции если нужен отличный от body */
}
.bento-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 40px;
}
.bento-card {
    background-color: var(--utp-bg-color);
    border: var(--border-gray);
    border-radius: var(--border-radius-16);
    padding: 32px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    position: relative;
    transition: 0.3s;
    min-height: 300px;
}
.bento-card:hover {
    border: var(--border-main);
	border-color: #444;
    background-color: var(--block-bg-hover);
}
.bento-card.span-2 {
    grid-column: span 2;
}

/* Bento Visuals */
.bento-card__visual {
    flex-grow: 1;
    background-color: rgb(255 255 255 / 0.03);
    border: var(--border-gray);
    border-radius: var(--border-radius-12);
    margin-bottom: 24px;
    position: relative;
    overflow: hidden;
}
.bento-card__visual.centered {
    display: flex;
    align-items: center;
    justify-content: center;
}
.accent-icon.large {
    font-size: 48px;
    color: var(--v-btn-bg-color);
}

/* Table Visual inside card */
.visual-table {
    padding: 20px;
    font-size: 12px;
    font-family: monospace;
    width: 100%;
}
.v-row { display: grid; grid-template-columns: 1fr 2fr 1fr; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,0.05); color: var(--text-color-p); }
.v-row.head { color: var(--text-color-w); font-weight: bold; }
.v-row .success { color: rgb(16, 185, 129); }

/* Integrations Visual */
.visual-integrations {
    display: flex; gap: 12px; padding: 20px;
}
.vis-box {
    width: 40px; height: 40px; background: rgba(255,255,255,0.1); border-radius: 8px;
}
.vis-box.accent-border {
    border: 1px dashed var(--v-btn-bg-color); background: rgba(99,102,241,0.1);
}

.bento-card__title {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 12px;
}
.bento-card__desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--text-color-p);
}


.index-subtitle {
    color: var(--text-color-w);
	transition: 0.3s;

	&:hover {
		opacity: 0.6;
		transition: 0.3s;
	}
}
.case-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background-color: var(--utp-bg-color);
    border: var(--border-main);
    border-radius: 32px;
    overflow: hidden;
    position: relative;
}
.case-info {
    padding: 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.case-title {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--text-color-w);
}
.case-desc {
    font-size: 16px;
    line-height: 1.6;
    color: var(--text-color-p);
}
.case-stats {
    margin-top: 40px;
    padding-top: 30px;
    border-top: var(--border-gray);
    display: flex;
    gap: 40px;
}
.stat-value {
    display: block;
    font-size: 32px;
    font-weight: 700;
    color: var(--text-color-w);
}
.stat-label {
    font-size: 13px;
    color: var(--text-color-p);
}
.case-visual {
    background: radial-gradient(circle at center, rgb(30,30,40), rgb(21,21,25));
    border-left: var(--border-main);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 300px;
}
.circle-progress {
    width: 180px; height: 180px;
    border: 2px solid var(--section-bg-color-gray);
    border-color: rgb(16, 185, 129);
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.circle-val { font-size: 40px; font-weight: 700; color: rgb(16, 185, 129); }
.circle-label { font-size: 12px; color: var(--text-color-p); }

/* --- TARGET AUDIENCE --- */
.audience-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.audience-card {
    background-color: var(--section-bg-color-gray);
    border: var(--border-gray);
    border-radius: var(--border-radius-16);
    padding: 24px;
    transition: 0.3s;
    position: relative;
}
.audience-card:hover {
    background-color: var(--block-bg-hover);
    border: var(--border-main);
}
.audience-icon {
    font-size: 32px;
    color: var(--text-color-w);
    margin-bottom: 16px;
}
.audience-title {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 8px;
}
.audience-desc {
    font-size: 14px;
    color: var(--text-color-p);
}

/* --- GUARANTEES --- */
.guarantees-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
}
.guarantee-card {
    background-image: linear-gradient(135deg, var(--utp-bg-color), rgb(21,21,25));
    border: var(--border-main);
    border-radius: var(--border-radius-16);
    padding: 40px;
    display: flex;
    gap: 24px;
    align-items: flex-start;
    position: relative;
}
.guarantee-icon-wrapper {
    width: 56px; height: 56px;
    background-color: rgb(99 102 241 / 0.1);
    border-radius: var(--border-radius-12);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--v-btn-bg-color);
}
.guarantee-title {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 8px;
}
.guarantee-desc {
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-color-p);
}

.static-section li {
	color: var(--text-color-p);
}

.static-section h1 {
	font-size: 36px;
}

.static-section h1,
.static-section h2 {
	margin-top: 30px;
	margin-bottom: 15px;
}

.static-section ul {
	padding-top: 10px;
	padding-left: 35px;
}

@media (max-width: 1169px) {
	.footer-info__item {
		align-items: flex-start;
	}
}

@media (max-width: 1024px) {
	.why-not__wrapper {
		flex-direction: column;
	}

	.service-category-container {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.category-header-wrapper {
		grid-template-columns: 1fr;
	}

	.category-header-info__title {
		font-size: 36px;
	}

	.category-header-utp {
		display: none;
	}

	.home-hero__wrapper { grid-template-columns: 1fr; gap: 40px; }
    .home-hero__visual { display: none; } /* Скрываем код на планшете чтобы не мешал */
    .bento-grid { grid-template-columns: 1fr 1fr; }
    .bento-card.span-2 { grid-column: span 2; }
    .case-wrapper { grid-template-columns: 1fr; }
    .case-visual { border-left: none; border-top: var(--border-main); padding: 40px; }
    .audience-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1010px) {
	.contact-form {
		grid-template-columns: 1fr;
		gap: 30px;
		padding: 30px;
		border-radius: 24px;
	}
}

@media (max-width: 768px) {
	.desktop-header {
		display: none;
	}

	.mobile-header {
		display: flex;
	}

	.section-wrapper {
		padding: 32px 16px;
	}

	.category-header {
		padding-top: 30px;
		padding-bottom: 20px;
	}

	.why-not__container {
		grid-template-columns: 1fr;
	}

	.why-not__title {
		font-size: 24px;
	}

	.why-not__description {
		font-size: 16px;
	}

	.pre-sale__container {
		grid-template-columns: 1fr;
	}

	.service-category-container {
		grid-template-columns: repeat(1, minmax(0, 1fr));
	}

	.category-tabs__container-wrapper {
		max-height: 300px;
	}

	.category-tabs__container-wrapper-item {
		text-align: center;
	}

	.category-tabs__container {
		padding: 15px;
	}

	.category-utp__container {
		grid-template-columns: 1fr;
	}

	.tech-stack__container {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
		height: auto;
	}

	.grid-item-4,
	.grid-item-2 {
		grid-column: auto;
		grid-row: auto;
	}
	.grid-item-4 {
		gap: 24px;
	}

	.tech-stack__container-item.grid-item-4 .tech-stack-item__description {
		font-size: 16px;
	}

	.service-detail-utp__container {
		grid-template-columns: 1fr;
	}

	.service-detail-utp__header {
		flex-direction: column;
		gap: 16px;
		align-items: flex-start;
	}

	.service-detail-utp__header-title {
		font-size: 24px;
	}

	.tech-stack__container-item.grid-item-2 {
		flex-direction: column;
		align-items: flex-start;
	}

	.working-process-container {
		flex-direction: column;
		gap: 24px;
	}

	.working-process__info,
	.working-process__steps {
		width: 100%;
	}

	.home-hero__title { font-size: 36px; }
    .bento-grid { grid-template-columns: 1fr; }
    .bento-card.span-2 { grid-column: auto; }
    .audience-grid { grid-template-columns: 1fr; }
    .guarantees-grid { grid-template-columns: 1fr; }
    .case-info { padding: 30px; }
}

@media (max-width: 640px) {
	.section-wrapper {
		padding: 30px 10px;
	}

	.contact-form {
		gap: 10px;
		padding: 20px;
		border-radius: 16px;
		margin-top: 0px;
	}

	.form-title {
		font-size: 18px;
	}

	.form-text {
		font-size: 14px;
	}

	.form-body {
		padding: 15px;
	}

	.category-header-info__bottom-wrapper {
		flex-direction: column;
		align-items: baseline;
	}

	.category-header-info__description {
		font-size: 14px;
	}

	.service-detail-utp__header {
		margin-bottom: 32px;
	}

	.why-not__wrapper {
		gap: 32px;
	}

	.tech-stack__container-item.grid-item-4 .tech-stack-item__description {
		font-size: 14px;
		line-height: 20px;
	}

	.index__title {
		font-size: 28px;
	}

	.bento-card {
		padding: 16px;
	}

	.case-title {
		font-size: 22px;
	}

	.stat-value {
		font-size: 22px;
	}

	.cancel {
		right: -5px;
		top: -5px;
	}
}

@media (max-width: 505px) {
	.popup-form.active {
		margin: auto 10px;
	}
}