/* ============================================================
   MAHNBAROMETER · Gestaltungssystem
   Eigenstaendige Erhebungsmarke. Bewusst nicht im Look des
   Herausgebers: Anmutung Almanach, Messinstrument, Institut.
   ============================================================ */

/* ---------- 1 · Farben und Masse ---------- */
:root{
  --grund:      #EDEBE4;
  --blatt:      #FBFAF7;
  --blatt-tief: #F4F2EC;

  --tinte:      #16302E;
  --tinte-weich:#2C4744;
  --gedaempft:  #5E6E68;
  --leise:      #8A968F;

  --akzent:     #C2691D;
  --akzent-tief:#A0530F;
  --akzent-hell:#F7EDE0;

  --stufe-1:    #2F6B5E;
  --stufe-2:    #7C8B3C;
  --stufe-3:    #C2911D;
  --stufe-4:    #A33B1E;

  --linie:      #D8D3C6;
  --linie-fein: #E6E2D8;
  --kante:      2px;

  --schrift-anzeige: "Instrument Serif", Georgia, serif;
  --schrift-text:    "Karla", system-ui, -apple-system, sans-serif;
  --schrift-daten:   "DM Mono", ui-monospace, monospace;
}

/* ---------- 2 · Grundlagen ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  background:var(--grund);
  color:var(--tinte);
  font-family:var(--schrift-text);
  font-size:16.5px;
  line-height:1.6;
  padding-bottom:64px;
}
h1,h2{font-family:var(--schrift-anzeige);font-weight:400;line-height:1.08}
h3,h4{font-family:var(--schrift-text);font-weight:700;line-height:1.25}
.daten{font-family:var(--schrift-daten)}
a{color:var(--akzent-tief)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--tinte);outline-offset:2px}
p{margin-bottom:13px}
p:last-child{margin-bottom:0}

/* ---------- 3 · Kopfleiste ---------- */
.kopf{position:sticky;top:0;z-index:30;background:var(--grund);border-bottom:1px solid var(--linie)}
.kopf-innen{max-width:760px;margin:0 auto;padding:15px 22px 13px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.kopf.breit .kopf-innen{max-width:1080px}
.namenszug{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}
.glyphe{width:26px;height:26px;flex:0 0 26px;display:block}
.wortmarke{font-family:var(--schrift-anzeige);font-size:22px;line-height:1;white-space:nowrap}
.wortmarke sup{font-family:var(--schrift-daten);font-size:9.5px;letter-spacing:.1em;color:var(--akzent);vertical-align:super;margin-left:5px}
.kopf-notiz{font-family:var(--schrift-daten);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--leise);text-align:right;line-height:1.5}
@media(max-width:520px){
  .wortmarke{font-size:18px}
  .kopf-notiz{font-size:8.5px;letter-spacing:.08em}
}

/* Fortschritt als Messskala */
.skala{max-width:760px;margin:0 auto;padding:0 22px}
.skala-striche{display:flex;height:9px;align-items:flex-end;margin-bottom:2px}
.strich{flex:1;border-left:1px solid var(--linie);height:4px}
.strich.gross{height:8px;border-left-color:#C4BDAC}
.skala-linie{height:2px;background:var(--linie);position:relative;overflow:hidden}
.skala-fuellung{position:absolute;inset:0 auto 0 0;width:0%;background:var(--akzent);transition:width .5s cubic-bezier(.4,0,.2,1)}
.skala-text{max-width:760px;margin:0 auto;padding:7px 22px 12px;display:flex;justify-content:space-between;font-family:var(--schrift-daten);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--leise)}

/* ---------- 4 · Flaeche ---------- */
.buehne{max-width:760px;margin:0 auto;padding:0 22px}
.buehne.breit{max-width:1080px}
@media(max-width:560px){.buehne{padding:0 16px}}
.blatt{background:var(--blatt);border:1px solid var(--linie);margin-top:26px;padding:34px 30px}
@media(max-width:560px){.blatt{padding:24px 18px;margin-top:16px}}

