:root{
  --em-primary:#0A2A4A;
  --em-secondary:#134E78;
  --em-accent:#9BE15D;
  --em-offwhite:#F5F7FA;
  --em-warmgrey:#6B7280;
  --em-text:#0B1220;
  --em-border:#E5E7EB;
  --em-radius:1rem;
}

html{ scroll-behavior:smooth; }
body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--em-text);
  background:var(--em-offwhite);
}

h1,h2,h3,h4,h5,h6{ font-family: Sora, Inter, system-ui, sans-serif; }

.bg-surface{ background:#fff; }

.section-title{
  font-size: clamp(1.5rem, 2.8vw, 2rem);
  letter-spacing:-0.02em;
  margin-bottom:.25rem;
}

.eyebrow{
  font-size:.9rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--em-warmgrey);
}

.navbar-glass{
  background: rgba(245,247,250,.85);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(229,231,235,.8);
}
.navbar .nav-link{ color:var(--em-text); }
.navbar .nav-link:hover{ color:var(--em-secondary); }
.brand-logo{ width:auto; }

.btn-accent{
  --bs-btn-padding-x: 1rem;
  --bs-btn-padding-y: .6rem;
  background: var(--em-accent);
  border: 1px solid rgba(11,18,32,.08);
  color: var(--em-text);
  border-radius: 999px;
  box-shadow: 0 8px 18px rgba(10,42,74,.08);
}
.btn-accent:hover{
  background: #90d957;
  color: var(--em-text);
}
.btn-accent:focus{ box-shadow: 0 0 0 .25rem rgba(155,225,93,.35); }

.btn-outline-primary{
  border-radius: 999px;
  border-color: rgba(10,42,74,.25);
  color: var(--em-primary);
}
.btn-outline-primary:hover{
  background: var(--em-primary);
  border-color: var(--em-primary);
}

.hero-section{
  position:relative;
  overflow:hidden;
}
.hero-section::before{
  content:"";
  position:absolute;
  inset:-120px -80px auto -80px;
  height:520px;
  background:
    radial-gradient(420px 220px at 20% 40%, rgba(155,225,93,.22), transparent 60%),
    radial-gradient(520px 320px at 85% 10%, rgba(19,78,120,.14), transparent 60%);
  pointer-events:none;
}
.hero-section::after{
  content:"";
  position:absolute;
  inset:0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='240' viewBox='0 0 420 240'%3E%3Cg fill='none' stroke='%230A2A4A' stroke-opacity='0.07' stroke-width='1'%3E%3Cpath d='M20 40 C120 40 120 200 220 200 S320 40 400 40'/%3E%3Cpath d='M20 120 C120 120 120 220 220 220 S320 120 400 120'/%3E%3Cpath d='M20 200 C120 200 120 60 220 60 S320 200 400 200'/%3E%3C/g%3E%3Cg fill='%230A2A4A' fill-opacity='0.07'%3E%3Ccircle cx='20' cy='40' r='2'/%3E%3Ccircle cx='220' cy='200' r='2'/%3E%3Ccircle cx='400' cy='40' r='2'/%3E%3Ccircle cx='20' cy='120' r='2'/%3E%3Ccircle cx='220' cy='220' r='2'/%3E%3Ccircle cx='400' cy='120' r='2'/%3E%3Ccircle cx='20' cy='200' r='2'/%3E%3Ccircle cx='220' cy='60' r='2'/%3E%3Ccircle cx='400' cy='200' r='2'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 520px 320px;
  background-position: right -80px top 40px;
  background-repeat:no-repeat;
  pointer-events:none;
}

.py-lg-6{ padding-top:4.5rem!important; padding-bottom:4.5rem!important; }

.card-soft{
  border: 1px solid rgba(229,231,235,.9);
  border-radius: calc(var(--em-radius) * .9);
  background: rgba(245,247,250,.55);
}

.card-elevated{
  border: 1px solid rgba(229,231,235,.9);
  border-radius: var(--em-radius);
  background: #fff;
  box-shadow: 0 24px 48px rgba(10,42,74,.10);
}

.icon-chip{
  width:42px;
  height:42px;
  border-radius: 14px;
  display:grid;
  place-items:center;
  border:1px solid rgba(10,42,74,.12);
  background: rgba(19,78,120,.06);
  color: var(--em-secondary);
}

.callout{
  border:1px solid rgba(155,225,93,.35);
  background: rgba(155,225,93,.14);
}

.step-number{
  width:34px;
  height:34px;
  border-radius: 12px;
  display:grid;
  place-items:center;
  background: rgba(19,78,120,.08);
  border:1px solid rgba(10,42,74,.10);
  font-weight:600;
  color: var(--em-primary);
}

.flow-diagram{
  border:1px solid rgba(229,231,235,.9);
  background: rgba(245,247,250,.65);
}
.flow-node{
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.node-dot{
  width:10px;
  height:10px;
  margin-top:6px;
  border-radius:999px;
  background: var(--em-accent);
  border: 2px solid rgba(11,18,32,.12);
}
.flow-line{
  height:18px;
  margin:10px 0 10px 4px;
  border-left: 2px dashed rgba(10,42,74,.18);
}

.form-control, .form-check-input{
  border-radius: 14px;
  border-color: rgba(107,114,128,.25);
}
.form-control:focus{
  border-color: rgba(19,78,120,.35);
  box-shadow: 0 0 0 .25rem rgba(19,78,120,.15);
}

.footer{
  border-top: 1px solid rgba(229,231,235,.85);
  background: rgba(245,247,250,.8);
}

.quote{
  position:relative;
  overflow:hidden;
}
.quote::after{
  content:"";
  position:absolute;
  inset:auto -80px -80px auto;
  width:260px;
  height:260px;
  border-radius: 999px;
  background: rgba(155,225,93,.18);
  filter: blur(0px);
}
