/* Online-Praxis Roth · Ralf Baumhöfer
   Designsystem Praxis Baumhöfer, Thema baumhoefer.info (Petrol).
   Werte aus tokens.json; Schriften lokal, keine Verbindung zu Google. */

@font-face{font-family:"Newsreader";src:url("fonts/newsreader-v1.woff2") format("woff2");font-weight:400 600;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url("fonts/newsreader-italic-v1.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("fonts/sourcesans.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("fonts/sourcesans-italic.woff2") format("woff2");font-weight:400 700;font-style:italic;font-display:swap}

:root{
  --paper:#ffffff; --mist:#f4f7f7; --mist-2:#e7eeee;
  --deep:#0f3540; --ink:#10242a; --text:#10242a; --text-2:#34494f; --nav:#34494f; --muted:#5a6d72;
  --link:#1a5463; --action:#1a5463; --action-hover:#134451; --on-action:#ffffff; --action-on-deep-hover:#dcebec;
  --accent:#1a5463; --accent-text:#1a5463; --accent-on-deep:#8cc9c8; --mark-on-deep:#8cc9c8; --focus:#2f8f83;
  --on-deep:#f1f7f7; --on-deep-2:#e6f0f0; --on-deep-muted:#afc6c8; --on-deep-faint:#afc6c8;
  --line:#dce5e5; --line-2:#c3d2d3; --line-on-deep:#ffffff24;
  --note:#fdf3e1; --on-note:#5a3b05; --on-note-strong:#5a3b05;
  --shadow-soft:0 1px 2px rgba(16,36,42,.05),0 12px 32px -20px rgba(16,36,42,.28);
  --shadow-float:0 2px 6px rgba(16,36,42,.12),0 12px 28px -12px rgba(16,36,42,.4);
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  --container:1120px; --gutter:28px; --section:88px; --measure:70ch;
  --r6:6px; --r12:12px; --r18:18px;
}
@media (max-width:860px){:root{--gutter:20px;--section:60px}}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);font-size:20px;line-height:1.65;-webkit-font-smoothing:antialiased}
@media (max-width:860px){body{font-size:18px}}
img{max-width:100%;height:auto;display:block}
a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
p{margin:0 0 1em;max-width:var(--measure)}
h1,h2,h3,h4{color:var(--ink);margin:0}
h1,h2{font-family:var(--serif);font-weight:500;letter-spacing:-.012em;font-variation-settings:"opsz" 40;text-wrap:balance}
h1{font-size:clamp(38px,4.8vw,60px);line-height:1.06}
h2{font-size:clamp(30px,3.4vw,44px);line-height:1.12}
h3{font-size:20px;line-height:1.3;font-weight:700;letter-spacing:-.005em}
h4{font-size:19px;line-height:1.3;font-weight:700;letter-spacing:-.005em}
ul,ol{margin:0 0 1em;padding-left:1.2em}
li{margin-bottom:.35em}
.container{width:min(var(--container),100% - 2*var(--gutter));margin-inline:auto}
.section{padding-block:var(--section)}
.section--mist{background:var(--mist)}
.section--deep{background:var(--deep);color:var(--on-deep-2)}
.section--deep h2,.section--deep h3{color:var(--on-deep)}
.section--deep p{color:var(--on-deep-2)}
.section--deep .muted{color:var(--on-deep-muted)}
.skip{position:absolute;left:-9999px;top:0;background:var(--paper);color:var(--ink);padding:12px 16px;z-index:100}
.skip:focus{left:var(--gutter)}
.muted{color:var(--muted)}
.small{font-size:16px;line-height:1.65}
.caption{font-size:15px;line-height:1.65;color:var(--muted)}
.credit{font-size:13px;line-height:1.75;font-style:italic;color:var(--muted);margin-top:10px}

/* Abschnittskopf: Akzentlinie 64×2, 22px Abstand, Oberzeile optional */
.kopf{margin-bottom:48px}
.kopf::before{content:"";display:block;width:64px;height:2px;background:var(--accent);margin-bottom:22px}
.section--deep .kopf::before{background:var(--mark-on-deep)}
.kopf .ober{font-size:17px;font-weight:600;line-height:1.65;color:var(--link);margin:0 0 18px}
.section--deep .kopf .ober{color:var(--accent-on-deep)}
.kopf .lead{font-size:21px;line-height:1.55;margin-top:18px}

