/* Kompass auf dich auf – gemeinsame Gestaltung für Startseite und Bereichsseiten
   Farben: Lila = Marke, Menü, Fachbereich · jeder Bereich hat eine eigene Farbe */
:root{
  --bg:#f2f4f6; --surface:#ffffff; --fg:#1c2330; --muted:#5a6575; --line:#dbe0e6;
  --accent:#5b3f8c; --accent-soft:#ece6f5; --teal:#2f5d62;
  /* Bereichsfarben (aus dem Farbring des Kompasses, für weiße Schrift abgedunkelt) */
  --hilfe:#a8650f; --findung:#2f7a57; --therapie:#3561a8; --fach:#5b3f8c;
  --display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --body:"Atkinson Hyperlegible",ui-sans-serif,system-ui,sans-serif;
  --c0:#c0574a;--c1:#c98a2e;--c2:#8a9a3a;--c3:#3f8f6b;--c4:#2f8a9c;--c5:#3d6db5;--c6:#6a55b0;--c7:#a14f97;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#14171d; --surface:#1c2028; --fg:#e6e9ee; --muted:#9aa4b2; --line:#2e3440;
  --accent:#c4adeb; --accent-soft:#2c2540; --teal:#8fcaca;
  --hilfe:#f0b35c; --findung:#6cc79a; --therapie:#8fb0ef; --fach:#c4adeb; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#14171d; --surface:#1c2028; --fg:#e6e9ee; --muted:#9aa4b2; --line:#2e3440;
  --accent:#c4adeb; --accent-soft:#2c2540; --teal:#8fcaca;
  --hilfe:#f0b35c; --findung:#6cc79a; --therapie:#8fb0ef; --fach:#c4adeb; color-scheme:dark}

*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;min-height:100%}
body{
  background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.5;
  min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;
}

/* Kopfleiste: Menü links, Fachbereich rechts */
.topbar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:max(14px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));
}

/* Buttons */
.btn{
  --c:var(--accent);
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--display);font-weight:700;font-size:16px;text-decoration:none;line-height:1.2;
  padding:10px 20px;border-radius:999px;cursor:pointer;
  background:var(--c);color:var(--surface);border:2px solid var(--c);
  box-shadow:0 6px 20px -8px color-mix(in srgb,var(--c) 70%,transparent);
  transition:transform .15s,box-shadow .15s;
}
.btn svg{width:18px;height:18px;flex:none}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px -8px color-mix(in srgb,var(--c) 80%,transparent)}
.btn:focus-visible{outline:3px solid var(--c);outline-offset:4px}
.btn.small{font-size:14px;padding:8px 16px}
.btn.big{font-size:19px;padding:15px 28px;min-width:210px}
.btn.big svg{width:21px;height:21px}
.btn.hilfe{--c:var(--hilfe)} .btn.findung{--c:var(--findung)} .btn.therapie{--c:var(--therapie)} .btn.fach{--c:var(--fach)}

/* Startseite */
main{
  display:grid;place-items:center;text-align:center;
  padding:24px max(16px,env(safe-area-inset-left,0px)) 32px max(16px,env(safe-area-inset-right,0px));
}
.hero{display:grid;justify-items:center;gap:22px;max-width:760px;width:100%}
.compass{width:clamp(150px,34vw,210px);height:auto;display:block}
.compass .ring path{stroke:var(--bg);stroke-width:2}
.compass .needle{transform-origin:100px 100px;animation:settle 2.4s cubic-bezier(.25,1.6,.4,1) both}
@keyframes settle{0%{transform:rotate(-70deg)}100%{transform:rotate(0)}}
h1{
  font-family:var(--display);font-weight:700;margin:0;line-height:1.05;
  font-size:clamp(36px,8vw,64px);letter-spacing:-.02em;text-wrap:balance;
}
h1 span{color:var(--accent)}
.tagline{margin:0;font-size:clamp(17px,2.4vw,20px);color:var(--muted);letter-spacing:.02em}
.areas{display:flex;flex-wrap:wrap;gap:16px 22px;justify-content:center;margin-top:18px}
@media (max-width:520px){.areas{flex-direction:column;align-items:stretch;width:100%;max-width:320px}}

