@charset "UTF-8";
/* CSS Document */

/*==============================
コンテンツ設定
==============================*/

/*ページビジュアル*/
#pageVisual{
	background: url(../img/about/bg_main.webp) no-repeat center center / cover;
}

/*ページビジュアル  見出し英語*/
#pageVisual .pageNav h2::after{
	content: "ABOUT US";
}

/*------------------------------
構造設定
------------------------------*/

/* 開閉ボタンのスタイル */
.sidebar-trigger {
    display: none; /* デフォルトは非表示 */
}

.contentWrap {
	display: flex;/* 横並びにする */
	width: 100%;
	position: relative;
}

.sidebar {
	margin: 150px 0 0 140px;
	width: 300px;
	position: sticky; 
	top: 100px;/* 固定した時の上端の余白（お好みで調整） */
	height: fit-content;/* 中身の高さに合わせる（重要） */
	align-self: flex-start;/* 親の高さに合わせて伸びるのを防ぐ */
}

.sidebar ul{
	display: flex;
	flex-direction: column;
	gap: 46px 0;
}

.sidebar ul li{
	font-size: 1.6rem;
	line-height: 1;
}

.sidebar ul li a{
	color: #1a1a1a; /* 元々の色 */
	transition: color 0.3s; /* 色の切り替えを滑らかに */
	display: flex;
	align-items: center;
	position: relative;
	transition: 0.15s ease;
}

/* ホバー */
@media (any-hover: hover) {

	.sidebar ul li a:hover{
		opacity: 0.7;
		letter-spacing: 0.2em;
	}

	.sidebar ul li a:hover::before{
		transform: translate(5px,0);
		transition: 0.3s ease;
	}

}

/* 背景が暗いエリアに入った時のサイドバー文字色 */
.sidebar.is-dark-mode ul li a {
	color: #fff; /* 白にする */
}

.sidebar ul li a::before{
	content: "";
	display: inline-block;
	margin: 0 15px 0 0;
	width: 7px;
	height: 14px;
	background: url(../img/common/ico_arrow.svg) no-repeat center center / cover;
}

/* 矢印アイコンの色も合わせる必要がある場合 */
.sidebar.is-dark-mode ul li a::before {
	filter: invert(1); /* 黒い矢印を白く反転させる */
}

.mainContents {
	width: calc(100% - 300px);
}

/*------------------------------
共通設定
------------------------------*/

section .txt{
	font-size: 1.4rem;
	line-height: 2.1;
	text-align: justify;
	font-family:"ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro",Osaka, "メイリオ", Meiryo, "ＭＳ Ｐゴシック", sans-serif;
}

.tableContainer{
	margin: 60px 0 0 0;
	display: block;
	width: 100%;
}

/*概要 table* tbody*/
.tableContainer tbody{
	display: block;
	width: 100%;
}

/*概要 table 行*/
.tableContainer tr{
	display: block;
	padding: 30px 0;
}

/*概要 table 行 最後*/
.tableContainer tr:last-of-type{
	border-bottom: none;
}

/*概要 table th,td共通*/
.tableContainer th,
.tableContainer td{
	font-size: 1.4rem;
	line-height: 2.1;
	text-align: justify;
	font-family:"ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro",Osaka, "メイリオ", Meiryo, "ＭＳ Ｐゴシック", sans-serif;
}

/*概要 table th*/
.tableContainer th{
	width: 125px;
}

/*概要 table td*/
.tableContainer td{
	width: calc(100% - 125px);
}

/*概要 table td 地図リンク*/
.tableContainer td .map{
	margin: 0 0 0 10px;
	text-decoration: underline;
}

/*概要 table td 地図リンク*/
.tableContainer td .map::after{
	content: "";
	display: inline-block;
	margin: 0 0 0 3px;
	width: 10px;
	height: 15px;
	background: url(../img/common/ico_mappin_w.svg) center center / cover;
}

/*------------------------------
ご挨拶設定
------------------------------*/

#greeting .inner{
	width: 560px;
}

#greeting h2::after{
	content: "GREETING";
}

#greeting h3{
	margin: 80px 0 0 0;
	font-size: 2.6rem;
	line-height: 1;
	text-align: center;
}

#greeting .txt{
	margin: 45px 0 0 0;
}

#greeting .name{
	margin: 30px 0 0 0;
	font-size: 2rem;
	line-height: 1;
	text-align: center;
}

#greeting .name span{
	margin: 0 10px 0 0;
	font-size: 1.2rem;
}

