@charset "utf-8";

.top-hx {
    line-height: 1.4;
    color: #3e3a39;
    font-weight: bold;
    margin-bottom: 30px;
}
.top-hx .en {
    display: block;
    font-size: 20px;
    font-style: italic;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
}
.top-hx .ja {
    display: block;
    font-size: 25px;
}

/*===== #faq =====*/
#faq {
  padding: 60px 0;
}
#faq .top-hx {
  text-align: center;
}
#faq .qa-list dl {
  margin-bottom: 16px;
}
#faq .qa-list dl dt {
  position: relative;
  background-color: #ffffff;
  border-top: 1px solid #e2e2e2;
  border-bottom: 1px solid #e2e2e2;
  padding: 15px 42px 15px 2%;
  line-height: 1.4;
  cursor: pointer;
  font-size: 17px;
  font-weight: bold;
}
#faq .qa-list dl dt::after {
  content: "";
  border-right: 2px solid #c6000b;
  border-bottom: 2px solid #c6000b;
  width: 8px;
  height: 8px;
  position: absolute;
  top: 40%;
  right: 18px;
  transform: rotate(45deg);
  transition: all .2s;
}
#faq .qa-list dl.open dt::after {
  transform: rotate(225deg);
  top: 40%;
}
#faq .qa-list dl dt span {
  background: url(../img/common/icon-q.png) no-repeat left top;
  background-size: 25px;
  display: block;
  padding: 5px 0 5px 50px;
}
#faq .qa-list dl dd {
  display: none;
  padding: 15px 42px 15px 2%;
  line-height: 1.8;
  position: relative;
  box-sizing: border-box;
  background-color: #fff4f5;
}
#faq .qa-list dl dd span {
  background: url(../img/common/icon-a.png) no-repeat left top;
  background-size: 25px;
  display: block;
  padding: 5px 0 5px 50px;
}

/*===== #strength =====*/
#strength {
    padding: 60px 0;
}
#strength .box {
  margin-top: 40px;
}
#strength .box .img {
  float: right;
  width: 38%;
}
#strength .box .text-box {
  float: left;
  width: 58%;
}
#strength .box .text-box h3 {
  line-height: 1.8;
  margin-bottom: 20px;
}
#strength .box .text-box h3 .icon {
  color: #c6000b;
  font-weight: bold;
}
#strength .box .text-box h3 .hx {
  font-size: 20px;
  font-weight: bold;
}
#strength video {
  width: 100%;
  aspect-ratio: 16 / 9;
}

/*===== #top-mv =====*/
#top-mv {
  line-height: 0;
}

/*===== #visual =====*/
#visual .box {
    width: 100%;
    height: auto;
    margin: 0 auto;
    line-height: 0;
}
#visual .box .pc-img {
}
#visual .box .sp-img {
    display: none;
}

/*===== #covid =====*/
#covid {
    padding: 100px 0 60px;
    background-color: #3e3a39;
}
#covid .covid-box {
    background-color: #c6000b;
    border-radius: 10px;
    padding: 0px 4% 10px;
}
#covid .covid-box h2 {
    font-size: 50px;
    font-weight: bold;
    text-align: center;
    transform: translateY(-52%);
}
#covid .covid-box h2 span {
    display: inline-block;
    color: #fff;
    background: url(../img/common/icon01.png) no-repeat left 16px;
    background-size: 48px;
    padding: 12px 0 12px 60px;
}
#covid .covid-box ul {
}
#covid .covid-box ul li {
    width: calc(94% / 4);
    float: left;
    margin-right: 2%;
    margin-bottom: 2%;
}
#covid .covid-box ul li.n4 {
    margin-right: 0;
}

