@charset "utf-8";
@import url(init.css);

:root {
  --viewport: 750;
  --gold: #BAA170;
  --blue: #CEE3F8;
}
@media screen and (min-width:768px) {
  :root {
    --viewport: 1518;
  }
}

p {
  line-height: 1.42;
}
.font-oswald {
  font-family: 'Oswald', sans-serif;
  font-weight: normal;
}
.font_gold {
  color: var(--gold);
}
.font_white {
  color: #fff;
}
.bg_black {
  background: #000;
}
.fwLight {
  font-weight: 300;
}
.fwMedium {
  font-weight: 500;
}
.inner {
  width: calc(100vw / var(--viewport) * 690);
  margin: 0 auto;
}
h2 {
  color: #fff;
  font-size: calc(100vw / var(--viewport) * 66);
  text-align: center;
}
h2 + .sub {
  font-weight: 500;
  text-align: center;
  margin-top: 0.5em;
}
h3 + .sub {
  font-size: calc(100vw / var(--viewport) * 34);
  font-weight: 500;
  text-align: center;
  margin-top: 0.3em;
}
@media screen and (min-width:1518px) {
  .inner {
    width: 690px;
  }
  h2 {
    font-size: 66px;
  }
  h3 + .sub {
    font-size: 34px;
  }
}

body {
  font-family: "Noto Sans JP", system-ui, -apple-system, "Hiragino Sans", "Segoe UI", "Meiryo", sans-serif;
  font-weight: 300;
}

#header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2;
}
#header .logo {
  width: calc(100vw / var(--viewport) * 74);
  height: auto;
  margin-right: calc(100vw / var(--viewport) * 22);
}
@media screen and (max-width:767px) {
  #header {
    background: #000;
  }
  #header .header_inner {
    color: #fff;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding: calc(100vw / var(--viewport) * 14) calc(100vw / var(--viewport) * 22) 0
  }
  #header .header_inner span {
    font-size: calc(100vw / var(--viewport) * 24);
    font-weight: 500;
  }
}
@media screen and (min-width: 768px) {
  #header .logo {
    width: 24%;
    min-width: 300px;
    max-width: 462px;
    position: absolute;
    top: 30px;
    left: 30px;
  }
  #header .header_inner span {
    display: none;
  }
}

@media screen and (max-width:767px) {
  .pcMenu {
    display: none;
  }
}
@media screen and (min-width:768px) {
  .pcMenu {
    position: fixed;
    top: 90px;
    left: 4%;
  }
  .pcMenu p {
    color: #fff;
    font-size: 34px;
    font-weight: 500;
  }
  .pcMenu li {
    margin-top: 9px;
  }
  .pcMenu a {
    color: #fff;
    display: flex;
    align-items: stretch;
  }
  .pcMenu a span.number {
    color: #000;
    font-size: calc(100vw / var(--viewport) * 26);
    font-weight: 500;
    width: calc(100vw / var(--viewport) * 38);
    height: calc(100vw / var(--viewport) * 38);
    background: var(--gold);
    border: 1px solid var(--gold);
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .pcMenu a span.text {
    font-size: calc(100vw / var(--viewport) * 19);
    border: 1px solid #fff;
    border-left: none;
    width: 100%;
    padding: 0 25px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
  }
}
@media screen and (min-width:1518px) {
  .pcMenu a span.number {
    font-size: 26px;
    width: 38px;
    height: 38px;
  }
  .pcMenu a span.text {
    font-size: 19px;
  }
}

#wrapper {
  width: 100%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  #wrapper {
    width: 50%;
    max-width: 750px;
    background: #fff;
    position: absolute;
    top: 0;
    left: 50%;
  }
}
#wrapper.no-events {
  pointer-events: none;
}

#contents {
  color: #fff;
  font-size: calc(100vw / var(--viewport) * 26);
  background: #000;
}
@media screen and (min-width:1518px) {
  #contents {
    font-size: 26px;
  }
}

#mv {
  background: #afafaf;
}
#mv img {
  position: relative;
  z-index: 1;
}
@media screen and (max-width:767px) {
  #mv {
    border-top: calc(100vw / var(--viewport) * 100) solid #000;
  }
}

