PageSourceSearch

https://tolkit.top/it-outsoursing

html tolkit.top collected 2026-10-05 18:49:17 UTC 102,979 bytes, 806 lines download raw bytes

1<!doctype html>
2<html lang="ru">
3<head>
4  <meta charset="utf-8">
5  <meta name="viewport" content="width=device-width,initial-scale=1">
6  <link rel="icon" href="assets/img/favicon.ico">
7  <title>Техническая поддержка инфраструктуры</title>
8  <meta name="description" content="Поддержка ит-инфраструктуры и сопровождение информационных систем: поддержка 1С, торгового оборудования, сетей, интеграций и пользователей. Реакция до 15 минут.">
9  <meta property="og:type" content="website">
10  <meta property="og:locale" content="ru_RU">
11  <meta property="og:site_name" content="Толк Ай Ти">
12  <meta property="og:title" content="Техническая поддержка инфраструктуры">
13  <meta property="og:description" content="Поддержка ит-инфраструктуры и сопровождение информационных систем: поддержка 1С, торгового оборудования, сетей, интеграций и пользователей. Реакция до 15 минут.">
14  <meta property="og:image" content="https://tolkit.top/assets/img/workspace/anatoly_seregin.jpg">
15  <meta property="og:image:alt" content="Анатолий Серёгин, основатель Толк Ай Ти">
16  <meta name="twitter:card" content="summary_large_image">
17  <meta name="twitter:title" content="Техническая поддержка инфраструктуры">
18  <meta name="twitter:description" content="Поддержка ит-инфраструктуры и сопровождение информационных систем: поддержка 1С, торгового оборудования, сетей, интеграций и пользователей. Реакция до 15 минут.">
19  <meta name="twitter:image" content="https://tolkit.top/assets/img/workspace/anatoly_seregin.jpg">
20  <meta name="twitter:image:alt" content="Анатолий Серёгин, основатель Толк Ай Ти">
21  
22  
22<script type="application/ld+json">
23  {
24    "@context": "https://schema.org",
25    "@graph": [
26      {
27        "@type": "Organization",
28        "@id": "https://tolkit.top/#organization",
29        "name": "Толк Ай Ти",
30        "legalName": "ООО «Толк Ай Ти»",
31        "url": "https://tolkit.top/",
32        "logo": {
33          "@type": "ImageObject",
34          "url": "https://tolkit.top/assets/img/logo_sm.png",
35          "width": 42,
36          "height": 42
37        },
38        "founder": { "@id": "https://tolkit.top/#anatoly-seregin" },
39        "sameAs": ["https://t.me/anatoly_tolkit"]
40      },
41      {
42        "@type": "Person",
43        "@id": "https://tolkit.top/#anatoly-seregin",
44        "name": "Анатолий Серёгин",
45        "jobTitle": "Основатель и внешний ИТ-директор",
46        "worksFor": { "@id": "https://tolkit.top/#organization" },
47        "sameAs": ["https://t.me/anatoly_tolkit"]
48      },
49      {
50        "@type": "Service",
51        "name": "Техническая поддержка инфраструктуры",
52        "serviceType": "Техническая поддержка инфраструктуры",
53        "description": "Поддержка ит-инфраструктуры и сопровождение информационных систем: поддержка 1С, торгового оборудования, сетей, интеграций и пользователей. Реакция до 15 минут.",
54        "provider": { "@id": "https://tolkit.top/#organization" },
55        "areaServed": { "@type": "Country", "name": "Россия" },
56        "audience": { "@type": "BusinessAudience", "audienceType": "Растущие компании" },
57        "offers": {
58          "@type": "Offer",
59          "priceSpecification": {
60            "@type": "UnitPriceSpecification",
61            "minPrice": 30000,
62            "priceCurrency": "RUB",
63            "unitText": "MONTH"
64          }
65        }
66      },
67      {
68        "@type": "FAQPage",
69        "@id": "https://tolkit.top/#webpage",
70        "url": "https://tolkit.top/",
71        "mainEntity": [
72          {
73            "@type": "Question",
74            "name": "Можно ли вам доверить важные ИТ-системы?",
75            "acceptedAnswer": {
76              "@type": "Answer",
77              "text": "Лучший ответ — клиенты, которые работают с нами до 14 лет"
78            }
79          },
80          {
81            "@type": "Question",
82            "name": "Что будет, если утром не откроется 1С? 😤",
83            "acceptedAnswer": {
84              "@type": "Answer",
85              "text": "Увидим проблему раньше сотрудников. Восстановим работу и уберём причину повторения. Расскажем, что случилось на понятном языке."
86            }
87          },
88          {
89            "@type": "Question",
90            "name": "Что вы сделаете, чтобы мы не платили дважды за одну проблему?",
91            "acceptedAnswer": {
92              "@type": "Answer",
93              "text": "Найдём первопричину и изменим систему. Закрытая заявка — ещё не результат."
94            }
95          },
96          {
97            "@type": "Question",
98            "name": "Мы же будем зависеть от вас?",
99            "acceptedAnswer": {
100              "@type": "Answer",
101              "text": "У нас есть контракты по 14 лет. Клиенты с нами не потому что боятся, а потому что так удобно."
102            }
103          },
104          {
105            "@type": "Question",
106            "name": "Мне придётся разбираться, кому писать по каждой ИТ-задаче?",
107            "acceptedAnswer": {
108              "@type": "Answer",
109              "text": "Нет. Вы пишете нам в вашем Битрикс24 или телеграм-чате, а мы направляем запрос самому экспертному человеку."
110            }
111          },
112          {
113            "@type": "Question",
114            "name": "Кто лично отвечает за результат и видит картину целиком?",
115            "acceptedAnswer": {
116              "@type": "Answer",
117              "text": "Анатолий участвует в каждом проекте как внешний ИТ-директор и отвечает за общую цель"
118            }
119          },
120          {
121            "@type": "Question",
122            "name": "Как я пойму, что всё действительно под контролем?",
123            "acceptedAnswer": {
124              "@type": "Answer",
125              "text": "Каждый месяц покажем состояние сервисов, риски и план улучшений — на языке бизнеса"
126            }
127          },
128          {
129            "@type": "Question",
130            "name": "Почему вы не считаете количество компьютеров?",
131            "acceptedAnswer": {
132              "@type": "Answer",
133              "text": "Десять сложных мест могут требовать больше внимания, чем сто простых. Считаем нагрузку и ценность"
134            }
135          }
136        ],
137        "name": "Техническая поддержка инфраструктуры",
138        "description": "Поддержка ит-инфраструктуры и сопровождение информационных систем: поддержка 1С, торгового оборудования, сетей, интеграций и пользователей. Реакция до 15 минут.",
139        "inLanguage": "ru-RU",
140        "about": { "@type": "Service", "name": "Техническая поддержка инфраструктуры" },
141        "publisher": { "@id": "https://tolkit.top/#organization" }
142      }
143    ]
144  }
145  </script>
145
146  <style>
147    :root{--paper:#fff;--ink:#292c29;--muted:#000;--line:#dce7e8;--accent:#c7f36a;--accent-ink:#31752d;--sky:#8dd7f0;--sky-soft:#eaf7fb;--sky-line:#c9e8f1;--pad:clamp(22px,4.2vw,68px)}
148    *{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px;background:var(--paper)}body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit}.shell{width:min(1600px,100%);margin:auto;padding-left:var(--pad);padding-right:var(--pad)}
149    .hero{min-height:calc(100svh - 30px);padding-top:100px;display:grid;grid-template-rows:1fr auto;background:linear-gradient(to right,transparent calc(25% - .5px),rgba(21,21,21,.055) 25%,transparent calc(25% + .5px)),linear-gradient(to right,transparent calc(50% - .5px),rgba(21,21,21,.055) 50%,transparent calc(50% + .5px)),linear-gradient(to right,transparent calc(75% - .5px),rgba(21,21,21,.055) 75%,transparent calc(75% + .5px))}.nav{position:fixed;z-index:100;top:0;left:50%;width:min(1600px,100%);min-height:100px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--ink);background:rgba(255,255,255,.94);backdrop-filter:blur(12px);transform:translateX(-50%)}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:19px;letter-spacing:-.03em;text-decoration:none;white-space:nowrap}.dot{width:17px;height:17px;border-radius:50%;background:var(--accent);flex:none}.nav nav{display:flex;align-items:center;gap:clamp(22px,3vw,52px)}.nav nav a,.nav nav button.cta{font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;text-decoration:none}.nav .cta{padding-bottom:6px;border-bottom:2px solid var(--accent)}
150    .hero-body{padding:clamp(48px,7vh,100px) 0;align-content:space-between;gap:clamp(64px,10vh,130px)}.eyebrow,.index{margin:0 0 24px;color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}h1{max-width:1320px;margin:0;font-size:clamp(56px,7.7vw,123px);line-height:.89;letter-spacing:-.075em;font-weight:800}h1 em,h2 em{color:var(--accent);font-style:normal}.hero-lower{display:grid;grid-template-columns:2fr 1fr;gap:clamp(50px,7vw,140px);align-items:end}.lead{max-width:850px;margin:0;font-size:clamp(19px,1.9vw,28px);line-height:1.22;letter-spacing:-.03em}.action{display:flex;align-items:center;gap:24px;margin-top:18px}.button{border-radius:14px;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:62px;padding:0 30px;background:var(--ink);color:var(--paper);text-decoration:none;font-size:14px;font-weight:800;transition:.2s}.button:hover{background:var(--accent);transform:translateY(-2px)}.button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.note,.muted{color:var(--muted);line-height:1.45}.side-note{position:relative;margin:0;padding:clamp(28px,3vw,42px);border:0;border-radius:48px 24px 54px 28px/30px 50px 28px 46px;background:#ffd5e5;color:var(--ink);font-size:clamp(18px,1.45vw,23px);font-weight:700;line-height:1.38;letter-spacing:-.02em;box-shadow:12px 12px 0 var(--accent);transform:rotate(1.4deg)}.side-note:before{content:"";position:absolute;top:22px;right:24px;width:14px;height:14px;border-radius:50%;background:var(--sky)}.metrics{min-height:130px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}.metrics>div{padding:24px 24px 20px 0;display:flex;align-items:baseline;gap:13px}.metrics>div+div{border-left:1px solid var(--line);padding-left:28px}.metrics strong{font-size:clamp(32px,3vw,48px);letter-spacing:-.06em;white-space:nowrap}.metrics span{max-width:130px;color:var(--muted);font-size:14px;line-height:1.3;letter-spacing:.06em;text-transform:uppercase}
151    .section{padding-top:clamp(90px,12vw,180px);padding-bottom:clamp(90px,12vw,180px)}.section-head{display:grid;grid-template-columns:1fr 3fr;gap:30px;margin-bottom:clamp(60px,8vw,90px)}h2{margin:0;font-size:clamp(48px,6.6vw,106px);line-height:.92;letter-spacing:-.065em;font-weight:800}.grid3{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}.grid3 article{min-height:340px;padding:26px 34px 34px 0;border-bottom:1px solid var(--line)}.grid3 article:not(:nth-child(3n+1)){border-left:1px solid var(--line);padding-left:34px}.grid3 article>span{color:var(--accent);font-size:12px;font-weight:800}h3{margin:70px 0 18px;font-size:clamp(25px,2.2vw,36px);line-height:1.05;letter-spacing:-.04em}.grid3 p,.process p{margin:0;max-width:370px;color:var(--muted);font-size:16px;line-height:1.55}
152    .dark{background:var(--ink);color:var(--paper)}.outcome{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #494641;border-bottom:1px solid #494641}.outcome>div{padding:40px 50px 70px 0}.outcome .after{border-left:1px solid #494641;padding-left:50px}.outcome span{color:#9d978d;font-size:12px;font-weight:800;text-transform:uppercase}.outcome h2{margin:62px 0 28px;font-size:clamp(36px,4vw,64px)}.outcome p{max-width:620px;color:#aaa49a;font-size:17px;line-height:1.55}.value{display:grid;grid-template-columns:1fr 2fr;gap:30px;align-items:center;padding-top:60px}.value strong{color:var(--accent);font-size:clamp(66px,10vw,160px);letter-spacing:-.08em}.value p{max-width:600px;font-size:clamp(22px,2vw,31px);line-height:1.3}
153    .relationships{border-top:1px solid var(--ink)}.relationships article{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,2fr);gap:clamp(35px,6vw,100px);padding:clamp(34px,4vw,58px) 0;border-bottom:1px solid var(--line)}.relationship-meta{display:grid;align-content:start;gap:9px}.relationship-meta span{color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.relationship-meta strong{color:var(--accent-ink);font-size:clamp(44px,5vw,76px);line-height:.9;letter-spacing:-.06em}.relationship-meta small{color:var(--muted);font-size:13px}.relationships article>p{max-width:920px;margin:0;font-size:clamp(18px,1.6vw,24px);line-height:1.5;letter-spacing:-.02em}.warm{background:#e5dfd3}.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,140px)}.about-copy{padding-top:42px}.big{margin:0 0 36px;font-size:clamp(24px,2.5vw,40px);line-height:1.26;letter-spacing:-.035em}.about-copy>p:not(.big){color:var(--muted);font-size:17px;line-height:1.6}.about blockquote{margin:70px 0 0;padding:24px 0 0;border-top:3px solid var(--accent);font-size:24px;line-height:1.35;font-weight:800}
154    .process{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}.process article{padding:32px 34px 45px 0}.process article+article{border-left:1px solid var(--line);padding-left:34px}.process strong{color:var(--accent);font-size:clamp(38px,4vw,65px);letter-spacing:-.06em}.industries{margin:80px 0 0;max-width:1000px;padding-top:28px;border-top:1px solid;font-size:clamp(23px,2.5vw,39px);line-height:1.3}
154.reviews{display:grid;grid-template-columns:1fr 1fr}.reviews blockquote{margin:0;min-height:330px;padding:40px 50px 60px 0;border-bottom:1px solid #494641}.reviews blockquote:nth-child(even){border-left:1px solid #494641;padding-left:50px}.reviews p{margin:0 0 50px;font-size:clamp(23px,2.6vw,40px);line-height:1.25}.reviews cite{color:#aaa49a;font-style:normal}.price{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,140px)}.price-value{margin:0 0 70px;color:var(--accent);font-size:clamp(56px,7vw,105px);line-height:.9;font-weight:800;letter-spacing:-.07em}.price-value span{display:block;margin-top:18px;color:var(--muted);font-size:17px;letter-spacing:0}
155    .contact{background:var(--accent);padding-top:clamp(90px,12vw,180px)}.contact .eyebrow{color:var(--ink)}.contact-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:60px;align-items:end;padding-bottom:clamp(90px,10vw,170px)}.contact-copy>p:first-child{margin:0 0 40px;font-size:20px;line-height:1.5}.light{background:var(--paper);color:var(--ink)}.light:hover{background:var(--ink);color:var(--paper)}footer{min-height:120px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;align-items:center;border-top:1px solid;font-size:12px}footer p:last-child{text-align:right}
156    .contact{background:#f8fcfd}.final-contact{padding-bottom:clamp(80px,10vw,140px)}.final-contact h2{margin-bottom:clamp(54px,7vw,90px)}.final-contact .bubble{border-radius:34px;transform:none}.final-contact .dialogue{align-items:stretch}.final-contact .bubble{display:flex;flex-direction:column;justify-content:center}.final-contact .bubble.question{background:var(--accent)}.final-contact .bubble.question:after{border-color:transparent transparent transparent var(--accent)}.final-contact .bubble.answer{background:var(--sky-soft)}.final-contact .bubble.answer:after{border-color:transparent var(--sky-soft) transparent transparent}
157    .partnership{background:#fff;border-top:1px solid var(--line);padding-top:clamp(48px,6vw,80px);padding-bottom:clamp(48px,6vw,80px)}.partnership-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(36px,6vw,96px);align-items:start}.partnership h2{font-size:clamp(30px,3.3vw,48px);line-height:1.08;letter-spacing:-.045em}.partnership .index{color:#646b67}.partnership-copy{margin:0 0 24px;font-size:clamp(18px,1.5vw,21px);line-height:1.5;letter-spacing:-.015em}.partnership-services{list-style:none;margin:0 0 28px;padding:0;border-top:1px solid var(--line)}.partnership-services li{padding:13px 0;border-bottom:1px solid var(--line);color:#535b56;font-size:16px;line-height:1.5}.partnership button.button{min-height:52px;background:transparent;color:var(--ink);border:1px solid #a4ada7}.partnership .button:hover{background:#f3f6f4;border-color:var(--ink);transform:none}@media(max-width:700px){.partnership-layout{grid-template-columns:1fr}.partnership .button{width:100%}}
158    .form-call{margin:0 0 4px;padding:10px 0px;border-bottom:1px solid rgba(41,44,41,.16);font-size:16px;line-height:1.5;letter-spacing:0;color:var(--ink)}.form-call a{white-space:nowrap;font-weight:800;text-decoration:underline;text-underline-offset:3px}.form-call span{display:block;margin-top:6px;color:var(--muted);font-size:14px}
159    .question-form{display:grid;gap:17px}.question-form label{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
160    .question-form textarea,.question-form input{width:100%;padding:14px 0;border:0;border-bottom:1px solid rgba(41,44,41,.25);border-radius:0;background:transparent;color:var(--ink);font:inherit;font-size:17px;line-height:1.4;outline:0}
161    .question-form textarea{min-height:100px;resize:vertical}.question-form textarea:focus,.question-form input:focus{border-color:var(--accent-ink)}
162    .question-form button{min-height:62px;margin-top:4px;padding:0 22px;border:0;border-radius:14px;background:var(--ink);color:#fff;font-size:14px;font-weight:800;cursor:pointer}.question-form button:hover{background:var(--accent-ink)}.question-form button:disabled{opacity:.45;cursor:not-allowed}.question-form button:disabled:hover{background:var(--ink)}
163    .form-answer-text{display:block}.form-note{display:block;margin-top:24px;padding-top:18px;border-top:1px solid rgba(41,44,41,.16);color:var(--muted);font-size:12px;line-height:1.45;letter-spacing:0}
164    .eyebrow,.index,h1 em,h2 em,.grid3 article>span,.process strong,.price-value{color:var(--accent-ink)}
165    .dark{background:var(--sky-soft);color:var(--ink)}
166    .dark .index,.dark .value strong{color:var(--accent-ink)}
167    .dark .outcome,.dark .reviews blockquote{border-color:var(--sky-line)}
168    .dark .outcome .after,.dark .reviews blockquote:nth-child(even){border-color:var(--sky-line)}
169    .dark .outcome span,.dark .outcome p,.dark .reviews cite{color:var(--muted)}
170    .warm{background:#f7fbfd}
171    .about blockquote{border-color:var(--sky)}
172    .seo-h1{margin:0 0 28px;font-size:clamp(20px,2vw,28px);line-height:1.18;letter-spacing:-.025em;font-weight:700}
173    .hero-slogan{position:relative;z-index:99;max-width:1320px;margin:0;font-size:clamp(56px,7.7vw,110px);line-height:.89;letter-spacing:-.075em;font-weight:800}
174    .hero-slogan em{color:var(--accent-ink);font-style:normal}.slogan-line{align-items:baseline;}.swap-token{position:relative;display:inline-grid;grid-template-areas:"swap";width:1.25em;margin-left:.14em}.delayed-not{grid-area:swap;align-self:baseline;color:var(--accent-ink);font-style:normal;line-height:inherit;opacity:0;animation:reveal-not .35s ease 1.55s forwards}.loading-wheel{grid-area:swap;position:relative;align-self:center;justify-self:center;width:.48em;height:.48em;animation:hide-wheel .25s ease 1.4s forwards}.loading-wheel:before{content:"";position:absolute;inset:0;border:.07em solid var(--sky-line);border-top-color:var(--accent-ink);border-right-color:var(--accent);border-radius:50%;animation:loading-spin 1.1s linear infinite}@keyframes reveal-not{to{opacity:1}}@keyframes loading-spin{to{transform:rotate(360deg)}}@keyframes hide-wheel{to{opacity:0;transform:scale(.7)}}
175    .dialogue-section{padding:clamp(70px,9vw,130px) 0;background:#f8fcfd}
176    .dialogue-title{margin:0 0 34px;color:var(--muted);font-size:13px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
177    .dialogue{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.17fr);gap:clamp(24px,5vw,80px);align-items:center}
178    .bubble{position:relative;margin:0;padding:clamp(26px,3.5vw,48px);border-radius:32px;font-size:clamp(25px,3vw,47px);line-height:1.12;letter-spacing:-.04em;font-weight:700}
179    .bubble.question{background:var(--sky-soft)}.bubble.answer{background:var(--accent)}
180    main>.dialogue-section:nth-of-type(4n+1) .bubble.question{border-radius:52px 24px 44px 20px/30px 50px 26px 44px;transform:rotate(-.35deg)}
181    main>.dialogue-section:nth-of-type(4n+1) .bubble.answer{border-radius:24px 56px 22px 48px/44px 28px 52px 24px;transform:translateY(14px) rotate(.25deg)}
182    main>.dialogue-section:nth-of-type(4n+2) .bubble.question{border-radius:28px 58px 20px 48px/48px 22px 54px 26px;transform:translateY(10px) rotate(.3deg)}
183    main>.dialogue-section:nth-of-type(4n+2) .bubble.answer{border-radius:58px 22px 48px 26px/24px 52px 28px 46px;transform:rotate(-.3deg)}
184    main>.dialogue-section:nth-of-type(4n+3) .bubble.question{border-radius:22px 46px 54px 26px/52px 28px 24px 48px;transform:rotate(.25deg)}
185    main>.dialogue-section:nth-of-type(4n+3) .bubble.answer{border-radius:48px 3
1850px 20px 58px/26px 46px 54px 22px;transform:translateY(-10px) rotate(-.25deg)}
186    main>.dialogue-section:nth-of-type(4n) .bubble.question{border-radius:60px 26px 48px 22px/22px 48px 30px 56px;transform:translateY(-8px) rotate(-.25deg)}
187    main>.dialogue-section:nth-of-type(4n) .bubble.answer{border-radius:26px 50px 58px 20px/54px 24px 46px 30px;transform:translateY(10px) rotate(.35deg)}
188    .bubble small{display:block;margin-bottom:20px;font-size:13px;line-height:1;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.bubble small:after{content:":"}.bubble.answer small{color:var(--ink)}
189    .bubble.question:after{content:"";position:absolute;right:-18px;bottom:34px;border-width:18px 0 0 24px;border-style:solid;border-color:transparent transparent transparent var(--sky-soft)}
190    .bubble.answer:after{content:"";position:absolute;left:-18px;top:34px;border-width:0 24px 18px 0;border-style:solid;border-color:transparent var(--accent) transparent transparent}
191    .typed-answer.is-typing:after{content:"";display:inline-block;width:2px;height:.85em;margin-left:5px;background:currentColor;vertical-align:-.04em;animation:caret-blink .8s steps(1) infinite}
192    @keyframes caret-blink{50%{opacity:0}}
193    .button:hover{background:var(--accent);color:var(--ink)}
194    @media(max-width:900px){.hero{padding-top:78px;background:none}.nav{min-height:78px}.nav nav a:not(.cta){display:none}.hero-lower,.section-head,.about,.price,.contact-grid{grid-template-columns:1fr}.side-note{max-width:680px;transform:rotate(.5deg)}.metrics{grid-template-columns:1fr;padding:14px 0}.metrics>div{min-height:78px;padding:17px 0}.metrics>div+div{border-left:0;border-top:1px solid var(--line);padding-left:0}.grid3{grid-template-columns:1fr 1fr}.outcome,.value{grid-template-columns:1fr}.outcome .after{border-left:0;border-top:1px solid #494641;padding-left:0}.process{grid-template-columns:1fr}.process article+article{border-left:0;border-top:1px solid var(--line);padding-left:0}footer{grid-template-columns:1fr 1fr}footer p:last-child{display:none}.hero-lower{margin-top: 28px}}
195    @media(max-width:900px){.dialogue{grid-template-columns:1fr}.bubble.question:after,.bubble.answer:after{display:none}}
196    .relationship-details{max-width:920px;min-width:0}.relationship-scope{margin:0 0 20px;color:var(--muted);font-size:15px;line-height:1.5}.relationship-tasks{list-style:none;margin:0;padding:0;display:grid;gap:12px;font-size:clamp(18px,1.6vw,24px);line-height:1.5;letter-spacing:-.02em}.relationship-tasks li{position:relative;padding-left:20px}.relationship-tasks li::before{content:"";position:absolute;left:0;top:.65em;width:6px;height:6px;border-radius:50%;background:var(--accent-ink)}.relationship-tasks strong{font-weight:800}.relationship-result{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin:26px 0 0}.relationship-result strong{color:var(--accent-ink);font-size:clamp(32px,3.5vw,48px);line-height:1.1;letter-spacing:-.04em}.relationship-result span{font-size:16px}.relationship-protection{margin:24px 0 0;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:14px;line-height:1.65}.relationship-protection strong{color:var(--ink)}
197    @media(max-width:600px){h1{font-size:clamp(49px,17vw,72px)}.action{align-items:flex-start;flex-direction:column}.button{width:100%}.side-note{border-radius:26px;box-shadow:8px 8px 0 var(--accent);transform:none}.grid3{grid-template-columns:1fr}.grid3 article,.grid3 article:not(:nth-child(3n+1)){min-height:auto;padding:25px 0 40px;border-left:0}.relationships article{grid-template-columns:1fr;gap:22px}.relationships article>p,.relationship-tasks{font-size:17px}.reviews{grid-template-columns:1fr}.reviews blockquote,.reviews blockquote:nth-child(even){min-height:auto;padding:34px 0 48px;border-left:0}footer{grid-template-columns:1fr}footer>p{display:none}.outcome>div{padding-right:0}.bubble,main>.dialogue-section .bubble,.final-contact .bubble{border-radius:22px;transform:none}.contact{padding-top:70px}.final-contact{padding-bottom:64px}.final-contact h2{margin-bottom:36px}.final-contact .dialogue{gap:14px}.final-contact .bubble{padding:24px;font-size:clamp(21px,7vw,28px);line-height:1.16}.final-contact .bubble small{margin-bottom:14px}.final-contact .bubble.answer{font-size:16px}.final-contact .question-form textarea{min-height:82px}}
198    @media(prefers-reduced-motion:reduce){.typed-answer.is-typing:after,.loading-wheel,.loading-wheel:before,.delayed-not,.cases-swipe-hint svg{animation:none!important}.delayed-not{max-width:1.2em;opacity:1}.loading-wheel{display:none}}
199    .hero{min-height:calc(100svh - 170px)}
200    main>.dialogue-section:nth-of-type(2) .bubble.question{transform:rotate(-3deg)}
201    main>.dialogue-section:nth-of-type(2) .bubble.answer{transform:rotate(4deg)}
202    main>.dialogue-section:nth-of-type(4) .bubble.question{transform:rotate(-4.5deg)}
203    main>.dialogue-section:nth-of-type(4) .bubble.answer{transform:rotate(3.25deg)}
204    main>.dialogue-section:nth-of-type(6) .bubble.question{transform:rotate(-3.5deg)}
205    main>.dialogue-section:nth-of-type(6) .bubble.answer{transform:rotate(4.75deg)}
206    main>.dialogue-section:nth-of-type(8) .bubble.question{transform:rotate(-5deg)}
207    main>.dialogue-section:nth-of-type(8) .bubble.answer{transform:rotate(3.75deg)}
208    main>.dialogue-section:nth-of-type(10) .bubble.question{transform:rotate(-4deg)}
209    main>.dialogue-section:nth-of-type(10) .bubble.answer{transform:rotate(5deg)}
210    main>.dialogue-section:nth-of-type(12) .bubble.question{transform:rotate(-3.25deg)}
211    main>.dialogue-section:nth-of-type(12) .bubble.answer{transform:rotate(4.5deg)}
212    main>.dialogue-section:nth-of-type(14) .bubble.question{transform:rotate(-4.75deg)}
213    main>.dialogue-section:nth-of-type(14) .bubble.answer{transform:rotate(3.5deg)}
214    main>.dialogue-section:nth-of-type(16) .bubble.question{transform:rotate(-3.75deg)}
215    main>.dialogue-section:nth-of-type(16) .bubble.answer{transform:rotate(4.25deg)}
216    @media(max-width:900px){main>.dialogue-section .bubble{transform:none}}
217    html{scroll-padding-top:80px}
218    .hero{padding-top:70px}
219    .nav{min-height:70px}
220    @media(max-width:900px){.hero{padding-top:48px}.nav{min-height:48px}}
221    .about-links{display:flex;flex-wrap:wrap;gap:14px 28px;margin-top:38px}.about-links a{display:inline-flex;align-items:center;gap:9px;padding-bottom:6px;border-bottom:2px solid var(--accent-ink);font-size:15px;font-weight:800;text-decoration:none}.about-links a:hover{border-color:transparent;color:var(--accent-ink)}
222    .nav .brand img{display:block;width:auto;height:42px;object-fit:contain}@media(max-width:900px){.nav .brand img{height:34px}}
223    .question-form .consent{display:flex;align-items:flex-start;gap:11px;font-size:12px;font-weight:600;line-height:1.45;letter-spacing:0;text-transform:none}.question-form .consent input{width:18px;height:18px;min-width:18px;margin:1px 0 0;padding:0;border:1px solid var(--muted);accent-color:var(--accent-ink);cursor:pointer}.question-form .consent a{text-decoration-thickness:1px;text-underline-offset:3px}.footer-brand img{display:block;width:auto;height:42px}.footer-copy p,.footer-legal p{margin:5px 0}.footer-legal{display:flex;flex-direction:column;align-items:flex-end;gap:8px;text-align:right}.footer-legal a{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;text-underline-offset:4px}@media(max-width:600px){footer{gap:24px;padding-top:28px;padding-bottom:28px}.footer-legal{align-items:flex-start;text-align:left}.footer-legal p{text-align:left}}
224    .site-footer{position:relative;isolation:isolate;overflow:hidden;background:transparent;padding-top:clamp(40px,9vw,150px)}
225    .site-footer footer{border-top:0}
226    @media(max-width:600px){
227      .final-contact{padding-bottom:28px}
228      .site-footer{padding-top:16px}
229      .site-footer footer{min-height:0;gap:0;padding-top:0;padding-bottom:6px;align-items:end}
230      .site-footer .footer-copy{min-height:0}
231      .site-footer .footer-copy p,.site-footer .footer-copy p:last-child{margin:0;line-height:18px}
232      .site-footer .footer-legal{row-gap:0}
233      .site-footer .footer-legal a{min-height:32px;padding:0;line-height:18px}
234    }
235    @media(min-width:901px){
236      .site-footer footer{min-height:0;padding-top:10px;padding-bottom:12px;align-items:end}
237      .site-footer .footer-copy{min-height:0;gap:6px}
238      .site-footer .footer-copy p,.site-footer .footer-copy p:last-child,.site-footer .footer-legal p{margin:0;line-height:18px}
239      .site-footer .footer-legal{row-gap:6px;align-items:baseline}
240      .site-footer .footer-legal a{min-height:18px;padding:0;line-height:18px}
241    }
242    .footer-wordmark{position:absolute;z-index:-1;right:0;bottom:-.32em;left:0;width:min(1600px,100%);margin-inline:auto;padding-inline:var(--pad);color:var(--ink);opacity:.12;font-family:"Segoe UI",system-ui,sans-serif;font-size:min(17vw,272px);font-weight:700;line-height:1;letter-spacing:-.065em;text-align:left;white-space:nowrap;pointer-events:none;user-select:none}
243    .footer-wordmark svg{display:none;width:100%;height:1em;overflow:visible;fill:currentColor;font-family:inherit;letter-spacing:0}.footer-wordmark text{font-size:200px}
244    @media(min-width:901px){.footer-wordmark span{display:none}.footer-wordmark svg{display:block}}
245    .footer-copy p,.footer-copy p:last-child{text-align:left}
246    footer{grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr)}
247    @media(max-width:600px){footer{grid-template-columns:1fr}}
248    .swap-token{margin-right:calc(.08em + 10px)}
249    .about-photo{display:block;width:min(100%,620px);aspect-ratio:3/4;margin-top:clamp(34px,5vw,70px);object-fit:cover;object-position:center;border-radius:44px 22px 52px 26px}
250    .solved{overflow:hidden;padding-top:clamp(80px,10vw,150px);padding-bottom:clamp(80px,10vw,150px);background:#fff8eb}.solved-head{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:40px;align-items:end;margin-bottom:clamp(38px,5vw,68px)}.solved-head h2{font-size:clamp(46px,6vw,92px)}.solved-intro{max-width:470px;margin:0 0 8px;color:var(--muted);font-size:18px;line-height:1.55}.cases-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}.cases-counter{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.cases-controls{display:none;gap:10px}.cases-control{width:52px;height:52px;border:1px solid var(--ink);border-radius:50%;background:transparent;color:var(--ink);font-size:22px;
250cursor:pointer;transition:.2s}.cases-control:hover{border-color:var(--accent-ink);background:var(--accent);transform:translateY(-2px)}.cases-control:disabled{opacity:.3;cursor:default;transform:none;background:transparent}.cases-track{display:grid;grid-auto-flow:column;grid-auto-columns:min(560px,calc(100vw - 2 * var(--pad) - 28px));gap:22px;overflow-x:auto;padding:8px 0 28px;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-inline:contain}.cases-track::-webkit-scrollbar{display:none}.case-card{position:relative;min-height:430px;padding:clamp(28px,3vw,46px);display:flex;flex-direction:column;scroll-snap-align:start;border-radius:48px 24px 54px 28px/30px 50px 28px 46px;background:var(--case-bg);transform:rotate(var(--tilt));transition:transform .25s}.case-card:nth-child(3n+2){border-radius:26px 56px 24px 48px/48px 24px 52px 28px}.case-card:nth-child(3n){border-radius:56px 28px 48px 22px/26px 50px 30px 54px}.case-card:hover{transform:rotate(0) translateY(-5px)}.case-card:nth-child(4n+1){--case-bg:#c7f36a;--tilt:-.35deg}.case-card:nth-child(4n+2){--case-bg:#bcecff;--tilt:.35deg}.case-card:nth-child(4n+3){--case-bg:#ffd5e5;--tilt:-.25deg}.case-card:nth-child(4n){--case-bg:#e0d4ff;--tilt:.25deg}.case-card-label{margin:0 0 42px;color:rgba(41,44,41,.64);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.case-card h3{margin:0 0 26px;font-size:clamp(25px,2.4vw,38px);line-height:1.08}.case-result{margin:auto 0 28px;padding-top:24px;border-top:1px solid rgba(41,44,41,.22);font-size:18px;line-height:1.45}.case-result strong{display:block;margin-bottom:9px;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.case-link{align-self:flex-start;font-size:13px;font-weight:800;text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:5px}.case-link:hover{color:var(--accent-ink)}
251    @media(max-width:900px){.solved-head{grid-template-columns:1fr}.solved-intro{max-width:620px}.case-card{min-height:400px}}
252    .cases-swipe-hint{display:none}
253    .cases-carousel{position:relative;min-width:0}
254    @media(min-width:901px){.cases-controls{position:absolute;z-index:2;top:calc(50% - 10px);left:-20px;right:-20px;display:flex;justify-content:space-between;transform:translateY(-50%);pointer-events:none}.cases-control{flex:none;background:#fff;box-shadow:0 4px 16px rgba(41,44,41,.2);pointer-events:auto}.cases-control:disabled{opacity:1;color:#92958f;border-color:#c9ccc5;background:#fff;box-shadow:0 2px 8px rgba(41,44,41,.1)}.cases-control:focus-visible{outline:3px solid var(--accent-ink);outline-offset:3px}}
255    @media(max-width:900px){.cases-toolbar{align-items:center}.cases-controls{display:none}.cases-swipe-hint{display:flex;align-items:center;gap:7px;color:var(--accent-ink);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;pointer-events:none;transition:opacity .3s,transform .3s}.cases-swipe-hint svg{width:58px;height:25px;overflow:visible;animation:swipe-hint 1.8s ease-in-out infinite}.cases-swipe-hint path{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.cases-toolbar.is-scrolled .cases-swipe-hint{opacity:0;transform:translateX(8px)}}
256    @media(max-width:600px){.cases-track{grid-auto-columns:calc(100vw - 2 * var(--pad) - 10px);gap:14px}.case-card{min-height:390px;border-radius:26px!important;transform:none}.case-card-label{margin-bottom:30px}.case-result{font-size:16px}}
257    @keyframes swipe-hint{0%,100%{transform:translateX(-3px) rotate(-2deg)}50%{transform:translateX(5px) rotate(1deg)}}
258    .marker-nowrap{white-space:nowrap}
259    .menu-toggle{display:none;width:44px;height:44px;padding:8px 5px;border:0;background:transparent;cursor:pointer}.menu-toggle span{display:block;width:34px;height:3px;margin:5px 0;background:var(--ink);border-radius:4px;transition:transform .25s,opacity .2s}.menu-toggle:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
260    @media(max-width:900px){.menu-toggle{display:block}.nav nav{position:absolute;top:100%;left:5px;right:5px;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:10px var(--pad) 18px;border-bottom:1px solid var(--ink);background:rgba(255,255,255,.98);box-shadow:0 18px 34px rgba(41,44,41,.12);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .2s,transform .2s,visibility .2s}.nav nav a,.nav nav a:not(.cta){display:block;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.nav nav .cta{border-bottom:2px solid var()}.nav.is-open nav{opacity:1;visibility:visible;transform:translateY(0)}.nav.is-open .menu-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}.nav.is-open .menu-toggle span:nth-child(2){opacity:0}
260.nav.is-open .menu-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}}
261    .mobile-cta{display:none}
262    @media(max-width:900px){.nav{gap:12px}.nav .brand span{display:none}.mobile-cta{display:block;margin-left:auto;padding-bottom:6px;border-bottom:2px solid var();font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;white-space:nowrap}.nav nav .cta{display:none}}
263    @media(max-width:600px){.hero-body,.hero-lower,.hero-lower>div,.action{width:100%;min-width:0}.hero-slogan{max-width:100%;font-size:clamp(28px,7.9vw,50px)}.slogan-line{max-width:100%}.button{width:100%;max-width:100%;min-width:0;padding:0 18px;gap:12px;font-size:12px;line-height:1.25;text-align:left;white-space:normal;overflow-wrap:anywhere}.button span{flex:none}}
264    @media(max-width:600px){.hero-body{align-content:start;gap:28px;padding-top:28px}.swap-token{width:.92em;margin-left:.18em;margin-right:.2em}}
265    footer{min-height:96px;padding-top:10px;padding-bottom:10px;align-items:center}.footer-copy{display:flex;min-height:64px;flex-direction:column;justify-content:center}.footer-copy p,.footer-copy p:last-child{margin:3px 0}.footer-legal{display:grid;grid-template-columns:auto auto;justify-content:end;align-items:center;column-gap:20px;row-gap:0}.footer-legal a{min-height:44px;padding:0}.footer-legal p{grid-column:1/-1;margin:0;text-align:right}@media(max-width:600px){footer{gap:10px;padding-top:16px;padding-bottom:16px}.footer-copy{min-height:auto}.footer-legal{justify-content:start;column-gap:16px}.footer-legal p{text-align:left}}
266    #cookie_notice{position:fixed;z-index:1000;right:20px;bottom:max(20px,env(safe-area-inset-bottom));display:none;width:max-content;max-width:calc(100% - 40px);padding:6px 12px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(41,44,41,.14)}
267    #cookie_notice .cookie-text{display:flex;align-items:center;gap:14px;color:var(--ink);font-size:14px;line-height:1.35;white-space:nowrap}
268    #cookie_notice .cookie-btn{order:2;margin-left:auto;flex:none}
269    #cookie_notice .cookie_btn{color:var(--accent-ink);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
270    #cookie_close{min-width:54px;min-height:38px;padding:0 14px;border:0;border-radius:999px;background:var(--ink);color:var(--paper);font:inherit;font-size:13px;font-weight:800;cursor:pointer;transition:background .2s,transform .2s}
271    #cookie_close:hover{background:var(--accent-ink);transform:translateY(-1px)}
272    #cookie_close:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
273    @media(max-width:600px){#cookie_notice{right:12px;bottom:max(12px,env(safe-area-inset-bottom));max-width:calc(100% - 24px);padding:12px 14px}#cookie_notice .cookie-text{gap:12px;font-size:13px}#cookie_close{min-width:50px;min-height:36px;padding:0 12px;font-size:12px}}
274    @media(max-width:380px){#cookie_notice{width:calc(100% - 24px)}#cookie_notice .cookie-text{white-space:normal}}
275    .nav nav a[aria-current="location"]{color:var(--accent-ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:3px;text-underline-offset:7px}
276    button[data-task-popup]{font-family:inherit;cursor:pointer}
277    button.button[data-task-popup]{border:0}
278    .nav button[data-task-popup]{padding:0 0 6px;border:0;border-bottom:2px solid var(--accent);background:transparent;color:var(--ink)}
279    button[data-task-popup]:focus-visible,.task-popup-close:focus-visible{outline:3px solid var(--accent-ink);outline-offset:4px}
280    html.task-popup-open,html.task-popup-open body{overflow:hidden}
281    .task-popup-overlay{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:16px;background:rgba(25,35,30,.6);backdrop-filter:blur(5px);overscroll-behavior:contain}
282    .task-popup-overlay[hidden]{display:none}
283    .task-popup{position:relative;width:min(580px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:clamp(24px,5vw,48px);border:1px solid var(--sky-line);border-radius:28px;background:var(--sky-soft);color:var(--ink);overflow:auto;overscroll-behavior:contain}
284    .task-popup h2{padding-right:28px;font-size:clamp(34px,6vw,36px);line-height:1;letter-spacing:-.05em}
285    .task-popup.is-partnership .question-form{margin-top:24px}
286    .task-popup-intro{margin:10px 0 16px;font-size:16px;line-height:1.5}
287    .task-popup-close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--paper);color:var(--ink);font-size:30px;cursor:pointer}
288    .task-popup-status{margin:20px 0 0;font-size:16px;line-height:1.5;color:var(--accent-ink)}
289    .task-popup-status:empty{display:none}
290    .companies-intro{max-width:800px;margin:28px 0 0;font-size:clamp(18px,1.7vw,24px);line-height:1.5}.company-stories .relationships article{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px clamp(32px,5vw,80px)}.company-stories .relationship-meta{gap:18px}
290.company-stories .relationship-meta h3{margin:0;font-size:clamp(30px,3.5vw,52px);line-height:1.08;letter-spacing:-.045em;overflow-wrap:break-word}.company-scale{margin:0;color:var(--accent-ink);font-size:clamp(17px,1.5vw,22px);font-weight:700;line-height:1.5}.company-outcome{margin:0 0 26px;font-size:clamp(20px,1.9vw,28px);line-height:1.4;letter-spacing:-.02em}.company-stories .relationship-tasks{font-size:17px;gap:14px}.company-systems{margin:24px 0 0;color:#60645e;font-size:13px;line-height:1.65}.company-stories .relationship-protection{margin-top:16px;font-size:13px}.company-tenure{justify-self:start;margin:0;padding:12px 16px;border-radius:14px;background:var(--sky-soft);color:#000;font-size:17px;line-height:1.45;font-weight:600}.company-tenure b{font-size:24px;font-weight:800;white-space:nowrap}.companies-draft-note{max-width:900px;margin:24px 0 0;font-size:13px;line-height:1.6;color:#60645e}@media(max-width:900px){.company-stories .relationships article{grid-template-columns:1fr;gap:24px}.company-stories .relationship-meta h3{max-width:650px}.company-stories .section-head{margin-bottom:44px}}
291    .side-note>p{margin:0}.side-note .checklist-copy{font-size:16px;font-weight:400;line-height:1.45}.checklist-cta{padding:10px 0;border:0;border-bottom:2px solid currentColor;background:transparent;color:var(--ink);font:inherit;font-size:15px;line-height:1.4;text-align:left;cursor:pointer}.checklist-cta:focus-visible{outline:3px solid var(--accent-ink);outline-offset:4px}
292    dialog.checklist-popup{border:1px solid var(--sky-line)}dialog.checklist-popup:not([open]){display:none}dialog.checklist-popup::backdrop{background:rgba(25,35,30,.6);backdrop-filter:blur(5px)}html.checklist-popup-open,html.checklist-popup-open body{overflow:hidden}.checklist-download{margin-top:20px}.checklist-download[hidden]{display:none}
293  </style>
294  
295</head>
296<body>
297<main>
298  <section class="hero shell" id="top">
299    <header class="nav"><a class="brand" href="#top" aria-label="Толк Ай Ти — наверх"><img src="assets/img/logo_sm.png" alt="Толк Ай Ти" width="42" height="42" title="На главную"><span>tolkit.top</span></a><button class="mobile-cta" type="button" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Обсудить задачу</button><button class="menu-toggle" type="button" aria-expanded="false" aria-controls="main-menu" aria-label="Открыть меню"><span></span><span></span><span></span></button><nav id="main-menu"><a href="#cases">Истории успеха</a><a href="#reviews">Отзывы</a><a href="#services">Что делаем?</a><a href="#responsibility">Ответственность</a><a href="#cost">Условия</a><button class="cta" type="button" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Обсудить задачу</button></nav></header>
300    <div class="hero-body"><div><h1 class="seo-h1">Лучшая техническая поддержка инфраструктуры для малого и среднего бизнеса</h1><p class="hero-slogan"><em>Толк</em>ово делаем <em>АйТи</em><br><span class="slogan-line">Экономим вам <em>время</em></span></p></div><div class="hero-lower"><div><p class="lead">Работа сервера, торгового оборудования, интернета без сбоев для торговых компаний, производства и сферы услуг.</p>
301    <p class="lead" style="margin-top: 10px">Начинаем с важной задачи — стараемся быть полезными годы.</p><div class="action"><button class="button" type="button" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Записаться на консультацию <span>→</span></button><span class="note">Расскажите о задаче<br>и мы предложим следующий шаг.</span></div></div><aside class="side-note"><p>Чек-лист гендиректора для ИТ-аудита за 30 минут</p><p class="checklist-copy">Ваш бизнес уязвим к сбоям, потере данных и уходу сисадмина?</p><button class="checklist-cta" type="button" data-checklist-popup aria-haspopup="dialog" aria-controls="checklist-popup">Получить чек-лист бесплатно →</button></aside></div></div>
302    <div class="metrics"><div><strong>до 15 мин</strong><span>реакция на обращение</span></div><div><strong>от 30 000 ₽</strong><span>за месяц поддержки</span></div><div><strong>17 лет</strong><span>опыта в ИТ решениях</span></div></div>
303  </section>
304  
305  <section class="solved" aria-labelledby="solved-title"><div class="shell"><div class="solved-head"><div><!--p class="index">Практика</p--><h2 id="solved-title">Задачи,<br>которые решали</h2></div><p class="solved-intro">Лучшее клиентские истории на годы начались с важной разовой задачи. Какая задача у вас?</p></div><div class="cases-toolbar"><span class="cases-counter" aria-live="polite">01 / 13</span><span class="cases-swipe-hint" aria-hidden="true">листайте <svg viewBox="0 0 60 26"><path d="M2 15c13-7 28 2 50-4"/><path d="m43 4 10 7-8 10"/></svg></span></div><div class="cases-carousel"><div class="cases-controls">
305<button class="cases-control cases-prev" type="button" aria-label="Предыдущая задача">←</button><button class="cases-control cases-next" type="button" aria-label="Следующая задача">→</button></div><div class="cases-track" tabindex="0" aria-label="Решённые задачи">
306    <article class="case-card"><p class="case-card-label">01 / Оптимизация 1С</p><h3>Ускорили работу базы 1С на 30%</h3><p class="case-result"><strong>Результат</strong>Сократили затраты на закрытие периода и подготовку отчётности, снизили риск получения штрафов.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Ускорить нашу 1С →</a></article>
307    <article class="case-card"><p class="case-card-label">02 / Удалённая работа</p><h3>Офис с доступом из любой точки мира</h3><p class="case-result"><strong>Результат</strong>Сократили время на подключение нового сотрудника к работе.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Сделать терминальный сервер для команды →</a></article>
308    <article class="case-card"><p class="case-card-label">03 / Совместная работа</p><h3>Перенесли почту в Яндекс 360</h3><p class="case-result"><strong>Результат</strong>Сократили стоимость владения почтой в 5 раз. Ни одно письмо не потеряли.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Хочу так же →</a></article>
309    <article class="case-card"><p class="case-card-label">04 / Безопасность</p><h3>Перенесли сайт на новый сервер и хостинг</h3><p class="case-result"><strong>Результат</strong>Защитили от взломов и сократили стоимость владения сайтом в 2 раза.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Обсудить перенос →</a></article>
310    <article class="case-card"><p class="case-card-label">05 / Инфраструктура</p><h3>Переезд коробочного Битрикс24 с 700 ГБ данных на новый сервер</h3><p class="case-result"><strong>Результат</strong>Провели миграцию с нулевым простоем в рабочие часы и снизили риск взлома приложения.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Спланировать переезд →</a></article>
311    <article class="case-card"><p class="case-card-label">06 / Мониторинг</p><h3>Контроль работы 1С на стыках систем</h3><p class="case-result"><strong>Результат</strong>Выработали критерии и метрики, настроили мониторинг на <a target="_blank" href="https://monopus.io">monopus.io</a> и сократили время устранения аварий на 20%.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Хочу видеть сбои заранее →</a></article>
312    <article class="case-card"><p class="case-card-label">07 / Регулярные обновления</p><h3>Ежемесячный план обновлений и безопасности</h3><p class="case-result"><strong>Результат</strong>Включили Patch Tuesday, прошивки устройств и обновления операционных систем — снизили риск взлома и утечки данных.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Навести порядок →</a></article>
313    <article class="case-card"><p class="case-card-label">08 / Удаленная работа</p><h3>VPN для бизнеса</h3><p class="case-result"><strong>Результат</strong>Удаленный доступ к ресурсам необходимым для работы с компьютеров и мобильных устройств..</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Подключить безопасный доступ →</a></article>
314    <article class="case-card"><p class="case-card-label">09 / Управление задачами</p><h3>Внедрение Яндекс Трекера и перенос базы из Trello</h3><p class="case-result"><strong>Результат</strong>Убрали риск потери данных из-за отключения зарубежного сервиса. Бон
314ус — единая среда для задач и коммуникации.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Перенести наши задачи →</a></article>
315    <article class="case-card"><p class="case-card-label">10 / Юридические риски</p><h3>Разделение данных Яндекс 360 между аккаунтами разных юрлиц</h3><p class="case-result"><strong>Результат</strong>Настроили раздельную оплату и убрали риск признания юридических лиц аффилированными.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Разобрать нашу ситуацию →</a></article>
316    <article class="case-card"><p class="case-card-label">11 / Техническая поддержка</p><h3>Поддержка e-commerce с реакцией за 5 минут</h3><p class="case-result"><strong>Результат</strong>Настроили маршрутизацию запросов по профильным командам и высвободили время операционного директора.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Нужна быстрая поддержка →</a></article>
317    <article class="case-card"><p class="case-card-label">12 / Информационная безопасность</p><h3>Обновление почтовых серверов Microsoft</h3><p class="case-result"><strong>Результат</strong>Снизили риск взлома и утечки корпоративных данных.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Проверить нашу почту →</a></article>
318    <article class="case-card"><p class="case-card-label">13 / Информационная безопасность</p><h3>Обновление версии GitLab</h3><p class="case-result"><strong>Результат</strong>Снизили риск взлома и утечки данных из среды разработки.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Защитить наш GitLab →</a></article>
319    <article class="case-card"><p class="case-card-label">14 / Лицензирование</p><h3>Управление лицензиями 1С и подписками на сервисы</h3><p class="case-result"><strong>Результат</strong>Сократили время простоя сервисов из-за лицензий и подписок до нуля.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Разобраться с лицензиями →</a></article>
320    <article class="case-card"><p class="case-card-label">15 / Электронные подписи</p><h3>Централизованное управление электронными подписями</h3><p class="case-result"><strong>Результат</strong>Сократили риск утери пароля сертификата и связанных с этим простоев.</p><a class="case-link" href="#task-popup" data-task-popup aria-haspopup="dialog" aria-controls="task-popup">Упорядочить подписи →</a></article>
321  </div></div></div></section>
322
323  <section class="dialogue-section"><div class="shell"><p class="dialogue-title">Доверие проверенное временем</p><div class="dialogue"><p class="bubble question"><small>Собственник</small>Можно ли вам доверить важные ИТ-системы?</p><p class="bubble answer"><small>Толк Ай Ти отвечает</small>Лучший ответ — клиенты, которые работают с нами до 14 лет</p></div></div></section>
324  
325  <section class="section shell company-stories" aria-labelledby="companies-title"><div class="section-head"><p class="index" id="cases"></p><div><h2 id="companies-title">Бизнес растёт.<br>ИТ выдерживает.</h2><p class="companies-intro">Сопровождаем компании, где от работы систем зависят продажи, производство и каждый рабочий день.</p></div></div><div class="relationships">
326    <article><div class="relationship-meta"><span>Торговля · шины</span><h3>Сеть шинных магазинов</h3><p class="company-scale">Сопровождали рост выручки<br>с 2 млрд до 14 млрд ₽<br>450 сотрудников · 14 городов</p><p class="company-tenure"><b>9+ лет</b> поддерживаем ит-инфраструктуру</p></div><div class="relationship-details"><p class="company-outcome">
326Магазины и склады работают в единой системе. В сезон нагрузка растёт — заказы продолжают поступать, сотрудники успевают их обрабатывать.</p><ul class="relationship-tasks">
327      <li><strong>Торговля без остановок:</strong> доступность ключевых систем — 99,95%.</li>
328      <li><strong>Быстрая обработка заказов:</strong> основные операции в 1С — до 2 секунд.</li>
329      <li><strong>Работа из любой точки:</strong> доступ к системам с любого устройства.</li>
330    </ul><p class="company-systems">Кассы, магазины и склады · 1С: комплексная автоматизация · база 850 ГБ · 117 точек мониторинга · 1 378 метрик</p>
331    <p class="relationship-protection"><strong>Защита:</strong> взломы · потеря файлов · отказ сервера · обрыв интернета</p>
332    </div></article>
333    <article><div class="relationship-meta"><span>Торговля · оборудование</span><h3>Поставщик сварочного оборудования</h3><p class="company-scale">Сопровождали рост выручки<br>с 24 млн до 252 млн ₽<br>До 35 сотрудников в пике</p><p class="company-tenure"><b>14+ лет</b> ИТ-аутсорсинга</p></div><div class="relationship-details"><p class="company-outcome">Продавцы быстро оформляют заказы и видят актуальные остатки.</p><ul class="relationship-tasks">
334      <li><strong>Продажи без задержек:</strong> нужные приложения и данные под рукой у продавца.</li>
335      <li><strong>Единый учёт:</strong> сопровождаем 1С УТ и ЗУП.</li>
336      <li><strong>Рабочее место отовсюду:</strong> поддерживаем удалённые рабочие столы.</li>
337    </ul><p class="company-systems">Удалённые рабочие столы · 1С УТ и ЗУП · специализированные приложения продавцов</p>
338    <p class="relationship-protection"><strong>Защита:</strong> взломы · потеря файлов · отказ сервера</p>
339    </div></article>
340    <!--article><div class="relationship-meta"><span>Еком · мода</span><h3>Бренд дизайнерской одежды</h3><p class="company-scale">Выручка за последний год — 10 млн ₽<br>2 сотрудника</p><p class="company-tenure"><b>5+ лет</b> работаем вместе</p></div><div class="relationship-details"><p class="company-outcome">
340Интернет-магазин выдерживает запуск новых коллекций, а команда успевает обрабатывать заказы.</p><ul class="relationship-tasks">
341      <li><strong>Продажи в пиковые часы:</strong> покупатели оформляют заказы даже при росте нагрузки.</li>
342      <li><strong>Торговый учёт:</strong> сопровождаем 1С УТ.</li>
343      <li><strong>Работа интернет-магазина:</strong> поддерживаем веб-сервисы для сайта.</li>
344    </ul><p class="company-systems">1С УТ · веб-сервисы интернет-магазина</p>
345    <p class="relationship-protection"><strong>Защита:</strong> взломы · потеря файлов · отказ сервера</p>
346    </div></article-->
347    <article><div class="relationship-meta"><span>Услуги · мероприятия и поездки</span><h3>Организация мероприятий и деловых поездок</h3><p class="company-scale">Сопровождали рост выручки<br>с 443 млн до 725 млн ₽<br>35 сотрудников · 10+ билетных систем</p><p class="company-tenure"><b>2+ года</b> совместной работы</p></div><div class="relationship-details"><p class="company-outcome">Бронирования и продажи продолжаются в пиковые часы. Команда помогает клиентам отправляться в поездки вовремя.</p><ul class="relationship-tasks">
348      <li><strong>Продажа билетов:</strong> поддерживаем интеграции с авиа- и ж/д-системами.</li>
349      <li><strong>Ежедневная работа:</strong> сопровождаем 1С, кассу и удалённый доступ.</li>
350    </ul><p class="company-systems">1С · касса · удалённый доступ · интеграции с 10+ билетными системами</p>
351    <p class="relationship-protection"><strong>Защита:</strong> взломы · потеря файлов · отказ сервера · обрыв интернета</p>
352    </div></article>
353    <article><div class="relationship-meta"><span>Промышленность · производство</span><h3>Завод электродвигателей</h3><p class="company-scale">Выручка за последний год — 71 млн ₽<br>15 сотрудников</p><p class="company-tenure"><b>4+ года</b> совместной работы</p></div><div class="relationship-details"><p class="company-outcome">Офис и производство работают без задержек из-за ИТ.</p><ul class="relationship-tasks">
354      <li><strong>Рабочие места:</strong> поддерживаем сотрудников офиса и производства.</li>
355      <li><strong>Связь между командами:</strong> сопровождаем интернет и сервисы коммуникации.</li>
356      <li><strong>Сайты компании:</strong> обеспечиваем техническую поддержку.</li>
357    </ul><p class="company-systems">Рабочие места · интернет · сервисы коммуникации · сайты</p>
358    </div></article>
359  </div>
360  </section>
361  
362  <section class="dialogue-section"><div class="shell"><p class="dialogue-title">Переводим с технического на человеческий</p><div class="dialogue"><p class="bubble question"><small>Главбух</small>Что будет, если утром не откроется 1С? 😤</p><p class="bubble answer"><small>Толк Ай Ти отвечает</small>Увидим проблему раньше сотрудников. Восстановим работу и уберём причину повторения. Расскажем, что случилось на понятном языке.</p></div></div></section>
363  <section class="section dark"><div class="shell"><p class="index">01 / Было → стало</p><div class="outcome"><div><span>Было</span><h2>Операционный директор включается в координацию задач: кассы, 1С, Wi‑Fi и ЭЦП.</h2><p>Вместо развития бизнеса он тратит время на координацию разных исполнителей.</p></div><div class="after"><span>Стало</span><h2>Босс занимается денежными задачами. Всё ИТ бек-офиса — на нас.</h2><p>Мы единая точка входа и отвечаем за результат, включая координацию других ИТ-команд.</p></div></div><!--div class="value"><strong>до 85%</strong><p>экономии бюджета проекта за счёт решений, выбранных по стоимости владения, а не только по цене покупки.</p></div!--></div></section>
364  <section class="dialogue-section"><div class="shell"><p class="dialogue-title">Не тушим один и тот же пожар дважды</p><div class="dialogue"><p class="bubble question"><small>Операционный директор</small>Что вы сделаете, чтобы мы не платили дважды за одну проблему?</p><p class="bubble answer"><small>Толк Ай Ти отвечает</small>Найдём первопричину и изменим систему. Закрытая заявка — ещё не результат.</p></div></div></section>
365  <section class="section dark"><div class="shell"><div class="section-head"><p class="index" id="reviews">02 / Отзывы</p><h2>Спокойствие<br>из первых рук</h2></div><div class="reviews"><blockquote><p>«Высвободили моё время от ИТ-задач. Теперь я спокоен и занимаюсь тем, что важно для развития»</p><cite>Операционный директор крупной еком компании</cite></blockquote><blockquote><p>«Благодаря работе с <a href="#about">Анатолием</a>
365 поняли, что сервер не нужен — и сэкономили 85% бюджета запуска»</p><cite>Генеральный директор бренда одежды</cite></blockquote><blockquote><p>«За семь лет работы я в любую минуту звоню ответственному человеку и сразу получаю обратную связь»</p><cite>Технический директор еком компании</cite></blockquote><blockquote><p>«Главное отличие „Толк Ай Ти“ — адекватность и понимание нашей потребности»</p><cite>Технический директор торговой компании</cite></blockquote></div></div></section>
366  <section class="dialogue-section"><div class="shell"><p class="dialogue-title">Работаем вдолгую</p><div class="dialogue"><p class="bubble question"><small>Генеральный директор</small>Мы же будем зависеть от вас?</p><p class="bubble answer"><small>Толк Ай Ти отвечает</small>У нас есть контракты по 14 лет. Клиенты с нами не потому что боятся, а потому что так удобно.</p></div></div></section>
367  <section class="section shell"><div class="section-head"><p class="index" id="services">05 / Что берём на себя</p><h2>Одна точка входа<br>для всего ИТ</h2></div><div class="grid3">
368    <article><span>01</span><h3>ИТ-директор</h3><p>Формирует цели, управляет рисками и координирует подрядчиков: 1С, сайты, интеграции, связь и инфраструктуру.</p></article><article><span>02</span><h3>1С и интеграции</h3><p>Приложение, база данных, лицензирование и ускорение работы. Поддерживаем связки 1С, Битрикс24 и 1С‑Битрикс.</p></article><article><span>03</span><h3>Поддержка команды</h3><p>Первая и вторая линии решают запросы, автоматизируют повторяемое и превращают решения в понятные инструкции.</p></article><article><span>04</span><h3>Сети и доступ</h3><p>База 1С, удаленный доступ, серверы, VPN и Wi-Fi. Если удалённо нельзя — инженер выезжает в офис.</p></article><article><span>05</span><h3>Надёжность и безопасность</h3><p>Ежедневные резервные копии, регулярная проверка восстановления, обновления и контроль критических уязвимостей.</p></article><article><span>06</span><h3>Отчёт для руководителя</h3><p>Каждый месяц показываем доступность сервисов, выполненные работы, риски и план улучшений — без технического тумана.</p></article>
369  </div></section>
370  <section class="dialogue-section"><div class="shell"><p class="dialogue-title">Одна точка входа</p><div class="dialogue"><p class="bubble question"><small>Менеджер по продажам</small>Мне придётся разбираться, кому писать по каждой ИТ-задаче?</p><p class="bubble answer"><small>Толк Ай Ти отвечает</small>Нет. Вы пишете нам в вашем Битрикс24 или телеграм-чате, а мы направляем запрос самому экспертному человеку.</p></div></div></section>
371  <section class="section shell"><div class="section-head"><p class="index">06 / Как работаем</p><h2>Надёжность —<br>это процесс</h2></div><div class="process"><article><strong>100%</strong><h3>доступности 1С в операционные часы — наша цель</h3><p>Мониторим не только серверы, а состояние бизнес-сервиса: касс, 1С, сайтов и интеграций.</p></article><article><strong>ежедневно</strong><h3>делаем резервные копии и отслеживаем метрики</h3><p>Минимум раз в месяц проверяем восстановление критичных данных и моделируем сбои.</p></article><article><strong>до 4 часов</strong><h3>выезд по срочным задачам к вам в офис</h3><p>Выезжаем в офисы Москвы и Санкт-Петербурга, когда проблему нельзя решить удалённо.</p></article></div><p class="industries">Работаем с e‑commerce, медициной, кредитованием, страхованием, бизнес‑тревелом и производством строительных материалов.</p></section>
372  <section class="dialogue-section" id="responsibility"><div class="shell"><p class="dialogue-title">Личная ответственность</p><div class="dialogue"><p class="bubble question"><small>Технический директор</small>Кто лично отвечает за результат и видит картину целиком?</p><p class="bubble answer"><small>Толк Ай Ти отвечает</small>Анатолий участвует в каждом проекте как внешний ИТ-директор и отвечает за общую цель</p></div></div></section>
373  <section class="section warm"><div class="shell about"><div><p class="index" id="about">07 / Личное участие</p><h2>Привет! Меня зовут<br>Анатолий Серёгин.</h2><img class="about-photo" src="assets/img/anatoly-seregin.jpg" title="Радуюсь, что ит-сервисы работают без сбоев" alt="Анатолий Серёгин" loading="lazy"><div class="about-links"><a target="_blank" href="https://tolkit.top/journal/">Читать журнал <span>↗</span></a><a href="https://t.me/anatoly_tolkit" target="_blank" rel="noopener noreferrer">Telegram блог <span>↗</span></a></div></div><div class="about-copy"><p class="big">Я 17 лет в обслуживании ИТ-инфраструктуры, из них 10 — в ИТ-аутсорсинге в Москве и Санкт-Петербурге и руковожу «Толк Ай Ти».<
373/p><p class="big">В каждом проекте участвую как ИТ-директор: в небольших проектах меня меньше, в крупных — больше.</p><p>Моя задача — удерживать цель: сервисы должны работать без сбоев и остановок. Если проблема всё же случилась, мы меняем систему так, чтобы она не повторилась.</p><blockquote>«Мне нравится, когда с клиентом получается хорошая история на годы»</blockquote></div></div></section>
374  <section class="dialogue-section"><div class="shell"><p class="dialogue-title">Контроль без микроменеджмента</p><div class="dialogue"><p class="bubble question"><small>Операционный директор</small>Как я пойму, что всё действительно под контролем?</p><p class="bubble answer"><small>Толк Ай Ти отвечает</small>Каждый месяц покажем состояние сервисов, риски и план улучшений — на языке бизнеса</p></div></div></section>
375  <section class="section shell price"><div><p class="index" id="cost">08 / Стоимость</p><h2>Считаем <span class="marker-nowrap">надёжность,</span><br>а не рабочие места</h2></div><div><p class="price-value">от 30 000 ₽ <span>/ за месяц поддержки</span></p><p class="big">До 0 сокращаем простой сервера, 1С, интернета в рабочие часы.</p><p class="muted">Стоимость зависит от задач, рисков и ценности для бизнеса. Предоплата 100% за каждый месяц, НДС 5%, контракт от полугода.</p><p class="muted">Для тех, кому надёжность и эффективность важнее минимальной цены.</p></div></section>
376  <section class="dialogue-section"><div class="shell"><p class="dialogue-title">Цена зависит от реальной работы</p><div class="dialogue"><p class="bubble question"><small>Конкурент:)</small>Почему вы не считаете количество компьютеров?</p><p class="bubble answer"><small>Толк Ай Ти отвечает</small>Десять сложных мест могут требовать больше внимания, чем сто простых. Считаем нагрузку и ценность</p></div></div></section>
377  <section class="contact"><div class="shell final-contact"><p class="eyebrow" id="contact">09 / Давайте обсудим</p><h2>Расскажите,<br>где ИТ мешает?</h2><div class="dialogue"><p class="bubble question"><small>Толк Ай Ти</small><span class="form-answer-text" id="form-answer">«Обсудим, где ИТ мешает бизнесу, и найдём следующий шаг?»</span></p><div class="bubble answer" data-form-answer>
378  <form action="it-outsoursing" method="post" class="question-form ajax_form" id="question-form"><p class="form-call">Если не хотите писать, позвоните: <a href="tel:+74996479547">+7 (499) 647-95-47</a>.<span>Мы отвечаем с 10 до 18 по Москве.</span></p><label>ваша задача<textarea name="name" required placeholder="Например: что делать, если наш единственный сисадмин увольняется?"></textarea></label><label>Как с вами связаться<input name="phone" required placeholder="Email, телефон или Telegram"></label><label class="consent"><input type="checkbox" name="privacy" required><span>Принимаю <a href="https://tolkit.top/politika-konfidenczialnosti" target="_blank" rel="noopener noreferrer">политику конфиденциальности</a></span></label><button type="submit" disabled>Отправить вопрос →</button>
379	<input type="hidden" name="af_action" value="181c4719fa372cfeb1194468cac295cb" />
380</form>  </div></div></div></section>
381  <section class="section partnership" aria-labelledby="partnership-title"><div class="shell partnership-layout">
382    <div><p class="index">Партнёрство</p><h2 id="partnership-title">Если вы не клиент,<br>давайте партнёриться</h2></div>
383    <div><p class="partnership-copy">Мы закрываем задачи, которые вам не нравятся, платим до <strong>10% от ежемесячного чека за рекомендацию.</strong></p>
384      <ul class="partnership-services"><li>Поддержка и разработка сайта 1С-Битрикс</li><li>Внедрение и поддержка Битрикс24</li><li>GEO/SEO-продвижение</li><li>Автоматизация с помощью ИИ</li></ul>
385      <button class="button" type="button" data-task-popup data-partnership-popup aria-haspopup="dialog" aria-controls="task-popup">Обсудить партнёрство <span aria-hidden="true">→</span></button>
386    </div>
387  </div></section>
388  <div class="contact site-footer"><div class="footer-wordmark" aria-hidden="true"><span>ТОЛК АЙТИ</span><svg viewBox="1.7155 0 985.3275 200" preserveAspectRatio="none" focusable="false"><text x="0" y="169" textLength="1000" lengthAdjust="spacingAndGlyphs">ТОЛК АЙТИ</text></svg></div><footer class="shell"><div class="footer-copy"><p>ИТ-аутсорсинг и сопровождение информационных систем</p><p>Москва · Санкт-Петербург · удалённо с выездами · тел. <a href="+74996479547">+74996479547</a></p></div><div class="footer-legal"><a href="https://tolkit.top/offer">
388Публичная оферта</a><a href="https://tolkit.top/it-akkreditacziya">ИТ-аккредитация</a><p>© 2017–2026 Все права защищены</p></div></footer></div>
389</main>
390<dialog class="task-popup checklist-popup" id="checklist-popup" aria-labelledby="checklist-popup-title">
391  <button class="task-popup-close" type="button" data-checklist-close aria-label="Закрыть форму">×</button>
392  <h2 id="checklist-popup-title">Проверьте своё ИТ за 30 минут</h2>
393  <p class="task-popup-intro">37 пунктов для руководителя. Отправим ссылку на PDF на вашу почту. Скачать его можно будет и здесь.</p>
394  <form action="it-outsoursing" method="post" class="question-form ajax_form" id="checklist-form" data-answer-target="checklist-form-answer" data-checklist-form><label>Ваш email<input type="email" name="email" required autocomplete="email" placeholder="[email protected]"></label><label class="consent"><input type="checkbox" name="privacy" value="1" required><span>Принимаю <a href="https://tolkit.top/politika-konfidenczialnosti" target="_blank" rel="noopener noreferrer">политику конфиденциальности</a></span></label><button type="submit" disabled>Получить чек-лист →</button>
395	<input type="hidden" name="af_action" value="96ff03f3af8724de499617e2714e396f" />
396</form>  <p class="task-popup-status" id="checklist-form-answer" role="status" aria-live="polite"></p>
397  <a class="button checklist-download" id="checklist-download" href="/assets/files/260309_checklist-it-quality.pdf" target="_blank" rel="noopener" download hidden>Скачать чек-лист PDF ↓</a>
398</dialog>
399<div class="task-popup-overlay" id="task-popup-overlay" hidden>
400<div class="task-popup" id="task-popup" role="dialog" aria-modal="true" aria-labelledby="task-popup-title" tabindex="-1">
401  <button class="task-popup-close" type="button" aria-label="Закрыть форму">×</button>
402  <h2 id="task-popup-title">Обсудим вашу задачу</h2>
403  <form action="it-outsoursing" method="post" class="question-form ajax_form" id="popup-question-form" data-answer-target="popup-form-answer"><p class="form-call">Если не хотите писать, позвоните: <a href="tel:+74996479547">+7 (499) 647-95-47</a>.<span>Мы отвечаем с 10 до 18 по Москве.</span></p><label>Ваша задача<textarea name="name" required placeholder="Например: что делать, если наш единственный сисадмин увольняется?"></textarea></label><label>Как с вами связаться<input name="phone" required placeholder="Email, телефон или Telegram"></label><label class="consent"><input type="checkbox" name="privacy" required><span>Принимаю <a href="https://tolkit.top/politika-konfidenczialnosti" target="_blank" rel="noopener noreferrer">политику конфиденциальности</a></span></label><button type="submit" disabled>Отправить вопрос →</button>
404	<input type="hidden" name="af_action" value="47ff91b61ee6bcef5f59498f12314691" />
405</form>  <p class="task-popup-status" id="popup-form-answer" role="status" aria-live="polite"></p>
406</div>
407</div>
408<script>
409
410  (() => {
411    const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
412    const questions = [...document.querySelectorAll('.bubble.question')]
413      .filter((bubble) => !bubble.closest('.final-contact') && !bubble.querySelector('form'));
414    const answers = [...document.querySelectorAll('.bubble.answer:not([data-form-answer])')];
415
416    questions.forEach((bubble) => {
417      const label = bubble.querySelector('small');
418      const fullText = [...bubble.childNodes]
419        .filter((node) => node !== label)
420        .map((node) => node.textContent)
421        .join('')
422        .trim();
423
424      [...bubble.childNodes].forEach((node) => {
425        if (node !== label) node.remove();
426      });
427
428      const quoted = document.createElement('span');
429      quoted.className = 'dialogue-text';
430      quoted.textContent = `«${fullText}»`;
431      bubble.appendChild(quoted);
432    });
433
434    answers.forEach((bubble) => {
435      const label = bubble.querySelector('small');
436      const fullText = [...bubble.childNodes]
437        .filter((node) => node !== label)
438        .map((node) => node.textContent)
439        .join('')
440        .trim();
441
442      [...bubble.childNodes].forEach((node) => {
443        if (node !== label) node.remove();
444      });
445
446      const typed = document.createElement('span');
447      typed.className = 'typed-answer';
448      const quotedText = `«${fullText}»`;
449      typed.dataset.text = quotedText;
450      typed.textContent = reducedMotion ? quotedText : '';
451      bubble.appendChild(typed);
452      bubble.setAttribute('aria-label', `Толк Ай Ти отвечает: ${fullText}`);
453    });
454
455
456
457    const typeAnswer = (typed) => {
458      if (typed.dataset.typed) return;
459      typed.dataset.typed = 'true';
460      typed.classList.add('is-typing');
461      const text = typed.dataset.text;
462      let index = 0;
463      const tick = () => {
464        index += 1;
465        typed.textContent = text.slice(0, index);
466        if (index < text.length) {
467          window.setTimeout(tick, index < 18 ? 70 : 42);
468        } else {
469          typed.classList.remove('is-typing');
470        }
471      };
472      tick();
473    };
474
475    const observer = new IntersectionObserver((entries) => {
476      entries.forEach((entry) => {
477        if (!entry.isIntersecting) return;
478        typeAnswer(entry.target.querySelector('.typed-answer'));
479        observer.unobserve(entry.target);
480      });
481    }, { threshold: 0.55 });
482
483    if (!reducedMotion) document.querySelectorAll('.bubble.answer:not([data-form-answer])').forEach((bubble) => observer.observe(bubble));
484
485    const casesTrack = document.querySelector('.cases-track');
486    if (casesTrack) {
487      const cards = [...casesTrack.querySelectorAll('.case-card')];
488      const counter = document.querySelector('.cases-counter');
489      const toolbar = document.querySelector('.cases-toolbar');
490      const prev = document.querySelector('.cases-prev');
491      const next = document.querySelector('.cases-next');
492      const getActiveIndex = () => {
493        const trackLeft = casesTrack.getBoundingClientRect().left;
494        return cards.reduce((best, card, index) => Math.abs(card.getBoundingClientRect().left - trackLeft) < Math.abs(cards[best].getBoundingClientRect().left - trackLeft) ? index : best, 0);
495      };
496      const updateCases = () => {
497        const active = getActiveIndex();
498        counter.textContent = `${String(active + 1).padStart(2, '0')} / ${String(cards.length).padStart(2, '0')}`;
499        prev.disabled = active === 0;
500        next.disabled = active === cards.length - 1;
501      };
502      let slideInteraction = null;
503      let slideGoalTimer;
504      let touchingCases = false;
505      const finishSlideInteraction = () => {
506        if (touchingCases || !slideInteraction) return;
507        const interaction = slideInteraction;
508        slideInteraction = null;
509        if (Math.abs(casesTrack.scrollLeft - interaction.startLeft) < 10) return;
510        if (typeof window.ym === 'function') {
511          window.ym(45765717, 'reachGoal', 'cases_slider_interaction', {
512            method: interaction.method,
513            case_number: getActiveIndex() + 1
514          });
515        }
516      };
517      const scheduleSlideGoal = () => {
518        clearTimeout(slideGoalTimer);
519        slideGoalTimer = setTimeout(finishSlideInteraction, 200);
520      };
521      const beginSlideInteraction = (method) => {
522        clearTimeout(slideGoalTimer);
523        finishSlideInteraction();
524        slideInteraction = { method, startLeft: casesTrack.scrollLeft };
525      };
526      casesTrack.addEventListener('touchstart', () => {
527        beginSlideInteraction('swipe');
528        touchingCases = true;
529      }, { passive: true });
530      casesTrack.addEventListener('touchend', () => {
531        touchingCases = false;
532        scheduleSlideGoal();
533      }, { passive: true });
534      casesTrack.addEventListener('touchcancel', () => {
535        touchingCases = false;
536        slideInteraction = null;
537        clearTimeout(slideGoalTimer);
538      }, { passive: true });
539      const goToCase = (index, method = 'button') => {
540        beginSlideInteraction(method);
541        cards[Math.max(0, Math.min(cards.length - 1, index))].scrollIntoView({ behavior: reducedMotion ? 'auto' : 'smooth', block: 'nearest', inline: 'start' });
542        scheduleSlideGoal();
543      };
544      prev.addEventListener('click', () => goToCase(getActiveIndex() - 1));
545      next.addEventListener('click', () => goToCase(getActiveIndex() + 1));
546      casesTrack.addEventListener('keydown', (event) => {
547        if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;
548        event.preventDefault();
549        goToCase(getActiveIndex() + (event.key === 'ArrowRight' ? 1 : -1), 'keyboard');
550      });
551      casesTrack.addEventListener('scroll', updateCases, { passive: true });
552      casesTrack.addEventListener('scroll', () => {
553        if (casesTrack.scrollLeft > 12) toolbar?.classList.add('is-scrolled');
554        if (slideInteraction) scheduleSlideGoal();
555      }, { passive: true });
556      window.addEventListener('resize', updateCases);
557      casesTrack.querySelectorAll('a[href="#"]').forEach((link) => link.addEventListener('click', (event) => event.preventDefault()));
558      updateCases();
559    }
560
561    const siteNav = document.querySelector('.nav');
562    const anchorLinks = siteNav.querySelectorAll('nav a[href^="#"]');
563    const menuSections = Array.from(anchorLinks, (link) => {
564      const target = document.getElementById(link.hash.slice(1));
565      return { link, section: target?.closest('section') || target };
566    }).filter(({ section }) => section);
567    const setActiveMenu = (hash) => {
568      anchorLinks.forEach((link) => {
569        if (link.hash === hash) {
570          link.setAttribute('aria-current', 'location');
571        } else {
572          link.removeAttribute('aria-current');
573        }
574      });
575    };
576    const updateActiveMenuOnScroll = () => {
577      const offset = siteNav.getBoundingClientRect().bottom + 16;
578      let activeHash = '';
579      let nearestTop = -Infinity;
580      menuSections.forEach(({ link, section }) => {
581        const top = section.getBoundingClientRect().top;
582        if (top <= offset && top > nearestTop) {
583          activeHash = link.hash;
584          nearestTop = top;
585        }
586      });
587      setActiveMenu(activeHash);
588    };
589    let menuScrollFrame = null;
590    const scheduleActiveMenuUpdate = () => {
591      if (menuScrollFrame !== null) return;
592      menuScrollFrame = requestAnimationFrame(() => {
593        menuScrollFrame = null;
594        updateActiveMenuOnScroll();
595      });
596    };
597    window.addEventListener('scroll', scheduleActiveMenuUpdate, { passive: true });
598    window.addEventListener('resize', scheduleActiveMenuUpdate);
599    window.addEventListener('load', scheduleActiveMenuUpdate);
600    window.addEventListener('pageshow', scheduleActiveMenuUpdate);
601    window.addEventListener('hashchange', () => setActiveMenu(window.location.hash));
602    if (window.location.hash) setActiveMenu(window.location.hash);
603    else updateActiveMenuOnScroll();
604    const menuToggle = document.querySelector('.menu-toggle');
605    const closeMenu = () => {
606      siteNav.classList.remove('is-open');
607      menuToggle.setAttribute('aria-expanded', 'false');
608      menuToggle.setAttribute('aria-label', 'Открыть меню');
609    };
610    menuToggle.addEventListener('click', () => {
611      const open = siteNav.classList.toggle('is-open');
612      menuToggle.setAttribute('aria-expanded', String(open));
613      menuToggle.setAttribute('aria-label', open ? 'Закрыть меню' : 'Открыть меню');
614    });
615    siteNav.querySelectorAll('nav a').forEach((link) => link.addEventListener('click', closeMenu));
616    document.addEventListener('keydown', (event) => {
617      if (event.key === 'Escape') closeMenu();
618    });
619
620    const checklistPopup = document.querySelector('#checklist-popup');
621    document.querySelectorAll('[data-checklist-popup]').forEach((button) => {
622      button.addEventListener('click', () => {
623        checklistPopup.showModal();
624        document.documentElement.classList.add('checklist-popup-open');
625        checklistPopup.querySelector('input[type="email"]').focus();
626        if (typeof window.ym === 'function') {
627          window.ym(45765717, 'reachGoal', 'checklist_popup_open');
628        }
629      });
630    });
631    checklistPopup.querySelector('[data-checklist-close]').addEventListener('click', () => checklistPopup.close());
632    checklistPopup.addEventListener('close', () => document.documentElement.classList.remove('checklist-popup-open'));
633    let checklistBackdropPressed = false;
634    const outsideChecklist = (event) => {
635      const rect = checklistPopup.getBoundingClientRect();
636      return event.clientX < rect.left || event.clientX > rect.right || event.clientY < rect.top || event.clientY > rect.bottom;
637    };
638    checklistPopup.addEventListener('pointerdown', (event) => { checklistBackdropPressed = outsideChecklist(event); });
639    checklistPopup.addEventListener('click', (event) => {
640      if (checklistBackdropPressed && outsideChecklist(event)) checklistPopup.close();
641      checklistBackdropPressed = false;
642    });
643
644    const taskPopup = document.querySelector('#task-popup');
645    const popupOverlay = document.querySelector('#task-popup-overlay');
646    const popupClose = taskPopup.querySelector('.task-popup-close');
647    let popupTrigger;
648    let popupBackground = [];
649    const closeTaskPopup = () => {
650      if (popupOverlay.hidden) return;
651      popupOverlay.hidden = true;
652      document.documentElement.classList.remove('task-popup-open');
653      popupBackground.forEach(([element, wasInert]) => { element.inert = wasInert; });
654      popupBackground = [];
655      popupTrigger?.focus({ preventScroll: true });
656    };
657    document.querySelectorAll('[data-task-popup]').forEach((button) => {
658      button.addEventListener('click', (event) => {
659        event.preventDefault();
660        if (!popupOverlay.hidden) return;
661        const caseTitle = button.closest('.case-card')?.querySelector('h3')?.textContent.trim();
662        const taskField = taskPopup.querySelector('textarea[name="name"]');
663        const isPartnership = button.hasAttribute('data-partnership-popup');
664        taskPopup.querySelector('.form-call').hidden = isPartnership;
665        taskPopup.classList.toggle('is-partnership', isPartnership);
666        taskPopup.querySelector('#task-popup-title').textContent = isPartnership ? 'Обсудим партнёрство' : 'Обсудим вашу задачу';
667        if (isPartnership && taskField && !taskField.value.trim()) {
668          taskField.value = 'Хочу обсудить партнёрство. ';
669          taskField.dispatchEvent(new Event('input', { bubbles: true }));
670        }
671        if (caseTitle && taskField) {
672          taskField.value = 'Хочу как в кейсе "' + caseTitle + '"';
673          taskField.dispatchEvent(new Event('input', { bubbles: true }));
674        }
675        popupTrigger = button;
676        closeMenu();
677        popupOverlay.hidden = false;
678        document.documentElement.classList.add('task-popup-open');
679        popupBackground = [...document.body.children]
680          .filter((element) => element !== popupOverlay && !['SCRIPT', 'STYLE', 'LINK'].includes(element.tagName))
681          .map((element) => [element, element.inert]);
682        popupBackground.forEach(([element]) => { element.inert = true; });
683        popupClose.focus({ preventScroll: true });
684        if (typeof window.ym === 'function') {
685          window.ym(45765717, 'reachGoal', 'popup_form_open');
686        }
687      });
688    });
689    popupClose.addEventListener('click', closeTaskPopup);
690    let backdropPressed = false;
691    popupOverlay.addEventListener('pointerdown', (event) => { backdropPressed = event.target === popupOverlay; });
692    popupOverlay.addEventListener('click', (event) => {
693      if (backdropPressed && event.target === popupOverlay) closeTaskPopup();
694      backdropPressed = false;
695    });
696    document.addEventListener('keydown', (event) => {
697      if (popupOverlay.hidden) return;
698      if (event.key === 'Escape') {
699        event.preventDefault();
700        closeTaskPopup();
701      } else if (event.key === 'Tab') {
702        const focusable = [...taskPopup.querySelectorAll('a[href],button,input,textarea,select,[tabindex]')]
703          .filter((element) => !element.disabled && element.tabIndex >= 0 && element.getClientRects().length);
704        const first = focusable[0];
705        const last = focusable[focusable.length - 1];
706        if (!first) {
707          event.preventDefault();
708          taskPopup.focus({ preventScroll: true });
709        } else if (event.shiftKey && (document.activeElement === first || !focusable.includes(document.activeElement))) {
710          event.preventDefault();
711          last.focus({ preventScroll: true });
712        } else if (!event.shiftKey && (document.activeElement === last || !focusable.includes(document.activeElement))) {
713          event.preventDefault();
714          first.focus({ preventScroll: true });
715        }
716      }
717    });
718
719    /*const questionForm = document.querySelector('#question-form');
720    const formAnswer = document.querySelector('#form-answer');
721    questionForm.addEventListener('submit', (event) => {
722      event.preventDefault();
723      const data = new FormData(questionForm);
724      const question = String(data.get('question')).trim();
725      const contact = String(data.get('contact')).trim();
726      const confirmation = '«Спасибо за вопрос. Обычно мы отвечаем в течение 15 минут по будням с 10 до 18 по Москве»';
727
728      formAnswer.dataset.text = confirmation;
729      formAnswer.dataset.typed = '';
730      formAnswer.textContent = reducedMotion ? confirmation : '';
731      if (!reducedMotion) typeAnswer(formAnswer);
732
733    });*/
734  })();
735  
736</script>
736
737    <!-- Yandex.Metrika counter -->
738    
738<script>
vendor: 317 bytes, lines 738-742
738
739       (function(m,e,t,r,i,k,a){ m[i]=m[i]||function(){ (m[i].a=m[i].a||[]).push(arguments)};
740       m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
741       (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
742       ym(
74245765717
vendor: 147 bytes, lines 742-748
742, "init", {
743            clickmap:true,
744            trackLinks:true,
745            accurateTrackBounce:true,
746            webvisor:true
747       });
748    
748</script>
748
749    <noscript><div><img src="https://mc.yandex.ru/watch/45765717" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
750    <!-- /Yandex.Metrika counter -->
751<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
751
752<div id="cookie_notice" role="status" aria-label="Уведомление об использовании cookie">
753    <div class="cookie-text">
754        <div class="cookie-btn">
755            <button type="button" id="cookie_close" class="btn btn_md_primary bg-green2 c-white sweep_top sweep_letter rounded-12">
756                <span class="inside_item"><span data-hover="ОК">ОК</span></span>
757            </button>
758        </div>
759        Мы используем куки. <a class="cookie_btn" target="_blank" href="cookies">Что это значит?</a>
760    </div>
761</div>
762<script>
763    // функция возвращает cookie с именем name, если есть, если нет, то undefined
764    function getCookie(name) {
765      let matches = document.cookie.match(new RegExp(
766      "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
767      ));
768      return matches ? decodeURIComponent(matches[1]) : undefined;
769    }
770    let cookiecook = getCookie("cookiecook"),
771        cookiewin = document.getElementById('cookie_notice');    
772    // проверяем, есть ли у нас cookie, с которой мы не показываем окно и если нет, запускаем показ
773    if (cookiecook != "no") {
774        // показываем    
775        cookiewin.style.display="block"; 
776        // закрываем по клику
777        document.getElementById("cookie_close").addEventListener("click", function(){
778            cookiewin.style.display="none";    
779            // записываем cookie на 1 день, с которой мы не показываем окно
780            let date = new Date;
781            date.setDate(date.getDate() + 1);    
782            document.cookie = "cookiecook=no; path=/; expires=" + date.toUTCString();
783        });
784    }
785    
786    let cookietoast = getCookie("cookietoast"),
787        toatswin = document.getElementById('myTost');
788    if (toatswin){
789        let toastbutton = toatswin.getElementsByClassName('close')[0];
790        if (cookietoast === "no") {
791            // сворачиваем    
792            toatswin.classList.add('dispose');
793            toastbutton.classList.add('click');
794        }
795        toastbutton.addEventListener("click", function(){
796          // записываем cookie на 1 день, с которой мы не показываем окно
797          let date = new Date;
798          date.setDate(date.getDate() + 1);    
799          document.cookie = "cookietoast=no; path=/; expires=" + date.toUTCString();
800        });
801    }
802</script>
vendor: 1 bytes, line 802
802
803<script type="text/javascript" src="/assets/components/ajaxform/js/new.js?ver=4"></script>
vendor: 1 bytes, line 803
803
804<script>AjaxForm.initialize({"assetsUrl":"\/assets\/components\/ajaxform\/","actionUrl":"\/assets\/components\/ajaxform\/action.php","closeMessage":"\u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0432\u0441\u0435","formSelector":"form.ajax_form","clearFieldsOnSuccess":true,"pageId":68});</script>
804
805</body>
806</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.