/*===== #which =====*/
#which {
    padding: 60px 0;
}
#which .top-hx {
    text-align: center;
}
#which .which-box {
    color: #fff;
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    flex-wrap: wrap;
}
#which .which-box .box {
    width: 50%;
}
#which .which-box .type01 {
    background-color: #3e3a39;
}
#which .which-box .type02 {
    background-color: #c6000b;
}
#which .which-box .box .img {
}
#which .which-box .box .text-box {
    line-height: 1.4;
    font-weight: bold;
    padding: 15px 4% 10px;
}
#which .which-box .box .text-box .name {
    background-color: #fff;
    border-radius: 10px;
    color: #3e3a39;
    text-align: center;
    font-size: 22px;
    padding: 7px 2%;
    margin-bottom: 15px;
}
#which .which-box  .type02 .text-box .name {
    color: #c6000b;
}
#which .which-box .box .text-box .info {
    text-align: center;
    font-size: 18px;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
    padding: 5px;
    margin-bottom: 15px;
}
#which .which-box .box .text-box .info span {
    font-size: 23px;
}
#which .which-box .box .text-box ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
}
#which .which-box .box .text-box ul li {
    font-size: 14px;
    background: url(../img/common/icon02.png) no-repeat left center;
    background-size: 20px;
    padding: 2px 8px 2px 25px;
    margin-bottom: 5px;
}

#which .which-link{
  display: flex;
  justify-content: space-around;
  margin: 30px 0 60px;
}
#which .which-link li{
  width: 48%;
}
#which .which-link li a{
  display: block;
  border-radius: 10px;
  color:#fff;
  font-weight: bold;
  text-align: center;
  background: #3e3a39;
  padding: 4% 0;
  font-size: 18px;
  text-decoration: none;
  position: relative;
}
#which .which-link li a::after{
  content: '';
  width: 7px;
  height: 7px;
  border: 0;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  transform: rotate(135deg);
  position: absolute;
  top: 50%;
  right: 20px;
  margin-top: -7px;
}
#which .which-link li a.link02{
  background: #c6000b;
}

/*===== #ems-menu =====*/
.sub-hx{
  font-size: 25px;
  font-weight: bold;
  position: relative;
  padding-left: 35px;
}
.sub-hx::before{
  content: "";
  background-color: #c6000b;
  display: block;
  position: absolute;
  height: 3px;
  width: 30px;
  top: 12px;
  left: 0;
}
#ems-menu .menu-link01{
  display: block;
  border-radius: 10px;
  color:#fff;
  font-weight: bold;
  text-align: center;
  background: #c6000b;
  padding: 3% 0;
  font-size: 18px;
  text-decoration: none;
  margin: 30px auto 60px;
  width: 50%;
}

/*===== #ems-training =====*/
#ems-training .training-table{
  width: 100%;
  border: #838383 2px solid;
}
#ems-training .training-table tr{
  font-size: 20px;
  text-align: center;
  line-height: 1.4;
}
#ems-training .training-table tr th{
  background: #fff;
  border: #838383 2px solid;
  color: #000;
  font-weight: bold;
  width: 9%;
  vertical-align: middle;
  padding: 20px 0;
}
#ems-training .training-table .gray th{
  background: #838383;
  color: #fff;
}
#ems-training .training-table .gray th:first-child{
  background: #fff;
}
#ems-training .training-table .gray02 th{
  background: #e8e8e8;
}
#ems-training .training-table tr td{
  border: #838383 2px solid;
  padding: 30px 0;
  background: #fbf6f0;
  vertical-align: middle;
}
#ems-training .training-table tr td:first-child{
  background: #000;
  border-bottom: #838383 2px solid;
  color: #fff;
  font-weight: bold;
  width: 15%;
}
#ems-training .training-table tr.red{
  border: #c6000b 3px solid;
  color: #c6000b;
}
#ems-training .training-table tr.red td{
  border: #c6000b 2px solid;
  background: #fcff00;
}
#ems-training .training-table tr.red td:first-child{
  background: #c6000b;
  color: #fff;
}
#ems-training .menu-link02{
  display: block;
  border-radius: 10px;
  color:#fff;
  font-weight: bold;
  text-align: center;
  background: #3e3a39;
  padding: 3% 0;
  font-size: 18px;
  text-decoration: none;
  margin: 30px auto 60px;
  width: 50%;
}

