/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.17
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* CS Gebäudereinigung — child overrides. Prefix: cs- */

body {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	font-family: Manrope, system-ui, -apple-system, "Segoe UI", sans-serif;
	color: #3A3F44;
}

.elementor-location-footer {
	margin-top: auto;
}

/* Header über den Seiteninhalt stapeln.
   Ohne eigenen z-index verschwinden die Menü-Dropdowns hinter
   positionierten Sektionen (z. B. .cs-home-hero-card, z-index 2). */
.elementor-location-header {
	position: relative;
	z-index: 100;
}

.cs-nav .elementor-nav-menu--dropdown,
.cs-nav .elementor-nav-menu__container {
	z-index: 101;
}

/* Hello Theme default a { color: #c36 } */
a {
	color: #1F2326;
}

a:hover {
	color: #7A6233;
}

.cs-header .elementor-button,
.cs-header .elementor-button-text,
.cs-footer .elementor-button,
.cs-footer .elementor-button-text {
	white-space: nowrap;
	font-weight: 700;
}

/* Logo: shrink-wrap, height 84, width auto */
.cs-logo,
.cs-logo .elementor-widget-container,
.cs-logo .elementor-image {
	width: auto !important;
	max-width: max-content;
	flex: 0 0 auto !important;
	align-self: center !important;
}

.cs-logo img {
	height: 84px !important;
	width: auto !important;
	max-width: none !important;
}

/* Nav */
.cs-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a {
	font-weight: 600;
	white-space: nowrap;
	color: #1F2326;
}

.cs-nav .elementor-nav-menu--main .sub-arrow i,
.cs-nav .elementor-nav-menu--main .sub-arrow svg {
	color: #B8964E;
	fill: #B8964E;
}

.cs-header-tel .elementor-button-icon i,
.cs-header-tel .elementor-button-icon svg,
.cs-footer-contact .elementor-button-icon i,
.cs-footer-contact .elementor-button-icon svg {
	color: #B8964E !important;
	fill: #B8964E !important;
}

