/**
 * Catering Toleranz – Theme-Styles
 * Übertragen aus dem Screen-Design (index.html) auf Gutenberg-Blöcke.
 * Farben und Schriften kommen aus theme.json und lassen sich im Website-Editor ändern.
 */

:root {
	--ct-navy: var(--wp--preset--color--navy);
	--ct-navy-2: var(--wp--preset--color--navy-2);
	--ct-blue: var(--wp--preset--color--blue);
	--ct-blue-dark: var(--wp--preset--color--blue-dark);
	--ct-blue-light: var(--wp--preset--color--blue-light);
	--ct-sky: var(--wp--preset--color--sky);
	--ct-cream: var(--wp--preset--color--cream);
	--ct-text: var(--wp--preset--color--text);
	--ct-muted: var(--wp--preset--color--muted);
	--ct-line: var(--wp--preset--color--line);
	--ct-serif: var(--wp--preset--font-family--serif);
	--ct-sans: var(--wp--preset--font-family--sans);
	--ct-hand: var(--wp--preset--font-family--hand);
	--ct-radius: 10px;
	--ct-shadow: 0 6px 24px rgba(19, 42, 79, .08);
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }

/* ---------- Abstände: WordPress-Blockabstände in den Theme-Bereichen neutralisieren ---------- */
body .wp-site-blocks > * { margin-block: 0; }
body .ct-s :where(p, h1, h2, h3, h4, figure, ul, ol, blockquote, .wp-block-buttons, .wp-block-group, .wp-block-image, .wp-block-social-links, .wp-block-navigation) { margin-block: 0; }
.ct-s .wp-block-image img { display: block; }
.ct-main { margin: 0; }

/* ---------- Dachzeile, Pfeil-Link, Serif-Überschrift ---------- */
.is-style-ct-eyebrow {
	font-size: 12px;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-weight: 700;
}
.is-style-ct-link-arrow a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--ct-blue);
	font-weight: 700;
	font-size: 15px;
	text-decoration: none;
}
.is-style-ct-link-arrow a::after,
.wp-block-button__link::after,
.ct-pdf-link a::after {
	content: "";
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: url(../icons/arrow.svg) center / contain no-repeat;
	mask: url(../icons/arrow.svg) center / contain no-repeat;
	transition: transform .2s;
}
.is-style-ct-link-arrow a:hover::after { transform: translateX(3px); }
h1.is-style-ct-serif, h2.is-style-ct-serif, h3.is-style-ct-serif {
	font-family: var(--ct-serif);
}

/* ---------- Buttons ---------- */
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	white-space: nowrap;
	transition: background-color .2s, color .2s, border-color .2s;
}
.wp-block-button__link::after { width: 16px; height: 16px; }
.wp-block-button.ct-no-arrow .wp-block-button__link::after { display: none; }

.wp-block-button.is-style-ct-outline .wp-block-button__link {
	background: #fff;
	color: var(--ct-blue);
	border-color: var(--ct-blue);
	padding: 9px 16px;
	font-size: 14px;
}
.wp-block-button.is-style-ct-outline .wp-block-button__link:hover {
	background: var(--ct-blue-light);
	color: var(--ct-blue);
}
.wp-block-button.is-style-ct-ghost .wp-block-button__link {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, .75);
}
.wp-block-button.is-style-ct-ghost .wp-block-button__link:hover {
	background: rgba(255, 255, 255, .12);
	color: #fff;
}

/* ---------- Header ---------- */
.ct-site-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
	background: #fff;
	box-shadow: 0 1px 0 var(--ct-line);
}
.ct-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	height: 88px;
}
.ct-header .ct-logo img { height: 56px; width: auto; }
.ct-nav .wp-block-navigation__container { gap: 30px; }
.ct-nav .wp-block-navigation-item__content {
	font-size: 15px;
	color: var(--ct-text);
	padding: 8px 0;
	border-bottom: 2px solid transparent;
	text-decoration: none;
}
.ct-nav .wp-block-navigation-item__content:hover,
.ct-nav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--ct-blue);
	border-color: var(--ct-blue);
}
.ct-nav .wp-block-navigation__responsive-container-open,
.ct-nav .wp-block-navigation__responsive-container-close { color: var(--ct-navy); }
.ct-nav .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }
.ct-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 24px 32px; }
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 18px; }

