@charset "utf-8";
/* CSS Document */


/* mainvisual */
.mainvisual {
  overflow: hidden;
  margin-bottom: 64px;
  height: 548px;
  border-bottom: 1px solid #e5e5e5;
  background: -webkit-gradient(linear, left top, right top, color-stop(20%, #e7e7e7), color-stop(50%, #fff));
  background: linear-gradient(to right, #e7e7e7 20%, #fff 50%);
}

.mainvisual h1 {
  margin-top: 103px;
  white-space: nowrap;
  letter-spacing: -2px;
  font-weight: bold;
  font-size: 48px;
  line-height: 1.4;
}

#main .mainvisual .lead {
  margin: 33px 0 35px;
  font-size: 22px;
}

.mainvisual .lead span {
  display: inline-block;
  vertical-align: top;
  line-height: 1.5;
}

.mainvisual .lead span:first-child {
  margin-right: 10px;
  padding: 3px 5px;
  border: 1px solid #f00;
  color: #f00;
  font-size: 16px;
}

/* common */
.flex_box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: justify;
  -webkit-box-pack: justify;
  justify-content: space-between;
}

.lp_contents {
  margin-bottom: 77px;
}

.lp_contents h2 {
  position: relative;
  margin-bottom: 45px;
  padding-left: 30px;
  font-weight: bold;
  font-size: 40px;
  line-height: 1;
}

.lp_contents h2::before {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 8px;
  height: 40px;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #7aa916), to(#add720));
  background: linear-gradient(to bottom, #7aa916 20%, #add720);
  content: "";
}

.lp_contents .lead {
  margin-bottom: 47px;
  font-weight: bold;
  font-size: 20px;
}

.lp_contents .lead span {
  position: relative;
  margin-right: 30px;
  padding: 10px 22px;
  background: #e5e5e5;
  font-weight: bold;
}

.lp_contents .lead span::before {
  position: absolute;
  top: 0;
  right: -15px;
  display: block;
  width: 0;
  height: 0;
  border-width: 25px 0 25px 15px;
  border-style: solid;
  border-color: transparent transparent transparent #e5e5e5;
  content: "";
}

.lp_contents .flex_box.case_study .flex_item dl {
  color: #fff;
}

.lp_contents .flex_box.case_study .flex_item:first-child dl {
  background: #313131;
}
.lp_contents .flex_box.case_study .flex_item:last-child dl {
  background: #6ea000;
}

.lp_contents .flex_box.case_study dt {
  position: relative;
  margin-bottom: 17px;
  padding: 20px 40px 24px;
  font-weight: bold;
  font-size: 22px;
}

.lp_contents .flex_box.case_study dt::before {
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 1px;
  content: "";
}

.lp_contents .flex_box.case_study dt::after {
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 120px;
  height: 1px;
  background: #fff;
  content: "";
}

.lp_contents .flex_box.case_study .flex_item {
  width: 465px;
}

.lp_contents .flex_box.case_study .flex_item:first-child dt::before {
  background: #5a5a5a;
}

.lp_contents .flex_box.case_study .flex_item:last-child dt::before {
  background: #8bb333;
}

.lp_contents .flex_box.case_study dd {
  padding: 0 40px 33px;
  font-size: 16px;
  line-height: 1.6;
}

/* section03 */
.lp_contents.section03 {
  margin-bottom: 0;
  padding: 44px 0 50px;
  background: #eee;
}

.lp_contents.section03 h2 {
  position: relative;
  padding-top: 20px;
  text-align: center;
  font-size: 32px;
}

.lp_contents.section03 h2::before {
  position: absolute;
  top: 0;
  left: calc(50% - 20px);
  display: block;
  width: 40px;
  height: 4px;
  background: -webkit-gradient(linear, left top, right top, color-stop(10%, #7aa916), to(#add720));
  background: linear-gradient(to right, #7aa916 10%, #add720);
  content: "";
}

.lp_contents.section03 .flex_box.case_study .flex_item {
  padding-bottom: 5px;
  background: #fff;
  -webkit-box-shadow: 0 0 8px #ccc;
  box-shadow: 0 0 8px #ccc;
}

.lp_contents.section03 .flex_box.case_study .flex_item dt {
  margin-bottom: 0;
  padding: 12px 0;
  text-align: center;
}

.lp_contents.section03 .flex_box.case_study .flex_item dt::before,
.lp_contents.section03 .flex_box.case_study .flex_item dt::after {
  display: none;
}

.lp_contents.section03 .flex_box.case_study .flex_item dd {
  padding: 0 30px 15px;
}

.lp_contents.section03 .flex_box.case_study dd:nth-child(2) {
  padding: 0 0 20px;
}

.lp_contents.section03 .flex_box.case_study dd:nth-child(n+2) {
  background: #fff;
  color: #333;
}

.lp_contents.section03 .flex_box.case_study .flex_item ul {
  padding-left: 1.5em;
  list-style: disc outside;
}
