@font-face {
  font-family: "gensenmaru";
  src: url("../font/gensenmaru.woff2") format("woff2"), url("../font/gensenmaru.woff") format("woff");
}

@keyframes arrow {
  0% {
    transform: translate(-50%, 0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: translate(-50%, 20px);
    opacity: 0;
  }
}

#mv {
  padding: 15.3em 0 10.8em;
  background: url(../img/top/fv-bg.jpg) no-repeat top -40px left 15%/cover;
}

#mv .content {
  margin: 0 10.1% 0 auto;
  width: 48.2%;
}

@media screen and (max-width: 600px) {
  #mv .content {
    margin: 0 auto;
    width: 88.2%;
  }
}

#mv .content figure:first-child {
  margin-bottom: 2.125em;
}

@media screen and (max-width: 600px) {
  #mv .content figure:last-child {
    display: block;
    margin: 0 auto;
    width: 97%;
  }
}

#about {
  padding: 2.5em 0 5.5em;
}

@media screen and (max-width: 600px) {
  #about {
    padding: 0 0 5em;
  }
}

#about .inner {
  margin: 0 auto;
  width: 65%;
  min-width: 834px;
  max-width: 1100px;
}

@media screen and (max-width: 960px) {
  #about .inner {
    min-width: auto;
    width: calc(100% - 30px);
  }
}

#about .inner h2 {
  margin-bottom: 3em;
}

@media screen and (max-width: 600px) {
  #about .inner h2 {
    margin-bottom: .5em;
  }
}

#about .inner h2 span {
  display: inline-block;
  font-size: 1.5625em;
  color: #FF788B;
  line-height: 1.7;
  font-family: maru-maru-gothic-asr-stdn,sans-serif;
  font-weight: 400;
  font-style: normal;
  position: relative;
}

@media screen and (max-width: 600px) {
  #about .inner h2 span {
    font-size: 1.4em;
  }
}

#about .inner h2 span::before, #about .inner h2 span::after {
  display: block;
  position: absolute;
  bottom: 10px;
  width: 2px;
  height: 55%;
  background: #FF788B;
  content: "";
}

#about .inner h2 span::before {
  left: -20px;
  transform: rotate(-15deg);
}

#about .inner h2 span::after {
  right: -20px;
  transform: rotate(15deg);
}

#about .inner .point {
  margin-bottom: 3em;
}

@media screen and (max-width: 600px) {
  #about .inner .point {
    margin-bottom: 2em;
  }
}

#about .inner h3 {
  font-size: 1.5625em;
  color: #FF788B;
}

@media screen and (max-width: 600px) {
  #about .inner h3 {
    font-size: 1.4em;
    text-align: center;
  }
}

#about .inner > h3 {
  margin-bottom: 2.6em;
}

@media screen and (max-width: 600px) {
  #about .inner > h3 {
    margin-bottom: 1.3em;
  }
}

#about .inner .content {
  margin: 0 0 4.7em;
}

@media screen and (max-width: 600px) {
  #about .inner .content {
    flex-direction: column-reverse;
    margin-bottom: 3em;
  }
}

#about .inner .content .txt {
  flex: 1;
  margin-right: 6%;
}

@media screen and (max-width: 600px) {
  #about .inner .content .txt {
    margin: 0;
  }
}

#about .inner .content .txt p {
  margin: 1.25em 0 0;
  font-size: 1.0625em;
  line-height: 2;
}

@media screen and (max-width: 600px) {
  #about .inner .content .txt p {
    margin-top: .75em;
  }
}

#about .inner .content .txt .line-link {
  display: block;
  margin-top: 3.625em;
}

#about .inner .content figure {
  width: 43%;
}

@media screen and (max-width: 600px) {
  #about .inner .content figure {
    width: 60%;
    margin: 0 auto 1em;
  }
}

#about .inner .content figure img {
  width: 100%;
}

#about .inner .attention {
  margin: 3.5em auto 0;
  padding: 1em;
  width: 79%;
  min-width: 634px;
  background: #E9EEDF;
}

