:root {
  --bs-primary: #2949ad;
  --bs-primary-rgb: 41, 73, 173;
  --bs-secondary-color: #526074;
}

html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.text-primary { color: #2949ad !important; }
.text-secondary { color: #526074 !important; }
.fw-black { font-weight: 800; letter-spacing: -.035em; }
.max-w-700 { max-width: 700px; }
.bg-gradient-soft-primary { background: linear-gradient(125deg, #f0f4ff, #f8fafc 65%, #e4ebff); }
.btn-primary { --bs-btn-bg: #2949ad; --bs-btn-border-color: #2949ad; --bs-btn-hover-bg: #203987; --bs-btn-hover-border-color: #203987; --bs-btn-active-bg: #192f73; --bs-btn-active-border-color: #192f73; }
.btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.nav-link { min-height: 44px; display: flex; align-items: center; }
.transition-all { transition: transform .2s ease, box-shadow .2s ease; }
.hover-shadow:hover { transform: translateY(-4px); box-shadow: 0 1rem 2rem #172f6415 !important; }
.feature-icon { line-height: 1; }
.skip-link { transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); z-index: 1100 !important; }
:where(a, button, input, select, textarea):focus-visible { outline: 3px solid #9b4600 !important; outline-offset: 4px; box-shadow: none !important; }
.form-control, .form-select { border-color: #788494; }
.form-control::placeholder { color: #626c78; }
.invalid-feedback, .text-danger { color: #ad2331 !important; }
footer .text-secondary { color: #c3ccda !important; }
footer a:hover { color: #fff !important; text-decoration: underline !important; }
#why-us .rounded-circle { flex-shrink: 0; }
#form-alert-container:empty { margin: 0; }
@media (max-width: 575.98px) {
  .navbar-brand { font-size: 1rem !important; gap: .35rem !important; }
  .navbar-brand .fw-light { display: block; font-size: .85rem; }
  .display-4 { font-size: 2.6rem; }
  .navbar-collapse { padding-top: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Local layout and components: no network dependency for presentation. */
* { box-sizing: border-box; }
body { margin: 0; color: #212529; background: #f8f9fa; line-height: 1.5; }
html { scroll-padding-top: 16px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.2; overflow-wrap: anywhere; }
h1 { font-size: clamp(2.3rem, 4vw, 3.5rem); }
.h1 { font-size: 2.25rem; }
.h4 { font-size: 1.5rem; }
.h5 { font-size: 1.25rem; }
.lead { font-size: 1.25rem; }
.small { font-size: .875rem; }
.fw-bold, .fw-semibold { font-weight: 700; }
.fw-light { font-weight: 400; }
.fs-4 { font-size: 1.5rem; }
.fs-5 { font-size: 1.25rem; }
a { color: #2949ad; }
button, input, textarea, select { font: inherit; }
button, select { cursor: pointer; }
.container { width: min(100% - 32px, 1140px); margin-inline: auto; }
.row { display: flex; flex-wrap: wrap; margin-inline: -12px; row-gap: 24px; }
.row > * { width: 100%; padding-inline: 12px; min-width: 0; }
.d-flex { display: flex; }
.flex-column { flex-direction: column; }
.flex-grow-1 { flex-grow: 1; }
.align-items-center { align-items: center; }
.align-items-start { align-items: flex-start; }
.align-self-start { align-self: flex-start; }
.justify-content-center { justify-content: center; }
.gap-2 { gap: 8px; }
.gap-3 { gap: 16px; }
.text-center { text-align: center; }
.text-dark { color: #212529; }
.text-white { color: white; }
.bg-white { background: white; }
.bg-light { background: #f8f9fa; }
.bg-dark { background: #212529; }
.bg-success { background: #146c43; }
.bg-primary-subtle { background: #e1e8ff; }
.border, .border-bottom, .border-top { border: 1px solid #d4d9e0; }
.border-0 { border: 0; }
.rounded-3 { border-radius: 12px; }
.rounded-4 { border-radius: 20px; }
.rounded-pill { border-radius: 999px; }
.rounded-circle { border-radius: 50%; }
.shadow-sm { box-shadow: 0 2px 8px #15264010; }
.shadow, .shadow-lg { box-shadow: 0 12px 32px #15264018; }
.p-2 { padding: 8px; }
.p-3 { padding: 16px; }
.p-4 { padding: 24px; }
.px-2 { padding-inline: 8px; }
.px-3 { padding-inline: 16px; }
.px-4 { padding-inline: 24px; }
.py-2 { padding-block: 8px; }
.py-3 { padding-block: 16px; }
.py-5 { padding-block: 48px; }
.pb-4 { padding-bottom: 24px; }
.m-2 { margin: 8px; }
.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 4px; }
.mb-2 { margin-bottom: 8px; }
.mb-3 { margin-bottom: 16px; }
.mb-4 { margin-bottom: 24px; }
.mb-5 { margin-bottom: 48px; }
.mt-4 { margin-top: 24px; }
.mx-auto { margin-inline: auto; }
.h-100 { height: 100%; }
.w-100 { width: 100%; }
.card { background: white; }
.card-body { height: 100%; }
.badge { display: inline-block; font-size: .875rem; }
.btn { padding: 10px 16px; border: 1px solid transparent; text-align: center; text-decoration: none; white-space: normal; }
.btn-primary { background: #2949ad; color: white; border-color: #2949ad; }
.btn-primary:hover { background: #203987; }
.btn-outline-dark { color: #212529; border-color: #212529; background: transparent; }
.btn-outline-dark:hover { color: white; background: #212529; }
.btn-lg { font-size: 1.125rem; }
.navbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.navbar-brand { text-decoration: none; }
.navbar-nav { list-style: none; margin: 0; padding: 0; }
.nav-link { text-decoration: none; color: #414b59; }
.nav-link:hover { text-decoration: underline; }
.navbar-collapse { width: 100%; }
.navbar-collapse:not(.show) { display: none; }
.navbar-toggler { min-width: 44px; min-height: 44px; border-radius: 6px; color: #212529; background: #e8edf5; padding: 8px; }
.skip-link { position: absolute; top: 0; left: 0; z-index: 1100; }
.form-label { display: block; margin-bottom: 8px; }
.form-control, .form-select { display: block; width: 100%; min-width: 0; min-height: 48px; padding: 10px 12px; color: #212529; background: white; border: 1px solid #788494; border-radius: 6px; }
textarea { resize: vertical; }
.invalid-feedback { display: none; margin-top: 6px; }
.was-validated :invalid ~ .invalid-feedback { display: block; }
.was-validated :invalid { border: 2px solid #ad2331; }
.alert { padding: 16px; border: 1px solid #856404; border-radius: 8px; background: #fff3cd; color: #664d03; }
.list-inline { list-style: none; padding: 0; }
.list-inline-item { display: inline-block; }
footer a { display: inline-flex; align-items: center; min-height: 44px; }
footer a:focus-visible { outline-color: #ffd166 !important; }
.bi { display: none; } /* Decorative icons have no essential content. */
.feature-icon { width: 48px; height: 12px; }
@media (min-width: 576px) { .flex-sm-row { flex-direction: row; } }
@media (min-width: 768px) {
  .col-md-6 { width: 50%; }
  .p-md-5 { padding: 48px; }
  .text-md-start { text-align: left; }
  .text-md-end { text-align: right; }
  .justify-content-md-start { justify-content: flex-start; }
}
@media (min-width: 992px) {
  .col-lg-3 { width: 25%; } .col-lg-5 { width: 41.6667%; }
  .col-lg-6 { width: 50%; } .col-lg-7 { width: 58.3333%; }
  .col-lg-8 { width: 66.6667%; } .col-lg-10 { width: 83.3333%; }
  .py-lg-4 { padding-block: 24px; } .py-lg-5 { padding-block: 48px; }
  .navbar-toggler { display: none; }
  .navbar-collapse, .navbar-collapse:not(.show) { display: flex; align-items: center; width: auto; flex-grow: 1; }
  .navbar-nav { display: flex; margin-left: auto; }
  .ms-lg-3 { margin-left: 16px; }
}
