@charset "UTF-8";
/*==============================================================================
1.共通事項
2.fv
3.イントロ
4.ギャラリー
5.クリエイティブ
6.美味しい食べ方
7.ギフト（削除）
8.キャンペーン

▼▼▼▼追加コンテンツ▼▼▼
9.purpose
==============================================================================*/

@media all and  (min-width: 769px) {
    header{
        width: 450px;
        top: 400px;
        left: 120px;
        position: absolute;
    }
    header .header-inner {
        padding: 0;
        min-width: unset;
        border-radius: 0;
        background-color: transparent;
        transition: 500ms;
    }
    header .logo-wrap {
        display: none;
        opacity: 0;
        transition: 500ms;
    }
    header nav ul.menu-base{
        flex-direction: column;
        gap: 25px;
    }

    .nav-scroll{
        position: fixed;
        width: 100%;
        top: 20px;
        left: 0;
        opacity: 0;
        transition: 500ms;
        z-index: 9999;
    }
    header.on + .nav-scroll{
        opacity: 1;
    }
    .nav-scroll .inner{
        max-width: calc(100% - 20px);
        position: relative;
    }
    .nav-scroll .logo{
        position: absolute;
        left: 20px;
        top: 10px;
        width: 130px;
        aspect-ratio: 161 / 51;
        font-size: 0;
        color: transparent;
        background: url(../1_img/base/logo-horizontal.svg) no-repeat center / 100% auto;
        z-index: 1;
    }
    .nav-scroll ul{
        padding: 0 20px 0 180px;
        height: 60px;
        display: flex;
        gap: 0 20px;
        justify-content: space-around;
        align-items: center;
        background-color: #fff;
        border-radius: 10px;
        filter: drop-shadow(0px 2px 5px rgba(135, 135, 135, 0.3));
    }
    .nav-scroll ul::before {
        content: "";
        width: 50px;
        aspect-ratio: 76 / 20;
        position: absolute;
        left: 10px;
        bottom: 100%;
        background: url(../1_img/base/deco-cream-white.svg) center / 100% auto;
        filter: drop-shadow(0px -3px 2px rgba(135, 135, 135, 0.1));
    }
    .nav-scroll li.home {
        display: none;
    }


    .nav-scroll ul li a,
    header nav ul.menu-base > li > a{
        padding-left: 20px;
        display: inline-block;
        position: relative;
        font-size: 1.4rem;
        font-weight: var(--weight-bold);
    }
    .nav-scroll ul li a::before,
    header nav ul.menu-base > li a::before{
        content: "";
        position: absolute;
        width: 10px;
        aspect-ratio: 1 / 1;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
        border-radius: 100%;
    }
    .nav-scroll ul li:nth-child(1) a::before,
    header nav ul.menu-base li:nth-child(1) a::before{
        background-color: #f28e2d;
    }
    .nav-scroll ul li:nth-child(2) a::before,
    header nav ul.menu-base li:nth-child(2) a::before{
        background-color: #4c7193;
    }
    .nav-scroll ul li:nth-child(4) a::before,
    header nav ul.menu-base li:nth-child(4) a::before{
        background-color: #7aa662;
    }
    .nav-scroll ul li:nth-child(5) a::before,
    header nav ul.menu-base li:nth-child(5) a::before{
        background-color: #ff8371;
    }
}


@media all and  (min-width: 769px) and (max-width: 900px) {
    header.on + .nav-scroll li a{
        font-size: 1.2rem;
    }
}


/*============================================================================================================================================================
==============================================================================================================================================================

	1.共通事項

==============================================================================================================================================================
============================================================================================================================================================*/
.top-h2{
    text-align: center;
    font-family: var(--font-sub);
    font-weight: var(--weight-bold);
    font-size: 3.4rem;
}
@media all and (max-width: 768px){
    .top-h2{
        font-size: 2.2rem;
    }
}

/* スライダーのチラ見え防止 */
.slider-fv {
	visibility: hidden;
	opacity: 0;
}
.slider-fv.slick-initialized{
	visibility: visible;
	opacity: 1;
	transition: opacity 0.3s ease;
}
/* カルーセルのチラ見え防止 */
ul.carousel{
    gap: 0 20px;
    visibility: hidden;
	opacity: 0;
    height: 0;
}
.is-ready ul.carousel {
    visibility: visible;
	opacity: 1;
    height: auto;
	transition: opacity 0.3s ease;
}

/*============================================================================================================================================================
==============================================================================================================================================================

	2.fv

==============================================================================================================================================================
============================================================================================================================================================*/
#fv{
    position: relative;
    height: 750px;
    background-color: var(--color-main);
}
/*================================    ロゴとテキスト   ================================*/
#fv .fv-text{
    padding: 70px 0 0 120px;
    padding-left: 120px;
    width: 450px;
    height: 100%;
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    background-color: var(--color-main);
    font-weight: var(--weight-bold);
}
#fv .fv-text::before{
    content: "";
    width: 260px;
    height: 750px;
    position: absolute;
    top: 0;
    left: 100%;
    background: url(../1_img/front/fv-pc-deco.svg) no-repeat center / 100% auto;
}
#fv .fv-text .inner{
    width: 100%;
}
#fv .fv-text .inner .logo img{
    width: 135px;
}
#fv .fv-text .inner h2{
    margin-top: 50px;
    color: #fff;
}
#fv .fv-text .inner h2 span{
    display: block;
    letter-spacing: 0.15em;
}
#fv .fv-text .inner h2 span.text-1{
    font-size: 2rem;
}
#fv .fv-text .inner h2 span.text-2{
    font-size: 3.1rem;
}
#fv .fv-text .inner h2 em{
    display: inline-block;
    position: relative;
}
#fv .fv-text .inner h2 em::after{
    content: "";
    width: 110%;
    aspect-ratio: 7 / 2;
    position: absolute;
    transform: translateX(-50%);
    left: 50%;
    bottom: 0;
    background-color: var(--d-3);
    -webkit-mask-image: url("../1_img/front/brush.svg");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    -webkit-mask-image: url("../1_img/front/brush.svg");
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
    z-index: -1;
    animation: bgChange 50s infinite ease-in-out;
    animation-direction: alternate;
}
@keyframes bgChange {
    0%    { background-color: var(--d-6); }  /* ストロベリー */
    10%   { background-color: var(--d-6); }

    11%   { background-color: var(--d-10); }  /* ニッキ */
    20%   { background-color: var(--d-10); }
    
    21%   { background-color: var(--d-13); }  /* オランジュ */
    30%   { background-color: var(--d-13); }
    
    31%   { background-color: var(--d-12); }  /* 芋 */
    40%   { background-color: var(--d-12); }
    
    41%   { background-color: var(--d-8); }  /* ミルクティ */
    50%   { background-color: var(--d-8); }
    
    51%   { background-color: var(--d-9); }  /* マスカット */
    60%   { background-color: var(--d-9); }
    
    61%   { background-color: var(--d-4); }  /* レアチーズ */
    70%   { background-color: var(--d-4); }

    71%   { background-color: var(--d-1); }  /* カスタード */
    80%   { background-color: var(--d-1); }

    81%   { background-color: var(--d-11); }  /* ピーチ */
    90%   { background-color: var(--d-11); }
    
    91%   { background-color: var(--d-5); }  /* 抹茶 */
    100%  { background-color: var(--d-5); }
}
/*================================    写真   ================================*/
#fv picture{
    margin-left: auto;
    width: calc(100% - 450px);
    height: 100%;
    display: block;
}
#fv picture img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/*==============================================================================

	fv スマホ

==============================================================================*/
@media all and (max-width: 768px){
    #fv{
        height: calc(100svh - 55px);
    }
    /*================================    ロゴとテキスト   ================================*/
    #fv .fv-text{
        padding: 0 0 90px 0;
        width: 100%;
        display: flex;
        align-items: end;
        background-color: unset;
    }
    #fv .fv-text::before{
        width: 100%;
        height: auto;
        aspect-ratio: 360 / 53;
        top: unset;
        bottom: 150px;
        left: 0;
        background: url(../1_img/front/fv-wave.svg) no-repeat center / 100% auto;
        z-index: 1;
    }
    #fv .fv-text::after{
        content: "";
        width: 100%;
        height: 150px;
        position: absolute;
        bottom: 0;
        left: 0;
        background-color: var(--color-main);
    }
    #fv .fv-text .inner{
        display: flex;
        align-items: end;
        justify-content: right;
    }
    #fv .fv-text .inner .logo{
        position: absolute;
        top: 30px;
        left: 20px;
    }
    #fv .fv-text .inner .logo img{
        width: 127px;
    }
    #fv .fv-text .inner h2{
        margin-top: 15px;
        position: relative;
        z-index: 2;
    }
    #fv .fv-text .inner h2 span.text-1{
        font-size: 1.4rem;
    }
    #fv .fv-text .inner h2 span.text-2{
        font-size: 2.2rem;
    }
    /*================================    写真   ================================*/
    #fv picture{
        width: 100%;
        height: 100%;
    }
}

