/* ============================================================
 * 採用ページ（/recruit/）専用スタイル
 * 方針（2026-09-15 style-alignment-spec.md → 2026-09-16 fix-round3-spec.md）:
 *   セクション枠・h2見出し（ttl-01）・本文段落・表のth はテーマ継承のまま。
 *   6ブロック（導入／3つのこと／仕事内容／1日の流れ／代表メッセージ／
 *   募集要項td）は fix-round3-spec.md 指定のHTML/CSSをそのまま実装する。
 * クラス接頭辞: rc- ／ ブレークポイント: 767px・1080px の2つだけ
 * ============================================================ */

/* ── ystandard-blocks 補完（ブロックを使わないページでも英字ラベルを出す） ── */
.page-recruit .ystdb-heading{position:relative}
.page-recruit .ystdb-heading .ystdb-heading__text.is-clear-style{position:relative;margin:0;padding:0;border:0;background:none;box-shadow:none}
.page-recruit .ystdb-heading__container p{margin:0}
.page-recruit .ystdb-heading__subtext{display:block;line-height:1.2}
.page-recruit .ystdb-heading__subtext:before{content:attr(data-text);speak:none}

:root {
	--rc-navy: #2c4768;
	--rc-light: #81adcd;
	--rc-green: #06c755;
	--rc-ink: #333;
	--rc-mute: #606060;
	--rc-paper: #fff;
	--rc-mist: #e7eef0;
	--rc-line: #dfe5ea;
	/* 09 応募（未変更ブロック）で使い続ける旧変数 */
	--rc-text-mute: #606060;
	--rc-border: #dde3e8;
	--rc-card-bg: #ffffff;
	--rc-radius: 4px;
}

/* ============================================================
 * ① 導入: 左＝タイトル＋リード／右＝縦積みボタン3本（fix-round3-spec.md ①）
 * ============================================================ */
