html {
	scroll-behavior: smooth;
  font-family: メイリオ, Meryo, sans-serif;
}
*{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
#app{
  font-size: 16px;
  p{font-size: 16px;}
  ul,li{
    list-style: none;
    font-size: 16px;
  }
  .sp-none{
    display:inherit;
  }
  .pc-none{
    display: none;
  }
  
  h1{
    font-size: 2.6rem;
    text-align: center;
    font-weight: bold;
    padding: 1rem;
    line-height: 150%;
    position: relative;
    z-index: 3;
  }
  h2{
    font-size: 20px;
    text-align: center;
    font-weight: bold;
    padding: 1rem;
  }
  h3 {
      display: block;
      font-size: 18px;
      font-weight: bold;
  }
  
  picture{
    display: flex;
    align-items: center;
    justify-content: center;
    img{
      max-width: 360px;
      width: 100%;
      height: auto;
      display: block;
    }
  }
  
  .section-wrap{
    width: 100%;
    padding: 3rem 2rem;
    .section-wrap-text{
      font-size: 16px;
      width: 100%;
      max-width: 640px;
      margin: 0 auto;
      padding: 2rem;
      text-align: center;
      font-weight: normal;
    }
    
  }
  
  #hero{
    background-color: #F9F4E4;
    background-image: url(https://sssk-lp.s3.ap-northeast-1.amazonaws.com/ss/line_link/assets/images/bg.jpeg);
    position: relative;
    z-index: 1;
    padding: 8rem 2rem 6rem;
    background-position: center;
    background-size: 150%;
    &::after{
      content: "";
      position: absolute;
      z-index: 2;
      width: 100%;
      height:100%;
      top: 0;
      left: 0;
      background-color: #F9F4E4;
      opacity: 0.7;
    }
    h1{
      margin-bottom: 1rem;
      line-height: 200%;
      font-size: 3.4rem;
      .hero-eng{
        font-size: 6rem;
      }
      .hero-jp{
        font-size: 5.4rem;
      }
    }
    .section-wrap-text{
      position: relative;
      z-index: 3;
    }
    .id-status-wrap{
      z-index: 3;
      position: relative;
      display: block;
      /* align-items: center;
      justify-content: center; */
      background-color: #FFF;
      font-weight: bold;
      margin: 0 auto;
      padding: 12px;
      width: 420px;
      border-radius: 4px;
      text-align: center;
      .custom-var-text{
        padding: 0 4px;
        color: red;
        font-size: 18px;
      }
      a{
        text-decoration: underline;
        padding: 0 4px;
        color: #009944;
      }
    }
  }
  #heroNav{
    position: relative;
    z-index: 3;
    width: 100%;
    ul{
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1rem;
      li{
        background-color: #3C8B41;
        border-radius: 4px;
        transition: all 0.2s;
        &:hover{
          scale: 1.04;
          transition: all 0.2s;
        }
        a{
          color: #FFF;
          width: 100%;
          display: flex;
          align-items: center;
          justify-content: space-between;
          padding: 0.75rem 2rem;
          text-decoration: none;
          gap: 1rem;
        }
      }
    }
  }
  
  
  #point{
    .point-box-wrap{
      width: 100%;
      display: block;
      margin: 0 auto;
      .point-box{
        width: 100%;
        max-width: 720px;
        margin: 0 auto;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 1rem;
        padding: 2rem;
        .point-box-image{
          width: 40%;
          /* padding: 0.5rem;
          background-color: #F9F4E4; */
          border: 3px solid #3C8B41;
          border-radius: 8px;
            img{
              max-width: 320px;
              border-radius: 8px;
          }
        }
        .point-box-body{
          width: 60%;
          padding: 1rem;
          h3{
            margin-bottom: 1rem;
          }
          h4{
            font-weight: normal;
          }
        }
      }
    }
  }
  
  #campaign{
    padding: 0 2rem 3rem;
    h2{
      width: 100%;
      max-width: 720px;
      display: block;
      margin: 0 auto 2rem;
      background-color: #3C8B41;
      color: #FFF;
    }
    .campaign-wrap{
      width: 100%;
      max-width: 720px;
      display: block;
      margin: 0 auto;
      .campaign-box{
        width: 100%;
        margin: 0 auto;
        padding: 2rem;
        .campaign-box-image{
          display: flex;
          align-items: center;
          justify-content: center;
          width: 100%;
          margin: 1rem auto;
          background-color: #FFF;
          padding: 2rem 4rem;
          /* border: 3px solid #3b8b41; */
          border-radius: 8px;
          img{
            max-width: 560px;
          }
        }
        .campaign-box-text{
          width: 100%;
          padding: 1rem 4rem;
          font-size: 14px;
        }
      }
    }
  }
  
  
  #howto{
    background-color: #F9F4E4;
    h2{
      width: 100%;
      max-width: 400px;
      display: block;
      margin: 0 auto 2rem;
      background-color: #3C8B41;
      color: #FFF;
    }
    h3{
      width: 100%;
      max-width: 720px;
      display: block;
      margin: 0 auto 2rem;
      text-align: center;
    }
    .how-to-wrap{
      width: 100%;
      max-width: 720px;
      display: block;
      margin: 0 auto;
      .how-to-box{
        background-color: #FFF;
        width: 100%;
        margin: 0 auto 2rem;
        padding: 2rem;
        border-radius: 0.5rem;
        .how-to-heading{
          width: 100%;
          display: flex;
          align-items: center;
          justify-content: flex-start;
          gap: 1rem;
          .how-to-step{
            width: 76px;
            height: 76px;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-wrap: wrap;
            text-align: center;
            line-height: 1;
            background-color: #3C8B41;
            color: #FFF;
            border-radius: 50%;
            padding: 1rem;
            font-size: 14px;
            strong{
              width: 100%;
              font-size: 32px;
              line-height: 1;
            }
          }
          h4{
            width: calc( 100% - 108px);
          }
        }
        .how-to-body{
          .how-to-image{
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            margin: 1rem auto;
            background-color: #EEE;
            padding: 2rem 4rem;
            img.qr-code{
              max-width: 240px;
            }
          }
          .how-to-text{
            width: 100%;
            padding: 1rem 4rem;
            font-size: 14px;
          }
          .how-to-button{
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            text-decoration: none;
            font-weight: bold;
            color: #FFF;
            button{
              width: 100%;
              max-width: 240px;
              padding: 0.5rem 1rem 0.5rem 2rem;
              background-color: #3C8B41;
              border: 2px solid #3C8B41;
              border-radius: 4px;
              color: #FFF;
              margin: 0 auto;
              transition: all 0.2s;
              cursor: pointer;
              display: flex;
              align-items: center;
              justify-content: center;
              span{
                width: 100%;
              }
              &:hover{
                scale: 1.04;
                transition: all 0.2s;
              }
            }
          }
        }
      }
    }
  }
  
  #faq{
  
    .accordion-wrap {
      width: 100%;
      max-width: 680px;
      margin: 0 auto;
    }
    
    .accordion-item {
      /* border-bottom: 1px solid #ddd; */
      border: 1px solid #ddd;
      margin-bottom: 2rem;
      border-radius: 8px;
      overflow: hidden;
      background-color: #FFF;
      .custom-var-text{
        padding: 0 4px;
        color: red;
        font-size: 18px;
      }
    }
    
    .accordion-header {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      padding: 1rem;
      cursor: pointer;
      gap: 2rem;
      transition: background-color 0.3s;
      background-color: #F9F4E4;
    }
    .accordion-icon {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      background-color: #3C8B41;
      color: #FFF;
      text-align: center;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: bold;
      line-height: 1;
      font-size: 1.25rem;
    }
    .accordion-text{
      width: 80%;
      a{
        text-decoration: underline;
        padding: 0 4px;
        color: #009944;
      }
    }
    .accordion-chevron{
      width: 32px;
      height: 32px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #3C8B41;
    }
    
    .accordion-header:hover {
      background-color: #f7f7f7;
    }
    
    .accordion-body {
      display: none;
      padding: 1rem;
      transition: all 0.3s ease-in-out;
    }
    
    .accordion-text {
      margin-left: 8px;
    }
    
    .accordion-chevron {
      transition: transform 0.3s ease-in-out;
    }
    
    .accordion-item.is-open .accordion-header {
      background-color: #F9F4E4;
    }
    .accordion-item.is-open .accordion-body {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      gap: 2rem;
    }
    
    .accordion-item.is-open .accordion-chevron {
      transform: rotate(180deg);
    }
    
    .accordion-item .accordion-body .accordion-icon {
      background-color: #F6EE50;
      color: #3C8B41;
      text-align: center;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: bold;
      line-height: 1;
    }
    
    .accordion-item .accordion-body .accordion-text {
      margin-left: 8px;
    }
  }
  
}

