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

/* ----- about ----- */
body.index section.about {
  background-color: #E7EAEB;
	background-image: url(../img/bg_date_right.png),url(../img/bg_date_left.png);
	background-position: top 10% right -85%,bottom 30% left -85%;
	background-repeat: no-repeat,no-repeat;
}
@media (min-width: 1500px) {
	body.index section.about{
	background-image: url(../img/bg_date_right.png),url(../img/bg_date_left.png);
	background-position: top 10% right -30%,bottom 30% left -30%;
}
}
body.index section.about .inner {
	padding-top: 40px;
}

@media (max-width: 640px){
body.index section.about .inner {
	padding-top: 30px;
}
}


body.index section.about h2.section_title {
	font-size: 50px;
	line-height: 80px;
	background: none;
	margin-bottom: 65px;
	color: #111111;
	padding-bottom: 0;
}
body.index section.about .about_texts .description {
	font-size: 22px;
	line-height: 40px;
	text-align: center;
	color: #111111;
	letter-spacing: 0;
}
body.index section.about .about_photo {
	text-align: center;
	max-width: 685px;
	margin: 0 auto;
}
body.index section.about .about_photo img {
	width: 100%;
}

body.index section.about .story {
	background-color: #fff;
	padding: 52px 50px 60px;
	position: relative;
}
body.index section.about .story h3.h3_title {
	margin-bottom: 25px;
}
body.index section.about .story .story_text {
	font-size: 18px;
	line-height: 40px;
	color: #555555;
	width: 540px;
	letter-spacing: 0;
	margin-bottom: 50px;
}
body.index section.about .story .story_btn {
	text-align: center;
}
body.index section.about .story .story_btn a {
  color: #fff;
  padding: 25px 44px 27px;
  background: url(../img/bg_btn_grada.jpg) top center no-repeat;
	background-size: 100% auto;
	display: inline-block;
	font-size: 20px;
	font-weight: 900;
	border-radius: 6px;
	text-align: center;
}
body.index section.about .story .object {
	position: absolute;
	right: -9%;
  top: -6%;
	max-width: 610px;
	width: 50%;
}
body.index section.about .story .object img {
	width: 100%;
}
@media (max-width: 1250px) {
body.index section.about .story .object {
	position: absolute;
	right: 0;
  top: -6%;
	width: 40%;
}
}
@media (max-width: 1000px) {
body.index section.about .story .object {
	width: 38%;
}
}
body.index section.about .story .company_unit {
	background-color: rgba(255, 255, 255, 0.53);
	position: absolute;
	right: -5%;
	bottom: 20%;
	width: 354px;
	box-shadow: 0px 2px 15px 0px rgb(0 0 0 / 20%);
	padding: 26px 30px;
	margin-bottom: 18px;
}
@media (max-width: 1250px) {
body.index section.about .story .company_unit {
	position: absolute;
	right: 3%;
}
}
@media (max-width: 1100px) {
body.index section.about .story .company_unit {
	display: none;
}
}
body.index section.about .story .company_unit .company_name {
	font-size: 20px;
	margin-right: 47px;
}
body.index section.about .story .company_unit .company_name span.operation {
	font-size: 16px;
	font-weight: 500;
	display: block;
	margin-bottom: 18px;
}
body.index section.about .story .company_unit .detail_box {
	display: flex;
	justify-content: space-between;
  align-items: center;
}
body.index section.about .story .company_unit p {
	font-size: 16px;
	font-weight: 500;
	line-height: 32px;
	color: #555555;
	margin-bottom: 0;
}
@media (max-width: 640px) {
body.index section.about {
	background-image: none;
}
body.index section.about h2.section_title {
	font-size: 18px;
	line-height: 1.6;
	background: none;
	margin-bottom: 20px;
	padding-bottom: 0;
}
body.index section.about .about_texts .description {
	font-size: 16px;
    line-height: 1.6;
    text-align: left;
    color: #111111;
    font-weight: normal;
    letter-spacing: 0;
    padding: 0 6px;
}
body.index section.about .about_photo {
	width: 80%;
	margin: 0 auto;
}
body.index section.about .story {
	background-color: #fff;
	padding: 20px 20px 30px;
	position: relative;
}
body.index section.about .story h3.h3_title {
	margin-bottom: 25px;
	width: 50%;
	position: relative;
  z-index: 11;
}
body.index section.about .story .story_text {
	font-size: 16px;
	line-height: 1.6;
	width: auto;
	font-weight: normal;
	padding: 0 6px;
	margin-bottom: 40px;
	position: relative;
  z-index: 10;
}
body.index section.about .story .story_btn {
	text-align: center;
	margin-bottom: 40px;
}
body.index section.about .story .story_btn a {
  padding: 15px 22px 17px;
	background-size: cover;
	display: block;
	font-size: 18px;
}
body.index section.about .story .object {
	right: 0;
  top: 0;
	width: 45%;
}
body.index section.about .story .company_unit {
	position: relative;
	right: 0;
	bottom: 0;
	width: 80%;
	margin: 0 auto 18px;
	display: block;
}
body.index section.about .story .company_unit .company_name {
	font-size: 18px;
	margin-right: 47px;
	line-height: 1.6;
}
body.index section.about .story .company_unit .company_name span.operation {
	font-size: 16px;
	font-weight: 500;
	display: block;
	margin-bottom: 18px;
}
body.index section.about .story .company_unit p {
	font-size: 14px;
	line-height: 1.6;
	margin-bottom: 0;
}
}
/* ----- ここまで ----- */

