/* frontlinks.de — Hausstil hell + navy. Fonts self-hosted (DSGVO). */

@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(/fonts/inter-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(/fonts/inter-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;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(/fonts/archivo-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(/fonts/archivo-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;}

:root{
  --navy:#0d2b57;
  --navy-tief:#081b39;
  --navy-hell:#1c4b96;
  --blau:#2563d9;
  --blau-zart:#e8f0fd;
  
  --akzent:#0aa3a3;
  --grund:#ffffff;
  --grund-zart:#f4f7fc;
  --grund-karte:#ffffff;
  --linie:#dbe4f2;
  --text:#15233c;
  --text-leise:#54658a;
  --radius:16px;
  --radius-klein:10px;
  --schatten:0 1px 2px rgba(13,43,87,.04),0 12px 32px rgba(13,43,87,.07);
  --schatten-hoch:0 2px 4px rgba(13,43,87,.05),0 24px 60px rgba(13,43,87,.12);
  --breite:1120px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--grund);color:var(--text);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  font-size:17px;line-height:1.7;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;height:auto;}
a{color:var(--blau);text-decoration:none;}
a:hover{text-decoration:underline;}
h1,h2,h3,h4{font-family:'Archivo','Inter',sans-serif;font-weight:700;color:var(--navy);line-height:1.15;letter-spacing:-.02em;margin:0 0 .5em;}
h1{font-size:clamp(2.1rem,5.2vw,3.5rem);letter-spacing:-.03em;}
h2{font-size:clamp(1.6rem,3.4vw,2.35rem);}
h3{font-size:1.22rem;letter-spacing:-.01em;}
p{margin:0 0 1.1em;}
ul,ol{margin:0 0 1.2em;padding-left:1.3em;}
li{margin-bottom:.5em;}
strong{font-weight:650;color:var(--navy);}
:focus-visible{outline:3px solid var(--blau);outline-offset:3px;border-radius:4px;}

.huelle{width:100%;max-width:var(--breite);margin:0 auto;padding:0 24px;}
.eng{max-width:760px;}

/* ---------- Kopf ---------- */
.kopf{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--linie);}
.kopf__zeile{display:flex;align-items:center;justify-content:space-between;gap:20px;height:72px;}
.marke{display:inline-flex;align-items:center;gap:10px;font-family:'Archivo',sans-serif;font-weight:700;font-size:1.16rem;color:var(--navy);letter-spacing:-.02em;text-decoration:none;}
.marke:hover{text-decoration:none;}
.marke__zeichen{width:30px;height:30px;flex:0 0 30px;}
.nav{display:flex;align-items:center;gap:28px;}
.nav a{color:var(--text-leise);font-size:.94rem;font-weight:500;}
.nav a:hover{color:var(--navy);text-decoration:none;}
.nav a[aria-current="page"]{color:var(--navy);font-weight:600;}
.nav__schalter{display:none;}
@media(max-width:860px){
  .nav{position:fixed;inset:72px 0 auto;flex-direction:column;align-items:flex-start;gap:0;background:#fff;border-bottom:1px solid var(--linie);padding:8px 24px 24px;transform:translateY(-140%);transition:transform .3s ease;box-shadow:var(--schatten);}
  .nav.offen{transform:translateY(0);}
  .nav a{padding:14px 0;width:100%;border-bottom:1px solid var(--linie);font-size:1rem;}
  .nav__schalter{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 10px;background:none;border:1px solid var(--linie);border-radius:10px;cursor:pointer;}
  .nav__schalter span{display:block;height:2px;background:var(--navy);border-radius:2px;transition:.25s;}
}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#f7faff 0%,#ffffff 72%);border-bottom:1px solid var(--linie);}
.hero::before{content:"";position:absolute;inset:0;
  background-image:linear-gradient(var(--linie) 1px,transparent 1px),linear-gradient(90deg,var(--linie) 1px,transparent 1px);
  background-size:64px 64px;opacity:.4;
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 0%,#000 20%,transparent 75%);
  mask-image:radial-gradient(ellipse 70% 60% at 50% 0%,#000 20%,transparent 75%);}
.hero__inhalt{position:relative;padding:88px 0 72px;}
.hero__raster{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
@media(max-width:940px){.hero__raster{grid-template-columns:1fr;gap:40px;}.hero__inhalt{padding:56px 0 48px;}}
.marker{display:inline-flex;align-items:center;gap:8px;background:var(--blau-zart);color:var(--navy-hell);font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:7px 14px;border-radius:100px;margin-bottom:22px;}
.marker__punkt{width:7px;height:7px;border-radius:50%;background:var(--akzent);}
.hero p.vorspann{font-size:1.16rem;color:var(--text-leise);max-width:44ch;}
.knopfreihe{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;}
.knopf{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:100px;font-weight:600;font-size:.97rem;transition:.2s;border:1px solid transparent;}
.knopf--voll{background:var(--navy);color:#fff;box-shadow:0 8px 20px rgba(13,43,87,.18);}
.knopf--voll:hover{background:var(--navy-hell);text-decoration:none;transform:translateY(-1px);}
.knopf--leer{background:#fff;color:var(--navy);border-color:var(--linie);}
.knopf--leer:hover{border-color:var(--blau);color:var(--blau);text-decoration:none;}

/* ---------- Kurzdefinition ---------- */
.definition{background:#fff;border:1px solid var(--linie);border-left:4px solid var(--akzent);border-radius:var(--radius);padding:26px 28px;box-shadow:var(--schatten);}
.definition__wort{font-family:'Archivo',sans-serif;font-weight:700;color:var(--navy);font-size:1.05rem;}
.definition__lautschrift{color:var(--text-leise);font-size:.92rem;font-weight:400;}
.definition p:last-child{margin-bottom:0;}

/* ---------- Abschnitte ---------- */
.abschnitt{padding:76px 0;}
.abschnitt--zart{background:var(--grund-zart);border-top:1px solid var(--linie);border-bottom:1px solid var(--linie);}
.abschnitt--navy{background:var(--navy-tief);color:#c9d8ef;border:0;}
.abschnitt--navy h2,.abschnitt--navy h3{color:#fff;}
.abschnitt--navy strong{color:#fff;}
.abschnitt__kopf{max-width:660px;margin-bottom:44px;}
.abschnitt__kopf p{color:var(--text-leise);font-size:1.06rem;margin-bottom:0;}
.abschnitt--navy .abschnitt__kopf p{color:#9fb5d6;}
.ueberschrift-klein{font-size:.82rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--blau);margin-bottom:12px;}
.abschnitt--navy .ueberschrift-klein{color:#61a6ff;}

/* ---------- Karten ---------- */
.karten{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:22px;}
.karte{background:var(--grund-karte);border:1px solid var(--linie);border-radius:var(--radius);padding:28px;box-shadow:var(--schatten);transition:.25s;}
.karte:hover{box-shadow:var(--schatten-hoch);transform:translateY(-3px);}
.karte p:last-child{margin-bottom:0;}
.karte__zahl{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:var(--blau-zart);color:var(--navy-hell);font-family:'Archivo',sans-serif;font-weight:700;font-size:1.02rem;margin-bottom:16px;}
.karte__zeichen{width:40px;height:40px;margin-bottom:16px;color:var(--blau);}
.abschnitt--navy .karte{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);box-shadow:none;color:#c9d8ef;}
.abschnitt--navy .karte:hover{background:rgba(255,255,255,.08);}
.abschnitt--navy .karte__zahl{background:rgba(97,166,255,.16);color:#8fc0ff;}

/* ---------- Tabelle ---------- */
.tabellenrahmen{overflow-x:auto;border:1px solid var(--linie);border-radius:var(--radius);background:#fff;box-shadow:var(--schatten);}
table{border-collapse:collapse;width:100%;min-width:620px;font-size:.98rem;}
th,td{text-align:left;padding:16px 20px;border-bottom:1px solid var(--linie);vertical-align:top;}
thead th{background:var(--grund-zart);font-family:'Archivo',sans-serif;color:var(--navy);font-size:.9rem;letter-spacing:.02em;white-space:nowrap;}
tbody tr:last-child td{border-bottom:0;}
td:first-child{font-weight:600;color:var(--navy);white-space:nowrap;}

/* ---------- Grafik ---------- */
.grafik{background:#fff;border:1px solid var(--linie);border-radius:var(--radius);padding:30px;box-shadow:var(--schatten);}
.grafik figcaption{margin-top:16px;font-size:.9rem;color:var(--text-leise);}

/* ---------- Liste mit Haken ---------- */
.hakenliste{list-style:none;padding:0;margin:0;display:grid;gap:14px;}
.hakenliste li{display:flex;gap:14px;align-items:flex-start;margin:0;}
.haken{flex:0 0 24px;width:24px;height:24px;margin-top:2px;border-radius:50%;background:var(--blau-zart);color:var(--navy-hell);display:inline-flex;align-items:center;justify-content:center;}
.haken svg{width:13px;height:13px;}
.kreuz{background:#fdeaea;color:#c4372f;}

/* ---------- FAQ ---------- */
.faq{border:1px solid var(--linie);border-radius:var(--radius);background:#fff;overflow:hidden;box-shadow:var(--schatten);}
.faq details{border-bottom:1px solid var(--linie);}
.faq details:last-child{border-bottom:0;}
.faq summary{cursor:pointer;padding:20px 56px 20px 24px;font-family:'Archivo',sans-serif;font-weight:600;color:var(--navy);font-size:1.03rem;position:relative;list-style:none;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"";position:absolute;right:24px;top:26px;width:9px;height:9px;border-right:2px solid var(--blau);border-bottom:2px solid var(--blau);transform:rotate(45deg);transition:transform .2s;}
.faq details[open] summary::after{transform:rotate(-135deg);}
.faq summary:hover{background:var(--grund-zart);}
.faq__text{padding:0 24px 22px;color:var(--text-leise);}
.faq__text p:last-child{margin-bottom:0;}

/* ---------- Hinweisbox ---------- */
.hinweis{background:var(--blau-zart);border-radius:var(--radius);padding:24px 28px;border:1px solid #cfe0fb;}
.hinweis p:last-child{margin-bottom:0;}
.hinweis__titel{font-family:'Archivo',sans-serif;font-weight:700;color:var(--navy);margin-bottom:8px;}

/* ---------- Abschluss ---------- */
.abschluss{text-align:center;max-width:640px;margin:0 auto;}
.abschluss .knopfreihe{justify-content:center;}
.abschnitt--navy .knopf--voll{background:#fff;color:var(--navy);}
.abschnitt--navy .knopf--voll:hover{background:var(--blau-zart);}
.abschnitt--navy .knopf--leer{background:transparent;color:#fff;border-color:rgba(255,255,255,.3);}
.abschnitt--navy .knopf--leer:hover{border-color:#fff;color:#fff;}

/* ---------- Fuss ---------- */
.fuss{background:var(--navy-tief);color:#8ea6c8;padding:56px 0 32px;font-size:.93rem;}
.fuss a{color:#c9d8ef;}
.fuss a:hover{color:#fff;}
.fuss__raster{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:40px;}
@media(max-width:760px){.fuss__raster{grid-template-columns:1fr;gap:28px;}}
.fuss__titel{font-family:'Archivo',sans-serif;font-weight:700;color:#fff;font-size:.88rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px;}
.fuss ul{list-style:none;padding:0;margin:0;}
.fuss li{margin-bottom:9px;}
.fuss__marke{display:inline-flex;align-items:center;gap:10px;font-family:'Archivo',sans-serif;font-weight:700;font-size:1.1rem;color:#fff;margin-bottom:14px;}
.fuss__marke svg{width:28px;height:28px;}
.fuss__schluss{border-top:1px solid rgba(255,255,255,.1);padding-top:24px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;font-size:.87rem;}

/* ---------- WhatsApp ---------- */
.wa{position:fixed;right:20px;bottom:20px;z-index:80;width:56px;height:56px;border-radius:50%;background:#25D366;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(37,211,102,.4);transition:.2s;}
.wa:hover{transform:scale(1.06);text-decoration:none;}
.wa svg{width:30px;height:30px;fill:#fff;}

/* ---------- Rechtstext ---------- */
.rechtstext{padding:64px 0 76px;}
.rechtstext h2{font-size:1.35rem;margin-top:2.2em;}
.rechtstext h2:first-of-type{margin-top:1.2em;}
.rechtstext dl{margin:0 0 1.4em;}
.rechtstext dt{font-weight:650;color:var(--navy);margin-top:.7em;}
.rechtstext dd{margin:0 0 .2em;}

/* ---------- 404 ---------- */
.fehler{text-align:center;padding:110px 0 96px;}
.fehler__zahl{font-family:'Archivo',sans-serif;font-size:clamp(4.5rem,16vw,9rem);font-weight:700;color:var(--blau-zart);line-height:1;letter-spacing:-.04em;}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}

/* ---------- Nachtrag: Feinschliff ---------- */
.hero h1{text-wrap:balance;}
@media(min-width:941px){.hero__raster{grid-template-columns:1.18fr .82fr;}.hero h1{font-size:clamp(2.1rem,3.35vw,3.05rem);}}

.karten--vier{grid-template-columns:repeat(4,1fr);}
@media(max-width:1000px){.karten--vier{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.karten--vier{grid-template-columns:1fr;}}

.zweispalt{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
@media(max-width:760px){.zweispalt{grid-template-columns:1fr;gap:32px;}}

.grafik{padding:30px 0;}
.grafik__rollen{overflow-x:auto;padding:0 30px;-webkit-overflow-scrolling:touch;}
.grafik__rollen svg{min-width:660px;}
.grafik figcaption{padding:0 30px;}
@media(max-width:720px){.grafik__rollen{padding:0 20px;}.grafik figcaption{padding:0 20px;}}
.grafik__rollen{position:relative;}
.wischhinweis{display:none;}
@media(max-width:820px){
  .wischhinweis{display:block;font-size:.84rem;color:var(--blau);font-weight:600;margin-bottom:10px;padding:0 20px;}
  .grafik{position:relative;}
  .grafik::after{content:"";position:absolute;right:0;top:0;bottom:56px;width:44px;pointer-events:none;
    background:linear-gradient(90deg,rgba(255,255,255,0),#fff 82%);border-radius:0 var(--radius) var(--radius) 0;}
}

/* ---------- Grafik auf dunklem Grund ---------- */
.grafik--navy{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);box-shadow:none;}
.grafik--navy figcaption{color:#9fb5d6;}
.grafik--navy .wischhinweis{color:#8fc0ff;}
@media(max-width:820px){.abschnitt--navy .grafik::after{background:linear-gradient(90deg,rgba(13,43,87,0),#0e2246 82%);}}

/* ---------- breite und schmale Grafikfassung ---------- */
.g-schmal{display:none;}
@media(max-width:820px){
  .g-breit{display:none;}
  .g-schmal{display:block;padding:0 10px;}
  .grafik:has(.g-schmal){padding:22px 0;}
  .g-schmal svg{width:100%;height:auto;}
  .grafik:has(.g-schmal) .wischhinweis{display:none;}
  .grafik:has(.g-schmal)::after{display:none;}
}

/* ---------- Inhaltsbild ---------- */
.bild{margin:0 auto;max-width:760px;}
.bild img{display:block;width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--linie);background:#fff;}
.bild figcaption{margin-top:14px;font-size:.9rem;color:var(--text-leise);text-align:center;}
.abschnitt--navy .bild img{border-color:rgba(255,255,255,.14);}
.abschnitt--navy .bild figcaption{color:#9fb5d6;}
.hero .bild{max-width:100%;margin-top:0;}
.hero .bild img{box-shadow:var(--schatten);}
