/* 求人Pro - front */
.sr-recruit { margin: 1.5em 0; }
.sr-job { margin: 0 0 3em; padding: 0 0 2em; border-bottom: 3px solid #eef1f5; }
.sr-job:last-child { border-bottom: none; }
.sr-job-title { font-size: 1.5em; margin: 0 0 .5em; color: #1f4e79; }
.sr-job-desc { margin: 0 0 1.2em; line-height: 1.8; }

.sr-details { margin: 1.5em 0; }
.sr-details-title,
.sr-form-title { font-size: 1.2em; margin: 0 0 .6em; padding-bottom: .3em; border-bottom: 2px solid #1f4e79; }
.sr-details-table { width: 100%; border-collapse: collapse; }
.sr-details-table th,
.sr-details-table td { border: 1px solid #d9d9d9; padding: .6em .8em; text-align: left; vertical-align: top; font-size: .95em; }
.sr-details-table th { width: 30%; background: #f2f6fb; font-weight: 600; }
.sr-details-table tr.sr-details-heading th { background: #1f4e79; color: #fff; width: auto; }

.sr-form-wrap { margin: 2em 0 0; padding: 1.5em; background: #f7f9fc; border: 1px solid #e1e7ef; border-radius: 8px; }
.sr-form .sr-field { margin: 0 0 1.1em; }
.sr-form .sr-field label { display: block; font-weight: 600; margin-bottom: .35em; }
.sr-form input[type=text],
.sr-form input[type=email],
.sr-form input[type=tel],
.sr-form textarea { width: 100%; padding: .7em .75em; border: 1px solid #c4ccd6; border-radius: 6px; font-size: 16px; box-sizing: border-box; background: #fff; }
.sr-form input[readonly] { background: #eef1f5; color: #555; }
.sr-form .sr-req { display: inline-block; margin-left: .4em; padding: .1em .5em; font-size: .72em; color: #fff; background: #c0392b; border-radius: 3px; vertical-align: middle; }
.sr-consent label { font-weight: normal; }
.sr-consent input { margin-right: .4em; }

.sr-submit { margin: 1.4em 0 0; text-align: center; }
.sr-btn { display: inline-block; width: 100%; max-width: 320px; padding: .85em 2em; font-size: 1.05em; font-weight: 600; color: #fff; background: #1f4e79; border: none; border-radius: 6px; cursor: pointer; transition: background .15s; }
.sr-btn:hover { background: #2e75b6; }
.sr-btn[disabled] { opacity: .6; cursor: default; }

.sr-notice { margin: 0 0 1.2em; padding: .9em 1.1em; border-radius: 6px; font-size: .95em; }
.sr-notice.sr-ok { background: #e6f4ea; border: 1px solid #9cc1a8; color: #1e6b34; }
.sr-notice.sr-err { background: #fdecec; border: 1px solid #e3a6a6; color: #a3322a; }
.sr-notice ul { margin: .5em 0 0 1.2em; }
.sr-closed { padding: 1em; text-align: center; color: #777; background: #f0f0f0; border-radius: 6px; }

.sr-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* 送信前の確認画面 */
.sr-confirm { margin-top: .5em; }
.sr-confirm-title { font-size: 1.1em; font-weight: 700; margin: 0 0 .3em; padding-bottom: .3em; border-bottom: 2px solid #1f4e79; }
.sr-confirm-note { font-size: .9em; color: #666; margin: 0 0 1em; }
.sr-confirm-list { margin: 0 0 1.4em; border: 1px solid #d9d9d9; border-radius: 6px; overflow: hidden; background: #fff; }
.sr-confirm-list dt { padding: .55em .8em .1em; font-size: .8em; font-weight: 600; color: #667; background: #f6f8fb; border-top: 1px solid #e5e9ef; }
.sr-confirm-list dt:first-child { border-top: none; }
.sr-confirm-list dd { margin: 0; padding: .1em .8em .6em; background: #f6f8fb; white-space: pre-wrap; word-break: break-word; }
.sr-confirm-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin: 0; }
.sr-confirm-actions .sr-btn { width: auto; min-width: 180px; }
.sr-btn-back { background: #8a94a3 !important; }

.sr-apply-cta { margin: 1em 0 0; }
.sr-apply-link { display: inline-block; padding: .5em 1.2em; font-weight: 600; color: #1f4e79; background: #e8f0f9; border-radius: 6px; text-decoration: none; }
.sr-apply-link:hover { background: #d5e6f6; }
.sr-form select { width: 100%; padding: .7em .75em; border: 1px solid #c4ccd6; border-radius: 6px; font-size: 16px; box-sizing: border-box; background: #fff; }
.sr-form .sr-postal { max-width: 200px; }
.sr-form .sr-choices label { display: inline-block; margin: 0 16px 4px 0; font-weight: normal; }

.sr-list { list-style: none; margin: 1.5em 0; padding: 0; }
.sr-list-item { padding: .7em .2em; border-bottom: 1px solid #e5e5e5; }
.sr-list-badge { display: inline-block; margin-left: .5em; padding: .1em .6em; font-size: .78em; color: #1f4e79; background: #e8f0f9; border-radius: 3px; }
.sr-empty { color: #777; }

@media (max-width: 600px) {
	.sr-form-wrap { padding: 1.1em; }
	.sr-details-table th { width: 38%; }
	.sr-job-title { font-size: 1.3em; }
}

/* 別ページ応募ボタン（[recruit_details apply_url=""]） */
.sr-apply-wrap { text-align: center; margin: 1.4em 0 2em; }
.sr-apply-btn { display: inline-block; width: auto; min-width: 260px; text-align: center; text-decoration: none; padding: .9em 2em; border-radius: 6px; color: #fff; }
.sr-apply-btn:hover { color: #fff; }

/* ============================================================
   v2.20.0 スタイリッシュ表示（アコーディオン／募集要項）
   業種を選ばない中立的なデザイン。配色はメインカラー設定に追従。
   ============================================================ */

/* ---- 共通：アコーディオン見出し ---- */
/* テーマ側の h2 装飾（余白・行間・下線など）を打ち消すため、指定を強めにしています */
/* 求人どうしは必ず 10px あける（テーマの余白指定に負けないよう !important で固定） */
.sr-recruit.sr-recruit-acc .sr-job.sr-acc {
	margin: 0 !important; padding: 0 !important; background: #fff !important;
	border-radius: 10px !important; overflow: hidden !important;
	border-bottom-width: 1px;
}
.sr-recruit.sr-recruit-acc .sr-job.sr-acc + .sr-job.sr-acc { margin-top: 10px !important; }
.sr-recruit .sr-job-title.sr-acc-title,
.sr-recruit-acc .sr-job-title.sr-acc-title {
	margin: 0 !important; padding: 0 !important; border: none !important;
	font-size: 1.08em; line-height: 1.4 !important;
	background: none !important; box-shadow: none !important; text-align: left;
}
.sr-recruit .sr-job-title.sr-acc-title::before,
.sr-recruit .sr-job-title.sr-acc-title::after { content: none !important; }
.sr-recruit-acc .sr-acc-btn {
	display: flex !important; align-items: center; gap: 12px;
	box-sizing: border-box; width: 100% !important; margin: 0 !important;
	padding: 13px 18px !important; min-height: 0 !important;
	font: inherit; font-weight: 700; line-height: 1.4 !important;
	text-align: left; color: inherit;
	background: transparent; border: none !important; border-radius: 0; cursor: pointer;
	box-shadow: none !important;
	-webkit-appearance: none; appearance: none;
	transition: background-color .2s ease;
}
.sr-acc-label { flex: 1 1 auto; line-height: 1.4; }
.sr-acc-btn:focus-visible { outline: 2px solid currentColor; outline-offset: -3px; }

/* 見出し先頭のマーカー */
.sr-recruit-acc .sr-acc-marker {
	flex: 0 0 auto;
	display: inline-flex !important; align-items: center; justify-content: center;
	box-sizing: border-box;
	min-width: 2.3em; padding: .42em .5em !important; margin: 0 !important;
	font-size: .72em !important; font-weight: 700; letter-spacing: .04em; line-height: 1 !important;
	color: currentColor; opacity: .85;
}
.sr-accst-card .sr-acc-marker,
.sr-accst-line .sr-acc-marker {
	border-radius: 999px !important;
	background: rgba(0, 0, 0, .05) !important;
}

/* 開閉アイコン（細い矢印） */
.sr-acc-icon { flex: 0 0 auto; width: 14px; height: 14px; position: relative; }
.sr-acc-icon::before {
	content: ""; position: absolute; top: 1px; left: 1px;
	width: 9px; height: 9px;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: rotate(45deg); transform-origin: center;
	transition: transform .28s cubic-bezier(.4, 0, .2, 1);
}
.sr-acc.is-open .sr-acc-icon::before { transform: rotate(-135deg); }

/* 開閉パネル */
.sr-acc-panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .32s cubic-bezier(.4, 0, .2, 1); }
.sr-acc.is-open .sr-acc-panel { grid-template-rows: 1fr; }
.sr-acc-inner { overflow: hidden; min-height: 0; }
.sr-acc-body { padding: 2px 18px 20px; }
.sr-acc-body .sr-job-desc { margin-top: 0; }

/* ---- スタイルA：カード ---- */
.sr-recruit.sr-accst-card .sr-job.sr-acc {
	border: 1px solid #e3e6ea !important; border-radius: 12px !important;
	overflow: hidden;
	/* 常時の薄いシャドウ（白背景のサイトでもカードが浮いて見えるように） */
	box-shadow: 0 1px 3px rgba(20, 30, 45, .06), 0 1px 2px rgba(20, 30, 45, .05) !important;
	transition: box-shadow .2s ease, border-color .2s ease;
}
.sr-recruit.sr-accst-card .sr-job.sr-acc:hover { border-color: #d2d7de !important; box-shadow: 0 2px 12px rgba(20, 30, 45, .09) !important; }
.sr-recruit.sr-accst-card .sr-acc.is-open { box-shadow: 0 3px 16px rgba(20, 30, 45, .10) !important; }
.sr-accst-card .sr-acc-btn:hover { background: rgba(0, 0, 0, .02); }

/* ---- スタイルB：ライン（罫線のみ） ---- */
.sr-accst-line .sr-job.sr-acc { margin: 0; border: none; border-bottom: 1px solid #e3e6ea; border-radius: 10px; }
.sr-accst-line .sr-job.sr-acc:first-child { border-top: none; }
.sr-accst-filled .sr-job.sr-acc { border: none; }
.sr-accst-line .sr-acc-btn { padding-left: 4px; padding-right: 4px; }
.sr-accst-line .sr-acc-btn:hover { background: rgba(0, 0, 0, .015); }
.sr-accst-line .sr-acc-body { padding-left: 4px; padding-right: 4px; }

/* ---- スタイルC：ベタ塗り（見出しに色。色は color_css 側で上書き） ---- */
.sr-accst-filled .sr-job.sr-acc { margin: 0; border-radius: 10px; overflow: hidden; }
.sr-accst-filled .sr-acc-btn { background: #f3f5f7; }
.sr-accst-filled .sr-acc-btn:hover { filter: brightness(.97); }
.sr-accst-filled .sr-acc-marker { background: rgba(255, 255, 255, .28); }
.sr-accst-filled .sr-acc-body { padding-top: 14px; border: 1px solid #e9ecf0; border-top: none; border-radius: 0 0 10px 10px; }

/* ---- 募集要項テーブル（共通の磨き込み） ---- */
.sr-details-title {
	display: flex; align-items: center; gap: 10px;
	margin: 22px 0 12px; padding: 0 0 8px;
	font-size: 1.05em; letter-spacing: .02em;
	border-bottom: 2px solid currentColor;
}
.sr-details-table { width: 100%; border-collapse: collapse; }
.sr-details-table th,
.sr-details-table td { padding: 13px 16px; text-align: left; vertical-align: top; line-height: 1.7; border-bottom: 1px solid #eceff2; }
/* 最終行にも罫線を残して表を閉じる（見切れ防止） */
.sr-details-table { border-bottom: 1px solid #eceff2; }
.sr-details-table th { width: 30%; min-width: 6.5em; font-weight: 700; color: #4a5460; background: #fafbfc; }
.sr-details-table td { background: transparent; }
.sr-details-table tr.sr-details-heading th {
	width: auto; color: #fff; font-size: .95em; letter-spacing: .04em; padding: 9px 16px;
}

/* ---- 募集要項：積み上げ表示 ---- */
.sr-dst-stack .sr-details-table,
.sr-dst-stack .sr-details-table tbody,
.sr-dst-stack .sr-details-table tr,
.sr-dst-stack .sr-details-table th,
.sr-dst-stack .sr-details-table td { display: block; width: auto; }
.sr-dst-stack .sr-details-table tr { padding: 12px 0; border-bottom: 1px solid #eceff2; }
.sr-dst-stack .sr-details-table tr:last-child { border-bottom: 1px solid #eceff2; }
.sr-dst-stack .sr-details-table th {
	padding: 0 0 5px; background: transparent;
	font-size: .86em; letter-spacing: .06em; color: #6b7480;
}
.sr-dst-stack .sr-details-table td { padding: 0; }
.sr-dst-stack .sr-details-table tr.sr-details-heading { padding: 0; border-bottom: none; }
.sr-dst-stack .sr-details-table tr.sr-details-heading th { padding: 8px 14px; margin: 14px 0 6px; border-radius: 6px; font-size: .9em; }

/* ---- 応募ボタン（CTA） ---- */
.sr-apply-cta { margin: 18px 0 0; }
.sr-apply-link {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 10px 20px; border-radius: 999px;
	font-weight: 700; text-decoration: none;
	border: 2px solid currentColor;
	transition: background-color .2s ease, color .2s ease, transform .15s ease;
}
.sr-apply-link:hover { transform: translateY(-1px); }

/* ---- スマホ ---- */
@media (max-width: 640px) {
	.sr-recruit-acc .sr-acc-btn { padding: 12px 14px !important; gap: 9px; }
	.sr-acc-body { padding: 2px 14px 16px; }
	.sr-accst-line .sr-acc-btn,
	.sr-accst-line .sr-acc-body { padding-left: 2px; padding-right: 2px; }
	/* 表形式（table）：スマホでは縦積みカード化し、項目名に薄い背景・余白・大きめ文字で見やすく */
	.sr-dst-table .sr-details-table,
	.sr-dst-table .sr-details-table tbody,
	.sr-dst-table .sr-details-table tr,
	.sr-dst-table .sr-details-table th,
	.sr-dst-table .sr-details-table td { display: block; width: auto; }
	.sr-dst-table .sr-details-table { border-bottom: none; }
	.sr-dst-table .sr-details-table tr {
		margin: 0 0 12px; padding: 0;
		background: #fff; border: 1px solid #dde6f1; border-radius: 10px;
		overflow: hidden; box-shadow: 0 1px 3px rgba(31,78,121,.06);
	}
	.sr-dst-table .sr-details-table tr:last-child { margin-bottom: 0; }
	.sr-dst-table .sr-details-table th {
		background: #eef4fb; color: #1f4e79;
		font-size: 1em; font-weight: 700; letter-spacing: .02em;
		padding: 12px 16px; border: none; border-bottom: 1px solid #dde6f1;
	}
	.sr-dst-table .sr-details-table td {
		background: #fff; color: #1e2a38;
		font-size: 1.02em; line-height: 1.9;
		padding: 13px 16px; border: none;
	}
	/* セクション見出し行：カード枠は付けず、背景色は配色設定(color_main)を尊重 */
	.sr-dst-table .sr-details-table tr.sr-details-heading {
		margin: 14px 0 8px; background: transparent; border: none; box-shadow: none; overflow: visible;
	}
	.sr-dst-table .sr-details-table tr.sr-details-heading th {
		padding: 10px 14px; border: none; border-radius: 6px; color: #fff; font-size: 1em;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sr-acc-panel, .sr-acc-icon::before, .sr-apply-link, .sr-job.sr-acc { transition: none; }
}
