/* ============================================================
   テーマ側の微調整。app.css（デザイン本体）の後に読み込まれる。
   ============================================================ */

/* 固定ナビ(高さ68px)に隠れないよう、アンカー移動時の余白を確保 */
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 80px; }

/* --- モバイル：ハンバーガーメニュー展開 ---------------------
   デスクトップでは app 側インラインCSSで .nav-center-links を表示、
   900px以下で非表示。ここでは nav に .mm-open が付いたとき
   ドロップダウンとして表示する。 */
@media (max-width: 900px) {
	nav.mm-open .nav-center-links {
		display: flex !important;
		position: fixed;
		top: 68px;
		left: 0;
		right: 0;
		flex-direction: column;
		gap: 0;
		background: rgba(255, 255, 255, 0.98);
		box-shadow: 0 8px 20px rgba(26, 43, 74, 0.1);
		padding: 8px 0;
		z-index: 199;
	}
	nav.mm-open .nav-center-links li { text-align: center; width: 100%; }
	nav.mm-open .nav-center-links a {
		display: block;
		padding: 14px;
		opacity: 1 !important;
	}
}

/* ログイン中の管理バー(高さ32px)分だけ固定ナビを下げる（管理者表示時のみ） */
body.admin-bar nav[style*="position: fixed"] { top: 32px; }
@media screen and (max-width: 782px) {
	body.admin-bar nav[style*="position: fixed"] { top: 46px; }
}

/* ============================================================
   オリジナル（React版）の hover 挙動を復元。
   静的化で onMouseEnter/Leave のスタイル変化が失われていたため、
   同じ変化先の値を CSS :hover で再現する。inline style は
   !important でない限り、stylesheet の !important で上書きできる。
   各 transition プロパティは inline 側に残っているので変化は滑らかに補間される。
   セレクタは content-home.php の inline style 文字列に一致させている。
   ============================================================ */

/* ナビ中央リンク：opacity 0.7 → 1 */
.nav-center-links a:hover { opacity: 1 !important; }

/* ナビCTA「お問い合わせ」：gold → gold-dark */
.nav-cta-btn:hover { background: var(--gold-dark) !important; }

/* ゴールドボタン（ヒーロー「事業内容を見る」／採用「採用についてお問い合わせ」）：gold → gold-dark */
a[style*="background: var(--gold)"][style*="padding: 15px 36px"]:hover { background: var(--gold-dark) !important; }

/* ヒーロー「採用情報」アウトラインボタン：枠線 → 白 ／ 背景 → 白10% */
a[style*="border: 1px solid rgba(255, 255, 255, 0.5)"]:hover {
	border-color: #fff !important;
	background: rgba(255, 255, 255, 0.1) !important;
}

/* NEWS「一覧はこちら」ボタン：navy-dark → navy-mid */
a[style*="background: var(--navy-dark)"][style*="padding: 10px 20px"]:hover { background: var(--navy-mid) !important; }

/* NEWS 記事リンク：文字 navy → gold ／ opacity 0.85 → 1 */
a[style*="transition: color 0.2s"][style*="opacity: 0.85"]:hover {
	color: var(--gold) !important;
	opacity: 1 !important;
}

/* SERVICE カード：枠線 → gold ＋ ゴールドの影 */
div[style*="transition: border-color 0.2s, box-shadow 0.2s"]:hover {
	border-color: var(--gold) !important;
	box-shadow: 0 4px 24px rgba(200, 160, 70, 0.12) !important;
}

/* WORKS「一覧をみる」アウトラインボタン：枠線・文字 → gold */
a[style*="transition: border-color 0.2s, color 0.2s"]:hover {
	border-color: var(--gold) !important;
	color: var(--gold) !important;
}

/* WORKS 施工事例カード：画像 opacity 0.55 → 0.75 ＋ 1.04倍に拡大 */
div[style*="cursor: pointer"][style*="background: var(--navy-mid)"]:hover img {
	opacity: 0.75 !important;
	transform: scale(1.04) !important;
}