.attention {
  background: url(../img/bg_attention.webp) top center no-repeat;
  background-size: cover;
  height: calc(100vw / var(--viewport) * 604);
  padding-top: calc(100vw / var(--viewport) * 40);
  margin-top: calc(100vw / var(--viewport) * -50);
}
.attention h2 {
  font-size: calc(100vw / var(--viewport) * 66);
  font-weight: 900;
  text-align: center;
}
.attention .sub_h2 {
  font-size: calc(100vw / var(--viewport) * 32);
  font-weight: bold;
  text-align: center;
  margin-top: calc(100vw / var(--viewport) * 6);
}
@media screen and (min-width:1518px) {
  .attention {
    height: 604px;
    padding-top: 40px;
    margin-top: -50px;
  }
  .attention h2 {
    font-size: 66px;
  }
  .attention .sub_h2 {
    font-size: 32px;
    margin-top: 6px;
  }
}

#section02 {
  padding: calc(100vw / var(--viewport) * 40) 0 calc(100vw / var(--viewport) * 70);
}
#section02 .lead {
  font-size: calc(100vw / var(--viewport) * 28);
  text-align: center;
  margin-top: calc(100vw / var(--viewport) * 23);
}
#section02 .effect img {
  width: calc(100vw / var(--viewport) * 498);
  display: block;
  margin: calc(100vw / var(--viewport) * 40) auto 0;
}
#section02 .effect h3 {
  font-size: calc(100vw / var(--viewport) * 36);
  margin-top: calc(100vw / var(--viewport) * 48);
  margin-bottom: calc(100vw / var(--viewport) * 10);
}
#section02 .effect h3:before {
  content: "";
  background: url(../img/section02/icon_check.webp) center center no-repeat;
  background-size: 100% auto;
  display: inline-block;
  width: calc(100vw / var(--viewport) * 44);
  height: calc(100vw / var(--viewport) * 44);
  margin-right: calc(100vw / var(--viewport) * 13);
  vertical-align: sub;
}
#section02 .method {
  padding: calc(100vw / var(--viewport) * 110) 0 0;
}
#section02 .method  .step01 {
  margin-top: calc(100vw / var(--viewport) * 45);
}
#section02 .method  .step02 {
  margin-top: calc(100vw / var(--viewport) * 80);
}
#section02 .method .text {
  margin-top: calc(100vw / var(--viewport) * 20);
}
#section02 .total {
  padding: calc(100vw / var(--viewport) * 55) 0 0;
}
#section02 .total h2 {
  margin-bottom: calc(100vw / var(--viewport) * 44);
}
#section02 .total .text {
  margin-top: calc(100vw / var(--viewport) * 12);
}
#section02 .total .box {
  border: 1px solid #fff;
  padding: calc(100vw / var(--viewport) * 33) calc(100vw / var(--viewport) * 22);
  margin-top: calc(100vw / var(--viewport) * 117);
}
#section02 .total .box p {
  font-size: calc(100vw / var(--viewport) * 24);
}
@media screen and (min-width:1518px) {
  #section02 {
    padding: 40px 0 70px;
  }
  #section02 .lead {
    font-size: 28px;
    margin-top: 23px;
  }
  #section02 .effect img {
    width: 498px;
    margin: 40px auto 0;
  }
  #section02 .effect h3 {
    font-size: 36px;
    margin-top: 48px;
    margin-bottom: 10px;
  }
  #section02 .effect h3:before {
    width: 44px;
    height: 44px;
    margin-right: 13px;
  }
  #section02 .method {
    padding: 110px 0 0;
  }
  #section02 .method  .step01 {
    margin-top: 45px;
  }
  #section02 .method  .step02 {
    margin-top: 80px;
  }
  #section02 .method .text {
    margin-top: 20px;
  }
  #section02 .total {
    padding: 55px 0 0;
  }
  #section02 .total h2 {
    margin-bottom: 44px;
  }
  #section02 .total .text {
    margin-top: 12px;
  }
  #section02 .total .box {
    padding: 33px 22px;
    margin-top: 117px;
  }
  #section02 .total .box p {
    font-size: 24px;
  }
}

