
/* =============================================================
   Slipstream Careers Plugin Styles
   Matches the site's Aeonik font, #0F2060 / #2869E9 / #BF29F1
   palette and reuses resource-library__card classes.
   ============================================================= */

/* ── Hero ─────────────────────────────────────────────────── */
.sc-careers-hero {
	background: linear-gradient(135deg, #0f2060 0%, #100a1f 100%);
	color: #fff;
	padding: 5rem 0 4rem;
	text-align: center;
}

.sc-careers-hero__eyebrow {
	color: #bf29f1;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .12em;
	margin-bottom: .75rem;
	text-transform: uppercase;
}

.sc-careers-hero__title {
	color: #fff;
	font-size: clamp(2rem, 5vw, 3.25rem);
	font-weight: 700;
	line-height: 1.1;
	margin-bottom: 1rem;
}

.sc-careers-hero__subtitle {
	color: rgba(255, 255, 255, .75);
	font-size: 1.125rem;
	max-width: 600px;
	margin: 0 auto;
}

/* ── Section wrapper ──────────────────────────────────────── */
.sc-careers-section {
	padding: 4rem 0;
}

.sc-careers-main .container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1.5rem;
}

/* ── Job card grid ────────────────────────────────────────── */
.sc-careers-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

@media (max-width: 991px) {
	.sc-careers-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 575px) {
	.sc-careers-grid {
		grid-template-columns: 1fr;
	}
}

/* ── Reuse resource-library__card exactly ─────────────────── */
.resource-library__card {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #f3f4ff;
	border: 2px solid #fff;
	border-radius: .5rem;
	box-shadow: 0 0 8px rgba(15, 32, 96, .15);
	gap: 1.5rem;
	height: 100%;
	padding: .25rem;
	transition: transform .2s, box-shadow .2s;
}

.resource-library__card:hover {
	box-shadow: 0 .75rem 1.5rem rgba(15, 32, 96, .2);
	transform: translateY(-.3125rem);
}

.resource-library__card .resource-library__card-footer svg {
	fill: #bf29f1;
}

.resource-library__card:hover .resource-library__card-footer svg {
	transform: rotate(43deg);
}

.resource-library__card-link {
	color: inherit;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}

.resource-library__card-body {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: .5rem;
	padding: 1.5rem;
	width: 100%;
	flex-grow: 1;
}

.resource-library__card-title {
	color: #0f2060;
	font-size: .875rem;
	font-weight: 600;
	line-height: 1.2;
	margin: .5rem 0 .5rem;
	text-transform: uppercase;
	width: 100%;
	align-self: flex-start;
}

.resource-library__card-excerpt {
	color: #100a1f;
	font-size: .875rem;
	font-weight: 400;
	line-height: 150%;
	margin: 0;
	width: 100%;
	align-self: flex-start;
}

.resource-library__meta-row {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-top: auto;
	width: 100%;
}

.resource-library__badges {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem;
	margin: 0;
	padding: 0;
}

.resource-library__badge {
	background: #0f2060;
	border-radius: 1rem;
	box-shadow: 0 0 8px rgba(15, 32, 96, .15);
	color: #f3f4ff;
	font-size: .625rem;
	font-weight: 600;
	line-height: .625rem;
	padding: .25rem .625rem;
	text-transform: uppercase;
	display: inline-flex;
	justify-content: center;
	align-items: center;
}

.sc-badge--secondary {
	background: #2869e9;
}

.resource-library__card-footer {
	color: #2869e9;
	margin-left: auto;
	display: inline-flex;
	justify-content: center;
	align-items: center;
}

.resource-library__card-footer svg {
	height: 1.25rem;
	transition: transform .2s ease;
}

/* ── Job card extras ──────────────────────────────────────── */
.sc-job-card__location {
	align-self: flex-start;
	color: #6c757d;
	display: flex;
	align-items: center;
	gap: .3rem;
	font-size: .8125rem;
	margin: 0 0 .5rem;
	width: 100%;
}

.sc-job-card__exp {
	color: #6c757d;
	font-size: .75rem;
}

/* ── Error / empty states ─────────────────────────────────── */
.sc-careers-error, .sc-careers-empty {
	background: #f3f4ff;
	border-radius: .5rem;
	padding: 2.5rem;
	text-align: center;
	color: #0f2060;
}

/* ── Breadcrumb ───────────────────────────────────────────── */
.sc-breadcrumb {
	background: #f5f4ff;
	border-bottom: 1px solid #e9ecef;
	padding: .75rem 0;
	font-size: .875rem;
}

.sc-breadcrumb a {
	color: #2869e9;
	text-decoration: none;
}

.sc-breadcrumb a:hover {
	text-decoration: underline;
}

.sc-breadcrumb__sep {
	margin: 0 .5rem;
	color: #adb5bd;
}

