/* Amazon風カートレイアウト */

#body_wrap.woocommerce-cart .post_content .woocommerce {
	max-width: 1200px;
	margin: 0 auto;
	font-size: var(--naturel-shop-font-body);
	line-height: var(--naturel-shop-line-height);
	color: #333;
}

.naturel-cart-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(340px, 380px);
	gap: 32px;
	align-items: start;
}

.naturel-cart-layout .woocommerce-notices-wrapper:empty {
	margin-bottom: 0;
}

/* メッセージあり：1行目を全幅、商品一覧とサイドバーを2行目で上端揃え */
.naturel-cart-layout .woocommerce-notices-wrapper:not(:empty) {
	grid-column: 1 / -1;
	margin-bottom: 0;
}

.naturel-cart-layout:has(.woocommerce-notices-wrapper:not(:empty)) .woocommerce-cart-form,
.naturel-cart-layout:has(.woocommerce-notices-wrapper:not(:empty)) .cart-collaterals {
	grid-row: 2;
}

.naturel-cart-layout .woocommerce-cart-form {
	grid-column: 1;
	min-width: 0;
}

.naturel-cart-layout .cart-collaterals {
	grid-column: 2;
	width: 100%;
	min-width: 0;
	float: none !important;
}

/* WooCommerce 既定の .cart_totals { width:48%; float:right } を無効化 */
.naturel-cart-layout .cart-collaterals .cart_totals,
#body_wrap.woocommerce-cart .naturel-cart-layout .cart-collaterals .cart_totals.naturel-cart-sidebar {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	clear: none !important;
	box-sizing: border-box;
}

/* グローバルカスタムCSSの価格表示をカート内で上書き */
#body_wrap.woocommerce-cart .woocommerce-Price-amount.amount {
	display: inline !important;
	text-align: inherit !important;
	line-height: inherit !important;
	margin: 0 !important;
	font-size: inherit !important;
	white-space: nowrap;
}

/* shop_table_responsive の data-title ラベルを無効化 */
#body_wrap.woocommerce-cart table.shop_table_responsive tr td::before,
#body_wrap.woocommerce-cart table.shop_table_responsive tr th::before {
	display: none !important;
	content: none !important;
}

