Files
farm-cmms-landing/index.html
T

1729 lines
90 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>АгроТО — CMMS для агропредприятий | agroto.ru</title>
<meta name="description" content="Платформа управления техническим обслуживанием для сельскохозяйственных предприятий. Плановое ТО, аварийные заявки и склад запчастей.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Onest:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--g900: #173626;
--g700: #1e5c3a;
--g500: #2d7d53;
--g400: #3d9966;
--g200: #a8ddb8;
--g100: #d6f0df;
--g50: #eef8f2;
--bg: #faf9f6;
--bg2: #f4f2ed;
--white:#ffffff;
--ink: #151515;
--ink2: #404040;
--ink3: #767676;
--sand: #e6e0d5;
--r: 10px;
--r2: 16px;
--r3: 24px;
--sh1: 0 1px 4px rgba(0,0,0,0.05);
--sh2: 0 4px 20px rgba(0,0,0,0.08);
--sh3: 0 12px 48px rgba(0,0,0,0.10);
--t: 0.22s ease;
}
html { scroll-behavior: smooth; font-size: 16px; }
body {
font-family: 'Onest', sans-serif;
background: var(--bg);
color: var(--ink);
line-height: 1.65;
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
}
/* subtle grain */
body::after {
content: '';
position: fixed;
inset: 0;
pointer-events: none;
z-index: 9999;
opacity: 0.025;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
}
h1,h2,h3,h4 { font-family: 'Onest', sans-serif; line-height: 1.12; letter-spacing: -0.02em; }
p { color: var(--ink2); }
a { text-decoration: none; color: inherit; }
.wrap { padding-left: max(24px, calc((100vw - 1160px)/2)); padding-right: max(24px, calc((100vw - 1160px)/2)); }
/* ── NAV ─────────────────────────────────────── */
nav {
position: fixed; top: 0; left: 0; right: 0; z-index: 200;
height: 64px;
display: flex; align-items: center; justify-content: space-between;
padding: 0 max(24px, calc((100vw - 1160px)/2));
background: rgba(250,249,246,0.88);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-bottom: 1px solid transparent;
transition: border-color var(--t), box-shadow var(--t);
}
nav.scrolled { border-color: rgba(0,0,0,0.07); box-shadow: 0 1px 16px rgba(0,0,0,0.06); }
.nav-logo { display: flex; align-items: center; gap: 9px; }
.nav-mark {
width: 32px; height: 32px; border-radius: 8px;
background: var(--g700); display: flex; align-items: center; justify-content: center;
}
.nav-mark svg { width: 16px; height: 16px; }
.nav-name { font-family: 'Onest', sans-serif; font-weight: 600; font-size: 1.15rem; letter-spacing: -0.01em; color: var(--ink); }
.nav-links { display: flex; gap: 28px; list-style: none; }
.nav-links a { font-size: 0.9rem; font-weight: 400; color: var(--ink2); transition: color var(--t); }
.nav-links a:hover { color: var(--ink); }
.nav-right { display: flex; align-items: center; gap: 10px; }
/* hamburger */
.nav-burger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 4px; background: none; border: none; }
.nav-burger span { display: block; width: 22px; height: 2px; background: var(--ink); border-radius: 2px; transition: var(--t); }
/* mobile menu */
.nav-mobile {
display: none; position: fixed; top: 64px; left: 0; right: 0;
background: var(--white); border-bottom: 1px solid var(--sand);
padding: 20px max(24px, calc((100vw - 1160px)/2)) 28px;
flex-direction: column; gap: 4px; z-index: 199;
box-shadow: var(--sh3);
}
.nav-mobile.open { display: flex; }
.nav-mobile a { font-size: 1rem; padding: 10px 0; color: var(--ink2); border-bottom: 1px solid rgba(0,0,0,0.05); }
.nav-mobile a:last-child { border: none; }
.nav-mobile .btn { margin-top: 12px; text-align: center; justify-content: center; }
/* ── BUTTONS ─────────────────────────────────── */
.btn {
display: inline-flex; align-items: center; gap: 7px;
padding: 9px 20px; border-radius: var(--r);
font-family: 'Onest', sans-serif; font-size: 0.9rem; font-weight: 500;
cursor: pointer; border: none; transition: all var(--t); white-space: nowrap;
}
.btn-primary { background: var(--g700); color: #fff; }
.btn-primary:hover { background: var(--g900); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(30,92,58,0.3); }
.btn-ghost { background: transparent; color: var(--ink2); border: 1.5px solid var(--sand); }
.btn-ghost:hover { background: var(--white); color: var(--ink); border-color: #ccc; }
.btn-lg { padding: 12px 26px; font-size: 0.95rem; border-radius: var(--r2); }
.btn-xl { padding: 14px 32px; font-size: 1rem; border-radius: var(--r2); font-weight: 500; }
.btn-outline-green { background: transparent; color: var(--g700); border: 1.5px solid var(--g200); }
.btn-outline-green:hover { background: var(--g50); border-color: var(--g400); }
/* ── SECTION BASE ────────────────────────────── */
.section { padding: 96px max(24px, calc((100vw - 1160px)/2)); }
.eyebrow {
display: inline-flex; align-items: center; gap: 8px;
font-size: 0.78rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
color: var(--g500); margin-bottom: 16px;
}
.eyebrow::before { content: ''; width: 18px; height: 2px; background: var(--g400); border-radius: 2px; }
.section-title {
font-size: clamp(2rem, 4vw, 3rem); font-weight: 600; color: var(--ink);
max-width: 640px; margin-bottom: 16px;
}
.section-title em { font-style: italic; color: var(--g500); }
.section-sub {
font-size: 1.05rem; color: var(--ink2); max-width: 540px;
line-height: 1.7; margin-bottom: 52px;
}
/* ── HERO ────────────────────────────────────── */
.hero {
padding-top: 140px; padding-bottom: 80px;
padding-left: max(24px, calc((100vw - 1160px)/2));
padding-right: max(24px, calc((100vw - 1160px)/2));
position: relative; overflow: hidden;
}
/* field-row background */
.hero::before {
content: '';
position: absolute; top: 0; right: 0;
width: 52%; height: 100%;
background: linear-gradient(135deg, var(--g50) 0%, #e8f4ec 100%);
clip-path: polygon(8% 0, 100% 0, 100% 100%, 0% 100%);
z-index: 0;
}
.hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; min-height: 560px; }
.hero-badge {
display: inline-flex; align-items: center; gap: 8px;
padding: 6px 14px; border-radius: 99px;
background: var(--g50); border: 1px solid var(--g100);
font-size: 0.8rem; font-weight: 500; color: var(--g700); margin-bottom: 24px;
}
.hero-badge-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--g400); animation: pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.6;transform:scale(1.3)} }
.hero h1 {
font-size: clamp(2.6rem, 5vw, 4.2rem);
font-weight: 600; line-height: 1.07;
letter-spacing: -0.03em; color: var(--ink); margin-bottom: 22px;
}
.hero h1 em { font-style: italic; color: var(--g500); }
.hero-sub { font-size: 1.1rem; color: var(--ink2); line-height: 1.72; max-width: 460px; margin-bottom: 36px; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 40px; }
.hero-trust { display: flex; align-items: center; gap: 12px; }
.hero-avatars { display: flex; }
.hero-avatars span {
width: 32px; height: 32px; border-radius: 50%; border: 2.5px solid var(--white);
display: flex; align-items: center; justify-content: center;
font-size: 0.65rem; font-weight: 600; color: white; margin-left: -8px;
}
.hero-avatars span:first-child { margin-left: 0; }
.hero-trust-text { font-size: 0.85rem; color: var(--ink3); }
.hero-trust-text strong { color: var(--ink2); }
/* hero visual */
.hero-visual { position: relative; display: flex; justify-content: center; align-items: center; }
.hero-dash {
background: var(--white);
border-radius: var(--r3);
box-shadow: var(--sh3), 0 0 0 1px rgba(0,0,0,0.06);
overflow: hidden; width: 100%; max-width: 460px;
animation: float 4s ease-in-out infinite;
}
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
.dash-bar {
background: var(--g900); padding: 10px 16px;
display: flex; align-items: center; gap: 8px;
}
.dash-dots { display: flex; gap: 5px; }
.dash-dots i { width: 10px; height: 10px; border-radius: 50%; }
.dash-dots i:nth-child(1){ background:#ff5f57 }
.dash-dots i:nth-child(2){ background:#ffbd2e }
.dash-dots i:nth-child(3){ background:#28c840 }
.dash-title { font-size: 0.75rem; color: rgba(255,255,255,0.5); font-family: 'Onest', sans-serif; margin-left: 4px; }
.dash-body { padding: 20px; }
.dash-kpis { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-bottom: 16px; }
.dash-kpi {
background: var(--bg); border-radius: var(--r); padding: 12px;
text-align: center; border: 1px solid rgba(0,0,0,0.05);
}
.dash-kpi-num { font-family: 'Onest', sans-serif; font-size: 1.6rem; font-weight: 600; line-height: 1; }
.dash-kpi-num.red { color: #e74c3c; }
.dash-kpi-num.amber{ color: #e67e22; }
.dash-kpi-num.green{ color: var(--g500); }
.dash-kpi-label { font-size: 0.7rem; color: var(--ink3); margin-top: 3px; }
.dash-tasks { display: flex; flex-direction: column; gap: 7px; }
.dash-task {
display: flex; align-items: center; gap: 10px;
background: var(--bg); border-radius: var(--r); padding: 9px 12px;
border-left: 3px solid transparent; border: 1px solid rgba(0,0,0,0.05);
}
.dash-task.t-over { border-left-color: #e74c3c; }
.dash-task.t-prog { border-left-color: #e67e22; }
.dash-task.t-pend { border-left-color: var(--g400); }
.dash-task-ico {
width: 28px; height: 28px; border-radius: 6px; flex-shrink: 0;
display: flex; align-items: center; justify-content: center;
}
.t-over .dash-task-ico { background: #fdecea; }
.t-prog .dash-task-ico { background: #fef3e2; }
.t-pend .dash-task-ico { background: var(--g50); }
.dash-task-ico svg { width: 14px; height: 14px; }
.t-over .dash-task-ico svg { stroke: #e74c3c; }
.t-prog .dash-task-ico svg { stroke: #e67e22; }
.t-pend .dash-task-ico svg { stroke: var(--g500); }
.dash-task-info { flex: 1; min-width: 0; }
.dash-task-name { font-size: 0.8rem; font-weight: 500; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dash-task-meta { font-size: 0.7rem; color: var(--ink3); }
.dash-tag {
font-size: 0.65rem; font-weight: 600; padding: 2px 8px; border-radius: 99px; white-space: nowrap;
}
.t-over .dash-tag { background: #fdecea; color: #e74c3c; }
.t-prog .dash-tag { background: #fef3e2; color: #e67e22; }
.t-pend .dash-tag { background: var(--g50); color: var(--g600); }
/* floating badges */
.hero-float {
position: absolute;
background: var(--white); border-radius: var(--r2); padding: 10px 14px;
box-shadow: var(--sh2); border: 1px solid rgba(0,0,0,0.07);
display: flex; align-items: center; gap: 9px; font-size: 0.8rem; font-weight: 500;
white-space: nowrap; z-index: 10;
}
.hero-float-1 { top: -16px; left: -24px; animation: floatB 3.5s ease-in-out infinite 0.5s; }
.hero-float-2 { bottom: -16px; right: -16px; animation: floatB 3.5s ease-in-out infinite 1s; }
@keyframes floatB { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }
.float-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.float-dot.green { background: var(--g400); }
.float-dot.blue { background: #3b82f6; }
/* ── LOGOS ───────────────────────────────────── */
.logos { padding: 32px max(24px, calc((100vw - 1160px)/2)); border-top: 1px solid var(--sand); border-bottom: 1px solid var(--sand); background: var(--white); }
.logos-label { font-size: 0.78rem; font-weight: 500; color: var(--ink3); text-align: center; margin-bottom: 24px; letter-spacing: 0.05em; text-transform: uppercase; }
.logos-marquee-wrap { overflow: hidden; position: relative; }
.logos-marquee-wrap::before,
.logos-marquee-wrap::after {
content: ''; position: absolute; top: 0; width: 80px; height: 100%; z-index: 2; pointer-events: none;
}
.logos-marquee-wrap::before { left: 0; background: linear-gradient(to right, var(--white), transparent); }
.logos-marquee-wrap::after { right: 0; background: linear-gradient(to left, var(--white), transparent); }
.logos-row { display: flex; align-items: center; gap: 12px; width: max-content; animation: logos-scroll 28s linear infinite; }
.logos-row:hover { animation-play-state: paused; }
@keyframes logos-scroll {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
.logo-pill {
display: flex; align-items: center; gap: 8px;
padding: 8px 18px; border-radius: 99px;
background: var(--bg2); border: 1px solid var(--sand);
font-size: 0.85rem; font-weight: 500; color: var(--ink2);
transition: var(--t);
}
.logo-pill:hover { background: var(--white); border-color: var(--g200); color: var(--ink); }
.logo-pill svg { width: 16px; height: 16px; }
/* ── PROBLEM ─────────────────────────────────── */
.problem-section { background: var(--white); }
.problem-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.problem-card {
padding: 28px; border-radius: var(--r2);
background: var(--bg); border: 1px solid var(--sand);
transition: var(--t);
}
.problem-card:hover { transform: translateY(-3px); box-shadow: var(--sh2); border-color: var(--g100); }
.problem-ico {
width: 44px; height: 44px; border-radius: var(--r);
background: #fff3f3; display: flex; align-items: center; justify-content: center; margin-bottom: 16px;
}
.problem-ico svg { width: 20px; height: 20px; stroke: #e74c3c; }
.problem-card h3 { font-size: 1rem; font-weight: 600; margin-bottom: 8px; color: var(--ink); }
.problem-card p { font-size: 0.9rem; line-height: 1.65; color: var(--ink3); }
/* ── FEATURES ────────────────────────────────── */
.features-intro { max-width: 600px; margin-bottom: 56px; }
.features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.feat-card { grid-column: span 1; }
.feat-card {
padding: 32px; border-radius: var(--r2);
background: var(--white); border: 1px solid var(--sand);
transition: all var(--t); position: relative; overflow: hidden;
}
.feat-card::before {
content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
background: linear-gradient(90deg, var(--g400), var(--g200));
transform: scaleX(0); transform-origin: left; transition: transform 0.3s ease;
}
.feat-card:hover { transform: translateY(-4px); box-shadow: var(--sh3); border-color: var(--g100); }
.feat-card:hover::before { transform: scaleX(1); }
.feat-ico {
width: 48px; height: 48px; border-radius: var(--r2); margin-bottom: 20px;
background: var(--g50); display: flex; align-items: center; justify-content: center;
transition: background var(--t);
}
.feat-card:hover .feat-ico { background: var(--g100); }
.feat-ico svg { width: 22px; height: 22px; stroke: var(--g700); }
.feat-card h3 { font-size: 1.05rem; font-weight: 600; margin-bottom: 10px; color: var(--ink); }
.feat-card p { font-size: 0.88rem; line-height: 1.68; color: var(--ink3); margin-bottom: 16px; }
.feat-tag { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--g500); }
/* ── HOW ─────────────────────────────────────── */
.how-section { background: var(--white); }
.how-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; position: relative; }
.how-steps::before {
content: ''; position: absolute; top: 28px; left: calc(100%/6); right: calc(100%/6);
height: 1px; background: repeating-linear-gradient(90deg, var(--sand) 0, var(--sand) 8px, transparent 8px, transparent 16px);
z-index: 0;
}
.how-step { text-align: center; padding: 0 24px; position: relative; z-index: 1; }
.how-num {
width: 56px; height: 56px; border-radius: 50%;
background: var(--white); border: 2px solid var(--g200);
display: flex; align-items: center; justify-content: center;
font-family: 'Onest', sans-serif; font-size: 1.4rem; font-weight: 700; color: var(--g700);
margin: 0 auto 24px; box-shadow: 0 0 0 6px var(--g50);
}
.how-step h3 { font-size: 1.05rem; font-weight: 600; margin-bottom: 10px; color: var(--ink); }
.how-step p { font-size: 0.88rem; color: var(--ink3); line-height: 1.68; }
/* ── METRICS ─────────────────────────────────── */
.metrics-section { background: var(--g50); border-top: 1px solid var(--g100); border-bottom: 1px solid var(--g100); }
.metrics-header { text-align: center; margin-bottom: 56px; }
.metrics-header .section-title { margin: 0 auto 0; }
.metrics-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 2px; }
.metric {
text-align: center; padding: 48px 24px;
background: var(--white); border: 1px solid var(--g100);
}
.metric:first-child { border-radius: var(--r2) 0 0 var(--r2); }
.metric:last-child { border-radius: 0 var(--r2) var(--r2) 0; }
.metric-num {
font-family: 'Onest', sans-serif; font-size: 3rem; font-weight: 700;
color: var(--g700); line-height: 1; margin-bottom: 10px;
}
.metric-label { font-size: 0.88rem; color: var(--ink2); line-height: 1.5; }
/* ── PRICING ─────────────────────────────────── */
.pricing-header { text-align: center; margin-bottom: 36px; }
.pricing-header .section-title, .pricing-header .section-sub { max-width: 520px; margin-left: auto; margin-right: auto; }
.pricing-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; align-items: stretch; }
.pricing-card {
background: var(--white); border-radius: var(--r3); padding: 28px;
border: 1.5px solid var(--sand); position: relative; overflow: hidden;
transition: box-shadow var(--t);
display: flex; flex-direction: column;
}
.pricing-card:hover { box-shadow: var(--sh3); }
.pricing-card.featured {
border-color: var(--g500); box-shadow: 0 0 0 1px var(--g500), var(--sh2);
transform: scale(1.02);
}
.pricing-card.featured:hover { box-shadow: 0 0 0 1px var(--g500), var(--sh3); }
.pricing-ribbon {
position: absolute; top: 20px; right: -28px;
background: var(--g700); color: white;
font-size: 0.7rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
padding: 5px 36px; transform: rotate(35deg);
}
.pricing-badge { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink3); margin-bottom: 8px; }
.pricing-plan { font-family: 'Onest', sans-serif; font-size: 1.3rem; font-weight: 600; color: var(--ink); margin-bottom: 6px; }
.pricing-desc { font-size: 0.83rem; color: var(--ink3); line-height: 1.55; margin-bottom: 16px; min-height: auto; }
.pricing-price { display: flex; align-items: baseline; gap: 4px; margin-bottom: 16px; }
.pricing-amount { font-family: 'Onest', sans-serif; font-size: 2rem; font-weight: 700; color: var(--ink); line-height: 1; }
.pricing-amount.contact { font-size: 1.6rem; }
.pricing-cur { font-size: 1.2rem; font-weight: 500; color: var(--ink2); }
.pricing-per { font-size: 0.85rem; color: var(--ink3); }
.pricing-divider { height: 1px; background: var(--sand); margin: 0 0 16px; }
.pricing-feats { list-style: none; display: flex; flex-direction: column; gap: 7px; margin-bottom: 0; flex: 1; padding-bottom: 24px; }
.pricing-feats li { display: flex; align-items: center; gap: 8px; font-size: 0.83rem; color: var(--ink2); }
.pricing-feats li svg { width: 16px; height: 16px; stroke: var(--g500); flex-shrink: 0; }
.pricing-card .btn { width: 100%; justify-content: center; margin-top: auto; }
/* ── CAROUSEL (общий) ───────────────────────── */
.carousel-wrap { position: relative; }
/* На десктопе carousel-page прозрачен — карточки идут прямо в грид */
.features-grid .carousel-page { display: contents; }
.problem-grid .carousel-page { display: contents; }
.carousel-dots {
display: none;
justify-content: center; gap: 7px;
margin-top: 24px;
}
.carousel-dot {
width: 7px; height: 7px; border-radius: 50%;
background: var(--sand); border: none; padding: 0; cursor: pointer;
transition: background 0.2s, transform 0.2s;
}
.carousel-dot.active { background: var(--g500); transform: scale(1.3); }
/* ── PRICING CAROUSEL ────────────────────────── */
.pricing-carousel-wrap { position: relative; }
.pricing-dots {
display: none;
justify-content: center; gap: 7px;
margin-top: 28px;
}
.pricing-dot {
width: 7px; height: 7px; border-radius: 50%;
background: var(--sand); border: none; padding: 0; cursor: pointer;
transition: background 0.2s, transform 0.2s;
}
.pricing-dot.active { background: var(--g500); transform: scale(1.25); }
/* ── TESTIMONIALS ────────────────────────────── */
.testimonials-section { background: var(--bg2); }
.testi-header { text-align: center; margin-bottom: 52px; }
.testi-header .section-title { margin: 0 auto 16px; }
.testi-header .section-sub { margin: 0 auto; }
.testi-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.testi-card {
background: var(--white); border-radius: var(--r2); padding: 32px;
border: 1px solid var(--sand); transition: var(--t);
}
.testi-card:hover { box-shadow: var(--sh2); transform: translateY(-3px); }
.testi-stars { display: flex; gap: 3px; margin-bottom: 16px; }
.testi-stars svg { width: 16px; height: 16px; fill: #f59e0b; stroke: none; }
.testi-text { font-size: 0.92rem; line-height: 1.72; color: var(--ink2); margin-bottom: 24px; font-style: italic; }
.testi-author { display: flex; align-items: center; gap: 12px; }
.testi-avatar {
width: 40px; height: 40px; border-radius: 50%;
display: flex; align-items: center; justify-content: center;
font-size: 0.75rem; font-weight: 700; color: white; flex-shrink: 0;
}
.testi-name { font-weight: 600; font-size: 0.88rem; color: var(--ink); }
.testi-co { font-size: 0.8rem; color: var(--ink3); }
/* ── FAQ ─────────────────────────────────────── */
.faq-section { background: var(--white); }
.faq-inner { display: grid; grid-template-columns: 1fr 2fr; gap: 80px; align-items: start; }
.faq-title { font-size: clamp(1.8rem,3vw,2.4rem); font-weight: 600; color: var(--ink); }
.faq-list { display: flex; flex-direction: column; }
.faq-item { border-bottom: 1px solid var(--sand); }
.faq-q {
width: 100%; background: none; border: none; cursor: pointer;
display: flex; justify-content: space-between; align-items: center;
padding: 20px 0; text-align: left; gap: 16px;
}
.faq-q-text { font-size: 0.95rem; font-weight: 500; color: var(--ink); line-height: 1.4; }
.faq-icon { width: 20px; height: 20px; flex-shrink: 0; transition: transform 0.25s ease; }
.faq-icon svg { width: 20px; height: 20px; stroke: var(--ink3); }
.faq-item.open .faq-icon { transform: rotate(45deg); }
.faq-a { display: none; padding: 0 0 20px; font-size: 0.88rem; color: var(--ink2); line-height: 1.72; }
.faq-item.open .faq-a { display: block; }
/* ── CTA ─────────────────────────────────────── */
.cta-section {
background: var(--g900); text-align: center;
padding: 96px max(24px, calc((100vw - 1160px)/2));
position: relative; overflow: hidden;
}
.cta-section::before {
content: '';
position: absolute; inset: 0;
background: radial-gradient(ellipse 80% 80% at 50% 50%, rgba(45,125,83,0.25) 0%, transparent 70%);
}
.cta-inner { position: relative; z-index: 1; }
.cta-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: white; margin-bottom: 20px; }
.cta-eyebrow::before { content: ''; width: 18px; height: 2px; background: var(--g400); border-radius: 2px; }
.cta-section h2 { font-size: clamp(2rem,4vw,3.2rem); font-weight: 600; color: white; margin-bottom: 16px; }
.cta-section h2 em { font-style: italic; color: var(--g300); }
.cta-sub { font-size: 1.05rem; color: rgba(255,255,255,0.6); margin-bottom: 40px; }
.cta-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-bottom: 24px; }
.btn-cta-white { background: white; color: var(--g900); font-weight: 600; }
.btn-cta-white:hover { background: var(--g50); transform: translateY(-1px); box-shadow: 0 6px 24px rgba(0,0,0,0.2); }
.btn-cta-ghost { background: transparent; color: rgba(255,255,255,0.75); border: 1.5px solid rgba(255,255,255,0.2); }
.btn-cta-ghost:hover { background: rgba(255,255,255,0.08); color: white; border-color: rgba(255,255,255,0.35); }
.cta-note { font-size: 0.82rem; color: rgba(255,255,255,0.4); }
.cta-note a { color: rgba(255,255,255,0.6); border-bottom: 1px dashed rgba(255,255,255,0.25); }
.cta-note a:hover { color: white; }
/* ── FOOTER ──────────────────────────────────── */
footer {
background: var(--bg); border-top: 1px solid var(--sand);
padding: 60px max(24px, calc((100vw - 1160px)/2)) 40px;
}
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; margin-bottom: 48px; }
.footer-logo { display: flex; align-items: center; gap: 9px; margin-bottom: 16px; }
.footer-logo-mark { width: 30px; height: 30px; border-radius: 7px; background: var(--g700); display: flex; align-items: center; justify-content: center; }
.footer-logo-mark svg { width: 14px; height: 14px; }
.footer-logo-name { font-family: 'Onest', sans-serif; font-weight: 600; font-size: 1.05rem; color: var(--ink); }
.footer-tagline { font-size: 0.85rem; color: var(--ink3); line-height: 1.65; max-width: 260px; margin-bottom: 20px; }
.footer-contact { font-size: 0.82rem; color: var(--ink3); }
.footer-contact a { color: var(--g600); color: var(--g500); }
.footer-col h4 { font-family: 'Onest', sans-serif; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink3); margin-bottom: 16px; }
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.footer-col ul a { font-size: 0.88rem; color: var(--ink2); transition: color var(--t); }
.footer-col ul a:hover { color: var(--g700); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--sand); padding-top: 24px; }
.footer-bottom p { font-size: 0.8rem; color: var(--ink3); }
/* ── SCROLL REVEAL ───────────────────────────── */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity 0.45s ease-out, transform 0.45s ease-out; }
.reveal.visible { opacity: 1; transform: none; }
/* ── RESPONSIVE ──────────────────────────────── */
/* ── Tablet (≤1000px) ── */
@media (max-width: 1000px) {
/* Hero: скрываем визуал, центрируем текст */
.hero-inner { grid-template-columns: 1fr; min-height: auto; }
.hero::before { display: none; }
.hero-visual { display: none; }
.hero { padding-top: 120px; padding-bottom: 72px; }
.hero-text { text-align: center; }
.hero-sub { max-width: 560px; margin-left: auto; margin-right: auto; }
.hero-actions { justify-content: center; }
.hero-trust { justify-content: center; }
/* Грид-перестройки */
.problem-grid { grid-template-columns: 1fr 1fr; }
.features-grid { grid-template-columns: repeat(2,1fr); }
.feat-card { grid-column: span 1 !important; }
/* Как работает: вертикально с числами слева */
.how-steps::before { display: none; }
.how-steps { grid-template-columns: 1fr; gap: 40px; }
.how-step { text-align: left; padding: 0; display: flex; align-items: flex-start; gap: 20px; }
.how-num { margin: 0; flex-shrink: 0; }
/* Метрики 2×2 */
.metrics-grid { grid-template-columns: repeat(2,1fr); }
.metric:first-child { border-radius: var(--r2) 0 0 0; }
.metric:last-child { border-radius: 0 0 var(--r2) 0; }
.metric:nth-child(2) { border-radius: 0 var(--r2) 0 0; }
.metric:nth-child(3) { border-radius: 0 0 0 var(--r2); }
/* Тарифы стопкой */
.pricing-card.featured { transform: none; }
/* Отзывы 2 колонки */
.testi-grid { grid-template-columns: 1fr 1fr; }
/* FAQ: заголовок над списком */
.faq-inner { grid-template-columns: 1fr; gap: 40px; }
/* Футер 2 колонки */
.footer-grid { grid-template-columns: 1fr 1fr; }
/* Навигация */
.nav-links { display: none; }
/* Показываем dots у всех каруселей */
.carousel-dots { display: flex; }
.pricing-dots { display: flex; }
/* Проблема и Возможности: 2 карточки на страницу */
.problem-grid,
.features-grid {
display: flex;
overflow-x: auto;
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
gap: 16px;
padding-bottom: 4px;
scrollbar-width: none;
-ms-overflow-style: none;
}
.problem-grid::-webkit-scrollbar,
.features-grid::-webkit-scrollbar { display: none; }
.carousel-page {
flex: 0 0 calc(88vw - 48px);
max-width: 400px;
scroll-snap-align: start;
display: flex;
flex-direction: column;
gap: 14px;
flex-shrink: 0;
}
/* Отзывы: 1 карточка на страницу */
.testi-grid {
display: flex;
overflow-x: auto;
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
gap: 16px;
padding-bottom: 4px;
scrollbar-width: none;
-ms-overflow-style: none;
}
.testi-grid::-webkit-scrollbar { display: none; }
.testi-grid .testi-card {
flex: 0 0 calc(88vw - 48px);
max-width: 460px;
scroll-snap-align: start;
flex-shrink: 0;
}
.pricing-grid {
display: flex;
overflow-x: auto;
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
gap: 20px;
padding-bottom: 4px;
scroll-padding-left: 24px;
/* Скрываем скроллбар */
scrollbar-width: none;
-ms-overflow-style: none;
}
.pricing-grid::-webkit-scrollbar { display: none; }
.pricing-card {
scroll-snap-align: center;
flex: 0 0 82%;
max-width: 360px;
}
.pricing-card.featured { transform: none; box-shadow: 0 0 0 1px var(--g500), var(--sh2); }
.nav-burger { display: flex; }
}
/* ── Mobile (≤640px) ── */
@media (max-width: 640px) {
/* Секции: меньше вертикальных отступов */
.section { padding-top: 60px; padding-bottom: 60px; }
/* Типографика заголовков */
.section-title { font-size: 1.85rem; }
.section-sub { font-size: 0.95rem; margin-bottom: 36px; }
/* Hero */
.hero { padding-top: 100px; padding-bottom: 60px; }
.hero h1 { font-size: 2.1rem; }
.hero-sub { font-size: 1rem; margin-bottom: 28px; }
.hero-actions {
flex-direction: column; align-items: stretch;
gap: 10px;
}
.hero-actions .btn { justify-content: center; width: 100%; }
.hero-trust { flex-direction: column; gap: 8px; text-align: center; }
/* Навигация: скрываем «Войти» на маленьких экранах */
.nav-right .btn-ghost { display: none; }
.nav-right .btn-primary { padding: 8px 16px; font-size: 0.85rem; }
/* Проблемы: 1 колонка */
.problem-grid { grid-template-columns: 1fr; }
.problem-card { padding: 22px; }
/* Фичи: 1 колонка */
.features-grid { grid-template-columns: 1fr; }
.feat-card { grid-column: span 1 !important; padding: 24px; }
/* Метрики: 2×2, меньше паддинг */
.metrics-grid { grid-template-columns: 1fr 1fr; }
.metric { padding: 32px 16px; }
.metric-num { font-size: 2.4rem; }
/* Тарифы: 1 колонка, полная ширина */
.pricing-card { padding: 28px 24px; }
.pricing-desc { min-height: auto; }
/* Отзывы: 1 колонка */
.testi-grid { grid-template-columns: 1fr; }
.testi-card { padding: 24px; }
/* FAQ */
.faq-title { font-size: 1.6rem; }
.faq-q-text { font-size: 0.9rem; }
/* CTA-секция */
.cta-section { padding-top: 72px; padding-bottom: 72px; }
.cta-section h2 { font-size: 1.85rem; }
.cta-sub { font-size: 0.95rem; margin-bottom: 28px; }
.cta-actions {
flex-direction: column; align-items: stretch;
gap: 10px; max-width: 320px; margin: 0 auto 20px;
}
.cta-actions .btn { justify-content: center; width: 100%; }
/* Футер */
.footer-grid { grid-template-columns: 1fr; gap: 32px; }
.footer-bottom { flex-direction: column; gap: 8px; text-align: center; }
footer { padding-top: 48px; padding-bottom: 32px; }
}
/* ── Very small (≤400px) ── */
@media (max-width: 400px) {
.hero h1 { font-size: 1.8rem; }
.section-title { font-size: 1.65rem; }
.cta-section h2 { font-size: 1.65rem; }
.metric-num { font-size: 2rem; }
.pricing-card { padding: 24px 18px; }
.testi-card { padding: 20px; }
.feat-card { padding: 20px; }
.problem-card { padding: 18px; }
.hero-badge { font-size: 0.75rem; }
}
/* ── LEAD MODAL ─────────────────────────────── */
.lead-overlay {
position: fixed; inset: 0; z-index: 1000;
background: rgba(15,23,18,0.55); backdrop-filter: blur(4px);
display: flex; align-items: center; justify-content: center;
padding: 16px;
opacity: 0; pointer-events: none; transition: opacity 0.25s ease;
}
.lead-overlay.active { opacity: 1; pointer-events: all; }
.lead-modal {
background: var(--white); border-radius: var(--r3); padding: 40px;
width: 100%; max-width: 480px; position: relative;
box-shadow: 0 24px 64px rgba(0,0,0,0.18);
transform: translateY(16px) scale(0.98); transition: transform 0.25s ease;
}
.lead-overlay.active .lead-modal { transform: translateY(0) scale(1); }
.lead-modal-close {
position: absolute; top: 16px; right: 16px;
width: 32px; height: 32px; border-radius: 50%;
background: var(--bg2); border: none; cursor: pointer;
display: flex; align-items: center; justify-content: center; color: var(--ink3);
transition: var(--t);
}
.lead-modal-close:hover { background: var(--sand); color: var(--ink); }
.lead-modal-eyebrow { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: var(--g500); margin-bottom: 8px; }
.lead-modal h3 { font-size: 1.4rem; font-weight: 600; color: var(--ink); margin-bottom: 4px; }
.lead-modal-sub { font-size: 0.85rem; color: var(--ink3); margin-bottom: 28px; }
.lead-plan-badge {
display: inline-flex; align-items: center; gap: 6px;
background: var(--g50); border: 1px solid var(--g200); color: var(--g700);
font-size: 0.78rem; font-weight: 600; padding: 4px 12px; border-radius: 99px;
margin-bottom: 24px;
}
.lead-plan-badge.hidden { display: none; }
.lead-form { display: flex; flex-direction: column; gap: 14px; }
.lead-field { display: flex; flex-direction: column; gap: 5px; }
.lead-field label { font-size: 0.8rem; font-weight: 500; color: var(--ink2); }
.lead-field input, .lead-field select {
height: 44px; padding: 0 14px; border-radius: var(--r1);
border: 1.5px solid var(--sand); background: var(--bg2);
font-size: 0.9rem; color: var(--ink); outline: none;
transition: border-color 0.15s ease, box-shadow 0.15s ease;
font-family: inherit;
}
.lead-field input:focus, .lead-field select:focus {
border-color: var(--g400); background: var(--white);
box-shadow: 0 0 0 3px rgba(74,158,100,0.12);
}
.lead-field input::placeholder { color: var(--ink3); }
.lead-submit {
height: 48px; margin-top: 4px; background: var(--g700); color: white;
border: none; border-radius: var(--r1); font-size: 0.95rem; font-weight: 600;
cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px;
transition: background 0.2s, transform 0.15s;
}
.lead-submit:hover { background: var(--g900); transform: translateY(-1px); }
.lead-submit:disabled { opacity: 0.6; pointer-events: none; }
.lead-note { font-size: 0.75rem; color: var(--ink3); text-align: center; margin-top: 10px; }
.lead-success {
display: none; flex-direction: column; align-items: center;
text-align: center; padding: 16px 0;
}
.lead-success.show { display: flex; }
.lead-success-ico {
width: 56px; height: 56px; border-radius: 50%;
background: var(--g50); border: 2px solid var(--g200);
display: flex; align-items: center; justify-content: center;
margin-bottom: 20px;
}
.lead-success-ico svg { width: 26px; height: 26px; stroke: var(--g500); }
.lead-success h4 { font-size: 1.2rem; font-weight: 600; color: var(--ink); margin-bottom: 8px; }
.lead-success p { font-size: 0.88rem; color: var(--ink3); line-height: 1.6; }
@media (max-width: 480px) {
.lead-modal { padding: 28px 20px; }
.lead-modal h3 { font-size: 1.2rem; }
}
</style>
</head>
<body>
<!-- NAV -->
<nav id="main-nav">
<a href="#" class="nav-logo">
<div class="nav-mark">
<svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 2L2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/>
</svg>
</div>
<span class="nav-name">АгроТО</span>
</a>
<ul class="nav-links">
<li><a href="#features">Возможности</a></li>
<li><a href="#how">Как работает</a></li>
<li><a href="#pricing">Тарифы</a></li>
<li><a href="#faq">FAQ</a></li>
</ul>
<div class="nav-right">
<a href="https://app.agroto.ru" class="btn btn-ghost">Войти</a>
<button class="nav-burger" id="nav-burger" aria-label="Меню">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<div class="nav-mobile" id="nav-mobile">
<a href="#features">Возможности</a>
<a href="#how">Как работает</a>
<a href="#pricing">Тарифы</a>
<a href="#faq">FAQ</a>
<a href="https://app.agroto.ru" class="btn btn-ghost btn-lg">Войти</a>
</div>
<!-- HERO -->
<section class="hero">
<div class="hero-inner">
<div class="hero-content">
<div class="hero-badge">
<span class="hero-badge-dot"></span>
Разработано для АПК России
</div>
<h1>Обслуживание<br>оборудования<br><em>без хаоса</em></h1>
<p class="hero-sub">АгроТО — CMMS-платформа для управления обслуживанием оборудования на агропредприятиях. Плановое ТО, аварийные заявки, склад запчастей — всё в одной системе.</p>
<div class="hero-actions">
<button class="btn btn-primary btn-xl open-lead-modal" data-plan="">
Начать работу
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</button>
<a href="https://app.agroto.ru" class="btn btn-ghost btn-xl">Смотреть демо</a>
</div>
<div class="hero-trust">
<div class="hero-avatars">
<span style="background:var(--g700)">АМ</span>
<span style="background:var(--g500)">КФ</span>
<span style="background:#e76f51">ПА</span>
<span style="background:#3b82f6">СН</span>
</div>
<span class="hero-trust-text"><strong>20+ предприятий</strong> уже в системе</span>
</div>
</div>
<div class="hero-visual">
<div class="hero-float hero-float-1">
<span class="float-dot blue"></span>
Новая аварийная заявка
</div>
<div class="hero-dash">
<div class="dash-bar">
<div class="dash-dots"><i></i><i></i><i></i></div>
<span class="dash-title">Производство — Панель управления</span>
</div>
<div class="dash-body">
<div class="dash-kpis">
<div class="dash-kpi">
<div class="dash-kpi-num red">3</div>
<div class="dash-kpi-label">Просрочено</div>
</div>
<div class="dash-kpi">
<div class="dash-kpi-num amber">7</div>
<div class="dash-kpi-label">В работе</div>
</div>
<div class="dash-kpi">
<div class="dash-kpi-num green">24</div>
<div class="dash-kpi-label">Завершено</div>
</div>
</div>
<div class="dash-tasks">
<div class="dash-task t-over">
<div class="dash-task-ico">
<svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><path d="M14.7 6.3a1 1 0 000 1.4l1.6 1.6a1 1 0 001.4 0l3.77-3.77a6 6 0 01-7.94 7.94l-6.91 6.91a2.12 2.12 0 01-3-3l6.91-6.91a6 6 0 017.94-7.94l-3.76 3.76z"/></svg>
</div>
<div class="dash-task-info">
<div class="dash-task-name">ТО мельницы №3</div>
<div class="dash-task-meta">Сидоров В. · Мельничный комплекс</div>
</div>
<span class="dash-tag">Просрочено</span>
</div>
<div class="dash-task t-prog">
<div class="dash-task-ico">
<svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><circle cx="12" cy="12" r="3"/><path d="M19.07 4.93l-1.41 1.41M12 2v2M4.93 4.93l1.41 1.41M2 12h2M4.93 19.07l1.41-1.41M12 22v-2M19.07 19.07l-1.41-1.41M22 12h-2"/></svg>
</div>
<div class="dash-task-info">
<div class="dash-task-name">ТО компрессорной станции</div>
<div class="dash-task-meta">Петров С. · Насосная №2</div>
</div>
<span class="dash-tag">В работе</span>
</div>
<div class="dash-task t-pend">
<div class="dash-task-ico">
<svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><path d="M9 11l3 3L22 4"/><path d="M21 12v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h11"/></svg>
</div>
<div class="dash-task-info">
<div class="dash-task-name">Плановый осмотр зернодробилки</div>
<div class="dash-task-meta">Иванов А. · Кормоцех</div>
</div>
<span class="dash-tag">Сегодня</span>
</div>
</div>
</div>
</div>
<div class="hero-float hero-float-2">
<span class="float-dot green"></span>
ТО выполнено — склад обновлён
</div>
</div>
</div>
</section>
<!-- LOGOS -->
<div class="logos">
<p class="logos-label">Доверяют агропредприятия</p>
<div class="logos-marquee-wrap">
<div class="logos-row">
<div class="logo-pill">Агромилк</div>
<div class="logo-pill">АгроМолоко</div>
<div class="logo-pill">КФХ «Заря»</div>
<div class="logo-pill">Степной Агро</div>
<div class="logo-pill">МолокоПро</div>
<div class="logo-pill">ГринФарм</div>
<div class="logo-pill">АгроМолоко Демо</div>
<div class="logo-pill">УралАгро</div>
<div class="logo-pill">Агромилк</div>
<div class="logo-pill">АгроМолоко</div>
<div class="logo-pill">КФХ «Заря»</div>
<div class="logo-pill">Степной Агро</div>
<div class="logo-pill">МолокоПро</div>
<div class="logo-pill">ГринФарм</div>
<div class="logo-pill">АгроМолоко Демо</div>
<div class="logo-pill">УралАгро</div>
</div>
</div>
</div>
<!-- PROBLEM -->
<section class="section problem-section reveal" id="problem">
<div class="eyebrow">Проблема</div>
<h2 class="section-title">Как это бывает<br><em>без системы учёта</em></h2>
<p class="section-sub">Знакомо? Мы разработали систему именно для того, чтобы это больше не повторялось.</p>
<div class="carousel-wrap" data-carousel="problem-grid">
<div class="problem-grid" id="problem-grid">
<div class="carousel-page">
<div class="problem-card">
<div class="problem-ico">
<svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M9 21V9"/></svg>
</div>
<h3>Excel и бумажные журналы</h3>
<p>Расписание ТО в таблицах, история ремонтов в тетрадях. Сложно найти, легко потерять, невозможно анализировать.</p>
</div>
<div class="problem-card">
<div class="problem-ico">
<svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><path d="M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 9.81 19.79 19.79 0 01.1 1.18 2 2 0 012.1 0h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L6.09 7.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 14.92v2z"/></svg>
</div>
<h3>Хаос в коммуникациях</h3>
<p>Заявки через WhatsApp, статусы передаются устно. Кто-то забыл, кто-то не передал — оборудование простаивает.</p>
</div>
</div><!-- /page 1 -->
<div class="carousel-page">
<div class="problem-card">
<div class="problem-ico">
<svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
</div>
<h3>Проблемы со складом</h3>
<p>Нужная запчасть отсутствует в самый неподходящий момент. Или наоборот — склад переполнен неликвидом.</p>
</div>
<div class="problem-card">
<div class="problem-ico">
<svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><polyline points="12,6 12,12 16,14"/></svg>
</div>
<h3>Срывы сроков ТО</h3>
<p>Плановое обслуживание откладывается «на потом». В итоге мелкая неисправность превращается в дорогой ремонт.</p>
</div>
</div><!-- /page 2 -->
<div class="carousel-page">
<div class="problem-card">
<div class="problem-ico">
<svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/></svg>
</div>
<h3>Нет аналитики</h3>
<p>Непонятно, сколько стоит обслуживание каждой единицы оборудования и когда выгоднее заменить, чем ремонтировать.</p>
</div>
<div class="problem-card">
<div class="problem-ico">
<svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>
</div>
<h3>Нет контроля</h3>
<p>Руководитель узнаёт о проблемах постфактум. Нет единого взгляда на состояние всего оборудования предприятия.</p>
</div>
</div><!-- /page 3 -->
</div><!-- /problem-grid -->
<div class="carousel-dots" id="problem-grid-dots">
<button class="carousel-dot active" data-idx="0"></button>
<button class="carousel-dot" data-idx="1"></button>
<button class="carousel-dot" data-idx="2"></button>
</div>
</div><!-- /carousel-wrap -->
</section>
<!-- FEATURES -->
<section class="section reveal" id="features">
<div class="features-intro">
<div class="eyebrow">Возможности</div>
<h2 class="section-title">Всё что нужно для<br><em>полного контроля</em></h2>
<p class="section-sub" style="margin-bottom:0">АгроТО объединяет все процессы обслуживания оборудования вашего предприятия в одной платформе.</p>
</div>
<div class="carousel-wrap" data-carousel="features-grid">
<div class="features-grid" id="features-grid">
<div class="carousel-page">
<div class="feat-card">
<div class="feat-ico">
<svg fill="none" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="18" rx="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg>
</div>
<h3>Плановое ТО</h3>
<p>Гибкие расписания по дате, моточасам или пробегу. Автоматическое создание задач и уведомления ответственным.</p>
<span class="feat-tag">Автоматизация</span>
</div>
<div class="feat-card">
<div class="feat-ico">
<svg fill="none" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><path d="M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
</div>
<h3>Аварийные заявки</h3>
<p>Быстрая регистрация поломки прямо с телефона. Назначение исполнителя и отслеживание статуса в реальном времени.</p>
<span class="feat-tag">Мобильно</span>
</div>
</div><!-- /page 1 -->
<div class="carousel-page">
<div class="feat-card">
<div class="feat-ico">
<svg fill="none" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><path d="M21 16V8a2 2 0 00-1-1.73l-7-4a2 2 0 00-2 0l-7 4A2 2 0 003 8v8a2 2 0 001 1.73l7 4a2 2 0 002 0l7-4A2 2 0 0021 16z"/><polyline points="3.27,6.96 12,12.01 20.73,6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></svg>
</div>
<h3>Управление складом</h3>
<p>Учёт запчастей и расходников. Минимальные остатки, заявки на закупку, автоматическое списание при ТО.</p>
<span class="feat-tag">Склад</span>
</div>
<div class="feat-card">
<div class="feat-ico">
<svg fill="none" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><path d="M4.5 6.375a4.125 4.125 0 118.25 0 4.125 4.125 0 01-8.25 0zM14.25 8.625a3.375 3.375 0 116.75 0 3.375 3.375 0 01-6.75 0zM1.5 19.125a7.125 7.125 0 0114.25 0v.003l-.001.119a.75.75 0 01-.363.63 13.067 13.067 0 01-6.761 1.873c-2.472 0-4.786-.684-6.76-1.873a.75.75 0 01-.364-.63l-.001-.122zM17.25 19.128l-.001.144a2.25 2.25 0 01-.233.96 10.088 10.088 0 005.06-1.01.75.75 0 00.42-.643 4.875 4.875 0 00-6.957-4.611 8.586 8.586 0 011.71 5.157v.003z"/></svg>
</div>
<h3>Роли и доступы</h3>
<p>Гибкая система ролей: механик видит только свои задачи, начальник — всю картину по предприятию.</p>
<span class="feat-tag">Безопасность</span>
</div>
</div><!-- /page 2 -->
<div class="carousel-page">
<div class="feat-card">
<div class="feat-ico">
<svg fill="none" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/></svg>
</div>
<h3>Аналитика и отчёты</h3>
<p>Стоимость ТО по каждой единице оборудования, загруженность специалистов, динамика поломок — в удобных графиках.</p>
<span class="feat-tag">Аналитика</span>
</div>
<div class="feat-card">
<div class="feat-ico">
<svg fill="none" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><path d="M12 2a8 8 0 018 8c0 3-1.5 5.5-4 7l-1 3H9l-1-3C5.5 15.5 4 13 4 10a8 8 0 018-8z"/><path d="M9 21h6"/><path d="M9.5 10.5c.5-1 1.5-1.5 2.5-1.5s2 .5 2.5 1.5"/><circle cx="9.5" cy="8.5" r="0.5" fill="currentColor"/><circle cx="14.5" cy="8.5" r="0.5" fill="currentColor"/></svg>
</div>
<h3>ИИ-помощник</h3>
<p>Встроенный чат с ИИ-ассистентом прямо в интерфейсе. Отвечает на вопросы по оборудованию, помогает механикам быстрее разобраться в задачах — доступен в любой момент.</p>
<span class="feat-tag">Искусственный интеллект</span>
</div>
</div><!-- /page 3 -->
</div><!-- /features-grid -->
<div class="carousel-dots" id="features-grid-dots">
<button class="carousel-dot active" data-idx="0"></button>
<button class="carousel-dot" data-idx="1"></button>
<button class="carousel-dot" data-idx="2"></button>
</div>
</div><!-- /carousel-wrap -->
</section>
<!-- HOW -->
<section class="section how-section reveal" id="how">
<div style="text-align:center;margin-bottom:56px">
<div class="eyebrow" style="justify-content:center">Как работает</div>
<h2 class="section-title" style="margin:0 auto 16px">Запуск за три шага</h2>
<p class="section-sub" style="margin:0 auto">Никаких длительных внедрений. Начните работать уже в первый день.</p>
</div>
<div class="how-steps">
<div class="how-step">
<div class="how-num">1</div>
<div>
<h3>Добавьте оборудование</h3>
<p>Внесите доильные установки, вакуумные насосы, транспортёры, фильтры и другое оборудование. Назначьте ответственных по каждой единице.</p>
</div>
</div>
<div class="how-step">
<div class="how-num">2</div>
<div>
<h3>Настройте расписания</h3>
<p>Создайте шаблоны регламентного ТО с нужной периодичностью. Система сама будет создавать задачи.</p>
</div>
</div>
<div class="how-step">
<div class="how-num">3</div>
<div>
<h3>Работайте и следите</h3>
<p>Механики получают задачи, отмечают выполнение. Вы видите всю картину в реальном времени.</p>
</div>
</div>
</div>
</section>
<!-- METRICS -->
<section class="section metrics-section reveal">
<div class="metrics-header">
<div class="eyebrow" style="justify-content:center">Результаты</div>
<h2 class="section-title" style="margin:0 auto">Цифры говорят сами за себя</h2>
</div>
<div class="metrics-grid">
<div class="metric">
<div class="metric-num" data-target="-40" data-suffix="%">40%</div>
<div class="metric-label">Снижение внеплановых<br>простоев техники</div>
</div>
<div class="metric">
<div class="metric-num">×3</div>
<div class="metric-label">Скорость обработки<br>аварийных заявок</div>
</div>
<div class="metric">
<div class="metric-num" data-target="-25" data-suffix="%">25%</div>
<div class="metric-label">Затраты на складские<br>запасы</div>
</div>
<div class="metric">
<div class="metric-num">5 дней</div>
<div class="metric-label">Среднее время<br>внедрения</div>
</div>
</div>
</section>
<!-- PRICING -->
<section class="section reveal" id="pricing">
<div class="pricing-header">
<div class="eyebrow" style="justify-content:center">Тарифы</div>
<h2 class="section-title">Простые и прозрачные<br>условия</h2>
<p class="section-sub">Без скрытых платежей. Прозрачные условия без скрытых платежей.</p>
</div>
<div class="pricing-carousel-wrap">
<div class="pricing-grid" id="pricing-grid">
<div class="pricing-card">
<div class="pricing-badge">Старт</div>
<div class="pricing-plan">Базовый</div>
<div class="pricing-desc">Для небольших КФХ и хозяйств с одним участком.</div>
<div class="pricing-price">
<span class="pricing-amount">4 900</span>
<span class="pricing-cur"></span>
<span class="pricing-per">/ мес</span>
</div>
<div class="pricing-divider"></div>
<ul class="pricing-feats">
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> До 50 единиц оборудования</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> До 5 пользователей</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Плановое ТО и задачи</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Аварийные заявки</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Базовая аналитика</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Мобильный доступ</li>
</ul>
<button class="btn btn-primary open-lead-modal" data-plan="Базовый">Начать работу</button>
</div>
<div class="pricing-card featured">
<div class="pricing-ribbon">Популярный</div>
<div class="pricing-badge">Для роста</div>
<div class="pricing-plan">Профессиональный</div>
<div class="pricing-desc">Для средних хозяйств и агрохолдингов с несколькими участками.</div>
<div class="pricing-price">
<span class="pricing-amount">12 900</span>
<span class="pricing-cur"></span>
<span class="pricing-per">/ мес</span>
</div>
<div class="pricing-divider"></div>
<ul class="pricing-feats">
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> До 300 единиц оборудования</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> До 25 пользователей</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Всё из Базового</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Управление складом</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Расширенная аналитика</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> PDF-отчёты</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Приоритетная поддержка</li>
</ul>
<button class="btn btn-outline-green open-lead-modal" data-plan="Профессиональный">Начать работу</button>
</div>
<div class="pricing-card">
<div class="pricing-badge">Корпоративный</div>
<div class="pricing-plan">Энтерпрайз</div>
<div class="pricing-desc">Для агрохолдингов и предприятий, работающих без постоянного интернета.</div>
<div class="pricing-price">
<span class="pricing-amount contact">По запросу</span>
</div>
<div class="pricing-divider"></div>
<ul class="pricing-feats">
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Неограниченное оборудование</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Неограниченные пользователи</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Всё из Профессионального</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Физический сервер на вашей площадке</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Работа без интернета (полный офлайн)</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Встроенная офлайн-модель ИИ на борту</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Интеграция с 1С</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> SLA и персональный менеджер</li>
<li><svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> Индивидуальные доработки</li>
</ul>
<button class="btn btn-primary open-lead-modal" data-plan="Энтерпрайз">Связаться с нами</button>
</div>
</div><!-- /pricing-grid -->
<div class="pricing-dots" id="pricing-dots">
<button class="pricing-dot active" data-idx="0"></button>
<button class="pricing-dot" data-idx="1"></button>
<button class="pricing-dot" data-idx="2"></button>
</div>
</div><!-- /pricing-carousel-wrap -->
</section>
<!-- TESTIMONIALS -->
<section class="section testimonials-section reveal">
<div class="testi-header">
<div class="eyebrow" style="justify-content:center">Отзывы</div>
<h2 class="section-title">Говорят наши клиенты</h2>
<p class="section-sub">Реальные отзывы от руководителей и инженеров агропредприятий.</p>
</div>
<div class="carousel-wrap" data-carousel="testi-grid">
<div class="testi-grid" id="testi-grid">
<div class="testi-card">
<div class="testi-stars">
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
</div>
<p class="testi-text">«Раньше механики звонили по телефону и писали в WhatsApp. Теперь всё в одном месте — заявка создана, исполнитель назначен, статус виден сразу. Простои сократились ощутимо.»</p>
<div class="testi-author">
<div class="testi-avatar" style="background:var(--g700)">АС</div>
<div>
<div class="testi-name">Алексей Смирнов</div>
<div class="testi-co">Главный инженер, КФХ «Заря»</div>
</div>
</div>
</div>
<div class="testi-card">
<div class="testi-stars">
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
</div>
<p class="testi-text">«Наконец-то вижу все участки в одном экране. Раньше чтобы понять состояние дел нужно было объехать пол-хозяйства. Теперь открываю телефон — и картина полная.»</p>
<div class="testi-author">
<div class="testi-avatar" style="background:#e76f51">МК</div>
<div>
<div class="testi-name">Михаил Козлов</div>
<div class="testi-co">Директор, АгроМолоко</div>
</div>
</div>
</div>
<div class="testi-card">
<div class="testi-stars">
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
<svg viewBox="0 0 24 24"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26"/></svg>
</div>
<p class="testi-text">«Внедрение заняло буквально один день. Внесли технику, настроили расписания ТО — и всё заработало. Поддержка отвечает быстро, под нас даже доработали пару функций.»</p>
<div class="testi-author">
<div class="testi-avatar" style="background:var(--g500)">НП</div>
<div>
<div class="testi-name">Наталья Петрова</div>
<div class="testi-co">Зам. директора, Степной Агро</div>
</div>
</div>
</div>
</div>
<div class="carousel-dots" id="testi-grid-dots">
<button class="carousel-dot active" data-idx="0"></button>
<button class="carousel-dot" data-idx="1"></button>
<button class="carousel-dot" data-idx="2"></button>
</div>
</div><!-- /carousel-wrap -->
</section>
<!-- FAQ -->
<section class="section faq-section reveal" id="faq">
<div class="faq-inner">
<div>
<div class="eyebrow">FAQ</div>
<h2 class="faq-title">Частые<br>вопросы</h2>
</div>
<div class="faq-list">
<div class="faq-item">
<button class="faq-q">
<span class="faq-q-text">Нужны ли технические знания для работы с системой?</span>
<span class="faq-icon"><svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg></span>
</button>
<div class="faq-a">Нет. АгроТО разработан так, чтобы им мог пользоваться любой сотрудник — от механика до руководителя хозяйства. Интуитивный интерфейс, минимум кликов для основных действий. Обучение занимает 1–2 часа.</div>
</div>
<div class="faq-item">
<button class="faq-q">
<span class="faq-q-text">Как происходит подключение к системе?</span>
<span class="faq-icon"><svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg></span>
</button>
<div class="faq-a">После оформления заявки мы свяжемся с вами, согласуем детали и закрепим персонального менеджера. Средний срок запуска — 5 рабочих дней. Мы помогаем с настройкой системы, импортом данных и обучением сотрудников.</div>
</div>
<div class="faq-item">
<button class="faq-q">
<span class="faq-q-text">Можно ли импортировать данные из Excel?</span>
<span class="faq-icon"><svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg></span>
</button>
<div class="faq-a">Да. Поддерживается импорт оборудования, расписаний и склада из Excel-таблиц. Если у вас нестандартный формат данных, мы поможем с переносом в рамках онбординга.</div>
</div>
<div class="faq-item">
<button class="faq-q">
<span class="faq-q-text">Работает ли система на мобильных устройствах?</span>
<span class="faq-icon"><svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg></span>
</button>
<div class="faq-a">Да, АгроТО — это PWA (прогрессивное веб-приложение). Оно устанавливается на телефон как обычное приложение и работает в том числе при нестабильном интернете с очередью оффлайн-действий.</div>
</div>
<div class="faq-item">
<button class="faq-q">
<span class="faq-q-text">Где хранятся данные? Это безопасно?</span>
<span class="faq-icon"><svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg></span>
</button>
<div class="faq-a">Данные хранятся на серверах в России, передача зашифрована по HTTPS. На тарифе Энтерпрайз мы поставляем физический сервер, который разворачивается внутри сети вашего предприятия: система работает полностью офлайн, постоянный доступ к интернету не требуется. Все данные остаются только у вас.</div>
</div>
<div class="faq-item">
<button class="faq-q">
<span class="faq-q-text">Есть ли интеграция с 1С?</span>
<span class="faq-icon"><svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg></span>
</button>
<div class="faq-a">Интеграция с 1С доступна на тарифе Энтерпрайз. АгроТО получает данные из 1С: номенклатура склада запчастей, остатки, приход и расход материалов. Это главное — вам не нужно вести склад в двух системах. Данные идут из 1С в АгроТО, а не наоборот.</div>
</div>
</div>
</div>
</section>
<!-- CTA -->
<section class="cta-section reveal">
<div class="cta-inner">
<div class="cta-eyebrow">Начните сегодня</div>
<h2>Возьмите оборудование<br><em>под контроль</em></h2>
<p class="cta-sub">Быстрое внедрение. Персональная поддержка на старте.</p>
<div class="cta-actions">
<button class="btn btn-xl btn-cta-white open-lead-modal" data-plan="">
Начать работу
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</button>
<a href="https://app.agroto.ru" class="btn btn-xl btn-cta-ghost">Смотреть демо</a>
</div>
<p class="cta-note">Или напишите нам: <a href="mailto:info@agroto.ru">info@agroto.ru</a></p>
</div>
</section>
<!-- FOOTER -->
<footer>
<div class="footer-grid">
<div>
<div class="footer-logo">
<div class="footer-logo-mark">
<svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 2L2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/>
</svg>
</div>
<span class="footer-logo-name">АгроТО</span>
</div>
<p class="footer-tagline">CMMS-платформа для управления обслуживанием оборудования на агропредприятиях России.</p>
<p class="footer-contact">Написать нам: <a href="mailto:info@agroto.ru">info@agroto.ru</a></p>
</div>
<div class="footer-col">
<h4>Продукт</h4>
<ul>
<li><a href="#features">Возможности</a></li>
<li><a href="#pricing">Тарифы</a></li>
<li><a href="#how">Как работает</a></li>
<li><a href="#faq">FAQ</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Компания</h4>
<ul>
<li><a href="/about.html">О нас</a></li>
<li><a href="/blog.html">Блог</a></li>
<li><a href="/contacts.html">Контакты</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Поддержка</h4>
<ul>
<li><a href="/docs.html">Документация</a></li>
<li><a href="/kb.html">База знаний</a></li>
<li><a href="mailto:info@agroto.ru">Email</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>© 2026 АгроТО. Все права защищены.</p>
<p style="display:flex;gap:16px;align-items:center">Сделано в России 🇷🇺 &nbsp;·&nbsp; <a href="/privacy.html" style="color:var(--ink3);text-decoration:none;font-size:0.8rem" onmouseover="this.style.color='var(--g500)'" onmouseout="this.style.color='var(--ink3)'">Политика обработки персональных данных</a></p>
</div>
</footer>
<script>
// ── Nav scroll shadow ───────────────────────────
const nav = document.getElementById('main-nav');
window.addEventListener('scroll', () => {
nav.classList.toggle('scrolled', window.scrollY > 8);
}, { passive: true });
// ── Mobile burger ───────────────────────────────
const burger = document.getElementById('nav-burger');
const mobileMenu = document.getElementById('nav-mobile');
burger.addEventListener('click', () => {
const open = mobileMenu.classList.toggle('open');
burger.querySelectorAll('span')[0].style.transform = open ? 'rotate(45deg) translate(5px,5px)' : '';
burger.querySelectorAll('span')[1].style.opacity = open ? '0' : '1';
burger.querySelectorAll('span')[2].style.transform = open ? 'rotate(-45deg) translate(5px,-5px)' : '';
});
mobileMenu.querySelectorAll('a').forEach(a => {
a.addEventListener('click', () => {
mobileMenu.classList.remove('open');
burger.querySelectorAll('span').forEach(s => { s.style.transform = ''; s.style.opacity = ''; });
});
});
// ── Scroll reveal with stagger ──────────────────
const revealObserver = new IntersectionObserver((entries) => {
entries.forEach((entry, i) => {
if (entry.isIntersecting) {
setTimeout(() => entry.target.classList.add('visible'), i * 90);
revealObserver.unobserve(entry.target);
}
});
}, { threshold: 0.1, rootMargin: '0px 0px -40px 0px' });
document.querySelectorAll('.reveal').forEach(el => revealObserver.observe(el));
// ── Smooth scroll ───────────────────────────────
document.querySelectorAll('a[href^="#"]').forEach(a => {
a.addEventListener('click', e => {
const t = document.querySelector(a.getAttribute('href'));
if (t) { e.preventDefault(); t.scrollIntoView({ behavior: 'smooth', block: 'start' }); }
});
});
// ── Универсальная карусель ─────────────────────
function initCarousel(gridId, dotsId, getPageCount) {
const grid = document.getElementById(gridId);
const dots = document.querySelectorAll('#' + dotsId + ' .carousel-dot');
if (!grid || !dots.length) return;
function getActivePage() {
const pages = grid.querySelectorAll('.carousel-page, .testi-card');
if (!pages.length) return 0;
const scrollCenter = grid.scrollLeft + grid.offsetWidth / 2;
let closest = 0, minDist = Infinity;
pages.forEach((p, i) => {
const center = p.offsetLeft + p.offsetWidth / 2;
const dist = Math.abs(scrollCenter - center);
if (dist < minDist) { minDist = dist; closest = i; }
});
return closest;
}
function updateDots(idx) {
dots.forEach((d, i) => d.classList.toggle('active', i === idx));
}
dots.forEach(dot => {
dot.addEventListener('click', () => {
const idx = +dot.dataset.idx;
const pages = grid.querySelectorAll('.carousel-page, .testi-card');
if (pages[idx]) {
const targetLeft = pages[idx].offsetLeft - (grid.offsetWidth - pages[idx].offsetWidth) / 2;
grid.scrollTo({ left: Math.max(0, targetLeft), behavior: 'smooth' });
}
});
});
let t;
grid.addEventListener('scroll', () => {
clearTimeout(t);
t = setTimeout(() => updateDots(getActivePage()), 60);
}, { passive: true });
}
// Инициализируем все карусели
initCarousel('problem-grid', 'problem-grid-dots');
initCarousel('features-grid', 'features-grid-dots');
initCarousel('testi-grid', 'testi-grid-dots');
// ── Pricing carousel dots ──────────────────────
(function() {
const grid = document.getElementById('pricing-grid');
const dots = document.querySelectorAll('.pricing-dot');
if (!grid || !dots.length) return;
// Клик по точке — скроллим к нужной карточке
dots.forEach(dot => {
dot.addEventListener('click', () => {
const idx = +dot.dataset.idx;
const cards = grid.querySelectorAll('.pricing-card');
if (cards[idx]) {
cards[idx].scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });
}
});
});
// Обновляем активную точку при скролле
let scrollTimer;
grid.addEventListener('scroll', () => {
clearTimeout(scrollTimer);
scrollTimer = setTimeout(() => {
const cards = grid.querySelectorAll('.pricing-card');
const gridCenter = grid.scrollLeft + grid.offsetWidth / 2;
let closest = 0, minDist = Infinity;
cards.forEach((card, i) => {
const cardCenter = card.offsetLeft + card.offsetWidth / 2;
const dist = Math.abs(gridCenter - cardCenter);
if (dist < minDist) { minDist = dist; closest = i; }
});
dots.forEach((d, i) => d.classList.toggle('active', i === closest));
}, 60);
}, { passive: true });
// На мобиле центрируем featured карточку при загрузке (только scrollLeft — не трогаем страницу)
function centerFeatured() {
if (window.innerWidth > 1000) return;
const featured = grid.querySelector('.pricing-card.featured');
if (featured) {
const targetLeft = featured.offsetLeft - (grid.offsetWidth - featured.offsetWidth) / 2;
grid.scrollLeft = targetLeft;
dots.forEach((d, i) => d.classList.toggle('active', +d.dataset.idx === 1));
}
}
window.addEventListener('load', centerFeatured);
window.addEventListener('resize', () => { clearTimeout(window._priceRT); window._priceRT = setTimeout(centerFeatured, 100); });
})();
// ── FAQ accordion ───────────────────────────────
document.querySelectorAll('.faq-q').forEach(btn => {
btn.addEventListener('click', () => {
const item = btn.closest('.faq-item');
const wasOpen = item.classList.contains('open');
document.querySelectorAll('.faq-item').forEach(i => i.classList.remove('open'));
if (!wasOpen) item.classList.add('open');
});
});
</script>
<!-- LEAD MODAL -->
<div class="lead-overlay" id="leadOverlay" role="dialog" aria-modal="true" aria-labelledby="leadModalTitle">
<div class="lead-modal">
<button class="lead-modal-close" id="leadClose" aria-label="Закрыть">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
</button>
<!-- Форма -->
<div id="leadFormWrap">
<div class="lead-modal-eyebrow">Оставить заявку</div>
<h3 id="leadModalTitle">Подключение к АгроТО</h3>
<p class="lead-modal-sub">Наш менеджер свяжется с вами в течение одного рабочего дня</p>
<div class="lead-plan-badge hidden" id="leadPlanBadge">
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20,6 9,17 4,12"/></svg>
<span id="leadPlanName"></span>
</div>
<form class="lead-form" id="leadForm" novalidate>
<div class="lead-field">
<label for="leadName">Ваше имя *</label>
<input type="text" id="leadName" name="name" placeholder="Иван Петров" required autocomplete="name">
</div>
<div class="lead-field">
<label for="leadPhone">Телефон *</label>
<input type="tel" id="leadPhone" name="phone" placeholder="+7 (900) 000-00-00" required autocomplete="tel">
</div>
<div class="lead-field">
<label for="leadCompany">Название предприятия</label>
<input type="text" id="leadCompany" name="company" placeholder="КФХ «Пример»" autocomplete="organization">
</div>
<div class="lead-field">
<label for="leadEmail">Email</label>
<input type="email" id="leadEmail" name="email" placeholder="ivan@agro.ru" autocomplete="email">
</div>
<button type="submit" class="lead-submit" id="leadSubmit">
Отправить заявку
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</button>
<p class="lead-note" id="leadError" style="color:var(--red,#e04040);display:none"></p>
<p class="lead-note">Нажимая кнопку, вы соглашаетесь с обработкой персональных данных</p>
</form>
</div>
<!-- Успех -->
<div class="lead-success" id="leadSuccess">
<div class="lead-success-ico">
<svg fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg>
</div>
<h4>Заявка принята!</h4>
<p>Спасибо, <span id="leadSuccessName"></span>! Мы свяжемся с вами в течение одного рабочего дня и расскажем о следующих шагах.</p>
</div>
</div>
</div>
<script>
/* ── LEAD MODAL ───────────────────────────────────── */
(function() {
const overlay = document.getElementById('leadOverlay');
const closeBtn = document.getElementById('leadClose');
const form = document.getElementById('leadForm');
const formWrap = document.getElementById('leadFormWrap');
const success = document.getElementById('leadSuccess');
const submitBtn= document.getElementById('leadSubmit');
const errEl = document.getElementById('leadError');
const planBadge= document.getElementById('leadPlanBadge');
const planName = document.getElementById('leadPlanName');
const successName = document.getElementById('leadSuccessName');
function openModal(plan) {
if (plan) {
planBadge.classList.remove('hidden');
planName.textContent = 'Тариф: ' + plan;
form.dataset.plan = plan;
} else {
planBadge.classList.add('hidden');
form.dataset.plan = '';
}
formWrap.style.display = '';
success.classList.remove('show');
errEl.style.display = 'none';
form.reset();
submitBtn.disabled = false;
overlay.classList.add('active');
document.body.style.overflow = 'hidden';
setTimeout(() => document.getElementById('leadName').focus(), 100);
}
function closeModal() {
overlay.classList.remove('active');
document.body.style.overflow = '';
}
document.querySelectorAll('.open-lead-modal').forEach(btn => {
btn.addEventListener('click', () => openModal(btn.dataset.plan || ''));
});
closeBtn.addEventListener('click', closeModal);
overlay.addEventListener('click', e => { if (e.target === overlay) closeModal(); });
document.addEventListener('keydown', e => { if (e.key === 'Escape') closeModal(); });
form.addEventListener('submit', async function(e) {
e.preventDefault();
const name = document.getElementById('leadName').value.trim();
const phone = document.getElementById('leadPhone').value.trim();
const company = document.getElementById('leadCompany').value.trim();
const email = document.getElementById('leadEmail').value.trim();
const plan = form.dataset.plan || '';
if (!name) { showErr('Пожалуйста, введите ваше имя'); return; }
if (!phone) { showErr('Пожалуйста, введите телефон'); return; }
submitBtn.disabled = true;
submitBtn.textContent = 'Отправляем…';
errEl.style.display = 'none';
try {
const resp = await fetch('https://app.agroto.ru/api/public/lead', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name, phone, company, email, plan, source: 'landing' })
});
const data = await resp.json();
if (!resp.ok) throw new Error(data.error || 'Ошибка сервера');
successName.textContent = name;
formWrap.style.display = 'none';
success.classList.add('show');
} catch(err) {
showErr('Не удалось отправить заявку. Напишите нам: info@agroto.ru');
submitBtn.disabled = false;
submitBtn.innerHTML = 'Отправить заявку <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>';
}
});
function showErr(msg) {
errEl.textContent = msg;
errEl.style.display = 'block';
}
})();
</script>
</body>
</html>