/* ==========================================================================
   ID Racing – GeneratePress Child
   Farben kommen aus den GP-Global-Colors (--accent, --secondary, …)
   ========================================================================== */

:root {
	--idr-font-body: "Poppins", system-ui, sans-serif;
	--idr-font-head: "Barlow", "Poppins", sans-serif;
	--idr-font-display: "Azonix", "Barlow", sans-serif;
	--idr-radius: 14px;
	--idr-radius-lg: 24px;
	--idr-shadow: 0 18px 40px -18px rgba(22, 64, 57, .35);
	--idr-section-y: clamp(64px, 8vw, 120px);
	--idr-gap: clamp(24px, 3vw, 48px);
	--idr-max: 1240px;
}

/* ---------- Basis-Typografie ---------- */
body {
	font-family: var(--idr-font-body);
	font-size: 16px;
	line-height: 1.8;
	color: var(--secondary, #164039);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--idr-font-head);
	font-weight: 700;
	line-height: 1.22;
	letter-spacing: .05em;
	color: var(--contrast, #1B1A1A);
	margin-bottom: .5em;
}
h1 { font-size: clamp(2.25rem, 1.4rem + 3.5vw, 4rem); }
h2 { font-size: clamp(1.75rem, 1.1rem + 2.6vw, 3.125rem); }
h3 { font-size: clamp(1.25rem, 1.05rem + .8vw, 1.75rem); letter-spacing: .05em; }
h4 { font-family: var(--idr-font-body); font-size: 1.5rem; letter-spacing: 0; }

a { transition: color .2s ease; }

.wp-element-button,
.wp-block-button__link,
button,
input[type="submit"],
.button {
	font-family: var(--idr-font-body);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: 14px 30px;
	border-radius: 999px;
	background: var(--accent, #87C332);
	color: #fff;
	border: 2px solid var(--accent, #87C332);
	transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.wp-element-button:hover,
.wp-block-button__link:hover,
button:hover,
input[type="submit"]:hover,
.button:hover {
	background: var(--accent-2, #3D9721);
	border-color: var(--accent-2, #3D9721);
	color: #fff;
	transform: translateY(-1px);
}
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--accent-2, #3D9721);
	border-color: currentColor;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--accent, #87C332);
	border-color: var(--accent, #87C332);
	color: #fff;
}
.wp-block-buttons.is-centered { justify-content: center; }

/* ---------- Top-Bar ---------- */
.idr-topbar {
	background: var(--secondary, #164039);
	color: rgba(255, 255, 255, .85);
	font-size: 13px;
	line-height: 1;
	border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.idr-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 10px 40px;
}
.idr-topbar ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 22px; }
.idr-topbar li { display: flex; align-items: center; gap: 8px; margin: 0; }
.idr-topbar a { color: inherit; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
.idr-topbar a:hover { color: var(--accent, #87C332); }
.idr-topbar .idr-icon { color: var(--accent, #87C332); flex: none; }
.idr-topbar__right { display: flex; align-items: center; gap: 22px; }
.idr-social { gap: 8px !important; }
.idr-social a {
	width: 26px; height: 26px;
	border-radius: 50%;
	justify-content: center;
	background: rgba(255, 255, 255, .1);
}
.idr-social a .idr-icon { color: #fff; width: 12px; height: 12px; }
.idr-social a:hover { background: var(--accent, #87C332); }
.idr-lang { gap: 10px !important; }
.idr-lang img { width: 20px !important; height: auto !important; display: block; border-radius: 2px; }
.idr-lang .current-lang img { outline: 2px solid var(--accent, #87C332); outline-offset: 2px; }

@media (max-width: 768px) {
	.idr-topbar__inner { padding: 8px 20px; }
	.idr-topbar__info li:not(:first-child) { display: none; }
	.idr-topbar__info span { display: none; }
}

/* ---------- Header ---------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--secondary, #164039);
	transition: background .3s ease, box-shadow .3s ease;
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; position: relative; } }

.idr-scrolled .site-header { box-shadow: 0 8px 30px -12px rgba(0, 0, 0, .45); }

.inside-header { padding-top: 14px; padding-bottom: 14px; }
.site-logo img, .custom-logo { max-height: 41px; width: auto; }

.main-navigation .main-nav ul li a {
	font-family: var(--idr-font-body);
	font-size: 15px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .03em;
	line-height: 56px;
	padding-left: 16px;
	padding-right: 16px;
}
.main-navigation .main-nav > ul > li > a { position: relative; }
.main-navigation .main-nav > ul > li > a::after {
	content: "";
	position: absolute;
	left: 16px; right: 16px; bottom: 12px;
	height: 2px;
	background: var(--accent, #87C332);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s ease;
}
.main-navigation .main-nav > ul > li:hover > a::after,
.main-navigation .main-nav > ul > li.current-menu-item > a::after,
.main-navigation .main-nav > ul > li.current-menu-ancestor > a::after { transform: scaleX(1); }

.main-navigation ul ul {
	border-radius: 0 0 var(--idr-radius) var(--idr-radius);
	box-shadow: var(--idr-shadow);
	overflow: hidden;
	width: 260px;
}
.main-navigation .main-nav ul ul li a {
	line-height: 1.4;
	padding: 12px 20px;
	font-size: 14px;
	text-transform: none;
	letter-spacing: 0;
}

/* Mobile Menü */
.menu-toggle, .menu-toggle:hover, .menu-toggle:focus {
	background: transparent;
	border: 0;
	color: #fff;
	transform: none;
}
@media (max-width: 768px) {
	.main-navigation.toggled .main-nav ul li a { line-height: 48px; }
	.main-navigation.toggled .main-nav > ul > li > a::after { display: none; }
	.main-navigation.toggled .main-nav { background: var(--secondary, #164039); }
}

/* ---------- Content-Container ---------- */
.idr-has-hero .site-content,
.home .site-content { padding: 0; }
.idr-has-hero .inside-article,
.home .inside-article { padding: 0; }
.idr-has-hero .entry-header,
.home.page .entry-header { display: none; }
.one-container .site-content { padding-top: 0; }
.entry-content > .alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; width: 100vw; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content > .idr-section + .idr-section { margin-top: 0; }

/* ---------- Sektionen ---------- */
.idr-section {
	padding: var(--idr-section-y) clamp(20px, 4vw, 40px);
	margin: 0;
	position: relative;
}
.idr-section > * { max-width: var(--idr-max); margin-left: auto; margin-right: auto; }
.idr-section.has-tint { background: var(--base-2, #F5FAEE); }
.idr-section.idr-dark {
	background: linear-gradient(135deg, var(--secondary, #164039) 0%, #0f2e29 100%);
	color: rgba(255, 255, 255, .88);
}
.idr-section.idr-dark h2, .idr-section.idr-dark h3 { color: #fff; }

.idr-section-head { margin-bottom: clamp(28px, 3vw, 48px); }
.idr-section-head.is-centered { text-align: center; max-width: 780px; }
.idr-section-head > * { margin-left: 0; margin-right: 0; }
.idr-section-head.is-centered > * { margin-left: auto; margin-right: auto; }

.idr-kicker {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--idr-font-body);
	font-size: 15px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--accent-2, #3D9721);
	margin-bottom: 10px !important;
}
.idr-kicker::before {
	content: "";
	width: 34px;
	height: 3px;
	border-radius: 3px;
	background: var(--accent, #87C332);
}
.is-centered .idr-kicker::after {
	content: "";
	width: 34px;
	height: 3px;
	border-radius: 3px;
	background: var(--accent, #87C332);
}
.idr-dark .idr-kicker, .idr-kicker.is-light { color: var(--accent, #87C332); }

.idr-title { margin-top: 0; text-transform: uppercase; letter-spacing: .06em; }
.idr-lead { font-size: 1.125rem; }
.is-light { color: #fff !important; }
.idr-small { font-size: 13px; opacity: .85; }

/* ---------- Hero ---------- */
.idr-hero {
	position: relative;
	min-height: min(92vh, 980px);
	display: flex;
	align-items: center;
	padding: clamp(100px, 12vw, 180px) clamp(20px, 4vw, 40px) clamp(64px, 8vw, 120px);
	margin: 0;
	color: #fff;
	background-color: var(--accent-2, #3D9721);
	background-size: cover;
	background-position: center;
	isolation: isolate;
}
.idr-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(22, 64, 57, .92) 0%, rgba(22, 64, 57, .65) 45%, rgba(22, 64, 57, .1) 100%),
		linear-gradient(0deg, rgba(22, 64, 57, .55) 0%, rgba(22, 64, 57, 0) 40%);
}
.idr-hero__content { width: 100%; max-width: var(--idr-max); margin: 0 auto; }
.idr-hero__content > * { max-width: 680px; margin-left: 0 !important; }
.idr-display {
	font-family: var(--idr-font-display);
	font-weight: normal;
	font-size: clamp(1.75rem, -.16rem + 5.87vw, 5.125rem);
	line-height: 1.2;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: #fff;
	margin-bottom: .35em;
}
.idr-hero .idr-lead { font-size: clamp(1rem, .9rem + .4vw, 1.25rem); color: rgba(255, 255, 255, .9); }
.idr-hero .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; border-color: #fff; }
.idr-hero .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--secondary, #164039); }
.idr-hero__banner { margin-top: 40px !important; max-width: 820px !important; }
.idr-hero__banner img { border-radius: var(--idr-radius); box-shadow: var(--idr-shadow); }
.idr-hero__banner img:not([src]), .idr-hero__banner img[src=""] { display: none; }

/* ---------- Teaser-Kacheln ---------- */
.idr-teaser { padding-top: 0; margin-top: calc(-1 * clamp(40px, 6vw, 90px)) !important; z-index: 2; }
.idr-tiles { gap: clamp(16px, 2vw, 28px) !important; }
.idr-tile {
	height: 100%;
	background: #fff;
	border-radius: var(--idr-radius-lg);
	padding: clamp(24px, 2.5vw, 36px);
	box-shadow: var(--idr-shadow);
	border-top: 4px solid var(--accent, #87C332);
	transition: transform .25s ease, box-shadow .25s ease;
}
.idr-tile:hover { transform: translateY(-6px); box-shadow: 0 26px 50px -20px rgba(22, 64, 57, .45); }
.idr-tile__title { font-size: 1.5rem; text-transform: uppercase; }
.idr-tile__link a { font-weight: 600; text-transform: uppercase; font-size: 14px; letter-spacing: .06em; text-decoration: none; color: var(--accent-2, #3D9721); }

/* ---------- Split (Text/Bild) ---------- */
.idr-split { align-items: center !important; gap: var(--idr-gap) !important; }
.idr-rounded img, .idr-portrait img { border-radius: var(--idr-radius-lg); box-shadow: var(--idr-shadow); width: 100%; height: auto; object-fit: cover; }
.idr-portrait img { aspect-ratio: 4 / 5; }
.idr-signature { font-style: italic; font-size: 1.125rem; color: var(--accent-2, #3D9721); }
@media (max-width: 781px) {
	.idr-split.is-reversed-mobile { flex-direction: column-reverse; }
}

/* Checkliste */
.idr-checklist { list-style: none; padding-left: 0; margin-left: 0; }
.idr-checklist li { position: relative; padding-left: 32px; margin-bottom: 10px; font-weight: 500; }
.idr-checklist li::before {
	content: "";
	position: absolute;
	left: 0; top: .45em;
	width: 18px; height: 18px;
	border-radius: 50%;
	background: var(--accent, #87C332) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.5 16.2 5.3 12l-1.4 1.4 5.6 5.6 11-11-1.4-1.4z'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* ---------- Band (Fahrer) ---------- */
.idr-band {
	background: linear-gradient(120deg, var(--accent-2, #3D9721) 0%, var(--accent, #87C332) 100%);
	color: #fff;
}
.idr-band h2, .idr-band .idr-kicker { color: #fff; }
.idr-band .idr-kicker::before, .idr-band .idr-kicker::after { background: #fff; }
.idr-band .wp-block-button__link { background: var(--secondary, #164039); border-color: var(--secondary, #164039); }
.idr-band .wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: #fff; border-color: #fff; }
.idr-band .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--secondary, #164039); }

/* ---------- Karten ---------- */
.idr-cards { gap: clamp(16px, 2vw, 24px) !important; margin-bottom: 40px; }
.idr-card {
	height: 100%;
	background: #fff;
	border-radius: var(--idr-radius-lg);
	padding: 32px 28px;
	box-shadow: 0 10px 30px -18px rgba(22, 64, 57, .3);
	transition: transform .25s ease;
}
.idr-card:hover { transform: translateY(-4px); }
.idr-card__icon {
	width: 56px; height: 56px;
	display: grid; place-items: center;
	border-radius: 16px;
	background: var(--base-2, #F5FAEE);
	color: var(--accent-2, #3D9721);
	font-family: var(--idr-font-head);
	font-weight: 700;
	font-size: 1.25rem;
	margin-bottom: 18px !important;
}
.idr-card__title { font-family: var(--idr-font-body); font-size: 1.125rem; letter-spacing: 0; text-transform: none; }
.idr-dark .idr-card { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); box-shadow: none; }
.idr-dark .idr-card__title { color: #fff; }

/* ---------- Zähler ---------- */
.idr-stats { gap: clamp(16px, 2vw, 24px) !important; margin-bottom: 48px; text-align: center; }
.idr-stat {
	padding: 28px 20px;
	border-radius: var(--idr-radius-lg);
	background: var(--base-2, #F5FAEE);
}
.idr-dark .idr-stat { background: rgba(255, 255, 255, .06); }
.idr-counter {
	font-family: var(--idr-font-display);
	font-size: clamp(2.5rem, 1.8rem + 2.6vw, 4.25rem);
	line-height: 1;
	color: var(--accent, #87C332);
	margin-bottom: 8px !important;
	font-variant-numeric: tabular-nums;
}
.idr-stat__label { text-transform: uppercase; letter-spacing: .1em; font-weight: 600; font-size: 14px; margin: 0; }

/* ---------- Zitat ---------- */
.idr-quote {
	max-width: 860px !important;
	margin: 0 auto 40px !important;
	padding: 36px 40px 36px 90px;
	border: 0;
	border-radius: var(--idr-radius-lg);
	background: var(--base-2, #F5FAEE);
	position: relative;
	font-style: italic;
	font-size: 1.125rem;
}
.idr-quote::before {
	content: "\201C";
	position: absolute;
	left: 28px; top: 10px;
	font-family: Georgia, serif;
	font-size: 96px;
	line-height: 1;
	color: var(--accent, #87C332);
}
.idr-quote cite { display: block; margin-top: 12px; font-style: normal; font-weight: 600; font-size: 14px; text-transform: uppercase; letter-spacing: .08em; color: var(--accent-2, #3D9721); }

/* ---------- Testimonials ---------- */
.idr-testimonials { gap: clamp(16px, 2vw, 24px) !important; margin-bottom: clamp(16px, 2vw, 24px) !important; }
.idr-testimonial {
	height: 100%;
	background: #fff;
	border-radius: var(--idr-radius-lg);
	padding: 32px;
	box-shadow: 0 10px 30px -18px rgba(22, 64, 57, .3);
}
.idr-stars { color: var(--accent, #87C332); letter-spacing: 4px; margin-bottom: 10px !important; }
.idr-testimonial__text { font-style: italic; }
.idr-testimonial__meta { margin: 0; font-size: 14px; line-height: 1.5; }
.idr-testimonial__meta strong { color: var(--contrast, #1B1A1A); }

/* ---------- Newsletter ---------- */
.idr-newsletter { padding-top: 0; }
.idr-newsletter__box {
	background: linear-gradient(120deg, var(--secondary, #164039) 0%, var(--accent-2, #3D9721) 100%);
	border-radius: var(--idr-radius-lg);
	padding: clamp(32px, 5vw, 64px);
	text-align: center;
}
.idr-newsletter__box > * { max-width: 640px; margin-left: auto; margin-right: auto; }
.idr-newsletter__box input[type="email"],
.idr-newsletter__box input[type="text"] {
	border-radius: 999px;
	border: 0;
	padding: 14px 22px;
	width: 100%;
}

/* ---------- Footer ---------- */
.site-footer .footer-widgets {
	background: linear-gradient(135deg, var(--accent-2, #3D9721) 0%, #2f7a19 100%);
}
.footer-widgets-container { padding-top: clamp(56px, 6vw, 88px); padding-bottom: clamp(40px, 5vw, 64px); }
.footer-widgets .widget-title,
.footer-widgets h2, .footer-widgets h3, .footer-widgets h4 {
	font-family: var(--idr-font-body);
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0;
	color: #fff;
	margin-bottom: 20px;
}
.footer-widgets ul { list-style: none; margin: 0; }
.footer-widgets li { margin-bottom: 8px; }
.footer-widgets a { text-decoration: none; }
.idr-footer-brand {
	font-family: var(--idr-font-display);
	font-size: 22px;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: #fff;
	margin-bottom: 12px !important;
}
.site-info { font-size: 14px; }
.site-info .inside-site-info { padding-top: 18px; padding-bottom: 18px; }
.site-info .copyright-bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; width: 100%; }
.idr-legal-menu { list-style: none; display: flex; gap: 20px; margin: 0; padding: 0; }
.idr-legal-menu a { text-decoration: none; }

/* ---------- Importierte Seiten (aus Elementor konvertiert) ---------- */
.idr-section.idr-has-bg,
.idr-box.idr-has-bg {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
.idr-section.idr-has-bg { min-height: 60vh; display: flex; flex-direction: column; justify-content: center; }
.entry-content > .idr-section.idr-has-bg:first-child { min-height: min(92vh, 980px); }
.idr-section-bg {
	position: absolute !important;
	inset: 0;
	z-index: -2;
	margin: 0 !important;
	max-width: none !important;
	width: 100%;
	height: 100%;
}
.idr-section-bg img { width: 100%; height: 100%; object-fit: cover; }
.idr-has-bg::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, rgba(22, 64, 57, .88) 0%, rgba(22, 64, 57, .55) 50%, rgba(22, 64, 57, .15) 100%);
}
.idr-has-bg, .idr-has-bg h1, .idr-has-bg h2, .idr-has-bg h3, .idr-has-bg h4, .idr-has-bg a:not(.wp-element-button) { color: #fff; }
.idr-box {
	border-radius: var(--idr-radius-lg);
	padding: clamp(24px, 3vw, 48px);
	margin-bottom: clamp(16px, 2vw, 32px);
}
.idr-box.has-base-3-background-color { box-shadow: var(--idr-shadow); }
.idr-section .idr-card { height: auto; }
.idr-card img[src$=".svg"] { width: 56px; height: 56px; object-fit: contain; }
.idr-lead { font-size: clamp(1rem, .95rem + .3vw, 1.2rem); }
.idr-kicker-text { font-family: var(--idr-font-head); text-transform: uppercase; letter-spacing: .08em; color: var(--accent, #87C332); }
.idr-caption { font-size: 13px; opacity: .8; }
.idr-progress { padding: 10px 16px; border-left: 4px solid var(--accent, #87C332); background: var(--base-2, #F5FAEE); border-radius: 6px; }
.idr-has-bg .idr-progress, .idr-dark .idr-progress { background: rgba(255,255,255,.08); }
.idr-form-placeholder, .idr-map-placeholder { padding: 20px; border: 2px dashed var(--accent, #87C332); border-radius: var(--idr-radius); background: var(--base-2, #F5FAEE); color: var(--secondary, #164039) !important; }
.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: 10px; }
.wp-block-details { border-bottom: 1px solid rgba(22, 64, 57, .15); padding: 14px 0; }
.wp-block-details summary { font-weight: 600; cursor: pointer; }

/* ---------- Nach oben ---------- */
.idr-to-top {
	position: fixed;
	right: 20px; bottom: 20px;
	z-index: 90;
	width: 44px; height: 44px;
	border-radius: 50%;
	display: grid; place-items: center;
	background: var(--accent, #87C332);
	color: #fff;
	box-shadow: var(--idr-shadow);
	opacity: 0;
	pointer-events: none;
	transform: translateY(10px);
	transition: opacity .25s ease, transform .25s ease, background .2s ease;
}
.idr-show-top .idr-to-top { opacity: 1; pointer-events: auto; transform: none; }
.idr-to-top:hover { background: var(--accent-2, #3D9721); color: #fff; }

/* ---------- Blog / Nachrichten ---------- */
.blog .inside-article, .archive .inside-article {
	border-radius: var(--idr-radius-lg);
	box-shadow: 0 10px 30px -18px rgba(22, 64, 57, .3);
}
.entry-meta { font-size: 14px; color: var(--contrast-2, #676767); }

/* ---------- Spalten mobil ---------- */
@media (max-width: 781px) {
	.idr-cards, .idr-stats, .idr-tiles, .idr-testimonials { flex-wrap: wrap !important; }
	.idr-cards > .wp-block-column { flex-basis: 100% !important; }
	.idr-quote { padding: 70px 24px 28px; }
	.idr-quote::before { left: 20px; top: 0; }
}
@media (min-width: 782px) and (max-width: 1024px) {
	.idr-cards { flex-wrap: wrap !important; }
	.idr-cards > .wp-block-column { flex-basis: calc(50% - 12px) !important; flex-grow: 0 !important; }
}

/* ---------- Block-Editor ---------- */
.editor-styles-wrapper .idr-hero { min-height: 560px; }
.editor-styles-wrapper .idr-teaser { margin-top: 0 !important; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
}