.rc-intro{padding-top:96px}
.rc-intro__grid{display:grid;grid-template-columns:1fr 340px;gap:64px;align-items:center}
.rc-intro__label{margin:0 0 8px;color:var(--rc-light);letter-spacing:.08em}
#recruit-intro .rc-intro__copy{
	/* 外部プラグインCSSのh2既定marginに詳細度で勝つため #recruit-intro を付ける（round2で判明した既知の問題） */
	margin:0 0 20px;
}
.rc-intro__lead{margin:0;max-width:34em}
.rc-intro__cta{display:flex;flex-direction:column;gap:12px}
.rc-btn{display:flex;flex-direction:column;justify-content:center;position:relative;min-height:76px;padding:14px 56px 14px 24px;border-radius:6px;text-decoration:none;line-height:1.3;transition:transform .15s}
.rc-btn:hover{transform:translateY(-2px)}
.rc-btn::after{content:"";position:absolute;right:22px;top:50%;width:10px;height:10px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:translateY(-50%) rotate(45deg)}
.rc-btn__main{font-size:18px;font-weight:700}
.rc-btn__sub{margin-top:3px;font-family:"Noto Sans JP",sans-serif;font-size:11px;font-weight:700;letter-spacing:.18em;opacity:.75}
.rc-btn--navy{background:var(--rc-navy);color:#fff}
.rc-btn--line{background:var(--rc-green);color:#fff}
.rc-btn--outline{background:var(--rc-paper);color:var(--rc-navy);border:2px solid var(--rc-navy)}
.rc-btn--outline .rc-btn__main{font-family:"Noto Sans JP",sans-serif;font-size:22px;letter-spacing:.04em}
@media screen and (max-width:1080px){.rc-intro__grid{grid-template-columns:1fr 300px;gap:40px}}
@media screen and (max-width:767px){.rc-intro{padding-top:40px}.rc-intro__grid{grid-template-columns:1fr;gap:28px}.rc-btn{min-height:64px}}

/* ============================================================
 * ② 3つのこと: 写真＋大きな番号＋1行タイトル＋本文（fix-round3-spec.md ②）
 * ============================================================ */
/* minmax(0,1fr): 見出しの長さで列幅が変わらないよう、3列を常に等幅にする */
.rc-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px}
.rc-point__visual{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:8px;background:var(--rc-mist)}
/* 枠（4:3）いっぱいに敷く。テーマの .page-default img{height:auto}（同じ詳細度・後読み）に負けないよう .rc-points を重ねる */
.rc-points .rc-point__visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.rc-point__visual::after{content:"";position:absolute;left:-1px;bottom:-1px;width:48px;height:48px;border-left:4px solid var(--rc-light);border-bottom:4px solid var(--rc-light)}
.rc-point__body{padding:18px 4px 0}
.rc-point__num{display:inline-flex;align-items:baseline;gap:10px;font-family:"Noto Sans JP",sans-serif;font-size:44px;font-weight:700;line-height:1;color:var(--rc-navy);letter-spacing:.02em;margin-bottom:10px}
.rc-point__num span{font-size:11px;letter-spacing:.3em;color:var(--rc-light)}
.rc-points .rc-point__title{
	/* 外部プラグインCSSのh3既定marginに詳細度で勝つため .rc-points を付ける（round2で判明した既知の問題） */
	margin:0 0 10px;font-size:20px;line-height:1.4;color:var(--rc-navy);white-space:nowrap;
}
.rc-point__text{margin:0;font-size:15px;line-height:1.9;font-weight:500;color:#4a4a4a}
/* タブレット幅では列が狭く1行に収まらないため折り返す（上の .rc-points .rc-point__title と同じ詳細度で上書き。文字サイズは表示中の20pxのまま） */
@media screen and (max-width:1080px){.rc-points .rc-point__title{white-space:normal}}
/* 折り返すときは文節の切れ目で（「未経験からでも／大丈夫」）。文節が列より長いときだけ文節の中で折り返す */
.rc-point__phrase{display:inline-block}
@media screen and (max-width:767px){.rc-points{grid-template-columns:1fr;gap:32px}}

/* ============================================================
 * ③ 仕事内容: リストの四角マーカー・施工実績写真（fix-round3-spec.md ③）
 * ============================================================ */
.rc-list{list-style:none;margin:16px 0 20px;padding:0}
.rc-list li{position:relative;padding-left:20px;margin:0 0 6px;line-height:1.9}
.rc-list li::before{content:"";position:absolute;left:0;top:.75em;width:8px;height:8px;background:var(--rc-light);border-radius:2px}
.rc-work__grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.rc-work__photos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rc-work__photos .is-main{grid-column:1/3;aspect-ratio:4/3}
.rc-work__photos figure{margin:0;border-radius:8px;overflow:hidden;aspect-ratio:3/2;background:var(--rc-mist)}
.rc-work__photos img{width:100%;height:100%;object-fit:cover;display:block}
@media screen and (max-width:767px){.rc-work__grid{grid-template-columns:1fr;gap:24px}}

/* ============================================================
 * ④ 1日の流れ: 時刻を線の左に出すタイムライン（fix-round3-spec.md ④）
 * ============================================================ */
.rc-day{display:grid;grid-template-columns:1fr 380px;gap:64px;align-items:start}
.rc-day__list{list-style:none;margin:0;padding:0;border-left:2px solid var(--rc-line);margin-left:52px}
.rc-day__item{position:relative;display:grid;grid-template-columns:1fr;padding:0 0 28px 28px}
.rc-day__item:last-child{padding-bottom:0}
.rc-day__item::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--rc-navy);box-shadow:0 0 0 3px #fff}
.rc-day__time{position:absolute;left:-52px;transform:translateX(-100%);top:0;font-family:"Noto Sans JP",sans-serif;font-size:16px;font-weight:700;color:var(--rc-navy);letter-spacing:.02em;line-height:1.5}
.rc-day .rc-day__title{
	/* 外部プラグインCSSのh3既定marginに詳細度で勝つため .rc-day を付ける（round2で判明した既知の問題） */
	margin:0 0 4px;font-size:17px;line-height:1.5;
}
.rc-day__desc{margin:0;font-size:14px;line-height:1.8;color:var(--rc-mute)}
.rc-day__photo{margin:0;aspect-ratio:3/4;border-radius:8px;overflow:hidden}
.rc-day__photo img{width:100%;height:100%;object-fit:cover;display:block}
.rc-note{margin:32px 0 0;font-size:14px;color:var(--rc-mute)}
@media screen and (max-width:767px){
	.rc-day{grid-template-columns:1fr;gap:28px}
	.rc-day__list{margin-left:0}
	.rc-day__item{padding-left:20px}
	.rc-day__time{position:static;transform:none;display:block;margin:0 0 2px;font-size:15px}
	.rc-day__photo{max-width:100%}
}

/* ============================================================
 * ⑤ 代表メッセージ: 写真と文章の高さを揃える（fix-round3-spec.md ⑤）
 * ============================================================ */
.rc-message{display:grid;grid-template-columns:400px 1fr;gap:64px;align-items:center}
.rc-message__photo{margin:0;aspect-ratio:4/5;border-radius:8px;overflow:hidden}
.rc-message__photo img{width:100%;height:100%;object-fit:cover;display:block}
.rc-message__text p{font-size:15px;line-height:2;margin:0 0 1.15em}
.rc-message__sign{display:flex;align-items:baseline;gap:12px;margin:8px 0 0;border-top:1px solid var(--rc-line);padding-top:16px}
.rc-message__role{font-size:12px;color:var(--rc-mute)}
.rc-message__name{font-family:"Noto Sans JP",sans-serif;font-size:20px;font-weight:700;color:var(--rc-navy)}
.rc-message__en{font-family:"Noto Sans JP",sans-serif;font-size:11px;letter-spacing:.2em;color:var(--rc-light)}
@media screen and (max-width:767px){
	.rc-message{grid-template-columns:1fr;gap:24px}
	.rc-message__photo{max-width:100%}
	.rc-message__sign{flex-wrap:wrap;row-gap:2px;padding-top:12px}
	.rc-message__en{flex-basis:100%}
	/* .rc-message__text p の line-height:2.05 が詳細度で勝ってしまうため、
	   署名行だけ明示的にリセットする（PCはnowrapのまま変更しない） */
	.rc-message__text .rc-message__sign{line-height:1.2}
}

/* ============================================================
 * ⑥ 募集要項: tdの中身を構造化（fix-round3-spec.md ⑥）
 * ============================================================ */
.rc-req td{line-height:1.8}
.rc-req td > *:first-child{margin-top:0}
.rc-req__lead{margin:0 0 6px;font-size:15px}
.rc-req__list{list-style:none;margin:0;padding:0}
.rc-req__list li{position:relative;padding-left:16px;margin:0 0 3px;font-size:14px}
.rc-req__list li::before{content:"";position:absolute;left:0;top:.82em;width:5px;height:5px;border-radius:50%;background:var(--rc-light)}
.rc-tag{display:inline-block;margin:0 8px 0 0;padding:2px 10px;border-radius:3px;font-family:"Noto Sans JP",sans-serif;font-size:12px;font-weight:700;letter-spacing:.08em;line-height:1.6;vertical-align:middle}
.rc-tag--must{background:var(--rc-navy);color:#fff}
.rc-tag--want{background:var(--rc-mist);color:var(--rc-navy)}
.rc-req__group{margin:0 0 14px}
.rc-req__group:last-child{margin-bottom:0}
.rc-req__salary{margin:0;font-size:14px}
/* 月給の補足（経験・能力…）は月給に寄せ、下のリストとは離す */
.rc-req__salary + .rc-req__sub{margin:2px 0 14px}
.rc-req__salary strong{font-family:"Noto Sans JP",sans-serif;font-size:22px;color:var(--rc-navy);margin:0 2px}
.rc-req__note{margin:12px 0 0;padding:14px 18px;background:var(--rc-paper);border-left:3px solid var(--rc-light);font-size:12.5px;line-height:1.75}
.rc-req__note p{margin:0 0 4px}
.rc-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.rc-chips li{padding:4px 12px;border:1px solid var(--rc-line);background:var(--rc-paper);border-radius:999px;font-size:12.5px;line-height:1.5}
.rc-req__sub{margin:5px 0 0;font-size:12.5px;color:var(--rc-mute)}
@media screen and (max-width:767px){.rc-req__salary strong{font-size:19px}}
@media screen and (max-width:767px){
	/* この表（.rc-req）だけSPで縦積みにする（テーマの会社概要の表には影響させない）。
	   テーマの `.page-default .lps_sec table th/td{width:30%/70%}` は詳細度(0,2,2)で
	   `.page-recruit .rc-req th/td`(0,2,1)より高いため負ける。強制上書き記法は使わず
	   クラスを重ねて(0,3,1)に上げて勝たせる（前回・前々回と同じやり方） */
	.page-recruit .rc-req,
	.page-recruit .rc-req tbody,
	.page-recruit .rc-req tr,
	.page-recruit .rc-req.rc-req th,
	.page-recruit .rc-req.rc-req td { display: block; width: auto; }
	.page-recruit .rc-req tr { padding: 18px 0; border-bottom: 1px solid #bbb; }
	.page-recruit .rc-req tr:first-child { padding-top: 0; }
	.page-recruit .rc-req tr:last-child { border-bottom: 0; }
	.page-recruit .rc-req.rc-req th { width: auto; padding: 0 0 8px; border-bottom: 0; color: var(--rc-navy); letter-spacing: .08em; }
	.page-recruit .rc-req.rc-req td { padding: 0; border-bottom: 0; }
}

/* ============================================================
 * 08 よくある質問（detailsアコーディオンはテーマに無い部品・未変更）
 * ============================================================ */
.rc-faq__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.rc-faq__item {
	background: var(--rc-card-bg);
	border: 1px solid var(--rc-border);
	border-radius: var(--rc-radius);
	padding: 4px 20px;
}
.rc-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 0;
	font-weight: 700;
	color: var(--rc-navy);
	list-style: none;
	cursor: pointer;
}
.rc-faq__q::-webkit-details-marker {
	display: none;
}
.rc-faq__q::after {
	content: "＋";
	flex: none;
	font-size: 16px;
	color: var(--rc-light);
}
.rc-faq__item[open] .rc-faq__q::after {
	content: "－";
}
.rc-faq__mk {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin-right: 10px;
	border-radius: 50%;
	background: var(--rc-navy);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
}
.rc-faq__a {
	display: flex;
	align-items: flex-start;
	padding: 0 0 18px;
	line-height: 1.8;
	color: var(--rc-text-mute);
}
.rc-faq__a .rc-faq__mk {
	background: var(--rc-light);
}

/* ============================================================
 * 09 応募・お問い合わせ（未変更。TEL/LINEカードは .rc-card を使い続ける）
 * ============================================================ */
.rc-apply__lead {
	max-width: none;
	text-align: center;
	margin: 0 auto 36px;
}
.rc-apply__grid {
	display: grid;
	grid-template-columns: 1fr 320px;
	gap: 32px;
	align-items: start;
}
@media screen and (max-width: 767px) {
	.rc-apply__grid {
		grid-template-columns: 1fr;
	}
}
.rc-apply__side {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.rc-tel {
	color: var(--rc-navy);
	text-decoration: none;
}
.rc-card {
	background: var(--rc-card-bg);
	border: 1px solid var(--rc-border);
	border-radius: var(--rc-radius);
	padding: 24px;
}
@media screen and (max-width: 767px) {
	.rc-card {
		padding: 16px;
	}
}
.rc-card__no {
	display: block;
	margin: 14px 0 4px;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 14px;
	line-height: 1.2;
	letter-spacing: 0.14em;
	color: var(--rc-light);
	font-weight: 700;
}
.rc-card .rc-card__ttl {
	/* h3 のサイズだけテーマの clamp に揃える（書体は変えない） */
	font-size: clamp(18px, 2.865vw, 22px);
	line-height: 1.3;
	margin: 0 0 8px;
	min-height: 2.6em;
	color: var(--rc-navy);
}
.rc-card__txt {
	margin: 0;
	color: var(--rc-text-mute);
}
.rc-card__txt + .rc-card__txt {
	margin-top: 6px;
}
.rc-btn--block {
	margin-top: 12px;
}
.rc-btn--block .wp-block-button__link {
	width: 100%;
	text-align: center;
}

/* CF7 が出力するフォーム項目の汎用スタイル（label/input/select/textareaはテーマの文字サイズ規定が無いため独自に指定） */
.rc-form p {
	margin: 0 0 16px;
}
.rc-form label {
	display: block;
	font-size: 14px;
	font-weight: 700;
	color: var(--rc-navy);
	margin-bottom: 6px;
}
.rc-form .req {
	margin-left: 6px;
	padding: 1px 6px;
	font-size: 11px;
	font-weight: 700;
	color: #fff;
	background: var(--rc-navy);
	border-radius: 2px;
}
.rc-form input[type="text"],
.rc-form input[type="tel"],
.rc-form input[type="email"],
.rc-form select,
.rc-form textarea {
	width: 100%;
	padding: 12px 14px;
	font-size: 15px;
	color: #333;
	background: #fff;
	border: 1px solid var(--rc-border);
	border-radius: var(--rc-radius);
	font-family: inherit;
}
.rc-form textarea {
	resize: vertical;
}
.rc-form input[type="checkbox"] {
	margin-right: 8px;
}
.rc-form input[type="submit"] {
	display: block;
	width: 100%;
	min-height: 56px;
	background: var(--rc-navy);
	color: #fff;
	border: none;
	border-radius: var(--rc-radius);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.06em;
	cursor: pointer;
}
.rc-form input[type="submit"]:hover {
	opacity: 0.9;
}

/* ── スマホ用追従バー（テーマに無い部品・未変更） ── */
.rc-fixbar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 100;
	display: none;
	grid-template-columns: 1fr 1fr;
	height: 60px;
	transform: translateY(100%);
	transition: transform 0.3s ease;
	box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.12);
}
.rc-fixbar.is-visible {
	transform: translateY(0);
}
.rc-fixbar__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	color: #fff;
}
.rc-fixbar__btn--tel {
	background: var(--rc-navy);
}
.rc-fixbar__btn--line {
	background: var(--rc-green);
}
@media screen and (max-width: 767px) {
	.rc-fixbar {
		display: grid;
	}
	/* 追従バーの表示中は、テーマの「先頭へ戻る」ボタンをバーの高さ（60px）ぶん持ち上げる */
	#back-to-top {
		transition: transform 0.3s ease;
	}
	.rc-fixbar-on #back-to-top {
		transform: translateY(-60px);
	}
}

