html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

/* ============================================================================
   ISP Portal brand kit — Parts ASAP navy + red palette.
   Used by Login, Privacy, Error, MagicLink, and other branded pages.
   ============================================================================ */
:root {
  --isp-navy: #1E3A8A;
  --isp-navy-dark: #1E2A5E;
  --isp-red: #C8102E;
  --isp-red-soft: rgba(200, 16, 46, .08);
  --isp-ink: #1f2937;
  --isp-ink-soft: #6b7280;
}

/* Reusable hero-band gradient (navy → red, with soft radial highlights). */
.isp-brand-hero {
  position: relative;
  margin: -1rem -15px 0;
  padding: 4rem 1rem;
  color: #fff;
  background:
    linear-gradient(135deg, rgba(30,58,138,0.95) 0%, rgba(30,58,138,0.82) 55%, rgba(200,16,46,0.78) 100%),
    radial-gradient(circle at 20% 30%, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0) 45%),
    radial-gradient(circle at 80% 70%, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0) 45%);
  overflow: hidden;
}
.isp-brand-eyebrow {
  text-transform: uppercase; letter-spacing: .18em;
  font-size: .75rem; font-weight: 600;
}

/* White content card that sits inside the hero or stands alone on neutral bg. */
.isp-brand-card {
  background: #fff; color: var(--isp-ink);
  border-radius: 1rem; padding: 2.5rem;
  box-shadow: 0 22px 50px rgba(15, 23, 42, .35);
}

/* Red Parts ASAP CTA. */
.isp-btn-primary {
  background: var(--isp-red); color: #fff; border: 0;
  padding: .85rem 1.5rem; border-radius: .55rem;
  font-weight: 700; letter-spacing: .03em;
  box-shadow: 0 6px 18px rgba(200,16,46,.30);
  transition: transform .15s ease, box-shadow .15s ease;
}
.isp-btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(200,16,46,.40);
  color: #fff;
}

/* Outline (ghost) button, on dark backgrounds. */
.isp-btn-ghost {
  background: rgba(255,255,255,.08); color: #fff; border: 1px solid rgba(255,255,255,.4);
  padding: .85rem 1.4rem; border-radius: .55rem; font-weight: 600;
}
.isp-btn-ghost:hover { background: rgba(255,255,255,.18); color: #fff; }

/* Validation summary callout (matches landing page palette). */
.isp-validation-summary {
  background: #FEF2F2; border: 1px solid #FECACA; color: #991B1B;
  border-radius: .55rem; padding: .75rem 1rem; margin-bottom: 1rem;
  font-size: .9rem;
}
.isp-validation-summary ul { margin: 0; padding-left: 1.1rem; }

/* Inline links inside branded copy. */
.isp-brand-link { color: var(--isp-navy); font-weight: 600; text-decoration: none; }
.isp-brand-link:hover { text-decoration: underline; }
