:root{
    --green:#087a52;
    --ink:#111513;
    --muted:#737a76;
    --line:#dfe4e1;
    --bg:#f8faf9;
    --bg-soft:#eef2f0;
    --card:#ffffff;
    --blue:#2c5f8a;
    --teal:#0f8a86;
    --coral:#b5502e;
    --radius-lg:20px;
    --shadow:0 4px 20px rgba(8,20,15,.05);
    --shadow-xl:0 20px 40px -12px rgba(8,20,15,.10);
    --ease-out:cubic-bezier(0.16, 1, 0.3, 1);
    --ease-back:cubic-bezier(.34, 1.56, .64, 1);
  }

  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    margin:0;
    font-family:"IBM Plex Sans", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color:var(--ink);
    background:var(--bg);
    overflow-x:hidden;
  }

  .nav{
    height:78px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 5vw;
    position:fixed;
    inset:0 0 auto;
    z-index:20;
    background:rgba(248,250,249,.78);
    backdrop-filter:blur(18px);
    border-bottom:1px solid rgba(0,0,0,.05);
    transition:background .3s ease, border-color .3s ease, backdrop-filter .3s ease, -webkit-backdrop-filter .3s ease;
  }
  /* Главная: шапка прозрачная и сливается с hero, пока не начали скроллить */
  body:has(.hero) .nav:not(.nav--solid):not(:has(.menu-item.is-open)){
    background:transparent;
    border-bottom-color:transparent;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }

  .logo{
    text-decoration:none;
    width:42px;height:42px;
    border-radius:13px;
    background:var(--green);
    display:grid;
    place-items:center;
    color:white;
    font-weight:800;
    letter-spacing:-1.5px;
    font-size:14px;
  }

  .nav-cta{
    border:0;
    background:#111513;
    color:#fff;
    padding:12px 18px;
    border-radius:12px;
    font-size:14px;
    cursor:pointer;
    transition:transform .25s var(--ease-out), background .25s var(--ease-out);
  }
  .nav-cta{text-decoration:none;display:inline-block}
  .nav-cta:hover{background:#087a52}

  /* ========== МЕГА-МЕНЮ (десктоп) ========== */
  .menu{
    display:flex;
    gap:4px;
    align-items:center;
  }

  .menu-item{
    position:relative;
  }

  .menu-trigger,
  .menu-link{
    font:inherit;
    font-size:14px;
    font-weight:500;
    color:#333936;
    background:transparent;
    border:0;
    padding:8px 14px;
    border-radius:8px;
    cursor:pointer;
    transition:color .2s, background .2s;
    -webkit-tap-highlight-color:transparent;
    display:inline-flex;
    align-items:center;
    gap:6px;
  }

  .menu-trigger::after{
    content:'';
    width:6px;height:6px;
    border-right:1.5px solid currentColor;
    border-bottom:1.5px solid currentColor;
    transform:rotate(45deg) translateY(-2px);
    transition:transform .25s var(--ease-out);
    opacity:.55;
  }
  .menu-item.is-open .menu-trigger::after{
    transform:rotate(-135deg) translateY(-2px);
  }

  .menu-link{text-decoration:none}
  .menu-trigger:hover,
  .menu-link:hover,
  .menu-item.is-open .menu-trigger{
    color:var(--green);
    background:rgba(8,122,82,.06);
  }

  .menu-trigger:focus-visible,
  .menu-link:focus-visible{
    outline:2px solid var(--green);
    outline-offset:2px;
  }

  .mega-panel{
    position:absolute;
    top:calc(100% + 8px);
    left:50%;
    transform:translateX(-50%) translateY(8px);
    width:max-content;
    min-width:680px;
    max-width:min(90vw, 900px);
    padding:28px 32px;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:16px;
    box-shadow:
      0 4px 6px rgba(8,20,15,.03),
      0 20px 40px -12px rgba(8,20,15,.12);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:
      opacity .2s var(--ease-out),
      transform .25s var(--ease-out),
      visibility 0s linear .25s;
    z-index:30;
  }

  .menu-item.is-open .mega-panel{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateX(-50%) translateY(0);
    transition-delay:0s;
  }

  .menu-item:first-child .mega-panel{left:-12px;transform:translateY(8px)}
  .menu-item:first-child.is-open .mega-panel{transform:translateY(0)}

  .mega-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:32px;
  }

  .mega-col h4{
    font-size:12px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--muted);
    margin:0 0 14px;
  }

  .mega-col a{
    display:block;
    font-size:14px;
    color:var(--ink);
    text-decoration:none;
    padding:5px 0;
    line-height:1.4;
    border-radius:6px;
    transition:color .18s;
  }

  .mega-col a:hover{
    color:var(--green);
  }

  .mega-col a small{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:2px}
  .mega-col a.is-main{font-weight:650;padding-bottom:9px}
  .mega-col a.mega-all{color:var(--green);font-weight:600;margin-top:6px}
  .mega-panel--sm{min-width:200px;padding:16px 22px}
  .mega-grid--1{grid-template-columns:1fr;gap:0}

  .mega-promo{
    background:linear-gradient(160deg, var(--bg-soft), rgba(8,122,82,.06));
    border-radius:12px;
    padding:18px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-height:100%;
  }
  .mega-promo h5{
    font-size:14px;
    font-weight:700;
    margin:0 0 6px;
    color:var(--ink);
    letter-spacing:-.01em;
  }
  .mega-promo p{
    font-size:13px;
    color:var(--muted);
    margin:0 0 14px;
    line-height:1.5;
  }
  .mega-promo a{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:13px;
    font-weight:600;
    color:var(--green);
    padding:0;
    align-self:flex-start;
  }
  .mega-promo a::after{
    content:'→';
    transition:transform .25s var(--ease-out);
  }
  .mega-promo a:hover::after{
    transform:translateX(3px);
  }

  /* ========== КНОПКА-ГАМБУРГЕР ========== */
  .nav-burger{
    display:none;
    width:44px;
    height:44px;
    border-radius:12px;
    border:1px solid var(--line);
    background:var(--card);
    cursor:pointer;
    padding:0;
    place-items:center;
    -webkit-tap-highlight-color:transparent;
    transition:background .2s, border-color .2s, transform .2s var(--ease-out);
  }
  .nav-burger:hover{background:var(--bg-soft)}
  .nav-burger:active{transform:scale(.94)}

  .nav-burger__bars{
    position:relative;
    width:19px;height:13px;
    display:block;
  }
  .nav-burger__bars span{
    position:absolute;left:0;right:0;
    height:2px;border-radius:2px;
    background:var(--ink);
    transition:transform .35s var(--ease-out), opacity .2s ease, width .3s ease, top .35s var(--ease-out);
  }
  .nav-burger__bars span:nth-child(1){top:0}
  .nav-burger__bars span:nth-child(2){top:5.5px}
  .nav-burger__bars span:nth-child(3){top:11px}

  .nav-burger[aria-expanded="true"]{background:var(--ink);border-color:var(--ink)}
  .nav-burger[aria-expanded="true"] .nav-burger__bars span{background:#fff}
  .nav-burger[aria-expanded="true"] .nav-burger__bars span:nth-child(1){top:5.5px;transform:rotate(45deg)}
  .nav-burger[aria-expanded="true"] .nav-burger__bars span:nth-child(2){opacity:0;width:0;left:50%}
  .nav-burger[aria-expanded="true"] .nav-burger__bars span:nth-child(3){top:5.5px;transform:rotate(-45deg)}

  /* ============================================================
     МОБИЛЬНОЕ МЕГА-МЕНЮ (полноэкранное)
     ============================================================ */
  .mobile-drawer{
    position:fixed;inset:0;z-index:60;
    pointer-events:none;visibility:hidden;
  }
  .mobile-drawer.is-open{pointer-events:auto;visibility:visible}

  .mobile-drawer__overlay{position:absolute;inset:0;background:transparent}

  .mobile-drawer__panel{
    position:absolute;inset:0;
    display:flex;flex-direction:column;
    background:var(--card);
    transform:translateY(100%);
    transition:transform .55s cubic-bezier(.22,1,.36,1);
    will-change:transform;
  }
  .mobile-drawer.is-open .mobile-drawer__panel{
    transform:translateY(0);
  }
  .mobile-drawer__panel.is-dragging{
    transition:none !important;
  }

  /* --- Шапка панели --- */
  .mobile-drawer__head{
    position:relative;
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 20px 14px;
    border-bottom:1px solid var(--line);
    flex-shrink:0;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    touch-action:none;
    z-index:3;
  }
  .mobile-drawer__head .logo{
    width:38px;height:38px;border-radius:11px;font-size:13px;
  }
  .mobile-drawer__drag{
    position:absolute;top:8px;left:50%;transform:translateX(-50%);
    width:36px;height:4px;border-radius:3px;
    background:rgba(15,26,23,.14);
  }

  .mobile-drawer__close{
    width:38px;height:38px;border-radius:10px;
    border:1px solid var(--line);
    background:var(--bg-soft);
    cursor:pointer;display:grid;place-items:center;
    -webkit-tap-highlight-color:transparent;
    transition:background .2s, transform .2s var(--ease-out), border-color .2s;
  }
  .mobile-drawer__close:hover{background:rgba(8,122,82,.10);border-color:rgba(8,122,82,.3)}
  .mobile-drawer__close:active{transform:scale(.92)}
  .mobile-drawer__close svg{
    width:16px;height:16px;
    stroke:var(--ink);stroke-width:2;
    stroke-linecap:round;fill:none;
  }

  /* --- Скролл-контейнер --- */
  .mmenu__body{
    flex:1;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    padding:14px 14px 24px;
    scrollbar-width:none;
  }
  .mmenu__body::-webkit-scrollbar{display:none}

  /* --- Секция-аккордеон --- */
  .acc{
    border-radius:16px;
    margin-bottom:6px;
    overflow:hidden;
    transition:background .35s ease;
  }
  .acc.is-open{
    background:linear-gradient(180deg, rgba(8,122,82,.07), rgba(8,122,82,.015));
  }

  .acc__head,
  .acc__link{
    display:flex;align-items:center;gap:14px;
    width:100%;
    padding:15px 14px;
    border:0;
    background:transparent;
    color:var(--ink);
    font:inherit;
    font-size:16px;
    font-weight:650;
    letter-spacing:-.01em;
    text-align:left;
    cursor:pointer;
    border-radius:16px;
    -webkit-tap-highlight-color:transparent;
    transition:background .25s;
  }
  .acc__link{text-decoration:none}
  .acc__link .acc__arrow--right{transform:rotate(-45deg)}
  .acc__head:active,
  .acc__link:active{background:rgba(15,26,23,.04)}

  .acc__icon{
    flex:0 0 auto;
    width:38px;height:38px;
    display:grid;place-items:center;
    border-radius:12px;
    background:var(--bg-soft);
    border:1px solid var(--line);
    color:var(--muted);
    transition:all .35s var(--ease-out);
  }
  .acc__icon svg{width:19px;height:19px}

  .acc.is-open .acc__icon{
    background:var(--green);
    border-color:var(--green);
    color:#fff;
    box-shadow:0 8px 20px -8px rgba(8,122,82,.75);
  }

  .acc__head > span:not(.acc__icon),
  .acc__link > span:not(.acc__icon){flex:1}

  .acc__arrow{
    flex:0 0 auto;
    width:10px;height:10px;
    border-right:2px solid #98a5a1;
    border-bottom:2px solid #98a5a1;
    transform:rotate(45deg) translate(-2px, -2px);
    transition:transform .4s var(--ease-out), border-color .3s;
  }
  .acc.is-open .acc__arrow{
    transform:rotate(225deg) translate(-4px, -4px);
    border-color:var(--green);
  }

  .acc__panel{
    display:grid;
    grid-template-rows:0fr;
    transition:grid-template-rows .45s var(--ease-out);
  }
  .acc.is-open .acc__panel{grid-template-rows:1fr}

  .acc__inner{overflow:hidden}

  .acc__content{
    padding:2px 14px 18px 66px;
    display:grid;
    gap:2px;
    opacity:0;
    transform:translateY(-8px);
    transition:opacity .35s ease .08s, transform .45s var(--ease-out) .08s;
  }
  .acc.is-open .acc__content{
    opacity:1;
    transform:none;
  }

  /* --- Список ссылок --- */
  .mlist{display:grid;gap:2px}
  .mlist a{
    display:flex;
    align-items:flex-start;
    gap:12px;
    padding:11px 12px;
    margin-left:-12px;
    border-radius:12px;
    color:#455a54;
    text-decoration:none;
    font-size:14.5px;
    font-weight:500;
    transition:background .25s, color .25s, transform .3s var(--ease-out);
  }
  .mlist a:active{
    background:rgba(8,122,82,.14);
    color:var(--green);
    transform:translateX(3px);
  }
  .mlist a b{
    display:block;
    font-weight:600;
    color:var(--ink);
    margin-bottom:2px;
  }
  .mlist a small{
    display:block;
    font-size:12.5px;
    font-weight:400;
    color:var(--muted);
    line-height:1.4;
  }
  .mlist__dot{
    flex:0 0 auto;
    width:6px;height:6px;
    margin-top:8px;
    border-radius:50%;
    background:var(--green);
    box-shadow:0 0 8px rgba(8,122,82,.5);
    transition:transform .3s var(--ease-out);
  }
  .mlist a:active .mlist__dot{transform:scale(1.5)}

  /* --- Плитки (2 колонки) --- */
  .mtiles{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:8px;
  }
  .mtile{
    display:flex;
    flex-direction:column;
    gap:9px;
    padding:13px;
    border-radius:14px;
    background:var(--bg-soft);
    border:1px solid var(--line);
    color:#455a54;
    text-decoration:none;
    font-size:13px;
    font-weight:600;
    transition:all .3s var(--ease-out);
  }
  .mtile:active{
    background:rgba(8,122,82,.16);
    border-color:rgba(8,122,82,.35);
    transform:scale(.97);
    color:var(--green);
  }
  .mtile svg{
    width:20px;height:20px;
    color:var(--green);
  }
  .mtile small{
    display:block;
    font-size:11px;
    font-weight:400;
    color:var(--muted);
    margin-top:3px;
  }

  /* --- Картинка-заглушка --- */
  .mimage{
    position:relative;
    margin:6px 4px 4px;
    border-radius:18px;
    overflow:hidden;
    border:1px solid var(--line);
    aspect-ratio:16/10;
    background:linear-gradient(135deg, #d6e4df 0%, #b8d4ca 45%, #9cc6b8 100%);
    display:flex;
    align-items:flex-end;
    justify-content:flex-start;
  }
  .mimage__ph{
    position:absolute;inset:0;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:8px;
    color:rgba(15,26,23,.38);
    font-size:12.5px;font-weight:600;
    letter-spacing:.02em;text-transform:uppercase;
  }
  .mimage__ph svg{width:36px;height:36px;opacity:.75}
  .mimage::before,
  .mimage::after{
    content:"";position:absolute;border-radius:50%;
    background:rgba(255,255,255,.28);
  }
  .mimage::before{width:140px;height:140px;top:-50px;right:-40px}
  .mimage::after{
    width:90px;height:90px;bottom:-30px;left:-20px;
    background:rgba(8,122,82,.18);
  }
  .mimage__caption{
    position:relative;z-index:2;
    margin:0 0 12px 12px;
    padding:8px 14px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(8px);
    color:var(--ink);
    font-size:12.5px;font-weight:700;
    box-shadow:0 8px 20px -10px rgba(15,26,23,.35);
    display:inline-flex;align-items:center;gap:8px;
  }
  .mimage__caption::before{
    content:"";width:8px;height:8px;border-radius:50%;
    background:var(--green);
    box-shadow:0 0 8px rgba(8,122,82,.8);
  }

  /* --- Нижние кнопки --- */
  .mmenu__foot{
    position:relative;
    z-index:3;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    padding:14px 18px calc(20px + env(safe-area-inset-bottom, 0px));
    border-top:1px solid var(--line);
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(14px);
    flex-shrink:0;
  }
  .mmenu__foot .btn{
    width:100%;
    padding:14px 12px;
    font-size:13.5px;
  }

  @media (prefers-reduced-motion: reduce){
    .mobile-drawer__panel{transition:none !important}
    .acc__panel{transition:none !important}
  }

  /* ========== HERO ========== */
  .hero{
    min-height:100vh;
    padding:78px 5vw 0;
    position:relative;
    display:flex;
    align-items:center;
  }

  .copy{
    position:relative;
    z-index:8;
    width:min(570px,45vw);
    margin-left:5vw;
  }

  .eyebrow{
    color:var(--green);
    font-size:13px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin-bottom:25px;
  }

  h1{
    font-size:clamp(54px,6.5vw,96px);
    line-height:.94;
    letter-spacing:-.065em;
    margin:0 0 30px;
    font-weight:720;
  }

  .sub{
    max-width:470px;
    color:var(--muted);
    font-size:17px;
    line-height:1.55;
    margin:0;
  }

  .stage{
    position:absolute;
    inset:0;
    pointer-events:none;
    z-index:3;
  }
  .stage canvas{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
  }

  svg{
    width:100%;
    height:100%;
    overflow:visible;
  }

  .curve{
    fill:none;
    stroke-width:1.7;
    vector-effect:non-scaling-stroke;
  }

  .p{stroke:#111513}
  .q{stroke:var(--green)}

  .label{
    font-size:17px;
    font-weight:650;
    letter-spacing:-.02em;
  }

  .intersection{
    fill:var(--green);
    filter:drop-shadow(0 0 9px rgba(8,122,82,.32));
  }

  .scroll-note{
    position:absolute;
    left:5vw;
    bottom:32px;
    font-size:11px;
    color:#9aa19e;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  /* ========== FEATURES (bento) ========== */
  .container{width:100%;max-width:1240px;margin:0 auto;padding:0 24px}

  .features{padding:clamp(64px,9vw,120px) 0}

  .section-head{max-width:640px;margin:0 auto 56px;text-align:center}
  .eyebrow{
    display:inline-block;
    font-size:13px;font-weight:700;letter-spacing:.02em;
    color:var(--green);margin-bottom:16px;
  }
  .section-head h2{
    font-size:clamp(28px,3.6vw,42px);
    letter-spacing:-.02em;line-height:1.12;
    color:var(--ink);font-weight:700;margin-bottom:16px;
  }
  .section-head p{font-size:17px;color:var(--muted);max-width:520px;margin:0 auto}

  .reveal{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out), transform .6s var(--ease-out)}
  .reveal.in{opacity:1;transform:none}
  .reveal-group > *{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out), transform .6s var(--ease-out)}
  .reveal-group.in > *{opacity:1;transform:none}
  .reveal-group.in > *:nth-child(1){transition-delay:0ms}
  .reveal-group.in > *:nth-child(2){transition-delay:90ms}
  .reveal-group.in > *:nth-child(3){transition-delay:180ms}
  .reveal-group.in > *:nth-child(4){transition-delay:270ms}
  .reveal-group.in > *:nth-child(5){transition-delay:360ms}
  .reveal-group.in > *:nth-child(6){transition-delay:450ms}

  .bento{display:grid;grid-template-columns:repeat(6,1fr);gap:20px}
  .bento > *{
    background:var(--card);
    border:1px solid var(--line);
    padding:28px;
    border-radius:var(--radius-lg);
    position:relative;overflow:hidden;
    transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out), border-color .3s;
    display:flex;flex-direction:column;
  }
  .bento > *:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow-xl);
    border-color:transparent;
  }
  .bento > *:nth-child(1){grid-column:span 3;grid-row:span 2;background:linear-gradient(160deg, var(--card) 55%, rgba(8,122,82,.08))}
  .bento > *:nth-child(2){grid-column:span 3;background:linear-gradient(160deg, var(--card) 60%, rgba(44,95,138,.07))}
  .bento > *:nth-child(3){grid-column:span 3;background:linear-gradient(160deg, var(--card) 60%, rgba(15,138,134,.07))}
  .bento > *:nth-child(4){grid-column:span 2}
  .bento > *:nth-child(5){grid-column:span 2}
  .bento > *:nth-child(6){grid-column:span 2}
  .bento-icon{
    width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
    background:var(--bg-soft);margin-bottom:20px;
    transition:transform .35s var(--ease-out);
  }
  .bento > *:hover .bento-icon{transform:scale(1.1) rotate(-4deg)}
  .bento-icon svg{width:22px;height:22px;stroke:var(--ink);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .bento h3{font-size:20px;margin-bottom:10px;color:var(--ink);font-weight:700;letter-spacing:-.01em}
  .bento p{font-size:15px;color:var(--muted);margin-bottom:auto;line-height:1.55}
  .bento-demo{
    margin-top:24px;border-radius:14px;
    background:var(--bg-soft);padding:18px;
    font-family:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
    font-size:13px;color:var(--ink);
    border:1px solid var(--line);overflow:hidden;
  }
  .bento-demo .row{display:flex;justify-content:space-between;padding:4px 0}
  .bento-demo .row span:last-child{color:var(--teal);font-weight:600}
  .bento-demo .row.warn span:last-child{color:var(--coral)}
  .bento-demo .row.ok span:last-child{color:var(--green)}

  @media(max-width:1024px){
    .bento{grid-template-columns:repeat(4,1fr)}
    .bento > *:nth-child(1){grid-column:span 4;grid-row:auto}
    .bento > *:nth-child(2){grid-column:span 2}
    .bento > *:nth-child(3){grid-column:span 2}
    .bento > *:nth-child(4),
    .bento > *:nth-child(5),
    .bento > *:nth-child(6){grid-column:span 2}
  }

  @media(max-width:768px){
    .features{padding:56px 0}
    .section-head{margin-bottom:40px}
    .bento{
      display:flex;
      flex-direction:column;
      gap:14px;
      padding-bottom:18vh;
    }
    .bento > *{
      grid-column:auto !important;
      grid-row:auto !important;
      position:sticky;
      min-height:56vh;
      padding:24px 22px;
      border-radius:var(--radius-lg);
      border:1px solid var(--line);
      box-shadow:
        0 -14px 30px -18px rgba(8,20,15,.20),
        var(--shadow);
      background:var(--card);
      transform:none !important;
      will-change:transform;
    }
    .bento > *:nth-child(1){ top:76px;  z-index:1; background:linear-gradient(160deg, var(--card) 55%, rgba(8,122,82,.08)); }
    .bento > *:nth-child(2){ top:84px;  z-index:2; background:linear-gradient(160deg, var(--card) 60%, rgba(44,95,138,.07)); }
    .bento > *:nth-child(3){ top:92px;  z-index:3; background:linear-gradient(160deg, var(--card) 60%, rgba(15,138,134,.07)); }
    .bento > *:nth-child(4){ top:100px; z-index:4; }
    .bento > *:nth-child(5){ top:108px; z-index:5; }
    .bento > *:nth-child(6){ top:116px; z-index:6; }
    .bento h3{font-size:18px}
    .bento p{font-size:14px}
  }

  @media (prefers-reduced-motion: reduce){
    .reveal,.reveal-group > *{opacity:1 !important;transform:none !important;transition:none !important}
    .bento > *{transition:none !important}
  }
  @media (prefers-reduced-motion: reduce) and (max-width:768px){
    .bento > *{position:static !important}
  }

  /* ========== MODULES (tab switcher) ========== */
  .modules{padding:clamp(64px,9vw,120px) 0;background:var(--bg-soft)}

  .module-tabs-wrap{
    position:relative;
    width:max-content;
    max-width:100%;
    margin:0 auto 40px;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:999px;
    padding:5px;
    box-shadow:0 1px 2px rgba(8,20,15,.04);
  }

  .module-tabs-wrap::before,
  .module-tabs-wrap::after{
    content:'';
    position:absolute;
    top:5px;bottom:5px;
    width:44px;
    pointer-events:none;
    z-index:2;
    opacity:0;
    transition:opacity .25s var(--ease-out);
  }
  .module-tabs-wrap::before{
    left:5px;
    border-radius:999px 0 0 999px;
    background:linear-gradient(to right, var(--card) 25%, rgba(255,255,255,0));
  }
  .module-tabs-wrap::after{
    right:5px;
    border-radius:0 999px 999px 0;
    background:linear-gradient(to left, var(--card) 25%, rgba(255,255,255,0));
  }
  .module-tabs-wrap.has-left::before,
  .module-tabs-wrap.has-right::after{opacity:1}

  .module-tabs{
    position:relative;
    display:flex;
    gap:2px;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -ms-overflow-style:none;
    scroll-behavior:smooth;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }
  .module-tabs::-webkit-scrollbar{display:none}

  .module-tabs__pill{
    position:absolute;
    top:0;left:0;
    height:100%;
    width:var(--pill-w, 0px);
    transform:translateX(var(--pill-x, 0px));
    background:var(--green);
    border-radius:999px;
    z-index:0;
    pointer-events:none;
    transition:transform .38s var(--ease-out), width .38s var(--ease-out);
    will-change:transform, width;
  }
  .module-tabs__pill.no-anim{transition:none !important}

  .module-tab{
    position:relative;
    z-index:1;
    flex:0 0 auto;
    font:inherit;
    cursor:pointer;
    padding:9px 18px;
    border:0;
    border-radius:999px;
    background:transparent;
    color:var(--ink);
    font-size:14px;
    font-weight:600;
    letter-spacing:-.01em;
    white-space:nowrap;
    min-height:38px;
    display:inline-flex;
    align-items:center;
    scroll-snap-align:center;
    -webkit-tap-highlight-color:transparent;
    transition:color .25s var(--ease-out);
  }
  .module-tab:hover{color:var(--green)}
  .module-tab.active{color:#fff}
  .module-tab:focus-visible{outline:2px solid var(--green);outline-offset:2px}

  .module-panel{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
    gap:40px;
    align-items:center;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    padding:clamp(28px,3.5vw,48px);
    overflow:hidden;
    touch-action:pan-y;
    transition:transform .35s var(--ease-out);
    outline:none;
    will-change:transform;
  }
  .module-panel:focus-visible{
    box-shadow:0 0 0 2px var(--green), var(--shadow);
  }

  .module-panel::before{
    content:'';
    position:absolute;
    top:-40%;right:-20%;
    width:60%;height:80%;
    background:radial-gradient(closest-side, rgba(8,122,82,.07), transparent 70%);
    pointer-events:none;
  }

  .module-swipe-hint{
    display:none;
    position:absolute;
    right:14px;bottom:14px;
    font-size:11px;
    font-weight:600;
    color:var(--muted);
    letter-spacing:.06em;
    text-transform:uppercase;
    padding:6px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.75);
    border:1px solid var(--line);
    backdrop-filter:blur(6px);
    pointer-events:none;
    z-index:2;
    transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);
  }
  .module-swipe-hint.hidden{opacity:0;transform:translateY(4px)}
  @media(max-width:900px){
    .module-swipe-hint{display:inline-block}
  }
  @media (prefers-reduced-motion: reduce){
    .module-swipe-hint{display:none !important}
  }

  .module-media{
    position:relative;
    aspect-ratio:4/3;
    border-radius:14px;
    overflow:hidden;
    background:
      radial-gradient(circle at 30% 20%, rgba(8,122,82,.06), transparent 60%),
      repeating-linear-gradient(45deg, var(--bg-soft) 0 12px, var(--bg) 12px 24px);
    border:1px dashed var(--line);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
    color:var(--muted);
  }
  .module-media__bar{
    position:absolute;
    top:0;left:0;right:0;
    height:28px;
    display:flex;
    align-items:center;
    gap:6px;
    padding:0 12px;
    border-bottom:1px solid var(--line);
    background:rgba(255,255,255,.55);
    backdrop-filter:blur(6px);
  }
  .module-media__bar span{
    width:8px;height:8px;border-radius:50%;
    background:var(--line);
  }
  .module-media__bar span:nth-child(1){background:#ff5f57}
  .module-media__bar span:nth-child(2){background:#febc2e}
  .module-media__bar span:nth-child(3){background:#28c840}

  .module-media svg{
    width:34px;height:34px;
    stroke:var(--muted);fill:none;stroke-width:1.6;
    transform:scale(.85);
    opacity:.55;
    transition:transform .5s var(--ease-out), opacity .5s var(--ease-out);
  }
  .module-media span{font-size:13px;letter-spacing:.01em}

  /* настоящий снимок программы вместо заглушки: светлое «окно» под светлую тему LDS, картинка прижата к верху */
  .module-media--shot{
    display:block;padding-top:28px;cursor:pointer;
    background:#fff;border:1px solid #dfe3e8;
    box-shadow:0 24px 50px -26px rgba(8,20,15,.28);
  }
  .module-media--shot .module-media__bar{background:#f3f5f7;border-bottom-color:#e3e7ec;backdrop-filter:none}
  .module-media--shot .module-media__bar b{margin-left:8px;font-size:11px;font-weight:500;color:#6b7480}
  .module-media--shot img{display:block;width:100%;height:auto}
  .module-media--shot:focus-visible{outline:2px solid var(--green);outline-offset:3px}
  .module-more{margin-top:24px}
  .module-more span{transition:transform .25s var(--ease-out)}
  .module-more:hover span{transform:translateX(3px)}

  .module-kicker{
    display:inline-block;
    font-family:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
    font-size:13px;font-weight:600;color:var(--green);
    margin-bottom:10px;letter-spacing:.02em;
  }
  .module-info h3{
    font-size:clamp(22px,2.4vw,28px);color:var(--ink);
    font-weight:700;letter-spacing:-.01em;margin-bottom:14px;line-height:1.2;
  }
  .module-info .module-desc{
    font-size:15.5px;color:var(--muted);line-height:1.6;margin-bottom:22px;
  }
  .module-list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}
  .module-list li{
    font-size:14.5px;color:var(--ink);line-height:1.5;
    display:flex;align-items:flex-start;gap:10px;
  }
  .module-list li::before{
    content:'';width:6px;height:6px;border-radius:50%;
    background:var(--green);flex-shrink:0;margin-top:8px;
  }

  .module-media,
  .module-kicker,
  .module-info h3,
  .module-info .module-desc{
    opacity:0;
    transform:translateY(12px);
    transition:opacity .45s var(--ease-out), transform .45s var(--ease-out);
  }
  .module-panel.is-in .module-media,
  .module-panel.is-in .module-kicker,
  .module-panel.is-in .module-info h3,
  .module-panel.is-in .module-info .module-desc{
    opacity:1;
    transform:none;
  }
  .module-panel.is-in .module-media{transition-delay:.06s}
  .module-panel.is-in .module-kicker{transition-delay:.12s}
  .module-panel.is-in .module-info h3{transition-delay:.18s}
  .module-panel.is-in .module-info .module-desc{transition-delay:.24s}

  .module-panel.is-in .module-media svg{
    transform:scale(1);
    opacity:1;
    transition-delay:.15s;
  }

  .module-list li{
    opacity:0;
    transform:translateY(8px);
    transition:opacity .35s var(--ease-out), transform .35s var(--ease-out);
  }
  .module-panel.is-in .module-list li{opacity:1;transform:none}
  .module-panel.is-in .module-list li:nth-child(1){transition-delay:.30s}
  .module-panel.is-in .module-list li:nth-child(2){transition-delay:.35s}
  .module-panel.is-in .module-list li:nth-child(3){transition-delay:.40s}
  .module-panel.is-in .module-list li:nth-child(4){transition-delay:.45s}
  .module-panel.is-in .module-list li:nth-child(5){transition-delay:.50s}
  .module-panel.is-in .module-list li:nth-child(6){transition-delay:.55s}

  .module-panel:not(.is-in) .module-media,
  .module-panel:not(.is-in) .module-kicker,
  .module-panel:not(.is-in) .module-info h3,
  .module-panel:not(.is-in) .module-info .module-desc,
  .module-panel:not(.is-in) .module-media svg,
  .module-panel:not(.is-in) .module-list li{
    transition-delay:0s;
    transition-duration:.18s;
  }

  .module-panel.is-dragging .module-media,
  .module-panel.is-dragging .module-kicker,
  .module-panel.is-dragging .module-info h3,
  .module-panel.is-dragging .module-info .module-desc,
  .module-panel.is-dragging .module-list li,
  .module-panel.is-dragging .module-media svg{
    transition:none !important;
  }

  @media(max-width:900px){
    .module-panel{grid-template-columns:1fr;gap:24px}
    .module-media{aspect-ratio:16/9}
  }

  @media(max-width:768px){
    .modules{padding:56px 0}
    .module-tabs-wrap{
      margin:0 auto 24px;
      padding:4px;
    }
    .module-tabs-wrap::before{left:4px;top:4px;bottom:4px;width:36px}
    .module-tabs-wrap::after{right:4px;top:4px;bottom:4px;width:36px}
    .module-tab{
      padding:10px 16px;
      font-size:13.5px;
      min-height:42px;
    }
    .module-panel{padding:22px 20px}
    .module-info h3{font-size:20px}
    .module-info .module-desc{font-size:14.5px}
    .module-list li{font-size:13.5px}
  }

  @media (prefers-reduced-motion: reduce){
    .module-tabs__pill{transition:none !important}
    .module-panel{transition:none !important}
    .module-media,
    .module-kicker,
    .module-info h3,
    .module-info .module-desc,
    .module-media svg,
    .module-list li{
      opacity:1 !important;
      transform:none !important;
      transition:none !important;
    }
  }

  /* ========== FLOW ========== */
  :root{
    --bg-panel:var(--card);
    --bg-panel-alt:var(--bg-soft);
    --border:var(--line);
    --border-strong:#c7cbd4;
    --text:var(--ink);
    --text-dim:var(--muted);
    --accent:#1f63d6;
    --accent-soft:rgba(31,99,214,.10);
    --accent-2:#0f8f72;
    --accent-3:#7f3fc0;
    --warn:#b5720a;
    --r-md:10px;
    --r-lg:16px;
    --sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
    --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  }

  .wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 24px}
  .sec{padding:clamp(64px,9vw,120px) 0}
  .sec--alt{background:var(--bg-soft);border-block:1px solid var(--border)}

  .sec__head{max-width:640px;margin:0 auto 56px;text-align:center}
  .sec__head h2{
    font-size:clamp(28px,3.6vw,42px);letter-spacing:-.02em;line-height:1.12;
    color:var(--ink);font-weight:700;margin-bottom:16px;
  }
  .sec__head p{font-size:17px;color:var(--text-dim);max-width:560px;margin:0 auto}

  /* --- оболочка схемы: рамка + скругление + обрезка --- */
  .flow-shell{
    position:relative;
    border:1px solid var(--border);
    border-radius:var(--r-lg);
    background:var(--bg-panel);
    overflow:hidden;
  }

  .flow-wrap{
    padding:32px 28px 36px;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -ms-overflow-style:none;
    -webkit-overflow-scrolling:touch;
  }
  .flow-wrap::-webkit-scrollbar{display:none}

  .flow-wrap svg{
    display:block;
    width:100%;
    min-width:880px;
    height:auto;
  }

  /* анимация схемы: бегущий пунктир обратной связи */
  .flow-fb{animation:flow-dash 1s linear infinite}
  @keyframes flow-dash{to{stroke-dashoffset:-10}}
  @media (prefers-reduced-motion: reduce){ .flow-fb{animation:none} }

  /* мягкие затухания у краёв при скролле */
  .flow-shell::before,
  .flow-shell::after{
    content:'';
    position:absolute;
    top:0;bottom:3px;
    width:1px;
    pointer-events:none;
    z-index:2;
    opacity:0;
    transition:opacity .3s var(--ease-out);
  }
  .flow-shell::before{
    left:0;
    background:linear-gradient(to right, var(--bg-panel) 20%, rgba(255,255,255,0));
  }
  .flow-shell::after{
    right:0;
    background:linear-gradient(to left, var(--bg-panel) 20%, rgba(255,255,255,0));
  }
  .flow-shell.has-left::before,
  .flow-shell.has-right::after{opacity:1}

  /* подсказка «свайп» */
  .flow-hint{
    position:absolute;
    bottom:18px;right:14px;
    display:inline-flex;align-items:center;gap:6px;
    padding:6px 12px;
    border-radius:999px;
    background:rgba(17,21,19,.82);
    color:#fff;
    font-size:11px;font-weight:600;
    letter-spacing:.05em;text-transform:uppercase;
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    z-index:3;
    pointer-events:none;
    transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);
  }
  .flow-hint svg{
    width:12px;height:12px;
    min-width:12px;
    stroke:currentColor;fill:none;
    stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;
    overflow:visible;
  }
  .flow-hint.is-hidden{opacity:0;transform:translateY(6px)}

  /* полоса прогресса скролла */
  .flow-progress{
    position:relative;
    height:3px;
    background:var(--bg-soft);
    overflow:hidden;
  }
  .flow-progress__bar{
    height:100%;width:0;
    background:var(--green);
    transition:width .12s linear;
    will-change:width;
  }

  @media (prefers-reduced-motion: reduce){
    .flow-wrap{scroll-behavior:auto}
    .flow-progress__bar{transition:none}
    .flow-hint{display:none}
  }

  /* --- мобильная схема: мини-карта + описание шага (вместо свайпа) --- */
  .flow-mobile{display:none}
  .flow-mobile svg{display:block;width:100%;height:auto;overflow:visible}
  .flow-cap{margin-top:16px;padding-top:16px;border-top:1px solid var(--border);min-height:124px}
  .flow-cap>*{transition:opacity .25s}
  .flow-cap.is-swap>*{opacity:0}
  .flow-cap__k{font-family:var(--font-mono);font-size:11px;color:var(--text-dim)}
  .flow-cap__t{font-size:17px;font-weight:700;color:var(--ink);margin:4px 0 6px}
  .flow-cap__d{font-size:14px;line-height:1.45;color:var(--text-dim)}
  .flow-cap.is-warn .flow-cap__k,.flow-cap.is-warn .flow-cap__t{color:var(--warn)}
  @media (max-width:985px){
    .flow-wrap,.flow-hint,.flow-progress{display:none}
    .flow-shell::before,.flow-shell::after{display:none}
    .flow-mobile{display:block;max-width:460px;margin:0 auto;padding:22px 16px 20px}
  }

  .grid{display:grid;gap:20px}
  .grid--3{grid-template-columns:repeat(3,1fr)}

  .card{
    background:var(--bg-panel);border:1px solid var(--border);
    border-radius:var(--r-md);padding:24px;
    transition:transform .35s var(--ease-out),
               box-shadow .35s var(--ease-out),
               border-color .3s;
  }
  .card:hover{
    border-color:transparent;
    transform:translateY(-6px);
    box-shadow:var(--shadow-xl);
  }
  .card h3{font-size:17px;margin-bottom:10px;color:var(--ink);font-weight:700}
  .card p{color:var(--text-dim);font-size:14.5px;line-height:1.55}

  .card__ico{
    width:38px;height:38px;border-radius:9px;
    display:grid;place-items:center;margin-bottom:16px;
    background:var(--accent-soft);color:var(--accent);
    transition:transform .35s var(--ease-out);
  }
  .card:hover .card__ico{transform:scale(1.1) rotate(-4deg)}
  .card__ico svg{width:20px;height:20px}
  .card__ico--teal{background:rgba(15,143,114,.13);color:var(--accent-2)}
  .card__ico--violet{background:rgba(127,63,192,.13);color:var(--accent-3)}

  .rise{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease}
  .rise.is-in{opacity:1;transform:none}

  @media(max-width:768px){
    .sec{padding:56px 0}
    .grid--3{
      display:flex;
      flex-direction:column;
      gap:14px;
      padding-bottom:18vh;
    }
    .grid--3 > *{
      grid-column:auto !important;
      grid-row:auto !important;
      position:sticky;
      min-height:56vh;
      padding:24px 22px;
      border-radius:var(--radius-lg);
      border:1px solid var(--line);
      box-shadow:
        0 -14px 30px -18px rgba(8,20,15,.20),
        var(--shadow);
      background:var(--bg-panel);
      transform:none !important;
      will-change:transform;
      display:flex;
      flex-direction:column;
    }
    .grid--3 > *:nth-child(1){ top:76px;  z-index:1; }
    .grid--3 > *:nth-child(2){ top:84px;  z-index:2; }
    .grid--3 > *:nth-child(3){ top:92px;  z-index:3; }
    .grid--3 .card__ico{margin-bottom:16px}
    .grid--3 .card h3{font-size:18px}
    .grid--3 .card p{font-size:14px}
    .grid--3 .card:hover{transform:none;box-shadow:
      0 -14px 30px -18px rgba(8,20,15,.20),
      var(--shadow);border-color:var(--line)}
    .grid--3 .card:hover .card__ico{transform:none}
  }

  @media (prefers-reduced-motion: reduce){
    .rise{opacity:1 !important;transform:none !important;transition:none !important}
    .reveal-group > *{opacity:1 !important;transform:none !important;transition:none !important}
    .card, .card__ico{transition:none !important}
    .card:hover, .card:hover .card__ico{transform:none !important}
  }
  @media (prefers-reduced-motion: reduce) and (max-width:768px){
    .grid--3 > *{position:static !important}
  }

  /* ========== АДАПТИВ ШАПКИ ========== */
  @media (max-width: 800px) {
    .menu { display: none; }
    .nav-cta { display: none; }
    .nav-burger { display: grid; }
  }

  /* ========== КНОПКИ ========== */
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:14px 24px;border-radius:12px;
    font-size:15px;font-weight:600;letter-spacing:-.01em;
    text-decoration:none;cursor:pointer;border:1px solid transparent;
    transition:transform .25s var(--ease-out), background .25s var(--ease-out),
               border-color .25s var(--ease-out), box-shadow .25s var(--ease-out);
    white-space:nowrap;
  }
  .btn-primary{
    background:var(--green);color:#fff;
    box-shadow:0 10px 24px -10px rgba(8,122,82,.55);
  }
  .btn-primary:hover{background:#066443;transform:translateY(-2px)}
  .btn-ghost{background:var(--card);color:var(--ink);border-color:var(--line)}
  .btn-ghost:hover{background:var(--bg-soft);transform:translateY(-2px)}

  .hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px;position:relative;z-index:8}
  .hero-note{
    margin-top:18px;font-size:13px;color:var(--muted);
    position:relative;z-index:8;
  }
  @media(max-width:768px){
    .hero-cta .btn{flex:1 1 auto;min-width:0}
  }

  /* ========== ЗАГЛУШКИ (.todo) ========== */
  .todo{
    border-bottom:1px dashed var(--coral);
    color:var(--coral);
    cursor:help;
  }
  .todo-tag{
    display:inline-block;font-size:10px;font-weight:700;
    letter-spacing:.04em;text-transform:uppercase;
    color:var(--coral);background:rgba(181,80,46,.10);
    border-radius:5px;padding:2px 6px;margin-left:6px;
    vertical-align:middle;
  }

  /* ========== НОРМАТИВНАЯ БАЗА ========== */
  .norms-note{
    display:flex;gap:10px;align-items:flex-start;
    background:var(--bg-soft);border:1px solid var(--line);
    border-radius:12px;padding:14px 16px;margin-bottom:28px;
    font-size:13.5px;color:var(--muted);line-height:1.5;
  }
  .norms-note svg{width:17px;height:17px;flex-shrink:0;margin-top:1px;stroke:var(--muted);fill:none;stroke-width:1.8}
  .norms-table-wrap{
    border:1px solid var(--line);border-radius:16px;
    overflow:hidden;overflow-x:auto;background:var(--card);
  }
  table.norms{width:100%;border-collapse:collapse;min-width:640px;font-size:14.5px}
  table.norms th{
    text-align:left;font-size:12px;font-weight:700;letter-spacing:.04em;
    text-transform:uppercase;color:var(--muted);
    padding:14px 20px;background:var(--bg-soft);border-bottom:1px solid var(--line);
  }
  table.norms td{padding:14px 20px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:top}
  table.norms tr:last-child td{border-bottom:0}
  table.norms td.norms-mod{font-weight:700;white-space:nowrap}
  table.norms td.norms-doc{color:var(--muted)}

  /* ========== ВЕРИФИКАЦИЯ ========== */
  .verify-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
  .verify-card{
    background:var(--card);border:1px solid var(--line);border-radius:16px;
    padding:26px 24px;
  }
  .verify-card h3{font-size:17px;margin:0 0 10px;color:var(--ink);font-weight:700}
  .verify-card p{font-size:14.5px;color:var(--muted);line-height:1.6;margin:0 0 14px}
  .verify-list{display:flex;flex-wrap:wrap;gap:8px}
  .verify-list span{
    font-family:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
    font-size:12.5px;background:var(--bg-soft);border:1px solid var(--line);
    border-radius:7px;padding:5px 9px;color:var(--ink);
  }
  .verify-card.pending{
    background:transparent;border-style:dashed;
  }
  .verify-card.pending h3{color:var(--muted)}
  @media(max-width:768px){
    .verify-grid{grid-template-columns:1fr}
  }

  /* ========== ФУТЕР ========== */
  footer{
    background:var(--ink);color:rgba(255,255,255,.68);
    padding:clamp(56px,7vw,80px) 0 28px;
  }
  .footer-grid{
    display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1.2fr;gap:32px;
    padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.12);
  }
  .footer-brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800;font-size:16px;margin-bottom:14px}
  .footer-brand .logo{width:34px;height:34px;font-size:12px;border-radius:10px}
  .footer-about{font-size:14px;line-height:1.6;max-width:280px}
  .footer-col h4{
    font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
    color:rgba(255,255,255,.45);margin:0 0 16px;
  }
  .footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
  .footer-col a{color:rgba(255,255,255,.75);text-decoration:none;font-size:14.5px;transition:color .2s}
  .footer-col a:hover{color:#fff}
  .footer-col li{font-size:14.5px;line-height:1.5}
  .footer-bottom{
    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;
    gap:12px;padding-top:24px;font-size:13px;color:rgba(255,255,255,.4);
  }
  footer .todo{color:#e8a17e;border-bottom-color:#e8a17e}
  footer .todo-tag{color:#e8a17e;background:rgba(232,161,126,.14)}
  @media(max-width:900px){
    .footer-grid{grid-template-columns:1fr 1fr;gap:32px 24px}
  }
  @media(max-width:520px){
    .footer-grid{grid-template-columns:1fr;gap:28px}
    .footer-bottom{flex-direction:column;align-items:flex-start}
  }


/* ========== SUB-PAGES ========== */
.page-hero{
  padding:clamp(120px,16vw,170px) 0 clamp(56px,8vw,88px);
  text-align:center;
  background:
    radial-gradient(circle at 18% 12%, rgba(8,122,82,.07), transparent 46%),
    radial-gradient(circle at 82% 8%, rgba(44,95,138,.06), transparent 42%);
}
.page-hero .eyebrow{display:inline-block;margin-bottom:16px}
.page-hero h1{
  font-size:clamp(34px,5.5vw,64px);
  letter-spacing:-.04em;line-height:1.03;
  font-weight:720;margin:0 auto 20px;max-width:860px;
}
.page-hero p{font-size:17px;color:var(--muted);max-width:620px;margin:0 auto;line-height:1.6}
.page-hero .hero-cta{justify-content:center;margin-top:30px}

.toc{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:30px}
.toc a{
  padding:8px 16px;border-radius:999px;border:1px solid var(--line);
  background:var(--card);color:var(--ink);font-size:13.5px;font-weight:600;
  text-decoration:none;transition:color .2s,border-color .2s,background .2s;
}
.toc a:hover{color:var(--green);border-color:rgba(8,122,82,.35);background:rgba(8,122,82,.06)}

.mod-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.mod-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:32px 30px;scroll-margin-top:100px;
  transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),border-color .3s;
}
.mod-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:transparent}
.mod-card .module-kicker{display:inline-block;margin-bottom:12px}
.mod-card h3{font-size:20px;margin:0 0 12px;color:var(--ink);font-weight:700;letter-spacing:-.01em}
.mod-card > p{font-size:15px;color:var(--muted);line-height:1.6;margin:0 0 18px}
.mod-card .module-list{margin:0}
@media(max-width:768px){
  .mod-grid{grid-template-columns:1fr}
  .mod-card{padding:24px 22px}
}

