/* ═══════════════════════════════════════════════════════════════════
   prodestek Modern — Custom CSS
   Corporate-Blau (#1F4E79) · Signal-Rot (#D62828) · Ingenieur-Präzision
   ═══════════════════════════════════════════════════════════════════ */

:root {
	--pd-blue:        #1F4E79;
	--pd-blue-dark:   #163554;
	--pd-blue-light:  #E8EEF5;
	--pd-red:         #D62828;
	--pd-red-dark:    #A81E1E;
	--pd-text:        #2A2A2A;
	--pd-muted:       #6B7280;
	--pd-line:        #E5E7EB;
	--pd-bg:          #FFFFFF;
	--pd-bg-alt:      #F8FAFC;
	--pd-bg-dark:     #0F172A;

	--pd-font-body:   'Inter', system-ui, -apple-system, sans-serif;
	--pd-font-head:   'Space Grotesk', 'Inter', sans-serif;
}

/* ─── Base ────────────────────────────────────────────────────────── */
body {
	font-family: var(--pd-font-body);
	color: var(--pd-text);
	background: var(--pd-bg);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--pd-font-head);
	color: var(--pd-text);
	letter-spacing: -0.015em;
	line-height: 1.15;
	font-weight: 600;
}

h1 { font-size: clamp(2.2rem, 4.5vw, 3.4rem); font-weight: 700; }
h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); }

a { color: var(--pd-blue); text-decoration: none; transition: color .2s; }
a:hover { color: var(--pd-red); }

/* ─── Buttons: prodestek-Design ────────────────────────────────────── */
.pd-btn,
.elementor-button.elementor-size-md,
.elementor-button.elementor-size-lg {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 28px;
	font-family: var(--pd-font-body);
	font-weight: 600;
	font-size: 0.95rem;
	letter-spacing: 0.01em;
	border-radius: 6px;
	transition: all .25s cubic-bezier(.22,1,.36,1);
	text-decoration: none;
	border: 0;
	cursor: pointer;
	line-height: 1;
}

.pd-btn--primary {
	background: var(--pd-blue);
	color: #fff;
}
.pd-btn--primary:hover {
	background: var(--pd-blue-dark);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 8px 20px -8px rgba(31,78,121,.5);
}

.pd-btn--accent {
	background: var(--pd-red);
	color: #fff;
}
.pd-btn--accent:hover {
	background: var(--pd-red-dark);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 8px 20px -8px rgba(214,40,40,.5);
}

.pd-btn--outline {
	background: transparent;
	color: var(--pd-blue);
	border: 1.5px solid var(--pd-blue);
}
.pd-btn--outline:hover {
	background: var(--pd-blue);
	color: #fff;
}

/* ─── Header (Hello Elementor Basis) ──────────────────────────────── */
.site-header {
	background: var(--pd-bg);
	border-bottom: 1px solid var(--pd-line);
	padding: 18px 0;
}

.site-header .site-branding img.custom-logo {
	max-height: 44px;
	width: auto;
}

.site-navigation ul.menu > li > a {
	font-weight: 500;
	color: var(--pd-text);
	padding: 10px 18px;
	font-size: 0.95rem;
	transition: color .2s;
}
.site-navigation ul.menu > li > a:hover,
.site-navigation ul.menu > li.current-menu-item > a {
	color: var(--pd-blue);
}

/* ─── Section-Container ───────────────────────────────────────────── */
.pd-section {
	padding: clamp(60px, 8vw, 110px) clamp(20px, 4vw, 48px);
}
.pd-section--alt {
	background: var(--pd-bg-alt);
}
.pd-section--dark {
	background: var(--pd-bg-dark);
	color: #fff;
}
.pd-section--dark h1,
.pd-section--dark h2,
.pd-section--dark h3 {
	color: #fff;
}

.pd-container {
	max-width: 1280px;
	margin: 0 auto;
}

/* ─── Eyebrow (kleine Kapitel-Überschrift über Headings) ───────────── */
.pd-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--pd-blue);
	margin-bottom: 18px;
	font-family: var(--pd-font-body);
}
.pd-eyebrow::before {
	content: '';
	display: inline-block;
	width: 28px;
	height: 2px;
	background: var(--pd-red);
}

/* ─── Leistungs-Grid (Karten) ─────────────────────────────────────── */
.pd-leistungen {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
	margin-top: 48px;
}

.pd-leistung-card {
	position: relative;
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: 14px;
	padding: 32px 28px;
	transition: all .3s cubic-bezier(.22,1,.36,1);
	text-decoration: none;
	color: inherit;
	display: block;
	overflow: hidden;
}
.pd-leistung-card::before {
	content: '';
	position: absolute;
	top: 0; left: 0;
	width: 3px; height: 100%;
	background: var(--pd-blue);
	transform: scaleY(0);
	transform-origin: top;
	transition: transform .3s ease;
}
.pd-leistung-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 40px -20px rgba(15,23,42,.15);
	border-color: transparent;
}
.pd-leistung-card:hover::before {
	transform: scaleY(1);
}

.pd-leistung-card__num {
	display: inline-block;
	font-family: var(--pd-font-head);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--pd-red);
	margin-bottom: 14px;
	letter-spacing: 0.05em;
}
.pd-leistung-card__title {
	font-family: var(--pd-font-head);
	font-size: 1.2rem;
	font-weight: 600;
	color: var(--pd-text);
	margin: 0 0 10px;
	line-height: 1.25;
}
.pd-leistung-card__desc {
	color: var(--pd-muted);
	font-size: 0.95rem;
	line-height: 1.6;
	margin: 0;
}
.pd-leistung-card__arrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 18px;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--pd-blue);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	transition: gap .2s;
}
.pd-leistung-card:hover .pd-leistung-card__arrow { gap: 12px; }

