/* ============================================================
 * Talk About Me v4 — Block-Theme-Stylesheet
 *
 * Hinweis: Globale Designtokens (Farben, Typo, Spacing) liegen
 * in theme.json. Hier nur:
 *  - Globale Resets / Base
 *  - Header / Footer (template parts)
 *  - Tam-Block-Overrides für v4-Look
 *  - V4-spezifische Section-Klassen für Patterns
 * ============================================================ */

/* ===== DESIGN TOKENS (CSS Custom Properties) =====
 * Container-Widths matchen die Tailwind-Defaults aus der
 * React-Reference (max-w-3xl/4xl/5xl/6xl/7xl) plus eine
 * Custom-Width für Sub-Page-Inner.
 */
:root {
  --tam-w-narrow:     768px;  /* max-w-3xl: Hero, End-CTA, Legal-Content */
  --tam-w-medium:     896px;  /* max-w-4xl: Sub-Page-Hero, Hero-Lead, FAQ */
  --tam-w-large:     1024px;  /* max-w-5xl: Kontakt-Form */
  --tam-w-content:   1152px;  /* max-w-6xl: Standard-Section */
  --tam-w-wide:      1280px;  /* max-w-7xl: Header/Footer, Beraterinnen */
  --tam-w-extra:     1312px;  /* Custom: Sub-Page-Inner */

  --tam-fs-h1-mobile:  30px;  /* text-3xl */
  --tam-fs-h1-tablet:  36px;  /* text-4xl */
  --tam-fs-h1-desktop: 48px;  /* text-5xl */
  --tam-fs-x30:        30px;  /* text-3xl: Section-H2 */
  --tam-fs-card-title: 15px;  /* text-sm: Icon-Card heading */
  --tam-fs-card-body:  13px;  /* text-xs: Icon-Card body */
  --tam-fs-step-num:   48px;  /* text-5xl: Step-Number */

  /* Schriftart-Stacks — CI 2026: Assistant fuer Fliesstext/UI, Baloo 2 fuer
   * Headlines/Brand (beide self-hosted via assets/css/fonts.css). */
  --tam-font-sans: 'Assistant', Tahoma, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --tam-font-display: 'Baloo 2', Tahoma, ui-sans-serif, system-ui, sans-serif;

  /* Override WP's auto-fluid spacing (das die theme.json px-Werte
   * zu kleinen rem-Werten konvertiert). Direkt-Werte aus theme.json. */
  --wp--preset--spacing--10: 8px;
  --wp--preset--spacing--20: 16px;
  --wp--preset--spacing--30: 24px;
  --wp--preset--spacing--40: 40px;
  --wp--preset--spacing--50: 64px;
  --wp--preset--spacing--60: 96px;
  --wp--preset--spacing--70: 128px;
}

/* Helper-Klassen für Container-Constraints — direkt auf
 * Pattern-Wrapper anwendbar. Ergänzt theme.json contentSize.
 */
.tam-w-narrow.wp-block-group,
.tam-w-narrow > .wp-block-group__inner-container { max-width: var(--tam-w-narrow); margin-inline: auto; }
.tam-w-medium.wp-block-group,
.tam-w-medium > .wp-block-group__inner-container { max-width: var(--tam-w-medium); margin-inline: auto; }
.tam-w-large.wp-block-group,
.tam-w-large > .wp-block-group__inner-container { max-width: var(--tam-w-large); margin-inline: auto; }
.tam-w-content.wp-block-group,
.tam-w-content > .wp-block-group__inner-container { max-width: var(--tam-w-content); margin-inline: auto; }
.tam-w-wide.wp-block-group,
.tam-w-wide > .wp-block-group__inner-container { max-width: var(--tam-w-wide); margin-inline: auto; }
.tam-w-extra.wp-block-group,
.tam-w-extra > .wp-block-group__inner-container { max-width: var(--tam-w-extra); margin-inline: auto; }

/* ===== STICKY-MOBILE-CTA-BAR (Berater-Profil)
 * V97 (BeraterProfile.tsx:558-570): md:hidden fixed bottom-0 — Paper-Balken
 * mit tam-blue-Primaerbutton (primaryButtonClass), immer erreichbare
 * Hauptaktion auf Mobile. Default: hidden auf Tablet+ (md+).
 */
.tam-profile-mobile-cta {
  display: none;
}
@media (max-width: 767px) {
  .tam-profile-mobile-cta {
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 40;
    background: var(--paper, #ffffff);
    border-top: 1px solid var(--tam-border);
    box-shadow: 0 -2px 12px rgba(15, 40, 80, 0.08);
    padding: 12px 16px;
  }
  .tam-profile-mobile-cta__link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--tam-navy);
    color: #ffffff;
    border-radius: 9999px;
    padding: 12px 24px;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    transition: background .15s, transform .15s, box-shadow .15s;
  }
  .tam-profile-mobile-cta__link:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(74, 150, 220, 0.3);
  }
  /* TAM-445: bietet die Person Beratung UND Therapie an, teilen sich zwei
   * kompakte Buttons die Leiste; der Therapie-Button als helle Variante. */
  .tam-profile-mobile-cta--zwei {
    display: flex;
    gap: 10px;
  }
  .tam-profile-mobile-cta--zwei .tam-profile-mobile-cta__link {
    flex: 1 1 0;
    padding-left: 10px;
    padding-right: 10px;
    white-space: nowrap;
  }
  .tam-profile-mobile-cta__link--therapie {
    background: #ffffff;
    color: var(--tam-navy);
    border: 1px solid var(--tam-border);
  }
  /* Spacer so the page content doesn't get hidden behind the fixed bar —
   * greift auf dem vestigialen CPT-Single (body.single-berater) UND auf der
   * echten Rewrite-Route (main.tam-berater-profil, inc/berater-profil-template.php). */
  body.single-berater main,
  main.tam-berater-profil {
    padding-bottom: 96px;
  }
}

/* ===== BERATERINNEN FILTER-CHIPS (V97-Detail-Politur)
 * Ergaenzt die classList-Toggles aus filters.js (bg-tam-blue = aktiv,
 * bg-white = inaktiv) um die Figma-chipClass-Details (Beraterinnen.tsx:338-343):
 * aktiver Chip mit blauem Glow, inaktiver Chip mit Ink-Text + Hover-Lift/-Blau.
 * Bewusst hier statt in filters.js — die Filter-Logik bleibt unangetastet.
 */
[data-tam-berater-filter-value].bg-tam-blue {
  box-shadow: 0 4px 14px rgba(74, 150, 220, 0.3);
}
[data-tam-berater-filter-value].bg-white {
  color: var(--tam-text);
}
[data-tam-berater-filter-value].bg-white:hover {
  color: var(--blue);
  transform: translateY(-1px);
}

/* ===== MOBILE-SNAP-CAROUSEL HELPER (CP-1)
 * Wiederverwendbares Pattern für Anfragen/Preise/Berater-Preview/
 * Testimonials/KPIs/Bewerber:innen Mobile-Carousels.
 *
 * Markup: data-tam-mobile-snap > data-tam-snap-track > data-tam-snap-card+
 * + optional data-tam-snap-dots Container.
 *
 * Mobile (<= 768px): horizontaler snap-scroll + active-card-Effekt.
 * Desktop: Track wird wieder zum Standard-Layout (Grid via Pattern-CSS).
 */
.tam-mobile-snap__track {
  display: flex;
  gap: 16px;
}

@media (max-width: 768px) {
  .tam-mobile-snap__track {
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    margin-inline: -16px;
    padding-inline: 10vw;
  }
  .tam-mobile-snap__track::-webkit-scrollbar { display: none; }

  .tam-mobile-snap__card {
    flex: 0 0 auto;
    width: 80vw;
    max-width: 360px;
    scroll-snap-align: center;
    transition: transform .2s ease-out, opacity .2s ease-out;
    transform: scale(0.94);
    opacity: 0.7;
  }
  .tam-mobile-snap__card.is-active {
    transform: scale(1);
    opacity: 1;
  }

  /* Right-edge fade — hint at swipable content. White-fade is default;
   * Pages mit grauem Section-BG müssen das mit eigenem fade overlay
   * lösen (siehe Pattern-spezifische CSS). */
  .tam-mobile-snap::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 48px;
    pointer-events: none;
    background: linear-gradient(to left, #ffffff, transparent);
  }
  .tam-mobile-snap { position: relative; }
}

.tam-mobile-snap__dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 20px;
}
.tam-mobile-snap__dot {
  width: 8px;
  height: 8px;
  border-radius: 9999px;
  background: var(--tam-grey-5);
  border: 0;
  padding: 0;
  cursor: pointer;
  transition: width .2s ease, background .2s ease;
}
.tam-mobile-snap__dot.is-active {
  background: var(--tam-navy);
  width: 24px;
}
@media (min-width: 769px) {
  /* Desktop: dots ausblenden, Grid übernimmt das Layout */
  .tam-mobile-snap__dots { display: none; }
}

/* Themen "Mehr erfahren →" outline-button matcht React `border-gray-800
 * rounded-full px-6 py-3 text-sm hover:bg-gray-50 whitespace-nowrap`. */
.tam-themen__humanism .wp-block-button.is-style-outline a,
.tam-themen__humanism a.wp-block-button__link {
  color: var(--tam-navy-soft) !important;
  border: 1px solid var(--tam-navy-soft) !important;
  background: transparent !important;
  border-radius: 9999px !important;
  padding: 12px 24px !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  white-space: nowrap;
}
.tam-themen__humanism .wp-block-button.is-style-outline a:hover {
  background: var(--tam-grey-6) !important;
}

/* ===== RESET & BASE ===== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Skip-Link: visually hidden until focused */
.tam-skip-link {
  position: absolute;
  top: -40px;
  left: 16px;
  z-index: 9999;
  padding: 10px 16px;
  background: var(--tam-navy);
  color: #ffffff;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  border-radius: 0 0 8px 8px;
  transition: top .15s;
}
.tam-skip-link:focus {
  top: 0;
  outline: 2px solid #ffffff;
  outline-offset: -4px;
}
/* CI 2026: Assistant + Grau 1, line-height 1.4 — deckungsgleich mit dem
 * @layer-base-Body in build/tailwind.css (diese un-layered Regel gewinnt die Cascade). */
body {
  font-family: var(--tam-font-sans);
  color: var(--tam-text, var(--ink));
  line-height: 1.4;
  background: #ffffff;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
/* height:auto muss im base-Layer liegen, sonst schlaegt es als un-layered
 * Regel jede Tailwind-Utility (h-full etc.) — Layer verlieren gegen un-layered
 * unabhaengig von der Spezifitaet. */
@layer base {
  img { height: auto; }
}
/*
 * Link-Defaults werden ab v2.4 nicht mehr global gesetzt — Tailwinds
 * @layer base liefert bereits `a { color: inherit; text-decoration: inherit }`,
 * und unsere Tailwind-Utility-Klassen wuerden den globalen Element-Selector
 * sonst durch den Cascade-Layer-Vorrang verlieren. Section-spezifische
 * Hover/Underline-Wuensche stehen weiter unten via .tam-...-Klassen.
 */

/*
 * Globale Heading-Defaults werden ab v2.4 nicht mehr in custom.css gesetzt —
 * Tailwind-Utility-Klassen pro Pattern steuern Schrift, Sektionen mit Legacy-
 * Markup behalten ihre Werte ueber `.tam-...`-Selektoren weiter unten.
 * Frueher hier: font-family/color/font-weight/letter-spacing/line-height.
 */

/* Remove WP block-gap on the very top stack so sections sit flush */
.wp-site-blocks > * + * { margin-block-start: 0; }

/* ===== HEADER ===== */
.site-header {
  background: #ffffff;
  z-index: 1000;
  border-bottom: 1px solid var(--tam-grey-5);
}
.site-header .wp-block-site-title a {
  font-family: var(--tam-font-display);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--tam-navy);
}
.site-header__right {
  gap: 36px !important;
}
/* Navigation links: minimal v4 style */
.site-header .wp-block-navigation a.wp-block-navigation-item__content {
  font-family: var(--tam-font-sans) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  color: var(--tam-navy) !important;
  padding: 6px 0 !important;
  line-height: 1.4 !important;
}
.site-header .wp-block-navigation a.wp-block-navigation-item__content:hover {
  color: var(--tam-grey-3) !important;
}
.site-header .wp-block-navigation .wp-block-navigation-submenu__toggle {
  color: var(--tam-navy) !important;
}
.site-header .wp-block-navigation__submenu-icon {
  margin-left: 4px;
}

/* CTA buttons */
.site-header__ctas .header-cta-secondary a {
  background: #ffffff !important;
  color: var(--tam-navy) !important;
  border: 1px solid var(--tam-grey-5) !important;
  border-radius: 9999px !important;
  padding: 10px 22px !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  font-family: var(--tam-font-sans) !important;
  transition: background 0.2s, border-color 0.2s;
}
.site-header__ctas .header-cta-secondary a:hover {
  background: var(--tam-grey-6) !important;
  border-color: var(--tam-grey-5) !important;
}
.site-header__ctas .header-cta-primary a {
  background: var(--tam-navy) !important;
  color: #ffffff !important;
  border-radius: 9999px !important;
  padding: 10px 22px !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  font-family: var(--tam-font-sans) !important;
  border: 1px solid transparent !important;
  transition: background 0.2s, transform 0.2s;
}
.site-header__ctas .header-cta-primary a:hover {
  background: var(--tam-navy-soft) !important;
  border-color: transparent !important;
  transform: translateY(-1px);
}

/* Submenu dropdown */
.site-header .wp-block-navigation__submenu-container {
  background: #ffffff !important;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08) !important;
  border: 1px solid var(--tam-grey-5) !important;
  border-radius: 12px !important;
  padding: 8px 0 !important;
  min-width: 220px !important;
}
.site-header .wp-block-navigation__submenu-container a.wp-block-navigation-item__content {
  padding: 10px 20px !important;
  font-size: 15px !important;
  color: var(--tam-navy-soft) !important;
}
.site-header .wp-block-navigation__submenu-container a.wp-block-navigation-item__content:hover {
  background: var(--tam-grey-6) !important;
  color: var(--tam-navy) !important;
}

/* ===== Megamenü „Mehr" =====
   Panel spans the full header width; positioning context is .site-header
   (sticky), so .tam-mega itself stays static. */
.tam-mega {
  display: inline-flex;
  align-items: center;
}
.tam-mega__trigger {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--tam-font-sans);
  font-size: 16px;
  font-weight: 500;
  color: var(--tam-navy);
  background: none;
  border: 0;
  padding: 6px 0;
  cursor: pointer;
  line-height: 1.4;
}
.tam-mega__trigger:hover { color: var(--tam-grey-3); }
/* Active-State: aktiv wenn eine der Mehr-Pages aktiv ist (body.tam-mehr-active) */
body.tam-mehr-active .tam-mega__trigger {
  border-bottom: 2px solid var(--tam-navy);
  padding-bottom: 4px;
}

/* ===== ACTIVE-STATE: Header-Nav, Drawer, Footer =====
 * aria-current="page" wird per PHP-Filter (Header-Nav) und
 * mobile-drawer.js (statische Drawer/Footer-Links) gesetzt.
 * Selektoren matchen alle drei Kontexte.
 */
.site-header__nav .wp-block-navigation-item__content[aria-current="page"],
.site-header__nav a[aria-current="page"] {
  border-bottom: 2px solid var(--tam-navy);
  padding-bottom: 4px;
}
.tam-drawer__link[aria-current="page"] {
  background-color: var(--tam-grey-6);
  font-weight: 600;
  color: var(--tam-navy);
}
.site-footer__list a[aria-current="page"] {
  color: var(--tam-navy);
  font-weight: 500;
}
.tam-mega__chevron { transition: transform .2s; }
.tam-mega:hover .tam-mega__chevron,
.tam-mega:focus-within .tam-mega__chevron { transform: rotate(180deg); }

.tam-mega__panel {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #ffffff;
  border-bottom: 1px solid var(--tam-grey-5);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity .18s, visibility .18s, transform .18s;
  z-index: 50;
}
.tam-mega:hover .tam-mega__panel,
.tam-mega:focus-within .tam-mega__panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
/* Bridge between trigger and panel, active only while menu is open. */
.tam-mega::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 20px;
  pointer-events: none;
}
.tam-mega:hover::before,
.tam-mega:focus-within::before { pointer-events: auto; }

.tam-mega__items {
  max-width: 672px;       /* React: max-w-2xl = 672px (Phase 2 H5) */
  margin: 0 auto;
  padding: 32px 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 32px;
}

/* Mega Legal-Footer (Phase 2 H4): Impressum / Datenschutz / AGB */
.tam-mega__legal {
  max-width: 672px;
  margin: 0 auto;
  padding: 16px 24px 20px;
  border-top: 1px solid var(--tam-grey-6);
  display: flex;
  justify-content: center;
  gap: 24px;
  font-size: 13px;
  color: var(--tam-grey-4);
}
.tam-mega__legal a { color: var(--tam-grey-4); transition: color .15s; }
.tam-mega__legal a:hover { color: var(--tam-navy-soft); }