/* 左カラム：商品一覧ボックス */
#body_wrap.woocommerce-cart .woocommerce-cart-form {
	background: #fff !important;
	border: var(--naturel-shop-border);
	border-radius: var(--naturel-shop-radius);
	padding: var(--naturel-shop-box-padding);
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.06);
	box-sizing: border-box;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents {
	display: block;
	width: 100%;
	border: none !important;
	background: transparent !important;
	margin-bottom: 0;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents thead,
#body_wrap.woocommerce-cart .woocommerce-cart-form__contents tbody {
	display: block;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents thead {
	display: none;
}

/* WooCommerce / カスタムCSS のテーブル罫線を無効化（二重罫線防止） */
#body_wrap.woocommerce-cart table.shop_table,
#body_wrap.woocommerce-cart table.shop_table th,
#body_wrap.woocommerce-cart table.shop_table td {
	border: none !important;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents tbody tr.cart_item {
	display: grid;
	grid-template-columns: 28px 80px minmax(0, 1fr) minmax(5.5em, auto);
	grid-template-areas:
		"remove thumb name price"
		"remove thumb qty price";
	gap: 10px 20px;
	align-items: start;
	padding: 20px 0;
	border-bottom: 1px solid #e5e5e5;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents tbody tr.cart_item:first-child {
	padding-top: 4px;
}

/* 最終商品行：下罫線は actions 行の border-top に任せる（:last-of-type は actions 行があると効かない） */
#body_wrap.woocommerce-cart .woocommerce-cart-form__contents tbody tr.cart_item:not(:has(+ tr.cart_item)) {
	border-bottom: none;
	padding-bottom: 8px;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents tbody tr.cart_item td {
	display: block;
	border: none !important;
	background: #fff !important;
	padding: 0 !important;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents .product-remove {
	grid-area: remove;
	align-self: center;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents .product-remove a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border: 1px solid #d5d5d5;
	border-radius: 50%;
	color: #555 !important;
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents .product-thumbnail {
	grid-area: thumb;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents .product-thumbnail img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border: 1px solid #eee;
	border-radius: 4px;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents .product-name {
	grid-area: name;
	font-size: 14px;
	line-height: 1.6;
	text-align: left;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents .product-name a {
	color: #007185;
	text-decoration: none;
	font-weight: 600;
	font-size: inherit;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents .product-price {
	display: none !important;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents .product-quantity {
	grid-area: qty;
	text-align: left;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents .product-subtotal {
	grid-area: price;
	text-align: right;
	font-size: 15px;
	font-weight: 700;
	color: #111;
	align-self: start;
	min-width: 5.5em;
	white-space: nowrap;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents tr:not(.cart_item) td.actions {
	display: block;
	padding: 20px 0 4px !important;
	border: none !important;
	border-top: 1px solid #e5e5e5 !important;
	text-align: center;
	margin-top: 0;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents .actions .coupon {
	margin-bottom: 12px;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents button[name="update_cart"] {
	background: #b0b0b0;
	border: 1px solid #a0a0a0;
	color: #fff;
	font-size: var(--naturel-shop-font-body);
	padding: 8px 14px;
	border-radius: 8px;
	cursor: not-allowed;
	opacity: 0.85;
	transition: background 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents button[name="update_cart"]:not(:disabled),
#body_wrap.woocommerce-cart .woocommerce-cart-form__contents button[name="update_cart"].naturel-update-cart--active {
	background: #555;
	border-color: #444;
	color: #fff;
	cursor: pointer;
	opacity: 1;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents button[name="update_cart"]:not(:disabled):hover,
#body_wrap.woocommerce-cart .woocommerce-cart-form__contents button[name="update_cart"].naturel-update-cart--active:hover {
	background: #444;
	border-color: #333;
}

/* 数量：Amazon風ピル */
#body_wrap.woocommerce-cart .naturel-qty-control {
	display: inline-flex;
	align-items: center;
	border: 1px solid #d5d5d5;
	border-radius: 999px;
	overflow: hidden;
	background: #fff;
}

#body_wrap.woocommerce-cart .naturel-qty-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: 0;
	background: #f7f7f7;
	color: #333;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	padding: 0;
}

#body_wrap.woocommerce-cart .naturel-qty-btn:hover {
	background: #eee;
}

#body_wrap.woocommerce-cart .naturel-qty-control .qty {
	width: 2.5em;
	min-width: 2.5em;
	border: 0 !important;
	border-left: 1px solid #e5e5e5 !important;
	border-right: 1px solid #e5e5e5 !important;
	border-radius: 0 !important;
	padding: 0.35em 0.25em !important;
	text-align: center;
	font-size: var(--naturel-shop-font-body);
	background: #fff;
}

/* 右サイドバー */
#body_wrap.woocommerce-cart .naturel-cart-sidebar {
	position: sticky;
	top: 80px;
	background: #fff !important;
	border: var(--naturel-shop-border);
	border-radius: var(--naturel-shop-radius);
	padding: var(--naturel-shop-box-padding) !important;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.06);
	box-sizing: border-box;
}

#body_wrap.woocommerce-cart .naturel-cart-sidebar > h2 {
	display: none;
}

#body_wrap.woocommerce-cart .naturel-cart-sidebar__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: baseline;
	column-gap: 12px;
	margin-bottom: 14px;
	padding-bottom: var(--naturel-shop-divider-space);
	border-bottom: var(--naturel-shop-border);
	text-align: left;
}

#body_wrap.woocommerce-cart .naturel-cart-sidebar__subtotal-label {
	margin: 0;
	font-size: var(--naturel-shop-font-body);
	color: #333;
	text-align: left;
	white-space: nowrap;
}

#body_wrap.woocommerce-cart .naturel-cart-sidebar__subtotal-price {
	margin: 0;
	font-size: var(--naturel-shop-font-total);
	font-weight: 700;
	color: #111;
	line-height: 1.4;
	text-align: right;
	white-space: nowrap;
}

#body_wrap.woocommerce-cart .naturel-cart-sidebar__subtotal-price .woocommerce-Price-amount {
	font-size: inherit;
}

/* 送料無料プログレス */
.naturel-free-shipping-progress {
	margin: 0 0 16px;
	padding: var(--naturel-shop-inner-padding);
	font-size: var(--naturel-shop-font-body);
	color: #333;
	line-height: var(--naturel-shop-line-height);
	background: #f7f7f7;
	border-radius: var(--naturel-shop-radius);
}

