@charset "utf-8";



/*Font Awesomeの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css");


/*Google Fontsの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Gruppo&display=swap');

@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@600;700;800&display=swap');






/*slick.cssの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css");


/*テンプレート専用cssファイルの読み込み
---------------------------------------------------------------------------*/
@import url("slide.css");
@import url("inview.css");


/*CSSカスタムプロパティ（サイト全体を一括管理する為の設定）
---------------------------------------------------------------------------*/
:root {

	--primary-color: #9B111E;			/*テンプレートのメインまたはアクセントとなる色*/
	--primary-inverse-color: #fff;		/*primary-colorの対として使う色*/
	
	--global-space: 10vw;				/*サイト内の余白の一括管理用。画面幅100%＝100vwです。*/
}


/*animation1のキーフレーム設定（開閉ブロックのアニメーションに使用）
---------------------------------------------------------------------------*/
@keyframes animation1 {
	0% {left: -200px;}
	100% {left: 0px;}
}


/*opa1のキーフレーム設定（汎用的）
---------------------------------------------------------------------------*/
@keyframes opa1 {
	0% {opacity: 0;}
	100% {opacity: 1;}
}


/*fadeInのキーフレーム設定（テキストのフェードインに使用）
---------------------------------------------------------------------------*/
@keyframes fadeIn {
	0% {opacity: 0;transform: scale(0.8);}
	100% {opacity: 1;transform: scale(1);}
}


/*全体の設定
---------------------------------------------------------------------------*/
body * {box-sizing: border-box;}
html,body {
	height: 100%;
	font-size: 13px;	/*基準となるフォントサイズ。*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:700px) {

		html, body {
			font-size: 16px;	/*基準となるフォントサイズ。*/
		}

	}/*追加指定ここまで*/


body {
	margin: 0;padding:0;
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, "メイリオ", "Osaka", "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;	/*フォント種類*/
	font-optical-sizing: auto;
	font-weight: normal;
	font-style: normal;
	-webkit-text-size-adjust: none;
	background: #fff;	/*背景色*/
	color: #78736f;		/*文字色*/
	line-height: 2;		/*行間*/
}

/*リセット*/
figure {margin: 0;}
dd {margin: 0;}
nav,ul,li,ol {margin: 0;padding: 0;}
nav ul {list-style: none;}

/*table全般の設定*/
table {border-collapse:collapse;}

/*画像全般の設定*/
img {border: none;max-width: 100%;height: auto;vertical-align: middle;}

/*videoタグ*/
video {max-width: 100%;}

/*iframeタグ*/
iframe {width: 100%;}

/*section*/
section {
	padding: 1vw 0;	/*上下、左右へのsection内の余白*/
}


/*他*/
input {font-size: 1rem;}


/*リンクテキスト全般の設定
---------------------------------------------------------------------------*/
a {
	color: #78736f;
	transition: 0.3s;	/*hoverまでにかける時間。0.3秒。*/
}

/*マウスオン時*/
a:hover {
	text-decoration: none;	/*下線を消す*/
	color: var(--primary-color);	/*文字色。css冒頭で指定しているprimary-colorを読み込みます*/
}


/*Google Fontsを使う場合のclass。Google Fonts本体は冒頭で読み込んでいます。
---------------------------------------------------------------------------*/
.font-bebas {
	font-family: "Bebas Neue", sans-serif;
	font-weight: 400;
	font-style: normal;
}
.font-gruppo {
	font-family: "Gruppo", sans-serif;
	font-weight: 400;
	font-style: normal;
}

.font-monoton {
	font-family: "Monoton", sans-serif;
	font-weight: 400;
	font-style: normal;
}


/*コンテナー（サイト全体を囲むブロック）
---------------------------------------------------------------------------*/
#container {
	padding: 0 var(--global-space);	/*上下、左右へのボックス内の余白。左右についてはcss冒頭で指定しているglobal-spaceを読み込みます。*/
}

/*#container2 {
  padding-top: 80px; /* header-top2 (約80px) のみを考慮 */
}*/

#container3 {
  padding-top: 80px; /* header-top2 (約80px) のみを考慮 */
}


/*header（ロゴが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*ヘッダーブロック*/
header {
	display: flex;					/*横並びにする*/
	align-items: center;			/*垂直揃えの指定。天地中央に配置されるように。*/
	justify-content: space-between;	/*横への配置方法の指定*/
	margin-top: 50px;				/*上に空けるスペース。下の#header-topが重ならないよう適当に空ければOK*/
}

/* メインロゴ */
#logo {
  margin: 0;
}
#logo a {
  display: inline-block;
  line-height: 0;
}
#logo img {
  display: block;
  width: 140px;
}

/* オリオリロゴ */
#olilogo a {
  display: inline-block;
  line-height: 0;
}
#olilogo img {
  display: block;
  width: 120px;
}

/* ロゴとオリオリロゴを横並びにするグループ */
.logo-group {
  margin-top: 20px;
  display: flex;
  align-items: center;
  gap: 2rem; /* ← ロゴとオリオリロゴの間隔 */
}



/* ========== header-top（旧SNSバー）は廃止。念のため非表示指定だけ残しておく ========== */

#header-top {
  display: none !important;
}


/*メニューブロック初期設定
---------------------------------------------------------------------------*/
/*メニューをデフォルトで非表示*/
#menubar {display: none;}
#menubar ul {list-style: none;margin: 0;padding: 0;}
#menubar a {display: block;text-decoration: none;}

/*上で非表示にしたメニューを表示させる為の設定*/
.large-screen #menubar {display: block;}
.small-screen #menubar.display-block {display: block;}

/*3本バーをデフォルトで非表示*/
#menubar_hdr.display-none {display: none;}

/*ドロップダウンをデフォルトで非表示*/
.ddmenu_parent ul {display: none;}

/*ddmenuを指定しているメニューに矢印アイコンをつける設定*/
a.ddmenu::before {
	font-family: "Font Awesome 6 Free";	/*Font Awesomeを使う指示*/
	content: "\f078";		/*使いたいアイコン名（Font Awesome）をここで指定*/
	font-weight: bold;		/*この手の設定がないとアイコンが出ない場合があります*/
	margin-right: 0.5em;	/*アイコンとテキストとの間に空けるスペース*/
}


/*大きな端末用のメニューブロック設定
---------------------------------------------------------------------------*/
/*メニューブロック全体の設定*/
.large-screen #menubar > nav > ul {
	display: flex;		/*横並びにする*/
	font-size: 0.85rem;	/*文字サイズ。85%。*/
	gap: 0.5rem;		/*メニュー同士の間に空けるマージン的な要素*/
}

/*メニュー１個あたりの設定*/
.large-screen #menubar li a {
	border-radius: 100px;	/*角を丸くする指定。適当に大きければOKです。*/
	padding: 0.2rem 1rem;	/*上下、左右へのメニュー内の余白*/
}

/*マウスオン時*/
.large-screen #menubar li a:hover {
	background: var(--primary-color);		/*背景色*/
	color: var(--primary-inverse-color);
}


/*大きな端末、小さな端末、共通のドロップダウンメニュー設定
---------------------------------------------------------------------------*/
/*ドロップダウンブロック*/
.large-screen #menubar ul ul,
.small-screen #menubar ul ul {
	animation: opa1 0.5s 0.1s both;	/*0.1秒待機後、0.5秒かけてフェードイン表示*/
}


/*大きな端末用のドロップダウンメニュー
---------------------------------------------------------------------------*/
/*ドロップダウンメニューブロック全体*/
.large-screen #menubar ul ul {
	position: absolute;z-index: 100;
}

/*メニュー１個あたり*/
.large-screen #menubar ul ul a {
	margin-top: 0.4rem;	/*上に空けるスペース。メニュー同士の隙間です。*/
	background: rgba(0,0,0,0.6);	/*メニューの背景色。0,0,0は黒のことで0.6は色が60%出た状態。*/
	color: #fff;	/*文字色*/
}


/*小さな端末用の開閉ブロック
---------------------------------------------------------------------------*/
/*メニューブロック設定*/
.small-screen #menubar.display-block {
	position: fixed;overflow: auto;z-index: 100;
	left: 0px;top: 0px;
	width: 100%;
	height: 100%;
	padding-top: 90px;
	background: rgba(0,0,0,0.9);		/*背景色*/
	animation: animation1 0.2s both;	/*animation1を実行する。0.2sは0.2秒の事。*/
}

/*メニュー１個あたりの設定*/
.small-screen #menubar nav ul li {
	border: 1px solid #ccc;	/*枠線の幅、線種、色*/
	margin: 1rem;			/*メニューの外側に空けるスペース*/
	border-radius: 5px;		/*角を丸くする指定*/
	padding: 0 2rem;		/*メニュー内の余白。上下、左右へ。*/
}
.small-screen #menubar a {
	padding: 1rem;	/*メニュー内の余白*/
}

/*文字色*/
.small-screen #menubar, .small-screen #menubar a {
	color: #fff;
}


/*小さい端末でのみ表示させるメニュー内のsh要素。main.jsでブレイクポイントを変更した場合はここのmax-widthも合わせて変更して下さい。
---------------------------------------------------------------------------*/
#menubar .sh {display: none;}

	/*画面幅600px以下の追加指定*/
	@media screen and (max-width:600px) {

		#menubar .sh {display: block;}

	}/*追加指定ここまで*/


/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
/*３本バーを囲むブロック*/
#menubar_hdr {
	animation: opa1 0s 0.5s both;
	position: fixed;z-index: 101;
	cursor: pointer;
	top: 0px;		/*上からの配置場所*/
	right: 0px;		/*右からの配置場所*/
	width: 50px;	/*幅*/
	height: 50px;	/*高さ*/
	padding: 15px;	/*ブロック内の余白。上、右、下、左への順番*/
	display: none;
	justify-content: center;
	align-items: center;
	transition: transform 0.5s;
	background: #9B111E;	/*背景色*/
  z-index: 1003;
}


@media screen and (max-width: 768px) {
  #menubar_hdr {
    display: block;  /* スマホ時だけ表示 */
  }
}



/*以下は変更不要*/
#menubar_hdr div {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

/*バーの設定*/
#menubar_hdr div span {
	display: block;
	width: 100%;
	height: 2px;			/*線の太さ*/
	background-color: #fff;	/*線の色*/
	border-radius: 2px;		/*コーナーを少しだけ丸く*/
	transition: all 0.5s ease-in-out;
	position: absolute;
}

/*以下変更不要*/
#menubar_hdr div span:nth-child(1) {top: 0;}
#menubar_hdr div span:nth-child(2) {top: 50%;transform: translateY(-50%);}
#menubar_hdr div span:nth-child(3) {bottom: 0;}
#menubar_hdr.ham div span:nth-child(1) {top: 50%;transform: translateY(-50%) rotate(45deg);}
#menubar_hdr.ham div span:nth-child(2) {opacity: 0;}
#menubar_hdr.ham div span:nth-child(3) {top: 50%;transform: translateY(-50%) rotate(-45deg);}


/*main
---------------------------------------------------------------------------*/
/*mainブロック（横スライドslick対策）*/
main * {min-width: 0;}


/*h1見出し*/
main h1 {
	position: relative;
	text-align: center;		/*テキストをセンタリング*/
	margin: 0 0 4rem;		/*h1の外側にとるスペース。上、左右、下への順番。*/
	font-size: 4vmin;		/*文字サイズ*/
	font-weight: 500;		/*文字の太さ。100から900まで指定可能。*/
	letter-spacing: 0.1em;	/*文字間隔を少しだけ広くする*/
color: #555;
}

/*装飾用の小文字*/
main h1 .small {
	display: block;
	font-size: 0.5em;	/*文字サイズを親要素の50%に*/
	opacity: 0.7;		/*透明度。色が70%出た状態。*/
	font-weight: 200;	/*文字の太さ。100から900まで指定可能。*/
}


@media screen and (max-width: 768px) {
  #main h1 {
	font-size: 1rem;		/*文字サイズ*/
  }
}



/*h2(見出し)要素*/
main h2 {
	margin-top: 0;
	line-height: 1.5;
	font-size: 2rem;		/*文字サイズ。基準の2倍の大きさに。*/
	font-weight: 600;		/*太さ*/
	letter-spacing: 0.1em;	/*文字間隔を少しだけ広く*/
}

/*bg1背景の上でのh2*/
.bg1 h2 {
	color: var(--primary-inverse-color);	/*文字色。css冒頭で指定しているprimary-inverse-colorを読み込みます*/
}


/* ▼ メインビジュアル（動画）の新しいレイアウト */
/* ----------------------------------------------- */
#mainimg {
  position: relative;
  width: 100%;
  height: 700px;          /* ← PCの縦サイズ（自由に変えられる） */
  overflow: hidden;
}

/* スマホの高さ */
@media screen and (max-width: 768px) {
  #mainimg {
    height: 300px;        /* ← 今と同じ見た目になる */
  }
}

/* ▼ 動画そのものの表示方法 */
#mainimg video {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;       /* ← 画面いっぱい、上下左右トリミングOK */
  transform: translate(-50%, -50%);
}





/*2カラム
---------------------------------------------------------------------------*/
/*カラムで使う為の指定*/
main.column {
	padding-top: 2rem;		/*上の余白*/
	padding-bottom: 2rem;	/*下の余白*/
}

/*main-contentsブロック*/
.main-contents {
	margin-bottom: 5rem;	/*ボックスの下に空けるスペース。subとの間の余白です。5文字分。*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	/*カラムで使う為の指定*/
	main.column {
		display: flex;					/*横並びにする*/
		justify-content: space-between;	/*並びかたの種類の指定*/
		gap: 2rem;						/*main-contentsとsub-contentsの間のマージン的な隙間*/
	}
	
	/*main-contentsブロック*/
	.main-contents {
		margin-bottom: 0;
		order: 2;		/*並び順。数字の小さい順番に表示されます。*/
		flex: 1;
	}
	
	/*sub-contentsブロック共通*/
	.sub-contents {
		width: 230px;	/*幅*/
	}
	
	/*1つ目のsub-contents*/
	.sub-contents:nth-child(2) {
		order: 1;	/*並び順。数字の小さい順番に表示されます。*/
	}
	
	/*2つ目のsub-contents*/
	.sub-contents:nth-child(3) {
		order: 3;	/*並び順。数字の小さい順番に表示されます。３番目という意味なので一番右側に表示されます。*/
	}
	
	}/*追加指定ここまで*/


/*サブコンテンツ設定
---------------------------------------------------------------------------*/
/*サブコンテンツ内のh3要素(見出し)*/
.sub-contents h3 {
	display: block;
	margin: 0;
	text-align: center;	/*テキストをセンタリング*/
	border-radius: 5px 5px 0px 0px;	/*角を丸くする指定。左上、右上、右下、左下の順番。*/
	border: 1px solid #ccc;			/*下線の幅、線種、色*/
	background: linear-gradient(transparent, rgba(0,0,0,0.03));/*背景グラデーション。transparentは透明の事。0,0,0は黒の事で0.03は色が3%出た状態。*/
	padding: 0.5rem 0;	/*上下、左右への見出し内の余白*/
}


/*サブメニュー設定
---------------------------------------------------------------------------*/
/*サブメニューブロック全体*/
.submenu {
	padding: 0;
	margin: 0 0 1rem;	/*上、左右、下へのマージン*/
}

/*メニュー１個あたり*/
.submenu a {
	display: block;text-decoration: none;
	padding: 0.2rem 1rem;	/*上下、左右へのメニュー内の余白*/
}

/*メニュー１個あたり（子メニュー以外）*/
.submenu > li {
	border: 1px solid #ccc;	/*枠線の幅、線種、色*/
	border-top: none;		/*上の線だけなくす*/
}

/*子メニュー*/
.submenu li li a {
	padding-left: 2rem;	/*左に余白を空ける*/
}

/*h3見出しの下にサブメニューが続く場合にメニューの上の線をなくす*/
.sub-contents h3 + nav .submenu {
	border-top: none;
}


/*フッター設定
---------------------------------------------------------------------------*/
footer2 small {
	font-size: 100%;
}

footer2 {
	font-size: 0.7rem;		/*文字サイズ。bodyのfont-sizeの70%です。*/
	text-align: center;		/*内容をセンタリング*/
	padding: 20px;			/*ボックス内の余白*/
}

/*リンクテキスト*/
footer2 a {color: inherit;text-decoration: none;}

/*著作部分*/
footer2 .pr {display: block;}


/*フッターメニュー
---------------------------------------------------------------------------*/
/*メニューブロック全体*/
#footermenu {
	padding: 20px;		/*ブロック内の余白*/
	text-align: center;	/*テキストを中央に*/
	font-size: 0.8rem;	/*文字サイズ。bodyのfont-sizeの80%です。*/
}

/*メニュー１個あたり*/
#footermenu li {
	display: inline-block;	/*簡易的に横並びにする*/
	padding: 0 10px;		/*上下、左右への余白*/
}



/*テキストのフェードイン設定
---------------------------------------------------------------------------*/
/* 初期状態でテキストを非表示にする */
.fade-in-text {
    visibility: hidden;
}

/* アニメーションを適用するクラス。
animationの行の「0.05s」が文字の出現のなめらかさで、大きいほどなめらかに出てきます。
１文字ずつの出現する際の時差は、js/main.jsの「テキストのフェードイン効果」の中にある「0.2」で調整できます。*/
.char {
    display: inline-block;
    opacity: 0;
    animation: fadeIn 0.05s linear both;
}


/*お知らせブロック
---------------------------------------------------------------------------*/
/*記事の下に空ける余白*/

.new dd {
	padding-bottom: 1rem;
}


/*もっとみる*/
.new small {
	padding-bottom: 1rem;
	font-size: 80%;
}



/*ブロック内のspan。日付の横のアイコン的な部分の共通設定*/
.new dt span {
	display: inline-block;
	text-align: center;
	line-height: 1.8;		/*行間（アイコンの高さ）*/
	border-radius: 3px;		/*角を丸くする指定*/
	width: 9rem;			/*幅。６文字分。*/
	transform: scale(0.8);	/*80%のサイズに縮小*/
	background: #fff;		/*背景色*/
	color:#555;				/*文字色*/
}

/*icon-bg1*/
.new .icon-bg1 {
	background: var(--primary-color) !important;	/*背景色。css冒頭で指定しているprimary-colorを読み込みます*/
	color: var(--primary-inverse-color) !important;	/*文字色。css冒頭で指定しているprimary-inverse-colorを読み込みます*/
}

/*icon-bg2*/
.new .icon-bg2 {
	background: #809ba2;	/*背景色*/
	color: #fff;			/*文字色*/
}

/*icon-bg3*/
.new .icon-bg3 {
	background: #eeece7;	/*背景色*/
	color: #555;			/*文字色*/
}

	/*画面幅700px以上の追加指定*/
	@media screen and (min-width:700px) {

	/*ブロック全体*/
	.new {
		display: grid;	/*gridを使う指定*/
		grid-template-columns: auto 1fr;	/*横並びの指定。日付とアイコン部分の幅は自動で、内容が入るブロックは残り幅一杯とる。*/
	}

	}/*追加指定ここまで*/


/*list-grid1
---------------------------------------------------------------------------*/
/*list内の全ての要素のmarginとpaddingを一旦リセット*/
.list-grid1 .list * {
	margin: 0;padding: 0;
}

/*listブロック全体を囲むブロック*/
.list-grid1,
.list-grid1 a {
	color: #fff;	/*文字色*/
	letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/
}

.list-grid1 a:hover {
	color: inherit;
}

/*ボックス１個あたり*/
.list-grid1 .list {
	text-align: center;		/*テキストをセンタリングする*/
	margin-bottom: 2vw;
  position: relative;   /* ← これを入れる */
  overflow: hidden;     /* ← はみ出し防止（任意） */
}

