/* =====================================================================
   Pharmazie-Staatsexamen.de: Stil der Infoseite (Entscheidung 0046).
   Ruhiges, übersichtliches Lesedesign: weißer Grund, ein Blau als einzige Akzentfarbe, dunkles Blaugrau statt
   Schwarz, zentrierte Abschnittsköpfe, Karten mit Symbol-Kachel (Marian, 2026-11-13: unaufgeregt und seriös, in der
   Art der PhaST-Landing-Page, aber mit eigenem Farbton). Reines CSS ohne Framework.
   Schriften selbst gehostet: Inter aus /assets/relaxed-fonts.css, Manrope aus assets/fonts/.
   Aufbau: 1 Grundlagen · 2 Kopf und Menü · 3 Artikel · 4 Textbausteine · 5 Startseite · 6 Fuß · 7 Rechner · 8 Druck
   ===================================================================== */

@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---- 1 Grundlagen ------------------------------------------------------------------------------------------- */
:root {
  --tinte: #1B2434;
  --text: #4A5568;
  --leise: #7A8599;
  --linie: #E2E8F0;
  --linie-zart: #EEF2F6;
  --flaeche: #FFFFFF;
  --grund: #F7F9FC;
  --blau: #3D55D0;
  --blau-dunkel: #2F43A8;
  --blau-tief: #1E2462;
  --blau-tint: #ECEFFD;
  --blau-zart: #F5F6FE;
  --akzent: var(--blau);
  --akzent-tint: var(--blau-tint);
  --schrift: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --titel: "Manrope", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --radius: 16px;
  --radius-klein: 12px;
  --schatten-klein: 0 1px 3px rgba(61, 85, 208, .06), 0 1px 2px rgba(0, 0, 0, .04);
  --schatten: 0 4px 16px rgba(61, 85, 208, .08), 0 2px 4px rgba(0, 0, 0, .04);
  --schatten-gross: 0 8px 32px rgba(61, 85, 208, .12), 0 4px 8px rgba(0, 0, 0, .04);
  --breite: 70rem;
  --kopfhoehe: 4.5rem;
  --abstand: clamp(3.5rem, 7vw, 6rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--kopfhoehe) + 1rem); }
