.kvp-careers,
.kvp-apply {
	--kvp-border: #dbe3e8;
	--kvp-muted: #5f6b76;
	--kvp-surface: #fff;
	color: #17212b;
}

/* The7/Elementor uses an overlay header; reserve its height on single jobs. */
body.single-kvp_job #main {
	box-sizing: border-box;
	padding-top: var(--kvp-job-header-offset, 170px);
}

@media (max-width: 767px) {
	body.single-kvp_job #main {
		--kvp-job-header-offset: 116px;
	}
}

.kvp-filters {
	display: grid;
	grid-template-columns: 1.5fr repeat(3, minmax(150px, 1fr)) auto;
	gap: 14px;
	align-items: end;
	padding: 22px;
	margin: 0 0 24px;
	background: #f5f8f8;
	border: 1px solid var(--kvp-border);
	border-radius: 14px;
}

.kvp-field,
.kvp-application-form label {
	display: flex;
	flex-direction: column;
	gap: 7px;
	font-weight: 600;
}

.kvp-field input,
.kvp-field select,
.kvp-application-form input,
.kvp-application-form textarea,
.kvp-application-form select {
	box-sizing: border-box;
	width: 100%;
	min-height: 46px;
	padding: 10px 12px;
	color: #17212b;
	background: #fff;
	border: 1px solid #bcc8cf;
	border-radius: 8px;
	font: inherit;
}

.kvp-field input:focus,
.kvp-field select:focus,
.kvp-application-form input:focus,
.kvp-application-form textarea:focus,
.kvp-application-form select:focus {
	outline: 3px solid color-mix(in srgb, var(--kvp-accent) 20%, transparent);
	border-color: var(--kvp-accent);
}

.kvp-button {
	min-height: 46px;
	padding: 11px 20px;
	color: #fff;
	background: var(--kvp-accent);
	border: 0;
	border-radius: 8px;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.kvp-results-summary {
	margin-bottom: 14px;
	color: var(--kvp-muted);
	font-size: .95rem;
}

.kvp-job-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.kvp-job-card {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
	padding: 18px;
	background: var(--kvp-surface);
	border: 1px solid var(--kvp-border);
	border-radius: 14px;
	box-shadow: 0 8px 25px rgba(23, 33, 43, .05);
	transition: transform .18s ease, box-shadow .18s ease;
}

.kvp-job-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(23, 33, 43, .1);
}

.kvp-job-card h3,
.kvp-job-card p {
	margin: 0;
}