/*テキストブロック*/
.list-grid1 .text2 {
	position: absolute;
	left: 0px;
	bottom: 0px;
	width: 100%;
	background: rgba(0,0,0,0.7);	/*背景色。0,0,0は黒のことで0.7は色が70%出た状態。*/
  color: #fff;
  padding: 1.2em;
  text-align: center;
  font-size: 1rem;
  z-index: 1;
}


/* ============================
   事業紹介：画像の比率だけ固定する
   ============================ */

/* 画像エリアの比率（16:9）を固定する */
.list-grid1 .image-wrapper {
  position: relative;
  width: 100%;
  height: 0;              
  padding-top: 75%;      /* ← ここを変えると比率変更可能（今の見た目に近い横長） */
  overflow: hidden;
}

/* 画像は必ず枠いっぱいに表示（トリミング含む） */
.list-grid1 .image-wrapper img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* テキスト帯はそのまま下に固定 */
.list-grid1 .image-wrapper .text2 {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
}




	/*画面幅700px以上の追加指定*/
	@media screen and (min-width:700px) {

	/*listブロック全体を囲むブロック*/
	.list-grid1 {
		display: grid;
		grid-template-columns: repeat(3, 1fr);	/*3列にする指定。4列にしたければrepeat(4, 1fr)とする。*/
		gap: 1vw;	/*ブロックの間に空けるマージン的な指定*/
	}

	/*ボックス１個あたり*/
	.list-grid1 .list {
		margin-bottom: 0;	/*下マージンをリセット*/
	}

	}/*追加指定ここまで*/


/*list-grid1（静止画から動画にチェンジするボックス）※変更不要
---------------------------------------------------------------------------*/
.list-grid1 .image-container {
	width: 100%;
	height: 0;
	padding-top: 100%;
	position: relative;
}
.list-grid1 .image-container img,
.list-grid1 .image-container video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.list-grid1 .image-container video {
	display: none;
}


/*ボタン（btnと、btn-border-radius）
---------------------------------------------------------------------------*/
/*ボタン共通*/
.btn a,
.btn-border-radius a {
	display: block;text-decoration: none;
	font-size: 1rem;
	text-align: center;		/*テキストをセンタリング*/
	background: var(--primary-color) !important;	/*背景色。css冒頭で指定しているprimary-colorを読み込みます*/
	color: var(--primary-inverse-color) !important;	/*文字色。css冒頭で指定しているprimary-inverse-colorを読み込みます*/
	padding: 0.5rem !important;		/*ボタン内の余白*/
	margin-top: 1rem !important;
}

/*ボタン共通（マウスオン時に少し明るくする）*/
.btn a:hover,
.btn-border-radius a:hover {
	filter: brightness(1.2);
}

/*btn-border-radiusの上書き*/
.btn-border-radius a {
	display: inline-block;
	padding: 0.5rem 2rem !important;	/*ボタン内の余白*/
	border-radius: 100px;	/*角丸の指定。適当に大きければOK。*/
}


/*bg1背景色がついたブロック
---------------------------------------------------------------------------*/
.bg1 {

	padding: 1vw 0;
	position: relative;
	background: var(--primary-color);		/*背景色。css冒頭で指定しているprimary-colorを読み込みます*/
	color: var(--primary-inverse-color);	/*文字色。css冒頭で指定しているprimary-inverse-colorを読み込みます*/
	
	/*以下は変更不要*/
	margin-left: calc(-1 * var(--global-space));
	margin-right: calc(-1 * var(--global-space));
	padding-left: var(--global-space);
	padding-right: var(--global-space);
}
.bg1 a {
	color: inherit;
}


/*詳細ページのサムネイル切り替えブロック
---------------------------------------------------------------------------*/
/*大きな画像が表示されるブロック*/
.thumbnail-view {
	margin-bottom: 1rem;	/*ブロックの下に1文字分のマージンをとる。*/
	text-align: center;		/*画像が小さい場合でもセンタリングされるように*/
	background: #000;		/*背景色。画像が切り替わる際にだけ見える色です。*/
}

/*大きな画像*/
.thumbnail-view img {
	width: 100%;	/*幅をボックスに合わせる。原寸大がよければこのブロックは削除。*/
}

/*サムネイル全体を囲むブロック*/
.thumbnail {
	display: flex;				/*flexを使う指定*/
	justify-content: center;	/*並びかたの種類の指定。これはセンタリングする指定。*/
	margin-bottom: 2rem;		/*下に空けるスペース。２文字分。*/
}

/*サムネイル画像*/
.thumbnail img {
	width: 100px;		/*サムネイルの幅*/
	margin: 5px;		/*サムネイル間のスペース*/
	border: 2px solid #fff;	/*枠線の幅、線種、色*/
	cursor: pointer;	/*リンクタグではないが、クリックできる事をわかりやすくする為にリンクと同じポインターにしておきます。*/
	transition: 0.3s;	/*マウスオンまでにかける時間。3秒。*/
}
.thumbnail img:hover {
	opacity: 0.8;	/*マウスオン時に80%だけ色を出す。つまり薄くなります。*/
}


/*詳細ページ（bland_item.html）で使っている「前のページに戻る」ボタン
---------------------------------------------------------------------------*/
.btn-back {
	text-align: center;
}
.btn-back a {
	text-decoration: none;display: inline-block;
	padding: 0.5rem 2rem;	/*ボタン内の余白。上下、左右。*/
	border-radius: 30px;	/*角を丸くする指定。ある程度大きければ適当でいいです。*/
	background: #000;		/*背景色*/
	color: #fff;			/*文字色*/
}
.btn-back a::before {
	font-family: "Font Awesome 6 Free";	/*Font Awesomeを使う指定*/
	content: "\f0d9";		/*使いたいアイコン名をここで指定。Font Awesomeに記載されています。詳しくは当テンプレートのマニュアルを読んで下さい。*/
	padding-right: 0.8em;	/*アイコンとテキストの間の余白*/
	font-weight: bold;		/*この設定がないとアイコンが出ない場合があります*/
	opacity: 0.5;			/*色を50%だけ出す*/
}


/*クーポンボタン（トップページ右側の縦書きボタン）
---------------------------------------------------------------------------*/
#message-parts a {
	text-decoration: none;display: block;
	writing-mode: vertical-rl;
	text-orientation: upright;
	background: #92464f;/*背景色*/
	color: #fff;		/*文字色*/
	position: fixed;	/*スクロールしてもボタンが移動しないようにする指定。移動させたいならfixedをabsoluteにして下さい。*/
	z-index: 2;
	right: 0px;			/*ボタンの右からの配置場所指定*/
	top: 170px;			/*ボタンの上からの配置場所指定*/
	padding: 20px 15px;	/*ボタン内の余白。上下、左右。*/
	border-radius: 5px 0px 0px 5px;	/*角を丸くする指定。左上、右上、右下、左下の順番。*/
	letter-spacing: 0.2rem;	/*文字間隔を少しだけ広く*/
	font-size: 0.8rem;	/*文字サイズを80%*/
}

/*ふきだしアイコン*/
#message-parts i {
	transform: scale(1.3);	/*1.3倍に*/
	margin-bottom: 10px;	/*下に空ける余白*/
}

/*マウスオン時に少し明るくする*/
#message-parts a:hover {
	filter: brightness(1.2);
}


/*テーブル（ta1）
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1 caption {
	font-weight: bold;		/*太字に*/
	padding: 0.5rem 1rem;	/*ボックス内の余白*/
	background: var(--primary-color);		/*背景色*/
	color: var(--primary-inverse-color);	/*文字色*/
	margin-bottom: 1rem;	/*下に空けるスペース*/
	border-radius: 5px;		/*角を丸くする指定*/
}

/*ta1テーブルブロック設定*/
.ta1 {
	table-layout: fixed;
	border-top: 1px solid #999;	/*テーブルの一番上の線。幅、線種、色*/
	width: 100%;				/*幅*/
	margin-bottom: 5rem;		/*テーブルの下に空けるスペース。5文字分。*/
}

/*tr（１行分）タグ設定*/
.ta1 tr {
	border-bottom: 1px solid #999;	/*テーブルの下線。幅、線種、色*/
}

/*th（左側）、td（右側）の共通設定*/
.ta1 th, .ta1 td {
	padding: 1rem;		/*ボックス内の余白*/
	word-break: break-all;	/*英語などのテキストを改行で自動的に折り返す設定。これがないと、テーブルを突き抜けて表示される場合があります。*/
}

/*th（左側）のみの設定*/
.ta1 th {
	width: 30%;			/*幅*/
	text-align: left;	/*左よせにする*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

		/*th（左側）のみの設定*/
		.ta1 th {
			width: 20%;		/*幅*/
		}

	}/*追加指定ここまで*/


/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
.pagetop-show {display: block;}

/*ボタンの設定*/
.pagetop a {
	display: block;text-decoration: none;text-align: center;z-index: 99;
	position: fixed;	/*スクロールに追従しない(固定で表示)為の設定*/
	right: 20px;		/*右からの配置場所指定*/
	bottom: 20px;		/*下からの配置場所指定*/
	color: #fff;		/*文字色*/
	font-size: 1.5rem;	/*文字サイズ*/
	background: rgba(0,0,0,0.2);	/*背景色。0,0,0は黒の事で0.2は色が20%出た状態。*/
	width: 60px;		/*幅*/
	line-height: 60px;	/*高さ*/
	border-radius: 50%;	/*円形にする*/
}


/*その他
---------------------------------------------------------------------------*/
.clearfix::after {content: "";display: block;clear: both;}
.color-check, .color-check a {color: #ff0000 !important;}
.l {text-align: left !important;}
.c {text-align: center !important;}
.r {text-align: right !important;}
.ws {width: 95%;display: block;}
.wl {width: 95%;display: block;}
.mb0 {margin-bottom: 0px !important;}
.mb30 {margin-bottom: 30px !important;}
.look {display: inline-block;padding: 0px 10px;background: #fff;color: #333;border: 1px solid #ccc; border-radius: 3px;margin: 5px 0; word-break: break-all;}
.small {font-size: 0.75em;}
.large {font-size: 2em; letter-spacing: 0.1em;}
.pc {display: none;}
.dn {display: none !important;}
.block {display: block !important;}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	.ws {width: 48%;display: inline;}
	.sh {display: none;}
	.pc {display: block;}

	}/*追加指定ここまで*/





/* header-top2: ロゴとメニュー（SNSバー削除後レイアウト用） */
#header-top2 {
  position: fixed;
  top: 0;                /* ★ 35px → 0 に変更：画面最上部から配置 */
  left: 0;
  width: 100%;
  background: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 3px 10vw;
  z-index: 1001;
/*  box-shadow: 0 2px 5px rgba(0,0,0,0.1); */
}
#logo img {
  width: 140px;
}





/*フッター設定
---------------------------------------------------------------------------*/
footer a {color: inherit;text-decoration: none;}
footer small {font-size: 100%;}

footer {

	background: #fff;		/*背景色。冒頭のprimary-colorを読み込みます。*/
	color: #555;	/*文字色。冒頭のprimary-inverse-colorを読み込みます。*/
	font-size: 0.7rem;	/*文字サイズ85%*/
	padding: 0vw 5vw;		/*余白*/
}

	/*画面幅600px以上の追加指定*/
	@media screen and (min-width:600px) {

	footer {
		display: flex;
		justify-content: space-between;
	}

	}/*追加指定ここまで*/



/*bg2背景色がついたブロック
---------------------------------------------------------------------------*/
.bg2 {
	position: relative;
	background: #fff;	/*背景色。css冒頭で指定しているprimary-colorを読み込みます*/
	color: #555;	/*文字色。css冒頭で指定しているprimary-inverse-colorを読み込みます*/
	padding-top: 1vw;		/*ボックス内の上に空ける余白。お好みで調整して下さい。*/
	padding-bottom: 1vw;	/*ボックス内の下に空ける余白。お好みで調整して下さい。*/
	margin-top: 1vw;		/*ボックス外の上に空ける余白。お好みで調整して下さい。*/
	margin-bottom: 1vw;	/*ボックス外の下に空ける余白。お好みで調整して下さい。*/
text-align: center;
	
	/*以下は変更不要*/
	margin-left: calc(-1 * var(--global-space));
	margin-right: calc(-1 * var(--global-space));
	padding-left: var(--global-space);
	padding-right: var(--global-space);
}


@media screen and (max-width: 700px) {
  .bg2 {
    padding-top: 5vw;  /* スマホ時だけ上の余白を広げる */
  }
}

.bg2 a {
	color: inherit;
}


/*h5見出し*/
h5 {
	font-weight: 200;	/*細字にする*/
	line-height: 0;	/*行間を狭く*/
	font-size: 2rem;
}




/*ロゴが入ったブロック*/
footer .image {
	width: 200px;	/*ボックス幅*/
	text-align: center;	/*中身をセンタリング*/
  margin-top: 1rem; /* 上の余白 */
}

	/*画面幅500px以下の追加指定*/
	@media screen and (max-width:500px) {

	footer .image {
		width: auto;	/*ボックス幅*/
	}
	footer .image img {
		width: 80px;
	}

	}/*追加指定ここまで*/


/*ロゴ*/
footer .logo {
	opacity: 1;	/*透明度。色を50%だけ出す設定。全部出したいならこの１行は削除。*/
	width: 130px;	/*ボックス幅*/
  margin: 0 auto 0.5rem auto; /* 上・左右・下 */
}

	/*画面幅600px以上の追加指定*/
	@media screen and (min-width:600px) {

	footer .text {
		display: flex;	/*CompanyとFollow Usを横並びにする*/
		gap: 5.5rem;	/*CompanyとFollow Usの間の余白。５文字分。*/
	}

	}/*追加指定ここまで*/




/* マウスオンでモノクロにフェードする画像 */
/* 親要素をrelativeにして、子のabsoluteが効くようにする */

.image-wrapper {
  position: relative;
  width: 100%;
  display: inline-block;
  line-height: 0; /* 行間の隙間を消す！←重要！ */
  overflow: hidden; /* 万が一はみ出た場合の保険 */
}

.image-wrapper img {
  display: block;
  width: 100%;
  height: auto;
  transition: filter 0.4s ease; /* アニメーション効果 */
}

.image-wrapper:hover img {
  filter: grayscale(90%) sepia(10%) !important;
  transform: scale(1.05);
}


/* 拡大フェードモノクロフィルター */

.mono-filter img {
  transition: transform 0.4s ease, filter 0.4s ease;
}

.mono-filter:hover img {
  transform: scale(1.1);
  filter: grayscale(100%);
}


/* タイトルマージン */
div.title img {
/* float: left; */
width: 10vw;
margin: 0 0vw 1vw ;
}

	/*画面幅500px以下の追加指定*/
	@media screen and (max-width:700px) {

	div.title img {
		width: auto;	/*ボックス幅*/
	}
	div.title img {
		width: 100px;
	}

	}/*追加指定ここまで*/


div.title p {

margin: 0 0vw 2vw ;

}



/* 企業情報grid */

/*list-grid2
---------------------------------------------------------------------------*/
/*list内の全ての要素のmarginとpaddingを一旦リセット*/

.list-grid2 {
  max-width: 1300px;
  margin: 0 auto;       /* 左右のマージンを自動で中央寄せ */
}

.list-grid2 .list * {
	margin: 0;padding: 0;
}

/*listブロック全体を囲むブロック*/
.list-grid2,
.list-grid2 a {
	color: #fff;	/*文字色*/
	letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/
}

.list-grid2 a:hover {
	color: inherit;
}

/*ボックス１個あたり*/
.list-grid2 .list {
	text-align: center;		/*テキストをセンタリングする*/
	margin-bottom: 2vw;
}

/*テキストブロック*/
.list-grid2 .text2 {
	position: absolute;
	left: 0px;
	bottom: 0px;
	width: 100%;
	background: rgba(0,0,0,0.7);	/*背景色。0,0,0は黒のことで0.7は色が70%出た状態。*/
  color: #fff;
  padding: 1.2em;
  text-align: center;
  font-size: 1rem;
  z-index: 1;
}

	/*画面幅700px以上の追加指定*/
	@media screen and (min-width:700px) {

	/*listブロック全体を囲むブロック*/
	.list-grid2 {
		display: grid;
		grid-template-columns: repeat(3, 1fr);	/*3列にする指定。4列にしたければrepeat(4, 1fr)とする。*/
grid-template-rows: repeat(2, 1fr);
/*		gap: 2vw;	ブロックの間に空けるマージン的な指定*/
		column-gap: 1vw;
		row-gap: 0.5vw;
	}

	/*ボックス１個あたり*/
	.list-grid2 .list {
		margin-bottom: 0;	/*下マージンをリセット*/
	}

	}/*追加指定ここまで*/



/* header-top3: パンくずリストボックス */

#header-top3 {
  position: fixed;
  top: 90px;        /* ★ 125px → 80px：ロゴヘッダーのすぐ下くらいに */
  left: 0;
  width: 100%;
  height: 40px; /* 高さ */
  background: #9B111E;
  z-index: 1000;
  display: flex;
  justify-content: flex-start;			/*ボックスを左側に配置する*/
  align-items: center;				/*垂直揃えの指定。天地中央に配置されるように。*/
  padding-left: var(--global-space);	/*左側に空けるスペース。css冒頭で指定しているglobal-spaceを読み込みます*/
  padding-right: var(--global-space);	/*右側に空けるスペース。css冒頭で指定しているglobal-spaceを読み込みます*/
  font-size: 0.85rem;/*文字サイズ。85%。*/
}

	/*画面幅700px以下の追加指定*/
	@media screen and (max-width:700px) {

	/*アイコンを入れるボックス*/
	#header-top3 {
    display: none;   /* 700px以下で非表示 */
	}
	
	}/*追加指定ここまで*/



/* パンくずリスト */

.Breadcrumb {
  padding: 1em;
	letter-spacing: 0.1em;	/*文字間隔を少しだけ広くする*/
}
.Breadcrumb-ListGroup {
  list-style: none;   /* ← これで数字を消す！ */
  display: flex;
}
.Breadcrumb-ListGroup-Item-Link[href]:hover {
  opacity: 0.5;
}
.Breadcrumb-ListGroup > * + * {
  margin-left: 0.5em;
}
.Breadcrumb-ListGroup > * + *::before {
  content: ">";
  margin-left: 1em;
  margin-right: 1em;
  color: #fff;
}

.Breadcrumb-ListGroup-Item-Link {
  color: #fff;
  transition: color 0.3s ease;
}

.Breadcrumb-ListGroup-Item-Link:hover {
  color: #ffcccc;
  opacity: 0.5;
}



/* 事業紹介grid */

/*list-grid3
---------------------------------------------------------------------------*/
/*list内の全ての要素のmarginとpaddingを一旦リセット*/
.list-grid3 .list * {
	margin: 0;padding: 0;
}

/*listブロック全体を囲むブロック*/

.list-grid3 {
  max-width: 1000px;
  margin: 0 auto;       /* 左右のマージンを自動で中央寄せ */
}

.list-grid3,
.list-grid3 a {
	color: #fff;	/*文字色*/
  letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/
}

.list-grid3 a:hover {
	color: inherit;
}

/*ボックス１個あたり*/
.list-grid3 .list {
	text-align: center;		/*テキストをセンタリングする*/
	margin-bottom: 2vw;
}

