/* urform Karriere – v1.2.1
 * Alle Klassen mit „ufk-“; Resets bewusst mit höherer Spezifität,
 * damit Theme-/Kit-Stile (button, h3, ul …) das Layout nicht verändern.
 */

/* ---------- Gemeinsam ---------- */
.ufk-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ufk-acc ul.ufk-list,
.ufk-cards ul.ufk-list,
ul.ufk-list {
	margin: 0;
	padding: 0 0 0 1.15em;
	list-style: disc outside;
}

.ufk-acc ul.ufk-list > li,
.ufk-cards ul.ufk-list > li,
ul.ufk-list > li {
	margin: 0 0 var(--ufk-li-gap, 0.45em);
	padding: 0;
	list-style: inherit;
}

ul.ufk-list > li:last-child {
	margin-bottom: 0;
}

ul.ufk-list > li::marker {
	color: var(--ufk-bullet, currentColor);
}

/* Aufzählung mit Icon statt Punkt (wie die Elementor-Icon-Liste). */
ul.ufk-list.ufk-list--icon {
	padding-left: 0;
	list-style: none;
}

ul.ufk-list.ufk-list--icon > li {
	display: flex;
	align-items: baseline;
	gap: var(--ufk-il-gap, 0.55em);
	list-style: none;
}

ul.ufk-list.ufk-list--icon > li::marker {
	content: none;
}

.ufk-list .ufk-list__icon {
	flex: 0 0 auto;
	display: inline-flex;
	font-size: var(--ufk-il-size, 0.8em);
	line-height: 1;
	color: var(--ufk-bullet, var(--e-global-color-accent, currentColor));
	transform: translateY(var(--ufk-il-offset, 0));
}

.ufk-list .ufk-list__icon svg,
.ufk-list .ufk-list__icon img {
	display: block;
	width: 1em;
	height: 1em;
}

.ufk-list .ufk-list__icon svg.e-font-icon-svg {
	fill: currentColor;
}

.ufk-list .ufk-list__text {
	flex: 1 1 auto;
	min-width: 0;
}

.ufk-hyphens-yes .ufk-list {
	-webkit-hyphens: auto;
	hyphens: auto;
	overflow-wrap: break-word;
}

/* Leer-Hinweis */
.ufk-empty__text {
	margin: 0;
}

/* ---------- Akkordeon ---------- */
.ufk-acc {
	--ufk-icon: 12px;
	--ufk-icon-stroke: 1.5px;
	--ufk-gap: 22px;
	--ufk-dur: 350ms;
	--ufk-row-pad: 18px;
	--ufk-line-width: 1px;
	--ufk-line-color: rgba(127, 127, 127, 0.45);
}

.ufk-acc .ufk-acc__item {
	margin: 0;
	padding: 0;
	border-bottom: var(--ufk-line-width) solid var(--ufk-line-color);
}

.ufk-line-top-yes .ufk-acc .ufk-acc__item:first-child {
	border-top: var(--ufk-line-width) solid var(--ufk-line-color);
}

.ufk-acc .ufk-acc__heading {
	margin: 0;
	padding: 0;
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	line-height: inherit;
}

/* Button-Reset in allen Zuständen (Elementor-Kit/Theme gestalten <button> global). */
.ufk-acc .ufk-acc__item .ufk-acc__btn,
.ufk-acc .ufk-acc__item .ufk-acc__btn:hover,
.ufk-acc .ufk-acc__item .ufk-acc__btn:focus,
.ufk-acc .ufk-acc__item .ufk-acc__btn:active {
	-webkit-appearance: none;
	appearance: none;
	display: flex;
	align-items: center;
	gap: var(--ufk-gap);
	width: 100%;
	min-height: 0;
	margin: 0;
	padding: var(--ufk-row-pad) 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	text-decoration: none;
	text-align: left;
	white-space: normal;
	cursor: pointer;
	transition: none;
}

.ufk-acc .ufk-acc__item .ufk-acc__btn:focus {
	outline: none;
}

.ufk-acc .ufk-acc__item .ufk-acc__btn:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.ufk-acc .ufk-acc__title {
	flex: 1 1 auto;
	color: var(--ufk-title, currentColor);
	transition: color 0.2s ease;
}