/*===== #features =====*/
#features {
    padding: 60px 0;
    background: #fbf6f0 url(../img/common/bg.png) no-repeat 110% 88%;
}
#features .features-box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
#features .features-box .box {
    width: calc(96% / 3);
    position: relative;
    z-index: 1;
    margin-bottom: 25px;
}
#features .features-box .box .img {
    width: 95%;
    line-height: 0;
    border-radius: 10px;
    overflow: hidden;
}
#features .features-box .box .features-box_num {
  font-size: 60px;
  color: #c6000b;
  font-style: italic;
  font-family: 'Noto Serif JP';
  font-weight: 700;
  position: relative;
  bottom: -0.3em;
}
#features .features-box .box .text-box {
    width: 95%;
    background-color: #3e3a39;
    border-radius: 10px;
    color: #fff;
    position: relative;
    z-index: 0;
    padding: 5%;
    margin-top: -25px;
    margin-left: auto;
}
#features .features-box .box .text-box h3 {
    line-height: 1.4;
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 15px;
    text-align: center;
}
#features .features-box .box .text-box .text {
    margin-bottom: 0;
}

/*===== #movie =====*/
#movie {
    padding: 80px 0;
}
#movie .movie-box iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
}

/*===== #why =====*/
#why {
    padding: 60px 0;
    background: url(../img/index/why-bg.jpg) no-repeat center center;
    background-size: cover;
}
#why .top-hx {
    color: #fff;
    text-align: center;
}
#why ul.why-img {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    background: url(../img/index/why-line.png) no-repeat center 8px;
    background-size: 20%;
    padding-bottom: 45px;
    margin-bottom: 15px;
}
#why ul.why-img li {
    width: 47%;
}
#why .text {
    color: #fff;
    text-align: center;
    font-size: 22px;
    font-weight: bold;
    margin-bottom: 25px;
}
#why .img {
    margin-bottom: 60px;
}
#why ul.list-img {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
#why ul.list-img li {
    width: 25%;
    line-height: 0;
}

/*===== #ems =====*/
#ems {
    padding: 60px 0;
    background: #fbf6f0 url(../img/common/bg.png) no-repeat -10% 110%;
}
#ems .ems-box {
    background: #fff url(../img/index/ems-bg.png) no-repeat right bottom;
    background-size: 55%;
    box-shadow: 0 0 4px #b5b3b3;
    border-radius: 10px;
    padding: 60px 6%;
    margin-bottom: 30px;
}
#ems .ems-box .text-box {
    width: 50%;
}
#ems .ems-box .text-box .text {
}
#ems .memo-box {
    background-color: #fff;
    box-shadow: 0 0 4px #b5b3b3;
    border-radius: 10px;
    padding: 4%;
}
#ems .memo-box h3 {
    line-height: 1.4;
    text-align: center;
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 20px;
}
#ems .memo-box .box {
    border: 1px solid #111;
    border-radius: 10px;
    padding: 2%;
}
#ems .memo-box .box ul {
    line-height: 1.4;
}
#ems .memo-box .box ul li {
    background: url(../img/common/icon03.png) no-repeat left top;
    background-size: 20px;
    padding: 0 0 1px 27px;
    margin-bottom: 3px;
}

