html, body { margin: 0; padding: 0; background: #FFFFFF; }
  body { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
  a { color: #111110; }
  a:hover { color: #2E5BFF; }
  ::selection { background: #2E5BFF; color: #FFFFFF; }
  ::placeholder { color: #8a887f; opacity: 1; }
  @keyframes marq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  @keyframes bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(10px); } }
  @keyframes revealUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
  @keyframes shutterIn { from { opacity: 0; filter: blur(10px); } to { opacity: 1; filter: blur(0); } }
  @keyframes sweepR { 0% { transform: translateX(-100%); opacity: 0; } 50% { opacity: 1; } 100% { transform: translateX(100%); opacity: 0; } }
  @keyframes sweepL { 0% { transform: translateX(100%); opacity: 0; } 50% { opacity: 1; } 100% { transform: translateX(-100%); opacity: 0; } }
  [data-reveal]:not([data-shown]) { opacity: 0; }
  [data-reveal][data-shown] { animation: revealUp .72s cubic-bezier(.22,.61,.36,1) both; }
  @media (prefers-reduced-motion: reduce) {
    [data-reveal] { opacity: 1; }
    [data-reveal][data-shown] { animation: none; }
  }

      @media (max-width: 1180px) {
        [data-hide-md] { display: none !important; }
      }
      @media (max-width: 760px) {
        [data-hide-sm] { display: none !important; }
        [data-stack-sm] { grid-template-columns: 1fr !important; }
        [data-formula-grid] { grid-template-columns: 1fr !important; gap: 44px 0 !important; }
      }

/* hover / focus states lifted out of inline style-hover|style-focus */
.hv1:hover{color:#2E5BFF !important}
.hv2:hover{background:#1D47E8 !important;color:#FFFFFF !important}
.hv3:hover{border:1px solid #111110 !important;color:#0B0B0B !important}
.hv4:hover{color:#1D47E8 !important}
.hv5:hover{background:#1D47E8 !important}
.hv6:hover{color:#111110 !important}
.fc1:focus{border-bottom:1px solid #0B0B0B !important}
.hv7:hover{opacity:.88 !important}
.hv8:hover{border:1px solid #111110 !important;color:#111110 !important}
.hv9:hover{color:#2E5BFF !important;border-bottom:1px solid rgba(46,91,255,.4) !important}
.hv10:hover{border:1px solid #2E5BFF !important;color:#2E5BFF !important}
.hv11:hover{border:1px solid #111110 !important}


/* --- standalone additions --- */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
[id] { scroll-margin-top: 90px; }

/* Дизайн держит display в inline-стилях, а он сильнее UA-правила
   [hidden]{display:none}. Без !important подтверждение «Заявка отправлена»
   (display:flex) висело на странице с самой загрузки, рядом с формой. */
[hidden] { display: none !important; }

/* Кружки первого экрана: дизайн прячет их через data-hide-sm, но на мобильном
   они нужны — перекрываем по id. Горизонтального скролла не даёт: у <main>
   стоит overflow-x: clip. */
@media (max-width: 760px) {
  #hero-v1, #hero-v2 { display: inline-block !important; }
  #hero-v1 { width: 132px !important; height: 132px !important; left: -52px !important; }
  #hero-v2 { width: 108px !important; height: 108px !important; right: -40px !important; }
}
img, video, svg { max-width: 100%; }
:focus-visible { outline: 2px solid #2E5BFF; outline-offset: 3px; }
button.quiz-opt:hover { border-color: #111110 !important; }
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: #111110; color: #FFFFFF; padding: 12px 20px;
  font: 700 14px/1 "Helvetica Neue", Helvetica, Arial, sans-serif;
  border-radius: 0 0 8px 0; text-decoration: none;
}
.skip-link:focus { left: 0; color: #FFFFFF; }
