/* ===========================================================================
   ueber-manuel-wernli.css - Unterseite /ueber-manuel-wernli/
   Nutzt ausschliesslich die Tokens aus home.css (--warm, --cream, --ink, usw.).
   Präfix uw- für alle Komponenten dieser Seite. V3-Richtung:
   echte Fotos, Hell-Dunkel-Rhythmus mit dunklen Ankern, clay-kursive Headlines,
   feine Hairlines, Radius 2px, viel Weissraum.
   =========================================================================== */

/* ---- Hero: Eyebrow und Trust-Line ---- */
.uw-hero {
  min-height: var(--hero-min-h);
  max-height: var(--hero-min-h);
  height: var(--hero-min-h);
  overflow: hidden;
}
.uw-hero .hero-inner {
  min-height: var(--hero-min-h);
  max-height: var(--hero-min-h);
  height: var(--hero-min-h);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  padding: var(--hero-pad-top) var(--hero-pad-x) var(--hero-pad-bottom);
  max-width: var(--page-max);
  margin: 0 auto;
  grid-template-rows: unset;
  gap: 0;
}
body > .hero.uw-hero .hero-main {
  transform: none;
  max-width: var(--hero-type-max);
  align-self: flex-start;
}
.uw-eyebrow {
  margin-bottom: 20px;
  color: rgba(var(--cream-rgb),0.65);
}
.uw-trust-line {
  margin-top: 20px;
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: 12px;
  letter-spacing: 0.06em;
  color: rgba(var(--cream-rgb),0.6);
}

.uw-hero .hero-bg img {
  object-position: 58% 22%;
  transform: none;
  filter: brightness(1.06) contrast(1.03) saturate(1.03);
}
.uw-hero .hero-bg::after {
  background:
    linear-gradient(180deg, rgba(var(--shade-rgb),0.34) 0%, rgba(var(--shade-rgb),0.08) 42%, rgba(var(--shade-rgb),0.58) 100%),
    linear-gradient(90deg,
      rgba(var(--shade-rgb),0.78) 0%,
      rgba(var(--shade-rgb),0.58) 26%,
      rgba(var(--shade-rgb),0.22) 46%,
      rgba(var(--shade-rgb),0.04) 62%,
      rgba(var(--shade-rgb),0.14) 100%);
}
.uw-hero .hero-main {
  max-width: var(--hero-type-max);
}
.uw-hero .hero-main h1 {
  max-width: 22ch;
  font-size: var(--h1-sub-hero-size);
  line-height: 1.03;
}
.uw-hero .hero-sub {
  max-width: 620px;
}

/* ===================== S1 - SPLIT-HERO (Text links, Portrait rechts)
   Ersetzt das Full-Bleed-Overlay: Manuel steht vollstaendig im Rahmen,
   kein Text ueber dem Gesicht. Die EN-Seite nutzt weiterhin .uw-hero oben.
   ===================== */
.uw-hero-split {
  background: var(--cream);
  box-sizing: border-box;
  padding: 0;
}
/* K3: Basisklasse .hero-split aus home.css traegt Raster und Hoehe. Das Foto
   laeuft nach rechts bis an die Fensterkante (>= 55 % der Breite), die Textspalte
   ist vertikal zum Bild zentriert (Basis .hero-split). */
.uw-hero-split .hero-split {
  grid-template-columns: minmax(300px, 1fr) minmax(0, 56vw);
  gap: 48px;
  padding-top: calc(var(--nav-h, 88px) + 40px);
  padding-right: 0;
  padding-bottom: var(--section-pad-y);
  /* Bau 6: Text vertikal zentriert zum Bild (Basis .hero-split), kein align-items:start. */
}
.uw-hero-text {
  max-width: none;
}
.uw-hero-kicker {
  margin-bottom: 20px;
  color: rgba(var(--ink-rgb),0.72);
}
.uw-hero-text h1 {
  color: var(--ink);
  max-width: none;
}
.uw-hero-lead {
  margin-top: 20px;
  max-width: 46ch;
  font-size: var(--type-body-1);
  line-height: 1.6;
  color: var(--ink-soft);
  text-wrap: pretty;
}
.uw-hero-textlink {
  color: var(--ink);
}
.uw-hero-actions {
  margin-top: 28px;
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}
.uw-hero-figure {
  margin: 0;
  min-width: 0;
}
/* K3/K8: Bildhoehe auf den ersten Screen kappen, damit H1 und CTA im Fold bleiben. */
.uw-hero-figure .hero-split-media {
  /* Kopf, Schultern und die gefalteten Haende bleiben im Rahmen. */
  --hero-split-pos: 50% 34%;
  aspect-ratio: auto;
  height: min(70vh, 620px);
  border-radius: 2px 0 0 2px;
}