/* ---------- 5 · Typografische Bausteine ---------- */
.augenbraue{font-family:var(--schrift-daten);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--akzent);margin-bottom:14px}
.augenbraue.leise{color:var(--leise)}
h1{font-size:clamp(30px,6.4vw,46px);margin-bottom:16px}
h2{font-size:clamp(23px,4.4vw,30px);margin-bottom:10px}
h3{font-size:16px;margin-bottom:6px}
.vorspann{font-size:17.5px;color:var(--tinte-weich);margin-bottom:22px;max-width:58ch}
.klein{font-size:13.5px;color:var(--gedaempft)}
.kasten{background:var(--blatt-tief);border-left:var(--kante) solid var(--stufe-1);padding:15px 18px;font-size:14.5px;color:var(--tinte-weich);margin:20px 0}
.kasten strong{color:var(--tinte)}
.kasten.warn{border-left-color:var(--akzent)}
.platzhalter{background:#FBF0D2;padding:1px 5px;font-family:var(--schrift-daten);font-size:13px}

dl.angaben{display:grid;grid-template-columns:auto 1fr;gap:9px 22px;font-size:14.5px}
dl.angaben dt{font-family:var(--schrift-daten);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--leise);padding-top:4px;white-space:nowrap}
dl.angaben dd{color:var(--tinte-weich)}
@media(max-width:560px){
  dl.angaben{grid-template-columns:1fr;gap:1px 0}
  dl.angaben dd{margin-bottom:12px}
}
.methodik{border-top:1px solid var(--linie);border-bottom:1px solid var(--linie);padding:20px 0;margin:26px 0}

/* ---------- 5b · Fliesstext in Rechts- und Langtexten ----------
   Greift nur in Impressum, Datenschutz und aehnlichen Dokumenten:
   im Fragebogen folgt auf jedes h2 eine .augenbraue, nie ein p/ul/dl,
   deshalb loesen die Geschwisterselektoren dort bewusst nicht aus. */
.blatt ul,.blatt ol{padding-left:21px;margin:0 0 15px}
.blatt li{color:var(--tinte-weich);margin-bottom:7px}
.blatt li:last-child{margin-bottom:0}
.blatt li strong{color:var(--tinte)}
.blatt p+h2,.blatt ul+h2,.blatt ol+h2,.blatt dl+h2,.blatt table+h2,.blatt div+h2{margin-top:36px}
.blatt p+h3,.blatt ul+h3{margin-top:22px}

/* Inhaltsverzeichnis: die Nummer steht bereits im li-Text,
   deshalb keine zweite aus list-style. */
ol.inhalt{list-style:none;padding:18px 0;margin:26px 0 32px;
  border-top:1px solid var(--linie);border-bottom:1px solid var(--linie);
  display:grid;grid-template-columns:1fr 1fr;gap:6px 26px;
  font-family:var(--schrift-daten);font-size:13px;color:var(--gedaempft)}
ol.inhalt li{margin-bottom:0;color:inherit}
@media(max-width:560px){ol.inhalt{grid-template-columns:1fr}}