/* ========== СТРАНИЦА МОДУЛЕЙ: подробные блоки ========== */
.page-hero--tight{padding-bottom:clamp(40px,6vw,64px)}

/* липкая навигация по модулям — под фиксированной шапкой (78px) */
.mod-nav{
  position:sticky;top:78px;z-index:15;
  background:rgba(248,250,249,.86);backdrop-filter:blur(14px);
  border-block:1px solid var(--line);
}
.mod-nav__inner{
  max-width:1240px;margin:0 auto;padding:10px 24px;
  display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;
}
.mod-nav__inner::-webkit-scrollbar{display:none}
.mod-nav a{
  flex-shrink:0;padding:7px 14px;border-radius:999px;
  font-size:13.5px;font-weight:600;color:var(--muted);text-decoration:none;
  border:1px solid transparent;transition:color .2s,background .2s,border-color .2s;
}
.mod-nav a:hover{color:var(--ink);background:var(--card);border-color:var(--line)}
.mod-nav a.is-active{color:var(--green);background:rgba(8,122,82,.08);border-color:rgba(8,122,82,.25)}

.sec--modules{padding-top:clamp(40px,6vw,72px)}

/* блок модуля: текст + снимок, через один зеркально */
.md{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(28px,4vw,64px);align-items:center;
  padding:clamp(48px,7vw,96px) 0;scroll-margin-top:140px;
}
.md + .md{border-top:1px solid var(--line)}
.md--flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.md--flip .md__text{order:2}
.md--flip .md__media{order:1}

