/* FinanzLogic Platform v3 — 2026-06-07 */
/**
 * FinanzLogic — ONE design token source (canonical)
 * WP + Rechner must import this file only; do not duplicate values elsewhere.
 */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");

:root {
  /* ── Brand ── */
  --fl-primary: #183b63;
  --fl-secondary: #5b8fa8;
  --fl-accent: #cfe5ee;
  --fl-navy: var(--fl-primary);
  --fl-navy-deep: #0f2847;
  --fl-blue: var(--fl-secondary);
  --fl-teal: var(--fl-secondary);
  --fl-primary-hover: var(--fl-navy-deep);
  --fl-grade-a: #059669;
  --fl-grade-bg: #ecfdf5;

  /* ── Surfaces ── */
  --fl-bg: #f7f9fc;
  --fl-surface: #ffffff;
  --fl-surface-muted: #eef3f8;
  --fl-border: #dce4ec;
  --fl-border-strong: #b8c5d3;

  /* ── Text ── */
  --fl-text: #0f172a;
  --fl-text-body: #334155;
  --fl-text-muted: #64748b;
  --fl-text-subtle: #94a3b8;
  --fl-text-inverse: #ffffff;

  /* ── Typography — Inter only ── */
  --fl-font: "Inter", sans-serif;
  --fl-h1: clamp(1.75rem, 3.5vw, 2.25rem);
  --fl-h2: clamp(1.375rem, 2.5vw, 1.625rem);
  --fl-h3: 1.125rem;
  --fl-body: 1rem;
  --fl-small: 0.875rem;
  --fl-xs: 0.8125rem;
  --fl-leading: 1.65;
  --fl-leading-tight: 1.25;
  --fl-read-width: 42rem;

  /* ── Layout — 1320px content column ── */
  --fl-container-width: 82.5rem;
  --fl-gutter: clamp(1.25rem, 3vw, 2.5rem);
  --fl-shell-max: calc(var(--fl-container-width) + 2 * var(--fl-gutter));
  --fl-max-width: var(--fl-container-width);
  --fl-container-max: var(--fl-container-width);

  /* ── Radius — 12px everywhere ── */
  --fl-radius: 12px;
  --fl-radius-lg: 12px;
  --fl-btn-radius: 12px;

  /* ── Shadow — one system ── */
  --fl-shadow: 0 4px 24px rgba(24, 59, 99, 0.06);
  --fl-shadow-sm: var(--fl-shadow);
  --fl-shadow-lg: var(--fl-shadow);

  --fl-card-padding: 1.25rem;
  --fl-section-y: clamp(2.5rem, 5vw, 4rem);

  /* ── Buttons ── */
  --fl-btn-primary-bg: var(--fl-primary);
  --fl-btn-primary-hover: var(--fl-navy-deep);

  /* ── Rechner calc aliases (map to canonical tokens) ── */
  --bg: var(--fl-bg);
  --surface: var(--fl-surface);
  --text: var(--fl-text);
  --text-muted: var(--fl-text-muted);
  --border: var(--fl-border);
  --accent: var(--fl-primary);
  --accent-soft: var(--fl-accent);
  --result-bg: var(--fl-surface-muted);
  --radius: var(--fl-radius);
  --max: var(--fl-container-width);

  /* ── Legacy fl2 aliases ── */
  --fl-bg-warm: var(--fl-bg);
  --fl2-navy: var(--fl-navy);
  --fl2-navy-deep: var(--fl-navy-deep);
  --fl2-bg: var(--fl-bg);
  --fl2-surface: var(--fl-surface);
  --fl2-border: var(--fl-border);
  --fl2-text: var(--fl-text);
  --fl2-text-body: var(--fl-text-body);
  --fl2-text-muted: var(--fl-text-muted);
  --fl2-font: var(--fl-font);
  --fl2-radius: var(--fl-radius);
  --fl2-radius-lg: var(--fl-radius-lg);
  --fl2-max: var(--fl-container-width);
  --fl2-h1: var(--fl-h1);
  --fl2-h2: var(--fl-h2);
  --fl2-h3: var(--fl-h3);
  --fl2-leading: var(--fl-leading);
  --fl2-section-y: var(--fl-section-y);
  --fl2-s5: 1.5rem;
  --fl2-s8: 3rem;
  --fl2-gutter: var(--fl-gutter);
  --fl2-blue-soft: var(--fl-accent);
  --fl2-teal: var(--fl-secondary);
  --fl2-teal-soft: var(--fl-accent);
  --fl2-grade-a: var(--fl-grade-a);
  --fl2-grade-bg: var(--fl-grade-bg);
  --fl2-text-inverse: #fff;
  --fl2-text-subtle: var(--fl-text-subtle);
  --fl2-small: var(--fl-small);
  --fl2-xs: var(--fl-xs);
  --fl2-body: var(--fl-body);
  --fl2-display: clamp(2rem, 4.5vw, 2.75rem);
  --fl2-narrow: 42rem;
  --fl2-s1: 0.25rem;
  --fl2-s2: 0.5rem;
  --fl2-s3: 0.75rem;
  --fl2-s4: 1rem;
  --fl2-s6: 2rem;
}


/**
 * Global reset — Astra / Gutenberg / pattern backgrounds
 */
html, body,
body.ast-desktop,
.ast-separate-container,
.site-content,
#content,
.ast-article-single,
.ast-plain-container {
  background-color: var(--fl-bg, #f7f9fc) !important;
  background-image: none !important;
}

body.home .wp-block-latest-posts,
body.page-id-64 .wp-block-latest-posts,
body.page-id-13 .wp-block-latest-posts,
body.page-id-1224 .wp-block-latest-posts,
body.page-id-1166 .wp-block-latest-posts,
body.page-id-1303 .wp-block-latest-posts,
body.page-id-1051 .wp-block-latest-posts,
body.page-id-1130 .wp-block-latest-posts,
body.parent-pageid-13 .wp-block-latest-posts,
body.parent-pageid-1224 .wp-block-latest-posts,
.fl-de-locale .wp-block-latest-posts {
  display: none !important;
}

body.fl2-page .entry-header .entry-title,
.fl2-page .entry-header .entry-title,
body.fl3-page .entry-header .entry-title,
.fl3-page .entry-header .entry-title,
body.ast-normal-title-enabled .entry-header .entry-title {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.fl2-page .site-content .ast-container,
body.fl-platform .site-content > .ast-container,
body.fl-platform.home .site-content > .ast-container,
body.fl-platform.page .site-content > .ast-container {
  max-width: var(--fl-shell-max, calc(82.5rem + 2 * clamp(1.25rem, 3vw, 2.5rem))) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--fl-gutter, clamp(1.25rem, 3vw, 2.5rem)) !important;
  padding-right: var(--fl-gutter, clamp(1.25rem, 3vw, 2.5rem)) !important;
}

.fl2-page .entry-content {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body, .entry-content, .fl2-page, .finanzlogic-scorecard-v1 {
  font-family: var(--fl-font) !important;
  -webkit-font-smoothing: antialiased;
}

.ast-article-single,
.ast-separate-container .ast-article-single {
  box-shadow: none !important;
  border: none !important;
}

.finanzlogic-scorecard-v1 > figure.wp-block-table:first-child,
.finanzlogic-scorecard-v1 > .wp-block-table:first-child {
  display: none !important;
}


/**
 * FinanzLogic Platform Header — hide Astra, sticky shell
 */
body.fl-platform #masthead,
body.fl-platform .site-header,
body.fl-platform header.site-header,
body.fl-platform .ast-mobile-header-wrap,
body.fl-platform .ast-desktop-header-content,
body.fl-platform .ast-above-header-bar,
body.fl-platform .ast-below-header-bar {
  display: none !important;
}

body.fl-platform .site-content,
body.fl-platform #content,
body.fl-platform .ast-separate-container {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Force 1400px Astra container on all platform pages */
body.fl-platform .ast-container,
body.fl-platform .site-content > .ast-container,
body.fl-platform #primary .ast-container {
  max-width: var(--fl-shell-max, calc(82.5rem + 2 * clamp(1.25rem, 3vw, 2.5rem))) !important;
  width: 100% !important;
}

body.fl-platform .site-content > .ast-container,
body.fl-platform .ast-separate-container .ast-container {
  max-width: var(--fl-shell-max, calc(82.5rem + 2 * clamp(1.25rem, 3vw, 2.5rem))) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--fl-gutter, clamp(1.25rem, 3vw, 2.5rem)) !important;
  padding-right: var(--fl-gutter, clamp(1.25rem, 3vw, 2.5rem)) !important;
}

body.fl-platform .entry-content > .wp-block-group.fl2-page,
body.fl-platform .entry-content > .wp-block-group.fl3-page,
body.fl-platform .entry-content > .wp-block-group:has(.fl2-page),
body.fl-platform .entry-content > .wp-block-group:has(.fl3-page) {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.fl-platform.parent-pageid-13 .site-content > .ast-container,
body.fl-platform.parent-pageid-1224 .site-content > .ast-container,
body.fl-platform .fl2-page .fl2-container,
body.fl-platform .fl3-page .fl3-container {
  max-width: var(--fl-shell-max, calc(82.5rem + 2 * clamp(1.25rem, 3vw, 2.5rem))) !important;
}

.fl-platform-header {
  position: sticky;
  top: 0;
  z-index: 200;
  background: var(--fl-surface, #fff);
  border-bottom: 1px solid var(--fl-border, #e2e8f0);
  box-shadow: var(--fl-shadow-sm, 0 2px 12px rgba(24, 59, 99, 0.06));
}

.fl-platform-header__bar {
  max-width: var(--fl-shell-max, calc(82.5rem + 2 * clamp(1.25rem, 3vw, 2.5rem)));
  margin: 0 auto;
  padding: 0 var(--fl-gutter, clamp(1.25rem, 3vw, 2.5rem));
  height: 4.25rem;
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.fl-platform-header__brand {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  text-decoration: none;
  color: var(--fl-primary, #183b63);
  font-weight: 700;
  font-size: 1.125rem;
  letter-spacing: -0.02em;
  flex-shrink: 0;
}

.fl-platform-header__mark {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--fl-primary, #183b63), var(--fl-secondary, #5b8fa8));
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 0.6875rem;
  font-weight: 700;
}

.fl-platform-header__nav {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex: 1;
  justify-content: center;
}

.fl-platform-header__nav a {
  padding: 0.5rem 1rem;
  text-decoration: none;
  color: var(--fl-text-muted, #64748b);
  font-size: 0.9375rem;
  font-weight: 500;
  border-radius: var(--fl-btn-radius);
  transition: color 0.15s, background 0.15s;
}

.fl-platform-header__nav a:hover {
  color: var(--fl-primary, #183b63);
  background: var(--fl-accent, #cfe5ee);
}

.fl-platform-header__nav a.is-active {
  color: var(--fl-primary, #183b63);
  font-weight: 600;
  background: var(--fl-accent, #cfe5ee);
}

.fl-platform-header__locales {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  flex-shrink: 0;
  font-size: 0.8125rem;
  font-weight: 600;
}

.fl-platform-header__locales a,
.fl-platform-header__locales span {
  padding: 0.375rem 0.5rem;
  text-decoration: none;
  color: var(--fl-text-subtle, #94a3b8);
  border-radius: 6px;
}

.fl-platform-header__locales a.is-active,
.fl-platform-header__locales span.is-active {
  color: var(--fl-primary, #183b63);
  background: var(--fl-accent, #cfe5ee);
}

.fl-platform-header__locales a:hover {
  color: var(--fl-primary, #183b63);
}

.fl-platform-header__logo {
  display: block !important;
  width: auto !important;
  object-fit: contain !important;
  object-position: left center !important;
}

@media (max-width: 900px) {
  .fl-platform-header__nav { display: none; }
  .fl-platform-header__bar { height: 3.75rem; }
}


/**
 * Global components — ONE card, ONE button
 */
.fl2-btn, .fl-ds-btn, .wp-block-button__link.wp-element-button,
button.btn-primary, a.btn-primary {
  display: inline-flex !important;
  align-items: center;
  padding: 0.625rem 1.25rem !important;
  font-family: var(--fl-font) !important;
  font-size: var(--fl-small) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border-radius: var(--fl-btn-radius) !important;
  border: none !important;
}

.fl2-btn--primary, .fl-ds-btn--primary,
.wp-block-button:not(.is-style-outline) .wp-block-button__link,
button.btn-primary, a.btn-primary {
  background: var(--fl-btn-primary-bg) !important;
  color: var(--fl-text-inverse) !important;
}

.fl2-btn--secondary, .wp-block-button.is-style-outline .wp-block-button__link {
  background: var(--fl-surface) !important;
  color: var(--fl-navy) !important;
  border: 1px solid var(--fl-border-strong) !important;
}

.fl2-category-tile, .fl2-tool-card, .fl2-cluster-panel, .fl2-spotlight,
.fl2-magazine__featured, .fl2-magazine__item, .fl2-sidebar__box,
.fl2-hero-panel, .fl-card, .fl-de-card, .fl-cluster-card, .fl-gov-card {
  background: var(--fl-surface) !important;
  border: 1px solid var(--fl-border) !important;
  border-radius: var(--fl-radius) !important;
  box-shadow: var(--fl-shadow) !important;
}

.fl2-trust-strip {
  background: var(--fl-accent, #cfe5ee) !important;
  border-bottom: 1px solid var(--fl-border) !important;
}

.fl2-grade {
  display: inline-flex;
  align-items: baseline;
  gap: 0.25rem;
  padding: 0.25rem 0.625rem;
  background: var(--fl-grade-bg);
  border: 1px solid #a7f3d0;
  border-radius: var(--fl-btn-radius);
  font-weight: 700;
  color: var(--fl-grade-a);
}


/**
 * FinanzLogic Platform V2 — unified page shell
 */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.fl2-body {
  margin: 0;
  font-family: var(--fl2-font);
  font-size: var(--fl2-body);
  line-height: var(--fl2-leading);
  color: var(--fl2-text-body);
  background: var(--fl2-bg-warm);
  -webkit-font-smoothing: antialiased;
}

/* ── Top shell ── */
.fl2-shell {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--fl2-surface);
  border-bottom: 1px solid var(--fl2-border);
}

.fl2-shell__bar {
  max-width: var(--fl2-max);
  margin: 0 auto;
  padding: 0 var(--fl2-gutter);
  height: var(--fl2-shell-h);
  display: flex;
  align-items: center;
  gap: var(--fl2-s5);
}

.fl2-shell__brand {
  display: flex;
  align-items: center;
  gap: var(--fl2-s3);
  text-decoration: none;
  color: var(--fl2-navy);
  font-weight: 700;
  font-size: 1.0625rem;
  letter-spacing: -0.025em;
  flex-shrink: 0;
}

.fl2-shell__mark {
  width: 2rem;
  height: 2rem;
  border-radius: var(--fl-radius);
  background: var(--fl2-navy);
  color: var(--fl2-text-inverse);
  display: grid;
  place-items: center;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.fl2-shell__nav {
  display: flex;
  align-items: center;
  gap: var(--fl2-s1);
  flex: 1;
  justify-content: center;
}

.fl2-shell__nav a {
  padding: var(--fl2-s2) var(--fl2-s3);
  text-decoration: none;
  color: var(--fl2-text-muted);
  font-size: var(--fl2-small);
  font-weight: 500;
  border-radius: 6px;
  transition: color 0.15s, background 0.15s;
}

.fl2-shell__nav a:hover { color: var(--fl2-navy); background: var(--fl2-blue-soft); }
.fl2-shell__nav a.is-active { color: var(--fl2-navy); font-weight: 600; }

.fl2-shell__actions {
  display: flex;
  align-items: center;
  gap: var(--fl2-s3);
  flex-shrink: 0;
}

.fl2-shell__locale {
  font-size: var(--fl2-xs);
  font-weight: 600;
  color: var(--fl2-navy);
  padding: var(--fl2-s1) var(--fl2-s2);
  border: 1px solid var(--fl2-border);
  border-radius: 6px;
  background: var(--fl2-bg);
}

.fl2-shell__cta {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1rem;
  background: var(--fl2-navy);
  color: var(--fl2-text-inverse);
  text-decoration: none;
  font-size: var(--fl2-small);
  font-weight: 600;
  border-radius: var(--fl-radius);
}

.fl2-shell__cta:hover { background: var(--fl2-navy-deep); }

/* ── Trust strip (optional, homepage + hubs) ── */
.fl2-trust-strip {
  background: var(--fl2-blue-soft);
  border-bottom: 1px solid var(--fl2-border);
}

.fl2-trust-strip__inner {
  max-width: var(--fl2-max);
  margin: 0 auto;
  padding: var(--fl2-s3) var(--fl2-gutter);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--fl2-s5) var(--fl2-s6);
}

.fl2-trust-strip__item {
  display: flex;
  align-items: center;
  gap: var(--fl2-s2);
  font-size: var(--fl2-xs);
  font-weight: 500;
  color: var(--fl2-navy);
}

.fl2-trust-strip__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--fl2-teal);
}

/* ── Sub-nav / breadcrumb bar ── */
.fl2-subnav {
  background: var(--fl2-bg);
  border-bottom: 1px solid var(--fl2-border);
}

.fl2-subnav__inner {
  max-width: var(--fl2-max);
  margin: 0 auto;
  padding: 0 var(--fl2-gutter);
  height: var(--fl2-subnav-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--fl2-s4);
}

.fl2-breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--fl2-s2);
  font-size: var(--fl2-xs);
  color: var(--fl2-text-muted);
  margin: 0;
  padding: 0;
  list-style: none;
}

.fl2-breadcrumb a { color: var(--fl2-text-muted); text-decoration: none; }
.fl2-breadcrumb a:hover { color: var(--fl2-navy); }
.fl2-breadcrumb li + li::before { content: "›"; margin-right: var(--fl2-s2); color: var(--fl2-text-subtle); }

.fl2-subnav__meta {
  font-size: var(--fl2-xs);
  color: var(--fl2-text-subtle);
}

/* ── Page container ── */
.fl2-main { min-height: 60vh; }

.fl2-container {
  max-width: var(--fl2-max);
  margin: 0 auto;
  padding: 0 var(--fl2-gutter);
}

.fl2-section {
  padding: var(--fl2-section-y) 0;
}

.fl2-section--tight { padding: var(--fl2-s8) 0; }

.fl2-section--dark {
  background: var(--fl2-surface-dark);
  color: var(--fl2-text-inverse);
}

.fl2-section--muted {
  background: var(--fl2-bg);
}

/* ── Typography helpers ── */
.fl2-eyebrow {
  font-size: var(--fl2-xs);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--fl2-teal);
  margin: 0 0 var(--fl2-s3);
}

.fl2-h1 {
  font-size: var(--fl2-display);
  font-weight: 700;
  line-height: var(--fl2-leading-tight);
  letter-spacing: -0.03em;
  color: var(--fl2-text);
  margin: 0 0 var(--fl2-s4);
}

.fl2-h2 {
  font-size: var(--fl2-h2);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--fl2-text);
  margin: 0 0 var(--fl2-s4);
}

.fl2-lead {
  font-size: 1.125rem;
  line-height: 1.55;
  color: var(--fl2-text-muted);
  margin: 0 0 var(--fl2-s5);
  max-width: var(--fl2-narrow);
}

.fl2-label {
  font-size: var(--fl2-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--fl2-text-subtle);
  margin: 0 0 var(--fl2-s3);
}

/* ── Buttons ── */
.fl2-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--fl2-s2);
  padding: 0.6875rem 1.25rem;
  font-family: inherit;
  font-size: var(--fl2-small);
  font-weight: 600;
  text-decoration: none;
  border-radius: var(--fl-radius);
  border: none;
  cursor: pointer;
  transition: background 0.15s;
}

.fl2-btn--primary { background: var(--fl2-navy); color: var(--fl2-text-inverse); }
.fl2-btn--primary:hover { background: var(--fl2-navy-deep); }
.fl2-btn--secondary { background: var(--fl2-surface); color: var(--fl2-navy); border: 1px solid var(--fl2-border-strong); }
.fl2-btn--secondary:hover { border-color: var(--fl2-navy); }
.fl2-btn--ghost { background: transparent; color: var(--fl2-navy); padding-left: 0; }
.fl2-btn-row { display: flex; flex-wrap: wrap; gap: var(--fl2-s3); align-items: center; }

/* ── Grade badge (Score) ── */
.fl2-grade {
  display: inline-flex;
  align-items: baseline;
  gap: var(--fl2-s2);
  padding: var(--fl2-s2) var(--fl2-s3);
  background: var(--fl2-grade-bg);
  border: 1px solid #a7f3d0;
  border-radius: var(--fl-radius);
  font-weight: 700;
  color: var(--fl2-grade-a);
}

.fl2-grade__score { font-size: 1.375rem; line-height: 1; }
.fl2-grade__letter { font-size: var(--fl2-small); opacity: 0.85; }

/* ── Footer ── */
.fl2-footer {
  background: var(--fl2-navy-deep);
  color: rgba(255,255,255,0.75);
  padding: var(--fl2-s8) 0 var(--fl2-s6);
  margin-top: auto;
}

.fl2-footer__grid {
  max-width: var(--fl2-max);
  margin: 0 auto;
  padding: 0 var(--fl2-gutter);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--fl2-s6);
}

@media (max-width: 768px) {
  .fl2-footer__grid { grid-template-columns: 1fr 1fr; }
  .fl2-shell__nav { display: none; }
}

.fl2-footer__col h4 {
  font-size: var(--fl2-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255,255,255,0.5);
  margin: 0 0 var(--fl2-s4);
}

.fl2-footer__col a {
  display: block;
  color: rgba(255,255,255,0.8);
  text-decoration: none;
  font-size: var(--fl2-small);
  padding: var(--fl2-s1) 0;
}

.fl2-footer__col a:hover { color: #fff; }

.fl2-footer__bottom {
  max-width: var(--fl2-max);
  margin: var(--fl2-s6) auto 0;
  padding: var(--fl2-s5) var(--fl2-gutter) 0;
  border-top: 1px solid rgba(255,255,255,0.1);
  font-size: var(--fl2-xs);
  color: rgba(255,255,255,0.45);
  text-align: center;
}


/**
 * FinanzLogic Platform V2 — layout components
 */
/* ── Split hero (Finanztip / Check24 pattern) ── */
.fl2-hero-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--fl2-s8);
  align-items: center;
  padding: var(--fl2-section-y) 0;
}

@media (max-width: 900px) {
  .fl2-hero-split { grid-template-columns: 1fr; }
}

.fl2-hero-panel {
  background: var(--fl2-surface);
  border: 1px solid var(--fl2-border);
  border-radius: var(--fl2-radius-lg);
  padding: var(--fl2-s5);
  overflow: hidden;
}

.fl2-hero-panel__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--fl2-s4);
  padding-bottom: var(--fl2-s3);
  border-bottom: 1px solid var(--fl2-border);
}

.fl2-hero-panel__title {
  font-size: var(--fl2-small);
  font-weight: 600;
  color: var(--fl2-navy);
  margin: 0;
}

.fl2-hero-panel__tabs {
  display: flex;
  gap: var(--fl2-s1);
}

.fl2-hero-panel__tab {
  padding: var(--fl2-s1) var(--fl2-s2);
  font-size: var(--fl2-xs);
  font-weight: 500;
  color: var(--fl2-text-muted);
  background: var(--fl2-bg);
  border-radius: 4px;
  border: none;
  cursor: pointer;
}

.fl2-hero-panel__tab.is-active {
  background: var(--fl2-navy);
  color: var(--fl2-text-inverse);
}

.fl2-metric-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--fl2-s3);
  margin-top: var(--fl2-s4);
}

.fl2-metric {
  text-align: center;
  padding: var(--fl2-s3);
  background: var(--fl2-bg);
  border-radius: var(--fl2-radius);
}

.fl2-metric__val {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--fl2-navy);
  line-height: 1.2;
}

