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

  全体

====================*/
html {
    scroll-behavior: smooth;
}


article {
    background-color: #f7f7f7;
    position: relative;
}

.background-wrapper {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300" viewBox="0 0 400 400"><g fill="%23888888" fill-opacity="0.05"><circle cx="100" cy="80" r="60"/><circle cx="320" cy="100" r="40"/><circle cx="200" cy="300" r="50"/></g></svg>');
    background-repeat: repeat;
    background-size: 300px 300px;
    background-attachment: fixed;

}

article section {
    padding: 50px 0;
}

article section section {
    padding: 25px 0;
    background-color: rgba(255, 255, 255, 0.7);
}

.inner {
    padding: 0 3%
}

.area-title_box {
    margin-bottom: 30px;
    text-align: center;
    position: relative;
    font-family: "Noto Serif JP", serif;
}

.area-title {
    font-size: 2.8rem;
    position: relative;
    font-weight: 500;
    padding: 1.5rem;
    text-align: center;
}



.area-title:before {
    position: absolute;
    bottom: 0;
    left: calc(50% - 30px);
    width: 60px;
    height: 5px;
    content: '';
    border-radius: 3px;
}

.osonae-area .area-title:before {
    background-color: #A7C3B6;
}

.okaeshi-area .area-title:before {
    background-color: #B8B0D0;
}



.area-title span {
    font-size: 1.4rem;
    display: block;
}

.area-lead-box {
    padding: 40px 20px 0;
    text-align: center;
}

.area-lead {
    /* font-family: "Noto Serif JP", serif; */
    display: block;
    line-height: 2;
}

.block-title_box {
    margin-bottom: 25px;
    text-align: center;
    font-family: "Noto Serif JP", serif;
}

.block-title {
    font-size: 2.4rem;
    position: relative;
    margin-bottom: 10px;
    font-weight: 500;
    padding: 1.5rem;
    text-align: center;
}

.block-title:before {
    position: absolute;
    bottom: 0;
    left: calc(50% - 30px);
    width: 60px;
    height: 5px;
    content: '';
    border-radius: 3px;
}

.osonae-area .block-title:before {
    background-color: #A7C3B6;
}

.okaeshi-area .block-title:before {
    background-color: #B8B0D0;
}


.block-title span {
    display: block;
    font-size: 1.2rem;
}

.block-lead {
    display: block;
    line-height: 2;
}


.btn-box {
    background-color: #333;
    width: 100%;
    max-width: 600px;
    text-align: center;
    position: relative;
    margin: 20px auto 0;
    border: 2px solid #333;
}

.btn-box .btn {
    font-size: 1.5rem;
    color: #fff;
    font-weight: bold;
    width: 100%;
    padding: 10px;
    display: block;
}

.btn-box .btn span {
    display: block;
    font-size: 1rem;
}

.btn-box::after {
    content: "";
    display: block;
    position: absolute;
    background-image: url('/images/icon-arrow-right-wh.svg');
    background-size: 100%;
    width: 7px;
    height: 12px;
    top: 50%;
    right: 3%;
    margin: auto;
    transform: translate(-50%, -50%);
}

.btn-box:hover {
    border: 2px solid #333;
    background-color: #fff;
    transition: 0.5s;
}

.btn-box:hover::after {
    content: "";
    display: block;
    position: absolute;
    background-image: url('/images/icon-arrow-right-bk.svg');
    background-size: 100%;
    width: 7px;
    height: 12px;
    top: 50%;
    right: 3%;
    margin: auto;
    transform: translate(-50%, -50%);
}

.btn-box:hover .btn {
    color: #333;
}


.btn-box.anchor::after {
    background-image: url('/images/icon-arrow-under-wh.svg');
    width: 10px;
    height: 6px;
}


.btn-box.anchor:hover::after {
    background-image: url('/images/icon-arrow-under-bk.svg');
    width: 10px;
    height: 6px;
}


.pc_only {
    display: none;
}