/*============================================================================================================================================================
==============================================================================================================================================================

	3.イントロ

==============================================================================================================================================================
============================================================================================================================================================*/
#intro{
    padding-bottom: 430px;
    position: relative;
    z-index: 2;
    background-color: var(--color-main);
    color: #fff;
}
#intro .intro-text{
    margin-top: -30px;
    text-align: center;
}
#intro .intro-text h2{
    margin-bottom: 30px;
}
#intro .intro-text p{
    font-size: 1.6rem;
    line-height: 3;
}
#intro .intro-text p em{
    display: inline-block;
    position: relative;
}
#intro .intro-text p em::after{
    margin-left: -5px;
    content: "";
    width: 110%;
    aspect-ratio: 7 / 2;
    position: absolute;
    transform: translateX(-50%);
    left: 50%;
    bottom: 4px;
    background-color: #ff8963;
    -webkit-mask-image: url("../1_img/front/brush.svg");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    -webkit-mask-image: url("../1_img/front/brush.svg");
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
    z-index: -1;
}
#intro .carousel-intro-1{
    transform: translateY(-50%);
}
#intro .carousel-intro-2{
    width: 100%;
    position: absolute;
    left: 0;
    bottom: 340px;
}
#intro .carousel-intro-3{
    width: 100%;
    position: absolute;
    left: 0;
    bottom: 120px;
}
/*================================    スケジュール   ================================*/
#schedule{
    margin-top: 80px;
    padding: 40px;
    background-color: var(--color-base);
    color: var(--color-font);
    position: relative;
    z-index: 1;
}
#schedule h3{
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    font-size: 2.2rem;
    font-weight: var(--weight-bold);
}
#schedule h3 span{
    display: block;
}
#schedule h3 span[lang="ja"]{
    margin-left: 20px;
}
#schedule h3 img{
    max-width: 100%;
}
#schedule .schedule-hide{
    padding-top: 20px;
    display: none;
}
/*============= スケジュール 中身 ==============*/
#schedule .schedule-list-wrap{
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}
#intro .schedule-none{
    padding: 10px;
    text-align: center;
    background-color: #fff;
}
#schedule .schedule-list{
    padding: 10px 20px;
    width: calc((100% - 20px) / 2);
    display: flex;
    align-items: center;
    background-color: #fff;
}
/* 日付等 */
#schedule .schedule-list time{
    width: 140px;
    font-weight: var(--weight-bold);
}
#schedule .schedule-list time .year{
    font-size: 1.6rem;
}
#schedule .schedule-list time .month-date{
    font-size: 2rem;
    line-height: 1.3;
}
#schedule .schedule-list time .month-date span{
    display: inline-block;
    letter-spacing: 0.1em;
}
/* 詳細情報 */
#schedule .schedule-list .info{
    padding: 5px 0 5px 20px;
    width: calc(100% - 140px);
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-left: 1px solid var(--color-main);
    font-size: 1.4rem;
    font-weight: var(--weight-bold);
}
#schedule .schedule-list .info .map{
    margin-top: 10px;
    padding-left: 15px;
    position: relative;
}
#schedule .schedule-list .info .map::before{
    content: "";
    width: 11px;
    height: 14px;
    position: absolute;
    top: 0.35em;
    left: 0;
    background: url(../1_img/front/schedule-map.svg) center / 100% auto;
}
/*============= スケジュール 開閉ボタン ==============*/
#schedule .schedule .schedule-button-wrap{
    margin-top: 15px;
    text-align: center;
    position: relative;
}
#schedule .schedule .schedule-button-wrap button{
    display: inline-block;
    width: 14px;
    position: absolute;
    left: 50%;
    aspect-ratio: 1 / 1;
    border-right: 2px solid var(--color-sub);
    border-bottom: 2px solid var(--color-sub);
    transform: translateX(-50%) rotate(45deg);
    transition: 500ms;
}
#schedule .schedule .schedule-button-wrap button.open{
    transform: translateX(0%) rotate(-135deg) translateY(-10px);
}
/*================================    飾りの背景   ================================*/
#intro .intro-bg{
    background-position: bottom center;
    background-size: 100% auto;
}
/*==============================================================================

	イントロ スマホ

==============================================================================*/
@media all and (max-width: 768px){
    #intro{
        padding-bottom: 0;
    }
    #intro .intro-text{
        margin-top: 0;
    }
    #intro .intro-text p{
        font-size: 1.5rem;
    }
    #intro .carousel-intro-2{
        position: unset;
        margin-top: 60px;
    }
    #intro .carousel-intro-3{
        position: unset;
        margin-top: 20px;
    }
    /*================================    スケジュール   ================================*/
    #schedule{
        margin-top: 100px;
        padding: 40px 20px;
    }
    #schedule::before{
        content: "";
        width: 116px;
        height: 56px;
        position: absolute;
        top: -35px;
        left: 50%;
        transform: translateX(-50%);
        background: url(../1_img/front/schedule-deco.svg) center / 100% auto;
    }
    #schedule h3{
        margin-bottom: 15px;
        display: block;
        text-align: center;
        font-size: 1.8rem;
    }
    #schedule h3 span[lang="ja"]{
        margin-left: 0;
        margin-top: 5px;
    }
    #schedule .schedule-hide{
        padding-top: 10px;
    }
    #schedule .schedule-list-wrap{
        display: block;
    }
    #schedule .schedule-list{
        padding: 10px;
        width: 100%;
    }
    #schedule .schedule-list + .schedule-list{
        margin-top: 10px;
    }
    #schedule .schedule-list time{
        padding-right: 15px;
    }
    /* 詳細情報 */
    #schedule .schedule-list time .year{
        font-size: 1.2rem;
    }
    #schedule .schedule-list time .month-date{
        font-size: 1.6rem;
    }
    #schedule .schedule-list .info{
        padding: 5px 0;
        padding-left: 15px;
        width: 70%;
        font-size: 1.2rem;
    }
    #schedule .schedule-list .info .map{
        margin-top: 10px;
    }
    /*================================    飾りの背景   ================================*/
    #intro .intro-bg{
        margin-top: -5vw;
        height: 130vw;
        background-image: url(../1_img/front/intro-bg.jpg);
    }
}



