/* Simple Job Board: GOM visual integration, limited to careers views. */
:is(.page.sjb, .single-jobpost) .jobpost-form,
:is(.page.sjb, .single-jobpost) .sjb-page,
:is(.page.sjb, .single-jobpost) .sjb-job-listing,
:is(.page.sjb, .single-jobpost) .sjb-listing {
	font: inherit;
	color: var(--gom-body);
}

:is(.page.sjb, .single-jobpost) .jobpost-form input,
:is(.page.sjb, .single-jobpost) .jobpost-form select,
:is(.page.sjb, .single-jobpost) .jobpost-form textarea,
:is(.page.sjb, .single-jobpost) .sjb-page input,
:is(.page.sjb, .single-jobpost) .sjb-page select,
:is(.page.sjb, .single-jobpost) .sjb-page textarea {
	max-width: 100%;
	background: var(--gom-paper);
	border: 1px solid var(--gom-line);
	border-radius: 8px;
	padding: .7rem .8rem;
	font: inherit;
}

:is(.page.sjb, .single-jobpost) .jobpost-form input:focus-visible,
:is(.page.sjb, .single-jobpost) .jobpost-form select:focus-visible,
:is(.page.sjb, .single-jobpost) .jobpost-form textarea:focus-visible,
:is(.page.sjb, .single-jobpost) .sjb-page input:focus-visible,
:is(.page.sjb, .single-jobpost) .sjb-page select:focus-visible,
:is(.page.sjb, .single-jobpost) .sjb-page textarea:focus-visible,
:is(.page.sjb, .single-jobpost) .sjb-page a:focus-visible {
	outline: 3px solid var(--gom-ink);
	outline-offset: 3px;
}

/* Match the existing contact form: field focus uses the GOM red, while CTA focus remains ink. */
.single-jobpost .jobpost-form :is(input, select, textarea):focus {
	border-color: var(--gom-red);
	outline: 3px solid var(--gom-red);
	outline-offset: 2px;
}

:is(.page.sjb, .single-jobpost) .jobpost-form input[type="submit"],
:is(.page.sjb, .single-jobpost) .jobpost-form button,
:is(.page.sjb, .single-jobpost) .sjb-page button,
:is(.page.sjb, .single-jobpost) .sjb-page input[type="submit"] {
	background: var(--gom-red);
	border: 1px solid var(--gom-red);
	border-radius: 4px;
	color: var(--gom-paper);
	cursor: pointer;
	font: inherit;
	font-weight: 700;
	padding: .7rem 1.1rem;
}

:is(.page.sjb, .single-jobpost) .jobpost-form input[type="submit"]:hover,
:is(.page.sjb, .single-jobpost) .jobpost-form button:hover,
:is(.page.sjb, .single-jobpost) .sjb-page button:hover,
:is(.page.sjb, .single-jobpost) .sjb-page input[type="submit"]:hover {
	background: var(--gom-red-dark);
	border-color: var(--gom-red-dark);
}

:is(.page.sjb, .single-jobpost) .sjb-page .sjb-listing .list-data,
:is(.page.sjb, .single-jobpost) .sjb-page .sjb-job-listing {
	background: var(--gom-paper);
	border: 1px solid var(--gom-line);
	border-radius: 8px;
	margin-block: 1rem;
	padding: 1.25rem;
}

/* SJB renders empty company wrappers when an offer has no company metadata. */
.single-jobpost .sjb-company-wrapper-details:has(.job-without-company),
.single-jobpost .sjb-job-info:has(.job-without-company) {
	display: none;
}

:is(.page.sjb, .single-jobpost) .sjb-page .list-data a,
:is(.page.sjb, .single-jobpost) .sjb-page .sjb-job-listing a {
	color: var(--gom-red-dark);
}

:is(.page.sjb, .single-jobpost) .sjb-page .sjb-no-job-found {
	background: var(--gom-soft);
	border-left: .35rem solid var(--gom-red);
	padding: 1rem;
}

/* Job filters follow the contact-form component, not SJB's stock blue/grey UI. */
.page.sjb .sjb-page .sjb-filters,
.page.sjb .sjb-page .sjb-filters.sjb-filters-v2 {
	background: var(--gom-paper) !important;
	border: 1px solid var(--gom-line) !important;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgb(0 0 0 / .08);
	margin: 2rem 0 1.25rem;
	overflow: visible;
	padding: clamp(1rem, 3vw, 2rem);
}

.page.sjb .sjb-page .sjb-filters .row {
	display: grid;
	gap: 1rem;
	margin: 0;
}

.page.sjb .sjb-page .sjb-filters :is(.sjb-search-keywords, .sjb-search-categories, .sjb-search-job-type, .sjb-search-location, .sjb-search-button) {
	float: none;
	padding: 0;
	width: auto;
}

