@charset "UTF-8";

/* SmartPhone Design ***********************/

/* common */

header {
    margin-bottom: 0;
}

main {
    margin: 0 auto;
    background: #FFFFFF;
    overflow: hidden;
}

.return-menu-group {
    padding: 10px;
    overflow: hidden;
    display: none;
}

.return-menu {
    float: right;
    text-align: center;
    width: 100px;
    padding: 20px;
    background: #4C2406;
    display: hidden;
    color: #FFFFFF;
}

.return-menu a {

}

.main-section h2 {
    font-size: 1.6em;
    text-align: center;
    font-weight: bold;
    padding: 10px 0 5px 0;
}

/* main-nav */

.main-nav-group {
    font-size: 1.2em;
    /* display: table; */
    overflow: hidden;
    padding: 20px 10px;
}

.main-nav-link {
    /* display: table-cell; */
    /* padding: 20px 0 20px 20px; */
    float: left;
}

.main-nav-target {
    padding: 0 10px;
    float: left;
}

/* main-category */

.main-category-section {
    margin-bottom: 10px;
}

.main-category-group {
    display: flex;
    flex-wrap: wrap;
    /* width: 100%; */
    padding: 0 10px;
}

.main-category {
    display: flex;
    width: 50%;
    background: #F8B500;
}

.category-only {
    width: 100%;
}

.main-category-text {
    display: flex;
    width: 100%;
    border: 1px solid #FFFFFF;
}

.category-text {
    font-size: 1.2em;
    margin: 0 auto;
    /* padding: 10px 0; */
    width: 100%;
    text-align: center;
}

.category-text a {
    padding: 15px 0;
}

/* main-sort */

.main-sort-section {
    /* margin-bottom: 10px; */
    padding: 0;
    border-bottom: 1px solid #CCCCCC;
}

.main-sort-top {
    border-top: 1px solid #CCCCCC;
    border-bottom: 1px dotted #CCCCCC;
    padding: 10px 0;
}

.main-sort-bottom {
    border-bottom: 1px solid #CCCCCC;
    padding: 10px 0;
}

.main-price-sort {
    display: table;
    table-layout: fixed;
    width: 100%;
    font-size: 1.2em;
}

.asc-price-sort {
    display: table-cell;
    text-align: right;
    width: 50%;
    border-right: 1px solid #CCCCCC;
    padding: 0 10px 0 0;
}

.desc-price-sort {
    display: table-cell;
    text-align: left;
    width: 50%;
    padding: 0 0 0 10px;
}

.main-calorie-sort {
    display: table;
    table-layout: fixed;
    width: 100%;
    font-size: 1.2em;
}

.asc-calorie-sort {
    display: table-cell;
    text-align: right;
    width: 50%;
    border-right: 1px solid #CCCCCC;
    padding: 0 10px 0 0;
}

.desc-calorie-sort {
    display: table-cell;
    text-align: left;
    width: 50%;
    padding: 0 0 0 10px;
}

/* main-bento */

#main-section-bento {
    margin-bottom: 20px;
}


.main-article-group {
    /* padding: 5px 5px 20px 5px; */
    padding: 10px;
    position: relative;
    display: flex;
}

.main-article-top {
    width: 100%;
}

.main-article-bottom {
    width: 100%;
    padding-top: 10px;
}

.main-article {
    background: #FFFFFF;
    padding: 10px;
    width: 100%;
    /* box-shadow: 2px 2px 6px 2px rgba(0,0,0,0.2); */
    border: 1px solid #DDDDDD;
}

.article-content {
    width: 100%;
    position: relative;
}

.article-content-group {
    /* padding: 10px 10px 0 10px; */
    /* padding: 10px; */
}

.main-article-left .article-content-group {
    /* padding: 10px; */
    /* margin-bottom: 10px; */
}

.main-article-right .article-content-group {
    /* padding: 10px 10px 0 10px; */
    /* margin-bottom: 10px; */
}

.main-article-right .content-group {
    /* margin-bottom: 10px; */
}

.plans {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 5px 20px;
    font-size: 1.2em;
    border-radius: 5px;
    background: #8FC31F;
    color: #FFFFFF;
    box-shadow: 3px 3px 2px 1px rgba(0,0,0,0.5);
    font-weight: bold;
}

.limited {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 5px 20px;
    font-size: 1.2em;
    border-radius: 5px;
    background: #DF003A;
    color: #FFFFFF;
    box-shadow: 3px 3px 2px 1px rgba(0,0,0,0.5);
    font-weight: bold;
}