@media only screen and (min-width: 768px) {
    .background-wrapper {
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="600" height="600" viewBox="0 0 400 400"><g fill="%23888888" fill-opacity="0.05"><circle cx="100" cy="80" r="60"/><circle cx="320" cy="100" r="50"/><circle cx="200" cy="300" r="70"/></g></svg>');
        background-repeat: repeat;
        background-size: 1200px 1200px;
    }

    .inner {
        position: relative;
        max-width: 1100px;
        margin: 0 auto;
        padding: 35px;
    }

    .sp_only {
        display: none;
    }

    .pc_only {
        display: block;
    }

    .area-title {
        font-size: 3.6rem;
    }

    .area-title_box {
        margin-bottom: 50px;
    }

    .area-lead {
        font-size: 1.8rem;
    }

    .block-title {
        font-size: 3.6rem;
    }

    .block-title span {
        font-size: 1.4rem;
        display: block;
    }

    .block-title_box {
        margin-bottom: 50px;
    }

    .block-lead {
        display: block;
        line-height: 2;
        font-size: 1.8rem;
    }

    .block-lead-box {
        padding: 40px 20px 0;
        text-align: center;
    }

    .btn-box {
        margin: 40px auto 0;
        max-width: 400px;
    }

    .btn-box .btn {
        font-size: 1.5rem;
        color: #fff;
        font-weight: bold;
    }


}

.osonae-area {
    background-color: #d8e8e0;
}

.okaeshi-area {
    background-color: #e2deed;
}


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

  メイン画像

====================*/
.mainvisual-area {
    padding: 0;
    position: relative;
    font-family: "Noto Serif JP", serif;
}

.top .mainvisual-area-pic {
    width: 100%;
    display: flex;
    justify-content: center;
    background-repeat: no-repeat;
    background-image: url(/hatsubon/images/mv-sp.jpg);
    background-size: cover;
    aspect-ratio: 2 / 1;
    align-items: center;
}


.top .mainvisual-area-pic .mainvisual-area-box-maintitle .mainvisual-area-box-subtitle {
    font-size: 3.5rem;
    margin: 10px auto 0;
    letter-spacing: 1px;
    width: auto;
    display: block;
}

.top .mainvisual-area-pic .mainvisual-area-box-maintitle {
    font-size: 7vw;
    line-height: 1.4;
    display: flex;
    flex-direction: column;
    font-weight: 500;
    letter-spacing: 5px;
    justify-items: center;
    align-items: center;
}

.top .mainvisual-area-pic .mainvisual-area-box-maintitle span {
    font-size: 4vw;
    font-weight: 500;
    line-height: 1.25;
}

.mainvisual-area-box-subtitle {
    font-size: 1.2rem;
    margin-top: 5px;
}

.top .mainvisual-area-box {
    background-color: rgba(255, 255, 255, 0.7);
    width: 80%;
    color: #333;
    text-align: center;
    padding: 30px 10px;
}

