@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@700;800;900&family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap');

/*共通---------------------------------------------------------------------------------------------------------------*/

html{
    scroll-behavior: smooth;
}

#contents{
    font-size: 1rem;
    font-family:"Nunito","M PLUS Rounded 1c", sans-serif;
    font-weight: 700;
    line-height: 1.5;
    color: #500000;
}

#contents a {
    text-decoration: none;
    transition: .3s;
}

#contents a:hover {
    opacity: 0.6;
    text-decoration: none !important;
}

/*PC---------------------------------*/
#contents .sp {
    display: none !important;
}

#contents .pc {
    display: block ;
}

/*SP---------------------------------*/
@media only screen and (max-width: 767px) {
    #contents .pc {
        display: none !important;
    }

    #contents .sp {
        display: block !important;
    }

    img {
        width: 100%;
        height: auto;
    }

    .pankuzu {
        width: 100%;
        display: block;
        overflow-x: auto;
        overflow-y: hidden;
        word-break: keep-all;
        white-space: nowrap;
        padding: 8px;
        margin: 0;
        box-sizing: border-box;
    }
}


/*-------------------main-------------------*/
#main{
    max-width: 1220px;
    width: 90%;
    margin: 0 auto;
}

#main img {
    display: block;
    width: 100%;
}

@media only screen and (max-width: 767px) {
    #main {
        margin: 0px auto ;
    }
}
/*-------------------bg-------------------*/

.bg{
    background: url(../img/bg02.png) center top repeat-y,
    url(../img/bg.webp) center top no-repeat;
    background-size: 1300px,cover ;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 100px 0 80px;
}
@media only screen and (max-width: 767px) {
    .bg {
        padding: 50px 0;
        background-size: 100%, cover;
    }
}

/*-------------------h1-------------------*/
.h1_area{
    text-align: center;
}
.h1_area h1{
    max-width: 900px;
    width: 95%;
    margin: 0 auto ;
    padding:0px 0 30px;
}
.h1_area .h1_read{
    font-size: clamp(1rem, 0.455rem + 2.73vw, 2.5rem);
    font-weight: 800;
    line-height: 1.4;
    background: #fff;
    border: 3px solid #500000;
    border-radius: 50px;
    display: inline-block;
    padding:20px;
    border-radius: 50px;
}
.h1_area .h1_read span{
    font-size: clamp(2rem, 1.273rem + 3.64vw, 4rem);
    color:#cf0099;
}
@media only screen and (max-width: 767px) {
    .h1_area .h1_read {
        width: 95%;
        border-radius: 20px;
        box-sizing: border-box;
        font-size:4.6vw;
        }
        .h1_area .h1_read span {
        font-size:6vw;
        }
}


/*-------------------schedule-------------------*/
.schedule{
    margin: 20px auto;
    padding:30px 0 50px;
    text-align: center;
    font-size: clamp(1rem, 0.818rem + 0.91vw, 1.5rem);
}
.schedule h2 {
    width: 100%;
    font-size: clamp(1.25rem, 0.795rem + 2.27vw, 2.5rem);
    margin-bottom: 20px;
}
.schedule_inner{
    max-width: 1400px;
    width: 95%;
    padding:30px;
    box-sizing: border-box;
    background: #fff;
    border: 3px solid #500000;
    border-radius: 50px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
}
.schedule .anpan_date,
.schedule .creampan_date,
.schedule .melonpan_date{
    width: 32%;
    border:3px solid #cf0099;
    border-radius: 20px;
    padding:0 0 30px;
    box-sizing: border-box;
}
.schedule .creampan_date{
    border:3px solid #ff6d00;
}
.schedule .melonpan_date{
    border:3px solid #008d00;
}
.schedule h3{
    font-size: clamp(1.25rem, 1.068rem + 0.91vw, 1.75rem);
    display: block;
    border-radius: 16px 16px 0 0;
    background: #cf0099;
    color:#fff;
    padding:10px 0;
    position: relative;
}
.schedule h3 img{
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto 0;
    right:10px;
    max-width: 40px;
}
.schedule .date{
    width: 90%;
    margin: 30px auto 0;
}
.schedule a.btn{
    width: 90%;
    font-size: clamp(1rem, 0.818rem + 0.91vw, 1.5rem);
}
.schedule .creampan_date h3,
.schedule .creampan_date a.btn{
    background: #ff6d00;
}
.schedule .melonpan_date h3,
.schedule .melonpan_date a.btn {
    background: #008d00;
}
@media only screen and (max-width: 767px) {
    .schedule {
        margin: 30px auto;
        padding:20px 0 ;
        text-align: center;
        font-size: 5.1vw;
    }
    .schedule h2 {
        font-size: 6vw;
        margin-bottom: -10px;
    }
    .schedule h3 {
        font-size: 5.5vw;
        margin-bottom: -10px;
    }
    .schedule_inner {
        flex-direction: column;
        border-radius: 20px;
        gap: 30px;
    }
    .schedule .anpan_date,
    .schedule .creampan_date,
    .schedule .melonpan_date {
        width: 100%;
        padding: 0 0 20px;
    }
    .schedule a.btn {
        font-size: 5.1vw;
        margin: 10px auto 0;
    }
}

