/**
 * KOVO Motion System
 * Subtle premium motion layer — no dependency.
 */

:root {
  --kovo-motion-duration: 720ms;
  --kovo-motion-duration-fast: 360ms;
  --kovo-motion-duration-slow: 1200ms;
  --kovo-motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --kovo-motion-distance: 24px;
  --kovo-motion-glow: rgba(61, 108, 255, 0.18);
}

/* ================================
   Reveal system
================================ */

.kovo-motion-enabled .kovo-motion-item,
.kovo-motion-enabled .kovo-reveal,
.kovo-motion-enabled .kovo-reveal-up,
.kovo-motion-enabled .kovo-reveal-left,
.kovo-motion-enabled .kovo-reveal-right,
.kovo-motion-enabled .kovo-stagger > * {
  opacity: 0;
  transform: translate3d(0, var(--kovo-motion-distance), 0);
  transition:
    opacity var(--kovo-motion-duration) var(--kovo-motion-ease),
    transform var(--kovo-motion-duration) var(--kovo-motion-ease);
  will-change: opacity, transform;
}

.kovo-motion-enabled .kovo-reveal-left {
  transform: translate3d(calc(var(--kovo-motion-distance) * -1), 0, 0);
}

.kovo-motion-enabled .kovo-reveal-right {
  transform: translate3d(var(--kovo-motion-distance), 0, 0);
}

.kovo-motion-enabled .kovo-motion-item.is-visible,
.kovo-motion-enabled .kovo-reveal.is-visible,
.kovo-motion-enabled .kovo-reveal-up.is-visible,
.kovo-motion-enabled .kovo-reveal-left.is-visible,
.kovo-motion-enabled .kovo-reveal-right.is-visible,
.kovo-motion-enabled .kovo-stagger.is-visible > * {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.kovo-motion-enabled .kovo-stagger.is-visible > *:nth-child(1) { transition-delay: 70ms; }
.kovo-motion-enabled .kovo-stagger.is-visible > *:nth-child(2) { transition-delay: 130ms; }
.kovo-motion-enabled .kovo-stagger.is-visible > *:nth-child(3) { transition-delay: 190ms; }
.kovo-motion-enabled .kovo-stagger.is-visible > *:nth-child(4) { transition-delay: 250ms; }
.kovo-motion-enabled .kovo-stagger.is-visible > *:nth-child(5) { transition-delay: 310ms; }
.kovo-motion-enabled .kovo-stagger.is-visible > *:nth-child(6) { transition-delay: 370ms; }
.kovo-motion-enabled .kovo-stagger.is-visible > *:nth-child(7) { transition-delay: 430ms; }
.kovo-motion-enabled .kovo-stagger.is-visible > *:nth-child(8) { transition-delay: 490ms; }

/* ================================
   Premium hover layer
================================ */

.offer-card,
.case-card,
.problem-card,
.method-stage,
.feature,
.kovo-card,
.kovo-cta,
.audit-card,
.satellite-card,
.local-card {
  transition:
    transform var(--kovo-motion-duration-fast) var(--kovo-motion-ease),
    border-color var(--kovo-motion-duration-fast) var(--kovo-motion-ease),
    box-shadow var(--kovo-motion-duration-fast) var(--kovo-motion-ease),
    background-color var(--kovo-motion-duration-fast) var(--kovo-motion-ease),
    opacity var(--kovo-motion-duration-fast) var(--kovo-motion-ease);
}

@media (hover: hover) {
  .offer-card:hover,
  .case-card:hover,
  .problem-card:hover,
  .method-stage:hover,
  .feature:hover,
  .kovo-card:hover,
  .audit-card:hover,
  .satellite-card:hover,
  .local-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
  }

  .btn:hover,
  .kovo-header__cta:hover,
  .kovo-mobile-nav__cta:hover,
  .gform_button:hover,
  .gform_next_button:hover,
  .gform_previous_button:hover {
    box-shadow:
      0 16px 48px rgba(0, 0, 0, 0.28),
      0 0 34px var(--kovo-motion-glow);
  }
}

/* ================================
   Ambient hero / mouse glow
================================ */