/* Knöpfe */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:var(--r6);font:700 17px/1.2 var(--sans);text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s;border:1.5px solid transparent}
.btn--primary{background:var(--action);color:var(--on-action)}
.btn--primary:hover{background:var(--action-hover);color:var(--on-action)}
.btn--alt{background:transparent;border-color:var(--line-2);color:var(--ink)}
.btn--alt:hover{border-color:var(--link);color:var(--link)}
.btn--on-deep{background:var(--on-deep);color:var(--ink)}
.btn--on-deep:hover{background:var(--action-on-deep-hover);color:var(--ink)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
@media (max-width:860px){.btn{width:100%}}

/* Kopfzeile */
.kopfzeile{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--line)}
.kopfzeile .container{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:80px}
.marke{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);flex-shrink:0}
.marke span{max-width:280px}
.marke b{font-family:var(--serif);font-weight:500;font-size:24px;line-height:1.1;letter-spacing:-.012em}
.marke span{font-size:14px;line-height:1.3;color:var(--link);font-weight:600}
.nav{display:flex;align-items:center;gap:16px}
.nav a{font:600 16px/1.2 var(--sans);color:var(--nav);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent;white-space:nowrap}
.nav a.btn{color:var(--on-action);border-bottom:0}
.nav a.btn:hover{color:var(--on-action)}
.nav a:hover{color:var(--link)}
.nav a[aria-current]{color:var(--ink);border-bottom-color:var(--accent)}
.nav .btn{min-height:44px;padding:0 18px}
.menu-toggle{display:none}
@media (max-width:1380px){.nav{gap:16px}.nav a{font-size:15.5px}.nav .btn{padding:0 14px}}
@media (max-width:1260px){
  .nav{display:none}
  .menu-toggle{display:inline-flex;align-items:center;gap:10px;border:1.5px solid var(--line-2);border-radius:var(--r6);background:transparent;color:var(--ink);font:600 16px var(--sans);padding:10px 14px}
  .kopfzeile.offen .nav{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-bottom:1px solid var(--line);padding:12px var(--gutter) 20px}
  .kopfzeile.offen .nav a{font-size:18px;padding:14px 0;border-bottom:1px solid var(--line)}
  .kopfzeile.offen .nav a[aria-current]{border-bottom-color:var(--line)}
  .kopfzeile.offen .nav .btn{margin-top:16px;border:0}
}

/* Hero */
.hero{padding-block:72px 0}
.hero .container{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:72px;align-items:center}
.hero .ober{font-size:17px;font-weight:600;color:var(--link);margin:0 0 18px}
.hero p.lead{font-size:21px;line-height:1.55;margin-top:24px}
.hero .fakten{display:grid;gap:14px;margin:40px 0 0;padding:0;list-style:none;max-width:var(--measure)}
.hero .fakten li{display:grid;grid-template-columns:28px 1fr;gap:14px;align-items:start;font-size:18px;line-height:1.5;color:var(--text-2)}
.hero .fakten svg{width:24px;height:24px;stroke:var(--accent);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:3px}
.hero figure{margin:0;position:relative}
.hero figure img{border-radius:var(--r18);width:100%;aspect-ratio:4/5;object-fit:cover;box-shadow:var(--shadow-soft)}
.hero figcaption{margin-top:10px;font-size:15px;line-height:1.65;color:var(--muted)}
@media (max-width:860px){.hero{padding-top:40px}.hero .container{grid-template-columns:1fr;gap:40px}.hero figure{order:-1;max-width:360px}}

