/*
 * TRAMX Jobportal Standalone – Frontend
 * Farbwelt für TramX-Jobs.de:
 * Grün / Magenta / Gelb + dunkle, ruhige Flächen.
 */

/* -------------------------------------------------------------------------
   Theme-Integration: Plugin-Seiten ohne Theme-Titel, Sidebar oder Schmalspalte
   ------------------------------------------------------------------------- */

body.tjp-plugin-page {
	--tjp-green:#00964a;
	--tjp-green-dark:#006f38;
	--tjp-green-soft:#eaf7f0;
	--tjp-pink:#d21470;
	--tjp-pink-dark:#a70d59;
	--tjp-yellow:#ffd51f;
	--tjp-ink:#12303b;
	--tjp-ink-soft:#405760;
	--tjp-bg:#f5f8f6;
	--tjp-surface:#ffffff;
	--tjp-border:#d8e1dc;
	--tjp-shadow:0 14px 38px rgba(18,48,59,.08);
	--tjp-radius:18px;
	--tjp-page-pad:clamp(16px,3vw,48px);
	background:var(--tjp-bg);
	color:var(--tjp-ink);
}

/* Website-/Seitentitel des Themes auf Jobportal-Seiten ausblenden. */
body.tjp-plugin-page .site-title,
body.tjp-plugin-page .site-branding .site-title,
body.tjp-plugin-page .wp-block-site-title,
body.tjp-plugin-page .entry-header > .entry-title,
body.tjp-plugin-page .page-header,
body.tjp-plugin-page .page-title,
body.tjp-plugin-page .wp-block-query-title,
body.tjp-plugin-page .wp-block-post-title {
	display:none!important;
}

/* Typische Theme-Sidebars entfernen. */
body.tjp-plugin-page #secondary,
body.tjp-plugin-page .widget-area,
body.tjp-plugin-page aside.sidebar,
body.tjp-plugin-page .sidebar-primary {
	display:none!important;
}

/* Typische Theme-Inhaltsbegrenzungen auf volle Breite öffnen. */
body.tjp-plugin-page #primary,
body.tjp-plugin-page #main,
body.tjp-plugin-page main.site-main,
body.tjp-plugin-page .site-main,
body.tjp-plugin-page .content-area,
body.tjp-plugin-page .site-content,
body.tjp-plugin-page .site-content .content,
body.tjp-plugin-page .site-content .container,
body.tjp-plugin-page main .container,
body.tjp-plugin-page .entry-content,
body.tjp-plugin-page .wp-block-post-content,
body.tjp-plugin-page .wp-site-blocks > main,
body.tjp-plugin-page article.page,
body.tjp-plugin-page article.tjp_job,
body.tjp-plugin-page article.tjp_company {
	width:100%!important;
	max-width:none!important;
	margin-left:0!important;
	margin-right:0!important;
	float:none!important;
}

body.tjp-plugin-page .entry-content,
body.tjp-plugin-page .wp-block-post-content {
	padding-left:0!important;
	padding-right:0!important;
}

body.tjp-plugin-page .entry-content > *,
body.tjp-plugin-page .wp-block-post-content > * {
	max-width:none!important;
}

body.tjp-plugin-page .entry-content,
body.tjp-plugin-page .wp-block-post-content {
	margin-top:0!important;
}

.tjp-page-width,
.tjp-dashboard,
.tjp-auth-choice {
	width:100%;
	max-width:1680px;
	margin-left:auto;
	margin-right:auto;
	padding-left:var(--tjp-page-pad,clamp(16px,3vw,48px));
	padding-right:var(--tjp-page-pad,clamp(16px,3vw,48px));
}