.kovo-mouse-glow {
  position: fixed;
  top: -220px;
  left: -220px;
  z-index: 0;
  width: 440px;
  height: 440px;
  border-radius: 999px;
  pointer-events: none;
  background:
    radial-gradient(
      circle,
      rgba(61, 108, 255, 0.14) 0%,
      rgba(61, 108, 255, 0.075) 30%,
      rgba(61, 108, 255, 0) 72%
    );
  filter: blur(14px);
  opacity: 0.8;
  will-change: transform;
}

.kovo-ambient,
.hero__orb,
.hero__glow {
  animation: kovoAmbientDrift 14s var(--kovo-motion-ease) infinite alternate;
}

@keyframes kovoAmbientDrift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(28px, -32px, 0) scale(1.06); }
}

/* ================================
   Editorial polish
================================ */

.entry-content img,
.single-content img,
.kovo-single__content img {
  height: auto;
  border-radius: 24px;
}

::selection {
  color: #06080d;
  background: rgba(255, 255, 255, 0.92);
}



/* ================================
   KOVO finishing layer
================================ */

.kovo-nav a[aria-current="page"],
.kovo-mobile-nav a[aria-current="page"] {
  color: #fff;
  background: rgba(255, 255, 255, 0.075);
}

.kovo-header__cta[aria-current="page"],
.kovo-mobile-nav__cta[aria-current="page"] {
  filter: brightness(1.08);
  box-shadow: 0 12px 36px rgba(61, 108, 255, 0.24);
}

.card,
.card__link,
.btn,
.kovo-header__cta,
.kovo-mobile-nav__cta {
  transition:
    transform var(--kovo-motion-duration-fast) var(--kovo-motion-ease),
    box-shadow var(--kovo-motion-duration-fast) var(--kovo-motion-ease),
    border-color var(--kovo-motion-duration-fast) var(--kovo-motion-ease),
    background-color var(--kovo-motion-duration-fast) var(--kovo-motion-ease),
    color var(--kovo-motion-duration-fast) var(--kovo-motion-ease),
    opacity var(--kovo-motion-duration-fast) var(--kovo-motion-ease);
}

@media (hover: hover) {
  .card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.24);
  }

  .btn:hover {
    transform: translateY(-2px);
  }
}

.prose a,
.entry-content a,
.single-content a {
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
  text-decoration-color: rgba(255, 255, 255, 0.32);
  transition: text-decoration-color 220ms ease, opacity 220ms ease;
}

.prose a:hover,
.entry-content a:hover,
.single-content a:hover {
  text-decoration-color: rgba(255, 255, 255, 0.86);
}

.prose table,
.entry-content table,
.single-content table {
  width: 100%;
  overflow: hidden;
  border-collapse: collapse;
  border-radius: 18px;
}

.prose th,
.prose td,
.entry-content th,
.entry-content td,
.single-content th,
.single-content td {
  padding: 14px 16px;
  border: 1px solid rgba(255, 255, 255, 0.09);
}

.prose th,
.entry-content th,
.single-content th {
  color: #fff;
  background: rgba(255, 255, 255, 0.07);
}

.prose pre,
.entry-content pre,
.single-content pre {
  overflow-x: auto;
  padding: 22px;
  border-radius: 20px;
  background: rgba(0, 0, 0, 0.34);
  border: 1px solid rgba(255, 255, 255, 0.09);
}

.prose code,
.entry-content code,
.single-content code {
  padding: 0.18em 0.42em;
  border-radius: 8px;
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

.prose pre code,
.entry-content pre code,
.single-content pre code {
  padding: 0;
  background: transparent;
}

/* ================================
   Accessibility / reduced motion
================================ */

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.82);
  outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }

  .kovo-motion-item,
  .kovo-reveal,
  .kovo-reveal-up,
  .kovo-reveal-left,
  .kovo-reveal-right,
  .kovo-stagger,
  .kovo-stagger > * {
    opacity: 1 !important;
    transform: none !important;
  }

  .kovo-mouse-glow {
    display: none !important;
  }
}

@media (max-width: 991px) {
  .kovo-mouse-glow {
    display: none;
  }
}


/* ================================
   V3 polish — accessibility, menu, editorial details
================================ */

.kovo-skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 10000;
  padding: 12px 16px;
  border-radius: 999px;
  color: #06080d;
  background: #fff;
  font-weight: 700;
  text-decoration: none;
  transform: translateY(-140%);
  transition: transform 180ms ease;
}

