/* Gemini Media Consulting
   Schriften lokal (SIL OFL 1.1, siehe fonts/LICENSE-OFL.txt), keine externen Quellen. */

@font-face{font-family:"Archivo";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/archivo-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Archivo";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/archivo-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/hanken-grotesk-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/hanken-grotesk-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/hanken-grotesk-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2")}

:root{
  /* Hintergrund = Hintergrundfarbe des Logos, Akzent = Hellblau aus dem Logo */
  color-scheme:dark;
  --bg:#232429;
  --surface:#2b2d33;
  --fg:#e8ecf1;
  --muted:#a3abb6;
  --line:#383b44;
  --accent:#46b9e0;
  --font-display:"Archivo","Segoe UI",system-ui,sans-serif;
  --font-body:"Hanken Grotesk","Segoe UI",system-ui,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%}
.wrap{
  max-width:900px;
  margin:0 auto;
  padding-inline:24px;
}
a{color:inherit}
a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---- Kopf ---- */
header.site{border-bottom:1px solid var(--line)}
.mast{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  padding-block:22px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  font-family:var(--font-mono);
  font-weight:500;
  letter-spacing:.02em;
  font-size:.92rem;
  text-decoration:none;
}
.logo{width:44px;height:44px;flex:none;display:block}
.mast .loc{
  font-family:var(--font-mono);
  font-size:.74rem;
  letter-spacing:.04em;
  color:var(--muted);
  text-transform:uppercase;
}

/* ---- Einstieg ---- */
.hero{padding-block:60px 46px}
.eyebrow{
  font-family:var(--font-mono);
  font-size:.74rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
  margin:0 0 20px;
}
h1{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1.9rem,5.2vw,3rem);
  line-height:1.08;
  letter-spacing:-.015em;
  text-wrap:balance;
  margin:0 0 22px;
  max-width:18ch;
}
.lede{
  font-size:clamp(1.02rem,1.6vw,1.18rem);
  max-width:60ch;
  margin:0 0 14px;
}
.lede.sub{color:var(--muted);font-size:1rem;max-width:62ch;margin-bottom:0}

/* ---- Abschnitte ---- */
section{padding-block:40px;border-top:1px solid var(--line)}
section.hero{border-top:0}
.sec-head{display:flex;align-items:baseline;gap:12px;margin:0 0 26px}
.sec-head .no{font-family:var(--font-mono);font-size:.74rem;color:var(--accent);letter-spacing:.08em}
.sec-head h2{font-family:var(--font-display);font-weight:600;font-size:1.18rem;letter-spacing:.01em;margin:0}

/* ---- Leistungen ---- */
.svc .row{
  display:grid;
  grid-template-columns:minmax(0,15rem) minmax(0,1fr);
  gap:10px 40px;
  padding-block:20px;
  border-top:1px solid var(--line);
}
.svc .row:first-child{border-top:0;padding-top:0}
.svc h3{font-weight:600;font-size:1.02rem;margin:0;min-width:0}
.svc p{margin:0;color:var(--muted);min-width:0}

/* ---- Technologien ---- */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.01em;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:6px;
  padding:6px 10px;
}
.note{color:var(--muted);font-size:.92rem;margin:16px 0 0}

/* ---- Methodik ---- */
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.pillar{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:18px 18px 20px}
.pillar .k{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 8px}
.pillar h3{font-weight:600;font-size:1rem;margin:0 0 6px}
.pillar p{margin:0;color:var(--muted);font-size:.92rem}

/* ---- Qualifikationen ---- */
.creds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}
.cred{display:flex;align-items:center;gap:12px;padding-block:14px}
.cred .tick{
  font-family:var(--font-mono);font-size:.7rem;color:var(--accent);
  border:1px solid var(--accent);border-radius:5px;
  padding:3px 6px;flex:none;letter-spacing:.04em;
}
.cred .cred-body{min-width:0}
.cred strong{font-weight:600;font-size:.98rem;display:block}
.cred span{color:var(--muted);font-size:.85rem}

/* ---- Branchen ---- */
.sectors{display:flex;flex-direction:column}
.sectors .s{display:flex;gap:16px;align-items:baseline;padding-block:12px;border-top:1px solid var(--line)}
.sectors .s:first-child{border-top:0}
.sectors .s .m{font-family:var(--font-mono);color:var(--accent);font-size:.78rem;flex:none;width:2.2rem}
.sectors .s p{margin:0}

/* ---- Kontakt ---- */
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.field{
  border:1px solid var(--line);border-radius:10px;background:var(--surface);
  padding:16px 16px 14px;display:flex;flex-direction:column;gap:10px;
}
.field .lab{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.field .val{font-family:var(--font-mono);font-size:.95rem;word-break:break-all;text-decoration:none}
.field .val:hover{text-decoration:underline}
.copy{
  align-self:flex-start;
  font-family:var(--font-mono);font-size:.76rem;
  color:var(--accent);background:transparent;
  border:1px solid var(--line);border-radius:6px;
  padding:6px 10px;cursor:pointer;
  transition:border-color .15s ease,color .15s ease;
}
.copy:hover{border-color:var(--accent)}
.copy:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.copy.done{color:var(--fg)}

/* ---- Rechtliches ---- */
.legal{padding-block:48px 24px}
.legal h1{font-size:clamp(1.6rem,4vw,2.2rem);margin-bottom:28px}
.legal h2{font-family:var(--font-display);font-weight:600;font-size:1.05rem;margin:32px 0 8px}
.legal p{margin:0 0 12px;max-width:62ch}
.legal .back{font-family:var(--font-mono);font-size:.82rem;color:var(--accent)}

/* ---- Fuß ---- */
footer.site{border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}
.foot{
  display:flex;justify-content:space-between;align-items:center;
  gap:12px 24px;flex-wrap:wrap;
  padding-block:26px 40px;
}
.foot .addr{font-family:var(--font-mono);letter-spacing:.01em}
.foot nav{display:flex;gap:18px;flex-wrap:wrap}
.foot nav a{text-decoration:none}
.foot nav a:hover{color:var(--fg);text-decoration:underline}

@media(max-width:620px){
  .svc .row{grid-template-columns:1fr;gap:6px}
  .pillars{grid-template-columns:1fr}
}
@media(max-width:560px){
  .wrap{padding-inline:16px}
  .creds{grid-template-columns:1fr}
  .cred{border-top:1px solid var(--line)}
  .cred:first-child{border-top:0}
  .contact-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
