/* Self-hosted fonts (DSGVO: keine externe Google-Schrift) — Open Sans + JetBrains Mono, WOFF2, OFL */
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-400.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-ext-400.woff2') format('woff2');
  unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Open Sans';font-style:italic;font-weight:400;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-400i.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans';font-style:italic;font-weight:400;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-ext-400i.woff2') format('woff2');
  unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:500;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-500.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:500;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-ext-500.woff2') format('woff2');
  unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-600.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-ext-600.woff2') format('woff2');
  unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Open Sans';font-style:italic;font-weight:600;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-600i.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans';font-style:italic;font-weight:600;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-ext-600i.woff2') format('woff2');
  unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-700.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-ext-700.woff2') format('woff2');
  unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:800;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-800.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:800;font-display:swap;
  src:url('/assets/netsource_website/fonts/open-sans-latin-ext-800.woff2') format('woff2');
  unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('/assets/netsource_website/fonts/jetbrains-mono-latin-500.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('/assets/netsource_website/fonts/jetbrains-mono-latin-ext-500.woff2') format('woff2');
  unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}

/* Reset */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--ns-font);
  font-size: var(--ns-body);
  color: var(--ns-dark-gray);
  line-height: 1.6;
  background-color: var(--ns-white);
}

h1, h2, h3 {
  color: var(--ns-ink);
  font-feature-settings: "ss01", "ss02";
}

h1 {
  font-size: var(--ns-h1);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

h2 {
  font-size: var(--ns-h2);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.015em;
}

h3 {
  font-size: var(--ns-h3);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

/* B1: Links in Orange-Braun (4,7:1 auf Papier), auf dunklem Grund siehe pages.css */
a {
  color: var(--ns-orange-text);
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover {
  color: var(--ns-ink);
}

/* B6: sichtbarer Tastaturfokus, 3 px dunkel; auf dunklem Grund weiß (pages.css) */
:focus-visible {
  outline: 3px solid var(--ns-ink);
  outline-offset: 3px;
}

.ns-btn:focus-visible {
  outline-color: var(--ns-ink);
  box-shadow: 0 0 0 6px var(--ns-white);
}

/* B6: Sprunglink „Zum Inhalt springen“, sichtbar erst bei Tastaturfokus */
.ns-skip {
  position: absolute;
  left: 8px;
  top: -60px;
  z-index: 1000;
  padding: 10px 16px;
  background: var(--ns-ink);
  color: var(--ns-white);
  font-weight: 600;
  border-radius: var(--ns-radius-sm);
}

.ns-skip:focus {
  top: 8px;
  color: var(--ns-white);
}

img {
  max-width: 100%;
  height: auto;
}

.ns-container {
  max-width: var(--ns-max-width);
  margin: 0 auto;
  padding: 0 var(--ns-sp-3);
}

.ns-section {
  padding: var(--ns-sp-12) 0;
}

.ns-section--alt {
  background-color: var(--ns-bg-alt);
}

/* Responsive */
@media (max-width: 1199px) {
  h1 { font-size: 36px; }
  h2 { font-size: 28px; }
  .ns-section { padding: var(--ns-sp-8) 0; }
}

@media (max-width: 767px) {
  h1 { font-size: 28px; }
  h2 { font-size: 24px; }
  h3 { font-size: 20px; }
  .ns-section { padding: var(--ns-sp-6) 0; }
}
