/* CSS Document */
/* reset
========================================= */
* {
  margin: 0;
  padding: 0;
  line-height: 1.0;
}
html {
  background-color: #fff;
  font-size: 62.5%;
  height: 100%;
  width: 100%;
}
body {
  width: 100%;
  max-width: 640px;
  height: 100%;
  margin: 0 auto;
  padding: 0;
  background: #fff;
  font-family: serif;
  font-weight: 500;
  color: #333;
  letter-spacing: 0.05em;
}
h1, h2, h3, h4, h5, h6, p, address, ul, ol, li, dl, dt, dd, table, caption, th, td, img, form {
  margin: 0;
  padding: 0;
  border: none;
  line-height: 100%;
  font-style: normal;
  font-size: 100%;
  text-align: left;
  list-style-type: none;
  border-collapse: collapse;
  vertical-align: top;
  box-sizing: border-box;
}
.clearfix:after {
  content: ".";
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
}
.clearfix {
  overflow: hidden;
  display: inline-block;
}
/* Hides from IE-mac \*/
* html .clearfix {
  height: 1%;
}
* + html .clearfix {
  min-height: 1%;
}
.clearfix {
  display: block;
}
/* End hide from IE-mac */
div.t, ul.t {
  display: table;
}
div.t div.col, ul.t li.col {
  display: table-cell;
  vertical-align: top;
}
div.t_s, ul.t_s {
  display: table;
}
div.t_s div.col_s, ul.t_s li.col_s {
  display: table-cell;
  vertical-align: top;
  text-align: center;
}
p, a {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.7;
}
p {
  margin: 0 0 0 0;
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.7;
  font-weight: normal;
  padding: 0;
}
a {
  margin: 2em 0 0 0;
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.8;
  text-decoration: none;
  color: #000000;
}
h2 {
  padding: 0;
  text-align: center;
}
hr {
  border-width: 1px 0px 0px 0px; /* 太さ */
  border-style: solid; /* 線種 */
  border-color: #000000; /* 線色 */
  height: 1px; /* 高さ(※古いIE用) */
}
input[type="text"], input[type="tel"], input[type="email"], textarea {
  width: 100%;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 10px 10px;
  border: 1px solid #D3D3D3;
  background: #F7F7F7;
}
img, input[type="image"] {
  width: 100%;
  height: auto;
}
/*-- デフォルトスマホぼボタンCSS解除 --*/
input, button, select, textarea {
  -webkit-appearance: none;
}
input[type="submit"] {
  width: 100%;
  height: 60px;
  font-size: 1.8rem;
  margin: 40px 0 40px 0;
}

/* Design
========================================= */
/*PC・SP表示非表示*/
.pc {
  display: none;
}
@media screen and (min-width:640px) {
  .pc {
    display: inline-block;
  }
  .sp {
    display: none;
  }
}
body {
  font-size: 1.4rem;
}
h1 {
  font-size: 5.6rem;
}
h2 {
  font-size: 2.8rem;
}
/*共通*/
.m_img {
  width: 100%;
  height: auto;
}
/*footer*/
.f_wrap {
  margin: 0 auto;
  text-align: center;
  padding: 20px 0;
  background: #fff;
}
.f_wrap .f_wrap__inner {
  display: flex;
  justify-content: center;
  text-align: center;
  margin: 0 auto;
}
.f_wrap ul li {
  margin-bottom: 14px;
}
.f_wrap ul li:last-child {
  margin-left: 1.6rem;
}
.f_wrap ul li a {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.08em;
  margin-bottom: 14px;
}
.f_wrap .f_copy p {
  font-size: 11px;
  text-align: center;
}
.green{
  color: #39c032;
}
@media screen and (max-width: 30em) {
  .f_wrap {
    padding: 2rem 0.5rem 14rem;
  }
}
/*CVボタン*/
.line {
  background: #FFECF0;
  padding: 20px 0;
}
.line h2 {
  padding-top: 60px;
}
.line__btn {
  padding: 10px 0 0;
}
.line__btn__s {
  animation: btn 0.8s infinite alternate;
  padding: 0 15px 15px 15px;
}



@keyframes btn {
  from {
    transform: scale(0.95);
  }
  to {
    transform: scale(1.02);
  }
}
/*coupon*/
.coupon {
  background: #ffe8ec;
}
.coupon .text {
  padding: 40px 0 30px;
  font-size: 14px;
  text-align: center;
  font-weight: bold;
}



/* ------------------------

campaign

------------------------*/
.campaign {
  padding: 0 0 10px;
  background: #ffffff;
}