.ufk-acc .ufk-acc__btn:hover .ufk-acc__title {
	color: var(--ufk-title-hover, var(--ufk-title, currentColor));
}

.ufk-acc .ufk-acc__item.is-open .ufk-acc__title {
	color: var(--ufk-title-active, var(--ufk-title, currentColor));
}

/* Plus / Minus */
.ufk-acc .ufk-acc__icon {
	position: relative;
	flex: 0 0 var(--ufk-icon);
	width: var(--ufk-icon);
	height: var(--ufk-icon);
	color: var(--ufk-icon-color, currentColor);
	transition: color 0.2s ease;
}

.ufk-acc .ufk-acc__item.is-open .ufk-acc__icon {
	color: var(--ufk-icon-active, var(--ufk-icon-color, currentColor));
}

.ufk-acc .ufk-acc__icon::before,
.ufk-acc .ufk-acc__icon::after {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 100%;
	height: var(--ufk-icon-stroke);
	margin-top: calc(var(--ufk-icon-stroke) / -2);
	background: currentColor;
	transition: transform var(--ufk-dur) ease;
}

.ufk-acc .ufk-acc__icon::after {
	transform: rotate(90deg);
}

.ufk-acc .ufk-acc__item.is-open .ufk-acc__icon::after {
	transform: rotate(90deg) scaleX(0);
}

/* Panel: weiches Auf-/Zuklappen per Grid (ohne Höhenberechnung in JS). */
.ufk-acc .ufk-acc__body {
	padding: 0 0 var(--ufk-body-bottom, 28px) var(--ufk-indent, calc(var(--ufk-icon) + var(--ufk-gap)));
}

.ufk-acc--js .ufk-acc__panel {
	display: grid;
	grid-template-rows: 0fr;
	visibility: hidden;
	transition: grid-template-rows var(--ufk-dur) ease, visibility 0s linear var(--ufk-dur);
}

.ufk-acc--js .ufk-acc__item.is-open > .ufk-acc__panel {
	grid-template-rows: 1fr;
	visibility: visible;
	transition: grid-template-rows var(--ufk-dur) ease, visibility 0s linear 0s;
}

.ufk-acc .ufk-acc__inner {
	min-height: 0;
	overflow: hidden;
}

.ufk-acc .ufk-acc__lead {
	margin: 0 0 var(--ufk-section-gap, 1.25em);
}

.ufk-acc .ufk-acc__label {
	margin: 0 0 0.5em;
	padding: 0;
	font-size: inherit;
	line-height: inherit;
	font-weight: inherit;
	color: inherit;
}

.ufk-acc .ufk-acc__section + .ufk-acc__section {
	margin-top: var(--ufk-section-gap, 1.25em);
}

.ufk-acc .ufk-acc__more,
.ufk-acc .ufk-acc__more:visited {
	display: inline-flex;
	align-items: center;
	gap: var(--ufk-more-gap, 10px);
	margin-top: var(--ufk-more-top, 1.25em);
	color: var(--ufk-more, inherit);
	text-decoration: none;
	transition: color 0.2s ease;
}

.ufk-acc .ufk-acc__more:hover,
.ufk-acc .ufk-acc__more:focus-visible {
	color: var(--ufk-more-hover, var(--ufk-more, inherit));
}

.ufk-acc .ufk-acc__more-icon {
	display: inline-flex;
	font-size: var(--ufk-more-icon-size, 1.25em);
	line-height: 1;
	color: var(--ufk-more-icon, currentColor);
}

.ufk-acc .ufk-acc__more-icon svg,
.ufk-acc .ufk-acc__more-icon img {
	display: block;
	width: 1em;
	height: 1em;
}

.ufk-acc .ufk-acc__more-icon svg.e-font-icon-svg {
	fill: currentColor;
}

/* „Mehr anzeigen“ als Elementor-Button: Aussehen kommt aus den globalen Button-Stilen. */
.ufk-acc .ufk-acc__more-wrap {
	margin-top: var(--ufk-more-top, 1.5em);
}

