/*
Theme Name: BSO Theme
Theme URI: https://powershop.bike
Author: BSO
Description: Skelett-Theme fuer die BSO-Shops. Bringt bewusst KEINE Gestaltung mit — die liegt vollstaendig im Plugin spf-api-connector. Loest Bricks ab.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: bso-theme
*/

/* =============================================================================
   Warum dieses Theme leer ist

   Es liefert nur das Skelett: Kopfdaten, den Rahmen um den Inhalt, die beiden
   Hooks fuer Kopf und Fuss. Alles Sichtbare kommt aus `spf-api-connector`.

   Das ist Absicht. Bricks brachte ein vollstaendiges eigenes Design mit, gegen
   das sich unser CSS an ueber zweihundert Stellen mit `!important` durchsetzen
   musste. Ein Theme, das nichts gestaltet, hat diesen Streit nicht.

   Die wenigen Regeln hier ersetzen genau das, was Bricks' `content-default.css`
   beigesteuert hat und woran unser Layout haengt — nicht mehr.
   ============================================================================= */

/* Der Inhaltsrahmen. Breite und Zentrierung kamen bisher aus Bricks; die
   Startseiten-Baender rechnen mit `calc(-50vw + 50%)` dagegen, um ueber die
   volle Fensterbreite zu laufen. Aendert man diese Zahl, aendert man sie dort
   mit. Die ID heisst weiter `brx-content`: An ihr haengen Regeln im Plugin und
   in WPCode-Schnipseln. Umbenennen ist ein eigener, ruhiger Schritt — nicht
   einer, den man beim Theme-Wechsel nebenbei macht. */
#brx-content {
	width: var(--site-max, 1320px);
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
}

/* =============================================================================
   Grundtypografie — die Werte, die Bricks gesetzt hat

   Bricks brachte eine Basis-Typografie mit: Schrift, Groesse und Farbe fuer
   `body`, dazu Schrift, Gewicht, Farbe und Groessenstaffel fuer h1 bis h6. Kein
   Baustein setzt das, alle bauen darauf auf. Nach dem Theme-Wechsel stand die
   Seite auf der Browser-Grundschrift — Times, ueberall dort, wo eine Komponente
   nicht selbst etwas vorgibt (aufgefallen an der Trust-Leiste, Kili 11.08.2026).

   Die Werte hier sind woertlich die aus Bricks' Theme-Styles (Export vom
   11.08.2026): `typographyBody` und `typographyHeading*` des Stils „ktm". Die
   `clamp()`-Ausdruecke standen dort als Variablen `--text-*`; sie sind hier
   eingesetzt, weil die Variablen mit Bricks verschwunden sind.

   Die Schriftfamilien kommen aus der Markenpalette, nicht fest: Husky faehrt
   andere. Faellt das Plugin aus, greifen die Rueckfallwerte.
   ============================================================================= */

html { font-size: 100%; }

body {
	font-family: var(--spf-brand-sans, 'Roboto Condensed Regular', system-ui, sans-serif);
	/* 15 px ist das, was beide Shops unter Bricks TATSAECHLICH gerendert haben —
	   nachgemessen am 12.08.2026, bevor Husky umgestellt wurde. In Bricks'
	   Theme-Styles stand `--text-m` (clamp, rund 16,7 px); den Wert hatte ich
	   zuerst uebernommen, und Huskys Text waere damit ueberall groesser
	   geworden. Was in den Einstellungen steht und was ankommt, ist nicht
	   dasselbe. Ueber `--site-text` aenderbar. */
	font-size: var(--site-text, 15px);
	color: var(--color-text, #686868);
	line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--spf-brand-head, 'Blender Heavy', system-ui, sans-serif);
	font-weight: 700;
	color: var(--color-heading, #343434);
	line-height: 1.2;
}
h1 { font-size: clamp(2.7994rem, 2.3071rem + 2.4615vw, 5.2609rem); }
h2 { font-size: clamp(1.9199rem, 1.7368rem + 0.9155vw, 2.8352rem); }
h3 { font-size: clamp(1.5999rem, 1.4834rem + 0.5825vw, 2.1824rem); }
h4 { font-size: clamp(1.3333rem, 1.2618rem + 0.3574vw, 1.6807rem); }
h5 { font-size: clamp(1rem, 0.9875rem + 0.0625vw, 1.0625rem); }
h6 { font-size: clamp(0.8333rem, 0.8452rem + -0.0153vw, 0.8177rem); }

/* Zwei Bricks-Variablen, die unser Plugin-CSS namentlich benutzt. Ohne sie
   greifen dort die Rueckfallwerte — das faellt nicht auf, waere aber ein
   stiller Unterschied. `--primary` zeigt bewusst auf die Markenfarbe statt auf
   festes Orange: Husky ist nicht orange. */
:root {
	/* Seitenbreite und Grundschriftgroesse. Je eine Zahl, an einer Stelle. */
	--site-max: 1320px;
	--site-text: 15px;
	--color-heading: #343434;
	--color-text: #686868;
	--primary: var(--brand-accent, #ff6600);
}

/* Grundlagen, die jedes Theme mitbringen muss und die kein Plugin liefert. */
*,
*::before,
*::after { box-sizing: border-box; }

body {
	margin: 0;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

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

/* Sprungmarke fuer die Tastaturbedienung. Bricks brachte keine mit. */
.bso-skip {
	position: absolute; left: -9999px; top: 0; z-index: 100000;
	padding: 12px 18px; background: #fff; color: #16181c;
	font: 700 15px/1 system-ui, sans-serif; text-decoration: none;
}
.bso-skip:focus { left: 8px; top: 8px; }

/* Nur fuer Screenreader — WordPress-Standardklasse, die viele Kernausgaben
   voraussetzen (Suchformular, Kommentare, Paginierung). */
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	white-space: nowrap; word-wrap: normal;
}
.screen-reader-text:focus {
	position: static !important;
	width: auto; height: auto; clip: auto; clip-path: none;
}
