/* Application styles. Vendor/template originals remain untouched. */
:root {
    --bs-primary: #315bce;
    --bs-primary-rgb: 49, 91, 206;
}
body { min-height: 100vh; display: flex; flex-direction: column; background: var(--bg-color); }
main { width: 100%; }
.site-header { background: var(--white); }
.brand { color: var(--text-primary-light); font-weight: 750; font-size: 1.35rem; letter-spacing: -.04em; }
.brand-dot { color: #315bce; }
.nav-link { color: #374151; min-height: 44px; }
.btn { min-height: 44px; }
.btn-primary { --bs-btn-bg: #315bce; --bs-btn-border-color: #315bce; --bs-btn-hover-bg: #2448b0; --bs-btn-hover-border-color: #2448b0; }
.eyebrow { color: #315bce; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.hero { padding: 1.5rem 0; }
.hero-copy { max-width: 36rem; }
.feature-number { display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .65rem; color: #315bce; background: var(--primary-50); font-weight: 700; }
.skip-link { position: absolute; top: -100px; left: 1rem; z-index: 1000; padding: .75rem; background: #fff; }
.skip-link:focus { top: .5rem; }
:focus-visible { outline: 3px solid #315bce; outline-offset: 3px; }
p, h1, h2, h3 { overflow-wrap: anywhere; }
@media (min-width: 768px) { .hero { padding: 3rem 0; } }