/* ----- service ----- */
body.index section.service {
	background-color: #F2F4F5;
	background-image: url("../img/bg_service.png");
	background-position: top 50px left 70%;
	background-repeat: no-repeat;
}
@media (min-width: 1500px) {
body.index section.service {
	background-image: url("../img/bg_service.png");
	background-position: top 80% left;
	background-repeat: no-repeat;
	background-size: 110% auto;
}
}
body.index section.service .inner {
	text-align: center;
	padding: 130px 20px 150px;
}
body.index section.service h2.section_title {
	font-size: 50px;
	line-height: 60px;
	background-image: url("../img/icon_titleline_left.png"),url("../img/icon_titleline_righe.png");
	background-position: left center, right center;
	background-repeat: no-repeat, no-repeat;
	display: inline-block;
	padding: 0 130px;
}
body.index section.service h2.section_title span {
	display: inline-block;
	color: #59A71C;
}
body.index section.service .service_unit {
	width: 64%;
	margin-left: auto;
	text-align: left;
}
@media (max-width: 720px) {
body.index section.service .service_unit {
	width: auto;
}
}
body.index section.service .service_unit ul.service_list {
}
body.index section.service .service_unit ul.service_list li.list_item {
	font-size: 25px;
	line-height: 40px;
	color: #555555;
	padding-left: 55px;
	padding-top: 27px;
	padding-bottom: 24px;
	border-bottom:1px dotted #707070;
	background: url("../img/icon_check.png") top 31px left no-repeat;
}
body.index section.service .service_unit ul.service_list li.list_item span.important {
	background: linear-gradient(transparent 50%, yellow 50%);
}
@media (max-width: 640px) {
body.index section.service {
	background-color: #fff;
	background-image: url("../img/bg_service.png");
	background-position: bottom -15% left -42%;
	background-size: 200% auto;
	background: none;
}
body.index section.service .inner {
	text-align: center;
	padding: 50px 20px 20px;
}
body.index section.service h2.section_title {
	font-size: 18px;
	line-height: 1.6;
	background-image: none;
	display: inline-block;
	padding:0;
	margin-bottom: 0;
}
body.index section.service h2.section_title span {
	width: auto;
}
body.index section.service .service_unit {
	width: auto;
	margin-left: auto;
	text-align: left;
}
body.index section.service .service_unit ul.service_list li.list_item {
	font-size: 16px;
	line-height: 1.6;
	padding-left: 45px;
	padding-top: 15px;
	font-weight: normal;
	padding-bottom: 14px;
	border-bottom:1px dotted #707070;
	background: url("../img/icon_check.png") top 18px left no-repeat;
	background-size: 28px 25px;
}
}
/* ----- ここまで ----- */

/* ----- function ----- */
body.index section.function {
	background-color: #F2F4F5;
	background-image: url(../img/bg_date_right.png),url(../img/bg_date_left.png);
	background-position: top right -85%,center left -85%;
	background-repeat: no-repeat,no-repeat;
}
body.index section.function .inner {
	padding-bottom: 90px;
	padding-top: 0;
}
body.index section.function h2.section_title {
	margin-bottom: 100px;
}
body.index section.function .function_unit .list_title {
	font-size: 22px;
	border-radius: 33px;
	background-color: #59A72B;
	padding: 10px 60px;
	text-align: center;
	color: #fff;
	display: inline-block;
	margin-bottom: 50px;
}
body.index section.function .function_unit {
	margin-bottom: 52px;
}
body.index section.function .function_unit ul.list {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	margin: 0 auto;
}
body.index section.function .function_unit ul.list li {
	margin-right: 6.3%;
	text-align: center;
	width: 14.96%;
	margin-bottom: 16px;
}
body.index section.function .function_unit ul.list li:nth-child(5n) {
	margin-right: 0;
}
body.index section.function .function_unit ul.list li .image_icon {
	margin-bottom: 21px;
	box-shadow: 0px 2px 15px 0px rgb(0 0 0 / 20%);
  border-radius: 15px;
}
body.index section.function .function_unit ul.list li .image_icon img{
	display: block;
	width: 100%;
}
body.index section.function .function_unit ul.list li .name {
	text-align: center;
	font-size: 24px;
	line-height: 32px;
	font-weight: 900;
	word-wrap: break-word;
  overflow-wrap: break-word;
}
body.index section.function .function_unit ul.list li .name.long {
	white-space: nowrap;
	margin: 21px -15px;
}
body.index section.function h3.h3_title {
	font-size: 38px;
	text-align: center;
	margin-bottom: 28px;
}
body.index section.function .h3_title_text {
	font-size: 26px;
	line-height: 30px;
	text-align: center;
	margin-bottom: 70px;
}
body.index section.function .exercise_unit ul.list {
	display: flex;
	flex-wrap: wrap;
}
body.index section.function .exercise_unit ul.list li {
	font-size: 24px;
	text-align: center;
	color: #fff;
	width: 32%;
	margin-right: 2%;
	margin-bottom:2%;
	background: #7AB729;
	padding: 20px 0;
	border-radius: 10px;
}
body.index section.function .exercise_unit ul.list li.item_02 {
	background: #2A9D6B;
}
body.index section.function .exercise_unit ul.list li.item_03 {
	background: #7AB729;
}
body.index section.function .exercise_unit ul.list li.item_04 {
	background: #2A9D6B;
}
body.index section.function .exercise_unit ul.list li.item_05 {
	background: #7AB729;
}
body.index section.function .exercise_unit ul.list li.item_06 {
	background: #2A9D6B;
}
body.index section.function .exercise_unit ul.list li.item_07 {
	background: #7AB729;
}
body.index section.function .exercise_unit ul.list li.item_08 {
	background: #2A9D6B;
}
body.index section.function .exercise_unit ul.list li.item_09 {
	background: #7AB729;
}
body.index section.function .exercise_unit ul.list li.item_10 {
	background: #2A9D6B;
}
body.index section.function .exercise_unit ul.list li.item_11 {
	background: #7AB729;
}
body.index section.function .exercise_unit ul.list li.item_12 {
	background: #2A9D6B;
}
body.index section.function .exercise_unit ul.list li:nth-child(3n) {
	margin-right: 0;
}
@media (max-width: 640px) {
body.index section.function {
	background-color: #F2F4F5;
	background-image: none;
}
body.index section.function .inner {
	padding-bottom: 60px;
	padding-top: 40px;
}
body.index section.function h2.section_title {
	margin-bottom: 40px;
}
body.index .contents section.function h2.section_title span {
  width: 50%;
  margin: 0 auto 10px;
}
body.index section.function .function_unit {
	margin-bottom: 20px;
}
body.index section.function .function_unit .list_title {
	font-size: 18px;
	padding: 10px 60px;
	display: block;
	margin-bottom: 40px;
}
body.index section.function .function_unit ul.list li {
	margin: 0 2%;
	text-align: center;
	width: 21%;
	margin-bottom: 16px;
}
body.index section.function .function_unit ul.list li:nth-child(5n) {
	margin-right: 2%;
}
/* body.index section.function .function_unit ul.list li:nth-child(2n) {
	margin-right: 0;
} */
body.index section.function .function_unit ul.list li .name {
	text-align: center;
	font-size: 10px;
	line-height: 1.4;
	margin-top: 10px;
	font-weight: normal;
}
body.index section.function .function_unit ul.list li .name.long {
	margin: 10px 0;
}
body.index section.function .function_unit ul.list li .image_icon {
	margin-bottom: 10px;
}
body.index section.function h3.h3_title {
	font-size: 28px;
	text-align: center;
	margin-bottom: 20px;
}
body.index section.function .h3_title_text {
	font-size: 16px;
	line-height: 1.6;
	font-weight: normal;
	text-align: left;
	margin-bottom: 30px;
	padding: 0 6px;
}
body.index section.function .exercise_unit ul.list {
	display: flex;
	flex-wrap: wrap;
	padding: 0 6px;
}
body.index section.function .exercise_unit ul.list li {
	font-size: 18px;
	text-align: center;
	color: #fff;
	width: 49%;
	margin-right: 2%;
	margin-bottom:2%;
	/* background: url("../img/bg_exercise_01.png") top center no-repeat;
	background-size: cover !important; */
	padding: 40px 0;
}
body.index section.function .exercise_unit ul.list li:nth-child(3n) {
	margin-right: 2%;
}
body.index section.function .exercise_unit ul.list li:nth-child(2n) {
	margin-right: 0;
}
}
/* ----- ここまで ----- */