/*===== #top-voice =====*/
#top-voice {
    padding: 60px 0;
}
#top-voice .top-hx {
    text-align: center;
}
#top-voice .list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-bottom: 30px;
}
#top-voice .list .box {
    width: calc(96% / 3);
    background-color: #fbf6f0;
    border-radius: 10px;
    overflow: hidden;
    padding-bottom: 20px;
}
#top-voice .list .box .img {
    margin-bottom: 15px;
}
#top-voice .list .box .ttl {
    color: #c6000b;
    line-height: 1.4;
    font-size: 17px;
    font-weight: bold;
    padding: 0 4%;
    margin-bottom: 7px;
}
#top-voice .list .box .text p {
    font-size: 15px;
    padding: 0 4%;
    margin-bottom: 0;
    line-height: 1.8;
}
#top-voice .link {
}
#top-voice .link a {
    width: 250px;
    height: 45px;
    background-color: #c6000b;
    border-radius: 10px;
    line-height: 1.4;
    text-decoration: none;
    font-weight: bold;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
}

/*===== #flow =====*/
#flow {
    padding: 60px 0;
    background: url(../img/index/flow-bg.jpg) no-repeat center center;
    background-size: cover;
}
#flow .top-hx {
    color: #fff;
    text-align: center;
}
#flow .flow-list {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    color: #fff;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
#flow .flow-list .box {
    width: calc(96% / 3);
    margin-bottom: 20px;
    border: 1px solid #fff;
    border-radius: 10px;
    padding: 3%;
}
#flow .flow-list .box h3 {
    font-size: 20px;
    font-style: italic;
    font-weight: bold;
    text-align: center;
    line-height: 1.4;
    letter-spacing: 0.05em;
    margin-bottom: 20px;
}
#flow .flow-list .box .img {
    width: 100%;
    max-width: 110px;
    margin: 0 auto 20px;
}
#flow .flow-list .box .hx {
    line-height: 1.4;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 10px;
}
#flow .flow-list .box .text {
    margin-bottom: 0;
}

/*===== #price =====*/
#price {
    padding: 60px 0;
}
#price .price-box {
}
#price .price-box h2 {
    width: 40%;
    float: left;
}
#price .price-box .img {
    width: 55%;
    float: right;
    overflow: hidden;
    border-radius: 10px;
}
#price .price-box .text-box {
    width: 40%;
    float: left;
}
#price .price-box .text-box .text {
}
#price .price-box .text-box .link {
    margin-top: 35px;
}
#price .price-box .text-box .link a {
    display: block;
    background-color: #c6000b;
    border-radius: 10px;
    line-height: 1.4;
    text-decoration: none;
    font-weight: bold;
    color: #fff;
    text-align: center;
    padding: 15px 3%;
}

/*===== #studio =====*/
#studio {
    padding: 60px 0;
    background: #fbf6f0 url(../img/common/bg.png) no-repeat 110% 88%;
}
#studio .top-hx {
    text-align: center;
}
#studio .list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-bottom: 35px;
}
#studio .list .box {
  width: 32%;
    margin-bottom: 30px;
}
#studio .list .box.n3 {
    margin-right: 0;
}
#studio .list .box a {
    text-decoration: none;
}
#studio .list .box .img {
    overflow: hidden;
    border-radius: 10px;
    margin-bottom: 10px;
}
#studio .list .box .name {
    line-height: 1.4;
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 5px;
}
#studio .list .box .adrs {
    line-height: 1.4;
    margin-bottom: 3px;
}
#studio .list .box .tel {
    line-height: 1.4;
}
#studio .link {
}
#studio .link a {
    width: 250px;
    height: 45px;
    background-color: #c6000b;
    border-radius: 10px;
    line-height: 1.4;
    text-decoration: none;
    font-weight: bold;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
}

/*===== .ems-table =====*/
.ems-table{
  border: #838383 2px solid;
  width: 100%;
}
.ems-table tr{
  font-size: 20px;
  text-align: center;
}
.ems-table tr th{
  background: #fff;
  border: #838383 2px solid;
  color: #000;
  font-weight: bold;
  padding: 40px 0;
  width: 13%;
}
.ems-table tr td{
  border: #838383 2px solid;
  padding: 40px 0;
  background: #fbf6f0;
}
.ems-table tr td:first-child{
  background: #000;
  border-bottom: #838383 2px solid;
  color: #fff;
  font-weight: bold;
  width: 19%;
}
.ems-table tr.red{
  border: #c6000b 3px solid;
  color: #c6000b;
}
.ems-table tr.red td{
  border: #c6000b 2px solid;
  background: #fcff00;
}
.ems-table tr.red td:first-child{
  background: #c6000b;
  color: #fff;
}