/* Button-Position (Stil → Button → Position) – wirkt nur auf den Button, nicht aufs Akkordeon. */
.ufk-more-align-left .ufk-acc__more-wrap { text-align: left; }
.ufk-more-align-center .ufk-acc__more-wrap { text-align: center; }
.ufk-more-align-right .ufk-acc__more-wrap { text-align: right; }
.ufk-more-align-justify .ufk-acc__more-wrap .elementor-button { width: 100%; }

@media (max-width: 1024px) {
	.ufk-more-tablet-align-left .ufk-acc__more-wrap { text-align: left; }
	.ufk-more-tablet-align-center .ufk-acc__more-wrap { text-align: center; }
	.ufk-more-tablet-align-right .ufk-acc__more-wrap { text-align: right; }
	.ufk-more-tablet-align-justify .ufk-acc__more-wrap .elementor-button { width: 100%; }
}

@media (max-width: 767px) {
	.ufk-more-mobile-align-left .ufk-acc__more-wrap { text-align: left; }
	.ufk-more-mobile-align-center .ufk-acc__more-wrap { text-align: center; }
	.ufk-more-mobile-align-right .ufk-acc__more-wrap { text-align: right; }
	.ufk-more-mobile-align-justify .ufk-acc__more-wrap .elementor-button { width: 100%; }
}

/* Grundformatierung ohne Gewicht (:where = Spezifität 0): greift nur,
   falls Elementors Button-CSS fehlt – Elementor und Kit-Stile haben immer Vorrang. */
:where(.ufk-acc__more-wrap) :where(.elementor-button) {
	display: inline-block;
	line-height: 1;
	text-decoration: none;
}

:where(.ufk-acc__more-wrap) :where(.elementor-button-content-wrapper) {
	display: flex;
	align-items: center;
	gap: 8px;
}

:where(.ufk-acc__more-wrap) :where(.elementor-button-icon) {
	display: inline-flex;
	align-items: center;
}

:where(.ufk-acc__more-wrap) :where(.elementor-button-icon svg) {
	width: 1em;
	height: auto;
	fill: currentColor;
}

/* ---------- Linkliste ---------- */
.ufk-links {
	--ufk-links-line: var(--e-global-color-accent, currentColor);
	--ufk-links-line-width: 1px;
	--ufk-links-pad: 10px;
	--ufk-links-icon: 0.75em;
	--ufk-links-gap: 0.5em;
	--ufk-links-dur: 250ms;
	--ufk-links-icon-color: var(--e-global-color-accent, currentColor);
}

ul.ufk-links {
	margin: 0;
	padding: 0;
	list-style: none;
}

ul.ufk-links > li.ufk-links__item {
	margin: 0;
	padding: 0;
	list-style: none;
	border-bottom: var(--ufk-links-line-width) solid var(--ufk-links-line);
}

ul.ufk-links > li.ufk-links__item::marker {
	content: none;
}

.ufk-links-top-yes ul.ufk-links > li.ufk-links__item:first-child {
	border-top: var(--ufk-links-line-width) solid var(--ufk-links-line);
}

.ufk-links .ufk-links__link,
.ufk-links .ufk-links__link:visited {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	padding: var(--ufk-links-pad) 0;
	color: var(--ufk-links-color, inherit);
	text-decoration: none;
	transition: color var(--ufk-links-dur) ease;
}

.ufk-links .ufk-links__link:hover,
.ufk-links .ufk-links__link:focus-visible {
	color: var(--ufk-links-hover, var(--ufk-links-color, inherit));
}

.ufk-links .ufk-links__title {
	margin: 0;
	padding: 0;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
}

.ufk-links .ufk-links__meta {
	flex-basis: 100%;
	margin-top: 0.15em;
	font-size: 0.85em;
	opacity: 0.75;
}

.ufk-links .ufk-links__icon {
	display: inline-flex;
	flex: 0 0 auto;
	font-size: var(--ufk-links-icon);
	line-height: 1;
	color: var(--ufk-links-icon-color);
	margin-right: var(--ufk-links-gap);
}

.ufk-links .ufk-links__icon svg,
.ufk-links .ufk-links__icon img {
	display: block;
	width: 1em;
	height: 1em;
}

.ufk-links .ufk-links__icon svg.e-font-icon-svg {
	fill: currentColor;
}