/* ----- case ----- */
body.index section.case {
	background-image: url(../img/bg_icon_gear_right.png),url(../img/bg_icon_gear_left.png);
	background-position: top 10% right -5% ,bottom 20% left -10%;
	background-repeat: no-repeat,no-repeat;
}
body.index section.case .inner {
	padding-bottom: 180px;
}
body.index section.case h2.section_title {
	margin-bottom: 90px;
}
body.index section.case .case_boxs {
	display: flex;
	justify-content: center; 
	justify-content: space-between;
}
body.index section.case .case_boxs .case_box {
	margin-right: 50px;
	box-shadow: 0px 0px 6px 0px rgb(0 0 0 / 20%);
}
body.index section.case .case_boxs .case_box .image {
	margin: 0 -25px 10px;
}
body.index section.case .case_boxs .case_box .image img {
	width: 100%;
	display: block;
}
body.index section.case .case_boxs .case_box {
	padding: 0 25px 20px;
	font-weight: 500;
	display: flex;
  flex-direction: column;
	background-color: #fff;
	width: 32%;
	margin-right: 2%;
}
body.index section.case .case_boxs .case_box.last {
	margin-right: 0;
}
body.index section.case .case_boxs .case_box:last-child {
	margin-right: 0;
}
body.index section.case .case_boxs .case_box p {
	margin: 0;
	margin-bottom: 20px;
	font-size: 18px;
	line-height: 26px;
}
body.index section.case .case_boxs .case_box p.detail {
	flex: 2;
  height: 100%;
}
body.index section.case .case_boxs .case_box p.industry {
	margin: 0;
	font-size: 16px;
	margin-bottom: 10px;
}
body.index section.case .case_boxs .case_box p.scale {
	margin: 0;
	margin-bottom: 20px;
	font-size: 16px;
}
body.index section.case .case_boxs .case_box .client {
	margin-left: -25px;
	background-color: #59A71C;
	color: #fff;
	padding: 8px 15px;
	display: inline-block;
	margin-bottom: 20px;
	font-size: 18px;
	font-weight: 800;
}
body.index section.case .case_boxs .case_box p.note {
	color: #00914E;
	font-weight: 800;
	padding-top: 24px;
	border-top: 3px solid #111111;
	margin-bottom: 25px;
	flex: 2;
  height: 100%;
}
body.index section.case .case_boxs .case_box .namu {
	text-align: right;
	padding-right: 15px;
}
@media (max-width: 640px) {
body.index section.case {
	background-image:none;
}
body.index section.case .inner {
	padding-bottom: 40px;
}
body.index section.case h2.section_title {
	margin-bottom: 40px;
}
body.index section.case .case_boxs {
	display: block;
}
body.index section.case .case_boxs .case_box {
	padding: 0 15px 20px;
	display: block;
	margin: 0 auto 30px;
	width: auto;
}
body.index section.case .case_boxs .case_box .image {
	margin: 0 -15px 10px;
}
body.index section.case .case_boxs .case_box p {
	margin: 0;
	margin-bottom: 20px;
	font-size: 16px;
	line-height: 1.4;
}
body.index section.case .case_boxs .case_box p.industry {
	font-size: 15px;
	margin-bottom: 5px;
}
body.index section.case .case_boxs .case_box p.scale {
	margin: 0;
	margin-bottom: 10px;
	font-size: 14px;
}
body.index section.case .case_boxs .case_box .client {
	margin-left: -15px;
	padding: 8px 15px;
	margin-bottom: 10px;
	font-size: 16px;
}
body.index section.case .case_boxs .case_box p.note {
	padding-top: 15px;
	margin-bottom: 25px;
}
body.index section.case .case_boxs .case_box .namu {
	padding-right: 0;
}
}
/* ----- ここまで ----- */

