@charset "utf-8";
/* ==========================================================================
   企業情報
   ========================================================================== */

/* ----------------------------------
   トップメッセージ
   ---------------------------------- */
.message__lead {
	position: relative;
	z-index: 1;
	max-width: 90%;
}
.message__lead2 {
	font-size: 2.4rem;
	font-weight: bold;
	line-height: 1.6;
}
.message__image img {
	display: block;
	position: relative;
	right: -16px;
	margin-top: -50px;
	margin-left: auto;
}
.message__sign {
	text-align: right;
}
.message__sign img {
	position: relative;
	top: 8px;
	vertical-align: baseline;
}
@media print, (min-width:40.0625em) {
	.message {
		position: relative;
		margin: 40px 15px 0 15px;
	}
	.message__lead {
		position: absolute;
		max-width: none;
		font-size: 3.6rem;
	}
	.message__lead2 {
		font-size: 3.6rem;
	}
	.message__image img {
		position: static;
		margin-top: 0;
	}
}


/* ----------------------------------
   会社概要
   ---------------------------------- */
.outline dt {
	width: 8em;
	margin: .5em 0;
	padding: .15em .5em;
	border-radius: 5px;
	background: #015db2;
	color: #fff;
	text-align: center;
}
.outline dd {
	margin: 0 0 1em;
}
@media print, (min-width:40.0625em) {
	.outline dt {
		float: left;
		clear: left;
		margin: 0;
	}
	.outline dd {
		margin: 0 0 .5em 10em;
		padding: .15em 0;
	}
}


/* ----------------------------------
   国内拠点・グローバルネットワーク
   ---------------------------------- */