@media screen and (max-width: 960px) {
  #about .inner .attention {
    min-width: auto;
    width: 100%;
  }
}

@media screen and (max-width: 600px) {
  #about .inner .attention {
    margin-top: 2em;
  }
}

#about .inner .attention p:first-child {
  margin-bottom: 1em;
  font-size: 1.5625em;
}

@media screen and (max-width: 600px) {
  #about .inner .attention p:first-child {
    font-size: 1.4em;
  }
}

#about .inner .attention p:first-child span {
  display: inline-block;
  position: relative;
}

#about .inner .attention p:first-child span::before {
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  transform: translate(-100%, 20%);
  width: 68px;
  height: 97px;
  background: url(../img/top/devil.png) no-repeat center/contain;
  content: "";
}

@media screen and (max-width: 600px) {
  #about .inner .attention p:first-child span::before {
    width: 35px;
    height: 51px;
  }
}

#about .inner .attention p:nth-child(2) {
  line-height: 1.76;
}

#merit {
  padding: 3.5em 0 160px;
  position: relative;
  background-color: rgba(233, 238, 223, 0.6);
  background-image: repeating-linear-gradient(60deg, #fff, #fff 13px, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0) 26px);
}

@media screen and (max-width: 600px) {
  #merit {
    padding-bottom: 40px;
  }
}

#merit .inner {
  margin: 0 auto;
  width: 62%;
  min-width: 796px;
  max-width: 1100px;
  position: relative;
  z-index: 3;
}

@media screen and (max-width: 960px) {
  #merit .inner {
    width: calc(100% - 30px);
    min-width: auto;
  }
}

#merit h2 {
  margin-bottom: 3em;
  font-size: 1.5625em;
  color: #FF788B;
  line-height: 1.7;
  font-family: maru-maru-gothic-asr-stdn,sans-serif;
  font-weight: 400;
  font-style: normal;
  position: relative;
}

@media screen and (max-width: 600px) {
  #merit h2 {
    margin-bottom: .5em;
    font-size: 1.3em;
  }
}

#merit .merit-list {
  margin-bottom: 5.5em;
}

@media screen and (max-width: 600px) {
  #merit .merit-list {
    flex-direction: column;
    align-items: center;
  }
}

#merit .merit-list li {
  flex: 1;
  display: flex;
  flex-direction: column;
}

@media screen and (max-width: 600px) {
  #merit .merit-list li {
    margin-bottom: 2em !important;
    width: 83%;
  }
}

#merit .merit-list li:not(:first-child) {
  margin-left: 4.5%;
}

@media screen and (max-width: 600px) {
  #merit .merit-list li:not(:first-child) {
    margin: 0;
  }
}

#merit .merit-list li:nth-child(3) h3 {
  margin-right: 18.3%;
}

#merit .merit-list li figure {
  width: 100%;
}

#merit .merit-list li figure img {
  width: 100%;
}

#merit .merit-list li .memo {
  flex: 1;
  padding: .75em .75em 2.625em;
  margin-top: 2em;
  background: #fff;
}

#merit .merit-list li .memo h3 {
  margin-bottom: 1.25em;
}

#merit .merit-list li .memo h3 img {
  width: 100%;
}

#merit .merit-list li .memo p {
  line-height: 1.6;
}

#merit .lead {
  margin-bottom: 1.25em;
}

#merit .lead span {
  display: inline-block;
  padding-left: 43px;
  padding-top: 66px;
  font-size: 1.5em;
  color: #FF788B;
  position: relative;
}

@media screen and (max-width: 600px) {
  #merit .lead span {
    padding-left: 0;
    padding-top: 45px;
    line-height: 1.3;
  }
}

#merit .lead span img {
  position: absolute;
  top: 0;
  left: 0;
  width: 433px;
  height: 61px;
}

@media screen and (max-width: 600px) {
  #merit .lead span img {
    width: 343px;
    height: 48px;
  }
}