/*------------------------------
会社概要設定
------------------------------*/
#profile{
	margin-left: -300px; 
	padding-left: 300px; /* 広げた分、中身を右に押し戻す */
	width: 100vw;
	background: #333;
}

#profile .inner{
	width: 760px; 
}

#profile .inner h2{
	color: #fff;
}

#profile .inner h2::after{
	content: "OUTLINE";
}

/*概要 table 行*/
#profile .tableContainer tr{
	border-bottom: 1px solid #e5e5e5;
}

/*概要 table 行 最初*/
#profile .tableContainer tr:first-of-type{
	border-top: 1px solid #e5e5e5;
}

/*概要 table th,td共通*/
#profile .tableContainer th,
#profile .tableContainer td{
	color: #fff;
}

/*概要 table td 地図リンク*/
.tableContainer td .map,
.tableContainer td a{
	color: #fff;
}

/*------------------------------
沿革設定
------------------------------*/

#history .inner{
	width: 760px; 
}

#history .inner h2::after{
	content: "HISTORY";
}

/* 沿革ラッパーの基本設定 */
.history-wrapper {
	position: relative;
	max-height: 340px; /* 初期表示の高さ */
	overflow: hidden;
	transition: max-height 0.5s ease;
}

/* 開いたときの状態 */
.history-wrapper.is-open {
	max-height: 3000px; /* 十分な高さを確保 */
}

/*概要 table 行*/
#history .tableContainer tr{
	border-bottom: 1px solid #4d4d4d;
}

/*概要 table 行 最初*/
#history .tableContainer tr:first-of-type{
	border-top: 1px solid #4d4d4d;
}

#history .btn span::after{
	display: inline-block;
	margin: 0 0 0 10px;
	transform: rotate(90deg);
	position: static;
	transition: transform 0.3s ease; /* 回転アニメーションを追加 */
}

/* 開いている時（CLOSEと表示されている時）：矢印を-90degに回転 */
#history .btn.is-open span::after {
	transform: rotate(-90deg);
}

/*------------------------------
SDGs設定
------------------------------*/
#sdgs{
	margin-left: -300px; 
	padding-left: 300px; /* 広げた分、中身を右に押し戻す */
	width: 100vw;
	background: #333;
}

#sdgs .inner{
	width: 760px; 
}

#sdgs .inner h2{
	color: #fff;
}

#sdgs .inner h2::after{
	content: "SDGs";
}

#sdgs .inner .txt{
	margin: 60px 0 0 0;
	color: #fff;
}

#sdgs .inner .bnr{
	margin: 60px auto 0;
	padding: 30px;
	width: 584px;
	background: #fff;
}

/*------------------------------
社会・地域貢献設定
------------------------------*/

#contribution .inner{
	width: 920px;
}

#contribution .inner h2::after{
	content: "CONTRIBUTION";
}

#contribution .social{
	margin: 100px 0 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 100px 0;
}

#contribution .social li{
	display: flex;
	flex-wrap: wrap;
	gap: 80px;
}

#contribution .social li:nth-of-type(even){
	flex-direction: row-reverse;
}

#contribution .social .txtBox{
	flex: 1 1 320px;
}

#contribution .social .txtBox h3{
	font-size: 2rem;
	line-height: 1.6;
}

#contribution .social .txtBox .txt{
	margin: 15px 0 0 0;
}

#contribution .social .txtBox .movie{
	margin: 30px 0 0 0;
}

#contribution .social .txtBox .movie a::after{
	display: block;
	width: 34px;
	height: 26px;
	background: url(../img/common/ico_youtube.svg) center center / cover;
	position: static;
	transform: translate(5px,3px);
}

#contribution .social .photo{
	flex: 1 1 300px;
  	max-width: 320px; /* 大きくなりすぎるのを防ぐ上限 */
}

#contribution .local{
	margin: 100px 0 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 50px 40px;
}

#contribution .local li{
	flex: 1 1 calc(50% - 40px);
}

#contribution .local dl{
	margin: 20px 0 0 0;
}


#contribution .local dt{
	font-size: 1.6rem;
	line-height: 1.6;
	text-align: justify;
}

#contribution .local dt::before{
	content: "■";
	margin: 0 5px 0 0 ;
}

#contribution .local dd{
	margin: 10px 0 0 0;
	font-size: 1.4rem;
	line-height: 2.1;
	text-align: justify;
	font-family:"ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro",Osaka, "メイリオ", Meiryo, "ＭＳ Ｐゴシック", sans-serif;
}