/* ----- flow ----- */
body.index section.flow {
	background-color: #F2F4F5;
}
body.index section.flow h2.section_title {
	margin-bottom: 90px;
}
body.index section.flow .flow_box {
	background-color: #fff;
	border-radius: 6px;
	padding: 75px;
	margin-bottom: 95px;
}
body.index section.flow .flow_box .box_title {
	font-size: 40px;
	font-weight: 900;
	margin-left: -40px;
	margin-bottom: 30px;
}
body.index section.flow .flow_box p.b_text {
	font-size: 18px;
	line-height: 36px;
	color: #555555;
	margin-bottom: 40px;
	letter-spacing: 0;
}
body.index section.flow .flow_box .btns {
	display: flex;
	margin-bottom: 30px;
	justify-content: flex-end;
}
body.index section.flow .flow_box .btns.last {
	margin-top: -20px;
	margin-bottom: 60px;
}
body.index section.flow .flow_box .btns .all_open {
	margin-right: 10px;
}
body.index section.flow .flow_box .btns .btn {
	color: #59A72B;
	display: inline-block;
	border-radius: 5px;
	border: 1px solid #59A72B;
	padding: 12px 15px;
	cursor: pointer;
}

body.index section.flow .flow_box .btns .btn:hover {
	background:#59A72B;
	color: #FFF;
}


body.index section.flow .flow_box details {
	border: 1px solid #707070;
	border-radius: 6px;
	margin-bottom: 20px;
	padding: 25px 45px 28px;
	position: relative;
	cursor: pointer;
}
body.index section.flow .flow_box details::before {
  position: absolute;
  top: 30px;
  right: 20px;
  display: block;
  width: 10px;
  height: 10px;
  margin: auto;
  content: '';
  transform: rotate(135deg);
  border-top: 2px solid #707070;
  border-right: 2px solid #707070;
}
body.index section.flow .flow_box details[open]::before {
    transform: rotate(-45deg);
    top: 35px;
}
body.index section.flow .flow_box summary {
	font-size: 26px;
}




body.index section.flow .flow_box summary span.num {
	color: #59A71C;
}
body.index section.flow .flow_box .f_detail dt {
	display: flex;
	justify-content: center;
  align-items: center;
	margin-top: 15px;
}
body.index section.flow .flow_box .f_detail dt .image {
	margin-right: 80px;
}
body.index section.flow .flow_box .f_detail dt .texts {
	font-size: 18px;
	line-height: 31px;
	letter-spacing: 0;
	color: #555555;
}
body.index section.flow .flow_box .f_detail dt .texts .point {
	display: flex;
	font-size: 16px;
	color: #fff;
	letter-spacing: 0;
	margin-bottom: 0;
	background-color: #FF9349;padding: 5px 10px;
}
body.index section.flow .flow_box .f_detail dt .texts .point .p_text {
	margin-right: 10px;
	display: flex;
	align-items: center;
	position: relative;
}
body.index section.flow .flow_box .f_detail dt .texts .p_text::before {
	position: absolute;
  top: 45%;
  right: -17px;
  display: block;
  width: 8px;
  height: 14px;
  margin: auto;
  content: '';
	background: url("../img/icon_flow_arrow_orange.png") top center no-repeat;
	background-size: 8px 14px;
}
body.index section.flow .flow_box .f_detail dt .texts .point .text {
	background-color: #F0F0F0;
  color: #FF9349;
  margin: -5px -10px -5px 0px;
  padding: 20px;
	line-height: 24px;
}
body.index section.flow .flow_box .staff_area {
	display: flex;
	justify-content: center;
	border: 1px solid #A8A8A8;
	padding: 10px 45px 10px 20px;
}
body.index section.flow .flow_box .staff_area .comment {
	font-size: 19px;
	line-height: 35px;
	font-weight: 500;
	display: flex;
  align-items: center;
}
body.index section.flow .flow_box .staff_area .staff {
	padding: 10px 26px;
	text-align: center;
	background-color: #59A72B;
	margin:-10px 45px -10px -20px;
	color: #fff;
	display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  flex-direction: column;
	position: relative;
}
body.index section.flow .flow_box .staff_area .staff::before {
	position: absolute;
  top: 44%;
  right: -26px;
  display: block;
  width: 30px;
  height: 35px;
  margin: auto;
  content: '';
	background: url("../img/icon_flow_arrow_green.png") top center no-repeat;
 }