.md__kicker{
  display:flex;align-items:center;gap:10px;margin-bottom:14px;
  font-family:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  font-size:12.5px;font-weight:600;letter-spacing:.03em;color:var(--green);text-transform:uppercase;
}
.md__kicker i{
  font-style:normal;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;
  background:rgba(8,122,82,.09);color:var(--green);font-size:12px;
}
.md h2{
  font-size:clamp(26px,3vw,38px);line-height:1.12;letter-spacing:-.025em;
  font-weight:720;color:var(--ink);margin:0 0 16px;
}
.md__lead{font-size:16.5px;line-height:1.6;color:var(--muted);margin:0 0 24px}
.md__feats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.md__feats li{
  position:relative;padding-left:18px;font-size:15px;line-height:1.55;color:var(--muted);
}
.md__feats li::before{
  content:'';position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--green);
}
.md__feats b{color:var(--ink);font-weight:650}
.md__links{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 0}
.md__links span{
  font-size:12.5px;padding:6px 12px;border-radius:999px;
  background:var(--bg-soft);color:var(--ink);border:1px solid var(--line);
}
.md__links em{font-style:normal;color:var(--muted);margin-right:4px}

/* переключатель снимков, когда их несколько */
.shot-tabs{display:flex;gap:4px;margin-bottom:12px;padding:4px;border-radius:12px;background:var(--bg-soft);width:max-content;max-width:100%;overflow-x:auto}
.shot-tabs button{
  border:0;background:transparent;cursor:pointer;padding:7px 14px;border-radius:9px;
  font:inherit;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap;
  transition:background .2s,color .2s,box-shadow .2s;
}
.shot-tabs button[aria-selected="true"]{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(8,20,15,.12)}