/*-------------------howto-------------------*/
#howto{
    max-width: 1000px;
    width: 95%;
    margin: 0 auto ;
    background: #fff;
    border:3px solid #500000;
    border-radius: 50px;
    font-size: clamp(1rem, 0.636rem + 1.82vw, 2rem);
}
#howto .inner{
    max-width: 800px;
    width: 90%;
    margin: 50px auto;
}
#howto h2{
    font-size: clamp(1.25rem, 0.795rem + 2.27vw, 2.5rem);
    text-align: center;
}
#howto .step{
    max-width: 700px;
    width: 95%;
    margin: 20px auto 30px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
#howto .step li{
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    justify-content: space-between;
}
#howto .step li p.number{
    width: 5%;
}
#howto .step li p.number span {
    width: clamp(1.125rem, 0.761rem + 1.82vw, 2.125rem);
    height: clamp(1.125rem, 0.761rem + 1.82vw, 2.125rem);
    border: 2px solid #500000;
    border-radius: 50%;
    text-align: center;
    box-sizing: border-box;
    display: inline-block;
    margin-right: 5px;
    line-height: 1;
}
#howto .step li p.text{
    width: 93%;
}
#howto .step li p.text span{
    color: #cf0099;
}
#howto .rp_up{
    max-width: 700px;
    margin: 50px auto;
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    justify-content: space-around;
}
#howto .rp_up img{
    width: 15%;
    margin-top: -20px;
}
#howto .rp_up .text{
    width: 82%;
}
#howto .rp_up .text span{
    display: block;
    font-size: clamp(0.75rem, 0.568rem + 0.91vw, 1.25rem);
}
#howto .read{
    text-align: center;
}
a.btn{
    font-size: clamp(1rem, 0.5rem + 2.5vw, 2.375rem);
    color:#fff !important;
    background: #cf0099;
    border-radius: 50px;
    width:100%;
    padding: 10px 0;
    display: block;
    margin:20px auto 0;
    text-align: center;
    position: relative;
}
@media only screen and (max-width: 767px) {
    #howto {
        margin: 0px auto ;
        border-radius: 20px;
        font-size: 5.1vw;
        }
    #howto h2 {
        font-size: 6vw;
    }
    #howto .inner {
        margin: 30px auto;
    }
    #howto .rp_up {
        margin: 30px auto;
        flex-direction: column;
        gap:5px;
    }
    #howto .rp_up img {
        width: 20%;
        margin-top: 0;
    }
    #howto .rp_up .text {
        width: 90%;
        margin-left: 10%;
    }
    #howto .rp_up .text span {
        font-size: 3.3vw;
    }
    a.btn {
        margin: 20px auto 0;
    }
}


/*-------------------rules-------------------*/
#rules{
    margin: 50px auto 0;
}
#rules h3{
    text-align: center;
    font-size:clamp(1.125rem, 0.761rem + 1.82vw, 2.125rem);
}
#rules .box {
    overflow-y: scroll;
    padding: 0 20px 20px;
    text-align: left;
    height: 300px;
    background: #eee;
    border-radius: 10px;
    margin: 10px auto 0;
    overflow-wrap: break-word;
    word-break: break-word;
    font-weight: normal;
    font-size: 1rem ;
    font-family: sans-serif;
}
#rules .box li {
    margin: 30px 0 0 0;
    line-height: 1.6;
}
#rules .box a,
#rules .box .title,
#rules .box p {
    text-align: left;
    font-size: 1rem !important;
    font-weight: normal;
    line-height: 150%;
    margin: 5px 0 0 0;
}
#rules .box a {
    color: #c83c5f;
}
#rules .box p.title{
    font-weight: bold;
}
#rules .box ul.notes {
    margin: 10px 0 0 0;
}
#rules .box ul.notes li {
    padding-left: 1em;
    text-indent: -1em;
    margin: 5px 0 0 0;
}
#rules .box ul.dotlist>li {
    padding-left: 1em;
    text-indent: -1em;
    margin: 10px 0 0 0;
}
#rules .box ul.steplist>li {
    padding-left: 3.5em;
    text-indent: -3.5em;
    margin: 10px 0 0 0;
}
#rules .box ul.numberlist>li {
    padding-left: 1.2em;
    text-indent: -1.2em;
    margin: 10px 0 0 0;
}
#rules .box ul.double_list li:nth-child(n+10) {
    padding-left: 1.9em;
    text-indent: -1.9em;
    margin-left: -0.6em;
}
@media only screen and (max-width: 767px) {
    #rules .box{
        font-size: 0.9rem;
    }
    #rules h3 {
        font-size: 5.5vw;
    }
    #rules dt {
        width: 20%;
    }
    #rules dd {
        width: 75%;
    }
    #rules dd span {
        font-size: clamp(12px, 3.4vw, 14px);
    }
}