.fl2-metric__lbl {
  font-size: var(--fl2-xs);
  color: var(--fl2-text-muted);
  margin-top: var(--fl2-s1);
}

/* ── Category tiles (Verivox / Check24) ── */
.fl2-category-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--fl2-s4);
}

@media (max-width: 900px) {
  .fl2-category-grid { grid-template-columns: repeat(2, 1fr); }
}

.fl2-category-tile {
  display: flex;
  flex-direction: column;
  padding: var(--fl2-s5);
  background: var(--fl2-surface);
  border: 1px solid var(--fl2-border);
  border-radius: var(--fl2-radius-lg);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s, transform 0.15s;
  min-height: 11rem;
}

.fl2-category-tile:hover {
  border-color: var(--fl2-navy);
  transform: translateY(-2px);
}

.fl2-category-tile__icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 10px;
  background: var(--fl2-blue-soft);
  color: var(--fl2-navy);
  display: grid;
  place-items: center;
  font-size: var(--fl2-xs);
  font-weight: 700;
  margin-bottom: var(--fl2-s4);
}

.fl2-category-tile__title {
  font-size: var(--fl2-h3);
  font-weight: 600;
  color: var(--fl2-text);
  margin: 0 0 var(--fl2-s2);
}

.fl2-category-tile__desc {
  font-size: var(--fl2-small);
  color: var(--fl2-text-muted);
  margin: 0 0 auto;
  line-height: 1.5;
}

.fl2-category-tile__link {
  margin-top: var(--fl2-s4);
  font-size: var(--fl2-small);
  font-weight: 600;
  color: var(--fl2-navy);
}

/* ── Asymmetric editorial row ── */
.fl2-editorial-row {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: var(--fl2-s6);
  align-items: start;
}

@media (max-width: 900px) {
  .fl2-editorial-row { grid-template-columns: 1fr; }
}

.fl2-spotlight {
  background: var(--fl2-surface);
  border: 1px solid var(--fl2-border);
  border-radius: var(--fl2-radius-lg);
  padding: var(--fl2-s5);
}

.fl2-spotlight__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: var(--fl2-s4);
}

.fl2-score-bar {
  display: flex;
  align-items: center;
  gap: var(--fl2-s3);
  padding: var(--fl2-s3) 0;
  border-bottom: 1px solid var(--fl2-border);
}

.fl2-score-bar:last-child { border-bottom: none; }

.fl2-score-bar__name {
  flex: 1;
  font-size: var(--fl2-small);
  font-weight: 500;
  color: var(--fl2-text);
}

.fl2-score-bar__track {
  flex: 0 0 8rem;
  height: 6px;
  background: var(--fl2-bg);
  border-radius: 3px;
  overflow: hidden;
}

.fl2-score-bar__fill {
  height: 100%;
  background: var(--fl2-teal);
  border-radius: 3px;
}

.fl2-score-bar__val {
  flex: 0 0 2rem;
  text-align: right;
  font-size: var(--fl2-xs);
  font-weight: 600;
  color: var(--fl2-navy);
}

/* ── Tool shelf (Rechner hub) ── */
.fl2-tool-group { margin-bottom: var(--fl2-s8); }

.fl2-tool-group__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: var(--fl2-s5);
  padding-bottom: var(--fl2-s3);
  border-bottom: 2px solid var(--fl2-navy);
}

.fl2-tool-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--fl2-s4);
}

@media (max-width: 768px) {
  .fl2-tool-grid { grid-template-columns: 1fr; }
}

.fl2-tool-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: var(--fl2-s4);
  align-items: center;
  padding: var(--fl2-s5);
  background: var(--fl2-surface);
  border: 1px solid var(--fl2-border);
  border-radius: var(--fl2-radius-lg);
}

.fl2-tool-card__icon {
  width: 3rem;
  height: 3rem;
  border-radius: 12px;
  background: var(--fl2-teal-soft);
  color: var(--fl2-teal);
  display: grid;
  place-items: center;
  font-size: var(--fl2-xs);
  font-weight: 700;
}

.fl2-tool-card__title {
  font-weight: 600;
  color: var(--fl2-text);
  margin: 0 0 var(--fl2-s1);
}

.fl2-tool-card__desc {
  font-size: var(--fl2-small);
  color: var(--fl2-text-muted);
  margin: 0;
}

/* ── Score hub dashboard ── */
.fl2-dashboard-header {
  padding: var(--fl2-s8) 0 var(--fl2-s6);
  border-bottom: 1px solid var(--fl2-border);
  background: var(--fl2-surface);
}

.fl2-cluster-dashboard {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--fl2-s5);
}

@media (max-width: 768px) {
  .fl2-cluster-dashboard { grid-template-columns: 1fr; }
}

.fl2-cluster-panel {
  padding: var(--fl2-s5);
  background: var(--fl2-surface);
  border: 1px solid var(--fl2-border);
  border-radius: var(--fl2-radius-lg);
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  min-height: 14rem;
}

.fl2-cluster-panel__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--fl2-s3);
}

.fl2-cluster-panel__title {
  font-size: var(--fl2-h3);
  font-weight: 600;
  margin: 0;
  color: var(--fl2-text);
}

.fl2-cluster-panel__count {
  font-size: var(--fl2-xs);
  color: var(--fl2-text-muted);
  margin-bottom: var(--fl2-s4);
}

.fl2-cluster-panel__featured {
  display: flex;
  align-items: center;
  gap: var(--fl2-s3);
  padding: var(--fl2-s3);
  background: var(--fl2-bg);
  border-radius: var(--fl2-radius);
  margin-bottom: var(--fl2-s4);
  font-size: var(--fl2-small);
}

/* ── DE hub: tab nav + magazine grid ── */
.fl2-tab-nav {
  display: flex;
  gap: var(--fl2-s1);
  margin-bottom: var(--fl2-s6);
  border-bottom: 1px solid var(--fl2-border);
  padding-bottom: 0;
}

.fl2-tab-nav a {
  padding: var(--fl2-s3) var(--fl2-s4);
  text-decoration: none;
  font-size: var(--fl2-small);
  font-weight: 500;
  color: var(--fl2-text-muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}

.fl2-tab-nav a.is-active {
  color: var(--fl2-navy);
  border-bottom-color: var(--fl2-navy);
  font-weight: 600;
}

.fl2-magazine {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: var(--fl2-s5);
}

@media (max-width: 900px) {
  .fl2-magazine { grid-template-columns: 1fr; }
}

.fl2-magazine__featured {
  padding: var(--fl2-s6);
  background: var(--fl2-surface);
  border: 1px solid var(--fl2-border);
  border-radius: var(--fl2-radius-lg);
  border-left: 4px solid var(--fl2-navy);
}

.fl2-magazine__list {
  display: flex;
  flex-direction: column;
  gap: var(--fl2-s3);
}

.fl2-magazine__item {
  padding: var(--fl2-s4);
  background: var(--fl2-surface);
  border: 1px solid var(--fl2-border);
  border-radius: var(--fl2-radius);
  text-decoration: none;
  color: inherit;
}

.fl2-magazine__item:hover { border-color: var(--fl2-navy); }

.fl2-tag {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.125rem 0.5rem;
  background: var(--fl2-blue-soft);
  color: var(--fl2-navy);
  border-radius: 4px;
  margin-bottom: var(--fl2-s2);
}

.fl2-sidebar {
  position: sticky;
  top: calc(var(--fl2-shell-h) + var(--fl2-s4));
}

.fl2-sidebar__box {
  padding: var(--fl2-s5);
  background: var(--fl2-surface);
  border: 1px solid var(--fl2-border);
  border-radius: var(--fl2-radius-lg);
}

.fl2-sidebar__link {
  display: block;
  padding: var(--fl2-s2) 0;
  font-size: var(--fl2-small);
  color: var(--fl2-navy);
  text-decoration: none;
  border-bottom: 1px solid var(--fl2-border);
}

.fl2-sidebar__link:last-child { border-bottom: none; }

/* ── Authority band ── */
.fl2-authority {
  padding: var(--fl2-s8) var(--fl2-gutter);
  background: var(--fl2-surface-dark);
  color: var(--fl2-text-inverse);
}

.fl2-authority__inner {
  max-width: var(--fl2-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--fl2-s8);
  align-items: center;
}

@media (max-width: 768px) {
  .fl2-authority__inner { grid-template-columns: 1fr; }
}

.fl2-authority h2 {
  font-size: var(--fl2-h2);
  font-weight: 700;
  margin: 0 0 var(--fl2-s4);
  color: #fff;
}

.fl2-authority p {
  color: rgba(255,255,255,0.75);
  margin: 0 0 var(--fl2-s5);
  line-height: 1.6;
}

.fl2-authority__stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--fl2-s4);
}

.fl2-authority__stat {
  padding: var(--fl2-s4);
  background: rgba(255,255,255,0.08);
  border-radius: var(--fl2-radius);
  border: 1px solid rgba(255,255,255,0.12);
}

.fl2-authority__stat-val {
  font-size: 1.5rem;
  font-weight: 700;
  color: #fff;
}

.fl2-authority__stat-lbl {
  font-size: var(--fl2-xs);
  color: rgba(255,255,255,0.6);
  margin-top: var(--fl2-s1);
}


/**
 * FinanzLogic Platform V3 — pastel premium layout
 */