/* COMMUNITY カード：枠線 → gold ／ 左のゴールドバー 0 → 100% ／ 画像 1.04倍 */
div[style*="transition: border-color 0.25s"]:hover { border-color: var(--gold) !important; }
div[style*="transition: border-color 0.25s"]:hover .gold-bar { height: 100% !important; }
div[style*="transition: border-color 0.25s"]:hover img { transform: scale(1.04) !important; }

/* CONTACT「お問い合わせフォームへ」：gold → gold-dark ／ 文字 navy → 白 */
a[style*="padding: 18px 52px"]:hover {
	background: var(--gold-dark) !important;
	color: #fff !important;
}

/* フッターリンク：白30% → gold */
footer a[style*="color: rgba(255, 255, 255, 0.3)"]:hover { color: var(--gold) !important; }

/* ============================================================
   下層ページ共通スタイル（page.php 等）。
   トップと同じトーン（ネイビー/ゴールド・Noto Serif/Sans）に揃える。
   構造はインラインスタイルで組み、本文（the_content 出力の素の
   h2/h3/p/ul…）だけを .mm-prose でまとめてスタイリングする。
   ============================================================ */

/* パンくず「ホーム」リンク hover */
.mm-crumb-link:hover { color: var(--gold) !important; }

/* 下層ページの本文セクション共通余白（タイトル帯 .mm-sec 非該当は巻き込まない） */
.mm-subpage .mm-sec { padding: 72px 80px; }
@media (max-width: 900px) {
	.mm-subpage .mm-sec { padding: 56px 28px !important; }
}
/* セクション内の中央寄せ本文コンテナ */
.mm-inner { max-width: 1040px; margin: 0 auto; }
.mm-inner-narrow { max-width: 860px; margin: 0 auto; }

