/* ==========================================================================
   THEME - zentrale Stelle fuer Schriften, Farben und Schriftgroessen.
   Aenderungen an Fonts/Farben nur hier vornehmen.
   ========================================================================== */

/* Libre Franklin, lokal gehostet */
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 200; font-display: swap; src: url("/fonts/libre-franklin-v18-latin-200.woff2") format("woff2"); }
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 300; font-display: swap; src: url("/fonts/libre-franklin-v18-latin-300.woff2") format("woff2"); }
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 400; font-display: swap; src: url("/fonts/libre-franklin-v18-latin-regular.woff2") format("woff2"); }
@font-face { font-family: "Libre Franklin"; font-style: italic; font-weight: 400; font-display: swap; src: url("/fonts/libre-franklin-v18-latin-italic.woff2") format("woff2"); }
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 500; font-display: swap; src: url("/fonts/libre-franklin-v18-latin-500.woff2") format("woff2"); }
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 600; font-display: swap; src: url("/fonts/libre-franklin-v18-latin-600.woff2") format("woff2"); }

:root {
	/* Schriften */
	--font-hero: "Libre Franklin", Helvetica, Arial, sans-serif;
	--font-heading: "Libre Franklin", Helvetica, Arial, sans-serif;
	--font-body: "Libre Franklin", Helvetica, Arial, sans-serif;

	/* Farben */
	--c-blue: #649ed5;
	--c-blue-deep: #276aaf;
	--c-blue-dark: #154879;
	--c-navy: #100d36;
	--c-orange: #ee7402;
	--c-text: #444;
	--c-gray-light: #f8f8f8;
	--c-gray-dark: #333;
	--c-blue-tint: rgba(100, 158, 213, 0.1);

	/* Bootstrap auf die Markenwerte abbilden */
	--bs-body-font-family: var(--font-body);
	--bs-body-font-weight: 300;
	--bs-body-font-size: clamp(0.875rem, 0.76rem + 0.485vw, 1.125rem);
	--bs-body-line-height: 1.5;
	--bs-body-color: var(--c-text);
	--bs-body-color-rgb: 68, 68, 68;
	--bs-body-bg: #fff;
	--bs-primary: var(--c-blue);
	--bs-primary-rgb: 100, 158, 213;
	--bs-link-color: var(--c-blue);
	--bs-link-color-rgb: 100, 158, 213;
	--bs-link-hover-color: var(--c-orange);
	--bs-link-hover-color-rgb: 238, 116, 2;
	--bs-link-decoration: none;
	--bs-border-radius: 3px;
	--bs-emphasis-color: var(--c-text);
	--bs-secondary-bg: var(--c-gray-light);
	--bs-tertiary-bg: var(--c-gray-light);
}

[data-bs-theme="dark"] {
	color: var(--bs-body-color);
	--bs-body-color: #fff;
	--bs-body-color-rgb: 255, 255, 255;
	--bs-emphasis-color: #fff;
	--bs-link-color: #fff;
	--bs-link-color-rgb: 255, 255, 255;
	--bs-link-hover-color: var(--c-orange);
	--bs-link-hover-color-rgb: 238, 116, 2;
}

/* Fluide Typografie: Element-Selektoren und gleichwertige Utility-Klassen */
h1, .h1-heading { font-family: var(--font-heading); font-size: clamp(1.625rem, 0.7rem + 4.2vw, 3.75rem); font-weight: 200; line-height: 1.3; }
@media (min-width: 768px) { h1, .h1-heading { line-height: 1.3333; } }
h2, .h2-heading { font-family: var(--font-heading); font-size: clamp(1.125rem, 0.955rem + 0.727vw, 1.5rem); font-weight: 300; line-height: 1.45; }
h3, .h3-heading { font-family: var(--font-heading); font-size: clamp(1.375rem, 0.86rem + 2.18vw, 2.5rem); font-weight: 200; line-height: 1.45; }
h4, .h4-heading { font-family: var(--font-heading); font-size: clamp(1.25rem, 1.1rem + 0.7vw, 1.75rem); font-weight: 300; line-height: 1.45; }
h5, .h5-heading { font-family: var(--font-heading); font-size: clamp(1.125rem, 0.955rem + 0.727vw, 1.5rem); font-weight: 300; line-height: 1.45; }
h6 { font-family: var(--font-heading); font-size: 1rem; font-weight: 500; }
.hero-heading { font-family: var(--font-hero); font-size: clamp(1.75rem, 1.1rem + 2.8vw, 4.25rem); font-weight: 200; line-height: 1.2; }

h1, h2, h3, h4, h5, h6,
.h1-heading, .h2-heading, .h3-heading, .h4-heading, .h5-heading,
.hero-heading {
	text-wrap: balance;
}

/* Fliesstext: keine einzelnen Woerter in der letzten Zeile */
p, li, blockquote, figcaption {
	text-wrap: pretty;
}

b, strong, .fw-semibold { font-weight: 600 !important; }

/* Raster wie im Original: 30px Gutter, Container 1200px (ab 1600px: 1400px) */
.container, .container-fluid, .row { --bs-gutter-x: 1.875rem; }
@media (max-width: 767.98px) { .container, .container-fluid { --bs-gutter-x: 3rem; } }
@media (min-width: 1200px) { .container { max-width: 1200px; } }
@media (min-width: 1600px) { .container { max-width: 1400px; } }

/* Absatz- und Ueberschriftenabstaende (aus dem Original) */
h1, h2, h3, h4, h5, h6, p { margin: 0; }
* + p { margin-top: 1rem; }
p + * { margin-top: 1.375rem; }
p + p { margin-top: 1rem; }
:is(h4, h5, .h4-heading, .h5-heading) + p { margin-top: 1.125rem; }
@media (min-width: 992px) { * + p { margin-top: 1.75rem; } }
@media (min-width: 1200px) {
	h3, .h3-heading { line-height: 1.35; }
	h2, h4, h5, .h2-heading, .h4-heading, .h5-heading { line-height: 1.54167; }
}