/* ── Hero mega (homepage) ── */
.fl3-hero-mega {
  background: linear-gradient(135deg, var(--fl-accent, #cfe5ee) 0%, var(--fl-bg, #f7f9fc) 55%, #fff 100%);
  border-radius: var(--fl-radius, 12px);
  padding: clamp(3rem, 6vw, 5rem) clamp(2rem, 4vw, 3.5rem);
  margin: 2rem 0 0;
  box-shadow: var(--fl-shadow, 0 4px 24px rgba(24, 59, 99, 0.06));
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: clamp(2rem, 4vw, 4rem);
  align-items: center;
}

@media (max-width: 960px) {
  .fl3-hero-mega { grid-template-columns: 1fr; padding: 2rem 1.5rem; }
}

.fl3-hero-mega__title {
  font-size: clamp(2.25rem, 5vw, 3.25rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.03em;
  color: var(--fl-primary, #183b63);
  margin: 0 0 1.25rem;
}

.fl3-hero-mega__lead {
  font-size: clamp(1.0625rem, 2vw, 1.25rem);
  line-height: 1.6;
  color: var(--fl-text-body, #334155);
  margin: 0 0 2rem;
  max-width: 36rem;
}

.fl3-hero-mega__panel {
  background: var(--fl-surface, #fff);
  border: 1px solid var(--fl-border, #e2e8f0);
  border-radius: var(--fl-radius, 12px);
  padding: 1.75rem;
  box-shadow: var(--fl-shadow-lg, 0 8px 32px rgba(24, 59, 99, 0.08));
}

/* ── Section hierarchy ── */
.fl3-section { padding: clamp(2.5rem, 5vw, 4rem) 0; }
.fl3-section--hero { padding-top: 0; }
.fl3-section--muted { background: var(--fl-bg, #f7f9fc); border-radius: var(--fl-radius, 12px); margin: 0 -0.5rem; padding-left: 0.5rem; padding-right: 0.5rem; }
.fl3-section--accent { background: var(--fl-accent, #cfe5ee); border-radius: var(--fl-radius, 12px); }

.fl3-section__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1rem;
  margin-bottom: 2rem;
}

.fl3-section__head .fl2-h2 { margin: 0; font-size: clamp(1.5rem, 3vw, 2rem); }

.fl3-eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fl-secondary, #5b8fa8);
  margin: 0 0 0.75rem;
}

/* ── Dashboard cards ── */
.fl3-dash-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
  width: 100%;
  max-width: 100%;
}

@media (max-width: 1100px) { .fl3-dash-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .fl3-dash-grid { grid-template-columns: 1fr; } }

.fl3-dash-card {
  background: var(--fl-surface, #fff);
  border: 1px solid var(--fl-border, #e2e8f0);
  border-radius: var(--fl-radius, 12px);
  padding: 1.5rem;
  box-shadow: var(--fl-shadow, 0 4px 24px rgba(24, 59, 99, 0.06));
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: transform 0.15s, box-shadow 0.15s;
}

.fl3-dash-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--fl-shadow-lg, 0 8px 32px rgba(24, 59, 99, 0.1));
  border-color: var(--fl-secondary, #5b8fa8);
}

.fl3-dash-card__icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 10px;
  background: var(--fl-accent, #cfe5ee);
  color: var(--fl-primary, #183b63);
  display: grid;
  place-items: center;
  font-size: 0.6875rem;
  font-weight: 700;
}

.fl3-dash-card__title { font-size: 1.0625rem; font-weight: 600; color: var(--fl-text, #0f172a); margin: 0; }
.fl3-dash-card__desc { font-size: 0.875rem; color: var(--fl-text-muted, #64748b); margin: 0; line-height: 1.5; flex: 1; }
.fl3-dash-card__cta { font-size: 0.875rem; font-weight: 600; color: var(--fl-primary, #183b63); }

/* ── Spotlight rows ── */
.fl3-spotlight-row {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2rem;
  align-items: start;
}

@media (max-width: 960px) { .fl3-spotlight-row { grid-template-columns: 1fr; } }

.fl3-spotlight-card {
  background: var(--fl-surface, #fff);
  border: 1px solid var(--fl-border, #e2e8f0);
  border-radius: var(--fl-radius, 12px);
  padding: 2rem;
  box-shadow: var(--fl-shadow, 0 4px 24px rgba(24, 59, 99, 0.06));
}

.fl3-spotlight-card--featured {
  background: linear-gradient(160deg, var(--fl-primary, #183b63) 0%, #245a8a 100%);
  color: #fff;
  border: none;
}

.fl3-spotlight-card--featured .fl2-h2,
.fl3-spotlight-card--featured .fl3-eyebrow { color: #fff; }
.fl3-spotlight-card--featured .fl3-eyebrow { opacity: 0.85; }

/* ── DE dashboard ── */
.fl3-de-hero {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

@media (max-width: 960px) { .fl3-de-hero { grid-template-columns: 1fr; } }

.fl3-featured-topic {
  background: var(--fl-surface, #fff);
  border: 1px solid var(--fl-border, #e2e8f0);
  border-radius: var(--fl-radius, 12px);
  padding: 2rem;
  box-shadow: var(--fl-shadow-lg, 0 8px 32px rgba(24, 59, 99, 0.08));
}

.fl3-quick-tools {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.fl3-quick-tool {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem;
  background: var(--fl-surface, #fff);
  border: 1px solid var(--fl-border, #e2e8f0);
  border-radius: var(--fl-radius, 12px);
  text-decoration: none;
  color: inherit;
  box-shadow: var(--fl-shadow-sm, 0 2px 12px rgba(24, 59, 99, 0.04));
}

.fl3-quick-tool:hover { border-color: var(--fl-secondary, #5b8fa8); }

.fl3-quick-tool__label { font-weight: 600; color: var(--fl-primary, #183b63); }
.fl3-quick-tool__meta { font-size: 0.8125rem; color: var(--fl-text-muted, #64748b); }

/* ── Score grade cards ── */
.fl3-grade-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
  width: 100%;
  max-width: 100%;
}

@media (max-width: 1100px) { .fl3-grade-grid { grid-template-columns: repeat(2, 1fr); } }

.fl3-grade-card {
  background: var(--fl-surface, #fff);
  border: 1px solid var(--fl-border, #e2e8f0);
  border-radius: var(--fl-radius, 12px);
  padding: 1.75rem;
  box-shadow: var(--fl-shadow, 0 4px 24px rgba(24, 59, 99, 0.06));
  text-align: center;
}

.fl3-grade-card__avg {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--fl-primary, #183b63);
  line-height: 1;
}

.fl3-grade-card__cluster { font-size: 0.9375rem; font-weight: 600; margin: 0.75rem 0 0.25rem; }
.fl3-grade-card__meta { font-size: 0.8125rem; color: var(--fl-text-muted, #64748b); }

/* ── Methodik authority ── */
.fl3-methodik-hero {
  background: linear-gradient(135deg, var(--fl-primary, #183b63) 0%, #245a8a 100%);
  color: #fff;
  border-radius: var(--fl-radius, 12px);
  padding: clamp(2.5rem, 5vw, 4rem);
  margin: 2rem 0;
  box-shadow: var(--fl-shadow-lg, 0 8px 32px rgba(24, 59, 99, 0.15));
}

.fl3-methodik-hero h1 { color: #fff; font-size: clamp(1.75rem, 4vw, 2.5rem); margin: 0 0 1rem; }
.fl3-methodik-hero p { color: rgba(255,255,255,0.88); font-size: 1.0625rem; max-width: 40rem; margin: 0; line-height: 1.65; }

.fl3-timeline {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin: 2.5rem 0;
}

@media (max-width: 900px) { .fl3-timeline { grid-template-columns: 1fr 1fr; } }

.fl3-timeline__step {
  background: var(--fl-surface, #fff);
  border: 1px solid var(--fl-border, #e2e8f0);
  border-radius: var(--fl-radius, 12px);
  padding: 1.5rem;
  box-shadow: var(--fl-shadow-sm, 0 2px 12px rgba(24, 59, 99, 0.04));
  position: relative;
}

.fl3-timeline__num {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--fl-accent, #cfe5ee);
  color: var(--fl-primary, #183b63);
  font-weight: 700;
  font-size: 0.875rem;
  display: grid;
  place-items: center;
  margin-bottom: 0.75rem;
}

.fl3-timeline__title { font-weight: 600; color: var(--fl-primary, #183b63); margin: 0 0 0.5rem; font-size: 0.9375rem; }
.fl3-timeline__desc { font-size: 0.8125rem; color: var(--fl-text-muted, #64748b); margin: 0; line-height: 1.5; }

.fl3-process-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
  margin: 2rem 0;
}

@media (max-width: 768px) { .fl3-process-grid { grid-template-columns: 1fr; } }

.fl3-process-block {
  background: var(--fl-surface, #fff);
  border: 1px solid var(--fl-border, #e2e8f0);
  border-radius: var(--fl-radius, 12px);
  padding: 1.75rem;
  box-shadow: var(--fl-shadow, 0 4px 24px rgba(24, 59, 99, 0.06));
}

.fl3-process-block h3 { color: var(--fl-primary, #183b63); margin: 0 0 0.75rem; font-size: 1.0625rem; }
.fl3-process-block p { margin: 0; font-size: 0.9375rem; color: var(--fl-text-body, #334155); line-height: 1.6; }

.fl3-methodik-body {
  background: var(--fl-surface, #fff);
  border: 1px solid var(--fl-border, #e2e8f0);
  border-radius: var(--fl-radius, 12px);
  padding: 2rem 2.5rem;
  margin-top: 2.5rem;
  box-shadow: var(--fl-shadow-sm, 0 2px 12px rgba(24, 59, 99, 0.04));
}

.fl3-methodik-body .wp-block-heading { color: var(--fl-primary, #183b63); }
.fl3-methodik-body .wp-block-table { border-radius: var(--fl-radius, 12px); overflow: hidden; }

.fl3-trust-band {
  background: var(--fl-primary, #183b63);
  color: #fff;
  border-radius: var(--fl-radius, 12px);
  padding: 2.5rem;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2rem;
  align-items: center;
  box-shadow: var(--fl-shadow-lg, 0 8px 32px rgba(24, 59, 99, 0.15));
}

@media (max-width: 768px) { .fl3-trust-band { grid-template-columns: 1fr; } }

.fl3-trust-band h2 { color: #fff; margin: 0 0 0.75rem; font-size: 1.5rem; }
.fl3-trust-band p { color: rgba(255,255,255,0.85); margin: 0; line-height: 1.6; }

.fl3-container { max-width: var(--fl-max-width, 87.5rem); margin: 0 auto; padding: 0 var(--fl-gutter, clamp(1.25rem, 3vw, 2.5rem)); }


/**
 * Global tables
 */
.entry-content .wp-block-table,
.finanzlogic-scorecard-v1 .wp-block-table,
.finanzlogic-score-hub-v1 .wp-block-table {
  overflow-x: auto;
  margin: 1.5rem 0;
  border: 1px solid var(--fl-border);
  border-radius: var(--fl-radius);
}

.entry-content .wp-block-table table,
.finanzlogic-scorecard-v1 table,
.finanzlogic-score-hub-v1 table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fl-small);
  background: var(--fl-surface);
}

.entry-content .wp-block-table th,
.finanzlogic-scorecard-v1 th,
.finanzlogic-score-hub-v1 th {
  background: var(--fl-surface-muted) !important;
  font-weight: 600 !important;
  padding: 0.625rem 0.875rem !important;
  border-bottom: 1px solid var(--fl-border-strong) !important;
  text-align: left !important;
}

.entry-content .wp-block-table td,
.finanzlogic-scorecard-v1 td,
.finanzlogic-score-hub-v1 td {
  padding: 0.625rem 0.875rem !important;
  border-bottom: 1px solid var(--fl-border) !important;
}

.entry-content .wp-block-table tbody tr:nth-child(even) td {
  background: var(--fl-bg);
}


/**
 * Global article layout — narrow read width for plain articles only.
 * Platform pages (.fl2-page / .fl3-page) must NOT inherit 42rem constraint.
 */

/* Default: readable article column (non-platform legacy only) */
.single-post .entry-content,
.page .entry-content {
  max-width: var(--fl-read-width);
  margin-left: auto;
  margin-right: auto;
  line-height: var(--fl-leading);
}

/* Platform: full container — never narrow column */
body.fl-platform.page .entry-content,
body.fl-platform.single-post .entry-content {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* P0: platform pages inside entry-content — full platform width */
body.fl-platform .entry-content:has(.fl2-page),
body.fl-platform .entry-content:has(.fl3-page),
body.fl-platform .entry-content:has(.finanzlogic-homepage-v3),
body.fl-platform .entry-content:has(.finanzlogic-de-hub-v3),
body.fl-platform .entry-content:has(.finanzlogic-score-hub-v3),
body.fl-platform .entry-content:has(.finanzlogic-methodik-v3),
body.fl-platform .entry-content:has(.finanzlogic-scorecard-v1),
body.fl-platform .entry-content:has(.finanzlogic-cluster-v3),
.page .entry-content:has(.fl2-page),
.page .entry-content:has(.fl3-page),
.single-post .entry-content:has(.finanzlogic-scorecard-v1) {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Astra blocks layout — direct children capped at ~672px; override for platform groups */
body.fl-platform .entry-content[data-ast-blocks-layout] > .wp-block-group.fl2-page,
body.fl-platform .entry-content[data-ast-blocks-layout] > .wp-block-group.fl3-page,
body.fl-platform .entry-content[data-ast-blocks-layout] > .wp-block-group:has(.fl2-page),
body.fl-platform .entry-content[data-ast-blocks-layout] > .wp-block-group:has(.fl3-page),
.entry-content[data-ast-blocks-layout] > .wp-block-group.fl2-page,
.entry-content[data-ast-blocks-layout] > .wp-block-group.fl3-page {
  max-width: var(--fl-max-width, 87.5rem) !important;
  width: 100% !important;
}

/* Gutenberg wrapper — fills entry-content */
.entry-content > .wp-block-group.fl2-page,
.entry-content > .wp-block-group.fl3-page,
.entry-content > .wp-block-group:has(.fl2-page),
.entry-content > .wp-block-group:has(.fl3-page) {
  max-width: var(--fl-max-width, 87.5rem) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* DE cluster / hub child pages — full width shell */
body.parent-pageid-1224 .entry-content,
body.parent-pageid-1224 .site-content > .ast-container,
body.fl-platform:has(.finanzlogic-scorecard-v1) .site-content > .ast-container,
body.fl-platform:has(.finanzlogic-scorecard-v1) .entry-content[data-ast-blocks-layout] > * {
  max-width: var(--fl-max-width, 87.5rem) !important;
  width: 100% !important;
}

body.parent-pageid-13 .site-content > .ast-container,
body.parent-pageid-1224 .site-content > .ast-container {
  max-width: var(--fl-max-width, 87.5rem) !important;
  width: 100% !important;
}

body.parent-pageid-13 .entry-content > .wp-block-group,
body.parent-pageid-13 .entry-content > .finanzlogic-cluster-v3 {
  max-width: var(--fl-max-width, 87.5rem) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--fl-gutter, clamp(1.25rem, 3vw, 2.5rem)) !important;
  padding-right: var(--fl-gutter, clamp(1.25rem, 3vw, 2.5rem)) !important;
}

.single-post .entry-content > h2,
.page .entry-content > h2 {
  margin-top: 2.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--fl-border);
}

.entry-content blockquote,
.trust-box, .disclaimer-box {
  background: var(--fl-surface-muted) !important;
  border: 1px solid var(--fl-border) !important;
  border-left: 3px solid var(--fl-navy) !important;
  border-radius: var(--fl-radius) !important;
  padding: 1rem 1.25rem !important;
  margin: 1.5rem 0 !important;
}

@media (min-width: 992px) {
  .ast-right-sidebar #secondary,
  .ast-left-sidebar #secondary {
    display: none !important;
  }
}


/**
 * Global score surfaces — dashboard styling (legacy; skip when .fl-text-first-v1 inside)
 */
.finanzlogic-scorecard-v1,
.finanzlogic-score-hub-v1 {
  max-width: var(--fl-max-width, 87.5rem) !important;
  width: 100% !important;
  margin: 0 auto;
  padding: 0 var(--fl-gutter, clamp(1.25rem, 3vw, 2.5rem));
  box-sizing: border-box;
}

.finanzlogic-scorecard-v1:not(:has(.fl-text-first-v1)) > h1.wp-block-heading {
  font-size: clamp(1.75rem, 3vw, 2.25rem) !important;
  color: var(--fl-primary, #183b63) !important;
  margin-bottom: 0.5rem !important;
}

.finanzlogic-scorecard-v1:not(:has(.fl-text-first-v1)) > p:first-of-type {
  font-size: 1.125rem;
  color: var(--fl-text-muted);
  padding: 1.25rem 1.5rem;
  background: var(--fl-accent, #cfe5ee);
  border-radius: var(--fl-radius, 12px);
  margin: 1rem 0 2rem !important;
}

.finanzlogic-scorecard-v1:not(:has(.fl-text-first-v1)) .wp-block-table,
.finanzlogic-scorecard-v1:not(:has(.fl-text-first-v1)) figure.wp-block-table {
  background: var(--fl-surface, #fff) !important;
  border: 1px solid var(--fl-border) !important;
  border-radius: var(--fl-radius, 12px) !important;
  box-shadow: var(--fl-shadow-sm) !important;
  overflow: hidden;
  margin: 1.5rem 0 !important;
}

.finanzlogic-scorecard-v1:not(:has(.fl-text-first-v1)) .wp-block-table table {
  width: 100% !important;
  border-collapse: collapse !important;
}

.finanzlogic-scorecard-v1:not(:has(.fl-text-first-v1)) .wp-block-table th {
  background: var(--fl-primary, #183b63) !important;
  color: #fff !important;
  padding: 0.875rem 1rem !important;
  font-size: 0.875rem !important;
  text-align: left !important;
}

.finanzlogic-scorecard-v1:not(:has(.fl-text-first-v1)) .wp-block-table td {
  padding: 0.75rem 1rem !important;
  border-bottom: 1px solid var(--fl-border) !important;
}

.finanzlogic-scorecard-v1:not(:has(.fl-text-first-v1)) .wp-block-table tbody tr:nth-child(even) td {
  background: var(--fl-bg, #f7f9fc) !important;
}

.finanzlogic-scorecard-v1:not(:has(.fl-text-first-v1)) > h2,
.finanzlogic-scorecard-v1:not(:has(.fl-text-first-v1)) > h3 {
  margin-top: 2rem !important;
  margin-bottom: 0.75rem !important;
  color: var(--fl-primary, #183b63) !important;
}

.fl2-score-bar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 0;
  border-bottom: 1px solid var(--fl-border);
  text-decoration: none;
  color: inherit;
}

.fl2-score-bar__fill {
  height: 100%;
  background: var(--fl-secondary, #5b8fa8);
}

.fl2-authority {
  background: var(--fl-navy-deep) !important;
}

.fl2-section--muted {
  background: var(--fl-bg) !important;
}

.fl3-grade-grid {
  overflow: hidden;
}

.fl3-grade-card {
  min-width: 0;
  overflow: hidden;
}


/**
 * Cluster hub pages under /de/ — V3 shell styling (CSS-only wrap)
 */
body.parent-pageid-13 .entry-content {
  max-width: none !important;
  width: 100% !important;
}

body.parent-pageid-13 .entry-content > .wp-block-group,
body.parent-pageid-13 .entry-content > div {
  max-width: var(--fl-max-width, 87.5rem);
  margin-left: auto;
  margin-right: auto;
}

body.parent-pageid-13 .entry-content:not(:has(.fl-text-first-v1)) .wp-block-columns,
body.parent-pageid-13 .entry-content:not(:has(.fl-text-first-v1)) .fl-de-card,
body.parent-pageid-13 .entry-content:not(:has(.fl-text-first-v1)) .fl-cluster-card,
body.parent-pageid-13 .entry-content:not(:has(.fl-text-first-v1)) .wp-block-group.is-style-default {
  background: var(--fl-surface, #fff) !important;
  border: 1px solid var(--fl-border, #dce4ec) !important;
  border-radius: var(--fl-radius, 12px) !important;
  box-shadow: var(--fl-shadow-sm, 0 2px 12px rgba(24, 59, 99, 0.04)) !important;
  padding: 1.25rem !important;
  margin-bottom: 1.25rem !important;
}

body.parent-pageid-13 .entry-content:not(:has(.fl-text-first-v1)) .wp-block-button__link {
  border-radius: var(--fl-radius) !important;
  background: var(--fl-primary, #183b63) !important;
}

body.parent-pageid-13 .entry-content:not(:has(.fl-text-first-v1)) h1.wp-block-heading {
  font-size: clamp(1.75rem, 3vw, 2.25rem) !important;
  color: var(--fl-primary, #183b63) !important;
  margin-bottom: 1rem !important;
}

body.parent-pageid-13 .entry-content:not(:has(.fl-text-first-v1)) h2.wp-block-heading {
  color: var(--fl-primary, #183b63) !important;
  margin-top: 2rem !important;
}


/**
 * P1 Visual Polish — contrast, logo, methodik card spacing
 */

/* ── Header: official brand logo ── */
.fl-platform-header__brand {
  gap: 0;
  min-width: 0;
}

.fl-platform-header__mark {
  display: none !important;
}

.fl-platform-header__logo {
  display: block;
  width: auto;
  object-fit: contain;
  object-position: left center;
}

.fl-platform-header__brand-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ── Trust band: high contrast on navy ── */
.fl3-trust-band h2 {
  color: #ffffff !important;
  font-size: clamp(1.625rem, 2.5vw, 2.125rem) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.02em;
}

.fl3-trust-band p,
.fl3-trust-band__lead {
  color: #ffffff !important;
  opacity: 1 !important;
  font-size: 1.0625rem !important;
  line-height: 1.65 !important;
  max-width: 36rem;
}

.fl3-trust-band .fl2-authority__stat-val {
  color: #ffffff !important;
  font-weight: 700;
}

.fl3-trust-band .fl2-authority__stat-lbl {
  color: rgba(255, 255, 255, 0.94) !important;
  font-size: 0.875rem;
}

.fl3-trust-band__stats {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
  align-items: center;
}

/* ── Score spotlight featured card ── */
.fl3-spotlight-card--featured .fl2-h2,
.fl3-spotlight-card--featured h2 {
  color: #ffffff !important;
  font-weight: 700 !important;
}

.fl3-spotlight-card--featured .fl3-eyebrow {
  color: rgba(255, 255, 255, 0.92) !important;
  opacity: 1 !important;
}

.fl3-spotlight-card--featured p,
.fl3-spotlight-card--featured .fl3-spotlight-card__lead {
  color: rgba(255, 255, 255, 0.96) !important;
  opacity: 1 !important;
  font-size: 1.0625rem !important;
  line-height: 1.65 !important;
  margin: 0 0 1.5rem !important;
}

.fl3-spotlight-card--featured .fl2-btn--secondary {
  background: #ffffff !important;
  color: var(--fl-primary, #183b63) !important;
  border: 2px solid #ffffff !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.fl3-spotlight-card--featured .fl2-btn--secondary:hover {
  background: var(--fl-accent, #cfe5ee) !important;
  border-color: var(--fl-accent, #cfe5ee) !important;
}

/* ── Methodik timeline cards — breathing room ── */
.fl3-timeline {
  gap: 1.25rem;
}

.fl3-timeline__step {
  padding: 2rem 1.75rem !important;
  min-height: 9.5rem;
  display: flex;
  flex-direction: column;
}

.fl3-timeline__num {
  margin-bottom: 1rem;
}

.fl3-timeline__title {
  font-size: 1.0625rem !important;
  margin: 0 0 0.625rem !important;
  line-height: 1.3;
}

.fl3-timeline__desc {
  font-size: 0.875rem !important;
  line-height: 1.55 !important;
  margin: 0 !important;
  flex: 1;
}


/**
 * Platform footer — ONE footer across WP + static Rechner
 */
body.fl-platform #colophon,
body.fl-platform .site-footer,
body.fl-platform footer.site-footer,
body.fl-platform .ast-small-footer,
body.fl-platform .ast-footer-overlay,
body.fl-calc-unified .fl2-mini-footer {
  display: none !important;
}

.fl-platform-footer {
  margin-top: auto;
  background: var(--fl-surface, #fff);
  border-top: 1px solid var(--fl-border, #dce4ec);
  color: var(--fl-text-muted, #64748b);
  font-family: var(--fl-font);
  font-size: var(--fl-xs, 0.8125rem);
}

.fl-platform-footer__bar {
  max-width: var(--fl-max-width, 87.5rem);
  margin: 0 auto;
  padding: var(--fl-section-y, clamp(2.5rem, 5vw, 3rem)) var(--fl-gutter, clamp(1.25rem, 3vw, 2.5rem));
  display: grid;
  gap: 1.5rem;
}

.fl-platform-footer__top {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
}

.fl-platform-footer__brand {
  font-weight: 700;
  font-size: 1rem;
  color: var(--fl-navy, #183b63);
  letter-spacing: -0.02em;
}

.fl-platform-footer__tagline {
  margin: 0.375rem 0 0;
  max-width: 22rem;
  line-height: 1.5;
}

.fl-platform-footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
}

.fl-platform-footer__nav:empty {
  display: none;
}

.fl-platform-footer__nav a {
  color: var(--fl-text-body, #334155);
  text-decoration: none;
  font-weight: 500;
  font-size: 0.875rem;
}

.fl-platform-footer__nav a:hover {
  color: var(--fl-navy, #183b63);
}

.fl-platform-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--fl-border, #dce4ec);
}

.fl-platform-footer__legal a {
  color: var(--fl-text-muted, #64748b);
  text-decoration: none;
}

.fl-platform-footer__legal a:hover {
  color: var(--fl-navy, #183b63);
}

.fl-platform-footer__copy {
  margin: 0;
  font-size: 0.75rem;
  color: var(--fl-text-subtle, #94a3b8);
}

@media (max-width: 640px) {
  .fl-platform-footer__top {
    flex-direction: column;
  }
}

/* Visibility lock — beat legacy premium-shell inline hide rules on WP pages */
body.fl-platform:has(:is(.finanzlogic-platform-premium, .finanzlogic-score-hub-premium, .finanzlogic-de-hub-premium, .fl-text-first-v1)) footer.fl-platform-footer,
body:has(.finanzlogic-platform-premium) footer.fl-platform-footer,
body.fl-platform footer.fl-platform-footer,
body.fl-calc-unified footer.fl-platform-footer {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  overflow: visible !important;
  opacity: 1 !important;
  margin-top: 2rem !important;
  padding: 0 !important;
}

body.fl-platform footer.fl-platform-footer .fl-platform-footer__bar,
body.fl-calc-unified footer.fl-platform-footer .fl-platform-footer__bar {
  display: grid !important;
  visibility: visible !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

/* Full-bleed footer on static Rechner — same width as WP pages */
body.fl-calc-unified footer.fl-platform-footer,
body.fl-rechner-hub-premium footer.fl-platform-footer {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  box-sizing: border-box;
}

/* Beat WP/Astra global link color bleed into footer */
footer.fl-platform-footer .fl-platform-footer__nav a {
  color: var(--fl-text-body, #334155) !important;
  text-decoration: none !important;
}

footer.fl-platform-footer .fl-platform-footer__legal a {
  color: var(--fl-text-muted, #64748b) !important;
  text-decoration: none !important;
}

footer.fl-platform-footer .fl-platform-footer__nav a:hover,
footer.fl-platform-footer .fl-platform-footer__legal a:hover {
  color: var(--fl-navy, #183b63) !important;
}


/**
 * Platform Unification — ONE width, background, card, button, spacing
 */

/* ── ONE background ── */
html body.fl-platform,
body.fl-platform,
body.fl-platform .site,
body.fl-platform .site-content,
body.fl-calc-unified {
  background: var(--fl-bg, #f7f9fc) !important;
}

/* Scorecard — keep platform background */
body.fl-platform .finanzlogic-scorecard-v1 {
  background: transparent !important;
}

/* ── ONE container width — kill nested Astra padding ── */
body.fl-platform .site-content > .ast-container > #primary,
body.fl-platform .site-content > .ast-container #primary.content-area,
body.fl-platform .site-content > .ast-container article.ast-article-single,
body.fl-platform .site-content > .ast-container .site-main {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.fl-platform.page .entry-content,
body.fl-platform.single-post .entry-content {
  max-width: none !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

body.fl-platform .entry-content[data-ast-blocks-layout] > * {
  max-width: 100% !important;
  width: 100% !important;
}

/* Article / Über Uns — platform prose shell (skip text-first pages) */
body.fl-platform .entry-content:not(:has(.fl-text-first-v1)) > h1,
body.fl-platform .entry-content:not(:has(.fl-text-first-v1)) > .wp-block-heading:first-child {
  font-size: var(--fl-h1) !important;
  color: var(--fl-navy) !important;
  margin-top: var(--fl-section-y, clamp(2rem, 4vw, 3rem)) !important;
  margin-bottom: 1rem !important;
  line-height: var(--fl-leading-tight) !important;
}

body.fl-platform .entry-content:not(:has(.fl-text-first-v1)) > h2,
body.fl-platform .entry-content:not(:has(.fl-text-first-v1)) > .wp-block-heading {
  font-size: var(--fl-h2) !important;
  color: var(--fl-navy) !important;
  margin-top: 2.5rem !important;
  margin-bottom: 0.75rem !important;
  padding-top: 0.5rem;
  border-top: 1px solid var(--fl-border);
}

body.fl-platform .entry-content:not(:has(.fl-text-first-v1)) > p,
body.fl-platform .entry-content:not(:has(.fl-text-first-v1)) > ul,
body.fl-platform .entry-content:not(:has(.fl-text-first-v1)) > ol,
body.fl-platform .entry-content:not(:has(.fl-text-first-v1)) > .wp-block-paragraph,
body.fl-platform .entry-content:not(:has(.fl-text-first-v1)) > .wp-block-list {
  font-size: var(--fl-body);
  line-height: var(--fl-leading);
  color: var(--fl-text-body);
  max-width: none !important;
}

/* ONE card system on article trust/disclaimer blocks */
body.fl-platform .entry-content .trust-box,
body.fl-platform .entry-content .disclaimer-box,
body.fl-platform .entry-content blockquote,
body.fl-platform .entry-content .wp-block-group.is-style-callout {
  background: var(--fl-surface) !important;
  border: 1px solid var(--fl-border) !important;
  border-left: 3px solid var(--fl-navy) !important;
  border-radius: var(--fl-radius) !important;
  box-shadow: var(--fl-shadow-sm) !important;
  padding: var(--fl-card-padding) !important;
  margin: 1.5rem 0 !important;
}

/* Scorecard full width inside primary */
body.fl-platform .finanzlogic-scorecard-v1 {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.fl-platform .finanzlogic-scorecard-v1 .wp-block-table,
body.fl-platform .finanzlogic-scorecard-v1 figure.wp-block-table {
  border-radius: var(--fl-radius) !important;
  box-shadow: var(--fl-shadow) !important;
}

/* Calculator width — handled in rechner-calc.css + tokens-enforce.css */

/* Spacing rhythm */
body.fl-platform .entry-content > * + * {
  margin-top: 0;
}

body.fl-platform .fl3-section,
body.fl-platform .fl2-section {
  padding-top: var(--fl-section-y);
  padding-bottom: var(--fl-section-y);
}


/**
 * Token enforcement — beats child theme + inline legacy overrides.
 * Loaded last in bundle.
 */
body.fl-platform,
body.fl-calc-unified {
  --fl-font: "Inter", sans-serif !important;
  --fl-radius: 12px !important;
  --fl-radius-lg: 12px !important;
  --fl-btn-radius: 12px !important;
  --fl2-radius: 12px !important;
  --fl-shadow: 0 4px 24px rgba(24, 59, 99, 0.06) !important;
  --fl-shadow-sm: var(--fl-shadow) !important;
  --fl-shadow-lg: var(--fl-shadow) !important;
  --fl-container-width: 82.5rem !important;
  --fl-max-width: var(--fl-container-width) !important;
  --fl2-max: var(--fl-container-width) !important;
  --max: var(--fl-container-width) !important;
  --fl-bg: #f7f9fc !important;
  --fl-primary: #183b63 !important;
  --fl-secondary: #5b8fa8 !important;
  --fl-accent: #cfe5ee !important;
  --fl-surface: #ffffff !important;
}

html,
body.fl-platform,
body.fl-calc-unified,
body.fl-platform .entry-content,
body.fl-platform .fl-platform-header,
body.fl-platform .fl-platform-footer,
body.fl-calc-unified main,
body.fl-calc-unified .fl-platform-header,
body.fl-calc-unified .fl-platform-footer {
  font-family: "Inter", sans-serif !important;
}

/* ── Container 1320px ── */
body.fl-platform #primary,
body.fl-calc-unified main {
  max-width: var(--fl-container-width, 82.5rem) !important;
  width: min(100% - 2 * var(--fl-gutter), var(--fl-container-width, 82.5rem)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.fl-platform .site-content > .ast-container {
  max-width: var(--fl-shell-max, calc(82.5rem + 2 * clamp(1.25rem, 3vw, 2.5rem))) !important;
}

.fl-platform-header__bar,
body.fl-calc-unified .fl-calc-subnav__inner {
  max-width: var(--fl-shell-max, calc(82.5rem + 2 * clamp(1.25rem, 3vw, 2.5rem))) !important;
}

/* ── Cards 12px + one shadow ── */
.fl3-dash-card,
.fl3-grade-card,
.fl2-category-tile,
.fl2-tool-card,
.fl2-cluster-panel,
.fl2-hero-panel,
.fl-card,
body.fl-calc-unified .calculator-card,
body.fl-calc-unified fieldset,
body.fl-calc-unified .calc-panel,
body.fl-calc-unified .result-box,
body.fl-calc-unified .rechner-card,
.finanzlogic-scorecard-v1 .wp-block-table {
  border-radius: var(--fl-radius, 12px) !important;
  box-shadow: var(--fl-shadow) !important;
}

.fl3-dash-card,
.fl2-tool-card,
.fl2-category-tile {
  background: var(--fl-surface, #fff) !important;
}

/* ── Buttons one token ── */
.fl2-btn,
.fl2-btn--primary,
.wp-block-button__link,
button.btn-primary,
a.btn-primary,
body.fl-calc-unified .btn-calc,
body.fl-calc-unified button,
body.fl-calc-unified input[type="submit"],
body.fl-calc-unified .btn-primary {
  font-family: "Inter", sans-serif !important;
  border-radius: var(--fl-btn-radius, 12px) !important;
  background: var(--fl-btn-primary-bg, #183b63) !important;
  color: var(--fl-text-inverse, #fff) !important;
  box-shadow: none !important;
}

body.fl-calc-unified main,
body.fl-calc-unified main#main {
  max-width: var(--fl-container-width, 82.5rem) !important;
  width: min(100% - 2 * var(--fl-gutter, clamp(1.25rem, 3vw, 2.5rem)), var(--fl-container-width, 82.5rem)) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

body.fl-calc-unified input,
body.fl-calc-unified select {
  border-radius: var(--fl-radius, 12px) !important;
}


/**
 * P0 Visual Rescue — unified page framework, cards, spacing, header
 */

/* ── Trust strip (WP + Rechner) ── */
.fl-vr-trust-strip,
.fl2-trust-strip {
  background: var(--fl-surface, #fff);
  border-bottom: 1px solid var(--fl-border, #dce4ec);
  border-top: 1px solid var(--fl-border, #dce4ec);
}

.fl-vr-trust-strip__inner,
.fl2-trust-strip__inner {
  max-width: var(--fl-shell-max, calc(82.5rem + 2 * clamp(1.25rem, 3vw, 2.5rem)));
  margin: 0 auto;
  padding: 0.875rem var(--fl-gutter, clamp(1.25rem, 3vw, 2.5rem));
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  align-items: center;
  justify-content: center;
}

.fl-vr-trust-strip__item,
.fl2-trust-strip__item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--fl-text-body, #334155);
}

.fl-vr-trust-strip__dot,
.fl2-trust-strip__dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--fl-secondary, #5b8fa8);
  flex-shrink: 0;
}

/* ── Page framework rhythm ── */
.fl3-page .fl3-section--hero {
  padding-top: clamp(1.5rem, 3vw, 2.5rem);
  padding-bottom: clamp(1.5rem, 3vw, 2rem);
}

.fl3-page .fl3-section {
  padding-top: clamp(2.5rem, 5vw, 3.5rem);
  padding-bottom: clamp(2.5rem, 5vw, 3.5rem);
}

.fl3-page .fl3-section--hero + .fl-vr-trust-strip {
  margin-bottom: clamp(1.5rem, 3vw, 2rem);
}

.fl3-dash-grid,
.fl2-tool-grid,
.fl-vr-card-grid {
  gap: clamp(1rem, 2vw, 1.5rem);
}

/* ── Unified card system ── */
.fl3-dash-card,
.fl2-tool-card,
.fl-vr-card,
body.fl-calc-unified .calculator-card {
  padding: 1.5rem !important;
  border-radius: var(--fl-radius, 12px) !important;
  box-shadow: var(--fl-shadow) !important;
  border: 1px solid var(--fl-border, #dce4ec) !important;
  background: var(--fl-surface, #fff) !important;
  min-height: 11.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.fl3-dash-card__title,
.fl2-tool-card__title,
.fl-vr-card__title {
  font-size: 1.0625rem !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  margin: 0 !important;
  color: var(--fl-text, #0f172a) !important;
}

.fl3-dash-card__desc,
.fl2-tool-card__desc,
.fl-vr-card__desc {
  font-size: 0.875rem !important;
  line-height: 1.55 !important;
  color: var(--fl-text-muted, #64748b) !important;
  margin: 0 !important;
  flex: 1;
}

.fl3-dash-card__cta,
.fl-vr-card__cta {
  margin-top: auto;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--fl-primary, #183b63);
}

.fl2-tool-card {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  min-height: auto;
  gap: 1rem;
}

.fl2-tool-card > div {
  flex: 1;
  min-width: 12rem;
}

.fl2-tool-card .fl2-btn--primary {
  margin-left: auto;
  flex-shrink: 0;
}

/* ── Why / value grid ── */
.fl-vr-why-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}

@media (max-width: 900px) {
  .fl-vr-why-grid {
    grid-template-columns: 1fr;
  }
}

.fl-vr-why-card {
  background: var(--fl-surface, #fff);
  border: 1px solid var(--fl-border);
  border-radius: var(--fl-radius, 12px);
  padding: 1.5rem;
  box-shadow: var(--fl-shadow);
}

.fl-vr-why-card h3 {
  margin: 0 0 0.5rem;
  font-size: 1.0625rem;
  color: var(--fl-primary, #183b63);
}

.fl-vr-why-card p {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--fl-text-body);
}

/* ── Teaser row (Rechner + Ratgeber) ── */
.fl-vr-teaser-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}

@media (max-width: 768px) {
  .fl-vr-teaser-row {
    grid-template-columns: 1fr;
  }
}

.fl-vr-teaser {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.75rem;
  border-radius: var(--fl-radius, 12px);
  border: 1px solid var(--fl-border);
  background: var(--fl-surface);
  box-shadow: var(--fl-shadow);
  text-decoration: none;
  color: inherit;
  transition: transform 0.15s, box-shadow 0.15s;
}

.fl-vr-teaser:hover {
  transform: translateY(-2px);
  box-shadow: var(--fl-shadow-lg, var(--fl-shadow));
}

.fl-vr-teaser__label {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fl-secondary);
}

.fl-vr-teaser h3 {
  margin: 0;
  font-size: 1.375rem;
  color: var(--fl-primary);
}

.fl-vr-teaser p {
  margin: 0;
  flex: 1;
  color: var(--fl-text-body);
  line-height: 1.6;
}

/* ── Methodik compact teaser ── */
.fl-vr-methodik-teaser {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: clamp(1.75rem, 3vw, 2.25rem);
  background: var(--fl-accent, #cfe5ee);
  border-radius: var(--fl-radius, 12px);
  border: 1px solid var(--fl-border);
}

.fl-vr-methodik-teaser h2 {
  margin: 0 0 0.5rem;
  font-size: clamp(1.25rem, 2.5vw, 1.625rem);
  color: var(--fl-primary);
}

.fl-vr-methodik-teaser p {
  margin: 0;
  max-width: 36rem;
  line-height: 1.6;
  color: var(--fl-text-body);
}

/* ── Experten / Transparenz ── */
.fl-vr-expert-band {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

@media (max-width: 768px) {
  .fl-vr-expert-band {
    grid-template-columns: 1fr;
  }
}

.fl-vr-expert-link {
  display: block;
  padding: 1.25rem 1.5rem;
  border-radius: var(--fl-radius, 12px);
  border: 1px solid var(--fl-border);
  background: var(--fl-surface);
  text-decoration: none;
  color: inherit;
  box-shadow: var(--fl-shadow-sm, var(--fl-shadow));
}

.fl-vr-expert-link strong {
  display: block;
  color: var(--fl-primary);
  margin-bottom: 0.35rem;
}

.fl-vr-expert-link span {
  font-size: 0.875rem;
  color: var(--fl-text-muted);
}

/* ── Header + CTA polish ── */
.fl-platform-header__bar {
  min-height: 4.25rem;
  height: auto;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}

.fl-platform-header__nav a {
  min-height: 2.5rem;
  display: inline-flex;
  align-items: center;
}

.fl2-btn--primary,
.fl2-btn.fl2-btn--primary {
  min-height: 2.75rem;
  padding: 0.6875rem 1.375rem !important;
  font-weight: 600 !important;
  transition: background 0.15s, transform 0.12s;
}

.fl2-btn--primary:hover {
  background: var(--fl-navy-deep, #0f2847) !important;
  transform: translateY(-1px);
}

.fl2-btn--secondary:hover {
  background: var(--fl-accent, #cfe5ee) !important;
}

@media (max-width: 900px) {
  .fl-platform-header__bar {
    min-height: 3.5rem;
    height: 3.5rem;
    gap: 0.5rem;
    justify-content: space-between;
  }

  .fl-platform-header__nav {
    display: none !important;
    flex: 0 !important;
    width: 0 !important;
    overflow: hidden;
  }

  .fl-platform-header__brand {
    flex: 0 1 auto;
    min-width: 0;
  }

  .fl-platform-header__locales {
    margin-left: auto;
    flex-shrink: 0;
    gap: 0.125rem;
  }

  .fl-platform-header__locales a,
  .fl-platform-header__locales span {
    padding: 0.3125rem 0.4375rem;
    font-size: 0.75rem;
  }
}

@media (max-width: 480px) {
  .fl-platform-header__bar {
    padding-left: max(0.875rem, var(--fl-gutter, 1rem));
    padding-right: max(0.875rem, var(--fl-gutter, 1rem));
  }

  .fl-platform-header__locales a:nth-child(n + 3),
  .fl-platform-header__locales span:nth-child(n + 3) {
    display: none;
  }
}

body.fl-platform .fl2-btn-row,
body.fl-calc-unified .fl2-btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  align-items: center;
}

@media (max-width: 480px) {
  body.fl-platform .fl2-btn-row .fl2-btn,
  body.fl-calc-unified .fl2-btn-row .fl2-btn {
    flex: 1 1 100%;
    min-width: 0;
    justify-content: center;
    text-align: center;
  }
}

/* ── Hide blog / news on DE hub ── */
.fl2-page--de .wp-block-latest-posts,
.fl2-page--de .fl-de-news,
.fl2-page--de .fl2-magazine,
.finanzlogic-de-hub-v3 .wp-block-latest-posts {
  display: none !important;
}

/* ── Rechner hub framework ── */
body.fl-calc-unified .fl2-main {
  padding-top: 0;
}

body.fl-calc-unified .fl-vr-page-hero {
  padding: clamp(2rem, 4vw, 3rem) 0 clamp(1.5rem, 3vw, 2rem);
}

body.fl-calc-unified .fl-vr-page-hero .fl2-h1 {
  margin-bottom: 0.75rem;
}

body.fl-calc-unified .fl2-search-bar,
body.fl-calc-unified .fl2-cross-sell {
  display: none !important;
}

.fl-vr-card-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 768px) {
  .fl-vr-card-grid--2 {
    grid-template-columns: 1fr;
  }
}

.fl-vr-disclaimer {
  text-align: center;
  padding: 2rem 0 1rem;
  font-size: 0.8125rem;
  color: var(--fl-text-muted);
  max-width: 48rem;
  margin: 0 auto;
}

.fl3-hero-mega--rescue .fl3-hero-mega__panel--stats {
  box-shadow: var(--fl-shadow);
}

/* ── Calculator layout + trust shell (P0.1) ── */
body.fl-calc-unified .fl-calc-layout {
  display: grid;
  grid-template-columns: minmax(0, 17.5rem) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
  max-width: 52rem;
  margin: 0 auto;
}

@media (max-width: 768px) {
  body.fl-calc-unified .fl-calc-layout {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

.fl-calc-trust-shell {
  background: var(--fl-accent, #cfe5ee);
  border: 1px solid var(--fl-border, #dce4ec);
  border-radius: var(--fl-radius, 12px);
  padding: 1.125rem 1.25rem;
  box-shadow: var(--fl-shadow);
}

.fl-calc-trust-shell__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.fl-calc-trust-shell__item {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--fl-text-body, #334155);
}

.fl-calc-trust-shell__icon {
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 50%;
  background: var(--fl-primary, #183b63);
  color: #fff;
  font-size: 0.625rem;
  font-weight: 700;
  display: grid;
  place-items: center;
  margin-top: 0.125rem;
}

body.fl-calc-unified .calculator-card {
  min-height: auto !important;
  display: block !important;
  gap: 0 !important;
  padding: clamp(1.25rem, 3vw, 1.75rem) !important;
}

body.fl-calc-unified #calculator > h2.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

body.fl-calc-unified main > article > header h1 {
  font-size: clamp(1.625rem, 4vw, 2rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em;
  margin: 0 0 0.625rem !important;
  color: var(--fl-primary, #183b63) !important;
}

body.fl-calc-unified main > article > header .intro {
  font-size: 0.9375rem !important;
  line-height: 1.65 !important;
  color: var(--fl-text-muted, #64748b) !important;
  margin: 0 0 1rem !important;
  max-width: 42rem;
}

body.fl-calc-unified main > article > header .cluster-nav {
  font-size: 0.8125rem !important;
  line-height: 1.5 !important;
  margin: 0 0 1.5rem !important;
  color: var(--fl-text-muted, #64748b) !important;
}

body.fl-calc-unified .calculator-card fieldset {
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  max-width: none !important;
}

body.fl-calc-unified .calculator-card legend {
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--fl-primary, #183b63) !important;
  margin: 0 0 1.25rem !important;
  padding: 0 !important;
  width: 100%;
}

body.fl-calc-unified .calculator-card .field {
  margin-bottom: 1.125rem !important;
}

body.fl-calc-unified .calculator-card .field:last-of-type {
  margin-bottom: 1.5rem !important;
}

body.fl-calc-unified .calculator-card label {
  display: block !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  color: var(--fl-text, #0f172a) !important;
  margin-bottom: 0.375rem !important;
  line-height: 1.35 !important;
}

body.fl-calc-unified .calculator-card .hint,
body.fl-calc-unified .calculator-card .field-help,
body.fl-calc-unified .calculator-card .helper-text {
  display: block !important;
  font-size: 0.8125rem !important;
  font-weight: 400 !important;
  color: var(--fl-text-muted, #64748b) !important;
  margin-top: 0.375rem !important;
  line-height: 1.45 !important;
}

body.fl-calc-unified .calculator-card input[type="text"],
body.fl-calc-unified .calculator-card input[type="number"],
body.fl-calc-unified .calculator-card input[type="email"],
body.fl-calc-unified .calculator-card input[type="tel"],
body.fl-calc-unified .calculator-card select,
body.fl-calc-unified .calculator-card textarea {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 2.875rem !important;
  padding: 0.6875rem 0.875rem !important;
  font-size: 1rem !important;
  font-family: var(--fl-font, "Inter", sans-serif) !important;
  color: var(--fl-text, #0f172a) !important;
  background: var(--fl-surface, #fff) !important;
  border: 1px solid var(--fl-border, #dce4ec) !important;
  border-radius: var(--fl-radius, 12px) !important;
  box-shadow: none !important;
  transition: border-color 0.15s, box-shadow 0.15s;
  appearance: none;
}

body.fl-calc-unified .calculator-card select {
  padding-right: 2.25rem !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2364748b' d='M1.5 1.5 6 6l4.5-4.5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 0.875rem center !important;
  background-size: 0.75rem !important;
}

body.fl-calc-unified .calculator-card input:focus,
body.fl-calc-unified .calculator-card select:focus,
body.fl-calc-unified .calculator-card textarea:focus {
  outline: none !important;
  border-color: var(--fl-primary, #183b63) !important;
  box-shadow: 0 0 0 3px rgba(24, 59, 99, 0.12) !important;
}

body.fl-calc-unified .calculator-card input::placeholder {
  color: #94a3b8 !important;
}

body.fl-calc-unified .calculator-card .btn-calc,
body.fl-calc-unified .calculator-card button[type="submit"] {
  width: 100% !important;
  min-height: 3rem !important;
  margin-top: 0.25rem !important;
  padding: 0.75rem 1.25rem !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  font-family: var(--fl-font, "Inter", sans-serif) !important;
  color: var(--fl-text-inverse, #fff) !important;
  background: var(--fl-btn-primary-bg, #183b63) !important;
  border: none !important;
  border-radius: var(--fl-btn-radius, 12px) !important;
  cursor: pointer !important;
  box-shadow: var(--fl-shadow) !important;
  transition: background 0.15s, transform 0.12s;
}

body.fl-calc-unified .calculator-card .btn-calc:hover,
body.fl-calc-unified .calculator-card button[type="submit"]:hover {
  background: var(--fl-navy-deep, #0f2847) !important;
  transform: translateY(-1px);
}

body.fl-calc-unified .calculator-card .results,
body.fl-calc-unified .calculator-card .result-box {
  margin-top: 1.5rem !important;
  padding: 1.25rem !important;
  background: var(--fl-bg, #f7f9fc) !important;
  border: 1px solid var(--fl-border, #dce4ec) !important;
  border-radius: var(--fl-radius, 12px) !important;
  box-shadow: none !important;
  max-width: none !important;
}

body.fl-calc-unified .calculator-card .results h3,
body.fl-calc-unified .calculator-card .result-box h3 {
  margin: 0 0 1rem !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--fl-text-muted, #64748b) !important;
}

body.fl-calc-unified .calculator-card .result-primary {
  margin-bottom: 1rem !important;
  padding-bottom: 1rem !important;
  border-bottom: 1px solid var(--fl-border, #dce4ec) !important;
}

body.fl-calc-unified .calculator-card .result-primary .value {
  font-size: clamp(1.5rem, 4vw, 1.875rem) !important;
  font-weight: 700 !important;
  color: var(--fl-primary, #183b63) !important;
  line-height: 1.15 !important;
}

body.fl-calc-unified .calculator-card .result-primary .label {
  font-size: 0.875rem !important;
  color: var(--fl-text-muted, #64748b) !important;
  margin-bottom: 0.25rem !important;
}

body.fl-calc-unified .calculator-card dl.result-grid {
  display: grid !important;
  gap: 0.625rem !important;
  margin: 0 !important;
}

body.fl-calc-unified .calculator-card .result-grid div {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  gap: 1rem !important;
  font-size: 0.9375rem !important;
  padding: 0.375rem 0 !important;
}

body.fl-calc-unified .calculator-card .result-grid dt {
  margin: 0 !important;
  font-weight: 500 !important;
  color: var(--fl-text-muted, #64748b) !important;
}

body.fl-calc-unified .calculator-card .result-grid dd {
  margin: 0 !important;
  font-weight: 600 !important;
  color: var(--fl-text, #0f172a) !important;
  text-align: right !important;
}

body.fl-calc-unified .calculator-card .error-msg,
body.fl-calc-unified .calculator-card .field-error {
  margin-top: 1rem !important;
  padding: 0.75rem 0.875rem !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  color: #7a2e2e !important;
  background: #fdf2f2 !important;
  border: 1px solid #e8c4c4 !important;
  border-radius: var(--fl-radius, 12px) !important;
  line-height: 1.45 !important;
}

body.fl-calc-unified header:not(.fl-platform-header) {
  display: none !important;
}

@media (max-width: 480px) {
  body.fl-calc-unified main {
    width: min(100% - 1.75rem, var(--max, 82.5rem)) !important;
    padding-top: 1rem !important;
  }

  body.fl-calc-unified .calculator-card .result-grid div {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.125rem !important;
  }

  body.fl-calc-unified .calculator-card .result-grid dd {
    text-align: left !important;
  }

  body.fl-calc-unified .fl-vr-trust-strip__inner {
    gap: 0.5rem 0.875rem;
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
  }

  body.fl-calc-unified .fl-vr-trust-strip__item {
    font-size: 0.75rem;
  }
}



/**
 * P0.2 Rechner Product Mode — calc as financial tool, not content page.
 */
body.fl-calc-product-mode .fl-vr-trust-strip,
body.fl-calc-product-mode .fl-calc-subnav {
  display: none !important;
}

body.fl-calc-product-mode main {
  padding-top: 0.5rem !important;
  padding-bottom: 2.5rem !important;
}

body.fl-calc-product-mode .fl-calc-product {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  max-width: 42rem;
  margin: 0 auto;
}

body.fl-calc-product-mode .fl-calc-layout {
  display: contents;
}

body.fl-calc-product-mode main > article > header {
  max-width: 42rem;
  margin: 0 auto 1rem;
  text-align: left;
}

body.fl-calc-product-mode main > article > header h1 {
  margin-bottom: 0.5rem !important;
  font-size: clamp(1.375rem, 3.5vw, 1.75rem) !important;
}

body.fl-calc-product-mode main > article > header .intro {
  font-size: 0.875rem !important;
  line-height: 1.55 !important;
  margin-bottom: 0 !important;
  color: var(--fl-text-muted, #64748b) !important;
}

@media (max-width: 768px) {
  body.fl-calc-product-mode main > article > header .intro {
    display: none !important;
  }

  body.fl-calc-product-mode main > article > header {
    margin-bottom: 0.75rem;
  }

  body.fl-calc-product-mode main > article > header h1 {
    font-size: 1.25rem !important;
  }
}

body.fl-calc-product-mode #calculator {
  margin-bottom: 0 !important;
}

body.fl-calc-product-mode .calculator-card {
  order: 1;
  padding: clamp(1rem, 2.5vw, 1.5rem) !important;
}

body.fl-calc-product-mode .fl-calc-trust-shell {
  order: 2;
  padding: 1rem 1.125rem;
}

body.fl-calc-product-mode .fl-calc-trust-shell__item {
  font-size: 0.8125rem;
}

body.fl-calc-product-mode .fl-calc-cluster-nav {
  max-width: 42rem;
  margin: 1.75rem auto 0;
  padding: 1rem 0 0;
  border-top: 1px solid var(--fl-border, #dce4ec);
}

body.fl-calc-product-mode .fl-calc-cluster-nav__links {
  margin: 0 !important;
  font-size: 0.8125rem !important;
  line-height: 1.6 !important;
  color: var(--fl-text-muted, #64748b) !important;
}

body.fl-calc-product-mode .fl-calc-cluster-nav a {
  color: var(--fl-primary, #183b63) !important;
  text-decoration: none;
  font-weight: 500;
}

body.fl-calc-product-mode .fl-calc-cluster-nav a:hover {
  text-decoration: underline;
}

/* Result-first emphasis */
body.fl-calc-product-mode .calculator-card .results {
  margin-top: 1.25rem !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
}

body.fl-calc-product-mode .calculator-card .results:not([hidden]) {
  margin-top: 1.5rem !important;
  padding: 1.5rem 1.375rem !important;
  background: linear-gradient(180deg, #eef3f8 0%, #ffffff 100%) !important;
  border: 2px solid var(--fl-primary, #183b63) !important;
  border-radius: var(--fl-radius, 12px) !important;
  box-shadow: 0 8px 32px rgba(24, 59, 99, 0.12) !important;
}

body.fl-calc-product-mode .calculator-card .results:not([hidden]) h3 {
  color: var(--fl-primary, #183b63) !important;
  font-size: 0.8125rem !important;
  margin-bottom: 1.125rem !important;
}

body.fl-calc-product-mode .calculator-card .results:not([hidden]) .result-primary {
  border-bottom-color: rgba(24, 59, 99, 0.15) !important;
  padding-bottom: 1.125rem !important;
  margin-bottom: 1.125rem !important;
}

body.fl-calc-product-mode .calculator-card .results:not([hidden]) .result-primary .value {
  font-size: clamp(2rem, 6vw, 2.75rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em;
}

body.fl-calc-product-mode .calculator-card .results:not([hidden]) .result-grid dd {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--fl-primary, #183b63) !important;
}

body.fl-calc-product-mode .calculator-card .btn-calc {
  margin-top: 0.5rem !important;
}

@media (min-width: 769px) {
  body.fl-calc-product-mode .fl-calc-product {
    max-width: 36rem;
  }
}

body.fl-calc-product-mode footer:not(.fl-platform-footer) {
  margin-top: 2rem;
  font-size: 0.8125rem;
  color: var(--fl-text-muted, #64748b);
}


/**
 * P0.3 Contrast & Header Rescue — all platform surfaces (WP + Rechner)
 * Logo/bar sizing: see p0-5-full-site-visual-unification.css
 */

.fl-platform-header__nav a {
  min-height: 2.5rem;
  display: inline-flex;
  align-items: center;
}

@media (max-width: 900px) {
  .fl-platform-header__bar {
    gap: 0.5rem;
    justify-content: space-between;
  }

  .fl-platform-header__nav {
    display: none !important;
    flex: 0 !important;
    width: 0 !important;
    overflow: hidden;
  }

  .fl-platform-header__brand {
    flex: 0 1 auto;
    min-width: 0;
  }

  .fl-platform-header__locales {
    margin-left: auto;
    flex-shrink: 0;
    gap: 0.125rem;
  }

  .fl-platform-header__locales a,
  .fl-platform-header__locales span {
    padding: 0.3125rem 0.4375rem;
    font-size: 0.75rem;
  }
}

@media (max-width: 480px) {
  .fl-platform-header__bar {
    padding-left: max(0.875rem, var(--fl-gutter, 1rem));
    padding-right: max(0.875rem, var(--fl-gutter, 1rem));
  }

  .fl-platform-header__locales a:nth-child(n + 3),
  .fl-platform-header__locales span:nth-child(n + 3) {
    display: none;
  }
}

/* ── 2. Rechner hub hero — white, not gray panel ── */
body.fl-calc-unified .fl-vr-page-hero {
  background: #ffffff !important;
  border-bottom: 1px solid var(--fl-border, #dce4ec);
  padding: clamp(1.25rem, 3vw, 2rem) 0 clamp(1rem, 2vw, 1.5rem) !important;
  margin: 0 !important;
}

body.fl-calc-unified .fl2-main {
  background: #ffffff;
}

body.fl-calc-unified .fl-vr-trust-strip {
  background: #ffffff !important;
  border-top: none !important;
}

/* ── 3. Text contrast — light backgrounds ── */
body.fl-platform .fl2-eyebrow,
body.fl-calc-unified .fl2-eyebrow,
body.fl-platform .fl3-eyebrow,
body.fl-calc-unified .fl3-section__head .fl3-eyebrow {
  color: var(--fl-primary, #183b63) !important;
  font-weight: 700 !important;
  opacity: 1 !important;
}

body.fl-platform .fl2-h1,
body.fl-calc-unified .fl-vr-page-hero .fl2-h1 {
  color: var(--fl-text, #0f172a) !important;
}

body.fl-platform .fl2-lead,
body.fl-calc-unified .fl-vr-page-hero .fl2-lead {
  color: var(--fl-text-body, #334155) !important;
  font-size: 1.0625rem !important;
  line-height: 1.6 !important;
  opacity: 1 !important;
}

body.fl-platform .fl-vr-trust-strip__item,
body.fl-platform .fl2-trust-strip__item,
body.fl-calc-unified .fl-vr-trust-strip__item,
body.fl-calc-unified .fl2-trust-strip__item {
  color: var(--fl-text-body, #334155) !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
}

body.fl-platform .fl-vr-trust-strip__dot,
body.fl-platform .fl2-trust-strip__dot,
body.fl-calc-unified .fl-vr-trust-strip__dot,
body.fl-calc-unified .fl2-trust-strip__dot {
  background: var(--fl-primary, #183b63) !important;
}

body.fl-calc-unified .fl2-tool-card__desc,
body.fl-platform .fl2-tool-card__desc {
  color: var(--fl-text-body, #334155) !important;
}

body.fl-platform .fl2-label,
body.fl-platform .fl2-subnav__meta {
  color: var(--fl-text-body, #475569) !important;
}

/* ── 4. Methodik hero — WCAG-readable on navy ── */
.fl3-methodik-hero,
.finanzlogic-methodik-v3 .fl3-methodik-hero,
body.fl-platform .fl3-methodik-hero {
  background: linear-gradient(135deg, #0a1f38 0%, #0f2847 35%, #183b63 70%, #1a4570 100%) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  box-shadow: 0 8px 32px rgba(10, 31, 56, 0.28) !important;
}

.fl3-methodik-hero h1,
.fl3-methodik-hero .fl2-h1,
.finanzlogic-methodik-v3 .fl3-methodik-hero h1,
body.fl-platform .fl3-methodik-hero h1,
body.fl-platform .entry-content .fl3-methodik-hero h1,
body.fl-platform .entry-content .fl3-methodik-hero .wp-block-heading {
  color: #ffffff !important;
  font-weight: 700 !important;
  border-top: none !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.fl3-methodik-hero p,
.finanzlogic-methodik-v3 .fl3-methodik-hero p,
body.fl-platform .fl3-methodik-hero p,
body.fl-platform .entry-content .fl3-methodik-hero p {
  color: #f1f5f9 !important;
  font-size: 1.0625rem !important;
  line-height: 1.65 !important;
  opacity: 1 !important;
  border-top: none !important;
}

.fl3-methodik-hero .fl3-eyebrow,
body.fl-platform .fl3-methodik-hero .fl3-eyebrow,
body.fl-platform .entry-content .fl3-methodik-hero .fl3-eyebrow {
  color: #e2e8f0 !important;
  opacity: 1 !important;
  font-weight: 700 !important;
}

body.fl-platform .entry-content .fl3-methodik-hero * {
  border-top-color: transparent !important;
}

.finanzlogic-methodik-v3 .fl2-subnav__meta {
  color: var(--fl-text-body, #475569) !important;
}


/**
 * P0.5 Full Site Visual Unification — header, hero, contrast, trust dedup, homepage shell
 */

/* ── 1. Header: single source of truth (override platform-header + polish-p1) ── */
.fl-platform-header__brand {
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  line-height: 0;
  gap: 0 !important;
  max-height: 5rem;
  overflow: hidden;
  align-items: center !important;
}

.fl-platform-header__logo,
.fl-platform-header__logo[width],
.fl-platform-header__logo[height] {
  display: block !important;
  width: auto !important;
  object-fit: contain !important;
  object-position: left center !important;
}

@media (min-width: 901px) {
  .fl-platform-header__logo,
  .fl-platform-header__logo[width],
  .fl-platform-header__logo[height] {
    height: 75px !important;
    max-height: 76px !important;
    width: auto !important;
    max-width: 256px !important;
  }

  .fl-platform-header__bar {
    height: 76px !important;
    min-height: 76px !important;
    max-height: 76px !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    box-sizing: border-box !important;
    align-items: center !important;
  }
}

.fl-platform-header__bar {
  box-sizing: border-box !important;
  align-items: center !important;
}

.fl-platform-header__brand-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 900px) {
  .fl-platform-header__brand {
    flex: 0 0 auto !important;
    min-width: 0;
    max-height: none !important;
    overflow: visible !important;
  }

  .fl-platform-header__bar {
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
  }

  .fl-platform-header__logo,
  .fl-platform-header__logo[width],
  .fl-platform-header__logo[height] {
    height: 50px !important;
    width: 170px !important;
    max-height: 54px !important;
    max-width: min(170px, 52vw) !important;
    object-fit: contain !important;
  }
}

@media (max-width: 480px) {
  .fl-platform-header__logo,
  .fl-platform-header__logo[width],
  .fl-platform-header__logo[height] {
    height: 48px !important;
    width: 164px !important;
    max-height: 52px !important;
    max-width: min(164px, 54vw) !important;
  }
}

/* ── 2. Homepage: ensure platform shell even if bundle load is delayed ── */
body.fl-platform.home .fl3-dash-grid,
body.fl-platform.page-id-64 .fl3-dash-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 1.25rem !important;
}

body.fl-platform.home .fl3-dash-card,
body.fl-platform.page-id-64 .fl3-dash-card,
body.fl-platform.home .fl-vr-card,
body.fl-platform.page-id-64 .fl-vr-card {
  display: flex !important;
  flex-direction: column !important;
  background: #fff !important;
  border: 1px solid var(--fl-border, #dce4ec) !important;
  border-radius: var(--fl-radius, 12px) !important;
  box-shadow: var(--fl-shadow, 0 4px 24px rgba(24, 59, 99, 0.06)) !important;
  padding: 1.5rem !important;
  text-decoration: none !important;
  color: inherit !important;
}

body.fl-platform.home .fl3-hero-mega,
body.fl-platform.page-id-64 .fl3-hero-mega {
  background: linear-gradient(135deg, #eef3f8 0%, #ffffff 55%, #ffffff 100%) !important;
}

body.fl-platform.home .fl3-hero-mega__lead,
body.fl-platform.page-id-64 .fl3-hero-mega__lead,
body.fl-platform.home .fl3-hero-mega__title,
body.fl-platform.page-id-64 .fl3-hero-mega__title {
  color: var(--fl-text, #0f172a) !important;
}

body.fl-platform.home .fl3-hero-mega__lead,
body.fl-platform.page-id-64 .fl3-hero-mega__lead {
  color: var(--fl-text-body, #334155) !important;
}

/* ── 3. Hero backgrounds — white / subtle, not gray panel ── */
body.fl-calc-unified .fl-vr-page-hero,
body.fl-calc-unified .fl2-main > .fl2-container > .fl-vr-page-hero {
  background: #ffffff !important;
  border-bottom: 1px solid var(--fl-border, #dce4ec);
}

body.fl-platform .fl3-section--hero,
body.fl-platform .fl-vr-page-hero {
  background: #ffffff !important;
}

body.fl-calc-unified .fl2-main {
  background: #ffffff;
}

body.fl-calc-unified .fl-vr-trust-strip {
  background: #ffffff !important;
}

/* ── 4. Text contrast — platform-wide ── */
body.fl-platform .fl2-lead,
body.fl-platform .fl3-hero-mega__lead,
body.fl-calc-unified .fl2-lead,
body.fl-platform .fl-vr-why-card p,
body.fl-platform .fl-vr-teaser p,
body.fl-platform .fl3-dash-card__desc,
body.fl-platform .fl2-tool-card__desc {
  color: var(--fl-text-body, #334155) !important;
  opacity: 1 !important;
}

body.fl-platform .fl2-eyebrow,
body.fl-platform .fl3-eyebrow,
body.fl-calc-unified .fl2-eyebrow {
  color: var(--fl-primary, #183b63) !important;
  font-weight: 700 !important;
}

body.fl-platform .fl2-h1,
body.fl-platform .fl2-h2,
body.fl-platform .fl3-hero-mega__title,
body.fl-calc-unified .fl2-h1 {
  color: var(--fl-text, #0f172a) !important;
}

body.fl-platform .fl-vr-trust-strip__item,
body.fl-platform .fl2-trust-strip__item,
body.fl-calc-unified .fl-vr-trust-strip__item {
  color: var(--fl-text-body, #334155) !important;
  font-weight: 600 !important;
}

body.fl-calc-unified .hint,
body.fl-calc-product-mode .hint {
  color: #475569 !important;
}

/* ── 5. Methodik hero — white text on navy ── */
.fl3-methodik-hero,
body.fl-platform .fl3-methodik-hero,
.finanzlogic-methodik-v3 .fl3-methodik-hero {
  background: linear-gradient(135deg, #0a1f38 0%, #0f2847 35%, #183b63 70%, #1a4570 100%) !important;
  color: #ffffff !important;
}

.fl3-methodik-hero h1,
.fl3-methodik-hero .fl2-h1,
body.fl-platform .fl3-methodik-hero h1,
body.fl-platform .entry-content .fl3-methodik-hero h1,
body.fl-platform .entry-content .fl3-methodik-hero .wp-block-heading,
body.fl-platform .entry-content .fl3-methodik-hero h1.wp-block-heading {
  color: #ffffff !important;
  border-top: none !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.fl3-methodik-hero p,
body.fl-platform .fl3-methodik-hero p,
body.fl-platform .entry-content .fl3-methodik-hero p {
  color: #f1f5f9 !important;
  opacity: 1 !important;
  border-top: none !important;
}

.fl3-methodik-hero .fl3-eyebrow,
body.fl-platform .fl3-methodik-hero .fl3-eyebrow {
  color: #e2e8f0 !important;
  opacity: 1 !important;
}

body.fl-platform .entry-content .fl3-methodik-hero * {
  border-top-color: transparent !important;
}

/* Kill platform-unify dark h1 bleed into methodik hero */
body.fl-platform .entry-content .fl3-methodik-hero h1,
body.fl-platform .entry-content .fl3-methodik-hero > h1 {
  color: #ffffff !important;
}

/* ── 6. Calc trust shell — single instance, after form ── */
body.fl-calc-product-mode .fl-calc-trust-shell:not(:last-of-type) {
  display: none !important;
}

body.fl-calc-product-mode .fl-calc-layout .fl-calc-trust-shell {
  display: none !important;
}

body.fl-calc-product-mode header:not(.fl-platform-header) {
  display: none !important;
}

body.fl-calc-unified header:not(.fl-platform-header) {
  display: none !important;
}

/* ── 7. Footer year consistency ── */
.fl-platform-footer__copy,
.fl2-mini-footer,
body.fl-calc-unified footer:not(.fl-platform-footer) {
  font-size: 0.8125rem;
}


/**
 * Platform header — DE master column alignment (/rechner/ reference).
 * Logo + locales align with hero/content column edges site-wide.
 */

:root,
body.fl-platform,
body.fl-calc-unified,
body.fl-rechner-hub-premium {
  --fl-de-content-max: 82.5rem;
  --fl-de-gutter: clamp(0.75rem, 1.25vw, 1.25rem);
  --fl-de-entry-w: calc(var(--fl-de-content-max) - 7.25rem);
  --fl-de-shell-w: min(100vw, var(--fl-de-content-max));
  --fl-de-shell-inner: calc(var(--fl-de-shell-w) - 2 * var(--fl-de-gutter));
  --fl-de-hub-w: min(
    var(--fl-de-entry-w),
    calc(var(--fl-de-shell-inner) - 3.8125rem - var(--fl-de-gutter))
  );
  --fl-de-header-inset: calc(
    max(0px, (100vw - var(--fl-de-hub-w)) / 2)
    - max(0px, (100vw - var(--fl-de-content-max)) / 2)
    + var(--fl-de-gutter)
  );
}

@media (min-width: 1320px) {
  :root,
  body.fl-platform,
  body.fl-calc-unified,
  body.fl-rechner-hub-premium {
    --fl-de-hub-w: min(var(--fl-de-entry-w), calc(100vw - 7.25rem));
  }
}

@media (min-width: 1100px) and (max-width: 1199px) {
  :root,
  body.fl-platform,
  body.fl-calc-unified,
  body.fl-rechner-hub-premium {
    --fl-de-hub-w: min(
      var(--fl-de-entry-w),
      calc(var(--fl-de-shell-inner) - 3.8125rem - 0.5 * var(--fl-de-gutter))
    );
  }
}

@media (min-width: 1024px) and (max-width: 1099px) {
  :root,
  body.fl-platform,
  body.fl-calc-unified,
  body.fl-rechner-hub-premium {
    --fl-de-hub-w: min(
      var(--fl-de-entry-w),
      calc(var(--fl-de-shell-inner) - 3.8125rem - 0.25 * var(--fl-de-gutter))
    );
  }
}

@media (max-width: 480px) {
  :root,
  body.fl-platform,
  body.fl-calc-unified,
  body.fl-rechner-hub-premium {
    --fl-de-hub-w: min(
      var(--fl-de-entry-w),
      calc(var(--fl-de-shell-inner) - 4.3125rem - var(--fl-de-gutter))
    );
  }
}

header.fl-platform-header .fl-platform-header__bar {
  max-width: var(--fl-de-content-max) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--fl-de-header-inset, var(--fl-de-gutter)) !important;
  padding-right: var(--fl-de-header-inset, var(--fl-de-gutter)) !important;
  box-sizing: border-box !important;
}

header.fl-platform-header .fl-platform-header__brand {
  margin-left: -1cm !important;
}

@media (max-width: 900px) {
  header.fl-platform-header .fl-platform-header__brand {
    margin-left: -0.5cm !important;
  }
}


/**
 * TEXT_FIRST_BASE_TEMPLATE — FinanzLogic v1
 * Simple text-first layout: white bg, 960–1100px column, no decorative UI.
 */

:root {
  --fl-tf-max: 68.75rem; /* 1100px */
  --fl-tf-min: 60rem; /* 960px */
  --fl-tf-gutter: 1.25rem;
  --fl-tf-border: 1px solid #d5dce4;
  --fl-tf-text: #0f172a;
  --fl-tf-muted: #475569;
  --fl-tf-link: #183b63;
  --fl-tf-type-h1: clamp(1.75rem, 3vw, 2rem);
  --fl-tf-type-h2: 1.25rem;
  --fl-tf-type-h3: 1.0625rem;
  --fl-tf-type-body: 1rem;
  --fl-tf-type-lead: 1.0625rem;
  --fl-tf-type-small: 0.875rem;
}

/* Page shell */
.fl-tf-page {
  background: #ffffff;
  color: var(--fl-tf-text);
  font-family: var(--fl-font, "Inter", system-ui, sans-serif);
  line-height: 1.65;
}

/* CONTENT WRAPPER — full-width white column shell */
.fl-tf-content-wrap {
  width: 100%;
  background: #ffffff;
  box-sizing: border-box;
}

.fl-tf-container {
  max-width: var(--fl-tf-max);
  width: min(100% - 2 * var(--fl-tf-gutter), var(--fl-tf-max));
  min-width: 0;
  margin: 0 auto;
  padding: 2rem 0 2.5rem;
  box-sizing: border-box;
}

/* ── Canonical page layout ── */
.fl-tf-canonical .fl-tf-container {
  padding: 2rem 0 2.5rem;
}

/* Intro: H1 + lead (no border — divider follows) */
.fl-tf-intro,
.fl-tf-hero,
.fl-tf-header {
  margin: 0 0 0;
  padding: 0;
  border: none;
}

.fl-tf-divider {
  display: block;
  width: 100%;
  height: 0;
  margin: 1.5rem 0;
  padding: 0;
  border: none;
  border-top: var(--fl-tf-border);
  background: transparent;
  overflow: visible;
}

.fl-tf-divider--before-footer {
  margin-top: 2.5rem;
  margin-bottom: 0;
}

.fl-tf-page-foot {
  margin: 0;
  padding: 0;
  border: none;
}

.fl-tf-page-foot + .fl-tf-divider--before-footer {
  margin-top: 1.5rem;
}

/* ONE card component */
.fl-tf-cards {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
}

.fl-tf-card {
  display: block;
  padding: 1rem 0;
  border-bottom: var(--fl-tf-border);
  text-decoration: none;
  color: inherit;
  background: #ffffff;
  box-shadow: none;
  border-radius: 0;
}

.fl-tf-card:last-child {
  border-bottom: none;
}

.fl-tf-card__title {
  display: block;
  font-size: var(--fl-tf-type-body, 1rem);
  font-weight: 600;
  color: var(--fl-tf-link, #183b63);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.fl-tf-card__desc {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.9375rem;
  font-weight: 400;
  color: var(--fl-tf-muted, #475569);
  text-decoration: none;
}

a.fl-tf-card:hover .fl-tf-card__title {
  color: #0f2744;
}

/* Legacy link list → same as cards (safety net) */
.fl-tf-links__list li {
  padding: 1rem 0;
}

.fl-tf-box {
  border: var(--fl-tf-border);
  border-radius: 0;
  padding: 1.25rem 1.5rem;
  background: #ffffff;
  box-shadow: none;
}

/* Header */
.fl-tf-header {
  margin-bottom: 2.5rem;
  padding-bottom: 1.5rem;
  border-bottom: var(--fl-tf-border);
}

.fl-tf-h1 {
  margin: 0 0 0.75rem;
  font-size: var(--fl-tf-type-h1, clamp(1.75rem, 3vw, 2rem));
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: var(--fl-tf-text);
}

.fl-tf-lead {
  margin: 0;
  font-size: var(--fl-tf-type-lead, 1.0625rem);
  line-height: 1.65;
  color: var(--fl-tf-muted);
  max-width: 52rem;
}

/* Content blocks */
.fl-tf-content,
main.fl-tf-content {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  margin: 0;
  padding: 0;
}

.fl-tf-section {
  margin: 0;
}

.fl-tf-h2 {
  margin: 0 0 0.75rem;
  font-size: var(--fl-tf-type-h2, 1.25rem);
  font-weight: 600;
  line-height: 1.35;
  color: var(--fl-tf-text);
}

.fl-tf-h3 {
  margin: 1.25rem 0 0.5rem;
  font-size: var(--fl-tf-type-h3, 1.0625rem);
  font-weight: 600;
  line-height: 1.4;
  color: var(--fl-tf-text);
}

.fl-tf-section__body {
  font-size: 1rem;
  color: var(--fl-tf-text);
}

.fl-tf-section__body p {
  margin: 0 0 1rem;
}

.fl-tf-section__body p:last-child {
  margin-bottom: 0;
}

/* Simple 1px bordered box */
.fl-tf-box {
  border: var(--fl-tf-border);
  border-radius: 0;
  padding: 1.25rem 1.5rem;
  background: #ffffff;
  box-shadow: none;
}

/* Link lists */
.fl-tf-links {
  margin-top: 0.5rem;
}

.fl-tf-links__title {
  margin: 0 0 0.75rem;
  font-size: 1.125rem;
  font-weight: 600;
}

.fl-tf-links__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.fl-tf-links__list li {
  margin: 0;
  padding: 0.625rem 0;
  border-bottom: var(--fl-tf-border);
}

.fl-tf-links__list li:last-child {
  border-bottom: none;
}

.fl-tf-links__list a {
  color: var(--fl-tf-link);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.fl-tf-links__list a:hover {
  color: #0f2744;
}

.fl-tf-links__desc {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.9375rem;
  color: var(--fl-tf-muted);
}

/* Plain bullet list */
.fl-tf-list {
  margin: 0;
  padding-left: 1.25rem;
}

.fl-tf-list li {
  margin-bottom: 0.375rem;
}

/* Inline text links */
.fl-tf-page a:not(.fl-de-footer__links a):not(.fl-platform-header a) {
  color: var(--fl-tf-link);
}

/* Disclaimer */
.fl-tf-disclaimer {
  margin: 0;
  padding: 0;
  border: none;
  font-size: 0.875rem;
  color: var(--fl-tf-muted);
  line-height: 1.6;
}

.fl-tf-disclaimer a {
  color: var(--fl-tf-link);
}

/* Calculator wrapper */
.fl-tf-calc-wrap {
  border: var(--fl-tf-border);
  padding: 1.25rem 1.5rem;
  background: #ffffff;
  box-shadow: none;
  margin: 1.5rem 0;
}

body.fl-tf-calc-page {
  background: #ffffff !important;
}

body.fl-tf-calc-page main,
body.fl-tf-calc-page #main {
  max-width: var(--fl-tf-max) !important;
  width: min(100% - 2 * var(--fl-tf-gutter), var(--fl-tf-max)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.fl-tf-calc-page .calculator-card {
  box-shadow: none !important;
  border: var(--fl-tf-border) !important;
  border-radius: 0 !important;
}

body.fl-tf-calc-page .fl-calc-trust-shell {
  display: none !important;
}

body.fl-tf-calc-page .fl-calc-layout {
  display: block !important;
}

/* Article shell */
.fl-tf-article .entry-content,
.fl-tf-article .wp-block-group {
  max-width: var(--fl-tf-max) !important;
}

.fl-tf-article .finanzlogic-trust-box,
.fl-tf-article .wp-block-group.finanzlogic-trust-box-v1 {
  border: var(--fl-tf-border) !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  box-shadow: none !important;
}

/* Suppress legacy decorative UI inside text-first pages */
.fl-tf-page .fl3-hero-mega,
.fl-tf-page .fl-de-hero-band,
.fl-tf-page .fl-de-hero,
.fl-tf-page .fl-vr-trust-strip,
.fl-tf-page .fl2-trust-strip,
.fl-tf-page .fl-de-trust-row,
.fl-tf-page .fl-de-authority-bar,
.fl-tf-page .fl3-methodik-hero,
.fl-tf-page .fl3-timeline,
.fl-tf-page .fl3-trust-band,
.fl-tf-page .fl3-dash-card__icon,
.fl-tf-page .fl-de-card__icon,
.fl-tf-page .fl3-grade-grid,
.fl-tf-page .fl3-spotlight-row {
  /* hidden via markup removal; safety net for stray nodes */
}

.fl-tf-page .fl3-dash-card,
.fl-tf-page .fl-de-card,
.fl-tf-page .fl-vr-why-card,
.fl-tf-page .fl-vr-teaser,
.fl-tf-page .fl3-grade-card,
.fl-tf-page .fl3-spotlight-card,
.fl-tf-page .fl3-process-block,
.fl-tf-page .fl-de-methodik-preview {
  box-shadow: none !important;
  background: #ffffff !important;
  border: var(--fl-tf-border) !important;
  border-radius: 0 !important;
}

/* WP platform body reset */
body.fl-platform .entry-content:has(.fl-tf-page) {
  max-width: none !important;
  width: 100% !important;
  background: #ffffff;
}

@media (max-width: 640px) {
  .fl-tf-container {
    padding: 1.25rem 0 2rem;
  }

  .fl-tf-header {
    margin-bottom: 1.75rem;
  }
}

/* ── Shell unify: ONE header nav + ONE footer (WP + Rechner) ── */

/* Header bar — same height everywhere */
header.fl-platform-header .fl-platform-header__bar {
  min-height: 4.25rem !important;
  height: 4.25rem !important;
  max-height: 4.25rem !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box !important;
  align-items: center !important;
}

header.fl-platform-header .fl-platform-header__logo {
  height: 3.25rem !important;
  max-height: 3.25rem !important;
  width: auto !important;
  max-width: 11.5rem !important;
}

@media (max-width: 900px) {
  header.fl-platform-header .fl-platform-header__bar {
    min-height: 3.75rem !important;
    height: 3.75rem !important;
    max-height: 3.75rem !important;
  }

  header.fl-platform-header .fl-platform-header__logo {
    height: 2.75rem !important;
    max-height: 2.75rem !important;
  }
}

/* Nav + locales — text links, no green/blue pill buttons */
.fl-platform-header__nav a,
.fl-platform-header__locales a,
.fl-platform-header__locales span {
  display: inline-flex !important;
  align-items: center !important;
  padding: 0.375rem 0.625rem !important;
  min-height: 0 !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--fl-text-muted, #64748b) !important;
  text-decoration: none !important;
}

.fl-platform-header__nav a:hover,
.fl-platform-header__locales a:hover {
  color: var(--fl-primary, #183b63) !important;
  background: transparent !important;
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

.fl-platform-header__nav a.is-active,
.fl-platform-header__locales span.is-active {
  color: var(--fl-primary, #183b63) !important;
  font-weight: 600 !important;
  background: transparent !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

/* Footer dedup — legacy premium footer off, platform footer on */
.fl-de-footer {
  display: none !important;
}

body.fl-platform .fl-platform-footer,
body.fl-calc-unified .fl-platform-footer {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  margin-top: 2rem !important;
}

body.fl-platform:has(.fl-text-first-v1) .fl-platform-footer,
body.fl-rechner-hub-premium .fl-platform-footer {
  display: block !important;
}


/**
 * TEXT_FIRST prose unify — ONE typography + rhythm for all subpages.
 * Loads last (MU-plugin footer) to beat legacy platform-unify / score-global / Astra.
 */

/* ── Canonical type scale (every text-first page) ── */
:root {
  --fl-tf-type-h1: clamp(1.75rem, 3vw, 2rem);
  --fl-tf-type-h2: 1.25rem;
  --fl-tf-type-h3: 1.0625rem;
  --fl-tf-type-body: 1rem;
  --fl-tf-type-lead: 1.0625rem;
  --fl-tf-type-small: 0.875rem;
}

.fl-text-first-v1 {
  --fl-tf-prose-gap: 2.5rem;
  --fl-tf-prose-text: 1rem;
  --fl-tf-prose-heading-bottom: 0.75rem;
  --fl-tf-prose-box-pad: 1.25rem 1.5rem;
  --fl-tf-type-h1: clamp(1.75rem, 3vw, 2rem);
  --fl-tf-type-h2: 1.25rem;
  --fl-tf-type-h3: 1.0625rem;
  --fl-tf-type-body: 1rem;
  --fl-tf-type-lead: 1.0625rem;
  --fl-tf-type-small: 0.875rem;
}

/* ── Astra page title vs in-content H1 (fix giant / duplicate H1) ── */

/* Content already has H1 in intro → hide theme title */
body.fl-platform:has(.fl-tf-content-wrap) .entry-header,
body.fl-platform:has(.fl-tf-hero) .entry-header,
body.fl-platform:has(.fl-tf-intro) .entry-header,
body.fl-platform:has(.fl-text-first-v1 .fl-tf-h1) .entry-header,
body.fl-platform:has(.fl-text-first-v1 h1.wp-block-heading) .entry-header {
  display: none !important;
}

/* Legacy hub pages without hero (should not occur on master pages) */
body.fl-platform:has(.fl-text-first-v1):not(:has(.fl-tf-hero)):not(:has(.fl-text-first-v1 .fl-tf-h1)):not(:has(.fl-text-first-v1 h1.wp-block-heading)) .entry-header {
  max-width: var(--fl-tf-max, 68.75rem) !important;
  width: min(100% - 2 * var(--fl-tf-gutter, 1.25rem), var(--fl-tf-max, 68.75rem)) !important;
  margin: 0 auto !important;
  padding: 2rem 0 1.5rem !important;
  border-bottom: 1px solid #d5dce4 !important;
  box-sizing: border-box !important;
}

body.fl-platform:has(.fl-text-first-v1):not(:has(.fl-text-first-v1 .fl-tf-h1)):not(:has(.fl-text-first-v1 h1.wp-block-heading)) .entry-title {
  font-size: var(--fl-tf-type-h1) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.02em !important;
  color: #0f172a !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}

/* Kill platform-unify direct-child bleed into text-first wrapper */
body.fl-platform .entry-content:has(.fl-text-first-v1) > h1,
body.fl-platform .entry-content:has(.fl-text-first-v1) > h2,
body.fl-platform .entry-content:has(.fl-text-first-v1) > h3,
body.fl-platform .entry-content:has(.fl-text-first-v1) > .wp-block-heading,
body.fl-platform .entry-content:has(.fl-text-first-v1) > p,
body.fl-platform .entry-content:has(.fl-text-first-v1) > .wp-block-paragraph {
  border-top: none !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
  font-size: inherit !important;
  color: inherit !important;
  line-height: inherit !important;
}


/* ── Column width + vertical rhythm (non-canonical pages only — canonical uses vertical-alignment-lock) ── */
.fl-text-first-v1:not(.fl-tf-canonical) .fl-tf-container,
.fl-text-first-v1.fl-tf-article:not(.fl-tf-canonical) {
  max-width: var(--fl-tf-max, 68.75rem) !important;
}

.fl-text-first-v1 .fl-tf-content,
.fl-text-first-v1 .fl-tf-prose,
.fl-text-first-v1 .fl-tf-hub-body,
.fl-text-first-v1 .fl-tf-section__body,
.fl-text-first-v1.fl-tf-article,
.fl-text-first-v1 .fl-tf-article {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--fl-tf-prose-gap) !important;
  font-size: 1rem !important;
  line-height: 1.65 !important;
  color: var(--fl-tf-text, #0f172a) !important;
}

.fl-text-first-v1 .fl-tf-section {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* ── Headings (native + Gutenberg) — ONE scale ── */
.fl-text-first-v1 .fl-tf-h1,
.fl-text-first-v1 h1.wp-block-heading,
.fl-text-first-v1 h1:not(.entry-title):not(.fl-de-footer__heading):not(.fl-platform-footer__brand) {
  margin: 0 0 0.75rem !important;
  padding: 0 !important;
  font-size: var(--fl-tf-type-h1) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.02em !important;
  color: var(--fl-tf-text, #0f172a) !important;
  border: none !important;
  background: transparent !important;
}

.fl-text-first-v1 .fl-tf-h2,
.fl-text-first-v1 h2:not(.fl-de-footer__heading):not(.fl-platform-footer__brand),
.fl-text-first-v1 .wp-block-heading:not(h1),
.fl-text-first-v1 h2.wp-block-heading {
  margin: 0 0 var(--fl-tf-prose-heading-bottom) !important;
  padding: 0 !important;
  font-size: var(--fl-tf-type-h2) !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  color: var(--fl-tf-text, #0f172a) !important;
  border: none !important;
  border-top: none !important;
  background: transparent !important;
}

.fl-text-first-v1 .fl-tf-h3,
.fl-text-first-v1 h3:not(.fl-de-footer__heading),
.fl-text-first-v1 h3.wp-block-heading,
.fl-text-first-v1 .wp-block-heading.has-small-font-size {
  margin: 0 0 0.5rem !important;
  padding: 0 !important;
  font-size: var(--fl-tf-type-h3) !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  color: var(--fl-tf-text, #0f172a) !important;
  border: none !important;
  background: transparent !important;
}

.fl-text-first-v1 h4,
.fl-text-first-v1 h4.wp-block-heading {
  margin: 0 0 0.5rem !important;
  font-size: var(--fl-tf-type-body) !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  color: var(--fl-tf-text, #0f172a) !important;
}

/* Section titles in link lists match h2 */
.fl-text-first-v1 .fl-tf-links__title {
  margin: 0 0 var(--fl-tf-prose-heading-bottom) !important;
  font-size: var(--fl-tf-type-h2) !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  color: var(--fl-tf-text, #0f172a) !important;
}

/* ── Paragraphs ── */
.fl-text-first-v1 p,
.fl-text-first-v1 .wp-block-paragraph {
  margin: 0 0 var(--fl-tf-prose-text) !important;
  padding: 0 !important;
  font-size: var(--fl-tf-type-body) !important;
  line-height: 1.65 !important;
  color: var(--fl-tf-text, #0f172a) !important;
}

.fl-text-first-v1 p:last-child,
.fl-text-first-v1 .wp-block-paragraph:last-child,
.fl-text-first-v1 .fl-tf-section__body > *:last-child,
.fl-text-first-v1 .fl-tf-prose > *:last-child {
  margin-bottom: 0 !important;
}

.fl-text-first-v1 .fl-tf-lead {
  font-size: var(--fl-tf-type-lead) !important;
  line-height: 1.65 !important;
  color: var(--fl-tf-muted, #475569) !important;
}

.fl-text-first-v1 .fl-hub-start-here {
  color: var(--fl-tf-muted, #475569) !important;
  font-size: var(--fl-tf-type-body) !important;
}

/* ── Lists ── */
.fl-text-first-v1 ul,
.fl-text-first-v1 ol,
.fl-text-first-v1 .wp-block-list {
  margin: 0 0 var(--fl-tf-prose-text) !important;
  padding-left: 1.25rem !important;
  list-style-position: outside !important;
}

.fl-text-first-v1 li,
.fl-text-first-v1 .wp-block-list-item {
  margin: 0 0 0.375rem !important;
  padding: 0 !important;
  line-height: 1.65 !important;
}

.fl-text-first-v1 .fl-tf-list {
  margin: 0 !important;
}

.fl-text-first-v1 .fl-tf-links__list {
  padding-left: 0 !important;
}

/* ── Links ── */
.fl-text-first-v1 a:not(.fl-platform-header a):not(.fl-platform-footer a):not(.fl-de-footer a) {
  color: var(--fl-tf-link, #183b63) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

.fl-text-first-v1 a:not(.fl-platform-header a):not(.fl-platform-footer a):hover {
  color: #0f2744 !important;
}

/* ── Buttons → text links (no pills) ── */
.fl-text-first-v1 .wp-block-buttons,
.fl-text-first-v1 .wp-block-button {
  margin: 0 !important;
  display: inline !important;
}

.fl-text-first-v1 .wp-block-buttons.is-layout-flex {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.75rem 1.25rem !important;
  margin: 0 0 var(--fl-tf-prose-text) !important;
}

.fl-text-first-v1 .wp-block-button__link,
.fl-text-first-v1 .wp-element-button {
  display: inline !important;
  background: transparent !important;
  color: var(--fl-tf-link, #183b63) !important;
  box-shadow: none !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  line-height: 1.65 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

.fl-text-first-v1 .wp-block-button__link:hover {
  background: transparent !important;
  color: #0f2744 !important;
}

/* ── Columns / layout blocks → stack ── */
.fl-text-first-v1 .wp-block-columns {
  display: block !important;
  margin: 0 !important;
  gap: 0 !important;
}

.fl-text-first-v1 .wp-block-column {
  display: block !important;
  flex-basis: 100% !important;
  margin: 0 0 var(--fl-tf-prose-gap) !important;
  padding: 0 !important;
}

.fl-text-first-v1 .wp-block-column:last-child {
  margin-bottom: 0 !important;
}

.fl-text-first-v1 .wp-block-group,
.fl-text-first-v1 .wp-block-group__inner-container {
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
  gap: var(--fl-tf-prose-text) !important;
}

/* ── Boxes (trust, score strips, legacy cards) ── */
.fl-text-first-v1 .fl-tf-box,
.fl-text-first-v1 .finanzlogic-trust-box,
.fl-text-first-v1 .wp-block-group.finanzlogic-trust-box,
.fl-text-first-v1 .wp-block-group.finanzlogic-trust-box-v1,
.fl-text-first-v1 .fl-score-kredit,
.fl-text-first-v1 .fl-score-bau,
.fl-text-first-v1 .fl-score-auto,
.fl-text-first-v1 .fl-score-versicherung,
.fl-text-first-v1 .fl3-process-block,
.fl-text-first-v1 .fl-de-methodik-preview {
  border: var(--fl-tf-border, 1px solid #d5dce4) !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  box-shadow: none !important;
  padding: var(--fl-tf-prose-box-pad) !important;
  margin: 0 !important;
}

/* ── Tables ── */
.fl-text-first-v1 .wp-block-table,
.fl-text-first-v1 figure.wp-block-table {
  margin: 0 !important;
  overflow-x: auto !important;
  border: var(--fl-tf-border, 1px solid #d5dce4) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.fl-text-first-v1 .wp-block-table table,
.fl-text-first-v1 table {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 0.9375rem !important;
  background: #ffffff !important;
}

.fl-text-first-v1 .wp-block-table th,
.fl-text-first-v1 table th {
  background: #f8fafc !important;
  font-weight: 600 !important;
  padding: 0.625rem 0.875rem !important;
  border-bottom: var(--fl-tf-border, 1px solid #d5dce4) !important;
  text-align: left !important;
}

.fl-text-first-v1 .wp-block-table td,
.fl-text-first-v1 table td {
  padding: 0.625rem 0.875rem !important;
  border-bottom: 1px solid #e8edf2 !important;
  background: #ffffff !important;
}

.fl-text-first-v1 .wp-block-table tbody tr:nth-child(even) td {
  background: #fafbfc !important;
}

.fl-text-first-v1 .wp-block-table tbody tr:last-child td {
  border-bottom: none !important;
}

/* ── Misc blocks ── */
.fl-text-first-v1 hr,
.fl-text-first-v1 .wp-block-separator {
  margin: var(--fl-tf-prose-gap) 0 !important;
  border: none !important;
  border-top: var(--fl-tf-border, 1px solid #d5dce4) !important;
  height: 0 !important;
}

.fl-text-first-v1 blockquote,
.fl-text-first-v1 .wp-block-quote {
  margin: 0 !important;
  padding: var(--fl-tf-prose-box-pad) !important;
  border-left: 3px solid #d5dce4 !important;
  border-top: none !important;
  border-right: none !important;
  border-bottom: none !important;
  background: #fafbfc !important;
  box-shadow: none !important;
}

.fl-text-first-v1 figure {
  margin: 0 !important;
}

.fl-text-first-v1 .finanzlogic-article-update,
.fl-text-first-v1 .finanzlogic-article-update p {
  font-size: 0.9375rem !important;
  color: var(--fl-tf-muted, #475569) !important;
}

.fl-text-first-v1 .fl-tf-disclaimer {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  font-size: var(--fl-tf-type-small, 0.875rem) !important;
  color: var(--fl-tf-muted, #475569) !important;
}

.fl-text-first-v1 .fl-tf-divider {
  border: none !important;
  border-top: var(--fl-tf-border, 1px solid #d5dce4) !important;
  height: 0 !important;
  margin: 1.5rem 0 !important;
  background: transparent !important;
}

.fl-text-first-v1 .fl-tf-divider--before-footer {
  margin-top: 2.5rem !important;
  margin-bottom: 0 !important;
}

/* Kill inline decorative marks (legacy news headings) */
.fl-text-first-v1 mark.has-inline-color {
  background: transparent !important;
  color: inherit !important;
}

/* Legacy card/tile flatten inside text-first */
.fl-text-first-v1 .fl2-tool-card,
.fl-text-first-v1 .fl2-category-tile,
.fl-text-first-v1 .fl-de-card,
.fl-text-first-v1 .fl3-dash-card,
.fl-text-first-v1 .fl3-grade-card {
  border: var(--fl-tf-border, 1px solid #d5dce4) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #ffffff !important;
  padding: var(--fl-tf-prose-box-pad) !important;
  margin: 0 0 var(--fl-tf-prose-text) !important;
}

@media (max-width: 640px) {
  .fl-text-first-v1 {
    --fl-tf-prose-gap: 2rem;
    --fl-tf-prose-box-pad: 1rem 1.125rem;
  }
}


/**
 * VERTICAL ALIGNMENT LOCK — one grid for all master pages (.fl-tf-canonical).
 * No new UI — position and rhythm only.
 */

:root {
  --fl-val-header-offset: 72px;
  --fl-val-shell-max: 77.5rem; /* 1240px */
  --fl-val-inner-max: 60rem; /* 960px */
  --fl-val-gutter-x: 1.5rem; /* 24px */
  --fl-val-space-h1-lead: 0.75rem;
  --fl-val-space-lead-divider: 1.5rem;
  --fl-val-space-divider-content: 1.5rem;
  --fl-val-space-h2-body: 0.75rem;
  --fl-val-section-gap: 2.5rem;
  --fl-val-space-foot-divider: 2.5rem;
}

/* ── Shared header grid (same shell as content) ── */
body:has(.fl-tf-canonical) header.fl-platform-header .fl-platform-header__bar {
  max-width: var(--fl-val-shell-max) !important;
  width: min(100% - 2 * var(--fl-val-gutter-x), var(--fl-val-shell-max)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--fl-val-gutter-x) !important;
  padding-right: var(--fl-val-gutter-x) !important;
  box-sizing: border-box !important;
}

body:has(.fl-tf-canonical) header.fl-platform-header .fl-platform-header__brand {
  margin-left: 0 !important;
}

/* ── WP shell reset — remove Astra offset bleed ── */
body.fl-platform:has(.fl-tf-canonical) .site-content,
body.fl-platform:has(.fl-tf-canonical) .site-content > .ast-container,
body.fl-platform:has(.fl-tf-canonical) #primary,
body.fl-platform:has(.fl-tf-canonical) article,
body.fl-platform:has(.fl-tf-canonical) .entry-content {
  padding-top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-top: 0 !important;
  max-width: none !important;
  width: 100% !important;
}

body.fl-platform:has(.fl-tf-canonical) .entry-content > .wp-block-group,
body.fl-platform:has(.fl-tf-canonical) .entry-content > .wp-block-html {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ── Static Rechner hub reset ── */
body.fl-calc-unified:has(.fl-tf-canonical) .site-content,
body.fl-calc-unified:has(.fl-tf-canonical) main,
body.fl-rechner-hub-premium:has(.fl-tf-canonical) .finanzlogic-platform-premium {
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
  width: 100% !important;
}

/* Match WP Astra content column (~1246px) so shell math equals WP master pages */
body.fl-rechner-hub-premium:has(.fl-tf-canonical) .finanzlogic-rechner-hub-premium.finanzlogic-platform-premium {
  max-width: 77.875rem !important; /* 1246px — yields 1198px shell at 1440 */
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* ── Content top offset from header bottom ── */
.fl-tf-page.fl-text-first-v1.fl-tf-canonical .fl-tf-content-wrap {
  padding-top: var(--fl-val-header-offset) !important;
  padding-bottom: 2.5rem !important;
  margin: 0 !important;
}

/* ── Main shell container ── */
.fl-tf-page.fl-text-first-v1.fl-tf-canonical .fl-tf-container {
  --fl-tf-max: var(--fl-val-shell-max);
  max-width: var(--fl-val-shell-max) !important;
  width: min(100% - 2 * var(--fl-val-gutter-x), var(--fl-val-shell-max)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 var(--fl-val-gutter-x) !important;
  box-sizing: border-box !important;
}

/* ── Inner text column — same left edge for H1 + body ── */
.fl-tf-page.fl-text-first-v1.fl-tf-canonical .fl-tf-intro,
.fl-tf-page.fl-text-first-v1.fl-tf-canonical .fl-tf-divider,
.fl-tf-page.fl-text-first-v1.fl-tf-canonical main.fl-tf-content,
.fl-tf-page.fl-text-first-v1.fl-tf-canonical .fl-tf-page-foot {
  max-width: var(--fl-val-inner-max) !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* ── Vertical rhythm ── */
.fl-tf-page.fl-text-first-v1.fl-tf-canonical .fl-tf-h1 {
  margin: 0 0 var(--fl-val-space-h1-lead) !important;
  padding: 0 !important;
}

.fl-tf-page.fl-text-first-v1.fl-tf-canonical .fl-tf-lead {
  margin: 0 !important;
  padding: 0 !important;
  max-width: var(--fl-val-inner-max) !important;
}

.fl-tf-page.fl-text-first-v1.fl-tf-canonical .fl-tf-divider:not(.fl-tf-divider--before-footer) {
  margin-top: var(--fl-val-space-lead-divider) !important;
  margin-bottom: var(--fl-val-space-divider-content) !important;
}

.fl-tf-page.fl-text-first-v1.fl-tf-canonical main.fl-tf-content {
  gap: var(--fl-val-section-gap) !important;
  margin: 0 !important;
  padding: 0 !important;
}

.fl-tf-page.fl-text-first-v1.fl-tf-canonical .fl-tf-h2,
.fl-tf-page.fl-text-first-v1.fl-tf-canonical .fl-tf-links__title {
  margin: 0 0 var(--fl-val-space-h2-body) !important;
}

.fl-tf-page.fl-text-first-v1.fl-tf-canonical .fl-tf-section {
  margin: 0 !important;
  padding: 0 !important;
}

.fl-tf-page.fl-text-first-v1.fl-tf-canonical .fl-tf-divider--before-footer {
  margin-top: var(--fl-val-space-foot-divider) !important;
  margin-bottom: 0 !important;
}

.fl-tf-page.fl-text-first-v1.fl-tf-canonical .fl-tf-page-foot + .fl-tf-divider--before-footer {
  margin-top: 1.5rem !important;
}

@media (max-width: 640px) {
  :root {
    --fl-val-header-offset: 48px;
    --fl-val-gutter-x: 1.25rem;
  }
}