#merit .bnr img {
  width: 100%;
}

#merit .bnr-sp {
  position: relative;
  z-index: 4;
}

#merit #svg-bg {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

#point {
  padding-bottom: 4em;
  background: #FF788B;
  color: #fff;
}

#point .inner {
  margin: 0 auto;
  width: 62%;
  min-width: 796px;
  max-width: 1100px;
  position: relative;
  z-index: 3;
}

@media screen and (max-width: 960px) {
  #point .inner {
    width: calc(100% - 10px);
    min-width: auto;
  }
}

#point ul {
  margin-top: 7.5em;
}

#point ul li {
  margin-right: 15.6%;
  margin-bottom: 6em;
  align-items: center;
}

@media screen and (max-width: 1200px) {
  #point ul li {
    margin-right: 15px;
  }
}

@media screen and (max-width: 600px) {
  #point ul li {
    flex-direction: column !important;
    width: 83%;
    margin: 0 auto 4em !important;
  }
}

#point ul li h3 {
  padding-top: 2em;
  margin-bottom: 2em;
  font-size: 2em;
  font-family: maru-maru-gothic-asr-stdn,sans-serif;
  font-weight: 400;
  font-style: normal;
  position: relative;
}

@media screen and (max-width: 600px) {
  #point ul li h3 {
    font-size: 1.76em;
    margin-bottom: 1em;
  }
}

#point ul li h3::before {
  display: block;
  position: absolute;
  left: 50%;
  top: 0;
  transform: translate(-50%, 120%);
  width: 155px;
  height: 24px;
  background: url(../img/top/point-deco.svg) no-repeat center/contain;
  content: "";
}

@media screen and (max-width: 600px) {
  #point ul li h3::before {
    transform: translate(-50%, 80%);
  }
}

#point ul li h3 span::before, #point ul li h3 span::after {
  display: block;
  position: absolute;
  bottom: 0;
  width: 30px;
  height: 75%;
  content: "";
}

@media screen and (max-width: 600px) {
  #point ul li h3 span::before, #point ul li h3 span::after {
    width: 15px;
  }
}

#point ul li h3 span::before {
  left: 0;
  border: 4px solid #fff;
  border-right: none;
}

#point ul li h3 span::after {
  right: 0;
  border: 4px solid #fff;
  border-left: none;
}

#point ul li figure {
  width: 54.5%;
  margin-right: 5%;
}

@media screen and (max-width: 600px) {
  #point ul li figure {
    width: 100%;
    margin: 0;
  }
}

#point ul li figure img {
  width: 100%;
}

#point ul li .txt {
  flex: 1;
}

#point ul li .txt p {
  line-height: 2;
}

#point ul li:nth-child(even) {
  flex-direction: row-reverse;
  margin-left: 15.6%;
  margin-right: 0;
}

@media screen and (max-width: 1200px) {
  #point ul li:nth-child(even) {
    margin-left: 15px;
  }
}

#point ul li:nth-child(even) figure {
  margin-left: 5%;
  margin-right: 0;
}

#point .lead {
  margin: 0 auto 2em;
  font-size: 2em;
  letter-spacing: 0.05em;
  position: relative;
}

@media screen and (max-width: 600px) {
  #point .lead {
    font-size: 1.5em;
    line-height: 1.5;
  }
}

#point .lead > span {
  display: inline-block;
  padding-bottom: .5em;
  border-bottom: 3px solid #fff;
  position: relative;
}

#point .lead > span::after {
  display: block;
  position: absolute;
  bottom: -7px;
  left: 0;
  width: 100%;
  height: 1px;
  background: #fff;
  content: "";
}

#point .lead .marker {
  padding: .1em;
  background: #fff;
  color: #FF788B;
}

#point .lead::after {
  display: block;
  position: absolute;
  left: 50%;
  bottom: -1.5em;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 16px 9px 0 9px;
  border-color: #ffffff transparent transparent transparent;
  content: "";
  animation: arrow 1.5s infinite;
}

