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<title>ТаÑиÑÑ Ð½Ð° ÑазÑабоÑÐºÑ Ð¸ поддеÑÐ¶ÐºÑ ÑайÑа · Ð¾Ñ 599 â½/меÑ</title> 7<meta name="description" content="ÐÑозÑаÑнÑе ÑенÑ: лендинг Ð¾Ñ 8 900 â½, многоÑÑÑаниÑнÑй Ð¾Ñ 16 900 â½, подпиÑка на ÑопÑовождение BASIC / EXTENDED / MAX Ð¾Ñ 599 â½/меÑ. Ðез ÑкÑÑÑÑÑ Ð¿Ð»Ð°Ñежей." /> 8<link rel="canonical" href="https://primewebstudio.ru/pricing.html" /> 9<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" /> 10<meta name="author" content="Prime Web Studio" /> 11<meta name="theme-color" content="#0A0A0A" /> 12<meta name="yandex-verification" content="REPLACE_WITH_YANDEX_TOKEN" /> 13<meta name="google-site-verification" content="REPLACE_WITH_GOOGLE_TOKEN" /> 14 15<meta property="og:type" content="website" /> 16<meta property="og:url" content="https://primewebstudio.ru/pricing.html" /> 17<meta property="og:title" content="ТаÑиÑÑ Ð½Ð° ÑазÑабоÑÐºÑ Ð¸ поддеÑÐ¶ÐºÑ ÑайÑа · Ð¾Ñ 599 â½/меÑ" /> 18<meta property="og:description" content="ÐÑозÑаÑнÑе ÑенÑ: лендинг Ð¾Ñ 8 900 â
18½, многоÑÑÑаниÑнÑй Ð¾Ñ 16 900 â½, подпиÑка на ÑопÑовождение BASIC / EXTENDED / MAX Ð¾Ñ 599 â½/меÑ. Ðез ÑкÑÑÑÑÑ Ð¿Ð»Ð°Ñежей." /> 19<meta property="og:image" content="https://primewebstudio.ru/assets/og-image.jpg" /> 20<meta property="og:image:width" content="1200" /> 21<meta property="og:image:height" content="630" /> 22<meta property="og:locale" content="ru_RU" /> 23<meta property="og:site_name" content="Prime Web Studio" /> 24 25<meta name="twitter:card" content="summary_large_image" /> 26<meta name="twitter:title" content="ТаÑиÑÑ Ð½Ð° ÑазÑабоÑÐºÑ Ð¸ поддеÑÐ¶ÐºÑ ÑайÑа · Ð¾Ñ 599 â½/меÑ" /> 27<meta name="twitter:description" content="ÐÑозÑаÑнÑе ÑенÑ: лендинг Ð¾Ñ 8 900 â½, многоÑÑÑаниÑнÑй Ð¾Ñ 16 900 â½, подпиÑка на ÑопÑовождение BASIC / EXTENDED / MAX Ð¾Ñ 599 â½/меÑ. Ðез ÑкÑÑÑÑÑ Ð¿Ð»Ð°Ñежей." /> 28<meta name="twitter:image" content="https://primewebstudio.ru/assets/og-image.jpg" /> 29 30<link rel="preconnect" href="https://fonts.googleapis.com" /> 31<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 32<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Inter+Tight:wght@400;500;600&family=JetBrains+Mono:wght@400;500&family=Fraunces:opsz,[email protected],400;9..144,500&family=Space+Grotesk:wght@400;500;600&display=swap" rel="stylesheet" /> 33 34<link rel="stylesheet" href="styles.css" /> 35<link rel="stylesheet" href="tweaks.css" /> 36<link rel="stylesheet" href="pages.css" />
37<script type="application/ld+json"> 38{ 39 "@context": "https://schema.org", 40 "@type": "BreadcrumbList", 41 "itemListElement": [ 42 { 43 "@type": "ListItem", 44 "position": 1, 45 "name": "ÐлавнаÑ", 46 "item": "https://primewebstudio.ru/" 47 }, 48 { 49 "@type": "ListItem", 50 "position": 2, 51 "name": "ТаÑиÑÑ", 52 "item": "https://primewebstudio.ru/pricing.html" 53 } 54 ] 55} 56</script>
vendor: 1 bytes, line 56
56
57<script type="application/ld+json"> 58{ 59 "@context": "https://schema.org", 60 "@type": "OfferCatalog", 61 "name": "УÑлÑги Prime Web Studio", 62 "url": "https://primewebstudio.ru/services.html", 63 "itemListElement": [ 64 { 65 "@type": "Offer", 66 "name": "РазÑабоÑка лендинга под клÑÑ", 67 "description": "ÐдноÑÑÑаниÑнÑй ÑÐ°Ð¹Ñ Ð·Ð° 3 ÑабоÑÐ¸Ñ Ð´Ð½Ñ. SEO, аналиÑика, онлайн-запиÑÑ.", 68 "price": "8900", 69 "priceCurrency": "RUB", 70 "url": "https://primewebstudio.ru/pricing.html#dev", 71 "category": "Web Development" 72 }, 73 { 74 "@type": "Offer", 75 "name": "ÐногоÑÑÑаниÑнÑй ÑÐ°Ð¹Ñ Ð¿Ð¾Ð´ клÑÑ", 76 "description": "5â12 ÑÑÑÐ°Ð½Ð¸Ñ Ñ ÑÑлÑгами, кейÑами, блогом. 5â7 ÑабоÑÐ¸Ñ Ð´Ð½ÐµÐ¹.", 77 "price": "16900", 78 "priceCurrency": "RUB", 79 "url": "https://primewebstudio.ru/pricing.html#dev" 80 }, 81 { 82 "@type": "Offer", 83 "name": "ÐодпиÑка на ÑопÑовождение ÑайÑа BASIC", 84 "description": "ÐÑавки, мониÑоÑинг, бÑкап, поддеÑжка в Telegram.", 85 "price": "599", 86 "priceCurrency": "RUB", 87 "priceSpecification": { 88 "@type": "UnitPriceSpecification", 89 "billingDuration": "P1M" 90 }, 91 "url": "https://primewebstudio.ru/pricing.html#care" 92 }, 93 { 94 "@type": "Offer", 95 "name": "Telegram-пÑиложение Ð´Ð»Ñ ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑайÑа", 96 "description": "Mini App Ð´Ð»Ñ ÑамоÑÑоÑÑелÑнÑÑ Ð¿Ñавок конÑенÑа ÑайÑа.", 97 "url": "https://t.me/pwseditor_bot" 98 }, 99 { 100 "@type": "Offer", 101 "name": "AI-аÑÑиÑÑÐµÐ½Ñ Ð² Telegram", 102 "description": "ÐоÑ-аÑÑиÑÑенÑ: запиÑÑ Ð½Ð° ÑÑлÑгÑ, FAQ, пеÑедаÑа ÑложнÑÑ ÐºÐµÐ¹Ñов ÑеловекÑ.", 103 "price": "3900", 104 "priceCurrency": "RUB", 105 "url": "https://primewebstudio.ru/pricing.html#market" 106 } 107 ] 108} 109</script>
109 110</head> 111<body data-screen-label="03 Pricing"> 112 113<div data-slot="header"></div> 114 115<main> 116 117<!-- Page hero --> 118<section class="page-hero"> 119 <div class="container"> 120 <div class="ph-grid"> 121 <div class="ph-eyebrow eyebrow" data-reveal>â PRICING · DEVELOPMENT & CARE</div> 122 <h1 class="h-display ph-title" data-split-manual> 123 <span class="split-line"><span>ÐÑозÑаÑнÑе</span></span> 124 <span class="split-line"><span>ÑенÑ.</span></span> 125 </h1> 126 <p class="ph-sub" data-reveal style="--reveal-delay: 400ms;"> 127 ÐÐ¸ÐºÐ°ÐºÐ¸Ñ Â«Ð·Ð°Ð²Ð¸ÑÐ¸Ñ Ð¾Ñ». ТаÑÐ¸Ñ ÑикÑиÑÑеÑÑÑ Ð² Ð´ÐµÐ½Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ð±ÑиÑа. 128 </p> 129 </div> 130 131 <nav class="page-toc" data-reveal style="--reveal-delay: 500ms;"> 132 <a href="#dev" class="mono">01 â РазÑабоÑка</a> 133 <a href="#care" class="mono">02 â СопÑовождение</a> 134 <a href="#market" class="mono">03 â ÐаÑÐºÐµÑ ÑеÑвиÑов</a> 135 </nav> 136 </div> 137</section> 138 139<!-- ============ 01 Development ============ --> 140<section class="section" id="dev" data-screen-label="Pricing â Development"> 141 <div class="container"> 142 <div class="section-head"> 143 <div> 144 <div class="eyebrow" data-reveal>â 01 / DEVELOPMENT</div> 145 </div> 146 <h2 class="h-section" data-reveal style="--reveal-delay: 100ms;"> 147 РазÑабоÑка<br/>ÑайÑов под клÑÑ. 148 </h2> 149 </div> 150 151 <div class="dev-table"> 152 <div class="dev-head mono"> 153 <span>ТаÑиÑ</span> 154 <span>ЧÑо Ð²Ñ Ð¾Ð´Ð¸Ñ</span> 155 <span>СÑок</span> 156 <span>Цена</span> 157 </div> 158 159 <article class="dev-row" data-reveal> 160 <div class="dr-tier"> 161 <span class="dr-num mono">01</span> 162 <h3 class="dr-name">Ðендинг</h3> 163 <span class="dr-tag mono">SINGLE-PAGE</span> 164 </div> 165 <ul class="dr-list"> 166 <li>1 ÑÑÑаниÑа Ñ Ð¿ÑодÑманной ÑÑÑÑкÑÑÑой</li> 167 <li>ÐдапÑив, базовое SEO, аналиÑика</li> 168 <li>ÐодклÑÑение Telegram Mini App</li> 169 <li>1 иÑеÑаÑÐ¸Ñ Ð¿Ñавок до запÑÑка</li> 170 </ul> 171 <div class="dr-time"> 172 <span class="mono subtle">DELIVERY</span> 173 <span class="dr-time-val">3 ÑабоÑÐ¸Ñ Ð´Ð½Ñ</span> 174 </div> 175 <div class="dr-price"> 176 <span class="mono subtle">FROM</span> 177 <span class="dr-price-val">8 900 â½</span> 178 <a href="contacts.html" class="dr-cta mono">обÑÑдиÑÑ â</a> 179 </div> 180 </article> 181 182 <article class="dev-row" data-reveal> 183 <div class="dr-tier"> 184 <span class="dr-num mono">02</span> 185 <h3 class="dr-name">ÐногоÑÑÑаниÑнÑй</h3> 186 <span class="dr-tag mono">5â12 PAGES</span> 187 </div> 188 <ul class="dr-list"> 189 <li>УÑлÑги, кейÑÑ, блог, конÑакÑÑ</li> 190 <li>РаÑÑиÑÐµÐ½Ð½Ð°Ñ SEO-ÑазмеÑка, sitemap</li> 191 <li>Mini-CRM или онлайн-запиÑÑ Ð½Ð° вÑбоÑ</li> 192 <li>2 иÑеÑаÑии пÑавок, обÑÑение клиенÑа</li> 193 </ul> 194 <div class="dr-time"> 195 <span class="mono subtle">DELIVERY</span> 196 <span class="dr-time-val">5â7 ÑабоÑÐ¸Ñ Ð´Ð½ÐµÐ¹</span> 197 </div> 198 <div class="dr-price"> 199 <span class="mono subtle">FROM</span> 200 <span class="dr-price-val">16 900 â½</span> 201 <a href="contacts.html" class="dr-cta mono">обÑÑдиÑÑ â</a> 202 </div> 203 </article> 204 205 <article class="dev-row dev-row-dark" data-reveal> 206 <div class="dr-tier"> 207 <span class="dr-num mono">03</span> 208 <h3 class="dr-name">Premium</h3> 209 <span class="dr-tag mono">ON-DEMAND</span> 210 </div> 211 <ul class="dr-list"> 212 <li>ÐолнÑй пÑодакÑен Ñ Ð¸Ð½ÑегÑаÑиÑми</li> 213 <li>Telegram Mini App под бизнеÑ-пÑоÑеÑÑÑ</li> 214 <li>
214AI-аÑÑиÑÑенÑ, AmoCRM, Bitrix24, 1С</li> 215 <li>СопÑовождение аÑÑ Ð¸ÑекÑоÑа в команде</li> 216 </ul> 217 <div class="dr-time"> 218 <span class="mono subtle">DELIVERY</span> 219 <span class="dr-time-val">Ð¾Ñ 14 дней</span> 220 </div> 221 <div class="dr-price"> 222 <span class="mono subtle">QUOTE</span> 223 <span class="dr-price-val">по пÑоекÑÑ</span> 224 <a href="contacts.html" class="dr-cta mono">запÑÐ¾Ñ â</a> 225 </div> 226 </article> 227 </div> 228 229 <p class="dev-foot mono" data-reveal> 230 * Ð¦ÐµÐ½Ñ Ð±ÐµÐ· ÑкÑÑÑÑÑ Ð¿Ð»Ð°Ñежей. ХоÑÑинг и домен â оÑделÑно, ~150â300 â½/меÑ. 231 </p> 232 </div> 233</section> 234 235<!-- ============ 02 Care subscription ============ --> 236<section class="section care-section" id="care" data-screen-label="Pricing â Care"> 237 <div class="container"> 238 <div class="section-head"> 239 <div> 240 <div class="eyebrow" data-reveal>â 02 / SUBSCRIPTION CARE</div> 241 </div> 242 <h2 class="h-section" data-reveal style="--reveal-delay: 100ms;"> 243 ÐодпиÑка<br/>на ÑопÑовождение. 244 </h2> 245 </div> 246 247 <!-- Type toggle --> 248 <div class="type-bar" data-reveal> 249 <div class="type-tabs" role="tablist" aria-label="Тип ÑайÑа"> 250 <button class="type-tab is-active" data-type="multi" role="tab"> 251 <span class="mono">ÐногоÑÑÑаниÑнÑй</span> 252 </button> 253 <button class="type-tab" data-type="landing" role="tab"> 254 <span class="mono">Ðендинг</span> 255 </button> 256 </div> 257 <div class="type-hint mono"> 258 Ð¦ÐµÐ½Ñ Ð¿ÐµÑеÑÑиÑÑваÑÑÑÑ Ð² завиÑимоÑÑи Ð¾Ñ Ñипа ÑайÑа. 259 </div> 260 </div> 261 262 <!-- Period toggle --> 263 <div class="period-bar" data-reveal> 264 <div class="period-tabs" role="tablist"> 265 <button class="period-tab is-active" data-period="1" data-discount="0" role="tab"> 266 <span class="mono">1 меÑ</span> 267 <span class="period-off mono">â</span> 268 </button> 269 <button class="period-tab" data-period="3" data-discount="7" role="tab"> 270 <span class="mono">3 меÑ</span> 271 <span class="period-off mono">â7%</span> 272 </button> 273 <button class="period-tab" data-period="6" data-discount="15" role="tab"> 274 <span class="mono">6 меÑ</span> 275 <span class="period-off mono">â15%</span> 276 </button> 277 <button class="period-tab" data-period="12" data-discount="25" role="tab"> 278 <span class="mono">12 меÑ</span> 279 <span class="period-off mono">â25%</span> 280 </button> 281 </div> 282 <div class="period-hint mono"> 283 Скидка пÑименÑеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки. ÐплаÑа помеÑÑÑно â без аванÑов. 284 </div> 285 </div> 286 287 <!-- Plans --> 288 <div class="plans"> 289 <article class="plan" data-reveal> 290 <header class="plan-head"> 291 <div class="plan-num mono">PLAN 01</div> 292 <h3 class="plan-name">Basic</h3> 293 <p class="plan-tag muted">СÑаÑÑовÑй ÑÑ Ð¾Ð´ Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑенного ÑайÑа.</p> 294 </header> 295 <div class="plan-price"> 296 <span class="mono subtle plan-price-lbl">FROM</span> 297 <div class="plan-price-row"> 298 <span class="plan-price-val" data-base="799" data-base-landing="599">599</span> 299 <span class="plan-price-unit">â½/меÑ</span> 300 </div> 301 <div class="plan-price-meta mono"> 302 <span data-period-mult="1">Ã1 меÑ</span> 303 <span>·</span> 304 <span data-period-total="599">иÑого 599 â½</span> 305 </div> 306 </div> 307 <ul class="plan-list"> 308 <li>Ðо 2 пÑавок в меÑÑÑ</li> 309 <li>ÐониÑоÑинг доÑÑÑпноÑÑи, SSL</li> 310 <li>ÐÑкап 1 Ñаз в неделÑ</li> 311 <li>ÐоддеÑжка в Telegram 10â19 ÐСÐ</li> 312 <li class="muted">â ÐналиÑика повеÑÑ ÐеÑÑики</li> 313 <li class="muted">â AI-аÑÑиÑÑÐµÐ½Ñ Ð² TG</li> 314 </ul> 315 <a href="contacts.html" class="btn btn-ghost plan-cta">ÐодклÑÑиÑÑ</a> 316 </article> 317 318 <article class="plan plan-featured" data-reveal style="--reveal-delay: 100ms;"> 319 <header class="plan-head"> 320 <div class="plan-num mono">PLAN 02 · POPULAR</div> 321 <h3 class="plan-name">Extended</h3> 322 <p class="plan-tag muted">Ð£Ñ Ð¾Ð´ + ÑоÑÑ: пÑавки, конÑенÑ, аналиÑика.</p> 323 </header> 324 <div class="plan-price">
325 <span class="mono subtle plan-price-lbl">FROM</span> 326 <div class="plan-price-row"> 327 <span class="plan-price-val" data-base="1799" data-base-landing="1499">1 499</span> 328 <span class="plan-price-unit">â½/меÑ</span> 329 </div> 330 <div class="plan-price-meta mono"> 331 <span data-period-mult="1">Ã1 меÑ</span> 332 <span>·</span> 333 <span data-period-total="1499">иÑого 1 499 â½</span> 334 </div> 335 </div> 336 <ul class="plan-list"> 337 <li>Ðо 8 пÑавок в меÑÑÑ</li> 338 <li>ÐониÑоÑинг 24/7, бÑкап ежедневно</li> 339 <li>РаÑÑиÑÐµÐ½Ð½Ð°Ñ Ð°Ð½Ð°Ð»Ð¸Ñика и оÑÑÑÑ</li> 340 <li>ÐоддеÑжка 10â22 ÐСÐ</li> 341 <li>Ð¡Ð²Ð¾Ð±Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа в кваÑÑал</li> 342 <li class="muted">â AI-аÑÑиÑÑÐµÐ½Ñ Ð² TG</li> 343 </ul> 344 <a href="contacts.html" class="btn btn-primary plan-cta" data-magnetic="0.25">ÐодклÑÑиÑÑ</a> 345 </article> 346 347 <article class="plan" data-landing-na data-reveal style="--reveal-delay: 200ms;"> 348 <header class="plan-head"> 349 <div class="plan-num mono">PLAN 03</div> 350 <h3 class="plan-name">Max</h3> 351 <p class="plan-tag muted">Ð¡Ð°Ð¹Ñ ÐºÐ°Ðº пÑодÑкÑ, Ñо Ñвоим менеджеÑом.</p> 352 </header> 353 <div class="plan-price"> 354 <span class="mono subtle plan-price-lbl">FROM</span> 355 <div class="plan-price-row"> 356 <span class="plan-price-val" data-base="2590">2 590</span> 357 <span class="plan-price-unit">â½/меÑ</span> 358 </div> 359 <div class="plan-price-meta mono"> 360 <span data-period-mult="1">Ã1 меÑ</span> 361 <span>·</span> 362 <span data-period-total="2590">иÑого 2 590 â½</span> 363 </div> 364 </div> 365 <ul class="plan-list"> 366 <li>ÐÐµÐ·Ð»Ð¸Ð¼Ð¸Ñ Ð¼ÐµÐ»ÐºÐ¸Ñ Ð¿Ñавок</li> 367 <li>SLA 99.9%, оÑÐ²ÐµÑ â¤ 2 ÑаÑов</li> 368 <li>ÐжемеÑÑÑнÑй аÑÐ´Ð¸Ñ Ð¸ план ÑоÑÑа</li> 369 <li>ÐоддеÑжка 24/7</li> 370 <li>1 Ð½Ð¾Ð²Ð°Ñ ÑÑÑаниÑа / лендинг в меÑÑÑ</li> 371 <li>AI-аÑÑиÑÑÐµÐ½Ñ Ð² TG вклÑÑÑн</li> 372 </ul> 373 <a href="contacts.html" class="btn btn-ghost plan-cta">ÐодклÑÑиÑÑ</a> 374 </article> 375 </div> 376 377 <p class="dev-foot mono" data-reveal> 378 <span data-foot-multi>* Ð¦ÐµÐ½Ñ ÑÐºÐ°Ð·Ð°Ð½Ñ Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¾ÑÑÑаниÑнÑÑ ÑайÑов. ÐÐ»Ñ Ð»ÐµÐ½Ð´Ð¸Ð½Ð³Ð¾Ð² BASIC / EXTENDED â 599 / 1 499 â½.</span> 379 <span data-foot-landing hidden>* ТаÑиÑÑ Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾ÑÑÑаниÑнÑÑ Ð»ÐµÐ½Ð´Ð¸Ð½Ð³Ð¾Ð². ÐодпиÑка MAX доÑÑÑпна ÑолÑко Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¾ÑÑÑаниÑнÑÑ ÑайÑов.</span> 380 </p> 381 </div> 382</section> 383<section class="section market-section" id="market" data-screen-label="Pricing â Marketplace"> 384 <div class="container"> 385 <div class="section-head"> 386 <div> 387 <div class="eyebrow" data-reveal>â 03 / SAAS MARKETPLACE</div> 388 </div> 389 <h2 class="h-section" data-reveal style="--reveal-delay: 100ms;"> 390 ÐаÑÐºÐµÑ ÑеÑвиÑов.<br/> 391 <span class="muted">ÐодклÑÑаÑÑÑÑ Ð·Ð° паÑÑ Ð´Ð½ÐµÐ¹.</span> 392 </h2> 393 </div> 394 395 <div class="market-grid"> 396 <article class="mkt-card" data-reveal> 397 <div class="mkt-num mono">N°01</div> 398 <h3 class="mkt-name">AI-аÑÑиÑÑÐµÐ½Ñ Ð² Telegram</h3> 399 <p class="mkt-desc"> 400 ÐÐ¾Ñ Ð¾ÑвеÑÐ°ÐµÑ ÐºÐ»Ð¸ÐµÐ½Ñам кÑÑглоÑÑÑоÑно, запиÑÑÐ²Ð°ÐµÑ Ð½Ð° ÑÑлÑгÑ, 401 пеÑÐµÐ²Ð¾Ð´Ð¸Ñ ÑложнÑе кейÑÑ Ð½Ð° Ñеловека. 402 </p> 403 <div class="mkt-foot"> 404 <span class="mono subtle">FROM</span> 405 <span class="mkt-price">3 900 â½/меÑ</span> 406 </div> 407 </article> 408 409 <article class="mkt-card" data-reveal style="--reveal-delay: 80ms;"> 410 <div class="mkt-num mono">N°02</div> 411 <h3 class="mkt-name">Mini-CRM</h3> 412 <p class="mkt-desc"> 413 ÐÑÐ³ÐºÐ°Ñ CRM пÑÑмо на ÑайÑе: лидÑ, ÑÑаÑÑÑÑ, напоминаниÑ. 414 Ðез пеÑеезда на «взÑоÑлÑÑ» ÑиÑÑемÑ. 415 </p> 416 <div class="mkt-foot">
417 <span class="mono subtle">FROM</span> 418 <span class="mkt-price">1 900 â½/меÑ</span> 419 </div> 420 </article> 421 422 <article class="mkt-card" data-reveal style="--reveal-delay: 160ms;"> 423 <div class="mkt-num mono">N°03</div> 424 <h3 class="mkt-name">Ðнлайн-запиÑÑ</h3> 425 <p class="mkt-desc"> 426 РаÑпиÑание маÑÑеÑов, окна Ñвободного вÑемени, оплаÑа впеÑÑд. 427 ÐнÑегÑиÑÑеÑÑÑ Ñ Google Calendar и ЯндекÑ.ÐоÑÑой. 428 </p> 429 <div class="mkt-foot"> 430 <span class="mono subtle">FROM</span> 431 <span class="mkt-price">1 490 â½/меÑ</span> 432 </div> 433 </article> 434 435 <article class="mkt-card" data-reveal style="--reveal-delay: 240ms;"> 436 <div class="mkt-num mono">N°04</div> 437 <h3 class="mkt-name">TG-маÑкеÑинг</h3> 438 <p class="mkt-desc"> 439 ÐапÑÑк канала, конÑенÑ-план, ÑаÑÑÑлки, ÑегменÑаÑÐ¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑиков 440 и оÑÑÑÑÑ Ð¿Ð¾ конвеÑÑиÑм. 441 </p> 442 <div class="mkt-foot"> 443 <span class="mono subtle">FROM</span> 444 <span class="mkt-price">4 900 â½/меÑ</span> 445 </div> 446 </article> 447 </div> 448 </div> 449</section> 450 451<!-- CTA --> 452<section class="cta-finale" data-screen-label="CTA"> 453 <div class="container cta-inner"> 454 <div class="cta-eyebrow mono" data-reveal>â FINALE</div> 455 <h2 class="cta-title h-display" data-split-manual> 456 <span class="split-line"><span>ÐодбеÑÑм ÑаÑиÑ</span></span> 457 <span class="split-line"><span>под ваÑÑ Ð·Ð°Ð´Ð°ÑÑ.</span></span> 458 </h2> 459 <p class="cta-sub" data-reveal style="--reveal-delay: 400ms;"> 460 РаÑÑкажиÑе пÑо ниÑÑ â пÑиÑлÑм ÑаÑÑÑÑ Ð² ÑеÑение днÑ. 461 </p> 462 <a href="contacts.html" class="btn cta-btn" data-magnetic="0.35" data-reveal style="--reveal-delay: 500ms;"> 463 ÐаполниÑÑ Ð±ÑÐ¸Ñ <span class="arrow">â</span> 464 </a> 465 </div> 466</section> 467 468</main> 469 470<div data-slot="footer"></div> 471
472<script src="https://unpkg.com/[email protected]/dist/lenis.min.js"></script>
vendor: 1 bytes, line 472
472
473<script src="partials.js"></script>
vendor: 1 bytes, line 473
473
474<script src="app.js"></script>
vendor: 1 bytes, line 474
474
475<script> 476 // Period + type toggle 477 (function () { 478 const tabs = document.querySelectorAll('.period-tab'); 479 const typeTabs = document.querySelectorAll('.type-tab'); 480 const vals = document.querySelectorAll('[data-base]'); 481 const mults = document.querySelectorAll('[data-period-mult]'); 482 const totals = document.querySelectorAll('[data-period-total]'); 483 const naPlans = document.querySelectorAll('[data-landing-na]'); 484 const footMulti = document.querySelector('[data-foot-multi]'); 485 const footLanding = document.querySelector('[data-foot-landing]'); 486 487 let state = { period: 1, discount: 0, type: 'multi' }; 488 const animState = new WeakMap(); // el -> { from, to, start, rafId } 489 490 function fmt(n) { return Math.round(n).toLocaleString('ru-RU').replace(/,/g, ' '); } 491 const easeOut = (t) => 1 - Math.pow(1 - t, 3); 492 493 // "Reel-from-9" formatter: returns a string of the same digit-length as target, 494 // where each digit is interpolated from 9 down to target digit at progress p (0..1). 495 function reelFmt(target, p) { 496 const e = easeOut(p); 497 const tStr = String(Math.round(target)); 498 const len = tStr.length; 499 let out = ''; 500 for (let i = 0; i < len; i++) { 501 const td = parseInt(tStr[i], 10); 502 // Each digit rolls from 9 to td. Staggered by position so right-most digits 503 // settle later (feels like a counter). 504 const stagger = i * 0.06; 505 const pi = Math.max(0, Math.min(1, (p - stagger) / (1 - stagger))); 506 const ei = easeOut(pi); 507 const d = Math.round(9 + (td - 9) * ei); 508 out += String(d); 509 }
510 // Reinsert ru-RU thousands separators 511 return Number(out).toLocaleString('ru-RU').replace(/,/g, ' '); 512 } 513 514 function reelTo(el, target, prefix, suffix) { 515 const prev = animState.get(el); 516 if (prev && prev.rafId) cancelAnimationFrame(prev.rafId); 517 const duration = 700; 518 const startT = performance.now(); 519 const meta = { current: target, rafId: 0 }; 520 animState.set(el, meta); 521 function tick(now) { 522 const p = Math.min(1, (now - startT) / duration); 523 el.textContent = (prefix || '') + reelFmt(target, p) + (suffix || ''); 524 meta.current = target; 525 if (p < 1) meta.rafId = requestAnimationFrame(tick); 526 else { el.textContent = (prefix || '') + fmt(target) + (suffix || ''); el.dataset.lastValue = String(target); meta.rafId = 0; } 527 } 528 meta.rafId = requestAnimationFrame(tick); 529 } 530 531 function basisFor(el) { 532 if (state.type === 'landing' && el.dataset.baseLanding) { 533 return parseFloat(el.dataset.baseLanding); 534 } 535 return parseFloat(el.dataset.base); 536 } 537 538 function apply(animate) { 539 const useAnim = animate !== false; 540 vals.forEach(el => { 541 const base = basisFor(el); 542 const monthly = base * (1 - state.discount / 100); 543 if (useAnim) reelTo(el, monthly); 544 else { el.textContent = fmt(monthly); el.dataset.lastValue = String(monthly); } 545 }); 546 mults.forEach(el => { el.textContent = 'Ã' + state.period + ' меÑ'; }); 547 totals.forEach((el, i) => { 548 const base = basisFor(vals[i]); 549 const total = base * (1 - state.discount / 100) * state.period; 550 if (useAnim) { 551 reelTo(el, total, 'иÑого ', ' â½'); 552 } else { 553 el.textContent = 'иÑого ' + fmt(total) + ' â½'; 554 el.dataset.lastValue = String(total); 555 } 556 }); 557 naPlans.forEach(p => p.classList.toggle('is-na', state.type === 'landing')); 558 if (footMulti && footLanding) { 559 footMulti.hidden = state.type === 'landing'; 560 footLanding.hidden = state.type !== 'landing'; 561 } 562 } 563
564 tabs.forEach(t => { 565 t.addEventListener('click', () => { 566 tabs.forEach(x => x.classList.remove('is-active')); 567 t.classList.add('is-active'); 568 state.period = parseInt(t.dataset.period, 10); 569 state.discount = parseInt(t.dataset.discount, 10); 570 apply(); 571 }); 572 }); 573 typeTabs.forEach(t => { 574 t.addEventListener('click', () => { 575 typeTabs.forEach(x => x.classList.remove('is-active')); 576 t.classList.add('is-active'); 577 state.type = t.dataset.type; 578 apply(); 579 }); 580 }); 581 apply(false); 582 })(); 583</script>
583 584 585</body> 586</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.