/* =========================================================
   Via Nova Jobs — 求人検索スタイル（上部検索パネル型）
   ブランドカラー: NAVY #1B2A4A / BLUE #2F6BE6 / GOLD #E0A23A
   ========================================================= */

.vnj-container {
	--vnj-navy: #1B2A4A;
	--vnj-blue: #2F6BE6;
	--vnj-blue-dark: #2456BF;
	--vnj-gold: #E0A23A;
	--vnj-bg: #F5F7FB;
	--vnj-bg-hero: #EDF2FB;
	--vnj-border: #DDE3EE;
	--vnj-muted: #5A6B8C;
	--vnj-white: #FFFFFF;

	font-family: "Yu Gothic Medium", "Yu Gothic", YuGothic, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	color: var(--vnj-navy);
	max-width: 1040px;
	margin: 0 auto;
	padding: 24px 16px 64px;
	box-sizing: border-box;
	line-height: 1.7;
}

.vnj-container *,
.vnj-container *::before,
.vnj-container *::after {
	box-sizing: border-box;
}

.vnj-icon {
	width: 1.2em;
	height: 1.2em;
	vertical-align: -0.22em;
	flex-shrink: 0;
}

/* ---------- ページヘッダー ---------- */

.vnj-page-header {
	margin-bottom: 18px;
}

.vnj-page-title {
	display: block;
	margin: 0;
	padding: 0;
	font-size: 2.25rem;
	font-weight: 800;
	line-height: 1.35;
	color: var(--vnj-navy);
	border-bottom: 0;
}

.vnj-finder-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
	gap: 24px;
	align-items: center;
	padding: 28px;
	background: linear-gradient(135deg, #F5F8FC 0%, #FFFFFF 56%, #F8F4EC 100%);
	border: 1px solid var(--vnj-border);
	border-radius: 8px;
	box-shadow: 0 14px 34px rgba(27, 42, 74, 0.08);
	text-align: left;
}

.vnj-finder-kicker {
	margin: 0 0 8px;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--vnj-blue);
}

.vnj-finder-copy {
	min-width: 0;
}

.vnj-finder-copy .vnj-page-intro {
	margin: 12px 0 0;
	text-align: left;
}

.vnj-finder-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.vnj-finder-stat {
	min-height: 92px;
	padding: 14px 10px;
	background: var(--vnj-white);
	border: 1px solid rgba(221, 227, 238, 0.95);
	border-radius: 8px;
	text-align: center;
	box-shadow: 0 6px 18px rgba(27, 42, 74, 0.06);
}

.vnj-finder-stat-num {
	display: block;
	font-size: 1.55rem;
	font-weight: 800;
	line-height: 1.1;
	color: var(--vnj-blue);
	word-break: keep-all;
}

.vnj-finder-stat-label {
	display: block;
	margin-top: 8px;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--vnj-muted);
	line-height: 1.4;
}

.vnj-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin: 0 0 18px;
}

.vnj-step {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 10px 12px;
	background: var(--vnj-white);
	border: 1px solid var(--vnj-border);
	border-radius: 8px;
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--vnj-navy);
}

.vnj-step span {
	display: inline-grid;
	place-items: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--vnj-navy);
	color: var(--vnj-white);
	font-size: 0.78rem;
}

/* ---------- ボタン ---------- */

.vnj-btn {
	display: inline-block;
	padding: 10px 20px;
	border: none;
	border-radius: 6px;
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.vnj-btn-search {
	background: var(--vnj-blue);
	color: var(--vnj-white);
}

.vnj-btn-search:hover {
	background: var(--vnj-blue-dark);
	color: var(--vnj-white);
}

.vnj-btn-cta {
	background: var(--vnj-gold);
	color: var(--vnj-navy);
}

.vnj-btn-cta:hover {
	background: #C98F2C;
	color: var(--vnj-navy);
}

.vnj-btn-secondary {
	background: var(--vnj-white);
	color: var(--vnj-blue);
	border: 1px solid var(--vnj-blue);
}

.vnj-btn-secondary:hover {
	background: var(--vnj-blue);
	color: var(--vnj-white);
}

.vnj-btn-lg {
	padding: 14px 40px;
	font-size: 1.05rem;
}

/* ---------- フォーム部品 ---------- */

.vnj-select {
	padding: 9px 32px 9px 12px;
	border: 1px solid var(--vnj-border);
	border-radius: 6px;
	background: var(--vnj-white);
	font-family: inherit;
	font-size: 0.95rem;
	color: var(--vnj-navy);
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B2A4A' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 14px;
}

.vnj-select:focus,
.vnj-filter-keyword:focus {
	outline: 2px solid var(--vnj-blue);
	outline-offset: 1px;
}

.vnj-filter-keyword {
	width: 100%;
	max-width: 480px;
	padding: 9px 12px;
	border: 1px solid var(--vnj-border);
	border-radius: 6px;
	font-family: inherit;
	font-size: 0.95rem;
	color: var(--vnj-navy);
	background: var(--vnj-white);
}

/* =========================================================
   かんたん求人検索（ヒーロー）
   ========================================================= */

.vnj-search-hero {
	position: relative;
	margin-bottom: 28px;
	padding: 24px 24px 28px;
	background: var(--vnj-bg-hero);
	border: 1px solid var(--vnj-border);
	border-radius: 12px;
	text-align: center;
}

.vnj-search-hero-badge {
	display: inline-block;
	margin: 0 0 10px;
	padding: 6px 28px;
	background: var(--vnj-navy);
	color: var(--vnj-white);
	font-size: 1.05rem;
	font-weight: 700;
	border-radius: 999px;
}

.vnj-search-hero-badge::first-letter {
	color: var(--vnj-gold);
}

.vnj-search-count {
	margin: 0 0 16px;
	font-size: 1rem;
	color: var(--vnj-navy);
}

.vnj-search-count strong {
	font-size: 1.9rem;
	color: var(--vnj-blue);
	margin: 0 2px;
}

.vnj-quick-form {
	display: flex;
	align-items: stretch;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
}

.vnj-quick-field {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	background: var(--vnj-white);
	border: 1px solid var(--vnj-border);
	border-radius: 8px;
}

.vnj-quick-label {
	display: flex;
	align-items: center;
	gap: 4px;
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--vnj-navy);
	white-space: nowrap;
}