/* K5 ein Fill pro Fold: der Hero traegt den gefuellten CTA, der Header-CTA laeuft
   solange als Textlink, bis die Nav gescrollt auf Cream sitzt (dann wieder Fill).
   Gleiche Mechanik wie body[data-hero=photo] in home.css, hier routenlokal. */
.uw-page-cream nav:not([data-scrolled="true"]) .navlinks .nav-cta {
  color: var(--ink);
  background: transparent;
  border-color: transparent;
  padding-inline: 8px;
}
.uw-page-cream nav:not([data-scrolled="true"]) .navlinks .nav-cta:hover,
.uw-page-cream nav:not([data-scrolled="true"]) .navlinks .nav-cta:focus-visible {
  color: var(--clay-contrast);
  background: transparent;
  border-color: transparent;
}

/* ---- Hero-Bildzeile (ueber.hero.caption), echte Zeile unter dem Bild ----
   U11: rechtsbuendig an die Bildkante, die Zeile gehoert zum Foto. ---- */
.uw-hero-caption {
  margin-top: 14px;
  /* Die Medienspalte laeuft bis an die Fensterkante; die Zeile endet auf der
     Satzspiegelkante wie der uebrige Seiteninhalt (Kritik 16.09.). */
  padding-right: var(--page-pad);
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: right;
  color: rgba(var(--ink-rgb),0.6);
}

/* ---- clay-kursives Signaturwort pro Headline ---- */
/* Helle Sektionen -> clay */
.uw-hero-text h1 em,
.uw-split-text h2 em,
.uw-weg-head h2 em,
.uw-arbeitsweise h2 em,
.uw-quali h2 em,
.uw-region h2 em,
.uw-partner h2 em,
.uw-haltung h2 em {
  font-style: italic;
  font-family: "Bricolage Grotesque", sans-serif;
  font-weight: 300;
  color: var(--clay);
}
/* Dunkle Sektionen -> clay-light */
.uw-hero h1 em,
.uw-cta-dark h2 em {
  font-style: italic;
  font-family: "Bricolage Grotesque", sans-serif;
  font-weight: 300;
  color: var(--clay-light);
}

/* ---- Gemeinsamer Section-Wrapper ---- */
.uw-section-inner {
  max-width: var(--content-max);
  margin: 0 auto;
}

/* ---- Gemeinsamer Section-Kopf ---- */
.uw-head {
  max-width: 760px;
  margin: 0 0 52px;
}
.uw-head .uc,
.uw-head .sec-mark {
  color: rgba(var(--ink-rgb),0.72);
  margin-bottom: 18px;
}
.uw-head h2 {
  letter-spacing: 0;
}
.uw-head p {
  margin-top: 18px;
  font-size: var(--type-body-1);
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 640px;
  text-wrap: pretty;
}

/* ===================== S2 - WEG (helles Band nach dem Hero, vertikale Timeline) ===================== */
.uw-weg {
  position: relative;
  overflow: hidden;
  background: var(--warm);
  border-top: 1px solid var(--line);
  padding: var(--section-pad-y) var(--page-pad);
}
/* U11 U2c: im 900-px-Block klebte die Jahreszahl am Rand, rechts davon
   blieb die Sektion leer. */
.uw-weg-inner {
  position: relative;
  z-index: 1;
  max-width: 1080px;
  margin-inline: 0;
}
.uw-weg-head {
  margin-bottom: 40px;
}
.uw-weg-head .uc,
.uw-weg-head .sec-mark {
  color: rgba(var(--ink-rgb),0.72);
  margin-bottom: 18px;
}
.uw-weg-head h2 {
  letter-spacing: 0;
  color: var(--ink);
}
.uw-weg-head p {
  margin-top: 22px;
  font-size: var(--type-body-1);
  line-height: 1.65;
  color: var(--ink-soft);
  max-width: 620px;
  text-wrap: pretty;
}
/* Ghost-Typo hinter der Timeline, schneidet am rechten Rand ab */
.uw-weg-ghost {
  position: absolute;
  top: 150px;
  right: -0.05em;
  z-index: 0;
  font-family: "Bricolage Grotesque", sans-serif;
  font-weight: 300;
  font-size: clamp(120px, 17vw, 250px);
  line-height: 0.9;
  letter-spacing: -0.04em;
  color: rgba(var(--ink-rgb),0.04);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}
