/*
Theme Name: Thomas Hug-Di Lena
Theme URI: https://thomas-hug.ch
Author: Thomas Hug-Di Lena
Author URI: https://thomas-hug.ch
Description: Persönliches Portfolio-Theme für Thomas Hug-Di Lena — Raum- und Verkehrsplaner. Dunkles, violett akzentuiertes Full-Site-Editing (Block) Theme. Erstellt beim Aktivieren automatisch editierbare Seiten (Home, Über mich, Medien, Referate & Auftritte, Kontakt, Blog). Benötigt das mitgelieferte Plugin "Thomas Hug Core" für die Inhaltstypen (Medien & Publikationen, Referate & Auftritte, Projekte, Werdegang).
Version: 2.9.7
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: thomas-hug
Tags: full-site-editing, block-styles, portfolio, one-column, custom-colors, custom-menu, editor-style
*/

/* ============================================================
   Tokens
   ============================================================ */
:root {
  --th-ink:    #0B0B0E;
  --th-ink2:   #070709;
  --th-paper:  #F3F3F4;
  --th-violet: #8B5CF6;        /* freundlicheres, helleres Violett */
  --th-violet-light: #B79CFF;
  --th-violet-dark:  #7C3AED;
  --th-radius:    14px;
  --th-radius-sm: 10px;
  --th-radius-lg: 18px;
  --th-font-head: 'Barlow Condensed', system-ui, sans-serif;
  --th-font-body: 'Space Grotesk', system-ui, sans-serif;
}

/* ============================================================
   Base
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: #FFFFFF;
  color: var(--th-ink);
  font-family: var(--th-font-body);
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
img, svg { display: block; max-width: 100%; }
::-webkit-scrollbar { width: 3px; }
::-webkit-scrollbar-track { background: var(--th-ink); }
::-webkit-scrollbar-thumb { background: var(--th-violet); }
::placeholder { color: rgba(255,255,255,0.25); }
@keyframes th-fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* anchored sections clear the fixed nav */
section[id] { scroll-margin-top: 60px; }

/* Kein Abstand zwischen den Top-Level-Blöcken (entfernt den weissen Streifen
   zwischen fixierter Navigation und dem ersten Hero-/Titel-Band). */
.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }
.wp-site-blocks { padding-top: 0; }
main.wp-block-group > :first-child { margin-top: 0; }
html { background: var(--th-ink); } /* Fallback: etwaige Slivers bleiben dunkel statt weiss */

/* Admin-Bar: fixierte Navigation um die Höhe der WP-Adminleiste nach unten
   schieben (sonst entsteht ein heller Streifen unter der Navigation). */
body.admin-bar .th-nav { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .th-nav { top: 46px; }
}

/* ============================================================
   Navigation
   ============================================================ */
.th-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  height: 60px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 48px;
  background: var(--th-ink);
  border: 1px solid transparent;
  border-bottom-color: rgba(255,255,255,0.08);
  transition: top 0.28s ease, left 0.28s ease, right 0.28s ease, height 0.28s ease,
    padding 0.28s ease, background 0.28s ease, border-color 0.28s ease,
    border-radius 0.28s ease, box-shadow 0.28s ease, backdrop-filter 0.28s ease;
}
.th-nav__brand {
  font-size: 13px; font-weight: 600; color: #fff;
  letter-spacing: 0.06em; text-transform: uppercase;
}
.th-nav__links { display: flex; align-items: center; }
.th-nav__links a {
  font-size: 12px; font-weight: 600; letter-spacing: 0.1em;
  text-transform: uppercase; padding: 7px 16px;
  color: rgba(255,255,255,0.5);
  border: 1px solid transparent; border-radius: 999px;
  transition: color 0.12s, border-color 0.12s, background 0.12s;
}
.th-nav__links a:hover { color: rgba(255,255,255,0.85); }
.th-nav__links a.is-active { color: #fff; border-color: var(--th-violet); background: rgba(139,92,246,0.16); }
.th-nav__toggle { display: none; }

/* ============================================================
   Shared helpers
   ============================================================ */
.th-wrap { max-width: 1400px; margin: 0 auto; padding: 72px 48px; }
.th-eyebrow {
  font-size: 11px; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--th-violet); margin-bottom: 24px;
}
.th-label {
  font-size: 11px; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase; margin-bottom: 48px;
}
.th-label--ink  { color: rgba(8,8,8,0.4); }
.th-label--mute { color: rgba(255,255,255,0.3); }
.th-h1 {
  font-family: var(--th-font-head); font-weight: 900;
  text-transform: uppercase; line-height: 0.92;
  letter-spacing: -0.02em;
}
.th-section--paper { background: var(--th-paper); border-top: 2px solid var(--th-ink); }
.th-section--dark  { background: var(--th-ink); border-top: 2px solid rgba(255,255,255,0.06); }

/* Buttons */
.th-btn {
  display: inline-block; padding: 14px 28px; border: none;
  font-size: 13px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; border-radius: 999px;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.th-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,0,0,0.18); }