/*テキストブロック*/
.list-grid3 .text2 {
	position: absolute;
	left: 0px;
	bottom: 0px;
	width: 100%;
	background: rgba(0,0,0,0.7);	/*背景色。0,0,0は黒のことで0.7は色が70%出た状態。*/
  color: #fff;
  padding: 1.2em;
  text-align: center;
  font-size: 1rem;
  z-index: 1;
}

	/*画面幅700px以上の追加指定*/
	@media screen and (min-width:700px) {

	/*listブロック全体を囲むブロック*/
	.list-grid3 {
		display: grid;
		grid-template-columns: repeat(2, 1fr);	/*3列にする指定。4列にしたければrepeat(4, 1fr)とする。*/
grid-template-rows: repeat(2, 1fr);
/*		gap: 2vw;	ブロックの間に空けるマージン的な指定*/
		column-gap: 1vw;
		row-gap: 0.5vw;
	}

	/*ボックス１個あたり*/
	.list-grid3 .list {
		margin-bottom: 0;	/*下マージンをリセット*/
	}

	}/*追加指定ここまで*/





/* mainとfooterの間の色帯 */

.separator {
  height: 40px;
  background-color: #9B111E;
  width: 100vw;          /* ビューポート幅いっぱいに */
  margin-left: calc(-50vw + 50%); /* ページ中央揃えで左右の余白をなくす */
}



/*h4見出し*/
main h4 {
	text-align: center;		/*テキストをセンタリング*/
	margin: 0 0 1rem;		/*h1の外側にとるスペース。上、左右、下への順番。*/
	font-size: 6vmin;		/*文字サイズ*/
	font-weight: 800;		/*文字の太さ。100から900まで指定可能。*/
	letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/
color: #9B111E;
}

/*装飾用の小文字*/
main h4 .small {
	display: block;
	font-size: 0.3em;	/*文字サイズを親要素の50%に*/
	opacity: 0.6;		/*透明度。色が70%出た状態。*/
	font-weight: 500;	/*文字の太さ。100から900まで指定可能。*/
}


@media screen and (max-width: 700px) {
  #main h4 {
	font-size: 2vw;		/*文字サイズ*/
  }
}




/*タイトルバナー*/

.hero {
  position: relative;
  width: 100%;
  height: 55vh; /* 高さはお好みで調整 */
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding-top: 80px;
}

.hero-bg {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  top: 0;
  left: 0;
  z-index: 0;

/*  -ms-filter: blur(1px);
  filter: blur(1px); 画像ぼかし*/
}

.hero-text {
  color: #555;
  z-index: 1;
  padding: 1em;
}

.hero-text p{
/*text-shadow: 2px 2px 15px #036EB8 ,
-2px 2px 15px #036EB8 ,
2px -2px 15px #036EB8 ,
-2px -2px 15px #036EB8; */
	letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/
}

.hero-text h1 {
  font-size: clamp(2rem, 5rem, 2.8rem);
  font-weight: 700;
  margin: 0;
  letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/
  color: #9B111E;
  font-weight: 800;		/*文字の太さ。100から900まで指定可能。*/
}

.hero-text h2 {
  font-size: clamp(0.8rem, 1rem, 1.5rem);
  opacity: 0.8;
  margin: 0em 0 0;
  letter-spacing: 0.8em;	/*文字間隔を少しだけ広くする*/
  opacity: 0.5;		/*透明度。色が70%出た状態。*/
  color: #9B111E;
line-height: 1.4

}

/* スマホ用にさらに高さを減らす */

@media screen and (max-width: 700px) {
  .hero {
    height: 50vh;
padding: 7em 0 2em;
  }
}


@media screen and (max-width: 600px) {
  .hero {
    height: 45vh;
padding: 4em 10px 2em;
  }
}




/*タイトルバナー2*/

.hero2 {
  position: relative;
  width: 100%;
  height: 50vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding-top: 100px;
}

.hero2-bg {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  top: 0;
  left: 0;
  z-index: 0;

/*  -ms-filter: blur(5px);
  filter: blur(5px); 画像ぼかし*/
}


.hero2-text {
  color: #555;
  z-index: 1;
  padding: 1em;
}

.hero2-text p{
/*text-shadow: 2px 2px 15px #036EB8 ,
-2px 2px 15px #036EB8 ,
2px -2px 15px #036EB8 ,
-2px -2px 15px #036EB8; */
	letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/
}

.hero2-text h1 {
  font-size: clamp(2rem, 5rem, 2.8rem);
  font-weight: 700;
  margin: 0;
  letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/
  color: #9B111E;
  font-weight: 800;		/*文字の太さ。100から900まで指定可能。*/
  line-height: 1.4;   /* ← これを追加（デフォルトより少し詰まる） */
}

.hero2-text h2 {
  font-size: clamp(0.8rem, 1rem, 1.5rem);
  margin: 0.5em 0 0;
  letter-spacing: 0.8em;	/*文字間隔を少しだけ広くする*/
  opacity: 0.7;		/*透明度。色が70%出た状態。*/
  color: #555;
  line-height: 1.4;   /* ← これを追加（デフォルトより少し詰まる） */

}

/* スマホ用にさらに高さを減らす */

@media screen and (max-width: 680px) {
  .hero2 {
    height: 30vh;
padding: 7em 10px 4em;
  }
}







/*タイトルバナー*/

.hero3 {
  position: relative;
  width: 100%;
  height: 60vh; /* 高さはお好みで調整 */
  display: flex;
  align-items: center;
  justify-content: left;
  text-align: left;
  padding-top: 130px;
}

.hero3-bg {
  position: absolute;
  width: 110%;
  height: 110%;
  object-fit: cover;
  top: 0;
  left: 0;
  z-index: 0;

  -ms-filter: blur(2px);
  filter: blur(2px); /*画像ぼかし*/
}

.hero3-text {
  color: #fff;
  z-index: 1;
  padding: 10vw;
 text-shadow: 10px 10px 30px #000 ,
-2px 2px 15px #000 ,
2px -2px 15px #000 ,
-2px -2px 15px #000 ; /**/
	letter-spacing: 0.2em;
}

.hero3-text p{
/*text-shadow: 2px 2px 15px #036EB8 ,
-2px 2px 15px #036EB8 ,
2px -2px 15px #036EB8 ,
-2px -2px 15px #036EB8; */
	letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/
}

.hero3-text h1 {
  font-size: clamp(2rem, 5rem, 2.8rem);
  font-weight: 700;
  margin: 0;
  letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/
  color: #F39B00;
  font-weight: 800;		/*文字の太さ。100から900まで指定可能。*/
}

.hero3-text h2 {
  font-size: clamp(0.8rem, 1rem, 1.5rem);
  opacity: 0.8;
  margin: 0em 0 0;
  letter-spacing: 0.8em;	/*文字間隔を少しだけ広くする*/
  opacity: 0.7;		/*透明度。色が70%出た状態。*/
  color: #F39B00;

}

/* スマホ用にさらに高さを減らす */
@media screen and (max-width: 600px) {
  .hero3 {
    height: 45vh;
padding: 7em 0 2em;
  }
}

@media screen and (max-width: 700px) {
  .hero3 {
    height: 50vh;
padding: 7em 0 2em;
  }
}






/*企業理念*/

.CI {
  width: 100%;
  padding: 0px;
  display: flex;
  justify-content: center;
  box-sizing: border-box;
}

.CI-text {
  color: #555;
  z-index: 1;
  padding: 1em;
}

.CI-text p{
	letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/
  text-align: left;
  font-size: clamp(0.8rem, 2.0rem, 1.5rem);

  line-height: 1.8;
}

.CI-text h1 {
  font-size: clamp(2rem, 3vw, 2.5rem);
  font-weight: 800;
  margin: 0 0 0.5em;
  letter-spacing: 0.15em;
  color: #555;
  text-align: left;
  display: flex; /* ← 横並びにする */
  align-items: baseline; /* ← ベースラインを揃える */
  gap: 0.3em; /* 日本語と英語の間の余白 */
}

.CI-text h1 .sub-en {
  font-size: 0.5em;
  color: #9B111E;
  font-weight: 400;
  opacity: 0.8;
  letter-spacing: 0.2em;
}

.CI-text h2 {
  font-size: clamp(0.8rem, 1.5rem, 2.5rem);
  opacity: 0.8;
  margin: 0em 0 0;
  letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/
  color: #555;
  text-align: left; /* ← 念のため指定 */

}




/*区切り線*/

.cp_hr01 {
	border-width: 2px 0 0 0;
	border-style: solid;
	border-color: #9B111E;
  margin: 5em 0;
}

.cp_hr02 {
	border-width: 3px 0 0 0;
	border-style: solid;
	border-color: #9B111E;
  margin: 2em 0;
}

.cp_hr06 {
	position: relative;
	height: 1px;
	border-width: 0;
	background-image: -webkit-linear-gradient(left,
	transparent 0%,#283593 50%,transparent 100%);
	background-image:         linear-gradient(90deg,
	transparent 0%,#283593 50%,transparent 100%);
}



/*会社概要*/

.overview {
  border-collapse: collapse;
  width: 100%;
  max-width: 700px;
  margin: 0 auto; /* ← これだけで中央寄せになる！ */
  text-align: left;
}
.overview th, .overview td {
  border-bottom: 2px solid #c1c7c6;
  padding: 1em;
}
.overview th {
  border-bottom: 2px solid #9B111E;
  font-weight: bold;
  text-align: center;
  width: 20%;
  min-width: 8em;
}



/*ニュース一覧*/

.news-list {
  max-width: 1000px;
  list-style: none;
  margin: 0 auto;
  padding: 0;
  width: 100%;   /* 横幅いっぱい使う */
}

.news-list .item {
  border-bottom: 1px solid #CCC;
}

.news-list .item:first-child {
  border-top: 1px solid #CCC;
}

.news-list .item a {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding: 20px 0;
  text-decoration: none;
  color: #555;
  letter-spacing: 0.1em;	/*文字間隔を少しだけ広くする*/
  text-align: left;
}

.news-list .meta {
  display: flex;
  align-items: center;
  min-width: 200px;  /* 左側の固定幅 */
}

.news-list .date {
  font-size: 16px;
  color: #999;
  margin-right: 10px;
}


.news-list .title {
  font-size: 1rem;
  margin: 0;
  flex: 1;  /* 残り全部使う */
  font-weight: bold;
}

/* スマホ用：縦並びに切り替え */
@media screen and (max-width: 600px) {
  .news-list .item a {
    flex-direction: column;
    align-items: flex-start;
  }

  .news-list .meta {
    margin-bottom: 10px;
    min-width: auto;
  }

  .news-list .title {
    flex: none;
  }
}

* {
  box-sizing: border-box;
}


/*ブロック内のspan。日付の横のアイコン的な部分の共通設定*/
.news-list dt span {
	display: inline-block;
	text-align: center;
	line-height: 1.8;		/*行間（アイコンの高さ）*/
	border-radius: 3px;		/*角を丸くする指定*/
	width: 9rem;			/*幅。６文字分。*/
	transform: scale(0.8);	/*80%のサイズに縮小*/
	background: #fff;		/*背景色*/
	color:#555;				/*文字色*/
}

/*icon-bg1*/
.news-list .icon-bg1 {
	background: var(--primary-color) !important;	/*背景色。css冒頭で指定しているprimary-colorを読み込みます*/
	color: var(--primary-inverse-color) !important;	/*文字色。css冒頭で指定しているprimary-inverse-colorを読み込みます*/
}

/*icon-bg2*/
.news-list .icon-bg2 {
	background: #809ba2;	/*背景色*/
	color: #fff;			/*文字色*/
}

/*icon-bg3*/
.news-list .icon-bg3 {
	background: #eeece7;	/*背景色*/
	color: #555;			/*文字色*/
}




/* ニュース詳細 */

.news-detail {
  max-width: 800px;
  margin: 0 auto;
  padding: 70px 20px 0px;
  color: #333;
  display: block;
  min-height: 400px;
}

.news-title {
  font-size: 2rem;
  font-weight: bold;
  color: #222;
  margin-bottom: 1rem;
  text-align: left;
}

.news-date {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  text-decoration: none;
  color: #555;
  letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/
  font-weight: 900;		/*文字の太さ。100から900まで指定可能。*/
  text-align: left;
}

.news-meta {
  font-size: 0.9rem;
  color: #666;
  margin-bottom: 2rem;
  display: flex;
  gap: 1em;
  align-items: center;
}


.news-category {
  display: inline-block;
  text-align: center;
  line-height: 1.8;
  border-radius: 3px;
  width: 9rem;
  transform: scale(0.8);
  background: #fff;
  color: #555;
}

/* 背景色バリエーション */
.icon-bg1 {
  background: var(--primary-color);
  color: var(--primary-inverse-color);
}

.icon-bg2 {
  background: #809ba2;
  color: #fff;
}

.icon-bg3 {
  background: #eeece7;
  color: #555;
}

.news-body p {
  line-height: 1.8;
  margin-bottom: 1.5rem;
}

.news-body h2 {
  font-size: 1.3rem;
  margin: 2rem 0 1rem;
  color: #9B111E;
}

@media screen and (max-width: 600px) {
  .news-detail {
    padding: 40px 15px;
  }

  .news-title {
    font-size: 1.5rem;
  }

  .news-body h2 {
    font-size: 1.1rem;
  }
}

.news-body img {
  display: block;       /* ブロック要素にする */
  margin: 3em auto;       /* 左右のマージンを自動で中央寄せ */
  width: 1wm;      /* 画面幅に合わせて縮小 */
  height: auto;         /* アスペクト比を維持 */
}


@media screen and (max-width: 1200px) {

.title-box {
  padding-top: 120px;
} }



.news-body a {
	color: #9B111E;
  text-decoration: underline;
	transition: 0.3s;	/*hoverまでにかける時間。0.3秒。*/
}

/*マウスオン時*/
a:hover {
	text-decoration: none;	/*下線を消す*/
	color: var(--primary-color);	/*文字色。css冒頭で指定しているprimary-colorを読み込みます*/
}


/* indexのタイトルの上余白 */
.toph2 h2 {
	padding-top: 1rem;
}


/* 戻るボタン */

.backbutton {
    margin-top: 3rem;  /* 上に余白 */
    text-align: left;  /* ボタン自体を左寄せ */
	font-size: 85%;
}

.backbutton a {
    background: none;  /* アクセントカラー */
    border-radius: 50px;
    position: relative;
    display: flex;
    justify-content: center;  /* 文字を中央に配置 */
    align-items: center;
    width: 120px;  /* 固定幅 */
    height: 45px;
    padding: 10px 25px;
    color: #9B111E;
    transition: 0.3s ease-in-out;
    font-weight: 500;		/*文字の太さ。100から900まで指定可能。*/
    text-decoration: none;
  letter-spacing: 0.2em;	/*文字間隔を少しだけ広くする*/

	border: 2px solid #9B111E;	/*枠線の幅、線種、色*/
}

.backbutton a:hover {
    background: #9B111E;
    color: #FFF;
}

.backbutton a:before {
    content: '';
    width: 5px;
    height: 5px;
    border-top: 3px solid #9B111E;
    border-left: 3px solid #9B111E;
    transform: rotate(-45deg) translateY(-50%);
    position: absolute;
    top: 50%;
    left: 20px;  /* 矢印は常に左側に固定 */
    border-radius: 1px;
    transition: 0.3s ease-in-out;
}

.backbutton a:hover:before {
    border-color: #fff;
}



/*企業ページロゴが入ったブロック*/
businesstop .image {
	width: 200px;	/*ボックス幅*/
	text-align: center;	/*中身をセンタリング*/
  margin-top: 1rem; /* 上の余白 */
}

	/*画面幅500px以下の追加指定*/
	@media screen and (max-width:500px) {

	businesstop .image {
		width: auto;	/*ボックス幅*/
	}
	businesstop .image img {
		width: 80px;
	}

	}/*追加指定ここまで*/





//* 事業紹介ページ *//


/* タイトルセクション */
.amusement-title {
  padding-top: 60px;
  margin-bottom: 3rem;
}

/* タイトルボックス全体 */
.title-box {
  padding-top: 70px;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  gap: 1.5rem;
}

.title-inner{
  max-width: 1000px;   /* お好みの幅 */
  margin: 0 auto;      /* 画面中央に配置 */
  padding: 0 16px;     /* 端の逃げ */
}


/* ロゴと見出しを横並びに */
.logo-and-title {
 display: flex;
  align-items: center;
  justify-content: center; /* 横方向中央寄せ */
  gap: 1rem; /* 均等な間隔 */

margin-left: -5rem;
}

/* ロゴ画像サイズ調整 */
.title-logo img {
  width: clamp(60px, 10vw, 180px);
  height: auto;
  display: block;
  margin-right: 1.5rem;
}

/* 見出しテキスト（アミューズメント） */
.title-text h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 800;
  text-align: center;
  color: #F39B00;
  margin: 0;
  letter-spacing: 0.15em;
}

.title-text h2 {
  font-size: clamp(1rem, 1.2vw, 1.2rem);
  text-align: center;
  color: #666;
  letter-spacing: 0.2em;

margin-top: -30px;
  margin-bottom: 2rem;
}

.title-text h3 {
  font-size: clamp(1rem, 1.5vw, 2rem);
  text-align: left;
  margin-top: -1.5rem;
  color: #666;
  letter-spacing: 0.2em;
}



/* 見出しテキスト（ホテル） */
.title2-text h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 800;
  text-align: center;
  color: #591E5B;
  margin: 0;
  letter-spacing: 0.15em;
}

.title2-text h2 {
  font-size: clamp(1rem, 1.2vw, 1.2rem);
  text-align: center;
  color: #666;
  letter-spacing: 0.2em;

margin-top: -10px;
  margin-bottom: 2rem;
}

.title2-text h3 {
  font-size: clamp(1rem, 1.5vw, 2rem);
  text-align: left;
  margin-top: -1.5rem;
  color: #666;
  letter-spacing: 0.2em;
}



/* 見出しテキスト（あさま） */
.title3-text h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 800;
  text-align: center;
  color: #602D1D;
  margin: 0;
  letter-spacing: 0.15em;
}

.title3-text h2 {
  font-size: clamp(1rem, 1.2vw, 1.2rem);
  text-align: center;
  color: #666;
  letter-spacing: 0.2em;

margin-top: -10px;
  margin-bottom: 2rem;
}

.title3-text h3 {
  font-size: clamp(1rem, 1.5vw, 2rem);
  text-align: left;
  margin-top: -1.5rem;
  color: #666;
  letter-spacing: 0.2em;
}



/* 見出しテキスト（リサイクル） */
.title4-text h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 800;
  text-align: center;
  color: #009443;
  margin: 0;
  letter-spacing: 0.15em;
}

.title4-text h2 {
  font-size: clamp(1rem, 1.2vw, 1.2rem);
  text-align: center;
  color: #666;
  letter-spacing: 0.2em;

margin-top: -10px;
  margin-bottom: 2rem;
}

.title4-text h3 {
  font-size: clamp(1rem, 1.5vw, 2rem);
  text-align: left;
  margin-top: -1.5rem;
  color: #666;
  letter-spacing: 0.2em;
}



/* 見出しテキスト（太陽光発電） */
.title5-text h1 {
  font-size: clamp(1rem, 5vw, 3.5rem);
  font-weight: 800;
  text-align: center;
  color: #40a2d3;
  margin: 0px;
  letter-spacing: 0.15em;
}

.title5-text h2 {
  font-size: clamp(1rem, 1.2vw, 1.2rem);
  text-align: center;
  color: #666;
  letter-spacing: 0.2em;

margin-top: -10px;
  margin-bottom: 2rem;
}

.title5-text h3 {
  font-size: clamp(1rem, 1.5vw, 2rem);
  text-align: left;
  margin-top: -1rem;
  color: #666;
  letter-spacing: 0.2em;
}



/* 見出しテキスト（事業用物件募集） */
.title6-text h1 {
  font-size: clamp(1rem, 5vw, 3.5rem);
  font-weight: 800;
  text-align: center;
  color: #ec6d81;
  margin: 0px;
  letter-spacing: 0.15em;
}