.page.sjb .sjb-page .sjb-filters .form-group {
	margin: 0;
}

.page.sjb .sjb-page .sjb-filters .form-control,
.page.sjb .sjb-page .sjb-filters.sjb-filters-v2 .form-control {
	appearance: none;
	background: var(--gom-paper) !important;
	border: 1px solid var(--gom-line) !important;
	border-radius: 8px;
	box-shadow: none !important;
	color: var(--gom-body);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 1rem;
	height: 44px;
	margin: 0;
	padding: .7rem .8rem;
	width: 100%;
}

.page.sjb .sjb-page .sjb-filters select,
.page.sjb .sjb-page .sjb-filters.sjb-filters-v2 select {
	appearance: auto;
	background-color: var(--gom-paper) !important;
	background-image: none !important;
}

.page.sjb .sjb-page .sjb-filters .form-control:focus {
	border-color: var(--gom-red);
	box-shadow: none;
	outline: 3px solid var(--gom-red);
	outline-offset: 2px;
}

.page.sjb .sjb-page .sjb-filters .btn-search,
.page.sjb .sjb-page .sjb-filters.sjb-filters-v2 .btn-search {
	appearance: none;
	background: var(--gom-red) !important;
	border: 1px solid var(--gom-red) !important;
	border-radius: 4px;
	color: var(--gom-paper);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 1rem;
	font-weight: 700;
	height: 44px;
	margin: 0;
	padding: .65rem 1rem;
	width: 100%;
}

.page.sjb .sjb-page .sjb-filters .btn-search:hover,
.page.sjb .sjb-page .sjb-filters .btn-search:focus {
	background: var(--gom-red-dark) !important;
	border-color: var(--gom-red-dark) !important;
	box-shadow: none !important;
}

.page.sjb .sjb-page .sjb-filters .btn-search:focus-visible {
	outline: 3px solid var(--gom-ink);
	outline-offset: 3px;
}

/* Introductory and spontaneous-application components use the same theme card. */
.gom-modern :is(.gom-careers-intro, .gom-spontaneous-application) {
	background: var(--gom-paper);
	border: 1px solid var(--gom-line);
	border-radius: 8px;
	box-shadow: 0 2px 8px rgb(0 0 0 / .08);
	margin: 0 0 1.25rem;
	padding: clamp(1rem, 3vw, 2rem);
}

.gom-modern :is(.gom-careers-intro, .gom-spontaneous-application) h2 {
	color: var(--gom-ink);
	margin-top: 0;
}

.gom-modern .gom-spontaneous-application .gom-form-status {
	border-left: .35rem solid var(--gom-red);
	margin: 0 0 1.25rem;
	padding-left: .8rem;
}

.gom-modern .gom-spontaneous-application fieldset {
	border: 0;
	margin: 0;
	min-width: 0;
	padding: 0;
}

.gom-modern .gom-spontaneous-application legend,
.gom-modern .gom-spontaneous-application label {
	color: var(--gom-ink);
	display: grid;
	font-weight: 700;
	gap: .5rem;
	margin-bottom: 1rem;
}

.gom-modern .gom-spontaneous-application :is(input, textarea, button) {
	appearance: none;
	border-radius: 8px;
	box-shadow: none;
	font-family: Arial, Helvetica, sans-serif;
	font: inherit;
	min-height: 44px;
	width: 100%;
}

.gom-modern .gom-spontaneous-application input:not([type="submit"]) {
	background: var(--gom-paper) !important;
	border: 1px solid var(--gom-line) !important;
	color: var(--gom-muted) !important;
	-webkit-text-fill-color: var(--gom-muted);
	padding: .7rem .8rem;
}

.gom-modern .gom-spontaneous-application textarea {
	background: var(--gom-paper);
	border: 1px solid var(--gom-line);
	color: var(--gom-body);
	min-height: 9rem;
	padding: .7rem .8rem;
	resize: vertical;
}

.gom-modern .gom-spontaneous-application :is(input, textarea):focus-visible {
	border-color: var(--gom-red);
	outline: 3px solid var(--gom-red);
	outline-offset: 2px;
}

.gom-modern .gom-spontaneous-application :is(button, .wpcf7-submit) {
	background: var(--gom-red) !important;
	border: 1px solid var(--gom-red) !important;
	color: var(--gom-paper) !important;
	cursor: pointer;
	font-weight: 700;
	opacity: 1;
	padding: .7rem 1.1rem;
}

.gom-modern .gom-spontaneous-application .wpcf7-acceptance label {
	display: block;
	font-weight: 400;
}

.gom-modern .gom-spontaneous-application .wpcf7-acceptance input[type="checkbox"] {
	min-height: auto;
	width: auto;
}