/*-------------------prod_area-------------------*/
.prod_area{
    padding: 100px 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}
.prod_area h2{
    max-width: 900px;
    width: 90%;
    margin: 0 auto 20px;
}
.prod_area .date{
    text-align: center;
    font-size: clamp(1rem, 0.545rem + 2.27vw, 2.25rem);
}
.prod_list{
    max-width: 1000px;
    width: 90%;
    margin: 50px auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    row-gap:50px;
}
.prod_list li{
    width: 48%;
    padding: 2.5%;
    background: #fff;
    border:3px solid #cf0099;
    border-radius: 10px;
    position: relative;
    z-index: 2 ;
    box-shadow: 10px 10px 0 #cf0099;
    box-sizing: border-box;
}
.prod_list li .name{
    text-align: center;
    font-size: clamp(1rem, 0.636rem + 1.82vw, 2rem);
    font-weight: 800;
    border-bottom:3px solid #cf0099;
    margin-top: 10px;
    padding-bottom:10px;
}
.prod_list li .text{
    margin: 20px 0 0;
    font-size: 1.2rem;
    line-height: 1.6;
}

@media only screen and (max-width: 767px) {
    .prod_area {
            padding: 50px 0;
        }
    .prod_area .date {
        font-size: 5.1vw;
    }
    .prod_list {
        flex-direction: column;
        margin: 30px auto;
        row-gap: 30px;
    }
    .prod_list li{
        width: 96%;
        padding: 5%;
        margin-left: 1%;
    }
    .prod_list li .name {
        font-size: 5.5vw;
    }
}

/*-------------------anpan-------------------*/
#anpan{
    background: #ffdcf0;
}

/*-------------------creampan-------------------*/
#creampan{
    background: #ffffeb;
}
#creampan .prod_list li {
    border: 3px solid #ff6d00;
    box-shadow: 10px 10px 0 #ff6d00;
}
#creampan .prod_list li .name {
    border-bottom: 3px solid #ff6d00;
}

/*-------------------melonpan-------------------*/
#melonpan {
    background: #e6ffd2;
}
#melonpan .prod_list li {
    padding: 2.5% 2.5% 4%;
    border: 3px solid #008d00;
    box-shadow: 10px 10px 0 #008d00;
}
#melonpan .prod_list li .name {
    border-bottom: 3px solid #008d00;
}
@media only screen and (max-width: 767px) {

    #melonpan .prod_list li {
        width: 96%;
        padding: 5% 5% 8%;
    }
}

/*-------------------sns-------------------*/
#contents .sns {
    background: #f7f7f7;
    padding: 15px 0;
    margin: 0 auto 0;
}

#contents .sns ul {
    width: 800px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
}

#contents .sns ul li {
    width: 31%;
    margin: 0 2% 0 0;
    background: #fff;
    border-radius: 5px;

}

#contents .sns ul li:hover {
    opacity: 0.6;
    transition: 0.4s;
}

#contents .sns ul li a {
    display: block;
    border-right: 10px;
    padding: 10px;
    line-height: 48px;
    font-size: 16px;
    color: #111;
    font-family: 'メイリオ', Osaka, 'MS PGothic', arial, helvetica, sans-serif;
}

#contents .sns ul li:nth-child(3) {
    margin: 0;
}

#contents .sns ul li img {
    width: 45px;
    margin: 0 10px 0 0;
}

@media only screen and (max-width: 767px) {
    #contents .sns {
        margin: 0 auto 0;
    }

    #contents .sns ul {
        width: 100%;
        display: block;
    }

    #contents .sns ul li {
        width: 90%;
        margin: 0 auto 20px;
        background: #fff;
    }

    #contents .sns ul li:nth-child(3) {
        margin: 0 auto 0;
    }
}


/*-------------------page_top-------------------*/

#page_top {
    position: fixed;
    bottom: 20px;
    right: 30px;
    font-size: 12px;
    z-index: 9999;
    transition: 0.5s;
}

#page_top a img {
    width: 80px;
}

#page_top:hover {
    bottom: 30px;
}
@media only screen and (max-width: 767px) {

    #page_top {
            bottom: 10px;
            right: 20px;
        }
    
        #page_top a img {
            width: 60px;
        }
    
        #page_top:hover {
            bottom: 20px;
        }
    
        #contents .about .detail_wrap .thick {
            padding: 1em 1.5em 0;
        }
}