.uw-timeline {
  list-style: none;
  position: relative;
  margin: 0;
  padding: 6px 0 0;
}
/* Sichtbares Rückgrat */
.uw-timeline::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 12px;
  height: calc(100% - 5.5rem);
  width: 1px;
  background: rgba(var(--ink-rgb),0.18);
}
.uw-timeline::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 12px;
  height: calc(100% - 5.5rem);
  width: 1px;
  background: var(--clay);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 1.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.uw-timeline.rev::after {
  transform: scaleY(1);
}
.uw-tl-item {
  position: relative;
  padding: 0 0 44px 46px;
}
.uw-tl-item:last-child {
  padding-bottom: 0;
}
.uw-tl-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 11px;
  height: 11px;
  border-radius: 999px;
  background: var(--clay);
  box-shadow: 0 0 0 4px rgba(var(--ink-rgb),0.07);
}
/* U11 U2b: der letzte Knoten war groesser und stand aus der Flucht. Alle
   gleich; der weitere Hof markiert das Ende, ohne die Reihe zu brechen. */
.uw-tl-item:last-child::before {
  box-shadow: 0 0 0 5px rgba(var(--clay-rgb),0.18);
}
/* U10 Schritt 4 «ein grosser Moment pro Seite»: der Jahresmarker war seit je
   definiert und im Markup nie gesetzt; die Station trug stattdessen eine
   11-px-Meta-Zeile. Jetzt traegt das Jahr die Station, gross in Geist Mono,
   und die Meta-Regel ist entfallen. */
.uw-tl-year {
  position: absolute;
  right: 0;
  top: 0;
  font-family: "Geist Mono", monospace;
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
  color: var(--clay);
}
/* U10, Abweichung vom Brief: der Brief nennt .uw-tl-meta tot und laesst sie
   entfernen. Gemessen ist sie das nicht. /ueber-manuel-wernli/ nutzt sie seit
   U10 nicht mehr (dort traegt .uw-tl-year die Station), aber
   /en/about-manuel-wernli/ laedt dieselbe Datei und setzt die Klasse sechsmal.
   Diese Route ist in DESIGN.md eingefroren. Die Regel bleibt darum stehen und
   ist auf sie eingegrenzt, statt die eingefrorene Seite zu entstellen. */
html[lang="en"] .uw-tl-meta {
  font-family: "Geist Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clay-contrast);
  margin-bottom: 10px;
}
.uw-tl-item h3 {
  letter-spacing: 0;
  color: var(--ink);
  margin-bottom: 10px;
}
.uw-tl-item p {
  font-size: var(--type-body-2);
  line-height: 1.62;
  color: var(--ink-soft);
  max-width: 540px;
  text-wrap: pretty;
}

/* ===================== S3 - KOMBINATION (Text-Rolle, kein zweites Portrait) ===================== */
.uw-combo {
  background: var(--cream);
  padding: var(--section-pad-y) var(--page-pad);
  border-top: 1px solid var(--line);
}
.uw-combo-inner {
  display: grid;
  grid-template-columns: minmax(340px, 0.86fr) minmax(340px, 1fr);
  gap: 56px;
  align-items: center;
}
.uw-role {
  transition: border-color 0.35s cubic-bezier(0.22, 1, 0.36, 1), color 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.uw-role:hover {
  border-bottom-color: rgba(var(--clay-rgb),0.72);
}
.uw-role:hover h3 {
  color: var(--clay);
}
.uw-role-close {
  margin: 28px 0 0;
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-style: normal;
  font-weight: 500;
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb),0.55);
}
.uw-role-close::before {
  content: "";
  flex: 0 0 auto;
  width: 10px;
  height: 1px;
  background: var(--clay);
}
.uw-combo-photo {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 2px;
  background: var(--ink);
}
.uw-combo-photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  /* Seit U4 ein 16:9-Querformat im 4:5-Rahmen: Manuel steht rechts im Bild. */
  object-position: 72% center;
  display: block;
}
.uw-combo-photo::after {
  content: none;
}
.uw-combo-photo figcaption {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  z-index: 1;
  color: var(--cream);
}
.uw-combo-photo figcaption span {
  display: block;
  margin-bottom: 8px;
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(var(--cream-rgb),0.68);
}
.uw-combo-photo figcaption p {
  max-width: 430px;
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: rgba(var(--cream-rgb),0.88);
  text-wrap: pretty;
}

.uw-split-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.uw-split-reverse {
  direction: rtl;
}
.uw-split-reverse > * {
  direction: ltr;
}
.uw-split-text .uc,
.uw-split-text .sec-mark {
  color: rgba(var(--ink-rgb),0.72);
  margin-bottom: 18px;
}
.uw-split-text h2 {
  letter-spacing: 0;
  margin-bottom: 24px;
}
.uw-split-text p {
  font-size: var(--type-body-1);
  line-height: 1.65;
  color: var(--ink-soft);
  margin-bottom: 28px;
  text-wrap: pretty;
}
/* U11 U3a: volles Ink neben 12-Prozent-Trennern las sich als Sektionskante
   mitten in der Liste. */
