/* techQ — eigene Schriften statt Google Fonts.
 *
 * Vorher lud jede Seite Instrument Sans und JetBrains Mono von
 * fonts.googleapis.com/fonts.gstatic.com. Das schickt die IP jedes Besuchers
 * an Google, bevor er irgendetwas angeklickt hat — bei einem Schweizer Hoster,
 * der mit Schweizer Datenhaltung wirbt, das Gegenteil dessen, was wir
 * versprechen. Beide Schriften stehen unter der SIL Open Font License 1.1.
 *
 * Nur latin und latin-ext; die Zeichensaetze, die wir nicht brauchen, sind
 * weggelassen. `font-display: swap` bleibt, damit Text sofort sichtbar ist.
 */
/* ──────────────────────────────────────────────────────────────────────────
   Die Schrifttokens — ein Satz fuer den ganzen Auftritt
   ──────────────────────────────────────────────────────────────────────────
   Seit 2026-08-30 laeuft techq.ch auf der Systemschrift: auf Mac, iPhone und
   iPad ist `-apple-system` genau SF Pro. Wir laden dafuer nichts herunter und
   lizenzieren nichts — die Schrift liegt auf dem Geraet. Deshalb steht sie
   auch nicht als Datei in `fonts/`; wer sie dort sucht, sucht falsch.

   Auf Windows, Android und Linux gibt es SF Pro nicht. Dort greift der
   Rueckfall: dieselben selbst gehosteten Schriften wie bisher, damit die
   Mehrheit der Besucher keinen Bruch sieht.

   DREI TOKENS, damit der Rueckfall zur Stelle passt:
     --tq-sans   Fliesstext                    Rueckfall Instrument Sans
     --tq-ui     Ueberschriften, Bedienung     Rueckfall Inter
     --tq-mono   Maschinentext, Kleinlabels    Rueckfall JetBrains Mono

   WARUM BEI DEN UEBERSCHRIFTEN INTER STEHT UND NICHT MEHR NUNITO SANS:
   mit der Umstellung sind alle Gewichte ab 500 um 100 heruntergerueckt
   (600 -> 500), weil SF Pro sonst zu fett auftraegt. Nunito Sans laeuft
   ohnehin sehr leicht — bei 600 deckt sie so wenig wie SF Pro bei 400 — und
   waere bei 500 auf Windows ausgewaschen. Inter deckt bei gleicher Zahl fast
   genau gleich viel wie SF Pro (bei 500: 4509 zu 4492, gemessen am
   2026-08-30) und traegt die neuen Gewichte unveraendert. Die
   Nunito-Sans-Dateien bleiben liegen, werden aber von keiner Regel mehr
   angefordert und darum auch nicht mehr geladen.

   Der Satz steht genau HIER — in der einen Datei, die JEDE Seite laedt. Das
   ist wichtig: die eingespritzten Stile aus `nav-auth.js`, `pakete.js`,
   `cart-toast.js` und `warenkorb-domain.js` laufen auch auf `index.html`, und
   `index.html` laedt `site.css` nicht. Stuenden die Tokens dort, faende der
   Warenkorb-Zaehler auf der Startseite keinen Wert.

   FUSSZEILE: `.tqf-h` stand bis 2026-08-30 bewusst auf JetBrains Mono, damit
   die Spaltentitel gegenueber den Links den Satz wechseln. Mit der Umstellung
   auf eine Schrift faellt dieser Wechsel weg; die .13em Laufweite und die
   Grossbuchstaben tragen ihn jetzt allein. Bewusst so — der frueher hier
   stehende Vermerk «nicht angleichen» gilt nicht mehr.
   ────────────────────────────────────────────────────────────────────────── */
:root {
  --tq-sans: -apple-system, BlinkMacSystemFont, 'Instrument Sans',
             system-ui, 'Segoe UI', Roboto, sans-serif;
  --tq-ui:   -apple-system, BlinkMacSystemFont, 'Inter',
             system-ui, 'Segoe UI', Roboto, sans-serif;
  --tq-mono: -apple-system, BlinkMacSystemFont, 'JetBrains Mono',
             ui-monospace, "SFMono-Regular", Menlo, monospace;

  /* Kleinlabels in Grossbuchstaben (Vorspann, Wartungsbalken). Mit der
     Systemschrift eine Stufe leichter — dieselbe Rechnung wie ueberall sonst.
     Die beiden Dateien sind auf ALLEN DREI Auftritten byte-gleich und lesen
     deshalb `var(--tq-gewicht-kleinlabel, 600)`. Seit dem 31.08.2026 setzen
     alle drei Auftritte das Token auf 500; der Rueckfall 600 in den beiden
     Dateien greift nur noch, wenn `fonts.css` gar nicht geladen ist. */
  --tq-gewicht-kleinlabel: 500;
}