.tam-mega__item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px;
  border-radius: 12px;
  text-decoration: none;
  color: var(--tam-navy);
  transition: background-color .15s;
}
.tam-mega__item:hover { background-color: var(--tam-grey-6); }
.tam-mega__icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: flex-start;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  color: var(--tam-grey-4);
}
.tam-mega__item:hover .tam-mega__icon { color: var(--tam-navy); }
.tam-mega__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tam-mega__text strong {
  font-family: var(--tam-font-sans);
  font-size: 15px;
  font-weight: 600;
  color: var(--tam-navy);
  line-height: 1.3;
}
.tam-mega__text small {
  font-family: var(--tam-font-sans);
  font-size: 13px;
  font-weight: 400;
  color: var(--tam-grey-3);
  line-height: 1.4;
}

/* ===== MOBILE BURGER TRIGGER + DRAWER ===== */
.tam-mobile-trigger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  margin-left: 4px;
  background: none;
  border: 0;
  border-radius: 8px;
  color: var(--tam-navy);
  cursor: pointer;
  transition: background-color .15s;
}
.tam-mobile-trigger:hover { background-color: var(--tam-grey-6); }

.tam-drawer {
  position: fixed;
  inset: 0;
  z-index: 1100;
  pointer-events: none;
  visibility: hidden;
}
.tam-drawer.is-open {
  pointer-events: auto;
  visibility: visible;
}
.tam-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  transition: opacity .2s;
}
.tam-drawer.is-open .tam-drawer__backdrop { opacity: 1; }
.tam-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: 85%;
  max-width: 380px;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .25s ease-out;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.tam-drawer.is-open .tam-drawer__panel { transform: translateX(0); }

.tam-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  border-bottom: 1px solid var(--tam-grey-5);
}
.tam-drawer__brand,
.tam-drawer__title {
  font-family: var(--tam-font-display);
  font-size: 18px;
  font-weight: 700;
  color: var(--tam-navy);
  text-decoration: none;
  letter-spacing: -0.01em;
}
.tam-drawer__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 8px;
  color: var(--tam-navy);
  cursor: pointer;
  transition: background-color .15s;
}
.tam-drawer__close:hover { background-color: var(--tam-grey-6); }

.tam-drawer__nav {
  padding: 12px;
  display: flex;
  flex-direction: column;
}
.tam-drawer__link {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 12px;
  border-radius: 10px;
  font-family: var(--tam-font-sans);
  font-size: 16px;
  font-weight: 500;
  color: var(--tam-navy);
  text-decoration: none;
  transition: background-color .15s;
  min-height: 48px;
}
.tam-drawer__link:hover { background-color: var(--tam-grey-6); }
.tam-drawer__icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  color: var(--tam-grey-3);
}
.tam-drawer__divider {
  height: 1px;
  background: var(--tam-grey-5);
  margin: 0 20px;
}
.tam-drawer__nav--legal { padding-bottom: 4px; }
.tam-drawer__plain {
  display: block;
  padding: 12px 12px;
  font-family: var(--tam-font-sans);
  font-size: 14px;
  font-weight: 400;
  color: var(--tam-grey-3);
  text-decoration: none;
  border-radius: 10px;
  transition: background-color .15s;
  min-height: 44px;
}
.tam-drawer__plain:hover { background-color: var(--tam-grey-6); color: var(--tam-navy); }

.tam-drawer__footer {
  margin-top: auto;
  padding: 20px;
  border-top: 1px solid var(--tam-grey-5);
}
.tam-drawer__cta {
  display: block;
  text-align: center;
  background: var(--tam-navy);
  color: #ffffff;
  font-family: var(--tam-font-sans);
  font-size: 15px;
  font-weight: 500;
  padding: 14px;
  border-radius: 9999px;
  text-decoration: none;
  transition: background-color .15s;
}
.tam-drawer__cta:hover { background: var(--tam-navy-soft); }
.tam-drawer__cta-note {
  text-align: center;
  font-size: 13px;
  color: var(--tam-grey-4);
  margin: 12px 0 0;
}

/* Mobile: collapse mega panel below trigger; show burger; hide desktop nav */
@media (max-width: 900px) {
  .site-header .site-header__nav,
  .tam-mega { display: none !important; }
  .tam-mobile-trigger { display: inline-flex; }
  .tam-mega__panel { position: static; width: 100%; }
  .tam-mega__items { grid-template-columns: 1fr; padding: 16px; }
}


/* ===== FOOTER ===== */
.site-footer {
  background: #ffffff;
}
.site-footer .wp-block-site-title a {
  color: var(--tam-navy);
  font-size: 22px;
  font-weight: 700;
  font-family: var(--tam-font-display);
  letter-spacing: -0.01em;
}
.site-footer__list a {
  color: var(--tam-grey-3);
  transition: color 0.2s;
}
.site-footer__list a:hover { color: var(--tam-navy); }
.site-footer__list ul,
.site-footer__list { list-style: none; padding-left: 0; }
.site-footer__list li::marker { content: none; }
.site-footer__columns h4 {
  color: var(--tam-navy) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  margin-bottom: 16px !important;
}
.partner-card {
  background: #ffffff;
  transition: border-color 0.2s, transform 0.2s;
  cursor: default;
}
.partner-card:hover {
  border-color: var(--tam-grey-4) !important;
  transform: translateY(-1px);
}
.site-footer__bottom {
  gap: 16px;
}
.site-footer__bottom strong { color: var(--tam-navy); font-weight: 600; }

.site-footer__social {
  display: flex;
  gap: 12px;
  align-items: center;
}
.site-footer__social-link {
  color: var(--tam-grey-4);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  transition: color .15s;
}
.site-footer__social-link:hover { color: var(--tam-navy); }

/* ===== HERO (v4 — flat gray, eyebrow + centered text).
 * React: bg-gray-400 py-16 md:py-28 text-center text-white,
 * Container max-w-3xl px-4 md:px-6.
 */
.tam-hero-v4 {
  background: var(--tam-grey-4);
  color: #ffffff;
  /* React py-28 = 112px (Desktop), py-16 = 64px (Mobile). px=0 in section. */
  padding: 64px 24px;
  text-align: center;
  position: relative;
}
@media (min-width: 768px) {
  .tam-hero-v4 { padding: 112px 24px; }
}
.tam-hero-v4 .tam-hero-v4__eyebrow {
  /* React: text-sm uppercase tracking-wider mb-3 md:mb-4 text-gray-200.
   * text-sm = 14px, tracking-wider = 0.05em, mb-4 = 16px. */
  display: block;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--tam-grey-5);
  margin: 0 0 12px;
}
@media (min-width: 768px) {
  .tam-hero-v4 .tam-hero-v4__eyebrow { margin-bottom: 16px; }
}
.tam-hero-v4 h1,
.tam-hero-v4 .tam-hero-v4__h1 {
  color: #ffffff !important;
  /* React: text-3xl md:text-4xl lg:text-5xl (30/36/48) font-bold
   * mb-5 md:mb-6 leading-tight. mb-5=20, mb-6=24, leading-tight=1.25. */
  font-size: clamp(var(--tam-fs-h1-mobile), 4vw, var(--tam-fs-h1-desktop)) !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  line-height: 1.25 !important;
  /* margin-inline: auto sichert Zentrierung im 768-Container (WP
   * setzt das normalerweise auto, aber unsere !important-Margin
   * wuerde das ueberschreiben). */
  margin: 0 auto 20px !important;
}
@media (min-width: 768px) {
  .tam-hero-v4 h1, .tam-hero-v4 .tam-hero-v4__h1 { margin: 0 auto 24px !important; }
}
/* Force-Wrap zwischen "im" und "Leben" nur auf Desktop (lg+).
 * Mobile/Tablet: Browser umbricht natürlich. */
.tam-hero-v4__br { display: none; }
@media (min-width: 1024px) {
  .tam-hero-v4__br { display: inline; }
}
.tam-hero-v4 p {
  color: rgba(255, 255, 255, 0.92);
  font-size: 18px;
  line-height: 1.6;
  /* React `max-w-2xl mx-auto` für Lead-Paragraph */
  max-width: 672px;
  margin: 0 auto 40px;
}
/* Mobile/Tablet: Lead-FontSize 16px (text-base statt text-lg). */
@media (max-width: 767px) {
  .tam-hero-v4 p { font-size: 16px; }
}
.tam-hero-v4 .wp-block-buttons {
  justify-content: center;
  gap: 12px;
}
.tam-hero-v4 .tam-btn-primary a {
  /* React: bg-black text-white px-8 py-3 rounded-full hover:bg-gray-800 text-sm */
  background: var(--tam-navy) !important;
  color: #ffffff !important;
  border-radius: 9999px !important;
  padding: 12px 32px !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  border: 1px solid transparent !important;
}
.tam-hero-v4 .tam-btn-primary a:hover {
  background: var(--tam-navy-soft) !important;
}
.tam-hero-v4 .tam-btn-outline a {
  /* React: border border-white text-white px-8 py-3 rounded-full hover:bg-white/10 text-sm */
  background: transparent !important;
  color: #ffffff !important;
  border: 1px solid #ffffff !important;
  border-radius: 9999px !important;
  padding: 12px 32px !important;
  font-size: 15px !important;
  font-weight: 400 !important;
}
.tam-hero-v4 .tam-btn-outline a:hover {
  background: rgba(255, 255, 255, 0.1) !important;
}
.tam-hero-v4__stats {
  /* React: kein margin-top, buttons mb-8 (32) gibt das spacing */
  margin-top: 32px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  /* React: gap-x-4 gap-y-1 md:gap-8 — Mobile: row 4 col 16, md+: 32 alles */
  gap: 4px 16px;
  font-size: 15px;
  color: var(--tam-grey-5);
  line-height: 1.5;
}
@media (min-width: 768px) {
  .tam-hero-v4__stats { gap: 32px; }
}
.tam-hero-v4__stats > span { white-space: nowrap; }
.tam-hero-v4__stats strong { color: #ffffff; font-weight: 600; }
/* Mobile (<sm 640px): Separators ausblenden, Stats wrap natürlich */
@media (max-width: 639px) {
  .tam-hero-v4__stats { gap: 4px 16px; font-size: 14px; }
  .tam-hero-v4__stats-sep { display: none; }
}

.tam-section__title.tam-section__title--left {
  text-align: left;
  margin-left: 0;
  margin-right: auto;
  max-width: none;
  font-size: clamp(28px, 4vw, 36px);
  margin-bottom: 8px;
}
.tam-section__lead.tam-section__lead--left {
  text-align: left;
  margin-left: 0;
  margin-right: auto;
  max-width: none;
  margin-bottom: 32px;
}

.tam-steps-banner {
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.tam-steps-banner__divider {
  display: flex;
  align-items: center;
  gap: 16px;
  color: var(--tam-grey-4);
  font-size: 14px;
  text-transform: lowercase;
  letter-spacing: 0.04em;
}
.tam-steps-banner__divider::before,
.tam-steps-banner__divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--tam-grey-5);
}
.tam-steps-banner__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 32px;
  padding: 20px 28px;
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
}
.tam-steps-banner__lead {
  font-size: 15px;
  color: var(--tam-grey-2);
  line-height: 1.6;
  margin: 0;
  flex: 1;
  min-width: 240px;
}
.tam-steps-banner__cta {
  display: inline-block;
  padding: 10px 20px;
  background: var(--tam-navy);
  color: #ffffff;
  border-radius: 9999px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .15s;
}
.tam-steps-banner__cta:hover { background: var(--tam-navy-soft); }

.tam-kooperationen__awards .tam-award-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border: 1px solid var(--tam-grey-5);
  border-radius: 9999px;
  font-size: 14px;
  font-weight: 500;
  color: var(--tam-navy-soft);
  text-decoration: none;
  background: #ffffff;
  transition: border-color .15s;
}
.tam-kooperationen__awards .tam-award-chip:hover { border-color: var(--tam-grey-4); }
.tam-kooperationen__awards .tam-award-chip svg { color: var(--tam-grey-3); flex-shrink: 0; }

/* ===== GENERIC SECTION WRAPPERS ===== */
.tam-section {
  /* React `py-14 md:py-20` = 56/80 */
  padding: 56px 24px;
}
@media (min-width: 768px) { .tam-section { padding: 80px 24px; } }
.tam-section--soft { background: var(--tam-grey-6); }
.tam-section--white { background: #ffffff; }
.tam-section__eyebrow {
  display: block;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--tam-grey-3);
  margin-bottom: 16px;
}
.tam-section__title {
  /* React `text-2xl md:text-3xl font-bold`: 24/30 */
  text-align: center;
  font-size: clamp(24px, 3vw, var(--tam-fs-x30)) !important;
  font-weight: 700 !important;
  color: var(--tam-navy) !important;
  letter-spacing: -0.015em !important;
  line-height: 1.2 !important;
  margin: 0 auto 8px !important;
  max-width: 800px;
}
.tam-section__lead {
  /* React lead: text-gray-500 mb-8 md:mb-10, default 16px */
  text-align: center;
  color: var(--tam-grey-3);
  font-size: 16px;
  line-height: 1.6;
  max-width: 640px;
  margin: 0 auto 32px;
}
@media (min-width: 768px) { .tam-section__lead { margin-bottom: 40px; } }

/* ===== FEATURES (4 cards) — overrides for tam/icon-card.
 * Matcht React `bg-gray-50 py-12 md:py-16` Section + Card mit
 * `text-center w-12 h-12 border-2 border-gray-800` Icon-Wrap +
 * `font-semibold text-sm mb-2` H3 + `text-xs text-gray-500` Body.
 */
.features-section {
  padding: 48px 24px !important;
  background: var(--tam-grey-6) !important;
}
@media (min-width: 768px) {
  .features-section { padding: 64px 24px !important; }
}
.features-section .wp-block-tam-icon-card {
  text-align: center;
  padding: 0;
}
.features-section .wp-block-tam-icon-card__icon {
  color: var(--tam-navy);
  width: 48px;
  height: 48px;
  border: 2px solid var(--tam-navy-soft);
  border-radius: 9999px;
  margin: 0 auto 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.features-section .wp-block-tam-icon-card__icon svg { width: 20px; height: 20px; }
.features-section .wp-block-tam-icon-card .wp-block-heading {
  font-size: 15px;
  font-weight: 600;
  color: var(--tam-navy);
  margin: 0 0 8px;
  padding: 0;
  border: none;
  display: block;
}
.features-section .wp-block-tam-icon-card p {
  font-size: 13px;
  color: var(--tam-grey-3);
  line-height: 1.4;
  margin: 0;
}

/* ===== 3-STEP CARDS (Kostenloses Erstgespräch / Passende Berater:in / Erste Beratung) ===== */
.tam-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1200px;
  margin: 0 auto;
}
.tam-steps__card {
  /* React: border-gray-200 rounded-[14px] p-6 md:p-8 */
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 14px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: border-color 0.2s, transform 0.2s;
}
@media (min-width: 768px) {
  .tam-steps__card { padding: 32px; gap: 24px; }
}
.tam-steps__card:hover {
  border-color: var(--tam-grey-4);
}
.tam-steps__number {
  /* React: text-5xl font-bold text-gray-200 mb-4 md:mb-6 */
  font-size: 48px;
  font-weight: 700;
  color: var(--tam-grey-5);
  line-height: 1;
  letter-spacing: -0.02em;
}
.tam-steps__heading {
  /* React: text-lg font-semibold mb-3 */
  font-size: 18px;
  font-weight: 600;
  color: var(--tam-navy);
  margin: 0;
}
.tam-steps__body {
  /* React: text-sm text-gray-500 leading-relaxed */
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.6;
  margin: 0;
  flex-grow: 1;
}
.tam-steps__divider {
  border: 0;
  border-top: 1px solid var(--tam-grey-5);
  margin: 8px 0 0;
}
.tam-steps__cta a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--tam-navy) !important;
  color: #ffffff !important;
  padding: 12px 24px !important;
  border-radius: 9999px !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  border: none !important;
}
.tam-steps__cta a:hover { background: var(--tam-navy-soft) !important; }

/* ===== KOOPERATIONEN (partner cards row).
 * React: bg-gray-50 py-10 md:py-14 (40/56), max-w-6xl 1152, kleine
 * Subsection-Heading H3/18px, partner-pills via flex/grid mit
 * border-gray-200 rounded-lg.
 */
.tam-kooperationen {
  background: var(--tam-grey-6);
  padding: 40px 24px;
}
@media (min-width: 768px) { .tam-kooperationen { padding: 56px 24px; } }
.tam-kooperationen__grid {
  /* Desktop: flex-row mit md:min-w-[180px] cards. Mobile: 2x2. */
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  max-width: 1152px;
  margin: 0 auto;
}
.tam-kooperationen__card {
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 8px;
  padding: 12px 24px;
  text-align: center;
  font-size: 15px;
  font-weight: 500;
  color: var(--tam-grey-2);
  line-height: 1.4;
  min-height: 56px;
  min-width: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ===== THEMEN (5 cards in grid).
 * React: py-14 md:py-20 (56/80), max-w-6xl, 3-cols Desktop +
 * 2-cols Tablet, Card border-gray-200 rounded-xl p-6 md:p-8,
 * Icon w-12 h-12 border border-gray-300 (1px, hell), svg w-5 h-5
 * text-gray-600. H3 font-semibold mb-2. Body text-sm gray-500.
 */
.tam-themen {
  background: #ffffff;
  padding: 56px 24px;
}
@media (min-width: 768px) { .tam-themen { padding: 80px 24px; } }
.tam-themen__grid {
  max-width: 1152px;
  margin: 0 auto;
  gap: 16px;
}
@media (min-width: 768px) { .tam-themen__grid { gap: 24px; } }
/* Override tam/icon-card defaults for Themen-specific look */
.tam-themen .wp-block-tam-icon-card {
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 14px;
  padding: 24px;
  text-align: left;
  transition: border-color .2s;
}
@media (min-width: 768px) {
  .tam-themen .wp-block-tam-icon-card { padding: 32px; }
}
.tam-themen .wp-block-tam-icon-card:hover { border-color: var(--tam-grey-4); }
.tam-themen .wp-block-tam-icon-card__icon {
  width: 48px;
  height: 48px;
  border: 1px solid var(--tam-grey-5);
  border-radius: 9999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--tam-grey-2);
  margin: 0 0 20px;
  background: transparent;
}
.tam-themen .wp-block-tam-icon-card__icon svg { width: 20px; height: 20px; }
.tam-themen .wp-block-tam-icon-card .wp-block-heading {
  /* React: <h3 class="font-semibold mb-2"> default text-lg = 18px */
  font-size: 18px;
  font-weight: 600;
  color: var(--tam-navy);
  margin: 0 0 8px;
  padding: 0;
  border: none;
  display: block;
  text-align: left;
}
.tam-themen .wp-block-tam-icon-card p {
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.5;
  margin: 0;
  text-align: left;
}