.tjp-jobs,
.tjp-companies,
.tjp-job-detail,
.tjp-company-detail,
.tjp-dashboard,
.tjp-auth-page,
.tjp-auth-choice {
	box-sizing:border-box;
	font-family:inherit;
	color:var(--tjp-ink,#12303b);
}

.tjp-jobs *,
.tjp-companies *,
.tjp-job-detail *,
.tjp-company-detail *,
.tjp-dashboard *,
.tjp-auth-page *,
.tjp-auth-choice *,
.tjp-panel *,
.tjp-login-modal * {
	box-sizing:border-box;
}

/* -------------------------------------------------------------------------
   Typografie, Links, Buttons
   ------------------------------------------------------------------------- */

.tjp-jobs a,
.tjp-companies a,
.tjp-job-detail a,
.tjp-company-detail a,
.tjp-dashboard a,
.tjp-auth-page a,
.tjp-auth-choice a {
	text-underline-offset:3px;
}

.tjp-eyebrow {
	display:inline-block;
	margin-bottom:8px;
	color:var(--tjp-green,#00964a);
	font-size:.78rem;
	font-weight:800;
	letter-spacing:.09em;
	text-transform:uppercase;
}

.tjp-btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:46px;
	padding:11px 18px;
	border:1px solid transparent;
	border-radius:12px;
	background:var(--tjp-green,#00964a);
	color:#fff!important;
	font:inherit;
	font-size:.95rem;
	font-weight:800;
	line-height:1.2;
	text-decoration:none!important;
	cursor:pointer;
	transition:background .18s ease,transform .18s ease,box-shadow .18s ease;
}

.tjp-btn:hover,
.tjp-btn:focus-visible {
	background:var(--tjp-green-dark,#006f38);
	color:#fff!important;
	transform:translateY(-1px);
	box-shadow:0 8px 20px rgba(0,111,56,.18);
}

.tjp-btn:focus-visible,
.tjp-toolbar a:focus-visible,
.tjp-toolbar button:focus-visible,
.tjp-form input:focus-visible,
.tjp-form select:focus-visible,
.tjp-form textarea:focus-visible,
.tjp-filter input:focus-visible,
.tjp-filter select:focus-visible {
	outline:3px solid rgba(255,213,31,.72);
	outline-offset:2px;
}

.tjp-btn-block {
	width:100%;
}

.tjp-btn-small {
	min-height:38px;
	padding:8px 12px;
	font-size:.88rem;
}

.tjp-secondary-link {
	display:block;
	margin-top:12px;
	color:var(--tjp-pink,#d21470)!important;
	font-size:.9rem;
	font-weight:750;
	text-align:center;
}

.tjp-muted {
	color:var(--tjp-ink-soft,#405760);
	font-size:.9rem;
}

/* -------------------------------------------------------------------------
   Hero / Seiteneinstieg
   ------------------------------------------------------------------------- */

.tjp-page-hero,
.tjp-detail-hero {
	position:relative;
	overflow:hidden;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:36px;
	margin:clamp(18px,3vw,42px) 0 24px;
	padding:clamp(26px,4vw,58px);
	border-radius:24px;
	background:
		linear-gradient(135deg,rgba(0,150,74,.08),rgba(210,20,112,.035) 56%,rgba(255,213,31,.13)),
		#fff;
	border:1px solid rgba(0,150,74,.17);
	box-shadow:var(--tjp-shadow,0 14px 38px rgba(18,48,59,.08));
}

.tjp-page-hero-copy,
.tjp-detail-hero-copy {
	position:relative;
	z-index:2;
	max-width:950px;
}

.tjp-page-hero h1,
.tjp-detail-hero h1 {
	margin:0;
	color:var(--tjp-ink,#12303b);
	font-size:clamp(2rem,4.2vw,4.2rem);
	font-weight:850;
	line-height:1.02;
	letter-spacing:-.035em;
}

.tjp-page-hero p {
	max-width:760px;
	margin:14px 0 0;
	color:var(--tjp-ink-soft,#405760);
	font-size:clamp(1rem,1.4vw,1.2rem);
	line-height:1.6;
}

.tjp-page-hero-compact h1 {
	font-size:clamp(2rem,3.4vw,3.5rem);
}

.tjp-hero-mark {
	flex:0 0 190px;
	align-self:stretch;
	display:flex;
	align-items:flex-end;
	justify-content:flex-end;
	gap:12px;
	min-height:130px;
	padding:8px;
	transform:skewX(-9deg);
	opacity:.95;
}

.tjp-hero-line {
	display:block;
	width:34px;
	border-radius:999px;
}

.tjp-hero-line-green {
	height:74%;
	background:var(--tjp-green,#00964a);
}

.tjp-hero-line-pink {
	height:100%;
	background:var(--tjp-pink,#d21470);
}

.tjp-hero-line-yellow {
	height:52%;
	background:var(--tjp-yellow,#ffd51f);
}

/* -------------------------------------------------------------------------
   Panels / Formulare / Hinweise
   ------------------------------------------------------------------------- */

.tjp-panel {
	--tjp-text:#12303b;
	--tjp-muted:#405760;
	--tjp-border:#d8e1dc;
	--tjp-soft:#f5f8f6;
	--tjp-accent:#00964a;
	padding:clamp(20px,3vw,34px);
	border:1px solid var(--tjp-border);
	border-radius:18px;
	background:#fff;
	box-shadow:0 8px 24px rgba(18,48,59,.05);
	margin-bottom:22px;
	color:var(--tjp-text);
}

.tjp-panel h1,
.tjp-panel h2,
.tjp-panel h3 {
	color:var(--tjp-ink,#12303b);
}

.tjp-panel h2 {
	margin-top:0;
}

.tjp-form {
	display:grid;
	gap:16px;
}

.tjp-form label,
.tjp-filter label {
	display:flex;
	flex-direction:column;
	gap:7px;
	color:var(--tjp-ink,#12303b);
	font-size:.9rem;
	font-weight:750;
}

.tjp-form small,
.tjp-filter small {
	color:var(--tjp-ink-soft,#405760);
	font-weight:500;
}

.tjp-form input,
.tjp-form select,
.tjp-form textarea,
.tjp-filter input,
.tjp-filter select,
.tjp-inline-form select {
	width:100%;
	min-height:46px;
	padding:10px 13px;
	border:1px solid #cbd7d1;
	border-radius:11px;
	background:#fff;
	color:var(--tjp-ink,#12303b);
	font:inherit;
	line-height:1.35;
	transition:border-color .18s ease,box-shadow .18s ease;
}

.tjp-form textarea {
	min-height:130px;
	resize:vertical;
}

.tjp-form input:focus,
.tjp-form select:focus,
.tjp-form textarea:focus,
.tjp-filter input:focus,
.tjp-filter select:focus {
	border-color:var(--tjp-green,#00964a);
	box-shadow:0 0 0 3px rgba(0,150,74,.1);
}

.tjp-two {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:16px;
}

.tjp-check {
	flex-direction:row!important;
	align-items:center;
	align-self:end;
	min-height:46px;
}

.tjp-check input,
.tjp-popup-remember input {
	width:auto;
	min-height:auto;
}

.tjp-alert {
	padding:14px 17px;
	margin:0 0 18px;
	border-radius:12px;
	font-weight:700;
	line-height:1.45;
}

.tjp-alert-success {
	background:#e6f7ed;
	border:1px solid rgba(0,150,74,.18);
	color:#075f31;
}

.tjp-alert-error {
	background:#fff0f5;
	border:1px solid rgba(210,20,112,.17);
	color:#8f114d;
}

/* -------------------------------------------------------------------------
   Jobfilter und Karten
   ------------------------------------------------------------------------- */

.tjp-filter {
	display:grid;
	grid-template-columns:minmax(220px,2fr) repeat(3,minmax(145px,1fr)) auto;
	gap:12px;
	align-items:end;
	padding:18px;
	margin-bottom:24px;
	border:1px solid var(--tjp-border,#d8e1dc);
	border-radius:16px;
	background:#fff;
	box-shadow:0 8px 24px rgba(18,48,59,.05);
}

.tjp-job-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:18px;
}

.tjp-job-card {
	position:relative;
	overflow:hidden;
	display:flex;
	flex-direction:column;
	min-width:0;
	min-height:240px;
	padding:22px;
	border:1px solid var(--tjp-border,#d8e1dc);
	border-radius:17px;
	background:#fff;
	box-shadow:0 8px 24px rgba(18,48,59,.045);
	transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}

.tjp-job-card::before {
	content:"";
	position:absolute;
	left:0;
	top:0;
	bottom:0;
	width:5px;
	background:var(--tjp-green,#00964a);
}

.tjp-job-card:hover {
	transform:translateY(-3px);
	border-color:rgba(0,150,74,.4);
	box-shadow:0 16px 36px rgba(18,48,59,.10);
}

.tjp-job-card h3 {
	margin:7px 0 15px;
	padding-right:48px;
	color:var(--tjp-ink,#12303b);
	font-size:1.2rem;
	line-height:1.28;
}

.tjp-job-card h3 a {
	color:inherit;
	text-decoration:none;
}

.tjp-tags,
.tjp-detail-tags {
	display:flex;
	flex-wrap:wrap;
	gap:7px;
}

.tjp-tags {
	margin-bottom:18px;
}

.tjp-tags span,
.tjp-detail-tags span {
	display:inline-flex;
	align-items:center;
	padding:6px 9px;
	border-radius:999px;
	background:#f0f5f2;
	color:#3d5650;
	font-size:.79rem;
	font-weight:700;
	line-height:1.2;
}

.tjp-card-link {
	margin-top:auto;
	color:var(--tjp-green-dark,#006f38)!important;
	font-weight:800;
	text-decoration:none!important;
}

.tjp-card-link:hover {
	color:var(--tjp-pink,#d21470)!important;
}

.tjp-featured {
	position:absolute;
	top:14px;
	right:14px;
	padding:5px 9px;
	border-radius:999px;
	background:var(--tjp-yellow,#ffd51f);
	color:#4e4300;
	font-size:.72rem;
	font-weight:850;
}

.tjp-empty {
	padding:30px;
	border:1px dashed #b8c9c0;
	border-radius:16px;
	background:#fff;
	color:var(--tjp-ink-soft,#405760);
	grid-column:1/-1;
}

.tjp-pagination {
	display:flex;
	flex-wrap:wrap;
	gap:7px;
	margin-top:24px;
}

.tjp-pagination a {
	width:42px;
	height:42px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border:1px solid var(--tjp-border,#d8e1dc);
	border-radius:10px;
	background:#fff;
	color:var(--tjp-ink,#12303b);
	font-weight:750;
	text-decoration:none;
}

.tjp-pagination a:hover,
.tjp-pagination a.is-current {
	background:var(--tjp-green,#00964a);
	border-color:var(--tjp-green,#00964a);
	color:#fff;
}

/* -------------------------------------------------------------------------
   Jobdetail
   ------------------------------------------------------------------------- */

.tjp-detail-company {
	margin:3px 0 10px;
	color:var(--tjp-green-dark,#006f38);
	font-size:1rem;
	font-weight:800;
}

.tjp-detail-company a {
	color:inherit;
	text-decoration:none;
}

.tjp-detail-tags {
	margin-top:18px;
}

.tjp-job-detail-layout {
	display:grid;
	grid-template-columns:minmax(0,2fr) minmax(310px,.85fr);
	gap:24px;
	align-items:start;
	padding-bottom:48px;
}

.tjp-job-main {
	min-width:0;
	padding:clamp(20px,3vw,34px);
	border:1px solid var(--tjp-border,#d8e1dc);
	border-radius:18px;
	background:#fff;
	box-shadow:0 8px 24px rgba(18,48,59,.045);
}

.tjp-job-meta {
	display:grid;
	grid-template-columns:repeat(5,minmax(0,1fr));
	gap:10px;
	padding:16px;
	margin-bottom:28px;
	border-radius:14px;
	background:var(--tjp-bg,#f5f8f6);
}

.tjp-job-meta > div {
	display:flex;
	flex-direction:column;
	gap:4px;
	min-width:0;
}

.tjp-job-meta strong {
	color:var(--tjp-green-dark,#006f38);
	font-size:.69rem;
	font-weight:850;
	letter-spacing:.07em;
	text-transform:uppercase;
}

.tjp-job-meta span {
	word-break:break-word;
}

.tjp-rich-content {
	color:var(--tjp-ink,#12303b);
	font-size:1rem;
	line-height:1.75;
}

.tjp-rich-content > :first-child {
	margin-top:0;
}

.tjp-rich-content h2,
.tjp-rich-content h3,
.tjp-rich-content h4 {
	color:var(--tjp-ink,#12303b);
	line-height:1.25;
}

.tjp-rich-content a {
	color:var(--tjp-green-dark,#006f38);
}

.tjp-apply-box {
	position:sticky;
	top:calc(var(--tjp-toolbar-height,58px) + 20px);
	padding:0;
	border:1px solid rgba(210,20,112,.20);
	border-radius:18px;
	background:#fff;
	box-shadow:var(--tjp-shadow,0 14px 38px rgba(18,48,59,.08));
	overflow:hidden;
}

.tjp-apply-box::before {
	content:"";
	display:block;
	height:6px;
	background:linear-gradient(90deg,var(--tjp-green,#00964a) 0 44%,var(--tjp-pink,#d21470) 44% 76%,var(--tjp-yellow,#ffd51f) 76%);
}

.tjp-apply-box-inner {
	padding:24px;
}

.tjp-apply-box h2 {
	margin:0 0 10px;
	color:var(--tjp-ink,#12303b);
	font-size:1.35rem;
}

.tjp-apply-box p {
	color:var(--tjp-ink-soft,#405760);
	line-height:1.55;
}

.tjp-application-form {
	max-width:none;
}

.tjp-application-form h3 {
	font-size:1.08rem;
}

/* -------------------------------------------------------------------------
   Unternehmen
   ------------------------------------------------------------------------- */

.tjp-company-grid {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:18px;
	padding-bottom:48px;
}

.tjp-company-card {
	min-width:0;
	padding:20px;
	border:1px solid var(--tjp-border,#d8e1dc);
	border-radius:17px;
	background:#fff;
	box-shadow:0 8px 24px rgba(18,48,59,.045);
	transition:transform .18s ease,border-color .18s ease;
}

.tjp-company-card:hover {
	transform:translateY(-2px);
	border-color:rgba(0,150,74,.35);
}

.tjp-company-card img {
	display:block;
	width:100%;
	height:96px;
	object-fit:contain;
	object-position:left center;
	margin-bottom:14px;
}

.tjp-company-card h3 {
	margin:8px 0 8px;
	font-size:1.1rem;
	line-height:1.3;
}

.tjp-company-card h3 a {
	color:var(--tjp-ink,#12303b);
	text-decoration:none;
}

.tjp-verified {
	display:inline-flex!important;
	align-items:center;
	width:auto!important;
	padding:5px 9px!important;
	border-radius:999px!important;
	background:var(--tjp-green-soft,#eaf7f0)!important;
	color:var(--tjp-green-dark,#006f38)!important;
	font-size:.75rem!important;
	font-weight:800!important;
}

.tjp-company-detail-hero {
	align-items:center;
}

.tjp-company-hero-logo {
	flex:0 0 150px;
	width:150px;
	height:130px;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:16px;
	border-radius:18px;
	background:#fff;
	border:1px solid var(--tjp-border,#d8e1dc);
	box-shadow:0 8px 20px rgba(18,48,59,.06);
}

.tjp-company-hero-logo img {
	max-width:100%;
	max-height:100%;
	width:auto;
	height:auto;
	object-fit:contain;
}

.tjp-company-hero-logo > span {
	color:var(--tjp-green,#00964a);
	font-size:2rem;
	font-weight:900;
}

.tjp-company-detail-layout {
	display:grid;
	grid-template-columns:minmax(0,2fr) minmax(280px,.8fr);
	gap:24px;
	align-items:start;
}

.tjp-company-about,
.tjp-company-facts {
	padding:clamp(20px,3vw,32px);
	border:1px solid var(--tjp-border,#d8e1dc);
	border-radius:18px;
	background:#fff;
}

.tjp-company-about h2,
.tjp-company-facts h2 {
	margin-top:0;
	color:var(--tjp-ink,#12303b);
}

.tjp-company-facts {
	box-shadow:0 8px 24px rgba(18,48,59,.045);
}

.tjp-fact {
	display:flex;
	flex-direction:column;
	gap:4px;
	padding:12px 0;
	border-bottom:1px solid #e7eeea;
}

.tjp-fact:last-child {
	border-bottom:0;
}

.tjp-fact strong {
	color:var(--tjp-green-dark,#006f38);
	font-size:.75rem;
	letter-spacing:.05em;
	text-transform:uppercase;
}

.tjp-fact a {
	color:var(--tjp-pink,#d21470);
	font-weight:750;
}

.tjp-company-jobs {
	padding:36px 0 52px;
}

.tjp-section-heading {
	margin-bottom:18px;
}

.tjp-section-heading h2 {
	margin:0;
	color:var(--tjp-ink,#12303b);
	font-size:clamp(1.6rem,2.4vw,2.3rem);
}

/* -------------------------------------------------------------------------
   Dashboard / Tabellen
   ------------------------------------------------------------------------- */

.tjp-dashboard {
	display:grid;
	grid-template-columns:250px minmax(0,1fr);
	gap:24px;
	padding-top:clamp(24px,3vw,44px);
	padding-bottom:48px;
}

.tjp-dashboard-nav {
	display:flex;
	flex-direction:column;
	gap:5px;
	padding:15px;
	border:1px solid var(--tjp-border,#d8e1dc);
	border-radius:17px;
	background:#fff;
	box-shadow:0 8px 24px rgba(18,48,59,.045);
	align-self:start;
	position:sticky;
	top:calc(var(--tjp-toolbar-height,58px) + 20px);
}

.tjp-dashboard-nav strong {
	padding:9px 10px;
	color:var(--tjp-ink,#12303b);
}

.tjp-dashboard-nav a {
	padding:10px 11px;
	border-radius:9px;
	color:var(--tjp-ink,#12303b);
	text-decoration:none;
	font-size:.9rem;
	font-weight:650;
}

.tjp-dashboard-nav a:hover,
.tjp-dashboard-nav a.is-active {
	background:var(--tjp-green-soft,#eaf7f0);
	color:var(--tjp-green-dark,#006f38);
	font-weight:800;
}

.tjp-heading-row {
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:18px;
}

.tjp-table-wrap {
	width:100%;
	overflow:auto;
	-webkit-overflow-scrolling:touch;
	border-radius:12px;
}

.tjp-table {
	width:100%;
	min-width:640px;
	border-collapse:collapse;
}

.tjp-table th,
.tjp-table td {
	padding:12px 11px;
	border-bottom:1px solid var(--tjp-border,#d8e1dc);
	text-align:left;
	vertical-align:middle;
}

.tjp-table th {
	color:var(--tjp-green-dark,#006f38);
	font-size:.76rem;
	letter-spacing:.04em;
	text-transform:uppercase;
}

.tjp-badge {
	display:inline-block;
	padding:5px 9px;
	border-radius:999px;
	font-size:.74rem;
	font-weight:800;
	white-space:nowrap;
}

.tjp-badge-success {background:#e6f7ed;color:#075f31}
.tjp-badge-warning {background:#fff6ca;color:#695900}
.tjp-badge-danger {background:#fff0f5;color:#941253}
.tjp-badge-muted {background:#edf2ef;color:#53655d}

.tjp-applications {
	display:grid;
	gap:14px;
}

.tjp-application-card {
	padding:20px;
	border:1px solid var(--tjp-border,#d8e1dc);
	border-radius:14px;
	background:#fff;
}

.tjp-letter {
	padding:14px;
	margin:12px 0;
	border-radius:11px;
	background:var(--tjp-bg,#f5f8f6);
	line-height:1.6;
}

.tjp-inline-form {
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	align-items:center;
}

.tjp-inline-form select {
	width:auto;
	min-width:160px;
}

/* -------------------------------------------------------------------------
   Auth-Seiten
   ------------------------------------------------------------------------- */

.tjp-auth-page {
	width:calc(100% - (2 * var(--tjp-page-pad,clamp(16px,3vw,48px))));
	max-width:760px!important;
	margin:clamp(28px,5vw,70px) auto!important;
}

.tjp-auth-page > h1 {
	margin-top:0;
	color:var(--tjp-ink,#12303b);
	font-size:clamp(1.8rem,3vw,2.7rem);
}

.tjp-auth-links {
	display:flex;
	flex-wrap:wrap;
	gap:10px 16px;
	align-items:center;
	margin-top:19px;
	padding-top:17px;
	border-top:1px solid var(--tjp-border,#d8e1dc);
	font-size:.9rem;
}

.tjp-auth-links a {
	color:var(--tjp-green-dark,#006f38);
	font-weight:750;
}

.tjp-auth-links span {
	color:var(--tjp-ink-soft,#405760);
}

.tjp-auth-choice {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:18px;
	align-items:stretch;
	padding-top:clamp(28px,4vw,60px);
	padding-bottom:50px;
}

.tjp-auth-choice .tjp-panel {
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	margin-bottom:0;
}

.tjp-auth-choice .tjp-panel p {
	flex:1;
	line-height:1.6;
}

.tjp-auth-choice .tjp-auth-secondary {
	flex:0;
	margin:13px 0 0;
	font-size:.88rem;
}

/* -------------------------------------------------------------------------
   Frontend-Toolbar
   ------------------------------------------------------------------------- */

.tjp-toolbar {
	--tjp-toolbar-bg:#102c34;
	--tjp-toolbar-text:#ffffff;
	--tjp-toolbar-muted:#dce7e2;
	--tjp-toolbar-accent:#00964a;
	--tjp-toolbar-pink:#d21470;
	position:fixed;
	top:0;
	left:0;
	right:0;
	z-index:99990;
	width:100%;
	background:
		linear-gradient(90deg,rgba(0,150,74,.11),transparent 35%),
		var(--tjp-toolbar-bg);
	color:var(--tjp-toolbar-text);
	box-shadow:0 3px 14px rgba(0,0,0,.16);
}

body.admin-bar .tjp-toolbar {
	top:32px;
}

.tjp-toolbar * {
	box-sizing:border-box;
}

.tjp-toolbar::after {
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:0;
	height:3px;
	background:linear-gradient(90deg,#00964a 0 58%,#d21470 58% 84%,#ffd51f 84%);
}

.tjp-toolbar-inner {
	width:100%;
	max-width:1680px;
	min-height:64px;
	margin:0 auto;
	padding:0 clamp(14px,2.4vw,38px);
	display:flex;
	align-items:center;
	gap:24px;
}

.tjp-toolbar-brand {
	flex:0 0 auto;
	display:flex;
	align-items:center;
	color:#fff!important;
	text-decoration:none!important;
	font-weight:900;
	font-size:1.08rem;
	letter-spacing:.01em;
}

.tjp-toolbar-logo {
	display:block;
	width:auto;
	max-width:210px;
	height:40px;
	object-fit:contain;
	object-position:left center;
}

.tjp-toolbar-menu {
	flex:1;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:18px;
	min-width:0;
}

.tjp-toolbar-main,
.tjp-toolbar-account,
.tjp-toolbar-wp-menu {
	display:flex;
	align-items:center;
	gap:3px;
}

.tjp-toolbar-wp-menu {
	list-style:none;
	padding:0;
	margin:0;
}

.tjp-toolbar-wp-menu > li {
	margin:0;
	padding:0;
}

.tjp-toolbar-main > a,
.tjp-toolbar-account > a,
.tjp-toolbar-wp-menu > li > a,
.tjp-toolbar-linkbutton {
	display:inline-flex;
	align-items:center;
	min-height:42px;
	padding:8px 10px;
	border:0;
	border-radius:9px;
	background:transparent;
	color:var(--tjp-toolbar-muted)!important;
	font:inherit;
	font-size:.86rem;
	font-weight:700;
	line-height:1.2;
	text-decoration:none!important;
	white-space:nowrap;
	cursor:pointer;
}

.tjp-toolbar-main > a:hover,
.tjp-toolbar-account > a:hover,
.tjp-toolbar-wp-menu > li > a:hover,
.tjp-toolbar-linkbutton:hover {
	background:rgba(255,255,255,.08);
	color:#fff!important;
}

.tjp-toolbar-account .tjp-toolbar-cta {
	background:var(--tjp-toolbar-accent);
	color:#fff!important;
	padding-left:14px;
	padding-right:14px;
}

.tjp-toolbar-account .tjp-toolbar-cta:hover {
	background:#007d3f;
}

.tjp-toolbar-toggle {
	display:none;
	margin-left:auto;
	width:42px;
	height:42px;
	align-items:center;
	justify-content:center;
	border:1px solid rgba(255,255,255,.23);
	border-radius:9px;
	background:transparent;
	color:#fff;
	font-size:1.35rem;
	line-height:1;
	cursor:pointer;
}

.tjp-toolbar .screen-reader-text {
	position:absolute!important;
	width:1px!important;
	height:1px!important;
	padding:0!important;
	margin:-1px!important;
	overflow:hidden!important;
	clip:rect(0,0,0,0)!important;
	white-space:nowrap!important;
	border:0!important;
}

/* -------------------------------------------------------------------------
   Login-Modal
   ------------------------------------------------------------------------- */

html.tjp-modal-open {
	overflow:hidden;
}

.tjp-login-modal {
	--tjp-green:#00964a;
	--tjp-green-dark:#006f38;
	--tjp-pink:#d21470;
	--tjp-yellow:#ffd51f;
	--tjp-ink:#12303b;
	--tjp-ink-soft:#405760;
	position:fixed;
	inset:0;
	z-index:100000;
	display:none;
	align-items:center;
	justify-content:center;
	padding:20px;
}

.tjp-login-modal.is-open {
	display:flex;
}

.tjp-login-backdrop {
	position:absolute;
	inset:0;
	background:rgba(8,28,34,.72);
	backdrop-filter:blur(4px);
}

.tjp-login-dialog {
	position:relative;
	z-index:1;
	width:min(100%,470px);
	max-height:calc(100vh - 40px);
	overflow:auto;
	padding:30px;
	border-radius:20px;
	background:#fff;
	color:var(--tjp-ink);
	box-shadow:0 28px 80px rgba(0,0,0,.32);
	border-top:6px solid var(--tjp-green);
}

.tjp-login-dialog::after {
	content:"";
	position:absolute;
	top:-6px;
	right:0;
	width:32%;
	height:6px;
	background:linear-gradient(90deg,var(--tjp-pink) 0 70%,var(--tjp-yellow) 70%);
	border-radius:0 20px 0 0;
}

.tjp-login-close {
	position:absolute;
	top:12px;
	right:14px;
	width:38px;
	height:38px;
	display:flex;
	align-items:center;
	justify-content:center;
	border:0;
	border-radius:50%;
	background:#eef3f0;
	color:var(--tjp-ink);
	font-size:1.55rem;
	line-height:1;
	cursor:pointer;
}

.tjp-login-close:hover {
	background:#e1eae5;
}

.tjp-login-heading {
	padding-right:38px;
	margin-bottom:20px;
}

.tjp-login-heading h2 {
	margin:0 0 5px;
	color:var(--tjp-ink);
}

.tjp-login-heading p {
	margin:0;
	color:var(--tjp-ink-soft);
}

.tjp-login-logo {
	display:block;
	width:auto;
	max-width:215px;
	max-height:72px;
	object-fit:contain;
	object-position:left center;
	margin:0 0 18px;
}

.tjp-popup-login-form {
	gap:14px;
}

.tjp-popup-remember {
	flex-direction:row!important;
	align-items:center;
	font-weight:550!important;
}

.tjp-login-links {
	display:grid;
	gap:7px;
	margin-top:18px;
	padding-top:17px;
	border-top:1px solid #e1e9e5;
	font-size:.88rem;
}

.tjp-login-links a {
	color:var(--tjp-green-dark);
	font-weight:750;
}

.tjp-login-links span {
	margin-top:7px;
	color:var(--tjp-ink-soft);
	font-size:.73rem;
	font-weight:800;
	text-transform:uppercase;
	letter-spacing:.06em;
}

/* -------------------------------------------------------------------------
   Theme-unabhängiger Toolbar-Abstand
   ------------------------------------------------------------------------- */

body.tjp-has-toolbar {
	padding-top:var(--tjp-toolbar-height,64px)!important;
}

body.admin-bar.tjp-has-toolbar {
	padding-top:var(--tjp-toolbar-height,64px)!important;
}

/* -------------------------------------------------------------------------
   Responsive – Tablet
   ------------------------------------------------------------------------- */

@media (max-width:1250px) {
	.tjp-job-grid {
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.tjp-company-grid {
		grid-template-columns:repeat(3,minmax(0,1fr));
	}

	.tjp-filter {
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.tjp-filter .tjp-btn {
		width:100%;
	}

	.tjp-job-meta {
		grid-template-columns:repeat(3,minmax(0,1fr));
	}
}

@media (max-width:1080px) {
	.tjp-toolbar-inner {
		min-height:60px;
		flex-wrap:wrap;
		padding-top:7px;
		padding-bottom:7px;
	}

	.tjp-toolbar-toggle {
		display:inline-flex;
	}

	.tjp-toolbar-menu {
		display:none;
		flex-basis:100%;
		flex-direction:column;
		align-items:stretch;
		gap:10px;
		max-height:calc(100vh - 84px);
		overflow:auto;
		padding:8px 0 12px;
	}

	.tjp-toolbar.is-open .tjp-toolbar-menu {
		display:flex;
	}

	.tjp-toolbar-main,
	.tjp-toolbar-account,
	.tjp-toolbar-wp-menu {
		flex-direction:column;
		align-items:stretch;
		width:100%;
	}

	.tjp-toolbar-main > a,
	.tjp-toolbar-account > a,
	.tjp-toolbar-wp-menu > li > a,
	.tjp-toolbar-linkbutton {
		width:100%;
		justify-content:flex-start;
		padding:10px 12px;
	}

	.tjp-toolbar-account .tjp-toolbar-cta {
		justify-content:center;
		margin-top:4px;
	}

	.tjp-job-detail-layout,
	.tjp-company-detail-layout {
		grid-template-columns:1fr;
	}

	.tjp-apply-box,
	.tjp-dashboard-nav {
		position:static;
	}

	.tjp-dashboard {
		grid-template-columns:1fr;
	}

	.tjp-dashboard-nav {
		display:grid;
		grid-template-columns:repeat(3,minmax(0,1fr));
	}

	.tjp-dashboard-nav strong {
		grid-column:1/-1;
	}
}

@media (max-width:900px) {
	.tjp-page-hero,
	.tjp-detail-hero {
		align-items:flex-start;
		padding:28px;
	}

	.tjp-hero-mark {
		flex-basis:120px;
		min-height:110px;
	}

	.tjp-company-grid {
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.tjp-job-meta {
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.tjp-auth-choice {
		grid-template-columns:1fr;
	}

	.tjp-company-detail-hero {
		flex-wrap:wrap;
	}

	.tjp-company-hero-logo {
		flex-basis:130px;
		width:130px;
		height:110px;
	}

	.tjp-company-detail-hero .tjp-hero-mark {
		display:none;
	}
}

@media (max-width:782px) {
	body.admin-bar .tjp-toolbar {
		top:46px;
	}
}

/* -------------------------------------------------------------------------
   Responsive – Smartphone
   ------------------------------------------------------------------------- */

@media (max-width:680px) {
	:root {
		--tjp-mobile-pad:14px;
	}

	.tjp-page-width,
	.tjp-dashboard,
	.tjp-auth-choice {
		padding-left:14px;
		padding-right:14px;
	}

	.tjp-page-hero,
	.tjp-detail-hero {
		display:block;
		margin-top:16px;
		margin-bottom:16px;
		padding:22px 18px;
		border-radius:17px;
	}

	.tjp-page-hero h1,
	.tjp-detail-hero h1 {
		font-size:clamp(1.8rem,9vw,2.7rem);
		line-height:1.06;
	}

	.tjp-page-hero p {
		font-size:.97rem;
	}

	.tjp-hero-mark {
		width:100%;
		height:20px;
		min-height:0;
		margin-top:20px;
		padding:0;
		display:flex;
		flex-direction:row;
		transform:none;
	}

	.tjp-hero-line {
		height:6px!important;
		flex:1;
		width:auto;
		border-radius:999px;
	}

	.tjp-filter,
	.tjp-two,
	.tjp-job-grid,
	.tjp-company-grid,
	.tjp-job-meta {
		grid-template-columns:1fr;
	}

	.tjp-filter {
		padding:14px;
	}

	.tjp-job-card {
		min-height:0;
		padding:19px;
	}

	.tjp-job-card h3 {
		padding-right:0;
		font-size:1.08rem;
	}

	.tjp-featured {
		position:static;
		align-self:flex-start;
		margin:0 0 8px;
	}

	.tjp-job-main,
	.tjp-company-about,
	.tjp-company-facts {
		padding:18px;
		border-radius:14px;
	}

	.tjp-job-detail-layout,
	.tjp-company-detail-layout {
		gap:14px;
	}

	.tjp-apply-box {
		border-radius:14px;
	}

	.tjp-apply-box-inner {
		padding:19px;
	}

	.tjp-company-hero-logo {
		width:110px;
		height:90px;
		margin-bottom:14px;
	}

	.tjp-dashboard {
		padding-top:18px;
		gap:14px;
	}

	.tjp-dashboard-nav {
		grid-template-columns:repeat(2,minmax(0,1fr));
		gap:5px;
	}

	.tjp-dashboard-nav a {
		text-align:center;
	}

	.tjp-heading-row,
	.tjp-inline-form {
		flex-direction:column;
		align-items:stretch;
	}

	.tjp-heading-row .tjp-btn,
	.tjp-inline-form .tjp-btn,
	.tjp-inline-form select {
		width:100%;
	}

	.tjp-panel {
		padding:18px;
		border-radius:14px;
	}

	.tjp-auth-page {
		width:calc(100% - 28px);
		margin:22px auto!important;
	}

	.tjp-toolbar-logo {
		max-width:165px;
		height:36px;
	}

	.tjp-login-modal {
		padding:12px;
		align-items:flex-end;
	}

	.tjp-login-dialog {
		width:100%;
		max-height:calc(100vh - 24px);
		padding:24px 18px;
		border-radius:18px 18px 12px 12px;
	}

	.tjp-login-dialog::after {
		border-radius:0 18px 0 0;
	}

	.tjp-login-logo {
		max-width:175px;
		max-height:58px;
	}

	.tjp-pagination a {
		width:40px;
		height:40px;
	}
}

@media (max-width:420px) {
	.tjp-toolbar-inner {
		padding-left:12px;
		padding-right:12px;
	}

	.tjp-toolbar-logo {
		max-width:145px;
	}

	.tjp-dashboard-nav {
		grid-template-columns:1fr;
	}

	.tjp-dashboard-nav strong {
		grid-column:auto;
	}

	.tjp-detail-tags,
	.tjp-tags {
		gap:5px;
	}

	.tjp-tags span,
	.tjp-detail-tags span {
		font-size:.74rem;
	}
}

/* Bewegung reduzieren, wenn im Betriebssystem gewünscht. */
@media (prefers-reduced-motion:reduce) {
	.tjp-btn,
	.tjp-job-card,
	.tjp-company-card {
		transition:none!important;
	}
}


/* -------------------------------------------------------------------------
   Administrator-Vorschau als Bewerber / Unternehmen
   ------------------------------------------------------------------------- */

.tjp-admin-preview-switch{
	display:flex;
	align-items:center;
	gap:4px;
	padding:4px;
	border:1px solid rgba(255,255,255,.13);
	border-radius:10px;
	background:rgba(255,255,255,.04);
}

.tjp-admin-preview-label{
	padding:0 6px;
	color:#b9c9c3;
	font-size:.72rem;
	font-weight:800;
	text-transform:uppercase;
	letter-spacing:.05em;
}

.tjp-admin-preview-switch a{
	display:inline-flex;
	align-items:center;
	min-height:32px;
	padding:6px 8px;
	border-radius:7px;
	color:#dce7e2!important;
	font-size:.76rem;
	font-weight:750;
	text-decoration:none!important;
}

.tjp-admin-preview-switch a:hover,
.tjp-admin-preview-switch a.is-active{
	background:#ffd51f;
	color:#342e00!important;
}

.tjp-preview-notice{
	width:calc(100% - (2 * var(--tjp-page-pad,clamp(16px,3vw,48px))));
	max-width:1680px;
	margin:24px auto 0;
	padding:14px 17px;
	border:1px solid rgba(210,20,112,.18);
	border-left:5px solid var(--tjp-pink,#d21470);
	border-radius:12px;
	background:#fff4f8;
	color:#69113d;
	line-height:1.5;
}

.tjp-preview-help{
	margin:16px 0 0;
	padding-top:14px;
	border-top:1px dashed var(--tjp-border,#d8e1dc);
	color:var(--tjp-ink-soft,#405760);
	font-size:.85rem;
}

.tjp-preview-form input:disabled,
.tjp-preview-form select:disabled,
.tjp-preview-form textarea:disabled,
.tjp-preview-apply input:disabled,
.tjp-preview-apply select:disabled,
.tjp-preview-apply textarea:disabled{
	opacity:1;
	background:#f4f7f5;
	color:#53655d;
	cursor:not-allowed;
}

.tjp-preview-form .tjp-btn:disabled,
.tjp-preview-apply .tjp-btn:disabled,
.tjp-admin-preview-dashboard .tjp-btn:disabled{
	opacity:.72;
	background:#7c9187;
	box-shadow:none;
	transform:none;
	cursor:not-allowed;
}

.tjp-preview-badge{
	display:inline-flex;
	margin-bottom:10px;
	padding:5px 8px;
	border-radius:999px;
	background:#fff0f5;
	color:#941253;
	font-size:.74rem;
	font-weight:850;
}

.tjp-preview-exit{
	margin-top:5px;
	border:1px solid rgba(210,20,112,.18);
	color:var(--tjp-pink,#d21470)!important;
}

@media(max-width:1080px){
	.tjp-admin-preview-switch{
		width:100%;
		justify-content:flex-start;
		flex-wrap:wrap;
	}
}

@media(max-width:680px){
	.tjp-admin-preview-switch{
		display:grid;
		grid-template-columns:1fr 1fr 1fr;
		gap:5px;
	}

	.tjp-admin-preview-label{
		grid-column:1/-1;
		padding:2px 4px;
	}

	.tjp-admin-preview-switch a{
		justify-content:center;
		text-align:center;
	}

	.tjp-preview-notice{
		width:calc(100% - 28px);
		margin-top:16px;
	}
}