/* снимок экрана в «окне» программы */
.shot{margin:0}
.shot[hidden]{display:none}
.shot__frame{
  position:relative;display:block;width:100%;padding:0;cursor:zoom-in;
  border:1px solid #dfe3e8;border-radius:14px;overflow:hidden;background:#fff;
  box-shadow:0 30px 60px -28px rgba(8,20,15,.28);
  transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out);
}
.shot__frame:hover{transform:translateY(-3px);box-shadow:0 40px 70px -30px rgba(8,20,15,.5)}
.shot__frame:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.shot__bar{
  display:flex;align-items:center;gap:6px;height:30px;padding:0 12px;
  background:#f3f5f7;border-bottom:1px solid #e3e7ec;
}
.shot__bar i{width:9px;height:9px;border-radius:50%;background:#d3d8de}
.shot__bar b{margin-left:8px;font-size:11.5px;font-weight:500;color:#6b7480;letter-spacing:.01em}
.shot__frame img{display:block;width:100%;height:auto}
.shot__zoom{
  position:absolute;right:12px;bottom:12px;width:36px;height:36px;border-radius:10px;
  display:grid;place-items:center;background:rgba(255,255,255,.92);
  opacity:0;transform:translateY(4px);transition:opacity .25s,transform .25s;
}
.shot__zoom svg{width:18px;height:18px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}
.shot__frame:hover .shot__zoom,.shot__frame:focus-visible .shot__zoom{opacity:1;transform:none}
.shot figcaption{font-size:13px;color:var(--muted);margin-top:12px;line-height:1.45}

/* просмотр снимка во весь экран */
.lightbox{
  position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:56px 24px 24px;background:rgba(8,12,10,.88);backdrop-filter:blur(6px);cursor:zoom-out;
}
.lightbox[hidden]{display:none}
.lightbox img{max-width:100%;max-height:calc(100vh - 120px);border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lightbox__cap{color:rgba(255,255,255,.75);font-size:14px;margin:14px 0 0;text-align:center}
.lightbox__close{
  position:absolute;top:14px;right:18px;width:40px;height:40px;border-radius:12px;border:0;cursor:pointer;
  background:rgba(255,255,255,.12);color:#fff;font-size:26px;line-height:1;
}
.lightbox__close:hover{background:rgba(255,255,255,.22)}

@media(max-width:960px){
  .md,.md--flip{grid-template-columns:1fr;gap:28px}
  .md--flip .md__text,.md__text{order:1}
  .md--flip .md__media,.md__media{order:2}
}
@media(max-width:560px){
  .mod-nav__inner{padding:8px 16px}
  .md__lead{font-size:15.5px}
  .md__feats li{font-size:14.5px}
  .shot__bar{height:24px}
  .shot__bar b{display:none}
}
@media (prefers-reduced-motion: reduce){
  .shot__frame,.shot__frame:hover{transition:none;transform:none}
}

.tariff-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.tariff{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:28px 26px;display:flex;flex-direction:column;
  transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),border-color .3s;
}
.tariff:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:transparent}
.tariff--featured{border-color:var(--green);box-shadow:0 0 0 1px var(--green) inset}
.tariff .tariff-name{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.tariff .tariff-price{font-size:30px;font-weight:800;letter-spacing:-.03em;color:var(--ink);margin-bottom:4px}
.tariff .tariff-per{font-size:13px;color:var(--muted);margin-bottom:18px}
.tariff ul{list-style:none;margin:0 0 24px;padding:0;display:flex;flex-direction:column;gap:10px;flex:1}
.tariff ul li{font-size:14px;color:var(--ink);line-height:1.45;display:flex;align-items:flex-start;gap:10px}
.tariff ul li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0;margin-top:7px}
.tariff .btn{margin-top:auto}
@media(max-width:1000px){.tariff-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.tariff-grid{grid-template-columns:1fr}}
.tariff-grid--3{grid-template-columns:repeat(3,1fr)}
@media(max-width:1000px){.tariff-grid--3{grid-template-columns:1fr}}

  /* ========== CTA-БЛОК НА ГЛАВНОЙ ========== */
  #cta{background:var(--bg-soft);padding-top:0}
  .cta-band{
    position:relative;overflow:hidden;
    display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:clamp(32px,5vw,72px);
    padding:clamp(32px,5vw,64px);border-radius:28px;
    background:linear-gradient(135deg,var(--green),#05553a);color:#fff;
    box-shadow:0 30px 60px -30px rgba(8,122,82,.6);
  }
  .cta-band::after{
    content:"";position:absolute;right:-120px;top:-120px;width:380px;height:380px;border-radius:50%;
    background:radial-gradient(circle,rgba(255,255,255,.14),transparent 70%);pointer-events:none;
  }
  .cta-band__copy{position:relative;z-index:1}
  .cta-band .eyebrow{color:rgba(255,255,255,.75)}
  .cta-band h2{color:#fff;margin:8px 0 14px;font-size:clamp(26px,3.4vw,42px);line-height:1.1;letter-spacing:-.02em}
  .cta-band p{color:rgba(255,255,255,.85);margin:0;font-size:16px;line-height:1.55;max-width:520px}
  .cta-band__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
  .cta-steps{
    position:relative;z-index:1;list-style:none;margin:0;padding:8px 24px;counter-reset:step;
    background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:20px;
  }
  .cta-steps li{counter-increment:step;display:grid;grid-template-columns:36px 1fr;column-gap:14px;padding:18px 0}
  .cta-steps li+li{border-top:1px solid rgba(255,255,255,.14)}
  .cta-steps li::before{
    content:counter(step);grid-row:span 2;width:36px;height:36px;border-radius:10px;
    display:grid;place-items:center;background:#fff;color:var(--green);font-weight:800;font-size:15px;
  }
  .cta-steps b{font-size:16px;font-weight:700}
  .cta-steps span{font-size:14px;color:rgba(255,255,255,.75);margin-top:2px}
  .btn-light{background:#fff;color:var(--green)}
  .btn-light:hover{background:#eef7f2;transform:translateY(-2px)}
  .btn-outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
  .btn-outline-light:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}
  @media(max-width:900px){
    .cta-band{grid-template-columns:1fr}
    .cta-steps{display:none}
    .cta-band__actions .btn{flex:1 1 auto}
  }

/* ===== Форма заявки ===== */
.request{background:var(--bg-soft)}
.request__grid{display:grid;grid-template-columns:1fr 1.3fr;gap:48px;align-items:start}
.request__copy h2{margin:8px 0 14px}
.request__copy p{color:var(--muted);line-height:1.6;max-width:420px}
.request__form{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:28px;display:flex;flex-direction:column;gap:16px}
.request__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.request__form label{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink)}
.request__form input,.request__form select,.request__form textarea{font:inherit;font-weight:400;font-size:15px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);transition:border-color .2s,box-shadow .2s}
.request__form textarea{resize:vertical}
.request__form input:focus,.request__form select:focus,.request__form textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(8,122,82,.12)}
.request__form .invalid{border-color:var(--coral)}
.request__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.request__consent{flex-direction:row!important;align-items:flex-start;gap:10px!important;font-weight:400!important;color:var(--muted)!important;line-height:1.5}
.request__consent input{width:18px;height:18px;margin:2px 0 0;flex:none;accent-color:var(--green)}
.request__consent a{color:var(--green)}
.request__form .btn{align-self:flex-start;border:0;cursor:pointer}
.request__form .btn[disabled]{opacity:.6;cursor:wait}
.request__status{margin:0;font-size:14px;min-height:1.2em}
.request__status.ok{color:var(--green)}
.request__status.err{color:var(--coral)}
@media(max-width:900px){.request__grid{grid-template-columns:1fr;gap:28px}}
@media(max-width:560px){.request__row{grid-template-columns:1fr}.request__form{padding:20px}}

/* ===== Текстовые страницы (политика) ===== */
.doc{max-width:820px;margin:0 auto;padding:120px 20px 64px;line-height:1.65}
.doc h1{font-size:34px;margin:0 0 8px}
.doc h2{font-size:21px;margin:34px 0 10px}
.doc .doc__date{color:var(--muted);margin-bottom:28px}
.doc h3{font-size:17px;margin:22px 0 8px}
.doc ul{padding-left:22px;margin:8px 0 14px}
.doc li{margin:4px 0}

/* ========== СТРАНИЦЫ РЕШЕНИЙ: LDS FTA, LDS FMECA, Расчёт λ ========== */
/* на этих страницах список в карточке виден сразу (анимация — только в табах главной) */
.mod-card .module-list li{opacity:1;transform:none}

/* первый экран: текст слева, снимок программы справа */
.p-hero{
  position:relative;overflow:hidden;
  padding:clamp(112px,13vw,150px) 0 clamp(48px,6vw,80px);
  background:
    radial-gradient(circle at 12% 18%, rgba(8,122,82,.08), transparent 44%),
    radial-gradient(circle at 88% 6%, rgba(44,95,138,.07), transparent 40%);
}
.p-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(8,20,15,.08) 1px, transparent 1px);
  background-size:24px 24px;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent 80%);
          mask-image:linear-gradient(to bottom,#000 0%,transparent 80%);
}
.p-hero .container{position:relative}
.p-hero__grid{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);
  gap:clamp(36px,5vw,80px);align-items:center;
}
.p-hero .eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:22px}
.p-hero .eyebrow i{
  font-style:normal;font-family:var(--font-mono);font-size:12px;letter-spacing:0;
  padding:4px 9px;border-radius:999px;background:rgba(8,122,82,.09);
}
.p-hero h1{
  font-size:clamp(40px,5vw,70px);line-height:.98;letter-spacing:-.05em;
  font-weight:720;margin:0 0 24px;
}
.p-hero h1 em{font-style:normal;color:var(--green)}
.p-hero .sub{max-width:520px}
.p-hero .hero-cta{margin-top:30px}
.p-hero__checks{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px}
.p-hero__checks li{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted)}
.p-hero__checks li::before{
  content:"";width:16px;height:16px;border-radius:50%;flex-shrink:0;
  background:rgba(8,122,82,.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='%23087a52' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;
}

.p-hero__media{position:relative;perspective:1800px}
.p-hero__media .shot__frame{transform:rotateY(-7deg) rotateX(2deg);transform-origin:left center}
.p-hero__media .shot__frame:hover{transform:rotateY(-3deg) rotateX(1deg) translateY(-4px)}

/* плавающая карточка с результатом поверх снимка */
.p-float{
  position:absolute;left:-28px;bottom:-26px;z-index:2;min-width:270px;
  background:rgba(255,255,255,.96);backdrop-filter:blur(10px);
  border:1px solid var(--line);border-radius:16px;padding:14px 18px;
  box-shadow:0 24px 48px -18px rgba(8,20,15,.28);
  font-family:var(--font-mono);font-size:12.5px;color:var(--ink);
  animation:p-float 6s ease-in-out infinite;
}
.p-float__title{
  font-family:"IBM Plex Sans",ui-sans-serif,-apple-system,sans-serif;font-size:11.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;
}
.p-float .row{display:flex;justify-content:space-between;gap:18px;padding:3px 0}
.p-float .row span:last-child{font-weight:600;color:var(--teal)}
.p-float .row.ok span:last-child{color:var(--green)}
.p-float .row.warn span:last-child{color:var(--coral)}
@keyframes p-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* полоса ключевых цифр */
.p-stats{
  display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(56px,7vw,88px);
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow);overflow:hidden;
}
.p-stats > div{padding:22px 24px}
.p-stats > div + div{border-left:1px solid var(--line)}
.p-stats b{display:block;font-size:clamp(20px,2vw,26px);font-weight:750;letter-spacing:-.03em;color:var(--ink);margin-bottom:4px}
.p-stats span{font-size:13.5px;color:var(--muted);line-height:1.45}

