/*!
 * Forum Sozial e.V. - 05-jobs partial.
 * Jobs (list/table/single), 404 page, about-page sidebar (deduplicated).
 * NOTE: cascade order is significant - see inc/enqueue.php.
 */

/* ─── Job Postings (Stellenanzeigen) ────────────────────────────────── */

/* Hero Section */

/* Job Cards */
.fsev-jobs-list {
	display: grid;
	gap: 16px;
}

.fsev-job-form-wrapper {
	background: var(--wp--preset--color--ice-blue);
	padding: 32px;
	margin-bottom: 32px;
}

.fsev-job-form-wrapper h2 {
	margin-top: 0;
}

.fsev-my-jobs {
	margin-top: 32px;
}

.fsev-jobs-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--body);
}

.fsev-jobs-table th,
.fsev-jobs-table td {
	padding: 12px 16px;
	text-align: left;
	border-bottom: 1px solid var(--wp--preset--color--canvas-grey);
}

.fsev-jobs-table th {
	font-weight: 600;
	color: var(--wp--preset--color--forum-blue);
}

.fsev-jobs-table a {
	color: var(--wp--preset--color--forum-blue);
	text-decoration: none;
}

.fsev-jobs-table a:hover {
	text-decoration: underline;
}

.fsev-btn-edit,
.fsev-btn-delete {
	background: transparent;
	border: 1px solid var(--wp--preset--color--forum-blue);
	color: var(--wp--preset--color--forum-blue);
	padding: 4px 12px;
	cursor: pointer;
	font-size: var(--wp--preset--font-size--small-copy);
	margin-right: 8px;
}

.fsev-btn-edit:hover,
.fsev-btn-delete:hover {
	background: var(--wp--preset--color--forum-blue);
	color: var(--wp--preset--color--white);
}

/* Edit Modal */
.fsev-edit-modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 9999;
}

.fsev-edit-modal__overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: color-mix(in srgb, black 50%, transparent);
}

.fsev-edit-modal__content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: var(--wp--preset--color--white);
	padding: 32px;
	width: 90%;
	max-width: 640px;
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: 0 8px 32px color-mix(in srgb, black 30%, transparent);
}

.fsev-edit-modal__content h3 {
	margin-top: 0;
	margin-bottom: 24px;
	color: var(--wp--preset--color--forum-blue);
}

.fsev-edit-form .fsev-form-field {
	margin-bottom: 18px;
}

.fsev-edit-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 6px;
	font-size: var(--wp--preset--font-size--small-copy);
}

.fsev-edit-form input,
.fsev-edit-form select,
.fsev-edit-form textarea {
	width: 100%;
	padding: 8px 12px;
	border: 1px solid var(--wp--preset--color--forum-blue);
	font-family: var(--wp--preset--font-family--finlandica-text);
	font-size: var(--wp--preset--font-size--body);
}

.fsev-edit-form .fsev-form-actions {
	display: flex;
	gap: 12px;
	align-items: center;
	margin-top: 24px;
}

.fsev-btn-cancel {
	background: transparent;
	border: 1px solid var(--wp--preset--color--body-text);
	color: var(--wp--preset--color--body-text);
	padding: 7px 15px;
	cursor: pointer;
	font-size: var(--wp--preset--font-size--body);
}

.fsev-btn-cancel:hover {
	background: var(--wp--preset--color--body-text);
	color: var(--wp--preset--color--white);
}

/* Archive View */
.fsev-jobs-archive {
	padding: 32px 0;
}

.fsev-job-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--canvas-grey);
	border-radius: 0;
	padding: 24px;
	margin-bottom: 0;
	align-items: center;
	transition: all 0.2s ease;
}

.fsev-job-card:hover {
	border-color: var(--wp--preset--color--forum-blue);
	box-shadow: 0 4px 12px var(--wp--preset--color--shadow-10);
}

