@charset"utf-8";

html,body,div,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,p,blockquote,fieldset,input,abbr,article,aside,command,details,figcaption,figure,footer,header,mark,meter,nav,output,progress,section,summary,time {
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

li,h1,h2,h3,h4,h5,h6,span,pre,code,address,caption,cite,code,em,strong,b,th,figcaption {
  font-size: 1em;
  font-weight: normal;
  font-style: normal;
}

fieldset,iframe {
  border: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

article,aside,footer,header,nav,section,figure,figcaption {
  display: block;
}

img,abbr,acronym,fieldset {
  border: 0;
  font-size: 0;
  line-height: 0;
  vertical-align: bottom;
}

li {
  list-style: none;
}

@font-face {
   font-family: Noto Sans JP;
   src: url('fonts/NotoSansJP-Regular.otf') format("opentype");
}

body {
  line-height: 1;
  font-family:Arial;
  color: #2B2B2B;
  font-family: 'Noto Sans JP', "Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo, sans-serif;
  -webkit-text-size-adjust: 100%;
  width: 100%;
}

header, footer {
  width: 100%;
}

dl,menu,ol,ul,dt,dd {
  margin: 0;
}

img {
	max-width: 100%;
}

a {
	text-decoration: none;
	color: #2B2B2B;
	transition: color 350ms, background 350ms, border 350ms, border-radius 350ms;
}

input:focus,
textarea:focus,
select:focus {
	outline: none;
}

* {
	box-sizing: border-box;
}

@media (min-width: 768px) {
	.sp {
		display: none !important;
	}
}


@media screen and (max-width: 767px) {
	.pc {
		display: none !important;
	}
}

/* ------------------------------------------------------- */
body {
	font-size: 16px;
}

section {
	margin: 0 auto;
}

section h3 {
	font-size: 30px;
	font-weight: bold;
	line-height: 1.5;
}

section h3 small {
	font-size: 18px;
	line-height: 1;
	padding-bottom: 15px;
	display: block;
	color: #0083D0;
}

section p {
	font-size: 16px;
	line-height: 1.875;
}

@media (max-width: 767px) {
	section {
		width: 100%;
		min-width: auto;
	}
}

@media (min-width: 768px) {
	.page_title01 {
		height: 200px;
		font-size: 36px;
		color: #fff;
		text-align: center;
		padding-top: 60px;
		font-weight: 900;

	}

	.page_title01 .ja {
		color: #8EBE1C;
		display: block;
		padding-top: 20px;
		font-size: 20px;
		font-weight: normal;
	}

	.page_title02 {
		font-size: 30px;
		font-weight: bold;
		padding-bottom: 35px;
		position: relative;
		margin: 0 auto;
		max-width: 864px;
	}

	.page_title02:after {
		content: "";
		background: #80CA03;
		width: 62px;
		height: 2px;
		display: block;
		position: absolute;
		bottom: 0;
		left: 0;
	}
	
	.pagetop {
		margin: -71px 0 0 auto;
		display: block;
		position: relative;
		z-index: 100;
		width: 70px;
		cursor: pointer;
	}

	/* header
	--------------------------------------------*/
	header {
		height: 100px;
		position: relative;
		margin: 0 auto;
	}

	header .header_logo {
		padding: 26px 0 0 38px;
	}

	header nav {
		position: absolute;
		top: 26px;
		right: 38px;
		height: 48px;
	}

	header nav ul {
		display: table;
		height: 100%;
	}

	header nav li {
		display: table-cell;
		vertical-align: middle;
		padding-right: 15px;
	}

	header nav li a {
		line-height: 48px;
		font-weight: bold;
	}

	header nav li a:hover {
		color: #8EBE1C;
	}

	header nav .contact_btn {
		border: 1px solid #0E6024;
		border-radius: 3px;
		width: 148px;
		text-align: center;
		padding: 0;
		transition: color 350ms, background 350ms, border 350ms, border-radius 350ms;
	}

	header nav .contact_btn a {
		color: #0E6024;
		display: block;
		height: 100%;
		width: 100%;
	}

	header nav .contact_btn:hover {
		background: #0E6024;
		border-radius: 22px / 50%;
	}

	header nav .contact_btn:hover a {
		color: #fff;
	}

	/* kv
	--------------------------------------------*/
	.kv {
		background: url(../img/kv.jpg) no-repeat center top;
		background-size: 100% auto;
		height: 400px;
		padding: 110px 0 0 134px;
		color: #fff;
	}

	.kv h2 {
		font-size: 36px;
		line-height: 1.33;
		margin-bottom: 12px;
		font-weight: bold;
	}


	/* news_list_top
	--------------------------------------------*/
	.news_list_top {
		text-align: center;
		padding: 42px 0;
	}

	.news_list_top .left {
		display: inline-block;
		vertical-align: top;
		width: 170px;
		text-align: left;
	}

	.news_list_top ul {
		display: inline-block;
		vertical-align: top;
		/*width: 800px;*/
		width: auto;
		text-align: left;
	}

	.news_list_top h2 {
		font-size: 26px;
		font-weight: bold;
		margin-bottom: 16px;
		display: inline-block;
		text-align: center;
	}

	.news_list_top h2 .ja {
		font-size: 16px;
		font-weight: bold;
		display: block;
		padding-top: 12px;
	}

	.news_list_top .left a {
		font-size: 13px;
		color: #8EBE1C;
		display: inline-block;
		position: relative;
		padding-right: 28px;
		background: url(../img/news_arrow.png) no-repeat bottom 3px right;
		transition: 350ms;
	}

	.news_list_top .left a:before {
		content: "";
		width: 20px;
		height: 1px;
		display: block;
		background: #8EBE1C;
		bottom: 3px;
		right: 0;
		position: absolute;
		transition: 350ms;
	}

	.news_list_top .left a:hover {
		background: url(../img/news_arrow_hover.png) no-repeat bottom 3px right;
		padding-right: 50px;
		color: #0E6024;
	}

	.news_list_top .left a:hover:before {
		background: #0E6024;
		width: 42px;
	}

	.news_list_top li + li {
		/*padding-top: 14px;*/
		padding-top: 20px;
	}

	.news_list_top .date {
		color: #8C989F;
		width: 134px;
		display: inline-block;
		vertical-align: top;
	}

	.news_list_top .title {
		color: #0E6024;
		display: inline-block;
		vertical-align: top;
	}

	.news_list_top li a:hover .title {
		text-decoration: underline;
	}
	
	/* about
	--------------------------------------------*/
	.about {
		background: #F7F7F7;
		padding: 65px 0 52px;
		text-align: center;
	}

	.about h2 {
		font-size: 36px;
		line-height: 1.33;
		margin-bottom: 12px;
		font-weight: bold;
	}

	.about h3 {
		color: #0E6024;
		font-size: 20px;
		font-weight: bold;
	}

	.about p {
		color: #3B4043;
		line-height: 1.5;
		margin: 20px auto 40px;
		max-width: 842px;
	}
	
	.about .btn {
		width: 148px;
		height: 48px;
		border: 1px solid #0E6024;
		border-radius: 3px;
		text-align: center;
		line-height: 48px;
		box-sizing: content-box;
		display: block;
		color: #0E6024;
		font-weight: bold;
		margin: 0 auto;
		position: relative;
		z-index: 10;
	}
	
	.about .btn:hover {
		border-radius: 22px / 50%;
		background: #0E6024;
		color: #fff;
	}
	
	.about .about_img {
		margin-top: -55px;
		margin-left: -138px;
	}
	

	.index_tri {
		display: block;
		margin: 0 auto;
		z-index: 10;
		position: relative;
	}

	/* service
	--------------------------------------------*/
	.service {
		text-align: center;
		margin-top: -32px;
	}

	.service h2 {
		color: #fff;
		font-weight: bold;
		font-size: 36px;
		line-height: 1.33;
		padding-top: 45px;
	}

	.service .lead {
		color: #fff;
		font-weight: bold;
		font-size: 20px;
		line-height: 1.8;
		margin-top: 14px;
	}

	.solution_card {
		height: 220px;
		background: #35553F;
	}

	.solution_link {
		font-size: 0;
	}

	.solution_link li {
		display: inline-block;
		vertical-align: top;
		width: 25%;
		font-size: 16px;
	}
	
	.design_card {
		height: 220px;
		background: #324D5E;
	}

	.design_link {
		font-size: 0;
	}

	.design_link li {
		display: inline-block;
		vertical-align: top;
		width: 50%;
		font-size: 16px;
		overflow: hidden;
	}
	
	.service li {
		color: #fff;
		height: 21.25vw;
		box-sizing: content-box;
		/*transition: background 1s;*/
		position: relative;
		overflow: hidden;
	}
	
	.service li:after {
		content: "";
		display: block;
		height: 100%;
		width: 100%;
		position: absolute;
		top: 0;
		left: 0;
		-webkit-transform: scale(1.01, 1.01);
		-moz-transform: scale(1.01, 1.01);
		-ms-transform: scale(1.01, 1.01);
		transform: scale(1.01, 1.01);
		transition: transform 1.2s;
		z-index: -10
	}
	
	.service .service01 {
		border-top: 12px solid #E2844D;
	}
	
	.service .service01:after {
		background: url(../img/service01_top_bg.jpg) no-repeat center center;
		background-size: auto 100%;
	}
	
	.service .service02 {
		border-top: 12px solid #A1D24C;
	}
	
	.service .service02:after {
		background: url(../img/service02_top_bg.jpg) no-repeat center center;
		background-size: auto 100%;
	}
	
	.service .service03 {
		border-top: 12px solid #54BAD8;
	}
	
	.service .service03:after {
		background: url(../img/service03_top_bg.jpg) no-repeat center center;
		background-size: auto 100%;
	}
	
	.service .service04 {
		border-top: 12px solid #D6516B;
	}
	
	.service .service04:after {
		background: url(../img/service04_top_bg.jpg) no-repeat center center;
		background-size: auto 100%;
	}
	
	.service .service05 {
		border-top: 12px solid #E4D968;
	}
	
	.service .service05:after {
		background: url(../img/service05_top_bg.jpg) no-repeat center center;
		background-size: auto 100%;
	}
	
	.service .service06 {
		border-top: 12px solid #5B6455;
	}
	
	.service .service06:after {
		background: url(../img/service06_top_bg.jpg) no-repeat center center;
		background-size: auto 100%;
	}
	
	.service li:hover:after  {
		-webkit-transform: scale(1.15, 1.15);
		-moz-transform: scale(1.15, 1.15);
		-ms-transform: scale(1.15, 1.15);
		transform: scale(1.15, 1.15);
	}
	
	.service li a {
		height: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
	}
	
	.service li h3 {
		font-size: 20px;
		line-height: 36px;
		color: #fff;
		padding-top: 12px;
	}
	
	.service li .desc {
		display: none;
		color: #fff;
	}
	
	.service li:hover .icon,
	.service li:hover h3 {
		display: none;
	}
	
	.service li:hover .desc {
		display: block;
	}
	/* contact
	--------------------------------------------*/
	.contact {
		background: url(../img/contact_bg.png) no-repeat center top #f5f5f5;
		text-align: center;
		color: #fff;
		/*background-size: 100% auto;
		height: 373px;*/
		padding-bottom: 40px;
		background-size: 100% 100%;
	}

	.contact h2 {
		font-weight: bold;
		font-size: 36px;
		line-height: 1.33;
		padding: 40px 0 18px;
	}

	.contact .name {
		font-size: 20px;
		line-height: 36px;
		font-weight: bold;
	}

	.contact .phone {
		padding-left: 40px;
		background: url(../img/phone.png) no-repeat left top 10px;
		display: inline-block;
/*
		text-align: left;
*/
		line-height: 1.6;
		margin-top: 20px;
	}

	.contact .phone .number {
		font-size: 40px;
		font-weight: bold;
		line-height: 1.1;
	}

	.contact .phone .number small {
		font-size: 14px;
	}

	.contact .btn {
		display: inline-block;
		color: #fff;
		width: 510px;
		height: 48px;
		line-height: 48px;
		border: 1px solid #fff;
		border-radius: 3px;
		box-sizing: content-box;
		margin-top: 25px;
	}

	.contact .btn:hover {
		background: #0E6024;
		color: #fff;
		border-radius: 22px / 50%;
		font-weight: bold;
		border: 1px solid #0E6024;
		
	}


	/* footer
	--------------------------------------------*/
	footer {
		position: relative;
		background: #f5f5f5;
	}

	.footer_nav {
		font-size: 12px;
		line-height: 2;
		padding: 35px 0 64px 46px;
		max-width: 1280px;
		margin: 0 auto;
	}

	.nav_group {
		position: relative;
		padding-left: 80px;
		width: 270px;
	}

	.nav_group + .nav_group {
		margin-top: 12px;
	}

	.footer_nav .footer_nav_inner03 .nav_group {
		padding-left: 120px;
	}

	.footer_nav_inner {
		display: inline-block;
		vertical-align: top;
	}

	.nav_group dt {
		position: absolute;
		top: 0;
		left: 0;
		color: #4D7141;
	}

	.p_mark {
		position: absolute;
		top: 37px;
		right: 90px;
	}


	/* -----------------------------------------
	  お知らせ
	--------------------------------------------*/
	.news_page_title {
		background: url(../img/news_h1.jpg) no-repeat center top;
		background-size: 100% auto;
	}

	/* news_index
	--------------------------------------------*/
	.news_index {
		padding: 70px 0 130px;
	}

	.news_index h2 {
		font-size: 20px;
		line-height: 42px;
		font-weight: bold;
		max-width: 864px;
		margin: 0 auto 30px;
	}

	.news_list {
		max-width: 864px;
		margin: 0 auto;
	}

	.news_list li {
		padding-bottom: 20px;
		border-bottom: 1px solid #707070;
	}

	.news_list li + li {
		padding-top: 24px;
	}

	.news_list .date {
		font-size: 20px;
		line-height: 36px;
		font-weight: bold;
		display: inline-block;
		vertical-align: bottom;
		width: 178px;
	}

	.news_list h3 {
		font-size: 20px;
		line-height: 36px;
		font-weight: bold;
		display: inline-block;
		vertical-align: bottom;
	}

	.news_list .text {
		font-size: 12px;
		line-height: 2;
		padding-top: 15px;
	}

	.news_list .text {
		font-size: 12px;
		line-height: 2;
	}

	/* -----------------------------------------
	  業務内容
	--------------------------------------------*/
	.service_page_title {
		background: url(../img/service_h1.jpg) no-repeat center top;
		background-size: 100% auto;
	}

	/* service_nav
	--------------------------------------------*/
	.service_nav {
		text-align: center;
		background: #EDEDED;
		font-size: 0;
	}

	.service_nav a {
		width: 182px;
		height: 64px;
		display: inline-block;
		vertical-align: top;
		font-size: 16px;
		/*line-height: 1.875;*/
		line-height: 64px;
		color: #fff;
		transition: opacity 250ms;
		padding-left: 9px;
	}

	.service_nav a:after {
		content: url(../img/arrow_down.png);
		margin-left: 8px;
	}

	.service_nav a:hover {
		opacity: 0.64;
	}

	.service_nav .service01 {
		background: #E2844D
	}

	.service_nav .service02 {
		background: #A1D24C
	}

	.service_nav .service03 {
		background: #54BAD8
	}

	.service_nav .service04 {
		background: #D6516B
	}

	.service_nav .service05 {
		background: #324D5E
	}

	/* service_lead
	--------------------------------------------*/
	.service_lead {
		padding: 57px 0;
		text-align: center;
	}

	.service_lead h2 {
		font-size: 30px;
		line-height: 1.4;
		font-weight: bold;
	}

	.service_lead .lead {
		font-size: 16px;
		line-height: 1.875;
		padding-top: 25px;
	}


	/* solution_service
	--------------------------------------------*/
	.solution_service {
		background: #F7F8F9;
		text-align: center;
		padding: 57px 0;
	}

	.solution_service h2 {
		font-size: 36px;
		line-height: 1.33;
		font-weight: bold;
	}

	.solution_service .lead {
		font-size: 20px;
		line-height: 1.8;
		font-weight: bold;
		padding: 22px 0 46px;
	}

	/* service_index
	--------------------------------------------*/
	.service_index {
		padding: 57px 0;
		text-align: center;
	}

	.service_index h3 {
		font-weight: bold;
		padding-bottom: 12px;
		position: relative;
	}

	.service_index h3 img {
		display: block;
		margin: 0 auto 40px;
	}

	.service_index .lead {
		font-weight: bold;
		margin-top: 20px;
		margin-bottom: 40px;
	}

	.service_index .service_card {
		width: 272px;
		display: inline-block;
		vertical-align: top;
	}

	.service_index .service_card + .service_card {
		margin-left: 18px;
	}
	
	.service_index .service01 {
		padding-top: 20px;
	}
	
	.service_index .service02,
	.service_index .service03,
	.service_index .service04 {
		margin-top: 70px;
		padding-top: 20px;
	}

	.service_index h4 {
		font-weight: bold;
		height: 58px;
		color: #fff;
		line-height: 58px;
		margin-bottom: 15px;

	}

	.service_index li {
		text-align: left;
		line-height: 1.5;
		padding-left: 1rem;
		text-indent: -1rem;
	}


	.service_index h3:after {
		content: "";
		display: block;
		width: 60px;
		height: 2px;
		bottom: 0;
		left: 50%;
		margin-left: -30px;
		position: absolute;
	}

	.service_index .service01 h3:after {
		background: #E2844D;
	}

	.service01 h4 {
		background: #E2844D;
	}

	.service_index .service02 h3:after {
		background: #A1D24C;
	}

	.service02 h4 {
		background: #A1D24C;
	}

	.service_index .service03 h3:after {
		background: #54BAD8;
	}

	.service03 h4 {
		background: #54BAD8;
	}

	.service_index .service04 h3:after {
		background: #D6516B;
	}

	.service04 h4 {
		background: #D6516B;
	}

	.service_index .service05 h3:after {
		background: #324D5E;
	}

	.service05 h4 {
		background: #324D5E;
	}

	.service_photo {
		text-align: center;
		margin-top: 90px;
	}

	.service_photo figure {
		width: 420px;
		text-align: left;
		display: inline-block;
		line-height: 1.33;
	}

	.service_photo figure:nth-of-type(2n+1) {
		margin-right: 44px;
	}


	.service_photo figure:nth-of-type(1),
	.service_photo figure:nth-of-type(2) {
		margin-bottom: 46px;
	}
	
	.service_photo figure img {
		margin-top: 10px;
		width: 100%;
	}
	
	.design_service {
		background: #F7F8F9;
	}





	/* -----------------------------------------
	  company
	--------------------------------------------*/
	.company_page_title {
		background: url(../img/company_h1.jpg) no-repeat center top;
		background-size: 100% auto;
	}

	/* company_nav
	--------------------------------------------*/
	.company_nav {
		height: 64px;
		font-size: 0;
		background: #EDEDED;
		/*padding-left: 208px;*/
		text-align: center;
	}

	.company_nav li {
		display: inline-block;
		vertical-align: top;
		font-size: 16px;
		line-height: 64px;
		color: #0E6024;
		height: 100%;
		width: 200px;
		text-align: center;
	}
	
	.company_nav li:first-of-type {
		/*line-height: 1.33;
		padding-top: 10px;*/
		width: 278px;
	}

	.company_nav li.active {
		background: #fff;
		padding: 0 40px;
	}

	.company_nav li a {
		color: #0E6024;
		display: block;
		height: 100%;
		width: 100%;
		padding: 0 40px;
	}


	/* company_philosophy
	--------------------------------------------*/
	.company_philosophy {
		padding-top: 57px;
		margin: 0 auto;
		padding-bottom: 84px;
	}

	.company_philosophy h3 {
		font-size: 24px;
		font-weight: bold;
		margin: 50px auto 30px;
		max-width: 864px;
	}

	.company_philosophy .text {
		font-size: 18px;
		line-height: 34px;
		margin: 0 auto;
		max-width: 864px;
	}

	.company_philosophy .message_img01 {
		display: block;
		margin: 37px auto 0;
	}


	/* company_message
	--------------------------------------------*/
	.company_message {
		background: #F7F8F9;
		padding-top: 60px;
		padding-bottom: 100px;
	}

	.company_message h3 {
		font-size: 24px;
		font-weight: bold;
		margin: 50px auto 18px;
		max-width: 864px;
	}

	.company_message .text {
		font-size: 18px;
		line-height: 34px;
		margin: 0 auto;
		max-width: 864px;
	}

	/* company_about
	--------------------------------------------*/
	.company_about {
		padding-top: 57px;
		padding-bottom: 100px;
	}

	.company_about_table {
		border-top: 2px solid #98A6B5;
		width: 864px;
		margin: 54px auto 0;
		
	}

	.company_about_table tr {
		border-bottom: 1px solid #CDD6DD;

	}

	.company_about_table td {
		font-size: 18px;
		line-height: 34px;
		padding: 13px 0 15px;
		vertical-align: top;
	}

	.company_about_table tr th {
		width: 146px;
		font-size: 18px;
		line-height: 34px;
		padding: 13px 0 15px;
		vertical-align: top;
		text-align: left;
	}

	.company_about_table ol li {
		text-indent: -25px;
		padding-left: 25px;
	}
	
	.company_about_table li {
		padding-left: 1.4rem;
		text-indent: -1.4rem;
	}


	/* company_access
	--------------------------------------------*/
	.company_access {
		padding-top: 57px;
	}

	.company_access .title_wrap {
		margin: 0 auto;
		max-width: 864px;
	}
	
	.company_access .page_title02 + .title_wrap {
		margin-top: 54px;
	}

	.company_access h3 {
		width: 240px;
		display: inline-block;
		vertical-align: top;
		color: #0E6024;
		font-size: 28px;
		line-height: 36px;
		font-weight: bold;
	}

	.company_access .access_img {
		vertical-align: top;
		width: 420px;
	}

	.company_access .access_table {
		width: 864px;
		margin: 100px auto 50px;
	}

	.company_access .access_table tr {
		border-bottom: 1px solid #CDD6DD;
	}

	.company_access .access_table tr:first-of-type {
		border-top: 1px solid #CDD6DD;
	}

	.company_access .access_table td {
		padding: 16px 0 16px 24px;
		font-size: 18px;
		line-height: 34px;
		color: #2B2B2B;
	}

	.company_access .access_table tr td:first-of-type {
		background: #EAEAEA;
	}

	.company_access .access_map {
		display: block;
		margin: 0 auto;
		width: 100%;
		height: 410px;
	}

	.company_access .access_map01 {
		margin-bottom: 100px;
	}


	/* -----------------------------------------
	  個人情報保護方針
	--------------------------------------------*/
	.privacy_page_title {
		background: #5B695C;
	}

	/* privacy_mark
	--------------------------------------------*/
	.privacy_mark {
		padding-top: 55px;
		padding-bottom: 64px;
		margin: 0 auto;
		max-width: 864px;
	}

	.privacy_mark h2 {
		margin-bottom: 40px;
	}

	.privacy_mark .lead {
		font-size: 20px;
		line-height: 36px;
		font-weight: bold;
		margin-bottom: 30px;
	}

	.privacy_mark .text {
		font-size: 16px;
		line-height: 30px;
	}

	.privacy_mark .mark {
		display: block;
		margin: 60px auto 0;
	}

	/* privacy_policy
	--------------------------------------------*/
	.privacy_policy {
		padding-top: 66px;
		padding-bottom: 100px;
		background: #F7F8F9;
	}

	.privacy_policy h2 {
		margin-bottom: 40px;
	}

	.privacy_policy .inner {
		margin: 0 auto;
		width: 864px;
	}

	.privacy_policy h3 {
		font-size: 20px;
		line-height: 36px;
		font-weight: bold;
		margin-bottom: 30px;
	}
	/*
	.privacy_policy h3 .number {
		width: 75px;
		display: inline-block;
		vertical-align: baseline;
	}*/

	.privacy_policy p + h3 {
		margin-top: 36px;
	}

	.privacy_policy .policy_hr {
		color: #3B4043;
		margin: 40px 0;
	}
	
}

@media screen and (max-width: 1279px) and (min-width: 768px) {
	header {
		width: 100%;
	}
	
	.page_title01 {
		min-width: 100%;
		background-size: auto 100%;
	}
	
	.kv {
		width: 100%;
	}
	/*
	.news_list_top {
		padding-right: 8%;
		padding-left: 8%;
	}
	
	.news_list_top ul {
		width: calc( 90% - 170px );
	}
	
	.news_list_top .title {
		max-width: calc( 97% - 134px );
		line-height: 1.33;
	}*/
	
	.about {
		padding-right: 8%;
		padding-left: 8%;
	}
	
	.contact {
		background-size: auto 100%;
	}
	
	.service_nav a {
		width: 20%;
		max-width: 182px;
	}
	
	.solution_service img {
		max-width: 92%;
	}
	
	.service_index .service_card {
		width: calc( 32% - 36px ) ;
		max-width: 272px;
	}
	
	.service_index .service_card .long_text {
		font-size: 15px;
	}
	
	.service_photo figure {
		width: calc( 50% - 44px );
		max-width: 420px;
	}
	
	.service_index .service_card .long_text {
		font-size: 14px;
	}
	
	.service_index.design_service .service_card {
		/*width: calc( 48% - 18px ) ;*/
		width: 47%;
		max-width: 100%;
	}
	
	.service_index.design_service .service_card:nth-of-type(1),
	.service_index.design_service .service_card:nth-of-type(2) {
		margin-bottom: 60px;
	}
	
	.service_index.design_service .service_card:nth-of-type(3) {
		margin: 0;
	}
	
	.company_about {
		padding-right: 8%;
		padding-left: 8%;
	}
	
	.company_about_table {
		max-width: 864px;
		width: 100%;
	}
	
	.company_access .page_title02,
	.company_access .title_wrap,
	.company_access .access_table {
		width: 92%;
		margin-right: auto;
		margin-left: auto;
	}
	
	.company_philosophy,
	.company_message {
		padding-right: 8%;
		padding-left: 8%;
	}
	
	.privacy_mark,
	.privacy_policy {
		padding-right: 8%;
		padding-left: 8%;
	
	}
	
	.privacy_policy .inner,
	.privacy_policy .page_title02 {
		width: 100%;
		max-width: 100%;
	}
}

@media screen and (max-width: 1050px) and (min-width: 768px) {
	header {
		height: 170px;
	}
	
	header nav {
		top: 92px;
	}
	
	.footer_nav {
		position: relative;
	}
	
	.footer_nav_inner {
		display: block;
	}
	
	.footer_nav .footer_nav_inner:nth-of-type(3) {
		top: 35px;
		left: 270px;
		position: absolute;
	}
}

@media screen and (max-width: 820px) and (min-width: 768px) {

	
	
	
}
/*------------------------------------------
   contact page
--------------------------------------------*/
@media (min-width: 768px) {
	.contact_page {
		margin: 0 auto;
	}
	
	.contact_page_lead {
		font-size: 20px;
		line-height: 36px;
		text-align: center;
		font-weight: bold;
		padding: 75px 0 70px;
	}

	.contact_page_title {
		background: #5B695C;
	}

	.contact_desc {
		width: 864px;
		min-width: 864px;
		margin: 0 auto;
		padding: 82px 0 100px;
	}

	.contact_desc .lead {
		font-size: 20px;
		line-height: 1.8;
		font-weight: bold;
		margin-bottom: 20px;
	}

	.contact_desc h2 {
		font-size: 18px;
		line-height: 2;
		font-weight: bold;
	}

	.contact_desc .desc {
		font-size: 16px;
		line-height: 1.875;
	}

	.contact_block_wrapper {
		text-align: center;
		margin-top: 30px;
	}

	.contact_block {
		width: 360px;
		height: 160px;
		background: #F7F8F9;
		display: inline-block;
		vertical-align: top;
		padding-top: 28px;
	}

	.contact_block + .contact_block {
		margin-left: 35px;
	}

	.contact_block h3 {
		font-size: 20px;
		font-weight: bold;
		padding-bottom: 10px;
		font-weight: bold;
	}

	.contact_block strong {
		font-size: 40px;
		font-weight: bold;
		font-weight: bold;
	}

	.contact_block small {
		font-size: 16px;
		line-height: 1.875;
	}

	.contact_form_section {
		background: #F7F8F9;
		text-align: center;
		padding-top: 66px;
		padding-bottom: 87px;
	}

	.contact_form_section h2 {
		font-size: 28px;
		line-height: 1.285;
		font-weight: bold;
	}

	.contact_form_section .lead {
		font-size: 16px;
		line-height: 1.875;
		margin: 30px 0 40px;
	}

	.contact_form_section .contact_form ul {
		margin: 0 auto;
		padding: 70px 0 57px;
	}
	
	.contact_form {
		width: 864px;
		background: #fff;
		margin: 0 auto;
		padding-bottom: 75px;
	}

	.contact_form li {
		width: 568px;
		display: table;
		margin: 0 auto;
		text-align: left;
		position: relative;
	}

	.contact_form li + li {
		margin-top: 45px;
	}

	.contact_form ul label {
		width: 222px;
		display: table-cell;
		vertical-align: top;
		color: #707F89;
		font-size: 16px;
		font-weight: bold;
		padding-top: 12px;
	}

	.contact_form .required {
		position: absolute;
		top: 40px;
		left: 0;
		color: red;
		font-size: 14px;
	}

	.contact_form select,
	.contact_form input[type="text"],
	.contact_form textarea,
	.contact_form option {
		width: 346px;
		display: table-cell;
		vertical-align: top;
		
		height: 50px;
		border: 1px solid #CDD6DD;
		font-size: 16px;
		line-height: 50px;
		padding-left: 25px;
	}
	
	.contact_form option {
		display: block;
		padding: 15px 0 15px 25px;
	}

	.contact_form .text_box {
		padding-top: 15px;
		height: 140px;
		line-height: 1.5;
		font-family: 'Noto Sans JP', sans-serif;
		resize: none;
	}

	.contact_form label.error {
		font-size: 12px;
		line-height: 1.5;
		color: #E83333;
		padding-top: 15px;
		font-weight: normal;
		display: block;
		width: 100%;
	}

	.agree {
		text-align: center;
		color: #3B4043;
		margin: 28px 0 60px;
		position: relative;
		padding-bottom: 20px;
	}
	
	.contact_form .agree #pp_consent-error {
		position: absolute;
		bottom: 0;
		left: 0;
		margin-bottom: 0;
		padding-top: 0;
	}
	
	.agree p {
		margin-bottom: 30px;
	}

	.agree input[type="checkbox"]{
		background: #F7F8F9 !important;
		border: 2px solid #707070;
		border-radius: 2px;
		margin-right: 10px;
		width: 18px;
		height: 18px;
	}

	.agree input[type="checkbox"],
	.agree label {
		display: inline-block;
		vertical-align: middle;
	}

	.contact_form .btn01 {
		background: #0E6024;
		border: 1px solid #0E6024;
		text-align: center;
		width: 212px;
		height: 48px;
		color: #fff;
		line-height: 46px;
		font-size: 16px;
		border-radius: 2px;
		font-family: 'Noto Sans JP', sans-serif;
		transition: background 350ms, color 350ms;
		cursor: pointer;
	}

	.contact_form .btn01:hover {
		background: transparent;
		color: #0E6024;
	}
	
	.contact_form .btn02 {
		background: transparent;
		border: 1px solid #0E6024;
		text-align: center;
		width: 212px;
		height: 48px;
		line-height: 46px;
		font-size: 16px;
		color: #0E6024;
		border-radius: 2px;
		font-family: 'Noto Sans JP', sans-serif;
		transition: background 350ms, color 350ms;
		cursor: pointer;
		margin-left: 50px;
	}

	.contact_form .btn02:hover {
		background: #0E6024;
		color: #fff;
	}
	
	.contact_form dl {
		width: 568px;
		margin: 0 auto;
		text-align: left;
		font-size: 0;
		padding: 70px 0 57px;
	}
	
	.contact_form dt {
		width: 222px;
		display: inline-block;
		vertical-align: top;
		color: #707F89;
		font-size: 16px;
		line-height: 1.33;
		font-weight: bold;
		margin-bottom: 45px;
	}

	.contact_form dd {
		width: 346px;
		display: inline-block;
		vertical-align: top;
		font-size: 16px;
		line-height: 1.33;
		padding-left: 25px;
		margin-bottom: 45px;
		
	}
	
	/* contact_page
	--------------------------------------------*/
	.contact_page_title {
		background: #5B695C;
	}
	
	.contact_page_lead {
		padding: 50px 8% 54px;
		font-weight: bold;
		font-size: 18px;
		line-height: 32px;
	}
	
	.policy_box {
		height: 160px;
		min-height: 160px;
		width: 568px;
		overflow: scroll;
		background: #fff;
		border: 1px solid #707070;
		padding: 0 30px;
		text-align: left;
		margin: 0 auto;
	}
	
	.policy_box h3 {
		font-size: 16px;
		line-height: 36px;
		font-weight: bold;
		margin-top: 20px;
		color: #0E6024;
	}
	
	.policy_box p {
		line-height: 24px;
		margin-top: 12px;
		color: #2B2B2B;
	}
	
	.policy_box p:last-of-type {
		padding-bottom: 30px;
	}
}

@media screen and (max-width: 767px) {
	.contact_desc {
		padding: 55px 5.33% 60px;
	}

	.contact_desc .lead {
		font-size: 20px;
		line-height: 1.8;
		font-weight: bold;
		margin-bottom: 20px;
	}

	.contact_desc h2 {
		font-size: 18px;
		line-height: 2;
		font-weight: bold;
	}

	.contact_desc .desc {
		font-size: 16px;
		line-height: 1.875;
	}
	
	.contact_desc .contact_block_wrapper {
		margin-top: 66px;
	}
	
	.contact_desc .contact_block {
		background: #F7F8F9;
		padding: 28px 2% 18px;
		text-align: center;
	}

	.contact_block + .contact_block {
		margin-top: 32px;
		padding-bottom: 40px;
	}

	.contact_block h3 {
		font-size: 20px;
		font-weight: bold;
		padding-bottom: 10px;
		font-weight: bold;
	}

	.contact_block strong {
		font-size: 40px;
		font-weight: bold;
		font-weight: bold;
	}

	.contact_block small {
		font-size: 16px;
		line-height: 1.875;
	}

	.contact_form_section {
		background: #F7F8F9;
		text-align: center;
		padding: 72px 5.33%;
	}

	.contact_form_section h2 {
		font-size: 28px;
		line-height: 1.285;
		font-weight: bold;
	}

	.contact_form_section .lead {
		font-size: 16px;
		line-height: 1.875;
		margin: 30px 0 50px;
	}
	
	.contact_form {
		text-align: left;
	}

	.contact_form ul label {
		color: #707F89;
		font-size: 16px;
		font-weight: bold;
	}

	.contact_form .required {
		color: red;
	}

	.contact_form select,
	.contact_form input[type="text"],
	.contact_form textarea,
	.contact_form option {
		width: 100%;
		height: 50px;
		border: 1px solid #CDD6DD;
		font-size: 16px;
		line-height: 50px;
		padding-left: 25px;
		margin: 20px 0 40px;
	}

	.contact_form label.error {
		font-size: 12px;
		line-height: 1.5;
		color: #E83333;
		margin: -25px 0 40px;
		padding-top: 15px;
		font-weight: normal;
		display: block;
		width: 100%;
	}

	.contact_form .text_box {
		padding-top: 15px;
		height: 140px;
		line-height: 1.5;
		font-family: 'Noto Sans JP', sans-serif;
	}

	.agree {
		text-align: left;
		color: #707070;
		margin: 40px auto 35px;
		width: 70.66vw;
		color: #3B4043;
		position: relative;
		padding-bottom: 20px;
	}
	
	.contact_form .agree #pp_consent-error {
		position: absolute;
		bottom: 0;
		left: 0;
		margin-bottom: 0;
		padding-top: 0;
	}
	
	.agree p {
		font-size: 16px;
		line-height: 24px;
		width: 76vw;
		margin: 0 auto 20px;
	}

	.agree input[type="checkbox"]{
		background: #F7F8F9 !important;
		border: 2px solid #707070;
		border-radius: 2px;
		width: 18px;
		height: 18px;
	}

	.agree input[type="checkbox"],
	.agree label {
		display: inline-block;
		vertical-align: middle;
	}
	
	.agree label {
		width: calc( 100% - 30px );
		padding-left: 10px;
		line-height: 1.3125;
	}

	.contact_form .btn01 {
		background: #0E6024;
		border: 1px solid #0E6024;
		text-align: center;
		width: 212px;
		height: 48px;
		line-height: 46px;
		font-size: 16px;
		color: #fff;
		border-radius: 2px;
		font-family: 'Noto Sans JP', sans-serif;
		margin: 0 auto;
		display: block;
		transition: background 350ms, color 350ms;
		cursor: pointer;
		-webkit-appearance: none;
		border-radius: 2px;
	}

	.contact_form .btn01:hover {
		background: transparent;
		color: #0E6024;
	}

	.contact_form .btn02 {
		background: transparent;
		border: 1px solid #0E6024;
		text-align: center;
		width: 212px;
		height: 48px;
		line-height: 46px;
		font-size: 16px;
		color: #0E6024;
		font-family: 'Noto Sans JP', sans-serif;
		margin: 30px auto 0;
		display: block;
		transition: background 350ms, color 350ms;
		cursor: pointer;
		border-radius: 2px;
	}

	.contact_form .btn02:hover {
		background: #0E6024;
		color: #fff;
	}
	.contact_form dt {
		color: #707F89;
		font-size: 16px;
		line-height: 1.33;
		font-weight: bold;
		display: block;
	}

	.contact_form dd {
		width: 100%;
		font-size: 16px;
		line-height: 1.33;
		margin: 20px 0 40px;
		display: block;
		
	}
}











