@charset "utf-8";

body {
  font-size: 12px;
  position: relative;
  -webkit-appearance: none;
  -webkit-text-size-adjust: 100%;
}

.outer-block {
  min-width: 320px;
}

.inner-block {
  padding: 0 10px;
  width: 100%;
}

#wrapper {
  min-width: 320px;
  position: relative;
  overflow: hidden;
}

input[type="submit"] {
  -webkit-text-size-adjust: 100%;
}

input, select, textarea {
  font-size: 16px !important;
}

.pc {
  display: none !important;
}
.pc-ib {
  display: none !important;
}

.sp {
  display: block !important;
}
.sp-ib {
  display: inline-block !important;
}


/*------------------------------------------------------------------------------
CONTENTS
------------------------------------------------------------------------------*/

/** COMMON */

.baloon {
  font-size: 10px;
  padding: 5px;
  height: 27px;
  width: 176px;
}

.btn {
  font-size: 17px;
  line-height: 54px;
  height: 54px;
  width: 304px;
}

.btn::before {
  left: 28px;
  height: 24px;
  width: 25px;
}

.btn::after {
  right: 12px;
  height: 23px;
  width: 23px;
}

.btn.cd-sample {
  font-size: 12px;
  padding-left: 10px;
}

.btn.cd-sample::before {
  left: 58px;
  height: 16px;
  width: 16px;
}

.btn.detail {
  margin-left: auto;
}

/**SEC1*/

.kv-area {
  width: 100%;
}

.sec1::after, .sec7::after {
  background: url(../img/sp-top-bg.png) no-repeat center bottom /cover;
  top: initial;
  bottom: -230px;
}

.sec7::after {
  bottom: -400px;
}

.logo {
  padding-left: 10px;
  margin: 28px 0 0 0;
  width: 146px;
}

.logo::after {
  height: 72px;
  top: 20px;
  width: 20px;
}

.message {
  height: 72px;
  width: 206px;
  text-align: right;
  margin: -40px 0 0;
}

.message::before {
  border-width: 0 0 72px 20px;
  left: -20px;
}

.sec1 span.small {
  font-size: 10px;
}

.sec1 .message span.small {
  margin-left: 0;
}

.message p {
  font-size: 14px;
  margin: 0;
}

.message p span {
  font-size: 12px;
  line-height: 16px;
}

.main-ttl {
  float: none;
  margin: 19px 0 0 0;
  width: 100%;
}

.sec1 .title {
  float: none;
  margin: auto;
}

.sec1 .kit1 {
  float: none;
  margin: -50px auto 9px 0;
  width: 85%;
}

.sec1 .btn.cd-sample {
  margin: 10px auto 32px;
}

.sec1 .main-detail {
  padding: 34px 0 25px;
  text-align: left;
}

.sec1 .main-detail p {
  letter-spacing: 1px;
  line-height: 23px;
  font-size: 16px;
}

.material {
  margin: auto;
  width: 100%;
  min-width: auto;
}

.sec1 .outer-block.lower {
  background: none;
}

@media screen and (max-width: 361px) {
  .logo {
    width: 140px;
  }

  .message {
    width: 160px;
  }

  .message * {
    letter-spacing: 0.05em !important;
  }

  .message p {
    font-size: 12px;
  }

  .message p span {
    font-size: 10px;
  }
}

/** SEC2 */

.sec2 {
  padding-bottom: 0;
}

.sec2 .bg {
  bottom: -415px;
  top: initial;
  left: initial;
  right: 0;
  width: 414px;
}