/* «где теряется время»: карточки с проблемой и ответом */
.pain{display:flex;flex-direction:column;border-radius:var(--radius-lg);padding:28px}
.pain .card__ico{background:rgba(181,80,46,.10);color:var(--coral)}
.pain .card__ico svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pain h3{font-size:18px;letter-spacing:-.01em}
.pain p{margin:0}
.pain h3 + p{margin-bottom:20px}
/* решение: отделено пунктиром, со своей мини-схемой */
.pain__fix{margin-top:auto;padding-top:20px;border-top:1px dashed var(--line)}
.pain__fix p{
  display:flex;gap:10px;align-items:flex-start;
  font-size:14.5px;line-height:1.5;color:var(--ink);
}
.pain__fix p::before{
  content:"";width:18px;height:18px;flex-shrink:0;margin-top:1px;border-radius:50%;
  background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;
}
/* мини-схемы «Как сейчас» / «С LDS» с подписью */
.pain__vis{margin-bottom:18px}
.pain__fix .pain__vis{margin-bottom:14px}
.pain__vis .dp-mini{margin:0}
.pain__vis--bad .dp-mini{background:rgba(181,80,46,.06);box-shadow:inset 0 0 0 1px rgba(181,80,46,.14)}
.pain__vis--ok .dp-mini{background:rgba(8,122,82,.06);box-shadow:inset 0 0 0 1px rgba(8,122,82,.16)}
.pain__tag{
  display:inline-flex;align-items:center;gap:6px;margin-bottom:8px;
  font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
}
.pain__tag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pain__vis--bad .pain__tag{color:var(--coral)}
.pain__vis--ok .pain__tag{color:var(--green)}
.pain__vis--ok .pain__tag::before{animation:dp-ping 2.4s infinite}

/* блоки возможностей на странице решения — без липкой навигации */
.sec--feats{padding-top:clamp(24px,4vw,48px)}
.sec--feats .md{scroll-margin-top:100px}

/* шаги работы */
.p-steps{
  list-style:none;margin:0;padding:0;counter-reset:pstep;
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative;
}
.p-steps::before{
  content:"";position:absolute;left:28px;right:calc(25% - 43px);top:27px;height:2px;
  background:repeating-linear-gradient(90deg,var(--line) 0 8px,transparent 8px 14px);
}
.p-steps li{counter-increment:pstep;position:relative}
.p-steps li::before{
  content:counter(pstep);position:relative;z-index:1;
  display:grid;place-items:center;width:56px;height:56px;border-radius:16px;margin-bottom:20px;
  background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);
  font-family:var(--font-mono);font-size:15px;font-weight:700;color:var(--green);
}
.p-steps b{display:block;font-size:17px;font-weight:700;letter-spacing:-.01em;margin-bottom:8px}
.p-steps span{display:block;font-size:14.5px;line-height:1.55;color:var(--muted)}

/* методика */
.p-norm{
  display:flex;align-items:center;gap:20px;margin-top:clamp(40px,5vw,64px);
  padding:22px 26px;border-radius:var(--radius-lg);
  background:var(--card);border:1px solid var(--line);
}
.p-norm__ico{
  width:48px;height:48px;border-radius:14px;flex-shrink:0;display:grid;place-items:center;
  background:rgba(8,122,82,.09);color:var(--green);
}
.p-norm__ico svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.p-norm b{display:block;font-size:16px;margin-bottom:3px}
.p-norm p{margin:0;font-size:14px;color:var(--muted);line-height:1.5}
.p-norm a{margin-left:auto;flex-shrink:0}

/* вопросы и ответы */
.faq{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,5vw,80px);align-items:start}
.faq .sec__head{text-align:left;margin:0;position:sticky;top:110px}
.faq .sec__head p{margin:0}
.faq__list{display:flex;flex-direction:column;gap:12px}
.faq__item{
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  transition:border-color .25s,box-shadow .25s;
}
.faq__item[open]{border-color:rgba(8,122,82,.3);box-shadow:var(--shadow)}
.faq__item summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:20px 22px;font-size:16px;font-weight:650;letter-spacing:-.01em;
}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{
  content:"+";flex-shrink:0;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;
  background:var(--bg-soft);color:var(--green);font-size:18px;font-weight:600;
  transition:transform .3s var(--ease-out),background .2s;
}
.faq__item[open] summary::after{transform:rotate(45deg);background:rgba(8,122,82,.1)}
.faq__item summary:focus-visible{outline:2px solid var(--green);outline-offset:-2px;border-radius:16px}
.faq__item p{margin:0;padding:0 22px 20px;font-size:15px;line-height:1.6;color:var(--muted)}

/* перекрёстные ссылки на другие решения */
.sec--flush{padding-top:0}
.xsell{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.xsell a{
  display:flex;flex-direction:column;padding:26px;border-radius:var(--radius-lg);
  background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--ink);
  transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),border-color .3s;
}
.xsell a:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:transparent}
.xsell small{font-family:var(--font-mono);font-size:12.5px;font-weight:600;color:var(--green);margin-bottom:10px}
.xsell b{font-size:19px;letter-spacing:-.01em;margin-bottom:8px}
.xsell a > span{font-size:14.5px;line-height:1.55;color:var(--muted);margin-bottom:18px}
.xsell i{
  margin-top:auto;font-style:normal;font-size:14px;font-weight:600;color:var(--green);
  display:inline-flex;gap:6px;transition:gap .25s var(--ease-out);
}
.xsell a:hover i{gap:10px}
.xsell a.xsell--suite{background:linear-gradient(150deg,var(--card) 50%,rgba(8,122,82,.09));border-color:rgba(8,122,82,.3)}

@media(max-width:1000px){
  .p-hero__grid{grid-template-columns:1fr}
  .p-hero__media{max-width:720px}
  .p-hero__media .shot__frame,.p-hero__media .shot__frame:hover{transform:none}
  .p-stats{grid-template-columns:repeat(2,1fr)}
  .p-stats > div:nth-child(3){border-left:0}
  .p-stats > div:nth-child(n+3){border-top:1px solid var(--line)}
  .p-steps{grid-template-columns:repeat(2,1fr);row-gap:36px}
  .p-steps::before{display:none}
  .faq{grid-template-columns:1fr}
  .faq .sec__head{position:static}
  .xsell{grid-template-columns:1fr}
}
@media(max-width:768px){
  .p-float{position:relative;left:auto;bottom:auto;margin:-28px 14px 0;min-width:0;animation:none}
  .grid--3 > .pain{padding:24px}
  .p-norm{flex-wrap:wrap}
  .p-norm a{margin-left:0;width:100%}
}
@media(max-width:560px){
  .p-hero h1{font-size:clamp(34px,10vw,44px)}
  .p-stats > div{padding:18px}
  .p-stats b{font-size:18px}
  .p-steps{grid-template-columns:1fr;row-gap:28px}
  .p-steps li{display:grid;grid-template-columns:56px 1fr;column-gap:16px}
  .p-steps li::before{grid-row:span 2;margin:0}
  .faq__item summary{padding:16px 18px;font-size:15px}
  .faq__item p{padding:0 18px 18px}
}
@media (prefers-reduced-motion: reduce){
  .p-float{animation:none}
  .p-hero__media .shot__frame,.p-hero__media .shot__frame:hover{transform:none}
}
.p-steps a,.tariff ul li a{color:var(--green);text-underline-offset:2px}
.sec--alt:has(+ #cta){border-bottom:0}

/* ===== Страница «Поставка и внедрение» (dp-) ===== */
.dp-badges{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;list-style:none;padding:0;margin:26px 0 0}
.dp-badges li{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:13.5px;font-weight:600}
.dp-badges li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green);animation:dp-ping 2.4s infinite}
.dp-badges li:nth-child(2)::before{animation-delay:.8s}
.dp-badges li:nth-child(3)::before{animation-delay:1.6s}
@keyframes dp-ping{0%{box-shadow:0 0 0 0 rgba(8,122,82,.45)}70%,100%{box-shadow:0 0 0 8px rgba(8,122,82,0)}}

/* общие элементы мини-иллюстраций */
.dp-box{fill:var(--card);stroke:var(--border-strong);stroke-width:1.2}
.dp-link{fill:none;stroke:var(--border-strong);stroke-width:1.6}
.dp-perim{fill:rgba(8,122,82,.05);stroke:var(--green);stroke-width:1.6;stroke-dasharray:6 5;animation:dp-march 1.4s linear infinite}
@keyframes dp-march{to{stroke-dashoffset:-22}}
.dp-rack{fill:var(--bg-soft);stroke:var(--border-strong)}
.dp-led{fill:var(--green);animation:dp-blink 1.6s infinite}
.dp-led--2{animation-delay:.5s}.dp-led--3{animation-delay:1s}
@keyframes dp-blink{0%,100%{opacity:1}50%{opacity:.25}}
.dp-pulse{fill:none;stroke:var(--green);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:dp-pulse 2.8s var(--ease-out) infinite}
@keyframes dp-pulse{0%{opacity:.55;transform:scale(1)}100%{opacity:0;transform:scale(1.22)}}
.dp-deny{transform-box:fill-box;transform-origin:center;animation:dp-deny 3.6s infinite}
@keyframes dp-deny{0%,84%,100%{transform:none}87%{transform:translateX(-3px)}90%{transform:translateX(3px)}93%{transform:translateX(-2px)}}
.dp-chip rect{fill:var(--card);stroke:var(--line)}
.dp-chip text{font-size:10.5px;font-weight:600;fill:var(--ink)}
.dp-role{transform-box:fill-box;transform-origin:center;animation:dp-role 2s infinite}
@keyframes dp-role{0%,70%,100%{transform:none}80%{transform:scale(1.12)}}

/* этапы */
.dp-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:20px;position:relative}
.dp-steps::before,.dp-steps::after{content:"";position:absolute;left:10%;right:10%;top:23px;height:3px;border-radius:3px;background:var(--line)}
.dp-steps::after{background:linear-gradient(90deg,var(--green),var(--accent-2));transform:scaleX(0);transform-origin:left;transition:transform 2s var(--ease-out) .2s}
.dp-steps.is-in::after{transform:scaleX(1)}
.dp-steps li{position:relative;z-index:1;text-align:center}
.dp-step__n{width:48px;height:48px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;background:var(--card);border:2px solid var(--line);font-weight:800;font-size:17px;color:var(--muted);transform:scale(.85);transition:background .4s,border-color .4s,color .4s,transform .5s var(--ease-back);transition-delay:calc(.2s + var(--i)*.4s)}
.dp-steps.is-in .dp-step__n{background:var(--green);border-color:var(--green);color:#fff;transform:none;box-shadow:0 0 0 6px rgba(8,122,82,.12)}
.dp-steps h3,.dp-steps p{opacity:0;transform:translateY(8px);transition:opacity .5s,transform .5s var(--ease-out);transition-delay:calc(.3s + var(--i)*.4s)}
.dp-steps.is-in h3,.dp-steps.is-in p{opacity:1;transform:none}
.dp-steps h3{font-size:16px;margin:0 0 6px}
.dp-steps p{font-size:13.5px;color:var(--muted);line-height:1.5;margin:0}

/* мини-иллюстрации в карточках интеграции */
.dp-mini{display:block;width:100%;height:auto;margin:0 0 16px;border-radius:12px;background:var(--bg-soft);font-family:var(--sans)}
.dp-mini .m-t{font-size:12px;font-weight:700;fill:var(--ink)}
.dp-mini .m-s{font-size:10.5px;fill:var(--muted)}
.dp-mini .m-s--green{fill:var(--green);font-weight:600}
.dp-prog{fill:none;stroke:var(--accent-2);stroke-width:3;stroke-dasharray:192;stroke-dashoffset:192;animation:dp-prog 4s linear infinite}
@keyframes dp-prog{0%{stroke-dashoffset:192;opacity:1}75%{stroke-dashoffset:0;opacity:1}95%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.dp-node{fill:var(--card);stroke:var(--border-strong);stroke-width:1.6;animation:dp-node 4s infinite}
@keyframes dp-node{0%,100%{fill:var(--card);stroke:var(--border-strong)}6%,30%{fill:var(--accent-2);stroke:var(--accent-2)}}
.dp-check{opacity:0;animation:dp-check 4s infinite}
@keyframes dp-check{0%,70%{opacity:0}76%,94%{opacity:1}100%{opacity:0}}

@media(max-width:1000px){
  .dp-steps{grid-template-columns:1fr;gap:26px}
  .dp-steps::before,.dp-steps::after{left:23px;right:auto;top:24px;bottom:24px;width:3px;height:auto}
  .dp-steps::after{transform:scaleY(0);transform-origin:top}
  .dp-steps.is-in::after{transform:scaleY(1)}
  .dp-steps li{display:grid;grid-template-columns:48px 1fr;column-gap:18px;text-align:left}
  .dp-step__n{grid-row:span 2;margin:0}
}
@media (prefers-reduced-motion: reduce){
  .dp-packets{display:none}
  .dp-badges li::before,.dp-perim,.dp-led,.dp-pulse,.dp-deny,.dp-prog,.dp-node,.dp-check,.dp-role{animation:none}
  .dp-pulse,.dp-prog{opacity:0}
  .dp-steps::after,.dp-step__n,.dp-steps h3,.dp-steps p{animation:none!important;transition:none!important}
}

/* ===== Главная «Как устроено» — мини-анимации карточек (fl-) ===== */
.fl-node{fill:var(--card);stroke:var(--border-strong);stroke-width:1.4}
.fl-node--src{stroke:var(--accent-2);stroke-width:1.8}
.fl-ref{fill:none;stroke:var(--border-strong);stroke-width:1.6;stroke-dasharray:5 5;animation:dp-march 1.4s linear infinite}
.fl-hit{animation:fl-hit 4s infinite both}
@keyframes fl-hit{0%,4%,32%,100%{stroke:var(--border-strong)}10%,22%{stroke:var(--accent)}}
.fl-bar{transform-box:fill-box;transform-origin:left center;animation:fl-bar 4s var(--ease-out) infinite both}
@keyframes fl-bar{0%,6%{transform:scaleX(.35)}20%,76%{transform:scaleX(.92)}92%,100%{transform:scaleX(.35)}}
.fl-bar--inv{animation-name:fl-bar-inv}
@keyframes fl-bar-inv{0%,6%{transform:scaleX(.9)}20%,76%{transform:scaleX(.4)}92%,100%{transform:scaleX(.9)}}
.fl-line{transform-box:fill-box;transform-origin:left center;animation:fl-line 4s var(--ease-out) infinite both}
@keyframes fl-line{0%{transform:scaleX(0);opacity:0}12%,82%{transform:none;opacity:1}96%,100%{transform:none;opacity:0}}
@media (prefers-reduced-motion: reduce){
  .fl-ref,.fl-hit,.fl-bar,.fl-line{animation:none}
}

/* ===== Страницы решений — мини-анимации (pm-) ===== */
/* иллюстрации в карточках «Задача»: общие классы dp-/fl- со страницы внедрения и главной */
.pm-press{transform-box:fill-box;transform-origin:center;animation:pm-press 2s var(--ease-out) infinite}
@keyframes pm-press{0%,14%,100%{transform:none}6%{transform:scale(.9)}}
.pm-tint{opacity:0;animation:pm-tint 4s infinite both}
@keyframes pm-tint{0%{opacity:0}6%,62%{opacity:.18}78%,100%{opacity:0}}
.pm-pill{opacity:0;animation:pm-pill 4s infinite both}
@keyframes pm-pill{0%{opacity:0}6%,62%{opacity:1}78%,100%{opacity:0}}
.pm-scan{animation:pm-scan 4s linear infinite}
@keyframes pm-scan{0%{transform:translateY(0);opacity:0}4%,72%{opacity:1}80%,100%{transform:translateY(88px);opacity:0}}
.pm-therm{transform-box:fill-box;transform-origin:center bottom;animation:pm-therm 4s var(--ease-out) infinite both}
@keyframes pm-therm{0%,6%{transform:scaleY(.35)}20%,76%{transform:scaleY(.95)}92%,100%{transform:scaleY(.35)}}

/* карточка результата на первом экране: «живая» точка и строки по очереди */
.p-float__title{display:flex;align-items:center;gap:8px}
.p-float__title::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);animation:dp-ping 2.4s infinite}
.p-float .row{animation:pm-row .6s var(--ease-out) both}
.p-float .row:nth-child(2){animation-delay:.6s}
.p-float .row:nth-child(3){animation-delay:.85s}
.p-float .row:nth-child(4){animation-delay:1.1s}
@keyframes pm-row{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}

