/* ==================================================
   全体
================================================== */

* {

    box-sizing: border-box;

}


body {

    margin: 0;

    padding: 20px;

    font-family:
        Arial,
        "Noto Sans JP",
        sans-serif;

    background: #f5f1ea;

    color: #3d342d;

}



/* ==================================================
   メインコンテナ
================================================== */

.container {

    width: 100%;

    max-width: 800px;

    margin: 0 auto;

}



/* ==================================================
   ヘッダー
================================================== */

.header {

    text-align: center;

    margin-bottom: 25px;

}


.header h1 {

    margin: 0;

    font-size: 32px;

}


.header p {

    margin-top: 5px;

    color: #777;

}



/* ==================================================
   商品セクション
================================================== */

.menu-section {

    background: #ffffff;

    border-radius: 16px;

    padding: 20px;

    margin-bottom: 20px;

    box-shadow:
        0 4px 15px
        rgba(
            0,
            0,
            0,
            0.08
        );

}


.menu-section h2 {

    margin-top: 0;

    padding-bottom: 10px;

    border-bottom:
        2px solid #eee5dc;

    font-size: 22px;

}



/* ==================================================
   商品
================================================== */

.product {

    display: grid;

    grid-template-columns:
        1fr
        110px
        160px
        120px;

    gap: 10px;

    align-items: center;

    padding: 15px 0;

    border-bottom:
        1px solid #eeeeee;

}


.product:last-child {

    border-bottom: none;

}



/* 商品名 */

.product-name {

    font-weight: bold;

}



/* 商品価格 */

.product-price {

    text-align: right;

    white-space: nowrap;

}



/* ==================================================
   個数操作
================================================== */

.quantity-control {

    display: flex;

    justify-content: center;

    align-items: center;

    gap: 5px;

}



/* ＋ / − */

.quantity-button {

    width: 38px;

    height: 38px;

    border: none;

    border-radius: 8px;

    background: #e9e3dc;

    font-size: 20px;

    font-weight: bold;

    cursor: pointer;

}


.quantity-button:hover {

    background: #d8cec3;

}



/* 個数入力 */

.quantity-input {

    width: 55px;

    height: 38px;

    text-align: center;

    font-size: 16px;

    border:
        1px solid #cccccc;

    border-radius: 8px;

}



/* 小計 */

.product-subtotal {

    text-align: right;

    font-weight: bold;

}



/* ==================================================
   会計結果
================================================== */

.accounting {

    background: #ffffff;

    border-radius: 16px;

    padding: 20px;

    margin-bottom: 20px;

    box-shadow:
        0 4px 15px
        rgba(
            0,
            0,
            0,
            0.08
        );

}


.account-row {

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding: 10px 0;

}



/* 商品内容 */

.product-content {

    font-size: 20px;

    font-weight: bold;

}



/* 合計 */

.total {

    border-top:
        2px solid #dddddd;

    margin-top: 10px;

    padding-top: 20px;

    font-size: 28px;

    font-weight: bold;

}



/* ==================================================
   操作ボタン
================================================== */

.actions {

    display: grid;

    grid-template-columns:
        1fr
        1fr;

    gap: 15px;

}



/* 共通 */

.button {

    padding: 15px;

    border: none;

    border-radius: 10px;

    font-size: 16px;

    font-weight: bold;

    cursor: pointer;

}



/* リセット */

.reset-button {

    background: #e9e3dc;

    color: #40372f;

}


.reset-button:hover {

    background: #d8cec3;

}



/* 会計確定 */

.payment-button {

    background: #6d5b4d;

    color: #ffffff;

}


.payment-button:hover {

    background: #55463b;

}



/* ==================================================
   フッター
================================================== */

footer {

    text-align: center;

    color: #888;

    font-size: 13px;

    margin-top: 20px;

}



/* ==================================================
   スマートフォン対応
================================================== */

@media (
    max-width: 650px
) {


    body {

        padding: 10px;

    }


    .product {

        grid-template-columns:
            1fr;

        gap: 8px;

    }


    .product-price {

        text-align: left;

    }


    .quantity-control {

        justify-content:
            flex-start;

    }


    .product-subtotal {

        text-align: left;

    }


    .actions {

        grid-template-columns:
            1fr;

    }

}