.uw-roles {
  border-top: 1px solid rgba(var(--ink-rgb),0.32);
}
.uw-role {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 20px;
  padding: 21px 0;
  border-bottom: 1px solid var(--line);
  align-items: baseline;
}
/* Ohne Nummernspalte (DE) faellt die erste Spalte weg; EN behaelt sie. */
.uw-role:not(:has(.uw-role-num)) {
  grid-template-columns: 1fr;
}
.uw-role-num {
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--clay-contrast);
  font-weight: 600;
}
/* U11 U3b: 5 px waren zu eng fuer die 24-px-Stufe darueber. */
.uw-role h3 {
  letter-spacing: 0;
  color: var(--ink);
  margin-bottom: 9px;
}
.uw-role p {
  font-size: var(--type-body-2);
  line-height: 1.55;
  color: var(--ink-soft);
  text-wrap: pretty;
}

/* ---- Hairline-Punkte (Region) ---- */
.uw-points {
  list-style: none;
  border-top: 1px solid var(--line);
  margin: 0;
  padding: 0;
}
.uw-points li {
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink-soft);
  padding-left: 20px;
  position: relative;
}
.uw-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 22px;
  width: 8px;
  height: 1px;
  background: var(--clay);
}

/* ===================== S4 - HALTUNG (dunkler Anker) ===================== */
/* U11 U4e: --sand war hier der vierte Grundton der Seite und kam sonst
   nirgends als Sektionsflaeche vor. */
.uw-haltung {
  position: relative;
  overflow: hidden;
  background: var(--warm);
  color: var(--ink);
  border-top: 1px solid var(--line);
  padding: var(--section-pad-y) var(--page-pad);
}
.uw-haltung-inner {
  position: relative;
  z-index: 1;
  max-width: var(--content-max);
}
/* Clay-Kante nur am Kopfbereich, nicht an der ganzen Sektion.
   U11 U4f: 2 px war die staerkste Linie der Seite. */
.uw-haltung-kopf {
  border-left: 1px solid var(--clay);
  padding-left: 32px;
}
.uw-haltung .uc,
.uw-haltung .sec-mark {
  color: rgba(var(--ink-rgb),0.72);
  margin-bottom: 22px;
}
.uw-haltung h2 {
  letter-spacing: 0;
  color: var(--ink);
  margin-bottom: 14px;
}
.uw-haltung-source {
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: var(--type-label);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb),0.55);
  margin-bottom: 28px;
}
.uw-haltung p {
  font-size: var(--type-body-1);
  line-height: 1.7;
  color: var(--ink-soft);
  margin-bottom: 32px;
  max-width: 760px;
  text-wrap: pretty;
}
.uw-note {
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: var(--type-body-2);
  letter-spacing: 0.04em;
  color: rgba(var(--ink-rgb),0.66);
  border-top: 1px solid var(--line);
  padding-top: 20px;
  max-width: 560px;
}
.uw-press-proof {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
  gap: 28px;
  align-items: stretch;
  max-width: 920px;
  margin-top: 36px;
  padding: 20px;
  border: 1px solid var(--line);
  background: var(--cream);
}
/* Linke Spalte: Text, rechte Spalte: Pressebild zum Öffnen */
.uw-press-body {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 20px;
}
.uw-press-meta {
  border-top: 1px solid var(--line);
  padding-top: 16px;
}
.uw-press-source {
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: var(--type-label);
  letter-spacing: 0.06em;
  line-height: 1.6;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb),0.55);
}
.uw-press-image {
  display: block;
  color: inherit;
  align-self: center;
}
.uw-press-image img {
  width: 100%;
  height: auto;
  border-radius: 2px;
  display: block;
}
.uw-press-proof span {
  display: block;
  margin-bottom: 10px;
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: var(--type-label);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clay-contrast);
}
.uw-press-proof h3 {
  margin: 0 0 10px;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--ink);
}
.uw-press-proof p {
  margin: 0;
  font-size: var(--type-body-2);
  line-height: 1.55;
  color: var(--ink-soft);
}
.uw-press-link {
  display: inline-block;
  margin-top: 12px;
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: var(--type-label);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clay-contrast);
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* ===================== S5 - ARBEITSWEISE (priority-stack) ===================== */
.uw-arbeitsweise {
  background: var(--cream);
  padding: var(--section-pad-y) var(--page-pad);
  border-top: 1px solid var(--line);
}
.uw-workflow-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.72fr) minmax(520px, 1fr);
  gap: 72px;
  align-items: start;
}
/* U11 U6a: die beiden Spalten starteten 11 px versetzt, weil die Hairline
   an der Container-Oberkante sitzt und der Kicker seine Zeilenhoehe traegt. */
