/* Selvanto premium bridge animations */

.sv-bridge {
  position: relative;
  overflow: hidden;
}

.sv-bridge::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(115deg, transparent 0%, rgba(255,255,255,.55) 42%, transparent 58%),
    radial-gradient(circle at 25% 20%, rgba(14,165,233,.20), transparent 34%),
    radial-gradient(circle at 82% 12%, rgba(37,99,235,.16), transparent 36%);
  opacity: .75;
  transform: translateX(-35%);
  animation: svPageShine 10s ease-in-out infinite;
  pointer-events: none;
}

.sv-hero,
.sv-section,
.sv-final {
  position: relative;
  z-index: 1;
}

.sv-panel {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform: translateY(0);
  animation: svFloat 5.5s ease-in-out infinite;
}

.sv-panel::before {
  content: "";
  position: absolute;
  inset: -2px;
  background:
    linear-gradient(120deg, rgba(14,165,233,.0), rgba(14,165,233,.38), rgba(37,99,235,.0));
  transform: translateX(-120%);
  animation: svPanelScan 4.8s ease-in-out infinite;
  z-index: -1;
}

.sv-panel::after {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  right: -80px;
  top: -90px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(14,165,233,.22), transparent 68%);
  filter: blur(8px);
  animation: svGlowPulse 4.2s ease-in-out infinite;
  z-index: -1;
}

.sv-status {
  animation: svPulse 1.8s ease-in-out infinite;
}

.sv-lead-box {
  position: relative;
  overflow: hidden;
}

.sv-lead-box::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,.8) 48%, transparent 60%);
  transform: translateX(-120%);
  animation: svLeadSweep 3.8s ease-in-out infinite;
}

.sv-check {
  opacity: 0;
  transform: translateY(10px);
  animation: svCheckIn .7s ease forwards;
}

.sv-check:nth-child(1) { animation-delay: .25s; }
.sv-check:nth-child(2) { animation-delay: .55s; }
.sv-check:nth-child(3) { animation-delay: .85s; }

.sv-check b {
  box-shadow: 0 10px 28px rgba(14,165,233,.35);
  animation: svTickPop 2.2s ease-in-out infinite;
}

.sv-check:nth-child(2) b { animation-delay: .35s; }
.sv-check:nth-child(3) b { animation-delay: .7s; }

.sv-card,
.sv-step {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.sv-card:hover,
.sv-step:hover {
  transform: translateY(-5px);
  border-color: #bae6fd;
  box-shadow: 0 28px 80px rgba(15, 23, 42, .12);
}

.sv-btn-main {
  position: relative;
  overflow: hidden;
}

.sv-btn-main::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 46px;
  left: -70px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent);
  transform: skewX(-18deg);
  animation: svButtonShine 3.2s ease-in-out infinite;
}

@keyframes svPageShine {
  0%, 100% { transform: translateX(-35%); opacity: .45; }
  50% { transform: translateX(18%); opacity: .85; }
}

@keyframes svFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-9px); }
}

@keyframes svPanelScan {
  0%, 55% { transform: translateX(-120%); opacity: 0; }
  70% { opacity: .9; }
  100% { transform: translateX(120%); opacity: 0; }
}

@keyframes svGlowPulse {
  0%, 100% { opacity: .5; transform: scale(.96); }
  50% { opacity: 1; transform: scale(1.08); }
}

@keyframes svPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(34,197,94,.22); }
  50% { box-shadow: 0 0 0 8px rgba(34,197,94,.08); }
}

@keyframes svLeadSweep {
  0%, 55% { transform: translateX(-120%); }
  100% { transform: translateX(120%); }
}

@keyframes svCheckIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes svTickPop {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.12); }
}

@keyframes svButtonShine {
  0%, 55% { left: -70px; }
  100% { left: 130%; }
}

@media (prefers-reduced-motion: reduce) {
  .sv-bridge::before,
  .sv-panel,
  .sv-panel::before,
  .sv-panel::after,
  .sv-status,
  .sv-lead-box::after,
  .sv-check,
  .sv-check b,
  .sv-btn-main::after {
    animation: none !important;
  }
}