/*============================================================================================================================================================
==============================================================================================================================================================

	4.ギャラリー

==============================================================================================================================================================
============================================================================================================================================================*/
#gallery{
    padding: 120px 0 0;
    background-color: var(--color-base);
}
#gallery h2{
    text-align: center;
}
#gallery h2 img{
    width: 596px;
}
#gallery .h2-catch{
    margin-top: 40px;
    text-align: center;
    font-size: 2.8rem;
    font-weight: var(--weight-bold);
}
#gallery h3{
    position: relative;
    text-align: center;
    font-size: 2.2rem;
    color: var(--color-sub);
    font-weight: var(--weight-bold);
}
#gallery #gallery-allseasons h3,
#gallery #gallery-seasons h3{
    padding-bottom: 25px;
}
#gallery #gallery-allseasons h3::after,
#gallery #gallery-seasons h3::after{
    content: "";
    width: 40px;
    height: 2px;
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    background-color: var(--color-sub);
}
/*================================    通年商品   ================================*/
#gallery-allseasons{
    margin-top: 70px;
    position: relative;
    z-index: 2;
}
#gallery-allseasons .allseasons-list{
    margin-top: 50px;
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
}
#gallery-allseasons .allseasons-list figure{
    width: calc(50% - 20px);
}
#gallery-allseasons .allseasons-list figure figcaption{
    margin-top: 15px;
    width: calc(100% - 5px);
    position: relative;
}
#gallery-allseasons .allseasons-list figure figcaption > div{
    padding: 20px 40px;
    background-color: #fff;
    position: relative;
    text-align: center;
    z-index: 2;
}
#gallery-allseasons .allseasons-list figure figcaption > div h4{
    padding-top: 25px;
    position: relative;
}
#gallery-allseasons .allseasons-list figure figcaption > div h4::after{
    content: "";
    width: 30px;
    aspect-ratio: 30 / 13;
    position: absolute;
    transform: translateX(-50%);
    left: 50%;
    top: 0;
    -webkit-mask-image: url("../1_img/front/gallery-brush.svg");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    -webkit-mask-image: url("../1_img/front/gallery-brush.svg");
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
}
#gallery-allseasons .allseasons-list figure figcaption > div h4 span{
    display: block;
}
#gallery-allseasons .allseasons-list figure figcaption > div h4 span[lang="en"]{
    font-size: 1.6rem;
    font-weight: var(--weight-bold);
}
#gallery-allseasons .allseasons-list figure figcaption > div h4 span[lang="ja"]{
    font-size: 1.2rem;
}
#gallery-allseasons .allseasons-list figure figcaption > div p{
    margin-top: 15px;
    padding-top: 15px;
    min-height: 7em;
    border-top: 2px solid #000;
    font-size: 1.2rem;
}
#gallery-allseasons .allseasons-list figure figcaption::after{
    content: "";
    width: calc(100% + 5px);
    height: calc(100% + 5px);
    position: absolute;
    left: 0px;
    bottom: -5px;
    z-index: 1;
    clip-path: polygon(0 0, calc(100% - 5px) 0%, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px));
}
/* 色の設定 */
#gallery-allseasons .allseasons-list figure.d-1 figcaption > div h4::after,
#gallery-allseasons .allseasons-list figure.d-1 figcaption::after{background-color: var(--d-1);}
#gallery-allseasons .allseasons-list figure.d-2 figcaption > div h4::after,
#gallery-allseasons .allseasons-list figure.d-2 figcaption::after{background-color: var(--d-2);}
#gallery-allseasons .allseasons-list figure.d-3 figcaption > div h4::after,
#gallery-allseasons .allseasons-list figure.d-3 figcaption::after{background-color: var(--d-3);}

/*================================    季節限定   ================================*/
#gallery-seasons{
    margin-top: 100px;
    background-color: #ccc9c6;
    background: linear-gradient(180deg, var(--color-base) 0px, var(--color-base) 100px, #ccc9c6 100px);
    position: relative;
}
#gallery-seasons .inner{
    position: relative;
    z-index: 2;
}
#gallery-seasons .h3-catch{
    margin-top: 40px;
    text-align: center;
    font-size: 1.6rem;
}
#gallery-seasons .seasons-list{
    margin-top: 50px;
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
}
#gallery-seasons .seasons-list > a{
    width: calc((100% - 80px ) / 3);
}
#gallery-seasons .seasons-list figure figcaption{
    margin-top: 10px;
    width: calc(100% - 5px);
    position: relative;
}
#gallery-seasons .seasons-list figure figcaption h4{
    padding: 20px 40px;
    background-color: #fff;
    position: relative;
    text-align: center;
    z-index: 2;
}
#gallery-seasons .seasons-list figure figcaption h4 span{
    display: block;
}
#gallery-seasons .seasons-list figure figcaption h4 span[lang="en"]{
    padding-top: 25px;
    position: relative;
    font-size: 1.6rem;
    font-weight: var(--weight-bold);
}
#gallery-seasons .seasons-list figure figcaption h4 span[lang="en"]::after{
    content: "";
    width: 30px;
    aspect-ratio: 30 / 13;
    position: absolute;
    transform: translateX(-50%);
    left: 50%;
    top: 0;
    -webkit-mask-image: url("../1_img/front/gallery-brush.svg");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    -webkit-mask-image: url("../1_img/front/gallery-brush.svg");
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
}
#gallery-seasons .seasons-list figure figcaption h4 span[lang="ja"]{
    font-size: 1.2rem;
}
#gallery-seasons .seasons-list figure figcaption::after{
    content: "";
    width: calc(100% + 5px);
    height: calc(100% + 5px);
    position: absolute;
    left: 0px;
    bottom: -5px;
    z-index: 1;
    clip-path: polygon(0 0, calc(100% - 5px) 0%, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px));
}
#gallery-seasons .deco{
    width: 100%;
    position: absolute;
    bottom: clamp(calc(100% - 230px), calc(100% - 23vw), 100%);
    left: 0;
    z-index: 1;
}
#gallery-seasons .deco img{
    width: 100%;
}
/*================================    季節限定 ポップアップ   ================================*/
.popup{
    padding: 0;
    display: none;
    position: relative;
    width: 600px;
    max-width: calc(100% - 100px);
}
.popup::after{
    content: "";
    width: calc(100% + 5px);
    height: calc(100% + 5px);
    position: absolute;
    left: 0px;
    bottom: -5px;
    z-index: 1;
    clip-path: polygon(0 0, calc(100% - 5px) 0%, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px));
    background-color: var(--color-base);
}
.popup .popup-content{
    padding: 20px;
    position: relative;
    z-index: 2;
    background-color: #fff;
}
.popup.fancybox__content>.carousel__button.is-close{
    width: 35px;
    aspect-ratio: 1 / 1;
    top: 0;
    left: 10px;
    transform: translateY(-50%);
    background: url(../1_img/front/popup-close.svg) no-repeat;
}
.fancybox__thumbs .carousel__slide .fancybox__thumb::after{
    border-width: 2px;
    border-color: var(--color-sub);
}
/* item 名前 */
.popup .popup-content dt{
    padding-bottom: 10px;
    margin-bottom: 10px;
    text-align: center;
    border-bottom: 2px solid #000;
}
.popup .popup-content dt span{
    display: block;
}
.popup .popup-content dt span[lang="en"]{
    padding-top: 20px;
    position: relative;
    font-size: 1.6rem;
    font-weight: var(--weight-bold);
}
.popup .popup-content dt span[lang="en"]::after{
    content: "";
    width: 30px;
    aspect-ratio: 30 / 13;
    position: absolute;
    transform: translateX(-50%);
    left: 50%;
    top: 0;
    -webkit-mask-image: url("../1_img/front/gallery-brush.svg");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    -webkit-mask-image: url("../1_img/front/gallery-brush.svg");
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
}
.popup .popup-content dt span[lang="ja"]{
    font-size: 1rem;
}
/* item 名前 */
.popup .popup-content .item-detail{
    font-size: 1.2rem;
    font-weight: var(--weight-medium);
    text-align: center;
}
body:not(.is-using-mouse) .fancybox__container :focus {
    box-shadow: none;
}

/* 色の設定 */
#gallery-seasons .seasons-list figure.d-4 figcaption h4 span[lang="en"]::after,
#gallery-seasons .seasons-list figure.d-4 figcaption::after,
#seasons4.popup::after,
#seasons4.popup .popup-content dt span[lang="en"]::after
{background-color: var(--d-4);}

#gallery-seasons .seasons-list figure.d-5 figcaption h4 span[lang="en"]::after,
#gallery-seasons .seasons-list figure.d-5 figcaption::after,
#seasons5.popup::after,
#seasons5.popup .popup-content dt span[lang="en"]::after
{background-color: var(--d-5);}

#gallery-seasons .seasons-list figure.d-6 figcaption h4 span[lang="en"]::after,
#gallery-seasons .seasons-list figure.d-6 figcaption::after,
#seasons6.popup::after,
#seasons6.popup .popup-content dt span[lang="en"]::after
{background-color: var(--d-6);}

#gallery-seasons .seasons-list figure.d-7 figcaption h4 span[lang="en"]::after,
#gallery-seasons .seasons-list figure.d-7 figcaption::after,
#seasons7.popup::after,
#seasons7.popup .popup-content dt span[lang="en"]::after
{background-color: var(--d-7);}

#gallery-seasons .seasons-list figure.d-8 figcaption h4 span[lang="en"]::after,
#gallery-seasons .seasons-list figure.d-8 figcaption::after,
#seasons8.popup::after,
#seasons8.popup .popup-content dt span[lang="en"]::after
{background-color: var(--d-8);}

#gallery-seasons .seasons-list figure.d-9 figcaption h4 span[lang="en"]::after,
#gallery-seasons .seasons-list figure.d-9 figcaption::after,
#seasons9.popup::after,
#seasons9.popup .popup-content dt span[lang="en"]::after
{background-color: var(--d-9);}