#flow {
  padding: 3.5em 0 2.5em;
}

@media screen and (max-width: 600px) {
  #flow {
    overflow: hidden;
  }
}

#flow .inner {
  margin: 0 auto;
  width: 74%;
  min-width: 952px;
  max-width: 1200px;
}

@media screen and (max-width: 960px) {
  #flow .inner {
    width: calc(100% - 30px);
    min-width: auto;
  }
}

#flow h2 {
  margin-bottom: 1.5em;
  font-size: 2em;
  line-height: 2;
}

#flow h2 span {
  margin-bottom: 1em;
}

#flow .flow {
  margin-bottom: 4em;
}

@media screen and (max-width: 600px) {
  #flow .flow {
    margin-left: 22%;
    width: 50%;
  }
}

@media screen and (max-width: 600px) {
  #flow .point {
    transform: translateX(-17%);
    width: 134vw;
  }
}

#introduction {
  padding: 76px 0 4.68em;
  background: url(../img/top/intro-bg.jpg) no-repeat center/cover;
  position: relative;
}

#introduction::before {
  display: block;
  position: absolute;
  left: 50%;
  top: 1em;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 16px 9px 0 9px;
  border-color: #ffffff transparent transparent transparent;
  content: "";
  animation: arrow 1.5s infinite;
}

#introduction h2 {
  color: #fff;
  font-family: maru-maru-gothic-asr-stdn,sans-serif;
  font-weight: 400;
  font-style: normal;
}

@media screen and (max-width: 600px) {
  #introduction h2 img {
    margin-bottom: .5em;
    width: 60%;
  }
}

#introduction h2 span {
  display: inline-block;
  position: relative;
  font-size: 2em;
}

@media screen and (max-width: 600px) {
  #introduction h2 span {
    font-size: 1.25em;
  }
}

#introduction h2 span::before {
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  transform: translate(-120%, 20%);
  width: 46px;
  height: 80px;
  background: url(../img/top/intro-deco.svg) no-repeat center/contain;
  content: "";
}

@media screen and (max-width: 600px) {
  #introduction h2 span::before {
    width: 23px;
    height: 40px;
  }
}

#introduction .inner {
  margin: 0 auto;
  width: 65%;
  min-width: 834px;
  max-width: 832px;
}

@media screen and (max-width: 960px) {
  #introduction .inner {
    min-width: auto;
    width: calc(100% - 30px);
  }
}

#introduction ul li {
  padding: 2em 1.4375em;
  margin: 3em 0;
  background: #fff;
  border-radius: 23px;
}

#introduction ul li h3 {
  margin: 0 0 .5em;
  font-size: 1.5625em;
  font-family: maru-maru-gothic-asr-stdn,sans-serif;
  font-weight: 400;
  font-style: normal;
  line-height: 1.7;
  position: relative;
}

#introduction ul li h3::before {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  transform: translate(-15%, -10%);
  width: 111px;
  height: 105px;
  background: url(../img/top/intro-deco2.png) no-repeat center/contain;
  content: "";
}

@media screen and (max-width: 600px) {
  #introduction ul li h3::before {
    left: 50%;
    transform: translate(-50%, -10%);
  }
}

@media screen and (max-width: 600px) {
  #introduction ul li div {
    flex-direction: column;
  }
}

#introduction ul li figure {
  width: 42.2%;
}

@media screen and (max-width: 600px) {
  #introduction ul li figure {
    width: 100%;
  }
}

#introduction ul li figure img {
  width: 100%;
}

#introduction ul li p {
  flex: 1;
  margin-left: 2.4%;
  line-height: 2;
  font-family: "gensenmaru";
}

#introduction .lead {
  font-size: 2em;
  color: #fff;
  line-height: 1.5;
  text-align: center;
  font-family: maru-maru-gothic-asr-stdn,sans-serif;
  font-weight: 400;
  font-style: normal;
}