.title6-text h2 {
  font-size: clamp(1rem, 1.2vw, 1.2rem);
  text-align: center;
  color: #666;
  letter-spacing: 0.2em;

margin-top: -15px;
  margin-bottom: 2rem;
}

.title6-text h3 {
  font-size: clamp(1rem, 1.5vw, 2rem);
  text-align: left;
  margin-top: -1rem;
  color: #666;
  letter-spacing: 0.2em;
}






/* =========================================
   トップページ専用メインバナー（高さ固定）
   ========================================= */

.main-image {
  position: relative;
  width: 100%;
  height: 500px;          /* ← ここを変更すると高さを調整できます */
  overflow: hidden;       /* 画像がはみ出さないようにする */
}

.main-image img {
  width: 100%;
  height: 100%;           /* ← 枠いっぱいにフィット */
  object-fit: cover;      /* ← 画像を縦横比を維持してトリミング */
  display: block;
}

@media (max-width: 768px) {
  .main-image {
    height: 250px; /* スマホ時の高さ（例） */
  }
}






/* リード文 */
.lead-text {
  max-width: 900px;
  margin: 0.5rem auto 0;
  margin-top: 0.5rem;
  color: #555;
  font-size: 1rem;
  line-height: 1.8;
}

/* メイン画像（背景画像または通常画像共通） */
.main-image {
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;                    /* ← フルブリード化 */
  background-size: cover;          /* 全体を覆うように拡大・切り取り */
  background-position: center;     /* 中央を基準に表示 */
  background-repeat: no-repeat;    /* 繰り返し防止 */
  margin-bottom: 1em;
  max-height: 80vh;                /* ← 画面の高さ80%までに制限（任意） */
}

/* 画像タグを使う場合 */
.main-image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* スマホ対応 */


@media screen and (max-width: 1200px) {

.title-box {
  padding-top: 105px;
}

}


@media screen and (max-width: 785px) {

.title-box {
  padding-top: 100px;
}

.title-text h2 {
margin-top: -20px;
}


}


@media screen and (max-width: 699px) {

  .main-image {
    height: 150px;               /* スマホは高さを低く */
    background-position: top;    /* 上寄せ表示にする例 */
}

.title-box {
  padding-top: 60px;
}

.title-text h1 {
margin-bottom: 3px;
}

.title2-text h1 {
margin-bottom: 4px;
}

.title3-text h1 {
margin-bottom: 4px;
}

.title4-text h1 {
margin-bottom: 4px;
}

.title5-text h1 {
margin-bottom: 4px;
}

.title6-text h1 {
margin-bottom: 2px;
}

}


/* スマホでは中央に */
@media screen and (max-width: 768px) {
  .logo-and-title {
    margin-left: 0 !important;          /* ←コレ */
    justify-content: center !important;
    align-items: center !important;
  }
  .title-logo img { margin-right: 0 !important; }
  .title-text h3   { text-align: left !important; }
}





///* 画像右、文章左セクション *///

:root {
  --brand: #9B111E;
  --container: 1200px;
}

/* セクション外枠 */
.feature {
  padding: 1rem 2vw;
}
.feature .media {
  max-width: none;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 3rem;
  text-align: left; /* テキストは左揃え */
}

/* 左：テキスト（可変）を中央配置 */
.media__body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;               /* 中央寄せ用にflex化 */
  justify-content: center;     /* 横方向中央寄せ */
  align-items: center;         /* 縦方向中央寄せ */
}
.media__inner {
  max-width: 56ch;   /* 可読幅を制限（任意） */
  line-height: 1.9;
  color: #444;
}

/* タイトルの赤い■ */
.feature__title {
  position: relative;
  font-size: clamp(1.4rem, 2vw, 1.8rem);
  font-weight: 700;
  margin: 0 0 1rem;
  color: var(--brand);
}
.feature__title::before {
  content: "■";
  margin-right: .6rem;
  color: var(--brand);
}


/* 右：画像（固定幅） */
.media__image {
  flex: 0 0 700px; /* 固定幅 */
  margin: 0;

  width: 100%;
  height: 400px;       
  overflow: hidden;  
}

.media__image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* 余白・タイポ */
.feature p { margin: 0; }

/* 逆配置用 */
.media--reverse { flex-direction: row-reverse; }

/* スマホ：縦積み＋余白を詰める */
@media (max-width: 1024px) {
  .feature .media {
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;             /* ← セクション内の間隔も少し詰める */
  }

  /* 画像コンテナの高さをモバイル用に */
  .media__image {
    flex-basis: auto;
    width: 100%;
    height: 240px;         /* ← ここがポイント。必要なら 180〜240px で調整 */
    overflow: hidden;
  }
  .media__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;     /* 余白が出ないようにトリミング */
  }

  /* パディングも少し控えめに（任意） */
  .feature {
    padding: .75rem 4vw;
  }


  /* ★ このセクションだけ「画像を横幅に合わせて自然な高さ」にする */
  .right-image-section--autoimg .media__image {
    height: auto;        /* 高さ固定をやめる */
    overflow: visible;   /* （はみ出し防止も不要なら解除） */
  }
  .right-image-section--autoimg .media__image img {
    width: 100%;
    height: auto;        /* 横幅に合わせて縦が伸びる */
    object-fit: contain; /* 念のため：トリミングせず全部見せる */
  }
}

/* --- 強制パッチ：見出しを常にブランド赤に --- */
/* 置き場所：CSSファイルの一番最後（@media の後） */

