/* Baugeschaeft Engelke - custom front-end styles.
   Loaded by wp-content/novamira-sandbox/engelke-custom-css.php on the
   front end AND inside the Elementor editor canvas, so the editor renders
   the same as the live site. Do not move these rules back into HTML
   widgets - widget-scoped CSS disappears while other sections re-render. */

/* ---------- shared marquee behaviour ---------- */
.engm,
.engt {
	position: relative;
	overflow: hidden;
	width: 100%;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
}

.engm__t,
.engt__t {
	display: flex;
	align-items: center;
	width: max-content;
	will-change: transform;
}

.engm:hover .engm__t,
.engt:hover .engt__t {
	animation-play-state: paused;
}

/* ---------- client logo marquee ---------- */
.engm__t {
	gap: 24px;
	animation: engmscroll 38s linear infinite;
}

.engm__i {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 130px;
}

.engm__i img {
	height: 130px;
	width: auto;
	max-width: none;
	object-fit: contain;
	opacity: .72;
	transition: opacity .25s ease;
	mix-blend-mode: multiply;
}

.engm__i img:hover {
	opacity: 1;
}

@keyframes engmscroll {
	from { transform: translateX(0); }
	to   { transform: translateX(calc(-100% / 3)); }
}

/* ---------- trust fact marquee ---------- */
.engt__t {
	gap: 56px;
	animation: engtscroll 46s linear infinite;
}

.engt__i {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 11px;
	white-space: nowrap;
	font-family: "futura-100", "Kumbh Sans", sans-serif;
	font-weight: 700;
	font-size: 19px;
	color: #1D1916;
}

.engt__c {
	width: 15px;
	height: 15px;
	flex: 0 0 auto;
	fill: #FDB05D;
}

@keyframes engtscroll {
	from { transform: translateX(0); }
	to   { transform: translateX(calc(-100% / 3)); }
}

/* ---------- hero: offer card overhangs the section edge ---------- */
.elementor-element-11effd5 {
	overflow: visible;
}

@media (min-width: 1025px) {
	.elementor-element-heroCard {
		transform: translateY(170px);
		position: relative;
		z-index: 20;
	}
}

/* ---------- responsive ---------- */
@media (max-width: 767px) {
	.engm__i,
	.engm__i img { height: 88px; }
	.engm__t { gap: 8px; }
	.engt__i { font-size: 15px; }
	.engt__t { gap: 32px; }
}

@media (prefers-reduced-motion: reduce) {
	.engm__t,
	.engt__t {
		animation: none;
		flex-wrap: wrap;
		justify-content: center;
		width: 100%;
	}
	.engm,
	.engt {
		-webkit-mask-image: none;
		mask-image: none;
	}
	.engt__t { gap: 22px; }
}

/* ---------- service page hero: quote / phone / email CTAs ---------- */
#heroCta {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

#heroCta .elementor-widget-container,
#heroCta .elementor-button-wrapper {
	margin: 0;
	padding: 0;
}

#heroCta a.elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 0;
	padding: 14px 28px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.55);
	background: transparent;
	font-size: 14px;
	line-height: 1.2;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}

#heroCta .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	position: relative;
	z-index: 1;
}

/* the theme sets colour on the inner span, so every level needs stating */
#heroCta a.elementor-button,
#heroCta a.elementor-button .elementor-button-text,
#heroCta a.elementor-button .elementor-button-text span,
#heroCta a.elementor-button .elementor-button-icon,
#heroCta a.elementor-button .elementor-button-icon i {
	color: #FFFFFF;
}

#heroCta a.elementor-button .elementor-button-icon svg {
	fill: #FFFFFF;
}

#heroCta a.elementor-button:hover,
#heroCta a.elementor-button:focus-visible {
	background: #FFFFFF;
	border-color: #FFFFFF;
}

#heroCta a.elementor-button:hover .elementor-button-text,
#heroCta a.elementor-button:hover .elementor-button-text span,
#heroCta a.elementor-button:hover .elementor-button-icon,
#heroCta a.elementor-button:hover .elementor-button-icon i,
#heroCta a.elementor-button:focus-visible .elementor-button-text,
#heroCta a.elementor-button:focus-visible .elementor-button-text span,
#heroCta a.elementor-button:focus-visible .elementor-button-icon,
#heroCta a.elementor-button:focus-visible .elementor-button-icon i {
	color: #1D1916;
}

#heroCta a.elementor-button:hover .elementor-button-icon svg,
#heroCta a.elementor-button:focus-visible .elementor-button-icon svg {
	fill: #1D1916;
}

/* primary: solid accent, dark label */
#heroCtaPrimary a.elementor-button {
	background: #FDB05D;
	border-color: #FDB05D;
	font-weight: 700;
	padding: 14px 30px;
}

#heroCtaPrimary a.elementor-button,
#heroCtaPrimary a.elementor-button .elementor-button-text,
#heroCtaPrimary a.elementor-button .elementor-button-text span,
#heroCtaPrimary a.elementor-button .elementor-button-icon,
#heroCtaPrimary a.elementor-button .elementor-button-icon i {
	color: #1D1916;
}

#heroCtaPrimary a.elementor-button .elementor-button-icon svg {
	fill: #1D1916;
}

#heroCtaPrimary a.elementor-button:hover,
#heroCtaPrimary a.elementor-button:focus-visible {
	background: #573826;
	border-color: #573826;
}

#heroCtaPrimary a.elementor-button:hover .elementor-button-text,
#heroCtaPrimary a.elementor-button:hover .elementor-button-text span,
#heroCtaPrimary a.elementor-button:hover .elementor-button-icon,
#heroCtaPrimary a.elementor-button:hover .elementor-button-icon i,
#heroCtaPrimary a.elementor-button:focus-visible .elementor-button-text,
#heroCtaPrimary a.elementor-button:focus-visible .elementor-button-text span,
#heroCtaPrimary a.elementor-button:focus-visible .elementor-button-icon,
#heroCtaPrimary a.elementor-button:focus-visible .elementor-button-icon i {
	color: #FFFFFF;
}

#heroCtaPrimary a.elementor-button:hover .elementor-button-icon svg,
#heroCtaPrimary a.elementor-button:focus-visible .elementor-button-icon svg {
	fill: #FFFFFF;
}

/* the theme's mousemove fill must not paint over the label */
#heroCta a.elementor-button > span:not(.elementor-button-content-wrapper),
#heroCta a.elementor-button::before,
#heroCta a.elementor-button::after {
	display: none !important;
}

#heroCta .elementor-button-icon {
	position: static !important;
	inset: auto !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: auto !important;
	height: auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	transform: none !important;
	line-height: 1 !important;
}

#heroCta .elementor-button-icon i,
#heroCta .elementor-button-icon svg {
	position: static !important;
	background: none !important;
	background-color: transparent !important;
	border-radius: 0 !important;
	width: 14px !important;
	height: 14px !important;
	font-size: 14px !important;
	line-height: 1 !important;
	transform: none !important;
	inset: auto !important;
}

#heroCta .elementor-button-text {
	white-space: nowrap;
}

#heroCtaPrimary .elementor-button-icon {
	order: 2;
}

#heroCta a.elementor-button:focus-visible {
	outline: 2px solid #FFFFFF;
	outline-offset: 3px;
}

@media (max-width: 767px) {
	#heroCta {
		gap: 10px;
	}
	#heroCta > .elementor-element {
		flex: 1 1 100%;
	}
	#heroCta a.elementor-button {
		width: 100%;
	}
}/* ---------- service pages: Ablauf / Prozess ---------- */
#engProzess {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	align-items: stretch;
	background: #FCF4EC;
	border-radius: 16px;
	padding: 40px 32px 36px;
	width: 100%;
	max-width: 100%;
}

#engProzess > .e-con {
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch;
	gap: 0 !important;
	padding: 0 !important;
	width: auto !important;
	max-width: none;
}

#engProzess > .e-con:not(:last-child)::after {
	content: '';
	position: absolute;
	top: 29px;
	left: calc(50% + 29px);
	width: calc(100% + 16px - 58px);
	height: 1px;
	background: #CBC2B7;
	z-index: 0;
}

#engProzess > .e-con > .e-con {
	flex: 1 1 auto;
	background: #FFFFFF;
	border: 1px solid #EFE4D6;
	border-radius: 12px;
	padding: 20px 18px !important;
	width: auto !important;
	max-width: none;
	gap: 0 !important;
}

#engProzess .eng-prozess__num {
	position: relative;
	z-index: 1;
	width: 58px;
	height: 58px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: #FCF4EC;
	border: 1px solid #CBC2B7;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
}

#engProzess .eng-prozess__num .elementor-heading-title {
	font-size: 16px;
	line-height: 1;
	font-weight: 600;
	color: #573826;
	margin: 0;
}

#engProzess .eng-prozess__eyebrow .elementor-heading-title {
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #B08356;
	margin: 0 0 8px;
	line-height: 1.2;
}

#engProzess .eng-prozess__title .elementor-heading-title {
	font-size: 19px;
	line-height: 1.25;
	color: #1D1916;
	margin: 0 0 10px;
}

#engProzess .eng-prozess__body,
#engProzess .eng-prozess__body p {
	font-size: 14px;
	line-height: 1.6;
	color: #573826;
	margin: 0;
}

#engProzess > .e-con:last-child .eng-prozess__num {
	background: #FDB05D;
	border-color: #FDB05D;
}

#engProzess > .e-con:last-child .eng-prozess__num .elementor-heading-title {
	color: #1D1916;
}

#engProzess > .e-con:last-child > .e-con {
	border-color: #FDB05D;
}

@media (min-width: 768px) and (max-width: 1024px) {
	#engProzess {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
		padding: 32px 24px;
	}
	#engProzess > .e-con:not(:last-child)::after {
		display: none;
	}
}

