:root{
  --haipc-bg:#ffffff;
  /* dunkelstes "Schwarz" max. ~95% schwarz */
  --haipc-ink:#0D0D0D;
  --haipc-ink-2:#303037;
  --haipc-ink-3:#444444;
  --haipc-border:rgba(13,13,13,.10);
  --haipc-shadow:0 10px 24px rgba(13,13,13,.08), 0 2px 8px rgba(13,13,13,.06);
  --haipc-radius:16px;
}

html,body{height:100%;}
body.haipc-body{
  background:var(--haipc-bg);
  color:var(--haipc-ink);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

.haipc-skip-link{
  position:absolute;
  left:-9999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}
.haipc-skip-link:focus{
  left:1rem;
  top:1rem;
  width:auto;
  height:auto;
  padding:.5rem .75rem;
  border-radius:.5rem;
  background:#fff;
  color:var(--haipc-ink);
  outline:3px solid rgba(66,66,183,.35);
  box-shadow:var(--haipc-shadow);
  z-index:1000;
}

.haipc-mark{
  display:inline-flex;
  width:28px;
  height:28px;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  border:1px solid var(--haipc-border);
  color:var(--haipc-ink);
  font-weight:700;
  font-size:14px;
  background:#fff;
}
.haipc-brand-text{
  letter-spacing:.04em;
  font-weight:700;
}

.haipc-hero{
  background:linear-gradient(180deg, rgba(13,13,13,.02), rgba(13,13,13,0));
}
.haipc-eyebrow{
  font-size:.85rem;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:var(--haipc-ink-2);
}

.haipc-card{
  border:1px solid var(--haipc-border);
  border-radius:var(--haipc-radius);
  background:#fff;
  box-shadow:var(--haipc-shadow);
}
.haipc-callout{
  border-radius:14px;
  border:1px solid var(--haipc-border);
  background:rgba(13,13,13,.02);
  padding:1rem;
}

.haipc-list{
  padding-left:1.25rem;
}
.haipc-list li{margin:.25rem 0;}

.haipc-codeblock{
  border-radius:12px;
  border:1px solid var(--haipc-border);
  background:rgba(13,13,13,.03);
  padding:.85rem 1rem;
  overflow:auto;
}
.haipc-codeblock code{
  color:var(--haipc-ink);
  white-space:nowrap;
}

.letter-spacing{letter-spacing:.12em;}

/* Buttons: Bootstrap dark etwas "materialiger" */
.btn{
  border-radius:14px;
}
.btn-dark{
  background:var(--haipc-ink);
  border-color:var(--haipc-ink);
}
.btn-dark:hover,
.btn-dark:focus{
  background:#1a1a1a;
  border-color:#1a1a1a;
}
.btn-outline-dark{
  color:var(--haipc-ink);
  border-color:rgba(13,13,13,.28);
}
.btn-outline-dark:hover,
.btn-outline-dark:focus{
  background:rgba(13,13,13,.06);
  border-color:rgba(13,13,13,.28);
  color:var(--haipc-ink);
}

/* Fokus sichtbar (a11y) */
a:focus-visible,
button:focus-visible,
input:focus-visible{
  outline:3px solid rgba(66,66,183,.35);
  outline-offset:2px;
}

/* Kleine Typo-Optimierungen */
.text-secondary{
  color:rgba(13,13,13,.70)!important;
}
.link-secondary{
  color:rgba(13,13,13,.70);
  text-decoration-color:rgba(13,13,13,.30);
}
.link-secondary:hover{
  color:rgba(13,13,13,.90);
  text-decoration-color:rgba(13,13,13,.45);
}