/* --- 施工事例カード（トップ WORKS 節のホバー挙動に準拠） --- */
.mm-works-grid { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) {
	.mm-works-grid { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 600px) {
	.mm-works-grid { grid-template-columns: 1fr !important; }
}
.mm-work-card:hover img { opacity: 0.85 !important; transform: scale(1.04); }
/* 実事例カード（トップ WORKS 節と同じ意匠。archive-works.php の分野別一覧で使用） */
.works-card:hover .works-card-img { transform: scale(1.04); }

/* --- お知らせ一覧（archive.php）--- */
.mm-news-row:hover .mm-news-title { color: var(--gold) !important; }
@media (max-width: 600px) {
	.mm-news-row { gap: 12px !important; padding: 18px 0 !important; }
	.mm-news-row .mm-news-title { flex-basis: 100% !important; }
}

/* --- 採用「働く環境」グリッド --- */
@media (max-width: 700px) {
	.mm-env-grid { grid-template-columns: 1fr !important; }
}

/* --- ページ送り・前後記事（WP出力のマークアップに当てる）--- */
.mm-pagination .nav-links { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.mm-pagination .page-numbers {
	font-family: Montserrat, sans-serif; font-size: 12px; letter-spacing: 0.08em;
	color: var(--navy); text-decoration: none; border: 1px solid var(--gray-light);
	padding: 10px 14px; min-width: 40px; text-align: center; transition: border-color 0.2s, color 0.2s, background 0.2s;
}
.mm-pagination a.page-numbers:hover { border-color: var(--gold); color: var(--gold); }
.mm-pagination .page-numbers.current { background: var(--navy); border-color: var(--navy); color: #fff; }
.mm-pagination .page-numbers.dots { border-color: transparent; }
.mm-pagination .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.mm-subpage .mm-sec a[rel="prev"], .mm-subpage .mm-sec a[rel="next"] {
	font-size: 12px; line-height: 1.9; color: var(--gray-text); text-decoration: none;
	letter-spacing: 0.04em; transition: color 0.2s;
}
.mm-subpage .mm-sec a[rel="prev"]:hover, .mm-subpage .mm-sec a[rel="next"]:hover { color: var(--gold); }

/* --- 本文プロース --- */
.mm-prose { font-family: "Noto Sans JP", sans-serif; color: var(--gray-text); }

.mm-prose > *:first-child { margin-top: 0; }

.mm-prose h2 {
	font-family: "Noto Serif JP", serif;
	font-size: 22px;
	font-weight: 400;
	color: var(--navy);
	letter-spacing: 0.06em;
	line-height: 1.6;
	margin: 56px 0 20px;
	padding-left: 16px;
	border-left: 3px solid var(--gold);
}
.mm-prose h3 {
	font-family: "Noto Serif JP", serif;
	font-size: 17px;
	font-weight: 400;
	color: var(--navy);
	letter-spacing: 0.06em;
	line-height: 1.7;
	margin: 40px 0 14px;
}
.mm-prose h4 {
	font-size: 14px;
	font-weight: 700;
	color: var(--navy);
	letter-spacing: 0.06em;
	margin: 28px 0 10px;
}
.mm-prose p {
	font-size: 14px;
	line-height: 2.15;
	letter-spacing: 0.04em;
	margin: 0 0 20px;
}
.mm-prose a {
	color: var(--gold);
	text-decoration: none;
	border-bottom: 1px solid rgba(200, 160, 70, 0.4);
	transition: color 0.2s, border-color 0.2s;
}
.mm-prose a:hover { color: var(--gold-dark); border-color: var(--gold-dark); }
.mm-prose strong { color: var(--navy); font-weight: 700; }

.mm-prose ul, .mm-prose ol { margin: 0 0 20px; padding-left: 0; list-style: none; }
.mm-prose ul > li {
	position: relative;
	padding-left: 18px;
	font-size: 14px;
	line-height: 2.05;
	letter-spacing: 0.03em;
	margin-bottom: 6px;
}
.mm-prose ul > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 13px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--gold);
}
.mm-prose ol { counter-reset: mm; }
.mm-prose ol > li {
	position: relative;
	padding-left: 26px;
	font-size: 14px;
	line-height: 2.05;
	letter-spacing: 0.03em;
	margin-bottom: 6px;
	counter-increment: mm;
}
.mm-prose ol > li::before {
	content: counter(mm);
	position: absolute;
	left: 0;
	top: 2px;
	font-family: Montserrat, sans-serif;
	font-size: 12px;
	font-weight: 700;
	color: var(--gold);
}

.mm-prose img { max-width: 100%; height: auto; display: block; margin: 24px 0; }

.mm-prose table {
	width: 100%;
	border-collapse: collapse;
	margin: 24px 0;
	font-size: 13px;
}
.mm-prose th, .mm-prose td {
	text-align: left;
	vertical-align: top;
	padding: 14px 16px;
	border-bottom: 1px solid var(--gray-light);
	line-height: 1.9;
	letter-spacing: 0.03em;
}
.mm-prose th {
	width: 28%;
	color: var(--gray);
	font-weight: 400;
	white-space: nowrap;
}
.mm-prose td { color: var(--navy); font-weight: 300; }

.mm-prose blockquote {
	margin: 24px 0;
	padding: 16px 24px;
	background: var(--off);
	border-left: 3px solid var(--gold);
	font-size: 13px;
	line-height: 2;
	color: var(--gray-text);
}

@media (max-width: 900px) {
	.mm-prose h2 { font-size: 19px; margin-top: 44px; }
	.mm-prose th { width: auto; white-space: normal; }
}

/* ============================================================
   事業内容ページ：サービスレイアウト
   （番号付き・左右交互の画像＋テキスト行。配色はネイビー/ゴールド）
   ============================================================ */
/* ヒーロー帯（コンセプト＋リード） */
.mm-svc-hero {
	background: linear-gradient(135deg, var(--navy-dark) 0%, var(--navy-mid) 100%);
	padding: 72px 80px;
	text-align: center;
	color: #fff;
}
.mm-svc-hero .mm-svc-hero-title {
	font-family: "Noto Serif JP", serif;
	font-size: 30px; font-weight: 400;
	letter-spacing: 0.08em; line-height: 1.6;
	margin: 0 0 18px;
}
.mm-svc-hero .mm-svc-hero-sub {
	font-family: Montserrat, sans-serif;
	font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase;
	color: var(--gold); margin: 0 0 22px;
}
.mm-svc-hero .mm-svc-hero-desc {
	font-size: 14px; line-height: 2.2; letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.82);
	max-width: 720px; margin: 0 auto;
}