/*------------------------------
採用情報設定
------------------------------*/

#recruit{
	padding: 0 0 150px;
}

#recruit .inner{
	width: 920px;
}

#recruit .inner h2::after{
	content: "RECRUIT";
}

#recruit .bnr{
	margin: 60px auto 0;
	width: 620px;
	background: #fff;
	border: 1px solid #1a1a1a;
}

#recruit .bnr ul{
	padding: 40px 0;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
}


#recruit .bnr ul li:first-of-type{
	width: 400px;
}

#recruit .bnr ul li:first-of-type img{
	max-width: auto;
	width: 100%;
}

#recruit .bnr ul li:nth-of-type(2){
	font-size: 3.6rem;
	text-align: center;
}

#recruit .bnr ul li.btn{
	margin: 10px auto 0;
}



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

/*1250px以下の場合*/
@media screen and (max-width:1250px){

	/*------------------------------
	社会・地域貢献設定
	------------------------------*/

	#contribution .inner{
		width: 760px;
	}

	#contribution .social{
		margin: 60px 0 0 0;
		gap: 60px 0;
	}

	#contribution .social li{
		gap: 60px;
	}

	#contribution .social .txtBox{
		flex: 1 1 300px;
	}

	#contribution .social .photo{
		flex: 1 1 200px;
	  	max-width: 300px; /* 大きくなりすぎるのを防ぐ上限 */
	}

	#contribution .local{
		margin: 60px 0 0 0;
	}

	#contribution .local dl{
		margin: 10px 0 0 0;
	}

}

/*1100px以下の場合*/
@media screen and (max-width:1100px){

	/*------------------------------
	構造設定
	------------------------------*/

	.sidebar {
		margin: 150px 0 0 50px;
		width: 240px;
	}

	.sidebar ul{
		gap: 40px 0;
	}

	.sidebar ul li{
		font-size: 1.4rem;
	}

	.sidebar ul li a::before{
		width: 6px;
		height: 12px;
	}

	.mainContents {
		width: calc(100% - 240px);
	}

	/*------------------------------
	共通設定
	------------------------------*/

	/*概要 table 行*/
	.tableContainer tr{
		padding: 20px 0;
	}

	/*概要 table th,td共通*/
	.tableContainer th,
	.tableContainer td{
		font-size: 1.4rem;
	}

	/*概要 table th*/
	.tableContainer table th{
		width: 200px;
	}

	/*概要 table td*/
	.tableContainer table td{
		width: calc(100% - 200px);
	}

	/*------------------------------
	会社概要設定
	------------------------------*/
	#profile{
		margin-left: -240px; 
		padding-left: 240px; /* 広げた分、中身を右に押し戻す */
	}

	#profile .inner{
		width: 600px; 
	}

	/*------------------------------
	沿革設定
	------------------------------*/

	#history .inner{
		width: 600px; 
	}

	/* 沿革ラッパーの基本設定 */
	.history-wrapper {
		max-height: 300px; /* 初期表示の高さ */
	}

	/*------------------------------
	SDGs設定
	------------------------------*/
	#sdgs{
		margin-left: -240px; 
		padding-left: 240px; /* 広げた分、中身を右に押し戻す */
	}

	#sdgs .inner{
		width: 600px; 
	}

	#sdgs .inner .txt{
		margin: 40px 0 0 0;
	}

	#sdgs .inner .bnr{
		margin: 40px auto 0;
		padding: 25px;
		width: 480px;
	}

	/*------------------------------
	社会・地域貢献設定
	------------------------------*/

	#contribution .inner{
		width: 600px;
	}

	#contribution .social{
		margin: 40px 0 0 0;
		gap: 40px 0;
	}

	#contribution .social li{
		gap: 40px;
	}

	#contribution .social .txtBox{
		flex: 1;
	}

	#contribution .social .photo{
		flex: 1;
	  	max-width: 350px; /* 大きくなりすぎるのを防ぐ上限 */
	}

	#contribution .local{
		margin: 40px 0 0 0;
	}


	/*------------------------------
	採用情報設定
	------------------------------*/

	#recruit .inner{
		width: 100%;
	}

	#recruit .bnr{
		margin: 40px auto 0;
		width: 400px;
	}

	#recruit .bnr ul{
		padding: 30px 0;
	}


	#recruit .bnr ul li:first-of-type{
		width: 300px;
	}

	#recruit .bnr ul li:nth-of-type(2){
		font-size: 2.4rem;
	}


}