/* ===== HUMANISM TEASER ===== */
.tam-humanism {
  background: #ffffff;
  padding: 64px 24px 96px;
  border-bottom: 1px solid var(--tam-grey-5);
}
.tam-humanism__inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.tam-humanism__text {
  font-size: 18px;
  color: var(--tam-navy-soft);
  line-height: 1.6;
  max-width: 720px;
  margin: 0;
}
.tam-humanism__text strong { color: var(--tam-navy); font-weight: 700; }
.tam-humanism__cta a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #ffffff !important;
  color: var(--tam-navy) !important;
  border: 1px solid var(--tam-navy) !important;
  padding: 14px 28px !important;
  border-radius: 9999px !important;
  font-size: 16px !important;
  font-weight: 500 !important;
}
.tam-humanism__cta a:hover { background: var(--tam-grey-6) !important; }

/* ===== BERATER PREVIEW (Home).
 * React: bg-gray-50 py-14 md:py-20, max-w-[1312px], H2 24/30
 * "Unsere Berater:innen", lead text-gray-500 14px "Qualifiziert,
 * supervidiert, einfühlsam.", "Alle ansehen →" Link.
 */
/* Slide-Track (Desktop): 3 Karten sichtbar, Breite = (100% − 2×gap-5) / 3.
 * (Als CSS-Regel statt Tailwind-Arbitrary, das nested calc nicht kompiliert.) */
[data-tam-berater-track] > a {
  width: calc((100% - 41px) / 3);
  flex-shrink: 0;
}
.tam-berater {
  background: var(--tam-grey-6);
  padding: 56px 24px;
}
@media (min-width: 768px) { .tam-berater { padding: 80px 24px; } }
.tam-berater__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  max-width: 1312px;
  margin: 0 auto 32px;
  gap: 16px;
  flex-wrap: wrap;
}
@media (min-width: 768px) { .tam-berater__header { margin-bottom: 40px; } }
.tam-berater__header h2,
.tam-berater__title h2 {
  font-size: clamp(24px, 3vw, var(--tam-fs-x30)) !important;
  font-weight: 700 !important;
  margin: 0 0 4px !important;
  color: var(--tam-navy) !important;
  letter-spacing: -0.015em !important;
  line-height: 1.2 !important;
}
.tam-berater__header p:not(.tam-berater__all p),
.tam-berater__title p {
  font-size: 15px;
  color: var(--tam-grey-3);
  margin: 0;
}
.tam-berater__all a {
  font-size: 15px;
  font-weight: 400;
  color: var(--tam-grey-3);
  margin-top: 8px;
}
.tam-berater__all a:hover { color: var(--tam-navy); }

/* Carousel: arrow nav (desktop) + scroll-snap (mobile) */
.tam-berater__carousel {
  position: relative;
  max-width: 1312px;
  margin: 0 auto;
  padding: 0 56px;  /* React `px-14` für Pfeil-Buttons-Space */
}
.tam-berater__viewport {
  overflow: hidden;
}
.tam-berater__track {
  display: flex;
  gap: 24px;
  transition: transform 0.3s ease-out;
  will-change: transform;
}
.tam-berater__nav {
  /* React: w-10 h-10 (40px) rounded-full border-gray-300 bg-white shadow-sm */
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 9999px;
  color: var(--tam-navy);
  cursor: pointer;
  z-index: 2;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  transition: border-color .15s, opacity .15s;
}
.tam-berater__nav:hover { border-color: var(--tam-navy); }
.tam-berater__nav:disabled { opacity: 0.4; cursor: default; }
.tam-berater__nav--prev { left: 0; }
.tam-berater__nav--next { right: 0; }
.tam-berater__card {
  /* React: rounded-xl (12px), border-gray-200, hover:border-gray-400 */
  flex: 0 0 calc((100% - 48px) / 3);
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.2s;
}
.tam-berater__card:hover {
  border-color: var(--tam-grey-4);
}
.tam-berater__photo {
  /* React: aspect-[4/3] bg-gray-200 */
  background: var(--tam-grey-5);
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  color: var(--tam-grey-4);
}
.tam-berater__placeholder { font-size: 15px; color: var(--tam-grey-4); }
.tam-berater__body {
  /* React: p-6 bg-white */
  padding: 24px;
  background: #ffffff;
}
.tam-berater__name {
  /* React: font-semibold mb-1 (default base 16px) */
  font-size: 16px;
  font-weight: 600;
  color: var(--tam-navy);
  margin: 0 0 4px;
}
.tam-berater__meta {
  /* React: text-sm text-gray-500 mb-3 */
  font-size: 15px;
  color: var(--tam-grey-3);
  margin: 0 0 12px;
}
.tam-berater__tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.tam-berater__tag {
  /* React: text-xs border border-gray-300 px-2 py-1 rounded (4px) */
  display: inline-block;
  padding: 4px 8px;
  border: 1px solid var(--tam-grey-5);
  border-radius: 4px;
  font-size: 13px;
  color: var(--tam-navy-soft);
  white-space: nowrap;
}

/* ===== DER UNTERSCHIED (4 USPs + group photo).
 * React: max-w-[1312px] py-14 md:py-20. 2-col grid 1:1 mit
 * gap-10 md:gap-16. H2 24/30. Lead text-gray-500 16px.
 * USP-Items flex gap-4 mit Icon w-5 h-5 OHNE Border-Wrapper.
 * Photo aspect-[16/10] bg-gray-100 rounded-xl.
 */
.tam-difference {
  background: #ffffff;
  padding: 56px 24px;
}
@media (min-width: 768px) { .tam-difference { padding: 80px 24px; } }
.tam-difference__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  max-width: 1312px;
  margin: 0 auto;
  align-items: center;
}
@media (min-width: 768px) { .tam-difference__inner { gap: 64px; } }
.tam-difference__intro h2,
.tam-difference__title {
  font-size: clamp(24px, 3vw, var(--tam-fs-x30)) !important;
  font-weight: 700 !important;
  letter-spacing: -0.015em !important;
  margin: 0 0 8px !important;
  color: var(--tam-navy) !important;
  line-height: 1.2 !important;
}
.tam-difference__intro p,
.tam-difference__lead {
  font-size: 16px !important;
  color: var(--tam-grey-3) !important;
  margin: 0 0 32px !important;
  line-height: 1.6 !important;
}
@media (min-width: 768px) {
  .tam-difference__intro p, .tam-difference__lead { margin-bottom: 40px !important; }
}
.tam-difference__list {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.tam-difference__item {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 20px;
  align-items: start;
}
.tam-difference__icon {
  color: var(--tam-navy);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 4px;
}
.tam-difference__icon svg { width: 24px; height: 24px; stroke: var(--tam-navy); fill: none; stroke-width: 1.8; }
.tam-difference__heading {
  font-size: 18px;
  font-weight: 700;
  color: var(--tam-navy);
  margin: 0 0 8px;
}
.tam-difference__body {
  font-size: 16px;
  color: var(--tam-grey-3);
  line-height: 1.6;
  margin: 0;
}
.tam-difference__media {
  /* React: bg-gray-100 rounded-xl aspect-[16/10] mit Users-Icon zentriert */
  background: var(--tam-grey-6);
  border-radius: 12px;
  aspect-ratio: 16 / 10;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
  font-size: 15px;
  color: var(--tam-grey-4);
}
.tam-difference__media svg { width: 48px; height: 48px; stroke: var(--tam-grey-5); fill: none; stroke-width: 1.5; }
.tam-difference__media-label {
  font-size: 15px;
  font-weight: 500;
  color: var(--tam-grey-4);
  margin: 12px 0 4px;
}
.tam-difference__media-sub {
  font-size: 13px;
  color: var(--tam-grey-4);
  margin: 0;
}

/* ===== TESTIMONIALS — overrides for tam/testimonials.
 * React: bg-gray-50 py-14 md:py-20, max-w-6xl 1152, H2 24/30 mb-8.
 * Card: bg-white border-gray-200 rounded-xl p-5 md:p-6.
 * Stars Unicode schwarz text-sm. Quote text-sm gray-600 mb-5.
 * Author text-sm font-semibold.
 */
.tam-testimonials-v4 {
  background: var(--tam-grey-6);
  padding: 56px 24px !important;
}
@media (min-width: 768px) {
  .tam-testimonials-v4 { padding: 80px 24px !important; }
}
.tam-testimonials-v4 .wp-block-tam-testimonials__header {
  text-align: left !important;
  max-width: 1152px;
  margin: 0 auto 32px !important;
}
@media (min-width: 768px) {
  .tam-testimonials-v4 .wp-block-tam-testimonials__header { margin-bottom: 40px !important; }
}
.tam-testimonials-v4 h2 {
  font-size: clamp(24px, 3vw, var(--tam-fs-x30)) !important;
  font-weight: 700 !important;
  color: var(--tam-navy) !important;
  /* React: mb-8 md:mb-10 = 32/40 */
  margin: 0 0 32px !important;
  letter-spacing: -0.015em !important;
}
@media (min-width: 768px) {
  .tam-testimonials-v4 h2 { margin-bottom: 40px !important; }
}
.tam-testimonials-v4 .wp-block-tam-testimonials__label,
.tam-testimonials-v4 .wp-block-tam-testimonials__description { display: none !important; }
.tam-testimonials-v4 .wp-block-tam-testimonials__grid {
  max-width: 1152px;
  margin: 0 auto !important;
}
.tam-testimonials-v4 .wp-block-tam-testimonial-card {
  background: #ffffff !important;
  border: 1px solid var(--tam-grey-5) !important;
  border-radius: 12px !important;
  padding: 20px !important;
  box-shadow: none !important;
}
@media (min-width: 768px) {
  .tam-testimonials-v4 .wp-block-tam-testimonial-card { padding: 24px !important; }
}
.tam-testimonials-v4 .wp-block-tam-testimonial-card .stars,
.tam-testimonials-v4 .wp-block-tam-testimonial-card__stars { color: var(--tam-navy) !important; font-size: 15px !important; gap: 2px !important; margin-bottom: 16px; }
.tam-testimonials-v4 .wp-block-tam-testimonial-card blockquote,
.tam-testimonials-v4 .wp-block-tam-testimonial-card__quote {
  color: var(--tam-grey-2) !important;
  font-size: 15px !important;
  font-style: normal !important;
  line-height: 1.6 !important;
  margin: 0 0 20px !important;
}
.tam-testimonials-v4 .wp-block-tam-testimonial-card .author,
.tam-testimonials-v4 .wp-block-tam-testimonial-card__author,
.tam-testimonials-v4 .wp-block-tam-testimonial-card cite {
  color: var(--tam-navy) !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  font-style: normal !important;
}

/* ===== FINAL CTA.
 * React: max-w-3xl 768 py-14 md:py-20 text-center. H2 24/30. Lead
 * text-gray-500. Button bg-black px-8 py-3 rounded-full text-sm.
 * Trust text-xs gray-400. FAQ-Link text-sm gray-400.
 */
.tam-final-cta {
  background: #ffffff;
  padding: 56px 24px;
  text-align: center;
}
@media (min-width: 768px) {
  .tam-final-cta { padding: 80px 24px; }
}
.tam-final-cta h2 {
  font-size: clamp(24px, 3vw, var(--tam-fs-x30));
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--tam-navy);
  margin: 0 0 16px;
}
.tam-final-cta p {
  font-size: 16px;
  color: var(--tam-grey-3);
  margin: 0 0 24px;
}
@media (min-width: 768px) { .tam-final-cta p { margin-bottom: 32px; } }
.tam-final-cta .wp-block-buttons { justify-content: center; }
.tam-final-cta .tam-btn-primary a {
  background: var(--tam-navy) !important;
  color: #ffffff !important;
  padding: 12px 32px !important;
  border-radius: 9999px !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  border: 1px solid transparent !important;
}
.tam-final-cta .tam-btn-primary a:hover { background: var(--tam-navy-soft) !important; }
.tam-final-cta__trust {
  margin-top: 20px !important;
  font-size: 13px !important;
  color: var(--tam-grey-4) !important;
}
.tam-final-cta__faq {
  margin-top: 24px !important;
  font-size: 15px !important;
  color: var(--tam-grey-4) !important;
}
@media (min-width: 768px) { .tam-final-cta__faq { margin-top: 32px !important; } }
.tam-final-cta__faq a { color: var(--tam-grey-3); text-decoration: underline; }
.tam-final-cta__faq a:hover { color: var(--tam-navy); }

/* ===== UTILITY: max-width content ===== */
.tam-content-1200 { max-width: 1200px; margin-left: auto; margin-right: auto; }

/* ===== MOBILE TOUCH TARGETS ===== */

/* Hamburger menu button: min 44x44 touch target.
   Do NOT set display:flex here — WP's own media query hides it on desktop. */
.site-header .wp-block-navigation__responsive-container-open {
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 10px;
}

/* Site title: ensure 44px touch height */
.site-header .wp-block-site-title a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

/* Header CTA: ensure 44px height */
.site-header__ctas .wp-block-button__link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

/* Text-links that serve as CTAs */
.tam-berater__all a,
.tam-humanism__cta a,
.site-footer__list a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 920px) {
  .site-header__ctas .header-cta-secondary { display: none; }
  .features-section .wp-block-columns { flex-wrap: wrap !important; }
  .features-section .wp-block-column { flex-basis: 50% !important; }
  .tam-steps,
  .tam-kooperationen__grid,
  .tam-themen__grid {
    grid-template-columns: 1fr 1fr !important;
  }
  /* Berater carousel on tablet: 2-up cards */
  .tam-berater__card { flex-basis: calc((100% - 24px) / 2); }
  .tam-berater__nav--prev { left: 4px; }
  .tam-berater__nav--next { right: 4px; }
  .tam-difference__inner { grid-template-columns: 1fr !important; gap: 48px; }
  .tam-difference__media { aspect-ratio: 16 / 10; }
  .site-footer__columns { flex-wrap: wrap !important; }
  .site-footer__columns .wp-block-column { flex-basis: 50% !important; }
}

@media (max-width: 600px) {
  .tam-hero-v4 { padding: 64px 20px 80px; }
  /* H1-Sizing kommt jetzt aus `clamp()` direkt am .tam-hero-v4 h1 selektor */
  .tam-section { padding: 64px 20px; }
  .tam-steps,
  .tam-themen__grid {
    grid-template-columns: 1fr !important;
  }
  /* Kooperationen Mobile: 2x2 statt 1-col stack (matcht React grid-cols-2) */
  .tam-kooperationen__grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
  }
  .tam-kooperationen__card {
    padding: 16px 12px;
    min-height: 64px;
    font-size: 14px;
  }
  .features-section .wp-block-column { flex-basis: 100% !important; }
  .site-footer__columns .wp-block-column { flex-basis: 100% !important; }
  .site-footer__bottom { flex-direction: column; align-items: flex-start; }

  /* Berater carousel on mobile: track-scroll (matcht initMobileSnap),
   * hide arrow nav, scale/opacity fuer non-active. */
  .tam-berater__nav { display: none; }
  .tam-berater__viewport { overflow: visible; }
  .tam-berater__track {
    transform: none !important;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    scroll-snap-type: x mandatory;
    margin: 0 -20px;
    padding: 0 10vw;
  }
  .tam-berater__track::-webkit-scrollbar { display: none; }
  .tam-berater__card {
    flex: 0 0 auto;
    flex-basis: 80vw;
    max-width: 360px;
    scroll-snap-align: center;
    transition: transform .2s ease-out, opacity .2s ease-out;
    transform: scale(0.94);
    opacity: 0.7;
  }
  .tam-berater__card.is-active {
    transform: scale(1);
    opacity: 1;
  }
}

/* ============================================================
 * SUB-PAGE SHARED PRIMITIVES
 * Used by Beratung, Preise, Beraterinnen, FAQ, Kontakt etc.
 * ============================================================ */

.tam-page { background: #ffffff; }
.tam-page-hero {
  text-align: center;
  padding: 64px 24px;
}
.tam-page-hero--gray {
  background: var(--tam-grey-4);
  color: #ffffff;
  padding: 96px 24px 112px;
}
.tam-page-hero__inner {
  max-width: 768px;
  margin: 0 auto;
}
.tam-page-hero__title {
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.015em;
  margin: 0 0 24px;
  color: inherit;
}
.tam-page-hero__lead {
  font-size: 17px;
  line-height: 1.6;
  margin: 0 auto;
  max-width: 640px;
  color: rgba(255, 255, 255, 0.92);
}
.tam-page-hero:not(.tam-page-hero--gray) .tam-page-hero__lead { color: var(--tam-grey-3); }

.tam-eyebrow {
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--tam-grey-3);
  margin: 0 0 8px;
}