@media (max-width: 767px) {
	#engProzess {
		grid-template-columns: 1fr;
		gap: 14px;
		padding: 26px 18px;
		border-radius: 14px;
	}
	#engProzess > .e-con {
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: flex-start;
		gap: 14px !important;
	}
	#engProzess > .e-con > .e-con {
		min-width: 0 !important;
		flex: 1 1 auto !important;
	}
	#engProzess .eng-prozess__num {
		width: 44px;
		height: 44px;
		margin: 0;
	}
	#engProzess .eng-prozess__num .elementor-heading-title {
		font-size: 14px;
	}
	#engProzess > .e-con:not(:last-child)::after {
		top: 44px;
		left: 22px;
		width: 1px;
		height: calc(100% + 14px - 44px);
	}
	#engProzess > .e-con > .e-con {
		padding: 16px 15px !important;
	}
	#engProzess .eng-prozess__title .elementor-heading-title {
		font-size: 17px;
	}
}/* ---------- service pages: Angebot sidebar ---------- */
/* No sticky here: the sidebar is ~1700px against a ~760px viewport, so pinning
   any part of it necessarily scrolls the rest underneath. Elementor Pro's JS
   sticky was also removed from the container for the same reason. */

#engQuote {
	background: #FCF4EC;
	border: 1px solid #EFE4D6;
	border-radius: 14px;
	overflow: hidden;
	padding: 0 !important;
	gap: 0 !important;
	width: 100%;
}

#engQuoteHead {
	position: relative;
	background: #332E2A;
	padding: 20px 20px 18px 66px !important;
	gap: 6px !important;
	width: auto !important;
}

#engQuoteHead::before,
#engQuoteHead::after {
	content: '';
	position: absolute;
	left: 24px;
	width: 26px;
}

#engQuoteHead::before { top: 0; height: 34px; background: #EDBA8E; }
#engQuoteHead::after  { bottom: 0; height: 22px; background: #573826; }

.engQuote__eyebrow .elementor-heading-title {
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #EDBA8E;
	margin: 0;
	line-height: 1.4;
}

.engQuote__title .elementor-heading-title {
	font-size: 17px;
	line-height: 1.35;
	color: #FFFFFF;
	margin: 0;
}

#engQuoteBody {
	background: #FFFFFF;
	padding: 18px 20px 20px !important;
	gap: 0 !important;
	width: auto !important;
}

.eng-service-hidden { display: none !important; }

.engQuote__form .wpcf7 p { margin: 0 0 9px; }

.engQuote__form input[type=text],
.engQuote__form input[type=email],
.engQuote__form input[type=tel],
.engQuote__form textarea {
	width: 100%;
	border: 1px solid #E5DCD1;
	border-radius: 8px;
	padding: 12px 13px;
	font-size: 14px;
	color: #1D1916;
	background: #FFFFFF;
	line-height: 1.45;
}

.engQuote__form textarea { height: 84px; resize: vertical; }

.engQuote__form input::placeholder,
.engQuote__form textarea::placeholder { color: #9C8E80; }

.engQuote__form input:focus,
.engQuote__form textarea:focus {
	outline: none;
	border-color: #FDB05D;
	box-shadow: 0 0 0 3px rgba(253, 176, 93, .22);
}

.engQuote__form input[type=submit] {
	width: 100%;
	border: 0;
	border-radius: 999px;
	background: #FDB05D;
	color: #1D1916;
	font-size: 15px;
	font-weight: 700;
	padding: 14px;
	cursor: pointer;
	transition: background-color .25s ease, color .25s ease;
}

.engQuote__form input[type=submit]:hover { background: #573826; color: #FFFFFF; }
.engQuote__form .wpcf7-spinner { display: block; margin: 8px auto 0; }
.engQuote__form .wpcf7-not-valid-tip { font-size: 12.5px; color: #B3261E; margin-top: 5px; }
.engQuote__form .wpcf7-response-output { font-size: 13px; margin: 11px 0 0; padding: 10px 12px; border-radius: 8px; border-width: 1px; }

.eq-meta { margin-top: 15px; }

.eq-24 {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 12.5px;
	color: #573826;
	margin-bottom: 15px;
}

.eq-ico {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #FDB05D;
}

.eq-24 .eq-ico svg { width: 17px; height: 17px; }

.eq-tel {
	display: flex;
	align-items: center;
	gap: 11px;
	border-top: 1px solid #EFE4D6;
	padding-top: 15px;
	text-decoration: none;
}

.eq-tel .eq-ico { width: 30px; height: 30px; border: 1.5px solid #FDB05D; border-radius: 7px; }
.eq-tel .eq-ico svg { width: 16px; height: 16px; }
.eq-tel__t small { display: block; font-size: 12px; color: #8A7A6C; line-height: 1.4; }
.eq-tel__t strong { display: block; font-size: 15px; font-weight: 700; color: #1D1916; line-height: 1.35; }
.eq-tel:hover .eq-tel__t strong { color: #573826; }

.eq-tag {
	background: #332E2A;
	padding: 11px 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
}

.eq-tag span { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #FFFFFF; }
.eq-tag i { width: 5px; height: 5px; border-radius: 50%; background: #FDB05D; flex: 0 0 5px; }
.engQuote__tag { margin: 0 !important; }

/* ---------- sidebar blocks 2 and 3 ---------- */

#engServices,
#engVisit {
	border-radius: 14px;
	padding: 18px 20px 20px !important;
	width: 100% !important;
	gap: 0 !important;
	margin-top: 14px !important;
}

#engServices { background: #FCF4EC !important; border: 1px solid #EFE4D6; }
#engVisit    { background: #FFFFFF !important; border: 1px solid #EFE4D6; }

#engServices .elementor-heading-title,
#engVisit .elementor-heading-title {
	font-size: 15px !important;
	line-height: 1.35;
	color: #1D1916 !important;
	margin: 0 0 12px !important;
}

#engVisit .elementor-widget-heading .elementor-heading-title::before {
	content: '';
	display: inline-block;
	vertical-align: -8px;
	width: 30px;
	height: 30px;
	margin-right: 10px;
	border: 1.5px solid #FDB05D;
	border-radius: 7px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16px 16px;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDB05D' stroke-width='1.8'><path d='M12 21s7-6.2 7-11a7 7 0 1 0-14 0c0 4.8 7 11 7 11z'/><circle cx='12' cy='10' r='2.5'/></svg>");
}

#engVisit .elementor-widget-text-editor { font-size: 13.5px; line-height: 1.65; color: #573826; }
#engVisit .elementor-widget-text-editor p { margin: 0 0 9px; }
#engVisit .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
#engVisit .elementor-widget-text-editor strong { color: #1D1916; font-size: 14px; }
#engVisit iframe { width: 100%; height: 165px !important; border: 0; border-radius: 8px; display: block; margin-top: 13px; }

/* ---------- service list ---------- */

#engServices .elementor-service-wrapper,
#engServices .d-grid { display: block !important; margin: 0 !important; }

#engServices .grid-item {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border-bottom: 1px solid #EFE4D6;
}

#engServices .grid-item:last-child { border-bottom: 0; }

#engServices .service-item,
#engServices .service-inner {
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}

#engServices .service-title { margin: 0 !important; }

#engServices .service-title a {
	position: relative;
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 10px 0 10px 17px !important;
	font-size: 13.5px !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	color: #573826 !important;
	background: transparent !important;
	text-transform: none !important;
}

/* the theme's bullet was positioned for a 35px left padding that no longer
   exists, which dropped the orange dot on top of the label */
#engServices .service-title a::before {
	left: 0 !important;
	right: auto !important;
	top: 50% !important;
	margin: 0 !important;
	transform: translateY(-50%);
	width: 5px !important;
	height: 5px !important;
	border-radius: 50%;
}

#engServices .service-title a:hover { color: #1D1916 !important; }
#engServices .service-title a i { font-size: 12px !important; color: #FDB05D !important; flex: 0 0 auto; transition: transform .2s ease; }
#engServices .service-title a:hover i { transform: translateX(3px); }/* ---------- service pages: sidebar sticks while you scroll ---------- */
@media (min-width: 1025px) {
	.elementor-element-27bcf46 {
		position: sticky;
		align-self: flex-start;
		top: var(--eng-side-top, 20px);
		max-height: none;
		overflow: visible;
	}

	.elementor-element-27bcf46 > * {
		flex: 0 0 auto;
	}
}/* ---------- homepage: so arbeiten wir ---------- */
#engHpProzess {
	position: relative;
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	align-items: stretch;
	width: 100%;
	padding: 0 !important;
}

/* the connector shows through the gaps between cards */
#engHpProzess::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: 32px;
	height: 1px;
	background: rgba(255, 255, 255, .16);
	z-index: 0;
}

#engHpProzess > .e-con {
	position: relative;
	z-index: 1;
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
	background: #332E2A;
	border: 1px solid transparent;
	border-radius: 10px;
	padding: 16px 15px 18px !important;
	width: auto !important;
}

#engHpProzess > .e-con:last-child {
	border-color: #FDB05D;
}

#engHpProzess > .e-con > .e-con {
	display: flex !important;
	flex-direction: row !important;
	align-items: center;
	gap: 10px !important;
	padding: 0 !important;
	margin: 0 0 11px !important;
	width: auto !important;
}

.engHp__num .elementor-heading-title {
	font-size: 26px;
	font-weight: 700;
	line-height: 1;
	color: #FDB05D;
	margin: 0;
}

.engHp__eyebrow .elementor-heading-title {
	font-size: 9.5px;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: #EDBA8E;
	margin: 0;
	line-height: 1.3;
}

.engHp__title .elementor-heading-title {
	font-size: 16px;
	line-height: 1.3;
	color: #FFFFFF;
	margin: 0 0 8px;
}

.engHp__body,
.engHp__body p {
	font-size: 12.5px;
	line-height: 1.6;
	color: rgba(255, 255, 255, .74);
	margin: 0;
}

#engHpCta {
	display: flex !important;
	flex-direction: row !important;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px !important;
	margin-top: 24px !important;
	padding: 20px 0 0 !important;
	border-top: 1px solid rgba(255, 255, 255, .14);
	width: 100%;
}

