.elion-homepage {
	font-family: var(--elion-font);
	color: var(--elion-black);
	max-width: 100%;
	overflow-x: clip;
}

.elion-homepage *,
.elion-homepage *::before,
.elion-homepage *::after {
	box-sizing: border-box;
}

.elion-section {
	padding: var(--elion-section-py) var(--elion-section-px);
}

.elion-section__inner {
	max-width: var(--elion-container);
	margin: 0 auto;
	width: 100%;
}

.elion-section--gray {
	background: var(--elion-gray-100);
}

.elion-section--light {
	background: var(--elion-gray-200);
}

.elion-section--white {
	background: var(--elion-white);
}

.elion-badge {
	display: inline-flex;
	align-items: center;
	padding: 7px 14px;
	background: var(--elion-yellow);
	color: var(--elion-black);
	font-size: 12px;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	border-radius: var(--elion-radius-sm);
}

.elion-eyebrow-header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--elion-gap);
	text-align: left;
	margin-bottom: 32px;
}

.elion-eyebrow-header__badge {
	display: inline-flex;
	padding: 7px 14px;
	background: var(--elion-yellow);
	border-radius: var(--elion-radius-sm);
}

/* !important: Breakdance's global ".breakdance h1..h6" rules (class+element
   specificity) outrank our single-class selectors on real h1-h3 tags and
   force their own font-size/color, so every heading here must win explicitly. */
.elion-eyebrow-header__eyebrow {
	margin: 0 !important;
	font-size: 12px !important;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	font-weight: 400 !important;
	color: var(--elion-black) !important;
}

.elion-eyebrow-header__title {
	margin: 0 !important;
	font-size: 55px !important;
	font-weight: 400 !important;
	line-height: 1.15 !important;
	color: var(--elion-black) !important;
}

.elion-eyebrow-header__text {
	margin: 0;
	max-width: 820px;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--elion-black);
}

.elion-section-header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--elion-gap);
	text-align: left;
	margin-bottom: 32px;
}

.elion-section-header--center {
	align-items: center;
	text-align: center;
}

.elion-section-header__title {
	margin: 0;
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 400;
	line-height: 1.15;
	color: var(--elion-black);
}

.elion-section-header__title-line2 {
	margin: 0;
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 400;
	line-height: 1.15;
	color: var(--elion-black);
}

.elion-section-header__eyebrow {
	margin: 0;
	font-size: clamp(1.25rem, 3vw, 1.75rem);
	font-weight: 400;
	line-height: 1.2;
	color: var(--elion-black);
}

.elion-section-header__tagline {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.6;
}

.elion-section-header__text {
	margin: 0;
	max-width: 820px;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--elion-black);
}

.elion-btn-group {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

/* !important on color: Breakdance's global ".breakdance a" rule (class+element
   specificity) outranks these single-class selectors on real <a> tags. */
.elion-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 24px;
	border-radius: var(--elion-radius-md);
	font-size: 15px;
	line-height: 1;
	text-decoration: none !important;
	border: none;
	transition: transform var(--elion-transition), box-shadow var(--elion-transition);
}

.elion-btn--primary {
	background: var(--elion-yellow);
	color: var(--elion-black) !important;
}

.elion-btn--ghost {
	background: transparent;
	color: var(--elion-white) !important;
}

.elion-btn--secondary {
	background: transparent;
	color: var(--elion-black) !important;
	border: 1px solid var(--elion-black);
}

.elion-btn--green {
	background: var(--elion-green);
	color: var(--elion-white) !important;
}

.elion-btn--block {
	width: 100%;
	border-radius: 9999px;
	font-size: 14px;
}

.elion-split__content .elion-btn--ghost,
.elion-split__content .elion-btn--secondary {
	color: var(--elion-black) !important;
}

.elion-hero .elion-btn--ghost {
	color: var(--elion-white);
}

.elion-btn::after {
	content: "";
	display: block;
	width: 0.9em;
	height: 0.9em;
	background: currentColor;
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z'/%3E%3C/svg%3E");
	mask-size: 100% 100%;
}