/* 初期状態 - 画面外で非表示 */
.fade-in-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease-out, transform 0.9s ease-in-out;
}

/* スクロールして画面内に入ったときのアニメーション */
.fade-in-up.visible {
  animation: fadeInUp 0.4s ease-in-out forwards; /* animationの指定 */
}

/* キーフレームアニメーション */
@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.bg_pattern {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: #fff;
  z-index: -1;
}
.Paper_v2 {
  background-image:
    repeating-linear-gradient(to bottom,
      transparent 25px,
      rgba(0, 0, 0, 0.04) 26px,  rgba(0, 0, 0, 0.04) 26px,
      transparent 27px,  transparent 51px, 
      rgba(0, 0, 0, 0.04) 52px,  rgba(0, 0, 0, 0.04) 52px,
      transparent 53px,  transparent 77px, 
      rgba(0, 0, 0, 0.04) 78px,  rgba(0, 0, 0, 0.04) 78px,
      transparent 79px,  transparent 103px, 
      rgba(0, 0, 0, 0.04) 104px,  rgba(0, 0, 0, 0.04) 104px,
      transparent 105px,  transparent 129px, 
      rgba(0, 0, 0, 0.04) 130px,  rgba(0, 0, 0, 0.04) 130px),
  
    repeating-linear-gradient(to right,
      transparent 25px,
      rgba(0, 0, 0, 0.04) 26px,  rgba(0, 0, 0, 0.04) 26px,
      transparent 27px,  transparent 51px, 
      rgba(0, 0, 0, 0.04) 52px,  rgba(0, 0, 0, 0.04) 52px,
      transparent 53px,  transparent 77px, 
      rgba(0, 0, 0, 0.04) 78px,  rgba(0, 0, 0, 0.04) 78px,
      transparent 79px,  transparent 103px, 
      rgba(0, 0, 0, 0.04) 104px,  rgba(0, 0, 0, 0.04) 104px,
      transparent 105px,  transparent 129px, 
      rgba(0, 0, 0, 0.04) 130px,  rgba(0, 0, 0, 0.04) 130px);
}



.ribbon1 {
  display: inline-block;
  position: relative;
  text-align: center;
  padding: 0 30px;/*横の大きさ*/
  font-size: 1.4rem;/*文字の大きさ*/
  background: #f57a78;/*塗りつぶし色*/
  color: #FFF;/*文字色*/
  box-sizing: border-box;
}

.ribbon1:before, .ribbon1:after {
  position: absolute;
  content: '';
  width: 0px;
  height: 0px;
  z-index: 1;
}

.ribbon1:before {
  top: 0;
  left: 0;
  border-width: 25px 0px 25px 15px;
  border-color: transparent transparent transparent #fff;
  border-style: solid;
}

.ribbon1:after {
  top: 0;
  right: 0;
  border-width: 25px 15px 25px 0px;
  border-color: transparent #fff transparent transparent;
  border-style: solid;
}