/*960px以下の場合*/
@media screen and (max-width:960px){

	/*------------------------------
	ご挨拶設定
	------------------------------*/

	#greeting .inner{
		width: calc(100% - 40px);
	}


	#greeting h3{
		margin: 60px 0 0 0;
		font-size: 2rem;
	}

	#greeting .txt{
		margin: 30px 0 0 0;
	}

	#greeting .name{
		margin: 20px 0 0 0;
	}

	/*------------------------------
	会社概要設定
	------------------------------*/

	#profile .inner{
		width: calc(100% - 40px); 
	}

	/*------------------------------
	沿革設定
	------------------------------*/

	#history .inner{
		width: calc(100% - 40px);
	}

	/* 沿革ラッパーの基本設定 */
	.history-wrapper {
		max-height: 280px; /* 初期表示の高さ */
	}

	/*------------------------------
	SDGs設定
	------------------------------*/

	#sdgs .inner{
		width: calc(100% - 40px);
	}

	/*------------------------------
	社会・地域貢献設定
	------------------------------*/

	#contribution .inner{
		width: calc(100% - 40px);
	}

	#contribution .social{
		margin: 40px auto 0;
		width: 500px;
		flex-direction: column;
		gap: 60px 0;
	}

	#contribution .social li{
		width: 100%;
		gap: 30px;
		flex-direction: column-reverse;
	}

	#contribution .social li:nth-of-type(even){
		flex-direction: column-reverse;
	}

	#contribution .social .txtBox{
		flex: 0 1 auto;
	}

	#contribution .social .txtBox h3{
		font-size: 1.6rem;
	}

	#contribution .social .txtBox .txt{
		margin: 10px 0 0 0;
	}

	#contribution .social .txtBox .movie{
		margin: 30px auto 0;
	}

	#contribution .social .photo{
		flex: 0 1 auto;
		width: 100%;
	  	max-width: 100%;
	}

	#contribution .local{
		margin: 60px auto 0;
		width: 500px;
		flex-direction: column;
	}

	#contribution .local li{
		flex: 1 1 calc(50% - 40px);
	}

}