.uw-workflow-grid .uw-head {
  margin: 0;
  padding-top: 11px;
}
/* Oberlinie wie in der Rollenliste: abgesetzt, aber keine Sektionskante. */
.uw-priority {
  border-top: 1px solid rgba(var(--ink-rgb),0.32);
  max-width: none;
}
.uw-pitem {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 22px;
  padding: 23px 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.uw-pitem:not(:has(.uw-pnum)) {
  grid-template-columns: 1fr;
}
.uw-pnum {
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: 13px;
  letter-spacing: 0.06em;
  color: var(--clay-contrast);
  font-weight: 600;
  padding-top: 4px;
}
.uw-pbody h3 {
  letter-spacing: 0;
  color: var(--ink);
  margin-bottom: 8px;
}
.uw-pbody p {
  font-size: var(--type-body-2);
  line-height: 1.6;
  color: var(--ink-soft);
  text-wrap: pretty;
}
/* Leiser Zwischen-CTA nach Schritt 05 */
.uw-mid-cta {
  display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
  padding: 22px 0 0;
}
/* U11 U6b: der Versal-Vorsatz las sich als erste Haelfte des Versal-Buttons.
   Eigene Klasse am Span, damit die eingefrorene EN-Route unberuehrt bleibt. */
.uw-mid-cta span {
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb),0.55);
}
.uw-mid-cta span.uw-mid-cta-lead {
  font-size: var(--type-body-2);
  letter-spacing: 0.02em;
  text-transform: none;
}
/* Der Link traegt das Tertiaer-Token .btn-text (F7); hier nur noch die Farbe der Flaeche. */
.uw-mid-cta .btn-text {
  color: var(--ink);
}
/* Beweis-Stillleben in der linken Kopf-Spalte der Arbeitsweise */
.uw-head-figure {
  margin: 40px 0 0;
}
.uw-head-figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 2px;
  display: block;
}
.uw-head-figure figcaption {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.uw-head-figure figcaption span {
  display: block;
  margin-bottom: 8px;
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clay-contrast);
}
.uw-head-figure figcaption p {
  margin: 0;
  max-width: none;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--ink-soft);
  text-wrap: pretty;
}

/* ===================== S6 - QUALIFIKATION (abgedunkeltes Warm-Band, Big-Number) ===================== */
.uw-quali {
  background: #E6E0D5;
  color: var(--ink);
  border-top: 1px solid var(--line);
  padding: var(--section-pad-y) var(--page-pad);
}
.uw-quali-head {
  max-width: 820px;
  margin: 0 0 52px;
}
.uw-quali-head .uc {
  color: rgba(var(--ink-rgb),0.72);
  margin-bottom: 18px;
}
.uw-quali-head h2 {
  letter-spacing: 0;
  color: var(--ink);
}
.uw-quali-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(var(--ink-rgb),0.16);
  border: 1px solid rgba(var(--ink-rgb),0.16);
  border-radius: 2px;
  overflow: hidden;
}
.uw-quali-note {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid rgba(var(--ink-rgb),0.16);
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: 12px;
  line-height: 1.55;
  letter-spacing: 0.04em;
  color: rgba(var(--ink-rgb),0.55);
}
.uw-qcell {
  background: #E6E0D5;
  padding: 38px 28px;
  display: flex;
  flex-direction: column;
}
.uw-qbig {
  font-family: "Bricolage Grotesque", sans-serif;
  font-weight: 300;
  font-size: clamp(34px, 3.2vw, 52px);
  line-height: 1;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-bottom: 10px;
}
.uw-qlabel {
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb),0.5);
  margin-bottom: 16px;
}
.uw-qcell p {
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-soft);
  text-wrap: pretty;
}

/* ===================== S4b - PARTNERNETZWERK (warm-band, K4: nur Typo) =====================
   Kein Bild: das einzige echte Motiv ohne Menschen-Stock (Waldschlucht) steht
   schon in S3, ein zweites Mal waere Wiederholung statt Beleg. */
.uw-partner {
  padding: var(--section-pad-y) var(--page-pad);
}
.uw-partner-inner .uw-split-text {
  max-width: 900px;
}
.uw-partner-inner .uw-split-text h2 {
  max-width: 20ch;
}
/* U11 U5: rund 105 Zeichen pro Zeile bei leerer rechter Haelfte. Nur die
   Maximalbreite, kein Zweispalter (Ruling). */
