:root{
  --km-font-heading: 'Manrope', sans-serif;
  --km-font-body: 'Inter', sans-serif;

  --km-primary: #204090;
  --km-accent: #0c8c34;
  --km-dark: #111827;
  --km-text: #1f2937;
  --km-border: #e5e7eb;
  --km-bg-light: #f8fafc;
}

html{
  height: 100%;
  font-size: 16px;
  scroll-behavior: smooth;
}

body{
  min-height: 100%;
  margin: 0;
  padding: 0;
  font-family: var(--km-font-body);
  color: var(--km-text);
  background: #fff;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.km-siteWrap{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.km-siteMain,
#primary,
main.site-main,
main{
  flex: 1 0 auto;
  width: 100%;
}

.km-siteFooter{
  margin-top: auto;
}

h1, h2, h3, h4, h5, h6{
  margin-top: 0;
  font-family: var(--km-font-heading);
  color: var(--km-dark);
  line-height: 1.2;
  letter-spacing: -0.02em;
  font-weight: 700;
}

p, li, input, textarea, select, button, a{
  font-family: var(--km-font-body);
}

h1{
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 800;
}

h2{
  font-size: clamp(1.7rem, 3vw, 2.8rem);
  font-weight: 800;
}

h3{
  font-size: clamp(1.35rem, 2.2vw, 2rem);
  font-weight: 700;
}

h4{
  font-size: 1.125rem;
  font-weight: 700;
}

p{
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: 1rem;
  color: var(--km-text);
}

a{
  color: inherit;
  text-decoration: none;
}