/* Linienstärke: gezeichneter Pfeil und hochgeladene Linien-SVGs (Strich bleibt bei jeder Größe gleich dick). */
.ufk-links .ufk-links__icon svg.ufk-line-arrow,
.ufk-links .ufk-links__icon svg.ufk-line-arrow path {
	stroke-width: var(--ufk-links-stroke, 1.5);
	vector-effect: non-scaling-stroke;
}

/* Icon gleitet beim Hover herein, der Titel rückt nach rechts. */
.ufk-links--icon-hover .ufk-links__icon {
	max-width: 0;
	margin-right: 0;
	opacity: 0;
	overflow: hidden;
	transform: translateX(-0.5em);
	transition: max-width var(--ufk-links-dur) ease, margin var(--ufk-links-dur) ease, opacity var(--ufk-links-dur) ease, transform var(--ufk-links-dur) ease;
}

.ufk-links--icon-hover .ufk-links__link:hover .ufk-links__icon,
.ufk-links--icon-hover .ufk-links__link:focus-visible .ufk-links__icon {
	max-width: 2em;
	margin-right: var(--ufk-links-gap);
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.ufk-links .ufk-links__link,
	.ufk-links .ufk-links__icon {
		transition: none !important;
	}
}

/* ---------- Infokarten ---------- */
.ufk-cards {
	--ufk-cols: 3;
	--ufk-cards-gap: 24px;
	--ufk-card-icon: 48px;
	--ufk-head-gap: 12px;
	--ufk-head-bottom: 18px;
	display: grid;
	grid-template-columns: repeat(var(--ufk-cols), minmax(0, 1fr));
	gap: var(--ufk-cards-gap);
}

@media (max-width: 767px) {
	.ufk-cards {
		--ufk-cols: 1;
	}
}

.ufk-cards .ufk-card {
	min-width: 0;
	padding: 24px;
	border: 1px solid rgba(127, 127, 127, 0.3);
	border-radius: 0 40px 0 0;
	transition: border-color 0.2s ease;
}

.ufk-hyphens-yes .ufk-cards .ufk-card {
	-webkit-hyphens: auto;
	hyphens: auto;
	overflow-wrap: break-word;
}

.ufk-cards .ufk-card__head {
	display: flex;
	align-items: center;
	gap: var(--ufk-head-gap);
	margin: 0 0 var(--ufk-head-bottom);
}

.ufk-head-column .ufk-cards .ufk-card__head {
	flex-direction: column;
	align-items: flex-start;
}

.ufk-cards .ufk-card__icon {
	flex: 0 0 auto;
	display: inline-flex;
	font-size: var(--ufk-card-icon);
	line-height: 1;
}

.ufk-cards .ufk-card__icon svg,
.ufk-cards .ufk-card__icon img {
	display: block;
	width: 1em;
	height: 1em;
}

.ufk-cards .ufk-card__icon svg.e-font-icon-svg {
	fill: currentColor;
}

.ufk-cards .ufk-card__title {
	margin: 0;
	padding: 0;
}

/* ---------- Fallback-Einzelseite (ohne Theme-Builder-Vorlage) ---------- */
.ufk-single {
	padding: clamp(32px, 6vw, 96px) 20px;
}

.ufk-single__wrap {
	max-width: 1140px;
	margin: 0 auto;
}

.ufk-single__header {
	max-width: 760px;
	margin: 0 auto clamp(32px, 5vw, 64px);
	text-align: center;
}

.ufk-single__eyebrow {
	margin: 0 0 0.75em;
	font-size: 0.85em;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.ufk-single__title {
	margin: 0 0 0.5em;
}

.ufk-single__lead {
	margin: 0;
	font-size: 1.15em;
}

.ufk-single__apply {
	max-width: 760px;
	margin: clamp(40px, 6vw, 80px) auto 0;
	text-align: center;
}

/* ---------- Bewegung reduzieren ---------- */
@media (prefers-reduced-motion: reduce) {
	.ufk-acc .ufk-acc__panel,
	.ufk-acc .ufk-acc__icon::before,
	.ufk-acc .ufk-acc__icon::after {
		transition: none !important;
	}
}