#gallery-seasons .seasons-list figure.d-10 figcaption h4 span[lang="en"]::after,
#gallery-seasons .seasons-list figure.d-10 figcaption::after,
#seasons10.popup::after,
#seasons10.popup .popup-content dt span[lang="en"]::after
{background-color: var(--d-10);}

#gallery-seasons .seasons-list figure.d-11 figcaption h4 span[lang="en"]::after,
#gallery-seasons .seasons-list figure.d-11 figcaption::after,
#seasons11.popup::after,
#seasons11.popup .popup-content dt span[lang="en"]::after
{background-color: var(--d-11);}

#gallery-seasons .seasons-list figure.d-12 figcaption h4 span[lang="en"]::after,
#gallery-seasons .seasons-list figure.d-12 figcaption::after,
#seasons12.popup::after,
#seasons12.popup .popup-content dt span[lang="en"]::after
{background-color: var(--d-12);}

#gallery-seasons .seasons-list figure.d-13 figcaption h4 span[lang="en"]::after,
#gallery-seasons .seasons-list figure.d-13 figcaption::after,
#seasons13.popup::after,
#seasons13.popup .popup-content dt span[lang="en"]::after
{background-color: var(--d-13);}

/*================================    ショップ   ================================*/
#gallery-shop{
    padding: 120px 0;
    background-color: #ccc9c6;
}
#gallery-shop .gallery-shop-img{
    text-align: center;
    margin-top: 30px;
}
#gallery-shop .h3-catch{
    margin-top: 30px;
    text-align: center;
    font-size: 1.8rem;
}
#gallery-shop .h3-catch span{
    padding: 0 35px;
    display: inline-block;
    position: relative;
}
#gallery-shop .h3-catch span::before,
#gallery-shop .h3-catch span::after{
    content: "";
    display: block;
    width: 14px;
    height: 21px;
    position: absolute;
    bottom: 0;
}
#gallery-shop .h3-catch span::before{
    left: 0;
    background-image: url(../1_img/base/fukidashi-s-l.svg);
}
#gallery-shop .h3-catch span::after{
    right: 0;
    background-image: url(../1_img/base/fukidashi-s-r.svg);
}
#gallery-shop .gallery-shop-link{
    margin: 30px auto 0;
    width: 720px;
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
}
#gallery-shop .gallery-shop-link a{
    width: calc((100% - 40px - 5px) / 2);
    text-align: center;
    position: relative;
}
#gallery-shop .gallery-shop-link a::after{
    content: "";
    width: calc(100% + 5px);
    height: calc(100% + 5px);
    position: absolute;
    left: 0px;
    bottom: -5px;
    z-index: 1;
    clip-path: polygon(0 0, calc(100% - 5px) 0%, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px));
    background-color: #000;
}
#gallery-shop .gallery-shop-link a span{
    padding: 20px;
    display: block;
    position: relative;
    z-index: 2;
    color: #fff;
    font-size: 1.7rem;
    font-weight: var(--weight-bold);
    background-color: #685e58;
}
#gallery-shop .gallery-shop-link a span::after{
    content: "";
    width: 10px;
    position: absolute;
    top: 50%;
    right: 30px;
    aspect-ratio: 1 / 1;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translateY(-50%) rotate(45deg);
}
/* 最初のボタンだけ色々変更 */
#gallery-shop .gallery-shop-link a:first-child{
    width: calc(100% - 5px);
}
#gallery-shop .gallery-shop-link a:first-child span{
    padding: 25px 30px;
    font-size: 2.4rem;
    background-color: var(--color-sub);
}
#gallery-shop .gallery-shop-link a:first-child span::after{
    width: 16px;
    right: 30px;
}

/*==============================================================================

	ギャラリー スマホ

==============================================================================*/
@media all and (max-width: 768px){
    #gallery{
        padding: 100px 0 0;
    }
    #gallery h2 img{
        max-width: 100%;
    }
    #gallery .h2-catch{
        margin-top: 20px;
        font-size: 1.8rem;
    }
    #gallery h3{
        font-size: 1.6rem;
    }
    #gallery #gallery-allseasons h3,
    #gallery #gallery-seasons h3{
        padding-bottom: 10px;
    }
    #gallery #gallery-allseasons h3::after,
    #gallery #gallery-seasons h3::after{
        width: 20px;
    }
    /*================================    通年商品   ================================*/
    #gallery-allseasons{
        margin-top: 30px;
    }
    #gallery-allseasons .allseasons-list{
        margin-top: 25px;
        flex-direction: column;
        gap: 35px;
    }
    #gallery-allseasons .allseasons-list figure{
        width: calc(100%);
    }
    #gallery-allseasons .allseasons-list figure img{
        width: 100%;
    }
    #gallery-allseasons .allseasons-list figure figcaption{
        margin: -20px auto 0;
        width: calc(100% - 5px - 60px);
    }
    #gallery-allseasons .allseasons-list figure figcaption > div{
        padding: 30px;
    }
    #gallery-allseasons .allseasons-list figure figcaption > div p{
        min-height: auto;
    }
    /*================================    季節限定   ================================*/
    #gallery-seasons{
        margin-top: 0;
        padding-top: 80px;
        background: linear-gradient(180deg, var(--color-base) 0px, var(--color-base) 50px, #ccc9c6 50px);
    }
    #gallery-seasons .h3-catch{
        margin-top: 30px;
        font-size: 1.4rem;
    }
    #gallery-seasons .seasons-list{
        margin-top: 50px;
        display: flex;
        flex-wrap: wrap;
        gap: 30px 20px;
    }
    #gallery-seasons .seasons-list > a{
        width: calc((100% - 20px ) / 2);
    }
    #gallery-seasons .seasons-list figure figcaption h4{
        padding: 15px 10px;
    }
    #gallery-seasons .seasons-list figure figcaption h4 span[lang="en"]{
        padding-top: 20px;
        font-size: 1.2rem;
    }
    #gallery-seasons .seasons-list figure figcaption h4 span[lang="ja"]{
        font-size: 1rem;
    }
    #gallery-seasons .deco{
        bottom: clamp(calc(100% - 120px), calc(100% - 30vw), 100%);
    }
    /*================================    ショップ   ================================*/
    #gallery-shop{
        padding: 70px 0;
    }
    #gallery-shop .h3-catch{
        margin-top: 20px;
        font-size: 1.4rem;
    }
    #gallery-shop .gallery-shop-link{
        margin: 10px auto 0;
        width: 100%;
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }
    #gallery-shop .gallery-shop-link a{
        width: calc((70% - 5px));
    }
    #gallery-shop .gallery-shop-link a span{
        padding: 10px 20px;
        font-size: 1.4rem;
    }
    #gallery-shop .gallery-shop-link a span::after{
        right: 20px;
    }
    /* 最初のボタンだけ色々変更 */
    #gallery-shop .gallery-shop-link a:first-child span{
        padding: 20px 20px;
        font-size: 1.6rem;
    }
    #gallery-shop .gallery-shop-link a:first-child span::after{
        width: 14px;
        right: 30px;
    }
}