body {
  margin: 0; background: var(--flaeche); color: var(--text);
  font-family: var(--schrift); font-size: 1.0625rem; line-height: 1.7;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-wrap: break-word;
}
h1, h2, h3, h4 { font-family: var(--titel); color: var(--tinte); line-height: 1.2; font-weight: 700; letter-spacing: -.02em; }
h1 { font-size: clamp(2rem, 1.4rem + 2.4vw, 2.9rem); margin: 0 0 1rem; font-weight: 800; text-wrap: balance; }
h2 { font-size: clamp(1.45rem, 1.25rem + .9vw, 1.85rem); margin: 3rem 0 1rem; text-wrap: balance; }
h3 { font-size: 1.2rem; margin: 2.1rem 0 .6rem; letter-spacing: -.01em; line-height: 1.3; }
h4 { font-size: 1.02rem; margin: 1.5rem 0 .4rem; letter-spacing: 0; }
p { margin: 0 0 1.15rem; }
a { color: var(--blau); text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); transition: color .2s; }
a:hover { color: var(--blau-dunkel); text-decoration-color: currentColor; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--blau) 45%, transparent); outline-offset: 2px; border-radius: 6px;
}
img, svg { max-width: 100%; height: auto; }
strong { color: var(--tinte); font-weight: 650; }
.rahmen { width: 100%; max-width: var(--breite); margin: 0 auto; padding: 0 clamp(1.25rem, 4vw, 2.5rem); }
.icon { width: 1.15em; height: 1.15em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.2em; }
.nur-vorlesen { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sprung { position: absolute; left: -999px; top: .5rem; z-index: 200; background: var(--blau-tief); color: #fff; padding: .6rem 1rem; border-radius: 8px; }
.sprung:focus { left: .5rem; color: #fff; }

.knopf {
  display: inline-flex; align-items: center; gap: .5rem; padding: .78rem 1.5rem; border-radius: 10px;
  font-family: var(--titel); font-weight: 700; font-size: .98rem; line-height: 1.35; text-decoration: none;
  border: 2px solid transparent; transition: background .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.knopf-voll { background: var(--blau); border-color: var(--blau); color: #fff; box-shadow: 0 2px 8px rgba(61, 85, 208, .25); }
.knopf-voll:hover { background: var(--blau-dunkel); border-color: var(--blau-dunkel); color: #fff; transform: translateY(-1px); box-shadow: 0 4px 16px rgba(61, 85, 208, .3); }
.knopf-ruhig { background: var(--flaeche); color: var(--blau); border-color: var(--blau); }
.knopf-ruhig:hover { background: var(--blau-zart); color: var(--blau-dunkel); border-color: var(--blau-dunkel); }

.etikett {
  display: inline-flex; align-items: center; gap: .4rem; margin: 0 0 1.2rem; padding: .35rem 1rem; border-radius: 999px;
  background: var(--blau-tint); color: var(--blau); font-family: var(--titel); font-size: .78rem; font-weight: 700;
  letter-spacing: .05em; text-transform: uppercase;
}
.symbol-kachel { width: 2.75rem; height: 2.75rem; border-radius: 10px; display: grid; place-items: center; background: var(--blau-tint); color: var(--blau); flex: none; }
.symbol-kachel .icon { width: 1.35rem; height: 1.35rem; }

/* ---- 2 Kopf und Menü ---------------------------------------------------------------------------------------- */
.kopf { position: sticky; top: 0; z-index: 100; background: rgba(255, 255, 255, .92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--linie-zart); }
.kopf-innen { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: var(--kopfhoehe); }
.marke { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; color: var(--tinte); flex: none; }
.marke svg { flex: none; }
.marke-text { display: flex; flex-direction: column; font-family: var(--titel); font-weight: 800; font-size: .95rem; line-height: 1.12; letter-spacing: -.02em; white-space: nowrap; }
.marke-tld { color: var(--blau); font-weight: 700; }
.menue-liste, .menue-unter { list-style: none; margin: 0; padding: 0; }
.menue-liste { display: flex; align-items: center; gap: .15rem; }
.menue-punkt { position: relative; }
.menue-punkt > a { display: block; padding: .5rem .7rem; border-radius: 8px; color: var(--text); text-decoration: none; font-family: var(--titel); font-size: .93rem; font-weight: 600; white-space: nowrap; }
.menue-punkt > a:hover, .menue-punkt:focus-within > a { color: var(--blau); }
.menue-punkt.ist-aktiv > a { color: var(--blau); }
.menue-unter {
  position: absolute; left: 0; top: calc(100% + .3rem); min-width: 15.5rem; padding: .45rem; background: var(--flaeche);
  border: 1px solid var(--linie); border-radius: var(--radius-klein); box-shadow: var(--schatten);
  opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .15s, transform .15s, visibility .15s;
}
.menue-unter::before { content: ""; position: absolute; left: 0; right: 0; top: -.5rem; height: .5rem; }
.menue-punkt:hover > .menue-unter, .menue-punkt:focus-within > .menue-unter { opacity: 1; visibility: visible; transform: none; }
.menue-punkt:nth-last-child(-n+2) > .menue-unter { left: auto; right: 0; }
.menue-unter a { display: block; padding: .5rem .7rem; border-radius: 8px; color: var(--text); text-decoration: none; font-size: .92rem; }
.menue-unter a:hover, .menue-unter a:focus-visible { background: var(--blau-zart); color: var(--blau-dunkel); }
.menue-knopf { display: none; width: 2.75rem; height: 2.75rem; border: 1px solid var(--linie); border-radius: 10px; background: var(--flaeche); cursor: pointer; align-items: center; justify-content: center; }
.menue-knopf-linien, .menue-knopf-linien::before, .menue-knopf-linien::after { display: block; width: 1.15rem; height: 2px; border-radius: 2px; background: var(--tinte); transition: transform .2s, opacity .2s; }
.menue-knopf-linien { position: relative; }
.menue-knopf-linien::before, .menue-knopf-linien::after { content: ""; position: absolute; left: 0; }
.menue-knopf-linien::before { top: -6px; }
.menue-knopf-linien::after { top: 6px; }
.menue-knopf[aria-expanded="true"] .menue-knopf-linien { background: transparent; }
.menue-knopf[aria-expanded="true"] .menue-knopf-linien::before { transform: translateY(6px) rotate(45deg); }
.menue-knopf[aria-expanded="true"] .menue-knopf-linien::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1139px) {
  .kopf-innen { flex-wrap: wrap; }
  .js .menue-knopf { display: inline-flex; }
  .menue { flex-basis: 100%; padding-bottom: 1rem; max-height: calc(100vh - var(--kopfhoehe)); overflow-y: auto; }
  .js .menue { display: none; }
  .js .menue.ist-offen { display: block; }
  .menue-liste { flex-direction: column; align-items: stretch; gap: 0; }
  .menue-punkt { border-top: 1px solid var(--linie-zart); padding: .3rem 0; }
  .menue-punkt > a { font-size: 1.02rem; font-weight: 700; padding: .55rem .25rem; color: var(--tinte); }
  .menue-unter { position: static; opacity: 1; visibility: visible; transform: none; border: 0; box-shadow: none; padding: 0 0 .35rem; display: flex; flex-wrap: wrap; gap: .3rem; min-width: 0; }
  .menue-unter::before { display: none; }
  .menue-unter a { padding: .35rem .75rem; background: var(--blau-zart); border-radius: 999px; font-size: .88rem; }
}

/* ---- 3 Artikel ---------------------------------------------------------------------------------------------- */
.artikel-kopf { background: linear-gradient(175deg, #fff 35%, var(--blau-zart) 100%); border-bottom: 1px solid var(--linie-zart); padding: 1.6rem 0 2.6rem; }
.artikel-kopf-innen { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 17rem); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.kopf-bild svg { display: block; width: 100%; height: auto; }
.krumen ol { list-style: none; display: flex; flex-wrap: wrap; gap: .15rem .45rem; margin: 0 0 1.5rem; padding: 0; font-size: .85rem; color: var(--leise); }
.krumen li + li::before { content: "/"; margin-right: .45rem; color: #C3CCD9; }
.krumen a { color: var(--leise); text-decoration: none; }
.krumen a:hover { color: var(--blau); }
.lead { font-size: clamp(1.08rem, 1rem + .4vw, 1.2rem); line-height: 1.65; color: var(--text); max-width: 42rem; margin-bottom: 1.3rem; }
.meta { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; margin: 0; font-size: .87rem; color: var(--leise); }
.meta > span { display: inline-flex; align-items: center; gap: .4rem; }
.meta .icon { color: var(--blau); }
.meta a { color: var(--tinte); font-weight: 600; text-decoration: none; }
.meta a:hover { color: var(--blau); }
.meta-unten { margin-top: 2.5rem; padding-top: 1rem; border-top: 1px solid var(--linie); }
@media (max-width: 760px) { .artikel-kopf-innen { grid-template-columns: 1fr; } .kopf-bild { display: none; } }

.artikel-spalte { padding-top: 2.8rem; padding-bottom: 5rem; }
.artikel-spalte > .text { max-width: 46rem; margin: 0 auto; }

.text > :first-child { margin-top: 0; }
.text ul, .text ol { margin: 0 0 1.25rem; padding-left: 1.3rem; }
.text li { margin-bottom: .45rem; }
.text li::marker { color: var(--blau); font-weight: 600; }
.text hr { border: 0; border-top: 1px solid var(--linie); margin: 2.5rem 0; }
.text a.extern::after { content: "↗"; display: inline-block; margin-left: .15em; font-size: .78em; text-decoration: none; opacity: .65; }
.text figure { margin: 1.9rem 0; }
.text figure img { display: block; width: 100%; border: 1px solid var(--linie-zart); border-radius: var(--radius); background: var(--flaeche); box-shadow: var(--schatten-klein); }
.text figcaption { margin-top: .65rem; font-size: .87rem; color: var(--leise); line-height: 1.5; }
.text blockquote { margin: 1.5rem 0; padding: .1rem 0 .1rem 1.2rem; border-left: 3px solid var(--blau); color: var(--tinte); font-size: 1.06rem; }
.text blockquote p:last-child { margin-bottom: 0; }
.text code { font-size: .9em; padding: .1em .35em; border-radius: 6px; background: var(--grund); border: 1px solid var(--linie-zart); }
.text dl { margin: 0 0 1.5rem; }
.text dt { margin-top: 1.15rem; font-family: var(--titel); font-weight: 700; color: var(--tinte); font-size: 1.05rem; }
.text dd { margin: .2rem 0 0; padding-left: 1rem; border-left: 2px solid var(--blau-tint); }
.text dd p { margin-bottom: .4rem; }

/* ---- 4 Textbausteine ---------------------------------------------------------------------------------------- */
.kurz { margin: 0 0 2.4rem; padding: 1.4rem 1.5rem 1.3rem; background: var(--blau-zart); border: 1px solid var(--blau-tint); border-radius: var(--radius); }
.kurz-titel { display: flex; align-items: center; gap: .5rem; margin: 0 0 .8rem; font-family: var(--titel); font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--blau); }
.kurz ul { margin: 0; padding: 0; list-style: none; }
.kurz li { position: relative; margin: 0 0 .6rem; padding-left: 1.7rem; line-height: 1.55; color: var(--tinte); }
.kurz li::before { content: ""; position: absolute; left: 0; top: .28em; width: 1.05rem; height: 1.05rem; border-radius: 50%; background: var(--blau) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.3l2.3 2.3 4.7-5' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
.kurz li:last-child { margin-bottom: 0; }

.merke, .hinweis, .achtung, .beispiel { margin: 1.8rem 0; padding: 1.1rem 1.3rem; border-radius: var(--radius-klein); background: var(--grund); border: 1px solid var(--linie-zart); border-left: 4px solid var(--baustein, var(--leise)); }
.merke > :last-child, .hinweis > :last-child, .achtung > :last-child, .beispiel > :last-child { margin-bottom: 0; }
.merke::before, .hinweis::before, .achtung::before, .beispiel::before { display: block; margin-bottom: .3rem; font-family: var(--titel); font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--baustein, var(--leise)); }
.merke { --baustein: var(--blau); background: var(--blau-zart); border-color: var(--blau-tint); border-left-color: var(--blau); }
.merke::before { content: "Merke"; }
.hinweis { --baustein: #3E7C6B; background: #F2F9F6; border-color: #DDEEE7; border-left-color: #3E7C6B; }
.hinweis::before { content: "Gut zu wissen"; }
.achtung { --baustein: #B7791F; background: #FFF9EC; border-color: #F8E8C4; border-left-color: #D69E2E; }
.achtung::before { content: "Achtung"; }
.beispiel { --baustein: #5A6578; border-left-color: #A9B4C5; }
.beispiel::before { content: "Beispiel"; }

.fakten ul { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: 1rem; margin: 1.8rem 0; padding: 0; }
.fakten li { margin: 0; padding: 1.3rem 1rem 1.15rem; text-align: center; border-radius: var(--radius-klein); background: var(--flaeche); border: 1px solid var(--linie-zart); font-size: .84rem; line-height: 1.4; color: var(--leise); box-shadow: var(--schatten-klein); }
.fakten li strong { display: block; font-family: var(--titel); font-size: 1.7rem; line-height: 1.2; color: var(--blau); margin-bottom: .25rem; font-weight: 800; letter-spacing: -.02em; }

.schritte ol { list-style: none; counter-reset: schritt; margin: 1.8rem 0; padding: 0; }
.schritte li { counter-increment: schritt; position: relative; margin: 0; padding: 0 0 1.35rem 3.1rem; }
.schritte li::before { content: counter(schritt); position: absolute; left: 0; top: -.1rem; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--blau-tint); color: var(--blau); font-family: var(--titel); font-weight: 800; font-size: .9rem; display: grid; place-items: center; }
.schritte li::after { content: ""; position: absolute; left: 1.02rem; top: 2.3rem; bottom: .25rem; width: 2px; border-radius: 2px; background: var(--linie); }
.schritte li:last-child { padding-bottom: 0; }
.schritte li:last-child::after { display: none; }
.schritte li > p:first-child { margin-bottom: .3rem; }
.schritte li > p:last-child { margin-bottom: 0; }

.tabelle { margin: 1.8rem 0; overflow-x: auto; border: 1px solid var(--linie-zart); border-radius: var(--radius); -webkit-overflow-scrolling: touch; background: var(--flaeche); box-shadow: var(--schatten-klein); }
.tabelle table { width: 100%; border-collapse: collapse; font-size: .92rem; line-height: 1.5; min-width: 30rem; }
.tabelle th { text-align: left; padding: .9rem 1.1rem; background: var(--blau-zart); color: var(--blau-dunkel); font-family: var(--titel); font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; border-bottom: 2px solid var(--blau-tint); white-space: nowrap; }
.tabelle td { padding: .8rem 1.1rem; border-bottom: 1px solid var(--linie-zart); vertical-align: top; }
.tabelle tr:last-child td { border-bottom: 0; }
.tabelle tbody tr:hover td { background: var(--blau-zart); }
.tabelle td:first-child { font-weight: 600; color: var(--tinte); }
.tabelle caption { caption-side: bottom; padding: .6rem 1.1rem; font-size: .84rem; color: var(--leise); text-align: left; border-top: 1px solid var(--linie-zart); }

.faq { margin-top: 3.2rem; }
.faq-punkt { border-bottom: 1px solid var(--linie); }
.faq > .faq-punkt:first-of-type { border-top: 1px solid var(--linie); }
.faq-punkt summary { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; padding: 1.15rem .1rem; cursor: pointer; list-style: none; font-family: var(--titel); font-weight: 700; font-size: 1.02rem; color: var(--tinte); line-height: 1.4; transition: color .2s; }
.faq-punkt summary::-webkit-details-marker { display: none; }
.faq-punkt summary .icon { margin-top: .15rem; color: var(--leise); transition: transform .25s; }
.faq-punkt[open] summary .icon { transform: rotate(180deg); }
.faq-punkt summary:hover { color: var(--blau); }
.faq-antwort { padding: 0 .1rem 1.25rem; max-width: 43rem; font-size: .98rem; }
.faq-antwort > :last-child { margin-bottom: 0; }

.kurshinweis { margin: 3rem 0 0; padding: 1.4rem 1.5rem; border: 1px solid var(--linie); border-radius: var(--radius); background: var(--grund); font-size: .95rem; }
.kurshinweis-etikett { margin: 0 0 .5rem; font-family: var(--titel); font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--leise); }
.kurshinweis-titel { margin: 0 0 .4rem; font-family: var(--titel); font-size: 1.12rem; font-weight: 700; letter-spacing: -.01em; color: var(--tinte); line-height: 1.3; }
.kurshinweis p:last-child { margin-bottom: 0; }
.kurshinweis .knopf { padding: .55rem 1.1rem; font-size: .92rem; }

.kurs-tipp { display: flex; gap: 1rem; align-items: flex-start; margin: 2rem 0; padding: 1.15rem 1.3rem; border: 1px solid var(--blau-tint); border-radius: var(--radius); background: var(--blau-zart); font-size: .95rem; }
.kurs-tipp p { margin: 0; }
.kurs-tipp .symbol-kachel { background: var(--flaeche); }
.kurs-tipp-etikett { margin-bottom: .2rem !important; font-family: var(--titel); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--leise); }
.kurs-tipp a { font-weight: 600; white-space: nowrap; }
@media (max-width: 520px) { .kurs-tipp .symbol-kachel { display: none; } .kurs-tipp a { white-space: normal; } }

.quellen { margin-top: 3rem; font-size: .91rem; }
.quellen h2 { font-size: 1.2rem; }
.quellen ul { padding-left: 1.2rem; }
.quellen-hinweis, .quellen-stand { color: var(--leise); }
.quellen-stand { font-size: .85rem; }

.autor { display: flex; gap: 1.1rem; align-items: center; margin-top: 2.5rem; padding: 1.2rem 1.35rem; background: var(--flaeche); border: 1px solid var(--linie-zart); border-radius: var(--radius); font-size: .92rem; box-shadow: var(--schatten-klein); }
.autor img { width: 68px; height: 68px; border-radius: 50%; object-fit: cover; object-position: center 20%; flex: none; border: 3px solid #fff; box-shadow: var(--schatten); }
.autor p { margin: 0; }
.autor-name { font-family: var(--titel); font-weight: 700; color: var(--tinte); margin-bottom: .15rem !important; }

.karten { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr)); gap: 1rem; margin: 1.3rem 0 0; padding: 0 !important; }
.karte { margin: 0 !important; }
.karte a { display: flex; flex-direction: column; gap: .4rem; height: 100%; padding: 1.35rem 1.35rem 1.25rem; border: 1px solid var(--linie-zart); border-radius: var(--radius); background: var(--flaeche); text-decoration: none; color: var(--text); box-shadow: var(--schatten-klein); transition: box-shadow .25s, transform .25s; }
.karte a:hover { box-shadow: var(--schatten); transform: translateY(-2px); }
.karte .symbol-kachel { margin-bottom: .55rem; }
.karte-titel { font-family: var(--titel); font-size: 1.03rem; font-weight: 700; letter-spacing: -.01em; color: var(--tinte); line-height: 1.3; }
.karte-text { font-size: .87rem; line-height: 1.55; color: var(--text); }
.unterseiten, .verwandt { margin-top: 3.2rem; }

.merkmale { list-style: none; display: flex; flex-wrap: wrap; gap: .6rem; margin: 0; padding: 0; }
.merkmale li { padding: .4rem .9rem; border-radius: 999px; background: var(--blau-zart); border: 1px solid var(--blau-tint); font-family: var(--titel); font-size: .8rem; font-weight: 600; color: var(--blau-dunkel); }
.profil-kopf { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3rem; align-items: center; }
.profil-bild { width: 240px; height: 240px; border-radius: 50%; object-fit: cover; object-position: center 15%; border: 4px solid #fff; box-shadow: var(--schatten); }
@media (max-width: 760px) { .profil-kopf { grid-template-columns: 1fr; gap: 1.5rem; } .profil-bild { width: 150px; height: 150px; order: -1; } }

.rechtsseite { padding-top: 2.5rem; padding-bottom: 4rem; }
.rechtsseite .rx-landing-seite { max-width: 46rem; margin: 0 auto; padding: 0; }
.rechtsseite h1 { font-size: clamp(1.9rem, 1.4rem + 2vw, 2.5rem); }

/* ---- 5 Startseite ------------------------------------------------------------------------------------------- */
.buehne { background: linear-gradient(175deg, #fff 40%, var(--blau-zart) 100%); }
.buehne-innen { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; padding-top: clamp(3rem, 7vw, 5.5rem); padding-bottom: var(--abstand); }
.buehne h1 { font-size: clamp(1.9rem, 1.1rem + 3vw, 2.75rem); line-height: 1.18; letter-spacing: -.025em; margin-bottom: 1.25rem; text-wrap: wrap; }
.buehne h1 span { color: var(--blau); display: block; }
.buehne .lead { max-width: 35rem; margin-bottom: 2rem; }
.buehne-knoepfe { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0 0 2.2rem; }
.buehne-belege { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0; padding: 0; font-family: var(--titel); font-size: .87rem; color: var(--leise); }
.buehne-belege li { display: inline-flex; align-items: center; gap: .4rem; }
.buehne-belege .icon { color: var(--blau); }

.wegkarte { background: var(--flaeche); border: 1px solid var(--linie-zart); border-radius: 20px; box-shadow: var(--schatten-gross); padding: 1.5rem 1.6rem 1.4rem; }
.wegkarte-titel { margin: 0 0 1rem; padding-bottom: .9rem; border-bottom: 1px solid var(--linie-zart); font-family: var(--titel); font-weight: 700; font-size: 1rem; color: var(--tinte); }
.wegkarte ol { list-style: none; margin: 0; padding: 0; }
.wegkarte li { position: relative; display: grid; grid-template-columns: 2.25rem minmax(0, 1fr) auto; align-items: center; gap: .85rem; padding: .42rem 0; }
.wegkarte li + li::before { content: ""; position: absolute; left: calc(1.125rem - 1px); top: -.42rem; height: .84rem; width: 2px; background: var(--blau-tint); }
.wegkarte-punkt { width: 2.25rem; height: 2.25rem; border-radius: 10px; display: grid; place-items: center; background: var(--blau-tint); color: var(--blau); }
.wegkarte-punkt .icon { width: 1.2rem; height: 1.2rem; }
.wegkarte-name { font-family: var(--titel); font-weight: 600; color: var(--tinte); font-size: .95rem; text-decoration: none; }
.wegkarte li.ist-pruefung .wegkarte-name { font-weight: 700; }
.wegkarte-name:hover { color: var(--blau); }
.wegkarte-zeit { font-size: .8rem; color: var(--leise); white-space: nowrap; }
@media (max-width: 940px) { .buehne-innen { grid-template-columns: 1fr; } .wegkarte { max-width: 32rem; } }
@media (max-width: 420px) { .wegkarte-zeit { display: none; } .wegkarte li { grid-template-columns: 2.25rem minmax(0, 1fr); } }

.abschnitt { padding: var(--abstand) 0; }
.abschnitt-grund { background: var(--grund); }
.abschnitt-kopf { text-align: center; max-width: 42rem; margin: 0 auto 3rem; }
.abschnitt-ueber { margin: 0 0 .75rem; font-family: var(--titel); font-size: .8rem; font-weight: 700; color: var(--blau); letter-spacing: .06em; text-transform: uppercase; }
.abschnitt-kopf h2 { margin: 0 0 1rem; font-size: clamp(1.6rem, 1.3rem + 1.4vw, 2.2rem); }
.abschnitt-kopf p { margin-bottom: 0; font-size: 1.05rem; }
.abschnitt .text { max-width: 52rem; margin: 0 auto; }

.bereiche { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.bereich-karte { position: relative; display: flex; flex-direction: column; padding: 2rem; background: var(--flaeche); border: 1px solid var(--linie-zart); border-radius: var(--radius); box-shadow: var(--schatten-klein); transition: box-shadow .3s, transform .3s; }
.bereich-karte:hover { box-shadow: var(--schatten); transform: translateY(-2px); }
.bereich-karte .symbol-kachel { margin-bottom: 1.2rem; }
.bereich-karte h3 { margin: 0 0 .5rem; font-size: 1.25rem; }
.bereich-karte h3 a { color: var(--tinte); text-decoration: none; }
.bereich-karte h3 a::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius); }
.bereich-karte p { font-size: .95rem; margin-bottom: 1.1rem; }
.bereich-fakten { list-style: none; display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; margin: 0 0 1.2rem; padding: 0; font-size: .86rem; color: var(--leise); }
.bereich-fakten li { display: inline-flex; align-items: center; gap: .35rem; }
.bereich-fakten .icon { color: var(--blau); width: 1em; height: 1em; }
.bereich-links { position: relative; z-index: 1; list-style: none; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin: auto 0 0; padding: 1rem 0 0; border-top: 1px solid var(--linie-zart); }
.bereich-links a { color: var(--blau); font-family: var(--titel); font-size: .87rem; font-weight: 600; text-decoration: none; }
.bereich-links a:hover { text-decoration: underline; }
@media (max-width: 800px) { .bereiche { grid-template-columns: 1fr; } }

.weg { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.weg-station { position: relative; display: flex; align-items: flex-start; gap: 1rem; margin: 0; padding: 1.25rem 1.5rem; background: var(--flaeche); border: 1px solid var(--linie-zart); border-radius: var(--radius-klein); transition: border-color .2s, box-shadow .2s; }
.weg-station:hover { border-color: var(--blau-tint); box-shadow: var(--schatten-klein); }
.weg-nr { width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; flex: none; margin-top: .1rem; background: var(--blau-tint); color: var(--blau); font-family: var(--titel); font-weight: 800; font-size: .85rem; }
.weg-marke { display: inline-block; margin-left: .5rem; padding: .05rem .5rem; border-radius: 999px; background: var(--blau-tint); color: var(--blau); font-family: var(--titel); font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; vertical-align: .08em; }
.weg-zeit { display: block; font-family: var(--titel); font-size: .76rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--leise); margin-bottom: .1rem; }
.weg-titel { font-size: 1rem; margin: 0 0 .25rem; }
.weg-titel a { color: var(--tinte); text-decoration: none; }
.weg-titel a::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius-klein); }
.weg-text { font-size: .86rem; line-height: 1.55; margin: 0; color: var(--text); }
@media (max-width: 800px) { .weg { grid-template-columns: 1fr; } }

.termine { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin-bottom: 2.5rem; }
.termin { display: flex; flex-direction: column; padding: 1.75rem 1.5rem; text-align: center; border-radius: var(--radius); background: var(--flaeche); border: 1px solid var(--linie-zart); box-shadow: var(--schatten-klein); }
.termin .symbol-kachel { margin: 0 auto 1rem; }
.termin-art { margin: 0 0 .4rem; font-family: var(--titel); font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--leise); }
.termin-datum { margin: 0 0 .4rem; font-family: var(--titel); font-size: 1.3rem; font-weight: 800; letter-spacing: -.02em; color: var(--blau); line-height: 1.25; }
.termin-text { margin: 0; font-size: .87rem; line-height: 1.5; }
.abschnitt-knopf { text-align: center; margin: 0; }
@media (max-width: 860px) { .termine { grid-template-columns: 1fr; } }

.schnell { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: .8rem; margin: 0; padding: 0; }
.schnell a { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .95rem 1.2rem; background: var(--flaeche); border: 1px solid var(--linie-zart); border-radius: var(--radius-klein); color: var(--tinte); text-decoration: none; font-family: var(--titel); font-weight: 600; font-size: .93rem; line-height: 1.35; transition: border-color .2s, box-shadow .2s, color .2s; }
.schnell a:hover { border-color: var(--blau-tint); box-shadow: var(--schatten-klein); color: var(--blau); }
.schnell .icon { color: var(--blau); }

.ueber-autor { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3rem; align-items: start; max-width: 58rem; margin: 0 auto; }
.ueber-autor img { width: 260px; height: 260px; border-radius: 50%; object-fit: cover; object-position: center 15%; border: 4px solid #fff; box-shadow: var(--schatten); }
.ueber-autor h2 { margin: 0 0 1rem; font-size: clamp(1.5rem, 1.25rem + 1vw, 1.8rem); }
.ueber-autor .merkmale { margin: 1.4rem 0 1.6rem; }
@media (max-width: 800px) { .ueber-autor { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 1.5rem; } .ueber-autor img { width: 170px; height: 170px; } .ueber-autor .merkmale { justify-content: center; } }

.schluss { max-width: 48rem; margin: 0 auto; }
.schluss .faq { margin-top: 0; }
.schluss .faq h2 { text-align: center; margin: 0 0 2rem; font-size: clamp(1.6rem, 1.3rem + 1.4vw, 2.2rem); }

/* ---- 6 Fuß -------------------------------------------------------------------------------------------------- */
.fuss { background: var(--blau-tief); color: #BFC6E8; font-size: .91rem; }
.fuss a { color: #E6E9F8; text-decoration: none; }
.fuss a:hover { color: #fff; text-decoration: underline; }
.fuss-spalten { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr; gap: 2.4rem; padding-top: 3.5rem; padding-bottom: 2.5rem; }
.fuss-name { display: flex; align-items: center; gap: .65rem; color: #fff; margin-bottom: .7rem; }
.fuss .marke-tld { color: #A6B3EE; }
.fuss-transparenz { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, .14); font-size: .85rem; line-height: 1.55; max-width: 24rem; }
.fuss-titel { margin: 0 0 .9rem; font-family: var(--titel); font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #A6B3EE; }
.fuss ul { list-style: none; margin: 0; padding: 0; }
.fuss li { margin-bottom: .5rem; }
.fuss-unten { padding-top: 1.3rem; padding-bottom: 2rem; border-top: 1px solid rgba(255, 255, 255, .14); font-size: .82rem; color: #A6B3EE; }
.fuss-unten p { margin: 0 0 .5rem; max-width: 62rem; }
@media (max-width: 900px) { .fuss-spalten { grid-template-columns: 1fr 1fr; } .fuss-marke { grid-column: 1 / -1; } }
@media (max-width: 480px) { .fuss-spalten { grid-template-columns: 1fr; } }

/* ---- 7 Rechner (assets/info.js) ----------------------------------------------------------------------------- */
.rechner { margin: 1.9rem 0; padding: 1.5rem; border: 1px solid var(--linie-zart); border-radius: var(--radius); background: var(--flaeche); box-shadow: var(--schatten); }
.rechner-titel { margin: 0 0 1rem; font-family: var(--titel); font-size: 1.1rem; font-weight: 700; color: var(--tinte); }
.rechner-felder { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .9rem; }
.rechner label { display: block; font-size: .84rem; font-weight: 600; color: var(--tinte); }
.rechner input, .rechner select { display: block; width: 100%; margin-top: .35rem; padding: .62rem .75rem; border: 1px solid #CBD5E1; border-radius: 10px; font: inherit; font-size: 1rem; background: #fff; color: var(--tinte); }
.rechner-ergebnis { margin: 1.1rem 0 0; padding: .95rem 1.05rem; border-radius: 12px; background: var(--blau-zart); border: 1px solid var(--blau-tint); font-size: .97rem; color: var(--tinte); }
.rechner-ergebnis strong { font-family: var(--titel); font-size: 1.4rem; font-weight: 800; color: var(--blau); }
.rechner-ergebnis ul { margin: .5rem 0 0; padding-left: 1.2rem; }
.rechner-hinweis { margin: .8rem 0 0; font-size: .82rem; color: var(--leise); }
.js-nur { display: none; }
.js .js-nur { display: block; }

/* ---- 8 Druck ------------------------------------------------------------------------------------------------ */
@media print {
  .kopf, .fuss, .kopf-bild, .kurshinweis, .verwandt, .unterseiten, .sprung { display: none !important; }
  .artikel-kopf { background: none; border: 0; padding: 0 0 1rem; }
  body { font-size: 11pt; color: #000; }
  a { color: #000; }
  .text a.extern::after { content: " (" attr(href) ")"; font-size: .8em; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }
