@media(min-width:961px) {
      .videowrap {
        height: 100vh;
        overflow: hidden;
        position: relative;
        width: 100vw;
      }

      .videowrap::after {
        /* background-color: rgba(0, 0, 0, 0.2);
        background-image: radial-gradient(#333333 20%, transparent 0), radial-gradient(#333333 20%, transparent 0); */
        background-position: 0 0, 5px 5px;
        background-size: 3px 3px;
        content: "";
        display: block;
        height: 100%;
        left: 0;
        position: absolute;
        top: 0;
        width: 100%;
      }

      video {
        min-height: 100vh;
        min-width: 100vw;
        position: relative;
        z-index: -1;
        background-attachment: fixed;
      }

      .copy {
        left: 50%;
        position: absolute;
        top: 50%;
        transform: translate(-50%, -50%);
        white-space: nowrap;
        z-index: 1;
        color: white;
        font-size: 26px;
        background: white;
        color: #0E7A6C;
        border-radius: 59px;
        writing-mode: vertical-lr;
        padding: 33px 10px;
      }
    }

    @media(max-width:960px) {
      * {
        margin: 0;
        padding: 0;
      }

      .videowrap {
        position: relative;
        width: 100vw;
        height: 100vh;
        overflow: hidden;
      }

      .videowrap::after {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        content: "";
        display: block;
        /* background-color: rgba(0, 0, 0, 0.2); */
        /* background-image: radial-gradient(#333 20%, transparent 0), radial-gradient(#333 20%, transparent 0); */
        background-position: 0 0, 5px 5px;
        background-size: 3px 3px;
      }

      video {
        min-width: 100vw;
        min-height: 100vh;
        position: relative;
        z-index: -1;
      }

      /*画面サイズが変わっても常に動画の中央が表示されるようにする*/
      /*動画よりも画面が横に長くなるとき用*/
      @media (aspect-ratio: 16/9),
      (min-aspect-ratio: 16/9) {
        video {
          width: 100%;
          top: 50%;
          transform: translateY(-50%);
        }
      }

      /*動画よりも画面が縦に長くなるとき用*/
      @media (max-aspect-ratio: 16/9) {
        video {
          height: 100%;
          left: 50%;
          transform: translateX(-50%);
        }
      }
      .copy {
        left: 50%;
        position: absolute;
        top: 50%;
        transform: translate(-50%, -50%);
        white-space: nowrap;
        z-index: 1;
        color: white;
        font-size: 18px;
        background: white;
        color: #0E7A6C;
        border-radius: 59px;
        writing-mode: vertical-lr;
        padding: 20px 10px;
      }
    }

  /* PC Contents */

.features{
    background: #f5f5f5;
    padding: 100px 0;
}

.features h2{
  font-size: 3rem;
  text-align: center;
}

.features_inner{
    width: 1200px;
    margin:0 auto;
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
}

.heading{
    font-size: 3rem;
    line-height: 48px;
    font-weight: bold;
}

.point{
  width: 550px;
  padding: 35px;
  box-sizing: border-box;
  background: white;
}

.point h3{
  margin-bottom: 32px;
  font-size: 2rem;
  line-height: 32px;
}

.point p{
  font-size: 2rem;
  border-bottom: 1px dotted #707070;
  margin-bottom: 20px;
}
.point p:last-child{
  margin-bottom: 0;
}

.point img{
  margin-right: 10px;
}

.bottom_arrow{
  /* margin:0 auto; */
  text-align: center;
  margin:60px auto;
}

.secondary{
  margin:0 auto;
  text-align: center;
}

.secondary h2{
  font-size: 2.4rem;
}

.secondary h3{
  font-size: 2.6rem;
  margin-top: 60px;
}

.concept{
  margin-top: 60px;
  background-image: url(../img/top_04.png);
  background-repeat: no-repeat;
  /* background-attachment: fixed; */
  width: 100%;
}

.concept_inner{
  max-width: 1200px;
  margin:0 auto;
  padding: 146px 0;
}

.concept p{
  padding: 22px 82px;
  box-sizing: border-box;
  text-align: center;
  font-size:2.6rem;
  background: white;
  border-radius: 53px;
  font-weight: bold;
}

.profile{
  margin:100px auto;
}

.profile h2{
  font-size: 3rem;
  margin-bottom: 60px;
  text-align: center;
}

.profile_inner{
  display: flex;
  justify-content: space-between;
  max-width: 1200px;
  margin:0 auto;
}

.left{
  margin-right: 50px;
  line-height: 50px;
  font-weight: bold;
  text-align: justify;
}

.right {
  width: 100%;
}
.right img{
  max-width: 550px;
}

.participation a{
  border-radius: 37px;
  padding: 22px 100px;
  border:1px solid #085148;
  color: #085148;
  display: block;
  max-width: 430px;
  box-sizing: border-box;
  font-size: 2.2rem;
  text-align: center;
  margin:0 auto;
  margin-top:60px;
}

.participation a:hover{
  background: #085148;
  color: white;
  transition: 0.45s;
}

.circle_container{
  background: #f5f5f5;
  padding: 100px 0;
  box-sizing: border-box;
  margin:0 auto;
  margin:100px auto;
}

.circle_container h2{
    font-size: 3rem;
  margin-bottom: 60px;
  text-align: center;
}

.circle_container h3{
    font-size: 2rem;
  margin-bottom: 60px;
  text-align: center;
}

.circle_inner{
  max-width: 1200px;
  margin:0 auto;
  display: flex;
  justify-content: space-between;
}

.circle_wraps p{
  font-size: 1.3rem;
  text-align: center;
  font-weight: bold;
}

.circle{
  width: 230px;
  height: 230px;
  color: white;
  border-radius: 50%;
  position: relative;
  margin-bottom: 16px;
  text-align: center;
}

.in{
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  text-align: center;
}

.lightgreen{
  background: #0FBEA6;
}

.mosgreen{
  background: #1E9D8C;
}

.deepgreen{
  background: #0E7A6C;
}

.darkgreen{
  background: #085148;
}

.text_green{
  color: #085148;
}

.text_orange{
  color: #EE9600;
}

.circle p{
  background: white;
  padding: 3px 20px;
  color: black;
  border-radius: 15px;
  box-sizing: border-box;
  margin-bottom: 10px;
}

.circle strong{
  font-size: 2.6rem;
}


.activities{
  max-width: 1200px;
  margin:0 auto;
  margin-top: 60px;
}

.activities h2{
  margin:0 auto;
  text-align: center;
  margin-bottom: 10px;
}
.activities h3{
  margin:0 auto;
  text-align: center;
  margin-bottom: 30px;
  font-weight: normal;
}

.activities table{
  text-align: left;
  display: table;
  margin:0 auto;
  background: white;
}

.activities table th{
  background: white;
  text-align: left;
  display: table-cell;
  padding: 15px !important;
  border: 1px solid #ddd;
  background: #0FBEA6;
  color: white;
  font-weight: normal;

}
.activities table td{
  background: white;
  text-align: left;
  display: table-cell;
  padding: 15px !important;
  border: 1px solid #ddd;
  background: white;
  font-weight: normal;
}
.activities a{
  display: inline-block;
  text-decoration: underline;
  font-weight: normal;
  color: #0FBEA6;
}


.step{
  margin-top: 60px;
  margin-left: 0;
  width: 100%;
}

.step li{
  background: #f5f5f5;
  padding: 21px 0;
  width: 583px;
  font-size: 1.8rem;
  text-align: center;
  box-sizing: border-box;
  font-weight: bold;
  margin-left: 30px;
}

.step li img{
  display: block;
  margin:20px auto;
}

.bg_white{
  background: white !important;
}

.case{
  margin-top:60px;
  align-self: flex-start;
  position: relative;
}

.case_number{
  position: absolute;
  top: -48px;
  left: 10px;
  background: #f5f5f5;
  border-radius: 50%;
  width: 116px;
  height: 116px;
  display: flex;
}

.case_number{
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  font-weight: bold;
  color: #085148;
}

.case_image_text{
  background: #0E7A6C;
  color: white;
}

.case_only_text{
  position: relative;
  min-height: 310px;
}

.case_image_text p{
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  font-size: 3rem;
  font-weight: bold;
  line-height: 48px;
  white-space: nowrap;
}

.ceo_message{
  align-self: flex-start;
  text-align: left;
  margin-right: 60px;
}

.ceo_message h2{
  text-align: left;
  margin-bottom: 60px;
}

.ceo_message h3{
  text-align: right;
  font-size: 2rem;
}

.ceo_message p{
  line-height: 50px;
  font-size: 1.6rem;
  font-weight: bold;
}

small{
  background: black;
  text-align: center;
  padding: 15px;
  display: block;
  color: white;
  margin-top: 60px;
  font-weight: bold;
}

small h3{
  font-size: 1.6rem;
  margin-bottom: 10px;
}


/* SP Contents */

@media(max-width:968px){

.features{
    background: #f5f5f5;
    padding: 60px 0;
}

.features h2{
  font-size: 2rem;
  text-align: center;
}

.features_inner{
    width: 100%;
    padding: 0 2%;
    box-sizing: border-box;
    margin:0 auto;
    display: block;
    justify-content: space-between;
    align-items: center;
    box-sizing: border-box;
}

.heading{
    font-size: 1.8rem;
    line-height: 36px;
    font-weight: bold;
    margin:0 auto;
    margin-bottom: 60px;
}

.point{
  width: 100%;
  padding: 0 2%;
  padding: 20px;
  box-sizing: border-box;
  background: white;
}

.point h3{
  margin-bottom: 32px;
  font-size: 1.8rem;
  line-height: 32px;
  text-align: justify;
}

.point h3 br{
  display: none;
}

.point p{
  font-size: 1.6rem;
  border-bottom: 1px dotted #707070;
  margin-bottom: 20px;
}
.point p:last-child{
  margin-bottom: 0;
}

.point img{
  margin-right: 10px;
}

.bottom_arrow{
  /* margin:0 auto; */
  text-align: center;
  margin:30px auto;
}

.secondary{
  margin:0 auto;
  text-align: center;
}

.secondary h2{
  font-size: 1.8rem;
}

.secondary h3{
  font-size: 2rem;
  margin-top: 60px;
}

.concept{
  margin-top: 60px;
  background-image: url(../img/top_04.png);
  background-repeat: no-repeat;
  /* background-attachment: fixed; */
  width: 100%;
  background-size: cover;
}

.concept_inner{
  max-width: 100%;
  margin:0 auto;
  padding: 60px 2%;
}

.concept p{
  padding: 10px 30px;
  box-sizing: border-box;
  text-align: center;
  font-size:1.6rem;
  background: white;
  border-radius: 53px;
  font-weight: bold;
}

.profile{
  margin:60px auto;
}

.profile h2{
  font-size: 2rem;
  margin-bottom: 60px;
  text-align: center;
}

.profile_inner{
  display: block;
  justify-content: space-between;
  max-width: 100%;
  padding: 0 2%;
  box-sizing: border-box;
  margin:0 auto;
}

.left{
  margin-right: 0;
  line-height: 35px;
  font-weight: bold;
}

.right {
  width: 100%;
  margin-top: 30px;
}
.right img{
  max-width: 100%;
  width: 100%;
}

.participation a{
  border-radius: 37px;
  padding: 22px 50px;
  border:1px solid #085148;
  color: #085148;
  display: block;
  max-width: 90%;
  box-sizing: border-box;
  font-size: 1.6rem;
  text-align: center;
  margin:0 auto;
  margin-top:60px;
}

.participation a:hover{
  background: #085148;
  color: white;
  transition: 0.45s;
}

.circle_container{
  background: #f5f5f5;
  padding: 60px 0;
  box-sizing: border-box;
  margin:0 auto;
  margin:60px auto;
}

.circle_container h2{
    font-size: 2rem;
  margin-bottom: 30px;
  text-align: center;
}

.circle_container h3{
    font-size: 1.6rem;
    margin-bottom: 60px;
    text-align: center;
}

.circle_inner{
  max-width: 100%;
  padding: 0 2%;
  margin:0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.circle_wraps p{
  font-size: 1.3rem;
  text-align: center;
  font-weight: bold;
  margin: 15px 0;
}

.circle{
  width: 230px;
  height: 230px;
  color: white;
  border-radius: 50%;
  position: relative;
  margin-bottom: 16px;
  text-align: center;
  margin:0 auto;
  margin:0 5px;
}

.in{
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  text-align: center;
}

.lightgreen{
  background: #0FBEA6;
}

.mosgreen{
  background: #1E9D8C;
}

.deepgreen{
  background: #0E7A6C;
}

.darkgreen{
  background: #085148;
}

.circle p{
  background: white;
  padding: 3px 20px;
  color: black;
  border-radius: 15px;
  box-sizing: border-box;
  margin-bottom: 10px;
}

.circle strong{
  font-size: 2.6rem;
}

.activities{
  max-width: 90%;
  margin:0 auto;
  margin-top: 60px;
}

.activities table{
  text-align: left;
  display: table;
  margin:0 auto;
  background: white;
  font-size: 14px;
}

.activities table th{
  background: white;
  text-align: left;
  display: table-cell;
  vertical-align: middle;
  padding: 10px;
  border: 1px solid #ddd;
  background: #0FBEA6;
  color: white;
  font-weight: normal;
  white-space: nowrap;

}
.activities table td{
  background: white;
  text-align: left;
  display: table-cell;
  vertical-align: middle;
  padding: 10px;
  border: 1px solid #ddd;
  font-weight: normal;
}
.activities a{
  display: inline-block;
  text-decoration: underline;
  font-weight: normal;
  color: #0FBEA6;
}


.step{
  margin-top: 60px;
  margin-right: 0;
}

.step li{
  background: #f5f5f5;
  padding: 21px 5px;
  width: 100%;
  font-size: 1.6rem;
  text-align: center;
  box-sizing: border-box;
  font-weight: bold;
margin-left: 0;
}

.step li img{
  display: block;
  margin:20px auto;
}

.bg_white{
  background: white !important;
}

.case{
  margin: 0 auto;
  margin-top:60px;
  align-self: flex-start;
  position: relative;
}

.case_number{
  position: absolute;
  top: -48px;
  left: 10px;
  background: #f5f5f5;
  border-radius: 50%;
  width: 116px;
  height: 116px;
  display: flex;
}

.case_number{
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  font-weight: bold;
  color: #085148;
}

.case_image_text{
  background: #0E7A6C;
  color: white;
  width: 100%;
}

.case_image_text{
  width: 100%;
}

.case_image_text img{
  width: 100%;
  max-width: 100%;
}

.case_only_text{
  position: relative;
  min-height: 310px;
}

.case_image_text p{
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  font-size: 3rem;
  font-weight: bold;
  line-height: 48px;
  white-space: nowrap;
}

.ceo_message{
  align-self: flex-start;
  text-align: left;
  margin-right: 0;
  margin-bottom: 30px;

}

.ceo_message h2{
  text-align: left;
  margin-top: 0;
  margin-bottom: 30px;
}

.ceo_message p{
  line-height: 35px;
  font-size: 1.6rem;
  font-weight: bold;
  text-align: justify;
}

.ceo_message p br{
  display: none;
}

.ceoimage img{
  width: 100%
}

small{
  background: black;
  text-align: center;
  padding: 15px;
  display: block;
  color: white;
  margin-top: 60px;
  font-weight: bold;
  font-size: 12px;
}

.reverse{
  display: flex;
  flex-wrap: wrap;
  flex-direction: column-reverse;
}
}


.form{
  margin:0 auto;
  max-width: 800px;
  margin-top: 100px;
  background: #f5f5f5;
  padding: 20px;
  box-sizing: border-box;
}

.form iframe{
  width: 100%;
  height: 100%;
  overflow: hidden;
}