@media screen and (max-width: 767px) {
	.pagetop {
		position: fixed;
		bottom: 34px;
		right: 0;
		opacity: 0;
		transition: opacity 750ms;
	}
	
	.pagetop.visible {
		opacity: 1;
	}
	
	/* header
	--------------------------------------------*/
	header {
		padding: 15px 0 15px 15px;
	}
	
	header .header_logo img {
		width: 210px;
	}
	
	header nav {
		/*display: none;*/
		top: -464px;
	}
	
	header nav.nav_visible {
		/*display: block;*/
		top: 0;
	}
	
	header nav.nav_animation {
		transition: top 200ms;
	
	}
	
	header nav.nav_visible + .menu_btn {
		display: none;
		
	}
	
	header nav {
		background: #0E6024;
		padding: 70px 8%;
		position: fixed;
		left: 0;
		width: 100%;
		z-index: 1000;
	}
	
	header nav li {
		font-size: 24px;
		font-weight: bold;
		margin-bottom: 24px;
	}
	
	header nav li a {
		color: #fff;
		transition: color 350ms;
		display: block;
		height: 100%;
		padding-left: 3.75%;
	}
	
	header nav li.contact_btn {
		padding: 15px 0;
		font-size: 16px;
		font-weight: bold;
		border: 1px solid #fff;
		border-radius: 2px;
		text-align: center;
		margin: 60px 0 0;
		transition: background 350ms, border-radius 350ms;
	}
	
	header nav .contact_btn:hover {
		background: #fff;
		border-radius: 22px / 50%;
	}

	header nav .contact_btn:hover a {
		color: #0E6024;
	}
	
	header nav .close_btn {
		position: absolute;
		top: 28px;
		right: 20px;
	}
	
	header .menu_btn {
		position: absolute;
		top: 27px;
		right: 18px;
	}
	
	/* kv
	--------------------------------------------*/
	.kv {
		background: url(../img/kv_sp.jpg) no-repeat center top;
		background-size: 100% auto;
		height: 106.67vw;
		min-width: auto;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
	}
	
	.kv h2 {
		font-size: 30px;
		line-height: 42px;
		color: #fff;
		font-weight: 900;
		width: 88%;
		margin: 0 auto;
	}
	
	.kv p {
		color: #fff;
		font-size: 20px;
		line-height: 32px;
		width: 88%;
		margin: 0 auto;
	}
	
	/* news_list_top
	--------------------------------------------*/
	.news_list_top {
		/*padding: 36px 4.5% 36px 9%;*/
		padding: 36px 4.5% 29px 9%;
	}
	
	.news_list_top h2 {
		font-size: 26px;
		/*line-height: 48px;*/
		line-height: 1;
		font-weight: 900;
	}
	
	.news_list_top h2 .ja {
		font-size: 16px;
		display: inline-block;
		margin-left: 7px;
		vertical-align: middle;
	}
	
	.news_list_top .left a {
		color: #80CA03;
		font-size: 13px;
	}
	
	.news_list_top .date {
		color: #8C989F;
		font-size: 16px;
		line-height: 30px;
		display: block;
	}
	
	.news_list_top .title {
		color: #0E6024;
		font-size: 16px;
		line-height: 30px;
		display: block;
		text-decoration: underline;
		/*margin: 0 0 7px;*/
		margin: 0;
	}


	.news_list_top .left a {
		font-size: 13px;
		color: #8EBE1C;
		display: inline-block;
		position: relative;
		padding-right: 28px;
		background: url(../img/news_arrow.png) no-repeat bottom 3px right;
		transition: 350ms;
		margin-bottom: 15px;
	}

	.news_list_top .left a:before {
		content: "";
		width: 20px;
		height: 1px;
		display: block;
		background: #8EBE1C;
		bottom: 3px;
		right: 0;
		position: absolute;
		transition: 350ms;
	}

	.news_list_top .left a:hover {
		background: url(../img/news_arrow_hover.png) no-repeat bottom 3px right;
		padding-right: 50px;
		color: #0E6024;
	}

	.news_list_top .left a:hover:before {
		background: #0E6024;
		width: 42px;
	}
	/* about
	--------------------------------------------*/
	.about {
		background: #F7F7F7;
		text-align: center;
		padding: 42px 8.5% 33px;
	}
	
	.about h2 {
		/*font-size: 30px;*/
		font-size: 28px;
		line-height: 1.4;
		font-weight: bold;
		margin-bottom: 18px;
	}
	
	.about h3 {
		font-size: 20px;
		line-height: 32px;
		color: #0E6024;
		font-weight: bold;
		margin-bottom: 18px;
	}
	
	.about p {
		line-height: 24px;
	}
	
	.about .btn {
		width: 148px;
		height: 48px;
		border: 1px solid #0E6024;
		border-radius: 3px;
		text-align: center;
		line-height: 48px;
		box-sizing: content-box;
		display: block;
		color: #0E6024;
		font-weight: bold;
		margin: 35px auto 0;
	}
	
	.about .btn:hover {
		background: #0E6024;
		border-radius: 22px / 50%;
		color: #fff;
	}
	
	.about .about_img {
		/*width: 80%;
		margin-left: -17%;*/
		margin-left: 3%;
	}
	
	.index_tri {
		height: 20px;
		width: auto;
		display: block;
		margin: -1px auto 0;
		position: relative;
		z-index: 10;
	}
	
	/* service
	--------------------------------------------*/
	.service {
		margin-top: -19px;
	}
	
	.service h2 {
		font-size: 30px;
		line-height: 48px;
		font-weight: bold;
	}
	
	.service .lead {
		line-height: 24px;
		font-weight: bold;
	}
	
	.service .solution_card {
		background: #35553F;
		text-align: center;
		font-weight: bold;
		color: #fff;
		padding: 36px 0 34px;
	}
	
	.service .solution_card .lead {
		width: 70%;
		margin: 10px auto 0;
	}
	
	.service .solution_link,
	.service .design_link {
		font-size: 0;
	}
	
	.service .solution_link li,
	.service .design_link li {
		font-size: 16px;
		display: inline-block;
		vertical-align: top;
		width: 50%;
	}
	
	.service .design_card {
		background: #324D5E;
		text-align: center;
		font-weight: bold;
		color: #fff;
		padding: 36px 0 34px;
	}
	
	.service .design_card .lead {
		width: 86.4%;
		margin: 10px auto 0;
	}
	
	.service .service01 {
		background: url(../img/service01_top_bg_sp.jpg) no-repeat center center;
		background-size: auto 101%;
		border-top: 7px solid #E2844D;
	}
	
	.service .service02 {
		background: url(../img/service02_top_bg_sp.jpg) no-repeat center center;
		background-size: auto 101%;
		border-top: 7px solid #A1D24C;
	}
	
	.service .service03 {
		background: url(../img/service03_top_bg_sp.jpg) no-repeat center center;
		background-size: auto 101%;
		border-top: 7px solid #54BAD8;
	}
	
	.service .service04 {
		background: url(../img/service04_top_bg_sp.jpg) no-repeat center center;
		background-size: auto 101%;
		border-top: 7px solid #D6516B;
	}
	
	.service .service05 {
		background: url(../img/service05_top_bg_sp.jpg) no-repeat center center;
		background-size: auto 101%;
		border-top: 7px solid #E4D968;
	}
	
	.service .service06 {
		background: url(../img/service06_top_bg_sp.jpg) no-repeat center center #5B6455;
		background-size: auto 101%;
		border-top: 7px solid #5B6455;
	}
	
	.service .service01 .icon {
		width: 11.93vw;
	}
	
	.service .service02 .icon {
		width: 10.79vw;
	}
	
	.service .service03 .icon {
		width: 11.21vw;
	}
	
	.service .service04 .icon {
		width: 11.29vw;
	}
	
	.service .service05 .icon {
		width: 12.85vw;
	}
	
	.service .service06 .icon {
		width: 10.25vw;
	}
	
	.service li {
		color: #fff;
		height: 42.4vw;
		box-sizing: content-box;
		transition: background 1s;
		text-align: center;
	}
	
	.service li a {
		height: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
	}
	
	.service li h3 {
		font-size: 11px;
		line-height: 20px;
		color: #fff;
		padding-top: 7px;
		padding-bottom: 3px;
	}
	
	.service li .desc {
		color: #fff;
		font-size: 11px;
		line-height: 16px;
	}
	
	.service li:hover {
		background-size: auto 115%;
	}
	
	.service li:hover .desc {
		display: block;
	}
	
	/* contact
	--------------------------------------------*/
	.contact {
		background: url(../img/contact_bg_sp.png) no-repeat center top #f5f5f5;
		background-size: 100% 100%;
		text-align: center;
		color: #fff;
		line-height: 30px;
		padding: 50px 0 60px;
	}
	
	.contact h2 {
		font-weight: bold;
		font-size: 30px;
		line-height: 48px;
	}
	
	.contact address {
	
	}
	
	.contact .name {
		font-weight: bold;
		font-size: 20px;
		line-height: 36px;
	
	}
	
	.contact .phone {
		padding-left: 40px;
		background: url(../img/phone.png) no-repeat left top 5px;
		display: inline-block;
		text-align: left;
		margin-top: 20px;
	}
	
	.contact .number {
		font-size: 40px;
		font-weight: bold;
	}
	
	.contact .number a {
		color: #fff;
	}

	.contact .phone .number small {
		font-size: 14px;
	}
	
	.contact .btn {
		font-weight: bold;
		color: #fff;
		width: 84%;
		margin: 18px auto 0;
		border-radius: 3px;
		border: 1px solid #fff;
		display: block;
		height: 48px;
		line-height: 48px;
		box-sizing: content-box;
	}
	
	.contact .btn:hover {
		background: #0E6024;
		border-radius: 22px / 50%;
		color: #fff;
		border: 1px solid #0E6024;
		
	}

	/* footer
	--------------------------------------------*/
	footer {
		padding: 35px 8%;
		font-size: 12px;
		line-height: 2;
		background: #f5f5f5;
	}
	
	.footer_nav_inner {
		display: inline-block;
		vertical-align: top;
	}

	.nav_group {
		position: relative;
		padding-left: 122px;
	}

	.nav_group + .nav_group {
		margin-top: 22px;
	}

	.nav_group dt {
		position: absolute;
		top: 0;
		left: 0;
		color: #4D7141;
	}
	
	.p_mark {
		width: 104px;
		margin-top: 18px;
	}

	/* contents
	--------------------------------------------*/
	.page_title01 {
		height: 200px;
		text-align: center;
		color: #fff;
		font-weight: bold;
		font-size: 36px;
		line-height: 1.33;
		padding-top: 52px;
	}
	
	.page_title01 .ja {
		color: #A1D24C;
		font-weight: bold;
		font-size: 20px;
		line-height: 36px;
		padding-top: 12px;
		display: block;
	}
	
	.page_title02 {
		font-size: 30px;
		line-height: 42px;
		font-weight: bold;
		position: relative;
		width: 84%;
		margin: 0 auto 36px;
		padding: 46px 0 36px;
	}
	
	.page_title02:after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		width: 60px;
		height: 2px;
		background: #80CA03;
	}

	/* -----------------------------------------
	  お知らせ
	--------------------------------------------*/
	.news_page_title {
		background: url(../img/news_h1_sp.jpg) no-repeat center top;
		background-size: 100% auto;
	}

	/* news_index
	--------------------------------------------*/
	.news_index {
		padding: 70px 8% 130px;
	}

	.news_index h2 {
		font-size: 30px;
		line-height: 42px;
		font-weight: bold;
		max-width: 864px;
		margin: 0 auto 30px;
	}

	.news_list {
		max-width: 864px;
		margin: 0 auto;
	}

	.news_list li {
		padding-bottom: 20px;
		border-bottom: 1px solid #707070;
	}

	.news_list li + li {
		padding-top: 24px;
	}

	.news_list .date {
		font-size: 20px;
		line-height: 36px;
		font-weight: bold;
		display: inline-block;
		vertical-align: bottom;
		width: 178px;
	}

	.news_list h3 {
		font-size: 24px;
		line-height: 36px;
		font-weight: bold;
		display: inline-block;
		vertical-align: bottom;
	}

	.news_list .text {
		font-size: 12px;
		line-height: 2;
		padding-top: 15px;
	}
	
	.news_list .text p {
		font-size: 12px;
		line-height: 2;
	}

	/* -----------------------------------------
	  業務内容
	--------------------------------------------*/
	/* service
	--------------------------------------------*/
	.service_page_title {
		background: url(../img/service_h1_sp.jpg) no-repeat center top;
		background-size: 100% auto;
	}
	
	/* service_nav
	--------------------------------------------*/
	.service_nav {
		font-size: 0;
	}
	
	.service_nav a {
		color: #fff;
		height: 64px;
		display: inline-block;
		vertical-align: top;
		font-size: 16px;
		line-height: 64px;
		color: #fff;
		transition: opacity 250ms;
		padding-left: 9px;
		text-align: center;
	}

	.service_nav a:after {
		content: url(../img/arrow_down.png);
		margin-left: 8px;
	}

	.service_nav a:hover {
		opacity: 0.64;
	}

	.service_nav .service01 {
		background: #E2844D;
		width: 33.3%;
	}

	.service_nav .service02 {
		background: #A1D24C;
		width: 33.3%;
	}

	.service_nav .service03 {
		background: #54BAD8;
		width: 33.3%;
	}

	.service_nav .service04 {
		background: #D6516B;
		width: 50%;
	}

	.service_nav .service05 {
		background: #324D5E;
		width: 50%;
	}
	
	/* service_lead
	--------------------------------------------*/
	.service_lead {
		text-align: center;
		padding: 36px 0;
	}
	
	.service_lead h2 {
		font-size: 30px;
		line-height: 42px;
		font-weight: bold;
	}
	
	.service_lead .lead {
		line-height:24px;
		width: 86%;
		margin: 14px auto 0;
	}
	
	/* solution_service
	--------------------------------------------*/
	.solution_service {
		background: #F7F8F9;
		text-align: center;
		padding: 36px 0;
	}
	
	.solution_service h2 {
		font-size: 30px;
		line-height: 48px;
		font-weight: bold;
	}
	
	.solution_service .lead {
		font-size: 20px;
		line-height: 32px;
		font-weight: bold;
		margin: 15px auto 24px;
	}
	
	.solution_service img {
		width: 84%;
	}
	
	/* service_index
	--------------------------------------------*/
	.service_index {
		padding: 57px 8%;
		text-align: center;
	}
	
	.service_index h3 {
		font-size: 30px;
		line-height: 42px;
		font-weight: bold;
		position: relative;
		padding-bottom: 16px;
	}
	
	.service_index h3 img {
		display: block;
		margin: 0 auto 40px;
	}
	
	.service_index h3:after {
		content: "";
		width: 60px;
		height: 2px;
		position: absolute;
		bottom: 0;
		left: 50%;
		margin-left: -30px;
	}
	
	.service_index .lead {
		font-size: 20px;
		line-height: 28px;
		font-weight: bold;
		margin-top: 20px;
		margin-bottom: 40px;
	}
	
	.service_index .service_card {
		margin-bottom: 30px;
	}
	
	.service_index .service_card h4 {
		height: 58px;
		color: #fff;
		font-weight: bold;
		line-height: 58px;
		margin-bottom: 12px;
	}
	
	.service_index .service_card ul {
		text-align: left;
		line-height: 24px;
	}
	
	.service_index .service02,
	.service_index .service03,
	.service_index .service04 {
		margin-top: 75px;
	}

	.service_index .service01 h3:after {
		background: #E2844D;
	}

	.service_index .service01 h4 {
		background: #E2844D;
	}

	.service_index .service02 h3:after {
		background: #A1D24C;
	}

	.service_index .service02 h4 {
		background: #A1D24C;
	}

	.service_index .service03 h3:after {
		background: #54BAD8;
	}

	.service_index .service03 h4 {
		background: #54BAD8;
	}

	.service_index .service04 h3:after {
		background: #D6516B;
	}

	.service_index .service04 h4 {
		background: #D6516B;
	}

	.service_index .service05 h3:after {
		background: #324D5E;
	}

	.service_index .service05 h4 {
		background: #324D5E;
	}
	
	/* service_photo
	--------------------------------------------*/
	.service_photo {
		margin-top: 86px;
		/*padding: 0 0 58px;*/
		padding: 0;
	}
	
	.service_photo figure + figure {
		margin-top: 32px;
	}
	
	.service_photo figcaption {
		text-align: left;
		line-height: 24px;
	}
	
	.service_photo img {
		margin-top: 8px;
		width: 100%;
	}
	
	/* design_service
	--------------------------------------------*/
	.design_service {
		background: #F7F8F9;
	}
	
	
	/* 会社案内
	--------------------------------------------*/
	.company_page_title {
		background: url(../img/company_h1_sp.jpg) no-repeat center top;
		background-size: 100% auto;
	}
	
	/* company_nav
	--------------------------------------------*/
	.company_nav {
		font-size: 0;
		background: #EDEDED;
		text-align: center;
		height: 64px;
	}
	
	.company_nav li {
		display: inline-block;
		vertical-align: middle;
		width: 33.33%;
		font-size: 16px;
		line-height: 48px;
		color: #0E6024;
		text-align: center;
		height: 64px;
	}
	
	.company_nav li .inner {
		text-align: left;
		display: inline-block;
		/*padding-left: 1.867%;*/
		line-height: 24px;
	}
	
	.company_nav li.active {
		background: #fff;
		padding: 8px 0;
	}
	
	.company_nav li a {
		display: block;
		height: 100%;
		width: 100%;
		padding: 8px 0;
		color: #0E6024;
	}
	
	/* company_philosophy
	--------------------------------------------*/
	.company_philosophy {
		padding-bottom: 68px;
	}
	
	.company_philosophy h3 {
		font-size: 24px;
		line-height: 36px;
		padding: 0 8%;
	}
	
	.company_philosophy .text {
		line-height: 24px;
		padding: 16px 8% 0;
	}
	
	.company_philosophy .message_img01 {
		margin: 28px auto 30px;
		display: block;
		width: 84%;
	}
	
	.company_philosophy 
	.philosophy_list {
		color: #0E6024;
		padding: 0 8%;
	}
	
	.philosophy_list h4 {
		font-size: 20px;
		line-height: 1.33;
		font-weight: bold;
	}
	
	.philosophy_list .text02 + h4 {
		margin-top: 16px;
	}
	
	.philosophy_list .text02 {
		font-size: 14px;
		line-height: 20px;
	}
	
	/* company_message
	--------------------------------------------*/
	.company_message {
		background: #F7F8F9;
		padding-bottom: 68px;
	}
	
	.company_message h3 {
		font-size: 24px;
		line-height: 36px;
		padding: 0 8%;
	}
	
	.company_message .text {
		line-height: 24px;
		padding: 18px 8% 0;
	}
	
	/* company_about
	-------------------------------------------*/
	.company_about {
		padding-bottom: 68px;
	}
	
	.company_about_table {
		width: 84%;
		margin: 0 auto;
	}
	
	.company_about_table tr {
		border-bottom: 1px solid #CDD6DD;
	}
	
	.company_about_table tr:first-of-type {
		border-top: 2px solid #98A6B5;
	}
	
	.company_about_table td {
		padding: 15px 0 18px;
		line-height: 24px;
		vertical-align: top;
	}
	
	.company_about_table tr th {
		width: 84px;
		padding: 15px 0 18px;
		line-height: 24px;
		text-align: left;
		vertical-align: top;
	}
	
	.company_about .company_about_table .break_sp td {
		padding-top: 60px;
	}
	
	.company_about .company_about_table .break_sp td ol,
	.company_about .company_about_table .break_sp td ul {
		margin-left: -84px;
	}
	
	.company_about_table li {
		padding-left: 1.4rem;
		text-indent: -1.4rem;
	}
	
	/* company_access
	--------------------------------------------*/
	.company_access {
	
	}
	
	.company_access h3 {
		margin-bottom: 36px;
		color: #0E6024;
		font-size: 24px;
		line-height: 36px;
		font-weight: bold;
		padding: 0 8%;
	}
	
	.company_access .access_img {
		margin: 0 auto 30px;
		width: 84%;
		display: block;
	}
	
	.company_access .access_table {
		margin: 0 auto;
		width: 84%;
	}
	
	.company_access .access_table tr {
		border-bottom: 1px solid #CDD6DD;
	}
	
	.company_access .access_table tr:first-of-type {
		border-top: 1px solid #CDD6DD;
	}
	
	.company_access .access_table td {
		vertical-align: middle;
		padding: 16px 0 16px 16px;
		line-height: 24px;
	}
	
	.company_access .access_table td:first-of-type {
		width: 86px;
		background: #EAEAEA;
		padding-left: 8px;
	}
	
	.company_access .access_map {
		margin: 40px 0 0;
		width: 100%;
		height: 222px;
	}
	
	.company_access .access_map01 {
		margin-bottom: 52px;
	}
	
	/* privacy
	--------------------------------------------*/
	.privacy_page_title {
		background: #5B695C;
	}
	
	/* privacy_mark
	--------------------------------------------*/
	.privacy_mark {
		padding-bottom: 64px;
	}
	
	.privacy_mark .lead {
		padding: 0 8% 28px;
		font-size: 20px;
		line-height: 32px;
		font-weight: bold;
	}
	
	.privacy_mark .text {
		line-height: 24px;
		padding: 0 8% 36px;
	}
	
	.privacy_mark .mark {
		width: 144px;
		display: block;
		margin: 0 auto;
	}
	
	
	/* privacy_policy
	--------------------------------------------*/
	.privacy_policy {
		padding: 60px 0 80px;
		background: #F7F8F9;
	}
	
	.privacy_policy h3 {
		font-size: 20px;
		line-height: 36px;
		font-weight: bold;
		padding: 0 8%;
	}
	/*
	.privacy_policy h3 .number {
		width: 75px;
		display: inline-block;
		vertical-align: baseline;
	}*/
	
	.privacy_policy p {
		line-height: 24px;
		margin: 30px 0;
		padding: 0 8%;
	}
	
	.privacy_policy .list_master {
		padding: 0 8%;
	}

	.privacy_policy .policy_hr {
		color: #3B4043;
		margin: 45px 8%;
	}
	
	/* contact_page
	--------------------------------------------*/
	.contact_page_title {
		background: #5B695C;
	}
	
	.contact_page_lead {
		padding: 50px 8% 54px;
		font-weight: bold;
		font-size: 18px;
		line-height: 32px;
	}
	
	.policy_box {
		height: 160px;
		min-height: 160px;
		overflow: scroll;
		background: #fff;
		border: 1px solid #707070;
		padding: 0 14px 0 14px;
		font-size: 12px;
	}
	
	.policy_box h3 {
		font-size: 16px;
		line-height: 2.25;
		font-weight: bold;
		margin-top: 20px;
		color: #0E6024;
	}
	/*
	.policy_box h3 .number {
		width: 60px;
		display: inline-block;
		vertical-align: baseline;
	}*/
	
	.policy_box p {
		line-height: 24px;
		margin-top: 12px;
		color: #2B2B2B;
	}
	
	.policy_box p:last-of-type {
		padding-bottom: 30px;
	}
	
}