@media screen and (max-width: 600px) {
  #introduction .lead {
    font-size: 1.53em;
  }
  #introduction .lead span {
    font-size: .8em;
  }
}

#check {
  padding: 4.68em 0 4.18em;
  background: url(../img/top/check-bg.png);
  position: relative;
}

#check::before {
  display: block;
  position: absolute;
  left: 50%;
  top: 3em;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 16px 9px 0 9px;
  border-color: #FF788B transparent transparent transparent;
  content: "";
  animation: arrow 1.5s infinite;
}

#check .inner {
  margin: 0 auto;
  width: 62.5%;
  min-width: 800px;
  max-width: 1100px;
}

@media screen and (max-width: 960px) {
  #check .inner {
    min-width: auto;
    width: calc(100% - 30px);
  }
}

#check h2 {
  margin-bottom: .5em;
  font-size: 2.5em;
  color: #FF788B;
  font-family: maru-maru-gothic-asr-stdn,sans-serif;
  font-weight: 400;
  font-style: normal;
  line-height: 1.7;
}

@media screen and (max-width: 600px) {
  #check h2 {
    font-size: 1.7em;
  }
}

@media screen and (max-width: 600px) {
  #check h2 img {
    width: 60%;
  }
}

#check figure {
  width: 100%;
}

#check figure img {
  width: 100%;
}

#contact {
  padding-bottom: 7.625em;
}

#contact h2 {
  padding: 2em 0;
  background: #D6E9C4;
  overflow: hidden;
}

@media screen and (max-width: 600px) {
  #contact h2 {
    padding-bottom: .5em;
  }
}

@media screen and (max-width: 600px) {
  #contact h2 img {
    width: 90%;
  }
}

#contact h2 > span {
  display: inline-block;
  margin-top: .8em;
  font-size: 2.6875em;
  color: #FF788B;
  font-weight: bold;
  font-family: "gensenmaru";
  position: relative;
}

#contact h2 > span::before, #contact h2 > span::after {
  display: block;
  position: absolute;
  content: "";
}

#contact h2 > span::before {
  left: 0;
  bottom: -1em;
  transform: translateX(-140%);
  width: 85px;
  height: 150px;
  background: url(../img/top/contnact-deco.png) no-repeat center/contain;
}

@media screen and (max-width: 600px) {
  #contact h2 > span::before {
    bottom: -0.3em;
    width: 52px;
    height: 93px;
  }
}

#contact h2 > span::after {
  right: 0;
  bottom: .3em;
  transform: translateX(200%);
  width: 52px;
  height: 40px;
  background: url(../img/top/contact-deco2.png) no-repeat center/contain;
}

@media screen and (max-width: 600px) {
  #contact h2 > span::after {
    top: 0;
    width: 26px;
    height: 20px;
  }
}

#contact .inner {
  margin: 0 auto;
  width: 50%;
  min-width: 700px;
  max-width: 1100px;
}

@media screen and (max-width: 960px) {
  #contact .inner {
    min-width: auto;
    width: calc(100% - 30px);
  }
}

#contact .attention {
  margin: 3em auto 3.5em;
  padding: 1em 7.6% .75em;
  width: 75%;
  border: 3px solid #FF788B;
  border-radius: 13px;
  line-height: 2;
}

@media screen and (max-width: 600px) {
  #contact .attention {
    width: 100%;
  }
}

#contact dl > div {
  align-items: flex-start;
  background: linear-gradient(to right, #D6E9C4 36%, transparent 36%);
}

@media screen and (max-width: 600px) {
  #contact dl > div {
    flex-direction: column;
    background: none;
  }
}

#contact dl > div:nth-child(1) dd {
  margin-top: 1.8em;
  font-size: 17px;
}

#contact dl > div:nth-child(1) dd input {
  margin-right: .5em;
  width: 16px;
  height: 16px;
  margin-bottom: 4px;
}

#contact dl > div:nth-child(1) dd label {
  margin-right: 2.25em;
}

