@charset "utf-8";
/* ==========================================================================
   rn-index.css  トップページ（index.html）専用の追加スタイル（2026年改修）
   renewal.css の共通コンポーネントを前提に、トップ固有の配置だけを定義
   ========================================================================== */

/* ---------- ファーストビュー直下：バリュープロポジション＋ファクト ---------- */
.topValue { max-width: 980px; margin: 18px auto 0; text-align: left; }
.topValue .rnValue { text-align: center; }
.topValue .rnFacts li { border-top-color: #b80000; }
.topValue .rnFacts .label { font-size: 13.5px; }

/* ---------- 選ばれる3つの理由 ---------- */
.topWhy .rnFig { max-width: 980px; margin: 0 auto 32px; }
.topWhy .rnCard p strong { color: #b80000; }
.topWhy .rnCard .num { letter-spacing: 0.12em; }

/* ---------- SYSTEM SOLUTION（既存の暗い背景を活かしたカードUI） ---------- */

/* ---------- SCMコンサル／開発プロセス・契約モデル帯：項目を途中で折り返さない ---------- */
.sysConsulting .text ul li, .agreementStyle .text ul li { white-space: nowrap; }

/* ---------- WORKS：注目導入事例 ---------- */
.topCases { margin: 26px auto 0; }
.topCaseList { grid-template-columns: repeat(3, 1fr); }
.topCaseList .rnCase .caseHead h4, .topCaseList .rnCase .caseHead h3:where(.rnH4) { font-size: 17px; }
.topCaseList .caseThumb { padding: 16px 16px 4px; background: #eef1f6; }
.topCaseList .caseThumb .rnScreen { margin: 0 0 12px; box-shadow: 0 6px 16px rgba(16,32,74,0.16); }
.topCaseList .caseThumb .rnScreen .bar { height: 22px; }
.topCaseList .caseThumb .rnScreen .bar i { width: 8px; height: 8px; }
.topCaseList .caseThumb .rnScreen .bar span { font-size: 10px; }
.topCaseList .rnCase dl { padding-bottom: 4px; }
.topCaseList .caseTags { margin: 4px 22px 14px; }
.topCaseList .rnCase .result { margin-bottom: 14px; font-size: 14px; line-height: 1.8; }
.topCaseList .rnCase .result .metric { margin-right: 10px; }
.topCaseList .caseMore { display: block; margin: 0 22px 20px; font-size: 14px; font-weight: bold; color: #1C4C9F; text-decoration: none; }
.topCaseList .caseMore:after { content: " →"; }
.topCaseList .caseMore:hover { text-decoration: underline; }
.topCases .rnScreenNote { margin: 14px 0 0; }
.topCases .rnNote { margin: 4px 0 0; text-align: center; }
.topIndustryLabel { margin: 48px 0 18px; font-size: 15px; font-weight: bold; text-align: center; color: #555; }

/* ---------- NEWS / ORIGINAL PRODUCT ---------- */

/* ---------- 公式メディア（旧Facebook埋め込み欄） ---------- */
.topMedia { color: #fff; text-align: center; }
.topMedia .title_all { font-size: 34px; }
.topMediaLead { margin: 14px 0 18px; font-size: 14px; line-height: 1.8; }
.topMediaList { max-width: 420px; margin: 0 auto 20px; padding: 0; list-style: none; text-align: left; }
.topMediaList li { margin: 0 0 12px; }
.topMediaList a { position: relative; display: grid; grid-template-columns: 52px 1fr; column-gap: 14px; align-items: center; padding: 14px 40px 14px 16px; color: #2b2b2b; text-decoration: none; background: rgba(255,255,255,0.95); border-left: 4px solid #b80000; border-radius: 4px; transition: transform 0.2s, box-shadow 0.2s; }
.topMediaList a:after { content: ""; position: absolute; top: 50%; right: 18px; width: 7px; height: 7px; margin-top: -4px; border-top: 2px solid #b80000; border-right: 2px solid #b80000; transform: rotate(45deg); }
.topMediaList a:hover { color: #2b2b2b; transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,0.3); }
.topMediaList img { grid-row: 1 / 3; width: 52px; height: 52px; }
.topMediaList .name { font-size: 16px; font-weight: bold; color: #b80000; }
.topMediaList .desc { font-size: 12.5px; line-height: 1.6; color: #555; }

/* Facebook埋め込み（高さ500px）撤去に伴い、RECRUIT欄が絶対配置ではみ出さないよう通常配置に戻す */
@media screen and (min-width: 768px) {
	#contents.news_product .product { align-self: flex-start; }
}
@media screen and (min-width: 768px) and (max-width: 1200px) {
	#contents.sns_recurit .recurit { position: static; width: 46%; margin-left: 4%; }
}

/* ---------- レスポンシブ ---------- */
@media screen and (max-width: 1023px) {
	.topCaseList { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; }
}
@media screen and (max-width: 767px) {
	.topValue { margin-top: 10px; }
	.topCases { width: 90%; }
	.topCaseList .rnCase .caseHead h4, .topCaseList .rnCase .caseHead h3:where(.rnH4) { font-size: 16px; }
	.topIndustryLabel { margin-top: 36px; font-size: 13px; padding: 0 5%; }
	.topMedia { padding: 30px 5% 10px; box-sizing: border-box; }
	.topMedia .title_all { font-size: 22px; }
	.topMediaList a { grid-template-columns: 44px 1fr; padding: 12px 36px 12px 12px; }
	.topMediaList img { width: 44px; height: 44px; }
}

/* スマホ幅では帯の項目を折り返し、画面外へのはみ出しを防ぐ */
@media screen and (max-width: 767px) {
	.sysConsulting .text ul li, .agreementStyle .text ul li { white-space: normal; }
}

/* ---------- QA調整（2026/10/28）：PC・スマホの見え方 ---------- */
/* PC：ヒーロー上でヘッダーが透明な間（インラインJSで文字色 #dddddd）、明るい写真部分でもメニューが読めるよう影を付ける */
@media screen and (min-width: 769px) {
	#header nav.gnav > ul > li > a[style*="221, 221, 221"] { color: #f2f2f2 !important; text-shadow: 0 0 2px rgba(0,0,0,0.95), 0 1px 3px rgba(0,0,0,0.9), 0 0 10px rgba(0,0,0,0.7); }
}
/* CORPORATE PHILOSOPHY：見出し画像を行ボックスから外し、白／赤の境目を画像の2トーンに合わせる */
.corpPhilosophy .cpTitle { background: linear-gradient(transparent 55%, #b80000 55%) no-repeat top center / 100% 100%; }
.corpPhilosophy .cpTitle img { display: block; margin: 0 auto; }
/* PC：理念3項目が25pxのまま折り返し「大切/に。」「可能/性を広げる。」と泣き別れるため、句点で改行（sp_br を常時有効）＋文字サイズ調整 */
.corpPhilosophy li br.sp_br { display: inline; }
@media screen and (min-width: 981px) {
	.corpPhilosophy li { font-size: 21px; line-height: 1.75; }
}
/* KNOW ESPRIT FORT：記事タイトルの行数（1〜3行）でカードの高さがばらつくため3行分を確保 */
#contents.know_espritfort .know_article_card .card_title { min-height: 4.8em; overflow-wrap: anywhere; }
/* 公式メディア：説明文を文節で折り返す（「取り組/み」の泣き別れ防止） */
.topMediaList .desc { word-break: auto-phrase; text-wrap: balance; }

@media screen and (max-width: 767px) {
	/* ファクト：2列時に「創業25年（2001年設立）」が枠の内余白へ5pxはみ出すため微縮小 */
	.topValue .rnFacts .label { font-size: 12.5px; }
	/* CORPORATE PHILOSOPHY 見出しがスマホで約11pxと小さすぎるため拡大 */
	.corpPhilosophy .cpTitle img { width: 84%; }
	.corpPhilosophy .text { padding: 18px 6% 14px; }
	.corpPhilosophy li { font-size: 12.5px; line-height: 1.7; padding: 12px 0 12px 22px; background-size: 12px auto; }

	/* KNOW ESPRIT FORT：見出し〜「note」ラベル間の <br><br>＋margin で約80px空くため詰める */
	#contents.know_espritfort { padding-top: 44px; }
	#contents.know_espritfort #contentsBody > br { display: none; }
	#contents.know_espritfort .know_media_label { margin-top: 30px; }
	#contents.know_espritfort .know_media_desc { padding: 0 5%; }

	/* RECRUIT 欄の本文が画面端に接するため左右余白を確保 */
	#contents.sns_recurit .recurit > p, .topMediaLead { padding: 0 5%; word-break: auto-phrase; text-wrap: balance; }
	.topMedia .topMediaLead { padding: 0; }
}

/* NEWS／ORIGINAL PRODUCT は style.css が 768px 以下で縦並び（column）に切り替わるため、同じ境界で上書き */
@media screen and (max-width: 768px) {
	/* NEWS／ORIGINAL PRODUCT：2列（40%＋45%絶対配置）だと記事タイトルが4〜7行・バナーの文字が読めないため縦積みに */
	#contents.news_product { margin-top: 56px; }
	#contents.news_product #newslist { float: none; display: block; width: 90%; margin: 0 auto; }
	#contents.news_product .information { height: 320px; margin-bottom: 70px; }
	#contents.news_product .newsItem { margin: 1.6em 0; padding: 26px 8px 4px; }
	#contents.news_product .product { position: static; float: none; width: 90%; height: auto; margin: 0 auto 40px; padding: 4px 0 22px; }
	#contents.news_product .product > div { margin: 0 5%; }
	#contents.news_product .product > div :is(div, h2) { margin-left: 0; }
	#contents.news_product .product .title_all { font-size: 20px; }
	#contents.news_product .product .title_comment_all { font-size: 12px; }
	#contents.news_product .product a.light { display: block; max-width: 480px; margin: 0 0 8px; }
	#contents.news_product .product img { display: block; width: 100%; margin: 0; }
}

/* 768px 以下では SP 用AIバナー（縦長）が出るため、タブレット幅では縦1300px超にならないよう幅を抑えて中央寄せ */
@media screen and (min-width: 560px) and (max-width: 768px) {
	#ai { background: #fff; }
	#ai .ai_banner.sp_display { max-width: 520px; margin: 0 auto; }
}

/* SEOで見出し（h2）に変えた「オリジナルプロダクト」にも、style.css の .product div と同じ左余白を当てる */
.product h2.rnH2Div { margin-left: 5%; }
@media screen and (max-width: 767px) { .product h2.rnH2Div { margin-left: 3%; } }

/* ---------- 公式Facebook（ページプラグイン） ---------- */
.topFbEmbed { max-width: 420px; margin: 0 auto 24px; overflow: hidden; background: #fff; border-radius: 4px; }
.topFbEmbed .fb-page, .topFbEmbed .fb-page span, .topFbEmbed iframe { width: 100% !important; max-width: 420px; }
.topFbEmbed blockquote { margin: 0; padding: 16px; }
.topFbEmbed blockquote a { font-weight: bold; color: #1C4C9F; }
@media screen and (max-width: 767px) {
	.topFbEmbed { width: 90%; }
}

/* ---------- レイアウト崩れ修正（PC・タブレット・スマホ） ---------- */
/* 冒頭のキャッチ（h1）：「羨ましがられる」の途中で改行しない */
h1.ura { word-break: auto-phrase; text-wrap: balance; }
h1.ura span { white-space: nowrap; }
/* Facebook：読み込み前に白い帯だけが見えないよう、背景は付けない */
.topFbEmbed { background: none; }
@media screen and (min-width: 768px) and (max-width: 1023px) {
	/* 数字バッジ：3つを1列に並べる */
	.topValue .rnFacts li { flex: 1 1 26%; box-sizing: border-box; padding-left: 10px; padding-right: 10px; }
	/* 2列のカードで最後の1枚が余るときは横いっぱいに */
	.rnCards:not(.topCaseList) > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media screen and (min-width: 769px) and (max-width: 1100px) {
	/* ORIGINAL PRODUCT：箱が狭いので見出しを縮めてはみ出しを防ぐ */
	#contents.news_product .product .title_all { font-size: 20px; letter-spacing: 0.06em; }
}

/* ---------- CORPORATE PHILOSOPHY（理念3項目）：番号付きのパネルに。1文目を見出し、2文目を補足として読みやすく ---------- */
.corpPhilosophy .text { padding: 44px 5% 60px; letter-spacing: 0.04em; }
.corpPhilosophy .cpList { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 1080px; margin: 0 auto; padding: 0; list-style: none; counter-reset: none; }
.corpPhilosophy .cpList li { position: relative; display: flex; flex-direction: column; padding: 26px 26px 28px; font-size: inherit; line-height: inherit; color: #fff; background: rgba(255,255,255,0.08); background-image: none; border: 1px solid rgba(255,255,255,0.28); border-top: 3px solid #fff; border-radius: 4px; }
.corpPhilosophy .cpList li:last-child { border-bottom: 1px solid rgba(255,255,255,0.28); }
.corpPhilosophy .cpList .no { font-family: Arial, "Helvetica Neue", sans-serif; font-size: 34px; font-weight: bold; line-height: 1; letter-spacing: 0.04em; color: rgba(255,255,255,0.55); }
.corpPhilosophy .cpList .hd { margin: 14px 0 10px; font-size: 20px; font-weight: bold; line-height: 1.6; color: #fff; word-break: auto-phrase; text-wrap: balance; }
.corpPhilosophy .cpList .hd .plus { margin: 0 0.1em; color: #ffd0d0; }
.corpPhilosophy .cpList .sub { margin: 0; padding-top: 12px; font-size: 14.5px; line-height: 1.85; color: #fde4e4; border-top: 1px solid rgba(255,255,255,0.25); word-break: auto-phrase; text-wrap: pretty; }
@media screen and (max-width: 1023px) {
	.corpPhilosophy .cpList { grid-template-columns: 1fr; max-width: 640px; gap: 14px; }
	.corpPhilosophy .cpList li { display: grid; grid-template-columns: 56px 1fr; column-gap: 16px; align-items: start; padding: 20px 22px; }
	.corpPhilosophy .cpList .no { grid-row: 1 / span 2; padding-top: 4px; font-size: 30px; }
	.corpPhilosophy .cpList .hd { margin: 0 0 8px; font-size: 18px; }
	.corpPhilosophy .cpList .sub { padding-top: 8px; font-size: 14px; }
}
@media screen and (max-width: 767px) {
	.corpPhilosophy .text { padding: 24px 5% 36px; }
	.corpPhilosophy .cpList li { grid-template-columns: 40px 1fr; column-gap: 12px; padding: 16px 16px 18px; }
	.corpPhilosophy .cpList .no { font-size: 24px; }
	.corpPhilosophy .cpList .hd { font-size: 15.5px; line-height: 1.55; }
	.corpPhilosophy .cpList .sub { font-size: 13px; line-height: 1.75; }
}
/* OFFICIAL MEDIA／RECRUIT：左右2列だと Facebook 埋め込みだけ縦に伸び、RECRUIT 側が大きく空くため、
   PC・タブレットは「公式メディア（リンク＋Facebookを同じ高さで横並び）」→「採用情報」の上下2段に */
@media screen and (min-width: 769px) {
	#contents.sns_recurit { flex-direction: column; align-items: center; padding: 64px 0 56px; }
	#contents.sns_recurit .sns.topMedia { float: none; width: 90%; max-width: 980px; margin: 0 auto; }
	.topMediaBody { display: grid; grid-template-columns: 1fr 400px; gap: 28px; align-items: stretch; margin-top: 8px; }
	.topMediaBody .topMediaList { display: flex; flex-direction: column; justify-content: space-between; max-width: none; margin: 0; }
	.topMediaBody .topMediaList li { margin: 0; }
	.topMediaBody .topFbEmbed { width: 400px; max-width: none; margin: 0; }
	#contents.sns_recurit .recurit { position: static; float: none; width: 90%; max-width: 980px; margin: 52px auto 0; padding-top: 44px; border-top: 1px solid rgba(255,255,255,0.25); }
	#contents.sns_recurit .recurit > br:first-child { display: none; }
}
@media screen and (min-width: 769px) and (max-width: 1023px) {
	.topMediaBody { grid-template-columns: 1fr; justify-items: center; }
	.topMediaBody .topMediaList { width: 100%; max-width: 520px; gap: 12px; }
}
@media screen and (min-width: 769px) {
	#contents.sns_recurit .recurit .insta-slider { max-width: 760px; margin-left: auto; margin-right: auto; }
}
/* SYSTEM SOLUTION：元のアイコン9つ（写真背景＋白い丸アイコン）を、PCは5＋4、タブレット・スマホは3列で中央にそろえる */
.sysSolGrid { display: flex; flex-wrap: wrap; justify-content: center; gap: 36px 3%; max-width: 940px; margin: 34px auto 44px; }
.sysSolGrid .item { display: flex; flex-direction: column; align-items: center; width: 16%; color: #fff; text-decoration: none; }
.sysSolGrid .ic { display: block; width: 100%; max-width: 140px; border-radius: 50%; box-shadow: 0 8px 22px rgba(0,0,0,0.35); transition: transform 0.2s, box-shadow 0.2s; }
.sysSolGrid .ic img { display: block; width: 100%; height: auto; }
.sysSolGrid .item:hover .ic { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(0,0,0,0.45); }
.sysSolGrid .nm { margin-top: 14px; font-size: 14.5px; font-weight: bold; line-height: 1.5; letter-spacing: 0.04em; word-break: auto-phrase; text-wrap: balance; text-shadow: 0 1px 4px rgba(0,0,0,0.6); }
.sysSolGrid .item:hover .nm { color: #fff; text-decoration: underline; }
@media screen and (max-width: 1023px) {
	.sysSolGrid { gap: 30px 6%; max-width: 620px; }
	.sysSolGrid .item { width: 26%; }
}
@media screen and (max-width: 640px) {
	.sysSolGrid { gap: 22px 5%; margin: 24px auto 32px; padding: 0 2%; }
	.sysSolGrid .item { width: 28%; }
	.sysSolGrid .nm { margin-top: 8px; font-size: 12px; letter-spacing: 0.02em; }
}

/* SYSTEM SOLUTION：アイコン下に余白（グリッドのmargin-bottomが背景の外へ相殺されないよう flow-root 化） */
#contents.systemsolution > #contentsBody { display: flow-root; padding-bottom: 24px; }
@media screen and (max-width: 767px) {
	#contents.systemsolution > #contentsBody { padding-bottom: 12px; }
}

/* CORPORATE PHILOSOPHY：見出し・説明文を大きく読みやすく */
.corpPhilosophy .cpList .hd { font-size: 23px; }
.corpPhilosophy .cpList .sub { font-size: 18px; }
@media screen and (max-width: 1023px) {
	.corpPhilosophy .cpList .hd { font-size: 21px; }
	.corpPhilosophy .cpList .sub { font-size: 17px; }
}
@media screen and (max-width: 767px) {
	.corpPhilosophy .cpList .hd { font-size: 18px; }
	.corpPhilosophy .cpList .sub { font-size: 16px; }
}

/* 契約スタイル帯：スマホで文字ブロックが画面右へはみ出し横スクロールが出るのを防ぐ（帯の右半分に収める） */
@media screen and (max-width: 767px) {
	.agreementStyle { position: relative; }
	.agreementStyle .text { left: 0; right: 0; box-sizing: border-box; }
}
