@charset "utf-8";

/* --------------------------------
画面右側お問合せ・応募ボタン
-----------------------------------*/
.contact-btn_wrap{
      display: flex;
      gap: 6px;
      position: fixed;
      bottom: 100px;
      right: 0;
      writing-mode: vertical-rl;
      z-index: 98;
    }
    .contact-btn{
      position: relative;
    }
    .contact-btn .contact-btn__link{
      display: inline-block;
      padding: 15px 13px;
      border-radius: 4px 0 0 4px;
      background: #0f585d;
      text-align: center;
      text-decoration: none;
      letter-spacing: 0.1em;
      color:#fff;
      font-size: 1.4rem;
      line-height: 1.4;
      transition: all 0.3s;
    }
    .contact-btn .contact-btn__link.icon-mail:before {
      content: '';
      display: inline-block;
      margin-bottom: 3px;
      width: 15px;
      height: 15px;
      background: url(/dc/dcgoodstart/img/icon-mail.svg) no-repeat;
      background-size: contain;
      background-position: center;
    }
    .contact-btn .contact-btn__link.icon-target:before {
      content: '';
      display: inline-block;
      margin-bottom: 5px;
      width: 15px;
      height: 15px;
      background: url(/dc/dcgoodstart/img/icon-target.svg) no-repeat;
      background-size: contain;
      background-position: center;
    }
    .contact-btn .contact-btn__link:hover,
    .contact-btn .contact-btn__link:focus{
      opacity: 0.7;
    }
 @media screen and (max-width: 767px) {
  .contact-btn_wrap{
    bottom: 65px;
  }
  .contact-btn .contact-btn__link{
    font-size: 1.3rem;
    padding: 10px;
  }
}

/* --------------------------------
intro
-----------------------------------*/

.intro .intro_tit{
  padding:0 30px;
  margin-bottom: 20px;
  font-weight: bold;
  font-size: 2.5rem;
  line-height: 1.6;
  color:#0f585d;
}
.intro .text_right .position{
  font-size: 1.4rem;
}
.about .term{
  font-size: 1.8rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  text-align: center;
}
.about .term .date{
  font-size: 2.2rem;
}
.about .term .term_end{
  padding-top: 7px;
  font-size: 1.2rem;
  font-weight: normal;
}
.about .merit{
  background-color: #EAF8ED;
  padding:30px;
  margin-bottom: 50px;
}
.about .merit p.merit_tit{
  padding:0;
  margin-bottom: 15px;
  font-weight: bold;
  font-size: 2.0rem;
  text-align: center;
  color:#0f585d;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .intro .intro_tit{
    padding:0;
  }
  .about .merit{
    padding: 15px;
  }
  .about .term{
    font-size: 1.6rem;
    font-weight: bold;
    letter-spacing: 0.05em;
  }
  .about .term span{
    font-size: 1.8rem;
  }
}

/* --------------------------------
main_visual
-----------------------------------*/
.main_visual{
  max-width: 980px;
  margin: 0 auto 30px;
}
@media screen and (max-width: 767px) {
  .main_visual{
    margin-bottom: 0;
  }
}

/* -----------------------------
  font
------------------------------*/
.text_orange{
  color: #f15a24;
}

/* -----------------------------
  button
------------------------------*/
.c_inner .btn_box{
  padding: 30px 30px 80px;
}
.c_inner .btn_box .box-item {
  width: 50%;
  margin: 0 auto;
}
.c_inner .btn {
  position: relative;
  display: inline-block;
  width: 100%;
  max-width: 680px;
  padding: 2.5rem 1.8rem;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #fff;
  border-radius: 0.5rem;
  background-color: #63bc9f;
  background-image: url("/dc/common/img/icon_arrow_w.png") ;
  background-size: 1.2rem auto;
  background-repeat: no-repeat;
  background-position: right 1.2rem center;
}
.c_inner .btn:hover,
.c_inner .btn:focus {
  opacity: 0.7;
}
.c_inner a.btn span{
  display: block;
  padding-top: 5px;
  font-weight: normal;
  font-size: 1.2rem;
}
.c_inner .btn.btn_gray {
  background-color: #b4b4b4;
  opacity: 1;
  cursor: default;
}
.c_inner .btn.btn_pdf {
  background-color: #fff;
  background-image: url(/dc/dcgoodstart/img/icon_pdf_green.svg);
  border:1px solid #0f585d;
  background-size: 2rem auto;
  margin-top: 15px;
  font-size: 1.4rem;
  color:#0f585d
}
@media screen and (max-width: 767px) {
  .c_inner .btn_box{
    padding: 15px 15px 50px;
  }
  .c_inner .btn_box .box-item {
    width: 100%;
  }
  .c_inner .btn {
    padding: 1.5rem 2rem;
    font-size: 1.6rem;
    background-size: 1.0rem auto;
  }
}