.vnj-quick-label .vnj-icon {
	color: var(--vnj-gold);
}

.vnj-quick-select {
	border: none;
	min-width: 130px;
	padding-top: 4px;
	padding-bottom: 4px;
}

.vnj-quick-x {
	align-self: center;
	color: var(--vnj-muted);
	font-weight: 700;
}

.vnj-quick-submit {
	padding-left: 32px;
	padding-right: 32px;
	font-size: 1rem;
}

/* =========================================================
   詳細条件を絞り込む
   ========================================================= */

.vnj-search-detail {
	margin-bottom: 36px;
}

.vnj-advanced {
	background: var(--vnj-white);
	border: 1px solid var(--vnj-border);
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(27, 42, 74, 0.06);
	overflow: hidden;
}

.vnj-advanced-summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 58px;
	padding: 14px 18px;
	list-style: none;
	cursor: pointer;
	color: var(--vnj-navy);
}

.vnj-advanced-summary::-webkit-details-marker {
	display: none;
}

.vnj-advanced-summary::after {
	content: "+";
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--vnj-bg);
	color: var(--vnj-blue);
	font-size: 1.2rem;
	font-weight: 800;
	line-height: 1;
}

.vnj-advanced[open] .vnj-advanced-summary::after {
	content: "-";
	background: var(--vnj-navy);
	color: var(--vnj-white);
}

.vnj-advanced-summary:focus-visible {
	outline: 3px solid var(--vnj-blue);
	outline-offset: -3px;
}

.vnj-advanced-copy {
	display: block;
	min-width: 0;
}

.vnj-advanced-title {
	display: block;
	font-size: 1.08rem;
	font-weight: 800;
}

.vnj-advanced-lead {
	display: block;
	margin-top: 2px;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--vnj-muted);
}

.vnj-search-detail-title {
	margin: 0 0 4px;
	text-align: center;
	font-size: 1.45rem;
	font-weight: 700;
	color: var(--vnj-navy);
}

.vnj-search-detail-lead {
	margin: 0 0 16px;
	text-align: center;
	font-size: 0.92rem;
	color: var(--vnj-muted);
}

.vnj-detail-panel {
	background: var(--vnj-white);
	border: 0;
	border-top: 1px solid var(--vnj-border);
	border-radius: 0;
	padding: 8px 28px 4px;
	box-shadow: none;
}

.vnj-detail-clear-wrap {
	margin: 10px 0 0;
	text-align: right;
}

.vnj-detail-clear {
	display: inline-block;
	padding: 3px 14px;
	border: 1px solid var(--vnj-border);
	border-radius: 999px;
	font-size: 0.82rem;
	color: var(--vnj-muted);
	text-decoration: none;
	background: var(--vnj-white);
}

.vnj-detail-clear:hover {
	color: var(--vnj-blue-dark);
	border-color: var(--vnj-blue-dark);
}

.vnj-detail-row {
	display: grid;
	grid-template-columns: 190px minmax(0, 1fr);
	gap: 16px;
	align-items: start;
	padding: 20px 0;
	border-bottom: 1px solid var(--vnj-border);
}

.vnj-detail-row:last-child {
	border-bottom: none;
}

.vnj-detail-head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-top: 2px;
}

.vnj-row-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--vnj-bg);
	color: var(--vnj-navy);
	flex-shrink: 0;
}

.vnj-row-icon .vnj-icon {
	width: 20px;
	height: 20px;
}

.vnj-detail-label {
	font-size: 1.02rem;
	font-weight: 700;
	color: var(--vnj-navy);
}

.vnj-detail-body {
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 10px 14px;
}

/* ＋指定する（開閉式） */

.vnj-detail-toggle {
	flex: 1 1 100%;
}

.vnj-btn-specify {
	display: inline-block;
	padding: 7px 22px;
	background: var(--vnj-blue);
	color: var(--vnj-white);
	border-radius: 6px;
	font-size: 0.9rem;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
	user-select: none;
}

.vnj-btn-specify::-webkit-details-marker {
	display: none;
}

.vnj-btn-specify:hover {
	background: var(--vnj-blue-dark);
}

.vnj-detail-toggle[open] .vnj-btn-specify {
	background: var(--vnj-navy);
}

.vnj-detail-toggle summary:focus-visible {
	/* 白背景で3:1以上のコントラストを確保するためNAVYを使用（WCAG 1.4.11） */
	outline: 3px solid var(--vnj-navy);
	outline-offset: 2px;
}

