/*
Theme Name: Buslove
Theme URI: https://bulli.genloc.de
Description: Child-Theme fuer Blocksy. Traegt die lokalen Schriften Cabinet Grotesk und Switzer sowie die wenigen Regeln, die sich weder ueber den Customizer noch ueber Elementor setzen lassen.
Author: Buslove
Template: blocksy
Version: 1.0.0
Text Domain: buslove-blocksy
*/

/* ---------------------------------------------------------------
   Schriften, lokal. Es geht kein Request an einen fremden Server.
   Cabinet Grotesk und Switzer von Fontshare.
   --------------------------------------------------------------- */

@font-face {
	font-family: 'Cabinet Grotesk';
	src: url('fonts/cabinet-grotesk-bold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Cabinet Grotesk';
	src: url('fonts/cabinet-grotesk-display.woff2') format('woff2');
	font-weight: 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Switzer';
	src: url('fonts/switzer-regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Switzer';
	src: url('fonts/switzer-medium.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

/* ---------------------------------------------------------------
   Bruecke zwischen Blocksy und Elementor.

   Blocksy legt seine Typografie als Variablen direkt auf h1 bis h6
   ab. Elementor setzt in seinen Ueberschriften-Widgets eine Regel
   mit hoeherer Spezifitaet und kippt die Skala damit auf
   Fliesstextgroesse. Die folgenden Regeln geben den Ueberschriften
   im Builder die Werte des Themes zurueck. Wer die Skala aendern
   will, macht das weiterhin im Customizer.
   --------------------------------------------------------------- */

.elementor-widget-heading h1.elementor-heading-title,
.elementor-widget-heading h2.elementor-heading-title,
.elementor-widget-heading h3.elementor-heading-title,
.elementor-widget-heading h4.elementor-heading-title,
.elementor-widget-heading h5.elementor-heading-title,
.elementor-widget-heading h6.elementor-heading-title {
	font-family: var(--theme-font-family);
	font-size: var(--theme-font-size);
	font-weight: var(--theme-font-weight);
	line-height: var(--theme-line-height);
	letter-spacing: var(--theme-letter-spacing);
}

/* Widgets, in denen im Builder bewusst eine eigene Groesse gesetzt
   wurde, behalten sie. Elementor schreibt diese Werte inline in
   sein eigenes Stylesheet, das nach diesem geladen wird. */

/* ---------------------------------------------------------------
   Blocksy klemmt waagerechten Ueberlauf mit overflow-x: hidden am
   body ab. Damit wird der body zum Scroll-Container, und eine
   scrollgetriebene Animation findet keine gueltige Zeitachse mehr,
   weil sie sich auf diesen Container bezieht statt auf das Fenster.

   clip klemmt genauso, macht aber keinen Scroll-Container auf.
   Ohne diese Zeile laeuft die Streckenbahn nicht.
   --------------------------------------------------------------- */

body {
	overflow-x: clip;
	overflow-y: visible;
}

/* ---------------------------------------------------------------
   Bildradius. Die Direktion kennt genau zwei Radien: Bedienelemente
   sind Pillen, Flaechen und Bilder haben 3 Pixel. Blocksys eigene
   Radius-Optionen greifen an diesen beiden Stellen nicht durch,
   deshalb steht die Regel hier, an einer Stelle fuer beide.
   --------------------------------------------------------------- */

:root {
	--theme-image-border-radius: 3px;
}

.ct-featured-image .ct-media-container {
	border-radius: 3px;
	overflow: hidden;
}

/* ---------------------------------------------------------------
   Sprungmarken. Die Kopfzeile steht fest, ohne Versatz landet ein
   Ankerziel sonst darunter.
   --------------------------------------------------------------- */

[id="ueber-uns"],
[id="reisen"],
[id="der-bus"],
[id="journal"],
[id="newsletter"] {
	scroll-margin-top: 100px;
}

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}