.sec2 .outer-block.upper {
  background: linear-gradient(180deg, #FEFDFC 0%, rgba(254,253,252,1) 74%, rgba(255,255,255,1) 100%);
  margin-top: -1px;
  padding-top: 25px;
}

.fukidashi {
  font-size: 14px;
  letter-spacing: 1.5px;
  margin-top: 20px;
  padding: 14px;
  width: 100%;
  height: auto;
}

.fukidashi::after {
  bottom: -3px;
  left: 0;
  right: 0;
  margin: auto;
  height: 13px;
  width: 13px;
}

.sec2 .kit2 {
  margin: 20px 10px 0;
}

.checklist {
  margin: 20px 0 400px 27px;
}

.checklist li {
  font-size: 13px;
  letter-spacing: 2px;
}

.checklist li::before {
  height: 12px;
  width: 15px;
}

/** SEC3 */

.sec3 .inner-block {
  padding-top: 0;
}

.sec3::before {
  right: -27px;
  height: 605px;
  width: 115%;
}

.heading {
  font-size: 18px;
  line-height: 20px;
  padding: 11px 0;
  height: 59px;
  width: 100%;
}

.features {
  flex-wrap: wrap;
  margin: 28px auto 20px;
  width: 300px;
}

.features li {
  margin: 0 10px 10px 0;
  width: 135px;
  height: 135px;
}

.features li span {
  width: 14px;
}

.features li:nth-child(2) span {
  width: 28px;
}

.features li:nth-child(3) span {
  width: 29px;
}

.features li:nth-child(4) span {
  width: 32px;
}

.feature-detail {
  height: 73px;
}

.feature-detail .main {
  font-size: 24px;
  margin-bottom: 9px;
}

.feature-detail .sub {
  font-size: 12px;
}

.sec3 figure {
  width: 303px;
  margin-top: -100px;
}

/** SEC4 */

.num {
  top: -40px;
  right: 40px;
  width: 61px;
}

.sec4 .book-kaisetsu {
  flex-direction: column;
  margin-bottom: 33px;
}

.sec4 .kaisetsu {
  width: 175px;
  margin-left: 40px;
  position: relative;
  z-index: 1;
}

.sec4 .info {
  width: 100%;
}

.sec4 figure.txt {
  margin: 15px 0 23px;
}

.sec4 .info p {
  font-size: 16px;
}

.mokuji-box {
  padding: 9px;
  height: 38px;
  width: 100%;
}

.mokuji-txt {
  font-size: 16px;
}

.mokuji-icon {
  height: 12px;
  width: 12px;
}

.mokuji-icon:before {
  left: 45%;
}

.nakami-box {
  font-size: 14px;
  font-weight: normal;
  letter-spacing: 1px;
  padding: 33px 21px;
}

/** SEC5 */

.sec5 {
  padding-bottom: 45px;
}

.sec5::before {
  top: -48px;
}

.sec5 .num {
  top: -10px;
  right: 10px;
  width: 108px;
}

.sec5 .cd-block {
  flex-direction: column;
}

.sec5 .cd-block > figure {
  margin: 60px auto 0 0;
  width: 235px;
  position: relative;
  z-index: 1;
}

.sec5 .info {
  margin-top: 0;
}

.sec5 .baloon {
  margin-bottom: 15px;
}

.sec5 .info .txt {
  font-size: 16px;
}

/** SEC6 */

.sec6 {
  margin-top: 78px;
}

.sec6 .num {
  top: -200px;
  right: 10px;
  width: 116px;
}

.sec6 .format-block {
  margin-top: 110px;
}

.sec6 .format-img {
  order: 0;
  margin-top: 20px;
  position: relative;
  z-index: 1;
}

.sec6 .baloon {
  margin-bottom: 20px;
}

.sec6 .info {
  margin-bottom: 23px;
}

.sec6 .info figure {
  height: auto;
  width: 100%;
}

.sec6 .format {
  flex-direction: column;
  padding: 25px 11px;
  width: 100%;
}

.format .detail,
.format .format-txt {
  width: 100%;
}

.format .detail{
  margin-left: 0;
  padding: 0 15px;
}

.format .detail li {
  padding: 10px 0.5em 10px 0.5em;
  font-size: 18px;
  letter-spacing: 1px;
  line-height: 1.3;
  text-align: left;
  height: auto;
  width: 100%;
}

.format .detail li:nth-child(-n+2) {
  text-indent: -1em;
  padding-left: 1.5em;
}

.format .format-txt {
  font-size: 16px;
  line-height: 22px;
  letter-spacing: 1px;
  padding: 40px 0 17px 0;
}

.format .format-txt p:first-child {
  margin-bottom: 30px;
}

.sec6 .more {
  margin: 18px auto;
  width: 81px;
}

.sec6 .comment {
  margin: 17px 0 41px;
}

/** SEC7 */

.sec7 {
  padding: 55px 0;
}

.sec7::before {
  border-width: 35px 35px 0 35px;
}

.sec1.sec7 .kit1 {
  margin: -50px auto 9px 0;
  width: 85%;
}

/** SEC8 */

.sec8 {
  background: none;
  padding-bottom: 83px;
}

.heading-under {
  font-size: 30px;
}

.heading-under::after {
  top: 54px;
  width: 52px;
}

.president {
  height: auto;
  margin-top: 0;
  padding-left: 19px;
}

.white-box {
  border-radius: 5px;
  float: none;
  margin-right: auto;
  padding: 0;
  height: auto;
  width: calc( 100% - 19px );
  padding: 300px 0 30px 0;
}

.photo-area {
  top: 35px;
  left: 0;
  right: 0;
  margin: auto;
  width: 235px;
  height: 235px;
}

.photo-area .name {
  font-size: 16px;
  height: 53px;
  padding: 7px 0;
  text-align: center;
  position: absolute;
  left: 0;
  bottom: 0;
}

.photo-area .name span {
  font-size: 13px;
}

.white-box .ttl {
  font-size: 22px;
  line-height: 26px;
  margin: 0 0 15px;
}

.white-box .txt {
  line-height: 1.8;
  padding: 0 19px;
}

.txt-area::after {
  bottom: -20px;
  left: initial;
  right: 0px;
  top: inherit;
  height: 170px;
  width: 232px;
}

.president + .president {
  margin-top: 60px;
}

.president.left .white-box {
  margin-top: 60px;
}


/** SEC9 */

.sec9 {
  padding-bottom: 45px;
}

.sec9::before {
  content: "";
  background: #fff;
  position: absolute;
  left: 0;
  top: 0;
  height: 19px;
  width: 100%;
}

.sec9 .heading,
.sec10 .heading {
  font-size: 17px;
  line-height: 38px;
  margin: auto;
  height: 38px;
  padding: 0;
  width: 100%;
}

.sec9 .photo {
  margin-right: -10px;
}

.sec9 .author {
  display: flex;
  flex-wrap: wrap;
  padding: 30px 0 0;
}

.sec9 .main-content {
  order: 0;
  padding: 0 24px;
  width: 100%;
  margin-bottom: 20px;
}

.sec9 .main-content figure {
  width: 111px;
}

.sec9 .kit,
.sec9 .photo {
  order: 1;
  width: 50%;
}

.sec9 .author .name {
  text-align: center;
  font-size: 17px;
  line-height: 22px;
  margin: 10px auto 28px;
}

.sec9 .author .name span {
  font-size: 14px;
}

.sec9 .author .txt {
  font-size: 14px;
}

.sec9 .right-block {
  margin: 20px 0 0 auto;
  width: 41%;
}

/** SEC10 */

.sec10 {
  padding-top: 60px;
  padding-bottom: 35px;
}

.sec10 .related {
  margin-top: 0;
  width: 100%;
}

.sec10 .related li {
  flex-direction: column;
  font-size: 14px;
  padding: 27px 0;
}

.sec10 .related li +li {
  padding-bottom: 0;
}

.dashed {
  background-image: linear-gradient(to right, #000, #000 1px, transparent 2px, transparent 2px);
  background-size: 3px 1px;
}

.sec10 figure {
  width: 200px;
}

.book-info,
.sec10 .related li:nth-child(2) .book-info {
  text-align: center;
  padding: 0;
  width: 100%;
}

.sec10 .book-info .sub-ttl,
.sec10 .related .ttl,
.sec10 .related .price,
.sec10 .related .memo {
  padding-bottom: 0;
}


.sec10 .book-info .sub-ttl {
  font-size: 16px;
}

.sec10 .related .ttl {
  font-size: 22px;
  line-height: 25px;
}

.sec10 .related .price {
  font-size: 14px;
  letter-spacing: -0.02em;
  line-height: 17px;
}

.sec10 .related .memo {
  font-size: 14px;
  text-align: left;
}

/** BANNER */

.banner {
  padding: 0;
}

.banner.under {
  height: 120px;
}

.banner .inner-block {
  width: initial;
}

#pagetop {
  top: -35px;
  right: 10px;
  height: 44px;
  width: 44px;
}

.banner-info {
  max-width: 350px;
  margin: auto;
  flex-wrap: wrap;
  padding: 10px 0;
  position: relative;
}

.banner .left-block,
.banner .center-block {
  width: 50%;
}

.banner .center-block {
  padding-top: 5px;
}

.banner .right-block {
  position: absolute;
  bottom: 10px;
  right: 0;
}

.banner .btn {
  font-size: 12px;
  line-height: 32px;
  height: 33px;
  width: 170px;
  border-width: 2px;
}

.banner .btn::before {
  width: 14px;
  height: 13px;
  left: 12px;
}

.banner .btn::after {
  width: 16px;
  height: 16px;
  right: 10px;
}

#footer,
#footer p {
  font-weight: normal;
  height: 30px;
  line-height: 30px;
}

.youtube-block {
  padding: 30px 10px;
}

.youtube-block iframe {
  width: 100%;
  height: 60vw;
}



@media screen and (max-width: 361px) {
  .banner .btn {
    width: 150px;
  }

  .banner .right-block {
    bottom: 0;
  }
}

/** OTHER */

.btn,
.material,
.sec1 .main-detail p,
.fukidashi,
.checklist li,
.mokuji-txt,
.heading,
.sec4 .info p,
.sec5 .baloon,
.sec5 .info .txt,
.format .format-txt,
.heading-under,
.white-box .ttl,
.white-box .txt,
.sec9 .main-content p {
  font-weight: bold;
}


/*------------------------------------------------------------------------------
clearfix
------------------------------------------------------------------------------*/
/*:after {
clear: both;
content: "";
display: block;
height: 0;
font-size: 0;
visibility: hidden;
}