#engHpCta .engHp__btn,
#engHpCta .engHp__promise {
	width: auto !important;
	margin: 0 !important;
}

#engHpCta a.elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border-radius: 999px;
	border: 1px solid #FDB05D;
	background: #FDB05D;
	padding: 14px 28px;
	font-size: 14px;
	font-weight: 700;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}

#engHpCta a.elementor-button,
#engHpCta a.elementor-button .elementor-button-text,
#engHpCta a.elementor-button .elementor-button-text span,
#engHpCta a.elementor-button .elementor-button-icon,
#engHpCta a.elementor-button .elementor-button-icon i {
	color: #1D1916;
}

#engHpCta a.elementor-button .elementor-button-icon svg {
	fill: #1D1916;
}

#engHpCta a.elementor-button:hover,
#engHpCta a.elementor-button:focus-visible {
	background: #FFFFFF;
	border-color: #FFFFFF;
}

#engHpCta .elementor-button-icon {
	position: static !important;
	inset: auto !important;
	display: inline-flex !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	transform: none !important;
}

#engHpCta .elementor-button-icon i,
#engHpCta .elementor-button-icon svg {
	position: static !important;
	background: none !important;
	width: 14px !important;
	height: 14px !important;
	font-size: 14px !important;
}

.enghp-24 {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	color: rgba(255, 255, 255, .74);
}

.enghp-ico {
	display: inline-flex;
	color: #FDB05D;
	flex: 0 0 auto;
}

.enghp-ico svg {
	width: 16px;
	height: 16px;
}

@media (min-width: 768px) and (max-width: 1024px) {
	#engHpProzess {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
	}
	#engHpProzess::before { display: none; }
}

@media (max-width: 767px) {
	#engHpProzess {
		grid-template-columns: 1fr;
		gap: 8px;
		padding: 0 20px !important;
	}
	#engHpCta {
		padding: 20px 20px 0 !important;
	}
	#engHpProzess::before { display: none; }
	#engHpProzess > .e-con {
		padding: 15px 15px 16px !important;
	}
	/* short vertical tick between the stacked cards */
	#engHpProzess > .e-con:not(:last-child)::after {
		content: '';
		position: absolute;
		left: 50%;
		bottom: -10px;
		transform: translateX(-50%);
		width: 2px;
		height: 12px;
		background: rgba(253, 176, 93, .45);
	}
	.engHp__num .elementor-heading-title { font-size: 22px; }
	.engHp__title .elementor-heading-title { font-size: 15px; }
	.engHp__body, .engHp__body p { font-size: 12.5px; }
	#engHpCta {
		flex-direction: column !important;
		align-items: stretch;
		gap: 11px !important;
	}
	#engHpCta .engHp__btn { width: 100% !important; }
	#engHpCta a.elementor-button { width: 100%; }
	.enghp-24 { justify-content: center; }
}/* ---------- homepage: Google Bewertungen ---------- */
#engRev { width: 100%; padding: 0 !important; gap: 0 !important; }

#engRevHead {
	padding: 0 !important;
	gap: 6px !important;
	margin: 0 0 26px !important;
	width: 100%;
}

.engRev__eyebrow .elementor-heading-title {
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #B08356 !important;
	margin: 0;
	line-height: 1.4;
}

.engRev__eyebrow .elementor-heading-title::before {
	content: '';
	display: inline-block;
	width: 24px;
	height: 2px;
	background: #FDB05D;
	vertical-align: middle;
	margin-right: 11px;
}

/* the section heading was inheriting the band's accent colour */
#engRev .engRev__title .elementor-heading-title,
.engRev__title .elementor-heading-title,
.engRev__title h2 {
	font-size: 36px;
	line-height: 1.2;
	color: #1D1916 !important;
	margin: 0;
}

#engRevRow {
	display: flex !important;
	flex-direction: row !important;
	align-items: stretch;
	gap: 16px !important;
	padding: 0 !important;
	width: 100%;
}

.engRev__score {
	flex: 0 0 232px;
	width: 232px !important;
	margin: 0 !important;
}

.engRev__widget {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0 !important;
}

/* ---- score panel ---- */

.engrev-score {
	position: relative;
	background: #332E2A;
	border-radius: 12px;
	overflow: hidden;
	height: 100%;
	min-height: 100%;
}

.engrev-score__block {
	position: absolute;
	left: 18px;
	width: 22px;
}

