.cart-table {
	margin-left: auto;
	margin-right: auto;
	width:90%;
}

.cart-ui__table{
	width:100%;
	border-collapse:separate;
	border-spacing:0 6px; /* 行の間に少し余白 */
}
.cart-ui__table thead th{
	font-weight:bold;
	font-size:110%;
	letter-spacing:.02em;
	background:#fafafa;
	padding:.7rem 1rem;
	border-bottom:1px solid #ececec;
	text-shadow:0 0 2px rgba(234,0,0,.12); /* めっちゃ薄い赤影 */
}
.cart-ui__table tbody tr{
	background:#fff;
	box-shadow:0 1px 6px rgba(0,0,0,.04);
}
.cart-ui__table td{
	padding:.75rem 1rem;
	border-bottom:1px solid #f2f2f2;
	vertical-align:middle;
}
.cart-ui__table .cell-name{ width:50%; }
.cart-ui__table .cell-unit{ width:14%; white-space:nowrap; }
.cart-ui__table .cell-qty{ width:16%; }
.cart-ui__table .cell-subtotal{ width:14%; white-space:nowrap; }
.cart-ui__table .cell-action{ width:3%; text-align:center; }

.align-r{ text-align:right; }
.align-c{ text-align:center; }

.pid{ color:#999; margin-right:.35em; }
.pname{ font-weight:600; }
.opt-note{ margin-left:.5em; font-size:.9em; color:#666; }

/* Buttons */
.btn-icon{
	background:#fff;
	border:1px solid #eee;
	border-radius:12px;
	width:36px;
	height:36px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	transition:transform .08s ease, box-shadow .15s ease, border-color .15s ease;
	box-shadow:0 2px 8px rgba(0,0,0,.06);
}
.btn-icon:hover{ transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,.08); }
.btn-icon:active{ transform:translateY(0); box-shadow:0 1px 6px rgba(0,0,0,.06); }
.btn-icon:focus{ outline:2px solid rgba(234,0,0,.25); outline-offset:2px; }

.btn-trash{ color:#c00; border-color:#f3d4d4; }
.btn-trash:hover{ color:#e60000; border-color:#f0bcbc; }

.btn-outline{
	background:#fff;
	border:1px solid #e6e6e6;
	border-radius:10px;
	padding:.45rem .8rem;
	font-weight:600;
	cursor:pointer;
	transition:background .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.btn-outline:hover{ border-color:#ea0000; box-shadow:0 3px 10px rgba(234,0,0,.10); }
.btn-outline:active{ transform:translateY(1px); }
.btn-outline:focus{ outline:2px solid rgba(234,0,0,.25); outline-offset:2px; }

/* Quantity control */
.qty-input{
	display:inline-flex;
	align-items:center;
	border:1px solid #e6e6e6;
	border-radius:10px;
	overflow:hidden;
}
.qty-btn{
	width:36px;
	height:36px;
	border:0;
	background:#fafafa;
	cursor:pointer;
	font-size:18px;
	line-height:1;
	transition:background .15s ease;
	color: #999;
}
.qty-btn:hover{ background:#f2f2f2; }
.qty-field{
	width:58px;
	height:36px;
	border:0;
	text-align:center;
	font-weight:700;
}

/* Summary */
.cart-ui__summary{
	max-width:460px;
	margin:1.25rem 0 0 auto;
}
.cart-ui__summary .sum-row{
	display:flex; justify-content:space-between; align-items:center; padding:.4rem 0;
}
.cart-ui__summary .sum-divider{
	border:none; border-top:1px dashed #ddd; margin:.5rem 0;
}
.cart-ui__summary .sum-row.total .sum-label{ font-size:1.05rem; font-weight:700; }
.cart-ui__summary .sum-row.total .sum-value{ font-size:1.2rem; font-weight:800; }

/* Empty */
.cart-ui__table .empty{
	text-align:center; color:#c00; font-weight:600;
}



/* ============ Cart actions buttons (new) ============ */
.cart-actions{
	display:flex;
	justify-content:center; /* ←中央寄せ */
	align-items:center;
	gap:1.5rem; /* ボタン間の空き */
	margin:1.5rem 0 0;
}

/* セカンダリ（買い物を続ける） */
.btn-ghost{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:180px;
	height:48px;
	padding:0 1.25rem;
	border:1px solid #e5e5e5;
	border-radius:12px;
	background:#fff;
	color:#333;
	font-weight:700;
	text-decoration:none;
	box-shadow:0 2px 8px rgba(0,0,0,.05);
	transition:box-shadow .15s ease,border-color .15s ease,transform .06s ease,background .15s ease;
}
.btn-ghost:hover{ border-color:#bbb; box-shadow:0 4px 12px rgba(0,0,0,.08); transform:translateY(-1px); }
.btn-ghost:active{ transform:translateY(0); box-shadow:0 1px 6px rgba(0,0,0,.05); }
.btn-ghost:focus{ outline:2px solid rgba(234,0,0,.25); outline-offset:2px; }

/* プライマリ（購入手続きへ） */
.btn-primary{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:220px;
	height:52px;
	padding:0 1.5rem;
	border:0;
	border-radius:14px;
	background:linear-gradient(180deg,#ea0000 0%,#c70000 100%);
	color:#fff;
	font-weight:800;
	letter-spacing:.03em;
	text-decoration:none;
	box-shadow:0 8px 20px rgba(234,0,0,.28),0 2px 6px rgba(0,0,0,.12);
	transition:box-shadow .15s ease,transform .06s ease,filter .15s ease;
}
.btn-primary:hover{ color: #fffbe6; filter:saturate(1.05) brightness(1.02); box-shadow:0 10px 24px rgba(234,0,0,.32),0 3px 8px rgba(0,0,0,.14); transform:translateY(-1px); }
.btn-primary:active{ transform:translateY(0); box-shadow:0 6px 16px rgba(234,0,0,.24),0 2px 6px rgba(0,0,0,.12); }
.btn-primary:focus{ outline:2px solid rgba(234,0,0,.35); outline-offset:2px; }

/* 小さめ画面で縦積み＆フル幅に */
@media (max-width:768px){
	.cart-actions{
		flex-direction:column;
		align-items:center; /* 中央寄せのまま */
	}
	.btn-ghost,.btn-primary{
		width:100%;
		min-width:0;
	}
}