/*===============================================
    ■tablet 画面の横幅が1000pxまで
===============================================*/
@media screen and (max-width: 1000px) {
/*-------- #xxx --------*/
}

/*===============================================
    ■tablet 画面の横幅が750pxまで
===============================================*/
@media screen and (max-width: 750px) {
/*-------- #visual --------*/
  #visual .box .pc-img {
    display: none;
  }
  #visual .box .sp-img {
    display: block;
  }
/*-------- #covid --------*/
  #covid {
    padding: 60px 0 40px;
  }
  #covid .covid-box h2 {
    font-size: 30px;
  }
  #covid .covid-box h2 span {
    background: url(../img/common/icon01.png) no-repeat left center;
    background-size: 48px;
  }
/*-------- #which --------*/
  #which .which-box {
    border-radius: 0;
    overflow: visible;
  }
  #which .which-box .box {
    width: 100%;
    max-width: 550px;
    margin: 0 auto 25px;
    overflow: hidden;
    border-radius: 10px;
  }
  #which .which-box .type02 {
    margin: 0 auto 0;
  }
  #which .which-link{
    display: none;
  }
  #which a.link01,
  #which a.link02{
    display: block;
    border-radius: 10px;
    color:#fff;
    font-weight: bold;
    text-align: center;
    background: #3e3a39;
    padding: 4% 0;
    font-size: 18px;
    text-decoration: none;
    position: relative;
    width: 100%;
    margin-bottom: 60px;
  }
  #which a.link01::after,
  #which a.link02::after{
    content: '';
    width: 7px;
    height: 7px;
    border: 0;
    border-top: solid 2px #fff;
    border-right: solid 2px #fff;
    transform: rotate(135deg);
    position: absolute;
    top: 50%;
    right: 20px;
    margin-top: -7px;
  }
  #which a.link02{
    background: #c6000b;
    margin-top: 30px;
  }
/*-------- #features --------*/
  #features .features-box .box {
    width: 48%;
  }
/*-------- #ems --------*/
  #ems .ems-box .text-box {
    width: 75%;
  }
/*-------- #top-voice --------*/
  #top-voice .list .box {
    width: 48%;
    margin-bottom: 25px;
  }
/*-------- #flow --------*/
  #flow .flow-list .box {
    width: 48%;
  }
/*-------- #price --------*/
  #price .price-box h2 {
    width: 100%;
    float: none;
    text-align: center;
  }
  #price .price-box .img {
    width: 100%;
    float: none;
    max-width: 579px;
    margin: 0 auto 20px;
  }
  #price .price-box .text-box {
    width: 100%;
    float: none;
  }
  #price .price-box .text-box .link a {
    width: 250px;
    margin: 0 auto;
  }
/*-------- #studio --------*/
  #studio .list {
    justify-content: space-between;
    margin-bottom: 0;
  }
  #studio .list .box {
    width: 48%;
    margin-right: 0;
  }

  /*===== .ems-table =====*/
.ems-table{
  border: #838383 1px solid;
}
.ems-table tr{
  font-size: 14px;
}
.ems-table tr th{
  border: #838383 1px solid;
  font-weight: normal;
  padding: 20px 0;
  width: 10%;
  vertical-align: middle;
}
.ems-table tr td{
  border: #838383 1px solid;
  padding: 20px 0;
  vertical-align: middle;
}
.ems-table tr td:first-child{
  border-bottom: #838383 1px solid;
  font-weight: normal;
  width: 16%;
  vertical-align: middle;
}
.ems-table tr.red{
  border: #c6000b 2px solid;
}
.ems-table tr.red td{
  border: #c6000b 1px solid;
}

