@charset "utf-8";
/* *********
共通
********** */
/* 追従TOPボタンここから */
html{
    scroll-behavior: smooth;
}

.backTop{
    position: fixed;
    top: 85%;
    right: 40px;
    z-index: 10;
}
/* ここまで */

body{
    width: 100%;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-size: 1.25rem;
}

p{
    line-height: 1.5;
}

img{
    display: block;
    max-width: 100%;
}

.wrapper .btn{
    width: 350px;
    height: 60px;
    margin-top: 50px;
    padding: 0;
    border: none;
    background: none;
    background-color: transparent;
    cursor: pointer;
    display: inline-block;
    outline: none;
    box-shadow: none;
}

.wrapper .btn:focus,
.wrapper .btn:active,
.wrapper .btn img:focus,
.wrapper .btn img:active{
    outline: none;
    box-shadow: none;
    border: none;
}
  
.wrapper .btn img{
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    display: block;
}
  
.wrapper .btn:active img{
    transform: translateY(2px);
}

.wrapper .btn:hover{
    opacity: 0.8;
}

.wrapper .btn-box{
    text-align: center;
}

li{
    list-style: none;
}

.flex{
    display: flex;
    align-items: center;
}

section{
    padding: 80px 0;
}

.wrapper .title h2{
    font-size: 2.813rem;
    font-weight: 700;
    text-align: center;
    padding-bottom: 30px;
    line-height: 1.5;
}

.wrapper h3{
    font-size: 2rem;
    font-weight: 500;
}

.top,
.chart .chart-container,
.registration-container{
    width: 66.62%;
    margin: 0 auto;
}

.difference,
.ranking{
    background-color: #e6e6e6;
}

.pc{
    display: block !important;
}

.sp{
    display: none !important;
}

/* ***************************************************
header(全員共通)
**************************************************** */
header{
    width: 100%;
    background-color: #ffffff;
    height: 80px;
}

#headerContentsBlock{
    width: 70%;
    display: flex;
    margin: 0 auto;
}

/* ヘッダー内ロゴ */
#mainlogo{
    margin-top: 20px;
}

/* オンラインショップ、ログインのブロック */
#shop_login{
    display: flex;
    margin-left: auto;

}

/* オンラインショップリンク */
#onlineShop{
    margin-top: 25px;
    margin-right: 60px;
}

/* ログイン */
#login{
    margin-top: 15px;
}

/* ナビゲーション（PC用） */
nav {
    height: 45px;
    background-color: #cdc3ca;
}

nav ul {
    display: table;
    margin: 0 auto;
    padding: 0;
    width: 70%;
    text-align: center;
}

nav li{
    display: table-cell;
    min-width: 50px;
}
  
nav a{
    display: block;
    width: 100%;
    text-decoration: none;
    color: #555;
    padding-top: 8px;
    padding-bottom: 3px;
    font-size: 20px;
}
  
nav li.current {
    border-bottom: 6px solid #ffffff;
}

nav li:hover {
    color: #f636ff;
    border-bottom: 6px solid #f636ff;
}

.mobile-only {
    display: none;
}

/* ハンバーガーアイコン（スマホのみ） */
.hamburger{
    display: none;
}
 
/* フッター */
footer{
    width: 100%;
    height: 40px;
    background-color: #cdc3ca;
    text-align: center;
    padding-top: 5px;
    font-size: 20px;
}
    
/* *********
fv
********** */
.fv{
    width: 100%;
    margin: 0 0 300px;
}

#slideshow{
    position: relative;
    max-width:  100%; /* 画像の横幅に合わせて記述 */
    height: 270px; /* 画像の高さに合わせて記述 */
}

#slideshow img{
    position: absolute;
    top: 0;
    left:0;
    z-index: 8;
    opacity: 0.0;
}

#slideshow img.active{
    z-index: 10;
    opacity: 1.0;
}

#slideshow img.last-active{
    z-index: 9;
}

/* *********
main
********** */

/* *********
TOP
********** */
.producer-container h3{
    padding: 32px 0;
}

.producer-box .detail .name{
    font-weight: 500;
    font-size: 1.25rem;
    border-bottom: 2px solid #f636ff;
    display: inline-block;
}

.producer-img{
    width: 27.47vw;
}

.producer-box{
    gap: 40px;
}

/* *********
difference
********** */
.difference-container{
    width: 66.62%;
    margin: 0 auto;
}

/* *********
chart
/* ********* */
.chart{
    background-image: url(../img/chart-backgroud.png);
    background-repeat: no-repeat;
    background-size: cover;
}

.difference .btn-box{
    text-align: center;
}

.chart .chart-container .title{
    text-align: center;
    line-height: 1.5;
} 


.chart  .chart-container .flex{
    gap: 100px;
}

.chart .flex img{
    width: 60.44vw;
}