body.index section.flow .flow_box .staff_area .staff .person {
	margin-bottom: 15px;
}
body.index section.flow .flow_box .staff_area .staff .person_name {
	font-size: 15px;
	font-weight: 500;
	margin-bottom: 10px;
}
body.index section.flow .flow_box .staff_area .staff .profile a{
	font-size: 15px;
	font-weight: 500;
	text-decoration: underline;
	white-space: nowrap;
}
@media (max-width: 640px) {
body.index section.flow h2.section_title {
	margin-bottom: 50px;
}
body.index section.flow .flow_box {
	padding: 15px;
	margin-bottom: 40px;
}
body.index section.flow .flow_box .box_title {
	font-size: 28px;
	margin-left: 0;
	margin-bottom: 15px;
}
body.index section.flow .flow_box p.b_text {
	font-size: 15px;
	line-height: 1.6;
	margin-bottom: 15px;
}
body.index section.flow .flow_box .btns {
	margin-bottom: 15px;
	justify-content: center;
}
body.index section.flow .flow_box .btns.last {
	margin-top: 0;
	margin-bottom: 30px;
}
body.index section.flow .flow_box .btns .btn {
	font-size: 14px;
}
body.index section.flow .flow_box details {
	margin-bottom: 15px;
	padding: 15px;
}
body.index section.flow .flow_box details::before {
  top: 20px;
  right: 12px;
  width: 7px;
  height: 7px;
  display: none;
}
body.index section.flow .flow_box details[open]::before {
    transform: rotate(-45deg);
    top: 22px;
}
body.index section.flow .flow_box summary {
	font-size: 18px;
}
body.index section.flow .flow_box .f_detail dt {
	display: block;
	justify-content: center;
  align-items: center;
	margin-top: 15px;
}
body.index section.flow .flow_box .f_detail dt .image {
	margin:0 auto 30px;
	width: 50%;
}
body.index section.flow .flow_box .f_detail dt .texts {
	font-size: 15px;
	line-height: 1.6;
	margin-top: -20px;
}
body.index section.flow .flow_box .f_detail dt .texts .point {
	display: flex;
	font-size: 14px;
	letter-spacing: 0;
	margin-bottom: 0;
}
body.index section.flow .flow_box .staff_area {
	flex-direction: column-reverse;
	padding: 10px 15px 10px 15px;
}
body.index section.flow .flow_box .staff_area .comment {
	font-size: 15px;
	line-height: 1.6;
	margin-bottom: 10px;
}
body.index section.flow .flow_box .staff_area .staff {
	padding: 15px 26px;
  text-align: center;
  margin: 0 -15px -10px -15px;
}
body.index section.flow .flow_box .staff_area .staff::before{
	display: none;
}
body.index section.flow .flow_box .staff_area .staff .person {
	margin-bottom: 15px;
	margin: 0 auto 15px;
	width: 50%;
}
body.index section.flow .flow_box .staff_area .staff .person_name {
	font-size: 14px;
	font-weight: 500;
	margin-bottom: 7px;
}
body.index section.flow .flow_box .staff_area .staff .profile a{
	font-size: 14px;
	font-weight: 500;
	text-decoration: underline;
	white-space: nowrap;
}
}
/* ----- ここまで ----- */

/* ----- support ----- */
body.index section.support h2.section_title {
	margin-bottom: 90px;
}
body.index section.support .h2_title_text {
	font-size: 18px;
	line-height: 36px;
	color: #555555;
	text-align: center;
	margin-bottom: 40px;
}
body.index section.support .support_boxs {
	display: flex;
	justify-content: center;
	width: 100%;
}
body.index section.support .support_boxs .support_box {
	border: 1px solid #707070;
	margin-right: 20px;
	padding: 31px 0 20px;
	display: flex;
	flex-direction:column;
	color: #555555;
	width: 32%;
	margin-right: 2%;
}
body.index section.support .support_boxs .support_box .image img{
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 25px;
}
body.index section.support .support_boxs .support_box:last-child {
	margin-right: 0;
}
body.index section.support .support_boxs .support_box .box_title {
	font-weight: 900;
	font-size: 22px;
	text-align: center;
	line-height: 36px;
	margin-bottom: 11px;
	display: flex;
  justify-content: center;
  align-items: center;
  flex-grow: 1.5;
}
body.index section.support .support_boxs .support_box p {
	font-size: 14px;
	line-height: 24px;
	padding: 0 13px;
	margin: 0;
	flex-grow:1;
}
@media (max-width: 640px) {
body.index section.support h2.section_title {
	margin-bottom: 30px;
}
body.index section.support .h2_title_text {
	font-size: 16px;
	line-height: 1.6;
	margin-bottom: 40px;
	text-align: left;
}
body.index section.support .support_boxs {
	display: block;
}
body.index section.support .support_boxs .support_box {
	margin-right: auto;
	padding: 10px 0 20px;
	display: block;
	margin-bottom: 20px;
	width: auto;
}
body.index section.support .support_boxs .support_box .image img{
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 10px;
}
body.index section.support .support_boxs .support_box .box_title {
	font-size: 18px;
	line-height: 1.6;
	margin-bottom: 11px;
	display: block;
}
body.index section.support .support_boxs .support_box p {
	font-size: 13px;
	line-height: 1.8;
	padding: 0 10px;
}
}
/* ----- ここまで ----- */

