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

/*==============================*/
/* service */
/*==============================*/
div.serviceWrap{ counter-reset: point;}


div.service{
	display: flex; display: -webkit-flex;
	align-items: flex-start; -webkit-align-items: flex-start;
}
div.service:nth-child(1){ margin-bottom: 80px;}
div.service:nth-child(2){ margin-bottom: 120px;}

div.service:nth-child(odd){ padding-left: calc( calc( 100% - 1280px ) / 2 );}
div.service:nth-child(even){ padding-right: calc( calc( 100% - 1280px ) / 2 );}

	/* ======= TB：個別設定 =======*/
	@media screen and (min-width: 768px) and (max-width: 1400px) {
		div.serviceWrap{ padding: 0 48px;}
	}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.service:nth-child(1){ margin-bottom: 80px;}
		div.service:nth-child(2){ margin-bottom: 80px;}
		
		div.service:nth-child(odd){ flex-direction: column-reverse; -webkit-flex-direction: column-reverse;}
		div.service:nth-child(even){ flex-direction: column; -webkit-flex-direction: column;}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.service:nth-child(1){ margin-bottom: 64px;}
		div.service:nth-child(2){ margin-bottom: 64px;}
		
		div.service:nth-child(odd){ flex-direction: column-reverse; -webkit-flex-direction: column-reverse;}
		div.service:nth-child(even){ flex-direction: column; -webkit-flex-direction: column;}
	}


/*-- 
------------------------- */
div.service figure{
	position: relative;
	width: 50%;
}
div.service figure::before{ content: "";}

div.service:nth-child(1) figure::before{
	width: 242px;
	height: 201px;
	background: url("/common/img/service/icon-service01.png")no-repeat;
	background-size: 100%;
}
div.service:nth-child(2) figure::before{
	width: 203px;
	height: 176px;
	background: url("/common/img/service/icon-service02.png")no-repeat;
	background-size: 100%;
}
div.service:nth-child(3) figure::before{
	width: 302px;
	height: 249px;
	background: url("/common/img/service/icon-service03.png")no-repeat;
	background-size: 100%;
}
div.service:nth-child(3) figure{ padding-top: 72px;}



	/* ======= PC以上 =======*/
	@media (min-width: 1401px) {
		div.service:nth-child(1) figure{ padding-right: 64px;}
		div.service:nth-child(2) figure{ padding-left: 64px;}
		div.service:nth-child(3) figure{ padding-right: 64px;}
	}
	
	/* ======= SP以上 =======*/
	@media (min-width: 768px) {
		div.service:nth-child(2) figure::before{ position: absolute; bottom: -64px; right: -64px;}
	}

	/* ======= PC以上 =======*/
	@media (min-width: 1025px) {
		div.service:nth-child(1) figure::before{ position: absolute; bottom: -64px; left: -72px;}
		div.service:nth-child(3) figure::before{ position: absolute; bottom: -64px; left: -96px;}
	}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.service figure{
			width: 100%;
			margin-bottom: 56px;
		}
		div.service:nth-child(3) figure{ padding-top: 0px;}
		
		div.service:nth-child(1) figure::before{ position: absolute; bottom: -72px; right: 56px;}
		div.service:nth-child(2) figure::before{ position: absolute; bottom: -72px; right: 56px;}
		div.service:nth-child(3) figure::before{ position: absolute; bottom: -72px; right: 56px;}
		
		div.service figure img{
			object-fit: cover;
			width: 100%;
			height: 320px;
		}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.service figure{
			width: 100%;
			margin-bottom: 56px;
		}
		div.service:nth-child(1) figure{ padding-right: 0px;}
		div.service:nth-child(2) figure{ padding-left: 0px;}
		div.service:nth-child(3) figure{ padding-top: 0px; padding-right: 0px;}
		
		div.service figure::before{
			width: 105px;
			height: 83px;
		}
		
		div.service:nth-child(1) figure::before{
			position: absolute; bottom: -48px; left: 16px;
			width: 203px;
			height: 176px;
		}
		div.service:nth-child(2) figure::before{
			position: absolute; bottom: -48px; left: 16px;
			width: 242px;
			height: 201px;
		}
		div.service:nth-child(3) figure::before{
			position: absolute; bottom: -72px; left: 16px;
			width: 302px;
			height: 249px;
		}
		
		div.service figure img{
			object-fit: cover;
			width: 100%;
			height: 216px;
		}
	}

