:root {
  --fv-green: #2e8b3d;
  --fv-green-dark: #24702f;
  --bs-link-color-rgb: 36, 112, 47;
  --bs-link-hover-color-rgb: 27, 85, 36;
}

body { background: #f5f7f4; }

.content-width { max-width: 760px; }

.site-header {
  background: #fff;
  border-bottom: 3px solid var(--fv-green);
}
.logo { height: 64px; width: auto; display: block; }

.site-footer {
  background: #fff;
  border-top: 1px solid #e3e7e1;
  color: #5c665a;
}

.btn-primary {
  --bs-btn-bg: var(--fv-green);
  --bs-btn-border-color: var(--fv-green);
  --bs-btn-hover-bg: var(--fv-green-dark);
  --bs-btn-hover-border-color: var(--fv-green-dark);
  --bs-btn-active-bg: var(--fv-green-dark);
  --bs-btn-active-border-color: var(--fv-green-dark);
  --bs-btn-focus-shadow-rgb: 46, 139, 61;
}
.btn-outline-primary {
  --bs-btn-color: var(--fv-green-dark);
  --bs-btn-border-color: #b9cdb9;
  --bs-btn-hover-bg: #eaf4ea;
  --bs-btn-hover-color: var(--fv-green-dark);
  --bs-btn-hover-border-color: var(--fv-green);
  --bs-btn-active-bg: var(--fv-green);
  --bs-btn-active-border-color: var(--fv-green);
  --bs-btn-focus-shadow-rgb: 46, 139, 61;
}
.form-control:focus, .form-check-input:focus {
  border-color: var(--fv-green);
  box-shadow: 0 0 0 .25rem rgba(46, 139, 61, .2);
}
.form-check-input:checked {
  background-color: var(--fv-green);
  border-color: var(--fv-green);
}

legend {
  font-size: 1.15rem;
  font-weight: 600;
  padding-bottom: .4rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid #e3e7e1;
}
fieldset + fieldset { margin-top: 2rem; }

/* Schrittanzeige */
.steps {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  color: #7a8478;
}
.steps li { display: flex; align-items: center; gap: .5rem; }
.steps .active { color: #1f2a1e; font-weight: 600; }
.steps .done { color: var(--fv-green-dark); }
.step-no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: #dfe5dd;
  font-size: .875rem;
  font-weight: 600;
}
.steps .active .step-no, .steps .done .step-no { background: var(--fv-green); color: #fff; }

/* Beitragsauswahl */
.beitrag-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(5.5rem, 1fr));
  gap: .5rem;
}
.beitrag-grid .btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: .7rem;
  font-weight: 600;
}

.mandat {
  background: #f5f7f4;
  border-radius: .5rem;
  padding: 1rem 1.25rem;
  font-size: .875rem;
}
.mandat p { margin-bottom: .6rem; }

altcha-widget {
  --altcha-max-width: 100%;
  --altcha-border-radius: .375rem;
  --altcha-color-border: #dee2e6;
}

.danke-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: var(--fv-green);
  color: #fff;
  font-size: 2rem;
}

/* Touch-Bedienung: Tippflächen von mindestens 44px */
@media (pointer: coarse), (max-width: 767.98px) {
  .form-control, .btn { min-height: 3rem; }
  .form-check { padding-left: 2.25rem; min-height: 1.75rem; }
  .form-check .form-check-input {
    width: 1.5rem;
    height: 1.5rem;
    margin-top: 0;
    margin-left: -2.25rem;
  }
  altcha-widget input[type="checkbox"] { width: 1.5rem; height: 1.5rem; }
  .footer-links a { display: inline-block; padding-block: .75rem; }
}

@media (max-width: 767.98px) {
  .logo { height: 48px; }
  .site-header .container { padding-block: .5rem !important; }
  h1.h2 { font-size: 1.5rem; }
  .steps { gap: .25rem 1rem; font-size: .875rem; }
  .step-no { width: 1.5rem; height: 1.5rem; font-size: .8rem; }
  fieldset + fieldset { margin-top: 1.5rem; }
}
