@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 300; font-display: swap; src: url("fonts/CormorantGaramond-Light.ttf") format("truetype"); }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/CormorantGaramond-Regular.ttf") format("truetype"); }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/CormorantGaramond-Medium.ttf") format("truetype"); }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/CormorantGaramond-SemiBold.ttf") format("truetype"); }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 400; font-display: swap; src: url("fonts/CormorantGaramond-Italic.ttf") format("truetype"); }
:root {
  color-scheme: dark;
  --ink: #F4F0E8;
  --paper: #14233B;
  --slate: #9AA3B2;
  --rule: rgba(244,240,232,.26);
  --rule-soft: rgba(244,240,232,.13);
  --serif: "Cormorant Garamond", Cormorant, Garamond, "EB Garamond", "Times New Roman", serif;
  --track-lg: .055em;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 48px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--serif); font-size: 18px; line-height: 1.65; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.wrap { max-width: 1120px; margin: 0 auto; padding: 0 clamp(20px,5vw,64px); }
.reading { max-width: 680px; margin-left: auto; margin-right: auto; }
a { color: inherit; text-decoration: none; text-decoration-thickness: 1px; text-underline-offset: .25em; }
a:hover { text-decoration: underline; }
a:hover { text-decoration-color: var(--slate); }
/* Die Einwilligung muss als Verweis erkennbar bleiben */
.check-row a { text-decoration: underline; text-decoration-color: var(--rule); }
a:focus-visible { outline: 1px solid var(--ink); outline-offset: 6px; }
p { margin: 0 0 24px; }
p:last-child { margin-bottom: 0; }
h1,h2,h3 { font-weight: 400; line-height: 1.2; margin: 0; text-wrap: balance; }
h1 { font-size: clamp(32px,3.7vw,44px); }
h2 { font-size: clamp(30px,3.5vw,42px); }
h3 { font-size: 27px; }
.topbar { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 22px 0 7px; border-bottom: 1px solid var(--rule-soft); }
.micro { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--slate); font-weight: 500; }
.micro sup { font-size: .6em; font-variant-numeric: lining-nums; font-feature-settings: "lnum" 1; vertical-align: baseline; position: relative; top: -.7em; letter-spacing: 0; line-height: 0; }
.topbar a { text-decoration: none; }
.topright { display: flex; align-items: baseline; gap: 12px; }
.lang { display: flex; align-items: baseline; gap: 5px; }
.lang .active { color: var(--ink); border-bottom: 1px solid var(--ink); }
.lang .sep { color: var(--rule); }
.lang .unavailable { color: var(--slate); }
.brand-stage { text-align: center; padding: clamp(68px,10vh,112px) 0 0; }
.wordmark { margin: 0; font-weight: 300; font-size: clamp(3.1rem,13vw,7.4rem); line-height: 1.02; letter-spacing: var(--track-lg); text-transform: uppercase; text-indent: var(--track-lg); }
.wordmark sup { font-size: .34em; font-weight: 400; font-variant-numeric: lining-nums; font-feature-settings: "lnum" 1; vertical-align: baseline; position: relative; top: -1.5em; letter-spacing: 0; margin-left: .06em; }
.wordmark .ai { white-space: nowrap; }
.expansion { margin: clamp(48px,7vh,64px) auto 0; max-width: 940px; font-variant-caps: small-caps; font-feature-settings: "smcp" 1,"lnum" 1; letter-spacing: .105em; line-height: 1.55; text-align: center; }
.expansion > span { display: block; text-wrap: balance; }
.expansion__outer { color: var(--slate); font-size: clamp(.84rem,1.7vw,1.06rem); font-weight: 400; }
.expansion__focus { color: var(--ink); font-size: clamp(.95rem,1.95vw,1.23rem); font-weight: 600; margin: 0; }
.expansion__focus-row { display: flex; align-items: center; justify-content: center; gap: clamp(12px,2.5vw,22px); max-width: min(940px,98%); margin: .24em auto; }
.expansion__focus-row i { flex: 1; min-width: 24px; height: 1px; background: var(--ink); opacity: .55; }
.introduction { text-align: center; padding-top: 100px; }
.introduction h1 { margin-bottom: 32px; }
.introduction p { font-size: 22px; }
.introduction .second { font-size: 20px; margin-top: 28px; }
.quiet-link { text-decoration-color: var(--rule); }
.section { padding-top: 110px; }
.section-title { text-align: center; margin-bottom: 42px; }
.section-title p { margin: 20px auto 0; font-size: 20px; max-width: 610px; }
.example { text-align: center; }
.example-inner { padding: 58px 0 54px; border-top: 1px solid var(--rule-soft); }
.example-label { color: var(--slate); font-size: 16px; letter-spacing: .04em; margin-bottom: 30px; }
blockquote { max-width: 780px; margin: 0 auto 32px; font-size: clamp(26px,3.2vw,36px); line-height: 1.4; font-weight: 500; text-wrap: pretty; }
.example-explanation { max-width: 650px; margin: 0 auto; font-size: 19px; color: var(--slate); }
.example-closing { font-size: 22px; margin: 32px auto 0; max-width: 650px; }
.example-closing strong { font-weight: 600; }
.fields { margin: 0 auto; max-width: 920px; }
.fields-note { text-align: center; color: var(--slate); font-size: 18px; max-width: 620px; margin: 0 auto 40px; }
.field dt { font-size: 22px; }
.field dd { font-size: 18px; }
.field { display: grid; grid-template-columns: 1fr 1.35fr; gap: 56px; border-top: 1px solid var(--rule); padding: 30px 0; align-items: baseline; }
.field:last-child { border-bottom: 1px solid var(--rule); }
dt { font-size: 26px; line-height: 1.3; }
dd { margin: 0; font-size: 20px; line-height: 1.65; }
.independence { text-align: center; }
.independence h2 { margin-bottom: 30px; }
.independence p { font-size: 23px; line-height: 1.65; }
.confidential { text-align: center; }
.confidential h2 { margin-bottom: 30px; }
.confidential p { font-size: 21px; }
.text-link { display: inline-block; margin-top: 6px; font-size: 19px; }
.contact { text-align: center; padding: 100px 0 90px; }
.contact h2 { font-size: 32px; margin-bottom: 26px; }
.contact a { font-size: 23px; }
footer .footer-bar { border-top: 1px solid var(--rule-soft); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px; padding: 7px 0 22px; }
footer nav { display: flex; flex-wrap: wrap; gap: 22px; }
footer a { text-decoration: none; }
.preview-note { color: var(--slate); font-size: 14px; text-align: center; margin: 10px auto 28px; max-width: 680px; }
.article-header { padding: 82px 0 0; text-align: center; }
.article-header .back { display: inline-block; color: var(--slate); margin-bottom: 36px; font-size: 17px; }
.article-header p { margin-top: 24px; font-size: 22px; }
.article-section { padding-top: 80px; font-size: 21px; }
.article-section h2 { font-size: 34px; margin-bottom: 28px; }
.article-section h3 { margin: 34px 0 20px; }
.article-section li { margin-bottom: 14px; }
@media(max-width:700px) {
  .topright { gap: 10px; }
  .micro { font-size: 10px; letter-spacing: .17em; }
  .brand-stage { padding-top: 64px; }
  .introduction { padding-top: 72px; }
  .introduction p { font-size: 21px; }
  .section { padding-top: 78px; }
  .expansion__focus-row i { display: none; }
  .expansion__focus-row { max-width: 100%; }
  .field { grid-template-columns: 1fr; gap: 14px; padding: 28px 0; }
  .example-inner { padding: 40px 0; }
 
  .independence p { font-size: 21px; }
  .contact { padding: 78px 0; }
  .article-section { padding-top: 58px; }
}
@media(max-width:370px) { .topright .location { display: none; } }
.page-nav { display:flex; justify-content:center; flex-wrap:wrap; gap:12px 30px; padding:22px 0 0; }
.page-nav a { font-size:17px; text-decoration:none; color:var(--slate); }
.page-nav a[aria-current="page"] { color:var(--ink); text-decoration:underline; text-underline-offset:6px; }
.page-nav a:hover { color:var(--ink); }
.home-intro { padding-top:76px; text-align:center; }
.home-intro h1 { margin-bottom:30px; }
.home-intro p { font-size:22px; }
.home-intro .reading { max-width:660px; }
.home-intro .scope { font-size:20px; color:var(--slate); margin-top:30px; }
.home-links { display:flex; flex-wrap:wrap; justify-content:center; gap:12px 30px; margin:26px 0 22px; font-size:17px; }
.home-links a { text-decoration:none; color:var(--slate); }
.home-links a:hover { color:var(--ink); }
.page-header { padding:76px 0 0; text-align:center; }
.page-header p { font-size:22px; margin:28px auto 0; max-width:660px; }
.page-bottom { text-align:center; padding:72px 0 22px; font-size:20px; }
.page-bottom a { color:var(--ink); text-decoration:none; }
.page-bottom a:hover { text-decoration:underline; text-decoration-color:var(--rule); }
.page-bottom a + a { margin-left:30px; }
.body-copy { font-size:21px; padding-top:60px; }
.bio-note { margin-top:38px; padding-top:22px; border-top:1px solid var(--rule-soft); color:var(--slate); font-size:17px; }
.contact-form { padding:52px 0 0; }
.form-field { margin-bottom:30px; }
.form-field label { display:block; font-size:19px; margin-bottom:9px; }
.form-field input,.form-field textarea { display:block; width:100%; font:inherit; color:var(--ink); background:transparent; border:1px solid var(--rule); border-radius:0; padding:12px 14px; }
.form-field input:focus,.form-field textarea:focus { outline:1px solid var(--ink); outline-offset:2px; }
.form-field textarea { min-height:180px; resize:vertical; }
.form-field .optional { color:var(--slate); font-size:16px; }
.form-button { font:inherit; color:var(--ink); background:transparent; border:1px solid var(--ink); padding:13px 24px; cursor:pointer; }
.form-button:hover { color:var(--paper); background:var(--ink); }
.form-button:focus-visible { outline:1px solid var(--ink); outline-offset:5px; }
.form-hint { color:var(--slate); font-size:17px; margin:22px 0 0; }
#form-status { font-size:18px; margin-top:22px; }
@media(max-width:700px) { .page-nav { gap:10px 20px; } .page-header p, .home-intro p { font-size:20px; } .page-nav a { font-size:16px; } .home-intro { padding-top:62px; } .page-header { padding-top:58px; } .home-links { margin-bottom:22px; } .page-bottom a { display:block; } .page-bottom a + a { margin:20px 0 0; } .home-intro .scope { text-align:left; } }
/* Schmale Telefone: alle fünf Menüpunkte in einer Zeile */
@media(max-width:420px) { .page-nav { gap:10px 12px; } .page-nav a { font-size:15px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } }
.skip-link { position: absolute; top: -100px; left: 24px; padding: 10px 18px; background: var(--paper); z-index: 10; }
.skip-link:focus { top: 12px; }
.check-row { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 20px; font-size: 18px; line-height: 1.45; cursor: pointer; }
.check-row input { flex: 0 0 auto; width: 17px; height: 17px; margin: 5px 0 0; accent-color: var(--ink); }
.check-row input:focus-visible { outline: 1px solid var(--ink); outline-offset: 4px; }
.contact-form .form-button { margin-top: 12px; }
.form-button:disabled { opacity: .6; cursor: wait; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.legal-copy address { font-style: normal; margin-bottom: 30px; }
.legal-details { margin: 0 0 30px; }
.legal-details dt { font-size: 17px; color: var(--slate); margin-top: 22px; }
.legal-details dd { font-size: 21px; margin-top: 5px; overflow-wrap: anywhere; }
.legal-copy strong { font-weight: 600; }
input, textarea { min-width: 0; }

/* Gruppen auf "Leistungen": Angebot / Untersuchungsfelder / Arbeitsweise */
.group { padding-top: 104px; }
.group-label { margin: 0; text-align: center; color: var(--slate); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; font-weight: 500; }
.group-label::after { content: ""; display: block; width: 52px; height: 1px; background: var(--rule); margin: 20px auto 0; }
.group > .article-section:first-of-type { padding-top: 50px; }
.section > .group-label { margin-bottom: 46px; }
.group--arbeitsweise .article-section h2 { font-size: 29px; }
@media(max-width:700px) { .group { padding-top: 70px; } .group > .article-section:first-of-type { padding-top: 38px; } .section > .group-label { margin-bottom: 34px; } }
.claim-line { font-size: 24px; font-style: italic; margin: -6px 0 26px; }

/* Gewichtung: Rechtstexte sind Nachschlagewerk, nicht Hauptaussage */
.legal-copy .article-section { font-size: 19px; }
.legal-copy .article-section h2 { font-size: 28px; margin-bottom: 22px; }
.legal-details dd { font-size: 19px; }
/* Gewichtung: im Formular wiegt die Eingabe schwerer als ihre Beschriftung */
.form-field label { font-size: 18px; }
.form-field input, .form-field textarea { font-size: 20px; }

/* Angebote: Name links, Beschreibung rechts — auf einen Blick vergleichbar */
.offers { margin: 0; }
.offer { display: grid; grid-template-columns: 1fr 1.9fr; gap: 56px; border-top: 1px solid var(--rule); padding: 38px 0 40px; }
.offer:last-child { border-bottom: 1px solid var(--rule); }
.offer dt { font-size: 30px; line-height: 1.16; }
.offer-phase { display: block; font-size: 15px; font-style: italic; color: var(--slate); margin-bottom: 12px; }
.offer dd { margin: 0; font-size: 19px; }
.offer dd p { margin-bottom: 18px; }
.offer dd p:last-child { margin-bottom: 0; }
.offer-case { color: var(--slate); }
.offer-claim { font-style: italic; font-size: 21px; }
.offer-point { border-top: 1px solid var(--rule-soft); padding-top: 18px; }
.offer-objects { font-size: 19px; color: var(--slate); margin: 40px auto 0; }
.page-header .offer-objects { font-size: 19px; color: var(--slate); margin-top: 22px; }
/* Zusammengesetzte KI-Begriffe nie am Bindestrich trennen */
.nw { white-space: nowrap; }
@media(max-width:820px) { .offer { grid-template-columns: 1fr; gap: 18px; padding: 30px 0 32px; } .offer dt { font-size: 27px; } }

/* Die vier Angebote zum Anspringen, gleichrangig als Doppelreihe */
.picker { display: grid; grid-template-columns: repeat(2,1fr); gap: 22px; margin: 62px 0 0; }
.picker a { display: block; border: 1px solid var(--rule); padding: 28px 30px 30px; text-decoration: none; }
.picker a:hover { background: rgba(244,240,232,.045); border-color: var(--ink); }
.picker__name { display: block; font-size: 24px; line-height: 1.2; margin: 0 0 10px; }
.picker a:hover .picker__name { text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: .22em; }
.picker__line { display: block; font-size: 17px; color: var(--slate); line-height: 1.5; }
@media(max-width:820px) { .picker { grid-template-columns: 1fr; gap: 16px; margin-top: 46px; } .picker a { padding: 24px 24px 26px; } }
.lang a { color: var(--slate); text-decoration: none; }
.lang a:hover { color: var(--ink); }
.legal-translation { color: var(--slate); font-size: 17px; border-bottom: 1px solid var(--rule-soft); padding-bottom: 24px; margin: 52px 0 0; }

/* Druck: helles Papier, dunkle Schrift, ohne Navigationswerk */
@media print {
  :root { --ink: #14233B; --paper: #FFFFFF; --slate: #4A5568; --rule: rgba(20,35,59,.35); --rule-soft: rgba(20,35,59,.18); }
  body { background: #fff; }
  .skip-link, .page-nav, .lang, .home-links, .picker, .page-bottom, footer nav, .preview-note { display: none; }
  a { text-decoration: none; color: inherit; }
  .example blockquote, .offer, .field { break-inside: avoid; }
}

/* Aufklappliste unter "Leistungen": reine CSS-Loesung, oeffnet bei Maus und Tastatur */
.nav-drop { position: relative; display: inline-block; }
.nav-drop .drop { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); padding-top: 16px; display: none; z-index: 20; }
.nav-drop:hover .drop, .nav-drop:focus-within .drop { display: block; }
.drop { min-width: 240px; }
.drop > a { display: block; background: var(--paper); border-left: 1px solid var(--rule); border-right: 1px solid var(--rule); padding: 12px 24px; font-size: 16px; color: var(--slate); text-decoration: none; white-space: nowrap; text-align: left; }
.drop > a:first-child { border-top: 1px solid var(--rule); padding-top: 16px; }
.drop > a:last-child { border-bottom: 1px solid var(--rule); padding-bottom: 16px; }
.drop > a:hover, .drop > a:focus-visible { color: var(--ink); background: rgba(244,240,232,.045); }
.drop > a:nth-child(-n+4) { color: var(--ink); }
.drop > a.drop-sep { border-top: 1px solid var(--rule-soft); padding-top: 14px; }
@media (hover: none) { .nav-drop .drop { display: none !important; } }
@media print { .nav-drop .drop { display: none !important; } }

/* Porträt auf "Über uns" — der Bildnachweis ist so klein wie möglich, aber immer dabei */
.portrait { margin: 4px 0 36px; }
.portrait img { display: block; width: 100%; height: auto; border: 1px solid var(--rule-soft); border-radius: 6px; }
.portrait figcaption { text-align: right; color: var(--slate); font-size: 10px; letter-spacing: .08em; margin-top: 7px; }