/* 番号付き左右交互セクション */
.mm-svc-row {
	display: grid; grid-template-columns: 1fr 420px;
	gap: 56px; align-items: center;
}
.mm-svc-row.reverse { grid-template-columns: 420px 1fr; }
.mm-svc-row .mm-svc-text { order: 1; }
.mm-svc-row .mm-svc-media { order: 2; }
.mm-svc-row.reverse .mm-svc-text { order: 2; }
.mm-svc-row.reverse .mm-svc-media { order: 1; }

.mm-svc-num {
	display: inline-block;
	font-family: Montserrat, sans-serif;
	font-size: 13px; font-weight: 700; letter-spacing: 0.12em;
	color: #fff; background: var(--gold);
	padding: 7px 18px; border-radius: 40px;
	margin-bottom: 18px;
}
.mm-svc-title {
	font-family: "Noto Serif JP", serif;
	font-size: 26px; font-weight: 400; color: var(--navy);
	letter-spacing: 0.08em; margin: 0 0 14px;
}
.mm-svc-rule { width: 40px; height: 3px; background: var(--gold); margin: 0 0 24px; }
.mm-svc-list { display: flex; flex-direction: column; gap: 12px; }
.mm-svc-list .mm-svc-item {
	display: flex; align-items: flex-start; gap: 12px;
	font-size: 14px; color: var(--gray-text); letter-spacing: 0.03em; line-height: 1.8;
}
.mm-svc-list .mm-svc-item::before {
	content: ""; width: 5px; height: 5px; border-radius: 50%;
	background: var(--gold); margin-top: 9px; flex-shrink: 0;
}
.mm-svc-media { position: relative; overflow: hidden; }
.mm-svc-media img {
	width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block;
}

@media (max-width: 900px) {
	.mm-svc-hero { padding: 48px 28px; }
	.mm-svc-hero .mm-svc-hero-title { font-size: 24px; }
	.mm-svc-row, .mm-svc-row.reverse { grid-template-columns: 1fr; gap: 32px; }
	.mm-svc-row .mm-svc-text, .mm-svc-row.reverse .mm-svc-text { order: 2; }
	.mm-svc-row .mm-svc-media, .mm-svc-row.reverse .mm-svc-media { order: 1; }
}

/* ============================================================
   企業理念ページ：ごあいさつ＋大コンセプト（中央寄せエディトリアル）
   配色はネイビー/ゴールド
   ============================================================ */
/* ごあいさつ見出し（中央＋ゴールド下線） */
.mm-greeting-title {
	font-family: "Noto Serif JP", serif;
	font-size: 28px; font-weight: 400; color: var(--navy);
	letter-spacing: 0.1em; text-align: center;
	position: relative; padding-bottom: 20px; margin: 0 0 44px;
}
.mm-greeting-title::after {
	content: ""; position: absolute; left: 50%; bottom: 0;
	transform: translateX(-50%); width: 48px; height: 3px; background: var(--gold);
}

/* 本文（中央寄せ・両端揃え・最大860px） */
.mm-editorial { max-width: 860px; margin: 0 auto; }
.mm-editorial p {
	font-size: 14px; line-height: 2.4; color: var(--gray-text);
	letter-spacing: 0.04em; text-align: justify; margin: 0 0 22px;
}
.mm-editorial p:last-child { margin-bottom: 0; }

/* 署名 */
.mm-sign { text-align: right; margin-top: 34px; }
.mm-sign .mm-sign-role { font-size: 11px; color: var(--gray); letter-spacing: 0.1em; }
.mm-sign .mm-sign-name {
	font-family: "Noto Serif JP", serif; font-size: 20px; color: var(--navy);
	letter-spacing: 0.12em; margin-top: 6px;
}