/* -----------------------------
  list
------------------------------*/
.c_inner .circle_list {
  position:relative;
  padding-left: 20px;
  margin: 10px 0px;
}
.c_inner .circle_list li {
  position:relative;
  margin-bottom: 12px;
  padding-left: 1em;
  line-height: 1.6;
}
.c_inner .circle_list li:last-child {
  margin-bottom: 0;
}
.c_inner .circle_list li:before{
  content: "";
  display: block;
  position: absolute;
  top: 10px;
  left: -10px;
  height: 10px;
  width: 10px;
  border-radius: 50%;
  background: #63bc9f;
}



/* -----------------------------
  contents
------------------------------*/
sup{
  font-size: 70%;
  vertical-align: top;
}
main .c_inner {
  max-width: 1040px;
  margin: 0 auto 100px;
  padding: 0 30px;
}

.c_inner p {
  padding:0 30px;
  margin-bottom: 30px;
  line-height: 1.75;
}
.dcgoodstart{
  font-size: 1.5rem;
  letter-spacing: 0.05em;
}

.intro,
.about,
.c_inner_box{
  padding:0 30px;
}
.c_inner p.note{
  font-size: 1.1rem;
  padding:0;
  margin-bottom: 70px;
  text-align: right;
}
.c_inner .about .pro{
  font-size: 1.4rem;
  text-indent: -1em;
  margin-left: 1em;
}
@media screen and (max-width: 767px) {
  .c_inner p {
  padding:0;
  }
  .intro,
  .about,
  .c_inner_box{
    padding:0;
  }
}


/* 見出し */
.c_inner .c_bd-ttl {
  position: relative;
  margin: 0 0 20px;
  padding: 15px 0;
  font-size: 2.1rem;
  color: #0f585d;
  font-weight: bold;
  line-height: 1.2;
}
.c_inner .c_bd-ttl .c_bd-ttl_box{
  position: relative;
  display: inline-block;
  padding: 0 1em 0 0;
  background-color: #fff;
}
.c_inner .c_bd-ttl:before{
  content: '';
  position: absolute;
  bottom: 26px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #418b85;
}

.c_inner .c_bd-ttl .point_box{
  display: inline-block;
  margin-right: 15px;
  vertical-align: text-top;
}
.c_inner .c_bd-ttl .point_box span.c_bd-ttl_num{
  display: inline-flex;
  background-color: #d2ba68;
  padding:0 13px;
  height: 23px;
  line-height: 22px;
  border-radius: 14px;
  font-size: 1.2rem;
  color: #fff;
}
.c_inner .c_bd-ttl .point_box span.c_bd-ttl_num strong{
  margin-left: 5px;
  font-size: 1.6rem;
}

.c_inner .c_bg-ttl {
  margin: 0 0 30px;
  padding: 10px 0 10px 1em;
  color: #fff;
  font-size: 2.2rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.8;
  background: #07706d;
}


@media screen and (max-width: 767px) {
  main .c_inner {
    margin: 0 auto 80px;
    padding: 0 5%;
  }

  .c_inner h1 {
    font-size: 1.8rem;
  }
  .c_inner h2.c_h-ttl {
    font-size: 2rem;
  }
  .c_inner h3.c_h-ttl {
    font-size: 1.8rem;
  }
  .c_inner .c_bg-ttl {
    padding: 15px 15px;
    font-size: 1.8rem;
    line-height: 1.6;
    text-align: left;
  }
  .c_inner p {
    margin-bottom: 17px;
  }
  .c_inner .c_bd-ttl {
    font-size: 1.9rem;
    text-align: center;
  }
  .c_inner .c_bd-ttl:before {
    bottom:0;
  }
  .c_inner .c_bd-ttl .c_bd-ttl_box{
    padding:0;
  }
  .c_inner .c_bd-ttl .point_box{
  display: block;
  margin-bottom: 10px;
  margin-right: 0;
  }

}

/* oubo */
.oubo{
  width: 100%;
  max-width: 840px;
  margin: 0 auto 30px;
  line-height: 1.6;
}
.oubo th{
  padding:5px;
  background-color: #e5f6ea;
  border: 6px solid #fff;
  font-weight: bold;
  font-size: 1.4rem;
  text-align: center;
  vertical-align: middle;
}
.oubo td{
  padding:5px 0 5px 20px;
  }