@media screen and (max-width: 600px) {
  #contact dl > div:nth-child(1) dd label {
    display: inline-block;
    margin-right: 1.5em;
  }
}

#contact dt {
  padding: 1.33em 0 2.28em 3.8%;
  width: 36%;
  font-size: 1.3125em;
  font-weight: 400;
  background-color: #D6E9C4;
}

@media screen and (max-width: 600px) {
  #contact dt {
    padding: 1em 0;
    width: 100%;
    text-align: center;
  }
}

#contact dt span {
  margin-left: 10px;
  color: #FF788B;
  font-size: 10px;
}

#contact dd {
  width: 60%;
  margin-top: 1em;
}

@media screen and (max-width: 600px) {
  #contact dd {
    margin-bottom: 1em;
    width: 100%;
  }
}

#contact dd input[type="text"],
#contact dd input[type="tel"],
#contact dd input[type="email"],
#contact dd textarea {
  padding: .8em .5em;
  width: 100%;
  border: 2px solid #736357;
  border-radius: 5px;
}

#contact dd input[type="tel"] {
  width: 40%;
}

#contact dd span {
  display: inline-block;
  transform: translate(10px, 13px);
}

@media screen and (max-width: 600px) {
  #contact dd span {
    transform: translate(10px, 10px);
  }
}

#contact .btn-wrap {
  margin-top: 2em;
  color: #fff;
  font-size: 2.25em;
}

#contact .btn-wrap button {
  display: block;
  width: 100%;
  padding: .2em 0;
  background: #7CCC94;
  transition: all linear .3s;
}

#contact .btn-wrap button:hover {
  background: #4f815e;
}

#faq {
  padding: 3.75em 0 1em;
  background: rgba(214, 233, 196, 0.2);
}

#faq .inner {
  margin: 0 auto;
  width: 53.7%;
  min-width: 752px;
  max-width: 1100px;
}

@media screen and (max-width: 960px) {
  #faq .inner {
    min-width: auto;
    width: calc(100% - 30px);
  }
}

#faq h2 {
  margin-bottom: 2.5em;
  font-size: 2em;
  color: #FF788B;
  font-family: maru-maru-gothic-asr-stdn,sans-serif;
  font-weight: 400;
  font-style: normal;
}

#faq dt {
  padding: .16em 1rem;
  background: #FF788B;
  color: #fff;
  font-size: 2.25em;
  font-weight: 400;
  line-height: 1.3;
}

@media screen and (max-width: 600px) {
  #faq dt {
    padding: .5em 1rem;
    font-size: 1.2em;
  }
}

#faq dt span {
  top: 5px;
}

#faq dd {
  padding: 2em 1rem;
  min-height: 42px;
  line-height: 2;
}

#faq dd span {
  top: 1em;
  font-size: 2.25em;
  color: #7FBD91;
  line-height: 1;
}

@media screen and (max-width: 600px) {
  #faq dd span {
    top: 2em;
    font-size: 1.3em;
  }
}

#faq dt,
#faq dd {
  padding-left: 4.5rem;
  position: relative;
}

@media screen and (max-width: 600px) {
  #faq dt,
  #faq dd {
    padding-left: 3em;
  }
}

#faq dt span,
#faq dd span {
  position: absolute;
  left: 1rem;
}

.btm-img {
  position: relative;
}

.btm-img::before {
  display: block;
  width: 100%;
  padding-top: 27.5%;
  background: url(../img/top/btm-bg.jpg) no-repeat center/cover;
  content: "";
}

#footer {
  background: #D6E9C4;
  padding: 3.5em 0;
}

@media screen and (max-width: 600px) {
  #footer {
    padding: 1em 0 110px;
  }
}

#footer figure {
  margin: 0 auto;
  width: 12.2%;
  min-width: 157px;
}

#footer .flo-btn {
  padding-top: .5em;
  position: fixed;
  bottom: 0;
  background: rgba(214, 233, 196, 0.7);
  z-index: 10;
}