/* 大コンセプト見出し節 */
.mm-cdesc-header { text-align: center; margin-bottom: 40px; }
.mm-cdesc-sub {
	font-family: Montserrat, sans-serif; font-size: 12px; letter-spacing: 0.24em;
	text-transform: uppercase; color: var(--gold); margin: 0 0 14px;
}
.mm-cdesc-title {
	font-family: "Noto Serif JP", serif; font-size: 30px; font-weight: 400;
	color: var(--navy); letter-spacing: 0.08em; line-height: 1.6; margin: 0;
}

/* ISO 認証バッジ */
.mm-iso-badge {
	display: inline-flex; align-items: center; gap: 10px;
	border: 1px solid var(--gold); padding: 10px 20px;
	font-family: Montserrat, sans-serif; font-size: 11px;
	letter-spacing: 0.2em; color: var(--gold);
}

@media (max-width: 900px) {
	.mm-greeting-title { font-size: 23px; }
	.mm-cdesc-title { font-size: 24px; }
	.mm-editorial p { text-align: left; }
}

/* ============================================================
   お問い合わせページ：導線カード・お問い合わせの流れ・フォーム
   フォームは Contact Form 7 等へ差し替える前提の仮マークアップ。
   app.css(Tailwind リセット)が input/select/textarea の枠を消すため、
   枠線・背景・余白はここで明示的に指定する。
   ============================================================ */
.mm-contact-lead {
	font-size: 14px; line-height: 2.2; color: var(--gray-text);
	letter-spacing: 0.04em; margin: 0 0 40px;
}

