/*
 * Structure only for the RFP submission forms — no colors, fonts, or
 * backgrounds, so the active theme's own styling shows through.
 */

.kjs-rfp-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
	margin-bottom: 16px;
}

.kjs-rfp-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.kjs-rfp-field-full {
	grid-column: 1 / -1;
}

.kjs-rfp-field input,
.kjs-rfp-field select,
.kjs-rfp-field textarea {
	box-sizing: border-box;
	width: 100%;
	padding: 10px 12px;
	border: 1px solid;
}

.kjs-rfp-submit {
	cursor: pointer;
}

.kjs-rfp-message {
	margin: 8px 0 0;
}

/* Honeypot: hidden from real visitors, left fillable for bots. */
.kjs-rfp-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ---------- RFP / Job opening switch and the job form ---------- */

/* Room above the form when a #job / #rfp link scrolls to it (clears a sticky header). */
.kjs-rfp {
	scroll-margin-top: 80px;
}

.kjs-post-kind-label {
	margin: 0 0 8px;
}

/* Job post / RFP: two large toggle buttons. The selected one keeps the
   theme's .btn look; the other is drawn as an outline. */
.kjs-post-kind {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 28px;
}

.kjs-post-kind .kjs-post-kind-btn {
	flex: 1 1 160px;
	max-width: 240px;
	padding: 14px 24px;
	border: 2px solid currentColor;
	cursor: pointer;
}

/* Scoped twice so a theme's .btn { border: 0 } can't erase the outline. */
.kjs-post-kind .kjs-post-kind-btn:not(.is-active) {
	background: transparent;
	color: inherit;
}

.kjs-post-kind .kjs-post-kind-btn.is-active {
	border-color: transparent;
}

.kjs-rfp[data-kjs-kind="job"] .kjs-post-panel[data-kind="rfp"],
.kjs-rfp[data-kjs-kind="rfp"] .kjs-post-panel[data-kind="job"] {
	display: none;
}

.kjs-check {
	display: inline-flex;
	align-items: flex-start;
	gap: 8px;
	cursor: pointer;
}

.kjs-rfp-field .kjs-check input,
.kjs-job-form .kjs-check input {
	width: auto;
	margin: 0.25em 0 0;
	padding: 0;
	border: revert;
	flex: 0 0 auto;
}

.kjs-job-promo {
	display: grid;
	gap: 12px;
	margin: 0 0 16px;
	padding: 16px;
	border: 1px solid;
	min-width: 0;
}

.kjs-job-promo-text,
.kjs-job-total,
.kjs-job-review-note {
	margin: 0;
}

.kjs-job-promo-options {
	display: grid;
	gap: 14px;
}

.kjs-job-weeks {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
}

.kjs-job-card {
	display: grid;
	gap: 6px;
}

.kjs-job-review-note {
	margin-bottom: 12px;
}

/* Confirmation that replaces the job form after a successful submission. */
.kjs-job-success {
	display: grid;
	justify-items: start;
	gap: 16px;
	margin: 0 0 48px;
	padding: 32px;
	border: 2px solid currentColor;
	border-radius: 8px;
}

/* Anything the form hides stays hidden, whatever display rule applies to it. */
.kjs-rfp [hidden],
.kjs-job-promo-options[hidden],
.kjs-job-success[hidden],
.kjs-job-form[hidden],
.kjs-job-form-heading[hidden] {
	display: none !important;
}

.kjs-job-success:focus {
	outline: none;
}

.kjs-job-success-icon {
	flex: 0 0 auto;
}

.kjs-job-success-heading,
.kjs-job-success-message {
	margin: 0;
}