/* ─── USP-Stats-Bar ───────────────────────────────────────────────── */
.pd-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 24px;
	padding: 40px 32px;
	background: var(--pd-blue);
	border-radius: 16px;
	color: #fff;
}
.pd-stat { text-align: center; }
.pd-stat__value {
	display: block;
	font-family: var(--pd-font-head);
	font-size: 2.6rem;
	font-weight: 700;
	color: #fff;
	line-height: 1;
	margin-bottom: 6px;
}
.pd-stat__label {
	font-size: 0.85rem;
	font-weight: 500;
	color: rgba(255,255,255,.85);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* ─── Hero (dezent, ohne 3D-Spielereien) ─────────────────────────── */
.pd-hero {
	background: linear-gradient(135deg, var(--pd-bg-dark) 0%, var(--pd-blue-dark) 100%);
	color: #fff;
	padding: clamp(90px, 10vw, 120px) clamp(20px, 4vw, 48px) clamp(40px, 6vw, 70px);
	position: relative;
	overflow: hidden;
}
.pd-hero::after {
	content: '';
	position: absolute;
	top: -20%;
	right: -10%;
	width: 60%;
	height: 140%;
	background: radial-gradient(circle at center, rgba(214,40,40,.15) 0%, transparent 60%);
	pointer-events: none;
}
.pd-hero__inner {
	position: relative;
	max-width: 1080px;
	margin: 0 auto;
}
.pd-hero__eyebrow {
	color: rgba(255,255,255,.75);
}
.pd-hero__eyebrow::before {
	background: var(--pd-red);
}
.pd-hero h1 {
	color: #fff;
	max-width: 20ch;
	margin-bottom: 24px;
}
.pd-hero__lead {
	font-size: clamp(1.05rem, 1.5vw, 1.2rem);
	max-width: 60ch;
	color: rgba(255,255,255,.85);
	line-height: 1.6;
	margin-bottom: 32px;
}
.pd-hero__cta { display: flex; gap: 14px; flex-wrap: wrap; }

/* ─── Footer ───────────────────────────────────────────────────────── */
.site-footer {
	background: var(--pd-bg-dark);
	color: rgba(255,255,255,.75);
	padding: 60px 32px 30px;
}
.site-footer a {
	color: rgba(255,255,255,.85);
}
.site-footer a:hover { color: var(--pd-red); }

/* ─── Elementor-Container auf volle Breite bringen ────────────────── */
.elementor-section-boxed > .elementor-container {
	max-width: 1280px;
}

/* ─── Section-Head (Eyebrow + Headline oben in Sektion) ──────────── */
.pd-section-head {
	margin-bottom: 48px;
	max-width: 720px;
}
.pd-section-head h2 { margin: 0; }

/* ─── Stats-Wrapper (weniger Padding, damit stat card ins Layout ragt) */
.pd-section--stats-wrap {
	padding-top: 0;
	padding-bottom: 60px;
	margin-top: -60px;
	position: relative;
	z-index: 3;
}

/* ─── Zwei-Spalten (Über-uns-Preview) ───────────────────────────── */
.pd-two-col {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 60px;
	align-items: center;
}
.pd-two-col__text h2 { margin: 0 0 18px; }
.pd-two-col__visual { min-width: 0; }

.pd-visual-frame {
	background: #fff;
	border: 1px solid var(--pd-line);
	border-left: 4px solid var(--pd-red);
	border-radius: 14px;
	padding: 36px 32px;
	box-shadow: 0 20px 40px -25px rgba(15,23,42,.15);
}

.pd-usp-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.pd-usp-list li {
	padding-left: 30px;
	position: relative;
	color: var(--pd-text);
	line-height: 1.55;
}
.pd-usp-list li::before {
	content: '';
	position: absolute;
	left: 0; top: 8px;
	width: 16px; height: 2px;
	background: var(--pd-blue);
}
.pd-usp-list strong {
	color: var(--pd-blue);
	font-weight: 600;
}

/* ─── CTA-Dark-Section ──────────────────────────────────────────── */
.pd-section--cta h2 {
	max-width: 22ch;
	margin-left: auto;
	margin-right: auto;
}

/* ─── Outline-Button auf hellem/dunklem Hintergrund ─────────────── */
.pd-btn--outline-light {
	color: #fff;
	border-color: rgba(255,255,255,.4);
}
.pd-btn--outline-light:hover {
	background: #fff;
	color: var(--pd-blue);
}

/* ─── Body-class für Front-Content (falls Kunde zusätzlich Elementor fügt) */
.pd-front-content { padding-top: 40px; padding-bottom: 40px; }

/* ─── Utility ──────────────────────────────────────────────────────── */
.pd-lead { font-size: 1.15rem; color: var(--pd-muted); line-height: 1.7; max-width: 65ch; }
.pd-mt-lg { margin-top: 32px; }
.pd-mb-lg { margin-bottom: 32px; }

/* ═══════════════════════════════════════════════════════════════════
   PAGE-TEMPLATES: Leistungen, Über uns, Kontakt
   ═══════════════════════════════════════════════════════════════════ */

/* ─── Page-Hero (kompakter als Home-Hero) ────────────────────────── */
.pd-page-hero {
	background: linear-gradient(135deg, var(--pd-bg-dark) 0%, var(--pd-blue-dark) 100%);
	color: #fff;
	padding: clamp(140px, 12vw, 200px) clamp(20px, 4vw, 48px) clamp(60px, 8vw, 100px);
	position: relative;
	overflow: hidden;
}
.pd-page-hero::after {
	content: '';
	position: absolute;
	top: -30%;
	right: -15%;
	width: 55%;
	height: 130%;
	background: radial-gradient(circle at center, rgba(214,40,40,.12) 0%, transparent 60%);
	pointer-events: none;
}
.pd-page-hero .pd-container {
	position: relative;
	max-width: 1080px;
}
.pd-page-hero h1 {
	color: #fff;
	margin: 0 0 20px;
	font-size: clamp(2rem, 4vw, 3rem);
}
.pd-page-hero .pd-hero__lead {
	max-width: 65ch;
	color: rgba(255,255,255,.85);
}

/* ─── Breadcrumb ─────────────────────────────────────────────────── */
.pd-breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: rgba(255,255,255,.7);
	margin-bottom: 24px;
}
.pd-breadcrumb a {
	color: rgba(255,255,255,.9);
	text-decoration: none;
}
.pd-breadcrumb a:hover { color: var(--pd-red); }
.pd-breadcrumb strong { color: #fff; font-weight: 500; }

/* ─── Steps (Leistungen: 3-Schritte) ─────────────────────────────── */
.pd-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 24px;
}
.pd-step {
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: 14px;
	padding: 36px 30px;
	position: relative;
	transition: transform .3s;
}
.pd-step:hover { transform: translateY(-3px); }
.pd-step__num {
	display: inline-block;
	font-family: var(--pd-font-head);
	font-size: 2.2rem;
	font-weight: 700;
	color: var(--pd-red);
	line-height: 1;
	margin-bottom: 16px;
}
.pd-step h3 {
	font-size: 1.2rem;
	margin: 0 0 10px;
	color: var(--pd-text);
}
.pd-step p {
	color: var(--pd-muted);
	margin: 0;
	line-height: 1.6;
}

/* ─── Values (Über uns: Prüffestigkeit / Termintreue / ...) ─────── */
.pd-values {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 22px;
}
.pd-value {
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: 14px;
	padding: 32px 26px;
	text-align: left;
	transition: all .3s;
}
.pd-value:hover {
	transform: translateY(-3px);
	box-shadow: 0 20px 40px -25px rgba(15,23,42,.2);
	border-color: transparent;
}
.pd-value__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 12px;
	background: var(--pd-blue-light);
	color: var(--pd-blue);
	margin-bottom: 18px;
}
.pd-value h3 {
	font-size: 1.1rem;
	margin: 0 0 10px;
	color: var(--pd-text);
}
.pd-value p {
	color: var(--pd-muted);
	margin: 0;
	line-height: 1.6;
	font-size: 0.95rem;
}

/* ─── Contact Cards (WhatsApp / E-Mail / Standort) ──────────────── */
.pd-contact-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 18px;
}
.pd-contact-card {
	display: flex;
	gap: 18px;
	align-items: center;
	padding: 24px;
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: 14px;
	text-decoration: none;
	color: inherit;
	transition: all .25s;
}
.pd-contact-card:not(.pd-contact-card--static):hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 40px -22px rgba(15,23,42,.2);
	border-color: transparent;
}
.pd-contact-card--static { cursor: default; }
.pd-contact-card__icon {
	flex: 0 0 52px;
	width: 52px; height: 52px;
	border-radius: 12px;
	color: #fff;
	display: grid; place-items: center;
}
.pd-contact-card__body {
	display: flex; flex-direction: column; gap: 2px;
	min-width: 0;
}
.pd-contact-card__label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--pd-muted);
}
.pd-contact-card__value {
	font-family: var(--pd-font-head);
	font-weight: 600;
	color: var(--pd-text);
	font-size: 1.05rem;
	line-height: 1.2;
}
.pd-contact-card__hint {
	font-size: 0.8rem;
	color: var(--pd-muted);
	margin-top: 2px;
}