:root { --brand: #9B111E; } /* 念のため再宣言 */

.right-image-section .feature__title,
.left-image-section  .feature__title {
  color: var(--brand) !important;
  -webkit-text-fill-color: var(--brand) !important; /* WebKit系の上書きに勝つ */
}

.right-image-section .feature__title::before,
.left-image-section  .feature__title::before {
  color: var(--brand) !important;
}




/* ▼ JSが効いてるときだけ初期状態を隠す（プログレッシブエンハンス） */
.js .right-image-section,
.js .left-image-section {
  opacity: 0;
  transform: translateY(50px);
  transition: transform 0.8s ease-out, opacity 0.8s ease-out;
  will-change: transform, opacity; /* パフォーマンス向上 */
}

/* ▼ 画面に入ったらスッと上がって出現 */
.js .right-image-section.animate,
.js .left-image-section.animate {
  opacity: 1;
  transform: translateY(0);
}

/* （任意）子要素をちょい遅らせて段階的に出す */
.js .right-image-section .text,
.js .left-image-section .text {
  transition-delay: 0.05s;
}
.js .right-image-section .image,
.js .left-image-section .image {
  transition-delay: 0.15s;
}

/* （アクセシビリティ）動きを減らす設定の人にはアニメ無効化 */
@media (prefers-reduced-motion: reduce) {
  .js .right-image-section,
  .js .left-image-section {
    transition: none;
    transform: none;
    opacity: 1;
  }
}





//* 店舗一覧表示 *//

/*--------------------------------------
  カード型_01
--------------------------------------*/
.l-wrapper_01 {
  margin: 1rem auto;
  width: 95%;
}

/* グリッドレイアウト（現在は4列） */
.cards-container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

/* スマホで1列表示 */
@media screen and (max-width: 1024px) {
  .cards-container {
    grid-template-columns: 1fr;
  }
}

.l-wrapper_01:hover {
  transform: translateY(-3px);
  box-shadow: 0 7px 14px rgba(50,50,93,.1), 0 3px 6px rgba(0,0,0,.04);
  transition: all .5s;
}

.card_01 {
  background-color: #fff;
  box-shadow: 0 0 8px rgba(0, 0, 0, .16);
  color: #212121;
  text-decoration: none;

  /* タイトルのコンテナクエリ用 */
  container-type: inline-size;
}

/* ─────────────────────────────
   ヘッダー：上＝画像、下＝タイトル（ロゴ＋店名）
   ───────────────────────────── */
.card__header_01{
  display: grid;
  grid-template-areas:
    "thumb"
    "title";                /* 1段目：画像、2段目：タイトル */
}

.card__thumbnail_01 { grid-area: thumb; }
.card__title_01     {
  grid-area: title;

  /* ふだんはロゴ｜店名を横並び（改行しない） */
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;          /* 縦位置合わせ */
  column-gap: .5rem;
  row-gap: .25rem;

  padding: 1rem 1.5rem 0;
  margin-bottom: .6rem;
  font-weight: bold;
  text-align: left;             /* 左寄せ */
}

/* ロゴだけ改行するのは“かなり狭い時だけ”にする（320px以下） */
@container (max-width: 320px) {
  .card__title_01 { grid-template-columns: 1fr; }
}
/* 保険（コンテナ未対応端末） */
@media (max-width: 320px) {
  .card__title_01 { grid-template-columns: 1fr; }
}

/* ロゴ：縦だけ固定（比率維持） */
.card__logo_01{
  height: 30px;
  width: auto;
  object-fit: contain;
  vertical-align: middle;
  justify-self: start;          /* 左寄せ */
}

/* 店名：通常は1.6rem（以前と同サイズ）、左揃え・改行禁止・省略しない */
.shop-name{
  justify-self: start;          /* 左寄せ */
  max-width: 100%;
  white-space: nowrap;          /* 改行しない */
  overflow: visible;            /* 省略しない */
  text-overflow: clip;
  word-break: keep-all;
  overflow-wrap: normal;

  font-size: 1.6rem;            /* 通常サイズ */
  line-height: 1.25;
}

/* ほんとうに狭いときだけ少しだけ縮小（最小 1.0rem） */
@container (max-width: 320px) {
  .shop-name{
    font-size: clamp(1.2rem, 6cqw, 1.6rem);

padding-top: 0.5rem;
  }
}
@supports not (font-size: 1cqw) {
  @media (max-width: 320px) {
    .shop-name{ font-size: clamp(1.0rem, 3.8vw, 1.6rem); }
  }
}


/* -------------------------------
   画像エリア：高さ固定＋cover
   ------------------------------- */
.card__thumbnail_01 {
  margin: 0;
  width: 100%;
  height: 220px;                /* 固定高（必要なら調整） */
  overflow: hidden;
}
.card__image_01 {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;            /* 縦横比維持＋トリミング */
}

/* 店舗情報（住所・電話・営業時間）左揃え */
.card__body_01 {
  padding: 0 1.5rem;
  text-align: left;
}
.card__text2_01 {
  font-size: clamp(0.95rem, 1.2vw, 1rem);  /* 可変フォントサイズに変更 */
  margin-top: 0;
  margin-bottom: 2rem;
  padding-top: 0.8rem;
  padding-bottom: 1rem;
  line-height: 1.8;
  text-align: left;
  color: #444;
  letter-spacing: 0.1em;

  /* はみ出し防止 */
  white-space: normal;      /* 自然に折り返す（nowrapは禁止） */
  overflow-wrap: break-word;/* 長い単語やURLも強制的に折り返す */
  word-break: break-word;   /* ブラウザによってはこれも必要 */
}

/* フッター（ボタン） */
.card__text_01 {
  font-size: .9rem;
  text-align: center;
  text-decoration: none;
  padding-bottom: 0;
}
.card__text_01 + .card__text_01 { margin-top: .5rem; }
.card__footer_01 {
  padding: 1rem;
  border-top: 1px solid #ddd;
}

/* ボタン */
.button_01 {
  display: inline-block;
  text-decoration: none;
  transition: background-color .3s ease-in-out;
  text-align: center;
}
.button_01 a { text-decoration: none; }
.button_01.-compact {
  padding: .5rem 1rem;
  border-radius: .25rem;
  background-color: #9B111E;
  color: #fff;
  font-weight: bold;
  text-decoration: none;
}
.button_01.-compact:hover,
.button_01.-compact:focus { background-color: #b83542; }








//* 画像のリンクにホバーアニメ *//

/* 画像リンクのラッパー側：はみ出し防止＆合成境界 */
.imglink {
  display: inline-block;
  overflow: hidden;           /* scaleでハミ出すのを切る（再レイアウト防止） */
  contain: paint;             /* ペイント分離で無駄な再描画を抑制（対応ブラウザ） */
}

/* 画像：GPU合成に載せ、変化はtransform/opacityだけに限定 */
.imglink img {
  display: block;             /* 余計なインライン隙間を消す */
  will-change: transform, opacity;
  transform: translateZ(0);   /* 合成レイヤー化のキッカケ */
  transition: transform .45s ease-out, opacity .45s ease-out;
  backface-visibility: hidden;
}

/* hover効果：古いIEフィルタは削除 */
.imglink a:hover img {
  opacity: .8;                /* 薄く */
  transform: scale(1.04);     /* 少し拡大（重ければ1.02に） */
}

/* （推奨）親カードでopacityを同時にアニメしない
.l-wrapper_01:hover .card_01 { opacity: .75; } ← これは外すか、0.95程度に弱める */






/* ========= 店舗基本情報（table） ========= */

.table-wrap {
  width: 100%;
  overflow-x: auto;                /* 画面が狭い時は横スクロール */
  -webkit-overflow-scrolling: touch;

}

.store-info {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 14px;
  line-height: 1.7;
  color: #222;
  background: #fff;
  text-align: left;                /* 左揃え */
  min-width: 560px;                /* 狭い画面でも表の体裁維持（横スクロールへ逃がす） */
}

/* 見出し（caption） */
.store-info caption {
  text-align: left;
  font-weight: 700;
  font-size: 18px;
  padding: 12px 0 14px;
  color: #222;
}
.store-info caption::before{
  content:"";
  display:inline-block;
  width:6px;
  height:18px;
  background:#9B111E;
  margin-right:10px;
  vertical-align:-3px;
  border-radius:2px;
}

/* 左列（ラベル） */
.store-info th {
  width: 180px;
  white-space: nowrap;
  background: #fafafa;
  color: #555;
  font-weight: 600;
  border: 1px solid #e5e5e5;
  padding: 12px 14px;
  vertical-align: top;
  text-align: left;

  /* スマホで縦書き化や回転指定があっても強制的に横書きに */
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  transform: none !important;
}

/* 右列（値） */
.store-info td {
  border: 1px solid #e5e5e5;
  padding: 12px 16px;
  vertical-align: top;
  background: #fff;
  text-align: left;
}

/* 補足テキスト */
.store-note {
  display: block;
  color: #777;
  font-size: 12px;
  margin-top: 6px;
}

/* Googleマップ */
.store-map {
  width: 100%;
  height: 260px;
  border: 0;
  display: block;
}


/* ========== スマホ：タイトル→本文→タイトル→本文（縦積み／フラット） ========== */
@media (max-width: 640px) {

  /* ラッパは横スクロール不要に */
  .table-wrap {
    overflow-x: visible !important;
    -webkit-overflow-scrolling: touch;
  }

  /* 表本体：外枠ナシ／横スクロール抑止 */
  .store-info {
    width: 100%;
    border: none !important;
    border-collapse: separate;
    border-spacing: 0;
    min-width: 0; /* スマホでは横スクロールさせない */
  }

  /* 行は縦積み・余白のみ／枠・角丸・影は消す */
  .store-info tbody { display: block; }
  .store-info tr {
    display: block;
    margin: 0 0 12px 0;  /* 行間の余白だけ残す */
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible;
    background: transparent;
  }

  /* 見出し（th）：横書き固定・下線のみ */
  .store-info th {
    display: block;
    width: 100%;
    padding: 10px 12px;
    background: #f7f7f7;
    color: #13131e;
    font-weight: 700;
    text-align: left;
    border: none !important;
    border-bottom: 1px solid #eee;

    /* 縦書き化や回転指定を強制解除 */
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    transform: none !important;

    white-space: normal;
    word-break: break-word;
  }

  /* 本文（td）：フラット・枠線なし */
  .store-info td {
    display: block;
    width: 100%;
    padding: 10px 12px;
    background: #fff;
    color: #595960;
    text-align: left;
    border: none !important;
    border-top: 0;
  }

  /* 擬似ラベル（カード型で使われがち）を無効化 */
  .store-info td::before {
    content: none !important;
  }
}







/* ========= リサイクル許認可テーブル ========= */

.table-wrap2 {
  width: 100%;
  overflow-x: auto;                /* 画面が狭い時は横スクロール */
  -webkit-overflow-scrolling: touch;
margin: 1em 0 3em; 
}

.store-info {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 14px;
  line-height: 1.7;
  color: #222;
  background: #fff;
  text-align: left;                /* 左揃え */
  min-width: 560px;                /* 狭い画面でも表の体裁維持（横スクロールへ逃がす） */
}

/* 見出し（caption） */
.store-info caption {
  text-align: left;
  font-weight: 700;
  font-size: 18px;
  padding: 12px 0 14px;
  color: #222;
}
.store-info caption::before{
  content:"";
  display:inline-block;
  width:6px;
  height:18px;
  background:#9B111E;
  margin-right:10px;
  vertical-align:-3px;
  border-radius:2px;
}

/* 左列（ラベル） */
.store-info th {
  width: 220px;
  white-space: nowrap;
  background: #fafafa;
  color: #555;
  font-weight: 600;
  border: 1px solid #e5e5e5;
  padding: 12px 14px;
  vertical-align: top;
  text-align: left;

  /* スマホで縦書き化や回転指定があっても強制的に横書きに */
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  transform: none !important;
}

/* 右列（値） */
.store-info td {
  border: 1px solid #e5e5e5;
  padding: 12px 16px;
  vertical-align: top;
  background: #fff;
  text-align: left;
}

/* 補足テキスト */
.store-note {
  display: block;
  color: #777;
  font-size: 12px;
  margin-top: 6px;
}

/* Googleマップ */
.store-map {
  width: 100%;
  height: 260px;
  border: 0;
  display: block;
}


/* ========== スマホ：タイトル→本文→タイトル→本文（縦積み／フラット） ========== */
@media (max-width: 640px) {

  /* ラッパは横スクロール不要に */
  .table-wrap2 {
  width: 100%;
    overflow-x: visible !important;
    -webkit-overflow-scrolling: touch;
  }

  /* 表本体：外枠ナシ／横スクロール抑止 */
  .store-info {
    width: 100%;
    border: none !important;
    border-collapse: separate;
    border-spacing: 0;
    min-width: 0; /* スマホでは横スクロールさせない */
  }

  /* 行は縦積み・余白のみ／枠・角丸・影は消す */
  .store-info tbody { display: block; }
  .store-info tr {
    display: block;
    margin: 0 0 12px 0;  /* 行間の余白だけ残す */
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible;
    background: transparent;
  }

  /* 見出し（th）：横書き固定・下線のみ */
  .store-info th {
    display: block;
    width: 100%;
    padding: 10px 12px;
    background: #f7f7f7;
    color: #13131e;
    font-weight: 700;
    text-align: left;
    border: none !important;
    border-bottom: 1px solid #eee;

    /* 縦書き化や回転指定を強制解除 */
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    transform: none !important;

    white-space: normal;
    word-break: break-word;
  }

  /* 本文（td）：フラット・枠線なし */
  .store-info td {
    display: block;
    width: 100%;
    padding: 10px 12px;
    background: #fff;
    color: #595960;
    text-align: left;
    border: none !important;
    border-top: 0;
  }

  /* 擬似ラベル（カード型で使われがち）を無効化 */
  .store-info td::before {
    content: none !important;
  }
}











/* ============================================================
   Kyowa Corporate — History Timeline（交互＋左列右寄せ＋方向別アニメ）
   ※ これを CSS の末尾にそのまま貼り付け。既存の重複は不要です。
   ============================================================ */

/* ---- 基本（共通） ------------------------------------------------ */
.history{
  --rail-x: 50%;      /* 交互レイアウト時は中央レール。通常ページはpxでもOK */
  --rail-w: 3px;
  --dot-size: 16px;
  --gap: 60px;        /* レールからテキストまでの距離 */
  --dot-top: 46px;    /* ドット縦位置（見出し高さに合わせる） */

  width: min(960px, 92%);
  margin: 64px auto;
  position: relative;
  text-align: left;
}

/* レール */
.history::before{
  content:"";
  position:absolute;
  top:0; bottom:0;
  left: calc(var(--rail-x) - var(--rail-w)/2);
  width: var(--rail-w);
  background:#9B111E;
  border-radius:2px;
}

/* 各年ブロック（単一カラム時の既定） */
.h-item{
  position:relative;
  width:100%;
  padding-top:28px; padding-bottom:28px;
  padding-left: calc(var(--rail-x) + var(--gap));
}

/* ドット */
.h-item::before{
  content:"";
  position:absolute;
  left: var(--rail-x);
  top: var(--dot-top);
  width: var(--dot-size); height: var(--dot-size);
  background:#fff;
  border:3px solid #9B111E;
  border-radius:50%;
  transform: translate(-50%, -50%);
  box-shadow:0 0 0 3px #fff;
}

/* タイポ等 */
.h-inner{ display:flex; flex-direction:column; align-items:flex-start; gap:10px; max-width:720px; margin-right:auto; }
.h-year { margin:0; font-weight:800; font-size:clamp(20px,6vw,28px); line-height:1.2;
          font-family:"Noto Sans JP","Yu Gothic",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; color:#9B111E; letter-spacing:.06em; }
.h-title{ margin:2px 0 0; font-weight:700; color:#444; font-size:clamp(16px,2.2vw,18px); }
.h-text { margin:0; color:#666; line-height:1.9; font-size:15px; letter-spacing:.02em; }
.h-media{ margin-top:6px; border-radius:10px; overflow:hidden; background:#f5f6f7; }
.h-media img{ display:block; width:100%; height:220px; object-fit:cover; }
.h-media:empty{ display:none; }

/* 既存の汎用アニメを無効化（交互レイアウトで方向指定するため） */
.h-item .h-inner{ opacity:1; transform:none; animation:none; }

/* ---- 交互レイアウト（history--alt が付いたときだけ有効） --------- */
@media (min-width:768px){
  .history--alt{
    --rail-x: 50%;  /* 中央 */
    --gap: 36px;
  }
  .history--alt::before{ left: calc(var(--rail-x) - var(--rail-w)/2); }

  /* グリッドに切り替え（左右2列＋中央ギャップ列） */
  .history--alt .h-item{
    display:grid;
    grid-template-columns: minmax(0,1fr) var(--gap) minmax(0,1fr);
    padding-left: 0 !important;           /* 単一カラム時の余白を打消し */
    padding-right: 0 !important;
    padding-top:32px; padding-bottom:32px;
  }
  .history--alt .h-item::before{ left: var(--rail-x); } /* ドットは中央のまま */

  /* 右列（奇数行 1,3,5…） */
  .history--alt .h-item:nth-child(odd) .h-inner{
    grid-column: 3;                        /* 右列に配置 */
    text-align: left;
    align-items: flex-start;
    padding-left: var(--gap);              /* レールとの距離 */
    padding-right: 0;
    margin: 0;
  }
  .history--alt .h-item:nth-child(odd) .h-media{ margin-right: auto; }

  /* 左列（偶数行 2,4,6…）＝右寄せにする */
  .history--alt .h-item:nth-child(even) .h-inner{
    grid-column: 1;                        /* 左列に配置 */
    text-align: right;                     /* 文字右寄せ */
    align-items: flex-end;                 /* 要素を右端へ */
    justify-self: end;                     /* ブロック自体も右寄せ */
    padding-right: var(--gap);             /* レールとの距離 */
    padding-left: 0;
    margin: 0;
  }
  .history--alt .h-item:nth-child(even) .h-media{ margin-left: auto; }

  /* ------- 方向別アニメ（view-timeline対応） ------- */
  @supports (animation-timeline: view()){
    /* 初期状態リセット */
    .history--alt .h-item .h-inner{ opacity:0; }
    /* 右列（奇数）＝ 左→右へ入る */
    .history--alt .h-item:nth-child(odd) .h-inner{
      transform: translateX(-24px);
      animation: slideFromLeft .7s ease-out both;
      animation-timeline: view();
      animation-range: entry 20% cover 30%;
    }
    /* 左列（偶数）＝ 右→左へ入る（ご要望） */
    .history--alt .h-item:nth-child(even) .h-inner{
      transform: translateX(24px);
      animation: slideFromRight .7s ease-out both;
      animation-timeline: view();
      animation-range: entry 20% cover 30%;
    }
  }
  @supports not (animation-timeline: view()){
    .history--alt .h-item .h-inner{ opacity:1; transform:none; animation:none; }
  }

  @keyframes slideFromLeft  { from{opacity:0; transform:translateX(-24px);} to{opacity:1; transform:translateX(0);} }
  @keyframes slideFromRight { from{opacity:0; transform:translateX( 24px);} to{opacity:1; transform:translateX(0);} }
}

/* ---- モバイル：単一カラムに降格 ---------------------------------- */
@media (max-width:767.98px){
  .history{ --rail-x: 20px; --gap: 36px; --dot-top: 43px; } /* 調整はここで */

  .history--alt .h-item{
    display:block;
    padding-left: calc(var(--rail-x) + var(--gap)) !important;
  }
  .history--alt .h-item::before{ left: var(--rail-x); }
  .history--alt .h-item .h-inner{
    text-align:left; align-items:flex-start;
    padding:0; margin:0; opacity:1; transform:none; animation:none;
  }
  .history--alt .h-item .h-media{ margin:0; }
}





/* =========================================================
   DX（テキスト主体・白背景）
   - 背景は白に戻す
   - 上下余白はコンパクトに
   - 見出しは中央＆ブランド色
   - 本文は左揃え、PDFリンクと画像は中央
   ========================================================= */

/* ヒーローバナー直下にDXが来るときの余白を詰める */
.blur + .dx {
  margin-top: 18px !important;   /* 必要なら 12px や 24px に調整 */
}

.dx{
  --brand: #9B111E;
  --rail: 960px;
  width: min(92%, var(--rail));
  margin: 0 auto 42px;           /* 下も少しだけ余白 */
  padding: 22px 0 8px;           /* 白背景で間延びしないように控えめ */
  text-align: center;            /* リンク・画像を中央寄せ */
  background: #fff;
}

/* 見出し（必要ならHTML側で <h2 class="dx-heading">…） */
.dx-heading{
  display: block;
  width: fit-content;
  margin: 0 auto 26px;
  text-align: center;
  position: relative;
  padding-bottom: 8px;
  font-weight: 900;
  font-size: clamp(26px, 5vw, 34px);
  color: var(--brand);
  letter-spacing: .08em;
}
.dx-heading::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:54px; height:3px;
  background: var(--brand);
  transform:translateX(-50%);
  border-radius:2px;
}
/* Safari 古め対応 */
@supports not (width: fit-content){
  .dx-heading{ display: table; }
}

/* 本文は読みやすく左寄せに戻す（画像・リンクは親で中央） */
.dx p{
  text-align: left;
  margin: 0 auto 1.1em;
  line-height: 1.8;
  color: #444;
  max-width: 820px;              /* 行が長くなりすぎるのを防ぐ */
  font-size: clamp(14.5px, 2.2vw, 16px);
}

/* PDFリンクを中央寄せ＆少し目立たせる */
.dx a{
  display: inline-block;
  margin: 10px auto 34px;
  text-decoration: none;
  color: var(--brand);
  font-weight: 600;
  border-bottom: 1px solid ;
  transition: all .25s ease;
  font-size: clamp(16px, 2.4vw, 20px); /* ★ここを追加：文字サイズを拡大 */
  letter-spacing: .08em;
}
.dx a:hover{
  border-bottom: 1px solid currentColor;
  opacity: .8;
}

/* 画像を中央揃えで横に並べる（PC） */
.dx img{
  display: inline-block;
  margin: 10px 20px 4px;
  max-width: 230px;       /* ロゴが大きすぎる時はここを調整 */
  height: auto;
  vertical-align: middle;
}

/* 区切り線を使いたいとき用（任意） */
.dx-sep{
  height: 18px;
  margin: 22px auto 18px;
  background:
    radial-gradient(circle at 50% 50%, var(--brand) 2px, transparent 2px)
    0 50% / 16px 4px repeat-x;
  opacity: .5;
  max-width: 720px;
}

/* レスポンシブ調整 */
@media (max-width: 640px){
  .dx{
    width: min(94%, var(--rail));
    margin-bottom: 34px;
    padding-top: 14px;
  }
  .dx p{
    max-width: none;
  }
  .dx img{
    display: block;
    max-width: 72%;
    margin: 12px auto 2px;
  }
}








/* =========================================================
   Wanted（交互・カードなし）
   - 画像と文章の左右入替 .wanted-row--reverse
   - 全体中央 / テキスト左揃え / モバイルは縦積み
   - 柔らかいグレー背景・ブランド赤 #9B111E
   ========================================================= */

.wanted{
  --brand: #9B111E;
  --bg-soft: #fafafa;
  --rail: 960px;            /* セクション最大幅 */
  --img-h: 100%;           /* 画像の高さ(PC) */
  width: min(92%, var(--rail));
  margin: 0px auto 12px;
  text-align: left;         /* 文字は左揃え */
}

/* 出店タイプ 見出しを常に中央配置に（親の text-align に影響されない） */
.wanted-heading{
  display: block;               /* ブロックにして… */
  width: fit-content;           /* 自分の内容幅だけに縮める */
  margin: 0px auto 36px;       /* 自分を中央へ */
  text-align: center;           /* 文字も中央 */
  position: relative;
  padding-bottom: 10px;
  font-weight: 900;
  font-size: clamp(28px, 5vw, 30px);
  color: #9B111E;
  letter-spacing: .08em;
}
.wanted-heading::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:60px; height:4px;
  background:#9B111E;
  transform:translateX(-50%);
  border-radius:2px;
}

/* Safari 旧環境向けフォールバック（fit-contentが効かない場合） */
@supports not (width: fit-content){
  .wanted-heading{ display: table; }   /* table要素は margin:auto で中央化できる */
}



/* 行（画像+本文） */
.wanted-row{
  display: grid;
  grid-template-columns: 1fr 1fr;     /* 左右2カラム */
  gap: clamp(20px, 4vw, 48px);
  align-items: start;
  padding: clamp(16px, 2vw, 24px);
  background: #fff;
  border-radius: 12px;
/*  box-shadow: 0 2px 12px rgba(0,0,0,.04); */
  margin: 2vw 0;
}
.wanted-row + .wanted-row{ margin-top: 28px; }

.wanted-row--reverse{ grid-auto-flow: dense; }
.wanted-row--reverse .wanted-img{ grid-column: 2; }
.wanted-row--reverse .wanted-body{ grid-column: 1; }

/* 画像 */
.wanted-img{
  height: var(--img-h);
  border-radius: 8px;
  overflow: hidden;
  background: #f5f5f5;
}
.wanted-img img{
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  transition: transform .5s ease, opacity .5s ease; /* ふわっと */
}
.wanted-img:hover img{ transform: scale(1.02); opacity: .96; } /* ふわっと拡大 */

/* 本文 */
.wanted-body{ display: flex; flex-direction: column; gap: 12px; }
.wanted-cat{
  margin: 0 0 6px;
  font-weight: 800; color: var(--brand);
  font-size: clamp(16px, 2.4vw, 18px);
}
.wanted-sub{
  margin: 10px 0 4px;
  font-weight: 700; color:#333;
  font-size: clamp(15px, 2.2vw, 16px);
  position: relative; padding-left: 1.2em;
text-align: left;
}

.wanted-list{ list-style: none; padding: 0; margin: 0 0 4px; }
.wanted-list li{
  color:#555; line-height: 1.9; position: relative;
  padding-left: 1.2em; margin: .12em 0;
}
.wanted-list li::before{
  content: "・"; position:absolute; left: 0; color: var(--brand); opacity:.6;
}

/* ③ 点線セパレータ */
.wanted-sep{
  height: 20px; margin: 26px auto;
  background:
    radial-gradient(circle at 50% 50%, var(--brand) 2px, transparent 2px) 0 50% / 16px 4px repeat-x;
  opacity: .7;
}

/* レスポンシブ：モバイルは縦積み（画像→本文） */
@media (max-width: 640px){
  .wanted{ width: min(94%, var(--rail)); }
  .wanted-row{
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .wanted-row--reverse .wanted-img,
  .wanted-row--reverse .wanted-body{ grid-column: auto; }
  .wanted-img{ height: 220px; }
  .wanted-hero__lead{ text-align: left; }
}







/* =============================================
   社会貢献活動ページ（CSR）整理版
   ============================================= */

/* 全体 */
.csr {
  width: min(1200px, 90%);
  margin: 0 auto;
  padding: 0;              /* 上のページタイトル側で余白を消しているのでここは0 */
  color: #444;
}

/* ページタイトル（使う場合） */
.csr__header {
  text-align: center;
  margin-bottom: 50px;
}
.csr__title {
  font-size: clamp(2rem, 4vw, 2.8rem);
  color: #9B111E;
  font-weight: 800;
  letter-spacing: 0.1em;
  margin-bottom: 0.8em;
}
.csr__lead {
  font-size: 1rem;
  line-height: 1.9;
  color: #666;
  max-width: 720px;
  margin: 0 auto;
}

/* 1ブロック（省エネ／クリーン） */
.csr-row {
  display: flex;
  align-items: center;
  gap: 3rem;               /* ← ここは“横並び”の感覚。縦には効かない */
  margin-bottom: 22px;     /* ← セクション間の余白はここで統一 */
}
.csr-row--reverse {
  flex-direction: row-reverse;
}

/* 画像側 */

/* CSR各ブロック間（省エネ・クリーンなど）のすき間 */
.csr-row__image {
  flex: 0 0 45%;
}
.csr-row__image img {
  width: 100%;
  height: 360px;
  object-fit: cover;
}

/* テキスト側 */
.csr-row__body {
  flex: 1;
}
.csr-row__title {
  font-size: clamp(1.6rem, 2vw, 1.8rem);
  color: #9B111E;
  font-weight: 700;
  margin-bottom: 0.8em;
}
.csr-row__body p {
  line-height: 1.9;
  font-size: 1rem;
  color: #555;
}

/* ---------------------------------------------
   各種チャリティーだけの調整
   --------------------------------------------- */
.csr-row--full {
  flex-direction: column;
  text-align: center;
  gap: 1rem;                            /* ← ここが「説明とギャラリーのすき間」 */
  margin-bottom: 32px;                  /* ← 他のセクションとそろえる */
}

/* 各種チャリティー：説明文とカード群のすき間 */
.csr-row--full .csr-row__body {
  max-width: 800px;
  margin: 0 auto;
  margin-bottom: 1rem;                  /* ← 説明とギャラリーのすき間。ここだけ見ればOK */
}

/* ギャラリー4枚 */

/* カード間のすき間を調整する（CSRギャラリー） */
.csr-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 2rem;                            /* ← ★カードとカードの間はここだけ触る */
  width: 100%;
}

.csr-card {
  background: #fafafa;
  border-radius: 12px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.05);
  overflow: hidden;
  transition: transform 0.4s ease, opacity 0.4s ease;
}
.csr-card:hover {
  transform: scale(1.03);
}
.csr-card__image img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  display: block;
}
.csr-card__title {
  font-size: 1.1rem;
  color: #9B111E;
  font-weight: 700;
  margin: 1em 0 0.5em;
}
.csr-card__text {
  font-size: 0.95rem;
  color: #555;
  padding: 0 1.2em 1.5em;
  line-height: 1.8;
}

/* アニメ用に入れたラッパを無害化 */
.csr .right-image-section {
  margin: 0;
  padding: 0;
}

/* スマホ対応 */
@media (max-width: 768px) {
  .csr-row {
    flex-direction: column;
    gap: 1.5rem;
  }
  .csr-row__image img {
    height: 240px;
  }

  .csr-row--full {
    gap: 1rem;
  }

  .csr-gallery {
    gap: 1.25rem;
  }
}








/*list-grid2

/* =================== Kyowa recruit cards：Flex版（Grid不使用） =================== */
/* ①上3つ＝縦長、②下3つ＝短め、③画像表示、④ホバーでズーム、⑤リンク、⑥SP縦積み */

/* コンテナ：Flexで3列。過去のgrid指定が残っても無効化するため !important を付与 */
.list-grid2 {
  display: flex !important;           /* ← grid指定を殺す */
  flex-wrap: wrap;
  gap: 1vw;                            /* 列/行のすき間 */
}

/* カード（= <a>）の横幅を3等分。クリック範囲はカード全体 */
.list-grid2 > a {
  display: block;
  flex: 0 0 calc((100% - 2vw) / 3);    /* 3列：gapが2つ分あるので(100% - 2*1vw)/3 */
  text-decoration: none;
  color: inherit;
  letter-spacing: .2em;
  position: relative;
  /* ② デフォルト＝下3つの高さ（短め） */
  height: clamp(140px, 16vw, 240px);   /* お好みで調整可 */
}

/* ① 上3つだけ“縦長”にする */
.list-grid2 > a:nth-child(-n + 3) {
  height: clamp(260px, 32vw, 440px);   /* お好みで調整可（3/4 目安） */
}

/* 画像ラッパ：カードの高さに追従 */
.list-grid2 .image-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  line-height: 0;                       /* 画像の行の隙間を消す */
}

/* ③ 画像表示・④ホバーでズーム */
.list-grid2 .image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1);
  transition: transform .6s ease;
}
.list-grid2 > a:hover .image-wrapper img,
.list-grid2 > a:focus-visible .image-wrapper img {
  transform: scale(1.06);               /* ズーム */
}

/* テキスト帯（既存 .text2 を尊重） */
.list-grid2 .text2 {
  position: absolute;
  left: 0; bottom: 0;
  width: 100%;
  background: rgba(0,0,0,.7);
  color: #fff;
  padding: 1.2em;
  text-align: center;
  font-size: 1rem;
  z-index: 1;
}

/* ⑥ スマホは縦積み（比率＝高さは維持） */
@media (max-width: 699.98px) {
  .list-grid2 { gap: 2.4vw; }
  .list-grid2 > a {
    flex: 0 0 100%;
    /* SPでも同じ高さを維持したい場合はそのまま。
       もし少し低くしたいなら次の2行を有効化：
       height: clamp(200px, 55vw, 360px);
    */
  }
}


/* ============================================================================ */





/* ===================== Recruit TOP (v3.3-clean) ===================== */
/* main と同じ物差しだけ合わせれば“カード群と下3ボタン”がピッタリ揃います */
:root{
  --brand-red:#9B111E;
  --container: 1100px;   /* ← サイトの main の max-width に合わせて調整 */
  --imgw: 300px;         /* 画像の横幅（PC）*/
  --gap: 36px;           /* 画像と右カラムの間隔 */
  --btn-gap-left: 1.5vw; /* 写真とボタンの距離（PC）。増やすと自動でボタン群は短くなる */
}

.recruit-top{
  max-width: var(--container);
  margin-inline: auto;
  padding: 40px 20px 80px;
}


/* カード本体（ホバー演出なし） */
.recruit-block{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: var(--gap);
  width: min(100%, var(--container));
  margin: 0 auto 64px;
}

/* 左画像：斜めカット */
.recruit-img{
  flex: 0 0 var(--imgw);
  width: var(--imgw);
  height: 170px;
  position: relative;
  overflow: hidden;
  -webkit-clip-path: polygon(0 0, 86% 0, 100% 50%, 86% 100%, 0 100%);
          clip-path: polygon(0 0, 86% 0, 100% 50%, 86% 100%, 0 100%);
  background:#e9e9e9;
  box-sizing: border-box;
margin-right: 1.5vw; /* ← PCで写真右との間隔 */
 line-height: 0; 
}
.recruit-img img{
  /* ← absolute を使わない */
  position: static;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}