/*768px以下の場合*/
@media screen and (max-width:768px){

	/*------------------------------
	構造設定
	------------------------------*/

	.contentWrap {
		flex-direction: column;
		position: relative;
	}

	/* サイドバー本体 */
	.sidebar {
		margin: 0 !important;
		padding: 60px 20px !important;
		width: 180px !important;
		height: 100vh !important;
		position: fixed !important;
		top: 0;
		left: 0;
		z-index: 100;
		background: #fff;
		transform: translateX(-100%); 
		transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
	}

	/* メニューが開いている時 */
	.sidebar.is-active {
		transform: translateX(0);
		box-shadow: 2px 0 10px rgba(0,0,0,0.2);
	}

	/* トリガーボタン */
	.sidebar-trigger {
		display: flex;
		align-items: center;
		justify-content: center;
		position: fixed;
		top: 200px;
		left: 0;
		width: 35px;
		height: 35px;
		background: #666;
		z-index: 110;
		cursor: pointer;
		transition: left 0.4s cubic-bezier(0.25, 1, 0.5, 1), 
		background 0.1s linear, 
		opacity 0.3s ease, 
		visibility 0.3s ease;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
	}

	/*JSで表示状態になった時*/
	.sidebar-trigger.is-visible {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}


	/* トリガーボタンの基本設定 */
	.sidebar-trigger::after {
		content: "";
		display: block;
		width: 9px;
		aspect-ratio:  9 / 16;
		background: url(../img/common/ico_arrow_white.svg) center center / cover;
	}

	/* メニューが開いている時のボタンの動き */
	.sidebar.is-active + .mainContents .sidebar-trigger {
		left: 180px;
	}
	
	/* アイコンの回転 */
	.sidebar.is-active + .mainContents .sidebar-trigger::after {
		transform: rotate(180deg);
		transition: transform 0.4s ease;
	}

	/* モバイル時のリストスタイル調整 */
	.sidebar ul {
		flex-direction: column !important;
		justify-content: flex-start !important;
		gap: 30px 0 !important;
	}

	/* 背景オーバーレイ（メニューが開いている時に画面を暗くする） */
	.sidebar-overlay {
		display: none;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0,0,0,0.8);
		z-index: 50;
	}

	/* 4. ダークモード判定（メニューが閉じている時のみ適用） */
	/* メニューが開いている時(.is-active)は、背景が何であれグレーを維持するよう優先順位を上げます */
	.sidebar.is-dark-mode:not(.is-active) + .mainContents .sidebar-trigger {
	background: #fff !important;
	}

	.sidebar.is-dark-mode:not(.is-active) + .mainContents .sidebar-trigger::after {
	filter: invert(1) !important;
	}

	.sidebar-overlay.is-active {
		display: block;
	}

	/* モバイル時はダークモードになっても文字を黒に固定 */
	.sidebar.is-dark-mode ul li a {
		color: #1a1a1a !important;
	}

	.sidebar.is-dark-mode ul li a::before {
		filter: none !important; /* 矢印も黒のまま */
	}

	.mainContents {
		width: 100%;
	}

	/*------------------------------
	共通設定
	------------------------------*/
	
	/*概要 table*/
	.tableContainer{
		padding: 15px 0 0;
	}

	/*概要 table 行*/
	.tableContainer tr{
		padding: 10px 0;
	}

	/*概要 table th*/
	.tableContainer th{
		width: 120px;
	}

	/*概要 table td*/
	.tableContainer td{
		width: calc(100% - 120px);
	}

	/*------------------------------
	ご挨拶設定
	------------------------------*/

	#greeting .inner{
		width: calc(100% - 80px); 
	}

	#greeting h3{
		margin: 40px 0 0 0;
		font-size: 1.8rem;
	}

	/*------------------------------
	会社概要設定
	------------------------------*/

	#profile{
		margin-left: 0; 
		padding-left: 0;
	}

	#profile .inner{
		width: calc(100% - 80px); 
	}

	/*------------------------------
	沿革設定
	------------------------------*/

	#history .inner{
		width: calc(100% - 80px); 
	}

	/*------------------------------
	SDGs設定
	------------------------------*/

	#sdgs{
		margin-left: 0; 
		padding-left: 0;
	}

	#sdgs .inner{
		width: calc(100% - 80px); 
	}

	#sdgs .inner .bnr{
		width: 100%;
	}

	/*------------------------------
	社会・地域貢献設定
	------------------------------*/

	#contribution .inner{
		width: calc(100% - 80px);
	}

	#contribution .social{
		width: 100%;
	}

	#contribution .local{
		width: 100%;
	}

	/*------------------------------
	採用情報設定
	------------------------------*/

	#recruit .bnr{
		width: 320px;
	}

	#recruit .bnr ul{
		padding: 20px 0;
	}


	#recruit .bnr ul li:first-of-type{
		width: 200px;
	}

	#recruit .bnr ul li:nth-of-type(2){
		font-size: 1.8rem;
	}


}

/*600px以下の場合*/
@media screen and (max-width:600px){

	/*------------------------------
	共通設定
	------------------------------*/
	
	/*概要 table*/
	.tableContainer{
		padding: 0;
	}

	/*概要 table 行*/
	.tableContainer tr{
		display: flex;
		flex-direction: column;
	}

	/*概要 table th,td共通*/
	.tableContainer th,
	.tableContainer td{
		width: 100%;
	}

	/*概要 table th,td共通*/
	.tableContainer th{
		margin: 0 0 0 0;
		font-weight: 600;
	}

	/*概要 table td*/
	.tableContainer td{
		line-height: 1.8;
	}

}

/*430px以下の場合*/
@media screen and (max-width:430px){

	/*ページビジュアル*/
	#pageVisual{
		background: url(../img/about/bg_main_sp.webp) no-repeat center center / cover;
	}

	.sidebar ul{
		padding: 10px 10px 0;
	}

	/* 通常時の文字色（念のため） */
	.sidebar ul li a {
		font-size: 1.2rem;
	}


	/*------------------------------
	ご挨拶設定
	------------------------------*/

	#greeting .inner{
		width: calc(100% - 40px); 
	}

	#greeting h3{
		margin: 40px 0 0 0;
		font-size: 1.8rem;
	}

	/*------------------------------
	会社概要設定
	------------------------------*/

	#profile .inner{
		width: calc(100% - 40px); 
	}

	/*------------------------------
	沿革設定
	------------------------------*/

	#history .inner{
		width: calc(100% - 40px); 
	}

	/*------------------------------
	SDGs設定
	------------------------------*/

	#sdgs .inner{
		width: calc(100% - 40px); 
	}

	/*------------------------------
	社会・地域貢献設定
	------------------------------*/

	#contribution .inner{
		width: calc(100% - 40px);
	}

	/*------------------------------
	採用情報設定
	------------------------------*/

	#recruit{
		padding: 0 0 60px;
	}


}




