.tam-pill {
  display: inline-block;
  padding: 4px 14px;
  border: 1px solid var(--tam-grey-5);
  border-radius: 9999px;
  font-size: 14px;
  font-weight: 500;
  color: var(--tam-navy-soft);
  white-space: nowrap;
}

.tam-btn-outline-sm {
  display: inline-block;
  padding: 8px 22px;
  border: 1px solid var(--tam-navy);
  border-radius: 9999px;
  font-size: 14px;
  font-weight: 500;
  color: var(--tam-navy);
  text-decoration: none;
  transition: background-color .15s, color .15s;
}
.tam-btn-outline-sm:hover { background: var(--tam-navy); color: #ffffff; }
.tam-btn-outline {
  display: inline-block;
  padding: 12px 26px;
  border: 1px solid var(--tam-navy);
  border-radius: 9999px;
  font-size: 15px;
  font-weight: 500;
  color: var(--tam-navy);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .15s, color .15s;
}
.tam-btn-outline:hover { background: var(--tam-grey-6); }
.tam-btn-primary-lg {
  display: inline-block;
  padding: 14px 32px;
  background: var(--tam-navy);
  color: #ffffff;
  border-radius: 9999px;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color .15s;
}
.tam-btn-primary-lg:hover { background: var(--tam-navy-soft); }

/* ============================================================
 * BERATUNG PAGE
 * ============================================================ */

.tam-process-section {
  padding: 64px 24px;
}
.tam-process-section__inner {
  max-width: 1312px;
  margin: 0 auto;
}
.tam-process-section h2 {
  text-align: left;
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  margin: 0 0 48px;
  letter-spacing: -0.015em;
  max-width: none;
}
.tam-process-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 48px;
}
.tam-process-steps {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.tam-process-step {
  display: flex;
  gap: 24px;
}
.tam-process-step__num {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border: 2px solid var(--tam-navy);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
  color: var(--tam-navy);
}
.tam-process-step__content { flex: 1; min-width: 0; }
.tam-process-step__title {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 4px;
  color: var(--tam-navy);
}
.tam-process-step__eyebrow {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--tam-grey-3);
  margin: 0 0 12px;
  font-weight: 500;
}
.tam-process-step__desc {
  font-size: 15px;
  color: var(--tam-grey-2);
  line-height: 1.6;
  margin: 0 0 16px;
}
.tam-process-step__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
.tam-process-step__details {
  display: inline-block;
  width: 100%;
}
.tam-process-step__details summary {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 14px;
  color: var(--tam-grey-3);
  cursor: pointer;
  list-style: none;
  transition: color .15s;
}
.tam-process-step__details summary::-webkit-details-marker { display: none; }
.tam-process-step__details summary:hover { color: var(--tam-navy); }
.tam-process-step__details[open] summary { color: var(--tam-navy); }
.tam-process-step__panel {
  margin-top: 16px;
  padding: 20px;
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  font-size: 15px;
  color: var(--tam-grey-2);
}
.tam-process-step__panel-title {
  font-weight: 600;
  color: var(--tam-navy);
  margin: 0 0 16px;
}
.tam-process-step__panel-foot {
  font-size: 13px;
  color: var(--tam-grey-3);
  margin: 12px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--tam-grey-5);
}

.tam-mini-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.tam-mini-timeline li {
  display: flex;
  gap: 12px;
  padding: 4px 0;
  position: relative;
}
.tam-mini-timeline li:not(:last-child)::before {
  content: "";
  position: absolute;
  left: 13px;
  top: 32px;
  bottom: -4px;
  width: 1px;
  background: var(--tam-grey-5);
}
.tam-mini-timeline__num {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border: 1px solid var(--tam-navy);
  border-radius: 9999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 600;
  background: #ffffff;
}
.tam-mini-timeline li > span:last-child,
.tam-mini-timeline li > div { padding-top: 4px; }
.tam-mini-timeline--rich li { padding-bottom: 16px; }
.tam-mini-timeline--rich li > div { display: flex; flex-direction: column; gap: 2px; }
.tam-mini-timeline--rich strong { color: var(--tam-navy); font-weight: 500; }
.tam-mini-timeline--rich span { color: var(--tam-grey-3); }

.tam-process-sidebar { display: block; }
.tam-process-sidebar__media {
  position: sticky;
  top: 96px;
}
.tam-process-sidebar__placeholder {
  background: var(--tam-grey-5);
  border-radius: 12px;
  aspect-ratio: 3 / 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: var(--tam-grey-4);
  text-align: center;
  font-size: 13px;
}
.tam-process-sidebar__placeholder span:first-child { font-size: 15px; font-weight: 500; }

/* DIAGNOSTIK SECTION */
.tam-diag-section { padding: 0 24px 64px; }
.tam-diag-section__inner { max-width: 1312px; margin: 0 auto; }
.tam-diag-section h2 {
  text-align: left;
  font-size: clamp(20px, 2.5vw, 24px);
  font-weight: 700;
  margin: 0 0 24px;
  max-width: none;
  letter-spacing: -0.01em;
}
.tam-diag-card {
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 32px;
}
.tam-diag-card__intro {
  font-size: 16px;
  color: var(--tam-grey-2);
  line-height: 1.6;
  margin: 0 0 32px;
}
.tam-diag-card__grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 32px;
}
.tam-diag-card__steps-title {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 24px;
  color: var(--tam-navy);
}
.tam-diag-step {
  display: flex;
  gap: 16px;
  margin-bottom: 24px;
}
.tam-diag-step:last-child { margin-bottom: 0; }
.tam-diag-step__num {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border: 2px solid var(--tam-navy);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
}
.tam-diag-step__title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 4px;
  color: var(--tam-navy);
}
.tam-diag-step__desc {
  font-size: 14px;
  color: var(--tam-grey-3);
  line-height: 1.6;
  margin: 0;
}
.tam-diag-price {
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 24px;
}
.tam-diag-price__amount {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 4px;
  color: var(--tam-navy);
}
.tam-diag-price__note {
  font-size: 13px;
  color: var(--tam-grey-3);
  margin: 0 0 20px;
}
.tam-diag-price__list {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  font-size: 15px;
  color: var(--tam-grey-2);
}
.tam-diag-price__list li {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}
.tam-diag-price__list svg { flex-shrink: 0; margin-top: 2px; color: var(--tam-navy); }
.tam-diag-price__cta {
  display: block;
  text-align: center;
  background: var(--tam-navy);
  color: #ffffff;
  padding: 10px 24px;
  border-radius: 9999px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color .15s;
}
.tam-diag-price__cta:hover { background: var(--tam-navy-soft); }

/* BERATUNG VS THERAPIE */
.tam-vs-section {
  background: var(--tam-grey-6);
  padding: 56px 24px;
}
.tam-vs-section__inner { max-width: 1312px; margin: 0 auto; }
.tam-vs-section h2 {
  text-align: left;
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  margin: 0 0 40px;
  max-width: none;
}
.tam-vs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
}
.tam-vs-grid__title {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 24px;
  color: var(--tam-navy);
}
.tam-vs-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.tam-vs-list li {
  display: flex;
  gap: 12px;
  margin-bottom: 16px;
  font-size: 16px;
  color: var(--tam-grey-2);
  line-height: 1.5;
}
.tam-vs-list li svg {
  flex-shrink: 0;
  margin-top: 2px;
}
.tam-vs-list--check li svg { color: #16a34a; }
.tam-vs-list--cross li svg { color: #dc2626; }
.tam-vs-note {
  margin-top: 32px;
  padding: 20px;
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
}
.tam-vs-note p {
  font-size: 15px;
  color: var(--tam-grey-2);
  line-height: 1.6;
  margin: 0;
}

/* COMPARISON TABLE */
.tam-compare-section { padding: 56px 24px; }
.tam-compare-section__inner { max-width: 1312px; margin: 0 auto; }
.tam-compare-section h2 {
  text-align: left;
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  margin: 0 0 16px;
  max-width: none;
}
.tam-compare-section .tam-section__lead {
  text-align: left;
  margin: 0 0 48px;
  max-width: none;
}
.tam-compare-table-wrap { overflow-x: auto; }

/* Mobile-Layout-Switch: < 768px Per-Row-Cards statt Tabelle */
.tam-compare-mobile { display: none; }
@media (max-width: 767px) {
  .tam-compare-table-wrap { display: none; }
  .tam-compare-mobile {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .tam-compare-mobile__row {
    border: 1px solid var(--tam-grey-5);
    border-radius: 12px;
    overflow: hidden;
    background: #ffffff;
  }
  .tam-compare-mobile__label {
    font-size: 13px;
    font-weight: 500;
    color: var(--tam-grey-3);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 12px 16px 0;
    margin: 0;
  }
  .tam-compare-mobile__tam {
    padding: 12px 16px;
    background: var(--tam-grey-6);
    border-bottom: 1px solid var(--tam-grey-5);
  }
  .tam-compare-mobile__tam-eyebrow {
    font-size: 12px;
    font-weight: 600;
    color: var(--tam-navy);
    margin: 0 0 2px;
  }
  .tam-compare-mobile__tam-text {
    font-size: 15px;
    color: var(--tam-navy-soft);
    line-height: 1.4;
    margin: 0;
  }
  .tam-compare-mobile__tam-text--bold {
    font-weight: 600;
    color: var(--tam-navy);
  }
  .tam-compare-mobile__others {
    display: grid;
    grid-template-columns: 1fr 1fr;
    /* divide-x */
  }
  .tam-compare-mobile__other {
    padding: 12px 14px;
    font-size: 13px;
  }
  .tam-compare-mobile__other + .tam-compare-mobile__other {
    border-left: 1px solid var(--tam-grey-5);
  }
  .tam-compare-mobile__other-label {
    color: var(--tam-grey-4);
    margin: 0 0 2px;
    font-size: 12px;
  }
  .tam-compare-mobile__other-text {
    color: var(--tam-grey-2);
    margin: 0;
    line-height: 1.4;
  }
  .tam-compare-mobile__viz {
    margin-top: 8px;
    height: 4px;
    background: var(--tam-grey-5);
    border-radius: 9999px;
    overflow: hidden;
  }
  .tam-compare-mobile__viz-bar {
    height: 100%;
    background: var(--tam-grey-3);
    border-radius: 9999px;
  }
  .tam-compare-mobile__viz-bar--primary {
    background: var(--tam-navy);
  }
}
.tam-compare-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}
.tam-compare-table thead tr {
  border-bottom: 2px solid var(--tam-navy);
}
.tam-compare-table th {
  text-align: left;
  padding: 16px;
  font-weight: 600;
  color: var(--tam-navy);
}
.tam-compare-table th.tam-compare-table__highlight {
  background: var(--tam-grey-6);
  font-weight: 700;
}
.tam-compare-table tbody tr { border-bottom: 1px solid var(--tam-grey-5); }
.tam-compare-table td {
  padding: 16px;
  color: var(--tam-grey-3);
  vertical-align: top;
}
.tam-compare-table td.tam-compare-table__label {
  color: var(--tam-navy);
  font-weight: 500;
}
.tam-compare-table td.tam-compare-table__highlight {
  background: var(--tam-grey-6);
  color: var(--tam-navy);
}
.tam-compare-table td.tam-compare-table__bold { font-weight: 600; }
.tam-compare-note {
  margin-top: 32px;
  padding: 20px;
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
}
.tam-compare-note p {
  font-size: 15px;
  color: var(--tam-grey-2);
  line-height: 1.6;
  margin: 0;
}
.tam-compare-faqnudge {
  margin-top: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 24px;
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
}
.tam-compare-faqnudge__title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 4px;
  color: var(--tam-navy);
}
.tam-compare-faqnudge__desc {
  font-size: 15px;
  color: var(--tam-grey-3);
  margin: 0;
}

/* METHODS */
.tam-methods-section {
  background: var(--tam-grey-6);
  padding: 56px 24px;
}
.tam-methods-section__inner { max-width: 1312px; margin: 0 auto; }
.tam-methods-intro {
  max-width: 768px;
  margin: 0 auto 48px;
  text-align: center;
}
.tam-methods-intro h2 {
  text-align: center;
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  margin: 0 0 24px;
  max-width: none;
}
.tam-methods-intro .tam-section__lead {
  margin: 0;
  max-width: none;
}
.tam-methods-3cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 64px;
}
.tam-methods-card {
  background: #ffffff;
  padding: 24px;
  border-radius: 12px;
  border: 1px solid var(--tam-grey-5);
}
.tam-methods-card__title {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 8px;
  color: var(--tam-navy);
}
.tam-methods-card__desc {
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.6;
  margin: 0;
}
.tam-methods-eyebrow { margin-bottom: 24px; }
.tam-methods-list {
  border-top: 1px solid var(--tam-grey-5);
  border-bottom: 1px solid var(--tam-grey-5);
}
.tam-methods-item { border-bottom: 1px solid var(--tam-grey-5); }
.tam-methods-item:last-child { border-bottom: 0; }
.tam-methods-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 12px;
  font-size: 16px;
  font-weight: 500;
  color: var(--tam-navy);
  cursor: pointer;
  list-style: none;
  transition: background-color .15s;
}
.tam-methods-item summary::-webkit-details-marker { display: none; }
.tam-methods-item summary:hover { background: rgba(243, 244, 246, 0.5); }
.tam-methods-item__chev {
  color: var(--tam-grey-4);
  transition: transform .2s;
}
.tam-methods-item[open] .tam-methods-item__chev { transform: rotate(180deg); }
.tam-methods-item__body {
  padding: 0 12px 24px;
}
.tam-methods-item__body blockquote {
  border-left: 2px solid var(--tam-navy);
  padding-left: 16px;
  margin: 0 0 16px;
  font-size: 15px;
  font-style: italic;
  color: var(--tam-navy-soft);
  line-height: 1.6;
}
.tam-methods-item__body p {
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.6;
  margin: 0;
}

/* END CTA */
.tam-end-cta { padding: 64px 24px; text-align: center; }
.tam-end-cta__inner { max-width: 768px; margin: 0 auto; }
.tam-end-cta__title {
  font-size: clamp(24px, 3vw, 36px);
  font-weight: 700;
  margin: 0 0 16px;
  color: var(--tam-navy);
}
.tam-end-cta__lead {
  font-size: 16px;
  color: var(--tam-grey-3);
  margin: 0 0 32px;
  line-height: 1.6;
}

/* RESPONSIVE: Beratung page */
@media (max-width: 920px) {
  .tam-process-grid { grid-template-columns: 1fr; }
  .tam-process-sidebar { display: none; }
  .tam-diag-card__grid { grid-template-columns: 1fr; }
  .tam-vs-grid { grid-template-columns: 1fr; gap: 32px; }
  .tam-methods-3cards { grid-template-columns: 1fr; }
  .tam-compare-faqnudge { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 600px) {
  .tam-page-hero--gray { padding: 48px 20px 64px; }
  .tam-process-section,
  .tam-vs-section,
  .tam-compare-section,
  .tam-methods-section,
  .tam-end-cta { padding: 48px 20px; }
  .tam-diag-section { padding: 0 20px 48px; }
  .tam-diag-card { padding: 24px 20px; }
  .tam-process-step { gap: 16px; }
  .tam-process-step__num { width: 40px; height: 40px; font-size: 16px; }
  .tam-compare-table { font-size: 13px; }
  .tam-compare-table th,
  .tam-compare-table td { padding: 10px 8px; }
}

/* ============================================================
 * PREISE PAGE
 * ============================================================ */

/* "Zur Honorartabelle"-Sprunglinks: Puls auf dem Zielblock nach dem Scroll
   (Klasse setzt assets/js/tabs.js beim Klick). Outline statt box-shadow, damit
   der bestehende Karten-Schatten des <details> unangetastet bleibt. */
.tam-details-flash {
  outline: 3px solid rgba(74, 150, 220, 0);
  outline-offset: 4px;
  animation: tam-details-flash 1.5s ease-out 0.4s both;
}
@keyframes tam-details-flash {
  0%, 30% { outline-color: rgba(74, 150, 220, 0.5); }
  100% { outline-color: rgba(74, 150, 220, 0); }
}

.tam-preise-hero {
  max-width: 880px;
  margin: 0 auto;
  padding: 80px 24px 56px;
  text-align: center;
}
.tam-preise-hero__title {
  font-size: clamp(28px, 4vw, 36px);
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 0 0 16px;
}
.tam-preise-hero__lead {
  font-size: 17px;
  color: var(--tam-grey-3);
  margin: 0 0 24px;
  line-height: 1.6;
}
.tam-preise-hero__trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 24px;
  font-size: 14px;
  color: var(--tam-grey-3);
}
.tam-preise-hero__trust span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.tam-preise-cards-section {
  max-width: 1312px;
  margin: 0 auto;
  padding: 0 24px 32px;
}
.tam-preise-cards { /* tam-mobile-snap Wrapper */ }
.tam-preise-cards__track {
  /* Desktop (>= 1024px lg): 4-col Grid. Tablet: 2-col. Mobile: snap-scroll */
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.tam-preise-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 24px;
  background: #ffffff;
}
.tam-preise-card__tag {
  display: inline-block;
  align-self: flex-start;
  font-size: 12px;
  font-weight: 500;
  background: var(--tam-grey-6);
  color: var(--tam-grey-3);
  padding: 4px 8px;
  border-radius: 4px;
  margin-bottom: 16px;
}
.tam-preise-card__title {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 12px;
  color: var(--tam-navy);
}
.tam-preise-card__price {
  font-size: 28px;
  font-weight: 700;
  margin: 0 0 4px;
  color: var(--tam-navy);
}
.tam-preise-card__price-note {
  font-size: 13px;
  color: var(--tam-grey-4);
  margin-bottom: 16px;
}
.tam-preise-card__desc {
  font-size: 14px;
  color: var(--tam-grey-3);
  margin: 0 0 16px;
  line-height: 1.5;
}
.tam-preise-card__features {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  flex: 1;
}
.tam-preise-card__features li {
  display: flex;
  gap: 8px;
  font-size: 14px;
  margin-bottom: 8px;
  color: var(--tam-navy-soft);
}
.tam-preise-card__features li svg { flex-shrink: 0; margin-top: 3px; }
.tam-preise-card__cta {
  display: block;
  text-align: center;
  border: 1px solid var(--tam-navy);
  border-radius: 9999px;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 500;
  color: var(--tam-navy);
  text-decoration: none;
  transition: background-color .15s, color .15s;
}
.tam-preise-card__cta:hover { background: var(--tam-navy); color: #ffffff; }
.tam-preise-card__note {
  text-align: center;
  font-size: 13px;
  color: var(--tam-grey-4);
  padding: 8px 0;
  margin: 0;
}

.tam-preise-diag-section {
  max-width: 1312px;
  margin: 0 auto;
  padding: 0 24px 56px;
}
.tam-preise-diag {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 48px;
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 32px;
  background: #ffffff;
}
.tam-preise-diag__content { flex: 1; }
.tam-preise-diag__title {
  font-size: 19px;
  font-weight: 700;
  margin: 12px 0 8px;
  color: var(--tam-navy);
}
.tam-preise-diag__desc {
  font-size: 15px;
  color: var(--tam-grey-3);
  margin: 0 0 16px;
  max-width: 560px;
  line-height: 1.6;
}
.tam-preise-diag__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.tam-preise-diag__list li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  color: var(--tam-navy-soft);
}
.tam-preise-diag__price {
  flex-shrink: 0;
  text-align: right;
  border-left: 1px solid var(--tam-grey-6);
  padding-left: 48px;
}
.tam-preise-diag__price-label {
  font-size: 14px;
  color: var(--tam-grey-3);
  margin: 0 0 4px;
}
.tam-preise-diag__price-amount {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 4px;
  color: var(--tam-navy);
}
.tam-preise-diag__price-note {
  font-size: 13px;
  color: var(--tam-grey-4);
  margin: 0 0 16px;
}