/* ─── Contact Split (Form + Map) ─────────────────────────────────── */
.pd-contact-split {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 50px;
	align-items: stretch;
}
.pd-contact-split__form h2 { margin: 0 0 8px; }

.pd-map {
	position: relative;
	border-radius: 14px;
	overflow: hidden;
	background: #eee;
	min-height: 420px;
	border: 1px solid var(--pd-line);
	display: flex;
	flex-direction: column;
}
.pd-map iframe {
	flex: 1;
	min-height: 320px;
	width: 100%;
	border: 0;
	display: block;
}
.pd-map__caption {
	padding: 16px 20px;
	background: #fff;
	font-size: 0.9rem;
	line-height: 1.5;
	border-top: 1px solid var(--pd-line);
}
.pd-map__caption strong { color: var(--pd-blue); }

/* ─── CF7 Form Styling ──────────────────────────────────────────── */
.wpcf7 label {
	display: block;
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--pd-text);
	margin-bottom: 18px;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
	display: block;
	width: 100%;
	margin-top: 6px;
	padding: 12px 14px;
	border: 1px solid var(--pd-line);
	border-radius: 8px;
	font-family: var(--pd-font-body);
	font-size: 0.95rem;
	color: var(--pd-text);
	background: #fff;
	transition: border-color .2s, box-shadow .2s;
}
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 textarea:focus {
	outline: none;
	border-color: var(--pd-blue);
	box-shadow: 0 0 0 3px rgba(31,78,121,.12);
}
.wpcf7 textarea { resize: vertical; min-height: 130px; }

.pd-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 18px;
}
.pd-consent {
	font-size: 0.85rem;
	color: var(--pd-muted);
	font-weight: 400;
	line-height: 1.5;
	display: flex;
	align-items: flex-start;
	gap: 10px;
}
.pd-consent .wpcf7-list-item {
	margin: 0;
}
.pd-consent a { color: var(--pd-blue); text-decoration: underline; }

.wpcf7 .wpcf7-response-output {
	margin: 20px 0 0;
	padding: 14px 18px;
	border-radius: 8px;
	border: 1.5px solid var(--pd-line);
	font-size: 0.95rem;
}
.wpcf7 .wpcf7-mail-sent-ok {
	border-color: #16a34a;
	background: #f0fdf4;
	color: #14532d;
}
.wpcf7 .wpcf7-validation-errors,
.wpcf7 .wpcf7-mail-sent-ng {
	border-color: var(--pd-red);
	background: #fef2f2;
	color: var(--pd-red-dark);
}
.wpcf7-not-valid-tip {
	color: var(--pd-red);
	font-size: 0.85rem;
	margin-top: 4px;
	display: block;
}

/* ═══════════════════════════════════════════════════════════════════
   COOKIE BANNER
   ═══════════════════════════════════════════════════════════════════ */
.pd-cookie-banner {
	position: fixed;
	left: 20px;
	right: 20px;
	bottom: 20px;
	max-width: 720px;
	margin: 0 auto;
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: 14px;
	box-shadow: 0 30px 60px -20px rgba(15,23,42,.25);
	padding: 22px 26px;
	z-index: 9999;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .35s, transform .35s;
}
.pd-cookie-banner.is-visible {
	opacity: 1;
	transform: translateY(0);
}
.pd-cookie-banner__inner {
	display: flex;
	gap: 24px;
	align-items: center;
	flex-wrap: wrap;
}
.pd-cookie-banner__text {
	flex: 1 1 320px;
	min-width: 0;
}
.pd-cookie-banner__text strong {
	display: block;
	font-family: var(--pd-font-head);
	font-size: 1rem;
	color: var(--pd-blue);
	margin-bottom: 4px;
}
.pd-cookie-banner__text p {
	font-size: 0.88rem;
	color: var(--pd-muted);
	margin: 0;
	line-height: 1.5;
}
.pd-cookie-banner__text a { color: var(--pd-blue); text-decoration: underline; }
.pd-cookie-banner__actions {
	display: flex;
	gap: 10px;
	flex-shrink: 0;
	flex-wrap: wrap;
}
.pd-cookie-banner__actions .pd-btn {
	padding: 10px 18px;
	font-size: 0.85rem;
}

/* ═══════════════════════════════════════════════════════════════════
   HOMEPAGE-UPGRADES: Hero mit Grid-Pattern, Icons in Cards, Signals
   ═══════════════════════════════════════════════════════════════════ */

/* Grid-Pattern (subtiles Blueprint-Overlay im Hero) */
.pd-hero__grid-pattern {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
	background-size: 60px 60px;
	background-position: center;
	pointer-events: none;
	z-index: 0;
	mask-image: radial-gradient(ellipse at center, black 40%, transparent 90%);
	-webkit-mask-image: radial-gradient(ellipse at center, black 40%, transparent 90%);
}
.pd-hero__glow {
	position: absolute;
	top: -20%;
	right: -20%;
	width: 70%;
	height: 140%;
	background: radial-gradient(circle at center, rgba(214,40,40,.25) 0%, transparent 50%);
	pointer-events: none;
	z-index: 0;
}

.pd-hero--upgraded {
	position: relative;
	overflow: hidden;
	background-image:
		linear-gradient(135deg, rgba(15,23,42,.85) 0%, rgba(22,53,84,.75) 50%, rgba(15,23,42,.88) 100%),
		url('../img/hero-bg.jpg');
	background-size: cover;
	background-position: center 30%;
	background-repeat: no-repeat;
}
.pd-hero--upgraded::after { display: none; }
.pd-hero--upgraded .pd-hero__inner {
	position: relative;
	z-index: 2;
}
.pd-hero--upgraded .pd-hero__glow {
	mix-blend-mode: screen;
	opacity: 0.6;
}
.pd-hero__accent {
	font-style: normal;
	color: #ffb3b3;
	background: linear-gradient(90deg, #ff8a8a 0%, #ffbbbb 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.pd-hero__trust {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
	margin-top: 40px;
	padding-top: 28px;
	border-top: 1px solid rgba(255,255,255,.12);
}
.pd-hero__trust-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.85rem;
	color: rgba(255,255,255,.65);
	letter-spacing: 0.02em;
}
.pd-hero__trust-item svg { color: #ff8a8a; flex-shrink: 0; }

/* Btn-large + Icons in Btns */
.pd-btn--lg { padding: 16px 32px; font-size: 1rem; }
.pd-btn svg { flex-shrink: 0; }

/* Stats Icons */
.pd-stats--upgraded { padding: 44px 32px; }
.pd-stat__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: rgba(255,255,255,.12);
	color: #fff;
	margin: 0 auto 12px;
}
.pd-stat__plus { font-size: 1.4rem; opacity: 0.8; }