.naturel-free-shipping-progress--complete {
	background: #707070;
	color: #fff;
}

.naturel-free-shipping-progress--complete strong {
	color: #fff;
}

.naturel-free-shipping-progress__bar {
	height: 8px;
	margin-bottom: 6px;
	background: #e8e8e8;
	border-radius: 999px;
	overflow: hidden;
}

.naturel-free-shipping-progress__bar span {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, #ffa41c, #ffce12);
	border-radius: 999px;
	transition: width 0.3s ease;
}

.naturel-free-shipping-progress__text {
	margin: 0;
}

.naturel-free-shipping-progress__main,
.naturel-free-shipping-progress__note {
	display: block;
}

#body_wrap.woocommerce-cart .naturel-free-shipping-progress__main .woocommerce-Price-amount.amount {
	display: inline !important;
	margin: 0 !important;
	text-align: inherit !important;
}

/* サイドバー内テーブル（左：項目名 / 右：金額・説明） */
#body_wrap.woocommerce-cart .naturel-cart-totals__table {
	display: block !important;
	width: 100%;
	font-size: var(--naturel-shop-font-body);
	line-height: 1.5;
	margin-bottom: 16px;
	border-collapse: collapse;
	border-spacing: 0;
}

#body_wrap.woocommerce-cart .naturel-cart-totals__table tbody {
	display: block !important;
}

#body_wrap.woocommerce-cart .naturel-cart-totals__table tr {
	display: grid !important;
	grid-template-columns: 3.25em minmax(0, 1fr);
	column-gap: 10px;
	align-items: start;
	padding: 8px 0;
}

#body_wrap.woocommerce-cart .naturel-cart-totals__table th,
#body_wrap.woocommerce-cart .naturel-cart-totals__table td,
#body_wrap.woocommerce-cart .naturel-cart-sidebar .cart_totals table th,
#body_wrap.woocommerce-cart .naturel-cart-sidebar .cart_totals table td {
	display: block !important;
	width: auto !important;
	min-width: 0;
	text-align: left !important;
	padding: 0 !important;
	background: #fff !important;
	color: #333 !important;
	vertical-align: top;
}

#body_wrap.woocommerce-cart .naturel-cart-totals__table th,
#body_wrap.woocommerce-cart .naturel-cart-sidebar .cart_totals table th {
	grid-column: 1;
	font-weight: 400;
	white-space: nowrap;
}

#body_wrap.woocommerce-cart .naturel-cart-totals__table td,
#body_wrap.woocommerce-cart .naturel-cart-sidebar .cart_totals table td {
	grid-column: 2;
	word-break: normal;
}

#body_wrap.woocommerce-cart .naturel-cart-sidebar tr.shipping td .woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
}

#body_wrap.woocommerce-cart .naturel-cart-totals__table tr.shipping,
#body_wrap.woocommerce-cart .naturel-cart-sidebar tr.shipping {
	align-items: first baseline;
}

#body_wrap.woocommerce-cart .naturel-cart-totals__table tr.shipping th,
#body_wrap.woocommerce-cart .naturel-cart-sidebar tr.shipping th {
	font-weight: 700;
	line-height: 1.4;
}

#body_wrap.woocommerce-cart .naturel-cart-sidebar tr.shipping td :is(p, span) {
	margin: 0;
}

#body_wrap.woocommerce-cart .naturel-cart-sidebar tr.order-total {
	padding-top: var(--naturel-shop-divider-space);
	border-top: var(--naturel-shop-border);
}

#body_wrap.woocommerce-cart .naturel-cart-sidebar tr.order-total th,
#body_wrap.woocommerce-cart .naturel-cart-sidebar tr.order-total td {
	font-size: var(--naturel-shop-font-label);
	font-weight: 700;
}

#body_wrap.woocommerce-cart .naturel-cart-sidebar tr.order-total td {
	font-size: var(--naturel-shop-font-total);
}

#body_wrap.woocommerce-cart .naturel-cart-sidebar tr.order-total .includes_tax {
	display: block !important;
	margin: 2px 0 0;
	font-size: 12px;
	font-weight: 400;
	color: #767676;
	white-space: normal;
}