.location-section { margin-top: 1.5em;}
.location-section__title,
.location-item__name {
	font-size: 16px;
	font-size: 1.6rem;
}
.location-item__name small {
	display: block;
	font-size: .722em;
}
.location-section__title {
	padding: .15em 1em;
	background: #015db2;
	color: #fff;
}
.location-item {
	line-height: 1.4;
	margin: 0 1em;
	padding-top: 16px;
}
.location-item + .location-item { border-top: 1px solid #015db2;}
.location-item__name {
	margin-bottom: 12px;
	color: #015db2;
}

@media print, (min-width:40.0625em) {
	.location-section__title,
	.location-item__name {
		font-size: 18px;
		font-size: 1.8rem;
	}
	.location-section__title {
		margin-bottom: 8px;
		padding: 0 30px;
	}
	.location-item {
		position: relative;
		margin: 0 30px;
		padding: 12px 0;
	}
	.location-item__address {
		margin-right: 8em;
	}
	.location-item__link {
		position: absolute;
		right: 0;
		bottom: 0;
	}
}

/* 地図表示（map.html） */
.map-container {
	position: relative;
	margin: 0 auto;
	padding-top: 400px;
	padding-top: 70vh;
}
.map-container #map {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}
@media print, (min-width:40.0625em) {
	.map-container {
		padding-top: 600px;
	}
}

/*トップ画像*/
.top-img {
	width: 100%;
	display: flex;
	justify-content: center;/* 水平方向に中央寄せ */
	margin-top: 0;
  }
  
  .top-img img {
	max-width: 1000px; /* 横幅の最大値を1000pxに制限 */
	width: 100%;/* 親の幅に応じて縮小する */  
  }
  /*トップ画像*/
  /*ここからパーパス*/
  .purpose{
	padding-top: 10px;
	font-size: 4rem;/* 48px相当 */
	font-weight: 500;
	padding-top: 10px;
	text-align: center;
	margin-top: 80px;  
	margin-bottom: 0;
	line-height: 1.4;
  }
  
  .purpose-sub{
	font-size: 3rem; /* 32px相当 */
	margin-bottom: 0;
	line-height: 1.6; 
	text-align: center;
  }
  
  
  /*ここまでパーパス*/
  
  /*ここからMVV*/
  /*mission*/
  .mvv {
	margin-top: 150px;
  }
  .mission p{
	text-align: center;
  }
  /*mission*/
  /*vision*/
  .slide-in p{
	max-width: 1150px;
  }
  /*vision*/
  
  /*value*/
  .value{
	position: relative;/*ここを基準とする*/
	width: 100%;
	min-height: 120px;/*どのデバイスで見ても120より小さくならないようにするための最低ライン*/
	margin-bottom: 40px;
	padding:40px 0 40px;
	max-width: 1000px;/*valueの中身の幅のマックス値*/
	margin: 0 auto;
  }
  
  .value-texts{
	max-width: 900px;/* 見やすい幅；1000pxよりやや小さいとバランス良 */
	margin: 0 auto;/* 中央に寄せる */
	display: flex;
	flex-direction: column;/*縦方向に並べる*/
	margin-top: 40px;
	box-sizing: border-box;
	padding: 0 24px;/*スマホで左右に余白付加 */
  }
  .value-row{
	display: flex;
	align-items: flex-start;/*文字上端が揃う*/
	margin-bottom: 24px;/*morimatsu wayの行間*/
	/*border-bottom: 1px solid #e3e9ef;
	border-radius: 18px;*/
	padding: 0px 36px;
	font-family: 'Noto Sans JP', sans-serif;
	color: #222;
  }
  .value-row .key {
	width: 130px;
	font-size: 2.15rem;
	font-family: 'Noto Serif', serif;
	font-weight: bold;
	color:#2C3E50;
	white-space: nowrap;/*改行させない*/
	transform: translateX(-50px);
	text-align: left;
	letter-spacing: 0.04em;
  
  }
  .value-row .desc{
	font-size:2.15rem;
	line-height: 1.7;/*テキストの各行の間隔*/
	text-align: left;
	margin-left: 40px;
  }
  .value h1{
	margin-bottom: 80px;
  }
  /*value*/
  
  /*MVV共通*/
  .mission,.vision{
	/*display: flex;*/
	align-items: center;
	position: relative;/*ここを基準とする*/
	width: 100%;
	min-height: 300px;
	max-width: 1000px;/*valueの中身の幅のマックス値*/
	margin: 0 auto;
	
  } 
  
  .slide-in {
	font-weight: 800; /* フォントの太さ（900でもOK） */
	opacity: 1; /* 常に表示 */
	transform: none; /* 位置移動なし */
	padding-left: 50px; /* 左余白 */
	color: #3B5998; /* 文字色 */
	border-bottom: 1.5px solid #1266cc; /* 下線 */
	border-radius: 14px; /* 角の丸み */
	font-family: 'Noto Serif', serif; /* フォント指定 */
  }
  
  .slide-in.active {
	opacity: 1;/*完全に表示*/
	transform: translateX(0);
  }
  .mission h1, .vision h1, .value h1 {
	font-size: 72px;
	line-height: 1.1;
  }
  
  
  .mission p,.vision p{
	font-size: 2.8rem;
	font-weight: 400;
	line-height: 1.8;
	color: #222;
	margin: 0 auto;
	gap: 40px;
	text-align: center;
	font-family: 'Noto Sans JP', sans-serif;
  }
  /*共通*/
  
  /*スマホタブレット向け*/
  @media screen and (max-width: 768px) {

  .purpose {
    font-size: 2.2rem;
    margin-top: 40px;
  }

  .purpose-sub {
    font-size: 1.8rem;
  }

  .mission h1,
  .vision h1,
  .value h1 {
    font-size: 2.8rem;
  }

  .mission p,
  .vision p {
    font-size: 1.8rem;
    padding: 0 16px;
  }

  .value-row {
    flex-direction: column;
    padding: 0 16px;
    text-align: left;
  }

  .value-row .key {
    width: 100%;
    font-size: 1.8rem;
    transform: none;
    margin-bottom: 8px;
  }

  .value-row .desc {
    margin-left: 0;
    font-size: 1.6rem;
  }

  .value-texts {
    padding: 0 16px;
  }

  .top-img img {
    height: auto;
  }

}