/* ----- price ----- */
body.index section.price {
	background-color: #F2F4F5;
}
body.index section.price h2.section_title {
	margin-bottom: 50px;
}
body.index section.price h2.section_title span.small{
	display: inline-block;
	font-size: 32px;
}
body.index section.price .h2_title_text {
	font-size: 18px;
	line-height: 36px;
	color: #555555;
	text-align: center;
	margin-bottom: 70px;
}
body.index section.price .cost {
	position: relative;
}
body.index section.price .cost h3.h3_title {
	background-color: #59A72B;
	border-radius: 33px;
	display: inline-block;
	font-size: 22px;
	color: #fff;
	text-align: center;
	width: 253px;
	line-height: 48px;
	margin-bottom: 40px;
}
body.index section.price .cost .icon {
	position: absolute;
	top:5px;
	right:7%;
	width: 248px;
}
body.index section.price .cost .icon img {
	width: 100%;
}
body.index section.price .cost table.tariff {
	width: 100%;
	max-width: 930px;
	margin: 0 auto;
	border: 2px solid #707070;
}
body.index section.price .cost table.tariff th {
	background-color: #fff;
	border-bottom: 1px solid #707070;
	border-right: 1px solid #707070;
	text-align: center;
	width: 220px;
	line-height: 48px;
}
body.index section.price .cost table.tariff th.usually {
	background-color: #DDDDDD;
	width: 340px;
	font-weight: 500;
}
body.index section.price .cost table.tariff th.private {
	background-color: #59A72B;
	color: #fff;
	font-size: 24px;
	box-shadow: 0 0 0 10px #59a72b;
}
body.index section.price .cost table.tariff td {
	background-color: #fff;
	border-right: 1px solid #707070;
	text-align: center;
	line-height: 48px;
	font-size: 18px;
}
body.index section.price .cost table.tariff td.usually {
	background-color: #F6F6F6;
	font-weight: 500;
}
body.index section.price .cost table.tariff td.private_num {
	background-color: #e2ece0;
	font-size: 28px;
	box-shadow: 0 0 0 10px #59a72b;
}
body.index section.price .cost table.tariff td.private_num span.yen {
	font-size: 18px;
	font-weight: 500;
}
body.index section.price .icon_arrow {
	text-align: center;
	margin: 25px auto 34px;
}
body.index section.price .uchiwake {
	background-color: #fff;
	margin-top: 55px;
  padding-top: 7px;
	border: 2px dashed #A7A7A7;
	padding: 7px 63px 50px;
	margin-bottom: 70px;
}
body.index section.price .uchiwake h3.h3_title {
	width: 388px;
	line-height: 44px;
	background-color: #A3A2A2;
	border: 1px solid #707070;
	border-radius: 33px;
	text-align: center;
	color: #fff;
	font-size: 20px;
	margin: -30px auto 30px;
}
body.index section.price .uchiwake .table_title,
body.index section.price .cost .table_title{
	font-size: 20px;
	margin-bottom: 15px;
}
body.index section.price .uchiwake table.tariff {
	width: 100%;
	max-width: 930px;
	margin: 0 auto;
	border: 2px solid #707070;
}
body.index section.price .uchiwake table.tariff.pc {
	display: table;
}
body.index section.price .uchiwake table.tariff th {
	background-color: #fff;
	border-bottom: 1px solid #707070;
	border-right: 1px solid #707070;
	text-align: center;
	width: 220px;
	line-height: 48px;
}
body.index section.price .uchiwake table.tariff th.usually {
	background-color: #DDDDDD;
	width: 340px;
	font-weight: 500;
}
body.index section.price .uchiwake table.tariff th.private {
	background-color: #59A72B;
	color: #fff;
	font-size: 24px;
}
body.index section.price .uchiwake table.tariff td {
	background-color: #fff;
	border-right: 1px solid #707070;
	border-bottom: 1px solid #707070;
	text-align: center;
	line-height: 48px;
	font-size: 18px;
}
body.index section.price .uchiwake table.tariff td.subject,
body.index section.price .cost.running  table.tariff td.subject {
	text-align: right;
	font-size: 16px;
	font-weight: 500;
	padding-right: 20px;
}
body.index section.price .cost.running  table.tariff td.none {
	border-bottom: 2px solid #707070;
}
body.index section.price .uchiwake table.tariff td.usually {
	background-color: #F6F6F6;
	font-weight: 500;
}
body.index section.price .uchiwake table.tariff td.private_num {
	background-color: #e2ece0;
	font-size: 28px;
}
body.index section.price .uchiwake table.tariff td.private_num span.yen {
	font-size: 18px;
	font-weight: 500;
}
body.index section.price .uchiwake table.tariff td.dot {
	border-right: 2px dotted #707070;
	background-color: #e2ece0;
	width: 120px;
}
body.index section.price .uchiwake table.tariff td.text {
	font-size: 9px;
	font-weight: 500;
	line-height: 12px;
	text-align: left;
	vertical-align: middle;
	padding: 0 10px;
	background-color: #e2ece0;
}
body.index section.price .uchiwake table.tariff td.none {
	border-bottom: 2px solid #fff;
  border-left: 2px solid #fff;
	border-top: 2px solid #707070;
	border-right: 2px solid #707070;
}
body.index section.price p.notes {
	margin-top: 20px;
	font-size: 13px;
	font-weight: 500;
	text-align: right;
	margin-bottom: 30px;
}
body.index section.price .cost.running .table_title {
	max-width: 930px;
  margin: 0 auto 15px;
}
body.index section.price .cost.running .icon {
	position: absolute;
	top:35px;
	right:11%;
}
body.index section.price .cost.running .icon img {
	width: 100%;
}
body.index section.price .cost.running table.tariff td.dot {
	text-align: left;
	line-height: 48px;
	font-size: 16px;
  background-color: #e2ece0;
  width: 120px;
	box-shadow: 0 0 0 10px #59a72b;
	padding: 0 17px;
}
body.index section.price .cost.running table.tariff td.dot .month {
	display: flex;
	justify-content: center;
  align-items: center;
}
body.index section.price .cost.running table.tariff td.dot span.text {
  font-size: 9px;
  font-weight: 500;
  line-height: 12px;
	display: inline-block;
	width: 130px;
	margin-left: 20px;
}
body.index section.price .cost.running table.tariff td.text {
    font-size: 9px;
    font-weight: 500;
    line-height: 12px;
    text-align: left;
    vertical-align: middle;
    padding: 0 10px;
    background-color: #e2ece0;
}
body.index section.price .cost.running p.notes {
	max-width: 930px;
	margin: 25px auto 0;
	line-height: 30px;
}
@media (max-width: 640px) {
body.index section.price .inner {
	width: auto;
}
body.index section.price h2.section_title {
	margin-bottom: 30px;
}
body.index section.price h2.section_title span.small {
	font-size: 22px;
	width: auto;
	display: block;
}
body.index section.price .h2_title_text {
	font-size: 16px;
	line-height: 1.6;
	margin-bottom: 40px;
	text-align: left;
}
body.index section.price .cost h3.h3_title {
	display:block;
	font-size: 20px;
	width: auto;
	line-height: 40px;
	margin-bottom: 30px;
}
body.index section.price .cost .icon {
	position: absolute;
	top:20px;
	right:7%;
	display: none;
}
body.index section.price .cost table.tariff th {
	width: auto;
	line-height: 48px;
}
body.index section.price .cost table.tariff th.usually {
	width: auto;
	line-height: 1.4;
	font-size: 13px;
	justify-content: center;
  align-items: center;
  display: flex;
}
body.index section.price .cost table.tariff th.private {
	font-size: 24px;
	box-shadow: 0 0 0 5px #59a72b;
	border: none;
}
body.index section.price .cost table.tariff td {
	border-right: none;
	font-size: 18px;
	border-bottom: 1px solid #707070;
}
body.index section.price .cost table.tariff td.private_num {
	font-size: 28px;
	box-shadow: 0 0 0 5px #59a72b;
	border: none;
}
body.index section.price .cost table.tariff td.private_num span.yen {
	font-size: 18px;
	font-weight: 500;
}
body.index section.price .cost table.tariff tr {
  display: block;
  float: left;
}
body.index section.price .cost table.tariff td, 
body.index section.price .cost table.tariff th {
  border-left: none;
  display: block;
  height: 50px;
}
body.index section.price .cost table.tariff thead {
	display: block;
  float: left;
  width: 50%;
}
body.index section.price .cost table.tariff thead tr {
  width: 100%;
}
body.index section.price .cost table.tariff tbody {
  display: block;
  float: left;
  width: 50%;
}
body.index section.price .cost table.tariff tbody tr {
  width: 100%;
}
body.index section.price .cost table.tariff tr td + td {
  border-left: none;
}
body.index section.price .icon_arrow {
	margin: 30px auto 34px;
	width: 10%;
}
body.index section.price .uchiwake h3.h3_title {
	width: auto;
	line-height: 36px;
	font-size: 18px;
	margin: -30px auto 30px;
}
body.index section.price .uchiwake {
	margin-top: 55px;
  padding-top: 7px;
	padding: 7px 20px 10px;
	margin-bottom: 40px;
}
body.index section.price .uchiwake table.tariff.pc {
	display: none;
}
body.index section.price .uchiwake table.tariff.sp {
	margin-bottom: 20px;
}
body.index section.price .uchiwake table.tariff {
  width: 100%;
}
body.index section.price .uchiwake table.tariff th,
body.index section.price .uchiwake table.tariff td {
  display: inline-block;
  width: 100% !important;
	padding: 0 !important;
	border-right: none !important;
}
body.index section.price .uchiwake table.tariff th.subject {
	font-weight: 500;
}
body.index section.price .uchiwake table.tariff td.ordinarily {
	font-weight: 500;
	font-size: 16px;
	background-color: #DDDDDD;
}
body.index section.price .uchiwake table.tariff td.text {
	font-size: 14px;
	line-height: 1.6;
	padding: 5px !important;
	border-bottom: none;
	box-sizing: border-box;
}
body.index section.price .uchiwake table.tariff td.dot {
	border-bottom: 2px dashed #707070;
	font-weight: 500;
}
body.index section.price .uchiwake table.tariff td.none {
	border-bottom: 2px solid #fff;
  border-left: 1px solid #fff;
}
body.index section.price p.notes {
	margin-top: 10px;
	font-size: 12px;
	margin-bottom: 30px;
	line-height: 1.6;
	text-align: left;
}
	body.index section.price .cost.running table.tariff td.usually {
		font-size: 14px;
	}
body.index section.price .cost.running table.tariff td.dot {
  text-align: center;
  line-height: 1.4;
  font-size: 14px;
	font-weight: 500;
  background-color: #e2ece0;
  width: auto;
  box-shadow: 0 0 0 5px #59a72b;
  padding: 0 10px;
	display: flex;
	justify-content: center;
  align-items: center;
}
body.index section.price .cost.running table.tariff td.dot span.text.pc {
	display: none;
}
body.index section.price .cost.running p.notes {
	margin: 20px auto 0;
	line-height: 1.6;
	text-align: left;
	font-size: 12px;
}
body.index section.price .cost.running  table.tariff td.subject {
	text-align: center;
	padding-right: 0;
}
}
/* ----- ここまで ----- */