.uw-partner-inner .uw-split-text p {
  max-width: 58ch;
  margin-bottom: 0;
}
/* ===================== S7 - REGION (warm-band, split image-right) ===================== */
.uw-region {
  padding: var(--section-pad-y) var(--page-pad);
}
.uw-warm {
  background: var(--warm);
  border-top: 1px solid var(--line);
}
.uw-region-inner {
  grid-template-columns: minmax(360px, 0.82fr) minmax(420px, 1fr);
}
.uw-region-photo {
  align-self: stretch;
}
.uw-doc-photo {
  position: relative;
  overflow: hidden;
  margin: 0;
  min-height: 560px;
  border-radius: 2px;
  background: var(--ink);
}
.uw-doc-photo img {
  width: 100%;
  height: 100%;
  min-height: 560px;
  object-fit: cover;
  object-position: center 28%;
  display: block;
}
.uw-doc-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(var(--shade-rgb),0.72) 100%);
  pointer-events: none;
}
.uw-doc-caption {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  z-index: 1;
  color: var(--cream);
}
.uw-doc-caption span {
  display: block;
  margin-bottom: 8px;
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(var(--cream-rgb),0.62);
}
.uw-doc-caption p {
  max-width: 430px;
  font-size: 15px;
  line-height: 1.5;
  color: rgba(var(--cream-rgb),0.86);
  text-wrap: pretty;
}

/* ===================== S8 - CTA (dark-band override) ===================== */
.uw-faq {
  padding: var(--section-pad-y) var(--page-pad);
}
.uw-faq .faq-head {
  margin-bottom: 36px;
}
.uw-faq .faq-head .uc {
  color: rgba(var(--ink-rgb),0.72);
}
.uw-faq .faq-list details summary .q-num {
  color: var(--clay-contrast);
  font-weight: 600;
}
.uw-faq .faq-list details summary {
  min-height: 68px;
  padding: 18px 0;
}
.uw-faq .faq-list details .answer {
  padding-bottom: 22px;
}