.engrev-score__block--top { top: 0; height: 30px; background: #EDBA8E; }
.engrev-score__block--bottom { bottom: 0; height: 22px; background: #573826; }

.engrev-score__inner {
	position: relative;
	z-index: 1;
	padding: 24px 20px 24px 52px;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.engrev-score__num {
	font-size: 44px;
	font-weight: 700;
	color: #FFFFFF;
	line-height: 1;
	margin: 0 0 8px;
}

.engrev-score__stars {
	font-size: 16px;
	letter-spacing: 3px;
	line-height: 1;
	margin: 0 0 12px;
}

.engrev-star { color: rgba(255, 255, 255, .25); }
.engrev-star.is-on { color: #FDB05D; }

.engrev-score__count {
	font-size: 12.5px;
	line-height: 1.5;
	color: rgba(255, 255, 255, .74);
	margin: 0 0 auto;
	padding-bottom: 18px;
}

.engrev-score__cta {
	display: block;
	background: #FDB05D;
	color: #1D1916 !important;
	border-radius: 999px;
	padding: 12px 14px;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color .25s ease, color .25s ease;
}

.engrev-score__cta:hover,
.engrev-score__cta:focus-visible {
	background: #FFFFFF;
	color: #1D1916 !important;
}

/* ---- Trustindex slider ---- */

/* its own rating block duplicates the panel beside it */
.engRev__widget .ti-footer.ti-footer-grid { display: none !important; }

.engRev__widget .ti-widget { margin: 0 !important; }
.engRev__widget .ti-widget-container { display: block !important; width: 100% !important; }
.engRev__widget .ti-reviews-container { width: 100% !important; }

.engRev__widget .ti-review-item .ti-inner {
	background: #FFFFFF !important;
	border: 1px solid #EFE4D6 !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	height: 100%;
}

.engRev__widget .ti-name { color: #1D1916 !important; font-weight: 700 !important; }
.engRev__widget .ti-date { color: #9C8E80 !important; }
.engRev__widget .ti-review-text { color: #573826 !important; }

#engRevFoot {
	display: flex !important;
	align-items: flex-start;
	gap: 10px !important;
	margin-top: 22px !important;
	padding: 18px 0 0 !important;
	border-top: 1px solid #EFE4D6;
	width: 100%;
}

#engRevFoot .engRev__note { width: 100% !important; margin: 0 !important; }

.engrev-note {
	font-size: 12px;
	line-height: 1.55;
	color: #8A7A6C;
	margin: 0;
}

@media (max-width: 1024px) {
	#engRevRow { flex-direction: column !important; }
	.engRev__score { flex: 0 0 auto; width: 100% !important; }
	.engrev-score__inner { padding: 20px 20px 20px 52px; }
	.engrev-score__count { padding-bottom: 14px; }
}

@media (max-width: 767px) {
	#engRev {
		padding: 0 20px !important;
	}
	#engRev .engRev__title .elementor-heading-title,
	.engRev__title .elementor-heading-title,
	.engRev__title h2 {
		font-size: 26px !important;
	}
	#engRevHead { margin-bottom: 20px !important; }
	.engrev-score__num { font-size: 36px; }
}/* ---------- header: Kontakt aufnehmen panel ---------- */
#kpPanel {
	background: #FFFFFF;
	padding: 0 !important;
	gap: 0 !important;
	width: 100%;
}

.kp__title {
	position: relative;
	background: #332E2A;
	padding: 18px 20px 18px 62px !important;
	margin: 0 !important;
	width: 100%;
}

.kp__title::before,
.kp__title::after {
	content: '';
	position: absolute;
	left: 24px;
	width: 22px;
}

.kp__title::before { top: 0; height: 30px; background: #EDBA8E; }
.kp__title::after  { bottom: 0; height: 20px; background: #573826; }

.kp__title .elementor-heading-title {
	font-size: 13px !important;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #FFFFFF !important;
	margin: 0;
	line-height: 1.3;
}

#kpBody {
	padding: 20px !important;
	gap: 0 !important;
	width: 100%;
}

.kp-intro {
	font-size: 13.5px;
	line-height: 1.6;
	color: #573826;
	margin: 0 0 16px;
}

.kp-intro strong { color: #1D1916; }

.kp__cta { width: 100% !important; margin: 0 0 18px !important; }

.kp__cta a.elementor-button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	border: 1px solid #FDB05D;
	border-radius: 999px;
	background: #FDB05D;
	padding: 13px 20px;
	font-size: 13.5px;
	font-weight: 700;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}

.kp__cta a.elementor-button,
.kp__cta a.elementor-button .elementor-button-text,
.kp__cta a.elementor-button .elementor-button-text span,
.kp__cta a.elementor-button .elementor-button-icon i { color: #1D1916; }

.kp__cta a.elementor-button .elementor-button-icon svg { fill: #1D1916; }

.kp__cta a.elementor-button:hover,
.kp__cta a.elementor-button:focus-visible { background: #573826; border-color: #573826; }

.kp__cta a.elementor-button:hover .elementor-button-text,
.kp__cta a.elementor-button:hover .elementor-button-text span { color: #FFFFFF; }

.kp__cta a.elementor-button:hover .elementor-button-icon svg { fill: #FFFFFF; }

.kp__cta .elementor-button-icon {
	position: static !important;
	inset: auto !important;
	display: inline-flex !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	transform: none !important;
}

.kp__cta .elementor-button-icon svg,
.kp__cta .elementor-button-icon i {
	position: static !important;
	background: none !important;
	width: 14px !important;
	height: 14px !important;
	font-size: 14px !important;
}

.kp-rows {
	border: 1px solid #EFE4D6;
	border-radius: 12px;
	overflow: hidden;
	margin: 0 0 18px;
}

.kp-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 14px;
	border-bottom: 1px solid #EFE4D6;
	text-decoration: none;
	transition: background-color .2s ease;
}

.kp-row:last-child { border-bottom: 0; }
.kp-row:hover { background: #FCF4EC; }

.kp-ico {
	flex: 0 0 34px;
	width: 34px;
	height: 34px;
	border: 1.5px solid #FDB05D;
	border-radius: 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #FDB05D;
}

.kp-ico svg { width: 16px; height: 16px; }

.kp-row__t { flex: 1 1 auto; min-width: 0; }
.kp-row__t small { display: block; font-size: 11px; color: #9C8E80; line-height: 1.4; }
.kp-row__t strong { display: block; font-size: 14px; font-weight: 700; color: #1D1916; line-height: 1.35; }
.kp-row__t em { display: block; font-style: normal; font-size: 12px; color: #573826; line-height: 1.4; }

.kp-chev { flex: 0 0 auto; font-size: 20px; line-height: 1; color: #CBC2B7; }
.kp-row:hover .kp-chev { color: #FDB05D; }

.kp__img { margin: 0 0 16px !important; }
.kp__img img {
	border-radius: 10px;
	display: block;
	width: 100%;
	height: 150px;
	object-fit: cover;
	object-position: center 62%;
}

#kpSocial {
	display: flex !important;
	flex-direction: row !important;
	align-items: center;
	justify-content: space-between;
	gap: 10px !important;
	padding: 0 !important;
	width: 100%;
}

.kp__sociallabel .elementor-heading-title {
	font-size: 12px !important;
	color: #8A7A6C !important;
	margin: 0;
}

.kp__social { width: auto !important; margin: 0 !important; }

.kp__social .elementor-social-icon {
	background: transparent !important;
	border: 1.5px solid #FDB05D !important;
	border-radius: 8px !important;
	width: 34px !important;
	height: 34px !important;
	color: #FDB05D !important;
	transition: background-color .2s ease, color .2s ease;
}

.kp__social .elementor-social-icon svg { fill: #FDB05D; width: 15px; height: 15px; }
.kp__social .elementor-social-icon:hover { background: #FDB05D !important; }
.kp__social .elementor-social-icon:hover svg { fill: #1D1916; }

.kp-tag {
	background: #332E2A;
	padding: 10px 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
}

.kp-tag span { font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: #FFFFFF; }
.kp-tag i { width: 4px; height: 4px; border-radius: 50%; background: #FDB05D; flex: 0 0 4px; }
.kp__tag { margin: 0 !important; width: 100%; }
#kpPanel {
	max-width: 450px;
	margin-left: auto;
}

@media (max-width: 767px) {
	#kpPanel { max-width: 100%; }
}
/* -- panel fills the drawer -- */
#kpPanel {
	min-height: 100vh;
	display: flex !important;
	flex-direction: column !important;
}

#kpBody {
	flex: 1 1 auto;
	display: flex !important;
	flex-direction: column !important;
	min-height: 0;
}

/* the img is a direct child of the widget, so the wrapper becomes the frame
   and the image is absolutely filled into it */
.kp__img {
	position: relative;
	flex: 1 1 auto;
	min-height: 150px;
	border-radius: 10px;
	overflow: hidden;
	display: block !important;
}

.kp__img img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
	object-position: center 58%;
	border-radius: 10px;
	margin: 0;
}

#kpSocial { flex: 0 0 auto; padding-top: 16px !important; }

.kp__tag { margin-top: auto !important; flex: 0 0 auto; }

@media (max-width: 767px) {
	#kpPanel { min-height: 100vh; }
	.kp__img { min-height: 130px; }
}/* ---------- Angebotsseite: hero + Formular ---------- */
#aqHero {
	position: relative;
	background: #332E2A;
	overflow: hidden;
	padding: 68px 0 76px !important;
}

#aqHero::before,
#aqHero::after {
	content: '';
	position: absolute;
	left: 0;
	width: 34px;
}

#aqHero::before { top: 0; height: 82px; background: #EDBA8E; }
#aqHero::after  { top: 82px; height: 54px; background: #573826; }

#aqHeroGrid {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 430px;
	gap: 46px !important;
	align-items: start;
	width: 100%;
	padding: 0 !important;
}

#aqHeroText { padding: 0 !important; gap: 0 !important; }

.aq__eyebrow .elementor-heading-title {
	font-size: 11px;
	letter-spacing: .15em;
	text-transform: uppercase;
	font-weight: 700;
	color: #EDBA8E !important;
	margin: 0 0 14px;
}

.aq__eyebrow .elementor-heading-title::before {
	content: '';
	display: inline-block;
	width: 26px;
	height: 2px;
	background: #FDB05D;
	vertical-align: middle;
	margin-right: 11px;
}

.aq__h1 .elementor-heading-title {
	font-size: clamp(34px, 4.4vw, 52px);
	line-height: 1.1;
	color: #FFFFFF !important;
	margin: 0;
}

.aq-sub {
	font-size: 17px;
	line-height: 1.65;
	color: rgba(255, 255, 255, .74);
	margin: 16px 0 0;
	max-width: 52ch;
}

.aq-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 26px 0 0;
	padding: 0;
}

.aq-chips li {
	display: flex;
	align-items: center;
	gap: 8px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 999px;
	padding: 8px 15px;
	font-size: 13px;
	color: rgba(255, 255, 255, .74);
}

.aq-chips svg { width: 14px; height: 14px; color: #FDB05D; flex: 0 0 14px; }

.aq-stats { display: flex; flex-wrap: wrap; gap: 30px; margin-top: 32px; }
.aq-stats b { display: block; font-size: 30px; line-height: 1; color: #FDB05D; }
.aq-stats span { display: block; font-size: 12.5px; color: rgba(255, 255, 255, .74); margin-top: 4px; }

/* ---- form card ---- */

#aqForm {
	background: #FFFFFF;
	border: 1px solid #EFE4D6;
	border-radius: 16px;
	overflow: hidden;
	padding: 0 !important;
	gap: 0 !important;
	width: 100%;
}

.aq-fhead { padding: 18px 22px; border-bottom: 1px solid #EFE4D6; }
.aq-ftitle { font-size: 17px; font-weight: 700; color: #1D1916; }
.aq-fstep { font-size: 12px; color: #8A7A6C; margin-top: 2px; }
.aq-bar { height: 3px; background: #EFE4D6; }
.aq-bar i { display: block; height: 100%; width: 33.33%; background: #FDB05D; transition: width .35s ease; }

.aq__form { padding: 20px 22px 22px !important; margin: 0 !important; }
.aq__form .wpcf7 { margin: 0; }
.aq__form .wpcf7 p { margin: 0 0 11px; }

.aq__form input[type=text],
.aq__form input[type=tel],
.aq__form input[type=email],
.aq__form select,
.aq__form textarea {
	width: 100%;
	font: inherit;
	font-size: 14px;
	color: #1D1916;
	background: #FFFFFF;
	border: 1px solid #E5DCD1;
	border-radius: 9px;
	padding: 11px 12px;
	line-height: 1.45;
}

.aq__form textarea { height: 92px; resize: vertical; }

.aq__form input:focus,
.aq__form select:focus,
.aq__form textarea:focus {
	outline: none;
	border-color: #FDB05D;
	box-shadow: 0 0 0 3px rgba(253, 176, 93, .22);
}

/* step 1: the four services as picker cards */
.aq__form .wpcf7-radio { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.aq__form .wpcf7-radio .wpcf7-list-item { margin: 0; }
.aq__form .wpcf7-radio label {
	display: block;
	border: 1px solid #EFE4D6;
	border-radius: 11px;
	padding: 13px 14px;
	cursor: pointer;
	font-size: 13.5px;
	font-weight: 700;
	color: #1D1916;
	transition: border-color .2s ease, background-color .2s ease;
}
.aq__form .wpcf7-radio label:hover { border-color: #FDB05D; }
.aq__form .wpcf7-radio input { position: absolute; opacity: 0; pointer-events: none; }
.aq__form .wpcf7-radio label:has(input:checked) { border-color: #FDB05D; background: #FFF6EA; }

.aq-upload { border: 1.5px dashed #CBC2B7; border-radius: 11px; padding: 14px; background: #FCF4EC; }
.aq-upload input[type=file] { font-size: 12.5px; color: #573826; width: 100%; }

.aq-consent { font-size: 12px; line-height: 1.5; color: #8A7A6C; }
.aq-consent .wpcf7-list-item { margin: 0; }

.aq__form input[type=submit] {
	width: 100%;
	border: 0;
	border-radius: 999px;
	background: #FDB05D;
	color: #1D1916;
	font-size: 15px;
	font-weight: 700;
	padding: 14px;
	cursor: pointer;
	transition: background-color .25s ease, color .25s ease;
}

.aq__form input[type=submit]:hover { background: #573826; color: #FFFFFF; }
.aq__form .wpcf7-spinner { display: block; margin: 8px auto 0; }
.aq__form .wpcf7-not-valid-tip { font-size: 12px; color: #B3261E; margin-top: 4px; }
.aq__form .wpcf7-response-output { font-size: 13px; margin: 12px 0 0; padding: 10px 12px; border-radius: 8px; border-width: 1px; }

/* the stepper hides all but the active step */
.eq-step[hidden] { display: none !important; }

.aq-nav { display: flex; gap: 10px; margin-top: 14px; }

.aq-nav button {
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	border-radius: 999px;
	padding: 13px 24px;
	border: 1px solid #FDB05D;
	background: #FDB05D;
	color: #1D1916;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.aq-nav button:hover { background: #573826; border-color: #573826; color: #FFFFFF; }
.aq-nav button.is-ghost { background: transparent; color: #573826; border-color: #CBC2B7; }
.aq-nav button.is-ghost:hover { background: #FCF4EC; color: #1D1916; border-color: #CBC2B7; }

@media (max-width: 1024px) {
	#aqHeroGrid { grid-template-columns: 1fr; gap: 32px !important; }
}

@media (max-width: 767px) {
	#aqHero { padding: 48px 0 54px !important; }
	.aq__form .wpcf7-radio { grid-template-columns: 1fr; }
	.aq-stats { gap: 22px; }
}/* ---------- Angebotsseite: restliche Sektionen ---------- */
#aqMedia, #aqSteps, #aqIncl, #aqTrust, #aqFaq { padding: 72px 0 !important; }
#aqContact { padding: 0 0 78px !important; }
#aqSteps, #aqTrust { background: #FCF4EC; }

#aqMedia .aq__eyebrow .elementor-heading-title,
#aqSteps .aq__eyebrow .elementor-heading-title,
#aqIncl .aq__eyebrow .elementor-heading-title,
#aqTrust .aq__eyebrow .elementor-heading-title,
#aqFaq .aq__eyebrow .elementor-heading-title {
	color: #B08356 !important;
}

.aq__h2 .elementor-heading-title {
	font-size: clamp(26px, 3.2vw, 38px);
	line-height: 1.2;
	color: #1D1916 !important;
	margin: 0;
}

.aq-lede { font-size: 17px; line-height: 1.65; color: #573826; margin: 10px 0 0; max-width: 62ch; }

/* ---- media tiles ---- */
.aq-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 30px; }
.aq-tile { margin: 0; border: 1px solid #EFE4D6; border-radius: 13px; overflow: hidden; background: #FFFFFF; }
.aq-tile img { display: block; width: 100%; height: 172px; object-fit: cover; }
.aq-tile figcaption { padding: 13px 15px; }
.aq-tile b { display: block; font-size: 15px; color: #1D1916; }
.aq-tile small { display: block; font-size: 12.5px; color: #8A7A6C; margin-top: 3px; }

/* ---- process ---- */
.aq-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 30px; }
.aq-step { background: #FFFFFF; border: 1px solid #EFE4D6; border-radius: 13px; padding: 22px 20px; }
.aq-step:last-child { border-color: #FDB05D; }
.aq-step__n { font-size: 25px; font-weight: 700; color: #FDB05D; line-height: 1; margin-bottom: 12px; }
.aq-step h3 { font-size: 19px; line-height: 1.3; color: #1D1916; margin: 0; }
.aq-step p { font-size: 13.5px; line-height: 1.6; color: #573826; margin: 8px 0 0; }

/* ---- includes ---- */
.aq-incl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 28px; }
.aq-incl > div { display: flex; gap: 12px; align-items: flex-start; background: #FFFFFF; border: 1px solid #EFE4D6; border-radius: 12px; padding: 16px 17px; }
.aq-incl svg { width: 17px; height: 17px; color: #FDB05D; flex: 0 0 17px; margin-top: 3px; }
.aq-incl b { display: block; font-size: 15px; color: #1D1916; }
.aq-incl small { display: block; font-size: 13.5px; color: #573826; margin-top: 3px; line-height: 1.55; }

/* ---- trust ---- */
.aq-trust { display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 18px; margin-top: 28px; align-items: stretch; }
.aq-score { position: relative; background: #332E2A; border-radius: 13px; padding: 24px 20px 24px 52px; overflow: hidden; }
.aq-score .blk { position: absolute; left: 18px; width: 22px; }
.aq-score .blk:nth-of-type(1) { top: 0; height: 30px; background: #EDBA8E; }
.aq-score .blk:nth-of-type(2) { bottom: 0; height: 22px; background: #573826; }
.aq-score b { display: block; font-size: 42px; line-height: 1; color: #FFFFFF; }
.aq-score .st { color: #FDB05D; letter-spacing: 3px; font-size: 15px; margin: 8px 0; }
.aq-score small { display: block; font-size: 12.5px; line-height: 1.5; color: rgba(255, 255, 255, .74); }
.aq-clients { background: #FFFFFF; border: 1px solid #EFE4D6; border-radius: 13px; padding: 24px; display: flex; flex-direction: column; justify-content: center; }
.aq-clients p { font-size: 14px; line-height: 1.6; color: #573826; margin: 0 0 18px; }
.aq-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 26px; }
.aq-logos img { height: 30px; width: auto; opacity: .72; filter: grayscale(1); }

/* ---- faq ---- */
.aq-faq { margin-top: 26px; border-top: 1px solid #EFE4D6; }
.aq-faq details { border-bottom: 1px solid #EFE4D6; }
.aq-faq summary { cursor: pointer; list-style: none; padding: 17px 36px 17px 0; position: relative; font-size: 16px; font-weight: 700; color: #1D1916; }
.aq-faq summary::-webkit-details-marker { display: none; }
.aq-faq summary::after { content: '+'; position: absolute; right: 6px; top: 14px; color: #FDB05D; font-size: 21px; line-height: 1; }
.aq-faq details[open] summary::after { content: '\2013'; }
.aq-faq p { padding: 0 0 18px; font-size: 14.5px; line-height: 1.65; color: #573826; margin: 0; max-width: 70ch; }

/* ---- direct contact ---- */
.aq-cta { background: #332E2A; border-radius: 16px; padding: 32px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px; align-items: center; }
.aq-cta h3 { font-size: 23px; color: #FFFFFF; margin: 0; }
.aq-cta p { font-size: 14.5px; line-height: 1.6; color: rgba(255, 255, 255, .74); margin: 8px 0 0; max-width: 46ch; }
.aq-rows { display: flex; flex-direction: column; gap: 10px; min-width: 280px; }
.aq-row { display: flex; align-items: center; gap: 12px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); border-radius: 11px; padding: 12px 14px; text-decoration: none; transition: background-color .2s ease; }
.aq-row:hover { background: rgba(255, 255, 255, .12); }
.aq-row .ic { width: 34px; height: 34px; border: 1.5px solid #FDB05D; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex: 0 0 34px; color: #FDB05D; }
.aq-row .ic svg { width: 16px; height: 16px; }
.aq-row small { display: block; font-size: 11px; color: rgba(255, 255, 255, .74); }
.aq-row b { display: block; font-size: 14px; color: #FFFFFF; }

@media (max-width: 1024px) {
	.aq-tiles, .aq-steps { grid-template-columns: 1fr 1fr; }
	.aq-trust { grid-template-columns: 1fr; }
	.aq-cta { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
	#aqMedia, #aqSteps, #aqIncl, #aqTrust, #aqFaq { padding: 50px 0 !important; }
	.aq-tiles, .aq-steps, .aq-incl { grid-template-columns: 1fr; }
	.aq-cta { padding: 24px; }
	.aq-rows { min-width: 0; }
}/* ---------- Angebotsseite: Korrekturen ---------- */
/* The header is white-on-transparent and expects a dark banner behind it.
   This page has no banner, so the hero itself has to sit under the header. */
.page-id-8684 .breadcrumb-wrap { display: none !important; }

/* The header sits in normal flow here with white text on a white ground,
   because this page has no dark banner behind it. Give the header the same
   dark as the hero so the two read as one block. */
.page-id-8684 header {
	background-color: #332E2A !important;
}

.page-id-8684 #aqHero {
	padding-top: 76px !important;
	padding-bottom: 84px !important;
}

.page-id-8684 #aqHero::before { height: 86px; }
.page-id-8684 #aqHero::after { top: 86px; height: 56px; }

/* ---- tiles are links now ---- */
.aq-tile {
	display: block;
	text-decoration: none;
	border: 1px solid #EFE4D6;
	border-radius: 13px;
	overflow: hidden;
	background: #FFFFFF;
	transition: border-color .2s ease, transform .2s ease;
}

.aq-tile:hover { border-color: #FDB05D; transform: translateY(-3px); }

.aq-tile__img { display: block; overflow: hidden; }

.aq-tile img {
	display: block;
	width: 100%;
	height: 172px;
	object-fit: cover;
	transition: transform .4s ease;
}

.aq-tile:hover img { transform: scale(1.04); }
.aq-tile__b { display: block; padding: 14px 16px 16px; }
.aq-tile b { display: block; font-size: 15px; color: #1D1916; }
.aq-tile small { display: block; font-size: 12.5px; color: #8A7A6C; margin-top: 3px; }

.aq-tile__go {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 11px;
	font-size: 12.5px;
	font-weight: 700;
	color: #573826;
}

.aq-tile__go svg { width: 13px; height: 13px; color: #FDB05D; transition: transform .2s ease; }
.aq-tile:hover .aq-tile__go { color: #1D1916; }
.aq-tile:hover .aq-tile__go svg { transform: translateX(3px); }

/* ---- trust ---- */
.aq-trust { grid-template-columns: 260px minmax(0, 1fr); align-items: stretch; }

.aq-score { display: flex; flex-direction: column; }
.aq-score small { margin-bottom: 18px; }

.aq-score__cta {
	display: block;
	margin-top: auto;
	background: #FDB05D;
	color: #1D1916;
	border-radius: 999px;
	padding: 11px 14px;
	text-align: center;
	font-size: 12.5px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease;
}

.aq-score__cta:hover { background: #FFFFFF; color: #1D1916; }

.aq-clients { padding: 26px 28px; justify-content: flex-start; }
.aq-clients__lead { font-size: 15px; line-height: 1.6; color: #573826; margin: 0 0 22px; max-width: 60ch; }

.aq-clients__label {
	font-size: 10.5px;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: #B08356;
	font-weight: 700;
	padding-bottom: 12px;
	border-bottom: 1px solid #EFE4D6;
	margin-bottom: 20px;
}

.aq-logos {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: center;
	gap: 22px;
}

.aq-logo { display: flex; align-items: center; justify-content: center; }

.aq-logo img {
	max-height: 42px;
	max-width: 100%;
	width: auto;
	height: auto;
	filter: grayscale(1);
	opacity: .85;
	transition: filter .25s ease, opacity .25s ease;
}

.aq-logo:hover img { filter: grayscale(0); opacity: 1; }

@media (max-width: 1024px) {
	.aq-trust { grid-template-columns: 1fr; }
	.aq-score__cta { margin-top: 18px; }
}

@media (max-width: 767px) {
	.page-id-8684 #aqHero { padding-top: 54px !important; padding-bottom: 56px !important; }
	.aq-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
	.aq-clients { padding: 22px; }
}/* -- Angebotsseite: Logo-Marquee im Vertrauensblock -- */
.aq-marq { margin: 0 -28px -4px; }

.aq-marq .engm__i,
.aq-marq .engm__i img { height: 84px; }

.aq-marq .engm {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.aq-marq .engm__t { gap: 18px; }

.aq-clients { padding: 26px 28px 22px; }

@media (max-width: 767px) {
	.aq-marq { margin: 0 -22px -2px; }
	.aq-marq .engm__i,
	.aq-marq .engm__i img { height: 66px; }
	.aq-clients { padding: 22px 22px 18px; }
}/* -- Angebotsseite: Danke-Panel -- */
.aq-thanks {
	padding: 34px 26px 30px;
	text-align: center;
}

.aq-thanks__ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #FDB05D;
	color: #1D1916;
	margin-bottom: 18px;
}

.aq-thanks__ic svg { width: 26px; height: 26px; }

.aq-thanks h3 {
	font-size: 21px;
	line-height: 1.3;
	color: #1D1916;
	margin: 0 0 10px;
}

.aq-thanks p {
	font-size: 14px;
	line-height: 1.65;
	color: #573826;
	margin: 0 auto 18px;
	max-width: 34ch;
}

.aq-thanks__tel {
	display: inline-block;
	font-size: 13.5px;
	font-weight: 700;
	color: #1D1916;
	text-decoration: none;
	border: 1px solid #CBC2B7;
	border-radius: 999px;
	padding: 11px 22px;
	transition: border-color .2s ease, background-color .2s ease;
}

.aq-thanks__tel:hover {
	border-color: #FDB05D;
	background: #FCF4EC;
}/* ---------- Kontaktseite ---------- */
#ktWays, #ktForm, #ktStandort { padding: 68px 0 !important; }
#ktBand { padding: 0 0 68px !important; }
#ktForm { background: #FCF4EC; }

.kt__eyebrow .elementor-heading-title {
	font-size: 11px;
	letter-spacing: .15em;
	text-transform: uppercase;
	font-weight: 700;
	color: #B08356 !important;
	margin: 0 0 12px;
}

.kt__eyebrow .elementor-heading-title::before {
	content: '';
	display: inline-block;
	width: 26px;
	height: 2px;
	background: #FDB05D;
	vertical-align: middle;
	margin-right: 11px;
}

.kt__h2 .elementor-heading-title {
	font-size: clamp(24px, 3vw, 34px);
	line-height: 1.2;
	color: #1D1916 !important;
	margin: 0;
}

.kt-lede { font-size: 16.5px; line-height: 1.65; color: #573826; margin: 10px 0 0; max-width: 62ch; }

/* ---- three ways ---- */
.kt-ways { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 30px; }

.kt-way {
	display: block;
	text-decoration: none;
	background: #FFFFFF;
	border: 1px solid #EFE4D6;
	border-radius: 14px;
	padding: 24px 22px 22px;
	transition: border-color .2s ease, transform .2s ease;
}

.kt-way:hover { border-color: #FDB05D; transform: translateY(-3px); }

.kt-way__ic {
	width: 42px; height: 42px;
	border: 1.5px solid #FDB05D;
	border-radius: 10px;
	display: flex; align-items: center; justify-content: center;
	color: #FDB05D; margin-bottom: 16px;
}

.kt-way__ic svg { width: 19px; height: 19px; }
.kt-way b { display: block; font-size: 18px; color: #1D1916; }
.kt-way .val { display: block; font-size: 15px; font-weight: 700; color: #1D1916; margin-top: 8px; }
.kt-way small { display: block; font-size: 13px; color: #8A7A6C; margin-top: 8px; line-height: 1.55; }
.kt-way .go { display: inline-flex; align-items: center; gap: 7px; margin-top: 14px; font-size: 12.5px; font-weight: 700; color: #573826; }
.kt-way .go svg { width: 13px; height: 13px; color: #FDB05D; transition: transform .2s ease; }
.kt-way:hover .go { color: #1D1916; }
.kt-way:hover .go svg { transform: translateX(3px); }

/* ---- form + what happens next ---- */
#ktSplit {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 330px;
	gap: 24px !important;
	align-items: start;
	margin-top: 30px !important;
	padding: 0 !important;
	width: 100%;
}

#ktFormCard {
	background: #FFFFFF;
	border: 1px solid #EFE4D6;
	border-radius: 14px;
	padding: 26px !important;
	width: auto !important;
}

.kt__form input[type=text],
.kt__form input[type=tel],
.kt__form input[type=email],
.kt__form textarea {
	width: 100%;
	font-size: 14px;
	color: #1D1916;
	background: #FFFFFF;
	border: 1px solid #CBC2B7;
	border-radius: 9px;
	padding: 12px 13px;
}

.kt__form textarea { height: 118px; resize: vertical; }

.kt__form input:focus,
.kt__form textarea:focus {
	outline: none;
	border-color: #FDB05D;
	box-shadow: 0 0 0 3px rgba(253, 176, 93, .22);
}

.kt__form .row { margin-bottom: 11px; }
.kt__form .column-consent { font-size: 12px; line-height: 1.5; color: #8A7A6C; margin: 4px 0 6px; }

.kt__form .ct-button button.elementor-button {
	width: 100%;
	justify-content: center;
	border-radius: 999px;
	background: #FDB05D;
	border: 1px solid #FDB05D;
	color: #1D1916;
	padding: 14px 24px;
	font-size: 15px;
	font-weight: 700;
}

.kt__form .ct-button button.elementor-button:hover { background: #573826; border-color: #573826; color: #FFFFFF; }
.kt__form .ct-button .elementor-button-text span { color: inherit; }

.kt-next { background: #FFFFFF; border: 1px solid #EFE4D6; border-radius: 14px; padding: 24px; }
.kt-next h3 { font-size: 18px; color: #1D1916; margin: 0 0 15px; }
.kt-next ol { margin: 0; padding: 0; list-style: none; counter-reset: s; }
.kt-next li { counter-increment: s; position: relative; padding-left: 34px; margin-bottom: 14px; font-size: 13.5px; line-height: 1.6; color: #573826; }
.kt-next li:last-child { margin-bottom: 0; }
.kt-next li::before { content: counter(s, decimal-leading-zero); position: absolute; left: 0; top: 0; font-size: 13px; font-weight: 700; color: #FDB05D; }

.kt-promise { display: flex; align-items: center; gap: 9px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #EFE4D6; font-size: 12.5px; color: #573826; }
.kt-promise svg { width: 15px; height: 15px; color: #FDB05D; flex: 0 0 15px; }

/* ---- quote band ---- */
.kt-band { background: #332E2A; border-radius: 16px; padding: 32px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 26px; align-items: center; }
.kt-band h3 { font-size: 22px; color: #FFFFFF; margin: 0; }
.kt-band p { font-size: 14.5px; line-height: 1.6; color: rgba(255, 255, 255, .74); margin: 8px 0 0; max-width: 52ch; }
.kt-band a { display: inline-flex; align-items: center; gap: 10px; background: #FDB05D; color: #1D1916; border-radius: 999px; padding: 14px 26px; font-size: 14px; font-weight: 700; text-decoration: none; white-space: nowrap; transition: background-color .2s ease, color .2s ease; }
.kt-band a svg { width: 14px; height: 14px; }
.kt-band a:hover { background: #FFFFFF; }

/* ---- standort ---- */
#ktVisit { display: grid !important; grid-template-columns: 300px minmax(0, 1fr); gap: 18px !important; margin-top: 30px !important; padding: 0 !important; align-items: stretch; width: 100%; }
.kt__info { margin: 0 !important; }
.kt-info { background: #FFFFFF; border: 1px solid #EFE4D6; border-radius: 14px; padding: 24px; height: 100%; display: flex; flex-direction: column; }
.kt-info dl { margin: 0 0 auto; }
.kt-info dt { font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: #B08356; font-weight: 700; margin-bottom: 5px; }
.kt-info dd { margin: 0 0 16px; font-size: 14.5px; color: #1D1916; line-height: 1.55; }
.kt-info dd a { text-decoration: none; color: #1D1916; }
.kt-info dd a:hover { color: #573826; }
.kt-route { display: block; text-align: center; background: #FDB05D; color: #1D1916; border-radius: 999px; padding: 12px; font-size: 13.5px; font-weight: 700; text-decoration: none; margin-top: 18px; transition: background-color .2s ease, color .2s ease; }
.kt-route:hover { background: #573826; color: #FFFFFF; }
.kt__map { margin: 0 !important; }
.kt__map iframe { border-radius: 14px; display: block; width: 100%; }

@media (max-width: 900px) {
	.kt-ways { grid-template-columns: 1fr; }
	#ktSplit, #ktVisit { grid-template-columns: 1fr; }
	.kt-band { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
	#ktWays, #ktForm, #ktStandort { padding: 48px 0 !important; }
	#ktBand { padding: 0 0 48px !important; }
	#ktFormCard { padding: 20px !important; }
	.kt-band { padding: 24px; }
}/* ---------- mobile off-canvas menu ---------- */
.rebuilto-mobile-nav {
	display: flex;
	flex-direction: column;
}

.rebuilto-mobile-nav .site-branding {
	padding: 16px 18px 14px !important;
	border-bottom: 1px solid #EFE4D6;
	margin: 0 !important;
}

/* was a 2560px white PNG rendered at 270x180 */
.rebuilto-mobile-nav .site-branding img {
	width: auto !important;
	height: 42px !important;
	max-width: 160px !important;
	margin: 0 !important;
	display: block;
}

.engmob-cta {
	padding: 15px 18px;
	background: #FCF4EC;
	border-bottom: 1px solid #EFE4D6;
}

.engmob-quote {
	display: block;
	background: #FDB05D;
	color: #1D1916 !important;
	border-radius: 999px;
	padding: 13px 14px;
	text-align: center;
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
	margin-bottom: 10px;
}

.engmob-quote:hover { background: #573826; color: #FFFFFF !important; }

.engmob-row { display: flex; gap: 9px; }

.engmob-tel {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	gap: 9px;
	background: #FFFFFF;
	border: 1px solid #EFE4D6;
	border-radius: 11px;
	padding: 9px 11px;
	text-decoration: none;
	min-width: 0;
}

.engmob-ic {
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	border: 1.5px solid #FDB05D;
	border-radius: 7px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #FDB05D;
}

.engmob-ic svg { width: 14px; height: 14px; }
.engmob-tel small { display: block; font-size: 9.5px; color: #9C8E80; line-height: 1.3; }
.engmob-tel strong { display: block; font-size: 12.5px; font-weight: 700; color: #1D1916; line-height: 1.3; white-space: nowrap; }

.engmob-mail {
	flex: 0 0 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #FFFFFF;
	border: 1px solid #EFE4D6;
	border-radius: 11px;
	color: #FDB05D;
}

.engmob-mail svg { width: 17px; height: 17px; }

/* nav list */
.rebuilto-mobile-nav .menu-scroll-mobile { flex: 1 1 auto; padding: 0 !important; }
.rebuilto-mobile-nav .handheld-navigation { width: 100% !important; padding: 0 !important; }
.rebuilto-mobile-nav .mobile-menu-tab { width: 100% !important; }

.rebuilto-mobile-nav ul.menu { margin: 0; padding: 0; list-style: none; }

.rebuilto-mobile-nav ul.menu > li {
	border-bottom: 1px solid #F5EDE3;
	position: relative;
}

.rebuilto-mobile-nav ul.menu > li > a {
	display: block;
	padding: 15px 52px 15px 18px !important;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .06em;
	color: #1D1916 !important;
	text-decoration: none;
}

.rebuilto-mobile-nav ul.menu > li > a:hover { color: #573826 !important; }

.rebuilto-mobile-nav .dropdown-toggle {
	position: absolute;
	right: 10px;
	top: 6px;
	width: 40px;
	height: 40px;
	background: transparent;
	border: 0;
	cursor: pointer;
}

.rebuilto-mobile-nav .dropdown-toggle::before {
	content: '';
	position: absolute;
	top: 15px;
	left: 14px;
	width: 8px;
	height: 8px;
	border-right: 2px solid #CBC2B7;
	border-bottom: 2px solid #CBC2B7;
	transform: rotate(45deg);
	transition: transform .2s ease, border-color .2s ease;
}

.rebuilto-mobile-nav li.active > .dropdown-toggle::before,
.rebuilto-mobile-nav .dropdown-toggle[aria-expanded="true"]::before {
	transform: rotate(-135deg);
	border-color: #FDB05D;
}

.rebuilto-mobile-nav ul.sub-menu {
	list-style: none;
	margin: 0;
	padding: 0 18px 12px;
	background: #FCF4EC;
}

.rebuilto-mobile-nav ul.sub-menu > li > a {
	display: block;
	padding: 8px 0 8px 14px !important;
	border-left: 2px solid #EFE4D6;
	font-size: 13px;
	font-weight: 400;
	color: #573826 !important;
	text-decoration: none;
}

.rebuilto-mobile-nav ul.sub-menu > li > a:hover { border-left-color: #FDB05D; color: #1D1916 !important; }

/* footer block */
.engmob-foot { margin-top: auto; flex: 0 0 auto; }

.engmob-addr {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	padding: 15px 18px;
	background: #FCF4EC;
	border-top: 1px solid #EFE4D6;
	font-size: 12px;
	line-height: 1.55;
	color: #573826;
}

.engmob-addr a {
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	border: 1.5px solid #FDB05D;
	border-radius: 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #FDB05D;
}

.engmob-addr a svg { width: 15px; height: 15px; }

.engmob-tag {
	background: #332E2A;
	padding: 10px 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.engmob-tag span { font-size: 8.5px; letter-spacing: .1em; text-transform: uppercase; color: #FFFFFF; }
.engmob-tag i { width: 4px; height: 4px; border-radius: 50%; background: #FDB05D; flex: 0 0 4px; }/* -- mobile menu: beat the theme selectors -- */
/* The theme uses .mobile-navigation ul ul.sub-menu > li.menu-item > a
   (three classes). These match it class-for-class so they actually apply. */
.rebuilto-mobile-nav .mobile-navigation ul ul.sub-menu > li.menu-item > a,
.rebuilto-mobile-nav .mobile-navigation ul ul.sub-menu > li.menu-item > a:hover {
	display: block;
	border-top: 0 !important;
	border-right: 0 !important;
	border-bottom: 0 !important;
	border-left: 2px solid #EFE4D6 !important;
	border-radius: 0 !important;
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	padding: 9px 0 9px 14px !important;
	margin: 0 !important;
	color: #573826 !important;
	text-transform: none !important;
}

.rebuilto-mobile-nav .mobile-navigation ul ul.sub-menu > li.menu-item > a:hover {
	border-left-color: #FDB05D !important;
	color: #1D1916 !important;
}

.rebuilto-mobile-nav .mobile-navigation ul ul.sub-menu > li.menu-item {
	border: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.rebuilto-mobile-nav .mobile-navigation ul ul.sub-menu {
	background: #FCF4EC !important;
	padding: 2px 18px 12px !important;
	margin: 0 !important;
	border: 0 !important;
}

/* top level, matched to the theme's own weight */
.rebuilto-mobile-nav .mobile-navigation ul > li.menu-item > a {
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: .06em;
	line-height: 1.3 !important;
	padding: 16px 52px 16px 18px !important;
	color: #1D1916 !important;
	border-bottom: 0 !important;
}

.rebuilto-mobile-nav .mobile-navigation ul > li.menu-item {
	border-bottom: 1px solid #F5EDE3 !important;
}

.rebuilto-mobile-nav .mobile-navigation ul > li.menu-item:last-child {
	border-bottom: 0 !important;
}

/* the theme marks the open state with .toggled-on on the button itself */
.rebuilto-mobile-nav .dropdown-toggle.toggled-on::before {
	transform: rotate(-135deg);
	border-color: #FDB05D;
	top: 19px;
}

.rebuilto-mobile-nav li.menu-item-has-children:has(.dropdown-toggle.toggled-on) > a {
	color: #573826 !important;
}

/* stacked lockup - 42px left the wordmark unreadable */
.rebuilto-mobile-nav .site-branding img {
	height: 58px !important;
	max-width: 170px !important;
}/* ---------- Projekte-Seite ---------- */
#pjTypes, #pjGrid, #pjClients { padding: 70px 0 !important; }
#pjRef { padding: 0 0 78px !important; }
#pjGrid { background: #FCF4EC; }

.pj__eyebrow .elementor-heading-title {
	font-size: 11px;
	letter-spacing: .15em;
	text-transform: uppercase;
	font-weight: 700;
	color: #B08356 !important;
	margin: 0 0 12px;
}

.pj__eyebrow .elementor-heading-title::before {
	content: '';
	display: inline-block;
	width: 26px; height: 2px;
	background: #FDB05D;
	vertical-align: middle;
	margin-right: 11px;
}

.pj__h2 .elementor-heading-title {
	font-size: clamp(25px, 3.1vw, 36px);
	line-height: 1.2;
	color: #1D1916 !important;
	margin: 0;
}

.pj-lede { font-size: 16.5px; line-height: 1.65; color: #573826; margin: 10px 0 0; max-width: 64ch; }

/* who we build for */
.pj-types { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 30px; }
.pj-type { background: #FFFFFF; border: 1px solid #EFE4D6; border-radius: 14px; padding: 24px 22px; }
.pj-type__ic { width: 42px; height: 42px; border: 1.5px solid #FDB05D; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #FDB05D; margin-bottom: 16px; }
.pj-type__ic svg { width: 20px; height: 20px; }
.pj-type h3 { font-size: 19px; line-height: 1.3; color: #1D1916; margin: 0 0 9px; }
.pj-type p { font-size: 14px; line-height: 1.6; color: #573826; margin: 0 0 12px; }
.pj-type small { display: block; font-size: 12px; color: #B08356; letter-spacing: .02em; padding-top: 12px; border-top: 1px solid #EFE4D6; }

/* trades */
.pj-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 30px; }
.pj-tile { position: relative; display: block; border-radius: 12px; overflow: hidden; text-decoration: none; background: #332E2A; }
.pj-tile img { display: block; width: 100%; height: 168px; object-fit: cover; opacity: .82; transition: transform .4s ease, opacity .25s ease; }
.pj-tile:hover img { transform: scale(1.05); opacity: .62; }
.pj-tile__c { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px; display: flex; align-items: center; justify-content: space-between; gap: 10px; background: linear-gradient(to top, rgba(29,25,22,.82), transparent); }
.pj-tile b { font-size: 14.5px; color: #FFFFFF; }
.pj-tile i { display: inline-flex; color: #FDB05D; }
.pj-tile i svg { width: 15px; height: 15px; transition: transform .2s ease; }
.pj-tile:hover i svg { transform: translateX(3px); }

/* clients marquee */
.pj-marq { margin-top: 26px; }
.pj-marq .engm__i, .pj-marq .engm__i img { height: 96px; }
.pj-marq .engm__t { gap: 20px; }

/* honest reference block */
.pj-ref { background: #332E2A; border-radius: 16px; padding: 34px; display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 30px; align-items: center; }
.pj-ref h3 { font-size: 23px; color: #FFFFFF; margin: 0 0 12px; }
.pj-ref p { font-size: 14.5px; line-height: 1.65; color: rgba(255, 255, 255, .74); margin: 0 0 10px; max-width: 56ch; }
.pj-ref__strong { color: #FFFFFF !important; font-weight: 700; margin-bottom: 0 !important; }
.pj-ref__r { display: flex; flex-direction: column; gap: 10px; }

.pj-ref__cta { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: #FDB05D; color: #1D1916; border-radius: 999px; padding: 14px 24px; font-size: 14px; font-weight: 700; text-decoration: none; transition: background-color .2s ease, color .2s ease; }
.pj-ref__cta svg { width: 14px; height: 14px; }
.pj-ref__cta:hover { background: #FFFFFF; }

.pj-ref__tel { display: flex; align-items: center; gap: 11px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16); border-radius: 11px; padding: 11px 13px; text-decoration: none; }
.pj-ref__tel .ic { flex: 0 0 32px; width: 32px; height: 32px; border: 1.5px solid #FDB05D; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; color: #FDB05D; }
.pj-ref__tel .ic svg { width: 15px; height: 15px; }
.pj-ref__tel small { display: block; font-size: 10.5px; color: rgba(255,255,255,.7); }
.pj-ref__tel strong { display: block; font-size: 13.5px; color: #FFFFFF; }

@media (max-width: 1024px) {
	.pj-types { grid-template-columns: 1fr; }
	.pj-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pj-ref { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
	#pjTypes, #pjGrid, #pjClients { padding: 48px 0 !important; }
	#pjRef { padding: 0 0 54px !important; }
	.pj-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
	.pj-tile img { height: 128px; }
	.pj-ref { padding: 24px; }
	.pj-marq .engm__i, .pj-marq .engm__i img { height: 70px; }
}/* ---------- mobile UI fixes ---------- */
@media (max-width: 767px) {

	/* The header overlays the content by ~116px (it is 143px tall and the page
	   body starts at 27px). Anything sitting at the top of a page has to clear
	   it, or the H1 lands on the logo. */
	.breadcrumb-wrap .elementor-widget-rebuilto-breadcrumb {
		padding-top: 92px !important;
	}

	.page-id-8684 #aqHero {
		padding-top: 150px !important;
		padding-bottom: 52px !important;
	}

	/* The marquee track is width:max-content, and a 1fr column will not shrink
	   below its content's min-content width - so the card blew out to 1275px
	   inside a 375px screen. */
	.aq-trust {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.aq-trust > .aq-score,
	.aq-trust > .aq-clients {
		min-width: 0 !important;
		max-width: 100% !important;
	}

	.aq-marq,
	.aq-marq .engm {
		min-width: 0 !important;
		max-width: 100% !important;
		overflow: hidden !important;
	}

	.aq-score__cta { width: 100%; box-sizing: border-box; }
	.aq-clients__lead { max-width: 100%; }

	/* same guard for the reviews block on the homepage */
	.engRev__widget,
	#engRevRow > .elementor-widget-shortcode { min-width: 0 !important; max-width: 100% !important; }

	/* and the projects page client marquee */
	.pj-marq,
	.pj-marq .engm { min-width: 0 !important; max-width: 100% !important; overflow: hidden !important; }
}

@media (min-width: 768px) and (max-width: 1024px) {
	.aq-trust { grid-template-columns: minmax(0, 1fr) !important; }
	.aq-trust > .aq-score,
	.aq-trust > .aq-clients { min-width: 0 !important; }
	.aq-marq, .aq-marq .engm { min-width: 0 !important; max-width: 100% !important; }
}/* ---------- mobile: match the theme gutter ---------- */
/* Theme sections sit 30px from each edge on phones. The sections built here
   were flush to 0, so they need the same gutter. */
@media (max-width: 767px) {
	#aqHero > .e-con-inner,
	#aqMedia > .e-con-inner,
	#aqSteps > .e-con-inner,
	#aqIncl > .e-con-inner,
	#aqTrust > .e-con-inner,
	#aqFaq > .e-con-inner,
	#aqContact > .e-con-inner,
	#ktWays > .e-con-inner,
	#ktForm > .e-con-inner,
	#ktBand > .e-con-inner,
	#ktStandort > .e-con-inner,
	#pjTypes > .e-con-inner,
	#pjGrid > .e-con-inner,
	#pjClients > .e-con-inner,
	#pjRef > .e-con-inner {
		padding-left: 30px !important;
		padding-right: 30px !important;
	}

	/* these already carried their own gutter - keep them at 30 too */
	#engHpProzess { padding-left: 30px !important; padding-right: 30px !important; }
	#engHpCta { padding-left: 30px !important; padding-right: 30px !important; }
	#engRev { padding-left: 30px !important; padding-right: 30px !important; }

	/* the marquee is meant to run edge to edge inside its card */
	.aq-marq { margin-left: -22px; margin-right: -22px; }
	.pj-marq { margin-left: -30px; margin-right: -30px; }
}

@media (min-width: 768px) and (max-width: 1024px) {
	#aqHero > .e-con-inner,
	#aqMedia > .e-con-inner,
	#aqSteps > .e-con-inner,
	#aqIncl > .e-con-inner,
	#aqTrust > .e-con-inner,
	#aqFaq > .e-con-inner,
	#aqContact > .e-con-inner,
	#ktWays > .e-con-inner,
	#ktForm > .e-con-inner,
	#ktBand > .e-con-inner,
	#ktStandort > .e-con-inner,
	#pjTypes > .e-con-inner,
	#pjGrid > .e-con-inner,
	#pjClients > .e-con-inner,
	#pjRef > .e-con-inner {
		padding-left: 40px !important;
		padding-right: 40px !important;
	}
}/* ---------- mobile: grid + marquee width guards ---------- */
@media (max-width: 1024px) {
	/* 1fr will not shrink below its content's min-content width, so a long
	   dot-separated line blew the column past the screen. */
	.pj-types { grid-template-columns: minmax(0, 1fr) !important; }
	.pj-type { min-width: 0 !important; max-width: 100% !important; }
	.pj-type p,
	.pj-type small { min-width: 0; overflow-wrap: anywhere; }

	.aq-incl { grid-template-columns: minmax(0, 1fr) !important; }
	.aq-incl > div { min-width: 0 !important; }
	.aq-steps { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)) !important; }
	.kt-ways { grid-template-columns: minmax(0, 1fr) !important; }
	.kt-way { min-width: 0 !important; }
}

@media (max-width: 767px) {
	.aq-tiles,
	.aq-steps,
	.aq-incl,
	.kt-ways { grid-template-columns: minmax(0, 1fr) !important; }

	.pj-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

	/* negative margins move the edges but do not widen the box - state it */
	.pj-marq {
		margin-left: -30px !important;
		margin-right: -30px !important;
		width: calc(100% + 60px) !important;
		max-width: none !important;
	}

	.aq-marq {
		margin-left: -22px !important;
		margin-right: -22px !important;
		width: calc(100% + 44px) !important;
		max-width: none !important;
	}
}
/* ===== ENGSTORY-START : Ueber uns - Geschichte & Philosophie (2026-08-19) ===== */
#engStory > .e-con-inner{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:24px;
	align-items:stretch;
}
#engStory{padding-right:30px;padding-left:30px}
#engStory > .e-con-inner{padding:0;width:100%;max-width:none}

#engStoryA, #engStoryB{
	position:relative;
	min-width:0;
	background:#FFFFFF;
	border:1px solid #EFE4D6;
	border-radius:16px;
	padding:36px 34px 34px 42px;
	overflow:hidden;
	gap:0;
}
/* brandbook motif: offset peach + brown bars */
#engStoryA::before, #engStoryB::before{content:"";position:absolute;left:0;top:0;width:9px;height:36px;background:#EDBA8E}
#engStoryA::after,  #engStoryB::after{content:"";position:absolute;left:0;top:36px;width:9px;height:23px;background:#573826}

#engStory .engStory__eyebrow{margin-bottom:10px}
#engStory .engStory__eyebrow .elementor-heading-title{
	font-family:"Kumbh Sans",sans-serif;
	font-size:11px;
	font-weight:700;
	letter-spacing:.16em;
	text-transform:uppercase;
	color:#B08356;
	display:flex;
	align-items:center;
	gap:10px;
}
#engStory .engStory__eyebrow .elementor-heading-title::before{content:"";width:22px;height:2px;background:#FDB05D;flex:0 0 22px}

#engStory .engStory__title{margin-bottom:12px}
#engStory .engStory__title .elementor-heading-title{
	font-size:24px;
	line-height:1.2;
	letter-spacing:-.015em;
	color:#1D1916;
}
#engStory .engStory__body{color:#573826;font-size:15.5px;line-height:1.7}
#engStory .engStory__body p{margin:0}
#engStory .engStory__body p + p{margin-top:12px}

@media (max-width:1024px){
	#engStory > .e-con-inner{grid-template-columns:1fr;gap:18px}
	#engStoryA, #engStoryB{padding:28px 24px 26px 34px}
	#engStory .engStory__title .elementor-heading-title{font-size:21px}
}
@media (max-width:767px){
	#engStory{padding-left:15px;padding-right:15px}
	#engStory .engStory__body{font-size:15px}
}
/* ===== ENGSTORY-END ===== */

/* ===== ENGZAHLEN-START : Ueber uns - Zahlen-Sektion auf Mobil (2026-08-19) ===== */
/* Desktop-Abstaende (2x 300px Spacer + 300px Mindesthoehe je Zaehler)
   stapeln sich auf dem Telefon zu ~1500px Leerraum. */
@media (max-width:767px){
	.elementor-element-d056afc .elementor-widget-spacer{display:none}
	.elementor-element-d056afc .elementor-element-51f276a,
	.elementor-element-d056afc .elementor-element-0cb012b{min-height:0;height:auto}
	.elementor-element-d056afc .elementor-element-f0278f9,
	.elementor-element-d056afc .elementor-element-95a6878,
	.elementor-element-d056afc .elementor-element-5c465b4{
		min-height:0;
		height:auto;
		padding-top:18px;
		padding-bottom:18px;
	}
	.elementor-element-d056afc .elementor-element-82fdb3b{gap:8px}
}
/* ===== ENGZAHLEN-END ===== */