/* 募集要項の表の基準文字サイズ（テーマの .page-default .lps_sec table th/td = 18px を下げる）。
   強制上書き記法は使わず、クラスを重ねて詳細度で勝たせる。 */
.page-recruit .rc-req.rc-req th,
.page-recruit .rc-req.rc-req td { font-size: 14px; }
@media screen and (max-width: 767px) {
	.page-recruit .rc-req.rc-req th { font-size: 13px; }
	.page-recruit .rc-req.rc-req td { font-size: 13px; }
}

/* 応募資格の「必須」「歓迎」タグは、後ろに文を続けず独立した行にする */
.rc-req__tagline{margin:0 0 6px;line-height:1}

/* 応募セクション: リード文は2行で収める（PCは指定位置で改行） */
.rc-apply__lead{max-width:44em;margin-left:auto;margin-right:auto}
.rc-br-pc{display:none}
@media screen and (min-width: 768px){
	.rc-br-pc{display:inline}
}

/* Cloudflare Turnstile はプラグインがフォームの先頭に差し込むため、
   並び順だけを変えて送信ボタンの下に置く（DOMは触らない） */
.page-recruit form.wpcf7-form{display:flex;flex-direction:column}
.page-recruit form.wpcf7-form > .rc-form{order:1}
.page-recruit form.wpcf7-form > .wpcf7-turnstile{order:2;display:flex;justify-content:center;margin-top:16px}
.page-recruit form.wpcf7-form > .wpcf7-response-output{order:3}