/* スクリーンリーダー専用テキスト */
.vnj-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.vnj-detail-selected {
	align-self: center;
	font-size: 0.9rem;
	color: var(--vnj-muted);
}

/* チェックボックスグリッド */

.vnj-check-grid {
	margin-top: 14px;
	padding: 14px 16px;
	background: var(--vnj-bg);
	border-radius: 8px;
}

.vnj-check-grid-open {
	margin-top: 0;
	padding: 0;
	background: transparent;
	flex: 1 1 100%;
}

.vnj-filter-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px 16px;
}

.vnj-filter-item {
	margin: 0;
	font-size: 0.92rem;
}

.vnj-filter-item label {
	display: flex;
	align-items: center;
	gap: 7px;
	cursor: pointer;
	color: var(--vnj-navy);
}

.vnj-filter-item input[type="checkbox"] {
	accent-color: var(--vnj-blue);
	width: 17px;
	height: 17px;
	flex-shrink: 0;
}

.vnj-filter-item.is-child {
	padding-left: 22px;
}

.vnj-filter-empty {
	margin: 0;
	font-size: 0.85rem;
	color: var(--vnj-muted);
}

/* 大型検索ボタン */

.vnj-detail-submit-wrap {
	margin-top: 20px;
	text-align: center;
}

.vnj-detail-submit {
	min-width: 340px;
	border-radius: 8px;
	box-shadow: 0 4px 12px rgba(47, 107, 230, 0.35);
}

.vnj-detail-submit .vnj-icon {
	margin-right: 6px;
}

/* 相談CTA */

.vnj-search-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 20px;
	padding: 16px 20px;
	background: var(--vnj-bg);
	border: 1px dashed var(--vnj-gold);
	border-radius: 8px;
}

.vnj-search-cta-text {
	margin: 0;
	font-size: 0.9rem;
	color: var(--vnj-navy);
	flex: 1 1 320px;
}

/* =========================================================
   結果一覧（ツールバー・カード）
   ========================================================= */

.vnj-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin-bottom: 16px;
	padding: 12px 16px;
	background: var(--vnj-bg);
	border: 1px solid var(--vnj-border);
	border-radius: 8px;
}

.vnj-count {
	margin: 0;
	font-size: 0.95rem;
	color: var(--vnj-navy);
}

.vnj-count strong {
	font-size: 1.4rem;
	color: var(--vnj-blue);
	margin-right: 2px;
}

.vnj-toolbar-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	align-items: center;
}

.vnj-toolbar-set {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.88rem;
}

.vnj-toolbar-label {
	color: var(--vnj-muted);
}

.vnj-toolbar-link {
	/* 淡色背景(#F5F7FB)上でWCAG AA(4.5:1)を満たすよう濃いめのブルーを使用 */
	color: var(--vnj-blue-dark);
	text-decoration: none;
	padding: 3px 10px;
	border-radius: 999px;
	border: 1px solid transparent;
}

.vnj-toolbar-link:hover {
	text-decoration: underline;
	color: var(--vnj-navy);
}

.vnj-toolbar-link.is-active {
	background: var(--vnj-navy);
	color: var(--vnj-white);
	font-weight: 700;
}

/* ---------- 求人カード ---------- */

.vnj-cards {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.vnj-card {
	background: var(--vnj-white);
	border: 1px solid var(--vnj-border);
	border-radius: 8px;
	overflow: hidden;
	transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.vnj-card:hover {
	transform: translateY(-2px);
	border-color: var(--vnj-blue);
	box-shadow: 0 4px 16px rgba(27, 42, 74, 0.12);
}

.vnj-card-link {
	display: flex;
	gap: 16px;
	padding: 16px;
	color: inherit;
	text-decoration: none;
}

.vnj-card-thumb {
	flex: 0 0 180px;
	align-self: flex-start;
	border-radius: 6px;
	overflow: hidden;
	background: var(--vnj-bg);
}

.vnj-card-thumb img {
	display: block;
	width: 100%;
	height: 120px;
	object-fit: cover;
}

.vnj-card-thumb-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 120px;
	background: var(--vnj-navy);
	color: var(--vnj-gold);
	font-weight: 700;
	letter-spacing: 0.08em;
	font-size: 0.9rem;
}

.vnj-card-body {
	flex: 1;
	min-width: 0;
}

.vnj-card-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 4px;
}

.vnj-card-company {
	font-size: 0.85rem;
	color: var(--vnj-muted);
}

.vnj-badge {
	display: inline-block;
	padding: 1px 8px;
	border-radius: 4px;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.6;
}

.vnj-badge-new {
	background: var(--vnj-gold);
	color: var(--vnj-navy);
}

.vnj-badge-urgent {
	background: var(--vnj-navy);
	color: var(--vnj-gold);
}

.vnj-card-title {
	margin: 0 0 6px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--vnj-navy);
}

.vnj-card-link:hover .vnj-card-title {
	color: var(--vnj-blue);
	text-decoration: underline;
}

.vnj-card-catch {
	margin: 0 0 8px;
	font-size: 0.92rem;
	font-weight: 700;
	color: var(--vnj-blue);
}

.vnj-card-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 8px;
}

.vnj-tag {
	display: inline-block;
	padding: 1px 10px;
	border-radius: 999px;
	background: var(--vnj-bg);
	border: 1px solid var(--vnj-border);
	font-size: 0.78rem;
	color: var(--vnj-navy);
}

