/* MAP Personal - WP Job Manager Design (echte Integration) */

.map-jm-filters { margin: 0 0 24px 0; }
.map-jm-filters .search_jobs { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.map-jm-filters .map-jm-search-keywords { flex: 1 1 260px; }
.map-jm-filters .map-jm-search-type,
.map-jm-filters .map-jm-search-location { flex: 0 0 auto; }

.map-jm-filters input[type="text"],
.map-jm-filters select {
	width: 100%;
	box-sizing: border-box;
	background: #FFFFFF;
	border: 1px solid #E3E0D6;
	border-radius: 8px;
	padding: 12px 16px;
	color: #232D4B;
	font-family: "Inter", sans-serif;
	font-size: 15px;
}
.map-jm-filters select { min-width: 160px; cursor: pointer; }
.map-jm-filters .map-jm-search-location input { min-width: 160px; }
.map-jm-filters .showing_jobs { flex-basis: 100%; font-family: "Inter", sans-serif; font-size: 13px; color: #6B7280; }

/* Tabellen-Rahmen */
.map-jm-table {
	width: 100%;
	border: 1px solid #EDEAE0;
	border-radius: 10px;
	overflow: hidden;
}

/* Kopfzeile */
.map-jm-header {
	display: flex;
	align-items: center;
	width: 100%;
	background: #232D4B;
	padding: 18px 24px;
	gap: 20px;
	box-sizing: border-box;
}
.map-jm-header .jm-col {
	font-family: "Inter", sans-serif;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #FFFFFF;
}

/* Job-Liste */
ul.job_listings.map-job-listings {
	list-style: none;
	margin: 0;
	padding: 0;
}
ul.job_listings.map-job-listings li.job_listing {
	display: flex;
	align-items: center;
	width: 100%;
	background: #FFFFFF;
	padding: 18px 24px;
	gap: 20px;
	border-bottom: 1px solid #EDEAE0;
	box-sizing: border-box;
	list-style: none;
}
ul.job_listings.map-job-listings li.job_listing:last-child { border-bottom: none; }
ul.job_listings.map-job-listings li.job_listing a { text-decoration: none; }

/* Spaltenbreiten (gemeinsam fuer Header + Zeilen) */
.jm-col-position    { flex: 22 1 0; min-width: 0; font-family: "Inter", sans-serif; font-size: 15px; font-weight: 600; color: #232D4B; }
.jm-col-bereich     { flex: 13 1 0; min-width: 0; font-family: "Inter", sans-serif; font-size: 14px; color: #4B5563; }
.jm-col-art         { flex: 9 1 0;  min-width: 0; }
.jm-col-ort         { flex: 10 1 0; min-width: 0; font-family: "Inter", sans-serif; font-size: 14px; color: #4B5563; }
.jm-col-erfahrung   { flex: 11 1 0; min-width: 0; font-family: "Inter", sans-serif; font-size: 14px; color: #4B5563; }
.jm-col-verguetung  { flex: 15 1 0; min-width: 0; font-family: "Inter", sans-serif; font-size: 14px; font-weight: 500; color: #232D4B; }
.jm-col-actions     { flex: 20 1 0; min-width: 0; display: flex; justify-content: flex-end; gap: 8px; }

.map-jm-header .jm-col-position    { flex: 22 1 0; }
.map-jm-header .jm-col-bereich     { flex: 13 1 0; }
.map-jm-header .jm-col-art         { flex: 9 1 0; }
.map-jm-header .jm-col-ort         { flex: 10 1 0; }
.map-jm-header .jm-col-erfahrung   { flex: 11 1 0; }
.map-jm-header .jm-col-verguetung  { flex: 15 1 0; }
.map-jm-header .jm-col-actions     { flex: 20 1 0; }

/* Job-Typ Badge */
.map-cell-type {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 14px;
	font-family: "Inter", sans-serif;
	font-size: 13px;
	font-weight: 500;
	background: #EFEFEF;
	color: #3F3F46;
}
.map-type-part-time  { background: #F3E9D2; color: #8B7A4C; }
.map-type-freelance  { background: #E3EEF5; color: #2F6690; }
.map-type-internship,
.map-type-praktikum,
.map-type-temporary,
.map-type-befristet  { background: #EAE6F5; color: #5B4B8A; }

/* Buttons */
ul.job_listings.map-job-listings li.job_listing a.map-jm-btn,
a.map-jm-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	font-family: "Inter", sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	padding: 10px 18px !important;
	border-radius: 8px !important;
	white-space: nowrap !important;
	text-decoration: none !important;
	box-sizing: border-box !important;
}
.map-jm-btn-details {
	background: #FFFFFF;
	border: 1px solid #D9D5C8;
	color: #232D4B;
}
.map-jm-btn-details:hover { background: #F5F3EC; }
.map-jm-btn-apply {
	background: #232D4B;
	color: #FFFFFF;
}
.map-jm-btn-apply:hover { background: #16203A; }

/* kleine Ladezustaende der Job-Manager-AJAX-Filter */
div.job_listings.loading ul.job_listings { opacity: .4; }

@media (max-width: 900px) {
	.map-jm-header { display: none; }
	ul.job_listings.map-job-listings li.job_listing {
		flex-direction: column;
		align-items: flex-start;
		flex-wrap: wrap;
		row-gap: 14px;
		padding: 22px 20px;
	}
	.jm-col-position  { order: 1; flex: 1 1 100% !important; width: 100%; font-size: 17px; }
	.jm-col-bereich   { order: 2; flex: 1 1 100% !important; width: 100%; font-size: 14.5px; }
	.jm-col-art       { order: 3; flex: 1 1 100% !important; width: 100%; }
	.jm-col-ort       { order: 4; flex: 1 1 100% !important; width: 100%; font-size: 14.5px; }
	.jm-col-erfahrung { order: 5; flex: 1 1 100% !important; width: 100%; font-size: 14.5px; }
	.jm-col-verguetung{ order: 6; flex: 1 1 100%; width: 100%; font-size: 15px; margin-top: 2px; }
	.jm-col-actions   { order: 7; flex: 1 1 100%; width: 100%; justify-content: flex-start; gap: 10px; margin-top: 8px; }
	.jm-col-actions .map-jm-btn,
	.jm-col-actions a.map-jm-btn { flex: 1 1 0 !important; width: 0; }
	.map-jm-filters .search_jobs {
		flex-wrap: wrap;
	}
	.map-jm-filters .map-jm-search-keywords {
		flex: 1 1 100%;
	}
	.map-jm-filters .map-jm-search-type,
	.map-jm-filters .map-jm-search-location {
		flex: 1 1 0;
		min-width: 0;
	}
	.map-jm-filters .map-jm-search-type select,
	.map-jm-filters .map-jm-search-location input {
		min-width: 0;
	}
}

/* Header: 'Jetzt anfragen' nur im mobilen Dropdown-Menue anzeigen (nach Kontakt), nicht als eigene Nav-Zeile */
.nav-cta-item { display: none; }
@media (max-width: 767px) {
  .nav-cta-item { display: list-item !important; }
  .nav-cta-item > a { font-weight: 700 !important; color: #232D4B !important; }
}

/* Dienstleistungen: normales Auf-/Zuklappen per Klick (wie Desktop), Untereintraege eingerueckt */
@media (max-width: 767px) {
  .xpro-elementor-dropdown-menu > li > a {
    padding-left: 44px !important;
  }
}

/* 'Jetzt anfragen': echter Button-Look im mobilen Dropdown, mit mehr Abstand nach oben */
@media (max-width: 767px) {
  .nav-cta-item {
    margin-top: 18px !important;
    padding-top: 14px !important;
    padding-bottom: 6px !important;
    border-top: 1px solid rgba(35, 45, 75, 0.12) !important;
  }
  .nav-cta-item {
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
  }
  .nav-cta-item > a {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    font-weight: 700 !important;
    color: #FFFFFF !important;
    background: #232D4B !important;
    margin: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 14px 20px !important;
    border-radius: 8px !important;
    text-align: center !important;
  }
  .nav-cta-item > a:hover {
    background: #16203A !important;
  }
}
/* Kontakt (aktive Seite) im mobilen Dropdown farblich an die anderen Menuepunkte angleichen */
@media (max-width: 767px) {
  .xpro-elementor-horizontal-navbar-nav > li.current_page_item > a,
  .xpro-elementor-horizontal-navbar-nav > li.current-menu-item > a {
    color: rgb(181, 181, 181) !important;
  }
}
/* Header-Dropdown (Hamburger-Icon) auf Mobile an den rechten Rand schieben */
@media (max-width: 767px) {
  .elementor-element-2a1c334 {
    margin-left: auto !important;
  }
}
/* Blauer Scroll-to-Top Pfeil (Astra Theme) - vom Kunden als obsolet markiert */
#ast-scroll-top { display: none !important; }

/* Filter 'Art': native Browser-Select-Optik entfernen, damit Schriftfarbe & Padding
   exakt wie bei den Text-Feldern (z.B. 'Alle Orte') aussehen, auf jedem Geraet */
.map-jm-filters select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23232D4B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right 16px center;
	background-size: 12px 8px;
	padding-right: 40px !important;
	color: #232D4B !important;
	/* Natives Select zentriert Text bei appearance:none nicht immer korrekt senkrecht -
	   feste Hoehe + line-height statt vertikalem Padding erzwingt echte Zentrierung. */
	height: 40px !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	line-height: 40px !important;
}
.map-jm-filters select::-ms-expand { display: none; }

/* 'Alle Arten' (kein Filter aktiv) optisch wie Platzhalter-Text (grau) behandeln,
   damit es farblich zu den leeren Feldern 'Alle Orte' / Stichwortsuche passt.
   Sobald eine konkrete Art gewaehlt ist (Klasse 'has-value'), wieder dunkel. */
.map-jm-filters select {
	color: #9CA3AF !important;
}
.map-jm-filters select.has-value {
	color: #232D4B !important;
}