/* Bereichsseiten: Kopf mit Farbe des Bereichs, darunter Kacheln */
body.hilfe{--area:var(--hilfe)} body.findung{--area:var(--findung)} body.therapie{--area:var(--therapie)} body.fach{--area:var(--fach)}
.back{font-size:15px;font-weight:700;color:var(--accent);text-decoration:none;padding:6px 8px;border-radius:8px}
.back:hover{background:var(--accent-soft)}
.page>.back{justify-self:start;margin:-14px 0 -14px -8px}
.back:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.topbar .left{display:flex;align-items:center;gap:4px;min-width:0}
.page{width:100%;max-width:1040px;margin:0 auto;display:grid;gap:30px;align-content:start;place-items:stretch;text-align:left;
  padding:20px max(16px,env(safe-area-inset-right,0px)) 48px max(16px,env(safe-area-inset-left,0px))}
.hubhead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 18px;align-items:center}
.hubhead .badge{width:64px;height:64px;border-radius:18px;background:var(--area);color:var(--surface);display:grid;place-items:center;grid-row:span 2}
.hubhead .badge svg{width:32px;height:32px}
.hubhead h1{font-size:clamp(32px,6vw,48px);text-align:left}
.hubhead p{margin:0;color:var(--muted);font-size:17px;max-width:62ch}
@media (max-width:520px){.hubhead{grid-template-columns:1fr}.hubhead .badge{grid-row:auto;width:52px;height:52px;border-radius:14px}}
.hint{margin:0;font-size:14px;color:var(--muted);max-width:76ch;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--area);border-radius:10px;padding:12px 14px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.tile{display:grid;gap:8px;align-content:start;text-decoration:none;color:var(--fg);background:var(--surface);
  border:1.5px solid var(--line);border-radius:16px;padding:20px;min-width:0;transition:border-color .15s,transform .15s}
.tile .ic{width:48px;height:48px;border-radius:13px;background:color-mix(in srgb,var(--area) 16%,var(--surface));color:var(--area);display:grid;place-items:center}
.tile .ic svg{width:25px;height:25px}
.tile h2{font-family:var(--display);font-size:20px;font-weight:700;margin:4px 0 0;line-height:1.2;hyphens:manual;overflow-wrap:anywhere;min-width:0}
.tile p{margin:0;color:var(--muted);font-size:15px}
.tile .go{color:var(--area);font-weight:700;font-size:14.5px;margin-top:2px}
a.tile:hover{border-color:var(--area);transform:translateY(-2px)}
a.tile:focus-visible{outline:3px solid var(--area);outline-offset:3px}
.tile.soon{opacity:.62}
@media (max-width:520px){
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .tile{gap:5px;padding:13px 12px;border-radius:14px}
  .tile .ic{width:38px;height:38px;border-radius:11px}
  .tile .ic svg{width:21px;height:21px}
  .tile h2{margin:3px 0 0;font-size:16px}
  .tile p{font-size:13px;line-height:1.35}
  .tile .go{font-size:13px}
}
.tile.soon .ic{background:var(--bg);color:var(--muted)}
.tile.soon .go{color:var(--muted);font-weight:400;font-size:12.5px;border:1px solid var(--line);border-radius:99px;padding:0 8px;justify-self:start}

footer{text-align:center;font-size:13px;color:var(--muted);padding:16px 16px max(20px,env(safe-area-inset-bottom,0px))}

.legal{display:inline-block;margin-top:6px}
footer a{color:inherit;text-underline-offset:2px}
footer a:hover{color:var(--accent)}
/* Rechtstexte */
.legaltext{max-width:72ch;display:grid;gap:14px}
.legaltext h1{font-size:clamp(30px,5vw,42px);text-align:left}
.legaltext h2{font-family:var(--display);font-size:20px;margin:14px 0 0}
.legaltext p,.legaltext ul{margin:0}
.legaltext ul{padding-left:20px;display:grid;gap:4px}
.legaltext a{color:var(--accent)}
.legaltext .box{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:10px;padding:12px 14px}
mark.todo{background:#ffe08a;color:#1c2330;border-radius:4px;padding:0 4px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
