/* =========================================================
   ショッピングカート画面のスタイル統一（完全版）
   ========================================================= */

/* --- 1. 全体共通の装飾 --- */
.fs-body-cart .fs-l-cart__contentsArea {
    background-color: #ffffff;
    border: 1px solid #d4c6b5;
    max-width: 1000px;
    width: 100%;
    padding: 60px 40px 40px;
    margin: 160px auto 40px;
    box-shadow: 0 4px 15px rgba(94, 76, 65, 0.1);
    position: relative;
    box-sizing: border-box;
}

.fs-body-cart .fs-l-cart__contentsArea::before {
    content: "";
    position: absolute;
    top: 5px; right: 5px; bottom: 5px; left: 5px;
    border: 1px solid #d4c6b5;
    pointer-events: none;
    z-index: 10;
}

/* タイトルの生成 */
.fs-body-cart #fs-cartContent-container::before {
    content: "ショッピングカート";
    position: absolute;
    top: -90px;
    left: 0;
    width: 100%;
    text-align: center;
    font-size: 1.8rem;
    color: #5e4c41;
    letter-spacing: 0.1em;
}
.fs-body-cart #fs-cartContent-container::after {
    content: "SHOPPING CART";
    position: absolute;
    top: -45px;
    left: 0;
    width: 100%;
    text-align: center;
    font-size: 16px;
    color: #a89a8d;
    font-family: "Times New Roman", serif;
    letter-spacing: 0.2em;
}