.kvp-job-card h3 {
	font-size: clamp(1.05rem, 1.25vw, 1.35rem);
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.kvp-job-card p {
	display: -webkit-box;
	overflow: hidden;
	font-size: .94rem;
	line-height: 1.55;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

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

.kvp-job-card__meta,
.kvp-job-card__facts,
.kvp-pagination {
	display: flex;
	gap: 14px;
	align-items: center;
	justify-content: space-between;
	color: var(--kvp-muted);
	font-size: .9rem;
}

.kvp-job-card__facts {
	justify-content: flex-start;
	flex-wrap: wrap;
}

.kvp-card-link {
	margin-top: auto;
	color: var(--kvp-accent);
	font-size: .92rem;
	font-weight: 700;
	text-decoration: none;
}

.kvp-empty {
	padding: 48px 24px;
	text-align: center;
	background: #f8fafb;
	border: 1px dashed var(--kvp-border);
	border-radius: 14px;
}

.kvp-pagination {
	justify-content: center;
	margin-top: 28px;
}

.kvp-pagination a {
	padding: 8px 13px;
	border: 1px solid var(--kvp-border);
	border-radius: 7px;
	text-decoration: none;
}

.kvp-careers.is-loading .kvp-results {
	opacity: .45;
	pointer-events: none;
}

.kvp-job-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 12px;
	padding: 20px;
	margin: 28px 0;
	background: #f5f8f8;
	border-radius: 12px;
}

.kvp-job-facts div {
	display: grid;
	gap: 4px;
}

.kvp-job-facts dt {
	color: var(--kvp-muted);
	font-size: .82rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.kvp-job-facts dd {
	margin: 0;
	font-weight: 600;
}

.kvp-apply {
	margin: 48px 0 0;
	background: #f4f8f8;
	border: 1px solid #d7e4e4;
	border-radius: 20px;
	box-shadow: 0 22px 55px rgba(19, 46, 54, .09);
	overflow: hidden;
}

.kvp-apply-header {
	padding: 34px 38px 28px;
	color: #fff;
	background:
		radial-gradient(circle at 90% 12%, rgba(94, 234, 212, .27), transparent 30%),
		linear-gradient(125deg, #102f43 0%, #0e5960 60%, var(--kvp-accent) 100%);
}

.kvp-form-eyebrow {
	display: block;
	margin-bottom: 7px;
	color: #99f6e4;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.kvp-apply-header h2 { margin: 0 0 10px; color: #fff; font-size: clamp(1.8rem, 4vw, 2.6rem); }
.kvp-apply-header > p { max-width: 760px; margin: 0; color: rgba(255, 255, 255, .78); }

.kvp-form-steps {
	display: flex;
	gap: 26px;
	margin-top: 25px;
}

.kvp-form-steps span { display: inline-flex; align-items: center; gap: 8px; color: rgba(255, 255, 255, .82); font-size: .84rem; font-weight: 700; }
.kvp-form-steps b { display: grid; place-items: center; width: 26px; height: 26px; color: #0f5057; background: #ccfbf1; border-radius: 50%; }

.kvp-apply > .kvp-notice { margin: 22px 30px 0; border-radius: 9px; }

.kvp-application-guidance {
	margin: 26px 30px 0;
	padding: 20px 22px;
	color: #38515a;
	background: #ecfdf8;
	border: 1px solid #b9eadc;
	border-radius: 12px;
}

.kvp-application-guidance strong { display: block; margin-bottom: 5px; color: #125d59; font-size: 1.03rem; }
.kvp-application-guidance p { margin: 0 0 8px; }
.kvp-application-guidance ul { display: grid; gap: 4px; margin: 0; padding-left: 20px; font-size: .9rem; }

.kvp-application-form {
	display: grid;
	gap: 20px;
	padding: 28px 30px 34px;
}

.kvp-required-note { margin: 0; color: #667680; font-size: .82rem; text-align: right; }
.kvp-required-note span,
.kvp-application-form label > span[aria-hidden="true"] { color: #dc2626; }

.kvp-form-section {
	min-width: 0;
	padding: 24px;
	margin: 0;
	background: #fff;
	border: 1px solid #dce6e8;
	border-radius: 14px;
}

.kvp-form-section legend {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 0 10px 0 0;
	color: #17353d;
	font-size: 1.02rem;
}

.kvp-form-section legend > span {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	color: #fff;
	background: var(--kvp-accent);
	border-radius: 9px;
	font-size: .86rem;
}

.kvp-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.kvp-field-wide { grid-column: 1 / -1; }
.kvp-form-section > .kvp-field-wide { margin-top: 18px; }

.kvp-application-form small {
	color: var(--kvp-muted);
	font-weight: 400;
}

.kvp-upload-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.kvp-upload-card {
	position: relative;
	align-items: flex-start;
	min-height: 225px;
	padding: 19px;
	background: #f8fbfb;
	border: 1px dashed #a9c2c4;
	border-radius: 12px;
	cursor: pointer;
	transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.kvp-upload-card:hover,
.kvp-upload-card:focus-within { background: #f0fdfa; border-color: var(--kvp-accent); transform: translateY(-1px); }
.kvp-upload-icon { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 3px; color: var(--kvp-accent) !important; background: #dff7f1; border-radius: 12px; font-size: .69rem; font-weight: 900; letter-spacing: .04em; }
.kvp-upload-card strong { color: #17353d; }
.kvp-upload-card input[type="file"] { min-height: auto; padding: 7px; margin-top: auto; font-size: .8rem; background: #fff; }
.kvp-upload-card input[type="file"]::file-selector-button { padding: 7px 9px; margin-right: 8px; color: #fff; background: var(--kvp-accent); border: 0; border-radius: 6px; cursor: pointer; }
.kvp-upload-card em { color: #62737b; font-size: .78rem; font-style: normal; font-weight: 500; overflow-wrap: anywhere; }
.kvp-upload-card.has-files { background: #ecfdf5; border-style: solid; border-color: #34d399; }

@media (max-width: 1100px) {
	.kvp-upload-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1360px) {
	.kvp-job-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.kvp-form-confirmations {
	display: grid;
	gap: 11px;
	padding: 20px 22px;
	background: #fff;
	border: 1px solid #dce6e8;
	border-radius: 12px;
}

.kvp-consent {
	flex-direction: row !important;
	align-items: flex-start;
	font-weight: 400 !important;
}

.kvp-consent input {
	flex: 0 0 auto;
	width: 19px;
	height: 19px;
	min-height: auto;
	margin-top: 2px;
	accent-color: var(--kvp-accent);
}

.kvp-form-submit { display: flex; align-items: center; gap: 18px; }
.kvp-form-submit .kvp-button { min-height: 50px; padding: 13px 24px; box-shadow: 0 8px 18px color-mix(in srgb, var(--kvp-accent) 25%, transparent); }
.kvp-form-submit small { max-width: 360px; }

.kvp-notice {
	padding: 14px 16px;
	margin: 16px 0;
	border-left: 4px solid #64748b;
	background: #f8fafc;
}

.kvp-notice--success { border-color: #15803d; background: #f0fdf4; }
.kvp-notice--warning { border-color: #d97706; background: #fffbeb; }
.kvp-notice--error { border-color: #dc2626; background: #fef2f2; }
.kvp-honeypot { position: absolute !important; left: -9999px !important; }

.kvp-job-alert-form { max-width: 880px; padding: 30px; margin: 32px auto; color: #17353d; background: linear-gradient(145deg,#f0fdfa,#fff); border: 1px solid #cce7e2; border-radius: 16px; box-shadow: 0 12px 35px rgba(15,118,110,.08); }
.kvp-job-alert-form h2 { margin: 5px 0 8px; }
.kvp-job-alert-form > p { color: #5b6e75; }
.kvp-alert-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 22px; }
.kvp-alert-fields > label:not(.kvp-consent) { display: flex; flex-direction: column; gap: 7px; font-weight: 700; }
.kvp-alert-fields input:not([type="checkbox"]),.kvp-alert-fields select { box-sizing: border-box; width: 100%; min-height: 46px; padding: 10px 12px; color: #17353d; background: #fff; border: 1px solid #cbd7da; border-radius: 8px; }
.kvp-alert-fields .kvp-button { justify-self: start; }

@media (max-width: 900px) {
	.kvp-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kvp-job-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kvp-field-wide { grid-column: 1 / -1; }
	.kvp-upload-grid { grid-template-columns: 1fr; }
	.kvp-upload-card { min-height: 0; }
}

@media (max-width: 620px) {
	.kvp-filters,
	.kvp-job-grid,
	.kvp-form-grid { grid-template-columns: 1fr; }
	.kvp-field-wide { grid-column: auto; }
	.kvp-job-card__meta { align-items: flex-start; flex-direction: column; gap: 4px; }
	.kvp-apply-header { padding: 27px 22px 23px; }
	.kvp-form-steps { align-items: flex-start; flex-direction: column; gap: 10px; }
	.kvp-application-guidance { margin: 20px 18px 0; }
	.kvp-application-form { padding: 22px 18px 27px; }
	.kvp-form-section { padding: 19px 16px; }
	.kvp-form-submit { align-items: flex-start; flex-direction: column; }
	.kvp-form-submit .kvp-button { width: 100%; }
	.kvp-alert-fields { grid-template-columns: 1fr; }
	.kvp-job-alert-form { padding: 22px 18px; }
}