.policy_box {
	resize: vertical;
}

.list_master {
	padding-bottom: 25px;
}

.list_master li {
	text-indent: -1.5em;
	padding-left: 1.5em;
	font-size: 14px;
	line-height: 1.875;
	margin-bottom: 15px;
}

.contact_form .list_master li + li {
	margin-top: 0;
}

.contact_form .list_master li {
	width: 100%;
	display: list-item;
	margin-bottom: 0;
}

.contact_form .list_master > li {
	margin-bottom: 10px;
	text-indent: -1.5em;
	padding-left: 1.5em;
}

.list_master ol li {
	text-indent: -2.55em;
	padding-left: 2.55em;
	/*margin-top: 5px;*/
	margin-bottom: 5px;
}

.list_master h5 {
	/*text-indent: -1.5em;*/
	text-indent: -0.75em;
	padding-left: 1.5rem;
	/*padding-left: 0.8em;*/
	font-size: 14px;
	line-height: 1.875;
	/*margin-top: 10px;*/
}

.list_master .p_indent {
	padding-left: 1em;
	text-indent: 0;
	display: block;
}


@media screen and (max-width: 374px) {
	.contact,
	.company_page_title,
	.service_page_title,
	.news_page_title {
		background-size: auto 100%;
	}
	
	.service_nav a,
	.company_nav li {
		font-size: 12px;
	}
}


