/* Load Inter webfont to avoid system-dependent differences */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* Centralized styles for legal pages (public + user area) */

/* Public pages: apply Inter font and background when body has class 'legal' */
body.legal {
  background: #f8f9fa;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Shared components */
:root { --brand-primary:#6db33f; --brand-primary-dark:#5a9e35; }
.topband { background: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-dark)); color:#fff; padding:1.25rem 0; }
.card { border:none; box-shadow:0 2px 10px rgba(0,0,0,0.08); border-radius:12px; }
a.btn-link { color:#2d6a1f; }
a.btn-link:hover { color:#1f4d17; }
.container-narrow { max-width: 900px; }

/* Typography for legal content blocks */
.content-body :is(h1,h2,h3,h4,h5,h6) { color:#2d3748 !important; }
.content-body h1 { font-size: 1.85rem !important; font-weight: 700 !important; margin: 0 0 .75rem 0 !important; }
.content-body h2 { font-size: 1.5rem !important; font-weight: 700 !important; margin: 1.25rem 0 .5rem 0 !important; }
.content-body h3 { font-size: 1.25rem !important; font-weight: 600 !important; margin: 1rem 0 .5rem 0 !important; }
.content-body h4, .content-body h5, .content-body h6 { font-size: 1.15rem !important; font-weight: 700 !important; margin: 1rem 0 .5rem 0 !important; }
.content-body p, .content-body li { color:#4a5568; font-size: 1rem; line-height: 1.65; }
.content-body, .content-body * { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important; }

.legal-normalize .content-body p > strong:only-child,
.legal-normalize .content-body p > b:only-child,
.legal-normalize .content-body p > span:only-child > strong:only-child,
.legal-normalize .content-body p > span:only-child > b:only-child,
.legal-normalize .content-body p > strong:only-child > span:only-child,
.legal-normalize .content-body p > b:only-child > span:only-child,
.legal-normalize .content-body p > span:only-child > strong:only-child > span:only-child,
.legal-normalize .content-body p > span:only-child > b:only-child > span:only-child,
.legal-normalize .content-body p:has(> strong):not(:has(> em, > a, > small, > img)):not(:has(> strong + *)) {
  display: block;
  color: #2d3748 !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  margin-top: 1.25rem !important;
  margin-bottom: .5rem !important;
}

/* Case 3: strong/b as first child (even if not only child), common in legal texts */
.legal-normalize .content-body p > strong:first-child,
.legal-normalize .content-body p > b:first-child,
.legal-normalize .content-body p > span:first-child > strong:first-child,
.legal-normalize .content-body p > span:first-child > b:first-child {
  display: block !important;
  color: #2d3748 !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  margin-top: 1.25rem !important;
  margin-bottom: .5rem !important;
}

/* Headings authored inside list items or generic divs */
.legal-normalize .content-body li > strong:first-child,
.legal-normalize .content-body li > b:first-child,
.legal-normalize .content-body div > strong:first-child,
.legal-normalize .content-body div > b:first-child {
  display: block !important;
  color: #2d3748 !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  margin-top: 1.25rem !important;
  margin-bottom: .5rem !important;
}

/* In Datenschutz/Terms (legal-normalize), treat h3 as section heading like Impressum */
.legal-normalize .content-body h3 {
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  margin: 1.25rem 0 .5rem 0 !important;
  color: #2d3748 !important;
}

.footer { color:#6c757d; font-size:0.9rem; }
@media (max-width: 768px){ .container-narrow{ padding:0 1rem; } }
.logo { height:42px; border-radius:12px; background:#ffffff; padding:6px; }
