/**
 * Stellenangebote Anzeige v1.0.0
 * Bootstrap-5-Ergänzungen ohne Tailwind.
 */
.mm-jobs {
	--color-sky-50: #e2edf4;
	--color-sky-100: #c5d8e6;
	--color-sky-200: #a6c1d5;
	--color-sky-500: #2f516a;
	--color-sky-600: #29475d;
	--color-sky-700: #233d50;
	--color-sky-800: #1c3343;
	--color-emerald-50: #e8f3e2;
	--color-emerald-100: #d2e7c7;
	--color-emerald-200: #bbdba9;
	--color-emerald-500: #79b255;
	--color-emerald-600: #6ca04c;
	--color-emerald-700: #5f8e43;
	position: relative;
	background: linear-gradient(135deg, var(--color-emerald-50), #fff 48%, var(--color-sky-50));
}
.mm-jobs--design-sky { background: linear-gradient(135deg, var(--color-sky-50), #fff 62%); }
.mm-jobs--design-emerald { background: linear-gradient(135deg, var(--color-emerald-50), #fff 62%); }
.mm-jobs--design-neutral { background: #f9fafb; }
.mm-jobs--space-compact { padding-block: 4rem; }
.mm-jobs--space-default { padding-block: 5rem; }
.mm-jobs--space-large { padding-block: 6rem; }
.mm-jobs__container { position: relative; z-index: 1; padding-inline: 1rem; }
.mm-jobs__container--wide { max-width: 80rem; margin-inline: auto; }
.mm-jobs__container--fluid { padding-inline: clamp(1rem, 4vw, 3rem); }
.mm-jobs__header { margin-bottom: 3.5rem; text-align: center; }
.mm-jobs__badge { display: inline-flex; align-items: center; margin-bottom: 1rem; padding: 0.5rem 1rem; border-radius: 999rem; color: var(--color-emerald-700); background: var(--color-emerald-100); font-size: 0.875rem; font-weight: 800; line-height: 1.4; }
.mm-jobs__title { margin: 0 0 1rem; color: #111827; font-size: clamp(1.875rem, 4vw, 2.5rem); font-weight: 800; line-height: 1.2; }
.mm-jobs__intro { max-width: 40rem; margin: 0 auto; color: #4b5563; line-height: 1.65; }
.mm-jobs__filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; margin-bottom: 2.5rem; }
.mm-jobs__filter { padding: 0.625rem 1.25rem; border: 0; border-radius: 999rem; color: #4b5563; background: #fff; box-shadow: 0 0.25rem 0.75rem rgba(15,23,42,.07); font-size: 0.875rem; font-weight: 800; line-height: 1.25; cursor: pointer; transition: color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease; }
.mm-jobs__filter:hover, .mm-jobs__filter:focus-visible { background: #f3f4f6; transform: translateY(-0.05rem); }
.mm-jobs__filter.is-active { color: #fff; background: var(--color-emerald-600); box-shadow: 0 0.55rem 1rem rgba(95,142,67,.22); }
.mm-jobs__list { display: grid; gap: 1rem; }
.mm-jobs-card { --job-accent: var(--color-emerald-600); --job-accent-strong: var(--color-emerald-700); --job-soft: var(--color-emerald-100); --job-border: var(--color-emerald-200); overflow: hidden; border: .0625rem solid transparent; border-radius: 1rem; background: #fff; box-shadow: 0 .5rem 1.25rem rgba(15,23,42,.08); transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.mm-jobs-card--sky { --job-accent: var(--color-sky-500); --job-accent-strong: var(--color-sky-700); --job-soft: var(--color-sky-100); --job-border: var(--color-sky-200); }
.mm-jobs-card--amber { --job-accent: #f59e0b; --job-accent-strong: #b45309; --job-soft: #fef3c7; --job-border: #fde68a; }
.mm-jobs-card--emerald { --job-accent: var(--color-emerald-600); --job-accent-strong: var(--color-emerald-700); --job-soft: var(--color-emerald-100); --job-border: var(--color-emerald-200); }
.mm-jobs-card:hover, .mm-jobs-card:focus-within { border-color: var(--job-border); box-shadow: 0 1rem 2rem rgba(15,23,42,.12); transform: translateY(-0.08rem); }
.mm-jobs-card[hidden] { display: none !important; }
.mm-jobs-card__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.5rem; }
.mm-jobs-card__main { display: flex; align-items: flex-start; gap: 1rem; min-width: 0; }
.mm-jobs-card__icon { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; border-radius: 1rem; background: var(--job-soft); font-size: 1.5rem; line-height: 1; }
.mm-jobs-card__content { min-width: 0; }
.mm-jobs-card__badges { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .5rem; }
.mm-jobs-card__badge { display: inline-flex; align-items: center; padding: .25rem .75rem; border-radius: 999rem; font-size: .75rem; font-weight: 800; line-height: 1.35; }
.mm-jobs-card__badge--category { color: var(--job-accent-strong); background: var(--job-soft); }
.mm-jobs-card__badge--type { color: var(--color-sky-700); background: var(--color-sky-100); }
.mm-jobs-card__badge--start { color: #92400e; background: #fef3c7; }
.mm-jobs-card__title { margin: 0 0 .25rem; color: #111827; font-size: clamp(1.125rem, 2.4vw, 1.25rem); font-weight: 800; line-height: 1.3; }
.mm-jobs-card__location { margin: 0; color: #6b7280; font-size: .875rem; line-height: 1.45; }
.mm-jobs-card__actions { display: flex; flex: 0 0 auto; flex-direction: column; align-items: stretch; gap: .65rem; }
.mm-jobs-card__apply, .mm-jobs-card__details { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-width: 10rem; padding: .8rem 1.25rem; border-radius: .75rem; font-size: .875rem; font-weight: 800; line-height: 1.2; text-decoration: none; transition: transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease; }
.mm-jobs-card__apply { color: #fff !important; background: var(--job-accent); box-shadow: 0 .65rem 1rem rgba(15,23,42,.12); }
.mm-jobs-card__apply:hover, .mm-jobs-card__apply:focus-visible { color: #fff; background: var(--job-accent-strong); text-decoration: none; transform: scale(1.035); }
.mm-jobs-card__details { color: var(--job-accent-strong); background: #fff; border: .0625rem solid var(--job-border); }
.mm-jobs-card__details:hover, .mm-jobs-card__details:focus-visible { color: #fff; background: var(--job-accent); text-decoration: none; }
.mm-jobs__empty { margin: 0; padding: 1.5rem; border-radius: 1rem; color: #4b5563; background: #fff; text-align: center; }
.mm-jobs-modal { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 1.25rem; }
.mm-jobs-modal[hidden] { display: none !important; }
.mm-jobs-modal__backdrop { position: absolute; inset: 0; background: rgba(15,23,42,.64); backdrop-filter: blur(.25rem); }
.mm-jobs-modal__dialog { position: relative; z-index: 1; width: min(42rem, 100%); max-height: min(90vh, 60rem); overflow: auto; padding: 2rem; border-radius: 1.25rem; background: #fff; box-shadow: 0 1.5rem 4rem rgba(0,0,0,.28); }
.mm-jobs-modal__close { position: absolute; top: .75rem; right: .75rem; display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border: 0; border-radius: 999rem; background: #f3f4f6; color: #111827; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.mm-jobs-modal__title { margin: 0 2.5rem .75rem 0; color: #111827; font-size: 1.5rem; font-weight: 800; line-height: 1.25; }
.mm-jobs-modal__text { margin: 0 0 1.25rem; color: #4b5563; }
.mm-jobs-modal__text strong { color: var(--color-emerald-700); }
.mm-jobs-modal__notice { margin: 0; padding: 1rem; border-radius: .75rem; background: var(--color-sky-50); color: #374151; }
.mm-jobs--animate .mm-jobs__header, .mm-jobs--animate .mm-jobs__filters, .mm-jobs--animate .mm-jobs__list { opacity: 0; transform: translateY(1rem); transition: opacity .55s ease, transform .55s ease; }
.mm-jobs--animate.is-visible .mm-jobs__header, .mm-jobs--animate.is-visible .mm-jobs__filters, .mm-jobs--animate.is-visible .mm-jobs__list { opacity: 1; transform: translateY(0); }
.mm-jobs--animate.is-visible .mm-jobs__filters { transition-delay: .06s; }
.mm-jobs--animate.is-visible .mm-jobs__list { transition-delay: .12s; }
body.mm-jobs-modal-open { overflow: hidden; }
@media (max-width: 767.98px) { .mm-jobs-card__inner { align-items: stretch; flex-direction: column; } .mm-jobs-card__actions { width: 100%; } .mm-jobs-card__apply, .mm-jobs-card__details { width: 100%; } }
@media (max-width: 575.98px) { .mm-jobs--space-default { padding-block: 4rem; } .mm-jobs--space-large { padding-block: 5rem; } .mm-jobs-card__inner { padding: 1.25rem; } .mm-jobs-card__main { gap: .85rem; } .mm-jobs-card__icon { width: 3rem; height: 3rem; } .mm-jobs-modal__dialog { padding: 1.5rem; } }
@media (prefers-reduced-motion: reduce) { .mm-jobs-card, .mm-jobs-card__apply, .mm-jobs-card__details, .mm-jobs--animate .mm-jobs__header, .mm-jobs--animate .mm-jobs__filters, .mm-jobs--animate .mm-jobs__list { opacity: 1; transform: none; transition: none; } }
