/* =======================================================
* sub_bg
* ======================================================= */
.sub_bg {
  background: url(../images/bg-company.jpg) no-repeat center bottom 40%/cover;
}


/* =======================================================
* overview
* ======================================================= */
#overview dl {
  max-width: 750px;
  margin: 40px auto 0;
}

#overview dl dt {
  width: 20%;
  border-bottom: 1px solid #bebebe;
  padding-bottom: 5px;
  padding-left: 10px;
  margin-bottom: 15px;
  font-size: 1.3rem;
}

#overview dl dd {
  width: 80%;
  border-bottom: 1px solid var(--color-gray);
  padding-bottom: 5px;
  padding-left: 25px;
  margin-bottom: 15px;
}

@media screen and (max-width:768px) {
  #overview dl dt {
    width: 100%;
    margin-bottom: 5px;
  }

  #overview dl dd {
    width: 100%;
    border-bottom: none;
    margin-bottom: 15px;
  }
}

/* =======================================================
* message
* ======================================================= */
#message .message_txt {
  width: 50%;
  padding: 0 5rem;
}

#message .vision {
  margin-bottom: 60px;
}

#message .vision li {
  padding-left: 20px;
  position: relative;
  margin-bottom: 15px;
}

#message .vision li::before {
  position: absolute;
  font-family: "Font Awesome 5 Free";
  content: "\f1b0";
  font-weight: 900;
  top: 0;
  left: 0;
  color: var(--color-green);
}

.message_image {
  width: 35%;
}

.message_img01 {
  position: absolute;
  top: -70px;
  left: 10px;
  width: 330px;
}

.message_img02 {
  position: absolute;
  bottom: -20px;
  right: -30px;
  width: 230px;
  z-index: -1;
}

@media screen and (max-width:768px) {
  #message {
    padding-top: 2rem;
  }

  #message .message_txt {
    width: 100%;
    padding: 0 20px;
  }

  .message_image {
    display: none;
  }

  .messageSp_img01 {
    width: 80%;
    margin: 30px auto;
  }

  .messageSp_img02 {
    width: 60%;
    margin: 60px auto 0;

  }

}

/* =======================================================
* profile
* ======================================================= */
#profile .wrap {
  display: grid;
  gap: 15px;
  grid-template-columns: 1fr 1fr;
}

/* profileArea */
.profileArea dl dt {
  color: var(--color-green);
  font-size: 1.2rem;
}

.profileArea dl dd {
  padding-left: 20px;
  margin-bottom: 15px;
}

/* skill */
.skill .accordion {
  width: 90%;
  margin: 0 auto 40px;
}

.skill .accordion p {
  position: relative;
  cursor: pointer;
  padding: 0 0 5px 30px;
  border-bottom: 1px dotted var(--color-green);
}

.skill .accordion p i {
  font-size: 1rem;
  margin-right: 3px;
}

/* プラスの横線 */
.skill .accordion p::before {
  content: "";
  position: absolute;
  background: var(--color-dark);
  top: 17px;
  right: 30px;
  width: 13px;
  height: 1px;
  transform: translateY(-50%);
}

/* プラスの縦線 */
.skill .accordion p:after {
  content: "";
  position: absolute;
  background: var(--color-dark);
  top: 17px;
  right: 36px;
  width: 1px;
  height: 13px;
  transform: translateY(-50%);
  transition: .3s;
}

.skill .accordion p.open:after {
  top: 25%;
  opacity: 0;
  transform: rotate(90deg);
}

.skill .accordion div {
  display: none;
  font-size: 1.2rem;
  padding: 15px 30px;
  background: #f7f7f7;
  border-radius: 5px;
}

@media screen and (max-width:768px) {
  #profile {
    padding-top: 0;
  }

  #profile .wrap {
    gap: 50px;
    grid-template-columns: 1fr;
  }

  .skill .accordion {
    width: 100%;
  }

  .skill .accordion p {
    padding: 0 0 5px 20px;
  }
}