/* Dienstleistungen — desktop lock. Tablet/mobile after desktop QA. */

.leistungen-page {
	overflow: hidden;
}

.leistungen-card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	flex-shrink: 0;
}

.leistungen-card-icon.is-blue {
	background: rgba(89, 178, 255, 0.07);
}

.leistungen-card-icon.is-red {
	background: rgba(255, 69, 69, 0.08);
}

.leistungen-card-icon.is-gold {
	background: #fff6d6;
}

.leistungen-card-icon img {
	display: block;
	width: 22px;
	height: 22px;
}

/* ---------- Hero ---------- */
.leistungen-hero {
	background: #012e55;
	padding: 96px 0;
}

.leistungen-hero-cloud-tr {
	width: 214px;
	right: 0;
	top: 38px;
	opacity: 0.5;
	mix-blend-mode: normal;
}

.leistungen-hero-cloud-bl {
	width: 344px;
	left: -126px;
	top: 644px;
}

.leistungen-hero-cloud-br {
	width: 349px;
	right: -59px;
	top: 430px;
	opacity: 0.5;
}

.leistungen-hero .page-width-boxed {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
	text-align: center;
	position: relative;
	z-index: 1;
}

.leistungen-hero-media {
	height: 460px;
	border-radius: 28px;
	background: #012e55;
	width: 100%;
}

.leistungen-hero .page-width-boxed,
.leistungen-grid-section .page-width-boxed,
.leistungen-gallery .page-width-boxed {
	position: relative;
	z-index: 1;
}

.leistungen-hero-copy {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	width: 100%;
	min-width: 0;
}

.leistungen-hero-crumb {
	font-family: "Source Sans 3", sans-serif;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.4;
	color: #c7d2de;
	margin: 0;
	max-width: 100%;
}

.leistungen-hero-copy .theme-overline {
	max-width: 100%;
}

.leistungen-hero-copy .theme-title-xl {
	max-width: 100%;
	min-width: 0;
	margin: 0;
}

.leistungen-hero-lead {
	max-width: 820px;
	width: 100%;
	min-width: 0;
	color: #c7d2de;
	margin: 0;
}

/* ---------- Grid ---------- */
.leistungen-grid-section {
	background: #fff;
	padding: 96px 0;
}

.leistungen-grid-glow-tr {
	width: 240px;
	height: 240px;
	right: -67px;
	top: 40px;
}

.leistungen-grid-glow-bl {
	width: 220px;
	height: 220px;
	left: -80px;
	bottom: 80px;
}

.leistungen-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	position: relative;
	z-index: 1;
}

.leistungen-card,
.leistungen-card:visited,
.leistungen-card:hover,
.leistungen-card:focus,
.leistungen-card:active {
	background: #fff;
	border: 1px solid #edf0f3;
	border-radius: 16px;
	padding: 28px 26px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	box-shadow: 0 10px 26px 0 rgba(1, 46, 84, 0.07);
	color: inherit;
	text-align: left;
}

.leistungen-card:hover,
.leistungen-card:focus {
	border-color: #e2e7ec;
	box-shadow: 0 12px 28px 0 rgba(1, 46, 84, 0.1);
	color: inherit;
}

.leistungen-card-media {
	width: 100%;
	height: 200px;
	border-radius: 16px;
	flex-shrink: 0;
}

.leistungen-card .theme-title-xs {
	margin: 0;
	width: 100%;
}

.leistungen-card .theme-text-sm {
	margin: 0;
	width: 100%;
	flex-grow: 1;
}

.leistungen-card-more {
	font-family: "Source Sans 3", sans-serif;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.4;
	color: #f04;
}

.leistungen-card:hover .leistungen-card-more,
.leistungen-card:focus .leistungen-card-more {
	color: #f04;
}

/* ---------- Galerie ---------- */
.leistungen-gallery {
	background: #f5f7fa;
	padding: 64px 0;
}

.leistungen-gallery-glow-tl {
	width: 360px;
	height: 360px;
	left: -116px;
	top: 204px;
}

.leistungen-gallery-glow-br {
	width: 200px;
	height: 200px;
	right: 2px;
	bottom: 65px;
}

.leistungen-gallery-row {
	display: flex;
	gap: 20px;
	position: relative;
	z-index: 1;
}

.leistungen-gallery-column {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
}

.leistungen-gallery-media {
	width: 100%;
	border-radius: 18px;
	flex-shrink: 0;
}

.leistungen-gallery-column-tall .leistungen-gallery-media {
	height: 460px;
}

.leistungen-gallery-column-pair .leistungen-gallery-media {
	height: 220px;
}

.leistungen-gallery-column-mixed .leistungen-gallery-media:first-child {
	height: 300px;
}

.leistungen-gallery-column-mixed .leistungen-gallery-media:last-child {
	height: 140px;
}

