:root {
  --hz-blue: #1f6fe0;
}

.brand-blue { color: var(--hz-blue); }

.btn-primary {
  --bs-btn-bg: var(--hz-blue);
  --bs-btn-border-color: var(--hz-blue);
  --bs-btn-hover-bg: #185cc0;
  --bs-btn-hover-border-color: #185cc0;
  --bs-btn-active-bg: #144ea6;
  --bs-btn-active-border-color: #144ea6;
}

.hero {
  background:
    radial-gradient(1200px 500px at 85% -10%, #e3eeff 0%, transparent 60%),
    radial-gradient(900px 400px at -10% 110%, #eef5ff 0%, transparent 55%);
}

.form-hero { background: linear-gradient(180deg, #f2f7ff 0%, #fff 100%); }

.lead-sm { font-size: 1.08rem; }

/* ---------- hero animation ---------- */
.hero-anim { max-width: 640px; }
.hero-anim svg { width: 100%; height: auto; display: block; }

.chip-text { font: 700 14px Helvetica, Arial, sans-serif; fill: var(--hz-blue); }
.paper-title { font: 700 12px Helvetica, Arial, sans-serif; fill: #365a8c; }
.irs-text { font: 700 15px Georgia, serif; fill: #365a8c; letter-spacing: 1px; }

.chip { animation: chip-float 5s ease-in-out infinite; }
.chip-2 { animation-delay: 1.2s; }
.chip-3 { animation-delay: 2.4s; }
@keyframes chip-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-9px); }
}

.paper { animation: paper-feed 4.8s ease-in-out infinite; }
@keyframes paper-feed {
  0%       { transform: translateY(-36px); opacity: 0; }
  12%      { transform: translateY(-36px); opacity: 1; }
  55%      { transform: translateY(0);     opacity: 1; }
  80%      { transform: translateY(94px);  opacity: 0; }
  100%     { transform: translateY(94px);  opacity: 0; }
}

.txline {
  stroke: var(--hz-blue);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 4 12;
  animation: tx-dash 1.2s linear infinite;
}
@keyframes tx-dash {
  to { stroke-dashoffset: -16; }
}

.dots circle { animation: dot-blink 1.2s ease-in-out infinite; }
.dots circle:nth-child(2) { animation-delay: .2s; }
.dots circle:nth-child(3) { animation-delay: .4s; }
@keyframes dot-blink {
  0%, 100% { opacity: .25; }
  50% { opacity: 1; }
}

.delivered {
  transform-origin: 562px 196px;
  animation: delivered-pop 4.8s ease-in-out infinite;
}
@keyframes delivered-pop {
  0%, 55%  { transform: scale(0); opacity: 0; }
  63%      { transform: scale(1.18); opacity: 1; }
  68%      { transform: scale(1); }
  92%      { transform: scale(1); opacity: 1; }
  100%     { transform: scale(0); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .paper, .chip, .txline, .dots circle, .delivered { animation: none; }
  .delivered { transform: scale(1); opacity: 1; }
}

/* ---------- sections ---------- */
.step-icon {
  width: 64px; height: 64px; margin: 0 auto;
  display: flex; align-items: center; justify-content: center;
  border-radius: 18px; background: #e7f0ff;
  color: var(--hz-blue); font-size: 1.5rem;
}

.card-hover { transition: transform .15s ease, box-shadow .15s ease; }
.card-hover:hover {
  transform: translateY(-3px);
  box-shadow: 0 .5rem 1.25rem rgba(31, 111, 224, .15) !important;
}

.cta-band { background: linear-gradient(135deg, var(--hz-blue), #0d3b77); }

/* ---------- status page ---------- */
.status-steps li {
  display: flex; align-items: center; gap: .75rem;
  padding: .8rem 1rem; border-left: 3px solid #dee2e6;
  color: #6c757d;
}
.status-steps li i { width: 1.4rem; text-align: center; }
.status-steps li.done {
  border-left-color: #22a35c; color: #111;
}
.status-steps li.done i { color: #22a35c; }
.status-steps li.active {
  border-left-color: var(--hz-blue); color: #111;
}
.status-steps li.active i {
  color: var(--hz-blue);
  animation: dot-blink 1s ease-in-out infinite;
}
