
  html { scroll-behavior: smooth; }
  section[id] { scroll-margin-top: 88px; }
  body { font-family: 'Inter', sans-serif; }

  .reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
  .reveal.in { opacity: 1; transform: translateY(0); }
  @media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; transition: none; }
    html { scroll-behavior: auto; }
  }

  .wa-pulse { animation: wa-pulse 2.4s ease-in-out infinite; }
  @keyframes wa-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(5,150,105,0.35); }
    50% { box-shadow: 0 0 0 10px rgba(5,150,105,0); }
  }
  @keyframes tel-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(37,99,235,0.35); }
    50% { box-shadow: 0 0 0 10px rgba(37,99,235,0); }
  }
  @keyframes cta-bounce {
    0%, 85%, 100% { transform: translateY(0); }
    90% { transform: translateY(-6px); }
    95% { transform: translateY(0); }
  }
  .cta-primary-motion { animation: wa-pulse 2.4s ease-in-out infinite, cta-bounce 3.6s ease-in-out infinite; }
  .cta-secondary-motion { animation: tel-pulse 2.4s ease-in-out infinite, cta-bounce 3.6s ease-in-out infinite 1.8s; }
  @media (prefers-reduced-motion: reduce) {
    .cta-primary-motion, .cta-secondary-motion, .wa-pulse { animation: none; }
  }

  details > summary { list-style: none; cursor: pointer; }
  details > summary::-webkit-details-marker { display: none; }
  details[open] .faq-icon { transform: rotate(45deg); }

  #mobileMenu { transition: max-height .35s ease, opacity .3s ease; }

  .nav-link::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -4px;
    height: 2px;
    border-radius: 2px;
    background: #2563eb;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .25s ease;
  }
  .nav-link:hover::after { transform: scaleX(1); }
  .nav-link.active { color: #1d4ed8; }
  .nav-link.active::after { transform: scaleX(1); }

  .step-connector::after {
    content: '';
    position: absolute;
    top: 1.75rem;
    left: 100%;
    width: 1.5rem;
    height: 2px;
    background: repeating-linear-gradient(90deg, #cbd5e1 0 6px, transparent 6px 11px);
  }
  @media (max-width: 767px) { .step-connector::after { display: none; } }

  .step-dot { background: #fff; border-color: #e2e8f0; color: #94a3b8; }
  .step-dot.is-active { background: #2563eb; border-color: #2563eb; color: #fff; }
  .step-dot.is-done { background: #dbeafe; border-color: #93c5fd; color: #1d4ed8; }
  .step-track.is-done { background: #2563eb; }
  .step-track:not(.is-done) { background: #e2e8f0; }
  .step-panel { animation: step-fade-in .35s ease-out; }
  @keyframes step-fade-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
  @media (prefers-reduced-motion: reduce) { .step-panel { animation: none; } }

  section[id] { scroll-margin-top: 88px; }
  .svc-track { scrollbar-width: none; -ms-overflow-style: none; }
  .svc-track::-webkit-scrollbar { display: none; }
  #revList { scrollbar-width: thin; }
  .svc-add-btn.is-added { background: #059669; border-color: #059669; color: #fff; }
  .svc-chip-enter { animation: svc-chip-in .25s ease-out; }
  @keyframes svc-chip-in { from { opacity: 0; transform: scale(.9); } to { opacity: 1; transform: scale(1); } }

  .client-fade { position: relative; overflow: hidden; -webkit-mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent); mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent); }
  .client-marquee { animation: client-marquee-scroll 36s linear infinite; }
  .client-marquee:hover { animation-play-state: paused; }
  @keyframes client-marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  @media (prefers-reduced-motion: reduce) { .client-marquee { animation: none; overflow-x: auto; } }