/*============================================================================================================================================================
==============================================================================================================================================================

	5.クリエイティブ

==============================================================================================================================================================
============================================================================================================================================================*/
#creative{
    padding: 120px 0;
    min-height: 1170px;
    background: url(../1_img/front/creative-bg-pc.jpg) no-repeat center bottom / 1400px auto,#090907;
}
#creative h2{
    text-align: center;
}
#creative .h2-catch{
    margin-top: 50px;
    text-align: center;
    color: #fff;
}
#creative .h2-catch p:first-child{
    display: inline-block;
    font-size: 2.8rem;
    text-align: left;
    font-weight: var(--weight-bold);
}
#creative .h2-catch p:last-child{
    margin-top: 30px;
    font-size: 1.6rem;
}
/*================================   工夫の説明   ================================*/
#creative .creative-content{
    margin-top: 40px;
    position: relative;
    width: 100%;
}
#creative .creative-content dl{
    padding: 30px;
    position: absolute;
    background-color: #fff;
}
#creative .creative-content dl dt{
    font-size: 2.2rem;
    font-weight: var(--weight-bold);
    display: flex;
    align-items: center;
    line-height: 1.4;
}
#creative .creative-content dl dt img{
    margin-right: 15px;
}
#creative .creative-content dl dd{
    margin-top: 10px;
    font-weight: var(--weight-medium);
}
#creative .creative-content dl::before,
#creative .creative-content dl::after{
    content: "";
    position: absolute;
}
#creative .creative-content dl::before{
    width: 103px;
    height: 26px;
    top: -26px;
    left: 0;
    background-image: url(../1_img/front/creative-deco.svg);
    background-repeat: no-repeat;
    background-size: 100% auto;
}
#creative .creative-content dl.num-1{
    width: 400px;
    top: 0;
    left: 0;
}
#creative .creative-content dl.num-1::after{
    width: 140px;
    height: 126px;
    top: 100%;
    right: 60px;
    background-image: url(../1_img/front/creative-arrow-1.svg);
}
#creative .creative-content dl.num-2{
    width: 360px;
    min-height: 160px;
    top: 161px;
    right: 0;
}
#creative .creative-content dl.num-2::after{
    width: 163px;
    height: 14px;
    right: 100%;
    bottom: 100px;
    background-image: url(../1_img/front/creative-arrow-2.svg);
}
/*================================   お届け時の説明   ================================*/
#creative .creative-content .note{
    padding: 20px 0;
    width: 320px;
    position: absolute;
    right: 20px;
    top: 475px;
    background-color: var(--color-sub);
    font-size: 1.4rem;
    font-weight: var(--weight-bold);
    text-align: center;
    letter-spacing: 0.1em;
}
#creative .creative-content .note p + p{
    margin-top: 10px;
}
#creative .creative-content .note span{
    margin: 0 5px;
    padding: 7px 12px;
    display: inline-block;
    color: #fff;
    font-size: 1.8rem;
    line-height: 1;
    background-color: var(--color-main);
}
#creative .creative-content .note::after{
    content: "";
    width: 25px;
    height: 15px;
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background-color: inherit;
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
}

/*==============================================================================

	クリエイティブ スマホ

==============================================================================*/
@media all and (max-width: 768px){
    #creative{
        padding: 70px 0 0;
        min-height: auto;
        background: var(--color-main);
    }
    #creative h2 img{
        max-width: 100%;
    }
    #creative .h2-catch{
        margin-top: 30px;
    }
    #creative .h2-catch p:first-child{
        font-size: 1.8rem;
    }
    #creative .h2-catch p:last-child{
        margin-top: 20px;
        font-size: 1.4rem;
    }
    /*================================   工夫の説明   ================================*/
    #creative .creative-content{
        margin-top: 60px;
        margin-left: -20px;
        width: calc(100% + 40px);
    }
    #creative .creative-content dl{
        padding: 20px 30px;
        position: relative;
    }
    #creative .creative-content dl dt{
        font-size: 2.2rem;
    }
    #creative .creative-content dl dt img{
        margin-right: 12px;
    }
    #creative .creative-content dl dd{
        margin-top: 10px;
        font-weight: var(--weight-medium);
    }
    #creative .creative-content dl::after{
        content: none;
    }
    #creative .creative-content dl::before{
        width: 80px;
        height: 20px;
        top: -20px;
    }
    #creative .creative-content dl.num-1{
        margin-left: auto;
        width: calc(100% - 50px);
        top: unset;
        left: unset;
    }
    #creative .creative-content dl.num-2{
        margin-top: 40px;
        width: calc(100% - 50px);
        min-height: auto;
        top: unset;
        right: unset;
    }
    #creative .creative-content .spimg img{
        margin-top: -20%;
        width: 100%;
    }
    /*================================   お届け時の説明   ================================*/
    #creative .creative-content .note-wrap{
        padding: 0 20px 60px;
        background-color: #1b120d;
        text-align: center;
    }
    #creative .creative-content .note{
        padding: 15px 20px;
        width: auto;
        max-width: 100%;
        position: static;
        display: inline-block;
        font-size: 1.2rem;
    }
    #creative .creative-content .note span{
        font-size: 1.5rem;
    }
    #creative .creative-content .note::after{
        content: none;
    }
}


/*============================================================================================================================================================
==============================================================================================================================================================

	6.美味しい食べ方

==============================================================================================================================================================
============================================================================================================================================================*/
#howto{
    padding: 120px 0 0;
    position: relative;
    z-index: 3;
}
#howto h2{
    text-align: center;
}
#howto h2 img{
    width: 550px;
}
#howto .h2-catch{
    margin-top: 40px;
    text-align: center;
    font-size: 2.8rem;
    font-weight: var(--weight-bold);
}
/*================================   美味しい食べ方   ================================*/
#howto ol{
    margin: 65px auto 0;
    width: 720px;
}
#howto ol li{
    position: relative;
}
#howto ol li + li{
    margin-top: 60px;
}
#howto ol li + li::before{
    content:"";
    width: 14px;
    height: 14px;
    position: absolute;
    left: 50%;
    top: -30px;
    border-right: 2px solid var(--color-sub);
    border-bottom: 2px solid var(--color-sub);
    transform: rotate(45deg) translateX(-50%);
}
#howto ol li figure{
    padding: 50px 60px 40px 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #fff;
    background-color: var(--color-main);
}
#howto ol li figure figcaption{
    width: 330px;
    font-size: 1.8rem;
    font-weight: var(--weight-bold);
}
#howto ol li figure picture{
    width: 200px;
    text-align: center;
}
/* 数字 */
#howto ol li .num{
    position: absolute;
    top: -30px;
    left: -30px;
}

/*================================   カルーセル   ================================*/
#howto .carousel-4{
    margin-top: 30px;
    transform: translateY(50%);
}

/*==============================================================================

	美味しい食べ方 スマホ

==============================================================================*/
@media all and (max-width: 768px){
    #howto{
        padding: 100px 0 0;
    }
    #howto h2 img{
        max-width: 100%;
    }
    #howto .h2-catch{
        margin-top: 20px;
        font-size: 1.8rem;
    }
    /*================================   美味しい食べ方   ================================*/
    #howto ol{
        margin: 55px auto 0;
        width: 100%;
    }
    #howto ol li + li{
        margin-top: 40px;
    }
    #howto ol li + li::before{
        top: -25px;
    }
    #howto ol li figure{
        padding: 30px 20px 20px;
        display: flex;
        flex-direction: column;
    }
    #howto ol li figure figcaption{
        width: 100%;
        font-size: 1.4rem;
        text-align: center;
    }
    #howto ol li figure figcaption em{
        font-size: 2rem;
    }
    #howto ol li figure picture{
        margin-top: 20px;
        width: 100%;
    }
    /* 数字 */
    #howto ol li .num{
        width: 55px;
        left: 20px;
    }
}


/*============================================================================================================================================================
==============================================================================================================================================================

	7.ギフト

==============================================================================================================================================================
============================================================================================================================================================*/
#gift{
    padding: 220px 0 0;
    background-color: var(--color-main);
    position: relative;
    z-index: 2;
}
#gift h2{
    text-align: center;
}
#gift .h2-catch{
    margin-top: 50px;
    text-align: center;
    color: #fff;
}
#gift .h2-catch p:first-child{
    display: inline-block;
    font-size: 2.8rem;
    text-align: left;
    font-weight: var(--weight-bold);
}
#gift .h2-catch p:last-child{
    margin-top: 30px;
    font-size: 1.6rem;
}
/*================================   図   ================================*/
#gift .gift-figure{
    margin-top: 60px;
    text-align: center;
}
/*================================   LINE   ================================*/
#gift .gift-line{
    margin-top: 90px;
    padding: 50px;
    display: flex;
    justify-content: space-between;
    position: relative;
    background-color: #fff;
    background-image: url(../1_img/front/gift-line-ribbon-pc-2.svg);
    background-position: right bottom;
    background-repeat: no-repeat;
    background-size: 170px auto;
}
/* リボンの飾り */
#gift .gift-line::before{
    content: "";
    width: 243px;
    height: 138px;
    position: absolute;
    top: -28px;
    left: 0;
    background: url(../1_img/front/gift-line-ribbon-pc-1.svg) no-repeat left top / 100% auto;
}
/* ========== 左側 ========== */
#gift .gift-line .left{
    padding-top: 46px;
    width: calc(100% - 370px);
    background: url(../1_img/front/gift-line-illust-pc.svg) no-repeat top center / 406px auto;
}
#gift .gift-line .left h3{
    color: var(--color-sub);
    font-size: 3.4rem;
    font-weight: var(--weight-bold);
    line-height: 1.4;
}
#gift .gift-line .left .h3-catch{
    margin-top: 5px;
    font-size: 1.6rem;
}
#gift .gift-line .left .gift-line-point{
    margin-top: 50px;
    display: flex;
    gap: 0 15px;
}
#gift .gift-line .left .gift-line-point li{
    padding: 5px 0;
    width: 170px;
    text-align: center;
    color: #fff;
    font-size: 1.5rem;
    font-weight: var(--weight-bold);
    background-color: var(--color-sub);
}