.tam-preise-benefits-section {
  max-width: 1186px;
  margin: 0 auto;
  padding: 0 24px 56px;
}
.tam-preise-benefits {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.tam-preise-benefit {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 24px;
}
.tam-preise-benefit__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  background: var(--tam-grey-6);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tam-grey-3);
}
.tam-preise-benefit__title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 4px;
  color: var(--tam-navy);
}
.tam-preise-benefit__desc {
  font-size: 15px;
  color: var(--tam-grey-3);
  margin: 0;
  line-height: 1.5;
}

.tam-preise-vergleich-section {
  background: var(--tam-grey-6);
  padding: 48px 24px;
}
.tam-preise-vergleich {
  max-width: 1024px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 415px;
  gap: 48px;
  align-items: start;
}
.tam-preise-vergleich__title {
  font-size: clamp(20px, 2.5vw, 24px);
  font-weight: 700;
  margin: 0 0 32px;
  color: var(--tam-navy);
}
.tam-bar-chart {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.tam-bar__row {
  display: flex;
  justify-content: space-between;
  font-size: 15px;
  margin-bottom: 6px;
}
.tam-bar__label { color: var(--tam-grey-3); }
.tam-bar__value { color: var(--tam-grey-3); }
.tam-bar__label--strong, .tam-bar__value--strong { color: var(--tam-navy); font-weight: 500; }
.tam-bar__bar {
  height: 24px;
  background: var(--tam-grey-5);
  border-radius: 4px;
}
.tam-bar__bar--primary { background: var(--tam-navy); }
.tam-bar-chart__note {
  font-size: 13px;
  color: var(--tam-grey-4);
  margin: 16px 0 0;
}
.tam-preise-vergleich__includes {
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 32px;
}
.tam-preise-vergleich__includes-title {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 20px;
  color: var(--tam-navy);
}
.tam-preise-vergleich__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.tam-preise-vergleich__list li {
  display: flex;
  gap: 12px;
  font-size: 15px;
  margin-bottom: 12px;
  color: var(--tam-navy-soft);
}
.tam-preise-vergleich__list li svg { flex-shrink: 0; margin-top: 3px; }

.tam-preise-faq-section {
  max-width: 880px;
  margin: 0 auto;
  padding: 40px 24px;
}
.tam-preise-faq__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
}
.tam-preise-faq__title {
  font-size: clamp(20px, 2.5vw, 24px);
  font-weight: 700;
  margin: 0;
  color: var(--tam-navy);
}
.tam-preise-faq__link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 15px;
  color: var(--tam-grey-3);
  text-decoration: none;
  transition: color .15s;
}
.tam-preise-faq__link:hover { color: var(--tam-navy); }
.tam-preise-faq__list {
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  overflow: hidden;
}
.tam-preise-faq__item { border-bottom: 1px solid var(--tam-grey-5); }
.tam-preise-faq__item:last-child { border-bottom: 0; }
.tam-preise-faq__item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  list-style: none;
  transition: background-color .15s;
}
.tam-preise-faq__item summary::-webkit-details-marker { display: none; }
.tam-preise-faq__item summary:hover { background: var(--tam-grey-6); }
.tam-preise-faq__sign {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  font-size: 24px;
  color: var(--tam-grey-4);
  position: relative;
}
.tam-preise-faq__sign::before {
  content: "+";
  line-height: 1;
}
.tam-preise-faq__item[open] .tam-preise-faq__sign::before { content: "−"; }
.tam-preise-faq__answer {
  padding: 0 24px 16px;
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.6;
}

/* Tablet (768-1023px): 2-col Grid für Pricing-Cards */
@media (max-width: 1023px) and (min-width: 768px) {
  .tam-preise-cards__track { grid-template-columns: 1fr 1fr; gap: 16px; }
}

/* Mobile (< 768px): Snap-Carousel — wie shared .tam-mobile-snap default */
@media (max-width: 767px) {
  .tam-preise-cards__track {
    display: flex;
    flex-direction: row;
    gap: 16px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    margin-inline: -16px;
    padding-inline: 10vw;
  }
  .tam-preise-cards__track::-webkit-scrollbar { display: none; }

  .tam-preise-card.tam-mobile-snap__card {
    flex: 0 0 auto;
    width: 80vw;
    max-width: 320px;
    scroll-snap-align: center;
    transition: transform .2s ease-out, opacity .2s ease-out;
    transform: scale(0.94);
    opacity: 0.7;
  }
  .tam-preise-card.tam-mobile-snap__card.is-active {
    transform: scale(1);
    opacity: 1;
  }
}

/* Vergleich-Tab-Switch — Mobile-only Tab-UI, Desktop hidden */
.tam-preise-vergleich-tabs { display: none; }
@media (max-width: 767px) {
  .tam-preise-vergleich-tabs {
    display: flex;
    gap: 24px;
    border-bottom: 1px solid var(--tam-grey-5);
    margin-bottom: 24px;
  }
  .tam-preise-vergleich-tab {
    background: none;
    border: 0;
    padding: 12px 0;
    margin-bottom: -1px;
    font-size: 15px;
    font-weight: 500;
    color: var(--tam-grey-3);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: color .15s, border-color .15s;
  }
  .tam-preise-vergleich-tab:hover { color: var(--tam-navy-soft); }
  .tam-preise-vergleich-tab.is-active {
    color: var(--tam-navy);
    border-bottom-color: var(--tam-navy);
  }
  /* Mobile: nur active Panel rendern */
  .tam-preise-vergleich [data-tab-panel] { display: none; }
  .tam-preise-vergleich [data-tab-panel].is-active { display: block; }
}

@media (max-width: 920px) {
  .tam-preise-vergleich { grid-template-columns: 1fr; }
  .tam-preise-diag { flex-direction: column; gap: 24px; }
  .tam-preise-diag__price {
    text-align: left;
    border-left: 0;
    border-top: 1px solid var(--tam-grey-6);
    padding-left: 0;
    padding-top: 24px;
  }
}

@media (max-width: 600px) {
  .tam-preise-hero { padding: 56px 20px 40px; }
  .tam-preise-cards-section,
  .tam-preise-diag-section,
  .tam-preise-benefits-section { padding-left: 20px; padding-right: 20px; }
  .tam-preise-benefits { grid-template-columns: 1fr; }
  .tam-preise-vergleich-section { padding: 40px 20px; }
  .tam-preise-faq-section { padding: 32px 20px; }
}

/* ============================================================
 * BERATERINNEN PAGE
 * ============================================================ */

.tam-beraterinnen-hero {
  max-width: 960px;
  margin: 0 auto;
  padding: 80px 24px 48px;
  text-align: center;
}
.tam-beraterinnen-hero__title {
  font-size: clamp(28px, 4vw, 36px);
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 0 0 16px;
}
.tam-beraterinnen-hero__lead {
  font-size: 17px;
  color: var(--tam-grey-3);
  margin: 0 auto;
  max-width: 640px;
  line-height: 1.6;
}

.tam-team-dna-section {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px 40px;
}
.tam-team-dna {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.tam-team-dna__card {
  display: flex;
  gap: 16px;
  padding: 20px;
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
}
.tam-team-dna__icon {
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--tam-navy);
}
.tam-team-dna__title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 4px;
  color: var(--tam-navy);
}
.tam-team-dna__desc {
  font-size: 15px;
  color: var(--tam-grey-3);
  margin: 0;
  line-height: 1.5;
}

.tam-filter-section {
  max-width: 1280px;
  margin: 0 auto;
  border-top: 1px solid var(--tam-grey-5);
  border-bottom: 1px solid var(--tam-grey-5);
  padding: 24px;
}
.tam-filter-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.tam-filter-bar__label {
  font-size: 15px;
  color: var(--tam-grey-3);
}
.tam-filter-bar__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.tam-chip {
  display: inline-block;
  padding: 6px 14px;
  border: 1px solid var(--tam-grey-5);
  background: #ffffff;
  border-radius: 9999px;
  font-size: 14px;
  font-family: inherit;
  color: var(--tam-navy-soft);
  cursor: pointer;
  transition: border-color .15s, background-color .15s, color .15s;
  white-space: nowrap;
}
.tam-chip:hover { border-color: var(--tam-navy); }
.tam-chip.is-active {
  background: var(--tam-navy);
  border-color: var(--tam-navy);
  color: #ffffff;
}

.tam-counselors-section {
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px 24px;
}
.tam-counselors-count {
  font-size: 15px;
  font-weight: 500;
  color: var(--tam-navy);
  margin: 0 0 24px;
}
.tam-counselors-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.tam-counselor-card {
  display: block;
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: border-color .15s;
}
.tam-counselor-card:hover { border-color: var(--tam-navy); }
.tam-counselor-card__photo {
  background: var(--tam-grey-5);
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tam-counselor-card__photo span {
  font-size: 14px;
  color: var(--tam-grey-4);
}
.tam-counselor-card__body { padding: 24px; }
.tam-counselor-card__name {
  font-size: 16px;
  font-weight: 600;
  color: var(--tam-navy);
  margin-bottom: 4px;
}
.tam-counselor-card__meta {
  font-size: 14px;
  color: var(--tam-grey-3);
  margin-bottom: 12px;
}
.tam-counselor-card__bio {
  font-size: 14px;
  color: var(--tam-navy-soft);
  line-height: 1.5;
  margin: 0 0 16px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tam-counselor-card__specs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 16px;
}
.tam-counselor-card__specs span {
  display: inline-block;
  font-size: 12px;
  border: 1px solid var(--tam-grey-5);
  padding: 2px 8px;
  border-radius: 4px;
}
.tam-counselor-card__lang {
  font-size: 13px;
  color: var(--tam-grey-3);
  margin-bottom: 16px;
}
.tam-counselor-card__link {
  display: inline-block;
  font-size: 14px;
  color: var(--tam-navy);
}
.tam-counselor-card:hover .tam-counselor-card__link { text-decoration: underline; }

.tam-end-cta__trust {
  font-size: 13px;
  color: var(--tam-grey-4);
  margin: 12px 0 0;
}
.tam-end-cta__alt {
  margin-top: 24px;
  font-size: 15px;
  color: var(--tam-grey-4);
}
.tam-end-cta__alt a { color: var(--tam-navy); text-decoration: underline; }

@media (max-width: 920px) {
  .tam-team-dna { grid-template-columns: 1fr; }
  /* Compact-Card-Layout: Mobile/Tablet show only photo + name + degree + top-2 specs.
   * Bio/Languages/"Profil ansehen"-Link werden ausgeblendet (Card ist auch Link). */
  .tam-counselors-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .tam-counselor-card__bio,
  .tam-counselor-card__lang,
  .tam-counselor-card__link { display: none; }
  .tam-counselor-card__body { padding: 12px; }
  .tam-counselor-card__name { font-size: 15px; }
  .tam-counselor-card__meta { font-size: 13px; margin-bottom: 8px; }
  .tam-counselor-card__specs { gap: 4px; margin-bottom: 0; }
  .tam-counselor-card__specs span { font-size: 11px; padding: 2px 6px; }
  /* Specs ueber 2 ausblenden — matcht React top-2 + "+N" Indicator */
  .tam-counselor-card__specs span:nth-child(n+3) { display: none; }
}

@media (max-width: 600px) {
  .tam-beraterinnen-hero { padding: 56px 20px 32px; }
  .tam-team-dna-section,
  .tam-counselors-section,
  .tam-filter-section { padding-left: 20px; padding-right: 20px; }
  .tam-filter-bar__chips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .tam-filter-bar__chips::-webkit-scrollbar { display: none; }
}

/* ============================================================
 * FAQ PAGE
 * ============================================================ */

.tam-faq-hero {
  max-width: 768px;
  margin: 0 auto;
  padding: 80px 24px 56px;
  text-align: center;
}
.tam-faq-hero__title {
  font-size: clamp(28px, 4vw, 36px);
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 0 0 16px;
}
.tam-faq-hero__lead {
  font-size: 17px;
  color: var(--tam-grey-3);
  margin: 0 0 32px;
}
.tam-faq-search { max-width: 512px; margin: 0 auto; }
.tam-faq-search__input {
  width: 100%;
  padding: 12px 24px;
  border: 1px solid var(--tam-grey-5);
  border-radius: 9999px;
  font-size: 15px;
  font-family: inherit;
  background: #ffffff;
  transition: border-color .15s;
}
.tam-faq-search__input:focus {
  outline: none;
  border-color: var(--tam-navy);
}
.tam-faq-search__hint {
  font-size: 13px;
  color: var(--tam-grey-4);
  margin: 12px 0 0;
}

.tam-faq-content {
  max-width: 1024px;
  margin: 0 auto;
  padding: 56px 24px;
}
.tam-faq-content__inner {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 48px;
}
.tam-faq-sidebar { position: sticky; top: 96px; align-self: flex-start; }
.tam-faq-sidebar__label {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--tam-grey-4);
  margin: 0 0 16px;
}
.tam-faq-sidebar__list { display: flex; flex-direction: column; gap: 4px; }
.tam-faq-cat {
  display: block;
  width: 100%;
  text-align: left;
  padding: 8px 12px;
  background: none;
  border: 0;
  font-size: 15px;
  font-family: inherit;
  color: var(--tam-grey-3);
  border-radius: 6px;
  cursor: pointer;
  transition: color .15s, background-color .15s;
}
.tam-faq-cat:hover { color: var(--tam-navy); }
.tam-faq-cat.is-active { color: var(--tam-navy); font-weight: 600; }

.tam-faq-list {
  border-top: 1px solid var(--tam-grey-5);
  border-bottom: 1px solid var(--tam-grey-5);
}
.tam-faq-item { border-bottom: 1px solid var(--tam-grey-5); }
.tam-faq-item:last-child { border-bottom: 0; }
.tam-faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  list-style: none;
  transition: background-color .15s;
}
.tam-faq-item summary::-webkit-details-marker { display: none; }
.tam-faq-item summary:hover { background: var(--tam-grey-6); }
.tam-faq-item__sign {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  font-size: 22px;
  color: var(--tam-grey-4);
  position: relative;
  margin-left: 16px;
  flex-shrink: 0;
}
.tam-faq-item__sign::before {
  content: "+";
  line-height: 1;
}
.tam-faq-item[open] .tam-faq-item__sign::before { content: "−"; }
.tam-faq-item__answer {
  padding: 0 24px 20px;
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.6;
}
.tam-faq-empty {
  text-align: center;
  padding: 48px 0;
  color: var(--tam-grey-3);
}
.tam-faq-empty a { color: var(--tam-navy); text-decoration: underline; }

.tam-faq-contact-card {
  margin: 40px auto 0;
  max-width: 384px;
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 28px;
  text-align: center;
}
.tam-faq-contact-card h3 {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 8px;
}
.tam-faq-contact-card p {
  font-size: 15px;
  color: var(--tam-grey-3);
  margin: 0 0 20px;
}