/* Footer card: 3-stop gradient (Elementor native = 2 stops) */
.cs-footer-card {
	background-color: #1F2326;
	background-image: linear-gradient(180deg, #F4F3F0 0%, #5A5F65 14%, #1F2326 30%) !important;
}

.cs-footer a,
.cs-footer .elementor-icon-list-text,
.cs-footer .elementor-icon-list-item a,
.cs-footer .elementor-icon-list-item .elementor-icon-list-text {
	color: rgba(255, 255, 255, 0.78) !important;
}

.cs-footer a:hover,
.cs-footer .elementor-icon-list-item a:hover,
.cs-footer .elementor-icon-list-item a:hover .elementor-icon-list-text {
	color: #D9C48A !important;
}

.cs-footer .elementor-heading-title {
	font-weight: 700 !important;
	color: #ffffff;
}

.cs-footer .elementor-icon-list-icon {
	display: none;
}

.cs-footer .elementor-icon-list-items {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cs-footer-cols.e-grid > .e-con-inner {
	--e-con-grid-template-columns: repeat(4, 1fr);
	grid-template-columns: repeat(4, 1fr) !important;
}

@media (max-width: 1024px) {
	.cs-footer-cols.e-grid > .e-con-inner {
		--e-con-grid-template-columns: repeat(2, 1fr);
		grid-template-columns: repeat(2, 1fr) !important;
	}

	.cs-logo img {
		height: 64px !important;
	}
}

@media (max-width: 767px) {
	.cs-footer-cols.e-grid > .e-con-inner {
		--e-con-grid-template-columns: 1fr;
		grid-template-columns: 1fr !important;
	}
}

/* —— Startseite Hero —— */
.cs-home-hero-stage {
	position: relative;
	overflow: visible;
}

.cs-home-hero-stage .cs-home-hero-img img,
.cs-home-hero-stage .elementor-widget-image img {
	width: 100% !important;
	height: 660px !important;
	object-fit: cover !important;
	border-radius: 24px;
	display: block;
}

.cs-home-hero-card {
	position: absolute !important;
	top: 50%;
	left: 64px;
	transform: translateY(-50%);
	width: 520px !important;
	max-width: calc(100% - 100px);
	z-index: 2;
}

.cs-home-hero-card .elementor-button,
.cs-home-hero-card .elementor-button-text {
	white-space: nowrap;
	font-weight: 700 !important;
}

/* SOLL: CTAs nebeneinander, nicht gestapelt */
.cs-home-hero-ctas,
.cs-home-hero-ctas.e-con,
.cs-home-hero-ctas > .e-con-inner {
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	gap: 12px !important;
}

.cs-home-hero-ctas .elementor-widget-button,
.cs-home-hero-ctas .elementor-widget-button .elementor-widget-container,
.cs-home-hero-ctas .elementor-button {
	width: auto !important;
	max-width: max-content !important;
	flex: 0 0 auto !important;
}

/* SOLL chips: 1. allein, 2.+3. in einer Zeile */
.cs-home-hero-chips .elementor-icon-list-items,
.cs-home-hero-card .elementor-icon-list-items {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 10px 16px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.cs-home-hero-chips .elementor-icon-list-item,
.cs-home-hero-card .elementor-icon-list-item {
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
	flex: 0 0 auto !important;
}

.cs-home-hero-chips .elementor-icon-list-item:first-child,
.cs-home-hero-card .elementor-widget-icon-list .elementor-icon-list-item:first-child {
	flex: 0 0 100% !important;
	width: 100% !important;
}

@media (max-width: 1024px) {
	.cs-home-hero-stage .elementor-widget-image img {
		height: 480px !important;
	}

	.cs-home-hero-card {
		left: 24px;
		width: min(420px, calc(100% - 48px)) !important;
	}
}

@media (max-width: 767px) {
	.cs-home-hero-stage .elementor-widget-image img {
		height: 360px !important;
	}

	.cs-home-hero-card {
		position: relative !important;
		top: auto;
		left: auto;
		transform: none;
		width: 100% !important;
		max-width: 100%;
		margin-top: 16px;
	}
}

/* —— Startseite: Steps —— */
.cs-home-steps-row {
	align-items: flex-start;
}

.cs-home-steps-row > .e-con-inner {
	align-items: flex-start !important;
	justify-content: center !important;
	flex-wrap: wrap !important;
}

.cs-home-steps-item {
	text-align: center;
	width: 280px !important;
	max-width: 280px;
	flex: 0 0 280px !important;
}

.cs-home-steps-icon {
	width: 120px !important;
	height: 120px !important;
	margin: 0 auto;
	flex: 0 0 auto !important;
}

.cs-home-steps-connector {
	width: 110px !important;
	height: 24px !important;
	min-height: 24px !important;
	flex: 0 0 110px !important;
	max-width: 110px !important;
	margin-top: 48px;
	padding: 0 !important;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='110' height='24' viewBox='0 0 110 24'%3E%3Cline x1='2' y1='12' x2='96' y2='12' stroke='%23C9CCD1' stroke-width='2' stroke-dasharray='6 6'/%3E%3Cpath d='M96 6 L106 12 L96 18' fill='none' stroke='%23C9CCD1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	align-self: flex-start;
	pointer-events: none;
}

/* Legacy grid connectors (kept for older markup) */
.cs-home-steps-grid.e-grid > .e-con-inner {
	position: relative;
}

@media (min-width: 768px) {
	.cs-home-steps-grid.e-grid > .e-con-inner > .cs-home-steps-item:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 60px;
		left: calc(33.333% - 55px);
		width: 110px;
		height: 24px;
		background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='110' height='24' viewBox='0 0 110 24'%3E%3Cline x1='2' y1='12' x2='96' y2='12' stroke='%23C9CCD1' stroke-width='2' stroke-dasharray='6 6'/%3E%3Cpath d='M96 6 L106 12 L96 18' fill='none' stroke='%23C9CCD1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
		pointer-events: none;
		z-index: 0;
	}

	.cs-home-steps-grid.e-grid > .e-con-inner > .cs-home-steps-item:nth-child(2)::after {
		left: calc(66.666% - 55px);
	}
}

@media (max-width: 767px) {
	.cs-home-steps-connector {
		display: none !important;
	}

	.cs-home-steps-item {
		width: 100% !important;
		max-width: 100%;
		flex: 1 1 100% !important;
	}
}

/* —— Startseite: Über uns overlap —— */
.cs-home-about {
	position: relative;
	z-index: 2;
}

/* —— Startseite: Benefits —— */
.cs-home-benefits {
	position: relative !important;
	overflow: visible;
}

.cs-home-benefits-cta {
	position: absolute !important;
	left: 50%;
	bottom: -26px;
	transform: translateX(-50%);
	width: auto !important;
	max-width: max-content;
	z-index: 3;
}

.cs-home-benefits-cta .elementor-button,
.cs-home-benefits-cta .elementor-widget-button {
	width: auto !important;
	max-width: max-content;
	flex: 0 0 auto !important;
	box-shadow: 0 8px 24px rgba(31, 35, 38, 0.14);
}

.cs-home-benefits-stat-wide .elementor-heading-title {
	font-size: clamp(1.4rem, 2.4vw, 2.125rem) !important;
	line-height: 1.3 !important;
}

/* —— Startseite: Services cards —— */
.cs-home-services-card {
	background-image: linear-gradient(180deg, rgba(217, 196, 138, 0.1) 0%, #ffffff 100%) !important;
}

.cs-home-services-card .elementor-widget-button,
.cs-home-services-card .elementor-button {
	width: auto !important;
	max-width: max-content;
	align-self: flex-start;
	margin-left: 6px;
}

/* —— Startseite: Reviews —— */
.cs-home-reviews {
	position: relative;
	overflow: visible;
}

.cs-home-reviews-row .cs-home-reviews-nav .elementor-button {
	width: 52px !important;
	height: 52px !important;
	min-width: 52px;
	padding: 0 !important;
	border-radius: 50% !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	line-height: 1;
}

.cs-home-reviews-google {
	position: absolute !important;
	left: 50%;
	bottom: -28px;
	transform: translateX(-50%);
	width: auto !important;
	max-width: max-content;
	z-index: 2;
}

.cs-home-reviews-google::before {
	content: "";
	display: inline-block;
	width: 22px;
	height: 22px;
	flex: 0 0 22px;
	margin-right: 4px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23EA4335' d='M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z'/%3E%3Cpath fill='%234285F4' d='M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z'/%3E%3Cpath fill='%23FBBC05' d='M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z'/%3E%3Cpath fill='%2334A853' d='M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.cs-home-reviews-google > .e-con-inner {
	display: inline-flex !important;
	flex-direction: row !important;
	align-items: center !important;
	width: auto !important;
	flex-wrap: nowrap !important;
}

/* —— Startseite: Form —— */
.cs-home-form-panel .elementor-field-group {
	margin-bottom: 0;
}

.cs-home-form-garantie > .e-con-inner {
	align-items: flex-start !important;
}

/* —— Startseite: FAQ accordion —— */
.cs-home-faq-accordion-wrap .e-n-accordion-item {
	border: 1px solid #C9CCD1;
	border-radius: 14px;
	margin-bottom: 12px;
	overflow: hidden;
}

.cs-home-faq-accordion-wrap .e-n-accordion-item:last-child {
	margin-bottom: 0;
}

.cs-home-faq-phone .elementor-button {
	width: auto !important;
	max-width: max-content;
}

/* —— Startseite: Career —— */
.cs-home-career-cta .elementor-button,
.cs-home-career-cta .elementor-widget-button {
	width: auto !important;
	max-width: max-content;
}

/* Shrink-wrap buttons site-wide on home sections */
.cs-home-about .elementor-button,
.cs-home-form .elementor-button,
.cs-eyebrow .elementor-widget-icon,
.cs-eyebrow .elementor-widget-heading {
	width: auto !important;
	max-width: max-content;
	flex: 0 0 auto !important;
}

@media (max-width: 1024px) {
	.cs-home-steps-grid.e-grid > .e-con-inner > .cs-home-steps-item::after {
		display: none;
	}

	.cs-home-steps-connector {
		display: none !important;
	}

	.cs-home-reviews-row {
		flex-direction: column !important;
	}

	.cs-home-reviews-row .cs-home-reviews-nav {
		display: none;
	}

	.cs-home-form-grid.e-grid > .e-con-inner,
	.cs-home-faq-grid.e-grid > .e-con-inner {
		grid-template-columns: 1fr !important;
	}
}

/* —— Leistungsseiten —— */
/* Floating inset cards: bg/radius on outer .e-con (not .e-con-inner) */
.cs-inset-card {
	width: 100% !important;
	max-width: 1440px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box;
}

.cs-service-card {
	background-image: linear-gradient(180deg, rgba(217, 196, 138, 0.1) 0%, #fff 100%) !important;
}

.cs-service-hero .elementor-widget-image img,
.cs-city-hero .elementor-widget-image img {
	border-radius: 20px;
	object-fit: cover;
}

.cs-service-chips .elementor-icon-list-icon svg {
	width: 18px;
	height: 18px;
	fill: #B8964E;
}

.cs-service-form-card {
	background-image: linear-gradient(180deg, rgba(217, 196, 138, 0.35) 0%, #fff 65%) !important;
}

.cs-service-nr-badge {
	width: 54px !important;
	min-width: 54px !important;
	max-width: 54px !important;
	min-height: 54px !important;
	align-self: flex-start !important;
}

.cs-service-hero-ctas .elementor-button,
.cs-service-city-chip .elementor-button,
.cs-service-callout .elementor-button,
.cs-service-direkt .elementor-button,
.cs-service-weitere-card .elementor-button {
	width: auto !important;
	max-width: max-content;
	flex: 0 0 auto !important;
}

.cs-service-city-chip .elementor-button {
	width: 100% !important;
	max-width: none;
	justify-content: flex-start;
}

.cs-service-table {
	overflow: hidden;
}

@media (max-width: 1024px) {
	.cs-service-hero-grid.e-grid > .e-con-inner,
	.cs-service-vorteile-grid.e-grid > .e-con-inner,
	.cs-service-middle-grid.e-grid > .e-con-inner,
	.cs-service-einsatz-grid.e-grid > .e-con-inner,
	.cs-service-faq-grid.e-grid > .e-con-inner,
	.cs-service-anfrage-grid.e-grid > .e-con-inner,
	.cs-service-ablauf-grid.e-grid > .e-con-inner,
	.cs-service-umfang-grid.e-grid > .e-con-inner,
	.cs-service-preis-grid.e-grid > .e-con-inner,
	.cs-service-weitere-grid.e-grid > .e-con-inner,
	.cs-company-haltung-grid.e-grid > .e-con-inner,
	.cs-company-stats-grid.e-grid > .e-con-inner,
	.cs-company-kunden-grid.e-grid > .e-con-inner,
	.cs-company-karriere-grid.e-grid > .e-con-inner,
	.cs-career-vorteile-grid.e-grid > .e-con-inner,
	.cs-career-ablauf-grid.e-grid > .e-con-inner,
	.cs-career-job-row.e-grid > .e-con-inner,
	.cs-contact-hero-grid.e-grid > .e-con-inner,
	.cs-contact-cards-grid.e-grid > .e-con-inner {
		grid-template-columns: 1fr !important;
	}
}

/* —— Company / Karriere / Kontakt / Legal —— */
.cs-career-job-row .elementor-button,
.cs-contact-info-card .elementor-button {
	width: auto !important;
	max-width: max-content;
	flex: 0 0 auto !important;
}

.cs-legal-content-max {
	max-width: 840px;
	margin-left: auto;
	margin-right: auto;
}

/* Stadtseiten-Hero: KI-Stadtillustration mit Label unten rechts (wie /einsatzgebiet/) */
.cs-city-hero-media {
	position: relative;
}
.cs-city-hero .cs-city-hero-media .cs-ai-label img,
.cs-city-hero-media .cs-ai-label img {
	height: auto !important;
	width: 100% !important;
	object-fit: contain !important;
	border-radius: 0 !important;
}

/* Rechtstexte aus eRecht24 (Datenschutz): Gliederung im Text-Editor */
.cs-legal-block .elementor-widget-text-editor h3 {
	margin: 32px 0 10px;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.35;
	color: #1F2326;
}
.cs-legal-block .elementor-widget-text-editor h4 {
	margin: 22px 0 8px;
	font-size: 16.5px;
	font-weight: 700;
	line-height: 1.4;
	color: #1F2326;
}
.cs-legal-block .elementor-widget-text-editor h3:first-child,
.cs-legal-block .elementor-widget-text-editor h4:first-child {
	margin-top: 0;
}
.cs-legal-block .elementor-widget-text-editor p {
	margin: 0 0 14px;
}
.cs-legal-block .elementor-widget-text-editor ul {
	margin: 0 0 14px;
	padding-left: 22px;
}
.cs-legal-block .elementor-widget-text-editor li {
	margin-bottom: 8px;
}
.cs-legal-block .elementor-widget-text-editor > :last-child,
.cs-legal-block .elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}
.cs-legal-block .elementor-widget-text-editor a {
	color: #7A6233;
	text-decoration: underline;
	overflow-wrap: anywhere;
}

/* ============================================================
   Header-Overflow-Fix (2026-09-16)
   Ursache: Spalten 25% / 100% / 25% = 150% -> Flex schrumpfte alle
   auf 2/3; die CTA-Spalte bekam 228px statt 403px und "Angebot
   anfragen" ragte aus dem Viewport. Auf jeder Seite entstand ein
   horizontaler Scrollbalken bis 1919px Breite. Container-Breiten
   sind in Template 70 korrigiert; hier nur Logo-Groesse + die
   Stufen fuer schmale Notebooks.
   Benoetigte Header-Breite: Logo 234 + Menue 707 + CTA 403 = 1344px
   ============================================================ */

/* Logo: feste Hoehe aus dem Design, Breite ergibt sich (700x250).
   ID-Selektor, weil das Live-Template 70 keine .cs-logo-Klasse traegt.
   17.09.2026: 58 -> 84px auf Kundenwunsch ("Logo praesenter"). */
.elementor-70 .elementor-element-b05d705 img {
	height: 84px;
	width: auto;
	display: block;
}

/* 1025-1319px: Platz reicht nicht fuer Telefon + Button nebeneinander.
   Die Telefonnummer weicht; sie steht weiterhin im Footer, auf
   /kontakt/ und in jedem Seiten-CTA. */
@media (max-width: 1319px) {
	.elementor-70 .cs-header-tel {
		display: none !important;
	}
}

/* 1025-1199px: zusaetzlich Logo und Menue enger stellen. */
@media (max-width: 1199px) and (min-width: 1025px) {
	.elementor-70 .elementor-element-b05d705 img {
		height: 66px;
	}
	.elementor-70 .elementor-element-ce9befb {
		--e-nav-menu-horizontal-menu-item-margin: calc(16px / 2);
	}
	.elementor-70 .elementor-element-ce9befb .elementor-nav-menu .elementor-item {
		font-size: 14px;
	}
}

/* Ab 1024px uebernimmt das Burger-Menue - hier nur noch Logo skalieren. */
@media (max-width: 1024px) {
	.elementor-70 .elementor-element-b05d705 img {
		height: 70px;
	}
}

@media (max-width: 767px) {
	.elementor-70 .elementor-element-b05d705 img {
		height: 56px;
	}
	.elementor-70 .elementor-element-0dca85a .elementor-button {
		font-size: 14px;
		padding: 11px 18px;
	}
}

/* Sicherheitsnetz: nichts im Header darf je den Viewport sprengen. */
.elementor-70 .elementor-element-ef49b31 {
	max-width: 100%;
}

/* ============================================================
   Mobile-Overflow-Fix (2026-09-24)
   Ursache 1: .cs-inset-card behielt auf Tablet/Handy die Desktop-
   Innenabstaende (64 bzw. 80px) -> bei 390px blieben 182-214px
   Textbreite. Die H1 (42px) passte mit langen Woertern wie
   "Gebaeudereinigung" / "Datenschutzerklaerung" nicht hinein und
   schob die Seite seitlich auf (bis +184px).
   Ursache 2: .cs-home-hero-ctas erzwingt nowrap (Desktop-SOLL) -
   auf dem Handy passen die zwei Buttons nicht nebeneinander.
   Das Design (.dc.html) definiert keine Mobilwerte.
   ============================================================ */
@media (max-width: 1024px) {
	.cs-inset-card {
		--padding-top: 48px !important;
		--padding-bottom: 48px !important;
		--padding-left: 40px !important;
		--padding-right: 40px !important;
	}
}

@media (max-width: 767px) {
	.cs-inset-card {
		--padding-top: 36px !important;
		--padding-bottom: 36px !important;
		--padding-left: 20px !important;
		--padding-right: 20px !important;
	}

	/* Nur Unterseiten-Heros; die Startseite hat eigene 28px (Page 4) */
	.cs-inset-card h1.elementor-heading-title {
		font-size: 30px !important;
		line-height: 1.2 !important;
	}

	/* Lange deutsche Komposita trennen statt ueberlaufen lassen */
	[data-elementor-type="wp-page"] .elementor-heading-title {
		overflow-wrap: break-word;
		-webkit-hyphens: auto;
		hyphens: auto;
	}

	.cs-home-hero-ctas,
	.cs-home-hero-ctas.e-con,
	.cs-home-hero-ctas > .e-con-inner {
		flex-wrap: wrap !important;
	}
}

/* ============================================================
   Mobil- und Tablet-Regeln (2026-09-29)
   Handy < 768 (Vorgabe Nutzer): Aussenabstand 24, Sektionsabstand
   64, H1 34 / H2 27 / H3 21 / Text 16 / 1.65, Eyebrow 11,
   Feinabdruck 14, Header 64 sticky (Logo 36, Telefon + Burger
   44 x 44, Untermenues flach), Hero-Buttons volle Breite 54,
   Tap-Targets >= 52, Kontaktzeilen 60, Kennzahlen 2 x 2.
   Tablet 768-1024 (Vorschlag, vom Nutzer freigegeben): Header 72
   sticky, Logo 44, CTA bleibt; Hero Text ueber Bild; H1 40 / H2 30 /
   H3 22; Aussenabstand 32, Sektionsabstand 80; Tap-Targets 52.
   Aufbau: gemeinsame Regeln <= 1024, dann Tablet, dann Handy.
   ============================================================ */

/* —— Gemeinsam: Tablet + Handy (<= 1024) ———————————————— */
@media (max-width: 1024px) {

	:root {
		--cs-header-h: 72px;
	}

	/* Raster: Elementor verteilt die Zeilen als gleich hohe 1fr-Zeilen.
	   Einspaltig bekommt dadurch jede Zeile die Hoehe des hoechsten
	   Blocks -> bis zu 850 px Leerraum. */
	.e-con.e-grid,
	.e-con.e-grid > .e-con-inner {
		--e-con-grid-template-rows: none !important;
		grid-template-rows: none !important;
		grid-auto-rows: auto !important;
	}

	/* Header sticky, eine Zeile: Logo | Telefon (+ CTA) | Burger */
	.elementor-location-header {
		position: sticky;
		top: 0;
		background: #fff;
	}

	.elementor-70 .elementor-element-5f01b51 {
		--min-height: var(--cs-header-h);
		height: var(--cs-header-h);
	}
	.elementor-70 .elementor-element-5f01b51 > .e-con-inner {
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		gap: 8px !important;
	}

	.elementor-70 .elementor-element-39e01fd {
		order: 1;
		width: auto !important;
		flex: 1 1 auto !important;
		min-width: 0;
	}
	.elementor-70 .elementor-element-b05d705 {
		width: auto !important;
		text-align: left;
	}
	/* Logo-Link sonst mit 8 px Zeilen-Unterlaenge -> Logo sass 4 px zu hoch */
	.elementor-70 .elementor-element-b05d705 .elementor-widget-container,
	.elementor-70 .elementor-element-b05d705 a {
		display: block;
		line-height: 0;
	}
	.elementor-70 .elementor-element-05500fe {
		order: 2;
		width: auto !important;
		flex: 0 0 auto !important;
	}
	.elementor-70 .elementor-element-ef49b31 {
		gap: 8px !important;
		align-items: center !important;
	}
	.elementor-70 .elementor-element-c5646e7 {
		order: 3;
		width: 44px !important;
		flex: 0 0 44px !important;
	}

	/* Telefon als Icon-Button 44 x 44 */
	.elementor-70 .cs-header-tel {
		display: block !important;
	}
	.elementor-70 .cs-header-tel .elementor-button {
		width: 44px;
		height: 44px;
		min-height: 44px;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 999px;
		background: #F4F3F0 !important;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
	.elementor-70 .cs-header-tel .elementor-button-text {
		display: none;
	}
	.elementor-70 .cs-header-tel .elementor-button-icon {
		margin: 0 !important;
		font-size: 18px;
	}
	.elementor-70 .cs-header-tel .elementor-button-icon svg {
		width: 18px;
		height: 18px;
	}

	.elementor-70 .elementor-menu-toggle {
		width: 44px;
		height: 44px;
		padding: 0;
		font-size: 24px;
		border-radius: 999px;
		background: #F4F3F0;
		color: #1F2326;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	/* Menue: unter dem Header ueber die volle Breite */
	.elementor-70 .elementor-nav-menu--dropdown.elementor-nav-menu__container {
		position: fixed !important;
		top: var(--cs-header-h) !important;
		left: 0 !important;
		right: 0 !important;
		width: auto !important;
		margin: 0 !important;
		box-shadow: 0 16px 32px rgba(31, 35, 38, 0.14);
		border-top: 1px solid #C9CCD1;
		overflow-y: auto;
	}
	.elementor-70 .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
		max-height: calc(100dvh - var(--cs-header-h)) !important;
	}

	/* Untermenues flach ausgeklappt, kein Pfeil */
	.elementor-70 .elementor-nav-menu--dropdown .sub-menu {
		display: block !important;
		position: static !important;
		width: auto !important;
		margin: 0 !important;
		box-shadow: none !important;
		border: 0 !important;
	}
	.elementor-70 .elementor-nav-menu--dropdown .sub-arrow {
		display: none !important;
	}

	/* Menuezeilen >= 52 px */
	.elementor-70 .elementor-nav-menu--dropdown a.elementor-item,
	.elementor-70 .elementor-nav-menu--dropdown a.elementor-sub-item {
		min-height: 52px;
		display: flex !important;
		align-items: center;
		padding: 0 var(--cs-gutter, 24px) !important;
		font-size: 16px;
		border-bottom: 1px solid #F4F3F0;
	}
	.elementor-70 .elementor-nav-menu--dropdown a.elementor-item {
		font-weight: 700;
	}
	.elementor-70 .elementor-nav-menu--dropdown a.elementor-sub-item {
		padding-left: calc(var(--cs-gutter, 24px) + 16px) !important;
		font-weight: 500;
		color: #3A3F44;
	}

	/* Fliesstext 16 / 1.65 (Builder setzen Inline-font-size 15-17.5 px) */
	[data-elementor-type="wp-page"] .elementor-widget-text-editor,
	[data-elementor-type="wp-page"] .elementor-widget-text-editor p,
	[data-elementor-type="wp-page"] .elementor-widget-text-editor li,
	[data-elementor-type="wp-page"] .elementor-icon-list-text,
	[data-elementor-type="wp-page"] .elementor-icon-box-description {
		font-size: 16px !important;
		line-height: 1.65 !important;
	}

	/* Feinabdruck 14 px: Breadcrumb, Formular-Labels, Einwilligung */
	[data-elementor-type="wp-page"] .elementor-widget-text-editor p[style*="font-size:13.5px"],
	[data-elementor-type="wp-page"] .elementor-field-label,
	[data-elementor-type="wp-page"] .elementor-field-type-acceptance label {
		font-size: 14px !important;
		line-height: 1.5 !important;
	}

	/* Tap-Targets >= 52 px */
	[data-elementor-type="wp-page"] .elementor-button,
	.elementor-location-footer .elementor-button {
		min-height: 52px !important;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	[data-elementor-type="wp-page"] .elementor-field-group input.elementor-field:not([type="checkbox"]):not([type="radio"]),
	[data-elementor-type="wp-page"] .elementor-field-group select {
		min-height: 52px;
		height: 52px;
		font-size: 16px;
	}
	[data-elementor-type="wp-page"] .elementor-field-group textarea.elementor-field {
		min-height: 104px;
		font-size: 16px;
	}

	/* Orts-Chips: der ganze Chip ist die Tap-Flaeche */
	.cs-service-city-chip {
		--padding-top: 0px !important;
		--padding-bottom: 0px !important;
	}
	.cs-service-city-chip .elementor-button {
		min-height: 52px;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	/* Kontaktzeilen 60 px */
	[data-elementor-type="wp-page"] :is(.cs-service-direkt, .cs-home-faq-phone, .cs-service-callout) .elementor-button {
		min-height: 60px !important;
	}
	.cs-footer-contact .elementor-icon-list-item,
	.cs-footer-contact .elementor-icon-list-item > a {
		min-height: 60px;
		display: flex;
		align-items: center;
	}

	/* Hero-Buttons 54 px */
	.cs-home-hero-ctas .elementor-button,
	.cs-service-hero-ctas .elementor-button {
		min-height: 54px !important;
		height: 54px;
	}

	/* Startseiten-Hero: Karte unter dem Bild statt darueber
	   (Karte ist hoeher als das Bild, ragte bei 768-1024 heraus) */
	.cs-home-hero-card {
		position: relative !important;
		top: auto;
		left: auto;
		transform: none;
		width: 100% !important;
		max-width: 100%;
		margin-top: 16px;
	}
}

/* —— Tablet 768-1024 ————————————————————————————————— */
@media (min-width: 768px) and (max-width: 1024px) {

	:root {
		--cs-gutter: 32px;
	}

	.elementor-70 .elementor-element-5f01b51 {
		--padding-left: 32px !important;
		--padding-right: 32px !important;
	}
	.elementor-70 .elementor-element-b05d705 img {
		height: 44px;
	}
	.elementor-70 .elementor-element-0dca85a .elementor-button {
		min-height: 44px;
		padding-top: 0;
		padding-bottom: 0;
		display: inline-flex;
		align-items: center;
	}

	/* Aussenabstand 32, Sektionsabstand 80 */
	[data-elementor-type="wp-page"] > .e-con {
		--padding-top: 40px !important;
		--padding-bottom: 40px !important;
		--padding-left: 32px !important;
		--padding-right: 32px !important;
	}
	[data-elementor-type="wp-page"] > .e-con:first-child {
		--padding-top: 16px !important;
	}
	[data-elementor-type="wp-page"] > .e-con:last-child {
		--padding-bottom: 0px !important;
	}
	[data-elementor-type="wp-page"] > .e-con:is(.cs-service-ablauf, .cs-city-ablauf, .cs-company-stats, .cs-career-ablauf) {
		--padding-left: 0px !important;
		--padding-right: 0px !important;
	}
	.elementor-location-footer > .e-con:first-child {
		--margin-top: 80px !important;
		margin-top: 80px !important;
	}

	/* Typografie */
	[data-elementor-type="wp-page"] h1.elementor-heading-title {
		font-size: 40px !important;
		line-height: 1.15 !important;
	}
	[data-elementor-type="wp-page"] h2.elementor-heading-title {
		font-size: 30px !important;
		line-height: 1.2 !important;
	}
	[data-elementor-type="wp-page"] h3.elementor-heading-title,
	[data-elementor-type="wp-page"] h3.elementor-icon-box-title {
		font-size: 22px !important;
		line-height: 1.3 !important;
	}

	/* Hero: Text ueber dem Bild statt 2 x 292 px nebeneinander */
	:is(.cs-service-hero-grid, .cs-city-hero, .cs-eg-hero, .cs-contact-hero-grid).e-con-full {
		--e-con-grid-template-columns: 1fr !important;
		grid-template-columns: 1fr !important;
	}
	:is(.cs-service-hero, .cs-city-hero, .cs-eg-hero) .elementor-widget-image img {
		width: 100% !important;
		height: 420px !important;
		object-fit: cover;
	}
	.cs-home-hero-stage .elementor-widget-image img {
		height: 420px !important;
	}

	/* Zweispalter mit 280-336 px Textspalte: einspaltig.
	   Volle-Breite-Raster sind selbst das Grid, geboxte ueber .e-con-inner. */
	:is(.cs-home-form-grid, .cs-home-faq-grid, .cs-service-einsatz-grid, .cs-company-karriere-grid).e-con-full,
	:is(.cs-city-stadtteile, .cs-eg-umland) .cs-inset-card.e-grid.e-con-full {
		--e-con-grid-template-columns: 1fr !important;
		grid-template-columns: 1fr !important;
	}
	:is(.cs-city-vor-ort, .cs-city-objekte, .cs-city-faq, .cs-city-form, .cs-eg-form) .cs-content-max.e-grid > .e-con-inner {
		--e-con-grid-template-columns: 1fr !important;
		grid-template-columns: 1fr !important;
	}

	/* Orts-Chips 3 Spalten, sonst brechen "Linz am Rhein" / "Bad Hoenningen" um */
	:is(.cs-service-einsatz-grid, .cs-city-stadtteile .cs-inset-card, .cs-eg-umland .cs-inset-card) .e-grid.e-con-full {
		--e-con-grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}

	/* Kennzahlen: Zahl 40, "Koblenz bis Duesseldorf" 26 */
	:is(.cs-home-benefits-stats, .cs-company-stats-grid) .elementor-widget-heading div.elementor-heading-title {
		font-size: 40px !important;
		line-height: 1.1 !important;
	}
	:is(.cs-home-benefits-stats, .cs-company-stats-grid) > .e-con:nth-child(3) div.elementor-heading-title {
		font-size: 26px !important;
		line-height: 1.25 !important;
	}

	/* Hero-Buttons nebeneinander, normale Breite */
	.cs-home-hero-ctas,
	.cs-home-hero-ctas.e-con,
	.cs-home-hero-ctas > .e-con-inner,
	.cs-service-hero-ctas,
	.cs-service-hero-ctas > .e-con-inner {
		flex-direction: row !important;
		flex-wrap: wrap !important;
		align-items: center !important;
		gap: 12px !important;
	}
}

/* —— Handy < 768 ———————————————————————————————————— */
@media (max-width: 767px) {

	:root {
		--cs-header-h: 64px;
		--cs-gutter: 24px;
	}

	.elementor-70 .elementor-element-5f01b51 {
		--padding-left: 24px !important;
		--padding-right: 24px !important;
	}
	.elementor-70 .elementor-element-b05d705 img {
		height: 36px;
	}
	.elementor-70 .elementor-element-05500fe {
		width: 44px !important;
		flex: 0 0 44px !important;
	}
	.elementor-70 .elementor-element-0dca85a {
		display: none !important;
	}

	/* Aussenabstand 24, Sektionsabstand 64 */
	[data-elementor-type="wp-page"] > .e-con {
		--padding-top: 32px !important;
		--padding-bottom: 32px !important;
		--padding-left: 24px !important;
		--padding-right: 24px !important;
	}
	[data-elementor-type="wp-page"] > .e-con:first-child {
		--padding-top: 12px !important;
	}
	[data-elementor-type="wp-page"] > .e-con:last-child {
		--padding-bottom: 0px !important;
	}
	[data-elementor-type="wp-page"] > .e-con:is(.cs-service-ablauf, .cs-city-ablauf, .cs-company-stats, .cs-career-ablauf) {
		--padding-left: 0px !important;
		--padding-right: 0px !important;
	}
	.elementor-location-footer > .e-con:first-child {
		--margin-top: 64px !important;
		margin-top: 64px !important;
	}

	/* Verschachtelte Karten: Innenabstand statt 36-48 px */
	.cs-service-form-card,
	.cs-home-form-panel {
		--padding-top: 32px !important;
		--padding-bottom: 32px !important;
		--padding-left: 20px !important;
		--padding-right: 20px !important;
	}
	.cs-career-job-row {
		--padding-left: 20px !important;
		--padding-right: 20px !important;
	}

	/* Typografie */
	[data-elementor-type="wp-page"] h1.elementor-heading-title {
		font-size: 34px !important;
		line-height: 1.15 !important;
	}
	[data-elementor-type="wp-page"] h2.elementor-heading-title {
		font-size: 27px !important;
		line-height: 1.2 !important;
	}
	[data-elementor-type="wp-page"] h3.elementor-heading-title,
	[data-elementor-type="wp-page"] h3.elementor-icon-box-title {
		font-size: 21px !important;
		line-height: 1.3 !important;
	}

	/* Eyebrows und Kartenlabels */
	[data-elementor-type="wp-page"] .cs-eyebrow .elementor-heading-title,
	[data-elementor-type="wp-page"] :is(.cs-home-career-card, .cs-career-job-row, .cs-contact-hero) p.elementor-heading-title {
		font-size: 11px !important;
	}

	/* Hero: Buttons volle Breite, gestapelt */
	.cs-home-hero-ctas,
	.cs-home-hero-ctas.e-con,
	.cs-home-hero-ctas > .e-con-inner,
	.cs-service-hero-ctas,
	.cs-service-hero-ctas > .e-con-inner {
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
		gap: 12px !important;
	}
	.cs-home-hero-ctas .elementor-widget-button,
	.cs-home-hero-ctas .elementor-widget-button .elementor-widget-container,
	.cs-home-hero-ctas .elementor-button,
	.cs-service-hero-ctas .elementor-widget-button,
	.cs-service-hero-ctas .elementor-widget-button .elementor-widget-container,
	.cs-service-hero-ctas .elementor-button {
		width: 100% !important;
		max-width: none !important;
		flex: 0 0 auto !important;
	}

	/* Stadtseiten-Hero: Stadtbild niedriger, KI-Label lesbar */
	.cs-city-hero .cs-city-hero-media .elementor-widget-image:not(.cs-ai-label) img {
		height: 300px !important;
	}
	.cs-city-hero-media .cs-ai-label {
		min-width: 96px;
	}

	/* Kennzahlen 2 x 2 */
	.cs-home-benefits-stats.e-con-full,
	.cs-company-stats-grid.e-con-full {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		--e-con-grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		column-gap: 16px !important;
		row-gap: 28px !important;
	}
	:is(.cs-home-benefits-stats, .cs-company-stats-grid) .elementor-widget-heading div.elementor-heading-title {
		font-size: 36px !important;
		line-height: 1.1 !important;
	}
	/* Label "Leistungsbereiche" passt sonst nicht in die halbe Spalte */
	:is(.cs-home-benefits-stats, .cs-company-stats-grid) p.elementor-heading-title {
		font-size: 14px !important;
		line-height: 1.4 !important;
	}
	/* "Koblenz bis Duesseldorf" ist Text, keine Zahl */
	:is(.cs-home-benefits-stats, .cs-company-stats-grid) > .e-con:nth-child(3) div.elementor-heading-title {
		font-size: 20px !important;
		line-height: 1.25 !important;
	}
}