/* ========== 右側 ========== */
#gift .gift-line .right{
    width: 370px;
}
#gift .gift-line .right .fukidashi{
    text-align: center;
}
#gift .gift-line .right .fukidashi > p{
    display: inline-block;
    position: relative;
    font-weight: var(--weight-bold);
}
/* 共通 吹き出しの設定 */
#gift .gift-line .right .fukidashi > p::before,
#gift .gift-line .right .fukidashi > p::after{
    content: "";
    position: absolute;
    bottom: 0;
}
#gift .gift-line .right .fukidashi > p::before{
    left: 0;
}
#gift .gift-line .right .fukidashi > p::after{
    right: 0;
}
/* 共通 ボタンの設定 */
#gift .gift-line .right a{
    margin-top: 10px;
    display: block;
    position: relative;
    width: calc(100% - 5px);
}
#gift .gift-line .right a::after {
    content: "";
    width: calc(100% + 5px);
    height: calc(100% + 5px);
    position: absolute;
    left: 0px;
    bottom: -5px;
    z-index: 1;
    clip-path: polygon(0 0, calc(100% - 5px) 0%, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px));
    background-color: #000;
}
#gift .gift-line .right a span{
    padding: 20px;
    display: block;
    position: relative;
    z-index: 2;
    text-align: center;
    color: #fff;
    font-size: 2.2rem;
    font-weight: var(--weight-bold);
    line-height: 1;
    background-color: #00b900;
}
#gift .gift-line .right a span::after{
    content: "";
    width: 10px;
    position: absolute;
    top: 50%;
    right: 30px;
    aspect-ratio: 1 / 1;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translateY(-50%) rotate(45deg);
}
/* 20%off */
#gift .gift-line .right .btn-1 .fukidashi p span{
    display: block;
}
#gift .gift-line .right .btn-1 .fukidashi p span:first-child{
    font-size: 1.4rem;
}
#gift .gift-line .right .btn-1 .fukidashi p span:last-child{
    font-size: 3.5rem;
    font-family: var(--font-en);
    color: #cf4d59;
    line-height: 1;
}
#gift .gift-line .right .btn-1 .fukidashi p{
    padding: 0 45px;
}
#gift .gift-line .right .btn-1 .fukidashi p::before,
#gift .gift-line .right .btn-1 .fukidashi p::after{
    width: 20px;
    height: 40px;
}
#gift .gift-line .right .btn-1 .fukidashi p::before{
    background-image: url(../1_img/base/fukidashi-l-l.svg);
}
#gift .gift-line .right .btn-1 .fukidashi p::after{
    background-image: url(../1_img/base/fukidashi-l-r.svg);
}
/* 早速贈る方 */
#gift .gift-line .right .btn-2{
    margin-top: 30px;
}
#gift .gift-line .right .btn-2 .fukidashi p{
    padding: 0 35px;
}
#gift .gift-line .right .btn-2 .fukidashi p::before,
#gift .gift-line .right .btn-2 .fukidashi p::after{
    width: 14px;
    height: 21px;
}
#gift .gift-line .right .btn-2 .fukidashi p::before{
    background-image: url(../1_img/base/fukidashi-s-l.svg);
}
#gift .gift-line .right .btn-2 .fukidashi p::after{
    background-image: url(../1_img/base/fukidashi-s-r.svg);
}

/*================================   カルーセル   ================================*/
#gift .carousel-5{
    margin-top: 20px;
    transform: translateY(50%);
}


/*==============================================================================

	ギフト スマホ

==============================================================================*/
@media all and (max-width: 768px){
    #gift{
        padding: 130px 0 0;
    }
    #gift .h2-catch{
        margin-top: 30px;
    }
    #gift .h2-catch p:first-child{
        font-size: 1.8rem;
    }
    #gift .h2-catch p:last-child{
        margin-top: 20px;
        font-size: 1.4rem;
    }
    /*================================   図   ================================*/
    #gift .gift-figure{
        margin-top: 35px;
        width: calc(100% + 60px);
        transform: translateX(-30px);
    }
    #gift .gift-figure img{
        width: 100%;
        max-width: 500px;
    }
    /*================================   LINE   ================================*/
    #gift .gift-line{
        padding: 60px 20px 45px;
        flex-direction: column;
        background-image: none;
    }
    /* リボンの飾り */
    #gift .gift-line::before{
        width: 112px;
        height: 50px;
        top: 0;
        left: 50%;
        transform: translate(-50%,-50%);
        background: url(../1_img/front/gift-line-ribbon-sp.svg) no-repeat left top / 100% auto;
    }
    /* ========== 左側 ========== */
    #gift .gift-line .left{
        padding-top: 0px;
        width: calc(100%);
        background: none;
        text-align: center;
    }
    #gift .gift-line .left h3{
        font-size: 1.8rem;
    }
    #gift .gift-line .left .h3-catch{
        margin-top: 20px;
        font-size: 1.4rem;
        font-weight: var(--weight-medium);
    }
    #gift .gift-line .left .gift-line-point{
        margin-top: 25px;
        gap: 0 10px;
    }
    #gift .gift-line .left .gift-line-point li{
        width: calc((100% - 10px) / 2);
        font-size: 1.2rem;
        letter-spacing: 0.1em;
    }
    #gift .gift-line .left > .sp_only{
        margin-top: 28px;
    }

    /* ========== 右側 ========== */
    #gift .gift-line .right{
        margin-top: 30px;
        width: 100%;
    }
    /* 共通 ボタンの設定 */
    #gift .gift-line .right a{
        margin-top: 15px;
        font-size: 1.6rem;
    }
    #gift .gift-line .right a span{
        font-size: 1.6rem;
    }
    #gift .gift-line .right a span::after{
        right: 20px;
    }
    /* 20%off */
    #gift .gift-line .right .btn-1 .fukidashi p span:first-child{
        font-size: 1.4rem;
    }
    #gift .gift-line .right .btn-1 .fukidashi p span:last-child{
        margin-top: 10px;
        font-size: 2.8rem;
    }

    /*================================   カルーセル   ================================*/
    #gift .carousel-5-wrap{
        margin-top: 30px;
    }
}