@media only screen and (min-width: 768px) {
    .top .mainvisual-area-pic {
        background-image: url(/hatsubon/images/mv-pc.jpg);
        height: 500px;
        padding: 0px;
        align-items: center;
    }

    .top .mainvisual-area-pic .mainvisual-area-box-maintitle span {
        font-size: 2.5rem;
        letter-spacing: 1px;
        display: inline-block;
    }

    .top .mainvisual-area-pic .mainvisual-area-box-maintitle .mainvisual-area-box-subtitle {
        display: inline-block;
    }

    .top .mainvisual-area-pic .mainvisual-area-box-maintitle {
        font-size: 6rem;
    }

    .mainvisual-area-pic .mainvisual-area-box-maintitle {
        font-size: 4.5rem;
    }

    .top .mainvisual-area-box {
        width: 40%;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .top .mainvisual-area-pic .mainvisual-area-box-maintitle .mainvisual-area-box-subtitle {
        font-size: 3.5rem;
        display: block;
        width: 300px;
    }

    .top .mainvisual-area-box .mainvisual-area-box-soki {
        width: 50%;
        margin-top: 10px;
    }

    .mainvisual-area-box-subtitle {
        font-size: 2rem;
    }
}

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

メインリード

====================*/
.main-lead-area {
    text-align: center;
    padding: 30px 0 0
}

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

初盆・新盆とは

====================*/
.about-wrapper {
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    row-gap: 20px;
}

.about-block {
    padding: 10px 20px 30px;
    background-color: #fff;
    width: 100%;
}

.about-block.osonae {
    background-color: #d8e8e0;
}

.about-block.okaeshi {
    background-color: #e2deed;
}



.about-block .block-title {
    font-size: 2.4rem;
}



.about-block .block-title_box {
    margin-bottom: 0;
}


.about-block .block-title span {
    display: inline;
    font-size: inherit;
}


.about-block .block-lead {
    text-align: left;
}

@media screen and (min-width: 768px) {
    .about-wrapper {
        flex-direction: row;
    }

    .about-block {
        width: 48%;
        padding: 30px;
    }
}



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

ランキング

====================*/
.ranking-block ul {
    counter-reset: item;
}

.ranking-block ul li a::before {
    content: "No." counter(item) " ";
    counter-increment: item;
    font-weight: bold;
    font-size: 2rem;
}

.ranking-block ul li:first-child a:after,
.ranking-block ul li:nth-child(2) a:after,
.ranking-block ul li:nth-child(3) a:after {
    position: absolute;
    top: -2px;
    left: 0;
    width: 30px;
    height: 30px;
    content: ""
}

.ranking-block ul li:first-child a:before,
.ranking-block ul li:nth-child(2) a:before,
.ranking-block ul li:nth-child(3) a:before {
    margin-left: 35px
}


.ranking-block ul li:first-child a:after {
    background-image: url(/images/icon-rank-01.svg)
}

.ranking-block ul li:first-child a:before {
    color: #9c8b45
}

.ranking-block ul li:nth-child(2) a:after {
    background-image: url(/images/icon-rank-02.svg)
}

.ranking-block ul li:nth-child(2) a:before {
    color: #8b8b8b
}

.ranking-block ul li:nth-child(3) a:after {
    background-image: url(/images/icon-rank-03.svg)
}

.ranking-block ul li:nth-child(3) a:before {
    color: #9c6b47
}



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

商品部分

====================*/
.product-item {
    height: auto;
}

.product-item a {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.product {
    background-color: #fff;
    height: 100%;
}


.product-pic-box {
    position: relative;
    margin-bottom: 5px;
}


.product-detail {
    padding: 10px;
}

.product-detail-name {
    font-weight: bold;
    margin-bottom: 5px;
    overflow: hidden;
    display: -webkit-box;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    height: 3em;
}

.product-detail-price-box {
    display: flex;
    margin-bottom: 5px;
}

.product-detail-discount_rate {
    background-color: #ff0000;
    color: #fff;
    font-weight: bold;
    padding: 0 7px;
    width: fit-content;
    margin-right: 5px;
}

.product-detail-price {
    font-weight: bold;
}

.product-detail-price:before {
    content: "¥";
}

.product-detail-discount_rate::after {
    content: "OFF";
}

.product-detail-price.discount_price {
    color: #ff0000;
}

.product-detail-txt {
    font-size: 1.2rem;
    margin-bottom: 5px;
    overflow: hidden;
    display: -webkit-box;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

@media only screen and (min-width: 768px) {

    .product-slider .swiper-wrapper {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        row-gap: 40px;
        column-gap: 20px;
    }

    .product-slider .swiper-wrapper .product-item {
        width: calc((100% - 20px * 4) / 5);
    }

    .product-slider-container .swiper-button-next,
    .product-slider-container .swiper-button-prev,
    .product-slider-container .swiper-pagination {
        display: none;
    }
}

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

アイコン群

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

.product-pic-icon-shipping {
    position: absolute;
    background-color: #333;
    padding: 0 10px;
    color: #fff;
    bottom: 5%;
    width: fit-content;
}

.product-pic-icon-coupon {
    position: absolute;
    background-color: #930002;
    padding: 0 10px;
    color: #fff;
    bottom: 5%;
    width: fit-content;
}


.product-detail-utility {
    display: flex;
    flex-wrap: wrap;
    row-gap: 5px;
}

.product-icon {
    padding: 0 10px;
    color: #fff;
    font-weight: bold;
    margin-right: 5px;
    width: fit-content;
}

.web-limited {
    background-color: #4B3C8A;
}

.limited-quantity {
    background-color: #399A4A;
}

.room-temperature {
    background-color: #8A3C3C;
}

.frozen {
    background-color: #3743ED;
}

.refrigerate {
    background-color: #3798ED;
}

.subdivision {
    background-color: #8A773C;
}





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

キャンペーン

====================*/
.campaign-list {
    display: flex;
    flex-wrap: wrap;
    row-gap: 20px;
    justify-content: space-between;
}

.campaign-box {
    width: 100%;
}

@media screen and (min-width: 768px) {
    .campaign-box {
        width: 48%;
    }

}



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

カテゴリで選ぶ

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

.category-list {
    display: flex;
    flex-wrap: wrap;
    row-gap: 20px;
}

.category-box {
    width: 48%;
    margin-right: 4%;
    background-color: #fff;
    border: 1px solid #a3a3a3;
}

.category-item {
    display: flex;
    align-items: center;
    background-color: #f7f7f7;

}

.category-item-pic {
    width: 20%;
    padding: 5px;
}

.category-box:nth-of-type(2n) {
    margin-right: 0;
}

.category-item-name {
    margin-left: 10px;
    text-align: center;
    font-size: 3.25vw;
    font-weight: bold;
}


@media screen and (min-width: 768px) {
    .category-box {
        width: calc(25% - 15px);
        margin-right: 20px;
    }

    .category-box:nth-of-type(2n) {
        margin-right: 20px;
    }

    .category-box:nth-of-type(4n) {
        margin-right: 0;
    }


    .category-item-name {
        font-size: 15px;
    }

    .category-item-txt {
        font-size: 12px;
    }

    .lower .drink .category-list {
        justify-content: center;
    }

}

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

価格で選ぶ

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


.price-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    row-gap: 20px;
}

.price-box {
    width: 48%;
}

.price-box .btn-box {
    margin: 0 auto;
}

.price-box .btn-box a {
    font-size: 3vw;
}



@media screen and (min-width: 768px) {
    .price-box {
        width: 32%;
    }

    .price-box .btn-box a {
        font-size: inherit;
    }

}

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

簡単検索

====================*/
input,
select {
    -webkit-appearance: none;
    appearance: none;
    border: 1px solid #333;
    border-radius: 0px;
}

.easysearch-area {
    width: 95%;
    margin: auto;
}

.easysearch-area .inner {
    background-color: #fff;
    padding: 20px;
}

.easysearch-select-block {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 20px;
    margin-top: -25px;
}

.easysearch-select-box {
    width: 100%;
}

.easysearch-select-item {
    text-align: center;
    padding: 10px;
    width: 100%;
    border: 1px solid #333;
    background: #fff url('/images/icon-arrow-under-bk.svg') no-repeat right 5px top 50%;
    background-size: 16px 16px;
    cursor: pointer;
    text-align-last: center;
    color: #333;
}


.easysearch-select-item-icon {
    width: 1em;
    display: flex;
    align-items: center;
}

.easysearch-select-item-icon::before {
    content: "";
    display: block;
    background-image: url('/images/icon-times.svg');
    background-size: 100%;
    width: 14px;
    height: 14px;
}

@media screen and (min-width: 768px) {
    .easysearch-area {
        width: 100%;
        max-width: 700px;
    }

    .easysearch-area .inner {
        padding: 35px 50px;
    }

    .easysearch-select-block {
        justify-content: space-between;
    }

    .easysearch-select-box {
        width: 45%;
    }
}

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

カタログギフト

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

.cataloggift-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    row-gap: 20px;
}

.cataloggift-box {
    width: 48%;
    background-color: #fff;
    height: auto;
}

.cataloggift-item {
    border: 5px solid #f7f7f7;
    height: 100%;
}

.cataloggift-item-text_box {
    padding: 10px 8px;
}

.cataloggift-item-text_box-name {
    margin-bottom: 5px;
    text-align: center;
    font-size: 3.25vw;
    font-weight: bold;
}

.cataloggift-item-text_box-name span {
    font-size: 2vw;
    display: block;
}

.cataloggift-item-text_box-txt {
    font-size: 2.75vw;
}

@media screen and (min-width: 768px) {
    .cataloggift-box {
        width: 23%;
    }

    .cataloggift-item-text_box-name {
        font-size: 18px;
    }

    .cataloggift-item-text_box-name span {
        font-size: 12px;
    }

    .cataloggift-item-text_box-txt {
        font-size: 12px;
    }


}


.guide-area .area-title_box::before {
    position: absolute;
    display: inline-block;
    top: -25px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #8f0100;
    color: #fff;
    font-weight: bold;
    font-size: 1.5rem;
}

.guide-area .area-title_box::before {
    content: "無料";
    padding: 6px 20px 3px;
}



/*---------------

のし箇所

------------------*/
.guide-area .block-title_box {
    margin-bottom: 0 !important;
}

.content-title_box {
    margin-bottom: 50px;
    text-align: center;
}

.content-title {
    font-size: 2.4rem;
    position: relative;
    margin-bottom: 10px;
    font-weight: 500;
    font-family: "Noto Serif JP", serif;
}

.content-title span {
    display: block;
    font-size: 1.2rem;
}

.content-lead {
    /* font-family: "Noto Serif JP", serif; */
    display: block;
    line-height: 2;
    font-size: 1.6rem;
}

.noshi-block.osonae {
    background-color: #d8e8e0;
}

.noshi-block.okaeshi {
    background-color: #e2deed;
}


.noshi-block-content {
    background-color: #fff;
    padding: 25px 25px 50px !important;
}

.noshi-osonae-list {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    row-gap: 20px;
}

.noshi-osonae-list-box {
    width: 48%;
}

.noshi-osonae-list-box-name {
    text-align: center;
    margin: 10px auto 0 !important;
}


@media screen and (min-width: 768px) {
    .noshi-osonae-list-box {
        width: 23%;
    }
}

.content-pic {
    text-align: center;
    max-width: 800px;
    margin: auto;
}

/*---------------

包装紙

------------------*/

.wrapping-list {
    display: flex;
    flex-wrap: wrap;
    column-gap: 4%;
    row-gap: 20px;
}

.wrapping-list-box {
    width: 48%;
}

.wrapping-list-box-name {
    text-align: center;
    margin: 10px auto 0 !important;
}

.wrapping-list-box-txt {
    text-align: center;
    font-size: 1rem;
}

.wrapping-block-content {
    background-color: #fff;
    padding: 25px 10px;
    margin: 10px auto 0;
}


.wrapping-block-content-title {
    font-size: 2rem;
    text-align: center;
    font-weight: bold;
    margin: 0 auto 30px;
}

.wrapping-block-content-lead {
    margin-bottom: 20px;
}

@media screen and (min-width: 768px) {
    .wrapping-list {
        justify-content: space-between;
        column-gap: 0;
        row-gap: 20px;
    }

    .wrapping-block-content-title {
        font-size: 2.4rem;
    }

    .wrapping-list-box-pic {
        text-align: center;
    }

    .wrapping-list-box {
        width: 32%;
    }

    .wrapping-block-content {
        margin: 30px auto 0;
    }

    .wrapping-block-content-lead {
        text-align: center;
    }

}

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

コラム・豆知識

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

/* .tips-area {
    padding: 60px 10px;
} */

.tips-block {
    justify-self: center;
}

.tips-box {
    margin-bottom: 2rem;
    padding: 20px;
    color: #444;
    background-color: #fff;
}

.tips-box .tips-box-link {
    font-weight: bold;
    margin-top: 10px;
}

.tips-box .tips-box-link a {
    font-weight: bold;
}

.tips-box h3 {
    position: relative;
    margin-bottom: 2.4rem;
    padding-bottom: 10px;
    border-bottom: 1px solid #333;
    font-weight: bold;
    font-size: 1.8rem;
}

.tips-box-txt {
    margin-bottom: 1.5rem;
}

.tips-box ul {
    margin-bottom: 1.5rem;
}

.tips-box ul li {
    font-weight: bold;
}



.tips-box-txt-link a {
    font-weight: 500;
    border-bottom: 2px solid #333;
}

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

マナー箇所

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

.manner-box {
    height: auto;
}

.manner-item {
    background-color: #fff;
    height: 100%;
}

.manner-detail {
    padding: 10px;
}

.manner-item-name {
    font-weight: bold;
    margin-bottom: 10px;
}


/*---------------

スワイパー設定

------------------*/
.swiper-container.product-slider-container {
    position: relative;
}

.swiper-button-next:after,
.swiper-button-prev:after {
    content: none !important;
}

.swiper-button-next {
    background-image: url(/cmn/images/arrow.svg);
    right: -10px;
}

.swiper-button-prev {
    background-image: url(/cmn/images/arrow.svg);
    transform: scale(-1, 1);
    left: -10px;
}

.swiper-pagination {
    position: relative;
    margin-top: 10px;
}

.swiper-pagination-bullet-active {
    background-color: #333;
}

.bnr-list {
    display: flex;
    row-gap: 20px;
    flex-wrap: wrap;
}

.bnr-box {
    width: 100%;
}

@media screen and (min-width: 768px) {

    .bnr-list {
        justify-content: space-between;
    }


    .bnr-box {
        width: 48%;
    }
}