.new {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 5px 20px;
    font-size: 1.2em;
    border-radius: 5px;
    background: #DF003A;
    color: #FFFFFF;
    box-shadow: 3px 3px 2px 1px rgba(0,0,0,0.5);
    font-weight: bold;
}

.article-content img {
    width: 80%;
    display: block;
    margin: 0 auto;
    /* padding: 40px 0; */
}

.main-article-group h3 {
    font-size: 1.6em;
    padding: 0 0 5px 0;
    font-weight: bold;
}

.content-group {
    /* margin-bottom: 10px; */
    overflow: hidden;
    padding: 10px 0;
}

.content-catchcopy {
    padding: 10px 0;
    margin-bottom: 10px;
    font-size: 1.2em;
    color: #F18D00;
}

.price-group {
    display: table;
    padding: 5px 0 5px 0;
}

.price-main {

    display: table-cell;
}

.price {
    display: table;
}

.price-text {
    display: table-cell;
    font-size: 1.6em;
    color: #DF003A;
    font-weight: bold;
}

.price-tax {
    display: table-cell;
    font-size: 1em;
    font-weight: bold;
    color: #DF003A;
}

.calorie-main {
    display: table;
    width: 100%;
    border-top: 1px dotted #CCCCCC;
}

.calorie {
}

.calorie-name {
    padding: 10px 0 0 0;
    line-height: 1;
}

.calorie-text {
    color: #999999;
    padding: 10px 0 10px 0;
    border-bottom: 1px dotted #CCCCCC;
}

#main-section-optiondesc {
    margin-bottom: 20px;
}

.main-optiondesc-group {
    padding: 10px;
}

.main-optiondesc {
    display: flex;
    flex-wrap: wrap;
    border: 1px solid #CCCCCC;
    border-radius: 10px;
    padding: 10px 0;
}

.optiondesc-group {
    display: table;
    width: 100%;
    padding: 10px;
    box-sizing: border-box;
}

.optiondesc-left {
    display: table-cell;
    padding: 10px 0 10px 10px;
    border-bottom: 1px solid #CCCCCC;
}

.optiondesc-right {
    display: table-cell;
    padding: 10px 10px 10px 0;
    text-align: right;
    border-bottom: 1px solid #CCCCCC;
    color: #DF003A;
}

.plus-option-title {
    font-size: 1.2em;
    font-weight: bold;
    border-bottom: 2px solid #DE003A;
    margin-bottom: 10px;
}

.plus-option-detail a {
    text-decoration: underline;
    color: #DF003A;
}

.plus-option-annotation {
    margin-bottom: 10px;
    color: #F18D00;
}

/* allergy */

.allergy-title {
    font-size: 1.2em;
    margin-bottom: 10px;
    border-bottom: 2px solid #DE003A;
    font-weight: bold;
}

.allergy-top {
    margin-bottom: 10px;
}

.allergy-subject {
    font-size: 1.1em;
    border-bottom: 1px dotted #CCCCCC;
    margin-bottom: 10px;
}

.allergy-group {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
}

.allergy-content {
    display: flex;
    font-size: 0.9em;
    width: 25%;
}

.allergy-text {
    padding: 5px;
    width: 100%;
    background: #EEEEEE;
    border: 1px solid #FFFFFF;
}

.allergy-active {
    background: #FFFF84;
    border: 1px solid #DE003A;
}

.allergy-detail {
    font-size: 0.9em;
    padding: 5px 0 0 0;
}

.allergy-detail a {
    text-decoration: underline;
    color: #DF003A;
}

.bento-option {
    font-size: 0.9em;
}

.main-article-middle .article-content-group {
   /* padding: 0 10px; */

    overflow: hidden;
}

.main-article-toggle {
    text-align: center;
    /* padding: 5px 10px 0 10px; */
    margin-top: auto;
}

.main-article-detail {
    font-size: 1.2em;
    padding: 10px;
    /* border-radius: 5px; */
    /* border-top: 3px double #CCCCCC;
    border-bottom: 3px double #CCCCCC; */
    background: #DDDDDD;
    cursor: pointer;
    width: 60%;
    margin: 0 auto;
}

.main-article-bottom .article-content-group {
    /* padding: 10px 10px 0 10px; */
    /* padding: 10px; */
}

.bento-description {
    font-size: 1.2em;
    width: 100%;
}

.option-group {
    display: flex;
    flex-wrap: wrap;
}

.option-description {
    /* margin-bottom: 10px; */
    font-size: 1.1em;
    padding: 10px 0;
}

.option-content {
    display: flex;
    cursor: pointer;
    width: 50%;
}

.option-space {
    padding: 2px;
    width: 100%;
}

.option-text:hover {
    background: #DDDDDD;
}