/* ---------- 6 · Fragen ---------- */
.frage{margin-bottom:32px}
.frage:last-of-type{margin-bottom:0}
.frage-nr{font-family:var(--schrift-daten);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--leise);display:block;margin-bottom:5px}
.frage-text{font-size:17px;font-weight:700;line-height:1.3;margin-bottom:4px}
.frage-hilfe{font-size:14px;color:var(--gedaempft);margin-bottom:13px}
.optionen{display:flex;flex-direction:column;gap:6px}
.opt{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--linie);padding:12px 14px;cursor:pointer;font-size:15.5px;line-height:1.4;background:var(--blatt);transition:border-color .12s,background .12s}
.opt:hover{border-color:#B9B1A0;background:var(--blatt-tief)}
.opt input{appearance:none;-webkit-appearance:none;width:16px;height:16px;flex:0 0 16px;margin-top:4px;border:1.5px solid #A9B0AA;background:#fff}
.opt input[type=radio]{border-radius:50%}
.opt input:checked{border-color:var(--akzent);border-width:5px}
.opt input[type=checkbox]:checked{border-width:1.5px;background:var(--akzent);border-color:var(--akzent)}
.opt:has(input:checked){border-color:var(--akzent);background:var(--akzent-hell)}

.spanne{display:flex;gap:6px;margin-top:4px}
.spanne label{flex:1;text-align:center;border:1px solid var(--linie);background:var(--blatt);padding:13px 4px;cursor:pointer;font-family:var(--schrift-daten);font-size:15px;position:relative;transition:border-color .12s,background .12s}
.spanne label:hover{border-color:#B9B1A0}
.spanne label:has(input:checked){background:var(--tinte);color:var(--blatt);border-color:var(--tinte)}
.spanne label:has(input:focus-visible){outline:2px solid var(--tinte);outline-offset:2px}
.spanne input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}
.spanne-enden{display:flex;justify-content:space-between;font-size:12.5px;color:var(--gedaempft);margin-top:7px}

/* ---------- 7 · Eingabefelder ---------- */
.feld{margin-bottom:17px}
.feld label{display:block;font-size:14px;font-weight:700;margin-bottom:6px}
.feld .frei{font-weight:400;color:var(--gedaempft);font-size:13px}
input[type=text],input[type=email],input[type=tel],select{width:100%;padding:12px;font-size:16px;font-family:inherit;border:1px solid #BDB6A6;background:#fff;color:var(--tinte);border-radius:0}
input:focus,select:focus{outline:2px solid var(--tinte);outline-offset:-1px;border-color:var(--tinte)}
.zwei{display:grid;grid-template-columns:1fr 1fr;gap:15px}
@media(max-width:520px){.zwei{grid-template-columns:1fr}}
.einwilligung{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--tinte-weich);margin-bottom:15px;cursor:pointer}
.einwilligung input{appearance:none;-webkit-appearance:none;width:17px;height:17px;flex:0 0 17px;border:1.5px solid #A9B0AA;background:#fff;margin-top:3px;cursor:pointer}
.einwilligung input:checked{background:var(--akzent);border-color:var(--akzent)}

/* ---------- 8 · Angebotskasten ---------- */
.angebot{border:1px solid var(--tinte);padding:22px;margin:28px 0 22px;background:var(--blatt-tief)}
.angebot h3{font-size:18px;margin-bottom:8px}
.angebot ul{list-style:none;margin:13px 0 16px;padding-left:0}
.angebot li{font-size:14.5px;padding-left:20px;position:relative;margin-bottom:7px;color:var(--tinte-weich)}
.angebot li::before{content:"";position:absolute;left:0;top:11px;width:10px;height:1.5px;background:var(--akzent)}

/* ---------- 9 · Knoepfe ---------- */
button{font-family:inherit;cursor:pointer;border:none}
.knopf{display:inline-block;background:var(--tinte);color:var(--blatt);text-decoration:none;padding:15px 30px;font-size:16px;font-weight:700;transition:background .12s;border:none}
.knopf:hover{background:#0C1F1E}
.knopf.akzent{background:var(--akzent)}
.knopf.akzent:hover{background:var(--akzent-tief)}
.zurueck{background:none;color:var(--gedaempft);font-size:14px;padding:10px 2px;text-decoration:underline;text-underline-offset:3px}
.zurueck:hover{color:var(--tinte)}
.nav{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:32px;padding-top:22px;border-top:1px solid var(--linie)}
.nav-rechts{margin-left:auto}
.fehler{color:var(--stufe-4);font-size:13.5px;margin-top:15px;display:none;border-left:var(--kante) solid var(--stufe-4);padding-left:12px}
.fehler.an{display:block}

/* ---------- 10 · Zifferblatt ---------- */
.barometer{text-align:center;padding:6px 0 2px}
.zifferblatt{width:100%;max-width:360px;margin:0 auto;display:block}
.nadel{transform-origin:180px 180px;transition:transform 1.6s cubic-bezier(.3,1.15,.5,1)}
.ablesung{font-family:var(--schrift-anzeige);font-size:56px;line-height:1;margin-top:2px}
.ablesung-label{font-family:var(--schrift-daten);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--leise);margin-top:8px}
.einstufung{display:inline-block;margin-top:16px;padding:7px 16px;font-family:var(--schrift-daten);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;border:1px solid currentColor}

/* ---------- 11 · Vergleichszeilen ---------- */
.vergleich-zeile{border-top:1px solid var(--linie-fein);padding:15px 0;display:grid;grid-template-columns:1fr auto;gap:5px 18px;align-items:baseline}
.vergleich-zeile:last-child{border-bottom:1px solid var(--linie-fein)}
.vergleich-name{font-size:14.5px;font-weight:700}
.vergleich-ref{font-size:12.5px;color:var(--gedaempft);grid-column:1/-1}
.vergleich-wert{font-family:var(--schrift-daten);font-size:16px;white-space:nowrap}
.vergleich-wert.gut{color:var(--stufe-1)}
.vergleich-wert.mittel{color:var(--stufe-3)}
.vergleich-wert.hoch{color:var(--stufe-4)}

/* ---------- 12 · Tabellen ---------- */
table.raster{width:100%;border-collapse:collapse;margin:16px 0 20px;font-size:14px}
table.raster th{text-align:left;font-family:var(--schrift-daten);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--leise);font-weight:400;border-bottom:1px solid var(--linie);padding:0 14px 8px 0;vertical-align:bottom}
table.raster td{border-bottom:1px solid var(--linie-fein);padding:11px 14px 11px 0;vertical-align:top}
table.raster th:last-child,table.raster td:last-child{padding-right:0}
@media(max-width:640px){
  table.raster,table.raster tbody,table.raster tr,table.raster td{display:block;width:100%}
  table.raster thead{display:none}
  table.raster tr{border-bottom:1px solid var(--linie);padding:12px 0}
  table.raster td{border:none;padding:2px 0}
  table.raster td::before{content:attr(data-label);display:block;font-family:var(--schrift-daten);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--leise);margin-top:9px}
}

/* ---------- 13 · Aufklappbares ---------- */
details{border-bottom:1px solid var(--linie-fein)}
details:first-of-type{border-top:1px solid var(--linie-fein)}
summary{cursor:pointer;list-style:none;padding:18px 30px 18px 0;position:relative;font-weight:700;font-size:16px}
summary::-webkit-details-marker{display:none}
summary::after{content:"";position:absolute;right:6px;top:50%;width:10px;height:10px;border-right:1.5px solid var(--gedaempft);border-bottom:1.5px solid var(--gedaempft);transform:translateY(-70%) rotate(45deg);transition:transform .18s}
details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
details p{padding:0 0 20px;font-size:15px;color:var(--tinte-weich);max-width:62ch}

/* ---------- 14 · Herausgeberblock und Fuss ---------- */
.herausgeber-block{border-top:var(--kante) solid var(--tinte);padding-top:18px;margin-top:8px;display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}
.herausgeber-block .rubrik{font-family:var(--schrift-daten);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--leise);flex:0 0 100px;padding-top:3px}
.herausgeber-block .angabe{flex:1;min-width:240px;font-size:14px;color:var(--tinte-weich)}
.herausgeber-block .firma{font-weight:700;color:var(--tinte)}
.fuss{max-width:760px;margin:34px auto 0;padding:0 22px;font-size:12.5px;color:var(--gedaempft);line-height:1.65}
.fuss.breit{max-width:1080px}
.fuss a{color:var(--gedaempft)}
.fuss-trenn{border-top:1px solid var(--linie);padding-top:18px}

/* ---------- 15 · Ablauf ---------- */
.schritt{display:none}
.schritt.an{display:block;animation:einblenden .34s ease}
@keyframes einblenden{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.versteckt{display:none!important}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

