Files
web-dev/assets/css/main.css
Ignat Karelov 0719b11093
Some checks failed
Deploy / deploy (push) Has been cancelled
feat: added web
2026-06-02 17:45:51 +03:00

2730 lines
50 KiB
CSS

/* Nunito Sans is connected in index.html via Google Fonts. */
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block;
}
body {
line-height: 1;
}
ol,
ul {
list-style: none;
}
blockquote,
q {
quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: "";
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
min-width: 320px;
margin: 0;
font-family: "Nunito Sans", "Segoe UI", Arial, sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 1.4;
color: #111111;
background: #ffffff;
text-rendering: geometricPrecision;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
a {
color: inherit;
text-decoration: none;
}
button,
a {
-webkit-tap-highlight-color: transparent;
}
img,
svg {
display: block;
max-width: 100%;
}
.container {
width: min(1200px, 100% - 32px);
margin-inline: auto;
}
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 46px;
padding: 0 26px;
border: 1px solid transparent;
border-radius: 999px;
font-size: 14px;
font-weight: 600;
line-height: 1;
white-space: nowrap;
transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
.btn:hover {
transform: translateY(-2px);
}
}
.btn--dark {
min-width: 172px;
gap: 12px;
color: #ffffff;
background: #111111;
box-shadow: 0 18px 38px rgba(17, 17, 17, 0.12);
}
.btn--light {
min-width: 150px;
color: #202023;
background: rgba(255, 255, 255, 0.78);
border-color: rgba(17, 17, 17, 0.14);
}
.site-header {
position: fixed;
top: 14px;
left: 50%;
z-index: 20;
width: min(505px, 100% - 32px);
transform: translateX(-50%);
}
.site-header__inner {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 50px;
padding: 0 20px;
border: 1px solid rgba(17, 17, 17, 0.06);
border-radius: 999px;
background: rgba(248, 248, 248, 0.86);
backdrop-filter: blur(16px);
}
.site-header__logo {
flex: 0 0 auto;
}
.site-header__logo img {
width: 100px;
height: auto;
}
.site-header__nav {
display: flex;
align-items: center;
gap: 22px;
color: #6f6f73;
font-size: 12px;
font-weight: 400;
line-height: 1;
}
.site-header__nav a {
transition: color 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
.site-header__nav a:hover {
color: #111111;
}
}
@media (max-width: 520px) {
.site-header {
top: 10px;
width: calc(100% - 20px);
}
.site-header__inner {
min-height: 46px;
padding: 0 16px;
}
.site-header__logo img {
width: 92px;
}
.site-header__nav {
gap: 12px;
font-size: 11px;
}
}
.page--landing {
min-height: 100vh;
overflow: hidden;
background: #fff;
}
.hero {
position: relative;
height: 100vh;
max-height: 900px;
overflow: hidden;
border-bottom: 1px solid rgba(17, 17, 17, 0.05);
}
.hero::after {
content: "";
position: absolute;
right: -155px;
bottom: 36px;
width: 560px;
height: 260px;
border-radius: 50%;
background: rgba(17, 17, 17, 0.05);
filter: blur(56px);
pointer-events: none;
}
.hero::before {
content: "";
position: absolute;
left: -155px;
top: -156px;
width: 560px;
height: 260px;
border-radius: 50%;
background: rgba(199, 255, 79, 0.1);
filter: blur(56px);
pointer-events: none;
}
.hero__container {
position: relative;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.hero__content {
position: relative;
z-index: 2;
width: min(850px, 100%);
margin-inline: auto;
text-align: center;
}
.hero__badge {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
min-height: 34px;
padding: 0 20px;
border: 1px solid rgba(17, 17, 17, 0.13);
border-radius: 999px;
color: #111111;
background: rgba(255, 255, 255, 0.82);
font-size: 14px;
font-weight: 500;
line-height: 1;
}
.hero__badge span {
position: relative;
width: 10px;
height: 10px;
flex: 0 0 auto;
color: #333333;
}
.hero__title {
margin-top: 36px;
color: #333333;
font-size: 82px;
font-weight: 700;
line-height: 0.95;
letter-spacing: -0.058em;
}
.hero__title span {
color: #c9c9cc;
}
.hero__text {
margin: 36px auto 0;
color: #888888;
font-size: 16px;
font-weight: 400;
line-height: 1.24;
letter-spacing: 0.002em;
}
.hero__actions {
display: flex;
align-items: center;
justify-content: center;
gap: 16px;
margin-top: 36px;
}
.hero__actions .btn {
font-size: 16px;
}
.hero__tags {
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
gap: 15px 34px;
margin-top: 36px;
color: #888888;
font-size: 14px;
font-weight: 600;
line-height: 1.2;
}
.hero__tags li {
position: relative;
padding-left: 15px;
}
.hero__tags li::before {
content: "";
position: absolute;
top: 50%;
left: 0;
width: 6px;
height: 6px;
border-radius: 50%;
background: #C7FF4F;
transform: translateY(-50%);
}
.hero-card {
position: absolute;
z-index: 3;
border: 1px solid rgba(15, 15, 16, 0.12);
border-radius: 11px;
backdrop-filter: blur(12px);
}
.hero-card--conversion {
bottom: calc(50% - 190px);
left: calc(50% - 462px);
display: flex;
align-items: center;
gap: 14px;
width: 146px;
min-height: 84px;
padding: 17px 18px;
background: rgba(255, 255, 255, 0.84);
box-shadow: 0 17px 26px rgba(17, 17, 17, 0.18);
}
.hero-card--conversion .hero-card__icon {
display: flex;
align-items: center;
justify-content: center;
width: 38px;
height: 38px;
flex: 0 0 38px;
border-radius: 50%;
background: #C7FF4F;
}
.hero-card--conversion .hero-card__icon img {
width: 20px;
height: 20px;
}
.hero-card--conversion span {
display: block;
margin-bottom: 1px;
color: #888888;
font-size: 14px;
font-weight: 400;
line-height: 1.2;
}
.hero-card--conversion strong {
display: block;
color: #141416;
font-size: 24px;
font-weight: 700;
line-height: 1;
letter-spacing: -0.04em;
}
.hero-card--launch {
left: calc(50% + 380px);
width: fit-content;
min-height: 70px;
padding: 14px 20px;
color: #ffffff;
background: #0b0b0c;
border-color: rgba(255, 255, 255, 0.04);
box-shadow: 0 20px 35px rgba(17, 17, 17, 0.25);
}
.hero-card--launch span,
.hero-card--launch strong {
display: block;
}
.hero-card--launch span {
font-size: 18px;
font-weight: 600;
line-height: 1.05;
}
.hero-card--launch strong {
margin-top: 5px;
color: #C7FF4F;
font-size: 16px;
font-weight: 400;
line-height: 1;
}
@media (max-width: 1120px) {
.hero {
max-height: 860px;
}
.hero__title {
font-size: clamp(62px, 7.2vw, 78px);
}
.hero__text {
max-width: 620px;
}
.hero-card--conversion {
left: max(24px, 50% - 410px);
bottom: calc(50% - 176px);
}
.hero-card--launch {
left: auto;
right: max(24px, 50% - 500px);
}
}
@media (max-width: 760px) {
.hero {
height: auto;
min-height: 100svh;
max-height: none;
padding: 104px 0 56px;
}
.hero::before {
left: -250px;
top: -110px;
width: 440px;
height: 250px;
filter: blur(48px);
}
.hero::after {
right: -250px;
bottom: -24px;
width: 460px;
height: 260px;
filter: blur(50px);
}
.hero__container {
height: auto;
min-height: calc(100svh - 160px);
flex-direction: column;
justify-content: center;
}
.hero__content {
width: min(620px, 100%);
}
.hero__badge {
min-height: 32px;
padding: 0 16px;
font-size: 13px;
}
.hero__title {
margin-top: 26px;
font-size: clamp(46px, 10.2vw, 64px);
line-height: 0.98;
letter-spacing: -0.055em;
text-wrap: balance;
}
.hero__text {
max-width: 520px;
margin-top: 24px;
font-size: 15px;
line-height: 1.36;
}
.hero__actions {
flex-wrap: wrap;
gap: 12px;
margin-top: 28px;
}
.hero__actions .btn {
min-width: 160px;
min-height: 46px;
font-size: 15px;
}
.hero__tags {
gap: 11px 22px;
margin-top: 28px;
font-size: 13px;
}
.hero-card {
position: relative;
inset: auto;
}
.hero-card--conversion {
left: auto;
bottom: auto;
width: 146px;
min-height: 76px;
margin-top: 34px;
padding: 14px 16px;
transform: translateX(-72px);
box-shadow: 0 14px 24px rgba(17, 17, 17, 0.14);
}
.hero-card--conversion .hero-card__icon {
width: 34px;
height: 34px;
flex-basis: 34px;
}
.hero-card--conversion .hero-card__icon img {
width: 18px;
height: 18px;
}
.hero-card--conversion span {
font-size: 13px;
}
.hero-card--conversion strong {
font-size: 22px;
}
.hero-card--launch {
left: auto;
right: auto;
min-height: 64px;
margin-top: -18px;
padding: 12px 18px;
transform: translateX(76px);
box-shadow: 0 16px 28px rgba(17, 17, 17, 0.2);
}
.hero-card--launch span {
font-size: 16px;
}
.hero-card--launch strong {
font-size: 15px;
}
}
@media (max-width: 520px) {
.hero {
min-height: 100svh;
padding: 92px 0 44px;
}
.hero__container {
width: calc(100% - 24px);
min-height: calc(100svh - 136px);
}
.hero__badge {
min-height: 30px;
padding: 0 14px;
font-size: 12px;
}
.hero__title {
margin-top: 22px;
font-size: clamp(37px, 11.5vw, 50px);
line-height: 1;
letter-spacing: -0.05em;
}
.hero__text {
margin-top: 20px;
font-size: 14px;
line-height: 1.42;
}
.hero__actions {
width: min(100%, 330px);
margin: 26px auto 0;
flex-direction: column;
gap: 10px;
}
.hero__actions .btn {
width: 100%;
min-width: 0;
min-height: 48px;
}
.hero__tags {
width: min(100%, 330px);
margin: 24px auto 0;
justify-content: flex-start;
gap: 10px 18px;
font-size: 12px;
}
.hero__tags li {
padding-left: 13px;
}
.hero-card--conversion {
margin-top: 28px;
transform: translateX(-48px);
}
.hero-card--launch {
transform: translateX(48px);
}
}
@media (max-width: 420px) {
.hero {
padding: 86px 0 38px;
}
.hero__container {
width: calc(100% - 22px);
min-height: calc(100svh - 124px);
}
.hero__title {
font-size: clamp(34px, 9.6vw, 38px);
letter-spacing: -0.044em;
}
.hero__tags {
justify-content: center;
}
.hero-card--conversion, .hero-card--launch {
transform: none;
}
.hero-card--conversion {
margin-top: 24px;
}
.hero-card--launch {
margin-top: 10px;
}
}
.results {
position: relative;
min-height: 100vh;
overflow: hidden;
}
.results__container {
position: relative;
height: 100vh;
min-height: 680px;
display: flex;
align-items: center;
justify-content: center;
}
.results__content {
position: relative;
z-index: 2;
width: min(1120px, 100%);
text-align: center;
}
.results__label {
margin-bottom: 14px;
color: #6f6f73;
font-size: 16px;
font-weight: 700;
line-height: 1.1;
}
.results__slider {
width: min(1120px, 100%);
margin-inline: auto;
position: relative;
height: 190px;
overflow: visible;
}
.results__track {
position: relative;
height: 100%;
}
.results__slide {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
min-height: 100%;
visibility: hidden;
pointer-events: none;
transition: opacity 0.35s ease;
}
.results__slide.is-active {
opacity: 1;
visibility: visible;
pointer-events: auto;
}
.results__title {
margin: 0;
color: #333333;
font-size: clamp(40px, 4.6vw, 72px);
font-weight: 700;
line-height: 1.03;
letter-spacing: -0.02em;
transform: translateY(26px);
transition: opacity 0.45s ease, transform 0.55s ease;
}
.results__slide.is-active .results__title {
opacity: 1;
transform: translateY(0);
}
.results__dots {
margin-top: 28px;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
}
.results__dots span {
width: 8px;
height: 8px;
border-radius: 50%;
background: rgba(17, 17, 17, 0.22);
transition: width 0.3s ease, background-color 0.3s ease;
}
.results__dots span.is-active {
width: 24px;
border-radius: 999px;
background: #333333;
}
.results__icons {
position: absolute;
inset: 0;
pointer-events: none;
height: 200%;
transform: translateY(-23%);
}
.results__icon {
position: absolute;
width: 45px;
height: 45px;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
background: var(--icon-bg, #ffffff);
box-shadow: 0 10px 20px rgba(17, 17, 17, 0.07);
opacity: 1;
transform: scale(1) translateY(16px);
transition: transform 0.55s cubic-bezier(0.21, 1, 0.31, 1), opacity 0.45s ease;
}
.results__icon.is-visible {
opacity: 1;
transform: scale(1) translateY(0);
}
.results__icon img {
width: 32px;
height: 32px;
object-fit: contain;
}
.results__icon--yandex {
top: 16px;
left: 92px;
}
.results__icon--wordpress {
top: 84px;
left: 238px;
}
.results__icon--shopify {
top: 36px;
left: 540px;
}
.results__icon--aistudio {
top: 22px;
right: 240px;
}
.results__icon--bitrix {
top: 78px;
right: 86px;
}
.results__icon--cloudflare {
top: 154px;
right: 168px;
}
.results__icon--google {
right: 94px;
bottom: 128px;
}
.results__icon--openai {
right: 298px;
bottom: 34px;
}
.results__icon--tilda {
bottom: 58px;
left: 156px;
}
.results__icon--n8n {
bottom: 96px;
left: 388px;
}
.results__icon--vk {
left: 0;
top: 196px;
}
.results.is-static .results__slider {
height: auto;
}
.results.is-static .results__track {
display: grid;
gap: 12px;
height: auto;
}
.results.is-static .results__slide {
position: relative;
inset: auto;
min-height: 0;
opacity: 1;
visibility: visible;
pointer-events: auto;
}
.results.is-static .results__title {
opacity: 1;
transform: none;
}
.results.is-static .results__icon {
opacity: 1;
transform: none;
}
.results.is-animation-ready .results__label {
opacity: 0;
transform: translateY(14px);
will-change: opacity, transform;
}
.results.is-animation-ready .results__title {
opacity: 0;
transform: translateY(46px);
will-change: opacity, transform;
}
.results.is-animation-ready .results__icon {
opacity: 0;
transform: scale(0.86) translateY(36px) rotate(-4deg);
will-change: opacity, transform;
}
.results.is-animation-ready.is-in-view .results__label {
animation: resultsFadeUp 0.65s cubic-bezier(0.21, 1, 0.31, 1) 0.1s forwards;
}
.results.is-animation-ready.is-in-view .results__title {
animation: resultsTitleIn 0.8s cubic-bezier(0.21, 1, 0.31, 1) 0.22s forwards;
}
.results.is-animation-ready.is-in-view .results__icon {
animation: resultsIconIn 0.72s cubic-bezier(0.21, 1, 0.31, 1) var(--results-icon-delay, 0s) forwards, resultsIconFloat 5.8s ease-in-out calc(var(--results-icon-delay, 0s) + 0.78s) infinite;
}
.results.is-animation-ready.is-in-view .results__icon:nth-child(1) {
--results-icon-delay: 0.04s;
--results-float-offset: -8px;
}
.results.is-animation-ready.is-in-view .results__icon:nth-child(2) {
--results-icon-delay: 0.1s;
--results-float-offset: 7px;
}
.results.is-animation-ready.is-in-view .results__icon:nth-child(3) {
--results-icon-delay: 0.16s;
--results-float-offset: -6px;
}
.results.is-animation-ready.is-in-view .results__icon:nth-child(4) {
--results-icon-delay: 0.22s;
--results-float-offset: 8px;
}
.results.is-animation-ready.is-in-view .results__icon:nth-child(5) {
--results-icon-delay: 0.28s;
--results-float-offset: -7px;
}
.results.is-animation-ready.is-in-view .results__icon:nth-child(6) {
--results-icon-delay: 0.34s;
--results-float-offset: 6px;
}
.results.is-animation-ready.is-in-view .results__icon:nth-child(7) {
--results-icon-delay: 0.4s;
--results-float-offset: -9px;
}
.results.is-animation-ready.is-in-view .results__icon:nth-child(8) {
--results-icon-delay: 0.46s;
--results-float-offset: 7px;
}
.results.is-animation-ready.is-in-view .results__icon:nth-child(9) {
--results-icon-delay: 0.52s;
--results-float-offset: -6px;
}
.results.is-animation-ready.is-in-view .results__icon:nth-child(10) {
--results-icon-delay: 0.58s;
--results-float-offset: 8px;
}
.results.is-animation-ready.is-in-view .results__icon:nth-child(11) {
--results-icon-delay: 0.64s;
--results-float-offset: -7px;
}
@keyframes resultsFadeUp {
from {
opacity: 0;
transform: translateY(14px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes resultsTitleIn {
from {
opacity: 0;
transform: translateY(46px);
}
to {
opacity: 1;
transform: translateY(26px);
}
}
@keyframes resultsIconIn {
from {
opacity: 0;
transform: scale(0.86) translateY(36px) rotate(-4deg);
}
to {
opacity: 1;
transform: scale(1) translateY(16px) rotate(0deg);
}
}
@keyframes resultsIconFloat {
0%, 100% {
opacity: 1;
transform: scale(1) translateY(16px) rotate(0deg);
}
50% {
opacity: 1;
transform: scale(1) translateY(calc(16px + var(--results-float-offset, -8px))) rotate(1.2deg);
}
}
@keyframes resultsIconInMobile {
from {
opacity: 0;
transform: scale(0.9) translateY(18px) rotate(-3deg);
}
to {
opacity: 1;
transform: none;
}
}
@media (max-width: 1120px) {
.results__container {
min-height: 620px;
}
.results__title {
font-size: clamp(34px, 5.1vw, 56px);
}
.results__icon--yandex {
left: 34px;
}
.results__icon--wordpress {
left: 150px;
}
.results__icon--shopify {
left: 410px;
}
.results__icon--aistudio {
right: 182px;
}
.results__icon--bitrix {
right: 40px;
}
.results__icon--cloudflare {
right: 124px;
}
.results__icon--google {
right: 52px;
}
.results__icon--openai {
right: 222px;
}
.results__icon--tilda {
left: 90px;
}
.results__icon--n8n {
left: 292px;
}
}
@media (max-width: 760px) {
.results {
min-height: unset;
padding: 74px 0 92px;
}
.results__container {
height: auto;
min-height: unset;
display: block;
}
.results__content {
max-width: 620px;
margin-inline: auto;
}
.results__label {
margin-bottom: 12px;
font-size: clamp(20px, 4.2vw, 28px);
}
.results__slide {
min-height: 132px;
}
.results__title {
font-size: clamp(30px, 8.7vw, 44px);
line-height: 1.05;
}
.results__dots {
margin-top: 16px;
}
.results__icons {
position: static;
margin: 0 auto 36px;
width: min(420px, 100%);
display: grid;
grid-template-columns: repeat(4, 45px);
justify-content: center;
gap: 14px;
}
.results__icon {
position: relative;
top: auto;
right: auto;
bottom: auto;
left: auto;
opacity: 1;
transform: none;
}
.results.is-animation-ready.is-in-view .results__icon {
animation: resultsIconInMobile 0.62s cubic-bezier(0.21, 1, 0.31, 1) var(--results-icon-delay, 0s) forwards;
}
}
@media (max-width: 420px) {
.results {
padding: 62px 0 78px;
}
.results__icons {
width: min(320px, 100%);
grid-template-columns: repeat(3, 45px);
gap: 12px;
margin-bottom: 28px;
}
.results__slide {
min-height: 120px;
}
.results__title {
font-size: clamp(28px, 9vw, 38px);
letter-spacing: -0.01em;
}
}
@media (prefers-reduced-motion: reduce) {
.results.is-animation-ready .results__label {
opacity: 1;
transform: none;
animation: none !important;
will-change: auto;
}
.results.is-animation-ready .results__title {
opacity: 1;
transform: translateY(26px);
animation: none !important;
will-change: auto;
}
.results.is-animation-ready .results__icon {
opacity: 1;
transform: scale(1) translateY(16px);
animation: none !important;
will-change: auto;
}
}
@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
.results.is-animation-ready .results__icon {
transform: none;
}
}
.expertise {
position: relative;
padding: 44px 0 40px;
overflow: hidden;
background: #ffffff;
}
.expertise__container {
width: min(1420px, 100% - 40px);
margin-inline: auto;
}
.expertise__header {
display: grid;
grid-template-columns: minmax(0, 1fr) 448px;
gap: 80px;
align-items: start;
}
.expertise__label {
margin: 0 0 2px;
color: #6f6f73;
font-size: 16px;
font-weight: 600;
line-height: 1.2;
}
.expertise__title {
margin: 0;
color: #333333;
font-size: clamp(42px, 2.9vw, 48px);
font-weight: 600;
line-height: 1.03;
letter-spacing: -0.052em;
}
.expertise__title span {
color: #C2C2C2;
}
.expertise__text {
max-width: 448px;
margin: 22px 0 0;
color: #111111;
font-size: 18px;
font-weight: 400;
line-height: 1.55;
letter-spacing: 0.005em;
}
.expertise__tabs {
width: fit-content;
min-height: 39px;
display: flex;
align-items: center;
gap: 2px;
margin: 36px auto 0;
padding: 2px;
border-radius: 999px;
background: #f2f2f2;
box-shadow: inset 0 0 0 1px rgba(17, 17, 17, 0.02);
}
.expertise__tab {
min-height: 35px;
padding: 0 17px;
border: 0;
border-radius: 999px;
color: #a6a6a8;
background: transparent;
font: inherit;
font-size: 13px;
font-weight: 600;
line-height: 1;
white-space: nowrap;
cursor: pointer;
transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}
.expertise__tab.is-active {
color: #111111;
background: #ffffff;
box-shadow: 0 2px 7px rgba(17, 17, 17, 0.05);
}
@media (hover: hover) and (pointer: fine) {
.expertise__tab:hover {
color: #111111;
}
}
.expertise__cases {
position: relative;
width: 100vw;
margin-top: 50px;
margin-inline: calc(50% - 50vw);
overflow: visible;
}
.expertise__track {
display: flex;
align-items: stretch;
}
.expertise-card {
width: 300px;
min-height: 430px;
height: auto;
flex: 0 0 300px;
overflow: hidden;
border: 1px solid rgba(17, 17, 17, 0.16);
border-radius: 12px;
background: #ffffff;
}
.expertise-card__media {
height: 279px;
overflow: hidden;
background: #f2f2f2;
}
.expertise-card__media img {
width: 100%;
height: 100%;
object-fit: cover;
}
.expertise-card__body {
padding: 13px 10px 7px;
}
.expertise-card__title {
margin: 0;
color: #111111;
font-size: 24px;
font-weight: 800;
line-height: 1.15;
letter-spacing: -0.03em;
text-align: center;
}
.expertise-card__list {
display: grid;
gap: 7px;
margin: 11px 0 0;
padding: 0 0 0 2px;
color: #6f6f73;
font-size: 14px;
font-weight: 500;
line-height: 1.2;
list-style: none;
}
.expertise-card__list li {
position: relative;
padding-left: 19px;
}
.expertise-card__list li::before {
content: "";
position: absolute;
top: 0.5em;
left: 0;
width: 6px;
height: 6px;
border-radius: 50%;
background: #C7FF4F;
transform: translateY(-50%);
}
.expertise-card__tags {
display: flex;
align-items: center;
justify-content: center;
flex-wrap: nowrap;
gap: 9px;
margin: 16px 0 0;
padding: 0;
list-style: none;
}
.expertise-card__tags li {
min-height: 27px;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0 11px;
border: 1px solid rgba(17, 17, 17, 0.16);
border-radius: 999px;
color: #111111;
background: rgba(242, 242, 242, 0.55);
font-size: 12px;
font-weight: 500;
line-height: 1;
white-space: nowrap;
}
@media (max-width: 1120px) {
.expertise__header {
grid-template-columns: minmax(0, 1fr) 390px;
gap: 48px;
}
.expertise__track {
align-items: stretch;
}
}
@media (max-width: 760px) {
.expertise {
padding: 70px 0 72px;
}
.expertise__container {
width: min(100% - 32px, 620px);
}
.expertise__header {
display: block;
}
.expertise__title {
font-size: clamp(36px, 9vw, 46px);
}
.expertise__text {
max-width: 100%;
margin-top: 20px;
font-size: 16px;
line-height: 1.45;
}
.expertise__tabs {
width: 100%;
justify-content: flex-start;
margin-top: 28px;
overflow-x: auto;
scrollbar-width: none;
}
.expertise__tabs::-webkit-scrollbar {
display: none;
}
.expertise__tab {
padding-inline: 15px;
}
.expertise__cases {
margin-top: 32px;
overflow: visible;
}
.expertise__track {
align-items: stretch;
}
.expertise-card {
width: 286px;
flex-basis: 286px;
}
.expertise-card__media {
height: 266px;
}
.expertise-card__title {
font-size: 23px;
}
.expertise-card__list {
font-size: 13px;
}
.expertise-card__tags {
gap: 6px;
}
.expertise-card__tags li {
padding-inline: 9px;
}
}
@media (max-width: 420px) {
.expertise {
padding: 60px 0 64px;
}
.expertise__container {
width: calc(100% - 24px);
}
.expertise__label {
font-size: 15px;
}
.expertise__tabs {
min-height: 37px;
}
.expertise__tab {
min-height: 33px;
padding-inline: 13px;
font-size: 12px;
}
.expertise__track {
align-items: stretch;
}
.expertise-card {
width: 272px;
min-height: 420px;
flex-basis: 272px;
}
.expertise-card__media {
height: 254px;
}
.expertise-card__body {
padding-inline: 9px;
}
.expertise-card__tags {
flex-wrap: wrap;
}
}
.process {
position: relative;
padding: 44px 0 100px;
background: #ffffff;
}
.process__container {
width: min(1420px, 100% - 40px);
margin-inline: auto;
}
.process__heading {
max-width: 1100px;
}
.process__label {
margin: 0 0 2px;
color: #6f6f73;
font-size: 16px;
font-weight: 600;
line-height: 1.2;
}
.process__title {
margin: 0;
color: #333333;
font-size: clamp(42px, 2.9vw, 48px);
font-weight: 600;
line-height: 1.03;
letter-spacing: -0.052em;
}
.process__title span {
color: #C2C2C2;
}
.process__grid {
width: min(1192px, 100%);
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 24px;
margin: 58px auto 0;
}
.process-card {
min-height: 190px;
padding: 16px 28px 20px;
border: 1px solid rgba(17, 17, 17, 0.16);
border-radius: 30px;
background: #ffffff;
}
.process-card__number {
display: block;
margin: 0 0 18px;
color: #f4f3f0;
font-size: 60px;
font-weight: 900;
line-height: 0.96;
letter-spacing: -0.055em;
}
.process-card__title {
margin: 0;
color: #111111;
font-size: 20px;
font-weight: 800;
line-height: 1.2;
letter-spacing: -0.02em;
}
.process-card__text {
max-width: 310px;
margin: 12px 0 0;
color: #6f6f73;
font-size: 15px;
font-weight: 400;
line-height: 1.75;
letter-spacing: -0.01em;
}
@media (max-width: 1120px) {
.process__grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 760px) {
.process {
padding: 70px 0 72px;
}
.process__container {
width: min(100% - 32px, 620px);
}
.process__title {
font-size: clamp(36px, 9vw, 46px);
}
.process__grid {
grid-template-columns: 1fr;
gap: 16px;
margin-top: 32px;
}
.process-card {
min-height: 172px;
padding: 16px 24px 20px;
border-radius: 24px;
}
.process-card__number {
margin-bottom: 16px;
font-size: 54px;
}
.process-card__text {
max-width: 100%;
font-size: 14px;
line-height: 1.6;
}
}
@media (max-width: 420px) {
.process {
padding: 60px 0 64px;
}
.process__container {
width: calc(100% - 24px);
}
.process__label {
font-size: 15px;
}
.process-card {
min-height: 166px;
padding: 15px 20px 19px;
border-radius: 22px;
}
.process-card__number {
font-size: 50px;
}
.process-card__title {
font-size: 19px;
}
}
.technologies {
position: relative;
padding: 44px 0 66px;
overflow: hidden;
background: #ffffff;
}
.technologies__container {
width: min(1420px, 100% - 40px);
margin-inline: auto;
}
.technologies__label {
margin: 0 0 2px;
color: #6f6f73;
font-size: 16px;
font-weight: 600;
line-height: 1.2;
}
.technologies__title {
margin: 0;
color: #333333;
font-size: clamp(42px, 2.9vw, 48px);
font-weight: 600;
line-height: 1.03;
letter-spacing: -0.052em;
}
.technologies__title span {
color: #C2C2C2;
}
.technologies__marquee {
width: 100vw;
display: grid;
gap: 32px;
margin-top: 60px;
margin-inline: calc(50% - 50vw);
}
.technologies__row {
width: 100%;
overflow: hidden;
}
.technologies__track {
width: max-content;
display: flex;
align-items: center;
will-change: transform;
}
.technologies__track--left {
animation: technologies-marquee-left 38s linear infinite;
}
.technologies__track--right {
animation: technologies-marquee-right 42s linear infinite;
}
.technologies__row--top .technologies__track {
margin-left: -82px;
}
.technologies__row--bottom .technologies__track {
margin-left: 10px;
}
.technologies__group {
display: flex;
align-items: center;
gap: 41px;
padding-right: 41px;
flex: 0 0 auto;
}
@media (prefers-reduced-motion: reduce) {
.technologies__track {
animation: none;
}
}
.technology-item {
display: inline-flex;
align-items: center;
gap: 11px;
flex: 0 0 auto;
color: #111111;
font-size: 22px;
font-weight: 500;
line-height: 1;
letter-spacing: -0.03em;
white-space: nowrap;
}
.technology-item__icon {
width: 44px;
height: 44px;
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 44px;
border-radius: 7px;
background: #f2f2f2;
overflow: hidden;
}
.technology-item__icon img {
display: block;
width: 32px;
height: 32px;
object-fit: contain;
}
.technology-item__icon--wordpress {
background: #057da3;
}
.technology-item__icon--n8n {
background: #e83e73;
}
.technology-item__icon--bitrix {
background: #42b9ea;
}
.technology-item__icon--bitrix img {
width: 32px;
height: auto;
}
.technology-item__icon--react {
background: #1f1f1f;
}
.technology-item__icon--nuxt, .technology-item__icon--woo, .technology-item__icon--docker, .technology-item__icon--vue {
background: #f2f2f2;
}
.technology-item__icon--modx {
background: #f4f4f4;
}
.technology-item__icon--php {
background: #535f99;
}
.technology-item__icon--git {
background: #fb5036;
}
.technology-item__icon--mysql {
background: #ed8a00;
}
.technology-item__icon--tilda {
background: #ff5b3a;
}
@keyframes technologies-marquee-left {
0% {
transform: translate3d(0, 0, 0);
}
100% {
transform: translate3d(-50%, 0, 0);
}
}
@keyframes technologies-marquee-right {
0% {
transform: translate3d(-50%, 0, 0);
}
100% {
transform: translate3d(0, 0, 0);
}
}
@media (max-width: 760px) {
.technologies {
padding: 70px 0 72px;
}
.technologies__container {
width: min(100% - 32px, 620px);
}
.technologies__title {
font-size: clamp(36px, 9vw, 46px);
}
.technologies__marquee {
gap: 22px;
margin-top: 38px;
}
.technologies__group {
gap: 28px;
padding-right: 28px;
}
.technologies__row--top .technologies__track {
margin-left: -54px;
}
.technologies__row--bottom .technologies__track {
margin-left: 12px;
}
.technology-item {
gap: 9px;
font-size: 18px;
}
.technology-item__icon {
width: 38px;
height: 38px;
flex-basis: 38px;
border-radius: 7px;
}
.technology-item__icon img {
width: 28px;
height: 28px;
}
}
@media (max-width: 420px) {
.technologies {
padding: 60px 0 64px;
}
.technologies__container {
width: calc(100% - 24px);
}
.technologies__label {
font-size: 15px;
}
.technologies__marquee {
gap: 18px;
margin-top: 34px;
}
.technologies__group {
gap: 22px;
padding-right: 22px;
}
.technology-item {
font-size: 16px;
}
.technology-item__icon {
width: 34px;
height: 34px;
flex-basis: 34px;
}
.technology-item__icon img {
width: 25px;
height: 25px;
}
}
.turnkey {
position: relative;
padding: 40px 0 20px;
background: #ffffff;
}
.turnkey__container {
width: min(1194px, 100% - 40px);
margin-inline: auto;
}
.turnkey__card {
min-height: 590px;
display: grid;
grid-template-columns: minmax(0, 1fr) 520px;
gap: 84px;
padding: 48px 48px 50px;
border: 1px solid rgba(17, 17, 17, 0.16);
border-radius: 30px;
background: #ffffff;
}
.turnkey__content {
max-width: 475px;
}
.turnkey__label {
margin: 0 0 13px;
color: #929292;
font-size: 14px;
font-weight: 600;
line-height: 1.2;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.turnkey__title {
margin: 0;
color: #111111;
font-size: clamp(34px, 2.5vw, 38px);
font-weight: 700;
line-height: 1.02;
letter-spacing: -0.035em;
}
.turnkey__text {
margin: 27px 0 0;
color: #6f6f73;
font-size: 16px;
font-weight: 400;
line-height: 1.45;
letter-spacing: -0.01em;
}
.turnkey__button {
min-width: 244px;
min-height: 54px;
margin-top: 34px;
padding-inline: 30px;
font-size: 16px;
}
.turnkey__list {
align-self: start;
display: grid;
gap: 14px;
margin: 0;
padding: 0;
color: #111111;
font-size: 16px;
font-weight: 500;
line-height: 1.38;
letter-spacing: -0.01em;
list-style: none;
}
.turnkey__list li {
position: relative;
min-height: 20px;
padding-left: 32px;
}
.turnkey__list li::before {
content: "";
position: absolute;
top: 0.64em;
left: 0;
width: 20px;
height: 20px;
border-radius: 50%;
background: #C7FF4F;
transform: translateY(-50%);
}
@media (max-width: 1120px) {
.turnkey__card {
grid-template-columns: minmax(0, 1fr) minmax(430px, 0.9fr);
gap: 48px;
}
}
@media (max-width: 760px) {
.turnkey {
padding: 70px 0 72px;
}
.turnkey__container {
width: min(100% - 32px, 620px);
}
.turnkey__card {
min-height: auto;
grid-template-columns: 1fr;
gap: 36px;
padding: 34px 30px 36px;
border-radius: 26px;
}
.turnkey__content {
max-width: 100%;
}
.turnkey__title {
font-size: clamp(32px, 8vw, 42px);
}
.turnkey__text {
margin-top: 20px;
font-size: 15px;
}
.turnkey__button {
min-width: 220px;
margin-top: 28px;
}
.turnkey__list {
gap: 13px;
font-size: 15px;
line-height: 1.45;
}
}
@media (max-width: 420px) {
.turnkey {
padding: 60px 0 64px;
}
.turnkey__container {
width: calc(100% - 24px);
}
.turnkey__card {
padding: 28px 20px 30px;
border-radius: 22px;
}
.turnkey__label {
font-size: 13px;
}
.turnkey__title {
font-size: clamp(29px, 10vw, 36px);
}
.turnkey__button {
width: 100%;
min-width: 0;
}
.turnkey__list li {
padding-left: 28px;
}
.turnkey__list li::before {
width: 18px;
height: 18px;
}
}
.clients {
position: relative;
padding: 44px 0 88px;
overflow: hidden;
background: #ffffff;
}
.clients__container {
width: min(1420px, 100% - 40px);
margin-inline: auto;
}
.clients__label {
margin: 0 0 2px;
color: #6f6f73;
font-size: 16px;
font-weight: 600;
line-height: 1.2;
}
.clients__title {
margin: 0;
color: #333333;
font-size: clamp(42px, 2.9vw, 48px);
font-weight: 600;
line-height: 1.03;
letter-spacing: -0.052em;
}
.clients__title span {
color: #C2C2C2;
}
.clients__marquee {
width: 100vw;
display: grid;
gap: 10px;
margin-top: 35px;
margin-inline: calc(50% - 50vw);
}
.clients__row {
width: 100%;
overflow: hidden;
}
.clients__track {
width: max-content;
display: flex;
will-change: transform;
}
.clients__track--left {
animation: clients-marquee-left 48s linear infinite;
}
.clients__track--right {
animation: clients-marquee-right 52s linear infinite;
}
.clients__row--top .clients__track {
margin-left: 8px;
}
.clients__row--bottom .clients__track {
margin-left: -160px;
}
.clients__group {
display: flex;
gap: 10px;
padding-right: 10px;
}
.review-card {
width: 382px;
min-height: 206px;
flex: 0 0 382px;
display: flex;
flex-direction: column;
justify-content: space-between;
padding: 19px 20px 20px;
border: 1px solid rgba(17, 17, 17, 0.16);
border-radius: 30px;
background: #ffffff;
}
.review-card__text {
max-width: 335px;
margin: 0;
color: #111111;
font-size: 16px;
font-weight: 500;
line-height: 1.53;
letter-spacing: -0.01em;
}
.review-card__author {
display: flex;
align-items: center;
gap: 13px;
margin-top: 24px;
}
.review-card__avatar {
width: 48px;
height: 48px;
flex: 0 0 48px;
border: 1px solid rgba(17, 17, 17, 0.14);
border-radius: 50%;
background: #faf9f6;
}
.review-card__name {
margin: 0;
color: #111111;
font-size: 18px;
font-weight: 600;
line-height: 1.15;
letter-spacing: -0.02em;
}
.review-card__position {
margin: 4px 0 0;
color: #888888;
font-size: 15px;
font-weight: 400;
line-height: 1.2;
letter-spacing: -0.01em;
}
@keyframes clients-marquee-left {
0% {
transform: translate3d(0, 0, 0);
}
100% {
transform: translate3d(-50%, 0, 0);
}
}
@keyframes clients-marquee-right {
0% {
transform: translate3d(-50%, 0, 0);
}
100% {
transform: translate3d(0, 0, 0);
}
}
@media (max-width: 760px) {
.clients {
padding: 70px 0 72px;
}
.clients__container {
width: min(100% - 32px, 620px);
}
.clients__title {
font-size: clamp(36px, 9vw, 46px);
}
.clients__marquee {
gap: 12px;
margin-top: 34px;
}
.clients__group {
gap: 12px;
padding-right: 12px;
}
.clients__row--top .clients__track {
margin-left: -70px;
}
.clients__row--bottom .clients__track {
margin-left: -190px;
}
.review-card {
width: 340px;
min-height: 196px;
flex-basis: 340px;
padding: 18px 18px 19px;
border-radius: 26px;
}
.review-card__text {
font-size: 15px;
line-height: 1.48;
}
.review-card__name {
font-size: 17px;
}
.review-card__position {
font-size: 14px;
}
}
@media (max-width: 420px) {
.clients {
padding: 60px 0 64px;
}
.clients__container {
width: calc(100% - 24px);
}
.clients__label {
font-size: 15px;
}
.clients__row--top .clients__track {
margin-left: -90px;
}
.clients__row--bottom .clients__track {
margin-left: -220px;
}
.review-card {
width: 300px;
min-height: 188px;
flex-basis: 300px;
padding: 17px 17px 18px;
border-radius: 24px;
}
.review-card__text {
font-size: 14px;
}
.review-card__avatar {
width: 44px;
height: 44px;
flex-basis: 44px;
}
}
.values {
padding: 46px 0 82px;
background: #ffffff;
}
.values__container {
width: min(1420px, 100% - 40px);
margin-inline: auto;
}
.values__label {
margin: 0 0 2px;
color: #6f6f73;
font-size: 16px;
font-weight: 600;
line-height: 1.2;
}
.values__title {
margin: 0;
color: #333333;
font-size: clamp(42px, 2.9vw, 48px);
font-weight: 600;
line-height: 1.03;
letter-spacing: -0.052em;
}
.values__title span {
color: #C2C2C2;
}
.values__grid {
width: min(100%, 966px);
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 32px;
margin: 58px auto 0;
}
.value-card {
min-width: 0;
text-align: center;
}
.value-card__media {
height: 216px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 8px;
background: #f2f2f2;
}
.value-card__media img {
width: 64px;
height: 64px;
display: block;
opacity: 0.94;
}
.value-card__title {
margin: 11px 0 0;
color: #111111;
font-size: 16px;
font-weight: 800;
line-height: 1.18;
letter-spacing: -0.015em;
}
.value-card__text {
max-width: 276px;
margin: 8px auto 0;
color: #888888;
font-size: 12px;
font-weight: 400;
line-height: 1.28;
letter-spacing: -0.01em;
}
@media (max-width: 1120px) {
.values__grid {
gap: 24px;
}
.value-card__media {
height: 200px;
}
}
@media (max-width: 760px) {
.values {
padding: 70px 0 72px;
}
.values__container {
width: min(100% - 32px, 620px);
}
.values__title {
font-size: clamp(36px, 9vw, 46px);
}
.values__grid {
grid-template-columns: 1fr;
gap: 28px;
margin-top: 34px;
}
.value-card__media {
height: 220px;
}
.value-card__title {
margin-top: 12px;
font-size: 17px;
}
.value-card__text {
max-width: 330px;
font-size: 14px;
line-height: 1.35;
}
}
@media (max-width: 420px) {
.values {
padding: 60px 0 64px;
}
.values__container {
width: calc(100% - 24px);
}
.values__label {
font-size: 15px;
}
.values__grid {
gap: 24px;
}
.value-card__media {
height: 196px;
}
}
.faq {
padding: 46px 0 83px;
background: #ffffff;
}
.faq__container {
width: min(1420px, 100% - 40px);
margin-inline: auto;
}
.faq__label {
margin: 0 0 2px;
color: #6f6f73;
font-size: 16px;
font-weight: 600;
line-height: 1.2;
}
.faq__title {
margin: 0;
color: #333333;
font-size: clamp(42px, 2.9vw, 48px);
font-weight: 600;
line-height: 1.03;
letter-spacing: -0.052em;
}
.faq__title span {
color: #C2C2C2;
}
.faq__list {
width: min(100%, 1256px);
margin: 58px auto 0;
overflow: hidden;
border: 1px solid rgba(17, 17, 17, 0.16);
border-radius: 20px;
background: #ffffff;
}
.faq-item + .faq-item {
border-top: 1px solid rgba(17, 17, 17, 0.14);
}
.faq-item__button {
width: 100%;
min-height: 69px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
padding: 18px 24px 18px 20px;
border: 0;
background: transparent;
color: #111111;
font: inherit;
font-size: 16px;
font-weight: 400;
line-height: 1.35;
letter-spacing: -0.01em;
text-align: left;
cursor: pointer;
transition: background 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
.faq-item__button:hover {
background: rgba(17, 17, 17, 0.025);
}
}
.faq-item__button[aria-expanded=true] .faq-item__icon {
transform: rotate(45deg);
}
.faq-item__icon {
position: relative;
width: 18px;
height: 18px;
flex: 0 0 18px;
transition: transform 0.2s ease;
}
.faq-item__icon::before, .faq-item__icon::after {
content: "";
position: absolute;
left: 50%;
top: 50%;
width: 11px;
height: 1px;
border-radius: 999px;
background: #111111;
transform: translate(-50%, -50%);
}
.faq-item__icon::after {
width: 1px;
height: 11px;
}
.faq-item__panel {
padding: 0 68px 22px 20px;
color: #888888;
font-size: 15px;
font-weight: 400;
line-height: 1.48;
letter-spacing: -0.01em;
}
.faq-item__panel p {
max-width: 820px;
margin: 0;
}
@media (max-width: 760px) {
.faq {
padding: 70px 0 72px;
}
.faq__container {
width: min(100% - 32px, 620px);
}
.faq__title {
font-size: clamp(36px, 9vw, 46px);
}
.faq__list {
margin-top: 34px;
border-radius: 18px;
}
.faq-item__button {
min-height: 64px;
padding: 17px 18px;
font-size: 15px;
}
.faq-item__panel {
padding: 0 18px 18px;
font-size: 14px;
}
}
@media (max-width: 420px) {
.faq {
padding: 60px 0 64px;
}
.faq__container {
width: calc(100% - 24px);
}
.faq__label {
font-size: 15px;
}
.faq-item__button {
gap: 16px;
min-height: 60px;
padding: 15px 16px;
}
.faq-item__panel {
padding: 0 16px 17px;
}
}
.contact {
padding: 46px 0 88px;
background: #ffffff;
}
.contact__container {
width: min(1420px, 100% - 40px);
margin-inline: auto;
display: grid;
grid-template-columns: minmax(300px, 470px) minmax(620px, 1fr);
gap: clamp(48px, 6.5vw, 150px);
align-items: start;
}
.contact__content {
padding-top: 0;
}
.contact__label {
margin: 0 0 8px;
color: #6f6f73;
font-size: 16px;
font-weight: 600;
line-height: 1.2;
}
.contact__title {
margin: 0;
color: #333333;
font-size: clamp(42px, 2.9vw, 48px);
font-weight: 700;
line-height: 1.03;
letter-spacing: -0.052em;
}
.contact__title span {
color: #C2C2C2;
}
.contact__text {
max-width: 440px;
margin: 28px 0 0;
color: #888888;
font-size: 19px;
font-weight: 400;
line-height: 1.42;
letter-spacing: -0.022em;
}
.contact-sentence {
width: 100%;
margin: 0;
}
.contact-sentence__text {
margin: 0;
color: #111111;
font-size: clamp(32px, 2.33vw, 40px);
font-weight: 400;
line-height: 1.19;
letter-spacing: -0.055em;
}
.contact-sentence__actions {
display: flex;
align-items: center;
gap: 18px;
margin-top: 28px;
}
.contact-sentence__submit {
min-width: 184px;
}
.contact-sentence__status {
min-height: 22px;
margin: 0;
color: #888888;
font-size: 14px;
line-height: 1.35;
letter-spacing: -0.01em;
}
.contact-sentence__status.is-success {
color: #333333;
}
.contact-field {
display: inline;
position: relative;
min-width: 1.5em;
padding: 0 0.04em;
border: 0;
border-bottom: 1px solid currentColor;
border-radius: 0;
background: transparent;
color: #C2C2C2;
outline: none;
cursor: text;
transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.contact-field[contenteditable=true], .contact-field:focus-visible {
color: #111111;
border-color: #111111;
background: rgba(17, 17, 17, 0.035);
}
.contact-field--selector {
cursor: pointer;
user-select: none;
}
.contact-field.is-filled {
color: #111111;
}
.contact-field.is-error {
color: #d73a31;
border-color: #d73a31;
background: rgba(215, 58, 49, 0.07);
}
.contact-dropdown {
position: absolute;
z-index: 80;
min-width: 220px;
max-width: min(320px, 100vw - 24px);
margin: 0;
padding: 8px;
list-style: none;
border: 1px solid rgba(17, 17, 17, 0.12);
border-radius: 16px;
background: #ffffff;
box-shadow: 0 18px 45px rgba(17, 17, 17, 0.12);
}
.contact-dropdown li {
padding: 11px 12px;
border-radius: 10px;
color: #111111;
font-size: 15px;
font-weight: 500;
line-height: 1.2;
cursor: pointer;
transition: background 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
.contact-dropdown li:hover {
background: rgba(17, 17, 17, 0.055);
}
}
.contact-date-input {
position: fixed;
left: -1000px;
top: -1000px;
width: 24px;
height: 24px;
opacity: 0;
pointer-events: auto;
}
@media (max-width: 1120px) {
.contact__container {
grid-template-columns: minmax(280px, 390px) minmax(520px, 1fr);
gap: 64px;
}
.contact-sentence__text {
font-size: clamp(30px, 3.1vw, 36px);
}
}
@media (max-width: 760px) {
.contact {
padding: 70px 0 72px;
}
.contact__container {
width: min(100% - 32px, 620px);
grid-template-columns: 1fr;
gap: 34px;
}
.contact__title {
font-size: clamp(36px, 9vw, 46px);
}
.contact__text {
margin-top: 20px;
font-size: 17px;
}
.contact-sentence__text {
font-size: clamp(26px, 7vw, 36px);
line-height: 1.22;
}
.contact-sentence__actions {
flex-direction: column;
align-items: flex-start;
gap: 12px;
}
}
@media (max-width: 420px) {
.contact {
padding: 60px 0 64px;
}
.contact__container {
width: calc(100% - 24px);
}
.contact__label {
font-size: 15px;
}
.contact-sentence__text {
font-size: 25px;
}
.contact-dropdown {
min-width: 200px;
}
}
.site-footer {
padding: 82px 0 50px;
background: #ffffff;
}
.site-footer__container {
width: min(1192px, 100% - 40px);
margin-inline: auto;
}
.site-footer__top {
display: grid;
grid-template-columns: minmax(320px, 1fr) 180px 262px;
gap: clamp(70px, 6.8vw, 130px);
align-items: start;
padding-bottom: 66px;
border-bottom: 1px solid rgba(17, 17, 17, 0.16);
}
.site-footer__brand {
display: flex;
flex-direction: column;
align-items: flex-start;
}
.site-footer__logo {
display: inline-flex;
width: 190px;
transition: opacity 0.2s ease;
}
.site-footer__logo img {
width: 190px;
height: auto;
}
@media (hover: hover) and (pointer: fine) {
.site-footer__logo:hover {
opacity: 0.72;
}
}
.site-footer__description {
max-width: 330px;
margin: 29px 0 0;
color: #888888;
font-size: 18px;
font-weight: 400;
line-height: 1.55;
letter-spacing: -0.022em;
}
.site-footer__title {
margin: 3px 0 22px;
color: #111111;
font-size: 14px;
font-weight: 500;
line-height: 1.2;
text-transform: uppercase;
letter-spacing: -0.01em;
}
.site-footer__list {
display: flex;
flex-direction: column;
gap: 14px;
margin: 0;
padding: 0;
list-style: none;
color: #888888;
font-size: 17px;
font-weight: 400;
line-height: 1.35;
letter-spacing: -0.018em;
}
.site-footer__list a {
transition: color 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
.site-footer__list a:hover {
color: #111111;
}
}
.site-footer__bottom {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
padding-top: 33px;
color: #888888;
font-size: 15px;
font-weight: 400;
line-height: 1.35;
letter-spacing: -0.02em;
}
.site-footer__bottom p {
margin: 0;
}
.site-footer__bottom a {
transition: color 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
.site-footer__bottom a:hover {
color: #111111;
}
}
@media (max-width: 1120px) {
.site-footer__top {
grid-template-columns: minmax(280px, 1fr) 160px 240px;
gap: 54px;
}
}
@media (max-width: 760px) {
.site-footer {
padding: 64px 0 40px;
}
.site-footer__container {
width: min(100% - 32px, 620px);
}
.site-footer__top {
grid-template-columns: 1fr 1fr;
gap: 40px 32px;
padding-bottom: 42px;
}
.site-footer__brand {
grid-column: 1/-1;
}
.site-footer__description {
margin-top: 22px;
font-size: 17px;
}
.site-footer__bottom {
align-items: flex-start;
flex-direction: column;
gap: 12px;
padding-top: 26px;
}
}
@media (max-width: 520px) {
.site-footer {
padding: 52px 0 34px;
}
.site-footer__container {
width: calc(100% - 24px);
}
.site-footer__top {
grid-template-columns: 1fr;
gap: 34px;
}
.site-footer__logo, .site-footer__logo img {
width: 168px;
}
.site-footer__title {
margin-bottom: 16px;
}
.site-footer__list {
gap: 12px;
font-size: 16px;
}
.site-footer__bottom {
font-size: 14px;
}
}