/* ボタン・テキスト共通デザイン */
.fs-body-cart .fs-c-listedProductName__name {
    font-weight: bold !important;
    color: #5e4c41 !important;
    text-decoration: none;
    font-size: 16px;
}
.fs-body-cart .fs-c-listedProductName__name:hover { color: #8c7b70 !important; }

.fs-body-cart .fs-c-cartTable__actionButton button {
    background: transparent !important;
    border: 1px solid #d4c6b5 !important;
    color: #8c7b70 !important;
    padding: 5px 15px !important;
    font-size: 16px !important;
    cursor: pointer;
    transition: all 0.3s;
    border-radius: 2px;
}
.fs-body-cart .fs-c-cartTable__actionButton button:hover {
    border-color: #5e4c41 !important;
    color: #5e4c41 !important;
    background-color: #ffffff !important;
}

.fs-body-cart .fs-c-button--purchaseHere {
    display: block !important;
    background-color: #5e4c41 !important;
    color: #ffffff !important;
    border: 1px solid #5e4c41 !important;
    padding: 15px 0 !important;
    text-align: center !important;
    font-size: 16px !important;
    text-decoration: none !important;
    transition: all 0.3s !important;
    border-radius: 2px !important;
}
.fs-body-cart .fs-c-button--purchaseHere:hover {
    background-color: #ffffff !important;
    color: #5e4c41 !important;
}

.fs-body-cart .fs-c-continueShopping { text-align: center; margin-bottom: 80px; }
.fs-body-cart .fs-c-button--continueShopping {
    display: inline-block;
    background-color: transparent !important;
    color: #5e4c41 !important;
    border: 1px solid #d4c6b5 !important;
    padding: 15px 60px;
    font-family: inherit;
    font-size: 16px;
    text-decoration: none;
    transition: all 0.3s;
    min-width: 300px;
    border-radius: 2px;
}
.fs-body-cart .fs-c-button--continueShopping:hover {
    background-color: #fcfaf5 !important;
    border-color: #5e4c41 !important;
}

.fs-body-cart .fs-c-quantity__select {
    border: 1px solid #d4c6b5 !important;
    background-color: #ffffff !important;
    padding: 5px 25px 5px 10px !important;
    color: #5e4c41 !important;
    border-radius: 0 !important;
}

/* --- 2. パソコン用レイアウト (広い画面：900px以上) --- */
@media screen and (min-width: 900px) {
    .fs-body-cart .fs-l-cart__contentsArea {
        display: flex;
        gap: 40px;
        align-items: flex-start;
    }
    .fs-body-cart .fs-l-cart__mainColumn { flex: 1; min-width: 0; }
    .fs-body-cart .fs-l-cart__sideColumn {
        width: 320px; flex-shrink: 0;
        background-color: #fcfaf5; padding: 25px;
        border: 1px solid #f0e9e1; z-index: 20;
    }

    .fs-body-cart .fs-c-cartTable {
        border-top: 1px solid #d4c6b5 !important;
        border-bottom: 1px solid #d4c6b5 !important;
        border-collapse: collapse;
        width: 100% !important;
    }
    .fs-body-cart .fs-c-cartTable,
    .fs-body-cart .fs-c-cartTable th,
    .fs-body-cart .fs-c-cartTable td {
        border-left: none !important;
        border-right: none !important;
    }
    .fs-body-cart .fs-c-cartTable th {
        border-bottom: 1px solid #d4c6b5 !important;
        color: #8c7b70; font-weight: normal; padding: 10px 5px; text-align: left;
    }
    .fs-body-cart .fs-c-cartTable td {
        border-bottom: 1px dashed #d4c6b5 !important;
        padding: 25px 5px !important; color: #5e4c41; vertical-align: middle;
    }
    .fs-body-cart .fs-c-cartTable tr:last-child td { border-bottom: none !important; }
    .fs-body-cart .fs-c-cartTable__product { display: flex; gap: 15px; align-items: center; }
    .fs-body-cart .fs-c-productImage__image { width: 80px; height: auto; border: 1px solid #f0e9e1; }

    .fs-body-cart .fs-c-orderTotalTable { width: 100%; border-collapse: collapse; margin-bottom: 25px; }
    .fs-body-cart .fs-c-orderTotalTable th,
    .fs-body-cart .fs-c-orderTotalTable td {
        border: none !important; padding: 20px 15px !important; color: #5e4c41; border-bottom: 1px solid #e8e2da !important;
    }
    .fs-body-cart .fs-c-orderTotalTable tr:last-child th,
    .fs-body-cart .fs-c-orderTotalTable tr:last-child td { border-bottom: none !important; }
    .fs-body-cart .fs-c-orderTotalTable th { font-weight: normal; text-align: left; }
    .fs-body-cart .fs-c-orderTotalTable td { font-size: 16px; font-weight: bold; text-align: right; }
}

/* --- 3. スマホ・タブレット用レイアウト --- */
@media screen and (max-width: 1023px) {
    .fs-body-cart .fs-l-cart__contentsArea { padding: 60px 15px 30px !important; flex-direction: column !important; }
    .fs-body-cart .fs-l-cart__mainColumn { width: 100% !important; }
    
    /* 中途半端な見出しを完全に消す */
    .fs-body-cart .fs-c-cartTable thead { display: none !important; }

    /* テーブルの解除と縦並び化 */
    .fs-body-cart .fs-c-cartTable, .fs-body-cart .fs-c-cartTable tbody, .fs-body-cart .fs-c-cartTable td {
        display: block !important; width: 100% !important; text-align: left !important;
        padding: 0 !important; border: none !important;
    }
    .fs-body-cart .fs-c-cartTable tr.fs-c-cartTable__row {
        display: flex !important; flex-direction: column !important;
        border-bottom: 1px dashed #d4c6b5 !important;
        padding-bottom: 25px !important; margin-bottom: 25px !important; gap: 15px !important; width: 100% !important;
    }
    .fs-body-cart .fs-c-cartTable tr.fs-c-cartTable__row:last-child { border-bottom: none !important; }

    .fs-body-cart .fs-c-cartTable__dataCell--product {
        display: flex !important; align-items: flex-start !important;
        width: 100% !important; margin-bottom: 5px !important;
    }
    .fs-body-cart .fs-c-cartTable__product {
        display: flex !important; gap: 15px !important; width: 100% !important; align-items: flex-start !important;
    }
    .fs-body-cart .fs-c-productImage__image { width: 100px !important; height: auto !important; border: 1px solid #f0e9e1; }
    .fs-body-cart .fs-c-cartTable__productInfo { flex: 1 !important; }

    /* 数量・小計エリア（右寄せ設定） */
    .fs-body-cart .fs-c-cartTable__dataCell--quantity,
    .fs-body-cart .fs-c-cartTable__dataCell--subtotal {
        display: flex !important; flex-direction: row !important;
        justify-content: flex-end !important; /* 右寄せ */
        align-items: center !important; gap: 20px !important;
        width: 100% !important; padding: 5px 0 !important;
        background-color: transparent !important; box-sizing: border-box !important;
    }
    .fs-body-cart .fs-c-cartTable__dataCell--quantity::before,
    .fs-body-cart .fs-c-cartTable__dataCell--subtotal::before {
        content: attr(data-cell-label); color: #8c7b70 !important; font-size: 16px !important;
    }
    .fs-body-cart .fs-c-cartTable__quantity, .fs-body-cart .fs-c-quantity {
        width: auto !important; margin: 0 !important; padding: 0 !important; display: inline-flex !important;
    }

    /* 削除・あとで買うボタン（左右均等） */
    .fs-body-cart .fs-c-cartTable__dataCell--action { width: 100% !important; }
    .fs-body-cart .fs-c-cartTable__actionButton {
        display: flex !important; justify-content: space-between !important; gap: 15px !important; width: 100% !important;
    }
    .fs-body-cart .fs-c-cartTable__actionButton > div { flex: 1 !important; }
    .fs-body-cart .fs-c-cartTable__actionButton button { width: 100% !important; margin: 0 !important; padding: 12px 0 !important; }

    /* 合計金額エリア */
    .fs-body-cart .fs-l-cart__sideColumn {
        width: 100% !important; background-color: #fcfaf5; padding: 20px; border: 1px solid #f0e9e1; margin-top: 30px; box-sizing: border-box; z-index: 20; position: relative;
    }
    .fs-body-cart .fs-c-orderTotalTable { width: 100% !important; display: block !important; }
    .fs-body-cart .fs-c-orderTotalTable tbody { display: block !important; width: 100% !important; }
    .fs-body-cart .fs-c-orderTotalTable tr {
        display: flex !important; justify-content: space-between !important; align-items: center !important;
        border-bottom: 1px solid #d4c6b5 !important; padding: 15px 0 !important; width: 100% !important; box-sizing: border-box !important;
    }
    .fs-body-cart .fs-c-orderTotalTable tr:last-child { border-bottom: none !important; }
    .fs-body-cart .fs-c-orderTotalTable th, .fs-body-cart .fs-c-orderTotalTable td {
        display: block !important; border: none !important; padding: 0 !important; width: auto !important; color: #5e4c41;
    }
    .fs-body-cart .fs-c-orderTotalTable th { text-align: left !important; font-weight: normal; }
    .fs-body-cart .fs-c-orderTotalTable td { text-align: right !important; font-weight: bold; font-size: 20px; }
}


/* =========================================================
   ショッピングカート画面：未ログイン時の各種決済ボタン統一
   ========================================================= */

/* ボタン同士が縦に並ぶ際の余白を確保 */
.fs-body-cart .fs-c-cartPayment__button {
    margin-bottom: 15px !important;
}

/* 会員向け・非会員向けなどのボタンをすべて茶色デザインに統一 */
.fs-body-cart .fs-c-button--loginAndPurchase,
.fs-body-cart .fs-c-button--unregisteredUserPurchase,
.fs-body-cart .fs-c-button--registerAndPurchase {
    display: block !important;
    background-color: #5e4c41 !important;
    color: #ffffff !important;
    border: 1px solid #5e4c41 !important;
    padding: 15px 5px !important;
    text-align: center !important;
    font-size: 16px !important; 
    text-decoration: none !important;
    transition: all 0.3s !important;
    border-radius: 2px !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

/* マウスホバーで白背景・茶色文字に反転 */
.fs-body-cart .fs-c-button--loginAndPurchase:hover,
.fs-body-cart .fs-c-button--unregisteredUserPurchase:hover,
.fs-body-cart .fs-c-button--registerAndPurchase:hover {
    background-color: #ffffff !important;
    color: #5e4c41 !important;
}

/* 最後のボタンの下余白をなくす */
.fs-body-cart .fs-c-cartPayment__button:last-child {
    margin-bottom: 0 !important;
}

/* =========================================================
   ショッピングカート画面：「あとで買う」ボタンの強制非表示
   ========================================================= */

.fs-body-cart .fs-c-cartTable__actionButton__container--buyItLater {
    display: none !important;
}