@charset "UTF-8";

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,p,blockquote,th,td,form,fieldset,legend {
  margin:  0;
  padding: 0;
}
ol,ul {
  list-style: none;
}
html {
  overflow-y: scroll;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  font-size: 62.5%;
}
body {
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", "Yu Gothic", YuGothic, "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  -webkit-font-smoothing: antialiased;
  word-wrap: break-word;
  overflow-wrap: break-word;
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 2.8rem;
}
img {
  width: 100%;
  height: auto;
  border: none;
}
.clear {
  float: none;
  clear: both;
}

#sec__a {
  background: #fff;
  color: #000;
}
#sec__a h2 {
  border-bottom: 1px solid #000;
}
#sec__b {
  background: #fff;
  color: #333;
}
#sec__b h2 {
  border-bottom: 1px solid #333;
}

@media screen and (min-width:980px) {
  .sp {
    display: none;
  }
  body {
    background-image: url(../images/key_bg_pc.jpg);
    background-size: cover;
    background-position: center center;
    background-attachment: fixed;
  }
  .wrap {
    max-width: 980px;
    padding: 0px 25px;
    margin: 0px auto;
  }
  header {
    background: rgba(0, 0, 0, 0.8);
    padding: 10px 0px;
    position: fixed;
    top: 0px;
    width: 100%;
    z-index: 999;
  }
  .header__l {
    float: left;
  }
  .header__l img {
    height: 60px;
    width: auto;
  }
  .header__r {
    float: right;
  }
  .header__r img {
    height: 40px;
    width: auto;
  }
  .header__r div {
    float: left;
    padding: 10px;
  }
  .main__logo {
    width: 320px;
    margin: 0px auto;
    padding-top: 200px;
  }
  .grd {
    width: 100%;
    height: 160px;
    background: linear-gradient(rgba(255,255,255,0),rgba(255,255,255,1));
  }
  .intoro {
    text-align: center;
    padding: 60px 0px 80px 0px;
  }
  h2 {
    text-align: center;
    font-weight: bold;
    width: 480px;
    margin: 0px auto 40px auto;
    padding-bottom: 20px;
    position: relative;
  }
  .fukidashi__a {
    position: absolute;
    top: -160px;
    right: -160px;
    width: 180px;
  }
  .box {
    display: grid;
  }
  .box__a {
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    padding: 0px 40px;
  }
  .box__a p {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid #fff;
  }
  .fukidashi__b {
    width: 180px;
  }
  .box__b {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 40px;
    padding-bottom: 200px;
    margin-top: 10px;
  }
  .box__b .item {
    background: #404040;
    border-radius: 10px;
    padding: 20px;
    color: #fff;
  }
  .box__b h3 {
    font-size: 22px;
    line-height: 26px;
    font-weight: bold;
    text-align: center;
    color: #FF9D00;
    padding: 16px 0px 20px 0px;
    margin-bottom: 20px;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
  }
  .step__sec {
    text-align: center;
    padding-bottom: 80px;
  }
  .step__sec p {
    padding: 30px 0px;
  }
  .step {
    width: 320px;
    padding-top: 20px;
    margin: 0px auto;
  }
  .box__c {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 40px;
    padding-bottom: 80px;
    margin-top: 10px;
  }
  .cf {
    width: 640px;
    margin: 0px auto;
    padding-bottom: 40px;
  }
  .price {
    width: 380px;
    margin: 0px auto;
    padding: 80px 0px 40px 0px;
  }
  .omoushikomi {
    width: 180px;
    margin: 0px auto 80px auto;
  }

  #sec__b {
    padding-top: 80px;
  }
  .class {
    width: 380px;
    margin: 0px auto;
    padding-bottom: 40px;
  }
  .box__d {
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    padding-bottom: 80px;
    width: 740px;
    margin: 0px auto;
  }
  .box__d p {
    padding-top: 20px;
  }

  .box__e {
    grid-template-columns: 1fr 2fr;
    gap: 40px;
    padding-bottom: 20px;
  }
  .bottom {
    padding-bottom: 80px;
  }
  .center {
    text-align: center;
  }
  .dojo {
    padding: 40px 0px;
  }

  .box__f {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 40px;
    padding: 80px 0px 80px 0px;
    text-align: center;
  }
  .box__f img {
    width: 120px;
    padding-bottom: 20px;
  }
  .suchedule {
    padding: 40px 0px;
  }

  footer {
    background: #333;
    color: #fff;
    padding: 40px 0px 0px 0px;
    font-size: 12px;
    line-height: 20px;
  }
  .ft__l {
    float: left;
  }
  .ft__l img {
    height: 60px;
    width: auto;
  }
  .ft__r {
    float: right;
  }
  .ft__r img {
    height: 40px;
    width: auto;
  }
  .ft__r div {
    float: left;
    padding: 10px;
  }
  .copyright {
    text-align: center;
    padding: 20px 0px;
  }
}