.option-text {
    padding: 5px 5px;
    background: #DDDDDD;
    border-radius: 5px;
    text-align: center;
    font-size: 1.2em;
    line-height: 1.2em;
}

.allergy-top, .allergy-bottom {
    /* padding: 0 10px; */
    /* margin-bottom: 10px; */
}

/* plus-option */

.plus-option {
    border-top: 1px dotted #CCCCCC;
    border-bottom: 1px dotted #CCCCCC;
    padding: 5px 0;
    margin-bottom: 5px;
}

.plus-option-group {
    display: table;
    width: 100%;
}

.plus-option-left {
    display: table-cell;
    padding: 2px 0;
    font-size: 1.2em;
}

.plus-option-right {
    display: table-cell;
    padding: 2px 0;
    font-size: 1.2em;
    color: #DF003A;
    text-align: right;
}

/* main-allergy */

.main-allergy-group {
    margin-bottom: 20px;
    border-top: 1px dotted #999999;
    border-bottom: 1px dotted #999999;
}

.allergy-description {
    padding: 10px;
    color: #666666;
    line-height: 1.5em;
}

.allergy-description-title {
    font-weight: bold;
    padding: 0 10px;
}

.allergy-description-content {
    padding: 0 10px;
}

.allergy-description-tbl {
    display: table;
}

.allergy-description-left, .allergy-description-right {
    display: table-cell;
}

/* Tablet Design ***********************/

@media all and (min-width: 480px) {

    /* main-category */

    .category-text {
        font-size: 1.2em;
    }

    /* main-sort */

    .asc-price-sort {
        padding: 0 20px 0 0;
    }

    .desc-price-sort {
        padding: 0 0 0 20px;
    }

    .asc-calorie-sort {
        padding: 0 20px 0 0;
    }

    .desc-calorie-sort {
        padding: 0 0 0 20px;
    }

    /* main-bento */

    .main-bento-group {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
    }

    .main-bento-group article {
        display: flex;
        width: 50%;
    }

    .main-article-group {
        display: flex;
        width: 100%;
    }

    .main-article-group h3 {
        font-size: 1.4em;
    }

    .main-article-left, .main-article-right {
        display: flex;
        width: 100%;
    }

    .optiondesc-group {
        width: 50%;
    }

    .allergy-content {
        font-size: 0.8em;
    }
}

/* PC Design ***********************/

@media all and (min-width: 1024px) {

    /* common */

    main {
        width: 100%;
    }

    /* main-category */

    .main-category {
        width: auto;
    }

    .category-text {
        /* padding: 10px 20px; */
    }

    .category-text a {
        padding: 10px 20px;
    }

    /* main-sort */

    .main-sort-group {
        display: table;
        table-layout: fixed;
        width: 100%;
    }

    .main-sort-top {
        border-right: 1px solid #CCCCCC;
    }

    .main-sort {
        display: table-cell;
        width: 50%;
        border-top: 1px solid #CCCCCC;
        border-bottom: 1px solid #CCCCCC;
    }

    /* main-bento */

    .main-bento-group article {
        /* width: 50%; */
        width: 33.33%;
    }

    .main-bento-group-low article {
        width: 50%;
    }

    .content-group h3 {
        font-size: 1.2em;
    }

    .price-text {
        font-size: 1.4em;
    }

    .plans {
        /* font-size: 0.9em; */
    }

    .limited {
        /* font-size: 0.9em; */
    }

    .new {
        /* font-size: 0.9em; */
    }

    .option-content {
        /* width: auto; */
    }

    /* plus-option */

    .plus-option-left {
        font-size: 1em;
    }

    .plus-option-right {
        font-size: 1em;
    }

    .plus-option-left {
        font-size: 1.2em;
    }

    .plus-option-right {
        font-size: 1.2em;
    }

    .optiondesc-group {
        width: 33.33%;
    }
}

@media all and (min-width: 1140px) {
    /* common */

    main {
        width: 70%;
    }

    .plus-option-left {
        /* font-size: 0.9em; */
    }

    .plus-option-right {
        /* font-size: 0.9em; */
    }

    .main-bento-group article {
        /* width: 50%; */
        width: 33.33%;
    }

    .main-bento-group-low article {
        width: 50%;
    }

    .optiondesc-group {
        width: 33.33%;
    }
}

@media all and (min-width: 1600px) {

    .plus-option-left {
        font-size: 1.1em;
    }

    .plus-option-right {
        font-size: 1.1em;
    }

    .main-bento-group article {
        /* width: 50%; */
        width: 25%;
    }

    .main-bento-group-low article {
        width: 50%;
    }

    .optiondesc-group {
        width: 25%;
    }

}
