html{
    font-size: 100%;
    font-feature-settings: "palt";
  }
  
  
  body{
    background-color: #fdf8f8;
    color: #333;
    font-family: "YuGothic", 'Yu Gothic',sans-serif;
  }
  img{
    max-width: 100%;
    vertical-align: bottom;
    object-fit: cover;
  }
  li{
    list-style: none;
  }
  a{
    color: #fff;
    text-decoration: none;
  }
  a:hover{
    opacity: 0.7;
  }
  header{
    font-family: "Lora", serif;
    font-optical-sizing: auto;
    padding-inline: 4vw;
    padding-block: 2vw;
    display: flex;
    align-items: center;
    opacity: 0;
    translate: 0 -100%;
    animation: appear 1s .8s ease-in-out forwards;
    color: #fff;
    .logo{
      font-size: 2vw;
      font-weight: 600;
      color: #fff;
    }
    nav{
      margin-left: auto;
      ul{
        display: flex;
        align-items: center;
        gap: 3vw;
        a{
          font-size: 1.2vw;
          font-weight: 300;
          color: #fff;
          font-family: "Lora", serif;
          font-optical-sizing: auto;
        }
      }
    }
  }
  
  @keyframes appear{
    to{
      translate: 0;
      opacity: 1;
    }
  }
  
  @keyframes clip-fv{
    from{
      clip-path: inset(0 0 0 0);
    }
    to{
      clip-path: inset(0 0 0 100%);
    }
  }
  
  .fv{
    color: #fff;
    font-family: "YuGothic", 'Yu Gothic',sans-serif;
    height: 100vh;
    width: 100%;
    display: grid;
    grid-template-rows: auto 1fr;/* この設定では、最初の行の高さをコンテンツに合わせて自動調整し、残りの行の高さをコンテナの空きスペース全体に配分します */
    background-image: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.5)),url(./images/cake.jpg);
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
    &::before{
      content: "";
      display: block;
      background-color: #f4eaea;
      position: absolute;
      inset: 0;/* 親要素いっぱいに広がる */
      animation: clip-fv 1s ease forwards;
      z-index: 1;
    }
    .hero{
      
      color: #fff;
      text-align: center;
      display: grid;
      place-items: center;
      align-content: center;
      position: relative;
  
      h2{
        font-size: 5vw;
        font-weight: 900;
        line-height: 0;
        display: grid;
        gap: .5em;
        span{
          display: block;
          line-height: 1;
          opacity: 0;
          translate: 0 2vw;
          animation: appear 1s .8s cubic-bezier(.17,.88,.44,1) forwards;
          font-family: "Lora", serif;
          font-optical-sizing: auto;
        }
       
      }
      .text{
        font-size: 1vw;
        line-height: 2;
        letter-spacing: 0.08em;
        animation: appear 1s 0.8s ease-in-out forwards;
        translate: 0 5vw;
        opacity: 0;
        font-family: "YuGothic", 'Yu Gothic',sans-serif;
      }
      .scroll{
        writing-mode: vertical-lr;
        position: absolute;
        inset: auto auto 0 3vw;
        opacity: 0;
        translate: -5rem;
        animation: appear 1s 1s ease forwards;
        a{
          font-family: "Lora", serif;
          font-optical-sizing: auto;
          font-size: 1.4vw;
          display: grid;
          grid-template-columns: auto 1fr;
          align-items: center;
          inline-size: 16vw;
          gap: 0.5vw;
          &::after{
            content: "";
            display: block;
            background-image: 
              linear-gradient(
                to bottom,
                rgb(255 255 255/1),
                rgb(255 255 255/0)
              )
            ;
            block-size: 0.4vw;
          }
        }
      }
    }
  }
  .wrapper{
    max-width: 1040px;
    padding: 0 20px;
    margin: 0 auto;
  
  }
  .concept{
    padding-top: 130px;
    padding-bottom: 130px;
    position: relative;
  }
  
  .concept .text .description{
    font-size: 15px;
    line-height: 1.8;
    text-align: justify;
  }
  .concept .img{
    max-width: 720px;
  }
  .concept .text{
    max-width: 600px;
    background-color: rgba(253, 248, 248, 0.8);
    padding: 40px;
    position: absolute;
    top: 325px;
    right: 0;
  }
  .concept .text .section-title{
    font-family: "YuGothic", 'Yu Gothic',sans-serif;
    font-size: 30px;
    font-weight: normal;
    line-height: 1.5;
    margin-bottom: 20px;
  
  }
  .concept .text .description{
    font-family: "YuGothic", 'Yu Gothic',sans-serif;
    font-size: 15px;
    line-height: 1.8;
    text-align: justify;
  }
  .new-products{
    font-family: "YuGothic", 'Yu Gothic',sans-serif;
    background-color: #f4eaea;
    padding: 130px 0;
   
  }
  .new-products .section-title{
    font-family: "Lora", serif;
    font-optical-sizing: auto;
    font-size: 80px;
    font-weight: normal;
    letter-spacing: 0.1em;
    line-height: 1.2;
    margin-bottom: 40px;
  }
  .new-products .img-group{
    height: 890px;
    position: relative;
  }
  .new-products .img-group .img1{
    max-width: 350px;
    position: absolute;
    top: 0;
    left: 42%;
    z-index: 30;
  }
  .new-products .img-group .img2{
    max-width: 450px;
    position: absolute;
    top: 250px;
    left: 8%;
    z-index: 20;
  }
  .new-products .img-group .img3{
    max-width: 480px;
    position: absolute;
    top: 511px;
    left: 40%;
    z-index: 10;
  }
  .new-products .img-group .circle{
    width: 90px;
    height: 90px;
    border-radius: 50%;
    background-color: #333;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    line-height: 1.2;
    text-align: center;
    position: absolute;
    top: -45px;
    right: -13%;
    z-index: 40;
  }
  .new-type{
    display: flex;
    align-items: center;
    padding-top: 130px;
  }
  .new-type:nth-of-type(2){
    display: flex;
    align-items: center;
   padding-top: 0;
   padding-bottom: 130px;
  }
  
  
  .new-type .text{
    width: 50%;
  
  }
  
  .new-type .text .text-inner{
    max-width: 500px;
    padding: 0 60px 0 20px;
    margin-left: auto;
  }
  
  .new-type .text .section-title{
    font-family: 'Yumincho','Yu mincho',serif;
    font-size: 30px;
    font-weight: normal;
    line-height: 1.5;
    margin-bottom: 20px;
  }
  
  
  .new-type .text .description{
    font-size: 15px;
    line-height: 1.8;
    text-align: justify;
  }
  
  .new-type .img{
    width: 50%;
  }
  
  .new-type .img img{
    width: 100%;
    height: 480px;
    object-fit: cover;
    object-position: left;
  }
  
  .online-store{
    width: 100%;
    height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-image: url(../img/bg.jpg);
    background-color: rgba(255, 255, 255, 0.5);
    background-blend-mode: lighten;
    /* 背景画像を透過させる場合、そのままでは透明度の設定ができないため「background-color」と「background-blend-mode」をセットで使用して透明度を設定します。 */
    background-position: center top;
    background-size: cover;
  }
  
  .online-store .box{
    width: 100%;
    max-width: 500px;
    background-color: rgba(0, 0, 0, 0.5);
    padding: 50px 0;
    text-align: center;
  }
  
  
  .box .title{
      color: #fff;
      font-size: 28px;
      font-weight: bold;
      margin-bottom: 50px;
      
  }
  
  .box .btn{
    background-color: #fff;
    display: inline-block;/* ボタンに高さと横幅を持たせている */
    font-size: 14px;
    padding: 10px 30px;
    position: relative;
  }
  
  .box .btn:after{
   content: "";
   width: 40px;
  height: 1px;
  background-color: #333;
  position: absolute;
  top: 20px;
  right: -20px;
  }
  #footer{
    background-color: #666;
    padding: 30px 0;
    margin-top: 15%;
  }
  #footer .inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  #footer .logo{
    font-size: 15px;
    color: #fff;
  }
  #footer .copyright{
    color: #fff;
    font-size: 12px;
  }
  @media screen and (max-width:760px){
    header{
      font-family: "Lora", serif;
      font-optical-sizing: auto;
      padding-inline: 4vw;
      padding-block: 2vw;
      display: flex;
      align-items: center;
      opacity: 0;
      translate: 0 -100%;
      animation: appear 1s .8s ease-in-out forwards;
      color: #fff;
      .logo{
        font-size: 3vw;
        font-weight: 600;
        color: #fff;
      }
      nav{
        margin-left: auto;
        ul{
          display: flex;
          align-items: center;
          gap: 3vw;
          a{
            font-size: 2vw;
            font-weight: 300;
            color: #fff;
            font-family: "Lora", serif;
            font-optical-sizing: auto;
          }
        }
      }
    }
    
    @keyframes appear{
      to{
        translate: 0;
        opacity: 1;
      }
    }
    
    @keyframes clip-fv{
      from{
        clip-path: inset(0 0 0 0);
      }
      to{
        clip-path: inset(0 0 0 100%);
      }
    }
    
    .fv{
      color: #fff;
      font-family: "YuGothic", 'Yu Gothic',sans-serif;
      height: 100vh;
      width: 100%;
      display: grid;
      grid-template-rows: auto 1fr;/* この設定では、最初の行の高さをコンテンツに合わせて自動調整し、残りの行の高さをコンテナの空きスペース全体に配分します */
      background-image: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.5)),url(./images/cake.jpg);
      background-position: center center;
      background-size: cover;
      background-repeat: no-repeat;
      position: relative;
      &::before{
        content: "";
        display: block;
        background-color: #f4eaea;
        position: absolute;
        inset: 0;/* 親要素いっぱいに広がる */
        animation: clip-fv 1s ease forwards;
        z-index: 1;
      }
      .hero{
        
        color: #fff;
        text-align: center;
        display: grid;
        place-items: center;
        align-content: center;
        position: relative;
    
        h2{
          font-size: 7vw;
          font-weight: 900;
          line-height: 0;
          display: grid;
          gap: .5em;
          span{
            display: block;
            line-height: 1;
            opacity: 0;
            translate: 0 2vw;
            animation: appear 1s .8s cubic-bezier(.17,.88,.44,1) forwards;
            font-family: "Lora", serif;
            font-optical-sizing: auto;
          }
         
        }
        .text{
          font-size: 1.8vw;
          line-height: 2;
          letter-spacing: 0.08em;
          animation: appear 1s 0.8s ease-in-out forwards;
          translate: 0 5vw;
          opacity: 0;
          font-family: "YuGothic", 'Yu Gothic',sans-serif;
        }
        .scroll{
          writing-mode: vertical-lr;
          position: absolute;
          inset: auto auto 0 3vw;
          opacity: 0;
          translate: -5rem;
          animation: appear 1s 1s ease forwards;
          a{
            font-family: "Lora", serif;
            font-optical-sizing: auto;
            font-size: 1.8vw;
            display: grid;
            grid-template-columns: auto 1fr;
            align-items: center;
            inline-size: 16vw;
            gap: 0.5vw;
            &::after{
              content: "";
              display: block;
              background-image: 
                linear-gradient(
                  to bottom,
                  rgb(255 255 255/1),
                  rgb(255 255 255/0)
                )
              ;
              block-size: 0.4vw;
            }
          }
        }
      }
    }
    #header .logo{
      max-width: 85px;
      top: 20px;
      left: 20px;
    }
    .mainvisual img{
      height: 480px;
    }
    .concept {
      padding-top: 40px;
      padding-bottom: 40px;
      position: static;
    }
    .concept .img{
      margin-bottom: 30px;
    }
    .concept .text{
      background-color: transparent;
      padding: 0;
      position: static;
    }
    .concept .text .section-title{
      font-size: 24px;
    
    }
    .new-products{
      padding: 40px 0;
     
    }
    .new-products .section-title{
      font-size: 40px;
      margin-bottom: 30px;
    }
    .new-products .img-group{
      height: auto;
      position: static;
    }
    .new-products .img-group .img1{
      margin: 0 auto 20px;
      position: relative;
      top: auto;
      left: auto;
    }
    .new-products .img-group .img2{
      margin: 0 auto 20px;
      position: static;
    }
    .new-products .img-group .img3{
      margin: 0 auto;
      position: static;
    }
    .new-products .img-group .circle{
      width: 70px;
      height: 70px;
      font-size: 16px;
      top: -13px;
      right: -13px;
    }
    .new-type{
      flex-direction: column;
    }
    .new-type .text{
      width: 100%;
      margin-bottom: 30px;
    
    }
    .new-type .text .text-inner{
     max-width: 100%;
     padding: 0;
    }
    .new-type .text .section-title{
      font-size: 24px;
     }
     .new-type .img{
      width: 100%;
     }
     .new-type .img img{
      height: auto;
      object-fit: contain;
      
     }
     #footer{
      background-color: #666;
      padding: 15px 0;
    }
    #footer .logo{
      font-size: 3vw;
      color: #fff;
    }
  }
  