@charset "UTF-8";
/* ------------------------------
	レスポンシブ
------------------------------ */
/* ------------------------------
	フォント
------------------------------ */
@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Zen+Old+Mincho&display=swap");
/* ------------------------------
	カラー
------------------------------ */
/* ------------------------------
	.page_head
------------------------------ */
.page_head {
  background: #151515 url(../img/about/page_head_img01.jpg) no-repeat center center;
  background-size: cover;
}
/* ------------------------------
	.about
------------------------------ */
.about {
  padding: 130px 0 150px;
}
@media screen and (max-width: 768px) {
  .about {
    padding: 40px 0 60px;
  }
}
.about {
  /* ------------------------------
  	.message
  ------------------------------ */
}
.about .message {
  padding-bottom: 120px;
}
@media screen and (max-width: 768px) {
  .about .message {
    padding-bottom: 60px;
  }
}
.about .message .str_ttl {
  letter-spacing: 0.1em;
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  .about .message .str_ttl {
    margin-bottom: 30px;
  }
}
.about .message .flex {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  gap: 60px;
  background: url(../img/about/message_bg01.png) no-repeat;
  background-size: 360px;
  background-position: right 30px;
}
@media screen and (max-width: 768px) {
  .about .message .flex {
    flex-direction: column;
    width: 100%;
    gap: 30px;
    background-size: 150px;
    background-position: bottom right;
  }
}
.about .message .flex .img {
  flex-shrink: 0;
  width: 360px;
}
@media screen and (max-width: 768px) {
  .about .message .flex .img {
    width: 100%;
  }
}
.about .message .flex .txt_box {
  width: 100%;
}
.about .message .flex .txt_box .ttl {
  margin-bottom: 60px;
  font-weight: 500;
  font-size: 3rem;
  line-height: 1.8;
}
@media screen and (max-width: 768px) {
  .about .message .flex .txt_box .ttl {
    margin-bottom: 20px;
    font-size: 2rem;
    line-height: 1.5;
  }
}
.about .message .flex .txt_box .txt {
  font-weight: 500;
}
@media screen and (min-width: 769px) {
  .about .message .flex .txt_box .txt {
    font-size: 1.7rem;
  }
}
.about .message .flex .txt_box .txt + .txt {
  margin-top: 2em;
}
@media screen and (max-width: 768px) {
  .about .message .flex .txt_box .txt + .txt {
    margin-top: 1.8em;
  }
}
.about {
  /* ------------------------------
  	.why
  ------------------------------ */
}
.about .why {
  padding-bottom: 120px;
}
@media screen and (max-width: 768px) {
  .about .why {
    padding-bottom: 80px;
  }
}
.about .why .ttl_box {
  background: #272727;
}
.about .why .ttl_box .wrap {
  position: relative;
  height: 260px;
  padding-top: 65px;
}
@media screen and (max-width: 768px) {
  .about .why .ttl_box .wrap {
    height: 180px;
    padding-top: 40px;
  }
}
.about .why .ttl_box .ttl {
  color: #fff;
  font-size: 3.7rem;
  letter-spacing: 0.1em;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .about .why .ttl_box .ttl {
    font-size: 2.2rem;
  }
}
.about .why .ttl_box .ttl_txt {
  margin-top: 20px;
  color: #fff;
  font-weight: 500;
  font-size: 2rem;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .about .why .ttl_box .ttl_txt {
    font-size: 1.5rem;
  }
}
.about .why .ttl_box .ico {
  position: absolute;
  top: -42px;
  right: 40px;
  font-size: 32rem;
  color: #fff;
  transform: rotate(25deg);
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .about .why .ttl_box .ico {
    top: auto;
    bottom: -7px;
    right: -30px;
    font-size: 13rem;
  }
}
.about .why .flex {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 50px;
  margin-top: -90px;
}
@media screen and (max-width: 768px) {
  .about .why .flex {
    flex-direction: column;
    gap: 40px;
    margin-top: -70px;
  }
}
.about .why .flex .img {
  flex-shrink: 0;
  width: 541px;
  margin-left: -130px;
}
@media screen and (max-width: 768px) {
  .about .why .flex .img {
    width: calc(100% - 90px);
    margin-left: 0;
  }
}
.about .why .flex .txt_box {
  padding-top: 125px;
}
@media screen and (max-width: 768px) {
  .about .why .flex .txt_box {
    padding-top: 0;
  }
}
@media screen and (min-width: 769px) {
  .about .why .flex .txt_box .txt {
    letter-spacing: 0.1em;
  }
}
.about .why .flex .txt_box .txt + .txt {
  margin-top: 2em;
}
@media screen and (max-width: 768px) {
  .about .why .flex .txt_box .txt + .txt {
    margin-top: 1.8em;
  }
}
.about .why .flow {
  margin-top: 130px;
}
@media screen and (max-width: 768px) {
  .about .why .flow {
    margin-top: 60px;
  }
}
.about .why .flow .flow_item {
  position: relative;
  display: flex;
  gap: 50px;
}
@media screen and (max-width: 768px) {
  .about .why .flow .flow_item {
    flex-direction: column;
    gap: 20px;
  }
}
.about .why .flow .flow_item + .flow_item {
  margin-top: 70px;
}
@media screen and (max-width: 768px) {
  .about .why .flow .flow_item + .flow_item {
    margin-top: 40px;
  }
}
.about .why .flow .flow_item .img_box {
  position: relative;
  flex-shrink: 0;
  width: 556px;
}
@media screen and (max-width: 768px) {
  .about .why .flow .flow_item .img_box {
    width: 100%;
  }
}
.about .why .flow .flow_item .img_box .ttl {
  position: absolute;
  padding: 5px 10px;
  background: #fff;
  font-size: 2rem;
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 769px) {
  .about .why .flow .flow_item .img_box .ttl {
    top: 50px;
    left: 400px;
    white-space: nowrap;
  }
}
@media screen and (max-width: 768px) {
  .about .why .flow .flow_item .img_box .ttl {
    right: -10px;
    bottom: 10px;
    display: flex;
    font-size: 1.6rem;
  }
}
.about .why .flow .flow_item .img_box .ttl .num_txt {
  flex-shrink: 0;
}
.about .why .flow .flow_item .txt_box {
  padding-top: 130px;
}
@media screen and (max-width: 768px) {
  .about .why .flow .flow_item .txt_box {
    padding: 0;
  }
}
.about {
  /* ------------------------------
  	.team
  ------------------------------ */
}
.about .team .str_ttl {
  margin-bottom: 60px;
  text-align: center;
}
@media screen and (min-width: 769px) {
  .about .team .str_ttl {
    letter-spacing: 0.1em;
  }
}
@media screen and (max-width: 768px) {
  .about .team .str_ttl {
    margin-bottom: 30px;
  }
}
.about .team .txt {
  text-align: center;
  font-weight: 500;
}
@media screen and (min-width: 769px) {
  .about .team .txt {
    letter-spacing: 0.1em;
  }
}
.about .team .img {
  width: 939px;
  margin: 40px auto 0;
}
@media screen and (max-width: 768px) {
  .about .team .img {
    width: 100%;
  }
}