.kovo-skip-link:focus-visible {
  transform: translateY(0);
}

body.has-kovo-menu-open {
  position: fixed;
  width: 100%;
  overflow: hidden;
}

.kovo-mobile-nav[aria-hidden="true"] {
  pointer-events: none;
}

.kovo-header.is-menu-open .kovo-mobile-nav {
  animation: kovoMenuReveal 260ms var(--kovo-motion-ease) both;
}

@keyframes kovoMenuReveal {
  from {
    opacity: 0;
    transform: translate3d(0, -8px, 0) scale(0.985);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

.kovo-burger:focus-visible,
.kovo-header__cta:focus-visible,
.kovo-mobile-nav a:focus-visible,
.kovo-nav a:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.82);
  outline-offset: 4px;
}

.kovo-motion-enabled .kovo-stagger.is-visible > *:nth-child(n+9) {
  transition-delay: 540ms;
}

@media (hover: hover) {
  .kovo-nav a:hover,
  .kovo-mobile-nav a:not(.kovo-mobile-nav__cta):hover {
    transform: translateY(-1px);
  }
}

.kovo-motion-enabled .gform_page,
.kovo-motion-enabled .gform_fields > .gfield {
  animation: kovoFieldFade var(--kovo-motion-duration) var(--kovo-motion-ease) both;
}

@keyframes kovoFieldFade {
  from {
    opacity: 0;
    transform: translate3d(0, 10px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.prose blockquote,
.entry-content blockquote,
.single-content blockquote {
  position: relative;
  margin: 2em 0;
  padding: 26px 28px;
  border-left: 2px solid rgba(255, 255, 255, 0.5);
  border-radius: 22px;
  color: rgba(255, 255, 255, 0.78);
  background: rgba(255, 255, 255, 0.05);
}

.prose hr,
.entry-content hr,
.single-content hr {
  height: 1px;
  margin: 3em 0;
  border: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.16), transparent);
}

.prose figcaption,
.entry-content figcaption,
.single-content figcaption {
  margin-top: 10px;
  color: rgba(255, 255, 255, 0.48);
  font-size: 0.9rem;
  line-height: 1.5;
}

@media (max-width: 640px) {
  .kovo-header.is-menu-open .kovo-mobile-nav {
    left: 12px;
    right: 12px;
  }
}

/* ================================
   V4 — conversion polish, progress, forms
================================ */

html {
  scroll-padding-top: calc(var(--kovo-header-height, 76px) + 24px);
}

.kovo-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10001;
  width: 100%;
  height: 2px;
  pointer-events: none;
  transform-origin: left center;
  transform: scaleX(var(--kovo-scroll-progress, 0));
  background: linear-gradient(90deg, rgba(255,255,255,0.08), rgba(61,108,255,0.86), rgba(255,255,255,0.78));
  box-shadow: 0 0 24px rgba(61,108,255,0.42);
}

.kovo-motion-enabled .kovo-scroll-progress {
  transition: transform 80ms linear;
}

.btn,
.kovo-header__cta,
.kovo-mobile-nav__cta,
.gform_button,
.gform_next_button,
.gform_previous_button {
  position: relative;
  overflow: hidden;
}

.btn::before,
.kovo-header__cta::before,
.kovo-mobile-nav__cta::before,
.gform_button::before,
.gform_next_button::before,
.gform_previous_button::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.20) 42%, transparent 76%);
  transform: translateX(-120%);
  transition: transform 760ms var(--kovo-motion-ease);
}

@media (hover: hover) {
  .btn:hover::before,
  .kovo-header__cta:hover::before,
  .kovo-mobile-nav__cta:hover::before,
  .gform_button:hover::before,
  .gform_next_button:hover::before,
  .gform_previous_button:hover::before {
    transform: translateX(120%);
  }

  .btn:active,
  .kovo-header__cta:active,
  .kovo-mobile-nav__cta:active,
  .gform_button:active,
  .gform_next_button:active,
  .gform_previous_button:active {
    transform: translateY(0) scale(0.985);
  }
}

