/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Frank Noack
 Author URI:   https://nerdies24.de
 Template:     generatepress
 Version:      0.1.9
*/

:root {
	--gb-container-width: 1280px;
	--fs-h1: clamp(2.15rem, 1.625rem + 2.625vi, 3.6rem);
	--fs-h2: clamp(1.75rem, 1.4045rem + 1.7273vi, 2.7rem);
	--fs-h3: clamp(1.45rem, 1.1591rem + 1.4545vi, 2.25rem);
	--fs-h4: clamp(1.25rem, 1.05rem + 1vi, 1.8rem);
	--fs-h5: clamp(1.1rem, 0.9545rem + 0.7273vi, 1.5rem);
	--fs-h6: clamp(1rem, 0.8727rem + 0.6364vi, 1.35rem);
	--fs-p: clamp(0.95rem, 0.9318rem + 0.0909vi, 1rem);
}

body h1,
body .fs-h1,
body .gb-text:is(h1) {
	font-size: var(--fs-h1);
}

body h2,
body .fs-h2,
body .gb-text:is(h2) {
	font-size: var(--fs-h2);
}

body h3,
body .fs-h3,
body .gb-text:is(h3) {
	font-size: var(--fs-h3);
}

body h4,
body .fs-h4,
body .gb-text:is(h4) {
	font-size: var(--fs-h4);
}

body h5,
body .fs-h5,
body .gb-text:is(h5) {
	font-size: var(--fs-h5);
}

body h6,
body .fs-h6,
body .gb-text:is(h6) {
	font-size: var(--fs-h6);
}

body p,
body .fs-p,
body .gb-text:is(p),
body .gb-button {
	font-size: var(--fs-p);
}

/* Header Navigation */
.main-navigation .main-nav > ul > li > a {
	position: relative;
	color: var(--prim1);
	text-decoration: none;
	transition: color 0.2s ease;
}

.main-navigation .main-nav > ul > li > a::after {
	content: "";
	position: absolute;
	left: 20px;
	right: 20px;
	bottom: 14px;
	height: 2px;
	background-color: var(--prim3);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 0.2s ease;
}

.main-navigation .main-nav > ul > li:hover > a,
.main-navigation .main-nav > ul > li:focus-within > a,
.main-navigation .main-nav > ul > li[class*="current-menu-"] > a {
	color: var(--prim3);
}

.main-navigation .main-nav > ul > li:hover > a::after,
.main-navigation .main-nav > ul > li:focus-within > a::after,
.main-navigation .main-nav > ul > li[class*="current-menu-"] > a::after {
	transform: scaleX(1);
}

@media (max-width: 768px) {
	.main-navigation .main-nav > ul > li > a::after {
		display: none;
	}

	.main-navigation .main-nav > ul > li > a {
		color: var(--prim1);
		text-decoration: none;
	}

	.main-navigation .main-nav > ul > li:hover > a,
	.main-navigation .main-nav > ul > li:focus-within > a,
	.main-navigation .main-nav > ul > li[class*="current-menu-"] > a {
		color: var(--prim3);
	}
}

/* Horizontalen Scroll und sichtbare X-Scrollbar vollständig verhindern. */
html,
body {
	width: 100%;
	max-width: 100%;
	overflow-x: hidden !important;
	background-color: var(--prim1);
}

body {
	position: relative;
}

/* Hauptlayout darf nie breiter als der Viewport werden. */
.site,
#page,
.site-content,
.inside-article,
.entry-content,
.wp-site-blocks,
.generate-sections-container,
.site-footer,
.footer-widgets,
.site-info,
.gb-container,
.gb-element {
	width: 100%;
	max-width: 100% !important;
	box-sizing: border-box;
	overflow-x: hidden !important;
}

/* Breitenberechnung für alle Elemente stabilisieren. */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Medien dürfen keinen Überstand erzeugen. */
img,
video,
iframe,
svg,
canvas {
	max-width: 100%;
}

/* Footer: Verlauf sichtbar lassen, aber Untergrund absichern. */
.gb-element-fbg001 {
	background-color: var(--prim1) !important;
	overflow-x: hidden !important;
}

.gb-element-fbg002 {
	background-color: transparent !important;
	overflow-x: hidden !important;
}

/* Alten Test-Balken sicher entfernen. */
body::after {
	content: none !important;
	display: none !important;
}

/* AGB Geschäftskunden: kompakte Inhaltsangabe. */
.gb-element-agb-toc {
	background-color: color-mix(in srgb, var(--base) 45%, var(--base-3));
	border: 1px solid color-mix(in srgb, var(--prim1) 14%, transparent);
	border-radius: 8px;
	box-sizing: border-box;
	margin: 2rem 0 2.6rem;
	padding: 1.25rem;
	text-align: left;
	width: 100%;
}

.gb-element-agb-toc > p {
	font-size: var(--fs-p);
	font-weight: 800;
	line-height: 1.35;
	margin: 0 0 0.75rem;
}

.gb-element-agb-toc ul {
	column-gap: 1.5rem;
	display: grid;
	grid-auto-flow: column;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(11, auto);
	list-style: none;
	margin: 0;
	padding: 0;
	row-gap: 0.12rem;
}

.gb-element-agb-toc li {
	margin-bottom: 0.38rem;
	padding-left: 0;
}

.gb-element-agb-toc a {
	color: var(--prim1);
	font-size: var(--fs-p);
	font-weight: 700;
	line-height: 1.45;
	text-align: left;
	text-decoration: none;
	transition: color 0.2s ease;
}

.gb-element-agb-toc a:is(:hover, :focus-visible) {
	color: var(--prim3);
}

@media (max-width: 767px) {
	.gb-element-agb-toc ul {
		display: block;
		grid-template-rows: none;
	}
}

/*
 * Cookie-Consent-Titel:
 * Auf Smartphones zwischen 360 und 395 CSS-Pixeln verkleinern.
 */
@media (min-width: 360px) and (max-width: 395px) {
	body #consent-title {
		min-width: 0;
		max-width: 100%;
		font-size: clamp(0.95rem, 4vw, 1rem) !important;
		line-height: 1.2;
		letter-spacing: -0.01em;
		white-space: nowrap;
	}
}