/* animation
----------------------------------- */
.anim01,
.anim02,
.anim03,
.anim04,
.anim05 {
	opacity: 0;
}

@media screen and (max-width: 767px) {
	header nav li  {
		opacity: 0;
	}
}

.fadeIn {
	opacity: 1 !important;
	animation-name: fadeIn;
	animation-duration: 1s;
	animation-timing-function: ease;
	animation-delay: 0s;
}

@keyframes fadeIn {
	0% {
		opacity: 0;
		filter: opacity(0);/* for firefox */
		transform: translateY(20px);
	}
	
	100% {
		opacity: 1;
		filter: opacity(1);/* for firefox */
		transform: translateY(0);
	}
}






/* -----------------------------------------
  news detail
--------------------------------------------*/
.news_detail {
	padding: 55px 0 125px;
}

.page_title02 .release_date {
	font-size: 50%;
	padding-left: 40px;
}

.news_detail_txt {
	max-width: 864px;
	margin: 0 auto;
	padding-top: 54px;
}

.news_detail_txt * {
	max-width: 100%;
}

@media screen and (max-width: 1279px) and (min-width: 768px) {
	.news_detail_txt {
		padding: 0 8%;
	}
}

@media screen and (max-width: 767px) {
	.news_detail {
		padding-top: 0;
	}
	
	.news_detail_txt {
		padding: 0 8%;
	
	}
}