.leistungen-gallery-row.is-fluid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.leistungen-gallery-row.is-fluid .leistungen-gallery-media {
	height: 220px;
	border-radius: 18px;
}

/* ---------- CTA ---------- */
.leistungen-cta {
	background: #012e55;
	padding: 96px 0;
}

.leistungen-cta-cloud-l {
	width: 436px;
	left: -67px;
	top: 45px;
}

.leistungen-cta-cloud-r {
	width: 363px;
	right: -38px;
	top: 0;
}

.leistungen-cta-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	text-align: center;
	position: relative;
	z-index: 1;
}

.leistungen-cta-inner .theme-title-md {
	color: #fff;
	margin: 0;
}

.leistungen-cta-lead {
	color: #c7d2de;
	max-width: 760px;
	margin: 0;
}

.leistungen-cta-buttons {
	display: flex;
	gap: 14px;
	justify-content: center;
	padding-top: 6px;
}

@media (max-width: 1024px) {
	.leistungen-hero {
		padding: 64px 0;
	}

	.leistungen-grid-section {
		padding: 64px 0;
	}

	.leistungen-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}

	.leistungen-gallery-row:not(.is-fluid) {
		display: flex;
		flex-direction: column;
		flex-wrap: wrap;
		align-content: space-between;
		height: 628px;
		gap: 16px;
	}

	.leistungen-gallery-column {
		display: contents;
	}

	.leistungen-gallery-row:not(.is-fluid) .leistungen-gallery-media {
		width: calc(50% - 8px);
		border-radius: 16px;
	}

	.leistungen-gallery-column-tall .leistungen-gallery-media {
		order: 1;
		height: 300px;
	}

	.leistungen-gallery-column-mixed .leistungen-gallery-media:first-child {
		order: 2;
		height: 260px;
	}

	.leistungen-gallery-column-pair .leistungen-gallery-media:first-child {
		order: 3;
		height: 180px;
	}

	.leistungen-gallery-column-pair .leistungen-gallery-media:last-child {
		order: 4;
		height: 200px;
	}

	.leistungen-gallery-column-mixed .leistungen-gallery-media:last-child {
		order: 5;
		height: 140px;
	}

	.leistungen-gallery-row.is-fluid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
	}

	.leistungen-gallery-row.is-fluid .leistungen-gallery-media {
		height: 220px;
	}

	.leistungen-cta {
		padding: 64px 0;
	}
}

@media (max-width: 767px) {
	.leistungen-hero {
		padding: 32px 0;
	}

	.leistungen-hero .theme-cloud,
	.leistungen-cta .theme-cloud,
	.leistungen-page .theme-glow {
		display: none;
	}

	.leistungen-hero-media {
		height: 460px;
	}

	.leistungen-hero-copy {
		align-items: stretch;
	}

	.leistungen-hero-copy .theme-title-xl {
		font-size: 22px;
		line-height: 1.15;
		overflow-wrap: break-word;
		word-break: break-word;
	}

	.leistungen-hero-lead {
		max-width: none;
	}

	.leistungen-hero-copy .theme-button {
		width: 100%;
	}

	.leistungen-grid-section {
		padding: 32px 0;
	}

	.leistungen-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.leistungen-card {
		padding: 28px 16px;
	}

	.leistungen-card-icon {
		width: 100%;
		height: 44px;
	}

	.leistungen-card .theme-title-xs {
		font-size: 18px;
	}

	.leistungen-gallery {
		padding: 32px 0;
	}

	.leistungen-gallery-row:not(.is-fluid) {
		height: auto;
		flex-wrap: nowrap;
		gap: 20px;
	}

	.leistungen-gallery-row:not(.is-fluid) .leistungen-gallery-media {
		width: 100%;
		border-radius: 18px;
	}

	.leistungen-gallery-column-tall .leistungen-gallery-media {
		height: 240px;
		order: 1;
	}

	.leistungen-gallery-column-mixed .leistungen-gallery-media:first-child {
		height: 300px;
		order: 2;
	}

	.leistungen-gallery-column-pair .leistungen-gallery-media:first-child {
		height: 220px;
		order: 3;
	}

	.leistungen-gallery-column-pair .leistungen-gallery-media:last-child {
		height: 220px;
		order: 4;
	}

	.leistungen-gallery-column-mixed .leistungen-gallery-media:last-child {
		height: 140px;
		order: 5;
	}

	.leistungen-gallery-row.is-fluid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.leistungen-gallery-row.is-fluid .leistungen-gallery-media {
		height: 220px;
	}

	.leistungen-cta {
		padding: 40px 0;
	}

	.leistungen-cta-buttons {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		max-width: 192px;
	}

	.leistungen-cta-buttons .theme-button {
		width: 100%;
	}
}