/* 右側：残り幅ぜんぶ使う */
.recruit-info{
  flex: 1 1 auto;
  min-width: 0;
}
.recruit-info h2{
  font-size:1.7rem; font-weight:800;
  margin:0 0 14px;
  display:flex; align-items:center; gap:8px;
}
.recruit-info h2 span{ font-size:.92rem; color:#555; margin-left:6px; font-weight:600; }

.recruit-title h2{
  color:#9B111E; /* 企業カラー例 */
 font-size: 1.8rem;
margin:0 0 20px;
}






/* --- ボタン行（PCのレイアウトは現状維持） --- */
.recruit-buttons{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-left: var(--btn-gap-left);
  width: calc(100% - var(--btn-gap-left));
  box-sizing: border-box;
}

/* --- ボタン：初期=べた塗、ホバー=縁取り＋白背景、ロゴ中央 --- */
.btn{
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
  /* 初期：べた塗 */
  background: var(--btn-color);
  color:#fff;
  border:2px solid var(--btn-color);
  border-radius:3px;
  padding:14px 22px;
  font-weight:700; letter-spacing:.05em;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}


.btn:hover::before{ transform:scaleX(1); }

/* ロゴ：中央に表示（初期は隠す） */
.btn::after{
  content:""; position:absolute; left:50%; top:50%;
  width: 70%;
  height: 70%;
  transform: translate(-50%, -50%) scale(.9);
  background-repeat:no-repeat; background-position:center; background-size:contain;
  opacity:0; z-index:2; transition: opacity .2s ease, transform .2s ease;
  pointer-events:none;
}

/* テキストは中央。ホバーでフェードアウト（ロゴに置き換え） */
.btn-label{
  position:relative; z-index:3;
  transition: opacity .2s ease;
}

/* ホバー：縁取り＋白背景＋文字消えてロゴだけ／色は枠と文字色に残す */
.btn:hover{
  background:#fff;
  color: var(--btn-color);
  border-color: var(--btn-color);
}
.btn:hover .btn-label{ opacity:0; }
.btn:hover::after{ opacity:1; transform: translate(-50%, -50%) scale(1); }

/* 旧 .btn-logo は無効化（残っていてもOK） */
.btn-logo{ display:none; }

/* 色定義（ボタン色＆枠色のベース） */
/* 新・明るめだけど元色寄りのトーン */
.btn-orange{ --btn-color:#f9a243; } /* 旧#d78f1f を少し明るく鮮やかに */
.btn-purple{ --btn-color:#77347a; } /* 旧#4e2a5f をやや明度+彩度+ */
.btn-green { --btn-color:#329b58; } /* 旧#1d7e41 を明るめのグリーンへ */
.btn-red   { --btn-color:#a0283a; } /* 旧#9B111E をほんの少し明るく（ブランドに配慮） */


/* 色クラスごとのロゴ画像（実ファイルに合わせて差し替え） */
.btn-orange::after{ background-image:url("../images/recruit/championlogo.svg"); }
.btn-purple::after{ background-image:url("../images/recruit/hotellogo.svg"); }
.btn-green::after { background-image:url("../images/recruit/recyclelogo.svg"); }
.btn-red::after   { background-image:url("../images/recruit/kyowalogo.svg"); }

/* スマホ：縦積み＆幅いっぱい */
@media (max-width:820px){
  .recruit-buttons{
    margin-left:0; width:100%;
    grid-template-columns:1fr; gap:10px;
  }
}

/* 通常は白に固定（visited も含めて） */
.recruit-buttons .btn,
.recruit-buttons .btn .btn-label{ color:#fff; }
.recruit-buttons .btn:link,
.recruit-buttons .btn:visited{ color:#fff; }

/* ホバー（縁取り＋白背景のとき）はブランド色に切替え */
.recruit-buttons .btn:hover{ color: var(--btn-color); }






/* 下3つの大ボタン：カードと同じ物差しで幅一致 */
.big-buttons{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:18px;
  width: min(100%, var(--container));
  margin: 70px auto 0;
}
.big-btn{
  background:var(--brand-red); color:#fff; padding:42px 0;
  text-align:center; font-weight:800; letter-spacing:.1em;
  transition:.3s;
}
.big-btn:hover{ opacity:.9; transform: translateY(-1px); }



/* ============ スマホ（～768px）：画像とタイトルの“間”をゼロ ============ */
@media (max-width: 820px){
  .recruit-block{
    flex-direction: column;
    row-gap: 0;                 /* ← 画像 ↔ タイトル の間を完全に0に */
    width: 100%;
  }

  .recruit-img{
    flex-basis: auto;
    width: 100%;
/*    width: min(100%, 420px); */
    height: 150px;              /* 高さはお好みで。増やせば画像だけ大きくなる */
    -webkit-clip-path: none;
            clip-path: none;
    border-radius: 5px;
    position: relative;
    margin: 0;
    line-height: 0;             /* ← 画像直下の“行間”隙間を潰す */
  }
  .recruit-img img{ display:block; }  /* ← 同上（インライン画像の隙間対策） */

  .recruit-info{
    width:100%;
    max-width:none;
    min-width:0;
    padding-top: 0;             /* 念のため */
    margin-top: 1rem;              /* 念のため */
    display:flex;
    flex-direction:column;
    gap: 0px;                   /* ← タイトル ↔ ボタンの間（画像とは別） */
  }

  .recruit-info h2{
    margin: 0;                  /* ← タイトル上側の余白をゼロに */
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:4px;
    text-align:center;
  }
  .recruit-info h2 span{
    display:block;
    margin:0;
    line-height:1.2;
  }

  .recruit-buttons{
    margin-left: 0;
    width: 100%;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .big-buttons{
    grid-template-columns:1fr;
    width:100%;
  }


.recruit-title h2{
 font-size: 1.5rem;
margin:0 0 20px;
}


}
/* ============================================================ */





/* ============================ 人材募集ページ ================================ */


/* --- ヘッダー（ロゴ左・メニュー右・エントリーボタン）--- */

/* 人材募集ページのときだけ SNSヘッダーを消す */
.job-page #header-top{
  display: none;
}

/* 人材募集ページのときだけ、ヘッダーを透明＆固定に */
.job-page #header-top2{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: transparent !important; /* main やヒーローが透けて見える */
  box-shadow: none !important;
}

/* エントリーボタン */
.job-entry-btn{
  padding: 10px 20px;
  border-radius: 999px;
  border: 2px solid var(--brand-red);
  background: var(--brand-red);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-decoration: none;
  margin-left: 8px;
  transition: background .2s ease, color .2s ease, transform .2s ease,
              box-shadow .2s ease;
}
.job-entry-btn:hover{
  background: #fff;
  color: var(--brand-red);
  box-shadow: 0 4px 12px rgba(0,0,0,.15);
  transform: translateY(-1px);
}


/* ============================ ヒーロー画像（画面いっぱい＋下がカーブ）================================ */

.job-main{
  padding-top: 0;       /* ← ここを 0 にして、ヒーローを一番上から開始 */
}


/* 画面いっぱいの大きなヒーロー写真（③フル幅） */
.job-hero{
  position: relative;
  width: 100vw;                          /* 画面幅いっぱい */
  margin-left: calc(50% - 50vw);         /* 左右の余白を打ち消す */
  margin-right: calc(50% - 50vw);
  min-height: 100vh;                      /* 画面高さの8割ほど */
  display: flex;
  align-items: flex-end;
  justify-content: center;
  color: #fff;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: visible;  /* ← ここを visible にして、カーブをはみ出させる */

  z-index: 0;   /* ★ ここを 0 にする（1 は消す） */
}

/* Main画像の指定は HTML 側で：
   <section class="job-hero" style="background-image:url('../images/recruit/hero_amusement.jpg');">
*/

/* 下側を「急カーブの○」で白く切り抜く */
.job-hero::after{
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 120%;
  bottom: -500px;   /* ← 白丸の“開始位置”を下げる値 */
  height: 800px;    /* ← 白丸自体の“高さ” */

  background: #fff;
  border-radius: 100% 100% 0 0 / 100% 100% 0 0;

  z-index: -1;        /* ★ ここを -1 にするのがポイント */
}



/* 写真の上に乗るテキストエリア */
.job-hero-inner{
  position: relative;
  z-index: 1;
  max-width: var(--job-rail);
  width: 100%;
  padding: 105px 24px 70px; /* 上：ヘッダー分＋余白 / 下：カーブに重ならない程度 */
  box-sizing: border-box;
}






/* ポッと飛び出すイラストたち */
.job-hero-illust {
  position: absolute;
  width: clamp(60px, 8vw, 100px);  /* 画面幅に応じてサイズ可変 */
  opacity: 0;
  transform: translateY(10px) scale(0.4);
  pointer-events: none;            /* クリック操作の邪魔をしない */
  animation: jobHeroPop 0.8s ease-out forwards;
}

/* それぞれの位置 + タイミング調整 */
.job-hero-illust1 {
  top: 15%;
  left: 12%;
  animation-delay: 0.2s;
}

.job-hero-illust2 {
  top: 5%;
  right: 18%;
  animation-delay: 0.6s;
}

.job-hero-illust3 {
  bottom: 10%;
  left: 55%;
  animation-delay: 1s;
}

/* ポンッと出るアニメーション */
@keyframes jobHeroPop {
  0% {
    opacity: 0;
    transform: translateY(15px) scale(0.4);
  }
  60% {
    opacity: 1;
    transform: translateY(0) scale(1.05);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* スマホ用に高さを少し抑える */
@media screen and (max-width: 700px) {
  .job-hero {
    height: 35vh;
  }
}






/* ============================ 下部コンテンツ（募集要項エリア）================================ */

.job-section{
  background:#fff;
  margin-top: 0px;
  position: relative;
  z-index: 3;   /* ← 一番前に出す */
}
.job-section-inner{
  max-width: 1000px;     /* ★ 横幅を800pxに固定 */
  margin: 0 auto;       /* ★ 中央寄せ */
  padding: 50px 24px 40px;  /* 上を 24 / 下を 40 にして上寄せ */
}

.job-section-title{
  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  margin: 0 0 32px;
  color: var(--brand-red);
}


/* 募集要項：テーブルレイアウトで高さ＆中央揃えを完全統一 */
.job-grid{
  width: 100%;
  margin: 0 auto;
  display: table;
  border-collapse: collapse;
  border-top: 1px solid #e5e5e5;
}

.job-grid dl{
  display: table-row;
  border-bottom: 1px solid #e5e5e5;
}

.job-grid dt,
.job-grid dd{
  display: table-cell;
  vertical-align: middle;      /* ★ 上下中央揃えの肝 */
  padding: 30px 0;             /* 上下の余白を完全に共通化 */
  margin: 0;
  line-height: 1.6;
  letter-spacing: 0.15em;
}

/* 左側タイトル列 */
.job-grid dt{
  width: 180px;                /* 左カラム幅を固定 */
  padding-right: 32px;
  font-weight: 700;
  color:#555;
text-align: center;
}

/* 右側本文列 */
.job-grid dd{
  color:#333;
}





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

/* ============================ スマホ用 ============================ */
@media (max-width: 800px){

  /* PC版と同じ “フル幅の広がり感” を維持 */
  .job-hero{
    min-height: 72vh;   /* ← PCに近い比率。お好みで 70〜80vh でもOK */

    position: relative;
    width: 100vw;
    left: 50%;
    margin-left: -50vw;
    margin-right: 0;
    margin-top: -20px;

    overflow: visible;   /* ← PCと同じ */
  }

  /* カーブを PC のイメージに近づけた調整版 */
  .job-hero::after{
    content: "";
    position: absolute;
  bottom: -20px;   /* ← 白丸の“開始位置”を下げる値 */
    left: 50%;
    transform: translateX(-50%);

    width: 140%;         /* ← スマホで広がりを強くする */
    height: 180px;       /* ← 丸みの深さを調節（PCにより近い） */

    background-color: #fff;

    /* 丸みを PC版に寄せた比率へ修正 */
    border-radius: 50% 50% 0 0 / 65% 65% 0 0;

    z-index: 1;
  }



  /* ③ ロゴまわりのサイズ調整 */
  .job-page #header-top2{
    padding: 0 10px 4px;   /* 上の余白をさらに削る */
  }

  .job-page .logo-group{
    margin-top: 10px;
  }

  .job-page #logo img{
    max-width: 120px;      /* ちょっと小さめにして、上につめる */
    height: auto;
    display: block;
  }

  /* ④ SPメニュー内の「エントリー」ボタンを他と揃える */
  /* オーバーレイメニュー（#menubar-s 想定）の中では、
     四角ボタン風にして幅100％に揃える */
  .job-page #menubar-s ul li.entry-nav a.job-entry-btn{
    display: block;
    width: 100%;
    margin-left: 0;
    border-radius: 8px;
    box-sizing: border-box;
  }

  .job-section-title{
    text-align: center;
  }



@media (max-width: 800px){

  /* 追加：募集要項ブロックの横幅を採用スケジュールに近づける */
  .job-section-inner{
    padding: 24px 0 32px; /* ← 左右をさらに狭くして “広がって見える” */
  }

  .job-grid{
    max-width: 100%;             /* ← 好みで 540〜640px くらいに調整 */
    margin: 0 auto;               /* ← 中央寄せ */
  }

  /* （この下はすでにある job-grid dl, dt, dd の指定でOK） */
  .job-grid{
    display: block;
    border-top: 1px solid #e5e5e5;
  }

  .job-grid dl{
    display: block;
    padding: 10px 0;
  }

  .job-grid dt,
  .job-grid dd{
    display: block;
    padding: 0;
    width: auto;
    padding-right: 0;
    margin-bottom: 4px;
    text-align: center;
  }
}


}



/* =========================
   タブレット（iPad 等）調整
   641px〜1200px くらいを想定
========================= */
@media (min-width: 800px) and (max-width: 1200px){


  /* ① ヒーロー画像を「画面幅いっぱい」で中央揃え
        かつ横スクロールしないように調整 */
  .job-hero{
    width: 100vw;
    min-height: 65vh;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }

  .job-hero::after{
    bottom: 0;
    width: 130%;
    height: 250px;
    border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  }

  /* ② ヘッダーも画面幅いっぱいに広げて、
        右端のエントリーボタンが切れないようにする */
  .job-page #header-top2{
    width: 100vw;
    left: 50%;
    margin-left: -50vw;
    padding-inline: 24px;   /* 左右に少し余白を持たせる */
    box-sizing: border-box;
  }

  /* メニューが横に収まりきらない場合に折り返して対応 */
  .job-page #menubar nav > ul{
    flex-wrap: wrap;
    gap: 8px 16px;
  }

  /* エントリーボタンの li に変な余白があれば打ち消す */
  .job-page #menubar .entry-nav{
    margin-right: 0;
  }


}




/* ============================
   ヒーロータイトル（ロゴ → タイトルの縦並び）
============================ */

.job-title-area{
  width: 100%;
  background: transparent;  /* ★ ここを transparent に */
  text-align: center;

  /* ★ カーブに深く重ねる：大きくマイナスマージンを取る */
  margin-top: -200px;

  margin-bottom: 20px;
  position: relative;
  z-index: 3;    /* カーブより上に表示 */
}

.job-title-inner{
  display: flex;
  flex-direction: column;   /* ← 縦方向に並べる */
  align-items: center;
  justify-content: center;
  gap: 12px;                /* ロゴとタイトルの間隔 */
  padding: 20px 20px;
}

.job-title-icon{
  width: 35%;     /* 大きすぎたら調整 */
  height: auto;
  margin-bottom: 20px;
}

.job-title-text{
  font-size: 2.vw;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #666;
  margin: 0;
}


/* ---- スマホ調整 ---- */

 @media (min-width: 801px) and (max-width: 1300px){
 .job-title-area{
 margin-top: -180px; /* SPは少し弱めに重ねる */
 margin-bottom: 10px;
 }
 .job-title-inner{
 gap: 10px;
 padding: 10px 10px;
 }
 .job-title-icon{
 width: 65%;
 }
 .job-title-text{
margin-top:-15px;
 font-size: 3vw;
 }

 }


 @media (max-width: 800px){
 .job-title-area{
 margin-top: -100px; /* SPは少し弱めに重ねる */
 margin-bottom: 10px;
 }
 .job-title-inner{
 gap: 10px;
 padding: 10px 10px;
 }
 .job-title-icon{
 width: 85%;
 }
 .job-title-text{
margin-top:-15px;
 font-size: 3vw;
 }

 }



/* ============================================================= */




/* ============================
   採用スケジュール（STEPフロー）
============================ */

.job-flow{
  background: #f7f7f7;

  /* ここを追加！ */
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

.job-flow-inner{
  max-width: 1000px;
  margin: 0 auto;
  padding: 40px 24px 60px;
}

.job-flow-title{
  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  margin: 0 0 32px;
  color: var(--brand-red);
}

/* 1行分のボックス */
.job-flow-item{
  position: relative;
  display: flex;
  gap: 32px;
  padding: 20px 24px;
  background: #fff;
  border-radius: 2px;
  box-shadow: 0 0 0 1px #eee inset;
}

/* アイテム同士の間に矢印 */
.job-flow-item:not(:last-child){
  margin-bottom: 24px;
}

.job-flow-item:not(:last-child)::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: -18px;
  transform: translateX(-50%);
  border-width: 10px 18px 0 18px;   /* ▼ 下向き三角形 */
  border-style: solid;
  border-color: #d0d0d0 transparent transparent transparent;
}

/* 左側 STEP 部分 */
.job-flow-step{
  width: 120px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;   /* ← ここだけ変更（center に） */
  justify-content: center;
}

.job-flow-step-label{
  font-size: 0.8rem;
  letter-spacing: 0.18em;
  color: #999;
  margin-bottom: 0px;   /* ← ここを 0 に */
  line-height: 1.2;     /* ← 高さが詰まりすぎないよう補正（推奨） */
}

.job-flow-step-num{
  font-size: 2.2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #333;
  color: var(--brand-red);
  margin-top: -2px;   /* ← 好みに応じて微調整 */
}

/* 右側テキスト部分 */
.job-flow-body{
  flex: 1;
}

.job-flow-heading{
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 8px;
  color: #333;
}

.job-flow-text{
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.9;
  color: #444;
}


/* ---------- スマホ対応 ---------- */

@media (max-width: 800px){

  .job-flow-inner{
    padding: 32px 16px 40px;
  }

  .job-flow-item{
    flex-direction: row;
    padding: 16px 16px;
  }

  .job-flow-step{
    width: 80px;
    align-items: center;   /* ← 中央揃え */
    text-align: center;    /* ← テキストも中央に */
  }

  .job-flow-step-label{
    margin-bottom: 2px;    /* ← 少しだけ余白 */
  }

  .job-flow-row{
    align-items: center;  /* ← 行全体も中央揃え */
  }

  .job-flow-step-num{
    font-size: 1.8rem;
  }

  .job-flow-heading{
    font-size: 1rem;
    margin-bottom: 4px;
  }

  .job-flow-text{
    font-size: 0.85rem;
  }


  .job-flow-title{
    text-align: center;
  }


}



/* ============================
   エントリーボタン＋マイナビボタン
============================ */

.job-entry-area{
  background: #fff;
  padding: 60px 0 80px;
}

.job-entry-inner{
  max-width: 600px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 32px;
  flex-wrap: wrap;
}

/* -------------------------
   エントリーボタン（シンプルアニメ）
------------------------- */

.job-entry-main-btn{
  width: 266px;        /* マイナビと合わせる */
  height: 92px;        /* マイナビと合わせる */
  display: flex;       /* ← 中央にするために必須！ */
  justify-content: center;   /* 横中央 */
  align-items: center;        /* 縦中央 */
  text-align: center;

  padding: 14px 26px;
  background: var(--brand-red);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.1em;
  border-radius: 6px;
  text-decoration: none;
  transition: background .25s ease, opacity .25s ease;
}

/* ホバー → 明るい赤にふわっと変わる */
.job-entry-main-btn:hover{
/*  background: #ba3232;    少し明るい赤 */
  color: #fff;
  opacity: 0.85;
}


/* ============================
   エントリーボタンをマイナビと同じサイズにする
============================ */

.entry-btn{
  width: 236px;              /* マイナビ外枠と同じ幅 */
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 16px 0;           /* マイナビと揃える */
  border-radius: 10px;       /* マイナビと同じ角丸 */
  box-sizing: border-box;
}



/* -------------------------
   ② マイナビボタン（画像＋キャプションの外枠）
------------------------- */

.mynavi-wrap{
  text-align: center;
}

/* 外側ボタン（ホバーで変化しない） */
.mynavi-btn{
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: 8px 26px;
  border: 2px solid #00AEEF;     /* マイナビ枠線 */
  border-radius: 6px;
  text-decoration: none;
}

/* 画像（変化なし） */
.mynavi-btn img{
  width: 180px;
  height: auto;
  display: block;
}

/* 長丸キャプション（ホバーでのみ変化） */
.mynavi-caption{
  display: inline-block;
  padding: 1px 55px;
  background: #00AEEF;
  color: #fff;
  font-size: 0.9rem;
  border-radius: 999px;
  letter-spacing: 0.05em;
  font-weight: 600;
  transition: 0.25s ease;
margin-bottom: 5px;
}

/* ★ ホバーアニメはここに集中！ */
.mynavi-caption:hover{
  opacity: 0.85;
  transform: translateY(-2px);    /*少し浮く感じ（必要なければ削除OK） */
}




/* ---------- スマホ ---------- */
@media (max-width: 800px){
  .job-entry-inner{
    gap: 20px;
  }
  
  .job-entry-main-btn{
    width: 262px;
height: 82px;
  }
  
  .mynavi-btn img{
    width: 160px;
  }
}







/* ============================
   B案 共通
============================ */

.recruit-hero{
  margin-top: 0;
  margin-bottom: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  /* ★ 追加：カードや影がはみ出しても見えないようにする */
  position: relative;
  overflow: hidden;
}

/* B-2 共通背景は B-1 と同じ .recruit-hero を再利用してOK */
.recruit-hero--split::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(0,0,0,0.25),
    rgba(0,0,0,0.15)
  );
}