.elion-btn:hover {
	transform: scale(1.04);
}

.elion-grid-2 {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--elion-gap);
	align-items: center;
}

.elion-card {
	border: 1px solid var(--elion-border);
	border-radius: var(--elion-radius-lg);
	box-shadow: var(--elion-shadow);
	overflow: hidden;
}

.elion-grid-3 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--elion-gap);
	align-items: center;
}

/* Square media block (image fills a 1:1 frame, cropped to cover). */
.elion-media-plain {
	border-radius: var(--elion-radius-md);
	overflow: hidden;
	aspect-ratio: 1 / 1;
}

.elion-media-plain img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Responsive media block (image keeps its natural aspect ratio). */
.elion-media-fluid img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--elion-radius-md);
}

/* Click-to-play YouTube embed (poster image + play button until clicked). */
.elion-video {
	position: relative;
	margin-top: var(--elion-gap);
	aspect-ratio: 1360 / 692;
	border-radius: var(--elion-radius-lg);
	background-color: var(--elion-green-dark);
	background-size: cover;
	background-position: center;
	overflow: hidden;
	cursor: pointer;
}

.elion-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.elion-video__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 68px;
	height: 48px;
	border: none;
	border-radius: var(--elion-radius-sm);
	background: #f00;
	color: var(--elion-white);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: transform var(--elion-transition);
}

.elion-video__play:hover {
	transform: translate(-50%, -50%) scale(1.08);
}

.elion-video__play svg {
	width: 26px;
	height: 26px;
	fill: currentColor;
}

.elion-video.is-playing .elion-video__play {
	display: none;
}

/* Checkmark badge list ("Projektentwickler", ...). */
.elion-checklist {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
}

.elion-checklist__item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px;
	background: var(--elion-gray-100);
	border-radius: var(--elion-radius-sm);
}

.elion-checklist__icon {
	flex: none;
	width: 20px;
	height: 20px;
	fill: var(--elion-yellow);
}

.elion-checklist__item span {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--elion-black);
}

/* Plain checklist variant: normal-case body copy, white pill, green check. */
.elion-checklist--plain .elion-checklist__item {
	background: var(--elion-white);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}

.elion-checklist--plain .elion-checklist__icon {
	fill: var(--elion-green);
}

.elion-checklist--plain .elion-checklist__item span {
	font-size: 14px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
}

/* Plain underlined text link (e.g. "Bereits Kunde? Anmelden"). */
.elion-text-link {
	color: var(--elion-white) !important;
	text-decoration: underline !important;
	font-size: 14px;
}

/* Closing CTA card: green rounded panel, content left / photo right. */
.elion-cta-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--elion-gap);
	padding: 29px;
	background: var(--elion-green);
	border: none;
}

.elion-cta-card__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--elion-gap);
	max-width: 55%;
}

.elion-cta-card__title {
	font-style: italic;
}

.elion-cta-card__media {
	flex: none;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	max-width: 300px;
}

.elion-cta-card__media img {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 767px) {
	.elion-section {
		padding-top: var(--elion-section-py-mobile);
		padding-bottom: var(--elion-section-py-mobile);
	}

	.elion-grid-2,
	.elion-grid-3 {
		grid-template-columns: 1fr;
	}

	.elion-cta-card {
		flex-direction: column;
		align-items: stretch;
		text-align: left;
	}

	.elion-cta-card__content {
		max-width: 100%;
	}

	.elion-cta-card__media {
		max-width: 200px;
		align-self: center;
	}
}

@media (max-width: 479px) {
	.elion-badge,
	.elion-eyebrow-header__eyebrow {
		font-size: 10px !important;
	}

	.elion-btn-group {
		gap: 5px;
	}

	/* All H1 headings drop from 55px to 35px on small phones (matches Breakdance). */
	.elion-eyebrow-header__title {
		font-size: 35px !important;
	}
}