/* ------------------------

why

------------------------*/
.why{
  padding-bottom: 30px;
}
.why_area{
  margin: 20px;
  padding: 30px 20px;
  color: #fc0a70;
  box-shadow: 5px 5px #e57b93, -5px -5px;
  text-align: center;
}
.why_txt{
  color: #333;
  font-size: 24px;
  text-align: center;
}
.txt_pink{
 color: #fc0a70;
 font-weight: bold;
}
@media screen and (max-width:570px) {
.why_area{
  margin: 20px;
  padding: 30px 18px;
  font-size: 18px;
}
.why_txt{
  font-size: 18px;
}
.br-pc {
  display: none;
}
}
@media screen and (min-width: 570px){
.br-sp {
  display: none;
}
}

/* ------------------------

what

------------------------*/


/*line*/
.line {
  margin-top: 0;
  text-align: center;
}
/* point */
.point {
  background: #ffffff;
  padding: 20px 0 30px;
}
/*footer*/
.footer-info {
  width: 85%;
  margin: 0 auto 30px;
  font-size: 10px;
  line-height: 1.6;
  color: #5f5f5f;
}
@media screen and (min-width: 600px) {
  .footer-info {
    font-size: 18px;
  }
}
.open_b {
  margin: 0 22px 9px;
  background: #e9f4e9;
  color: #333;
  text-align: center;
}
.open_r {
  font-weight: bold;
  color: #e12c2c;
  font-size: 22px;
}
video {
  width: 101%;
}
/*line_dtl*/
.line_dtl {
  padding: 0 20px 20px;
}
.line_ttl {
  margin: 15px 15px -10px;
  padding: 10px;
  text-align: center;
  font-size: 18px;
  font-weight: bold;
  background: #000;
  border-radius: 100px;
  color: #fff;
  position: relative;
  z-index: 10;
}
.line_txt {
  background: #fff;
  padding: 20px 15px 15px;
  z-index: 1;
}
.line_list {
  padding-top: 10px;
  text-align: center;
}
.line_sub {
  font-size: 12px;
  text-align: right;
  margin: 10px 0 0;
}
.btn_img {
  filter: drop-shadow(3px 3px 5px rgba(255, 122, 153, 0.34));
}


/* ------------------------

checkbox

------------------------*/

.checkbox {
  margin: 2em 30px 0;
  border: solid 3px #ff006e;
  border-radius: 10px;
  background: #fff;
  padding: 20px;
  text-align: left;
  line-height: 2.5;
  font-size: 18px;
}

@media screen and (max-width: 640px){
  .checkbox {
    margin: 2em 4vw 0;
    padding: 3vw;
    font-size: 3.7vw;
  }
}

/*リセット */
input[type="checkbox"]  {
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;

  }

/* チェックボックスデザイン */
input[type="checkbox"] {
    cursor: pointer;
    padding-left: 30px;/*label手前にチェックボックス用の余白を開ける*/
    vertical-align: middle;
    position: relative;
  }
  input[type="checkbox"]::before,
  input[type="checkbox"]::after {
    content: "";
    display: block;
    position: absolute;
  }
  input[type="checkbox"]::before {
    background-color: #fff;
    border-radius: 0%;
    border: 1px solid #666464;
    width: 20px;/*チェックボックスの横幅*/
    height: 20px;/*チェックボックスの縦幅*/
    transform: translateY(-50%);
    top: 50%;
    left: 5px;
  }
  input[type="checkbox"]::after {
    border-bottom: 3px solid #ff006e;/*チェックの太さ*/
    border-left: 3px solid #ff006e;/*チェックの太さ*/
    opacity: 0;/*チェック前は非表示*/
    height: 6px;/*チェックの高さ*/
    width: 11px;/*チェックの横幅*/
    transform: rotate(-45deg);
    top: -7px;/*チェック時の位置調整*/
    left: 10px;/*チェック時の位置調整*/
  }
  input[type="checkbox"]:checked::after {
    opacity: 1;/*チェック後表示*/
  }


@media screen and (max-width: 640px){
   input[type="checkbox"]::after {
    border-bottom: 3px solid #ff006e;/*チェックの太さ*/
    border-left: 3px solid #ff006e;/*チェックの太さ*/
    opacity: 0;/*チェック前は非表示*/
    height: 6px;/*チェックの高さ*/
    width: 11px;/*チェックの横幅*/
    transform: rotate(-45deg);
    top: 0;/*チェック時の位置調整*/
    left: 10px;/*チェック時の位置調整*/
  }
}