.chart-container .flex .btn:hover{
    opacity: 0.8;
}
/* *********
ranking
********** */
.ranking .title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px; /* 飾りと文字の間に余白 */
    margin-bottom: 40px;
    position: relative;
}
  
.ranking .title .decoration img {
    width: 60px; /* 飾りのサイズは適宜調整 */
    height: auto;
}

.left-img {
    transform: translateY(-30px);
}
  
.right-img {
    transform: translateY(-30px);
}
  
.ranking img{
    width: 100vw;
}

.ranking-container{
    width: 66.62%;
    margin: 0 auto;
    gap: 100px;
    align-items: flex-start;
}

.ranking .flex .detail .sub-title{
    padding-bottom: 30px;
    text-align: center;
    line-height: 1.5;
}

.ranking  .detail .btn{
    display: inline-block;
    margin-left: 90px;
}

.ranking .detail .btn:hover{
    opacity: 0.8;
}

/* *********
registration
********** */
.registration .title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px; /* 飾りと文字の間に余白 */
    margin-bottom: 40px;
    position: relative;
}
  
.registration .title .decoration img {
    width: 40px; /* 飾りのサイズは適宜調整 */
    height: auto;
}

.left-img {
    transform: translateY(-15px);
}
  
.right-img {
    transform: translateY(-15px);
}

.registration p{
    width: 80%;
    margin: 0 auto;
    padding-bottom: 32px;
}

/* ボタンスタイル */
.registration .banner-btn{
    position: relative;
    display: inline-block;
    cursor: pointer;
    clip-path: polygon(0 0, 100% 0, 100% 90%, 90% 100%, 0 100%);
    /* ここで画像の形状を調整 */
}

.registration .banner-btn img{
    width: 100%; /* 画像サイズを調整 */
    height: auto;
}