.th-btn--solid { background: #fff; color: var(--th-ink); }
.th-btn--solid:hover { background: rgba(255,255,255,0.85); }
.th-btn--ghost { background: transparent; border: 1px solid rgba(255,255,255,0.3); color: #fff; }
.th-btn--ghost:hover { border-color: rgba(255,255,255,0.7); }
.th-btn--ink { background: var(--th-ink); color: #fff; }
.th-btn--ink:hover { background: #1a1a1a; }
.th-btn--violet { background: var(--th-violet); color: #fff; }
.th-btn--violet:hover { background: var(--th-violet-dark); }
.th-btn-row { display: flex; gap: 12px; flex-wrap: wrap; }

.th-link-violet {
  font-size: 12px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--th-violet); transition: color 0.1s;
}
.th-link-violet:hover { color: var(--th-violet-light); }

/* Image placeholders (replace with real images) */
.th-ph {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 12px; text-align: center;
  border-radius: var(--th-radius);
}
.th-ph__cap {
  font-family: monospace; font-size: 10px; letter-spacing: 0.1em;
  text-transform: uppercase; line-height: 2; color: currentColor;
}
.th-ph--violet {
  color: rgba(8,8,8,0.3);
  background: repeating-linear-gradient(45deg, rgba(8,8,8,0.055) 0px, rgba(8,8,8,0.055) 1px, transparent 1px, transparent 14px);
}
.th-ph--light {
  color: rgba(8,8,8,0.25);
  background: repeating-linear-gradient(45deg, rgba(8,8,8,0.05) 0px, rgba(8,8,8,0.05) 1px, transparent 1px, transparent 12px);
}
.th-ph--dark {
  color: rgba(255,255,255,0.22);
  background: repeating-linear-gradient(45deg, rgba(255,255,255,0.04) 0px, rgba(255,255,255,0.04) 1px, transparent 1px, transparent 14px);
  border: 1px solid rgba(255,255,255,0.1);
}

/* ============================================================
   HOME — Hero
   ============================================================ */
.th-hero {
  display: grid; grid-template-columns: 42% 58%;
  min-height: 100vh;
}
/* WordPress spritzt bei is-layout-flow 24px margin-block zwischen Kinder ein;
   in meinen farbigen Grid-Containern erzeugt das weisse Balken — hier nullen
   (das gewünschte Spalten-"gap" bleibt davon unberührt). */
.wp-block-group.th-hero > *,
.wp-block-group.th-split > *,
.wp-block-group.th-intro > *,
.wp-block-group.th-bio > *,
.wp-block-group.th-referate-head > *,
.wp-block-group.th-feature > * { margin-block-start: 0; margin-block-end: 0; }
/* erste Inhalte laufen unter die fixe Navigation; dunkle Bänder oben mit
   etwas Luft, damit nichts hinter der Leiste klebt */
.th-hero__left { padding-top: 96px; }
.th-pagehead, .th-referate-head { padding-top: 104px; }
.th-split__violet, .th-split__dark { padding-top: 96px; }
.th-hero__left {
  background: var(--th-ink); display: flex; flex-direction: column;
  justify-content: flex-end; padding: 56px;
  border-right: 1px solid rgba(255,255,255,0.08);
  animation: th-fadeIn 0.5s ease both;
}
.th-hero__lead {
  font-size: 17px; color: rgba(255,255,255,0.6); line-height: 1.75;
  max-width: 380px; margin-bottom: 48px;
}
.th-hero__right {
  background: var(--th-violet); display: flex; flex-direction: column; overflow: hidden;
}
.th-portrait { flex: 1; min-height: 220px; position: relative; overflow: hidden; }
.th-hero__namewrap { padding: 32px 52px 52px; flex-shrink: 0; }
.th-hero__name {
  font-family: var(--th-font-head); font-weight: 900;
  font-size: clamp(72px, 14vw, 230px); line-height: 0.88;
  text-transform: uppercase; color: var(--th-ink); letter-spacing: -0.02em;
}

/* HOME — Projekte */
.th-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid var(--th-ink); }
.th-proj { display: flex; flex-direction: column; border-right: 1px solid rgba(8,8,8,0.12); }
.th-proj:last-child { border-right: none; }
.th-proj__thumb {
  aspect-ratio: 16 / 9; border-bottom: 1px solid rgba(8,8,8,0.1);
  margin-bottom: 28px;
}
.th-proj__body { flex: 1; }
.th-grid3 .th-proj:nth-child(1) .th-proj__body { padding: 0 36px 0 0; }
.th-grid3 .th-proj:nth-child(2) .th-proj__body { padding: 0 36px; }
.th-grid3 .th-proj:nth-child(3) .th-proj__body { padding: 0 0 0 36px; }
.th-proj__kicker {
  font-size: 11px; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--th-violet); margin-bottom: 16px;
}
.th-proj__title {
  font-family: var(--th-font-head); font-size: 36px; font-weight: 800;
  text-transform: uppercase; color: var(--th-ink); margin-bottom: 14px;
  letter-spacing: -0.01em; line-height: 1;
}
.th-proj__desc { font-size: 14px; color: rgba(8,8,8,0.6); line-height: 1.7; margin-bottom: 20px; }
.th-proj__meta {
  font-size: 11px; font-weight: 700; color: rgba(8,8,8,0.4);
  letter-spacing: 0.1em; text-transform: uppercase;
}

/* HOME — Presse preview + Medien list */
.th-rowhead { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 32px; }

/* Medien-Box: klarer abgegrenzte Karte */
.th-press {
  border: 1px solid rgba(255,255,255,0.09);
  border-radius: var(--th-radius-lg);
  background: rgba(255,255,255,0.025);
  padding: 6px 24px;
}
.th-press__row {
  display: grid; grid-template-columns: 100px 1fr 160px 60px;
  align-items: center; gap: 24px; padding: 20px 12px;
  border-top: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--th-radius-sm);
  transition: background 0.15s ease; cursor: default;
}
.th-press__row:first-child { border-top: none; }
.th-press__row:hover { background: rgba(255,255,255,0.05); }
.th-press__end { display: none; }
.th-press--media .th-press__row { grid-template-columns: 100px 1fr 180px 70px; }
.th-press__type { font-size: 10px; font-weight: 700; color: var(--th-violet); letter-spacing: 0.12em; text-transform: uppercase; }
.th-press__title { font-size: 15px; font-weight: 500; color: #fff; line-height: 1.4; }
.th-press__pub { font-size: 13px; color: rgba(255,255,255,0.4); text-align: right; }
.th-press__year { font-size: 13px; color: rgba(255,255,255,0.25); text-align: right; }

/* HOME — CTA */
.th-cta { background: var(--th-violet); }
.th-cta__inner {
  max-width: 1400px; margin: 0 auto; padding: 56px 48px;
  display: flex; justify-content: space-between; align-items: center;
  gap: 32px; flex-wrap: wrap;
}
.th-cta__title {
  font-family: var(--th-font-head); font-size: 36px; font-weight: 800;
  text-transform: uppercase; color: var(--th-ink); letter-spacing: -0.01em;
  line-height: 1.1; margin-bottom: 6px;
}
.th-cta__mail { font-size: 14px; color: rgba(8,8,8,0.6); }
.th-cta .th-btn { white-space: nowrap; flex-shrink: 0; }

/* ============================================================
   ÜBER MICH
   ============================================================ */
.th-split {
  display: grid; grid-template-columns: 42% 58%;
  min-height: 50vh; border-bottom: 1px solid rgba(255,255,255,0.08);
}
.th-split__violet {
  background: var(--th-violet); padding: 64px 56px;
  display: flex; flex-direction: column; justify-content: flex-end;
  border-right: 1px solid rgba(0,0,0,0.2);
}
.th-split__violet .th-eyebrow { color: rgba(8,8,8,0.5); margin-bottom: 16px; }
.th-split__violet .th-h1 { color: var(--th-ink); font-size: clamp(56px, 8vw, 120px); }
.th-split__dark {
  background: var(--th-ink); padding: 64px 56px;
  display: flex; flex-direction: column; justify-content: flex-end;
}
.th-quote { border-left: 3px solid var(--th-violet); padding-left: 24px; }
.th-quote p {
  font-size: 18px; font-style: italic; color: rgba(255,255,255,0.75);
  line-height: 1.7; font-family: Georgia, serif;
}

.th-bio {
  max-width: 1400px; margin: 0 auto; padding: 72px 48px;
  display: grid; grid-template-columns: 280px 1fr 320px; gap: 56px; align-items: start;
}
.th-bio__portrait { position: sticky; top: 80px; }
.th-bio__portrait .th-ph { aspect-ratio: 3 / 4; }
.th-bio__label {
  font-size: 11px; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase; color: rgba(255,255,255,0.3); margin-bottom: 32px;
}
.th-bio__text p { font-size: 17px; color: rgba(255,255,255,0.65); line-height: 1.85; margin-bottom: 22px; }
.th-bio__text p:last-child { margin-bottom: 0; }
.th-bio__side { display: flex; flex-direction: column; }
.th-bio__side .th-bio__label { margin-bottom: 24px; }
.th-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 40px; }
.th-tag {
  font-size: 12px; font-weight: 600; color: var(--th-violet-light);
  padding: 6px 14px; border: 1px solid rgba(139,92,246,0.6);
  letter-spacing: 0.06em; text-transform: uppercase;
  border-radius: 999px; transition: background 0.12s, color 0.12s;
}
.th-tag:hover { background: rgba(139,92,246,0.12); color: #fff; }
.th-bio__contact-label { font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.3); margin-bottom: 16px; }
.th-bio__mail { font-size: 15px; font-weight: 600; color: var(--th-violet); margin-bottom: 4px; }
.th-bio__handle { font-size: 14px; color: rgba(255,255,255,0.4); margin-bottom: 28px; }

/* Timeline */
.th-tl { border-top: 1px solid rgba(255,255,255,0.08); }
.th-tl__row {
  display: grid; grid-template-columns: 160px 1fr; gap: 32px;
  padding: 24px 0; border-top: 1px solid rgba(255,255,255,0.06);
}
.th-tl__year { font-size: 12px; font-weight: 700; color: var(--th-violet); letter-spacing: 0.06em; text-transform: uppercase; padding-top: 2px; }
.th-tl__text { font-size: 15px; font-weight: 600; color: #fff; margin-bottom: 4px; }
.th-tl__detail { font-size: 13px; color: rgba(255,255,255,0.4); line-height: 1.5; }
.th-tl__end { border-top: 1px solid rgba(255,255,255,0.06); }

/* ============================================================
   MEDIEN
   ============================================================ */
.th-pagehead { max-width: 1400px; margin: 0 auto; padding: 80px 48px 56px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.th-pagehead .th-h1 { color: #fff; font-size: clamp(52px, 8vw, 120px); margin-bottom: 20px; }
.th-pagehead__lead { font-size: 15px; color: rgba(255,255,255,0.4); max-width: 480px; line-height: 1.6; }
.th-pagehead__lead a, .th-inline-violet { color: var(--th-violet); font-weight: 600; }

.th-filter { display: flex; gap: 8px; margin-bottom: 40px; flex-wrap: wrap; }
.th-fbtn {
  padding: 8px 18px; background: transparent;
  border: 1px solid rgba(255,255,255,0.2); color: rgba(255,255,255,0.55);
  font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  border-radius: 999px; transition: color 0.12s, border-color 0.12s, background 0.12s;
}
.th-fbtn:hover { color: #fff; border-color: rgba(255,255,255,0.45); }
.th-fbtn.is-active { background: var(--th-violet); border-color: var(--th-violet); color: #fff; }

/* ============================================================
   KOLUMNEN
   ============================================================ */
.th-feature {
  background: var(--th-violet); padding: 80px 48px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end;
}
.th-feature .th-eyebrow { color: rgba(8,8,8,0.5); margin-bottom: 20px; }
.th-feature .th-h1 { color: var(--th-ink); font-size: clamp(52px, 8vw, 120px); }
.th-feature__lead { font-size: 15px; color: rgba(8,8,8,0.65); line-height: 1.75; margin-bottom: 24px; }
.th-stat { display: flex; align-items: baseline; gap: 16px; }
.th-stat__num { font-family: var(--th-font-head); font-size: 56px; font-weight: 900; color: var(--th-ink); line-height: 1; }
.th-stat__label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(8,8,8,0.5); }

.th-cols__row {
  display: grid; grid-template-columns: 1fr 160px 120px;
  align-items: center; gap: 24px; padding: 24px 0;
  border-top: 1px solid rgba(255,255,255,0.07); transition: background 0.1s;
}
.th-cols__row:hover { background: rgba(255,255,255,0.02); }
.th-cols__title { font-size: 16px; font-weight: 500; color: #fff; line-height: 1.4; }
.th-cols__pub { font-size: 13px; color: var(--th-violet); font-weight: 600; text-align: right; }
.th-cols__date { font-size: 12px; color: rgba(255,255,255,0.25); text-align: right; }
.th-cols__end { border-top: 1px solid rgba(255,255,255,0.07); }

/* ============================================================
   REFERATE
   ============================================================ */
.th-referate-head {
  max-width: 1400px; margin: 0 auto; padding: 80px 48px 56px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  display: grid; grid-template-columns: 1fr 340px; gap: 64px; align-items: end;
}
.th-referate-head .th-h1 { color: #fff; font-size: clamp(52px, 8vw, 120px); margin-bottom: 20px; }
.th-referate-head__lead { font-size: 15px; color: rgba(255,255,255,0.4); max-width: 540px; line-height: 1.6; }
.th-referate-head__photo { aspect-ratio: 4 / 5; }

.th-themen { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid var(--th-ink); }
.th-themen__col { padding: 28px; border-right: 1px solid rgba(8,8,8,0.12); }
.th-themen__col:first-child { padding-left: 0; }
.th-themen__col:last-child { padding-right: 0; border-right: none; }
.th-themen__title { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--th-ink); margin-bottom: 8px; }
.th-themen__desc { font-size: 13px; color: rgba(8,8,8,0.55); line-height: 1.65; }

.th-talks {
  border: 1px solid rgba(255,255,255,0.09);
  border-radius: var(--th-radius-lg);
  background: rgba(255,255,255,0.025);
  padding: 6px 24px;
}
.th-talk__row {
  display: grid; grid-template-columns: 72px 1fr 150px;
  align-items: start; gap: 24px; padding: 22px 12px;
  border-top: 1px solid rgba(255,255,255,0.07);
  border-radius: var(--th-radius-sm);
  transition: background 0.15s ease;
}
.th-talk__row:first-child { border-top: none; }
.th-talk__row:hover { background: rgba(255,255,255,0.05); }
.th-talk__year { font-size: 12px; font-weight: 700; color: var(--th-violet-light); letter-spacing: 0.08em; text-transform: uppercase; padding-top: 3px; }
.th-talk__title { font-size: 16px; font-weight: 600; color: #fff; margin-bottom: 5px; line-height: 1.35; }
.th-talk__meta { font-size: 13px; color: rgba(255,255,255,0.4); }
.th-talk__loc { font-size: 12px; color: rgba(255,255,255,0.3); text-align: right; padding-top: 3px; }
.th-talk__end { display: none; }
.th-talk__cta { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 32px; }
.th-talk__cta p { font-size: 16px; font-weight: 500; color: rgba(255,255,255,0.55); }

/* ============================================================
   KONTAKT
   ============================================================ */
.th-kontakt-head .th-split__violet .th-h1 { font-size: clamp(64px, 10vw, 140px); line-height: 0.9; }
.th-kontakt-head .th-split__dark { gap: 12px; }
.th-kontakt-head .th-split__dark .th-eyebrow { color: rgba(255,255,255,0.3); margin-bottom: 8px; }
.th-kontakt-head__mail { font-size: 20px; font-weight: 600; color: var(--th-violet); }
.th-kontakt-head__note { font-size: 14px; color: rgba(255,255,255,0.4); }

.th-form { display: grid; grid-template-columns: 1fr 1fr; }
.th-form__left { padding: 32px 48px 32px 0; border-right: 1px solid rgba(255,255,255,0.08); display: flex; flex-direction: column; gap: 24px; }
.th-form__right { padding: 32px 0 32px 48px; display: flex; flex-direction: column; gap: 24px; }
.th-field label {
  display: block; font-size: 11px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: rgba(255,255,255,0.35); margin-bottom: 10px;
}
.th-field input, .th-field textarea {
  width: 100%; background: transparent; border: none;
  border-bottom: 1px solid rgba(255,255,255,0.15);
  padding: 12px 0; font-size: 16px; color: #fff; outline: none;
  transition: border-color 0.15s; font-family: inherit; resize: none;
}
.th-field input:focus, .th-field textarea:focus { border-bottom-color: var(--th-violet); }
.th-field--grow { flex: 1; }

/* ============================================================
   Footer
   ============================================================ */
.th-footer { background: var(--th-ink2); border-top: 1px solid rgba(255,255,255,0.06); padding: 48px; }
.th-footer__inner { max-width: 1400px; margin: 0 auto; display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; flex-wrap: wrap; }
.th-footer__name { font-family: var(--th-font-head); font-size: 28px; font-weight: 800; text-transform: uppercase; color: #fff; letter-spacing: -0.01em; margin-bottom: 6px; }
.th-footer__sub { font-size: 13px; color: rgba(255,255,255,0.3); }
.th-footer__cols { display: flex; gap: 40px; flex-wrap: wrap; align-items: flex-end; }
.th-footer__nav { display: flex; flex-direction: column; gap: 8px; }
.th-footer__nav a { font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.35); transition: color 0.1s; }
.th-footer__nav a:hover { color: #fff; }
.th-footer__copy { font-size: 12px; color: rgba(255,255,255,0.2); }

/* ============================================================
   Blog (posts) + single
   ============================================================ */
.th-blog__row {
  padding: 26px 28px;
  margin-bottom: 16px;
  border: 1px solid rgba(255,255,255,0.09);
  border-radius: var(--th-radius-lg);
  background: rgba(255,255,255,0.025);
  transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.th-blog__row:hover { transform: translateY(-3px); border-color: rgba(255,255,255,0.2); background: rgba(255,255,255,0.05); }
.th-blog__date { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--th-violet); margin: 0 0 8px; }
.th-blog__title { font-family: var(--th-font-head); font-size: 32px; font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; line-height: 1; margin: 0 0 12px; }
.th-blog__title a { color: #fff; transition: color 0.1s; }
.th-blog__title a:hover { color: var(--th-violet-light); }
.th-blog__excerpt { font-size: 15px; color: rgba(255,255,255,0.55); line-height: 1.7; max-width: 720px; }
.th-blog__excerpt a { color: var(--th-violet); }

.th-pagination { gap: 16px; margin-top: 40px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.08); }
.th-pagination a, .th-pagination .current { font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255,255,255,0.5); }
.th-pagination a:hover { color: #fff; }
.th-pagination .current { color: var(--th-violet); }

.th-single { padding: 104px 24px 80px; }
.th-single__title { font-family: var(--th-font-head); font-weight: 800; text-transform: uppercase; line-height: 1; letter-spacing: -0.01em; color: #fff; font-size: clamp(40px, 6vw, 72px); margin-bottom: 16px; }
.th-single__date { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--th-violet); margin-bottom: 24px; }
.th-single p { font-size: 17px; line-height: 1.8; color: rgba(255,255,255,0.7); margin-bottom: 20px; }
.th-single h2, .th-single h3 { font-family: var(--th-font-head); text-transform: uppercase; color: #fff; margin: 36px 0 12px; letter-spacing: -0.01em; }
.th-single a { color: var(--th-violet); }
.th-single img { margin: 24px 0; }

/* ============================================================
   Latest-posts preview (social-style cards) + follow buttons
   ============================================================ */
.th-postcards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.th-postcards li {
  display: flex; flex-direction: column;
  border: 1px solid rgba(255,255,255,0.09);
  background: rgba(255,255,255,0.025);
  border-radius: var(--th-radius-lg); overflow: hidden;
  transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}
.th-postcards li:hover { transform: translateY(-4px); border-color: rgba(255,255,255,0.2); background: rgba(255,255,255,0.05); box-shadow: 0 14px 34px rgba(0,0,0,0.3); }
.th-postcard__img { margin: 0; aspect-ratio: 16 / 9; overflow: hidden; background: repeating-linear-gradient(45deg, rgba(255,255,255,0.04) 0px, rgba(255,255,255,0.04) 1px, transparent 1px, transparent 14px); }
.th-postcard__img img { width: 100%; height: 100%; object-fit: cover; }
.th-postcard__body { padding: 24px; }
.th-postcard__date { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--th-violet); margin: 0 0 10px; }
.th-postcard__title { font-family: var(--th-font-head); font-size: 24px; font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; line-height: 1.05; margin: 0 0 10px; }
.th-postcard__title a { color: #fff; transition: color 0.1s; }
.th-postcard__title a:hover { color: var(--th-violet-light); }
.th-postcard__excerpt { font-size: 14px; color: rgba(255,255,255,0.55); line-height: 1.6; margin: 0; }
.th-postcard__excerpt a { color: var(--th-violet); }

.th-more-wrap { display: flex; justify-content: center; margin-top: 28px; }
.th-more {
  padding: 12px 28px; background: transparent;
  border: 1px solid rgba(255,255,255,0.25); color: rgba(255,255,255,0.8);
  font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  border-radius: 999px; transition: border-color 0.12s, color 0.12s, background 0.12s, transform 0.12s;
}
.th-more:hover { border-color: var(--th-violet); color: #fff; background: var(--th-violet); transform: translateY(-2px); }

.th-follow { display: flex; gap: 10px; margin-top: 20px; }
.th-follow__btn { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.2); color: rgba(255,255,255,0.6); transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease, transform 0.15s ease; }
.th-follow__btn:hover { color: #fff; border-color: var(--th-violet); background: var(--th-violet); transform: translateY(-3px); }

/* ============================================================
   Helles Layout — dunkler Titel-Hero, helle Inhalte darunter
   ============================================================ */
::-webkit-scrollbar-track { background: #FFFFFF; }

/* Titel-/Hero-Bänder als volle Breite, dunkel */
.th-pagehead, .th-referate-head {
  background: var(--th-ink);
  box-shadow: 0 0 0 100vmax var(--th-ink);
  clip-path: inset(0 -100vw);
  border-bottom: none;
}
.th-pagehead .th-label--mute, .th-referate-head .th-label--mute { color: rgba(255,255,255,0.5); }
.th-pagehead .th-h1, .th-referate-head .th-h1 { color: #fff; }
.th-pagehead__lead, .th-referate-head__lead { color: rgba(255,255,255,0.5); }
.th-pagehead__lead a, .th-pagehead__lead .th-inline-violet { color: var(--th-violet-light); }

/* Inhaltsbereiche: hell statt dunkel */
.th-section--dark { background: transparent; border-top: 1px solid rgba(8,8,8,0.12); }
.th-label--mute { color: rgba(8,8,8,0.4); }
.th-link-violet { color: var(--th-violet-dark); }
.th-link-violet:hover { color: var(--th-violet); }

/* Karten (Medien, Referate, Blog, Vorschau) hell */
.th-press, .th-talks { background: #fff; border-color: rgba(8,8,8,0.1); }
.th-press__row, .th-talk__row { border-top-color: rgba(8,8,8,0.08); }
.th-press__row:hover, .th-talk__row:hover { background: rgba(8,8,8,0.035); }
.th-press__title, .th-talk__title { color: var(--th-ink); }
.th-press__pub { color: rgba(8,8,8,0.5); }
.th-press__year { color: rgba(8,8,8,0.4); }
.th-press__type, .th-talk__year { color: var(--th-violet-dark); }
.th-talk__meta { color: rgba(8,8,8,0.5); }
.th-talk__loc { color: rgba(8,8,8,0.4); }
.th-talk__cta p { color: rgba(8,8,8,0.6); }

.th-postcards li { background: #fff; border-color: rgba(8,8,8,0.1); }
.th-postcards li:hover { border-color: rgba(8,8,8,0.2); background: #fff; box-shadow: 0 14px 34px rgba(0,0,0,0.12); }
.th-postcard__title a { color: var(--th-ink); }
.th-postcard__title a:hover { color: var(--th-violet-dark); }
.th-postcard__excerpt { color: rgba(8,8,8,0.6); }
.th-postcard__date { color: var(--th-violet-dark); }
.th-postcard__img { background: repeating-linear-gradient(45deg, rgba(8,8,8,0.05) 0px, rgba(8,8,8,0.05) 1px, transparent 1px, transparent 14px); }

.th-blog__row { background: #fff; border-color: rgba(8,8,8,0.1); }
.th-blog__row:hover { border-color: rgba(8,8,8,0.2); background: #fff; box-shadow: 0 12px 30px rgba(0,0,0,0.1); }
.th-blog__title a { color: var(--th-ink); }
.th-blog__title a:hover { color: var(--th-violet-dark); }
.th-blog__date { color: var(--th-violet-dark); }
.th-blog__excerpt { color: rgba(8,8,8,0.6); }

/* Pagination auf hell sichtbar */
.th-pagination { border-top-color: rgba(8,8,8,0.12); }
.th-pagination a, .th-pagination .current, .th-pagination .page-numbers { color: rgba(8,8,8,0.55); }
.th-pagination a:hover, .th-pagination a.page-numbers:hover { color: var(--th-ink); }
.th-pagination .current, .th-pagination .page-numbers.current { color: var(--th-violet-dark); }

/* Blog-Suche (im dunklen Kopfband) */
.th-search { max-width: 480px; margin-top: 28px; }
.th-search .wp-block-search__inside-wrapper {
  border: 1px solid rgba(255,255,255,0.22); border-radius: 999px;
  overflow: hidden; background: rgba(255,255,255,0.06);
}
.th-search .wp-block-search__input {
  background: transparent; border: none; color: #fff;
  padding: 13px 20px; font-family: inherit; font-size: 14px; outline: none;
}
.th-search .wp-block-search__input::placeholder { color: rgba(255,255,255,0.45); }
.th-search .wp-block-search__button {
  margin: 0; background: var(--th-violet); color: #fff; border: none;
  padding: 0 24px; font-weight: 700; font-size: 12px; letter-spacing: 0.08em;
  text-transform: uppercase; cursor: pointer; transition: background 0.12s;
}
.th-search .wp-block-search__button:hover { background: var(--th-violet-dark); }

/* Dropdown-Filter (z. B. Jahr) — bewusst anders als die Pillen */
.th-selectbar { display: inline-flex; align-items: center; gap: 12px; margin: -16px 0 40px; }
.th-selectbar__label { font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(8,8,8,0.45); }
.th-filter-select {
  appearance: none; -webkit-appearance: none; -moz-appearance: none;
  font-family: inherit; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--th-ink); background-color: #fff;
  border: 1px solid rgba(8,8,8,0.2); border-radius: var(--th-radius-sm);
  padding: 10px 40px 10px 16px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23080808' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 12px;
  transition: border-color 0.12s;
}
.th-filter-select:hover { border-color: rgba(8,8,8,0.45); }
.th-filter-select:focus { outline: none; border-color: var(--th-violet); }

/* Filter- und Mehr-Buttons auf hell */
.th-fbtn { border-color: rgba(8,8,8,0.2); color: rgba(8,8,8,0.55); }
.th-fbtn:hover { color: var(--th-ink); border-color: rgba(8,8,8,0.45); }
.th-fbtn.is-active { background: var(--th-violet); border-color: var(--th-violet); color: #fff; }
.th-more { border-color: rgba(8,8,8,0.25); color: rgba(8,8,8,0.7); }
.th-more:hover { color: #fff; border-color: var(--th-violet); background: var(--th-violet); }

/* Über mich: Bio + Werdegang auf hell */
.th-bio__label, .th-bio__contact-label { color: rgba(8,8,8,0.4); }
.th-bio__text p { color: rgba(8,8,8,0.7); }
.th-bio__handle { color: rgba(8,8,8,0.5); }
.th-bio__mail, .th-bio__mail a { color: var(--th-violet-dark); }
.th-bio__portrait .th-ph {
  color: rgba(8,8,8,0.25);
  background: repeating-linear-gradient(45deg, rgba(8,8,8,0.05) 0px, rgba(8,8,8,0.05) 1px, transparent 1px, transparent 14px);
  border-color: rgba(8,8,8,0.12);
}
.th-tl, .th-tl__row, .th-tl__end { border-top-color: rgba(8,8,8,0.1); }
.th-tl__text { color: var(--th-ink); }
.th-tl__detail { color: rgba(8,8,8,0.55); }
.th-tl__year { color: var(--th-violet-dark); }
.th-tags .th-tag { color: var(--th-violet-dark); border-color: rgba(124,58,237,0.45); }
.th-tags .th-tag:hover { background: rgba(124,58,237,0.1); color: var(--th-ink); }

/* "Anfrage stellen" im hellen Inhalt: dunkler Button statt weiss */
.th-bio__side .th-btn--solid, .th-talk__cta .th-btn--solid { background: var(--th-ink); color: #fff; }
.th-bio__side .th-btn--solid:hover, .th-talk__cta .th-btn--solid:hover { background: #222; }

/* Kontaktformular auf hell */
.th-field label { color: rgba(8,8,8,0.45); }
.th-field input, .th-field textarea { color: var(--th-ink); border-bottom-color: rgba(8,8,8,0.2); }
.th-field input:focus, .th-field textarea:focus { border-bottom-color: var(--th-violet); }
.th-field input::placeholder, .th-field textarea::placeholder { color: rgba(8,8,8,0.3); }

/* Einzelner Blogbeitrag auf hell */
.th-single__title { color: var(--th-ink); }
.th-single__date { color: var(--th-violet-dark); }
.th-single p { color: rgba(8,8,8,0.75); }
.th-single h2, .th-single h3 { color: var(--th-ink); }
.th-single a { color: var(--th-violet-dark); }

/* ============================================================
   Referate — Masonry-Karten (hell)
   ============================================================ */
.th-masonry { column-count: 3; column-gap: 24px; }
.th-talk-card {
  display: inline-block; width: 100%; margin: 0 0 24px;
  break-inside: avoid; -webkit-column-break-inside: avoid;
  background: #fff; border: 1px solid rgba(8,8,8,0.1);
  border-radius: var(--th-radius-lg); overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.th-talk-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(0,0,0,0.12); border-color: rgba(8,8,8,0.2); }
.th-talk-card__img { line-height: 0; background: repeating-linear-gradient(45deg, rgba(8,8,8,0.05) 0px, rgba(8,8,8,0.05) 1px, transparent 1px, transparent 14px); }
.th-talk-card__img img { width: 100%; height: auto; display: block; }
.th-talk-card__body { padding: 22px 22px 24px; }
.th-talk-card__top { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.th-talk-card__art { font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #fff; background: var(--th-violet); padding: 5px 12px; border-radius: 999px; }
.th-talk-card__year { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; color: rgba(8,8,8,0.45); }
.th-talk-card__title { font-family: var(--th-font-head); font-size: 24px; font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; line-height: 1.05; color: var(--th-ink); margin-bottom: 10px; }
.th-talk-card__title a { color: var(--th-ink); transition: color 0.12s ease; }
.th-talk-card__title a:hover { color: var(--th-violet-dark); }
.th-talk-card__meta { font-size: 13px; color: rgba(8,8,8,0.55); line-height: 1.5; margin-bottom: 6px; }
.th-talk-card__loc { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(8,8,8,0.4); }

/* ============================================================
   Dezente Animationen
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  .th-reveal { opacity: 0; transform: translateY(16px); transition: opacity 0.6s ease, transform 0.6s ease; }
  .th-reveal.is-in { opacity: 1; transform: none; }
}
.th-proj__thumb { border-radius: var(--th-radius-sm); }
.th-referate-head__photo, .th-bio__portrait .th-ph { border-radius: var(--th-radius-lg); }
.th-proj__title a, .th-press__title a, .th-cols__title a { transition: color 0.12s ease; }
.th-proj__title a:hover, .th-press__title a:hover, .th-cols__title a:hover { color: var(--th-violet-light); }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 980px) {
  .th-postcards { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .th-postcards { grid-template-columns: 1fr; }
}

/* ---- Mobile-Navigation (Hamburger) ---- */
@media (max-width: 900px) {
  .th-nav { padding: 0 20px; }
  .th-nav__brand { font-size: 12px; }
  .th-nav__toggle {
    display: inline-flex; flex-direction: column; justify-content: center;
    gap: 5px; width: 42px; height: 42px; padding: 9px; margin-right: -9px;
    background: transparent; border: none;
  }
  .th-nav__toggle span { display: block; width: 24px; height: 2px; background: #fff; border-radius: 2px; transition: transform 0.25s ease, opacity 0.2s ease; }
  .th-nav.is-open .th-nav__toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .th-nav.is-open .th-nav__toggle span:nth-child(2) { opacity: 0; }
  .th-nav.is-open .th-nav__toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  .th-nav__links {
    position: fixed; top: 60px; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--th-ink); border-bottom: 1px solid rgba(255,255,255,0.1);
    box-shadow: 0 18px 44px rgba(0,0,0,0.5);
    padding: 6px 0; max-height: calc(100vh - 60px); overflow-y: auto;
    opacity: 0; visibility: hidden; transform: translateY(-10px); pointer-events: none;
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
  }
  .th-nav.is-open .th-nav__links { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
  .th-nav__links a {
    padding: 15px 24px; font-size: 14px;
    border-bottom: 1px solid rgba(255,255,255,0.06); border-radius: 0;
  }
  .th-nav__links a:last-child { border-bottom: none; }
  .th-nav__links a.is-active { color: #fff; border-color: transparent; border-bottom-color: rgba(255,255,255,0.06); background: transparent; box-shadow: inset 3px 0 0 var(--th-violet); }
}

/* ---- Masonry-Spalten responsiv ---- */
@media (max-width: 980px) { .th-masonry { column-count: 2; } }
@media (max-width: 640px) { .th-masonry { column-count: 1; } }

/* ---- Floating-Navigation beim Scrollen (Desktop) ---- */
@media (min-width: 901px) {
  .th-nav.is-scrolled {
    top: 12px; left: 16px; right: 16px; height: 54px;
    padding: 0 26px; border-radius: 999px;
    background: rgba(11,11,14,0.72);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
    backdrop-filter: blur(14px) saturate(140%);
    border-color: rgba(255,255,255,0.12);
    box-shadow: 0 14px 38px rgba(0,0,0,0.4);
  }
  body.admin-bar .th-nav.is-scrolled { top: 44px; }
}

/* ============================================================
   Grafik-Akzente: Piktogramme, einfache Bild-Slots, harte Schatten
   ============================================================ */

/* Prominente Section-Titel */
.th-section-title {
  font-family: var(--th-font-head); font-weight: 900; text-transform: uppercase;
  font-size: clamp(34px, 4.6vw, 62px); line-height: 0.95; letter-spacing: -0.02em;
  color: var(--th-ink); margin: 8px 0 0;
}
.th-section-title em, .th-section-title .accent { color: var(--th-violet); font-style: normal; }
.th-rowhead__head .th-label, .th-intro__text .th-label { margin-bottom: 0; }

/* Front: Foto + Mini-Bio */
.th-intro {
  max-width: 1400px; margin: 0 auto; padding: 104px 48px;
  display: grid; grid-template-columns: minmax(0, 42%) 1fr; gap: 72px; align-items: center;
}
.th-intro__photo { margin: 0; }
.th-intro__photo img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; border-radius: var(--th-radius-lg); }
.th-intro__text .th-section-title { margin-bottom: 22px; }
.th-intro__text > p:not(.th-label) { font-size: 17px; line-height: 1.8; color: rgba(8,8,8,0.7); }

.th-facts { list-style: none; margin: 26px 0 32px; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.th-facts li { display: flex; align-items: center; gap: 14px; font-size: 15px; font-weight: 500; color: rgba(8,8,8,0.72); }
.th-facts svg { flex: 0 0 auto; width: 20px; height: 20px; color: var(--th-violet); }

/* Hero ohne Foto: Name vertikal zentriert */
.th-hero__right { justify-content: center; }

/* Mehr Luft auf der Front */
.th-rowhead { align-items: flex-end; margin-bottom: 40px; }
.th-section--dark .th-wrap { padding-top: 100px; padding-bottom: 100px; }

/* Vereinfachte Bild-Platzhalter (ruhiger Ton statt Streifen) */
.th-ph--light  { background: rgba(8,8,8,0.04); color: rgba(8,8,8,0.4); }
.th-ph--violet { background: rgba(255,255,255,0.14); color: rgba(8,8,8,0.5); }
.th-ph--dark   { background: rgba(8,8,8,0.04); color: rgba(8,8,8,0.4); border-color: rgba(8,8,8,0.12); }

/* Native Bild-Slots (per Bild-Block einfach ersetzbar) */
.th-hero__photo { margin: 0; flex: 1; min-height: 220px; overflow: hidden; }
.th-hero__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.th-bio__photo { margin: 0; position: sticky; top: 88px; }
.th-bio__photo img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; border-radius: var(--th-radius-lg); }
.th-photo { margin: 0; }
.th-referate-head__photo { margin: 0; }
.th-referate-head__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; border-radius: var(--th-radius-lg); }

/* Hover: harter Schatten in der Designfarbe (kein Weichzeichnen) */
.th-btn:hover { transform: translate(-2px, -2px); box-shadow: 5px 5px 0 0 var(--th-violet); }
.th-postcards li:hover, .th-blog__row:hover, .th-talk-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 8px 8px 0 0 var(--th-violet);
}
@media (max-width: 980px) {
  .th-wrap { padding: 56px 24px; }
  .th-intro { grid-template-columns: 1fr; gap: 36px; padding: 64px 24px; }
  .th-intro__photo { max-width: 360px; }
  .th-section--dark .th-wrap { padding-top: 64px; padding-bottom: 64px; }

  .th-hero { grid-template-columns: 1fr; min-height: auto; }
  /* Mobile: zuerst der violette Namens-Block, dann der schwarze Info-Block */
  .th-hero__left { padding: 48px 24px; border-right: none; min-height: auto; order: 2; }
  .th-hero__right { min-height: 68vh; order: 1; }
  .th-hero__namewrap { padding: 24px; }
  .th-pagehead, .th-referate-head { padding-left: 24px; padding-right: 24px; }

  .th-split, .th-kontakt-head .th-split { grid-template-columns: 1fr; }
  .th-split__violet, .th-split__dark { padding: 48px 24px; border-right: none; }

  .th-grid3 { grid-template-columns: 1fr; }
  .th-proj { border-right: none; border-bottom: 1px solid rgba(8,8,8,0.12); padding-bottom: 28px; }
  .th-grid3 .th-proj .th-proj__body { padding: 0 !important; }

  .th-bio { grid-template-columns: 1fr; gap: 40px; }
  .th-bio__portrait, .th-bio__photo { position: static; max-width: 320px; }

  .th-feature { grid-template-columns: 1fr; gap: 32px; padding: 56px 24px; }
  .th-referate-head { grid-template-columns: 1fr; gap: 32px; }
  .th-referate-head__photo { max-width: 300px; }
  .th-themen { grid-template-columns: 1fr; }
  .th-themen__col { padding: 24px 0 !important; border-right: none; border-bottom: 1px solid rgba(8,8,8,0.12); }

  .th-form { grid-template-columns: 1fr; }
  .th-form__left { padding: 0 0 24px; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); }
  .th-form__right { padding: 24px 0 0; }

  .th-cta__inner { padding: 40px 24px; }
  .th-footer { padding: 40px 24px; }
}

@media (max-width: 600px) {
  .th-rowhead { flex-direction: column; align-items: flex-start; gap: 14px; }
  .th-press__row, .th-press--media .th-press__row {
    grid-template-columns: 1fr; gap: 4px; padding: 18px 0;
  }
  .th-press__pub, .th-press__year { text-align: left; }
  .th-cols__row { grid-template-columns: 1fr; gap: 4px; }
  .th-cols__pub, .th-cols__date { text-align: left; }
  .th-talk__row { grid-template-columns: 1fr; gap: 6px; }
  .th-talk__loc { text-align: left; }
  .th-tl__row { grid-template-columns: 1fr; gap: 6px; }
}