/* 中身の左右レイアウト */
.recruit-hero-inner{
  position: relative;
  z-index: 1;

  /* ★ はみ出し防止：コンテナ幅基準にする */
  width: 100%;                         /* 親(#container)の幅いっぱい */
  max-width: 1350px;                   /* 広い画面では 1200px に抑える */

  margin: 0 auto;
  padding: 46px 10px 52px;             /* ← 左右余白はここで調整（24〜40px 好みで） */

  display: flex;
  gap: 40px;                           /* 左右カラムの間のスペース */
  box-sizing: border-box;
}

/* 左側：コピー */
.recruit-hero-left{
  flex: 0 0 30%;
  color: #fff;

  display: flex;
  flex-direction: column;
  justify-content: center;   /* 左カラムの中で縦中央 */
  row-gap: 25px;              /* ← eyebrow / title / lead の余白はここでまとめて管理 */

  /* 必要に応じて微調整用
  padding-top: 10px;  */
  padding-bottom: 30px;

}

/* 左カラム直下の要素は margin をリセット（gap に任せる） */
.recruit-hero-left > *{
  margin: 0;
}

.recruit-hero-title{
  color: #fff;
}


/* 右側：白いカード群 */
.recruit-hero-right{
  flex: 0 0 70%;                   /* ← 60% → 64% にしてカードを横に広げる */
  display: flex;
  flex-direction: column;
  gap: 16px;                       /* ちょっとだけ間隔広く */
}

/* 1区分ごとの横長カード */
.recruit-hero-group--row{
  background: rgba(255,255,255,0.96);
  border-radius: 18px;
  padding: 16px 26px 18px;
  display: grid;
  grid-template-columns: minmax(0,190px) minmax(0,1fr);
  align-items: center;
  column-gap: 22px;
  row-gap: 6px;
 
  /* ★ ここを変更：影をかなり軽くする */
  box-shadow: 0 8px 16px rgba(0,0,0,0.10);

  /* ★ ここを追加：パートの高さに合わせる */
  min-height: 120px;               /* 実際の値に置き換えてください */
}

.recruit-hero-group-head{
  border-right: 1px solid #eee;
  padding-right: 14px;
}

.recruit-hero-group-title{
 font-size: 1rem;
 margin: 0 0 10px !important; /* 上0 / 下20px（調整可能） */ line-height: 1.5; /* 行間も必要なら調整 */ 
}



/* EYEBROW */
.recruit-hero-eyebrow{
  letter-spacing: 0.6em;
  font-size: 1rem;
  margin: 0;                    /* gap 管理のため margin 0 */
}

/* TITLE */
.recruit-hero-title{
  font-size: 2.2rem;            /* 必要に応じて調整 */
  line-height: 1.5;
  margin: 0;                    /* gap 管理のため margin 0 */
}

/* LEAD */
.recruit-hero-lead{
  font-size: 0.95rem;
  line-height: 1.8;
  margin: 0;                    /* gap 管理のため margin 0 */
}

.recruit-hero-group-sub{
  margin: 2px 0 0;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  color: #999;
}

/* ボタン群（B-1と共通でOK） */
.recruit-hero-group--row .recruit-hero-links{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.recruit-hero-group--row .recruit-hero-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 0.8rem;
  text-decoration: none;
  border: 1px solid #ddd;
  color: #444;
  background: #fff;
  white-space: nowrap;
  transition:
    background 0.2s ease,
    color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.15s ease;
    flex: 1 1 calc(50% - 8px);   /* 横 2 つ並び × 2 行に自動調整 */
  text-align: center;   /* 文字を中央に */
}

.recruit-hero-group--row .recruit-hero-link:hover{
  background: var(--brand-red);
  color: #fff;
  border-color: var(--brand-red);
/*  box-shadow: 0 8px 16px rgba(0,0,0,0.18); */
  transform: translateY(-1px);
}

/* 事業ボタン（pill） */
.recruit-hero-pill{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 18px;
  border-radius: 999px;
  border: 1px solid #ddd;
  font-size: 0.85rem;
  color: #555;
  background: #fff;
  text-decoration: none;
  white-space: nowrap;

  /* ★ ここを追加：アミューズメントに合わせた共通幅 */
  min-width: 7.5em;                /* 足りなければ 8em, 8.5em などで微調整 */

  transition:
    background .2s ease,
    color .2s ease,
    box-shadow .2s ease,
    transform .15s ease;
}


/* ───────────────
   募集停止カード
─────────────── */
/* 募集停止のリンク（新卒・中途の小メニュー用） */
.recruit-hero-link.is-disabled {
  pointer-events: none;       /* クリック不可 */
  opacity: 0.55;              /* グレーアウト */
  filter: grayscale(100%);    /* 白黒化 */
  color: #999 !important;     /* 文字色も薄く */
  border-color: #ddd !important;
}

.recruit-subnav-card.is-disabled .recruit-subnav-arrow {
  background: #ddd !important;
  color: #999 !important;
  border-color: #ccc !important;
}

/* ホバー効果を無効化 */
.recruit-hero-link.is-disabled:hover {
  background-color: inherit !important;
  color: #999 !important;
}


/* 1800px 以下：PC とスマホの中間サイズ用 */
@media (max-width: 1800px){

  /* ヒーロー内の左右余白を少し詰める＆幅をコンテナいっぱいに */
  .recruit-hero-inner{
    max-width: 100%;
    padding: 40px 56px 46px;
    gap: 2px;
    flex-direction: column;
  }

  /* 左右それぞれ幅100%にする */
  .recruit-hero-left,
  .recruit-hero-right{
    flex: 0 0 auto;
    width: 100%;
  }

  .recruit-hero-left{
    justify-content: flex-start; /* 縦積み時は上揃えのほうが自然 */
    row-gap: 6px;                /* モバイル寄りでは少しタイトに */
  }

  /* カード自体を少しだけコンパクトに */
  .recruit-hero-group--row{
    width: 100%;
    padding: 14px 18px 16px;
    column-gap: 18px;
    min-height: 0;   /* 高さは中身に任せる（はみ出し防止） */
  }

}


/* ---------- スマホ / タブレット ---------- */
@media (max-width: 960px){

  /* ヒーローブロック全体の余白（上下そのまま・左右だけ少し詰める） */
  .recruit-hero--split{
    padding: 32px 0 40px;
  }

  /* 中身：縦積み ＋ 左右余白を狭く（幅を広げる） */
  .recruit-hero-inner{
    flex-direction: column;
    max-width: 100%;
    padding: 22px 20px 30px;   /* ★ 左右 18px → 10px に変更 */
    gap: 24px;
    box-sizing: border-box;
  }

  /* 左右カラムはスマホでは横幅100%で広げる */
  .recruit-hero-left,
  .recruit-hero-right{
    flex: 0 0 auto;
    width: 100%;
  }

  .recruit-hero-left .recruit-hero-title{
    font-size: 1.8rem;
  }

  /* カード：1カラムで縦積み */
  .recruit-hero-group--row{
    grid-template-columns: 1fr;
    row-gap: 8px;
    width: 100%;
  }

  .recruit-hero-group-head{
    border-right: none;
    padding-right: 0;
    border-bottom: 1px solid #eee;
    padding-bottom: 2px;
    margin-bottom: 2px;
  }

  /* ★ タイトルとサブの行間・余白を詰める */
  .recruit-hero-group-title{
    margin: 0 0 1px !important;  /* 10px → 1px に上書き */
    line-height: 1.1;
  }

  .recruit-hero-group-sub{
    margin: 7px !important;        /* 2px → 0 に上書き */
    line-height: 1.1;
  }

  /* ボタンは縦に並べる（全幅） */
  .recruit-hero-group--row .recruit-hero-links{
    justify-content: flex-start;
    flex-direction: column;   /* 縦並び */
    gap: 6px;
  }

  .recruit-hero-group--row .recruit-hero-link{
    flex: none;               /* 幅そろえ用の flex:1 を無効化 */
    width: 100%;              /* カード内で横幅いっぱい */
    text-align: center;
  }

}




/* ============================
   採用サブナビ（インタビュー等）
============================ */

.recruit-subnav{
  background: #fff;
  padding: 40px 0 20px;
}

/* ヒーローとほぼ同じ幅まで広げる */
.recruit-subnav-inner{
  max-width: 98%;          /* ヒーローと合わせたいなら 1350px 推奨 */
  width: 100%;
  margin: 0 auto;
  padding: 0 10px;
  display: flex;
  gap: 20px;
  justify-content: center;
  box-sizing: border-box;
}

/* 1枚のカード：PCでは左右2カラム＋高さそろえ */
.recruit-subnav-card{
  flex: 1 1 0;
  display: flex;
  flex-direction: row;        /* 左：画像 / 右：テキスト */
  gap: 18px;
  padding: 12px 12px;
  border-radius: 16px;
  background: #ffffff;
  border: 1.5px solid #e5e5e5;
  box-shadow: none;
  text-decoration: none;
  color: #333;
  transition:
    box-shadow 0.25s ease,
    transform 0.18s ease,
    border-color 0.18s ease;

  min-height: 230px;          /* 3枚の高さを揃えるベース値 */
  align-items: stretch;       /* 左右カラムをカード高さに合わせる */
}

.recruit-subnav-card:hover{
  box-shadow: 0 6px 14px rgba(0,0,0,0.05);
/*  transform: translateY(-3px); */
  border-color: rgba(156,24,35,0.2);
}

/* 左側：画像カラム（縦いっぱい） */
.recruit-subnav-media{
  flex: 0 0 32%;              /* 画像の横幅：30〜35% で好み調整 */
  height: 100%;
  display: flex;
}

.recruit-subnav-media img{
  width: 100%;
  height: 100%;               /* カードの縦いっぱい */
  object-fit: cover;
  border-radius: 12px;
  display: block;
}

/* 右側：テキスト＋ボタン全体 */
.recruit-subnav-content{
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: stretch;   /* ★ 子要素（本文）は幅いっぱい、普通の状態に戻す */
}

/* テキスト部分 */
.recruit-subnav-body{
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.recruit-subnav-label{
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  color: #999;
  margin: 0;
}

.recruit-subnav-title{
  font-size: 1.05rem;
  font-weight: 700;
  margin: 5px 0;
}

.recruit-subnav-text{
  font-size: 0.86rem;
  line-height: 1.8;
  margin: 0;
  color: #555;
}

/* 右下の小さな矢印ボタン風テキスト */
.recruit-subnav-arrow{
  align-self: flex-end;   /* ★ 親flex内で“ボタン自体”を右端に寄せる */
  margin-top: 10px;
  padding: 4px 22px;
  font-size: 0.8rem;
  border-radius: 999px;
  background: #f7f7f7;
  color: #666;
  border: 1px solid #e0e0e0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.recruit-subnav-arrow::after{
  content: "›";
  font-size: 1rem;
  line-height: 1;
}

.recruit-subnav-card:hover .recruit-subnav-arrow{
  background: var(--brand-red);
  color: #fff;
  border-color: var(--brand-red);
}



/* ---------- 中間レンジ（1800px以下：3カラム） ---------- */
@media (max-width: 1800px){

.recruit-subnav-label{
  margin: -5px;
}

  .recruit-subnav-inner{
    max-width: 1350px;          /* ヒーローと揃える */
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    gap: 20px;
    justify-content: center;
    align-items: stretch;       /* ★ 子カードの高さを自動でそろえる */
  }

  /* 3つのカードを横並びに、同じ高さに */
  .recruit-subnav-card{
    flex: 1 1 calc(33.333% - 20px);
    display: flex;
    flex-direction: column;     /* 上：画像 / 下：テキスト */
    padding: 12px 12px 16px;
    min-height: 0;              /* ★ ここで高さ固定を解除（下の空白の原因を消す） */
  }

  /* 画像エリアの縦横比を固定して自動トリミング */
  .recruit-subnav-media{
    flex: 0 0 auto;        /* ← 32% を無効化！高さの比率指定をやめる */
    width: 100%;
    height: 180px;   /* ←ここで好きな高さを指定（例：180px） */
    overflow: hidden;
    border-radius: 12px;
  }

  .recruit-subnav-media img{
    width: 100%;
    height: 100%;
    object-fit: cover;      /* 枠いっぱいに表示して、はみ出した分をトリミング */
    display: block;
  }


  /* 下側のテキスト＋ボタンエリア */
  .recruit-subnav-content{
    flex: 1;                    /* ★ カードの残り高さをここが受け取る */
    margin-top: 14px;
    display: flex;
    flex-direction: column;
  }

  /* テキスト部分は上側に詰める */
  .recruit-subnav-body{
    flex: 1;                    /* ★ ここが伸びて、ボタンを下へ押し下げる */
    display: flex;
    flex-direction: column;
    gap: 6px;
  }

  /* ボタンは右下寄せ（すでに align-self: flex-end; が効いている） */
  /* .recruit-subnav-arrow はグローバル定義のままでOK */
}






/* ---------- スマホ / タブレット対応 ---------- */
@media (max-width: 960px){


/* 右下の小さな矢印ボタン風テキスト */
.recruit-subnav-arrow{
  align-self: center;   /* ★ 親flex内で“ボタン自体”を右端に寄せる */
    margin-top: 12px;
}

  .recruit-subnav{
    padding: 32px 0 56px;
  }

  .recruit-subnav-label{
    margin-top: -20px;   /* ★ 上の余白をグッと縮める */
  }

  /* 3枚を縦に並べる */
  .recruit-subnav-inner{
    flex-direction: column;
    max-width: 100%;
    padding: 0 10px;
  }

  /* カードは縦レイアウト＋高さ固定を解除 */
  .recruit-subnav-card{
    flex-direction: column;   /* 画像 → テキスト → ボタン */
    min-height: auto;         /* ★ ここで高さ固定を解除 */
    align-items: stretch;
    padding: 12px 12px 16px;
  }

  /* 画像を高さ固定＋トリミングして表示 */
  .recruit-subnav-media{
    flex: 0 0 auto;
    width: 100%;
    height: 180px;              /* ★ SPでの画像の高さ上限（お好みで 200〜260px） */
    margin-bottom: 8px;
  }

  .recruit-subnav-media img{
    width: 100%;
    height: 100%;               /* コンテナの縦いっぱいにフィット */
    object-fit: cover;          /* はみ出す分はトリミング */
    max-height: none;
  }

  .recruit-subnav-content{
    flex: 0 0 auto;             /* ★ 余った高さで伸びない */
    display: flex;
    flex-direction: column;
    justify-content: flex-start;/* ★ 上から順番に積むだけ */
    align-items: stretch;
    gap: 10px;
  }
}





/* スマホ専用メニュー */
.sp-only-menu{
  display: none;
}

/* 小さい画面（ハンバーガー表示）のときだけ表示 */
.small-screen .sp-only-menu{
  display: block;
}






/* ============================
   職場環境 ４ブロック
============================ */

/* 共通カードのベース（A, B, C 共通で使えます） */
.workplace-section{
  background:#fff;
  padding:50px 0px 50px;
}
.workplace-section-inner{
  max-width:90%;
  margin:0 auto;
  padding:0 24px;
}
.workplace-section-heading{
  font-size:1.6rem;
  font-weight:700;
  text-align:center;
  letter-spacing:0.18em;
  margin-bottom:42px;
}
.workplace-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:32px;
}