/* Vertrauensleiste */
.leiste{margin-top:72px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.leiste .container{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;padding-block:28px}
.leiste div{font-size:16px;line-height:1.5;color:var(--text-2)}
.leiste b{display:block;color:var(--ink);font-size:17px}
@media (max-width:860px){.leiste .container{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.leiste .container{grid-template-columns:1fr}}

/* Zweispalter */
.zwei{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
@media (max-width:860px){.zwei{grid-template-columns:1fr;gap:40px}}

/* Themenliste */
.themen{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.themen li{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);gap:28px;padding:18px 0;border-bottom:1px solid var(--line)}
.themen h3{font-size:20px}
.themen p{margin:0;font-size:18px;color:var(--text-2)}
@media (max-width:640px){.themen li{grid-template-columns:1fr;gap:6px}}

/* Ablauf */
.ablauf{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:48px;counter-reset:s}
.ablauf li{counter-increment:s;position:relative}
.ablauf li::before{content:counter(s);display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;border:1px solid var(--line-2);font:400 28px/1 var(--serif);font-variant-numeric:lining-nums;color:var(--accent);margin-bottom:22px;background:var(--paper)}
.ablauf h3{margin-bottom:8px}
.ablauf p{margin:0;font-size:18px;color:var(--text-2)}
@media (max-width:960px){.ablauf{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ablauf{grid-template-columns:1fr}.ablauf li::before{width:48px;height:48px;font-size:24px}}

/* Gegenüberstellung geeignet / nicht geeignet */
.vergleich{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.vergleich > div{border-top:3px solid var(--accent);padding-top:22px}
.vergleich > div.nicht{border-top-color:var(--line-2)}
.vergleich ul{list-style:none;padding:0;margin:14px 0 0}
.vergleich li{position:relative;padding-left:30px;margin-bottom:10px;font-size:18px;color:var(--text-2)}
.vergleich li::before{content:"";position:absolute;left:4px;top:.65em;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.vergleich .nicht li::before{background:var(--line-2)}
@media (max-width:760px){.vergleich{grid-template-columns:1fr}}

/* Hinweiskasten */
.hinweis{background:var(--note);color:var(--on-note);border-radius:var(--r12);padding:24px 28px;margin-top:32px;max-width:var(--measure)}
.hinweis p{color:inherit;margin:0;font-size:18px}
.hinweis b{color:var(--on-note-strong)}

/* Methode */
.sfe{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px}
.sfe div{border-top:1px solid var(--line);padding-top:18px}
.sfe .buchstabe{font:400 44px/1 var(--serif);color:var(--accent);display:block;margin-bottom:12px}
.sfe p{font-size:18px;color:var(--text-2);margin:0}
@media (max-width:760px){.sfe{grid-template-columns:1fr}}
blockquote{margin:32px 0;padding-left:24px;border-left:3px solid var(--accent);font:italic 400 clamp(23px,2.8vw,29px)/1.35 var(--serif);color:var(--ink);max-width:var(--measure)}
blockquote footer{font:400 15px/1.65 var(--sans);color:var(--muted);margin-top:10px;font-style:normal}

/* Gebühren */
.gebuehren{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.gebuehren article{border:1.5px solid var(--line-2);border-radius:var(--r12);padding:28px}
.gebuehren article.hervor{border-color:var(--accent)}
.gebuehren .preis{font:400 44px/1 var(--serif);color:var(--ink);font-variant-numeric:lining-nums;margin:14px 0 6px}
.gebuehren .dauer{font-size:16px;color:var(--muted)}
.gebuehren p{font-size:18px;color:var(--text-2);margin:14px 0 0}
@media (max-width:860px){.gebuehren{grid-template-columns:1fr}}
.fakten-liste{list-style:none;margin:32px 0 0;padding:0;border-top:1px solid var(--line);max-width:var(--measure)}
.fakten-liste li{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:18px;padding:14px 0;border-bottom:1px solid var(--line);font-size:18px}
.fakten-liste b{color:var(--ink)}
.fakten-liste span{color:var(--text-2)}
@media (max-width:560px){.fakten-liste li{grid-template-columns:1fr;gap:4px}}

/* Über mich */
.portrait-klein{border-radius:var(--r18);box-shadow:var(--shadow-soft)}
.signature{font:italic 400 26px/1.65 var(--serif);color:var(--ink);margin-top:18px}

/* Buch */
.buch{display:grid;grid-template-columns:240px 1fr;gap:48px;align-items:start}
.buch img{border-radius:var(--r12);box-shadow:var(--shadow-soft)}
@media (max-width:700px){.buch{grid-template-columns:1fr}.buch img{max-width:220px}}

/* Fragen */
.fragen{border-top:1px solid var(--line);max-width:var(--measure)}
.fragen details{border-bottom:1px solid var(--line)}
.fragen summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:20px 0;font:600 19px/1.4 var(--sans);color:var(--ink)}
.fragen summary::-webkit-details-marker{display:none}
.fragen summary::after{content:"";flex:0 0 18px;width:18px;height:18px;background:linear-gradient(var(--accent),var(--accent)) center/18px 2px no-repeat,linear-gradient(var(--accent),var(--accent)) center/2px 18px no-repeat;transition:transform .2s}
.fragen details[open] summary::after{transform:rotate(45deg)}
.fragen .antwort{padding:0 0 22px;color:var(--text)}
.fragen .antwort p:last-child{margin-bottom:0}

/* Terminbereich auf deep */
.termin .container{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:start}
.termin .kontakt{list-style:none;padding:0;margin:28px 0 0;font-size:18px}
.termin .kontakt li{padding:10px 0;border-top:1px solid var(--line-on-deep)}
.termin .kontakt a{color:var(--on-deep)}
.termin .kontakt a:hover{color:var(--accent-on-deep)}
.kalender{background:var(--paper);border-radius:var(--r12);padding:28px;box-shadow:var(--shadow-soft);color:var(--text)}
.kalender h3{margin-bottom:10px;color:var(--ink)}
.kalender p{font-size:17px;color:var(--text-2)}
.kalender .btn{margin-top:14px}
@media (max-width:860px){.termin .container{grid-template-columns:1fr}}

/* Krisenhinweis + Fuß */
.krise{background:var(--mist);padding-block:32px}
.krise p{margin:0;font-size:16px;line-height:1.65;color:var(--muted);max-width:none}
.fuss{background:var(--mist);padding-block:60px 0;color:var(--text-2);font-size:16px;line-height:1.6}
.fuss .container{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px}
.fuss h4{font-size:16px;margin-bottom:12px;color:var(--ink)}
.fuss ul{list-style:none;padding:0;margin:0}
.fuss li{margin-bottom:8px}
.fuss a{color:var(--text-2)}
.fuss .name{font-family:var(--serif);font-weight:500;font-size:22px;color:var(--ink);letter-spacing:-.012em;line-height:1.2}
.fuss .vfp{margin-top:24px}
.fuss .vfp img{width:90px;mix-blend-mode:multiply}
.fuss .vfp span{display:block;font-size:15px;color:var(--text-2);margin-top:6px}
.fuss .leiste-unten{background:var(--deep);color:var(--on-deep-2);margin-top:48px;padding-block:18px;font-size:14px;line-height:22px}
.fuss .leiste-unten .container{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
@media (max-width:860px){.fuss .container{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.fuss .container{grid-template-columns:1fr}}

/* Rechtsseiten */
.recht h1{margin-bottom:24px}
.recht h2{font-size:clamp(26px,2.6vw,34px);line-height:1.15;margin:48px 0 16px}
.recht h2::before{content:"";display:block;width:56px;height:2px;background:var(--accent);margin-bottom:18px}
.recht h3{margin:28px 0 8px}
.recht .meta{font-size:15px;color:var(--muted);margin-bottom:40px}
.recht address{font-style:normal}
.recht table{border-collapse:collapse;width:100%;max-width:var(--measure);font-size:18px;margin:12px 0 24px}
.recht th,.recht td{text-align:left;vertical-align:top;padding:12px 16px 12px 0;border-bottom:1px solid var(--line)}
.recht th{color:var(--ink);font-weight:600;width:34%}
.nach-oben{position:fixed;right:24px;bottom:24px;width:48px;height:48px;border-radius:50%;background:var(--action);color:var(--on-action);display:none;align-items:center;justify-content:center;box-shadow:var(--shadow-float);text-decoration:none}
.nach-oben.sichtbar{display:flex}
.nach-oben svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Eingebettete Dienste (Doctena): laden erst nach Klick */
.embed{border:1.5px solid var(--line-2);border-radius:var(--r12);padding:24px;background:var(--paper)}
.kalender .embed{border:0;padding:0}
.embed p{margin-bottom:14px}
.embed--geladen{border:0;padding:0}
.embed iframe{width:100%!important;max-width:100%}
.bewertungen{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.6fr);gap:28px;align-items:start}
.bewertungen .doctena-rwm{display:flex;justify-content:center}
@media (max-width:860px){.bewertungen{grid-template-columns:1fr}}
.focus{margin:40px 0 0;max-width:360px}
.focus img{border-radius:var(--r12);border:1px solid var(--line)}
.focus figcaption{margin-top:10px}

/* Region */
.orte{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.orte li{padding:16px 18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font:500 20px/1.2 var(--serif);color:var(--ink);letter-spacing:-.005em}
.orte li:first-child{color:var(--accent-text)}
@media (max-width:860px){.orte{grid-template-columns:repeat(2,1fr)}.orte li{font-size:18px;padding:14px 16px}}