/* ── Job Header ───────────────────────────────────────────── */
.sc-job-header {
	background: linear-gradient(135deg, #0f2060 0%, #100a1f 100%);
	color: #fff;
	padding: 3.5rem 0;
}

.sc-job-header__inner {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 2rem;
	flex-wrap: wrap;
}

.sc-job-header__title {
	color: #fff;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 700;
	margin: 0 0 1rem;
}

.sc-job-header__details {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
}

.sc-job-detail-chip {
	background: rgba(255, 255, 255, .1);
	border-radius: 2rem;
	color: rgba(255, 255, 255, .85);
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	font-size: .8125rem;
	padding: .3rem .75rem;
}

.sc-job-header__cta {
	display: flex;
	flex-direction: column;
	gap: .75rem;
	flex-shrink: 0;
}

/* ── Buttons ──────────────────────────────────────────────── */
.sc-btn {
	border-radius: .375rem;
	cursor: pointer;
	display: inline-block;
	font-family: inherit;
	font-size: .875rem;
	font-weight: 600;
	letter-spacing: .03em;
	padding: .65rem 1.5rem;
	text-align: center;
	text-decoration: none;
	transition: background .2s, color .2s, border-color .2s, transform .15s;
	white-space: nowrap;
}

.sc-btn--primary {
	background: #bf29f1;
	border: 2px solid #bf29f1;
	color: #fff;
}

.sc-btn--primary:hover {
	background: #a020cc;
	border-color: #a020cc;
	color: #fff;
	transform: translateY(-2px);
}

.sc-btn--outline {
	background: transparent;
	border: 2px solid rgba(255, 255, 255, .5);
	color: #fff;
}

.sc-btn--outline:hover {
	border-color: #fff;
	color: #fff;
	transform: translateY(-2px);
}

.sc-btn--full {
	width: 100%;
}

/* ── Job layout (description + sidebar) ──────────────────── */
.sc-job-layout {
	display: grid;
	grid-template-columns: 1fr 400px;
	gap: 3rem;
	align-items: start;
}

@media (max-width: 991px) {
	.sc-job-layout {
		grid-template-columns: 1fr;
	}
	
	.sc-apply-sidebar {
		order: -1;
	}
}

.sc-section-heading {
	color: #0f2060;
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 1.5rem;
	text-transform: uppercase;
	letter-spacing: .05em;
}

.sc-job-description__body {
	color: #212529;
	font-size: 1rem;
	line-height: 1.7;
}

.sc-job-description__body h1, .sc-job-description__body h2, .sc-job-description__body h3 {
	color: #0f2060;
	margin-top: 1.5rem;
}

.sc-job-description__body ul, .sc-job-description__body ol {
	padding-left: 1.5rem;
	margin-bottom: 1rem;
}

/* ── Apply card ───────────────────────────────────────────── */
.sc-apply-card {
	background: #f3f4ff;
	border: 2px solid #fff;
	border-radius: .5rem;
	box-shadow: 0 0 8px rgba(15, 32, 96, .15);
	padding: 2rem;
	position: sticky;
	/* top is set dynamically by JS to navbar height + 1.5rem gap;
       fallback of 80px covers most fixed navbars */
	top: var(--sc-sticky-top, 80px);
}

.sc-apply-card__heading {
	color: #0f2060;
	font-size: 1.125rem;
	font-weight: 700;
	margin: 0 0 1.5rem;
	text-transform: uppercase;
	letter-spacing: .05em;
}

/* ── Form ─────────────────────────────────────────────────── */
.sc-apply-form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.sc-form-row--half {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

@media (max-width: 480px) {
	.sc-form-row--half {
		grid-template-columns: 1fr;
	}
}

.sc-form-group {
	display: flex;
	flex-direction: column;
	gap: .35rem;
}

.sc-form-group label {
	color: #0f2060;
	font-size: .8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.sc-form-group label span {
	color: #0f2060;
}

.sc-form-group input, .sc-form-group textarea {
	background: #fff;
	border: 1.5px solid #dee2e6;
	border-radius: .375rem;
	color: #212529;
	font-family: inherit;
	font-size: .9375rem;
	padding: .6rem .875rem;
	transition: border-color .2s, box-shadow .2s;
	width: 100%;
}

.sc-form-group input:focus, .sc-form-group textarea:focus {
	border-color: #2869e9;
	box-shadow: 0 0 0 3px rgba(40, 105, 233, .15);
	outline: none;
}

.sc-apply-form__disclaimer {
	color: #6c757d;
	font-size: .75rem;
	margin: .5rem 0 0;
	text-align: center;
}

.sc-apply-form__disclaimer a {
	color: #2869e9;
}

/* ── Success / error messages ─────────────────────────────── */
.sc-apply-success {
	background: #d1e7dd;
	border-radius: .375rem;
	color: #0a3622;
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	margin-bottom: 1.5rem;
	padding: 1.25rem;
}

.sc-apply-success svg {
	color: #198754;
	flex-shrink: 0;
	margin-top: .1rem;
}

.sc-apply-error {
	background: #f8d7da;
	border-radius: .375rem;
	color: #58151c;
	margin-bottom: 1.5rem;
	padding: 1rem 1.25rem;
}

/* ── Redesigned success state ─────────────────────────────── */
.sc-apply-success {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 2rem 1rem;
	gap: 1rem;
}

.sc-apply-success__icon svg {
	color: #198754;
}

.sc-apply-success__heading {
	color: #0f2060;
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0;
}

.sc-apply-success__body {
	color: #212529;
	font-size: .9375rem;
	line-height: 1.6;
	margin: 0;
}

/* ── File Upload ──────────────────────────────────────────── */
.sc-file-upload {
	position: relative;
}

.sc-file-input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	overflow: hidden;
	z-index: -1;
}

.sc-file-label {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .65rem 1rem;
	border: 2px dashed #cbd5e1;
	border-radius: 6px;
	background: #fff;
	cursor: pointer;
	font-size: .875rem;
	color: #475569;
	transition: border-color .2s, background .2s;
}

.sc-file-label:hover {
	border-color: #2869e9;
	background: #f1f5f9;
}

.sc-file-input:focus + .sc-file-label {
	outline: 2px solid #2869e9;
	outline-offset: 2px;
}

.sc-file-name {
	display: block;
	margin-top: .35rem;
	font-size: .8rem;
	color: #64748b;
	word-break: break-all;
}

.sc-field-hint {
	font-size: .78rem;
	font-weight: 400;
	color: #64748b;
	margin-left: .25rem;
}

.sc-required {
	color: #bf29f1 !important;
}

/* ── Filter Bar ───────────────────────────────────────────── */
.sc-filter-bar {
	background: #fff;
	border-bottom: 1px solid #e2e8f0;
	padding: 1.25rem 0;
	position: sticky;
	top: 0;
	z-index: 100;
	box-shadow: 0 2px 8px rgba(15, 32, 96, .07);
}

.sc-filter-bar__inner {
	display: flex;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: 1rem;
}

.sc-filter-group {
	display: flex;
	flex-direction: column;
	gap: .3rem;
	flex: 1 1 160px;
	min-width: 140px;
}

.sc-filter-group--search {
	flex: 2 1 220px;
}

.sc-filter-label {
	color: #0f2060;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.sc-filter-search-wrap {
	position: relative;
}

.sc-filter-search-icon {
	position: absolute;
	left: .7rem;
	top: 50%;
	transform: translateY(-50%);
	color: #94a3b8;
	pointer-events: none;
}

.sc-filter-input--search {
	padding-left: 2.25rem !important;
}

.sc-filter-input, .sc-filter-select {
	background: #f8fafc;
	border: 1.5px solid #e2e8f0;
	border-radius: .375rem;
	color: #0f2060;
	font-family: inherit;
	font-size: .875rem;
	height: 2.5rem;
	padding: 0 .875rem;
	transition: border-color .2s, box-shadow .2s;
	width: 100%;
	appearance: none;
	-webkit-appearance: none;
}

.sc-filter-select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%230f2060' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right .75rem center;
	padding-right: 2rem;
}

.sc-filter-select.nitro-lazy {
	background-image: none !important;
}

.sc-filter-input:focus, .sc-filter-select:focus {
	border-color: #2869e9;
	box-shadow: 0 0 0 3px rgba(40, 105, 233, .15);
	outline: none;
}

.sc-btn--filter-clear {
	background: transparent;
	border: 1.5px solid #e2e8f0;
	color: #64748b;
	font-size: .8125rem;
	height: 2.5rem;
	padding: 0 1rem;
	align-self: flex-end;
	flex-shrink: 0;
	white-space: nowrap;
}

.sc-btn--filter-clear:hover {
	border-color: #bf29f1;
	color: #bf29f1;
	transform: none;
}

.sc-filter-count {
	color: #64748b;
	font-size: .8125rem;
	margin: .5rem 0 0;
	min-height: 1.2em;
}

/* ── Link-style button (used in no-results message) ───────── */
.sc-link-btn {
	background: none;
	border: none;
	color: #2869e9;
	cursor: pointer;
	font-family: inherit;
	font-size: inherit;
	padding: 0;
	text-decoration: underline;
}

.sc-link-btn:hover {
	color: #0f2060;
}

@media (max-width: 767px) {
	.sc-filter-bar__inner {
		flex-direction: column;
		align-items: stretch;
	}
	
	.sc-filter-group, .sc-filter-group--search {
		flex: 1 1 100%;
	}
	
	.sc-btn--filter-clear {
		align-self: flex-start;
	}
	
	.sc-filter-bar {
		position: static;
	}
}

/* ── Radio group (work authorization) ────────────────────── */
.sc-fieldset {
	border: none;
	margin: 0;
	padding: 0;
}

.sc-fieldset__legend {
	display: block;
	font-size: .875rem;
	font-weight: 600;
	color: #0f2060;
	margin-bottom: .5rem;
}

.sc-radio-group {
	display: flex;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.sc-radio-label {
	display: flex;
	align-items: center;
	gap: .5rem;
	cursor: pointer;
	font-size: .9375rem;
	color: #1a1a2e;
	font-weight: 500;
}

.sc-radio-label input[type="radio"] {
	width: 1.1rem;
	height: 1.1rem;
	accent-color: #0f2060;
	cursor: pointer;
	flex-shrink: 0;
}