/* 購入ボタン */
#body_wrap.woocommerce-cart .wc-proceed-to-checkout {
	margin: 4px 0 0;
	padding: 0;
}

#body_wrap.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
#body_wrap.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	text-align: center;
	background: #ffd814 !important;
	border: 1px solid #fcd200 !important;
	color: #111 !important;
	font-size: 14px;
	font-weight: 700;
	padding: 14px 20px !important;
	border-radius: 999px !important;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08);
}

#body_wrap.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
#body_wrap.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background: #f7ca00 !important;
}

#body_wrap.woocommerce-cart .ppc-button-wrapper {
	margin-top: 14px;
}

#body_wrap.woocommerce-cart .naturel-purchase-guide--cart {
	margin: 20px 0 0;
}

#body_wrap.woocommerce-cart #ppcp-recaptcha-v2-container {
	margin: 16px 0 0 !important;
}

/* 配送ラベル */
.naturel-shipping-label {
	display: block;
	margin: 0;
	font-size: var(--naturel-shop-font-body);
	font-weight: 700;
	color: #333;
	line-height: 1.4;
}

.naturel-shipping-sub,
.naturel-cart-shipping-note {
	display: block;
	margin: 4px 0 0;
	font-size: 12px;
	color: #767676;
	line-height: 1.5;
	text-align: left !important;
}

#body_wrap.woocommerce-cart .naturel-cart-sidebar tr.shipping td .naturel-shipping-sub {
	margin-top: 4px;
}

.naturel-cart-shipping-note {
	margin-top: 6px;
	color: #888;
}

.wc-empty-cart-message {
	margin: 0 0 20px;
}

.return-to-shop {
	margin: 0 !important;
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
	background: #fff !important;
	border: none !important;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents tbody > tr > td.actions {
	display: block;
	width: 100%;
}

#body_wrap.woocommerce-cart .woocommerce-cart-form__contents tbody > tr:has(> td.actions) {
	display: block;
}

/* WooCommerce smallscreen（768px以下）の上書き */
@media (max-width: 768px) {
	#body_wrap.woocommerce-cart table.shop_table_responsive.cart tr,
	#body_wrap.woocommerce-cart table.shop_table_responsive.cart tr td,
	#body_wrap.woocommerce-cart table.shop_table_responsive.cart tr th {
		display: revert;
	}

	#body_wrap.woocommerce-cart .woocommerce-cart-form__contents tbody tr.cart_item {
		display: grid;
	}

	#body_wrap.woocommerce-cart .woocommerce-cart-form__contents tbody tr.cart_item td {
		display: block;
	}

	#body_wrap.woocommerce-cart .naturel-cart-totals__table tr {
		display: grid !important;
		grid-template-columns: 3.25em minmax(0, 1fr);
	}

	#body_wrap.woocommerce-cart .naturel-cart-totals__table th,
	#body_wrap.woocommerce-cart .naturel-cart-totals__table td,
	#body_wrap.woocommerce-cart .naturel-cart-sidebar .cart_totals table th,
	#body_wrap.woocommerce-cart .naturel-cart-sidebar .cart_totals table td {
		display: block !important;
		text-align: left !important;
	}
}

/* レスポンシブ */
@media (max-width: 960px) {
	.naturel-cart-layout {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.naturel-cart-layout .cart-collaterals {
		grid-column: 1;
	}

	.naturel-cart-layout:has(.woocommerce-notices-wrapper:not(:empty)) .cart-collaterals {
		grid-row: 3;
	}

	#body_wrap.woocommerce-cart .woocommerce-cart-form,
	#body_wrap.woocommerce-cart .naturel-cart-sidebar {
		padding: var(--naturel-shop-box-padding-mobile) !important;
	}

	#body_wrap.woocommerce-cart .naturel-cart-sidebar {
		position: static;
	}

	#body_wrap.woocommerce-cart .woocommerce-cart-form__contents tbody tr.cart_item {
		grid-template-columns: 24px 64px minmax(0, 1fr);
		grid-template-areas:
			"remove thumb name"
			"remove thumb price"
			"qty qty qty";
	}

	#body_wrap.woocommerce-cart .woocommerce-cart-form__contents .product-subtotal {
		text-align: left;
		font-size: 15px;
	}
}
