/* ===== custom polish over Tailwind ===== */
html { scroll-behavior: smooth; scroll-padding-top: 4.5rem; }

/* Hero radial gradient backdrop */
.hero-bg {
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(60% 50% at 80% 0%,  rgba(99,102,241,.15), transparent 70%),
    radial-gradient(50% 40% at 0% 30%,  rgba(6,182,212,.12),  transparent 70%),
    radial-gradient(40% 30% at 50% 100%,rgba(99,102,241,.08), transparent 70%);
}

/* Service cards */
.service-card {
  position: relative;
  padding: 1.75rem;
  border-radius: 1rem;
  background: #fff;
  border: 1px solid #E2E8F0;
  transition: transform .2s, box-shadow .2s, border-color .2s;
}
.service-card:hover {
  transform: translateY(-4px);
  border-color: #C7D2FE;
  box-shadow: 0 18px 35px -18px rgba(15,23,42,.25);
}
.service-card .icon {
  width: 3rem; height: 3rem; border-radius: .75rem;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem;
  background: linear-gradient(135deg, #EEF2FF 0%, #ECFEFF 100%);
  margin-bottom: 1rem;
}
.service-card h3 { font-weight: 700; font-size: 1.1rem; color: #0F172A; margin-bottom: .35rem; }
.service-card p  { color: #475569; font-size: .95rem; line-height: 1.55; }

/* Process steps */
.step-card {
  background: #fff; border-radius: 1rem; padding: 1.5rem 1.4rem;
  border: 1px solid #E2E8F0;
  transition: border-color .2s, transform .2s;
}
.step-card:hover { border-color: #C7D2FE; transform: translateY(-3px); }
.step-card .num {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1.5rem; font-weight: 800;
  background: linear-gradient(90deg,#6366F1,#06B6D4);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  margin-bottom: .5rem;
}
.step-card h4 { font-weight: 700; color: #0F172A; margin-bottom: .25rem; }
.step-card p  { color: #475569; font-size: .9rem; line-height: 1.5; }

/* Form inputs */
.form-input {
  width: 100%;
  border: 1px solid #CBD5E1;
  border-radius: .65rem;
  padding: .65rem .85rem;
  font-size: .95rem;
  background: #fff;
  transition: border-color .15s, box-shadow .15s;
  font-family: inherit;
}
.form-input:focus {
  outline: none;
  border-color: #6366F1;
  box-shadow: 0 0 0 3px rgba(99,102,241,.18);
}
.form-input:disabled { background: #F8FAFC; cursor: not-allowed; }

/* Status messages */
#formStatus.success { color: #047857; background: #ECFDF5; padding:.6rem .8rem; border-radius:.5rem; display:block; }
#formStatus.error   { color: #B91C1C; background: #FEF2F2; padding:.6rem .8rem; border-radius:.5rem; display:block; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .service-card, .step-card { transition: none; }
}

/* Subtle nav shadow on scroll */
header.scrolled { box-shadow: 0 4px 16px -8px rgba(15,23,42,.15); }