/* --- パターンA：上部フル幅画像 --- */
.workplace-card{
  display:flex;
  flex-direction:column;
  background:#fff;
  border-radius:18px;
  border:1px solid #e8e8e8;
  box-shadow:0 14px 30px rgba(0,0,0,0.06);
  text-decoration:none;
  color:#333;
  overflow:hidden; /* 画像の角丸をカードと揃える */
  transition:transform .18s ease, box-shadow .25s ease, border-color .2s ease;
}
.workplace-card-media{
  width:100%;
  height:200px;          /* ★ ここで画像の高さを調整（160〜200pxお好み） */
}
.workplace-card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.workplace-card-content{
  padding:22px 26px 24px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.workplace-card-title{
  font-size:1.1rem;
  font-weight:700;
  margin:0 0 10px;
}
.workplace-card-text{
  font-size:.9rem;
  line-height:1.9;
  margin:0;
  color:#555;
}
.workplace-card-arrow{
  margin-top:18px;
  padding:6px 24px;
  border-radius:999px;
  border:2px solid #e0e0e0;
  background:#f5f5f5;
  font-size:.85rem;
  color:#444;
}
 .workplace-card:hover{
/*  transform:translateY(-4px); */
  box-shadow:0 20px 40px rgba(0,0,0,0.12);
  border-color:rgba(156,24,35,0.3);
}
.workplace-card:hover .workplace-card-arrow{
  background:var(--brand-red);
  border-color:var(--brand-red);
  color:#fff;
}

/* スマホ */
@media (max-width:960px){
  .workplace-grid{
    grid-template-columns:1fr;
    gap:20px;
  }
  .workplace-card-media{
    height:190px;
  }
  .workplace-card-content{
    padding:20px 20px 22px;
  }
}










.workplace-tab-list{
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.workplace-tab{
  display: inline-block;
  padding: 0.5rem 1.2rem;
  border-radius: 999px;
  border: 1px solid #ddd;
  background: #fff;
  font-size: 0.9rem;
}

.workplace-tab:hover{
  border-color: #9B111E;
  color: #9B111E;
}

@media (max-width: 700px){
  .workplace-tab-list{
    justify-content: center;
  }
}








/* ============================
   Coming Soon 共通スタイル
============================ */

/* クリック無効 */
.is-comingsoon{
  pointer-events: none;
  position: relative;
  overflow: hidden;
}

/* 暗いフィルター */
.is-comingsoon::before{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.20);
  z-index: 2;
}

/* Coming Soon テキスト */
.is-comingsoon::after{
  content: "COMING SOON";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 1.5rem;
  letter-spacing: 0.3em;
  font-weight: 700;
  z-index: 3;
  white-space: nowrap;

  /* ★ 黒影のみで可読性を確保 */
  text-shadow:
    0 0px 12px rgba(0,0,0,0.75);
}



/* ===== ボタン用微調整 ===== */
.recruit-hero-link.is-comingsoon{
  color: #fff !important;
  background: #ccc !important;
  border-color: #ccc !important;
}

/* hover無効化 */
.recruit-hero-link.is-comingsoon:hover{
  transform: none !important;
  box-shadow: none !important;
}

/* ===== サブナビカード用 ===== */
.recruit-subnav-card.is-comingsoon{
  filter: grayscale(100%);
}

/* 下の矢印ボタンも隠す */
.recruit-subnav-card.is-comingsoon .recruit-subnav-arrow{
  visibility: hidden;
}






/* =========================================================
   社長あいさつ（president.html）専用 追記CSS（修正版）
   ※ @import はここに書かない（ファイル先頭へ）
========================================================= */

/* ページスコープ */
body.page-president { --section-bg: #fdfdfd; }

/* ===== メインキャッチ（幅＆改行の安定化 + 明朝） ===== */
body.page-president .bg2 > section.blur{
  width: 100%;
  max-width: none;
}

body.page-president .main-catch{
  width: min(1100px, 92%);
  margin: 70px auto 80px;
  padding: 0;
  text-align: center;
}

body.page-president .main-catch h2{
  font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 800;
  font-size: clamp(2.5rem, 4.2vw, 3.8rem);
  line-height: 1.5;
  letter-spacing: 0.06em;

  /* 改行を自然に */
  text-wrap: balance;
  word-break: normal;
  overflow-wrap: anywhere;

  color: #333;
  margin: 0;
}

/* ===== エディトリアルタイトル（案D） ===== */
body.page-president .editorial-title{
  margin-bottom: 3rem;
  position: relative;
  padding-left: 1.5rem;
  text-align: left;
}

body.page-president .editorial-title::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 6px;
  height: 100%;
  background: var(--primary-color);
}

body.page-president .editorial-title .en{
  display: block;
  font-family: "Bebas Neue", sans-serif; /* 英字ラベル統一 */
  font-weight: 400;
  letter-spacing: 0.22em;
  font-size: 1.2rem;
  color: var(--primary-color);
}

body.page-president .editorial-title .jp{
  display: block;
  font-size: 2rem;
  font-weight: 800;
  color: #333;
  line-height: 1.2;
  margin-top: 0.5rem;
}

/* ===== スプリット（案E） ===== */
body.page-president .split-message{
  display: flex;
  align-items: stretch;
  margin-bottom: 50px;
  background: #fff;
  border: 1px solid #eee;
}
body.page-president .split-message.reverse{ flex-direction: row-reverse; }
body.page-president .split-message.no-border{ border: none; }

body.page-president .split-visual{
  flex: 0 0 50%;
  position: relative;
  overflow: hidden;
}
body.page-president .split-visual.rounded{ border-radius: 4px; }

body.page-president .split-visual img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

body.page-president .split-content{
  flex: 1;
  padding: 5rem 4rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
}

body.page-president .split-content p{
  font-size: 1.05rem;
  line-height: 2.2;
  color: #78736f;
  margin-bottom: 1.5rem;
}

body.page-president .split-lead{
  font-size: 1.8rem;
  color: var(--primary-color);
  margin-bottom: 2.5rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

/* ===== 理念セクション（ISM） ===== */
body.page-president .ism-wrap{
  background: var(--section-bg);
  padding: 80px 0;
  margin-bottom: 50px;
}

body.page-president .section-head{
  margin-bottom: 5rem;
  position: relative;
  text-align: center;
}

/* ★ここは“font-familyを書かない”＝クラスで切替 */
body.page-president .section-head .en-vertical{
  position: absolute;
  top: -2rem;
  left: 50%;
  transform: translateX(-50%);
  font-size: clamp(3.8rem, 9vw, 6rem);
  color: #f0f0f0;
  letter-spacing: 0.16em;
  z-index: 0;
  user-select: none;
  pointer-events: none;
  opacity: 0.9;
}

/* 背景英字フォント切替（A/B/C） */
body.page-president .section-head.is-bg-en-bebas .en-vertical{
  font-family: "Bebas Neue", sans-serif;
}
body.page-president .section-head.is-bg-en-gruppo .en-vertical{
  font-family: "Gruppo", sans-serif;
  letter-spacing: 0.22em;
}
body.page-president .section-head.is-bg-en-monoton .en-vertical{
  font-family: "Monoton", sans-serif;
  letter-spacing: 0.08em;
  opacity: 0.55;
}

body.page-president .section-head h2{
  position: relative;
  z-index: 1;
  font-size: 2.2rem;
  font-weight: 800;
  color: #333;
  padding-top: 2rem;
}
body.page-president .section-head h2::after{
  content: "";
  display: block;
  width: 40px;
  height: 4px;
  background: var(--primary-color);
  margin: 1.5rem auto 0;
}

body.page-president .ism-grid{
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  padding: 0 5vw;
}

body.page-president .ism-card{
  background: #fff;
  padding: 50px 35px;
  border: 1px solid #f0f0f0;
  transition: all 0.4s ease;
  text-align: center;
}

body.page-president .ism-card:hover{
  box-shadow: 0 15px 45px rgba(0,0,0,0.06);
  border-color: var(--primary-color);
}

body.page-president .ism-card .icon-label{
  font-family: "Bebas Neue", sans-serif; /* 英字ラベル統一 */
  font-weight: 400;
  letter-spacing: 0.22em;
  font-size: 1.8rem;
  color: var(--primary-color);
  display: block;
  margin-bottom: 1rem;
}

body.page-president .ism-card h4{
  font-size: 1.2rem;
  margin-bottom: 1.5rem;
  color: #333;
  font-weight: 800;
}

body.page-president .ism-card p{
  font-size: 0.95rem;
  line-height: 1.9;
  color: #78736f;
}


.small.mb0 {
  margin-bottom: 0;
  line-height: 1.4;
}

.name {
  margin-top: 2px;
  line-height: 1.2;
}



/* ===== プロフィール（h5潰れ対策込み） ===== */
body.page-president .profile-section{
  max-width: 1100px;
  margin: 0 auto 100px;
  display: flex;
  gap: 80px;
  align-items: flex-start;
}

body.page-president .profile-data{ flex: 1; text-align: left; }
body.page-president .profile-data .box{ margin-bottom: 4rem; }

body.page-president .profile-data h5{
  font-size: 1.3rem;
  font-weight: 800;
  border-bottom: 1px solid #ddd;
  padding-bottom: 10px;
  margin-bottom: 1.5rem;
  color: #333;
  line-height: 1.4; /* 既存CSSの line-height:0 を上書き */
}

body.page-president .profile-data dl dt{
  font-weight: 700;
  color: var(--primary-color);
  margin-top: 15px;
  font-size: 1rem;
}
body.page-president .profile-data dl dd{
  margin: 0;
  font-size: 1rem;
  color: #78736f;
  line-height: 1.7;
}

/* ===== 署名 ===== */
body.page-president .signature-final{ text-align: right; margin-top: 4rem; }
body.page-president .signature-final .name{
  font-size: 2.4rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  color: #333;
}



/* ===== レスポンシブ（スマホ用：余白微調整版） ===== */
@media screen and (max-width: 960px){
  /* ① メインキャッチ上下余白 */
  body.page-president .main-catch { margin: 30px auto 35px; }

  /* --- タイトルと本文の間を縮める設定 --- */
  body.page-president .editorial-title {
    margin-bottom: 1rem !important; /* ★ここを小さくすると「赤い棒のタイトル」と「本文」が近づきます（元は3rem） */
  }

  /* ② セクション間の空白（外側） */
  body.page-president .split-message { flex-direction: column; margin-bottom: 15px; }
  body.page-president .split-message.reverse { flex-direction: column; }
  body.page-president .split-visual { height: 250px; }
  
  /* 画像下の文章エリアの内側余白（上下をさらに詰めました） */
  body.page-president .split-content { padding: 3.5rem 1.5rem; }

  /* --- 理念セクションの調整 --- */
  body.page-president .ism-wrap { padding: 35px 0; margin-bottom: 20px; }
  
  /* 「MISSION」「VISION」「VALUE」のカード同士の間隔を縮める */
  body.page-president .ism-grid { 
    grid-template-columns: 1fr; 
    gap: 15px !important; /* ★ここを小さくするとカード同士が近づきます（元は40px） */
  }
  
  /* カード内の上下余白も少し詰める場合 */
  body.page-president .ism-card { padding: 30px 25px; }

  /* ③ 署名周り */
  body.page-president .signature-final { margin-top: 1rem; }
  body.page-president .signature-final .name { font-size: 2.0rem; margin-top: 0; line-height: 1.2; }

  /* ④ 歩みと実績（プロフィール）セクション */
  body.page-president .profile-section { 
    flex-direction: column; 
    gap: 10px; 
    padding: 0 5vw; 
    margin-bottom: 25px; 
  }
  body.page-president .profile-section .editorial-title { margin-bottom: 0 !important; }
  body.page-president .profile-section > div:first-child { flex: 0 0 auto !important; }
  body.page-president .profile-data .box { margin-bottom: 1.5rem; }
}







/* =========================================================
   採用情報：事業別タブ（Tailwind版の補助CSS）
   style.css 末尾に追記
   ※影響範囲：#business-recruitment の中だけ
========================================================= */

/* フォント：このセクション内だけ（既存サイト全体は触らない） */
#business-recruitment {
  font-family: 'Noto Sans JP', sans-serif;
}

/* 事業別テーマカラー定義 */
#business-recruitment.biz-theme-transition {
  transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* アミューズメント (Orange) */
#business-recruitment.theme-amusement { --biz-color: #f97316; --biz-bg: #fffaf0; }
/* ホテル (Purple) */
#business-recruitment.theme-hotel { --biz-color: #8b5cf6; --biz-bg: #faf5ff; }
/* リサイクル (Green) */
#business-recruitment.theme-recycle { --biz-color: #22c55e; --biz-bg: #f0fdf4; }
/* 管理本部 (Red - ブランド色寄せ) */
#business-recruitment.theme-admin { --biz-color: #9B111E; --biz-bg: #fef2f2; }

#business-recruitment .biz-accent { color: var(--biz-color); }
#business-recruitment .biz-border { border-color: var(--biz-color); }
#business-recruitment .biz-bg-soft { background-color: var(--biz-bg); }
#business-recruitment .biz-bg-solid { background-color: var(--biz-color); }

/* タブのアクティブ状態 */
#business-recruitment .tab-btn.active {
  background-color: var(--biz-color);
  color: #fff;
  border-color: var(--biz-color);
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
  transform: translateY(-2px);
}

/* タブ表示切替 */
#business-recruitment .tab-content { display: none; animation: slideUp 0.6s ease-out; }
#business-recruitment .tab-content.active { display: block; }

@keyframes slideUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* タイムラインの線 */
#business-recruitment .timeline-line::before {
  content: '';
  position: absolute;
  left: 20px;
  top: 0;
  bottom: 0;
  width: 2px;
  background-color: var(--biz-color);
  opacity: 0.2;
}









/* =========================================================
   recruitment.html（採用ページ）専用CSS（完全上書き）
   ※ 既存 style.css の末尾に追記…ではなく、採用周りはこれで統一推奨
========================================================= */

/* フォント */
body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
}

/* 事業別テーマカラー定義 */
.biz-theme-transition { transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }

.theme-amusement { --biz-color: #f97316; --biz-bg: #fffaf0; }
.theme-hotel     { --biz-color: #591E5B; --biz-bg: #faf5ff; }
.theme-recycle   { --biz-color: #009443; --biz-bg: #f0fdf4; }
.theme-admin     { --biz-color: #9B111E; --biz-bg: #fef2f2; }
.theme-none      { --biz-color: #94a3b8; --biz-bg: #f1f5f9; }

.biz-accent  { color: var(--biz-color); }
.biz-border  { border-color: var(--biz-color); }
.biz-bg-soft { background-color: var(--biz-bg); }
.biz-bg-solid{ background-color: var(--biz-color); }

/* 共通カードスタイル（枠線あり・シャドウ控えめ） */
.biz-card {
  background-color: #fff;
  border: 2px solid var(--biz-color);
  border-radius: 1.5rem;
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05), 0 2px 4px -1px rgba(0,0,0,0.03);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.biz-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.08), 0 4px 6px -2px rgba(0,0,0,0.04);
}


/* 左縦棒スタイル */
.biz-left-border {
  background-color: #fff;
  border-left: 10px solid var(--biz-color);
  padding: 2rem;
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}


/* ボタン共通 */
.tab-btn {
  min-width: 180px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  transition: all 0.3s ease;
}

/* カテゴリボタン（赤） */
.cat-btn {
  background-color: #fff;
  color: #9B111E;
  border: 2px solid #9B111E;
}
.cat-btn:hover { background-color: #fef2f2; }
.cat-btn.active {
  background-color: #9B111E;
  color: #fff;
  border-color: #9B111E;
  transform: translateY(-2px);
  box-shadow: 0 4px 6px -1px rgba(155, 17, 30, 0.3);
}

/* 事業部ボタン */
.biz-btn.active {
  background-color: var(--biz-color);
  color: #fff;
  border-color: var(--biz-color);
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
  transform: translateY(-2px);
}

/* 無効ボタン（見た目） */
.biz-btn.is-disabled {
  cursor: not-allowed;
  opacity: .45;
}

@media (max-width: 640px) {
  .tab-btn { min-width: calc(50% - 0.75rem); font-size: 0.9rem; }
}

/* コンテンツ表示切替 */
.tab-content { display: none; }
.tab-content.active { display: block; animation: slideUp 0.6s ease-out; }

@keyframes slideUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* STEP表示（開閉） */
.selection-step {
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  transition: opacity 0.5s ease, max-height 0.8s ease, transform 0.5s ease;
  transform: translateY(10px);
}
.selection-step.visible {
  opacity: 1;
  max-height: 30000px;
  transform: translateY(0);
  margin-bottom: 2rem;
}

/* タイムライン線 */
.timeline-line::before {
  content: '';
  position: absolute;
  left: 20px;
  top: 0; bottom: 0;
  width: 2px;
  background-color: var(--biz-color);
  opacity: 0.2;
}

/* 社員インタビュー吹き出し（data属性で複数スコープ対応） */
[data-interview-expansion]{
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.8s cubic-bezier(0.4,0,0.2,1), opacity 0.4s ease;
  opacity: 0;
  position: relative;
  margin-top: 45px;
  border: 2px solid var(--biz-color);
  background: #fff;
  border-radius: 2.5rem;
}
[data-interview-expansion].is-open{
  max-height: 5000px;
  opacity: 1;
  overflow: visible;
}

[data-interview-tail]{
  position: absolute;
  top: -18px;
  width: 0; height: 0;
  border-left: 18px solid transparent;
  border-right: 18px solid transparent;
  border-bottom: 18px solid var(--biz-color);
  transition: left 0.5s cubic-bezier(0.16,1,0.3,1), border-bottom-color 0.5s ease;
  z-index: 10;
}
[data-interview-tail]::after{
  content:'';
  position:absolute;
  top:3px;
  left:-15px;
  width:0; height:0;
  border-left:15px solid transparent;
  border-right:15px solid transparent;
  border-bottom:15px solid #fff;
}

@media (max-width: 767px){
  [data-interview-expansion]{ margin-top:20px; border-radius:1.5rem; }
  [data-interview-tail]{ left: calc(50% - 18px) !important; }
}

.interview-person-content { display: none; opacity: 0; transition: opacity 0.5s ease; }
.interview-person-content.active { display: block; opacity: 1; }

/* カレンダー */
.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.calendar-day {
  aspect-ratio: 1 / 0.8;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  border-radius: 6px;
}

/* シフト色 */
.shift-common {
  background-color: #fff;
  border: 2px solid var(--biz-color);
  color: var(--biz-color);
  font-weight: 700;
}
.shift-early { opacity: 0.9; }
.shift-mid   { opacity: 0.9; border-style: dashed; }
.shift-late  { opacity: 0.9; background-color: var(--biz-color); color: #fff; }
.shift-off   { background-color: #f1f5f9; color: #94a3b8; font-weight: 500; border: none; }

.coming-soon-overlay {
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f8fafc;
  border-radius: 2rem;
  border: 2px dashed #cbd5e1;
}

/* Entry */
#entry-section {
  background-color: var(--biz-color);
  display: none;
  opacity: 0;
  transition: opacity 0.5s ease, background-color 0.5s ease;
}
#entry-section.visible {
  display: block;
  opacity: 1;
}

/* 採用ページ：パンくず直下の最初の bg2 の上余白を消す */
.recruit-page2 main > .bg2:first-of-type{
  margin-top: 0;
  padding-top: 0;
}
.recruit-page2 main > .bg2:first-of-type > section{
  padding-top: 0;
}

/* 採用ページだけ、固定ヘッダー分の余白を確保 */
body.recruit-page2 #container2 {
  padding-top: 80px;
}
body.recruit-page2.want-sns-gap #container2 {
  padding-top: 130px;
}

/* ===== Shift bar（勤務時間の横棒） ===== */
body.recruit-page2 .shift-bar{
  flex: 1;
  height: 12px;
  background: #eef2f7;
  border-radius: 999px;
  position: relative;
  overflow: hidden;
 min-width: 120px;
}
body.recruit-page2 .shift-bar__fill{
  position: absolute;
  inset: 0 auto 0 0;
  height: 100%;
  border-radius: 999px;
}
body.recruit-page2 .shift-bar__fill--early{
  width: 60%;
  left: 0%;
  background: rgba(245, 158, 11, .55);
}
body.recruit-page2 .shift-bar__fill--mid{
  width: 60%;
  left: 20%;
  background: rgba(249, 115, 22, .45);
}
body.recruit-page2 .shift-bar__fill--late{
  width: 60%;
  left: 40%;
  background: rgba(239, 68, 68, .35);
}

/* 既存見た目維持のための細部（必要ならここに追記） */
.recruit-page2 #entry-section a{ color: var(--biz-color); }

/* =========================================================
   Interview bubble controls（初期は非表示 / 開いたら表示）
   ========================================================= */
body.recruit-page2 [data-interview-expansion]{
  display:none;               /* ④：クリックしてないのに枠が出るのを防止 */
  position:relative;
}

body.recruit-page2 [data-interview-expansion].is-open{
  display:block;
}

/* しっぽ（④） */
body.recruit-page2 [data-interview-tail]{
  position:absolute;
  top:-18px;
  left:50%;
  transform:translateX(-50%);
  width:0;
  height:0;
}

body.recruit-page2 [data-interview-tail]::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:0;
  height:0;
  border-left:18px solid transparent;
  border-right:18px solid transparent;
  border-bottom:18px solid currentColor;
  color: var(--biz-color, #7c3aed); /* 事業色を当てたい場合はCSS変数に合わせて調整 */
}

/* 枠（②）：クリック時のフォーカス枠を完全に消す */
body.recruit-page2 .interview-card-btn:focus{
  outline:none !important;
  box-shadow:none !important;
}













html, body{
  overflow-x: hidden;
}


/* #9B111E */

/* letter-spacing: 0.2em; */