/* Intro-Grid: Text + Signal-Boxes */
.pd-intro-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: center;
}
.pd-intro-grid__text h2 { margin: 0 0 20px; }
.pd-intro-grid__signals {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.pd-signal {
	display: flex;
	gap: 16px;
	padding: 24px 22px;
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: 12px;
	transition: transform .25s, box-shadow .25s;
}
.pd-signal:hover {
	transform: translateY(-2px);
	box-shadow: 0 20px 40px -22px rgba(15,23,42,.2);
}
.pd-signal__badge {
	flex: 0 0 44px;
	width: 44px; height: 44px;
	border-radius: 10px;
	background: var(--pd-blue-light);
	color: var(--pd-blue);
	display: grid;
	place-items: center;
}
.pd-signal strong {
	display: block;
	font-family: var(--pd-font-head);
	font-size: 1.05rem;
	color: var(--pd-text);
	margin-bottom: 4px;
	font-weight: 600;
}
.pd-signal span {
	display: block;
	font-size: 0.88rem;
	color: var(--pd-muted);
	line-height: 1.5;
}

/* Section-Head Center-Variant */
.pd-section-head--center {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
	max-width: 720px;
	margin-bottom: 56px;
}
.pd-section-head--center .pd-eyebrow { justify-content: center; }
.pd-section-head--center h2 { margin: 0; }

/* Leistungs-Cards mit Icons */
.pd-leistungen--icons .pd-leistung-card--icon {
	padding-top: 88px;
	position: relative;
}
.pd-leistung-card__iconwrap {
	position: absolute;
	top: 28px;
	left: 28px;
	width: 44px;
	height: 44px;
	border-radius: 10px;
	background: var(--pd-blue-light);
	color: var(--pd-blue);
	display: grid;
	place-items: center;
	transition: all .3s;
}
.pd-leistung-card--icon:hover .pd-leistung-card__iconwrap {
	background: var(--pd-blue);
	color: #fff;
	transform: scale(1.05);
}
.pd-leistungen--icons .pd-leistung-card__num {
	position: absolute;
	top: 28px;
	right: 28px;
	margin-bottom: 0;
	color: var(--pd-muted);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
}

/* Visual-Frame Upgraded (mit Badge) */
.pd-visual-frame--upgraded {
	position: relative;
	padding-top: 60px;
}
.pd-visual-frame__badge {
	position: absolute;
	top: -30px;
	right: 24px;
	padding: 16px 22px;
	background: var(--pd-red);
	color: #fff;
	border-radius: 14px;
	box-shadow: 0 15px 30px -12px rgba(214,40,40,.5);
	text-align: center;
	transform: rotate(3deg);
}
.pd-visual-frame__badge-num {
	display: block;
	font-family: var(--pd-font-head);
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
}
.pd-visual-frame__badge-label {
	display: block;
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	margin-top: 4px;
	opacity: 0.9;
}

/* CTA-Section Upgraded */
.pd-section--cta-upgraded {
	position: relative;
	overflow: hidden;
	background-image:
		linear-gradient(135deg, rgba(15,23,42,.90) 0%, rgba(22,53,84,.80) 50%, rgba(15,23,42,.92) 100%),
		url('../img/cta-bg.jpg');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-attachment: scroll;
}
.pd-section--cta-upgraded > .pd-hero__grid-pattern {
	z-index: 1;
	opacity: 0.15;
}
.pd-section--cta-upgraded > .pd-container {
	position: relative;
	z-index: 2;
}

/* ═══════════════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════════════ */

.pd-footer {
	background: var(--pd-bg-dark);
	color: rgba(255,255,255,.7);
	padding: 80px 32px 0;
	position: relative;
}
.pd-footer__inner {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1.3fr 1.1fr;
	gap: 50px;
	padding-bottom: 60px;
	border-bottom: 1px solid rgba(255,255,255,.08);
}
.pd-footer h4 {
	color: #fff;
	font-family: var(--pd-font-body);
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	margin: 0 0 22px;
	opacity: 0.9;
}

/* Brand-Col */
.pd-footer__logo img {
	max-width: 180px;
	height: auto;
	margin-bottom: 20px;
	display: block;
}
.pd-footer__logo--text {
	font-family: var(--pd-font-head);
	font-size: 1.6rem;
	font-weight: 700;
	color: #fff;
	text-decoration: none;
	display: inline-block;
	margin-bottom: 20px;
}
.pd-footer__tagline {
	font-size: 0.92rem;
	line-height: 1.6;
	color: rgba(255,255,255,.65);
	margin: 0 0 24px;
	max-width: 34ch;
}
.pd-footer__legal-inline {
	display: flex;
	gap: 20px;
	font-size: 0.85rem;
}
.pd-footer__legal-inline a {
	color: rgba(255,255,255,.55);
	text-decoration: none;
	transition: color .2s;
}
.pd-footer__legal-inline a:hover { color: var(--pd-red); }

/* Menu-Cols */
.pd-footer__menu {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.pd-footer__menu li a {
	color: rgba(255,255,255,.75);
	text-decoration: none;
	font-size: 0.92rem;
	transition: color .2s, padding .2s;
	display: inline-block;
	line-height: 1.5;
}
.pd-footer__menu li a:hover {
	color: #fff;
	padding-left: 4px;
}
.pd-footer__all {
	color: var(--pd-red) !important;
	font-weight: 600;
	margin-top: 8px;
	display: inline-block;
}

/* Contact-Col */
.pd-footer__address {
	font-style: normal;
	font-size: 0.92rem;
	line-height: 1.7;
	color: rgba(255,255,255,.75);
	margin: 0 0 22px;
}
.pd-footer__address strong { color: #fff; font-weight: 600; }
.pd-footer__contact-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.pd-footer__contact-list li {
	display: flex;
	gap: 12px;
	align-items: center;
}
.pd-footer__contact-list a {
	color: rgba(255,255,255,.85);
	text-decoration: none;
	font-size: 0.92rem;
	transition: color .2s;
}
.pd-footer__contact-list a:hover { color: var(--pd-red); }
.pd-footer__icon {
	flex: 0 0 32px;
	width: 32px; height: 32px;
	border-radius: 8px;
	background: rgba(255,255,255,.08);
	color: rgba(255,255,255,.9);
	display: grid;
	place-items: center;
}

/* Footer Bottom */
.pd-footer__bottom {
	padding: 22px 0;
	background: rgba(0,0,0,.2);
}
.pd-footer__bottom-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
}
.pd-footer__copyright {
	font-size: 0.85rem;
	color: rgba(255,255,255,.5);
}
.pd-footer__credit {
	font-size: 0.85rem;
	color: rgba(255,255,255,.5);
}
.pd-footer__credit a {
	color: var(--pd-red);
	text-decoration: none;
	font-weight: 500;
	transition: color .2s;
}
.pd-footer__credit a:hover { color: #ffb3b3; }

/* Kill Hello-Elementor default footer if it still rendered */
.site-footer:not(.pd-footer) { display: none !important; }

/* ═══════════════════════════════════════════════════════════════════
   LEISTUNGS-UNTERSEITEN (Detail-Layout mit Icon-Hero + Sidebar)
   ═══════════════════════════════════════════════════════════════════ */

.pd-page-hero--leistung { padding-bottom: 70px; }

.pd-leistung-hero {
	display: flex;
	gap: 28px;
	align-items: center;
	margin-top: 12px;
}
.pd-leistung-hero__icon {
	flex: 0 0 88px;
	width: 88px; height: 88px;
	border-radius: 20px;
	background: rgba(214, 40, 40, 0.15);
	border: 1px solid rgba(255,255,255,.12);
	color: #fff;
	display: grid;
	place-items: center;
	backdrop-filter: blur(4px);
}
.pd-leistung-hero__icon svg { color: #fff; }
.pd-leistung-hero__text h1 {
	margin: 8px 0 0;
	font-size: clamp(1.7rem, 3.5vw, 2.6rem);
}

/* ─── Content + Sidebar Split ────────────────────────────────────── */
.pd-leistung-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 60px;
	align-items: start;
}

.pd-leistung-content {
	max-width: 100%;
	font-size: 1.02rem;
	line-height: 1.75;
	color: var(--pd-text);
}
.pd-leistung-content h2 {
	font-size: clamp(1.4rem, 2.2vw, 1.8rem);
	margin: 48px 0 16px;
	padding-top: 8px;
	border-top: 1px solid var(--pd-line);
	padding-top: 32px;
}
.pd-leistung-content h2:first-child { border-top: 0; padding-top: 0; margin-top: 0; }
.pd-leistung-content h3 {
	font-size: 1.15rem;
	margin: 28px 0 10px;
	color: var(--pd-blue);
	font-family: var(--pd-font-head);
}
.pd-leistung-content p {
	margin: 0 0 18px;
	color: #3a3f4a;
}
.pd-leistung-content p strong { color: var(--pd-text); }
.pd-leistung-content ul {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}
.pd-leistung-content ul li {
	padding: 8px 0 8px 30px;
	position: relative;
	color: #3a3f4a;
	line-height: 1.55;
	border-bottom: 1px dashed var(--pd-line);
}
.pd-leistung-content ul li:last-child { border-bottom: 0; }
.pd-leistung-content ul li::before {
	content: '';
	position: absolute;
	left: 6px; top: 18px;
	width: 12px; height: 2px;
	background: var(--pd-red);
}
.pd-leistung-content em {
	display: block;
	margin-top: 32px;
	padding: 16px 20px;
	background: var(--pd-blue-light);
	border-left: 3px solid var(--pd-blue);
	color: var(--pd-blue-dark);
	font-style: normal;
	font-weight: 500;
	border-radius: 0 8px 8px 0;
}

/* ─── Sidebar ────────────────────────────────────────────────────── */
.pd-leistung-sidebar {
	position: sticky;
	top: 100px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.pd-sidebar-block {
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: 14px;
	padding: 26px 24px;
}
.pd-sidebar-block h3 {
	font-size: 0.95rem;
	color: var(--pd-blue);
	margin: 0 0 16px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	font-family: var(--pd-font-body);
	font-weight: 600;
	letter-spacing: 0.08em;
}

.pd-sidebar-block--nav ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.pd-sidebar-block--nav li a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 0;
	color: var(--pd-text);
	text-decoration: none;
	border-bottom: 1px solid var(--pd-line);
	font-size: 0.92rem;
	transition: color .2s, padding .2s;
}
.pd-sidebar-block--nav li:last-child a { border-bottom: 0; }
.pd-sidebar-block--nav li a span {
	color: var(--pd-muted);
	transition: transform .2s;
}
.pd-sidebar-block--nav li a:hover {
	color: var(--pd-blue);
	padding-left: 8px;
}
.pd-sidebar-block--nav li a:hover span { transform: translateX(3px); color: var(--pd-red); }
.pd-sidebar-block--nav li.is-active a {
	color: var(--pd-blue);
	font-weight: 600;
}
.pd-sidebar-block--nav li.is-active a::before {
	content: '';
	display: inline-block;
	width: 3px;
	height: 16px;
	background: var(--pd-red);
	margin-right: 12px;
	vertical-align: middle;
}

.pd-sidebar-block--cta {
	background: linear-gradient(135deg, var(--pd-blue) 0%, var(--pd-blue-dark) 100%);
	border: 0;
	color: #fff;
}
.pd-sidebar-block--cta h3 {
	color: rgba(255,255,255,.85);
}
.pd-sidebar-block--cta p {
	color: rgba(255,255,255,.85);
	font-size: 0.92rem;
	margin: 0 0 18px;
	line-height: 1.55;
}
.pd-sidebar-block--cta .pd-btn { width: 100%; justify-content: center; }
.pd-sidebar-whatsapp {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
	color: #fff;
	font-size: 0.88rem;
	text-decoration: none;
	opacity: 0.9;
}
.pd-sidebar-whatsapp:hover { opacity: 1; color: #fff; }
.pd-sidebar-whatsapp svg { color: #25D366; }

/* ═══════════════════════════════════════════════════════════════════
   HEADER-MENU: Submenu Dropdown für "Leistungen"
   ═══════════════════════════════════════════════════════════════════ */
.site-navigation .menu-item-has-children {
	position: relative;
}
.site-navigation .menu-item-has-children > a::after {
	content: '▾';
	margin-left: 6px;
	font-size: 0.7rem;
	color: var(--pd-muted);
	transition: transform .2s;
}
.site-navigation .menu-item-has-children:hover > a::after {
	transform: rotate(180deg);
}
.site-navigation .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 280px;
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: 10px;
	box-shadow: 0 20px 40px -20px rgba(15,23,42,.2);
	padding: 8px;
	margin: 0;
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: all .25s;
	z-index: 100;
}
.site-navigation .menu-item-has-children:hover > .sub-menu,
.site-navigation .menu-item-has-children:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.site-navigation .sub-menu li {
	list-style: none;
	padding: 0;
	margin: 0;
}
.site-navigation .sub-menu li a {
	display: block;
	padding: 10px 14px;
	color: var(--pd-text);
	font-weight: 500;
	font-size: 0.9rem;
	border-radius: 6px;
	transition: background .15s, color .15s;
	text-transform: none;
	letter-spacing: 0;
}
.site-navigation .sub-menu li a:hover,
.site-navigation .sub-menu li.current-menu-item a {
	background: var(--pd-blue-light);
	color: var(--pd-blue);
}
.site-navigation .sub-menu li a::after { display: none; }

/* ─── Responsive ──────────────────────────────────────────────────── */
@media (max-width: 1000px) {
	.pd-leistung-body {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.pd-leistung-sidebar {
		position: static;
	}
	.pd-leistung-hero {
		flex-direction: column;
		align-items: flex-start;
		text-align: left;
		gap: 20px;
	}
	.pd-leistung-hero__icon {
		flex: 0 0 72px;
		width: 72px; height: 72px;
	}
}

@media (max-width: 900px) {
	.pd-two-col { grid-template-columns: 1fr; gap: 40px; }
	.pd-contact-split { grid-template-columns: 1fr; gap: 40px; }
	.pd-form-grid { grid-template-columns: 1fr; }
	.pd-intro-grid { grid-template-columns: 1fr; gap: 40px; }
	.pd-intro-grid__signals { grid-template-columns: 1fr; }
	.site-navigation .sub-menu {
		position: static;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.pd-footer__inner {
		grid-template-columns: 1fr 1fr;
		gap: 40px;
	}
}

@media (max-width: 600px) {
	.pd-footer { padding: 60px 20px 0; }
	.pd-footer__inner {
		grid-template-columns: 1fr;
		gap: 36px;
	}
	.pd-footer__bottom-inner {
		flex-direction: column;
		text-align: center;
		gap: 8px;
	}
	.pd-hero__trust { gap: 16px; }
	.pd-visual-frame__badge {
		position: static;
		display: inline-block;
		margin: 0 auto 20px;
		transform: none;
	}
	.pd-visual-frame--upgraded { padding-top: 32px; }
}

@media (max-width: 720px) {
	.pd-hero__cta { flex-direction: column; align-items: flex-start; }
	.pd-hero__cta .pd-btn { width: 100%; justify-content: center; }
	.pd-section--stats-wrap { margin-top: -40px; }
	.pd-stats { padding: 28px 20px; }
	.pd-stat__value { font-size: 2rem; }
}


/* ═══════════════════════════════════════════════════════════════════
   kd1 (2026-07-10) — Transparenter Header, Unterseiten-Hero-Slideshow,
   Prodestek-CTA-Hintergrund, Sticky-Sidebar
   ═══════════════════════════════════════════════════════════════════ */

/* ── Header: fixed & transparent im nicht-scrolled Zustand ── */
body { padding-top: 0 !important; }
.site-header {
  position: fixed !important;
  top: 0; left: 0; right: 0;
  background: transparent !important;
  border-bottom: 0 !important;
  z-index: 100;
  transition: background .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.site-header.pd-scrolled {
  background: rgba(255,255,255,.96) !important;
  border-bottom: 1px solid var(--pd-line) !important;
  box-shadow: 0 1px 8px rgba(0,0,0,.06);
  backdrop-filter: blur(10px);
}

/* Menü + Toggle im nicht-scrolled Zustand: weiß */
.site-header:not(.pd-scrolled) .site-navigation ul.menu > li > a { color: #fff !important; }
.site-header:not(.pd-scrolled) .site-navigation ul.menu > li > a:hover,
.site-header:not(.pd-scrolled) .site-navigation ul.menu > li.current-menu-item > a { color: #fff !important; opacity: .82; }
.site-header:not(.pd-scrolled) .site-navigation .menu-item-has-children > a::after { border-color: #fff !important; }
.site-header:not(.pd-scrolled) .site-description { color: rgba(255,255,255,.85) !important; }
.site-header:not(.pd-scrolled) .site-navigation-toggle,
.site-header:not(.pd-scrolled) .site-navigation-toggle-icon { color: #fff !important; }
.site-header:not(.pd-scrolled) .site-navigation-toggle-icon::before,
.site-header:not(.pd-scrolled) .site-navigation-toggle-icon::after,
.site-header:not(.pd-scrolled) .site-navigation-toggle-icon { background-color: #fff !important; }

/* Logo im nicht-scrolled Zustand: weiße Filter-Invertierung, damit dunkles Logo auf dunklem Hero sichtbar bleibt */
.site-header:not(.pd-scrolled) .site-branding img.custom-logo {
  filter: brightness(0) invert(1);
}

/* Erster Container beginnt genau bei y=0 — Header überlagert ihn */
.site-header + * { margin-top: 0 !important; }

/* Slogan "Dienstleistung mit Anspruch · Karlsruhe" ausblenden */
.site-header .site-description { display: none !important; }

/* ── Unterseiten-Page-Hero: Slideshow mit den 3 Bildern ── */
.pd-page-hero {
  background: #0f1218 !important;
  padding-top: clamp(180px, 14vw, 240px) !important;
}
/* Slideshow-Stage (JS-generiert): Ken-Burns-Zoom + Crossfade */
.pd-page-hero .pd-slideshow-stage {
  position: absolute; inset: 0; z-index: 0; overflow: hidden;
}
.pd-page-hero .pd-slide {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transform: scale(1.02);
  transition: opacity 1.8s ease-in-out;
  will-change: opacity, transform;
}
.pd-page-hero .pd-slide.is-active {
  opacity: 1;
  animation: pdKenBurns 9s ease-out forwards;
}
@keyframes pdKenBurns {
  from { transform: scale(1.02); }
  to   { transform: scale(1.12); }
}
/* Overlay auf Slideshow-Stage für Lesbarkeit */
.pd-page-hero .pd-slideshow-stage::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(rgba(15,18,24,.55), rgba(15,18,24,.70));
  z-index: 2; pointer-events: none;
}
.pd-page-hero > .pd-container { position: relative; z-index: 2; }
/* Roter Radial-Akzent bleibt sichtbar, aber schwächer */
.pd-page-hero::after { z-index: 1; opacity: .5; }

/* ── CTA: Prodestek-Hintergrundbild vollflächig ── */
.pd-section--cta {
  position: relative;
  background-image:
    linear-gradient(rgba(15,18,24,.72), rgba(15,18,24,.82)),
    url("/wp-content/uploads/2026/07/cta-prodestek.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
  background-attachment: fixed;
  background-repeat: no-repeat;
}
@media (max-width: 900px) {
  .pd-section--cta { background-attachment: scroll !important; }
}
.pd-section--cta .pd-container { position: relative; z-index: 2; }

/* ── Sticky Sidebar auf Leistungs-Detailseiten ── */
@media (min-width: 901px) {
  .pd-leistung-sidebar {
    position: sticky;
    top: 110px;
    align-self: start;
    max-height: calc(100vh - 130px);
    overflow-y: auto;
    padding-right: 6px;
  }
  .pd-leistung-sidebar::-webkit-scrollbar { width: 6px; }
  .pd-leistung-sidebar::-webkit-scrollbar-thumb { background: rgba(0,0,0,.15); border-radius: 3px; }
}

/* ── Home-Hero kompakter für Above-the-fold ── */
.pd-hero--upgraded .pd-hero__inner { padding-top: 0 !important; }
.pd-hero--upgraded h1 { font-size: clamp(2rem, 5vw, 3.4rem) !important; margin: 12px 0 !important; line-height: 1.15 !important; }
.pd-hero--upgraded .pd-hero__lead { font-size: clamp(0.95rem, 1.2vw, 1.05rem) !important; margin: 10px 0 20px !important; line-height: 1.55 !important; }
.pd-hero__cta { margin-top: 18px !important; }
.pd-hero__trust { margin-top: 22px !important; gap: 12px 20px !important; }

/* ── Elementor-Editor + Preview: Header nicht mehr fixed, damit Editor-Chrome funktioniert ── */
body.elementor-editor-active .site-header,
body.elementor-editor-preview .site-header,
body.elementor-preview .site-header {
  position: relative !important;
  background: #fff !important;
}
body.elementor-editor-active .site-header .site-navigation ul.menu > li > a,
body.elementor-editor-preview .site-header .site-navigation ul.menu > li > a {
  color: var(--pd-text) !important;
}
body.elementor-editor-active .site-header .site-branding img.custom-logo,
body.elementor-editor-preview .site-header .site-branding img.custom-logo {
  filter: none !important;
}

/* Leere Elementor-Content-Section nur im Frontend (nicht im Editor/Preview) ausblenden */
body:not(.elementor-editor-active):not(.elementor-preview) .pd-front-content:empty,
body:not(.elementor-editor-active):not(.elementor-preview) .pd-front-content > .pd-container:empty { display: none !important; }
/* Editor-Bereich: Section immer sichtbar + minimum Höhe für Drop-Zone */
body.elementor-editor-active .pd-front-content,
body.elementor-preview .pd-front-content { min-height: 120px !important; padding: 40px 0 !important; }


/* ═══════════════════════════════════════════════════════════════════
   MOBILE-OPTIMIERUNGEN (2026-07-10)
   ═══════════════════════════════════════════════════════════════════ */

/* ── ≤ 768px: Handy-Layout ── */
@media (max-width: 768px) {

  /* Header: Padding + Logo kompakter */
  .site-header { padding: 10px 0 !important; }
  .site-header .header-inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
    gap: 12px !important;
  }
  .site-header .site-branding img.custom-logo {
    max-height: 38px !important;
    max-width: 180px !important;
    height: auto !important;
    width: auto !important;
  }
  /* Toggle sichtbar & tap-freundlich */
  .site-header .site-navigation-toggle {
    width: 44px !important;
    height: 44px !important;
    padding: 10px !important;
  }

  /* Mobile-Drawer */
  .site-navigation-dropdown {
    max-height: calc(100vh - 70px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .site-navigation-dropdown ul.menu > li > a {
    padding: 14px 20px !important;
    font-size: 1rem !important;
    border-bottom: 1px solid rgba(0,0,0,.06);
  }
  .site-navigation-dropdown .sub-menu {
    background: #f7f7f5;
  }
  .site-navigation-dropdown .sub-menu li a {
    padding: 11px 20px 11px 36px !important;
    font-size: .92rem !important;
    color: #555 !important;
  }

  /* Home-Hero — kompakter */
  .pd-hero {
    padding: 90px 20px 40px !important;
    min-height: auto !important;
  }
  .pd-hero--upgraded h1 {
    font-size: clamp(1.6rem, 7vw, 2rem) !important;
    line-height: 1.2 !important;
    margin: 10px 0 !important;
  }
  .pd-hero--upgraded .pd-hero__lead {
    font-size: .95rem !important;
    line-height: 1.55 !important;
    margin: 10px 0 18px !important;
  }
  .pd-hero__cta {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    margin-top: 16px !important;
  }
  .pd-hero__cta .pd-btn {
    width: 100%;
    justify-content: center;
    padding: 14px 20px !important;
    font-size: .95rem !important;
  }
  .pd-hero__trust {
    margin-top: 24px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 8px 12px !important;
    justify-content: flex-start;
  }
  .pd-hero__trust-item {
    font-size: .78rem !important;
    gap: 6px !important;
  }
  .pd-eyebrow, .pd-hero__eyebrow {
    font-size: .68rem !important;
  }

  /* Sections generell kompakter */
  .pd-section {
    padding: 50px 18px !important;
  }
  .pd-section-head h2 {
    font-size: clamp(1.4rem, 5vw, 1.8rem) !important;
  }

  /* Leistungs-Grid: 1 Spalte */
  .pd-leistungen {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .pd-leistung-card {
    padding: 22px !important;
  }
  /* Icon-Variante: braucht extra Platz oben fuer absolutes Icon+Nummer */
  .pd-leistungen--icons .pd-leistung-card--icon {
    padding: 78px 22px 22px !important;
  }
  .pd-leistungen--icons .pd-leistung-card__iconwrap {
    top: 18px !important;
    left: 22px !important;
  }
  .pd-leistungen--icons .pd-leistung-card__num {
    top: 18px !important;
    right: 22px !important;
  }
  .pd-leistung-card__title { font-size: 1.05rem !important; }
  .pd-leistung-card__desc  { font-size: .9rem !important;  }

  /* Steps: 1 Spalte */
  .pd-steps {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
  .pd-step { padding: 22px !important; }

  /* Page-Hero Unterseiten */
  .pd-page-hero {
    padding: 110px 18px 50px !important;
    min-height: auto !important;
  }
  .pd-page-hero h1 {
    font-size: clamp(1.6rem, 6vw, 2rem) !important;
    margin: 8px 0 12px !important;
  }
  .pd-page-hero .pd-hero__lead {
    font-size: .95rem !important;
  }
  .pd-breadcrumb {
    font-size: .78rem !important;
    flex-wrap: wrap;
  }
  .pd-leistung-hero {
    flex-direction: column !important;
    gap: 16px !important;
    align-items: flex-start !important;
  }
  .pd-leistung-hero__icon {
    flex: 0 0 64px !important;
    width: 64px !important;
    height: 64px !important;
  }
  .pd-leistung-hero__icon svg { width: 32px !important; height: 32px !important; }

  /* Leistungs-Detail: Sidebar unter Content */
  .pd-leistung-body {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .pd-leistung-content { font-size: .98rem !important; }
  .pd-sidebar-block { padding: 20px !important; }

  /* CTA-Section auf Home + Unterseiten */
  .pd-section--cta {
    padding: 60px 18px !important;
    background-attachment: scroll !important;
  }
  .pd-section--cta h2 {
    font-size: clamp(1.4rem, 5vw, 1.9rem) !important;
    margin: 0 0 12px !important;
  }
  .pd-section--cta .pd-lead,
  .pd-section--cta p {
    font-size: .95rem !important;
    margin: 12px auto 22px !important;
  }
  .pd-section--cta .pd-btn { width: 100%; justify-content: center; }
  .pd-section--cta > .pd-container > div[style*="display:flex"] {
    flex-direction: column !important;
    gap: 10px !important;
  }

  /* Footer */
  .pd-footer { padding: 40px 18px 24px !important; }
  .pd-footer__bottom { flex-direction: column !important; align-items: flex-start !important; gap: 10px !important; }

  /* Kontakt-Formular */
  .contact-form input,
  .contact-form textarea { font-size: 16px !important; } /* verhindert iOS-Zoom */
}

/* ── ≤ 480px: sehr schmale Handys ── */
@media (max-width: 480px) {
  .site-header .site-branding img.custom-logo {
    max-height: 34px !important;
    max-width: 150px !important;
  }
  .pd-hero { padding: 80px 16px 32px !important; }
  .pd-hero--upgraded h1 { font-size: 1.55rem !important; }
  .pd-hero__trust {
    grid-template-columns: 1fr !important;
  }
  .pd-section { padding: 40px 16px !important; }
  .pd-page-hero { padding: 100px 16px 40px !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   [ec-mobile-2026-07-13] Mobile-Optimierung + Submenu-Overflow-Fix
   ═══════════════════════════════════════════════════════════════════ */

/* Desktop-Submenu: bei vielen Items scrollbar statt clip (falls Erwin
   wieder Leistungen ergaenzt und das Dropdown ueber den Viewport waechst) */
.site-navigation .sub-menu {
  max-height: calc(100vh - 140px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,.25) transparent;
}
.site-navigation .sub-menu::-webkit-scrollbar { width: 6px; }
.site-navigation .sub-menu::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,.25);
  border-radius: 3px;
}
.site-navigation .sub-menu::-webkit-scrollbar-track { background: transparent; }

/* Auf Mobile ist das Submenu inline (position:static laut 900px-Query),
   dort keine max-height noetig */
@media (max-width: 900px) {
  .site-navigation .sub-menu {
    max-height: none;
    overflow-y: visible;
  }
}

/* Leistungs-Kacheln: engeres Padding + kompaktere Typo auf schmalen Screens */
@media (max-width: 600px) {
  .pd-leistungen { gap: 14px; margin-top: 30px; }
  .pd-leistung-card { padding: 22px 20px; border-radius: 12px; }
  .pd-leistung-card__title { font-size: 1.08rem; }
  .pd-leistung-card__desc { font-size: 0.92rem; line-height: 1.55; }
  .pd-leistung-card__arrow { margin-top: 14px; font-size: 0.78rem; }
}

/* Ganz kleine Screens: garantiert 1 Spalte */
@media (max-width: 460px) {
  .pd-leistungen { grid-template-columns: 1fr; }
}

/* Container-Innenrand auf Mobile enger */
@media (max-width: 480px) {
  .pd-container { padding-left: 16px; padding-right: 16px; }
}

/* Fliesstext-Groessen auf Mobile leicht angepasst */
@media (max-width: 480px) {
  .pd-hero__lead, .pd-lead { font-size: 0.95rem; line-height: 1.55; }
  .pd-section-head h2 { font-size: 1.55rem; line-height: 1.25; }
}

/* Touch-Targets: mindestens 44px auf Mobile (Apple/Google Guideline) */
@media (max-width: 900px) {
  .pd-btn { min-height: 44px; padding-top: 12px; padding-bottom: 12px; }
  .site-navigation .menu-item > a {
    min-height: 44px;
    display: flex;
    align-items: center;
  }
}

/* CTA-Sektion auf Mobile weniger vertikal Padding */
@media (max-width: 600px) {
  .pd-section--cta { padding: 50px 20px !important; }
  .pd-section--cta h2 { font-size: 1.5rem !important; line-height: 1.2; }
}

/* Bilder in Content-Bloecken bruchsicher */
.pd-section img, .pd-container img {
  max-width: 100%;
  height: auto;
}

/* Horizontales Overflow verhindern (Screen-Reader/kleine Devices) */
html, body { overflow-x: hidden; }


/* ═══════════════════════════════════════════════════════════════════
   pdmn — Prodestek Mobile Nav (eigenstaendig, KEINE Widget-Beruehrung)
   Widget-Nav wird auf Mobile hart versteckt, neues Menue per JS gebaut.
   ═══════════════════════════════════════════════════════════════════ */

/* Widget-Nav aus dem Weg raeumen auf Mobile */
@media (max-width: 1024px) {
  .site-header .site-navigation,
  .site-header .site-navigation-toggle-holder,
  .site-navigation-dropdown {
    display: none !important;
  }
}
/* Und meine eigenen Elemente nur auf Mobile */
@media (min-width: 1025px) {
  .pdmn-toggle,
  .pdmn-overlay,
  .pdmn-drawer {
    display: none !important;
  }
}

/* Hamburger-Button (im Header, fixed rechts als absolute-Anker) */
.pdmn-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
  color: inherit;
  position: fixed;
  top: 14px;
  right: 14px;
  z-index: 10001;
}
@media (max-width: 1024px) {
  .pdmn-toggle { display: inline-flex; }
}
.pdmn-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transition: transform .25s ease, opacity .2s ease;
}
body.pdmn-open .pdmn-toggle span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
body.pdmn-open .pdmn-toggle span:nth-child(2) {
  opacity: 0;
}
body.pdmn-open .pdmn-toggle span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}
/* Hamburger dunkel, wenn Header nicht mehr transparent oder Drawer offen */
.pd-scrolled .pdmn-toggle,
body.pdmn-open .pdmn-toggle {
  color: #0f172a;
}

/* Overlay */
.pdmn-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15,23,42,.5);
  z-index: 9998;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}
body.pdmn-open .pdmn-overlay {
  opacity: 1;
  pointer-events: auto;
}

/* Drawer */
.pdmn-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: min(320px, 88vw);
  height: 100vh;
  background: #fff;
  z-index: 9999;
  padding: 72px 0 32px;
  transform: translateX(100%);
  transition: transform .3s ease;
  box-shadow: -20px 0 60px -30px rgba(0,0,0,.35);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
body.pdmn-open .pdmn-drawer {
  transform: translateX(0);
}
body.pdmn-open { overflow: hidden; }

/* Close X */
.pdmn-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(15,23,42,.08);
  border: 0;
  border-radius: 50%;
  color: #0f172a;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  z-index: 2;
}
.pdmn-close:hover { background: rgba(15,23,42,.14); }

/* Menu */
.pdmn-menu {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.pdmn-menu > li {
  list-style: none !important;
  border-bottom: 1px solid rgba(0,0,0,.06);
  display: block !important;
}
.pdmn-menu > li > a {
  display: block !important;
  padding: 14px 20px !important;
  color: #0f172a !important;
  text-decoration: none !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  position: relative;
  background: transparent !important;
}
.pdmn-menu > li > a:hover,
.pdmn-menu > li > a:active {
  background: rgba(15,23,42,.04) !important;
}

/* Parent-Item mit Kindern: Chevron rechts */
.pdmn-has-children > a {
  padding-right: 48px !important;
}
/* Chevron-Button (echt klickbar, togglet Submenu; Text-Link daneben navigiert normal) */
.pdmn-chevron {
  position: absolute;
  top: 0;
  right: 0;
  width: 52px;
  height: 100%;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0;
  border-left: 1px solid rgba(0,0,0,.06);
  cursor: pointer;
  color: #64748b;
  padding: 0;
  z-index: 5;
}
.pdmn-chevron::before {
  content: '';
  width: 10px;
  height: 10px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform .2s ease;
}
.pdmn-has-children.pdmn-item-open > .pdmn-chevron::before {
  transform: rotate(-135deg) translate(-2px, -2px);
}
.pdmn-chevron:hover,
.pdmn-chevron:active { background: rgba(15,23,42,.05); }
/* Parent-Link braucht rechts Platz fuer den Chevron-Button */
.pdmn-has-children > a { padding-right: 60px !important; }

/* Submenu */
.pdmn-submenu {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #f7f7f5 !important;
  display: none !important;
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
}
.pdmn-has-children.pdmn-item-open > .pdmn-submenu {
  display: block !important;
}
.pdmn-submenu li {
  list-style: none !important;
  border-bottom: 1px solid rgba(0,0,0,.04);
  display: list-item !important;
}
.pdmn-submenu li:last-child {
  border-bottom: 0;
}
.pdmn-submenu a {
  display: block !important;
  padding: 12px 20px 12px 36px !important;
  color: #475569 !important;
  text-decoration: none !important;
  font-size: .95rem !important;
  background: transparent !important;
}
.pdmn-submenu a:hover,
.pdmn-submenu a:active {
  background: rgba(15,23,42,.05) !important;
}

/* ─── Leistungs-Card Featured Image (Prototyp 2026-07-17) ─── */
.pd-leistung-card__img {
	display: block;
	width: calc(100% + 56px);
	height: 180px;
	object-fit: cover;
	margin: -32px -28px 22px;
	border-radius: 14px 14px 0 0;
}
@media (max-width: 768px) {
	.pd-leistung-card__img {
		height: 150px;
		width: calc(100% + 44px);
		margin: -22px -22px 18px;
		border-radius: 12px 12px 0 0;
	}
}