/*============================================================================================================================================================
==============================================================================================================================================================

	8.キャンペーン

==============================================================================================================================================================
============================================================================================================================================================*/
#campaign{
    padding: 210px 0 250px;
    position: relative;
    background-color: #d0cdcb;
    background-image: url(../1_img/front/campaign-zero.svg);
    background-repeat: no-repeat;
    background-position: center center;
}
#campaign::after{
    content: "";
    width: 100%;
    height: 280px;
    position: absolute;
    bottom: 0;
    left: 0;
    background: url(../1_img/front/campaign-bg.jpg) repeat-x bottom center / 720px auto;
}
#campaign h2 span{
    display: block;
    text-align: center;
    font-weight: var(--weight-bold);
}
#campaign h2 span[lang="en"]{
    font-size: 2.2rem;
    color: var(--color-sub);
}
#campaign h2 span[lang="ja"]{
    font-size: 2.8rem;
}
#campaign h2 span[lang="ja"] em{
    margin-right: 5px;
    display: inline-block;
    font-size: 5.2rem;
    font-family: var(--font-en);
}
#campaign .h3-catch{
    margin-top: 40px;
    text-align: center;
    font-size: 1.6rem;
    font-weight: var(--weight-medium);
}
#campaign .h3-catch em{
    margin: 0 5px;
    display: inline-block;
    position: relative;
    z-index: 2;
    font-weight: var(--weight-bold);
    font-size: 2.2rem;
}
#campaign .h3-catch em::after {
    margin-left: 2px;
    content: "";
    width: 98%;
    aspect-ratio: 7 / 2;
    position: absolute;
    transform: translateX(-50%);
    left: 50%;
    bottom: 0px;
    background-color: #ff8963;
    -webkit-mask-image: url(../1_img/front/brush.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    -webkit-mask-image: url(../1_img/front/brush.svg);
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
    z-index: -1;
}
/*================================   キャンペーンイラスト   ================================*/
#campaign .campaign-figure{
    margin-top: 60px;
    text-align: center;
}
/*================================   オンラインショップ   ================================*/
#campaign .btn-wrap{
    margin: 80px auto 0;
    width: 710px;
    text-align: center;
}
#campaign .btn-wrap .fukidashi span{
    padding: 0 35px;
    display: inline-block;
    position: relative;
    font-size: 1.8rem;
    font-weight: var(--weight-medium);
}
#campaign .btn-wrap .fukidashi span::before,
#campaign .btn-wrap .fukidashi span::after{
    content: "";
    display: block;
    width: 14px;
    height: 21px;
    position: absolute;
    bottom: -2px;
}
#campaign .btn-wrap .fukidashi span::before{
    left: 0;
    background-image: url(../1_img/base/fukidashi-s-l.svg);
}
#campaign .btn-wrap .fukidashi span::after{
    right: 0;
    background-image: url(../1_img/base/fukidashi-s-r.svg);
}
#campaign .btn-wrap a{
    margin-top: 25px;
    width: calc(100% - 5px);
    display: block;
    position: relative;
    z-index: 2;
}
#campaign .btn-wrap a::after {
    content: "";
    width: calc(100% + 5px);
    height: calc(100% + 5px);
    position: absolute;
    left: 0px;
    bottom: -5px;
    z-index: 1;
    clip-path: polygon(0 0, calc(100% - 5px) 0%, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px));
    background-color: #000;
}
#campaign .btn-wrap a span{
    padding: 25px 30px;
    display: block;
    position: relative;
    z-index: 2;
    color: #fff;
    font-size: 2.4rem;
    font-weight: var(--weight-bold);
    background-color: var(--color-sub);
}
#campaign .btn-wrap a span::after{
    content: "";
    width: 16px;
    right: 30px;
    position: absolute;
    top: 50%;
    right: 30px;
    aspect-ratio: 1 / 1;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translateY(-50%) rotate(45deg);
}
#campaign .note{
    margin-top: 20px;
    font-size: 1.2rem;
    text-align: center;
}
/*==============================================================================

	キャンペーン スマホ

==============================================================================*/
@media all and (max-width: 768px){
    #campaign{
        padding: 130px 0 150px;
        background-size: 57%;
        background-position: top calc(50% - 6.5vw) center;
    }
    #campaign::after{
        height: 140px;
        background: url(../1_img/front/campaign-bg.jpg) repeat-x bottom center / auto 140px;
    }
    #campaign h2 span[lang="en"]{
        font-size: 1.4rem;
    }
    #campaign h2 span[lang="ja"]{
        font-size: 2.2rem;
    }
    #campaign h2 span[lang="ja"] em{
        font-size: 3.6rem;
    }
    #campaign .h3-catch{
        margin-top: 30px;
        font-size: 1.4rem;
    }
    #campaign .h3-catch em{
        font-size: 1.8rem;
    }
    /*================================   キャンペーンイラスト   ================================*/
    #campaign .campaign-figure{
        margin-top: 35px;
    }
    #campaign .campaign-figure img{
        max-width: 253px;
    }
    /*================================   オンラインショップ   ================================*/
    #campaign .btn-wrap{
        margin: 45px auto 0;
        padding: 0 15px;
        width: 100%;
    }
    #campaign .btn-wrap .fukidashi span{
        font-size: 1.4rem;
    }
    #campaign .btn-wrap a{
        margin-top: 20px;
        width: calc(100% - 5px);
        display: block;
        position: relative;
    }
    #campaign .btn-wrap a span{
        padding: 20px;
        font-size: 1.5rem;
    }
    #campaign .btn-wrap a span::after{
        width: 14px;
    }
}

/*============================================================================================================================================================
==============================================================================================================================================================

	9.purpose

==============================================================================================================================================================
============================================================================================================================================================*/
#purpose{
    padding: 120px 0 200px;
    background-image: url(../1_img/front/purpose-package-bg.jpg);
    background-position: center bottom;
    background-repeat: repeat-x;
    background-size: 1370px auto;
}
#purpose h2{
    text-align: center;
}
#purpose .h2-catch{
    margin-top: 40px;
    text-align: center;
    font-size: 2.8rem;
    font-weight: var(--weight-bold);
}
/*================================   イントロ   ================================*/
#purpose .purpose-intro{
    margin-top: 50px;
    text-align: center;
}
#purpose .purpose-intro .intro-text{
    font-size: 1.6rem;
    font-weight: 500;
}
#purpose .purpose-intro .intro-img {
    margin-top: 60px;
    position: relative;
}
/*================================   パッケージ   ================================*/
#purpose .purpose-package{
    margin-top: 210px;
    position: relative;
}
#purpose .purpose-package .inner{
    position: relative;
}
#purpose .purpose-package figure{
    width: 460px;
}
#purpose .purpose-package figure figcaption h3{
    position: relative;
}
#purpose .purpose-package figure figcaption h3::after{
    content:"";
    width: 100%;
    height: 1px;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background-color: #43362f;
}
#purpose .purpose-package figure figcaption h3 span{
    padding-right: 10px;
    display: inline-block;
    position: relative;
    z-index: 2;
    font-weight: bold;
    font-size: 2.2rem;
    background-color: #fff;
}
#purpose .purpose-package figure figcaption p{
    margin-top: 10px;
    font-size: 1.6rem;
    font-feature-settings: "palt";
    font-weight: 500;
}
#purpose .purpose-package figure img {
    position: absolute;
    top: -260px;
    right: -300px;
}
#purpose .purpose-package .package-box{
    margin-top: 160px;
}
/* ショップ */
#purpose .purpose-shop{
    margin-top: 120px;
}
#purpose .purpose-shop .h3-catch{
    margin-top: 40px;
    text-align: center;
    font-size: 1.8rem;
}
#purpose .purpose-shop .h3-catch span{
    padding: 0 35px;
    display: inline-block;
    position: relative;
}
#purpose .purpose-shop .h3-catch span::before,
#purpose .purpose-shop .h3-catch span::after{
    content: "";
    display: block;
    width: 14px;
    height: 21px;
    position: absolute;
    bottom: 0;
}
#purpose .purpose-shop .h3-catch span::before{
    left: 0;
    background-image: url(../1_img/base/fukidashi-s-l.svg);
}
#purpose .purpose-shop .h3-catch span::after{
    right: 0;
    background-image: url(../1_img/base/fukidashi-s-r.svg);
}
#purpose .purpose-shop .purpose-shop-link{
    margin: 30px auto 0;
    width: 720px;
}
#purpose .purpose-shop .purpose-shop-link a{
    display: block;
    text-align: center;
    position: relative;
}
#purpose .purpose-shop .purpose-shop-link a::after{
    content: "";
    width: calc(100% + 5px);
    height: calc(100% + 5px);
    position: absolute;
    left: 0px;
    bottom: -5px;
    z-index: 1;
    clip-path: polygon(0 0, calc(100% - 5px) 0%, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px));
    background-color: #000;
}
#purpose .purpose-shop .purpose-shop-link a span{
    padding: 25px 30px;
    display: block;
    position: relative;
    z-index: 2;
    color: #fff;
    font-size: 2.4rem;
    font-weight: var(--weight-bold);
    background-color: var(--color-sub);
}
#purpose .purpose-shop .purpose-shop-link a span::after{
    content: "";
    width: 16px;
    right: 30px;
    position: absolute;
    top: 50%;
    right: 30px;
    aspect-ratio: 1 / 1;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translateY(-50%) rotate(45deg);
}
/*================================   LINE   ================================*/
#purpose .gift-line{
    margin-top: 180px;
    padding: 60px 50px 50px 70px;
    display: flex;
    justify-content: space-between;
    position: relative;
    background-color: var(--color-main);
    border-radius: 20px;
}
/* クリームの飾り */
#purpose .gift-line::before{
    content: "";
    width: 260px;
    height: 170px;
    position: absolute;
    top: -40px;
    left: 0;
    z-index: 1;
    background: url(../1_img/front/purpose-gift-deco.svg) no-repeat left top / 100% auto;
}
/* ========== 左側 ========== */
#purpose .gift-line .left{
    width: calc(100% - 370px);
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    position: relative;
    z-index: 2;
}
#purpose .gift-line .left h3{
    color: #fff;
    font-size: 3.4rem;
    font-weight: var(--weight-bold);
    line-height: 1.4;
}
#purpose .gift-line .left .h3-catch{
    margin-top: 5px;
    font-size: 1.6rem;
    color: #fff;
}
#purpose .gift-line .left .gift-line-point{
    margin-top: 50px;
    display: flex;
    gap: 0 15px;
}
#purpose .gift-line .left .gift-line-point li{
    padding: 5px 0;
    width: 170px;
    text-align: center;
    color: #fff;
    font-size: 1.5rem;
    font-weight: var(--weight-bold);
    background-color: var(--color-sub);
}