/* 0805　追加 */

.txt-mr{
margin-left: -1rem !important;
}
.txt-mrs{
margin-left: -0.7rem !important;
}
.span-space{
	display: block;
	text-indent: -0.6em;
}
.span-space2{
	display: block;
	text-indent: -0.5em;
	padding-left: 1em;
}
.mr-sapce{
	margin-left: -0.4em;
}
.mr-pc{
	margin-left: -1em;
}

.f14{
	font-size: 14px !important;
}

/* 20211217 追加 */
.privacy_policy__link {
	color: #0E6024;
	text-decoration: underline;
}

.nav_group dt a {
	color: inherit;
	text-decoration: none;
}

/* privacy-policy （個人情報の取り扱い）
-------------------------------------------------- */
.privacy_policy--handling .main_list {
	padding: 0 8%;
}
.privacy_policy--handling__wrap {
	margin-bottom: 50px;
	font-size: 16px;
	line-height: 1.875;
}
.privacy_policy--handling__wrap--last {
	margin-bottom: 0;
}
.privacy_policy--handling h3 {
	padding-right: 0 !important;
}
.privacy_policy--handling__wrap p {
	margin-top: 10px;
	padding: 0;
}
.privacy_policy--handling__wrap li {
	margin-top: 10px;
}
.privacy_policy--handling__wrap h4,
.privacy_policy--handling__wrap h5 {
	margin-top: 20px;
	margin-bottom: 10px;
}
.privacy_policy--handling__wrap h4 {
	font-size: 18px;
}
.privacy_policy--handling__wrap h5 {
	font-size: 16px;
	padding-left: 1.5em;
	text-indent: -1.5em;
}
.privacy_policy--handling__wrap .sub {
  margin: 20px 0 0;
}
.privacy_policy--handling__wrap table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  border: 1px solid #707070;
}
.privacy_policy--handling__wrap table th {
  width: 40%;
  padding: 5px;
  word-break: break-all;
  border: 1px solid #707070;
}
.privacy_policy--handling__wrap table td {
  width: 60%;
  padding: 5px;
  word-break: break-all;
  border: 1px solid #707070;
}

/* インデント */
.privacy_policy--handling .indent_75 {
	padding-left: .75em;
}
.privacy_policy--handling .indent_1 {
	padding-left: 1em;
}
.privacy_policy--handling .indent_15 {
	padding-left: 1.5em;
}
/* テキスト段落落ち */
.privacy_policy--handling .p-tIndent_15{
	padding-left: 1.5em;
	text-indent: -1.5em;
}
.privacy_policy--handling .p-tIndent_26 li {
	padding-left: 2.6em;
	text-indent: -2.6em;
}
@media screen and (min-width: 768px) {
	.privacy_policy--handling .main_list {
		padding: 0;
	}
}

span.note {
	display: block;
}
.note {
	padding-left: 1em;
	text-indent: -1em;
}