#section03 {
  padding: calc(100vw / var(--viewport) * 40) 0 calc(100vw / var(--viewport) * 70);
}
#section03 .box {
  margin-top: calc(100vw / var(--viewport) * 75);
}
#section03 .box01 {
  margin-top: calc(100vw / var(--viewport) * 18);
}
#section03 .box .title {
  text-align: center;
  margin-top: calc(100vw / var(--viewport) * 30);
  margin-bottom: calc(100vw / var(--viewport) * 36);
}
#section03 .box .title .fwLight {
  font-size: calc(100vw / var(--viewport) * 66);
  display: inline-block;
  margin-bottom: calc(100vw / var(--viewport) * 15);
}
#section03 .box .title .fwMedium {
  font-size: calc(100vw / var(--viewport) * 38);
}
#section03 .equipment {
  margin-top: calc(100vw / var(--viewport) * 110);
}
#section03 .equipment .box {
  margin-top: 0;
}
#section03 .equipment .box01 {
  margin-top: calc(100vw / var(--viewport) * 45);
}
#section03 .equipment .box h3 {
  font-size: calc(100vw / var(--viewport) * 48);
  text-align: center;
  margin-top: calc(100vw / var(--viewport) * 30);
}
#section03 .equipment .box02 h3,
#section03 .equipment .box03 h3 {
  margin-top: 0;
}
#section03 .equipment .box .text {
  margin-top: calc(100vw / var(--viewport) * 18);
}
@media screen and (min-width:1518px) {
  #section03 {
    padding: 40px 0 70px;
  }
  #section03 .box {
    margin-top: 75px;
  }
  #section03 .box01 {
    margin-top: 18px;
  }
  #section03 .box .title {
    margin-top: 30px;
    margin-bottom: 36px;
  }
  #section03 .box .title .fwLight {
    font-size: 66px;
    margin-bottom: 15px;
  }
  #section03 .box .title .fwMedium {
    font-size: 38px;
  }
  #section03 .equipment {
    margin-top: 110px;
  }
  #section03 .equipment .box {
    margin-top: 0;
  }
  #section03 .equipment .box01 {
    margin-top: 45px;
  }
  #section03 .equipment .box h3 {
    font-size: 48px;
    margin-top: 30px;
  }
  #section03 .equipment .box02 h3,
  #section03 .equipment .box03 h3 {
    margin-top: 0;
  }
  #section03 .equipment .box .text {
    margin-top: 18px;
  }
}

#section04 {
  padding: calc(100vw / var(--viewport) * 40) 0 0;
}
#section04 .inner {
  padding-top: calc(100vw / var(--viewport) * 45);
}
#section04 .inner .img01 {
  margin-bottom: calc(100vw / var(--viewport) * 40);
}
#section04 .inner .img02 {
  margin-bottom: calc(100vw / var(--viewport) * 68);
}
#section04 .midashi {
  font-size: calc(100vw / var(--viewport) * 46);
  font-weight: bold;
  text-align: center;
  line-height: 1.39;
  margin-bottom: calc(100vw / var(--viewport) * 59);
}
#section04 .text {
  margin-top: calc(100vw / var(--viewport) * 27);
}
@media screen and (min-width:1518px) {
  #section04 {
    padding: 40px 0 0;
  }
  #section04 .inner {
    padding-top: 45px;
  }
  #section04 .inner .img01 {
    margin-bottom: 40px;
  }
  #section04 .inner .img02 {
    margin-bottom: 68px;
  }
  #section04 .midashi {
    font-size: 46px;
    margin-bottom: 59px;
  }
  #section04 .text {
    margin-top: 27px;
  }
}

#section05 {
  padding: calc(100vw / var(--viewport) * 72) 0 calc(100vw / var(--viewport) * 78);
}
#section05 h2 {
  font-size: calc(100vw / var(--viewport) * 46);
}
#section05 .box {
  margin-top: calc(100vw / var(--viewport) * 60);
}
#section05 .box01 {
  margin-top: calc(100vw / var(--viewport) * 44);
}
#section05 .box .flex {
  font-weight: 500;
  display: flex;
  justify-content: flex-start;
}
#section05 .box .flex .number {
  color: #000;
  font-size: calc(100vw / var(--viewport) * 46);
  font-weight: 500;
  background: var(--gold);
  width: calc(100vw / var(--viewport) * 81);
  height: calc(100vw / var(--viewport) * 81);
  display: flex;
  justify-content: center;
  align-items: center;
}
#section05 .box .flex .midashi {
  font-size: calc(100vw / var(--viewport) * 30);
  font-weight: 500;
  background: #555;
  width: calc(100% - calc(100vw / var(--viewport) * 81));
  display: flex;
  justify-content: center;
  align-items: center;
}
#section05 .box01 {
  text-align: center;
}
#section05 .box01 a {
  color: #000;
  font-weight: bold;
  text-align: center;
  background: var(--gold);
  width: calc(100vw / var(--viewport) * 476);
  height: calc(100vw / var(--viewport) * 69);
  display: flex;
  justify-content: center;
  align-items: center;
  margin: calc(100vw / var(--viewport) * 20) auto;
}
#section05 .box img {
  margin-bottom: calc(100vw / var(--viewport) * 10);
}
@media screen and (min-width:1518px) {
  #section05 {
    padding: 72px 0 78px;
  }
  #section05 h2 {
    font-size: 46px;
  }
  #section05 .box {
    margin-top: 60px;
  }
  #section05 .box01 {
    margin-top: 44px;
  }
  #section05 .box .flex .number {
    font-size: 46px;
    width: 81px;
    height: 81px;
  }
  #section05 .box .flex .midashi {
    font-size: 30px;
    width: calc(100% - 81px);
  }
  #section05 .box01 a {
    width: 476px;
    height: 69px;
    margin: 20px auto;
  }
  #section05 .box img {
    margin-bottom: 10px;
  }
}