/*-- 
------------------------- */
div.service div.serviceContent{
	flex: 1;
	display: flex; display: -webkit-flex;
}
div.service:nth-child(odd) div.serviceContent{ margin-right: 64px;}
div.service:nth-child(even) div.serviceContent{ margin-left: 80px;}

div.service:nth-child(2) div.serviceContent{ padding-top: 80px;}

/*-- サブタイトル -- */
div.service div.serviceContent h4{
	writing-mode: vertical-rl;
	font-size: 28px;
	font-family: "Zen Old Mincho", serif;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.5em;
}

/*-- コンテンツ -- */
div.service div.serviceContent div{
	margin-left: 32px;
	padding-left: 32px;
}

div.service div.serviceContent div h3{
	position: relative;
	margin-bottom: 22px;
	padding-top: 80px;
	font-size: 27px;
	font-weight: bold;
	line-height: 1.414em;
	color: #000;
}
div.service:nth-child(1) div.serviceContent div h3{ font-size: 32px;}

div.service div.serviceContent div h3::before{
	position: absolute; top: 8px; left: 0;
	counter-increment: point;
  	content: "SERVICE 0"counter(point);
	color: #009450;
	font-size: 17px;
	font-weight: 500;
	font-family: 'Roboto', sans-serif;
	letter-spacing: 0.03em;
	line-height: 1.414em;
}
div.service div.serviceContent div h3::after{
	position: absolute; top: 0; left: -32px;
	content: "";
	width: 1px;
	height: 40px;
	background: #000;
}
div.service div.serviceContent div h3 small{
	display: block;
	margin-bottom: 4px;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.414em;
}

div.service div.serviceContent div p.linkBtn{
	max-width: 200px;
}
div.service div.serviceContent div p.linkBtn a{
	display: block;
	padding: 12px 0;
	border-radius: 3px;
	background: #23AE63;
	color: #fff;
	text-align: center;
}
div.service div.serviceContent div p.linkBtn a:hover{ background: #16914E;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.service:nth-child(odd) div.serviceContent{ margin-right: 0px;}
		div.service:nth-child(even) div.serviceContent{ margin-left: 0px;}
		
		div.service:nth-child(2) div.serviceContent{ padding-top: 0px;}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.service div.serviceContent{
			position: relative;
			flex-direction: column; -webkit-flex-direction: column;
		}
		div.service:nth-child(odd) div.serviceContent{ margin-right: 0px;}
		div.service:nth-child(even) div.serviceContent{ margin-left: 0px;}

		div.service:nth-child(2) div.serviceContent{ padding-top: 0px;}

		/*-- サブタイトル -- */
		div.service div.serviceContent h4{
			position: absolute; top: -224px; right: 20px;
			padding: 32px 24px 0px 24px;
			font-size: 20px;
			line-height: 1.414em;
			z-index: 9;
			background: #fff;
		}

		/*-- コンテンツ -- */
		div.service div.serviceContent div{
			margin-left: 0px;
			padding: 0 20px 0 24px;
		}

		div.service div.serviceContent div h3{
			margin-bottom: 20px;
			padding-top: 56px;
			font-size: 24px;
		}
		div.service:nth-child(1) div.serviceContent div h3{ font-size: 28px;}

		div.service div.serviceContent div h3::before{
			position: absolute; top: 8px; left: 0;
			font-size: 16px;
		}
		div.service div.serviceContent div h3::after{ display: none;}
		div.service div.serviceContent div h3 small{
			margin-bottom: 4px;
			font-size: 16px;
		}
		div.service div.serviceContent div p{ font-size: 14px;}

		div.service div.serviceContent div p.linkBtn{ max-width: 200px;}
		div.service div.serviceContent div p.linkBtn a{
			display: block;
			padding: 14px 0;
			border-radius: 3px;
			background: #23AE63;
			color: #fff;
			text-align: center;
		}
	}