.kovo-field-active input,
.kovo-field-active select,
.kovo-field-active textarea,
.gfield.is-focused input,
.gfield.is-focused select,
.gfield.is-focused textarea {
  border-color: rgba(255,255,255,0.32) !important;
  box-shadow: 0 0 0 4px rgba(61,108,255,0.13) !important;
}

.gfield.has-value .gfield_label,
.gfield.is-focused .gfield_label {
  color: rgba(255,255,255,0.92) !important;
}

.gform_wrapper .gf_progressbar,
.gform_wrapper .gf_progressbar_percentage {
  border-radius: 999px !important;
}

.gform_wrapper .gf_progressbar {
  overflow: hidden !important;
  background: rgba(255,255,255,0.08) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
}

.gform_wrapper .gf_progressbar_percentage {
  background: linear-gradient(90deg, rgba(61,108,255,0.86), rgba(255,255,255,0.78)) !important;
}

.gform_wrapper .gfield_required,
.gform_wrapper .gfield_required_text {
  color: rgba(255,255,255,0.58) !important;
}

input:-webkit-autofill,
textarea:-webkit-autofill,
select:-webkit-autofill {
  -webkit-text-fill-color: #fff !important;
  -webkit-box-shadow: 0 0 0 1000px rgba(8,12,19,0.96) inset !important;
  transition: background-color 9999s ease-in-out 0s !important;
}

.kovo-motion-enabled .kovo-magnetic {
  will-change: transform;
}

@media (max-width: 760px) {
  .kovo-scroll-progress {
    height: 1px;
  }

  .kovo-mouse-glow {
    display: none;
  }
}

.kovo-reduced-motion .kovo-scroll-progress,
@media (prefers-reduced-motion: reduce) {
  .kovo-scroll-progress {
    transition: none !important;
  }
}

/* ================================
   V5 — perceived quality polish
================================ */

html:not(.kovo-page-ready) body {
  opacity: 0.985;
}

html.kovo-page-ready body {
  opacity: 1;
  transition: opacity 260ms var(--kovo-motion-ease);
}

.stat__number,
.kovo-stat__number,
[data-kovo-count] {
  font-variant-numeric: tabular-nums;
}

.kovo-details-enhanced {
  transition:
    border-color var(--kovo-motion-duration-fast) var(--kovo-motion-ease),
    background-color var(--kovo-motion-duration-fast) var(--kovo-motion-ease),
    transform var(--kovo-motion-duration-fast) var(--kovo-motion-ease);
}

.kovo-details-enhanced[open],
.kovo-details-enhanced.is-open {
  border-color: rgba(255,255,255,0.18);
  background-color: rgba(255,255,255,0.065);
}

@media (hover: hover) {
  .kovo-details-enhanced:hover {
    transform: translateY(-2px);
  }
}

.kovo-toc a,
.toc a {
  position: relative;
  transition: color 220ms var(--kovo-motion-ease), opacity 220ms var(--kovo-motion-ease);
}

.kovo-toc a.is-active,
.toc a.is-active {
  color: #fff;
  opacity: 1;
}

.kovo-toc a.is-active::before,
.toc a.is-active::before {
  content: "";
  position: absolute;
  left: -12px;
  top: 0.55em;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: currentColor;
  box-shadow: 0 0 18px rgba(255,255,255,0.45);
}

.kovo-external-link::after {
  content: "↗";
  display: inline-block;
  margin-left: 0.28em;
  font-size: 0.78em;
  opacity: 0.62;
  transform: translateY(-0.06em);
}

.gform_wrapper .gform_page,
.gform_wrapper .gform_body,
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer {
  animation: kovoFormSoftEnter 360ms var(--kovo-motion-ease) both;
}

@keyframes kovoFormSoftEnter {
  from {
    opacity: 0;
    transform: translate3d(0, 8px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@media (max-width: 760px) {
  .kovo-toc a.is-active::before,
  .toc a.is-active::before {
    display: none;
  }
}

.kovo-reduced-motion html.kovo-page-ready body,
@media (prefers-reduced-motion: reduce) {
  html:not(.kovo-page-ready) body,
  html.kovo-page-ready body {
    opacity: 1 !important;
    transition: none !important;
  }

  .gform_wrapper .gform_page,
  .gform_wrapper .gform_body,
  .gform_wrapper .gform_footer,
  .gform_wrapper .gform_page_footer {
    animation: none !important;
  }
}