.oubo td ul{
  list-style: disc;
  padding-left: 1em;
}
@media screen and (max-width: 767px) {
  .oubo{
  width: 100%;
  }
  .oubo td{
  padding:5px 0 5px 10px;
  }
}


/* problem */
.problem .triangle {
  display: block;
  margin:0 auto 30px;
  width: 120px;
  height: 30px;
  background: #63bc9f;
  background: linear-gradient(180deg,rgba(229, 246, 234, 1) 0%, rgba(99, 188, 159, 1) 100%);
  clip-path: polygon(0 0, 100% 0%, 50% 100%);
}
.problem_center{
  text-align: center;
  font-size: clamp(18px, 1.6vw, 28px);
  font-weight: bold;
}
.problem .problem_box{
  background-color: #f8f8f8;
  padding:30px 6% 3%;
  margin-bottom: 50px;
}
.problem .problem_box h3.box_tit{
  padding:0;
  margin-bottom: 20px;
  font-weight: bold;
  font-size: 1.8rem;
  text-align: center;
  line-height: 1.5;
}
.problem .problem_box h3.box_tit:before{
  content: "Q.";
  color: #418b85;
  font-size: 2.4rem;
  margin-right: 10px;
}
.problem .problem_box .box_txt{
  padding: 25px 0 0;
  margin-bottom: 0;
  width: 100%;
  text-align: center;
}
.problem .problem_box p.note {
  display: block;
  padding: 5px 0 0;
  margin-bottom: 30px;
  font-size: 1.1rem;
  line-height: 1.4;
}
.problem .problem_box article:last-of-type p.note {
  margin-bottom: 10px;
}
.problem .problem_box .problem_box_flex{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  background-color: #fff;
  padding:20px;
  line-height: 1.6;
}
.problem .problem_box .problem_box_single{
  background-color: #fff;
  padding:20px 10%;
}
.problem .problem_box .problem_box_flex.problem_box_flex_center{
  align-items: center;

}
.problem .problem_box .problem_box_flex figure{
  width: 40%;
  max-width: 200px;
}
.problem .problem_box .problem_box_flex figure figcaption{
  padding-top: 10px;
  text-align: center;
  font-size: 1.4rem;
  line-height: 1.5;
}
.problem .problem_box .problem_box_flex figure figcaption span{
  display: inline-block;
  padding-left: 5px;
  font-weight: bold;
}
.problem .problem_box .problem_box_flex .figure02{
  width: 30%;
  max-width: 140px;
  margin-left: 13%;
}
.problem .problem_box .problem_box_flex .flex_right{
 width: 55%;
 padding-left: 6%;
}
.problem_white{
  padding: 20px 30px;
  background-color: #fff;
}
.problem_white li{
  overflow: hidden;
  line-height: 1.7;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #f5f5f5;
}
.problem_white li:last-of-type{
  padding-bottom: 0;
}
.problem_white li:last-of-type{
  margin-bottom: 0;
  border-bottom: none;
}
.problem_white li .number{
  display: inline-block;
  background-color: #f5f5f5;
  padding:3px 10px;
  margin-right: 15px;
  font-size:1.3rem;
}
.problem_white li .ratio{
  display: inline-block;
  float: right;
  margin-left: 25px;
}

@media screen and (max-width: 767px) {
  .problem_white {
    padding: 20px;
  }
  .problem_center{
    text-align: left;
    font-size: 1.8rem;
  }
  .problem .problem_tit{
    padding:0;
  }
  .problem .problem_box{
    padding: 15px;
    margin-bottom: 30px;
  }
  .problem .problem_box .problem_box_single{
  padding:20px 4%;
  }
  .problem .problem_box h3.box_tit,
  .problem .problem_box .box_txt{
    text-align: left;
  }
  .problem .problem_box .problem_box_flex{
    gap: 10%;
  }
  .problem .problem_box .problem_box_flex figure{
    width: 50%;
  }
  .problem .problem_box .problem_box_flex .figure02{
    width: 35%;
    margin-left: 0;
  }
  .problem .problem_box .problem_box_flex figure figcaption span{
    display: block;
    padding-left: 0;
  }
  .problem .problem_box .problem_box_flex .flex_right {
    width: 100%;
    padding: 25px 0 0;
  }
  .problem .problem_box p.note {
    text-align: left;
    text-indent: -1em;
    padding-left: 1em;
  }
}