.fsev-job-title {
	margin: 0 0 12px;
	font-size: var(--wp--preset--font-size--subheading);
	font-weight: 600;
}

.fsev-job-title a {
	color: var(--wp--preset--color--forum-blue);
	text-decoration: none;
}

.fsev-job-title a:hover {
	text-decoration: underline;
}

.fsev-job-tags {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.fsev-job-tag {
	background: var(--wp--preset--color--ice-blue);
	color: var(--wp--preset--color--body-text);
	padding: 4px 12px;
	font-size: var(--wp--preset--font-size--small-copy);
}

.fsev-job-deadline {
	font-size: var(--wp--preset--font-size--small-copy);
	color: var(--wp--preset--color--body-text);
	text-align: right;
	display: flex;
	flex-direction: column;
}

.fsev-job-deadline strong {
	color: var(--wp--preset--color--forum-blue);
	font-size: var(--wp--preset--font-size--body);
}

.fsev-job-deadline small {
	color: var(--wp--preset--color--muted);
}

/* Empty State */
.fsev-jobs-empty {
	text-align: center;
	padding: 64px 32px;
	background: var(--wp--preset--color--ice-blue);
}

.fsev-jobs-empty p {
	font-size: var(--wp--preset--font-size--body);
	margin: 0 0 16px;
}

.fsev-jobs-empty p:last-of-type {
	color: var(--wp--preset--color--muted);
	margin-bottom: 24px;
}

/* Single View */
.fsev-job-single {
	padding: 32px 0;
}

.fsev-job-content {
	margin-bottom: 32px;
}

.fsev-job-apply {
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--wp--preset--color--canvas-grey);
}

.fsev-job-apply h3 {
	color: var(--wp--preset--color--forum-blue);
	margin: 0 0 12px;
	font-size: var(--wp--preset--font-size--subheading);
}

.fsev-job-contact {
	font-size: var(--wp--preset--font-size--section);
	margin: 16px 0;
}

.fsev-job-contact a {
	color: var(--wp--preset--color--forum-blue);
	text-decoration: none;
	font-weight: 600;
}

.fsev-job-contact a:hover {
	text-decoration: underline;
}

/* ─── 404 Page ──────────────────────────────────────────────────────── */

.fsev-404-page {
	min-height: 60vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 64px 24px;
}

.fsev-404-content {
	text-align: center;
}

.fsev-404-title {
	font-size: 120px;
	font-weight: 700;
	color: var(--wp--preset--color--forum-blue);
	margin: 0;
	line-height: 1;
}

.fsev-404-subtitle {
	font-size: var(--wp--preset--font-size--section);
	color: var(--wp--preset--color--body-text);
	margin: 16px 0 24px;
}

.fsev-404-text {
	font-size: var(--wp--preset--font-size--body);
	color: var(--wp--preset--color--body-text);
	margin-bottom: 8px;
}

.fsev-404-hint {
	font-size: var(--wp--preset--font-size--body);
	color: var(--wp--preset--color--muted);
	margin-bottom: 32px;
}

.fsev-404-buttons {
	justify-content: center;
	margin-bottom: 48px;
}

.fsev-404-search {
	margin: 0 auto;
}

.fsev-404-search .wp-block-search__label {
	font-weight: 600;
	color: var(--wp--preset--color--body-text);
	margin-bottom: 8px;
}

.fsev-404-search .wp-block-search__input {
	padding: 12px 16px;
	border: 1px solid var(--wp--preset--color--forum-blue);
	background: var(--wp--preset--color--ice-blue);
	font-family: var(--wp--preset--font-family--finlandica-text);
}

.fsev-404-search .wp-block-search__button {
	background: var(--wp--preset--color--forum-blue);
	color: var(--wp--preset--color--white);
	padding: 12px 24px;
	font-weight: 600;
}

/* ─── About Page Layout ─────────────────────────────────────────────── */