/* ===================== S8b - WEITERFUEHRUNG (Hairline-Link-Liste) ===================== */
.uw-next {
  background: var(--cream);
  border-top: 1px solid var(--line);
  padding: var(--section-pad-y) var(--page-pad);
}
.uw-next-eyebrow {
  color: rgba(var(--ink-rgb),0.72);
  margin-bottom: 22px;
}
.uw-next-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--ink);
  max-width: 760px;
}
.uw-next-list li {
  border-bottom: 1px solid var(--line);
  transition: border-color 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.uw-next-list li:hover {
  border-bottom-color: rgba(var(--clay-rgb),0.72);
}
.uw-next-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 0;
  font-family: "Bricolage Grotesque", sans-serif;
  font-weight: 500;
  font-size: clamp(18px, 1.8vw, 22px);
  letter-spacing: 0;
  color: var(--ink);
  text-decoration: none;
  transition: color 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.uw-next-list a:hover {
  color: var(--clay-contrast);
}
.uw-next-arrow {
  display: inline-flex;
  color: rgba(var(--ink-rgb),0.4);
  transition: color 0.3s cubic-bezier(0.22, 1, 0.36, 1), transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.uw-next-list a:hover .uw-next-arrow {
  color: var(--clay);
  transform: translateX(4px);
}

/* ===================== S9 - CTA (dark-band, links auf dem Raster) ===================== */
.uw-cta-dark {
  position: relative;
  overflow: hidden;
  display: block;
  background: var(--ink);
  color: var(--cream);
  text-align: left;
  padding: var(--section-pad-y) var(--page-pad);
}
.uw-cta-ghost {
  /* U9: right: 0 statt -0.05em, sonst ragt das Ghost-Wort auf 1440 px 14 px
     ueber die Sektion hinaus (gemessen 1454 > 1440). */
  position: absolute;
  right: 0;
  max-width: 100%;
  bottom: -0.16em;
  font-family: "Bricolage Grotesque", sans-serif;
  font-weight: 300;
  font-size: clamp(140px, 20vw, 300px);
  line-height: 1;
  letter-spacing: -0.03em;
  color: rgba(var(--cream-rgb),0.04);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}
.uw-cta-inner {
  position: relative;
  z-index: 1;
  max-width: var(--content-max);
  margin: 0 auto;
}
/* U11 U8b: seit U10 traegt .sec-mark selbst einen Strich, der aeussere ist
   einer zu viel. Nur DE, die eingefrorene EN-Route hat kein .sec-mark. */
.uw-cta-inner::before {
  content: "";
  display: block;
  width: 64px;
  height: 1px;
  background: var(--clay);
  margin-bottom: 30px;
}
.uw-page-cream .uw-cta-inner::before { content: none; }
.uw-cta-dark .uc,
.uw-cta-dark .sec-mark {
  color: rgba(var(--cream-rgb),0.68);
  margin-bottom: 18px;
}
.uw-cta-dark h2 {
  color: var(--cream);
  margin: 0 0 20px;
  max-width: 720px;
}
.uw-cta-dark p {
  font-size: var(--type-body-1);
  line-height: 1.6;
  color: rgba(var(--cream-rgb),0.75);
  margin-bottom: 34px;
  max-width: 620px;
  text-wrap: pretty;
}
.uw-cta-actions {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}
.uw-cta-dark .meta {
  margin: 0;
  font-family: "Host Grotesk", system-ui, sans-serif;
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: rgba(var(--cream-rgb),0.66);
  max-width: 420px;
  text-align: left;
}
/* U11 U8a: der ganze Satz war der Link, Ziel ist nur die Adresse. DE traegt
   ein <p> mit <a> darin; EN (eingefroren) bleibt auf <a class="uw-cta-mail">,
   darum gelten beide Faelle. */
.uw-cta-mail {
  display: inline-block;
  margin-top: 26px;
  font-size: var(--type-body-2);
  color: rgba(var(--cream-rgb),0.72);
  text-decoration: underline;
  text-decoration-color: rgba(var(--clay-light-rgb),0.6);
  text-underline-offset: 4px;
  transition: color 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.uw-cta-mail:hover {
  color: var(--cream);
}
p.uw-cta-mail {
  text-decoration: none;
  margin-bottom: 0;
}
p.uw-cta-mail a {
  color: var(--cream);
  text-decoration: underline;
  text-decoration-color: rgba(var(--clay-light-rgb),0.6);
  text-underline-offset: 4px;
  transition: color 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
p.uw-cta-mail a:hover { color: var(--clay-light); }

/* ===================== VERWANDTE THEMEN (C1) =====================
   U11 U7b/c: 19 px und 14.5 px lagen ausserhalb der Sechserskala, unter dem
   Bild lagen zwei Haarlinien uebereinander. RelatedPages.astro liegt
   ausserhalb der Dateigrenzen und laeuft auf elf weiteren Routen, darum
   seitenscoped. ===================== */
.uw-page-cream .related .rel-title { font-size: var(--type-h3); }
.uw-page-cream .related .rel-note { font-size: var(--type-body-2); }
.uw-page-cream .related .rel-media { border-bottom: 0; }

/* ===================== RESPONSIVE ===================== */
@media (min-width: 1081px) and (max-width: 1320px) {
  .uw-tl-item:has(.uw-tl-year) p {
    max-width: 440px;
  }
}

/* K8 Mobile-Hero: Bild bleibt deutlich unter 55vh, damit H1, Lead und der eine
   gefuellte CTA im ersten Screen stehen. Reihenfolge kommt aus .hero-split. */
@media (max-width: 900px) {
  .uw-hero-split .hero-split {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: var(--hero-pad-top) var(--page-pad-mobile) var(--section-pad-y-mobile);
  }
  /* Bild laeuft hier nicht mehr randlos; die Bildzeile endet auf der Bildkante. */
  .uw-hero-caption { padding-right: 0; }
  .uw-hero-figure {
    order: 0;
    max-width: none;
  }
  .uw-hero-figure .hero-split-media {
    height: min(32svh, 260px);
  }
  .uw-hero-caption {
    margin-top: 10px;
  }
  .uw-hero-lead {
    margin-top: 16px;
    max-width: none;
  }
  .uw-hero-actions {
    margin-top: 22px;
    gap: 20px;
  }
  .uw-hero-text {
    order: 1;
    max-width: 620px;
  }
  .uw-hero-text h1 {
    max-width: 620px;
  }
}
@media (max-width: 640px) {
  .uw-hero-split .hero-split {
    padding-inline: 0;
  }
  .uw-hero-figure .hero-split-media {
    border-radius: 0;
  }
  .uw-hero-text,
  .uw-hero-caption {
    padding-inline: var(--page-pad-mobile);
  }
  /* U11 U1a: Bildzeile und Kicker standen auf 390 als zwei Versalzeilen
     uebereinander. Die Angabe steht auch im Alt-Text. */
  .uw-hero-caption {
    display: none;
  }
}

@media (max-width: 1080px) {
  .uw-combo-inner {
    grid-template-columns: 1fr;
    gap: 44px;
  }
  .uw-weg-head p {
    max-width: 560px;
  }
  /* U11 U3c: einspaltig schob das 4:5-Portraet die Rollenliste um eine
     Bildschirmhoehe nach unten. Beleg, nicht zweiter Hero. */
  .uw-combo-photo {
    max-width: 460px;
  }
  .uw-combo-photo img {
    aspect-ratio: 4 / 3;
  }
  .uw-split-inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .uw-workflow-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .uw-split-reverse {
    direction: ltr;
  }
  .uw-doc-photo,
  .uw-doc-photo img {
    min-height: auto;
  }
  .uw-doc-photo {
    aspect-ratio: 4 / 5;
  }
  .uw-quali-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .uw-hero-actions {
    margin-top: 28px;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .uw-hero-actions .btn-premium {
    width: min(100%, 340px);
    justify-content: space-between;
  }
  .uw-hero {
    min-height: var(--hero-min-h-mobile);
    max-height: none;
    height: var(--hero-min-h-mobile);
  }
  .uw-hero .hero-inner {
    min-height: var(--hero-min-h-mobile);
    max-height: none;
    height: var(--hero-min-h-mobile);
    padding: var(--hero-pad-top) var(--page-pad-mobile) var(--hero-pad-bottom);
  }
  .uw-hero .hero-bg img {
    object-position: 54% 18%;
    transform: none;
  }
  .uw-hero .hero-bg::after {
    background:
      linear-gradient(180deg, rgba(var(--shade-rgb),0.42) 0%, rgba(var(--shade-rgb),0.12) 38%, rgba(var(--shade-rgb),0.72) 100%),
      linear-gradient(90deg,
        rgba(var(--shade-rgb),0.86) 0%,
        rgba(var(--shade-rgb),0.62) 34%,
        rgba(var(--shade-rgb),0.18) 58%,
        rgba(var(--shade-rgb),0.08) 100%);
  }
  .uw-weg,
  .uw-combo,
  .uw-haltung,
  .uw-arbeitsweise,
  .uw-partner,
  .uw-region,
  .uw-faq,
  .uw-quali,
  .uw-next,
  .uw-cta-dark {
    padding: var(--section-pad-y-mobile) var(--page-pad-mobile);
  }
  .uw-weg-ghost,
  .uw-cta-ghost {
    display: none;
  }
  /* U10: der Jahresmarker war mobil ausgeblendet, weil daneben die
     11-px-Meta-Zeile das Jahr trug. Auf /ueber-manuel-wernli/ ist die Meta
     entfallen, dort duerfen die Jahre mobil nicht verschwinden: sie stehen im
     Fluss ueber dem Stationstitel, eine Stufe kleiner. Die Regel haengt an
     .uw-timeline-calm, das nur die DE-Seite setzt. Die eingefrorene
     EN-Route behaelt ihre Meta-Zeile und blendet das Jahr mobil weiter aus. */
  .uw-tl-year { display: none; }
  .uw-timeline-calm .uw-tl-year {
    display: block;
    position: static;
    font-size: 22px;
    margin-bottom: 6px;
  }
  .uw-tl-item {
    padding-bottom: 52px;
  }
  .uw-head {
    margin-bottom: 36px;
  }
  .uw-haltung-kopf {
    padding-left: 24px;
  }
  .uw-press-proof {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 14px;
  }
  .uw-press-image {
    max-width: 420px;
  }
  .uw-pitem {
    grid-template-columns: 36px 1fr;
    gap: 16px;
    padding: 24px 0;
  }
  .uw-pitem:not(:has(.uw-pnum)) {
    grid-template-columns: 1fr;
  }
  .uw-role {
    grid-template-columns: 38px 1fr;
    gap: 16px;
  }
  .uw-role:not(:has(.uw-role-num)) {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .uw-quali-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  .uw-weg,
  .uw-combo,
  .uw-haltung,
  .uw-arbeitsweise,
  .uw-partner,
  .uw-region,
  .uw-faq,
  .uw-quali,
  .uw-cta-dark,
  .uw-next {
    padding: var(--section-pad-y-mobile) var(--page-pad-mobile);
  }
  .uw-press-proof {
    grid-template-columns: 1fr;
  }
  .uw-press-image {
    max-width: 360px;
  }
}

/* U9 R12: Tap-Ziel 44 px fuer Inline-Links im Fliesstext. padding-block
   vergroessert die Klickflaeche, margin-block nimmt denselben Betrag wieder aus
   der Zeilenbox: die Zeile rueckt keinen Pixel, der Daumen trifft trotzdem. */
@media (max-width: 640px) {
  .uw-cta-mail {
    display: inline-block;
    padding-block: 11px;
    margin-block: -11px;
    min-height: 44px;
  }
  /* U11 U8a: Tap-Polster am <a>, nicht am Absatz. */
  p.uw-cta-mail {
    display: block;
    padding-block: 0;
    margin-block: 26px 0;
    min-height: 0;
  }
  p.uw-cta-mail a {
    display: inline-block;
    padding-block: 11px;
    margin-block: -11px;
    min-height: 44px;
  }
}