@media (max-width: 920px) {
  .tam-faq-content__inner { grid-template-columns: 1fr; }
  .tam-faq-sidebar {
    position: static;
    border-bottom: 1px solid var(--tam-grey-5);
    padding-bottom: 16px;
    margin-bottom: 16px;
    /* Wrapper relative fuer Right-Edge-Fade-Overlay */
    position: relative;
  }
  .tam-faq-sidebar__label {
    /* Mobile: Eyebrow ueber dem horizontal-scroll Strip */
    margin-bottom: 12px;
  }
  .tam-faq-sidebar__list {
    flex-direction: row;
    overflow-x: auto;
    padding-bottom: 4px;
    gap: 8px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .tam-faq-sidebar__list::-webkit-scrollbar { display: none; }
  .tam-faq-cat {
    border: 1px solid var(--tam-grey-5);
    border-radius: 9999px;
    padding: 6px 14px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .tam-faq-cat.is-active { background: var(--tam-navy); color: #ffffff; border-color: var(--tam-navy); }
  /* Right-Edge-Fade — hint dass mehr Chips zum scrollen sind */
  .tam-faq-sidebar::after {
    content: '';
    position: absolute;
    right: 0;
    top: 32px;
    bottom: 16px;
    width: 32px;
    pointer-events: none;
    background: linear-gradient(to left, #ffffff, transparent);
  }
}

@media (max-width: 600px) {
  .tam-faq-hero { padding: 56px 20px 32px; }
  .tam-faq-content { padding: 32px 20px; }
}

/* ============================================================
 * KONTAKT PAGE
 * ============================================================ */

.tam-kontakt-hero {
  max-width: 768px;
  margin: 0 auto;
  padding: 80px 24px 56px;
  text-align: center;
}
.tam-kontakt-hero__title {
  font-size: clamp(28px, 4vw, 36px);
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 0 0 16px;
}
.tam-kontakt-hero__lead {
  font-size: 17px;
  color: var(--tam-grey-3);
  margin: 0 0 8px;
}
.tam-kontakt-hero__alt {
  font-size: 15px;
  color: var(--tam-grey-4);
}
.tam-kontakt-hero__alt a { color: var(--tam-navy); text-decoration: underline; }

.tam-kontakt-section {
  max-width: 1024px;
  margin: 0 auto;
  padding: 0 24px 56px;
}
.tam-kontakt-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 48px;
}

.tam-kontakt-form { display: flex; flex-direction: column; gap: 20px; }
.tam-form-row { display: flex; flex-direction: column; gap: 16px; }
.tam-form-row--two { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.tam-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.tam-field[hidden],
[hidden] { display: none !important; }
.tam-field__label {
  font-size: 14px;
  font-weight: 500;
  color: var(--tam-navy-soft);
}
.tam-field__input,
.tam-field__select,
.tam-field__textarea {
  width: 100%;
  padding: 10px 16px;
  border: 1px solid var(--tam-grey-5);
  border-radius: 4px;
  font-size: 14px;
  font-family: inherit;
  background: #ffffff;
  transition: border-color .15s;
}
.tam-field__input:focus,
.tam-field__select:focus,
.tam-field__textarea:focus { outline: none; border-color: var(--tam-navy); }
.tam-field__textarea { resize: vertical; min-height: 96px; }
.tam-field__hint {
  font-size: 12px;
  color: var(--tam-grey-4);
  margin: 0;
}
.tam-field__radios { display: flex; gap: 16px; flex-wrap: wrap; }
.tam-field__radio {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--tam-navy-soft);
  cursor: pointer;
}
.tam-field__checkbox {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  color: var(--tam-grey-3);
  cursor: pointer;
}
.tam-field__checkbox input { margin-top: 2px; flex-shrink: 0; }
.tam-field__checkbox a { color: var(--tam-navy); text-decoration: underline; }
.tam-form__submit {
  width: 100%;
  background: var(--tam-navy);
  color: #ffffff;
  padding: 14px;
  border: 0;
  border-radius: 9999px;
  font-size: 15px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: background-color .15s;
}
.tam-form__submit:hover { background: var(--tam-navy-soft); }
.tam-form__hint {
  text-align: center;
  font-size: 12px;
  color: var(--tam-grey-4);
  margin: 0;
}

.tam-kontakt-sidebar { display: flex; flex-direction: column; gap: 24px; }
.tam-kontakt-card {
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 8px;
  padding: 24px;
}
.tam-kontakt-card h3,
.tam-kontakt-emergency h3 {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 16px;
}
.tam-kontakt-card__row { margin-bottom: 16px; }
.tam-kontakt-card__row:last-child { margin-bottom: 0; }
.tam-kontakt-card__label { font-size: 14px; font-weight: 500; margin-bottom: 4px; }
.tam-kontakt-card__link {
  font-size: 14px;
  color: var(--tam-grey-3);
  text-decoration: none;
}
.tam-kontakt-card__link:hover { text-decoration: underline; }
.tam-kontakt-card__note {
  font-size: 12px;
  color: var(--tam-grey-4);
  margin-top: 2px;
}
.tam-kontakt-card__social {
  display: flex;
  gap: 16px;
  font-size: 14px;
  color: var(--tam-grey-3);
  margin-bottom: 4px;
}
.tam-kontakt-card__social a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: inherit;
  text-decoration: none;
  transition: color .15s;
}
.tam-kontakt-card__social a:hover { color: var(--tam-navy); }

.tam-kontakt-emergency {
  background: var(--tam-navy);
  color: #ffffff;
  border-radius: 8px;
  padding: 24px;
}
.tam-kontakt-emergency p {
  font-size: 14px;
  opacity: 0.8;
  margin: 0 0 16px;
}
.tam-kontakt-emergency ul {
  list-style: none;
  padding: 0;
  margin: 0 0 12px;
  font-size: 14px;
}
.tam-kontakt-emergency ul li { margin-bottom: 8px; }
.tam-kontakt-emergency ul li strong { font-weight: 600; }
.tam-kontakt-emergency__note {
  font-size: 12px;
  opacity: 0.6;
  margin: 0;
}

.tam-kontakt-success {
  max-width: 640px;
  margin: 0 auto;
  padding: 96px 24px;
  text-align: center;
}
.tam-kontakt-success__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.tam-kontakt-success h2 {
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  margin: 8px 0 0;
}
.tam-kontakt-success p {
  font-size: 16px;
  color: var(--tam-grey-3);
  margin: 0 0 16px;
}

@media (max-width: 920px) {
  .tam-kontakt-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .tam-kontakt-hero { padding: 56px 20px 32px; }
  .tam-kontakt-section { padding: 0 20px 40px; }
  .tam-form-row--two { grid-template-columns: 1fr; }
}

/* ============================================================
 * ANFRAGEN PAGE
 * ============================================================ */

.tam-anfragen-hero {
  max-width: 768px;
  margin: 0 auto;
  padding: 80px 24px 56px;
  text-align: center;
}
.tam-anfragen-hero__title {
  font-size: clamp(28px, 4vw, 36px);
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 0 0 16px;
}
.tam-anfragen-hero__lead {
  font-size: 17px;
  color: var(--tam-grey-3);
  margin: 0;
}

.tam-anfragen-cards-section {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px 40px;
}
.tam-anfragen-cards { /* tam-mobile-snap Wrapper — relative for fade-overlay */ }
.tam-anfragen-cards__track {
  /* Desktop (>= 1024px): 3-col Grid. Tablet+Mobile: snap-scroll (override below) */
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.tam-anfragen-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 32px;
}
.tam-anfragen-card--highlighted {
  border: 2px solid var(--tam-navy);
}
.tam-anfragen-card__pill {
  display: inline-block;
  font-size: 12px;
  font-weight: 500;
  background: var(--tam-grey-6);
  color: var(--tam-grey-3);
  padding: 4px 12px;
  border-radius: 9999px;
  margin-bottom: 16px;
}
.tam-anfragen-card__pill--solid {
  background: var(--tam-navy);
  color: #ffffff;
}
.tam-anfragen-card__title {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 4px;
  color: var(--tam-navy);
}
.tam-anfragen-card__format {
  font-size: 14px;
  color: var(--tam-grey-3);
  margin: 0 0 16px;
}
.tam-anfragen-card__desc {
  font-size: 14px;
  color: var(--tam-grey-2);
  line-height: 1.6;
  margin: 0 0 24px;
  flex: 1;
}
.tam-anfragen-card__ideals {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
}
.tam-anfragen-card__ideals li {
  display: flex;
  gap: 8px;
  font-size: 14px;
  color: var(--tam-grey-2);
  margin-bottom: 8px;
}
.tam-anfragen-card__ideals li svg { flex-shrink: 0; margin-top: 3px; color: var(--tam-grey-4); }
.tam-anfragen-card__cta {
  display: block;
  text-align: center;
  padding: 12px 16px;
  border: 1px solid var(--tam-navy);
  border-radius: 9999px;
  font-size: 14px;
  font-weight: 500;
  color: var(--tam-navy);
  text-decoration: none;
  transition: background-color .15s, color .15s;
}
.tam-anfragen-card__cta:hover { background: var(--tam-grey-6); }
.tam-anfragen-card__cta--solid {
  background: var(--tam-navy);
  color: #ffffff;
  border-color: var(--tam-navy);
}
.tam-anfragen-card__cta--solid:hover { background: var(--tam-navy-soft); }

.tam-anfragen-nudge {
  max-width: 768px;
  margin: 0 auto;
  padding: 24px;
  text-align: center;
}
.tam-anfragen-nudge__lead {
  font-size: 14px;
  color: var(--tam-grey-4);
  margin: 0 0 8px;
}
.tam-anfragen-nudge__link {
  font-size: 14px;
  color: var(--tam-grey-3);
  text-decoration: underline;
}
.tam-anfragen-nudge__link:hover { color: var(--tam-navy); }

.tam-anfragen-trust-section {
  max-width: 768px;
  margin: 0 auto;
  padding: 0 24px 40px;
}
.tam-anfragen-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 32px;
  justify-content: center;
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 20px;
  font-size: 14px;
  color: var(--tam-grey-3);
}
.tam-anfragen-trust span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.tam-anfragen-trust svg { flex-shrink: 0; color: var(--tam-grey-4); }

/* Tablet + Mobile (< 1024px): snap-scroll Carousel.
 * lg-Breakpoint statt md, weil Card-Titles wie "Orientierungsgespräch"
 * die 3-col-Grid auf 768-1023px viewport bereits cramping. */
@media (max-width: 1023px) {
  .tam-anfragen-cards__track {
    display: flex;
    flex-direction: row;
    gap: 16px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    margin-inline: -16px;
    padding-inline: 10vw;
  }
  .tam-anfragen-cards__track::-webkit-scrollbar { display: none; }

  .tam-anfragen-card.tam-mobile-snap__card {
    flex: 0 0 auto;
    width: 80vw;
    max-width: 360px;
    scroll-snap-align: center;
    transition: transform .2s ease-out, opacity .2s ease-out;
    transform: scale(0.94);
    opacity: 0.7;
  }
  .tam-anfragen-card.tam-mobile-snap__card.is-active {
    transform: scale(1);
    opacity: 1;
  }
  /* Dots auch im Tablet-Range sichtbar */
  .tam-anfragen-cards .tam-mobile-snap__dots { display: flex; }
}

@media (min-width: 1024px) {
  /* Desktop: dots ausblenden — Grid uebernimmt das Layout */
  .tam-anfragen-cards .tam-mobile-snap__dots { display: none; }
}

@media (max-width: 600px) {
  .tam-anfragen-hero { padding: 48px 20px 32px; }
  .tam-anfragen-cards-section,
  .tam-anfragen-trust-section { padding-left: 20px; padding-right: 20px; }
  .tam-anfragen-trust { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
}

/* ============================================================
 * LEGAL PAGES (Impressum/Datenschutz/AGB)
 * ============================================================ */

.tam-page-legal { background: #ffffff; }

.tam-legal-hero {
  max-width: 768px;
  margin: 0 auto;
  padding: 80px 24px 56px;
  text-align: center;
}
.tam-legal-hero__title {
  font-size: clamp(28px, 4vw, 36px);
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 0 0 12px;
}
.tam-legal-hero__sub {
  font-size: 14px;
  color: var(--tam-grey-3);
  margin: 0;
}

.tam-legal-content {
  max-width: 768px;
  margin: 0 auto;
  padding: 0 24px 96px;
}

.tam-legal-intro {
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 8px;
  padding: 24px;
  margin-bottom: 40px;
  font-size: 15px;
  color: var(--tam-grey-2);
  line-height: 1.6;
}
.tam-legal-intro p { margin: 0; }

.tam-legal-toc {
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 8px;
  padding: 24px;
  margin-bottom: 48px;
}
.tam-legal-toc__title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 12px;
  color: var(--tam-navy);
}
.tam-legal-toc ol {
  list-style: decimal;
  margin: 0;
  padding-left: 20px;
  font-size: 15px;
  color: var(--tam-grey-3);
}
.tam-legal-toc ol li {
  margin-bottom: 6px;
}
.tam-legal-toc a {
  color: inherit;
  text-decoration: none;
  transition: color .15s;
}
.tam-legal-toc a:hover { color: var(--tam-navy); text-decoration: underline; }

.tam-legal-section {
  margin-bottom: 40px;
  scroll-margin-top: 96px;
}
.tam-legal-section h2 {
  font-size: 19px;
  font-weight: 600;
  margin: 0 0 16px;
  color: var(--tam-navy);
}
.tam-legal-section p,
.tam-legal-content > section > p {
  font-size: 15px;
  color: var(--tam-grey-2);
  line-height: 1.7;
  margin: 0 0 12px;
}
.tam-legal-section ul,
.tam-legal-section ol {
  font-size: 15px;
  color: var(--tam-grey-2);
  line-height: 1.6;
  margin: 0 0 12px;
  padding-left: 24px;
}
.tam-legal-section ul li,
.tam-legal-section ol li {
  margin-bottom: 8px;
}
.tam-legal-section a {
  color: var(--tam-navy);
  text-decoration: underline;
}

.tam-legal-cross {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--tam-grey-5);
  font-size: 15px;
  color: var(--tam-grey-3);
}
.tam-legal-cross a {
  color: var(--tam-navy);
  text-decoration: underline;
}

@media (max-width: 600px) {
  .tam-legal-hero { padding: 48px 20px 32px; }
  .tam-legal-content { padding: 0 20px 56px; }
  .tam-legal-intro,
  .tam-legal-toc { padding: 20px; }
}

/* ============================================================
 * WIZARD (Anfrage-Flows)
 * ============================================================ */

.tam-wizard {
  background: #ffffff;
  min-height: 100vh;
}

.tam-wizard__header {
  background: var(--tam-grey-6);
  border-bottom: 1px solid var(--tam-grey-5);
  position: sticky;
  top: 0;
  z-index: 50;
}
.tam-wizard__topbar {
  max-width: 768px;
  margin: 0 auto;
  padding: 16px 24px 12px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
}
.tam-wizard__close {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: var(--tam-grey-3);
  text-decoration: none;
  transition: color .15s;
}
.tam-wizard__close:hover { color: var(--tam-navy); }
.tam-wizard__brand {
  justify-self: center;
  font-size: 16px;
  font-weight: 600;
  color: var(--tam-navy);
  text-decoration: none;
}
.tam-wizard__badge {
  justify-self: end;
  font-size: 14px;
  color: var(--tam-grey-3);
  text-align: right;
}
.tam-wizard__badge-tag { color: #15803d; font-weight: 500; }

.tam-wizard__steps {
  max-width: 768px;
  margin: 0 auto;
  padding: 0 24px 16px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 12px;
}
.tam-wizard__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.tam-wizard__step-num {
  width: 28px;
  height: 28px;
  border-radius: 9999px;
  background: var(--tam-grey-5);
  color: var(--tam-grey-4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 600;
}
.tam-wizard__step.is-active .tam-wizard__step-num,
.tam-wizard__step.is-done .tam-wizard__step-num { background: var(--tam-navy); color: #ffffff; }
.tam-wizard__step-label {
  font-size: 12px;
  color: var(--tam-grey-4);
}
.tam-wizard__step.is-active .tam-wizard__step-label,
.tam-wizard__step.is-done .tam-wizard__step-label { color: var(--tam-navy); font-weight: 500; }
.tam-wizard__step-connector {
  width: 48px;
  height: 1px;
  background: var(--tam-grey-5);
  margin-top: 14px;
}

.tam-wizard__main {
  max-width: 640px;
  margin: 0 auto;
  padding: 32px 24px 96px;
}

.tam-wizard__info-card {
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 16px 20px;
  margin-bottom: 32px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 24px;
  font-size: 14px;
  color: var(--tam-grey-3);
}
.tam-wizard__info-card span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.tam-wizard__info-card svg { color: var(--tam-grey-4); flex-shrink: 0; }

.tam-wizard__info-desc {
  font-size: 14px;
  color: var(--tam-grey-3);
  line-height: 1.5;
  text-align: center;
  margin: -16px 0 32px;
  padding: 0 12px;
}

/* Diag-Type-Selection Cards (Step 1, Diagnostik-Wizard) */
.tam-diag-type-options {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 12px;
}
.tam-diag-type-option {
  display: flex;
  gap: 16px;
  padding: 20px;
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  cursor: pointer;
  transition: border-color .15s, background .15s;
  background: #ffffff;
}
.tam-diag-type-option:hover { border-color: var(--tam-navy-soft); }
.tam-diag-type-option:has(input:checked) {
  border-color: var(--tam-navy);
  background: var(--tam-grey-6);
}
.tam-diag-type-option input[type="radio"] {
  margin-top: 4px;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}
.tam-diag-type-option h3 {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 6px;
  color: var(--tam-navy);
}
.tam-diag-type-option p {
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.5;
  margin: 0;
}

.tam-wizard__title {
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 8px;
  color: var(--tam-navy);
}
.tam-wizard__subtitle {
  font-size: 15px;
  color: var(--tam-grey-3);
  margin: 0 0 32px;
}

.tam-calendar {
  margin-bottom: 32px;
}
.tam-calendar__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.tam-calendar__title { font-size: 15px; font-weight: 500; }
.tam-calendar__nav {
  width: 32px;
  height: 32px;
  border: 1px solid var(--tam-grey-5);
  border-radius: 9999px;
  background: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--tam-grey-4);
  cursor: pointer;
  transition: border-color .15s, color .15s;
}
.tam-calendar__nav:not(:disabled):hover { border-color: var(--tam-navy); color: var(--tam-navy); }
.tam-calendar__nav:disabled { opacity: 0.4; cursor: default; }
.tam-calendar__weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-bottom: 0;
  border-radius: 12px 12px 0 0;
}
.tam-calendar__weekdays span {
  padding: 10px 0;
  text-align: center;
  font-size: 13px;
  font-weight: 500;
  color: var(--tam-grey-3);
}
.tam-calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--tam-grey-5);
  border-top: 0;
  border-radius: 0 0 12px 12px;
}
.tam-calendar__day,
.tam-calendar__empty {
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  border: 0;
  background: none;
  border-radius: 8px;
  font-family: inherit;
  color: var(--tam-grey-5);
  cursor: not-allowed;
}
.tam-calendar__day.is-available {
  color: var(--tam-navy);
  font-weight: 500;
  cursor: pointer;
  transition: background-color .15s;
}
.tam-calendar__day.is-available:hover { background: var(--tam-grey-6); }
.tam-calendar__day.is-selected,
.tam-calendar__day.is-available.is-selected,
.tam-calendar__day.is-available.is-selected:hover {
  background: var(--blue);
  color: #ffffff;
}
.tam-slot:hover { border-color: var(--blue); }
.tam-slot.is-selected,
.tam-slot.is-selected:hover {
  background: var(--blue);
  color: #ffffff;
  border-color: var(--blue);
}