@media screen and (max-width:979px) {
  .pc {
    display: none;
  }
  body {
    font-size: 12px;
    line-height: 20px;
    position: relative;
  }
  .fixedwrap {
    position: relative;
  }
  .fixedwrap::before {
    content: "";
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: url(../images/key_bg_sp.jpg) center/cover no-repeat;
    z-index:-1;
  }
  .bgwrap {
    content:"";
    display:block;
    position:fixed;
    top:0;
    left:0;
    z-index:-1;
    width:100%;
    height:100vh;
    background-repeat:no-repeat;
    background-position:50% 100%;
    background-image:url(../images/key_bg_sp.jpg);
    background-size:cover;
  }
  .wrap {
    padding: 0px 25px;
    margin: 0px;
  }
  header {
    background: rgba(0, 0, 0, 0.8);
    padding: 10px 0px;
  }
  .header__l img {
    width: 90vw;
  }
  .header__r {
    display: none;
  }
  .main__logo {
    width: 70vw;
    margin: 0px auto;
    padding-top: 60px;
  }
  .grd {
    width: 100%;
    height: 160px;
    background: linear-gradient(rgba(255,255,255,0),rgba(255,255,255,1));
  }
  .intoro {
    text-align: center;
    padding: 20px 0px 40px 0px;
  }
  h2 {
    text-align: center;
    font-weight: bold;
    font-size: 18px;
    width: 100%;
    margin: 0px auto 20px auto;
    padding-bottom: 20px;
    position: relative;
  }
  .fukidashi__a {
    position: absolute;
    top: -140px;
    right: -10px;
    width: 120px;
  }
  .box {
    display: grid;
  }
  .box__a {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .box__a img {
    padding: 0px 20px;
  }
  .box__a p {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid #fff;
  }
  .fukidashi__b {
    width: 120px;
    margin: 40px auto 20px auto;
  }
  .box__b {
    grid-template-columns: 1fr;
    gap: 20px;
    padding-bottom: 160px;
    margin-top: 10px;
  }
  .box__b .item {
    background: #404040;
    border-radius: 10px;
    padding: 20px;
    color: #fff;
  }
  .box__b h3 {
    font-size: 22px;
    line-height: 26px;
    font-weight: bold;
    text-align: center;
    color: #FF9D00;
    padding: 16px 0px 20px 0px;
    margin-bottom: 20px;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
  }
  .step__sec {
    text-align: center;
    padding-bottom: 40px;
  }
  .step__sec p {
    padding: 30px 0px;
  }
  .step {
    width: 200px;
    padding-top: 20px;
    margin: 0px auto;
  }
  .box__c {
    grid-template-columns: 1fr;
    gap: 20px;
    padding-bottom: 40px;
    margin-top: 10px;
  }
  .cf {
    margin: -10px auto 0px auto;
    padding-bottom: 20px;
  }
  .price {
    width: 240px;
    margin: 0px auto;
    padding: 40px 0px 0px 0px;
  }
  .omoushikomi {
    width: 180px;
    margin: 0px auto 40px auto;
  }

  #sec__b {
    padding-top: 40px;
  }
  .class {
    width: 240px;
    margin: 0px auto;
    padding: 20px 0px 40px 0px;
  }
  .box__d {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding-bottom: 40px;
  }
  .box__d p {
    padding-top: 20px;
    font-size: 10px;
  }

  .box__e {
    grid-template-columns: 1fr;
    gap: 20px;
    padding-bottom: 20px;
  }
  .bottom {
    padding-bottom: 40px;
  }
  .center {
    text-align: center;
  }
  .dojo {
    padding: 40px 0px;
  }

  .box__f {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 40px 0px 60px 0px;
    text-align: center;
  }
  .box__f img {
    width: 60px;
    padding-bottom: 20px;
  }
  .suchedule {
    padding: 40px 0px;
  }

  footer {
    background: #333;
    color: #fff;
    padding: 40px 0px 0px 0px;
    font-size: 12px;
    line-height: 20px;
  }
  .ft__l img {
    width: 240px;
    padding-bottom: 20px;
  }
  .ft__r img {
    width: 40px;
    margin-top: 10px;
  }
  .ft__r div {
    padding-bottom: 10px;
  }
  .copyright {
    text-align: center;
    font-size: 12px;
    padding: 20px 0px;
  }
}