.fsev-sidebar {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.fsev-sidebar-section {
	background: var(--wp--preset--color--ice-blue);
	padding: 24px;
}

.fsev-sidebar-section h3 {
	color: var(--wp--preset--color--forum-blue);
	margin: 0 0 16px;
	font-size: var(--wp--preset--font-size--subheading);
}

.fsev-sidebar-section .fsev-link-list {
	gap: 10px;
}

/* ─── Job sort + county badge + event type badge ─────────────────────── */

.fsev-job-filterbar__right {
	align-items: center;
	display: flex;
	gap: 0;
}




/* Über-uns sidebar nav: icon + active state are the only CSS-only bits;
   colours, gaps, type and current page are driven from block markup / WP. */
.fsev-about-nav .wp-block-navigation-item__content {
	align-items: center;
	display: inline-flex;
	gap: 12px;
	padding: 0;
	text-decoration: underline;
}

.fsev-about-nav .wp-block-navigation-item__content::before {
	background: url('../icons/circle-chevron-right-solid-sharp.svg') center / contain no-repeat;
	content: "";
	flex: 0 0 32px;
	height: 32px;
	transform-origin: center;
	transition: transform 180ms cubic-bezier(0.23, 1, 0.32, 1);
	width: 32px;
}

.fsev-about-nav .current-menu-item .wp-block-navigation-item__content {
	color: var(--wp--preset--color--body-text);
	text-decoration: none;
}

.fsev-about-nav .current-menu-item .wp-block-navigation-item__content::before {
	background-image: url('../icons/circle-chevron-right-solid-sharp-dark.svg');
}

/* Match the contact link arrow to the nav's 32px circle-chevron icon. */
.fsev-about-contact .fsev-arrow-link {
	gap: 12px;
}

.fsev-about-contact .fsev-arrow-link::before {
	background: url('../icons/circle-chevron-right-solid-sharp.svg') center / contain no-repeat;
	border-radius: 0;
	content: "";
	flex: 0 0 32px;
	height: 32px;
	transform-origin: center;
	transition: transform 180ms cubic-bezier(0.23, 1, 0.32, 1);
	width: 32px;
}

@media (hover: hover) and (pointer: fine) {
	.fsev-about-nav .wp-block-navigation-item__content:hover {
		text-decoration: none;
	}

	.fsev-about-nav .wp-block-navigation-item__content:hover::before,
	.fsev-about-contact .fsev-arrow-link:hover::before {
		transform: translateX(3px) scale(1.06);
	}
}

@media (prefers-reduced-motion: reduce) {
	.fsev-about-nav .wp-block-navigation-item__content::before,
	.fsev-about-contact .fsev-arrow-link::before {
		transition: none;
	}

	.fsev-about-nav .wp-block-navigation-item__content:hover::before,
	.fsev-about-contact .fsev-arrow-link:hover::before {
		transform: none;
	}
}

/* Breadcrumb (if needed via plugin or custom) */
.fsev-breadcrumb {
	font-size: var(--wp--preset--font-size--small-copy);
	margin-bottom: 24px;
}

.fsev-breadcrumb a {
	color: var(--wp--preset--color--forum-blue);
	text-decoration: none;
}

.fsev-breadcrumb a:hover {
	text-decoration: underline;
}

.fsev-breadcrumb .current {
	color: var(--wp--preset--color--body-text);
}


/* Shown when the type/county filter matches nothing. Without it the band
   below the filter bar was simply empty, which reads as a broken page.
   The reset button matters because a selected filter is cleared by clicking
   it again - not something a visitor guesses. */
.fsev-jobs-filter-empty {
	font-size: var(--wp--preset--font-size--body);
	margin: 0;
}

.fsev-jobs-filter-reset {
	background: none;
	border: 0;
	color: var(--wp--preset--color--forum-blue);
	cursor: pointer;
	font-family: inherit;
	font-size: inherit;
	padding: 0;
	text-decoration: underline;
}

.fsev-jobs-filter-reset:hover {
	text-decoration: none;
}
