
/* CSS Document */


.products_bg{
	background: url("../img/product-bg.png") no-repeat right/cover;
	height: 202px;
}

/*アンカーリンク*/
:target::before {
	content: "";
	display: block;
	margin-top: -83px;
	height: 83px;
}

.all_title{
	display: flex;
	align-items: center;
	gap: 20px;
	padding-top: 10px;

	.tt02{
		padding-left: 120px;
		padding-top: 40px;
	}
}

.anker{
	max-width: 1024px;
	width: 90%;
	margin: 50px auto;
	display: flex;
	justify-content: center;
	gap: 20px;

	li{
		width: 328px;
		height: 128px;
		background: #309;
	}
	a{
		width: 100%;
		height: 100%;
		display: flex;
		flex-direction: column;
		gap: 5px;
		justify-content: center;
		align-items: center;
	}

	.aicon{
		height: 51px;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.text{
		position: relative;
		color: #fff;
		font-size: 20px;
		letter-spacing: 0.8px;
		&::after{
			content: '';
			width: 10px;
			height: 10px;
			border: 0;
			border-bottom: solid 2px #fff;
			border-right: solid 2px #fff;
			transform: rotate(45deg);
			position: absolute;
			top: 0;
			left: 50%;
			bottom: -30px;
			margin: auto;
		}
	}
}

.common_link{
	max-width: 328px;
	width: 100%;
	margin: auto;
	background: #309;
	height: 50px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: bold;
	font-size: 16px;
	color: #fff;
	&:visited{
		color: #fff;
	}
	&:link{
		color: #fff;
	}
}
.p_title{
	text-align: center;
}
.p_title .title{
	font-size: 30px;
	padding-bottom: 5px;
	font-weight: bold;
	border-bottom: solid #309 5px;
	display: inline-block;
	text-align: center;
	padding-left: 0;
}
.pp_title{
	text-align: center;
}


@media screen and ( max-width: 767px ){
	.anker{
		flex-direction: column;
		align-items: center;
	}

	.all_title{
		font-size: 14px;
		line-height: 1.2;
		gap: 5px;
		padding-top: 10px;
		position: relative;

		.tt02{
			padding-left: 0px;
			padding-top: 0px;
			position: absolute;
			right: 5%;
			bottom: -35px;
			width: 200px;
			text-align: right;
		}
	}
}

/* 代表挨拶 */
.greeting{
	background: url(../img/img01_bg.png) no-repeat center/cover;
	padding: 70px 0;

	.common_link{
		margin-top: 40px;
	}
}
.greeting_flex{
	display: flex;
	max-width: 1024px;
	margin: auto;
	justify-content: space-around;
	padding-top: 50px;
}
.greeting_right{
	max-width: 763px;
	width: 90%;
	padding-left: 20px;
}
.greeting_tt{
	font-weight: bold;
	font-size: 24px;
	letter-spacing: 0.96px;
	padding-bottom: 25px;
	line-height: 1.6;
}
.greeting_text{
	padding-bottom: 50px;
}

.busi{
	max-width: 1024px;
	width: 90%;
	margin: auto;
	padding: 80px 0 60px;
}
.busi_tt{
	color: #309;
	font-size: 24px;
	font-weight: bold;
	padding-top: 40px;
	line-height: 1.6;
}
.busi_list{
	display: flex;
	gap: 55px;
	margin-top: 50px;
	li{
		max-width: 271px;
		width: 100%;
		display: flex;
		flex-direction: column;
		gap: 30px;
	}
	.img{
		text-align: center;
	}
	.title_tt{
		color: #309;
		font-size: 24px;
		font-weight: bold;
		text-align: center;
		line-height: 1.6;
		margin-bottom: -10px;

		&.twn{
			padding-bottom: 40px;
		}
	}
}

.map{
	background: #f1eaf3;
	text-align: center;
	padding: 60px 0;
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.ex{
	background: #f5f5f5;
	padding: 60px 0;

	.bold{
		font-weight: bold;
	}
	.common_link{
		margin-left: 0;
		margin-top: 20px;
	}
}
.ex_box--b{
	max-width: 397px;
	width: 100%;
}
.ex_box--image{
	text-align: center;
	display: flex;
	justify-content: center;
	width: 100%;
}
.ex_inner{
	background: #fff;
	max-width: 1024px;
	width: 90%;
	margin: auto;
	padding: 60px 70px;
	margin-top: 40px;

	.ex_tt{
		color: #309;
		font-size: 24px;
		font-weight: bold;
		border-bottom: 3px solid #d9d9d9;
		padding-bottom: 20px;
		margin-bottom: 20px;
	}
}
.ex_box{
	display: flex;
	gap: 80px;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 30px;

	.tt{
		font-weight: bold;
		font-size: 20px;
		padding: 5px 0;
		padding-top: 15px;
	}
	p{
		line-height: 1.6;
	}
	ul{
		list-style: disc;
		margin-left: 1em;
		padding-top: 10px;
	}
}
.w_box{
  text-align: center;
  padding: 70px 0;
}
.ex_flex{
  display: flex;
  gap: 20px;

  .text{
    max-width: 605px;
    width: 100%;
  }
  .bold{
    font-weight: bold;
  }
}


.ser{
	padding: 80px 0;

	.catalog{
		margin-top: 120px;
		gap: 10px;
		align-items: center;
		line-height: 1;
		padding-top: 3px;
	}
}

.material-symbols-outlined{
	font-size: 32px !important;
}

.ser_box{
	position: relative;
	display: flex;
	gap: 40px;
	justify-content: center;
	padding: 60px 0 0;
	margin-bottom: 60px;

	&.rev::before{
		content: "";
		background: transparent linear-gradient(180deg, #E5D6E8 0%, #F1EAF3 100%) 0% 0% no-repeat padding-box;
		width: calc(50% + 164px);
		height: 100%;
		position: absolute;
		left: auto;
		right: 0;
		z-index: -1;
	}

	&::before{
		content: "";
		background: transparent linear-gradient(180deg, #DED9EA 0%, #F3F1F8 100%) 0% 0% no-repeat padding-box;
		width: calc(50% + 164px);
		height: 100%;
		position: absolute;
		left: 0;
		z-index: -1;
	}

	.box{
		max-width: 589px;
		width: 100%;
		padding-top: 60px;

		.common_link{
			margin-top: 40px;
		}
	}

	.img{
		max-width: 415px;
		width: 100%;
		padding-top: 60px;
		height: auto;
	}

	.tt{
		color: #309;
		font-size: 30px;
		font-weight: bold;
		padding-bottom: 30px;
    line-height: 1.3;
	}

	.img_flex{
		display: flex;
		margin-top: 40px;

		.bold{
			font-weight: bold;
		}
	}
}


.cont{
	background: transparent linear-gradient(180deg, #E9E4F4 0%, #F3F1F9 100%) 0% 0% no-repeat padding-box;
	padding: 60px 0;

	.tt{
		padding: 40px 0;
	}
}
.cont .p_title{
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 2rem;
}
.cont_inner{
	max-width: 1024px;
	width: 90%;
	margin: auto;
}

/* 固有のスマホ対応記述
==============================================================================
==============================================================================*/

/* 700pxより小さい場合 */
@media screen and ( max-width: 767px ){

	.products_bg{
		margin-top: 50px;
	}

	.greeting_flex{
		flex-direction: column;
		gap: 20px;
		align-items: center;
	}
	.greeting_text{
		padding-bottom: 0;
	}

	.busi_tt{
		font-size: 20px;
		padding-top: 20px;
	}

	.busi_list{
		flex-direction: column;
		align-items: center;
    gap: 30px;

	li{
		max-width: 100%;
		gap: 10px;
	}

	.title_tt{
		margin-bottom: 0px;

		&.twn{
			padding-bottom: 0px;
		}
	}
}

	.map{
		padding: 40px 5%;
	}

	.ex_inner{
		padding: 30px 5%;
	}
	.ex_flex{
		flex-direction: column-reverse;
	}

	.ser .catalog{
		margin: -30px auto 60px;
	}

	.ser{
		padding-bottom: 0;

		.catalog{
			width: 90%;
			margin: -30px auto 30px;
		}
	}
	.p_title .title{
		line-height: 1.6;
	}

  .ser_box{
    margin-top: 30px;
    flex-direction: column;
    background: transparent linear-gradient(180deg, #DED9EA 0%, #F3F1F8 100%) 0% 0% no-repeat padding-box;

    &.rev{
      background: transparent linear-gradient(180deg, #E5D6E8 0%, #F1EAF3 100%) 0% 0% no-repeat padding-box;
      flex-direction: column-reverse;
       &::before{
        background: none;
       }
    }

    &::before{
      background: none;
    }
    .box{
      padding-top: 0;
      width: 90%;
      margin: auto;
    }
    .img{
      padding-top: 0;
    }
  }

	.w_box{
		padding-top: 30px;
	}
}