.vnj-tag-emp {
	background: var(--vnj-white);
	border-color: var(--vnj-blue);
	color: var(--vnj-blue);
	font-weight: 700;
}

.vnj-card-summary {
	margin: 0 0 10px;
	font-size: 0.9rem;
	color: var(--vnj-navy);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.vnj-card-salary {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding-top: 8px;
	border-top: 1px dashed var(--vnj-border);
}

.vnj-card-salary-label {
	font-size: 0.8rem;
	color: var(--vnj-muted);
}

.vnj-card-salary-value {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--vnj-blue);
}

.vnj-card-salary-note {
	font-size: 0.78rem;
	color: var(--vnj-muted);
}

.vnj-card-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	margin-top: 14px;
	padding: 8px 18px;
	background: var(--vnj-navy);
	color: var(--vnj-white);
	border-radius: 6px;
	font-size: 0.88rem;
	font-weight: 800;
	line-height: 1.4;
}

.vnj-card-link:hover .vnj-card-action {
	background: var(--vnj-blue);
}

/* ---------- 検索結果なし ---------- */

.vnj-empty {
	padding: 48px 24px;
	background: var(--vnj-bg);
	border: 1px dashed var(--vnj-border);
	border-radius: 8px;
	text-align: center;
	color: var(--vnj-navy);
}

.vnj-empty p {
	margin: 0 0 16px;
}

/* ---------- ページネーション ---------- */

.vnj-main .pagination,
.vnj-main .navigation {
	margin-top: 24px;
}

.vnj-main .nav-links {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 6px;
}

.vnj-main .page-numbers {
	display: inline-block;
	min-width: 40px;
	padding: 8px 12px;
	border: 1px solid var(--vnj-border);
	border-radius: 6px;
	background: var(--vnj-white);
	color: var(--vnj-blue);
	text-align: center;
	text-decoration: none;
	font-size: 0.9rem;
}

.vnj-main .page-numbers:hover {
	border-color: var(--vnj-blue);
}

.vnj-main .page-numbers.current {
	background: var(--vnj-navy);
	border-color: var(--vnj-navy);
	color: var(--vnj-white);
	font-weight: 700;
}

.vnj-main .page-numbers.dots {
	border: none;
	background: transparent;
	color: var(--vnj-muted);
}

/* ---------- 許可番号表記 ---------- */

.vnj-license {
	margin-top: 32px;
	font-size: 0.8rem;
	color: var(--vnj-muted);
	text-align: right;
}

/* ---------- 求人詳細 ---------- */

.vnj-single {
	max-width: 860px;
}

.vnj-breadcrumb {
	margin-bottom: 16px;
	font-size: 0.85rem;
	color: var(--vnj-muted);
}

.vnj-breadcrumb a {
	color: var(--vnj-blue);
	text-decoration: none;
}

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

.vnj-breadcrumb-sep {
	margin: 0 6px;
}

.vnj-single-header {
	margin-bottom: 20px;
	padding-bottom: 16px;
	border-bottom: 3px solid var(--vnj-navy);
}

.vnj-single-title {
	margin: 4px 0 8px;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--vnj-navy);
}

.vnj-single-catch {
	margin: 0;
	font-size: 1.02rem;
	font-weight: 700;
	color: var(--vnj-blue);
}

.vnj-single-thumb {
	margin-bottom: 24px;
	border-radius: 8px;
	overflow: hidden;
}

.vnj-single-thumb img {
	display: block;
	width: 100%;
	height: auto;
}

.vnj-single-section {
	margin-bottom: 32px;
}

.vnj-single-heading {
	margin: 0 0 12px;
	padding: 8px 14px;
	background: var(--vnj-navy);
	color: var(--vnj-white);
	font-size: 1.1rem;
	font-weight: 700;
	border-radius: 6px;
	border-left: 6px solid var(--vnj-gold);
}

.vnj-spec-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}

.vnj-spec-table th,
.vnj-spec-table td {
	padding: 12px 14px;
	border: 1px solid var(--vnj-border);
	text-align: left;
	vertical-align: top;
}

.vnj-spec-table th {
	width: 160px;
	background: var(--vnj-bg);
	color: var(--vnj-navy);
	font-weight: 700;
	white-space: nowrap;
}

.vnj-spec-salary {
	font-weight: 700;
	color: var(--vnj-blue);
	margin-right: 8px;
}

.vnj-spec-salary-note {
	font-size: 0.85rem;
	color: var(--vnj-muted);
}

.vnj-single-content {
	font-size: 0.98rem;
}

.vnj-single-content h2,
.vnj-single-content h3 {
	color: var(--vnj-navy);
	margin: 1.6em 0 0.6em;
	line-height: 1.5;
}

.vnj-single-content h2 {
	font-size: 1.2rem;
	padding-left: 10px;
	border-left: 4px solid var(--vnj-gold);
}

.vnj-single-content h3 {
	font-size: 1.05rem;
}

.vnj-single-content ul {
	padding-left: 1.4em;
}

.vnj-single-cta {
	padding: 28px 24px;
	background: var(--vnj-navy);
	border-radius: 8px;
	text-align: center;
	color: var(--vnj-white);
}

.vnj-single-cta-title {
	margin: 0 0 8px;
	font-size: 1.25rem;
	color: var(--vnj-white);
}

.vnj-single-cta-text {
	margin: 0 0 16px;
	font-size: 0.92rem;
	color: #D8DFEC;
}