/*==============================*/
/* serviceOverview */
/*==============================*/
div.serviceVisual{
	display: flex; display: -webkit-flex;
	justify-content: space-between; -webkit-justify-content: space-between;
	margin-bottom: -40px;
}

div.serviceVisual p:nth-child(1){
	width: calc(30% - 20px);
	margin-top: 80px;
	text-align: center;
}
div.serviceVisual p:nth-child(2){
	width: calc(70% - 20px);
	padding-right: 40px;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.serviceVisual p:nth-child(1){
			width: calc(30% - 16px);
			margin-top: 56px;
		}
		div.serviceVisual p:nth-child(2){
			width: calc(70% - 16px);
			padding-right: 24px;
		}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.serviceVisual{
			flex-direction: column-reverse; -webkit-flex-direction: column-reverse;
			margin-bottom: 20px;
		}

		#service01 div.serviceVisual p:nth-child(1){
			width: min(200px,100%);
			margin: -40px auto 0 auto;
		}
		#service02 div.serviceVisual p:nth-child(1){
			width: min(232px,100%);
			margin: -48px auto 0 auto;
		}
		
		div.serviceVisual p:nth-child(2){
			width: 100%;
			margin-left: 0px;
			padding-right: 0px;
		}
	}


/*==============================*/
/* serviceOverview */
/*==============================*/

div.serviceAbout{
	display: flex; display: -webkit-flex;
	align-items: center;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.serviceAbout{ flex-direction: column; -webkit-flex-direction: column;}
	}


/*-- 
------------------------- */
div.serviceAbout div{
	position: relative;
	width: 560px;
	padding: 48px;
	background: #fff;
}
div.serviceAbout div::before, 
div.serviceAbout div::after {
	content: '';
	width: 30px;
	height: 30px;
}
div.serviceAbout div::before {
	position: absolute; top: 0; left: 0;
	border-top: solid 1px #000000;
	border-left: solid 1px #000000;
}
div.serviceAbout div::after {
	position: absolute; bottom: 0; right: 0;
	border-bottom: solid 1px #000000;
	border-right: solid 1px #000000;
}

div.serviceAbout div h3{
	margin-bottom: 16px;
	color: #000;
	font-size: 25px;
	font-weight: 700;
}
div.serviceAbout div h3 small{
	display: block;
	line-height: 1.414em;
	font-size: 18px;
}

div.serviceAbout div p{ text-align: justify;}
	
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.serviceAbout div{
			width: 440px;
			padding: 32px;
		}
		div.serviceAbout div h3{
			margin-bottom: 14px;
			font-size: 22px;
		}
		div.serviceAbout div p{
			font-size: 15px;
			line-height: 1.618em;
		}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.serviceAbout div{
			width: 100%;
			margin-bottom: 40px;
			padding: 32px 24px;
		}
		div.serviceAbout div h3{
			margin-bottom: 8px;
			font-size: 22px;
			text-align: center;
		}

	}

/*-- 
------------------------- */
div.serviceAbout dl{
	display: flex; display: -webkit-flex;
	flex-direction: column; -webkit-flex-direction: column;
	flex: 1;
	margin-left: 40px;
}
div.serviceAbout dl dt{
	order: 2;
	margin-bottom: 6px;
	padding: 0 40px;
	color: #000;
	font-size: 20px;
	font-weight: 700;
}