/* ---------- Hero ---------- */
.ct-hero {
	position: relative;
	background: var(--ct-navy);
	color: #fff;
	overflow: hidden;
}
.ct-hero > .ct-hero__img {
	position: absolute;
	inset: 0 0 0 auto;
	width: 58%;
	max-width: none;
	margin: 0 !important;
}
.ct-hero .ct-hero__img img,
.ct-cta .ct-cta__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ct-hero__img::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, var(--ct-navy) 0%, rgba(19, 42, 79, .85) 14%, rgba(19, 42, 79, 0) 42%);
	pointer-events: none;
}
.ct-hero__inner {
	position: relative;
	z-index: 1;
	padding: 96px 0 64px;
}
.ct-hero__inner > * { max-width: 620px; }
.ct-hero .is-style-ct-eyebrow { color: #dfe8f5; margin-bottom: 22px; }
.ct-hero h1 { color: #fff; margin-bottom: 26px; }
.ct-hero .ct-lead { font-size: 18px; color: #e8eef7; max-width: 520px; margin-bottom: 34px; }
.ct-hero .ct-hero__ctas { gap: 16px; margin-bottom: 56px; }
.ct-usps { display: flex; flex-wrap: wrap; gap: 34px; }
.ct-usp { display: flex; align-items: center; gap: 12px; }
.ct-usp .ct-icon img { width: 38px; height: 38px; }
.ct-usp p { font-size: 13px; line-height: 1.3; color: #e8eef7; }

/* ---------- Abschnitte allgemein ---------- */
.ct-section { padding-block: 88px; }
.ct-zielgruppen { background: var(--ct-cream); }
.ct-section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	margin-bottom: 40px !important;
}
.ct-section-head .is-style-ct-eyebrow { color: var(--ct-muted); margin-bottom: 10px; }
.ct-section-head h2 {
	font-family: var(--ct-serif);
	font-size: clamp(28px, 3.2vw, 40px);
	line-height: 1.2;
	font-weight: 400;
}

/* ---------- Karten ---------- */
.ct-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ct-card {
	background: #fff;
	border-radius: var(--ct-radius);
	overflow: hidden;
	box-shadow: var(--ct-shadow);
	display: flex;
	flex-direction: column;
	transition: transform .2s, box-shadow .2s;
}
.ct-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(19, 42, 79, .14); }
.ct-card .ct-card__img img { width: 100%; aspect-ratio: 8 / 3; object-fit: cover; }
.ct-card__body {
	position: relative;
	padding: 44px 32px 30px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.ct-card__icon {
	position: absolute;
	top: -30px;
	left: 28px;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: #fff;
	display: grid !important;
	place-items: center;
	box-shadow: 0 4px 12px rgba(19, 42, 79, .12);
}
.ct-card .ct-card__icon img { width: 30px; height: 30px; }
.ct-card h3 { font-size: 22px; margin-bottom: 10px; }
.ct-card .ct-card__sub { font-size: 16px; color: var(--ct-text); margin-bottom: 18px; }
.ct-card .ct-card__text { font-size: 15px; color: var(--ct-muted); margin-bottom: 22px; }
.ct-card .is-style-ct-link-arrow { margin-top: auto; }

/* ---------- Qualität ---------- */
.ct-quality {
	position: relative;
	overflow: hidden;
	background: var(--ct-sky);
	padding-block: 64px;
}
.ct-quality::after {
	content: "";
	position: absolute;
	right: -20px;
	top: 10px;
	width: 120px;
	height: 200px;
	background: url(../icons/deco-leaf.svg) center / contain no-repeat;
	opacity: .6;
	pointer-events: none;
}
.ct-quality__inner { display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: center; }
.ct-quality h2 { margin-bottom: 16px; }
.ct-quality__text p { margin-bottom: 24px; max-width: 520px; }
.ct-seals {
	background: rgba(255, 255, 255, .55);
	border-radius: var(--ct-radius);
	padding: 28px 32px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	align-items: center;
	justify-items: center;
	text-align: center;
}
.ct-seals .ct-seal img { height: 96px; width: auto; mix-blend-mode: multiply; }
.ct-seals .ct-seal--small img { height: 72px; margin: 0 auto; }
.ct-seal-caption { font-size: 13px; font-weight: 700; line-height: 1.3; margin-top: 6px !important; }
.ct-seal-link { margin-top: 10px !important; }
.ct-seal-link a { font-size: 13px; }

/* ---------- Region + Speisepläne ---------- */
.ct-region { padding-block: 56px; }
.ct-region__grid { display: grid; grid-template-columns: 1.05fr 1fr 1.2fr; gap: 32px; align-items: center; }
.ct-region__img { border-radius: var(--ct-radius); overflow: hidden; height: 100%; min-height: 280px; }
.ct-region .ct-region__img img { width: 100%; height: 100%; object-fit: cover; }
.ct-region__text h2 { font-size: clamp(24px, 2.3vw, 28px); margin-bottom: 16px; }
.ct-region__text p { color: var(--ct-muted); margin-bottom: 24px; }
.ct-menus { background: var(--ct-blue-light); border-radius: var(--ct-radius); padding: 30px 30px 26px; }
.ct-menus__head { display: flex; gap: 16px; margin-bottom: 20px !important; }
.ct-menus__head .ct-icon img { width: 40px; height: 40px; }
.ct-menus h3 { font-size: 22px; font-weight: 700; margin-bottom: 4px; }
.ct-menus__head p { font-size: 15px; color: var(--ct-muted); }
.ct-menu-list {
	list-style: none;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 20px !important;
}
.ct-menu-list a {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #fff;
	border-radius: 6px;
	padding: 11px 14px;
	font-size: 15px;
	color: var(--ct-navy);
	text-decoration: none;
	transition: .2s;
}
.ct-menu-list a:hover { box-shadow: var(--ct-shadow); color: var(--ct-blue); }
.ct-menu-list a::before,
.ct-menu-list a::after {
	content: "";
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	-webkit-mask: url(../icons/file.svg) center / contain no-repeat;
	mask: url(../icons/file.svg) center / contain no-repeat;
	background: var(--ct-blue);
}
.ct-menu-list a::after {
	margin-left: auto;
	background: var(--ct-navy);
	-webkit-mask-image: url(../icons/chev.svg);
	mask-image: url(../icons/chev.svg);
}
.ct-pdf-link a {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--ct-blue);
	font-size: 14px;
	font-weight: 600;
	text-decoration: underline;
}
.ct-pdf-link a::before {
	content: "PDF";
	width: 26px;
	height: 32px;
	padding-bottom: 4px;
	background: #e03131;
	color: #fff;
	font-size: 8px;
	font-weight: 800;
	display: grid;
	place-items: end center;
	border-radius: 2px;
	clip-path: polygon(0 0, 70% 0, 100% 25%, 100% 100%, 0 100%);
}

/* ---------- Zahlen ---------- */
.ct-stats { background: var(--ct-navy); color: #fff; padding-block: 56px; }
.ct-stats .is-style-ct-eyebrow { color: #cdd8ea; margin-bottom: 30px; }
.ct-stats__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; }
.ct-stat { display: flex; gap: 16px; align-items: flex-start; }
.ct-stat .ct-icon img { width: 44px; height: 44px; }
.ct-stat__num { font-size: 30px; font-weight: 700; line-height: 1.1; margin-bottom: 4px !important; }
.ct-stat__label { font-size: 14px; color: #dbe3f0; line-height: 1.35; }

/* ---------- Kundenstimmen + Partner ---------- */
.ct-voices-section { padding-block: 64px; }
.ct-voices__grid { display: grid; grid-template-columns: 1.6fr 1fr; }
.ct-voices { padding-right: 48px; border-right: 1px solid var(--ct-line); }
.ct-voices h2, .ct-partners h2 { font-size: clamp(22px, 2.2vw, 26px); margin-bottom: 24px; }
.ct-slider {
	position: relative;
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 28px;
	align-items: center;
	padding: 0 40px;
}
.ct-testimonials .wp-block-quote {
	margin: 0;
	border: 0;
	padding: 28px;
	background: #f7f9fc;
	border-radius: var(--ct-radius);
	font-style: normal;
}
.ct-testimonials .wp-block-quote p { font-size: 16px; margin-bottom: 18px; }
.ct-testimonials .wp-block-quote cite { font-style: normal; font-size: 14px; color: var(--ct-muted); }
.ct-testimonials .wp-block-quote cite strong { color: var(--ct-navy); }
.ct-slider .ct-danke img { border-radius: 4px; box-shadow: var(--ct-shadow); }
.ct-danke figcaption { font-size: 14px; margin: 10px 0 0; color: var(--ct-text); text-align: left; }
.ct-slider__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}
.ct-slider__btn::before {
	content: "";
	display: block;
	width: 28px;
	height: 28px;
	margin: auto;
	background: var(--ct-navy);
	-webkit-mask: url(../icons/chev.svg) center / contain no-repeat;
	mask: url(../icons/chev.svg) center / contain no-repeat;
}
.ct-slider__btn--prev { left: -6px; }
.ct-slider__btn--prev::before { -webkit-mask-image: url(../icons/chev-l.svg); mask-image: url(../icons/chev-l.svg); }
.ct-slider__btn--next { right: -6px; }
.ct-dots { display: flex; gap: 6px; margin: 22px 0 0 40px; }
.ct-dots button {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 4px;
	background: #c4cfdd;
	cursor: pointer;
	transition: width .2s;
}
.ct-dots button.is-active { width: 20px; background: var(--ct-blue); }
.ct-partners { padding-left: 48px; }
.ct-partners h2 { margin-bottom: 6px; }
.ct-partners > p { color: var(--ct-muted); margin-bottom: 24px; }
.ct-partner-logos {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 22px 32px;
	align-items: center;
	margin-bottom: 24px !important;
}
.ct-partners .ct-partner-logos img { height: 48px; width: auto; mix-blend-mode: multiply; }

/* ---------- Call to Action ---------- */
.ct-cta { position: relative; background: var(--ct-navy-2); color: #fff; overflow: hidden; }
.ct-cta > .ct-cta__img {
	position: absolute;
	inset: 0 0 0 auto;
	width: 48%;
	max-width: none;
	margin: 0 !important;
}
.ct-cta__img::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, var(--ct-navy-2) 0%, rgba(15, 34, 68, .6) 25%, rgba(15, 34, 68, 0) 55%);
	pointer-events: none;
}
.ct-cta__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 48px;
	align-items: center;
	padding-block: 60px;
}
.ct-cta__inner > * { max-width: 440px; }
.ct-cta__inner > .ct-cta__btns { max-width: none; }
.ct-cta__inner { padding-right: calc(100% - 840px); }
.ct-cta h2 { color: #fff; margin-bottom: 16px; }
.ct-cta p { color: #dbe3f0; }
.ct-cta .ct-cta__btns { flex-direction: column; align-items: stretch; gap: 16px; }
.ct-cta .ct-cta__btns .wp-block-button__link { width: 100%; justify-content: space-between; }
.ct-cta .ct-cta__btns .wp-block-button:not([class*="is-style-"]) .wp-block-button__link { border-color: rgba(255, 255, 255, .35); }

/* ---------- FAQ-Hinweis ---------- */
.ct-faq { background: var(--ct-blue-light); padding-block: 36px; }
.ct-faq__inner { display: flex; align-items: center; gap: 24px; }
.ct-faq__icon {
	width: 58px;
	height: 58px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--ct-blue);
	color: #fff;
	display: grid;
	place-items: center;
	font-size: 32px;
	font-weight: 700;
	line-height: 1;
}
.ct-faq h2 { font-size: 20px; font-weight: 700; }
.ct-faq p:not(.ct-faq__icon) { font-size: 15px; color: var(--ct-muted); }
.ct-faq__inner > .wp-block-buttons { margin-left: auto; }

/* ---------- Footer ---------- */
.ct-footer { padding-block: 56px 40px; background: #fff; }
.ct-footer__grid {
	display: grid;
	grid-template-columns: auto auto auto auto auto 1fr;
	gap: 40px;
	align-items: start;
}
.ct-footer .ct-footer__logo img { height: 96px; width: auto; }
.ct-footer ul { list-style: none; padding: 0; }
.ct-footer__nav { display: flex; flex-direction: column; gap: 8px; font-size: 15px; }
.ct-footer a { color: var(--ct-text); text-decoration: none; }
.ct-footer a:hover { color: var(--ct-blue); }
.ct-footer__contact {
	display: flex;
	flex-direction: column;
	gap: 12px;
	font-size: 15px;
	border-left: 1px solid var(--ct-line);
	padding-left: 40px !important;
	align-self: stretch;
}
.ct-footer__contact li { display: flex; align-items: center; gap: 12px; }
.ct-footer__contact li::before {
	content: "";
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	background: var(--ct-navy);
	-webkit-mask: var(--ct-ic) center / contain no-repeat;
	mask: var(--ct-ic) center / contain no-repeat;
}
.ct-ic-phone { --ct-ic: url(../icons/phone.svg); }
.ct-ic-mail { --ct-ic: url(../icons/mail.svg); }
.ct-ic-globe { --ct-ic: url(../icons/globe.svg); }
.ct-footer__social {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 22px;
	align-self: stretch;
}
.ct-social { gap: 18px; }
.ct-social .wp-social-link { color: var(--ct-navy); }
.ct-social .wp-social-link svg { width: 22px; height: 22px; }
.ct-social.is-style-logos-only .wp-social-link a { padding: 0; }
.ct-footer__legal { font-size: 14px; color: var(--ct-muted); }
.ct-footer__legal a { color: var(--ct-muted); margin: 0 4px; }
.ct-footer__legal a:first-child { margin-left: 0; }
.ct-footer__claim {
	justify-self: end;
	font-family: var(--ct-hand);
	font-size: 26px;
	line-height: 1.1;
	color: var(--ct-navy);
	text-align: center;
	transform: rotate(-6deg);
}
.ct-footer__claim::after {
	content: "";
	display: inline-block;
	width: 22px;
	height: 22px;
	margin-left: 6px;
	vertical-align: middle;
	background: var(--ct-navy);
	-webkit-mask: url(../icons/heart.svg) center / contain no-repeat;
	mask: url(../icons/heart.svg) center / contain no-repeat;
}

/* ---------- Unterseiten, Beiträge, Archive ---------- */
.ct-page { padding-block: 64px 88px; }
.ct-page__title { margin-bottom: 24px; }
.ct-page__meta { color: var(--ct-muted); font-size: 14px; }
.ct-page__image img { border-radius: var(--ct-radius); }
.ct-prose a { text-decoration: underline; }
.ct-breadcrumbs { font-size: 14px; color: var(--ct-muted); margin-bottom: 16px; }
.ct-breadcrumbs a { color: var(--ct-blue); }
.ct-query .wp-block-post-template { list-style: none; padding: 0; display: grid; gap: 40px; }
.ct-query .wp-block-post-title a { color: var(--ct-navy); text-decoration: none; }
.ct-query .wp-block-post-title a:hover { color: var(--ct-blue); }
.ct-search .wp-block-search__input { border: 1px solid var(--ct-line); border-radius: 8px; padding: 10px 14px; }
.ct-search .wp-block-search__button::after { display: none; }

/* Rank Math FAQ- und Inhaltsverzeichnis-Blöcke */
.wp-block-rank-math-faq-block .rank-math-faq-item {
	background: var(--ct-blue-light);
	border-radius: var(--ct-radius);
	padding: 20px 24px;
	margin-bottom: 16px;
}
.wp-block-rank-math-faq-block .rank-math-question { font-size: 18px; margin: 0 0 8px; }
.wp-block-rank-math-toc-block {
	background: var(--ct-cream);
	border-radius: var(--ct-radius);
	padding: 20px 24px;
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.ct-nav .wp-block-navigation__container { gap: 20px; }
	.ct-region__grid { grid-template-columns: 1fr 1fr; }
	.ct-menus { grid-column: 1 / -1; }
	.ct-stats__grid { grid-template-columns: repeat(3, 1fr); row-gap: 36px; }
	.ct-voices__grid { grid-template-columns: 1fr; }
	.ct-voices {
		padding-right: 0;
		border-right: 0;
		border-bottom: 1px solid var(--ct-line);
		padding-bottom: 48px;
		margin-bottom: 48px !important;
	}
	.ct-partners { padding-left: 0; }
	.ct-footer__grid { grid-template-columns: repeat(3, auto); row-gap: 36px; }
	.ct-footer__contact { border-left: 0; padding-left: 0 !important; }
	.ct-footer__claim { justify-self: start; }
}

/* Burger-Menü schon ab 900 px statt erst ab 600 px (WordPress-Standard) */
@media (min-width: 600px) and (max-width: 900px) {
	.ct-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ct-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

@media (max-width: 900px) {
	.ct-header__cta { display: none !important; }
	.ct-header__inner { gap: 16px; }
	.ct-hero, .ct-cta { display: flex; flex-direction: column; }
	.ct-hero > .ct-hero__img,
	.ct-cta > .ct-cta__img {
		position: relative;
		inset: auto;
		order: 2;
		width: auto;
		height: 340px;
		margin-inline: calc(var(--wp--style--root--padding-left) * -1) calc(var(--wp--style--root--padding-right) * -1) !important;
	}
	.ct-cta > .ct-cta__img { height: 220px; }
	.ct-hero__img::after { background: linear-gradient(0deg, rgba(19, 42, 79, 0) 60%, var(--ct-navy) 100%); }
	.ct-cta__img::after { background: linear-gradient(0deg, rgba(15, 34, 68, 0) 50%, var(--ct-navy-2) 100%); }
	.ct-hero__inner { padding: 56px 0 32px; }
	.ct-cards { grid-template-columns: 1fr; }
	.ct-quality__inner { grid-template-columns: 1fr; gap: 32px; }
	.ct-cta__inner { grid-template-columns: 1fr; gap: 28px; padding: 48px 0 40px; }
}

@media (max-width: 640px) {
	html body {
		--wp--style--root--padding-left: 16px;
		--wp--style--root--padding-right: 16px;
	}
	.ct-header__inner { height: 72px; }
	.ct-header .ct-logo img { height: 44px; }
	.ct-section { padding-block: 64px; }
	.ct-usps { gap: 20px; }
	.ct-region__grid { grid-template-columns: 1fr; }
	.ct-seals { grid-template-columns: 1fr 1fr; padding: 22px; }
	.ct-seals .ct-seal img { height: 76px; }
	.ct-stats__grid { grid-template-columns: 1fr 1fr; }
	.ct-slider { grid-template-columns: 1fr; padding: 0 32px; }
	.ct-faq__inner { flex-wrap: wrap; }
	.ct-faq__inner > .wp-block-buttons { margin-left: 0; }
	.ct-footer__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; }
	.ct-footer__logo, .ct-footer__contact, .ct-footer__social, .ct-footer__claim { grid-column: 1 / -1; }
	.ct-footer__contact a { overflow-wrap: anywhere; }
	.wp-block-button__link { white-space: normal; }
}

/* Weniger Bewegung, wenn im System so eingestellt */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.ct-card, .ct-card:hover { transition: none; transform: none; }
}
