/*
Theme Name: sb-hotbytes
Theme URI: https://hotbytes.online
Author: hotbytes GmbH & Co. KG
Description: Klassisches Mini-Theme als Träger für CrocoBuilder. Enthält NUR Schicht 2 (Element-Defaults) und die @font-face-Deklarationen. Seiteninhalte kommen aus CrocoBuilder.
Version: 1.0.0
Requires PHP: 7.4
Text Domain: sb-hotbytes
*/

/* === WEBFONTS — self-hosted, Latin-Subset, kein Google-Request (DSGVO) ============ */
@font-face {
  font-family: 'Sansation';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/wp-content/uploads/fonts/sansation-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2192, U+2212;
}
@font-face {
  font-family: 'Sansation';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/wp-content/uploads/fonts/sansation-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2192, U+2212;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 200 900; /* Variable Font: eine Datei für alle Gewichte */
  font-display: swap;
  src: url('/wp-content/uploads/fonts/source-sans-3-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2192, U+2212;
}

/* === SCHICHT 2 — ELEMENT-DEFAULTS ==================================================
   Diese Werte gehören konzeptionell ins Design-System, CrocoBuilder hat dafür aber
   keine Ebene (Klassen greifen nur auf Elementen, die sie tragen). Wer Typo oder
   Grundfarben ändert, ändert sie HIER bzw. die Tokens im CrocoBuilder-Design-System —
   nie pro Node. Die var(--…)-Tokens kommen aus dem Design-System (styles-global-*.css,
   lädt VOR dieser Datei) und werden hier bewusst NICHT erneut definiert.

   Hinweis Farblogik der Site: der Text-Default ist WEISS, weil die tragenden Sektionen
   dunkle Panels sind. Helle Sektionen schalten über die Kontextklasse .on-light um
   (Definition im design-layer.css). Das ist 1:1 die Logik des abgenommenen Freeze. */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--lh-body);
  color: #fff;
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-head);
  font-weight: 700;
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  margin-block: 0; /* Abstände kommen aus Gaps, nie aus Heading-Margins */
  overflow-wrap: break-word;
  hyphens: auto;
}
h1 { font-size: var(--text-4xl); }
h2 { font-size: var(--text-2xl); }
h3 { font-size: var(--text-lg); }
h4 { font-size: var(--text-md); }
p {
  font-size: var(--text-base);
  line-height: var(--lh-body);
  margin-block: 0;
  color: #fff;
}
a { color: inherit; text-decoration: none; }
a:visited { color: inherit; }
ul, ol { margin-block: 0; padding-inline-start: 0; }
img { max-width: 100%; height: auto; display: block; }
button { font-family: inherit; }
::selection { background: var(--color-accent); color: var(--color-dark); }