#section06 {
  background: #5F5F5F;
  padding: calc(100vw / var(--viewport) * 74) 0 calc(100vw / var(--viewport) * 125);
}
#section06 h2 {
  font-size: calc(100vw / var(--viewport) * 46);
  font-weight: 600;
  text-align: center;
  margin-bottom: calc(100vw / var(--viewport) * 36);
}
#section06 .inner {
  padding: 0 calc(100vw / var(--viewport) * 22);
}
#section06 .p-group__tbl td {
  color: #000;
}
@media screen and (min-width:1518px) {
  #section06 {
    padding: 74px 0 125px;
  }
  #section06 h2 {
    font-size: 46px;
    margin-bottom: 36px;
  }
  #section06 .inner {
    padding: 0 22px;
  }
}

#footer {
  color: #fff;
  text-align: center;
  background: #000;
  padding-top: calc(100vw / var(--viewport) * 30);
  padding-bottom: calc(100vw / var(--viewport) * 270);
}
#footer .l-footer__logo {
  width: calc(100vw / var(--viewport) * 99);
  max-width: 100px;
  margin: 0 auto;
}
#footer a {
  color: #fff;
}
#footer .footerflex1 {
  display: none;
}
#footer .footerText {
  font-size: calc(100vw / var(--viewport)* 15);
}
@media screen and (max-width:767px) {
  #footer .copy-right {
    font-size: calc(100vw / var(--viewport) * 18);
    letter-spacing: 0;
    line-height: 0;
  }
  footer .displayFlex {
    display: none;
  }
}
@media screen and (min-width:768px) {
  #footer {
    padding-bottom: calc(100vw / var(--viewport) * 30);
  }
  .displayFlex {
    display: flex;
    justify-content: center;
    line-height: 1.6;
    color: #fff;
  }
  #footer .copy-right {
    font-size: 16px;
  }
  #footer .footerflex1 {
    display: block;
    margin: calc(100vw / var(--viewport)* 10) 0.6em 0 0;
  }
  #footer .footerflex1 a {
    text-decoration: underline;
  }
  #footer .footerflex2 {
    margin: calc(100vw / var(--viewport)* 10) 0 0 0.6em;
  }
}
@media screen and (min-width:1518px) {
  #footer {
    padding-top: 30px;
    padding-bottom: 30px;
  }
  #footer .l-footer__logo {
    width: 99px;
    margin: 0 auto 20px;
  }
  #footer .footerText {
    font-size: 15px;
  }
}

@media screen and (max-width:767px) {
  .background {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .background img {
    width: 100vw;
    height: 100%;
    object-fit: cover;
    object-position: top;
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
  }
}

.pcBanner {
  display: none;
}
@media screen and (min-width:768px) {
  .pcBanner {
    display: block;
    position: fixed;
    width: 39.1%;
    max-width: 884px;
    left: 3.36%;
    bottom: 30%;
  }
}

.cta-bottomFixedArea {
  width: 750px;
  position: fixed;
  left: 50%;
  bottom: 0;
}
@media screen and (max-width:767px) {
  .cta-bottomFixedArea {
    width: 100%;
    left: 0;
    display: none;
  }
}
@media screen and (min-width:768px) {
  .cta-bottomFixedArea {
    width: 39.1%;
    max-width: 750px;
    left: 5.36%;
    bottom: 7.81%;
  }
  .cta-bottomFixedArea a {
    display: block;
    animation: zoom infinite 2.2s;
  }
  @keyframes zoom {
    0% {
      scale: 1;
    }
    50% {
      scale: 1.1;
    }
    100% {
      scale: 1;
    }
  }
}