/*===== #ems-menu =====*/
.sub-hx{
  font-size: 18px;
  padding-left: 25px;
}
.sub-hx::before{
  content: "";
  background-color: #c6000b;
  display: block;
  position: absolute;
  height: 2px;
  width: 20px;
  top: 10px;
  left: 0;
}
#ems-menu .menu-link01{
  font-size: 15px;
  width: 100%;
}

/*===== #ems-training =====*/
#ems-training .training-table{
  border: #838383 1px solid;
}
#ems-training .training-table tr{
  font-size: 14px;
}
#ems-training .training-table tr th{
  border: #838383 1px solid;
  font-weight: normal;
  padding: 10px 0;
}
#ems-training .training-table tr td{
  border: #838383 1px solid;
  padding: 20px 0;
}
#ems-training .training-table tr td:first-child{
  border-bottom: #838383 1px solid;
  font-weight: normal;
  width: 13%;
}
#ems-training .training-table tr.red{
  border: #c6000b 2px solid;
}
#ems-training .training-table tr.red td{
  border: #c6000b 1px solid;
}
#ems-training .menu-link02{
  font-size: 15px;
  width: 100%;
}

}

/*===============================================
    ■smart 画面の横幅が480pxまで
===============================================*/
@media screen and (max-width: 480px) {
/*-------- #covid --------*/
  #covid .covid-box h2 {
    font-size: 25px;
  }
  #covid .covid-box ul li {
    width: 48%;
    float: left;
    margin-right: 0;
  }
  #covid .covid-box ul li.n4 {
    margin-right: 0;
  }
  #covid .covid-box ul li.n2 {
    float: right;
  }
/*-------- #which --------*/
  #which {
    padding: 30px 0;
  }
  #which .which-box .box .text-box .info {
    font-size: 15px;
  }
/*-------- #features --------*/
  #features {
    padding: 30px 0;
  }
  #features .features-box .box {
    width: 100%;
  }
/*-------- #movie --------*/
  #movie {
    padding: 30px 0;
  }
/*-------- #why --------*/
  #why {
    padding: 30px 0 0;
  }
  #why ul.why-img {
    background: none;
    background-size: auto;
    padding-bottom: 0;
    margin-bottom: 0;
  }
  #why ul.why-img li {
    width: 100%;
    margin-bottom: 15px;
  }
  #why .text {
    font-size: 18px;
    margin-bottom: 15px;
  }
  #why ul.list-img li {
    width: 50%;
  }
/*-------- #ems --------*/
  #ems {
    padding: 30px 0;
  }
  #ems .ems-box {
    padding: 30px 4%;
    margin-bottom: 20px;
  }
  #ems .ems-box .text-box {
    width: 100%;
    padding-bottom: 25%;
  }
  #ems .memo-box .box {
    padding: 4%;
  }
/*-------- #top-voice --------*/
  #top-voice {
    padding: 30px 0;
  }
  #top-voice .list .box {
    width: 100%;
  }
/*-------- #flow --------*/
  #flow {
    padding: 30px 0;
  }
  #flow .flow-list .box {
    width: 100%;
    padding: 5%;
  }
/*-------- #price --------*/
  #price {
    padding: 30px 0;
  }
/*-------- #studio --------*/
  #studio {
    padding: 30px 0;
  }
  #studio .list .box {
    width: 100%;
  }
/*===== #strength =====*/
  #strength {
    padding: 30px 0;
  }
  #strength .box {
    margin-top: 20px;
  }
  #strength .box .img {
    float: none;
    width: 100%;
    margin-bottom: 20px;
  }
  #strength .box .text-box {
    float: none;
    width: 100%;
  }
  #strength .box .text-box h3 {
    margin-bottom: 10px;
  }
  #strength .box .text-box h3 .hx {
    font-size: 17px;
    font-weight: bold;
  }
/*===== #faq =====*/
  #faq {
    padding: 30px 0;
  }
}