.tam-slots { margin-bottom: 32px; }
.tam-slots__title {
  font-size: 14px;
  font-weight: 500;
  color: var(--tam-grey-3);
  margin: 0 0 12px;
}
.tam-slots__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.tam-slot {
  padding: 10px 12px;
  border: 1px solid var(--tam-grey-5);
  border-radius: 8px;
  background: #ffffff;
  font-size: 14px;
  font-family: inherit;
  cursor: pointer;
  transition: border-color .15s, background-color .15s, color .15s;
}
.tam-slot:hover { border-color: var(--tam-navy); }
.tam-slot.is-selected {
  background: var(--tam-navy);
  color: #ffffff;
  border-color: var(--tam-navy);
}

.tam-wizard__actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 24px;
}
.tam-wizard__next {
  padding: 12px 32px;
  background: var(--tam-navy);
  color: #ffffff;
  border: 0;
  border-radius: 9999px;
  font-size: 15px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: background-color .15s;
}
.tam-wizard__next:hover:not(:disabled) { background: var(--tam-navy-soft); }
.tam-wizard__next:disabled {
  background: var(--tam-grey-5);
  color: var(--tam-grey-4);
  cursor: not-allowed;
}

.tam-wizard__back {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 16px;
  background: none;
  border: 0;
  padding: 0;
  margin: 0 0 24px;
  font-family: inherit;
  font-size: 15px;
  color: var(--tam-grey-3);
  cursor: pointer;
  text-align: left;
  transition: color .15s;
}
.tam-wizard__back:hover { color: var(--tam-navy); }
.tam-wizard__back > span:first-child {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.tam-wizard__back-meta { font-size: 14px; color: var(--tam-grey-4); }

/* Wunsch-Berater-Banner (in Erstberatung Step 2) */
.tam-wizard__wunsch-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  margin: 0 0 24px;
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 8px;
  font-size: 14px;
  color: var(--tam-grey-2);
  line-height: 1.5;
}
.tam-wizard__wunsch-banner svg {
  flex-shrink: 0;
  color: var(--tam-navy);
}
.tam-wizard__wunsch-banner strong { color: var(--tam-navy); }

/* ===== BERATER-PROFIL DYNAMIC SIDEBAR (CP-8 Sprint 4)
 * Wird via Shortcode [tam_berater_sidebar] aus inc/cpt-berater.php
 * gerendert. Verfügbarkeit/Qualifikationen/Sprachen aus post_meta;
 * Defaults wenn Custom-Fields leer.
 */
.tam-profile-body__sidebar-col { position: relative; }
@media (min-width: 1024px) {
  .tam-profile-body__sidebar-col {
    position: sticky;
    top: 96px;
    align-self: flex-start;
  }
}

.tam-profile-sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.tam-profile-sidebar__card {
  background: rgba(74, 150, 220, 0.06);
  border: 1px solid rgba(74, 150, 220, 0.14);
  border-radius: 16px;
  padding: 24px;
}
.tam-profile-sidebar__card h3 {
  font-size: 16px;
  font-weight: 600;
  color: var(--tam-text);
  margin: 0 0 16px;
}
.tam-profile-sidebar__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 15px;
}
.tam-profile-sidebar__list li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}
.tam-profile-sidebar__list li > span:first-child { color: var(--tam-text-muted); }
.tam-profile-sidebar__list li > span:last-child { color: var(--tam-text); }
.tam-profile-sidebar__note {
  margin: 16px 0 0;
  padding-top: 16px;
  border-top: 1px solid rgba(74, 150, 220, 0.14);
  font-size: 13px;
  color: var(--tam-text-light);
}
.tam-profile-sidebar__qual {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 15px;
  color: var(--tam-text);
}
.tam-profile-sidebar__qual li {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.tam-profile-sidebar__qual li svg {
  flex-shrink: 0;
  color: var(--blue);
  margin-top: 3px;
}
.tam-profile-sidebar__lang {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.tam-profile-sidebar__lang span {
  display: inline-block;
  font-size: 13px;
  border: 1px solid rgba(74, 150, 220, 0.20);
  background: rgba(74, 150, 220, 0.06);
  padding: 4px 12px;
  border-radius: 9999px;
  color: var(--tam-text-muted);
}
.tam-profile-sidebar__cta {
  border: 1px solid rgba(74, 150, 220, 0.22);
  border-top: 3px solid var(--gold);
  border-radius: 16px;
  padding: 24px;
  background: var(--paper);
  box-shadow: 0 14px 34px -20px rgba(74, 150, 220, 0.45);
}
.tam-profile-sidebar__cta-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  background: var(--tam-navy);
  color: #ffffff;
  border-radius: 9999px;
  padding: 12px 24px;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(74, 150, 220, 0.28);
  transition: background .15s, box-shadow .15s;
}
.tam-profile-sidebar__cta-link:hover { box-shadow: 0 6px 18px rgba(74, 150, 220, 0.36); }
.tam-profile-sidebar__cta-note {
  font-size: 13px;
  color: var(--tam-text-muted);
  line-height: 1.5;
  margin: 12px 0 0;
}
.tam-profile-sidebar__divider {
  border-top: 1px solid rgba(74, 150, 220, 0.14);
  margin: 20px 0;
}
.tam-profile-sidebar__cta-heading {
  font-size: 15px;
  font-weight: 600;
  color: var(--tam-text);
  margin: 0 0 12px;
}
.tam-profile-sidebar__cta-options {
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--tam-text-muted);
}
.tam-profile-sidebar__cta-options p { margin: 0; }
.tam-profile-sidebar__cta-options p:first-child {
  color: var(--tam-text);
  font-weight: 500;
  margin-bottom: 2px;
}
.tam-profile-sidebar__cta-options > div > p:first-child {
  color: var(--tam-text);
  font-weight: 500;
  margin-bottom: 2px;
}
.tam-profile-sidebar__cta-alt {
  display: block;
  text-align: center;
  font-size: 14px;
  color: var(--tam-text-muted);
  text-decoration: underline;
  margin-top: 16px;
}
.tam-profile-sidebar__cta-alt:hover { color: var(--blue); }

.tam-wizard__form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.tam-field__optional {
  color: var(--tam-grey-4);
  font-weight: 400;
}
.tam-chip-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.tam-field__checkbox--card {
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 16px;
}

.tam-wizard__success {
  text-align: center;
  padding: 48px 24px;
}
.tam-wizard__success-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 24px;
  background: var(--tam-navy);
  color: #ffffff;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tam-wizard__success-title {
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 12px;
}
.tam-wizard__success-text {
  font-size: 15px;
  color: var(--tam-grey-2);
  line-height: 1.6;
  margin: 0 0 8px;
}
.tam-wizard__success-text span { font-weight: 600; color: var(--tam-navy); }
.tam-wizard__success-hint {
  font-size: 14px;
  color: var(--tam-grey-3);
  margin: 0 0 32px;
}

@media (max-width: 600px) {
  .tam-wizard__topbar { padding: 12px 16px 8px; gap: 8px; }
  .tam-wizard__badge-prefix { display: none; }
  .tam-wizard__steps { padding: 0 16px 12px; }
  .tam-wizard__main { padding: 24px 16px 96px; }
  .tam-wizard__title { font-size: 20px; }
  .tam-slots__grid { grid-template-columns: repeat(2, 1fr); }
  .tam-wizard__actions--floating {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    background: #ffffff;
    padding: 12px 16px;
    border-top: 1px solid var(--tam-grey-5);
    box-shadow: 0 -2px 8px rgba(0,0,0,0.06);
    z-index: 40;
  }
  .tam-wizard__next { width: 100%; }
}

/* ============================================================
 * ÜBER UNS PAGE
 * ============================================================ */

.tam-uu-hero {
  max-width: 768px;
  margin: 0 auto;
  padding: 80px 24px 64px;
  text-align: center;
}
.tam-uu-hero__title {
  font-size: clamp(28px, 5vw, 48px);
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 0 0 24px;
}
.tam-uu-hero__lead {
  font-size: 17px;
  color: var(--tam-grey-3);
  margin: 0 auto;
  max-width: 640px;
  line-height: 1.7;
}

