/* 変数 */
:root {
  --main-color: #23baa6;
  --btn-color: #f61061;
  --light-color:#dffaf6;
  --fs-s:16px;
  --fs-s:16px;
  --fs-m:24px;
  --fs-l:30px;
  --fs-ti-sub:36px;
  --fs-ti:48px;
  --section-padding: 80px 0;
}
body{
  background: url(../img/lp-bg.jpg) var(--light-color);
  background-repeat: no-repeat;    /* 繰り返さない */
  background-position: center top; /* 表示位置（中央上） */
  background-attachment: fixed;    /* 固定表示 */
  background-size: cover;
}
.sp-box{
  max-width: 750px;
  margin: 0 auto;
  background: #fff;
}
.fc-red{color: var(--btn-color);}
.fs-m{font-size: var(--fs-m);}

/* sec01 */
.sec01 {
    padding-bottom: 4em;
}
.sec01-movie {
    text-align: center;
}
.sec01-movie video {
    max-width: 100%;
}
.sec01-movie-box{
  padding: 40px;
}
.sec01-movie button.play-button {
    background: var(--btn-color);
    color: #fff;
    line-height: 1;
    font-size: var(--fs-m);
    padding: 1em 3em;
    border-radius: 1em;
}
.sec01-movie-flow{
  margin-top: 2em;
  padding: 2em;
}
.sec01-movie-flow h3{
  font-size: var(--fs-m);
  background: var(--main-color);
  color: #fff;
  text-align: center;
  border-radius: 20px 20px 0 0 ;
  padding: 1em 0;
  line-height: 1;
}
.sec01-movie-flow ul{
  background: var(--light-color) ;
  padding: 1em 2em 2em;
  border-radius:0 0 20px 20px;
}
.sec01-movie-flow ul li {
    padding-bottom: 1em;
    border-bottom: 1px dotted var(--main-color);
    margin-top: 1em;
}
@media (max-width: 750px) {
.sec01-movie{
    padding: 4vw;
}
    .play-button {
      padding: 12px 24px;
      font-size: 16px;
      background-color: #007bff;
      color: #fff;
      border: none;
      border-radius: 8px;
      cursor: pointer;
      transition: background-color 0.3s ease;
    }
    .play-button:hover {
      background-color: #0056b3;
    }
video {
  width: 100%;
  height: auto;
  display: block;
}
}
/* 
sec02 */
.sec02{
  text-align: center;
}

/* 
sec04 */
.sec04{
  text-align: center;
}
.sec04-img01 ,
.sec04-img02 ,
.sec04-img03 ,
.sec04-img04{
  margin-bottom: 120px;
}
/* 
sec05 */
.sec05{
  text-align: center;
}
/* 
sec06 */
.sec06{
  padding: 80px 0;
  text-align: center;
}
/* 
plan */
.plan{padding: 80px 0;
background: var(--light-color);}
.plan h2{
  text-align: center;
  font-size: 48px;
  font-weight: bold;
  color: var(--main-color);
  margin-bottom: 1em;
}
.plan-table{
  padding: 0 5%;
}
.plan-table table{width: 100%;}
.plan-table table th ,
.plan-table table td{
  background: #fff;
  border: 1px solid #ccc;
  padding: 1em;
  box-sizing: border-box;
  text-align: center;
}
.plan-table table td:nth-child(1){
  text-align: left;
}
.shoki{margin-top: 1em;}

/* faq */
.faq{
  padding: 80px 40px;
}
.faq h2{
  text-align: center;
  font-size: 48px;
  font-weight: bold;
  color: var(--main-color);
  margin-bottom: 1em;
}

.faq dt {
  cursor: pointer;
  padding: 15px 20px;
  background: #f8f8f8;
  border-left: 4px solid var(--main-color);
  font-weight: bold;
  transition: background 0.3s;
  position: relative;
  margin: 0;
}

.faq dt:hover {
  background: #f0f0f0;
}

.faq dt::after {
  content: '＋';
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.2em;
  color: var(--main-color);
  transition: transform 0.3s;
}

.faq dt.open::after {
  content: '−';
}

.faq dd {
  display: none;
  padding: 15px 20px;
  background: #fafafa;
  border: 1px solid #ddd;
  border-top: none;
  line-height: 1.6;
  margin: 0 0 20px 0;
}
@media (max-width: 750px) {
  /*class*/
  .sp_only {
    display: block;
  }

  .section h2 {
    font-size: 2em;
  }
  .section h2:before {
    width: 16vw;
    height: 4px;
  }
  .section h2:after {
    width: 8vw;
    height: 4px;
  }
}