/* timeline */
.timeline {
  padding: 0 0 0 50px;
  margin-bottom: 80px;
  list-style: none;
}
.timeline p{
  padding:0;
}

.timeline > li {
  overflow: hidden;
  margin: 0;
  position: relative;
}
.timeline .timeline-date {
  width: 160px;
  float: left;
  padding: 20px 30px 0 0;
  margin-bottom: 0;
  text-align: right;
  line-height: 1.2;
}
.timeline .timeline-content {
  float: left;
  border-left: 3px #eaeae3 solid;
  padding-left: 30px;
}
.timeline .timeline-content:before {
  content: '';
  width: 13px;
  height: 13px;
  background: #63bc9f;
  position: absolute;
  left: 155px;
  top: 24px;
  border-radius: 100%;
}
.timeline .timeline-content .midashi{
  padding: 20px 0 0;
  color:#0f585d;
  font-weight: bold;
  font-size: 1.6rem;
}
.timeline .timeline-content p{
  margin-bottom: 10px;
  padding-top: 5px;
  line-height: 1.6;
}
.timeline .timeline-content ul{
  padding: 5px 0 5px 2em;
  list-style: disc;
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  .timeline {
  padding-left: 0;
  margin-top: -15px;
  }
  .timeline .timeline-date,
  .timeline .timeline-content {
    float: none;
  }
  .timeline .timeline-date{
    width: 100%;
    padding-left: 20px;
    text-align: left;
  }
  .timeline .timeline-content:before {
    left:0;
  }
  .timeline .timeline-content {
    border-left: none;
    padding-left: 20px;
  }
  .timeline .timeline-content .midashi{
  padding-top: 10px;
  }
}

.timeline dt::before {
  background: #fdc44f;
}

/* faq */
.faq_box {
    margin: 0 30px 20px;
    border: solid 1px #CBCBCB;
}
.faq_box .question__title {
    position: relative;
    cursor: pointer;
    display: flex;
    align-items: center;
    padding: 25px 55px 25px 3.8%;
    font-weight: bold;
    line-height: 1.4;
}
.faq_box .question__title:before,
.faq_box .question__title:after {
    content: '';
    display: block;
    background-color: #63bc9f;
    position: absolute;
    top: 50%;
    right: 20px;
    width: 20px;
    height: 3px;
}
.faq_box .question__title:after {
    transform: rotate(90deg);
    transition-duration: .5s;
}
.faq_box .question__title span {
      width: calc(100% - 45px);
  }
.faq_box .question__title span.font-q {
    display: block;
    padding-bottom: 5px;
    width: 45px;
    font-size: 3.5rem;
    line-height: 1;
    color: #63bc9f;
}
.faq_box .question__title.is-active:before {
    opacity: 0;
}
.faq_box .question__title.is-active:after {
    transform: rotate(0);
}
.faq_box .question__content {
    position: relative;
    height: 0;
    margin-left: 45px;
    padding: 0 3.8%;
    line-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: all ease .5s;
}
.faq_box .question__content.is-open {
    margin: 0 0 25px 45px;
    line-height: normal;
    height: auto;
    opacity: 1;
}

@media screen and (max-width:767px) {
    .faq_box {
        margin: 0 0 15px;
    }
    .faq_box .question__title {
        padding: 14px 40px 14px 3.8%;
        font-size: 1.4rem;
    }
    .faq_box .question__title span {
        width: calc(100% - 32px);
    }
    .faq_box .question__title span.font-q {
        width: 32px;
    }
    .faq_box .question__title:before,
    .faq_box .question__title:after {
        right: 10px;
    }
    .faq_box .question__content{
      font-size: 1.4rem;
    }
    .faq_box .question__title span.font-q{
      font-size: 2.5rem;
    }
}


/* .l-breadcrumb
================================================ */
.l-breadcrumb-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.l-breadcrumb-list__item {
  color: #0f585d;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-size: 1.3rem;
}

.l-breadcrumb-list__item+.l-breadcrumb-list__item {
  margin-left: 10px;
}
.l-breadcrumb-list .l-breadcrumb-list__item a{
  text-decoration: none;
}

.l-breadcrumb-list__item+.l-breadcrumb-list__item:before {
  background: #999;
  content: "";
  margin-right: 10px;
  height: 1px;
  width: 8px;
}

.l-breadcrumb-list__item:last-child {
  color: #2f2f2f;
}
@media screen and (max-width: 767px) {
.l-breadcrumb-list{
 display: none;
}
}