.gom-modern .gom-spontaneous-application .gom-candidate-honeypot {
	height: 1px;
	left: -10000px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

.gom-modern .gom-spontaneous-application :is(button, .wpcf7-submit):hover {
	background: var(--gom-red-dark) !important;
	border-color: var(--gom-red-dark) !important;
}

.gom-modern .gom-spontaneous-application :is(button, .wpcf7-submit):focus-visible {
	outline: 3px solid var(--gom-ink);
	outline-offset: 3px;
}

.gom-modern .gom-spontaneous-application .gom-recaptcha-notice {
	color: var(--gom-muted);
	font-size: .9rem;
	margin: 1rem 0 0;
}

.gom-modern .gom-spontaneous-application .gom-form-note {
	color: var(--gom-muted);
	font-size: .95rem;
	margin-bottom: 0;
}

@media (min-width: 43rem) {
	.page.sjb .sjb-page .sjb-filters .row {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.page.sjb .sjb-page .sjb-filters .sjb-search-keywords {
		grid-column: 1 / -1;
	}
}

.single-jobpost .jobpost-form {
	background: var(--gom-paper);
	border: 1px solid var(--gom-line);
	border-radius: 8px;
	box-shadow: 0 2px 8px rgb(0 0 0 / .08);
	margin-block: 2rem;
	padding: clamp(1rem, 3vw, 2rem);
}

.single-jobpost .jobpost-form h3 {
	color: var(--gom-ink);
	margin-top: 0;
}

.single-jobpost .jobpost-form label {
	color: var(--gom-ink);
	font-weight: 700;
}

.single-jobpost .jobpost-form input[type="file"] {
	background: var(--gom-paper);
	color: var(--gom-body);
	min-height: 44px;
	padding: .35rem;
}

.single-jobpost .jobpost-form input[type="file"]::file-selector-button {
	background: var(--gom-red);
	border: 1px solid var(--gom-red);
	border-radius: 4px;
	color: var(--gom-paper);
	cursor: pointer;
	font: inherit;
	font-weight: 700;
	margin-right: .75rem;
	padding: .45rem .75rem;
}

.single-jobpost .jobpost-form input[type="file"]::-webkit-file-upload-button {
	background: var(--gom-red);
	border: 1px solid var(--gom-red);
	border-radius: 4px;
	color: var(--gom-paper);
	cursor: pointer;
	font: inherit;
	font-weight: 700;
	margin-right: .75rem;
	padding: .45rem .75rem;
}

.single-jobpost .jobpost-form input[type="file"]:hover::file-selector-button,
.single-jobpost .jobpost-form input[type="file"]:hover::-webkit-file-upload-button {
	background: var(--gom-red-dark);
	border-color: var(--gom-red-dark);
}

.single-jobpost .jobpost-form .app-submit {
	background: var(--gom-red);
	border-color: var(--gom-red);
	min-height: 44px;
}

.single-jobpost .jobpost-form .btn-app-modal-close {
	background: var(--gom-paper);
	border: 1px solid var(--gom-red);
	color: var(--gom-red);
	margin-inline-start: .5rem;
	min-height: 44px;
}

.single-jobpost .jobpost-form .btn-app-modal-close:hover {
	background: var(--gom-soft);
	border-color: var(--gom-red-dark);
	color: var(--gom-red-dark);
}

.single-jobpost .jobpost-form :is(button, input, select, textarea):disabled,
.single-jobpost .jobpost-form :is(button, input, select, textarea)[aria-disabled="true"] {
	background: var(--gom-soft);
	border-color: var(--gom-line);
	color: var(--gom-muted);
	cursor: not-allowed;
	opacity: 1;
}

.single-jobpost .jobpost-form .error,
.single-jobpost .jobpost-form .sjb-invalid-attachment,
.single-jobpost .jobpost-form [aria-invalid="true"] {
	border-color: #7a0d16;
	color: #7a0d16;
}

.single-jobpost .jobpost-form .sjb-invalid-attachment {
	display: block;
	font-weight: 700;
	margin-top: .4rem;
}

@media (max-width: 42rem) {
	:is(.page.sjb, .single-jobpost) .jobpost-form input,
	:is(.page.sjb, .single-jobpost) .jobpost-form select,
	:is(.page.sjb, .single-jobpost) .jobpost-form textarea,
	:is(.page.sjb, .single-jobpost) .sjb-page input,
	:is(.page.sjb, .single-jobpost) .sjb-page select,
	:is(.page.sjb, .single-jobpost) .sjb-page textarea {
		width: 100%;
	}

	.single-jobpost .jobpost-form :is(.app-submit, .btn-app-modal-close) {
		margin: .4rem 0 0;
		width: 100%;
	}

	.single-jobpost .jobpost-form .btn-app-modal-close {
		margin-inline-start: 0;
	}
}