.registration .banner-btn{
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* 押し込むエフェクト */
.registration .banner-btn:active {
    transform: translateY(2px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.registration .banner-btn:hover{
    opacity: 0.8;
} 

/* *********
footer
********** */
footer{
    width: 100%;
    height: 40px;
    background-color: #cdc3ca;
    text-align: center;
    padding-top:5px;
    font-size: 20px;
}
   
/***********************************************************
 小型PC（769px〜1024px） 
************************************************************/
@media screen and (min-width: 769px) and (max-width: 1024px) {
    body{
        font-size: 1.063rem;
    }

    .fv {
        width: 100%;
        margin: 0px 0 210px;
    }

    .top,
    .chart .chart-container,
    .registration-container,
    .difference-container,
    .ranking-container{
        width: 80%;
    }

    .wrapper .btn,
    .wrapper .btn img{
        width: 300px;
    }
    
    .producer-img {
        width: 40vw;
    }
     
    .chart .flex{
        gap: 60px;
    }
    
    .ranking .flex{
        gap: 60px;
    }
    
    .ranking .detail .btn{
        margin-left: 150px;
    }

    .wrapper .btn-box {
        text-align: center;
    }

    .wrapper .title h2{
        font-size: 2.5rem;
    }
    
    .wrapper h3{
        font-size: 2.188rem;
        font-weight: 600;
    }
    
    /* フッター */
    footer{
        width: 100%;
        margin: 0 auto;
    }

    footer p{
        display: block;
        text-align: center;
        padding: 5px 0;
        background-color: #cdc3ca;
    }

} 

/* ************************************************************
レスポンシブ(768px)
**************************************************************/
@media screen and (max-width: 768px){
    body{
        font-size: 1rem;
    }
    
    #headerContentsBlock{
        width: 90%;
        display: flex;
        margin: 0 auto;
    }
    
    .backTop{
        width: 50px;
    }

    nav ul{
        width: 90%;
    }

    .fv{
        width: 100%;
        margin: 0 0 80px;
    }

    section{
        padding: 40px 0;
    }

    .wrapper .title h2{
        font-size: 2rem;
        font-weight: 600;
        text-align: center;
        line-height: 1.5;
        margin-top: 20px;
    }
    
    .wrapper h3{
        font-size: 1.5rem;
    }

    .btn-box{
        text-align: center;
    }
      
    .wrapper .btn{
        width: 200px;
        height: 60px;
    }

    
    .producer-box{
        align-items: flex-start;
        gap: 30px;
    } 

    .chart .chart-container .flex{
        gap: 30px;
        align-items: flex-start;
    }

    .chart .detail{
        width: 250px;
    }
      
    .chart .chart-container .title::after{
        background-position: calc(38% + 60px) -7px, right 61px, 86% 27%;
        background-size: 8.79vw 8.79vw, 10vw 10vw, 22vw 22vw;
        width: 100%;
        height: 100%;
        display: block; /* 疑似要素の表示を保証 */
        opacity: 0.4;
    }

    .chart .btn{
        margin-top: 20px;
    }

    .ranking .sub-title{
        padding-bottom: 8px;
        text-align: center;
        line-height: 1.5;
    }

    .ranking h2{
        padding-bottom: 20px;
    }

    .ranking .detail{
        width: 500px;
    }

    .ranking .flex img{
        width: 500px;
    }

    .ranking-container{
        gap: 30px;
        align-items: flex-start;
    }

    .pc{
        display: none !important;
    }

    .sp{
        display: block !important;
    }

}

/*************************************************************
スマホ用スタイル（画面幅480px以下）
************************************************************ */
@media screen and (max-width: 480px){
    body{
        font-family: 'Zen Kaku Gothic New', sans-serif;
        background-color: #fff;
        font-size: 1rem;
    }

    section{
        padding: 40px 0;
    }

    header{
        background-color: #fff;
        height: 60px;
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    
    .backTop{
        width: 40px;
    }

    #headerContentsBlock{
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    #mainlogo img{
        height: 40px;
    }

    #shop_login{
        display: none;
    }

    .hamburger{
        position: absolute;
        right: 15px;
        top: 15px;
        width: 30px;
        height: 30px;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        cursor: pointer;
        z-index: 1001;
    }

    .hamburger span{
        display: block;
        height: 2px;
        background: #000;
        border-radius: 1px;
    }

    /* ナビゲーションの設定（スマホ表示時） */
    nav{
        display: none;
        flex-direction: column;
        width: 100%;
        position: fixed;
        top: 60px; /* ヘッダーの高さに合わせる */
        left: 0;
        z-index: 1000;
        padding-top: 20px;
        padding-bottom: 20px; /* メニューが画面いっぱいに広がらないように余白を設定 */
    }

    nav.active{
        display: flex;
    }

    nav ul{
        width: 100%; /* メニューの横幅を100%にする */
    }

    nav li{
        display: block;
        list-style: none;
        text-align: center;
        height: 60px;
        padding: 20px 0;
        border-bottom: 1px solid #aaa; /* メニュー項目の間に罫線 */
        background-color: #ffffffe4;
    }

    nav li:hover{
        background-color: #f685fc;
    }

    nav li a{
        text-decoration: none;
        color: #3f3e3e;
        font-size: 16px;
    }

    nav li a:hover{
        color: #ffffff;
        font-weight: 500;
    }

    nav li.mobile-only{
        display: block;
    }

    nav li.current {
        background-color: #dddcdc;
    }

    #slideshow{
        height: 200px;
    }
    /* スクロール禁止 */
    body.no-scroll{
        overflow: hidden;
    }
    
    .fv{
        padding-top: 20px;
        margin: 0 auto;
        margin-bottom: -40px;
    }

    #slideshow {
        height: 250px;
    }

    .btn{
        text-align: center;
    }

    .btn-box{
        margin-right: auto;
    }
    
    .wrapper .title h2{
        font-size: 1.5rem;
        margin-top: 0;
    }
    
    .wrapper h3{
        font-size: 1rem;
    }

    .sub-title{
        text-align: center;
    }

    .top,
    .chart .chart-container,
    .registration-container,
    .difference-container,
    .ranking-container{
        width: 85%;
    }
    
    .producer-img{
        width: 40vw;
    }
    
    .producer-box{
        flex-direction: column;
        align-items: center;
    }

    .producer-box .name{
        text-align: center;
        font-size: 0.75rem;
    }

    .chart .flex{
        flex-direction: column;
        gap: 40px;
    }

    .chart .chart-container .title::after{
        background-position: calc(-16% + 77px) 78px, right 101px, 106% -51%;
    }

    .chart .chart-container .flex{
        gap: 0;
        align-items: center;
    }

    .chart .detail{
        margin-top: 24px;
    }

    .ranking .flex{
        flex-direction: column;
    }

    .ranking-img{
        text-align: center;
        display: block;
        width: 85%;
        margin: 0 auto;
    }
    
    .ranking .title .decoration img {
        width: 40px; /* 飾りのサイズは適宜調整 */
        height: auto;
    }

    .ranking .left-img {
        transform: translateY(-25px);
    }
    
    .ranking .right-img {
        transform: translateY(-25px);
    }
    .ranking .title{
        margin-bottom: 0;
    }

    .ranking .detail{
        width: 310px;
        margin: 0 auto;
    }
    .ranking .detail .btn{
        margin-left: 0;
        display: block;
        margin: 0 auto;
    }

    .registration{
        margin-top: 30px;
    }

      
    .registration .title .decoration img {
        width: 30px; /* 飾りのサイズは適宜調整 */
        height: auto;
    }
    
    .registration .title {
        margin-bottom: 0;
    }

    .registration p {
        padding-bottom: 50px;
    }

  /* ボタン中央配置 */
    .registration .banner-btn{
        margin: 0 auto;
        display: block;
        max-width: 80%;
    }
}