/* Was ohne eigene Angabe fett kaeme, kommt eine Stufe leichter — dieselbe
   Rechnung wie ueberall sonst: 700 (Browservorgabe) -> 600. Niedrigste
   Spezifitaet, jede spaetere Regel sticht sie. */
h1, h2, h3, h4, h5, h6, b, strong, th { font-weight: 600; }

/* Bedienelemente erben die Seitenschrift. Ohne diese Zeile nimmt der Browser
   seine eigene — Arial —, und ein Knopf oder ein Eingabefeld steht dann in
   einer anderen Schrift als der Text daneben. Gemessen am 2026-08-31 traf das
   im Kundencenter 88 Knoepfe und 52 Felder, im Partnerportal 49 Knoepfe und
   15 Felder. Niedrigste Spezifitaet und ganz vorn in der Ladereihenfolge —
   jede spaetere Regel sticht sie. */
button, input, select, textarea, optgroup { font-family: inherit; }

/* Maschinensatz im Fliesstext. Ohne diese Zeile stehen <code>, <pre>, <kbd>
   und <samp> auf der Browser-Monospace (Courier), nicht auf unserem Token. */
code, kbd, samp, pre { font-family: var(--tq-mono); }

/* Ziffern in Tabellen und Summen bleiben gleich breit. SF Pro setzt sie sonst
   proportional, und Betraege untereinander wandern — JetBrains Mono hatte das
   von Haus aus. `font-variant-numeric` vererbt, die Zellen erben es mit. */
table, .sum-row, .sum-total, .pay-bar-sum, .ck-price, .ck-price-sub {
  font-variant-numeric: tabular-nums;
}

/* latin-ext */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/InstrumentSans-400-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;
}
/* latin */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/InstrumentSans-400-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;
}
/* latin-ext */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/InstrumentSans-500-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;
}
/* latin */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/InstrumentSans-500-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;
}
/* latin-ext */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/InstrumentSans-600-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;
}
/* latin */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/InstrumentSans-600-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;
}
/* latin-ext */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/InstrumentSans-700-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;
}
/* latin */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/InstrumentSans-700-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;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/JetBrainsMono-400-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;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/JetBrainsMono-400-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;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/JetBrainsMono-500-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;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/JetBrainsMono-500-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;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/JetBrainsMono-600-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;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/JetBrainsMono-600-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;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/JetBrainsMono-700-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;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/JetBrainsMono-700-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;
}


/* ──────────────────────────────────────────────────────────────────────────
   Inter + Nunito Sans — seit 2026-08-30 fuer die Startseite
   ──────────────────────────────────────────────────────────────────────────
   Die Startseite steht seit dem Umbau auf zwei Familien: Nunito Sans 600 ueber
   den Ueberschriften, Inter im Fliesstext und in der Oberflaeche. Beide sind
   VARIABLE Schnitte — eine Datei deckt den ganzen Gewichtsbereich ab, daher
   `-var-` im Dateinamen statt einer Zahl wie bei Instrument Sans.

   Sie stehen hier und nicht in einer eigenen Datei, damit es weiter genau EINE
   Stelle mit @font-face-Regeln gibt. Die uebrigen 27 Seiten laden fonts.css
   ebenfalls, laden die Dateien aber NICHT herunter: eine @font-face-Regel holt
   ihre Datei erst, wenn die Familie auch benutzt wird. Nur `index.html` nennt
   Inter und Nunito Sans, also holt nur sie die vier woff2.

   Beide unter SIL Open Font License 1.1. Nur latin und latin-ext.
   ────────────────────────────────────────────────────────────────────────── */
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(fonts/Inter-var-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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(fonts/Inter-var-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;
}
/* latin-ext */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(fonts/NunitoSans-var-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;
}
/* latin */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(fonts/NunitoSans-var-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;
}