/* ----- faq ----- */
body.index section.faq .inner {
	padding-bottom: 130px;
}
body.index section.faq h2.section_title {
	margin-bottom: 90px;
}
body.index section.faq .faq_btns {
	display: flex;
	justify-content: center;
  align-items: center;
	margin-bottom: 80px;
}
body.index section.faq .faq_btns .before {
	margin-right: 40px;
}
body.index section.faq .faq_btns a {
	color: #000;
	border-radius: 6px;
	padding: 26px 0 25px;
	border: 1px solid #707070;
	display: block;
	width: 298px;
	text-align: center;
	font-size: 24px;
	max-width: 300px;
}
body.index section.faq .qa-list {
	padding: 0 45px;
}
body.index section.faq .qa-list.before {
	margin-bottom: 100px;
}
body.index section.faq .qa-list .list_title {
	background-color: #777777;
	border-radius: 10px 10px 0 0;
	text-align: center;
	font-size: 26px;
	color: #fff;
	padding: 23px 0 20px;
	margin: 0 -45px 20px;
}
body.index section.faq .qa-list dl {
	position: relative;
  margin: 0;
  padding: 29px 80px 26px 30px;
  cursor: pointer;
  background-image: linear-gradient(to right, #707070, #707070 2px, transparent 2px, transparent 4px);
  background-size: 5px 1px;
  background-repeat: repeat-x;
  background-position: bottom;
}
body.index section.faq .qa-list dl::before {
	position: absolute;
  top: 42px;
  right: 20px;
  display: block;
  width: 10px;
  height: 10px;
  margin: auto;
  content: '';
  transform: rotate(135deg);
  border-top: 2px solid #707070;
  border-right: 2px solid #707070;
}
body.index section.faq .qa-list dl dt {
  position: relative;
  margin: 0;
  padding: 0 0 0 50px;
  font-size: 26px;
  line-height: 1.6;
	background: url("../img/icon_faq_q.png") left top -7px no-repeat;
}
body.index section.faq .qa-list dl dd {
  position: relative;
  height: auto;
  margin: 26px 0 0 55px;
  padding: 0 0 0 55px;
  line-height: 1.6;
	font-size: 22px;
	color: #777777;
	background: url("../img/icon_faq_answer.png") left top no-repeat;
}
body.index section.faq .qa-list dl dd p {
	margin: 0;
}
body.index section.faq .qa-list .open::before {
  transform: rotate(-45deg);
	top: 49px;
}

@media (max-width: 640px) {
body.index section.faq .inner {
	padding-bottom: 60px;
}
body.index section.faq .faq_btns {
	display: block;
	margin-bottom: 40px;
}
body.index section.faq h2.section_title {
	margin-bottom: 40px;
}
body.index section.faq h2.section_title span {
	width: 10%;
}
body.index section.faq .faq_btns a {
	margin: 0 auto;
	padding: 13px 0;
	font-size: 20px;
}
body.index section.faq .faq_btns .before {
	margin-right: auto;
	margin-bottom: 30px;
}
body.index section.faq .qa-list {
	padding: 0;
}
body.index section.faq .qa-list.before {
	margin-bottom: 50px;
}
body.index section.faq .qa-list .list_title {
	border-radius: 10px 10px 0 0;
	text-align: center;
	font-size: 20px;
	padding: 15px 0 15px;
	margin: 0 0 20px;
}
body.index section.faq .qa-list dl {
  padding: 15px 40px 20px 10px;
}
body.index section.faq .qa-list dl::before {
  top: 20px;
  right: 10px;
  width: 10px;
  height: 10px;
}
body.index section.faq .qa-list dl dt {
  padding: 0 0 0 30px;
  font-size: 18px;
  line-height: 1.6;
	background: url("../img/icon_faq_q.png") left top -4px no-repeat;
	background-size: 18px 33px;
}
body.index section.faq .qa-list dl dd {
  margin: 26px 0 0 0;
  padding: 0 0 0 30px;
  line-height: 1.6;
	font-size: 18px;
	background-size: 18px 28px;
}
body.index section.faq .qa-list .open::before {
  transform: rotate(-45deg);
	top: 27px;
}
}
/* ----- ここまで ----- */

/* ----- product_contact ----- */
body.index section.product_contact {
	background: url(../img/bg_product_contact.png) top center no-repeat;
	background-size:cover;
}
body.index section.product_contact .inner {
	width: 100%;
	padding-left: 20px;
	padding-right: 20px;
	box-sizing: border-box;
}
body.index section.product_contact h2.section_title {
	text-align: left;
	margin-bottom: 23px;
	background: none;
	padding: 0;
}
body.index section.product_contact .title_text {
	font-size: 20px;
	line-height: 40px;
	color: #fff;
	margin-bottom: 30px;
}
body.index section.product_contact .tel {
	margin-bottom: 50px;
}
body.index section.product_contact .tel a {
	font-family: "Roboto";
	color: #fff;
	font-size: 55px;
	background: url("../img/icon_tel.png") bottom 10px left no-repeat;
	background-size:19px auto;
	padding-left: 30px;
}
body.index section.product_contact .tel span {
	font-size: 18px;
	color: #fff;
}
body.index section.product_contact .btns.product_btns {
	display: flex;
}
body.index section.product_contact .btns.product_btns a {
	color: #fff;
	border-radius: 6px;
	padding: 26px 0 23px;
	border: 4px solid #fff;
	display: block;
	width: 292px;
	text-align: center;
	font-size: 24px;
	max-width: 300px;
}
body.index  section.product_contact .btns.product_btns .m_contact a {
	margin-left: 20px;
	color: #1A9B3D;
	background:#fff;
	padding: 26px 4px 23px;
}
@media (max-width: 640px) {
body.index section.product_contact {
	background: #67B200 url(../img/bg_product_contact_sp.png) bottom -30% center no-repeat;

	background-size:100% auto;
}
body.index section.product_contact .inner {
	width: auto;
	padding-left: 10px;
	padding-right: 10px;
}
body.index section.product_contact h2.section_title {
	text-align: center;
	width: 70%;
	margin: 0 auto 20px;
}
body.index section.product_contact .title_text {
	font-size: 18px;
	line-height: 1.6;
	margin-bottom: 30px;
}
body.index section.product_contact .tel {
	margin-bottom: 30px;
	text-align: center;
}
body.index section.product_contact .tel a {
	font-size: 40px;
	padding-left: 30px;
}
body.index section.product_contact .tel span {
	font-size: 16px;
	display: block;
	text-align: center;
}
body.index section.product_contact .btns.product_btns {
	display: block;
}
body.index section.product_contact .btns.product_btns a {
	margin:0 auto;
}
body.index  section.product_contact .btns.product_btns .m_contact a {
	margin:30px auto ;
}
}
/* ----- ここまで ----- */



/*ゆっくりスクロールさせて表示(animationのクラスを付ければ動く)*/
.animation{
	opacity : 0;
	visibility: hidden;
	transition: 1s;
	transform: translateY(30px);
}
/*アニメーション要素までスクロールした時のスタイル*/
.slow_scroll{
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