div.serviceAbout dl dd:nth-child(2){
	order: 3;
	padding: 0 40px;
	font-size: 15px;
	line-height: 1.74em;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.serviceAbout dl{
			margin-top: -24px;
			margin-left: 24px;
		}
		div.serviceAbout dl dt{
			margin-bottom: 6px;
			padding: 0 16px;
			font-size: 20px;
		}

		div.serviceAbout dl dd:nth-child(2){
			padding: 0 16px;
			font-size: 14px;
			line-height: 1.618em;
		}
		div.serviceAbout dl dd:nth-child(3){ margin-bottom: 12px;}
		div.serviceAbout dl dd:nth-child(3) ul{
			display: flex; display: -webkit-flex;
			align-items: flex-start; -webkit-align-items: flex-start;
		}
		div.serviceAbout dl dd:nth-child(3) ul li:nth-child(2){
			margin-top: 40px;
			margin-left: -10%;
		}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.serviceAbout dl{
			margin-top: 0px;
			margin-left: 0px;
		}
		div.serviceAbout dl dt{
			margin-bottom: 6px;
			padding: 0;
			font-size: 20px;
			text-align: center;
		}

		div.serviceAbout dl dd:nth-child(2){
			order: 3;
			padding: 0px;
			font-size: 15px;
			line-height: 1.618em;
		}
		div.serviceAbout dl dd:nth-child(3){ margin-bottom: 16px;}
		div.serviceAbout dl dd:nth-child(3) ul{ justify-content: space-between; -webkit-justify-content: space-between;}
		div.serviceAbout dl dd:nth-child(3) ul li{ width: calc(50% - 4px);}
		div.serviceAbout dl dd:nth-child(3) ul li:nth-child(2){
			margin-top: 0px;
			margin-left: 0%;
		}
	}


/*==============================*/
/* サービス概要 */
/*==============================*/
dl.serviceOverview{
	padding: 48px 48px 44px 48px;
	background: #EDEDED url("/common/img/share/bg-texture.webp");
	border-radius: 5px;
}
dl.serviceOverview dt{
	margin-bottom: 14px;
	text-align: center;
	color: #000;
	font-size: 23px;
	font-weight: 600;
	line-height: 1.3em;
}
dl.serviceOverview dd{
	max-width: 800px;
	margin: 0 auto;
}
dl.serviceOverview dd p{
	font-size: 15px;
	line-height: 1.7em;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		dl.serviceOverview{ padding: 36px 28px 36px 28px; }
		dl.serviceOverview dt{
			margin-bottom: 12px;
			font-size: 21px;
		}
		dl.serviceOverview dd p{
			font-size: 14px;
			line-height: 1.7em;
		}
	}


/*==============================*/
/* serviceList */
/*==============================*/
div.serviceList-wrap{
	display: flex; display: -webkit-flex;
	flex-wrap: wrap; -webkit-flex-wrap: wrap;
	gap: 64px 64px;
}

div.serviceList{
	display: flex; display: -webkit-flex;
	align-items: center; -webkit-align-items: center;
	width: calc( calc( 100% - calc( 64px * 1 ) ) / 2 );
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.serviceList-wrap{ gap: 56px 36px;}
		div.serviceList{
			flex-direction: column; -webkit-flex-direction: column;
			width: calc( calc( 100% - calc( 36px * 1 ) ) / 2 );
		}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.serviceList-wrap{
			flex-direction: column; -webkit-flex-direction: column;
			gap: 40px 0px;
		}
		div.serviceList{ width: 100%;}
	}


/*-- 
------------------------- */
div.serviceList figure{ width: 144px;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.serviceList figure{
			width: 120px;
			margin-bottom: 24px;
		}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.serviceList figure{ width: 96px;}
	}

/*-- 
------------------------- */
div.serviceList div{
	flex: 1;
}
div.serviceList div h3{
	margin-bottom: 10px;
	color: #000;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.414em;
}
div.serviceList div p{
	font-size: 15px;
	line-height: 1.618em;
	text-align: justify;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.serviceList div{ margin-left: 0px;}
		div.serviceList div h3{
			margin-bottom: 10px;
			font-size: 19px;
			text-align: center;
		}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.serviceList div{
			flex: 1;
		}
		div.serviceList div h3{
			margin-bottom: 8px;
			font-size: 18px;
		}
		div.serviceList div p{
			font-size: 14px;
			line-height: 1.414em;
		}
	}