.tam-uu-warum-section {
  max-width: 1280px;
  margin: 0 auto;
  padding: 56px 24px;
}
.tam-uu-warum {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.tam-uu-warum__photo {
  background: var(--tam-grey-6);
  border-radius: 12px;
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tam-uu-warum__placeholder {
  text-align: center;
  color: var(--tam-grey-4);
  font-size: 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tam-uu-warum__placeholder-sub { font-size: 12px; }
.tam-uu-warum__title {
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 700;
  margin: 0 0 16px;
}
.tam-uu-warum__lead {
  font-size: 16px;
  color: var(--tam-grey-2);
  line-height: 1.6;
  margin: 0 0 24px;
}
.tam-uu-quote {
  border-left: 4px solid var(--tam-navy-soft);
  padding: 4px 0 4px 20px;
  margin: 0 0 24px;
}
.tam-uu-quote p {
  font-style: italic;
  font-size: 16px;
  color: var(--tam-navy-soft);
  line-height: 1.7;
  margin: 0 0 12px;
}
.tam-uu-quote cite {
  font-style: normal;
  font-size: 14px;
  color: var(--tam-grey-3);
}
.tam-uu-blog-card {
  display: flex;
  align-items: center;
  gap: 16px;
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 16px;
  text-decoration: none;
  color: inherit;
  transition: background-color .15s;
}
.tam-uu-blog-card:hover { background: var(--tam-grey-6); }
.tam-uu-blog-card__thumb {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  background: var(--tam-grey-5);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  color: var(--tam-grey-4);
}
.tam-uu-blog-card__body { flex: 1; min-width: 0; }
.tam-uu-blog-card__title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 2px;
}
.tam-uu-blog-card__sub {
  font-size: 13px;
  color: var(--tam-grey-3);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tam-uu-blog-card svg { color: var(--tam-grey-4); flex-shrink: 0; }

.tam-uu-barrieren-section {
  max-width: 1024px;
  margin: 0 auto;
  padding: 56px 24px;
}
.tam-uu-barrieren__title {
  font-size: 19px;
  font-weight: 700;
  text-align: center;
  margin: 0 0 40px;
}
.tam-uu-barrieren {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}
.tam-uu-barriere {
  text-align: center;
}
.tam-uu-barriere__num {
  width: 56px;
  height: 56px;
  border: 2px solid var(--tam-navy-soft);
  border-radius: 9999px;
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
}
.tam-uu-barriere__heading {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 8px;
}
.tam-uu-barriere__desc {
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.5;
  margin: 0;
}

.tam-uu-kpi-section {
  background: var(--tam-grey-6);
  padding: 56px 24px;
}
.tam-uu-kpi-grid {
  max-width: 1152px;
  margin: 0 auto;
}
.tam-uu-kpi-grid__track {
  /* Desktop (>= 1024px): 5-col Grid. Tablet: 3-col. Mobile: snap-scroll */
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 24px;
}
.tam-uu-kpi {
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 24px;
  text-align: center;
}
.tam-uu-kpi__value {
  font-size: 28px;
  font-weight: 700;
  color: var(--tam-navy);
  margin-bottom: 8px;
}
.tam-uu-kpi__label {
  font-size: 13px;
  color: var(--tam-grey-3);
  line-height: 1.4;
}
.tam-uu-kpi__note {
  text-align: center;
  font-size: 12px;
  color: var(--tam-grey-4);
  margin: 16px 0 0;
}

.tam-uu-gruender-section {
  background: var(--tam-grey-6);
  padding: 56px 24px;
}
.tam-uu-gruender {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 48px;
  align-items: center;
}
.tam-uu-gruender__photo {
  background: var(--tam-grey-5);
  border-radius: 12px;
  aspect-ratio: 1 / 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--tam-grey-5);
  font-size: 14px;
}
.tam-uu-gruender__photo svg { color: var(--tam-grey-5); }
.tam-uu-gruender__title {
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 700;
  margin: 8px 0 16px;
}
.tam-uu-gruender__bio {
  font-size: 16px;
  color: var(--tam-grey-2);
  line-height: 1.7;
  margin: 0;
}

.tam-uu-vm-section {
  background: var(--tam-grey-1);
  padding: 56px 24px;
}
.tam-uu-vm {
  max-width: 1024px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.tam-uu-vm__vision {
  background: #ffffff;
  border-radius: 12px;
  padding: 40px;
  display: flex;
  flex-direction: column;
}
.tam-uu-vm__mission {
  background: var(--tam-navy);
  color: #ffffff;
  border-radius: 12px;
  padding: 40px;
}
.tam-uu-vm__title {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 24px;
}
.tam-uu-vm__quote {
  border-left: 4px solid var(--tam-grey-5);
  padding-left: 20px;
  margin: 0 0 24px;
}
.tam-uu-vm__quote p {
  font-size: 19px;
  font-style: italic;
  color: var(--tam-navy-soft);
  line-height: 1.6;
  margin: 0;
}
.tam-uu-vm__vision .tam-uu-vm__text {
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.7;
  margin: auto 0 0;
}
.tam-uu-vm__mission .tam-uu-vm__text {
  font-size: 15px;
  color: var(--tam-grey-5);
  line-height: 1.7;
  margin: 0 0 24px;
}
.tam-uu-vm__icons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.tam-uu-vm__icons > div {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  font-weight: 600;
}
.tam-uu-vm__icon-circle {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 9999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.tam-uu-timeline-section {
  max-width: 1024px;
  margin: 0 auto;
  padding: 80px 24px;
}
.tam-uu-timeline__title {
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 700;
  margin: 0 0 8px;
}
.tam-uu-timeline__lead {
  font-size: 16px;
  color: var(--tam-grey-3);
  margin: 0 0 48px;
}
/* Mobile-default: left-rail with dots — matches React `md:hidden` Mobile-Tree */
.tam-uu-timeline {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
  max-width: 720px;
}
.tam-uu-timeline::before {
  content: "";
  position: absolute;
  left: 7px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--tam-grey-5);
}
.tam-uu-tl-item {
  position: relative;
  padding-left: 32px;
  margin-bottom: 32px;
}
.tam-uu-tl-item:last-child { margin-bottom: 0; }
.tam-uu-tl-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 5px;
  width: 15px;
  height: 15px;
  background: var(--tam-navy);
  border: 2px solid #ffffff;
  border-radius: 9999px;
  box-shadow: 0 0 0 1px var(--tam-navy);
}
.tam-uu-tl-item__date {
  font-size: 15px;
  font-weight: 600;
  color: var(--tam-navy);
}
.tam-uu-tl-item__tag {
  font-size: 13px;
  color: var(--tam-grey-4);
  margin-bottom: 8px;
}
.tam-uu-tl-item__title {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 4px;
}
.tam-uu-tl-item__desc {
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.6;
  margin: 0;
}

/* Desktop (>= 768px): two-col grid — date rechtsbuendig in col-1, dot
 * sitzt auf der vertikalen Linie (160px Spaltentrennung), title+desc
 * in col-2. Matcht React `md:block` Two-Col-Layout. */
@media (min-width: 768px) {
  .tam-uu-timeline {
    /* Linie wandert von 7px auf 160px (zwischen den beiden Spalten) */
  }
  .tam-uu-timeline::before {
    left: 160px;
  }
  .tam-uu-tl-item {
    display: grid;
    grid-template-columns: 160px 1fr;
    column-gap: 32px;
    padding-left: 0;
    margin-bottom: 40px;
  }
  /* Reorder: date+tag in col 1 (right-aligned), title+desc in col 2 */
  .tam-uu-tl-item__date {
    grid-column: 1;
    text-align: right;
    padding-right: 16px;
  }
  .tam-uu-tl-item__tag {
    grid-column: 1;
    text-align: right;
    padding-right: 16px;
  }
  .tam-uu-tl-item__title { grid-column: 2; grid-row: 1; }
  .tam-uu-tl-item__desc { grid-column: 2; grid-row: 2 / span 2; }
  /* Dot wandert auf die Linie zwischen den Spalten */
  .tam-uu-tl-item::before {
    left: 152px; /* 160 - 8 (halbe dot-width) */
    top: 6px;
  }
}

.tam-uu-quality-section {
  background: var(--tam-grey-6);
  padding: 56px 24px;
}
.tam-uu-quality__title {
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 700;
  margin: 0 0 8px;
  max-width: 1024px;
  margin-left: auto;
  margin-right: auto;
}
.tam-uu-quality__lead {
  font-size: 16px;
  color: var(--tam-grey-3);
  margin: 0 auto 40px;
  max-width: 1024px;
}
.tam-uu-quality__grid {
  max-width: 1024px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.tam-uu-quality__card {
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 28px;
}
.tam-uu-quality__card h3 {
  font-size: 17px;
  font-weight: 600;
  margin: 0 0 12px;
}
.tam-uu-quality__card p {
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.6;
  margin: 0 0 16px;
}
.tam-uu-quality__card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 15px;
  color: var(--tam-grey-3);
}
.tam-uu-quality__card ul li {
  padding: 2px 0;
}
.tam-uu-quality__card ul li::before {
  content: "·";
  margin-right: 8px;
}

.tam-uu-team-section {
  max-width: 1024px;
  margin: 0 auto;
  padding: 80px 24px;
}
.tam-uu-team__title {
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 700;
  margin: 0 0 8px;
}
.tam-uu-team__lead {
  font-size: 16px;
  color: var(--tam-grey-3);
  margin: 0 0 40px;
}
.tam-uu-team__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.tam-uu-team__card {
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.tam-uu-team__photo {
  width: 96px;
  height: 96px;
  background: var(--tam-grey-5);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: var(--tam-grey-4);
  margin-bottom: 16px;
}
.tam-uu-team__name {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 4px;
}
.tam-uu-team__role {
  font-size: 14px;
  color: var(--tam-grey-3);
}
.tam-uu-team__card--cta {
  border-style: dashed;
  border-color: var(--tam-grey-5);
  background: var(--tam-grey-6);
  justify-content: center;
}
.tam-uu-team__card--cta p {
  font-size: 15px;
  color: var(--tam-grey-2);
  margin: 0 0 12px;
}
.tam-uu-team__card--cta a {
  font-size: 15px;
  font-weight: 600;
  color: var(--tam-navy);
  text-decoration: none;
}
.tam-uu-team__card--cta a:hover { text-decoration: underline; }

.tam-end-cta__buttons {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

@media (max-width: 920px) {
  .tam-uu-warum,
  .tam-uu-vm,
  .tam-uu-gruender { grid-template-columns: 1fr; gap: 32px; }
  .tam-uu-gruender__photo { width: 192px; aspect-ratio: 1 / 1; }
  .tam-uu-barrieren { grid-template-columns: 1fr; gap: 32px; }
  .tam-uu-kpi-grid__track { grid-template-columns: repeat(3, 1fr); }
  .tam-uu-kpi-grid__track > :nth-child(4),
  .tam-uu-kpi-grid__track > :nth-child(5) { grid-column: span 1; }
  .tam-uu-quality__grid { grid-template-columns: 1fr; }
  .tam-uu-team__grid { grid-template-columns: 1fr 1fr; }
  .tam-uu-team__card--cta { grid-column: span 2; }
}

/* KPI Mobile-Snap-Carousel: < 768px snap, ansonsten Grid */
@media (max-width: 767px) {
  .tam-uu-kpi-grid__track {
    display: flex;
    flex-direction: row;
    gap: 12px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    margin-inline: -16px;
    padding-inline: 16px;
  }
  .tam-uu-kpi-grid__track::-webkit-scrollbar { display: none; }
  .tam-uu-kpi.tam-mobile-snap__card {
    flex: 0 0 auto;
    width: 46vw;
    max-width: 200px;
    scroll-snap-align: start;
    /* KPI-Cards bleiben full-size auch in non-active state — die
     * Wert/Label-Combo ist klein genug, dass scale/opacity-Effekte
     * die Lesbarkeit beeintraechtigen wuerden. */
    transform: none;
    opacity: 1;
  }
  /* Edge-Fade ueber section-bg gray-50 */
  .tam-uu-kpi-section .tam-mobile-snap::after {
    background: linear-gradient(to left, var(--tam-grey-6), transparent);
  }
}

@media (max-width: 600px) {
  .tam-uu-hero { padding: 56px 20px 48px; }
  .tam-uu-warum-section,
  .tam-uu-barrieren-section,
  .tam-uu-kpi-section,
  .tam-uu-gruender-section,
  .tam-uu-vm-section,
  .tam-uu-timeline-section,
  .tam-uu-quality-section,
  .tam-uu-team-section { padding-left: 20px; padding-right: 20px; }
  .tam-uu-kpi-grid { grid-template-columns: 1fr 1fr; }
  .tam-uu-vm__vision,
  .tam-uu-vm__mission { padding: 24px; }
  .tam-end-cta__buttons { flex-direction: column; }
  .tam-end-cta__buttons a { width: 100%; max-width: 320px; }
}

/* ============================================================
 * BEWERBEN PAGE (5-Step Wizard)
 * ============================================================ */

.tam-wizard__steps--five .tam-wizard__step-connector { width: 24px; }

.tam-bewerben { max-width: 768px; }
.tam-bewerben__title {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 700;
  margin: 0 0 16px;
  color: var(--tam-navy);
}
.tam-bewerben__options {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 32px 0;
}
.tam-bewerben__option {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 24px;
  border: 2px solid var(--tam-grey-5);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color .15s, background-color .15s;
}
.tam-bewerben__option:hover { border-color: var(--tam-navy-soft); }
.tam-bewerben__option.is-selected {
  border-color: var(--tam-navy);
  background: var(--tam-grey-6);
}
.tam-bewerben__option input { margin-top: 6px; flex-shrink: 0; }
.tam-bewerben__option h3 {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 4px;
}
.tam-bewerben__option p {
  font-size: 14px;
  color: var(--tam-grey-3);
  margin: 0;
}

.tam-bewerben__warning {
  margin-top: 24px;
  padding: 24px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 8px;
}
.tam-bewerben__warning h3 {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 8px;
}
.tam-bewerben__warning p {
  font-size: 14px;
  color: var(--tam-grey-2);
  margin: 0;
  line-height: 1.6;
}

.tam-bewerben__requirements {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 32px 0;
}
.tam-bewerben__req {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 24px;
  border: 2px solid var(--tam-grey-5);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color .15s;
  font-size: 15px;
  color: var(--tam-navy-soft);
  line-height: 1.5;
}
.tam-bewerben__req:hover { border-color: var(--tam-navy-soft); }
.tam-bewerben__req:has(input:checked) {
  border-color: var(--tam-navy);
  background: var(--tam-grey-6);
}
.tam-bewerben__req input { margin-top: 4px; flex-shrink: 0; width: 20px; height: 20px; }

.tam-bewerben__checkboxes {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 8px;
}
.tam-bewerben__checkboxes label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--tam-navy-soft);
  cursor: pointer;
}

.tam-bewerben__upload {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 24px 0;
}
.tam-bewerben__file {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 20px;
  border: 1px dashed var(--tam-grey-5);
  border-radius: 8px;
  background: var(--tam-grey-6);
  cursor: pointer;
  transition: border-color .15s;
}
.tam-bewerben__file:hover { border-color: var(--tam-navy); }
.tam-bewerben__file-label { font-size: 15px; font-weight: 500; }
.tam-bewerben__file-hint { font-size: 13px; color: var(--tam-grey-4); }
.tam-bewerben__file input[type="file"] { font-size: 14px; color: var(--tam-grey-2); }

.tam-bewerben__summary {
  background: var(--tam-grey-6);
  border: 1px solid var(--tam-grey-5);
  border-radius: 8px;
  padding: 24px;
  margin: 24px 0;
}
.tam-bewerben__summary p {
  font-size: 15px;
  color: var(--tam-grey-2);
  line-height: 1.6;
  margin: 0 0 16px;
}
.tam-bewerben__summary ul {
  list-style: disc;
  padding-left: 20px;
  margin: 0;
  font-size: 14px;
  color: var(--tam-grey-3);
  line-height: 1.6;
}
.tam-bewerben__summary ul li { margin-bottom: 6px; }

.tam-bewerben__nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 32px;
  gap: 12px;
}
.tam-wizard__back-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: none;
  border: 0;
  font-size: 15px;
  color: var(--tam-grey-3);
  cursor: pointer;
  font-family: inherit;
  transition: color .15s;
}
.tam-wizard__back-btn:hover { color: var(--tam-navy); }
.tam-bewerben__submit { width: auto; padding-left: 32px; padding-right: 32px; }

/* ===== BEWERBEN LANDING (Step 0) ===== */
.tam-bewerben-page { background: #ffffff; }
.tam-bewerben-hero {
  max-width: 896px;
  margin: 0 auto;
  padding: 80px 24px 56px;
  text-align: center;
}
.tam-bewerben-hero__title {
  font-size: clamp(28px, 4vw, 36px);
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 0 0 16px;
}
.tam-bewerben-hero__lead {
  font-size: 18px;
  color: var(--tam-grey-3);
  line-height: 1.6;
  max-width: 640px;
  margin: 0 auto 8px;
}
.tam-bewerben-hero__sub {
  font-size: 15px;
  color: var(--tam-grey-4);
  margin: 0;
}

.tam-bewerben-section-title {
  font-size: clamp(20px, 2.5vw, 24px);
  font-weight: 700;
  text-align: center;
  margin: 0 0 32px;
}

.tam-bewerben-requirements-section,
.tam-bewerben-process-section {
  max-width: 1152px;
  margin: 0 auto;
  padding: 64px 24px;
}
.tam-bewerben-requirements {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.tam-bewerben-req-card {
  border: 1px solid var(--tam-grey-5);
  border-radius: 12px;
  padding: 24px;
}
.tam-bewerben-req-card h3 {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 12px;
}
.tam-bewerben-req-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 15px;
  color: var(--tam-grey-3);
}
.tam-bewerben-req-card li {
  display: flex;
  gap: 8px;
}
.tam-bewerben-req-card li > span:first-child {
  color: var(--tam-navy);
  font-weight: 600;
  flex-shrink: 0;
}

.tam-bewerben-benefits-section {
  background: var(--tam-grey-6);
  padding: 64px 24px;
}
.tam-bewerben-benefits-section__inner {
  max-width: 1152px;
  margin: 0 auto;
}
.tam-bewerben-benefits {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 64px;
  row-gap: 24px;
}
.tam-bewerben-benefit {
  display: flex;
  gap: 16px;
}
.tam-bewerben-benefit__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  background: #ffffff;
  border: 1px solid var(--tam-grey-5);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tam-grey-2);
}
.tam-bewerben-benefit__title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 4px;
}
.tam-bewerben-benefit__desc {
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.5;
  margin: 0;
}

.tam-bewerben-process-section { max-width: 896px; }
.tam-bewerben-process {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-width: 512px;
  margin: 0 auto;
}
.tam-bewerben-process-step {
  display: flex;
  gap: 16px;
}
.tam-bewerben-process-step__num {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 9999px;
  background: var(--tam-navy);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 15px;
}
.tam-bewerben-process-step__title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 4px;
}
.tam-bewerben-process-step__desc {
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.5;
  margin: 0;
}

.tam-bewerben-cta-section {
  text-align: center;
  padding: 64px 24px;
}
.tam-bewerben-cta-section__inner {
  max-width: 768px;
  margin: 0 auto;
}
.tam-bewerben-cta-title {
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 700;
  margin: 0 0 16px;
}
.tam-bewerben-cta-lead {
  font-size: 16px;
  color: var(--tam-grey-3);
  margin: 0 0 32px;
}

/* Step-Mobile-Label (zeigt aktive Step-Bezeichnung auf Mobile) */
.tam-wizard__step-mobile-label {
  display: none;
  font-size: 13px;
  color: var(--tam-grey-3);
  text-align: center;
  margin: 8px 0 0;
}
.tam-wizard__step-mobile-label strong {
  color: var(--tam-navy);
  font-weight: 500;
}
@media (max-width: 767px) {
  .tam-wizard__step-mobile-label { display: block; }
}

/* Bewerben-Success: 3-Step-List + 2 Buttons */
.tam-bewerben-success-steps {
  text-align: left;
  max-width: 480px;
  margin: 40px auto;
}
.tam-bewerben-success-steps__title {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tam-grey-3);
  margin: 0 0 24px;
}
.tam-bewerben-success-step {
  display: flex;
  gap: 16px;
  margin-bottom: 24px;
}
.tam-bewerben-success-step:last-child { margin-bottom: 0; }
.tam-bewerben-success-step__num {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 9999px;
  background: var(--tam-navy);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
}
.tam-bewerben-success-step__title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 4px;
}
.tam-bewerben-success-step__desc {
  font-size: 15px;
  color: var(--tam-grey-3);
  line-height: 1.5;
  margin: 0;
}
.tam-bewerben-success-nav {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
  margin-top: 32px;
}

@media (max-width: 920px) {
  .tam-bewerben-requirements { grid-template-columns: 1fr; gap: 16px; }
  .tam-bewerben-benefits { grid-template-columns: 1fr; column-gap: 24px; }
}

@media (max-width: 600px) {
  .tam-bewerben__checkboxes { grid-template-columns: 1fr; }
  .tam-bewerben__option,
  .tam-bewerben__req { padding: 16px; }
  .tam-wizard__steps--five .tam-wizard__step-connector { width: 12px; }
  .tam-bewerben-hero { padding: 48px 20px 32px; }
  .tam-bewerben-requirements-section,
  .tam-bewerben-process-section,
  .tam-bewerben-benefits-section,
  .tam-bewerben-cta-section { padding: 48px 20px; }
}

/* ============================================================
 * Wizard-Overlay Layout-Bypass
 * WP wickelt Pattern-Inhalte in `.is-layout-constrained` ein, das
 * direkten Kindern `max-width` + `margin: 0 auto !important` aufzwingt.
 * Dadurch wuerden die Wizard-Roots — trotz `fixed inset-0` — horizontal
 * beschnitten. Hier neutralisiert.
 * ============================================================ */
[data-tam-og-root],
[data-tam-diag-root],
[data-tam-eb-root],
[data-tam-bw-overlay] {
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Auf den drei eigenstaendigen Wizard-Pages (OG, Diag, Erstberatung)
 * wird der Wizard direkt als Pattern-Content eingespeist und soll die
 * komplette Viewport-Hoehe einnehmen. Auf diesen Routen darf der
 * site-wide Header + Footer nicht doppelt erscheinen. */
body.tam-wizard-page > .wp-site-blocks > header,
body.tam-wizard-page > .wp-site-blocks > footer,
body.tam-wizard-page .wp-block-template-part[data-area="header"],
body.tam-wizard-page .wp-block-template-part[data-area="footer"] {
	display: none !important;
}
body.tam-wizard-page > .wp-site-blocks {
	padding: 0 !important;
}
body.tam-wizard-page main#tam-main-content {
	padding: 0 !important;
	margin: 0 !important;
	max-width: none !important;
}

/* ============================================================
 * WP-Layout-Margin-Bypass
 * WP injiziert ueber theme.json's layout-constrained-style:
 *   :where(.is-layout-constrained) > * { margin-block-start: 24px }
 * Das schiebt jede Section innerhalb von <main>/<entry-content>
 * 24px nach unten. Unsere Tailwind-Patterns regeln Spacing schon
 * via py-* selbst, deshalb hier neutralisieren — sonst klafft
 * pro Section eine ~24px-Luecke gegenueber der React-Vorlage.
 * ============================================================ */
.entry-content.is-layout-constrained > *,
.wp-block-post-content.is-layout-constrained > *,
main.is-layout-constrained > * {
	margin-block-start: 0 !important;
}
/* Seit WP den Post-Content als is-layout-FLOW rendert, greift der
 * constrained-Bypass oben nicht mehr — gleiche Neutralisierung auch
 * fuer die Flow-Variante (inkl. wp-block-group-Wrapper). */
.entry-content.is-layout-flow > *,
.wp-block-post-content.is-layout-flow > *,
main.is-layout-flow > *,
.entry-content > .wp-block-group.is-layout-flow > * {
	margin-block-start: 0 !important;
}

/* Pflichtfeld-Fehlerzustand (Wizard-Kontaktschritte, TAM Sammel-Ticket / Niklas 03.07.) */
.tam-field-invalid { border-color: #c0392b; }
.tam-field-invalid:focus { border-color: #c0392b; box-shadow: 0 0 0 2px rgba(192, 57, 43, 0.16); }