/* ========== 右側 ========== */
#purpose .gift-line .right{
    width: 370px;
}
#purpose .gift-line .right .fukidashi{
    text-align: center;
}
#purpose .gift-line .right .fukidashi > p{
    display: inline-block;
    position: relative;
    font-weight: var(--weight-bold);
}
/* 共通 吹き出しの設定 */
#purpose .gift-line .right .fukidashi > p::before,
#purpose .gift-line .right .fukidashi > p::after{
    content: "";
    position: absolute;
    bottom: 0;
}
#purpose .gift-line .right .fukidashi > p::before{
    left: 0;
}
#purpose .gift-line .right .fukidashi > p::after{
    right: 0;
}
/* 共通 ボタンの設定 */
#purpose .gift-line .right a{
    margin-top: 10px;
    display: block;
    position: relative;
    width: calc(100% - 5px);
}
#purpose .gift-line .right a::after {
    content: "";
    width: calc(100% + 5px);
    height: calc(100% + 5px);
    position: absolute;
    left: 0px;
    bottom: -5px;
    z-index: 1;
    clip-path: polygon(0 0, calc(100% - 5px) 0%, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px));
    background-color: #ccc9c6;
}
#purpose .gift-line .right a span{
    padding: 20px;
    display: block;
    position: relative;
    z-index: 2;
    text-align: center;
    color: #fff;
    font-size: 2.2rem;
    font-weight: var(--weight-bold);
    line-height: 1;
    background-color: #00b900;
}
#purpose .gift-line .right a span::after{
    content: "";
    width: 10px;
    position: absolute;
    top: 50%;
    right: 30px;
    aspect-ratio: 1 / 1;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translateY(-50%) rotate(45deg);
}
/* 20%off */
#purpose .gift-line .right .btn-1 .fukidashi p span{
    display: block;
}
#purpose .gift-line .right .btn-1 .fukidashi p span:first-child{
    font-size: 1.4rem;
}
#purpose .gift-line .right .btn-1 .fukidashi p span:last-child{
    font-size: 3.5rem;
    font-family: var(--font-en);
    color: var(--color-sub);
    line-height: 1;
}
#purpose .gift-line .right .btn-1 .fukidashi p{
    padding: 0 45px;
    color: #ccc9c6;
}
#purpose .gift-line .right .btn-1 .fukidashi p::before,
#purpose .gift-line .right .btn-1 .fukidashi p::after{
    width: 20px;
    height: 40px;
}
#purpose .gift-line .right .btn-1 .fukidashi p::before{
    background-image: url(../1_img/base/fukidashi-l-l_white.svg);
}
#purpose .gift-line .right .btn-1 .fukidashi p::after{
    background-image: url(../1_img/base/fukidashi-l-r_white.svg);
}
/* 早速贈る方 */
#purpose .gift-line .right .btn-2{
    margin-top: 30px;
}
#purpose .gift-line .right .btn-2 .fukidashi p{
    padding: 0 35px;
    color: #ccc9c6;
}
#purpose .gift-line .right .btn-2 .fukidashi p::before,
#purpose .gift-line .right .btn-2 .fukidashi p::after{
    width: 14px;
    height: 21px;
}
#purpose .gift-line .right .btn-2 .fukidashi p::before{
    background-image: url(../1_img/base/fukidashi-s-l_white.svg);
}
#purpose .gift-line .right .btn-2 .fukidashi p::after{
    background-image: url(../1_img/base/fukidashi-s-r_white.svg);
}
/*==============================================================================

	ギフト スマホ

==============================================================================*/
@media all and (max-width: 768px){
    #purpose{
        padding: 100px 0 130px;
        background-size: auto 50px;
    }
    #purpose h2,
    #purpose .h2-catch{
        position: relative;
        z-index: 2;
    }
    #purpose h2 img{
        max-width: 100%;
    }
    #purpose .h2-catch{
        margin-top: 20px;
        font-size: 1.8rem;
    }
    
    /*================================   イントロ   ================================*/
    #purpose .purpose-intro{
        margin-top: 20px;
    }
    #purpose .purpose-intro .inner{
        padding: 0;
    }
    #purpose .purpose-intro .intro-text{
        padding: 0 20px;
        position: relative;
        z-index: 2;
        font-size: 1.4rem;
    }
    #purpose .purpose-intro .intro-img{
        margin-top: -80px;
    }
    #purpose .purpose-intro .intro-img::before {
        content: "";
        width: 100%;
        height: 80%;
        position: absolute;
        top: 0;
        left: 0;
        background: linear-gradient(0deg, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0.8) 90%, rgba(255, 255, 255, 01) 100%);
    }
    /*================================   パッケージ   ================================*/
    #purpose .purpose-package{
        margin-top: 50vw;
    }
    #purpose .purpose-package figure{
        width: 100%;
        position: relative;
    }
    #purpose .purpose-package figure figcaption{
        width: 40%;
        position: relative;
        z-index: 2;
    }
    #purpose .purpose-package figure figcaption h3 span{
        font-size: 1.4rem;
    }
    #purpose .purpose-package figure figcaption p{
        font-size: 1.4rem;
    }
    #purpose .purpose-package figure img {
        width: 100%;
        position: absolute;
        top: 50%;
        right: -75px;
        transform: translateY(-50%);
    }
    #purpose .purpose-package .package-box{
        margin-top: 30vw;
    }
    /*================================   ショップ   ================================*/
    #purpose .purpose-shop{
        margin-top: 60px;
    }
    #purpose .purpose-shop .h3-catch{
        margin-top: 40px;
        text-align: center;
        font-size: 1.8rem;
    }
    #purpose .purpose-shop .h3-catch{
        margin-top: 20px;
        font-size: 1.4rem;
    }
    #purpose .purpose-shop .purpose-shop-link{
        margin: 10px auto 0;
        width: 100%;
    }
    #purpose .purpose-shop .purpose-shop-link a{
        width: 100%;
    }
    #purpose .purpose-shop .purpose-shop-link a span{
        padding: 20px 20px;
        font-size: 1.6rem;
    }
    #purpose .purpose-shop .purpose-shop-link a span::after{
        width: 14px;
        right: 30px;
        right: 20px;
    }

    /*================================   LINE   ================================*/
    #purpose .gift-line{
        margin-top: 80px;
        padding: 35px 20px 45px;
        flex-direction: column;
    }
    /* クリームの飾り */
    #purpose .gift-line::before{
        width: 110px;
        height: 68px;
        top: -20px;
        background: url(../1_img/front/purpose-gift-deco-sp.svg) no-repeat left top / 100% auto;
    }
    /* ========== 左側 ========== */
    #purpose .gift-line .left{
        padding-top: 0px;
        width: calc(100%);
        background: none;
        text-align: center;
    }
    #purpose .gift-line .left h3{
        font-size: 1.8rem;
    }
    #purpose .gift-line .left .h3-catch{
        margin-top: 20px;
        font-size: 1.4rem;
        font-weight: var(--weight-medium);
    }
    #purpose .gift-line .left .gift-line-point{
        margin-top: 25px;
        gap: 0 10px;
    }
    #purpose .gift-line .left .gift-line-point li{
        width: calc((100% - 10px) / 2);
        font-size: 1.2rem;
        letter-spacing: 0.1em;
    }
    #purpose .gift-line .left > .sp_only{
        margin-top: 28px;
    }

    /* ========== 右側 ========== */
    #purpose .gift-line .right{
        margin-top: 30px;
        width: 100%;
    }
    /* 共通 ボタンの設定 */
    #purpose .gift-line .right a{
        margin-top: 15px;
        font-size: 1.6rem;
    }
    #purpose .gift-line .right a span{
        font-size: 1.6rem;
    }
    #purpose .gift-line .right a span::after{
        right: 20px;
    }
    /* 20%off */
    #purpose .gift-line .right .btn-1 .fukidashi p span:first-child{
        font-size: 1.4rem;
    }
    #purpose .gift-line .right .btn-1 .fukidashi p span:last-child{
        margin-top: 10px;
        font-size: 2.8rem;
    }
}