/* 導線カード（フォーム／お電話） */
.mm-contact-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.mm-choice-card {
	border: 1px solid var(--gray-light); padding: 36px 32px; text-align: center;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.mm-choice-card:hover { border-color: var(--gold); box-shadow: 0 6px 24px rgba(200, 160, 70, 0.12); }
.mm-choice-en {
	font-family: Montserrat, sans-serif; font-size: 11px; letter-spacing: 0.3em;
	text-transform: uppercase; color: var(--gold); margin-bottom: 14px;
}
.mm-choice-title {
	font-family: "Noto Serif JP", serif; font-size: 18px; font-weight: 400;
	color: var(--navy); letter-spacing: 0.08em; margin-bottom: 14px;
}
.mm-choice-desc {
	font-size: 13px; line-height: 1.95; color: var(--gray-text);
	letter-spacing: 0.03em; margin: 0;
}
.mm-choice-link {
	display: inline-block; margin-top: 20px;
	font-size: 11px; letter-spacing: 0.18em; color: var(--navy);
	border: 1px solid var(--navy); padding: 12px 28px; text-decoration: none;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.mm-choice-link:hover { background: var(--gold); border-color: var(--gold); color: #fff; }
.mm-choice-tel {
	font-family: Montserrat, sans-serif; font-size: 28px; font-weight: 300;
	color: var(--navy); letter-spacing: 0.04em; margin-top: 18px;
}
.mm-choice-note { font-size: 11px; color: var(--gray); letter-spacing: 0.06em; margin-top: 8px; }

/* お問い合わせの流れ */
.mm-flow { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.mm-flow-step { background: #fff; border: 1px solid var(--gray-light); padding: 28px 26px; }
.mm-flow-num {
	display: inline-block; font-family: Montserrat, sans-serif;
	font-size: 12px; font-weight: 700; letter-spacing: 0.12em;
	color: #fff; background: var(--gold); padding: 6px 16px; border-radius: 40px;
	margin-bottom: 16px;
}
.mm-flow-title {
	font-family: "Noto Serif JP", serif; font-size: 16px; font-weight: 400;
	color: var(--navy); letter-spacing: 0.06em; margin-bottom: 12px;
}
.mm-flow-desc {
	font-size: 13px; line-height: 1.95; color: var(--gray-text);
	letter-spacing: 0.03em; margin: 0;
}

/* フォーム */
.mm-form { margin-top: 8px; }
.mm-field {
	display: grid; grid-template-columns: 200px 1fr; gap: 12px 28px;
	padding: 24px 0; border-bottom: 1px solid var(--gray-light);
}
.mm-field:first-of-type { border-top: 1px solid var(--gray-light); }
.mm-label {
	font-size: 12px; color: var(--navy); letter-spacing: 0.1em;
	line-height: 1.8; padding-top: 13px;
}
.mm-req, .mm-any {
	display: inline-block; font-size: 10px; letter-spacing: 0.1em;
	padding: 3px 8px; margin-left: 10px; vertical-align: 2px;
}
.mm-req { color: #fff; background: var(--gold); }
.mm-any { color: var(--gray); border: 1px solid var(--gray-light); }
.mm-input, .mm-select, .mm-textarea {
	width: 100%; box-sizing: border-box;
	border: 1px solid var(--gray-light); background: var(--off);
	padding: 13px 14px; font-size: 14px; line-height: 1.8;
	color: var(--navy); letter-spacing: 0.03em;
	transition: border-color 0.2s, background 0.2s;
}
.mm-textarea { resize: vertical; min-height: 180px; }
.mm-input::placeholder, .mm-textarea::placeholder { color: var(--gray); }
.mm-input:focus, .mm-select:focus, .mm-textarea:focus {
	outline: none; border-color: var(--gold); background: #fff;
}
.mm-help { font-size: 11px; line-height: 1.9; color: var(--gray); letter-spacing: 0.04em; margin-top: 8px; }
.mm-help a { color: var(--navy); text-decoration: underline; transition: color 0.2s; }
.mm-help a:hover { color: var(--gold); }

.mm-privacy { background: var(--off); padding: 24px 26px; margin-top: 32px; }
.mm-privacy p {
	font-size: 12px; line-height: 1.95; color: var(--gray-text);
	letter-spacing: 0.03em; margin: 0 0 16px;
}
.mm-check { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.mm-check input { width: 16px; height: 16px; accent-color: var(--gold); }
.mm-check span { font-size: 13px; color: var(--navy); letter-spacing: 0.06em; }

.mm-submit-wrap { text-align: center; margin-top: 40px; }
.mm-submit {
	font-family: "Noto Sans JP", sans-serif; font-size: 12px; letter-spacing: 0.22em;
	color: #fff; background: var(--gold); border: none; cursor: pointer;
	padding: 18px 72px; transition: background 0.2s;
}
.mm-submit:hover { background: var(--gold-dark); }

/* ------------------------------------------------------------
   Contact Form 7 の出力を上のフォーム意匠に合わせる。
   CF7 は各入力を <span class="wpcf7-form-control-wrap"> で包み、
   エラー文（.wpcf7-not-valid-tip）・送信結果（.wpcf7-response-output）・
   送信中インジケータ（.wpcf7-spinner）を自前のマークアップで足してくる。
   フォーム定義（.mm-field / .mm-label 等）は CONTACT-FORM-7.md 側にあるので、
   ここでは CF7 が独自に出力する要素だけを整える。

   ※セレクタに .wpcf7-form を挟んでいるのは、プラグイン同梱の styles.css
     （例: .wpcf7 form .wpcf7-response-output）より詳細度を高くするため。
     読み込み順に依存せず確実に上書きできる。!important は使わない。
   ------------------------------------------------------------ */
/* 入力のラッパ。既定は inline なので block にして幅指定を効かせる */
.mm-form .wpcf7-form .wpcf7-form-control-wrap { display: block; }

/* 自動整形を切っていても保険として空段落を消す */
.mm-form .wpcf7-form > p:empty { display: none; }

/* 未入力・書式エラーの入力欄 */
.mm-form .wpcf7-form .wpcf7-not-valid { border-color: #c0392b; background: #fff; }

/* 項目ごとのエラー文 */
.mm-form .wpcf7-form .wpcf7-not-valid-tip {
	display: block;
	font-size: 11px;
	line-height: 1.9;
	letter-spacing: 0.04em;
	color: #c0392b;
	margin-top: 8px;
}

/* 送信結果（成功・失敗とも同じ要素で出る） */
.mm-form .wpcf7-form .wpcf7-response-output {
	margin: 24px 0 0;
	padding: 16px 20px;
	border: 1px solid var(--gray-light);
	background: var(--off);
	font-size: 13px;
	line-height: 1.95;
	letter-spacing: 0.04em;
	color: var(--navy);
}
.mm-form form.wpcf7-form.sent .wpcf7-response-output {
	border-color: var(--gold);
	background: rgba(200, 160, 70, 0.08);
}
.mm-form form.wpcf7-form.invalid .wpcf7-response-output,
.mm-form form.wpcf7-form.unaccepted .wpcf7-response-output,
.mm-form form.wpcf7-form.payment-required .wpcf7-response-output,
.mm-form form.wpcf7-form.failed .wpcf7-response-output,
.mm-form form.wpcf7-form.aborted .wpcf7-response-output,
.mm-form form.wpcf7-form.spam .wpcf7-response-output {
	border-color: #c0392b;
	background: rgba(192, 57, 43, 0.06);
	color: #c0392b;
}

/* 送信中インジケータ（送信ボタンの右）。visibility は CF7 が制御するので触らない */
.mm-form .wpcf7-form .wpcf7-spinner { margin: 0 0 0 14px; vertical-align: middle; }

/* 同意チェック（[acceptance] の出力を .mm-check と同じ見た目に） */
.mm-privacy .wpcf7-acceptance .wpcf7-list-item { display: block; margin: 0; }
.mm-privacy .wpcf7-acceptance .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	margin: 0;
}
.mm-privacy .wpcf7-acceptance .wpcf7-list-item input[type="checkbox"] {
	width: 16px;
	height: 16px;
	accent-color: var(--gold);
}
.mm-privacy .wpcf7-acceptance .wpcf7-list-item-label {
	font-size: 13px;
	color: var(--navy);
	letter-spacing: 0.06em;
}
/* 同意エラーは同意欄の下に出す */
.mm-privacy .wpcf7-not-valid-tip { margin-top: 10px; }

@media (max-width: 900px) {
	.mm-contact-choice { grid-template-columns: 1fr; }
	.mm-flow { grid-template-columns: 1fr; }
	.mm-field { grid-template-columns: 1fr; gap: 10px; padding: 20px 0; }
	.mm-label { padding-top: 0; }
	.mm-submit { width: 100%; padding: 18px 0; }
}

/* ============================================================
   日本語の見出し・キャッチコピーの改行位置を「文節」に寄せる。
   日本語は原則どの文字の間でも改行できるため、幅が足りないと
   「信頼」「守る」「お問い合わせ」のように語の途中で行が折れる。
   word-break: auto-phrase はブラウザの文節解析を使って改行位置を
   語の切れ目に寄せる（Chrome/Edge 119+）。非対応ブラウザでは
   無視されるだけで、従来どおりの表示になる（レイアウトは壊れない）。
   長い本文段落には掛けない：短い表示テキスト専用の指定。
   セレクタは既存方針どおり、クラスが無い箇所は inline style の
   文字列に一致させている。
   ============================================================ */
/* 下層ページのタイトル帯 h1（ニュース記事・施工事例など動的タイトルを含む） */
h1[style*="Noto Serif JP"][style*="font-size: 22px"],
/* 明朝で組まれた表示テキスト（リード文・カード見出し等。いずれも短い文字列で、
   長い本文は .mm-prose / .mm-editorial 側なのでここには含まれない） */
div[style*="Noto Serif JP"],
/* 本文プロースの見出し */
.mm-prose h2, .mm-prose h3, .mm-prose h4,
/* 下層ページ共通の見出し・カードタイトル */
.mm-svc-hero-title, .mm-svc-title, .mm-greeting-title, .mm-cdesc-title,
.mm-choice-title, .mm-flow-title, .mm-news-title,
/* お知らせ見出し（トップ NEWS 節のリンク。投稿タイトルなので長さが可変） */
.mm-news-link,
/* 募集要項テーブルの値・採用ページの短い箇条書き（業務内容／求める人材） */
.mm-table td, .mm-item-list li {
	word-break: auto-phrase;
}