.vnj-single-cta-back {
	display: block;
	margin-top: 14px;
	font-size: 0.88rem;
	color: #A9BBDD;
	text-decoration: underline;
}

.vnj-single-cta-back:hover {
	color: var(--vnj-white);
}

/* ---------- 掲載終了 ---------- */

.vnj-expired-notice {
	padding: 48px 24px;
	background: var(--vnj-bg);
	border: 1px solid var(--vnj-border);
	border-radius: 8px;
	text-align: center;
}

.vnj-expired-title {
	margin: 0 0 12px;
	font-size: 1.4rem;
	color: var(--vnj-navy);
}

.vnj-expired-actions {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 20px;
}

/* =========================================================
   レスポンシブ
   ========================================================= */

@media (max-width: 900px) {

	.vnj-finder-hero {
		grid-template-columns: 1fr;
	}

	.vnj-detail-row {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.vnj-filter-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* 折り返し時に「×」区切りが行頭・行末に孤立するのを防ぐ */
	.vnj-quick-x {
		display: none;
	}
}

@media (max-width: 600px) {

	.vnj-container {
		padding: 18px 12px 56px;
	}

	.vnj-page-title {
		font-size: 1.65rem;
	}

	.vnj-finder-copy .vnj-page-intro {
		text-align: left;
	}

	.vnj-finder-hero {
		padding: 20px 16px;
	}

	.vnj-finder-stats {
		grid-template-columns: 1fr;
	}

	.vnj-finder-stat {
		min-height: 0;
		text-align: left;
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		gap: 12px;
	}

	.vnj-steps {
		grid-template-columns: 1fr;
	}

	.vnj-step {
		justify-content: flex-start;
	}

	.vnj-search-hero {
		padding: 20px 14px 22px;
	}

	.vnj-quick-form {
		flex-direction: column;
		align-items: stretch;
		flex-wrap: nowrap;
	}

	.vnj-quick-field {
		justify-content: space-between;
	}

	.vnj-quick-select {
		flex: 1;
		min-width: 0;
		max-width: 100%;
	}

	.vnj-detail-panel {
		padding: 8px 16px 4px;
	}

	.vnj-advanced-summary {
		align-items: flex-start;
	}

	.vnj-filter-list {
		grid-template-columns: 1fr;
	}

	.vnj-detail-submit {
		min-width: 0;
		width: 100%;
	}

	.vnj-card-link {
		flex-direction: column;
		gap: 12px;
	}

	.vnj-card-thumb {
		flex: none;
		width: 100%;
	}

	.vnj-card-thumb img,
	.vnj-card-thumb-placeholder {
		height: 150px;
	}

	.vnj-toolbar {
		flex-direction: column;
		align-items: flex-start;
	}

	.vnj-spec-table th {
		width: 110px;
		white-space: normal;
	}

	.vnj-single-title {
		font-size: 1.3rem;
	}
}


/* === vianova-jobs 表示調整: サイト共通ダークテーマとの競合対策（.vnj-配下のみに作用） === */
.vnj-container{background:#FFFFFF !important;color:#1B2A4A !important;border-radius:12px;margin-top:24px;margin-bottom:48px;padding:32px 24px 48px !important;box-shadow:0 6px 24px rgba(0,0,0,.18);}
.vnj-container h1,.vnj-container h2,.vnj-container h3,.vnj-container p,.vnj-container li,.vnj-container th,.vnj-container td,.vnj-container span,.vnj-container label,.vnj-container strong{text-shadow:none !important;}
.vnj-page-title,.vnj-search-detail-title,.vnj-detail-label,.vnj-container .vnj-filter-item label,.vnj-card-title,.vnj-expired-title,.vnj-single-title,.vnj-count,.vnj-spec-table th,.vnj-spec-table td,.vnj-card-summary,.vnj-search-cta-text,.vnj-quick-label,.vnj-empty p,.vnj-single-content p,.vnj-single-content li,.vnj-single-content h2,.vnj-single-content h3{color:#1B2A4A !important;}
.vnj-page-title{border-bottom-color:#1B2A4A !important;}
.vnj-page-lead,.vnj-search-detail-lead,.vnj-detail-selected,.vnj-card-company,.vnj-toolbar-label,.vnj-card-salary-label,.vnj-card-salary-note,.vnj-license,.vnj-breadcrumb,.vnj-filter-empty,.vnj-spec-salary-note{color:#5A6B8C !important;}
.vnj-search-count{color:#1B2A4A !important;}
.vnj-search-count strong{color:#2F6BE6 !important;}
.vnj-card-catch,.vnj-single-catch,.vnj-card-salary-value,.vnj-spec-salary{color:#2F6BE6 !important;}
.vnj-container .vnj-btn-search{background:#2F6BE6 !important;color:#FFFFFF !important;border:none !important;}
.vnj-container .vnj-btn-search:hover{background:#2456BF !important;}
.vnj-container .vnj-btn-cta{background:#E0A23A !important;color:#1B2A4A !important;border:none !important;}
.vnj-container .vnj-btn-secondary{background:#FFFFFF !important;color:#2F6BE6 !important;border:1px solid #2F6BE6 !important;}
.vnj-container .vnj-btn-specify{background:#2F6BE6 !important;color:#FFFFFF !important;}
.vnj-container .vnj-detail-toggle[open] .vnj-btn-specify{background:#1B2A4A !important;}
.vnj-container select.vnj-select,.vnj-container .vnj-filter-keyword{background-color:#FFFFFF !important;color:#1B2A4A !important;border:1px solid #DDE3EE !important;box-shadow:none !important;}
.vnj-container select.vnj-select option{background:#FFFFFF;color:#1B2A4A;}
.vnj-search-hero-badge{background:#1B2A4A !important;color:#FFFFFF !important;}
.vnj-search-hero{background:#EDF2FB !important;}
.vnj-detail-panel{background:#FFFFFF !important;}
.vnj-single-heading{background:#1B2A4A !important;color:#FFFFFF !important;}
.vnj-single-cta{background:#1B2A4A !important;}
.vnj-single-cta-title{color:#FFFFFF !important;}
.vnj-single-cta-text{color:#D8DFEC !important;}
.vnj-single-cta-back{color:#A9BBDD !important;}
.vnj-toolbar{background:#F5F7FB !important;}
.vnj-toolbar-link{color:#2456BF !important;background:transparent !important;}
.vnj-toolbar-link.is-active{background:#1B2A4A !important;color:#FFFFFF !important;}
.vnj-container a.vnj-card-link{color:inherit !important;text-decoration:none !important;}
.vnj-card{background:#FFFFFF !important;}
.vnj-card-action{background:#1B2A4A !important;color:#FFFFFF !important;}
.vnj-card-link:hover .vnj-card-action{background:#2F6BE6 !important;color:#FFFFFF !important;}
.vnj-advanced-title{color:#1B2A4A !important;}
.vnj-advanced-lead{color:#5A6B8C !important;}
.vnj-step{color:#1B2A4A !important;background:#FFFFFF !important;}
.vnj-step span{background:#1B2A4A !important;color:#FFFFFF !important;}
.vnj-badge-new{background:#E0A23A !important;color:#1B2A4A !important;}
.vnj-badge-urgent{background:#1B2A4A !important;color:#E0A23A !important;}
.vnj-tag{color:#1B2A4A !important;background:#F5F7FB !important;}
.vnj-tag-emp{color:#2F6BE6 !important;background:#FFFFFF !important;border-color:#2F6BE6 !important;}
.vnj-detail-clear{color:#5A6B8C !important;background:#FFFFFF !important;}
.vnj-breadcrumb a{color:#2456BF !important;}
.vnj-filter-clear{color:#2456BF !important;}
.vnj-search-cta{background:#F5F7FB !important;}
.vnj-check-grid{background:#F5F7FB !important;}
.vnj-check-grid-open{background:transparent !important;}
.vnj-filter-item input[type="checkbox"]{accent-color:#2F6BE6 !important;width:17px !important;height:17px !important;opacity:1 !important;position:static !important;}
.vnj-main .page-numbers{color:#2456BF !important;background:#FFFFFF !important;}
.vnj-main .page-numbers.current{background:#1B2A4A !important;color:#FFFFFF !important;}
.vnj-empty{background:#F5F7FB !important;}
.vnj-expired-notice{background:#F5F7FB !important;}
.vnj-spec-table th{background:#F5F7FB !important;}
.vnj-card-thumb-placeholder{background:#1B2A4A !important;color:#E0A23A !important;}

@media (max-width:600px){
	.vnj-container{padding:18px 12px 56px !important;}
	.vnj-finder-stat{min-height:0 !important;}
}

/* ---------- SEO/LLMO追加要素（v1.3.0）---------- */

.vnj-page-intro {
	max-width: 860px;
	margin: 12px auto 20px;
	font-size: 0.9rem;
	text-align: center;
	color: #5A6B8C !important;
}

.vnj-seo-links {
	margin: 40px 0 0;
	padding: 24px;
	background: #F5F7FB !important;
	border: 1px solid #DDE3EE;
	border-radius: 10px;
}

.vnj-seo-heading {
	margin: 0 0 12px;
	font-size: 1.1rem;
	font-weight: 700;
	color: #1B2A4A !important;
	border-left: 4px solid #E0A23A;
	padding-left: 10px;
}

.vnj-seo-links .vnj-seo-heading + .vnj-seo-link-list {
	margin-bottom: 20px;
}

.vnj-seo-link-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 4px;
}

.vnj-seo-link-list li {
	margin: 0;
}

.vnj-seo-link-list a {
	display: inline-block;
	padding: 4px 10px;
	font-size: 0.85rem;
	color: #2F6BE6 !important;
	background: #FFFFFF !important;
	border: 1px solid #DDE3EE;
	border-radius: 999px;
	text-decoration: none;
}

.vnj-seo-link-list a:hover {
	border-color: #2F6BE6;
}

.vnj-seo-count {
	color: #5A6B8C !important;
	font-size: 0.8em;
}

.vnj-faq {
	margin: 32px 0 0;
}

.vnj-faq-item {
	margin: 0 0 8px;
	background: #FFFFFF !important;
	border: 1px solid #DDE3EE;
	border-radius: 8px;
	padding: 0;
}

.vnj-faq-q {
	cursor: pointer;
	padding: 12px 16px;
	font-weight: 700;
	font-size: 0.95rem;
	color: #1B2A4A !important;
	list-style-position: inside;
}

.vnj-faq-a {
	margin: 0;
	padding: 0 16px 14px 16px;
	font-size: 0.9rem;
	color: #1B2A4A !important;
}

/* ---------- 応募フォーム（v1.4.0） ---------- */

.vnj-apply {
	margin-top: 40px;
	padding: 28px 24px;
	background: var(--vnj-bg-hero);
	border: 1px solid var(--vnj-border);
	border-radius: 12px;
}

/* ハニーポット：スクリーンリーダーにも読ませない完全非表示 */
.vnj-hp {
	display: none !important;
}

.vnj-apply-lead {
	margin: 0 0 20px;
	color: var(--vnj-muted);
}

.vnj-apply-error {
	margin: 0 0 16px;
	padding: 12px 16px;
	background: #FDECEC;
	border: 1px solid #E5A0A0;
	border-radius: 8px;
	color: #A12525;
	font-weight: 600;
}

.vnj-apply-done {
	padding: 24px 20px;
	background: var(--vnj-white);
	border: 1px solid var(--vnj-border);
	border-radius: 10px;
	text-align: center;
}

.vnj-apply-done-title {
	margin: 0 0 8px;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--vnj-navy);
}

.vnj-apply-google {
	margin: 0 0 20px;
	padding: 16px;
	background: var(--vnj-white);
	border: 1px solid var(--vnj-border);
	border-radius: 10px;
}

.vnj-apply-google-lead {
	margin: 0 0 12px;
	font-size: 0.92rem;
}

.vnj-gsi-btn {
	min-height: 44px;
}

.vnj-apply-google-state {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	flex-wrap: wrap;
}

.vnj-apply-google-badge {
	display: inline-block;
	padding: 3px 10px;
	background: #E7F5EC;
	border: 1px solid #9BD3AE;
	border-radius: 999px;
	color: #1A7F37;
	font-size: 0.85rem;
	font-weight: 700;
}

.vnj-apply-google-clear {
	padding: 4px 12px;
	background: var(--vnj-white);
	border: 1px solid var(--vnj-border);
	border-radius: 6px;
	color: var(--vnj-muted);
	font-size: 0.85rem;
	cursor: pointer;
}

.vnj-apply-field {
	margin: 0 0 16px;
}

.vnj-apply-field label {
	display: block;
	margin-bottom: 6px;
	font-weight: 700;
	font-size: 0.95rem;
	color: var(--vnj-navy);
}

.vnj-req {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 8px;
	background: #C2410C;
	border-radius: 4px;
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
	vertical-align: 2px;
}

.vnj-apply-field input[type="text"],
.vnj-apply-field input[type="email"],
.vnj-apply-field input[type="tel"],
.vnj-apply-field select,
.vnj-apply-field textarea {
	width: 100%;
	max-width: 520px;
	padding: 10px 12px;
	background: var(--vnj-white);
	border: 1px solid var(--vnj-border);
	border-radius: 8px;
	font-size: 1rem;
	color: var(--vnj-navy);
	box-sizing: border-box;
}

.vnj-apply-field input:focus,
.vnj-apply-field select:focus,
.vnj-apply-field textarea:focus {
	outline: 2px solid var(--vnj-blue);
	outline-offset: 1px;
}

.vnj-apply-field input[readonly] {
	background: #F0F3F9;
	color: var(--vnj-muted);
}

.vnj-apply-privacy {
	margin: 20px 0 8px;
	font-weight: 600;
}

.vnj-apply-privacy a {
	color: var(--vnj-blue);
}

.vnj-apply-purpose {
	margin: 0 0 20px;
	font-size: 0.85rem;
	color: var(--vnj-muted);
}

.vnj-apply-submit-wrap {
	margin: 0;
	text-align: center;
}

.vnj-apply-submit {
	border: 0;
	cursor: pointer;
	font-family: inherit;
	width: 100%;
	max-width: 420px;
}

.vnj-apply-submit:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.vnj-apply-sending {
	margin: 12px 0 0;
	text-align: center;
	color: var(--vnj-muted);
}

.vnj-apply-note {
	margin: 8px 0 0;
	font-size: 0.85rem;
	color: var(--vnj-muted);
}

.vnj-apply-alt {
	margin: 16px 0 0;
	font-size: 0.9rem;
	color: var(--vnj-muted);
	text-align: center;
}

.vnj-single-cta-sub {
	padding: 20px 16px;
	text-align: center;
}

@media (max-width: 600px) {
	.vnj-apply {
		padding: 20px 14px;
	}
}

/* ---------- 上部応募CTA・モバイル固定CTA（v1.4.0） ---------- */

.vnj-single-apply-jump {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin: 16px 0 8px;
}

.vnj-single-apply-jump-note {
	font-size: 0.85rem;
	color: var(--vnj-muted);
}

/* アンカー移動時にフォーム先頭が固定ヘッダーで隠れないようにする */
.vnj-apply {
	scroll-margin-top: 96px;
}

/* 固定CTAはモバイル（768px以下）のみ表示 */
.vnj-sticky-cta {
	display: none;
}

@media (max-width: 768px) {
	.vnj-sticky-cta {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9999;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, 0.96);
		border-top: 1px solid var(--vnj-border);
		box-shadow: 0 -4px 12px rgba(27, 42, 74, 0.08);
		text-align: center;
	}

	.vnj-sticky-cta .vnj-btn {
		display: block;
		margin: 0 auto;
		max-width: 420px;
	}

	.vnj-sticky-cta.vnj-sticky-hidden {
		display: none;
	}

	/* 固定CTAでコンテンツ最下部が隠れないよう下余白を確保
	   （JSが .vnj-has-sticky を付与。:has はJS無効環境のフォールバック。
	     :has非対応ブラウザでリスト全体が無効化されないよう、ルールは分割して書く） */
	/* 既存のテーマ競合対策ルール（.vnj-container の padding !important）より優先させる */
	.vnj-container.vnj-has-sticky {
		padding-bottom: 110px !important;
	}

	.vnj-container:has(.vnj-sticky-cta) {
		padding-bottom: 110px !important;
	}
}

/* =========================================================
   v1.4.3 視認性・可読性・応募フォーム改善
   （既存のテーマ競合対策ブロックより後段に置き、!important で確実に上書き）
   ========================================================= */

/* ---------- 求人原稿（職務詳細）の可読性：改行・段落に余白を持たせる ---------- */
.vnj-container .vnj-single-content {
	font-size: 1rem !important;
	line-height: 1.95 !important;
}
.vnj-container .vnj-single-content p {
	margin: 0 0 1.2em !important;
	line-height: 1.95 !important;
}
.vnj-container .vnj-single-content p:last-child {
	margin-bottom: 0 !important;
}
/* 本文中の中見出し（仕事内容／応募資格 等）を帯で区切り、原稿のブロックを一目で把握できるようにする */
.vnj-container .vnj-single-content h2 {
	margin: 2.2em 0 0.75em !important;
	padding: 8px 14px !important;
	background: #F1F5FC !important;
	border-left: 5px solid #E0A23A !important;
	border-radius: 0 6px 6px 0 !important;
	font-size: 1.15rem !important;
	line-height: 1.5 !important;
}
.vnj-container .vnj-single-content h2:first-child {
	margin-top: 0.4em !important;
}
.vnj-container .vnj-single-content h3 {
	margin: 1.7em 0 0.5em !important;
}
.vnj-container .vnj-single-content ul {
	margin: 0 0 1.2em !important;
	padding-left: 1.4em !important;
}
.vnj-container .vnj-single-content ul li {
	margin-bottom: 0.4em !important;
}
/* 仕様テーブルも行間・区切りを見やすく */
.vnj-container .vnj-spec-table th,
.vnj-container .vnj-spec-table td {
	line-height: 1.75 !important;
}

/* ---------- 一覧カードの可読性 ---------- */
.vnj-container .vnj-card-title {
	line-height: 1.55 !important;
}
.vnj-container .vnj-card-summary {
	line-height: 1.8 !important;
}

/* ---------- 応募フォーム：色合い・視認性の改善（v1.4.4） ----------
   注意: サイト全体に効くWPCode「readability-fix」ブロックが
   `html body:not(.home) .vnj-single-section{background:#FFF!important}` /
   `html body:not(.home) .vnj-container *{color:#1B2A45!important}`（詳細度0,2,2）
   でプラグインCSSを上書きしてくる。これに確実に勝つため、応募フォーム系の
   上書きは `html body:not(.home) .vnj-container …`（詳細度0,3,2）で記述する。 */

/* パネルを淡いブルーの面にして、白い入力欄をはっきり浮かせる（白セクション化に勝つ） */
html body:not(.home) .vnj-container .vnj-apply {
	background: #EDF2FB !important;
	border: 1px solid #C7D3E8 !important;
	border-radius: 12px !important;
}
html body:not(.home) .vnj-container .vnj-apply-lead {
	color: #3A4763 !important;
}
html body:not(.home) .vnj-container .vnj-apply-field label,
html body:not(.home) .vnj-container .vnj-apply-privacy label {
	color: #1B2A4A !important;
	font-weight: 700 !important;
}
/* 入力欄：白背景でも境界がはっきり分かる濃さの枠線＋わずかな影 */
html body:not(.home) .vnj-container .vnj-apply-field input[type="text"],
html body:not(.home) .vnj-container .vnj-apply-field input[type="email"],
html body:not(.home) .vnj-container .vnj-apply-field input[type="tel"],
html body:not(.home) .vnj-container .vnj-apply-field select,
html body:not(.home) .vnj-container .vnj-apply-field textarea {
	background: #FFFFFF !important;
	color: #1B2A4A !important;
	border: 1.5px solid #9DB0D0 !important;
	border-radius: 8px !important;
	box-shadow: 0 1px 2px rgba(27, 42, 74, 0.05) !important;
}
html body:not(.home) .vnj-container .vnj-apply-field input::placeholder,
html body:not(.home) .vnj-container .vnj-apply-field textarea::placeholder {
	color: #8A97AE !important;
	opacity: 1 !important;
}
html body:not(.home) .vnj-container .vnj-apply-field input:focus,
html body:not(.home) .vnj-container .vnj-apply-field select:focus,
html body:not(.home) .vnj-container .vnj-apply-field textarea:focus {
	border-color: #2F6BE6 !important;
	outline: 2px solid #2F6BE6 !important;
	outline-offset: 1px !important;
}
/* 同意チェックボックスを確実に表示（テーマ側で潰されないように） */
html body:not(.home) .vnj-container .vnj-apply-privacy input[type="checkbox"] {
	width: 18px !important;
	height: 18px !important;
	accent-color: #2F6BE6 !important;
	position: static !important;
	opacity: 1 !important;
	vertical-align: -3px !important;
	flex-shrink: 0 !important;
}
/* 「必須」バッジ：白文字＋コントラストを確保した赤（`.vnj-container *` の濃紺上書きに勝つ） */
html body:not(.home) .vnj-container .vnj-req {
	background: #C0392B !important;
	color: #FFFFFF !important;
}