/* шаги: линия прогресса заполняется, номера загораются по очереди */
.p-steps::after{
  content:"";position:absolute;left:28px;right:calc(25% - 43px);top:26px;height:3px;border-radius:3px;
  background:linear-gradient(90deg,var(--green),var(--accent-2));
  transform:scaleX(0);transform-origin:left;transition:transform 1.8s var(--ease-out) .2s;
}
.p-steps.in::after{transform:scaleX(1)}
.p-steps li::before{transform:scale(.88);transition:background .4s,border-color .4s,color .4s,box-shadow .4s,transform .5s var(--ease-back)}
.p-steps.in li::before{background:var(--green);border-color:var(--green);color:#fff;transform:none;box-shadow:0 0 0 6px rgba(8,122,82,.12)}
.p-steps.in li:nth-child(1)::before{transition-delay:.2s}
.p-steps.in li:nth-child(2)::before{transition-delay:.7s}
.p-steps.in li:nth-child(3)::before{transition-delay:1.2s}
.p-steps.in li:nth-child(4)::before{transition-delay:1.7s}
@media(max-width:1000px){.p-steps::after{display:none}}

@media (prefers-reduced-motion: reduce){
  .pm-press,.pm-therm,.p-float__title::before,.p-float .row{animation:none}
  .pm-tint,.pm-pill,.pm-scan{animation:none;opacity:0}
  .pm-pill{opacity:1}
  .p-steps::after,.p-steps li::before{transition:none!important}
}

/* «Как сейчас»: значение «до» и «после», мигающие предупреждения, разрез листа, счётчик дней */
.pm-a{animation:pm-a 4s infinite both}
@keyframes pm-a{0%,42%{opacity:1}50%,92%{opacity:0}100%{opacity:1}}
.pm-b{opacity:0;animation:pm-b 4s infinite both}
@keyframes pm-b{0%,42%{opacity:0}50%,92%{opacity:1}100%{opacity:0}}
.pm-wb{animation:pm-wb 1.2s infinite}
@keyframes pm-wb{0%,100%{opacity:1}50%{opacity:.3}}
.pm-badstroke{animation:pm-bs 4s infinite both}
@keyframes pm-bs{0%,42%{stroke:var(--border-strong)}50%,92%{stroke:var(--coral)}100%{stroke:var(--border-strong)}}
.pm-cut{fill:none;stroke:var(--coral);stroke-width:1.6;stroke-dasharray:5 4;animation:dp-march 1.4s linear infinite}
.pm-d1,.pm-d2,.pm-d3{opacity:0;animation:4.5s infinite both}
.pm-d1{animation-name:pm-d1}.pm-d2{animation-name:pm-d2}.pm-d3{animation-name:pm-d3}
@keyframes pm-d1{0%,30%{opacity:1}34%,100%{opacity:0}}
@keyframes pm-d2{0%,30%{opacity:0}34%,63%{opacity:1}67%,100%{opacity:0}}
@keyframes pm-d3{0%,63%{opacity:0}67%,97%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion: reduce){
  .pm-wb,.pm-badstroke,.pm-cut,.pain__vis--ok .pain__tag::before{animation:none}
  .pm-a{animation:none;opacity:0}
  .pm-b{animation:none;opacity:1}
  .pm-d1{animation:none;opacity:0}.pm-d2{animation:none;opacity:0}.pm-d3{animation:none;opacity:1}
}

/* ===== Живые мини-схемы модулей (md-): страница модулей и главная ===== */
.md__demo{margin:0 0 26px;max-width:460px}
.md__demo .dp-mini{margin:0;background:rgba(8,122,82,.05);box-shadow:inset 0 0 0 1px rgba(8,122,82,.14)}
.md-on{opacity:0;transform-box:fill-box;transform-origin:center;animation:md-on 4s var(--ease-out) infinite both}
@keyframes md-on{0%,8%{opacity:0;transform:scale(.6)}18%,86%{opacity:1;transform:none}96%,100%{opacity:0;transform:none}}
.md-bad{fill:none;stroke:var(--coral);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:dp-pulse 2.4s var(--ease-out) infinite}
.md-scan{animation:md-scan 4s var(--ease-out) infinite}
@keyframes md-scan{0%,15%{transform:translateY(0)}25%,40%{transform:translateY(16px)}50%,65%{transform:translateY(32px)}75%,90%{transform:translateY(48px)}100%{transform:translateY(0)}}

@media (prefers-reduced-motion: reduce){
  .md-on{animation:none;opacity:1;transform:none}
  .md-bad,.md-scan{animation:none}
}

/* ===== Снимок и мини-схема — одна композиция (страница модулей и главная) ===== */
/* Все снимки в одной пропорции 4:3, как на главной: узкие таблицы прижаты к верху
   «окна», ниже — тёмное поле, на которое ложится карточка со схемой. */
.md__stage{position:relative}
.md__stage .shot__frame img{aspect-ratio:4/3;object-fit:cover;object-position:left top;background:#fff}
.md__stage .shot__frame img.is-wide{object-fit:contain}

.md__demo{
  padding:8px;border-radius:16px;background:var(--card);border:1px solid var(--line);
  box-shadow:0 22px 44px -20px rgba(8,20,15,.35);
}
.md__demo .dp-mini{margin:0;background:rgba(8,122,82,.05);box-shadow:inset 0 0 0 1px rgba(8,122,82,.12)}
.md__demo[hidden]{display:none}

/* десктоп: карточка выступает из угла снимка в сторону текста, подпись — рядом с ней */
.md__stage .md__demo{
  position:absolute;bottom:0;left:-28px;right:auto;z-index:2;
  width:min(300px,46%);max-width:none;margin:0;
  animation:p-float 6s ease-in-out infinite;
}
.md--flip .md__stage .md__demo{left:auto;right:-28px}
.md__stage .shot figcaption{padding-left:calc(min(300px,46%) - 12px);min-height:20px}
.md--flip .md__stage .shot figcaption{padding-left:0;padding-right:calc(min(300px,46%) - 12px);text-align:right}
.sec--modules .md:first-child{padding-top:clamp(8px,2vw,24px)}

/* планшет и телефон: заголовок → описание → снимок со схемой → фишки */
@media(max-width:960px){
  .md,.md--flip{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .md__text{display:contents}
  .md__kicker{order:1}
  .md h2{order:2}
  .md__lead{order:3}
  .md__media,.md--flip .md__media{order:4;margin:2px 0 30px}
  .md__feats{order:5}
  .md__links{order:6}
  .md__stage .shot figcaption{display:none}
  .md__stage .md__demo,.md--flip .md__stage .md__demo{
    position:relative;left:auto;right:auto;bottom:auto;
    width:min(340px,calc(100% - 28px));margin:-56px 0 0 14px;animation:none;
  }
}
@media(max-width:900px){
  /* на узком экране снимок 4:3, как на странице модулей: карточке есть куда лечь */
  .module-media--shot{aspect-ratio:4/3}
}
@media(max-width:560px){
  .md__stage .md__demo,.md--flip .md__stage .md__demo{width:calc(100% - 20px);margin:-40px 0 0 10px;padding:6px;border-radius:14px}
}
@media (prefers-reduced-motion: reduce){
  .md__stage .md__demo{animation:none}
}

  /* ============================================================
     МЕНЮ v2 (2026-10-06): карточка Suite + продукты + мобильное
     ============================================================ */
  .mega-panel--product{min-width:860px;padding:22px}
  .pmenu{display:grid;grid-template-columns:1.05fr 1.15fr 1fr;gap:26px;align-items:start}
  .pcol h4{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:4px 0 12px}
  .pcol__h2{margin-top:18px !important}

  /* Карточка основного продукта */
  .pfeat{
    position:relative;overflow:hidden;display:flex;flex-direction:column;gap:8px;
    padding:20px 20px 22px;border-radius:16px;text-decoration:none;color:#fff;
    background:linear-gradient(150deg,#0b8f60 0%,#087a52 55%,#065c3e 100%);
    box-shadow:0 14px 30px -14px rgba(8,122,82,.6);
    transition:transform .3s var(--ease-out), box-shadow .3s;
    min-height:100%;
  }
  .pfeat:hover{transform:translateY(-2px);box-shadow:0 18px 36px -14px rgba(8,122,82,.7)}
  .pfeat__badge{align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.03em;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.18)}
  .pfeat__title{font-size:19px;font-weight:750;letter-spacing:-.02em;margin-top:4px}
  .pfeat__text{font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.85);position:relative;z-index:1}
  .pfeat__more{margin-top:auto;padding-top:8px;font-size:13px;font-weight:650;position:relative;z-index:1}
  .pfeat__more::after{content:' →';transition:margin .25s}
  .pfeat:hover .pfeat__more::after{margin-left:4px}
  .pfeat__curve{position:absolute;right:-6px;bottom:6px;width:62%;opacity:.35}
  .pfeat__curve path{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round}

  /* Отдельные продукты */
  .pprod{display:flex;align-items:center;gap:12px;padding:10px;margin:0 -10px 2px;border-radius:12px;text-decoration:none;color:var(--ink);transition:background .2s}
  .pprod:hover{background:var(--bg-soft)}
  .pprod b{display:block;font-size:14px;font-weight:650}
  .pprod small{display:block;font-size:12.5px;color:var(--muted);margin-top:1px}
  .pprod__ico{flex:0 0 auto;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:rgba(8,122,82,.09);color:var(--green)}
  .pprod__ico svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .pprod__ico--txt{font-size:20px;font-weight:700;font-family:Georgia,serif}

  /* Методы — чипсы */
  .pchips{display:flex;flex-wrap:wrap;gap:6px}
  .pchips a{font-size:12.5px;font-weight:600;color:#3d4a45;text-decoration:none;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:var(--card);transition:all .2s}
  .pchips a:hover{color:var(--green);border-color:rgba(8,122,82,.4);background:rgba(8,122,82,.05)}
  .plink{display:block;font-size:13.5px;color:var(--ink);text-decoration:none;padding:4px 0}
  .plink:hover{color:var(--green)}
  .plink--all{color:var(--green);font-weight:650;margin-top:8px}

  /* ---------- Мобильное меню ---------- */
  .mm{display:flex;flex-direction:column;padding:16px 16px 20px}
  .mm__label{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:2px 4px 10px}
  .pfeat--m{min-height:0;padding:18px 18px 20px}
  .pfeat--m .pfeat__title{font-size:20px}
  .pfeat--m .pfeat__curve{width:50%}
  .pfeat:active{transform:scale(.985)}

  .mm__prods{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
  .mm__prod{display:flex;flex-direction:column;gap:3px;padding:12px 10px;border-radius:14px;border:1px solid var(--line);background:var(--card);text-decoration:none;color:var(--ink);transition:transform .2s, background .2s}
  .mm__prod:active{transform:scale(.96);background:rgba(8,122,82,.07)}
  .mm__prod .pprod__ico{width:34px;height:34px;margin-bottom:6px}
  .mm__prod b{font-size:13.5px;font-weight:650}
  .mm__prod small{font-size:11.5px;color:var(--muted);line-height:1.3}

  .mm__all{display:flex;flex-direction:column;margin-top:8px;padding:12px 14px;border-radius:14px;background:var(--bg-soft);text-decoration:none;color:var(--ink);font-size:14px;font-weight:650;position:relative}
  .mm__all span{font-size:12px;font-weight:400;color:var(--muted);margin-top:2px}
  .mm__all::after{content:'';position:absolute;right:16px;top:50%;width:8px;height:8px;border-right:2px solid #98a5a1;border-top:2px solid #98a5a1;transform:translateY(-50%) rotate(45deg)}

  .mm__nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}
  .mm__nav a{display:flex;align-items:center;gap:10px;padding:14px 12px;border-radius:14px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:14.5px;font-weight:600;transition:transform .2s, background .2s}
  .mm__nav a:active{transform:scale(.96);background:rgba(8,122,82,.07)}
  .mm__nav svg{width:20px;height:20px;flex:0 0 auto;fill:none;stroke:var(--green);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

  /* Мини-анимация дерева отказов */
  .mm__anim{margin-top:auto;padding-top:22px;text-align:center}
  .mm__anim svg{width:100%;max-width:300px;height:auto;display:block;margin:0 auto}
  .mm__anim p{font-size:12.5px;line-height:1.5;color:var(--muted);margin:8px 0 0}
  .ft-lines path{fill:none;stroke:var(--line);stroke-width:2}
  .ft-flow path{fill:none;stroke:var(--green);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:40 400;stroke-dashoffset:40;opacity:0}
  .ft-top{fill:var(--card);stroke:var(--line);stroke-width:1.5}
  .ft-gate{fill:var(--bg-soft);stroke:#b8c3bf;stroke-width:1.5}
  .ft-ev{fill:var(--bg-soft);stroke:#b8c3bf;stroke-width:1.5}
  .ft-txt{font-size:11px;font-weight:700;fill:var(--ink);text-anchor:middle}
  .ft-gtxt{font-size:8px;font-weight:700;fill:var(--muted);text-anchor:middle}
  .ft-etxt{font-size:10px;font-weight:600;fill:var(--muted);text-anchor:middle}

  .mobile-drawer.is-open .ft-flow path{animation:ftFlow 6s linear infinite}
  .mobile-drawer.is-open .ft-ev{animation:ftEv 6s ease infinite}
  .mobile-drawer.is-open .ft-top{animation:ftTop 6s ease infinite}
  .mobile-drawer.is-open .f2,.mobile-drawer.is-open .e2{animation-delay:2s}
  .mobile-drawer.is-open .f3,.mobile-drawer.is-open .e3{animation-delay:4s}
  .mobile-drawer.is-open .ft-top{animation-duration:2s}
  @keyframes ftEv{0%,2%{fill:var(--bg-soft);stroke:#b8c3bf}6%,22%{fill:#fde7df;stroke:var(--coral)}33%,100%{fill:var(--bg-soft);stroke:#b8c3bf}}
  @keyframes ftFlow{0%,6%{stroke-dashoffset:40;opacity:0}8%{opacity:1}26%{stroke-dashoffset:-210;opacity:1}30%,100%{stroke-dashoffset:-210;opacity:0}}
  @keyframes ftTop{0%,60%{stroke:var(--line);fill:var(--card)}75%,85%{stroke:var(--coral);fill:#fde7df}100%{stroke:var(--line);fill:var(--card)}}

  @media (max-height:700px){.mm__anim{display:none}}
  @media (prefers-reduced-motion: reduce){
    .mobile-drawer.is-open .ft-flow path,.mobile-drawer.is-open .ft-ev,.mobile-drawer.is-open .ft-top{animation:none}
  }
  .mm > *{flex-shrink:0}
  .pfeat__curve{bottom:-2px;width:46%;opacity:.22}
  .pfeat--m .pfeat__curve{width:40%}
  .mm__nav{margin-top:12px}
  .mm__anim{padding-top:14px}
  .mm__anim svg{max-width:220px}
  .mm__anim p{font-size:12px;margin-top:4px}
  @media (max-height:700px){.mm__anim{display:block}}
  @media (max-height:600px){.mm__anim{display:none}}

/* ============ КОНТАКТЫ v5 (2026-10-07): зелёная панель, форма раскрывается вниз ============ */
.request{background:var(--bg)}
.rq-panel{position:relative;overflow:hidden;border-radius:28px;padding:clamp(28px,4.5vw,56px);color:#fff;
  background:linear-gradient(135deg,var(--green),#05553a);box-shadow:0 30px 60px -30px rgba(8,122,82,.6)}
.rq-panel::after{content:"";position:absolute;right:-140px;top:-140px;width:420px;height:420px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.13),transparent 70%);pointer-events:none}
.rq-top{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(28px,5vw,72px);align-items:center}
.rq-eyebrow{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:12px}
.rq-intro h2{color:#fff;margin:0 0 14px;font-size:clamp(28px,3.6vw,42px);line-height:1.1;letter-spacing:-.02em}
.rq-intro p{color:rgba(255,255,255,.85);margin:0;font-size:16px;line-height:1.6;max-width:500px}
.rq-actions{display:flex;flex-wrap:wrap;gap:12px}
.rq-actions .btn[aria-expanded="true"]{box-shadow:0 0 0 3px rgba(255,255,255,.3)}

/* раскрывающаяся форма */
.rq-form{position:relative;z-index:1;display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease-out)}
.rq-form__clip{min-height:0;overflow:hidden}
.rq-panel.is-open .rq-form{grid-template-rows:1fr}
.rq-form .request__form{margin-top:clamp(28px,4vw,44px);color:var(--ink);border:0;box-shadow:none;padding:clamp(20px,3vw,32px);gap:18px;
  opacity:0;transform:translateY(-12px);transition:opacity .3s ease,transform .55s var(--ease-out)}
.rq-panel.is-open .request__form{opacity:1;transform:none;transition-delay:.12s,0s}
.rq-form__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.rq-form__head h3{margin:0;font-size:20px;letter-spacing:-.015em}
.rq-form__head p{margin:4px 0 0;font-size:14px;color:var(--muted)}
.rq-close{flex:none;width:38px;height:38px;margin:-6px -6px 0 0;border:0;border-radius:10px;background:var(--bg-soft);
  font-size:22px;line-height:1;color:var(--muted);cursor:pointer;transition:background .2s,color .2s}
.rq-close:hover{background:#e3e9e6;color:var(--ink)}
.rq-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.rq-form .request__form input,.rq-form .request__form textarea{width:100%;min-width:0}
.rq-foot{display:flex;align-items:center;justify-content:space-between;gap:24px}
.rq-foot .request__consent{max-width:520px}
.rq-foot .request__consent input{width:18px}
.request__form .rq-foot .rq-submit{align-self:auto;flex:none;min-width:240px}

.rq-pick{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.rq-pick legend{font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:8px;padding:0}
.request__form .rq-pick label{display:block;font-weight:500;cursor:pointer}
.rq-pick input{position:absolute;opacity:0;pointer-events:none}
.rq-pick span{display:inline-block;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:13.5px;color:#3d4a45;transition:all .2s}
.rq-pick label:hover span{border-color:rgba(8,122,82,.4)}
.rq-pick input:checked+span{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 6px 14px -6px rgba(8,122,82,.6)}
.rq-pick input:focus-visible+span{outline:2px solid var(--green);outline-offset:2px}
.request__form input::placeholder,.request__form textarea::placeholder{color:#a3aba7}
.request__form .rq-submit{padding:15px 22px;font-size:15px;display:flex;justify-content:center;gap:8px}
.rq-submit span{transition:transform .25s var(--ease-out)}
.rq-submit:hover span{transform:translateX(4px)}
.request__status:empty{display:none}
/* контакты без формы: письмо на почту (PD_FORM = false в build.js) */
.rq-mail__row{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;flex-wrap:wrap}
.rq-mail__addr{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rq-mail__addr a{font-size:clamp(20px,2.4vw,26px);font-weight:600;letter-spacing:-.01em;color:var(--ink);text-decoration:none}
.rq-mail__addr a:hover{color:var(--green)}
.rq-mail__copy{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;font:inherit;font-size:13.5px;color:#3d4a45;cursor:pointer;transition:border-color .2s,color .2s}
.rq-mail__copy:hover{border-color:rgba(8,122,82,.4);color:var(--green)}
.rq-mail__hint{margin:0;font-size:14px;color:var(--muted)}
.request__form a.rq-submit{min-width:240px}
@media(max-width:560px){.request__form a.rq-submit{width:100%;min-width:0}}
.request__status.ok:not(:empty){padding:12px 14px;border-radius:12px;background:rgba(8,122,82,.08)}
.request__status.err:not(:empty){padding:12px 14px;border-radius:12px;background:#fdeee8}

@media(max-width:1000px){.rq-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){
  .rq-top{grid-template-columns:1fr;gap:24px}
  .rq-intro p{max-width:none}
  .rq-foot{flex-direction:column;align-items:stretch;gap:16px}
  .request__form .rq-foot .rq-submit{min-width:0}
}
@media(max-width:560px){
  .request .wrap{padding:0 12px}
  .rq-panel{border-radius:22px;padding:28px 20px 20px}
  .rq-intro h2{font-size:28px}
  .rq-intro p{font-size:15px}
  .rq-actions{flex-direction:column}
  .rq-actions .btn{width:100%}
  .rq-fields{grid-template-columns:1fr;gap:14px}
  .rq-form .request__form{padding:20px 18px;margin-top:20px;border-radius:18px}
  .rq-form .request__form input,.rq-form .request__form textarea{font-size:16px} /* без автозума на iOS */
  .rq-pick span{padding:8px 12px;font-size:13px}
}
@media (prefers-reduced-motion: reduce){.rq-form,.rq-form .request__form{transition:none!important}}

/* ============ МЕНЮ «Компания» v2 ============ */
.mega-panel--company{min-width:600px;padding:20px}
.menu-item:last-child .mega-panel--company{left:auto;right:-60px;transform:translateY(8px)}
.menu-item:last-child.is-open .mega-panel--company{transform:translateY(0)}
.cmenu{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;align-items:stretch}
.cmenu__col{display:flex;flex-direction:column;justify-content:center;padding-left:10px}
.cmenu__card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:8px;padding:18px;border-radius:16px;text-decoration:none;color:#fff;
  background:linear-gradient(150deg,#0b8f60 0%,#087a52 55%,#065c3e 100%);box-shadow:0 14px 30px -14px rgba(8,122,82,.6);transition:transform .3s var(--ease-out)}
.cmenu__card:hover{transform:translateY(-2px)}
.cmenu__card:hover .pfeat__more::after{margin-left:4px}
.cmenu__card::before{content:'';position:absolute;width:160px;height:160px;border-radius:50%;right:-60px;top:-70px;background:rgba(255,255,255,.08)}
.cmenu__online{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.16)}
.cmenu__online i{width:7px;height:7px;border-radius:50%;background:#7dffc4;animation:rqPulse 2s infinite}
.cmenu__title{font-size:18px;font-weight:750;letter-spacing:-.02em;margin-top:2px}
.cmenu__text{font-size:13px;line-height:1.5;color:rgba(255,255,255,.85)}
.cmenu__ch{display:flex;gap:6px;margin-top:4px}
.cmenu__ch span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2)}
.cmenu__ch svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cmenu__card .pfeat__more{padding-top:6px}
.mm__nav a[href="#contacts"]{color:#fff;border-color:transparent;background:linear-gradient(150deg,#0b8f60,#065c3e);box-shadow:0 10px 22px -12px rgba(8,122,82,.7);position:relative}
.mm__nav a[href="#contacts"] svg{stroke:#fff}
.mm__nav a[href="#contacts"]::after{content:'';position:absolute;top:10px;right:10px;width:7px;height:7px;border-radius:50%;background:#7dffc4;animation:rqPulse 2s infinite}
.mega-panel--company{width:600px}

/* ===== Тарифы (pricing.html) ===== */
.page-hero h1.pr-h1{font-size:clamp(32px,4.6vw,54px);max-width:900px;margin-left:auto;margin-right:auto}
.pr-h1 span{display:block;color:var(--green)}
.pr-sec{padding-top:clamp(24px,4vw,40px)}
.pr-tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green);background:rgba(8,122,82,.08);padding:6px 12px;border-radius:999px;margin-bottom:16px}
.pr-suite{position:relative;display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(28px,4vw,56px);align-items:center;background:var(--card);border:1px solid var(--line);border-radius:28px;padding:clamp(28px,4vw,52px);box-shadow:var(--shadow-xl);overflow:hidden}
.pr-suite::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:linear-gradient(120deg,var(--green),var(--teal),var(--blue),var(--green));background-size:300% 100%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:prBorder 8s linear infinite;pointer-events:none}
@keyframes prBorder{to{background-position:300% 0}}
.pr-suite h2{font-size:clamp(28px,3.4vw,40px);font-weight:800;letter-spacing:-.03em;line-height:1.1;margin:0 0 14px;color:var(--ink)}
.pr-suite__lead{font-size:17px;line-height:1.6;color:var(--muted);margin:0 0 22px}
.pr-suite__list{list-style:none;margin:0 0 28px;padding:0;display:grid;gap:10px}
.pr-suite__list li{display:flex;gap:10px;font-size:15px;line-height:1.45;color:var(--ink)}
.pr-suite__list li::before{content:'';flex-shrink:0;width:18px;height:18px;margin-top:1px;border-radius:50%;background:rgba(8,122,82,.1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23087a52' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center/12px no-repeat}
.pr-suite__cta{display:flex;flex-wrap:wrap;gap:12px}
.pr-suite__mods{display:flex;flex-wrap:wrap;gap:10px;align-content:center;padding:clamp(20px,3vw,32px);border-radius:20px;background:radial-gradient(circle at 30% 20%,rgba(8,122,82,.08),transparent 60%),var(--bg-soft)}
.pr-suite__mods span{font-size:14px;font-weight:600;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:9px 15px;opacity:0;transform:translateY(8px) scale(.96);transition:opacity .5s var(--ease-out),transform .5s var(--ease-back),border-color .3s,color .3s;transition-delay:calc(var(--i) * 60ms + 200ms)}
.pr-suite__mods span:nth-child(-n+3){border-color:rgba(8,122,82,.35);color:var(--green)}
.pr-suite.is-in .pr-suite__mods span{opacity:1;transform:none}
.pr-or{display:flex;align-items:center;gap:16px;margin:clamp(40px,6vw,64px) 0 28px;color:var(--muted);font-size:14px;font-weight:600}
.pr-or::before,.pr-or::after{content:'';flex:1;height:1px;background:var(--line)}
.pr-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pr-tool{display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;color:inherit;text-decoration:none;transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),border-color .3s}
.pr-tool:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:rgba(8,122,82,.35)}
.pr-tool__ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;margin-bottom:12px;color:var(--green);background:rgba(8,122,82,.08);transition:transform .4s var(--ease-back)}
.pr-tool__ico svg{width:22px;height:22px}
.pr-tool__ico--teal{color:var(--teal);background:rgba(15,138,134,.09)}
.pr-tool__ico--blue{color:var(--blue);background:rgba(44,95,138,.09)}
.pr-tool__ico--txt{font-size:24px;font-weight:700;font-family:Georgia,serif;font-style:italic}
.pr-tool:hover .pr-tool__ico{transform:rotate(-6deg) scale(1.08)}
.pr-tool h3{font-size:19px;font-weight:700;margin:0;color:var(--ink)}
.pr-tool p{font-size:14.5px;line-height:1.5;color:var(--muted);margin:0 0 14px;flex:1}
.pr-tool i{font-style:normal;font-size:14px;font-weight:600;color:var(--green)}
.pr-tool i span{display:inline-block;transition:transform .3s var(--ease-out)}
.pr-tool:hover i span{transform:translateX(4px)}
.pr-note{text-align:center;font-size:14px;color:var(--muted);margin:24px 0 0}
.pr-steps{list-style:none;margin:0 auto;padding:0;max-width:960px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative}
.pr-steps::before{content:'';position:absolute;top:22px;left:16.66%;right:16.66%;height:2px;background:linear-gradient(90deg,var(--green),var(--teal));transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease-out) .3s}
.pr-steps.in::before{transform:scaleX(1)}
.pr-steps li{position:relative;text-align:center}
.pr-steps b{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 16px;border-radius:50%;background:var(--card);border:2px solid var(--green);color:var(--green);font-size:17px;font-weight:800}
.pr-steps h3{font-size:18px;font-weight:700;margin:0 0 6px;color:var(--ink)}
.pr-steps p{font-size:14.5px;line-height:1.5;color:var(--muted);margin:0 auto;max-width:260px}
@media(max-width:900px){.pr-suite{grid-template-columns:1fr}.pr-tools{grid-template-columns:1fr}}
@media(max-width:640px){.pr-steps{grid-template-columns:1fr;gap:28px}.pr-steps::before{display:none}}
@media (prefers-reduced-motion: reduce){
  .pr-suite::before{animation:none}
  .pr-suite__mods span{opacity:1;transform:none;transition:none}
  .pr-steps::before{transform:none;transition:none}
}

/* ===================================================================
   СТРАНИЦА «О КОМПАНИИ» (co-*)
   =================================================================== */
.co-hero{padding:clamp(120px,14vw,150px) 0 clamp(8px,2vw,16px)}
.co-hero .wrap{max-width:1080px}
.co-hero h1{font-size:clamp(32px,4.4vw,48px);letter-spacing:-.03em;line-height:1.1;font-weight:700;margin:0 0 16px}
.co-hero p{font-size:17px;line-height:1.65;color:var(--muted);margin:0;max-width:640px}
.co-hand{font-style:normal;display:inline-block;transform-origin:70% 75%;animation:co-wave 2.4s ease-in-out .8s 2}
@keyframes co-wave{0%,60%,100%{transform:rotate(0)}10%,30%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}

.co-sec{padding:clamp(56px,7vw,88px) 0}
.co-sec .sec__head{margin-bottom:36px}

.co-story{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(28px,5vw,64px);align-items:center;max-width:1080px}
.co-ft{
  position:relative;aspect-ratio:4/3;border-radius:20px;border:1px solid var(--line);
  background:radial-gradient(circle,rgba(8,122,82,.10) 1px,transparent 1.5px) 0 0/18px 18px,var(--card);
  box-shadow:var(--shadow);display:grid;place-items:center;
}
.co-ft svg{width:92%;height:auto;overflow:visible;font-family:inherit}
.co-ft__ln{fill:none;stroke:var(--green);stroke-width:2;stroke-dasharray:1;stroke-linecap:round}
.co-ft__gate{fill:rgba(8,122,82,.12);stroke:var(--green);stroke-width:2}
.co-ft__top{fill:var(--card);stroke:var(--green);stroke-width:2}
.co-ft text{text-anchor:middle}
.co-ft__t{font-size:14px;font-weight:700;fill:var(--ink)}
.co-ft__p{font-size:12px;font-weight:600;fill:var(--green)}
.co-ft__ev circle{fill:rgba(15,138,134,.10);stroke:var(--teal);stroke-width:2}
.co-ft__ev text{font-family:Georgia,serif;font-style:italic;font-size:16px;fill:var(--ink)}
.co-ft__ev{transform-box:fill-box;transform-origin:center}
.co-ft__lb{font-size:12px;font-weight:600;fill:var(--muted)}
/* цикл 9 c: события → связи → вентиль → верхнее событие → результат */
.co-ft__ev{animation:co-ft-pop 9s var(--ease-back) infinite both}
.co-ft__ev--2{animation-delay:.25s}
.co-ft__ev--3{animation-delay:.5s}
.co-ft__ln--1{animation:co-ft-draw1 9s ease-in-out infinite both}
.co-ft__gate{animation:co-ft-gate 9s var(--ease-out) infinite both}
.co-ft__ln--2{animation:co-ft-draw2 9s ease-in-out infinite both}
.co-ft__top{animation:co-ft-top 9s ease infinite both}
.co-ft__p{animation:co-ft-p 9s var(--ease-out) infinite both}
.co-ft:not(.is-in) *{animation-play-state:paused}
@keyframes co-ft-pop{0%{opacity:0;transform:scale(.3)}7%,88%{opacity:1;transform:scale(1)}96%,100%{opacity:0;transform:scale(1)}}
@keyframes co-ft-draw1{0%,14%{stroke-dashoffset:1;opacity:1}30%,88%{stroke-dashoffset:0;opacity:1}96%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes co-ft-gate{0%,28%{opacity:0;transform:translateY(6px)}36%,88%{opacity:1;transform:none}96%,100%{opacity:0}}
@keyframes co-ft-draw2{0%,36%{stroke-dashoffset:1;opacity:1}46%,88%{stroke-dashoffset:0;opacity:1}96%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes co-ft-top{0%,46%{stroke:var(--line)}52%,90%{stroke:var(--green)}100%{stroke:var(--line)}}
@keyframes co-ft-p{0%,50%{opacity:0;transform:translateY(4px)}57%,88%{opacity:1;transform:none}96%,100%{opacity:0}}
.co-story__text h2{font-size:clamp(26px,3vw,34px);letter-spacing:-.02em;line-height:1.15;font-weight:700;margin:0 0 14px}
.co-story__text > p{font-size:16px;line-height:1.65;color:var(--muted);margin:0}
.co-timeline{list-style:none;margin:24px 0 0;padding:0 0 0 26px;position:relative}
.co-timeline::before{
  content:'';position:absolute;left:5px;top:7px;bottom:7px;width:2px;background:var(--line);
  transform:scaleY(0);transform-origin:top;transition:transform 1.2s var(--ease-out) .2s;
}
.co-timeline.in::before{transform:scaleY(1)}
.co-timeline li{position:relative;padding:0 0 12px;font-size:15px;color:var(--ink)}
.co-timeline li:last-child{padding-bottom:0}
.co-timeline li::before{content:'';position:absolute;left:-26px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--card);border:2px solid var(--green)}
.co-timeline li:last-child::before{background:var(--green)}
.co-timeline b{font-weight:700;color:var(--green)}

.co-values{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1080px;margin:0 auto}
.co-value{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px 24px}
.co-value__ico{
  width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:16px;
  color:var(--green);background:rgba(8,122,82,.09);transition:transform .4s var(--ease-back);
}
.co-value__ico svg{width:20px;height:20px}
.co-value__ico--teal{color:var(--teal);background:rgba(15,138,134,.1)}
.co-value__ico--blue{color:var(--blue);background:rgba(44,95,138,.1)}
.co-value:hover .co-value__ico{transform:rotate(-8deg) scale(1.1)}
.co-value h3{font-size:17px;font-weight:700;margin:0 0 6px;color:var(--ink)}
.co-value p{font-size:14.5px;line-height:1.55;color:var(--muted);margin:0}

@media(max-width:860px){
  .co-story,.co-values{grid-template-columns:1fr}
  .co-ft{max-width:520px;width:100%;margin:0 auto}
}
@media(max-width:560px){.co-hero .wrap,.co-story.wrap{padding:0 16px}}
@media (prefers-reduced-motion: reduce){
  .co-hand{animation:none}
  .co-timeline::before{transform:none;transition:none}
  .co-value__ico{transition:none}
  .co-ft *{animation:none !important}
}

/* ===== Страницы решений: «Что получите на выходе» (out-, rep-) ===== */
.out{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,5vw,80px);align-items:center}
.out__copy h2{font-size:clamp(28px,3.4vw,42px);line-height:1.1;letter-spacing:-.025em;font-weight:720;color:var(--ink);margin:0 0 16px}
.out__lead{font-size:16.5px;line-height:1.6;color:var(--muted);margin:0 0 26px}
.out__list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.out__list li{display:grid;grid-template-columns:24px 1fr;column-gap:12px;font-size:15px;line-height:1.5;color:var(--muted)}
.out__list li::before{
  content:"";grid-row:span 2;width:24px;height:24px;border-radius:8px;
  background:rgba(8,122,82,.1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='%23087a52' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat;
}
.out__list b{color:var(--ink);font-weight:650}
.out__cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.out__media{margin:0}
.out__note{font-size:13px;color:var(--muted);text-align:center;margin:26px 0 0}

/* лист отчёта: рамка и основная надпись, шрифт как в документе */
.rep{position:relative;container-type:inline-size;width:min(100%,540px);margin:0 auto;aspect-ratio:1/1.04}
.rep__page{
  position:absolute;width:72%;aspect-ratio:1/1.414;overflow:hidden;
  display:flex;flex-direction:column;padding:8% 6% 0 11%;
  background:#fff;border-radius:3px;color:#1b1f1d;
  font-family:"Times New Roman",Times,serif;font-size:2.05cqw;line-height:1.35;
  box-shadow:0 1px 2px rgba(8,20,15,.08),0 30px 60px -26px rgba(8,20,15,.38);
  transition:transform 1s var(--ease-out),opacity .7s ease;
}
.rep__page::before{content:"";position:absolute;inset:3% 3% 3% 7%;border:1px solid #2a2f2c;pointer-events:none}
.rep__page--back{left:0;top:0;transform:rotate(-4deg);opacity:1}
.rep__page--front{right:0;bottom:0;transform:rotate(2deg)}
.rep__stamp{position:absolute;left:7%;bottom:3%;width:90%;height:auto;aspect-ratio:185/15;display:block}
.rep p{margin:0}
.rep__h1{text-align:center;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:1em!important}
.rep__h2{font-weight:700;margin:.7em 0 .35em!important}
.rep__h2:first-child{margin-top:0!important}
.rep__ln{display:block;height:.42em;margin:.5em 0;border-radius:2px;background:#dfe3e0;transform-origin:left;transition:transform .8s var(--ease-out) .5s}
.rep__toc{list-style:none;margin:0;padding:0;display:grid;gap:.55em}
.rep__toc li{display:flex;align-items:baseline;gap:.3em}
.rep__toc li span{flex:0 1 auto}
.rep__toc li::after{content:"";order:1;flex:1;border-bottom:1px dotted #8a908c;transform:translateY(-.25em)}
.rep__toc li i{order:2;font-style:normal}
.rep__fig{display:block;width:84%;height:auto;aspect-ratio:200/92;margin:0 auto .3em;flex-shrink:0}
.rep__fig path[pathLength]{stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 1.2s var(--ease-out) .7s}
.rep__cap{font-size:.86em;text-align:center;margin:.1em 0 .4em!important}
.rep__cap--t{text-align:left;margin-top:.5em!important}
.rep__tbl{width:100%;border-collapse:collapse;font-size:.8em;line-height:1.25}
.rep__tbl th,.rep__tbl td{border:1px solid #2a2f2c;padding:.25em .35em;vertical-align:top}
.rep__tbl th{font-weight:700;text-align:center}
.rep__tbl td:not(:nth-child(2)):not(:first-child){text-align:center}
.rep__tbl tbody tr{transition:opacity .5s ease}
.rep__total td{font-weight:700}
.rep__res{margin:.6em 0 .2em!important}
.rep__mark{
  background:linear-gradient(rgba(8,122,82,.16),rgba(8,122,82,.16)) 0 0/0% 100% no-repeat;border-radius:2px;
  animation:rep-mark 5s var(--ease-out) 2s infinite;
}
@keyframes rep-mark{0%{background-size:0% 100%}25%,100%{background-size:100% 100%}}
.rep__badge{
  position:absolute;z-index:2;padding:.55em .9em;border-radius:10px;
  font:700 13px/1 var(--font-mono);color:#fff;letter-spacing:.02em;
  box-shadow:0 14px 28px -12px rgba(8,20,15,.45);
  transition:transform .6s var(--ease-back) 1.1s,opacity .4s ease 1.1s;
}
.rep__badge--1{right:2%;top:10%;background:var(--accent)}
.rep__badge--2{left:2%;bottom:14%;background:var(--accent-2);transition-delay:1.3s}

/* появление при прокрутке: листы раскладываются, схема рисуется, строки таблицы по очереди */
.rise:not(.is-in) .rep__page--back{transform:translate(4%,3%) rotate(0);opacity:0}
.rise:not(.is-in) .rep__page--front{transform:translate(-4%,8%) rotate(0);opacity:0}
.rep__page--front{transition-delay:.2s}
.rise:not(.is-in) .rep__fig path[pathLength]{stroke-dashoffset:1}
.rise:not(.is-in) .rep__ln{transform:scaleX(0)}
.rise:not(.is-in) .rep__tbl tbody tr{opacity:0}
.rep__tbl tbody tr:nth-child(1){transition-delay:.7s}
.rep__tbl tbody tr:nth-child(2){transition-delay:.82s}
.rep__tbl tbody tr:nth-child(3){transition-delay:.94s}
.rep__tbl tbody tr:nth-child(4){transition-delay:1.06s}
.rep__tbl tbody tr:nth-child(5){transition-delay:1.18s}
.rise:not(.is-in) .rep__badge{transform:scale(.5);opacity:0}
.rise.is-in .rep__badge--1{animation:p-float 6s ease-in-out 1.8s infinite}
.rise.is-in .rep__badge--2{animation:p-float 6s ease-in-out 2.6s infinite}

@media(max-width:1000px){
  .out{grid-template-columns:1fr}
  .out__media{max-width:560px;margin:0 auto;width:100%}
}
@media(max-width:560px){
  .rep__badge{font-size:11px}
  .out__cta .btn{flex:1 1 auto}
}
@media (prefers-reduced-motion: reduce){
  .rep__page,.rep__ln,.rep__tbl tbody tr,.rep__badge,.rep__fig path[pathLength]{transition:none!important}
  .rep__mark{animation:none;background-size:100% 100%}
  .rise.is-in .rep__badge--1,.rise.is-in .rep__badge--2{animation:none}
}

/* Баннер согласия на cookie / Яндекс Метрику (js/metrika.js) */
.cookie-bar{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:1000;
  max-width:760px;margin:0 auto;padding:16px 20px;
  display:flex;align-items:center;gap:16px;
  background:var(--card);color:var(--ink);
  border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-xl);
  font-size:14px;line-height:1.45;
}
.cookie-bar p{margin:0;flex:1}
.cookie-bar a{color:var(--green)}
.cookie-bar__btns{display:flex;gap:8px;flex-shrink:0}
.cookie-bar .btn{padding:10px 16px;font-size:14px}
@media (max-width:600px){
  .cookie-bar{flex-direction:column;align-items:stretch;left:12px;right:12px;bottom:12px}
  .cookie-bar__btns .btn{flex:1}
}

/* ===== Страницы решений: спокойная «инженерная» подача (вместо шаблонного лендинга) ===== */
main:has(.p-hero) .p-hero{background:none;border-bottom:1px solid var(--line);padding-bottom:clamp(36px,5vw,56px)}
main:has(.p-hero) .p-hero::before{display:none}
.p-crumb{margin:0 0 18px;font-size:13.5px;color:var(--muted)}
.p-crumb a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line)}
.p-crumb a:hover{color:var(--green);border-color:currentColor}
main:has(.p-hero) .p-hero h1{font-size:clamp(32px,3.6vw,50px);line-height:1.08;letter-spacing:-.03em;font-weight:700;max-width:14em}
main:has(.p-hero) .p-hero .sub{font-size:16.5px;max-width:540px}
main:has(.p-hero) .p-hero__media .shot__frame,
main:has(.p-hero) .p-hero__media .shot__frame:hover{transform:none}
main:has(.p-hero) .p-hero__media .shot__frame{border-radius:10px;box-shadow:0 20px 40px -24px rgba(8,20,15,.45)}
main:has(.p-hero) .p-float{
  animation:none;border-radius:8px;backdrop-filter:none;background:#fff;
  box-shadow:0 10px 24px -14px rgba(8,20,15,.35);left:-22px;bottom:-22px;
}
.p-spec{
  display:flex;flex-wrap:wrap;gap:6px 0;margin:clamp(36px,5vw,56px) 0 0;
  font-family:var(--font-mono);font-size:13px;color:var(--muted);
}
.p-spec span{white-space:nowrap}
.p-spec span + span::before{content:"·";margin:0 12px;color:var(--border-strong)}
.p-spec b{color:var(--ink);font-weight:600}

/* шапка раздела: заголовок слева, пояснение справа, без «надзаголовка» */
.ph{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px clamp(24px,5vw,72px);align-items:end;margin-bottom:clamp(32px,4vw,48px)}
.ph h2{margin:0;font-size:clamp(26px,3vw,36px);line-height:1.12;letter-spacing:-.025em;font-weight:700;color:var(--ink)}
.ph p{margin:0;font-size:16px;line-height:1.6;color:var(--muted);max-width:520px}
main:has(.p-hero) .faq .sec__head h2,main:has(.p-hero) .out__copy h2{font-size:clamp(26px,3vw,36px);letter-spacing:-.025em;font-weight:700}

/* карточки: без «прыжков» при наведении и с меньшим скруглением */
main:has(.p-hero) .pain{border-radius:12px;box-shadow:none}
main:has(.p-hero) .pain:hover{transform:none;box-shadow:none;border-color:var(--line)}
main:has(.p-hero) .pain:hover .card__ico{transform:none}
main:has(.p-hero) .xsell a{border-radius:12px}
main:has(.p-hero) .xsell a:hover{transform:none;box-shadow:none;border-color:var(--green)}
main:has(.p-hero) .xsell a.xsell--suite{background:var(--card)}
main:has(.p-hero) .faq__item{border-radius:10px}
main:has(.p-hero) .p-norm{border-radius:10px}

/* «Ещё в модуле» — обычным абзацем */
.p-more{margin:0;padding:24px 0 8px;border-top:1px solid var(--line);font-size:15px;line-height:1.6;color:var(--muted);max-width:820px}

/* соседние серые разделы без двойной линии */
.sec--alt:has(+ .sec--alt){border-bottom:0}
.sec--alt + .sec--alt{border-top:0}

@media(max-width:800px){
  .ph{grid-template-columns:1fr;align-items:start}
}
@media(max-width:768px){
  main:has(.p-hero) .p-float{left:auto;bottom:auto}
}

/* поля форм и кнопки — тем же шрифтом, что и текст */
button,input,select,textarea{font-family:inherit}

/* ===== Страница модулей: пара «Как сейчас / С LDS» в каждом модуле ===== */
.md__pain{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;
  margin:28px 0 0;padding-top:24px;border-top:1px dashed var(--line);
}
.md__pain .pain__vis{margin:0;min-width:0}
.md__pain p{margin:10px 0 0;font-size:13.5px;line-height:1.45;color:var(--muted)}
.md__pain .pain__vis--ok p{color:var(--ink)}
.mp-dim{animation:mp-dim 4s infinite both}
@keyframes mp-dim{0%,10%{opacity:1}20%,84%{opacity:.25}94%,100%{opacity:1}}
@media(max-width:960px){.md__pain{order:7;margin-top:26px}}
@media (prefers-reduced-motion: reduce){.mp-dim{animation:none;opacity:.25}}

/* ============================================================
   АНИМИРОВАННЫЕ ПРЕВЬЮ (src/demos во <iframe>): главная #demo и страницы модулей
   Фрейм шире контейнера на 24px с каждой стороны — внутри это поля под тень окна,
   поэтому само окно программы стоит ровно по сетке страницы.
   ============================================================ */
.demo-show__tabs{margin:0 0 20px}
.sec__head + .demo-show .demo-show__tabs{margin-left:auto;margin-right:auto}
.demo-show__frame{margin:0 -24px}
.demo-show__frame iframe{
  display:block;width:100%;border:0;background:transparent;
  aspect-ratio:1440/1000;height:auto;
  transition:opacity .35s var(--ease-out);
}
.demo-show__frame iframe[style*="height"]{aspect-ratio:auto}
.demo-show__frame iframe.is-loading{opacity:0}
@media (prefers-reduced-motion: reduce){.demo-show__frame iframe{transition:none}}
