/* ================================================================ */
/* Shopify 1:1 Cart Page Styling                                     */
/* ================================================================ */

body.woocommerce-cart {
	--pv-cart-summary-top: 112px;
	background-color: #ffffff;
	color: #1a1a1a;
	font-family: var(--pv-sans);
}

/* Cart page: header & footer in Manrope too */
body.woocommerce-cart .pv-header,
body.woocommerce-cart .pv-header *,
body.woocommerce-cart .pv-footer,
body.woocommerce-cart .pv-footer * {
	font-family: var(--pv-sans);
}

body.woocommerce-cart .pv-woo {
	padding: 36px 0 80px !important;
}

body.woocommerce-cart .pv-page {
	padding-top: 128px;
}

body.admin-bar.woocommerce-cart .pv-page {
	padding-top: 96px;
}

body.woocommerce-cart .pv-entry-content {
	margin-top: 0;
}

body.woocommerce-cart .elementor-section,
body.woocommerce-cart .elementor-column,
body.woocommerce-cart .elementor-widget-wrap,
body.woocommerce-cart .elementor-widget-container,
body.woocommerce-cart .elementor-shortcode {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Hide duplicate theme headings on cart page */
body.woocommerce-cart .pv-page-inner>.pv-section-heading,
body.woocommerce-cart .pv-entry-content>h1:first-child {
	display: none !important;
}

.pv-shopify-cart {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 0 60px;
}

/* Header */
.pv-shopify-cart .pv-cart-head {
	margin-bottom: 18px;
}

.pv-shopify-cart .pv-cart-title {
	display: inline-flex;
	align-items: center;
	margin: 0;
	color: #1a1a1a;
	font-size: 32px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.pv-shopify-cart .pv-cart-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-left: 12px;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background-color: #e8e8e8;
	color: #303030;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
}

/* Main Grid Layout (Left Item List + Right Summary Card) */
.pv-shopify-cart .pv-cart-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 64px;
	align-items: start;
}

.pv-cart-left {
	min-width: 0;
}

.pv-cart-right {
	position: fixed !important;
	top: var(--pv-cart-summary-top) !important;
	right: max(24px, calc((100vw - 1200px) / 2)) !important;
	z-index: 5 !important;
	width: 380px;
	min-width: 380px;
}

/* Item Row (4 Columns: Thumb, Info, Quantity Stepper, Subtotal) */
.pv-cart-row {
	display: grid;
	grid-template-columns: 88px minmax(160px, 1fr) auto auto;
	gap: 24px;
	align-items: center;
	padding: 24px 0;
	border-bottom: 1px solid #e8e8e8;
}

.pv-cart-items-list .pv-cart-row:first-child {
	border-top: 1px solid #e8e8e8;
}

.pv-cart-col-thumb img,
.pv-cart-thumb-img {
	display: block;
	width: 88px;
	height: 88px;
	border-radius: 8px;
	object-fit: cover;
	border: 1px solid #f0f0f0;
}

.pv-cart-col-info {
	display: flex;
	flex-direction: column;
	gap: 0px !important;
}

.pv-cart-item-header {
	margin: 0;
	line-height: 1.1;
}

.pv-cart-item-title {
	display: inline-block;
	color: #1a1a1a;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	line-height: 1.1;
}

body.woocommerce-cart .pv-shopify-cart .pv-cart-item-title {
	font-weight: 750 !important;
	font-size: 18px !important;
}

.pv-cart-item-title:hover {
	text-decoration: underline;
}

.pv-cart-item-unit-price {
	font-size: 14px;
	color: #666666;
	margin-top: 0;
	line-height: 1.15;
}

.pv-cart-item-unit-price .amount {
	display: inline-block;
	line-height: 1.15;
}

.pv-cart-item-unit-price del {
	text-decoration: line-through;
	color: #888888;
	margin-left: 4px;
}

.pv-cart-item-unit-price ins {
	text-decoration: none;
	color: #1a1a1a;
	font-weight: 600;
}

/* Variation Metadata (e.g. Nama pada Botol, Fragrance Blend) */
.pv-cart-item-variations {
	margin: 4px 0 0 0;
	font-size: 13px;
	color: #666666;
}

.pv-cart-item-variations dl.variation {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 0;
}

.pv-cart-item-variations dt {
	font-weight: 500;
	color: #666666;
	float: none;
	display: inline-block;
	margin: 0;
}

.pv-cart-item-variations dd {
	display: inline-block;
	margin: 0 0 4px 0;
	color: #1a1a1a;
	font-weight: 500;
}

.pv-cart-item-variations p {
	margin: 0;
	display: inline;
}

/* Quantity Column (Center column in row) */
.pv-cart-col-quantity {
	display: flex;
	align-items: center;
	gap: 12px;
	justify-self: center;
}

/* Stepper Box */
.pv-qty-stepper {
	display: inline-flex;
	align-items: center;
	border: 1px solid #e2e2e2;
	border-radius: 6px;
	background: #ffffff;
	height: 38px;
	padding: 0 4px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
}

.pv-qty-stepper button.pv-qty-btn {
	background: transparent !important;
	border: none !important;
	width: 28px !important;
	height: 100% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 16px !important;
	color: #303030 !important;
	cursor: pointer !important;
	border-radius: 4px !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	line-height: 1 !important;
}

.pv-qty-stepper button.pv-qty-btn:hover {
	background-color: #f2f2f2 !important;
	color: #000000 !important;
}

.pv-qty-stepper .quantity {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
}

.pv-qty-stepper .quantity .qty {
	width: 32px !important;
	height: 34px !important;
	border: none !important;
	background: transparent !important;
	text-align: center !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #1a1a1a !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	appearance: textfield;
	-moz-appearance: textfield;
}

.pv-qty-stepper .quantity .qty::-webkit-outer-spin-button,
.pv-qty-stepper .quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Trash Icon Button */
.pv-cart-trash-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	color: #4a4a4a;
	border-radius: 6px;
	transition: color 150ms ease, background-color 150ms ease;
	text-decoration: none !important;
}

.pv-cart-trash-btn:hover {
	color: #d32f2f;
	background-color: #fef2f2;
}

/* Subtotal Column (Far right column in row) */
.pv-cart-col-subtotal {
	text-align: right;
	font-size: 15px;
	font-weight: 600;
	color: #1a1a1a;
	white-space: nowrap;
	justify-self: end;
}

/* Order Summary Card (Right Column) */
.pv-shopify-summary-card {
	position: static !important;
	background: #e8e8e8 !important;
	border-radius: 16px !important;
	padding: 28px !important;
	width: 100% !important;
	box-sizing: border-box !important;
	border: none !important;
	box-shadow: none !important;
}

/* Discount Accordion */
.pv-summary-discount {
	border-bottom: 1px solid #d0d0d0;
	margin-bottom: 22px;
	padding-bottom: 16px;
}

.pv-discount-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	font-size: 15px;
	font-weight: 500;
	color: #303030;
	user-select: none;
	list-style: none;
}

.pv-discount-head::-webkit-details-marker {
	display: none;
}

.pv-discount-plus {
	font-size: 20px;
	font-weight: 400;
	color: #303030;
	line-height: 1;
}

.pv-discount-body {
	margin-top: 14px;
}

.pv-coupon-inline {
	display: flex;
	gap: 8px;
}

.pv-coupon-inline .input-text {
	flex: 1;
	height: 42px;
	border: 1px solid #c8c8c8;
	border-radius: 8px;
	padding: 0 12px;
	font-size: 13.5px;
	background: #ffffff;
	color: #1a1a1a;
}

.pv-coupon-btn {
	height: 42px;
	padding: 0 16px;
	border-radius: 8px;
	background: #303030;
	color: #ffffff;
	font-size: 13px;
	font-weight: 600;
	border: none;
	cursor: pointer;
}

.pv-coupon-btn:hover {
	background: #000000;
}

/* Summary Rows */
.pv-summary-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 12px;
}

.pv-total-row {
	margin-bottom: 14px;
}

.pv-total-label {
	font-size: 16px;
	font-weight: 600;
	color: #1a1a1a;
	white-space: nowrap;
}

.pv-total-value,
.pv-total-value .amount {
	font-size: 16px;
	font-weight: 700;
	color: #1a1a1a;
	white-space: nowrap;
}

/* Taxes / Shipping notice */
.pv-summary-tax-note {
	font-size: 13px;
	color: #555555;
	line-height: 1.45;
	margin: 0 0 24px 0;
}

/* Black Pill Checkout Button */
.pv-summary-checkout {
	padding: 0 !important;
	margin: 0 !important;
}

.pv-summary-checkout a.checkout-button,
.pv-summary-checkout .pv-cart-checkout__btn {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 52px !important;
	background: #0f4c45 !important;
	color: #ffffff !important;
	border-radius: 999px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	border: none !important;
	transition: background-color 150ms ease, transform 100ms ease !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
	box-sizing: border-box !important;
}

.pv-summary-checkout a.checkout-button:hover,
.pv-summary-checkout .pv-cart-checkout__btn:hover {
	background: #0f4c45 !important;
	color: #ffffff !important;
}

.pv-summary-checkout a.checkout-button:active,
.pv-summary-checkout .pv-cart-checkout__btn:active {
	transform: scale(0.985) !important;
}

/* Responsive */
@media (max-width: 960px) {
	.pv-shopify-cart .pv-cart-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.pv-cart-right {
		position: static !important;
		top: auto !important;
		width: 100%;
		min-width: 0;
	}

	.pv-shopify-summary-card {
		position: static !important;
	}
}

@media (max-width: 600px) {
	body.woocommerce-cart .pv-woo {
		padding: 24px 0 56px !important;
	}

	body.woocommerce-cart .pv-page {
		padding-top: 104px;
	}

	body.admin-bar.woocommerce-cart .pv-page {
		padding-top: 58px;
	}

	.pv-cart-row {
		grid-template-columns: 72px minmax(0, 1fr) auto;
		grid-template-areas:
			"thumb details subtotal"
			"thumb details quantity";
		column-gap: 14px;
		row-gap: 10px;
		align-items: start;
	}

	.pv-cart-col-thumb {
		grid-area: thumb;
	}

	.pv-cart-col-info {
		grid-area: details;
	}

	.pv-cart-col-subtotal {
		grid-area: subtotal;
		text-align: right;
		justify-self: end;
	}

	.pv-cart-col-quantity {
		grid-area: quantity;
		justify-self: end;
	}
}

/* Slideout Cart Drawer (For Shop/Product pages) */
.pv-cart-drawer {
	position: fixed !important;
	z-index: 99999 !important;
	inset: 0 !important;
	display: none !important;
	background: rgba(0, 0, 0, 0.4) !important;
}

body.pv-cart-drawer-open .pv-cart-drawer {
	display: block !important;
}

.pv-cart-drawer-panel {
	position: absolute;
	top: 0;
	right: 0;
	width: min(420px, calc(100% - 28px));
	height: 100%;
	background: #ffffff;
	box-shadow: -10px 0 30px rgba(0, 0, 0, 0.15);
	padding: 24px;
	display: grid;
	grid-template-rows: auto 1fr auto;
}

/* ================================================================ */
/* Empty Cart State (Centered & Compact Icon)                       */
/* ================================================================ */

.wc-empty-cart-message,
.pv-cart-empty,
.woocommerce .cart-empty {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	padding: 60px 24px !important;
	margin: 0 auto !important;
	max-width: 540px !important;
	width: 100% !important;
}

.pv-cart-empty__icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 64px !important;
	height: 64px !important;
	min-width: 64px !important;
	min-height: 64px !important;
	border-radius: 50% !important;
	background-color: #f4f4f4 !important;
	color: #4a4a4a !important;
	margin: 0 auto 20px auto !important;
}

.pv-cart-empty__icon svg,
.woocommerce .cart-empty svg {
	width: 28px !important;
	height: 28px !important;
	max-width: 28px !important;
	max-height: 28px !important;
	display: block !important;
}

.pv-cart-empty h2,
.woocommerce .cart-empty h2 {
	font-size: 24px !important;
	font-weight: 700 !important;
	color: #1a1a1a !important;
	margin: 0 0 10px 0 !important;
	text-align: center !important;
}

.pv-cart-empty p,
.woocommerce .cart-empty p {
	font-size: 14.5px !important;
	color: #666666 !important;
	margin: 0 auto 24px auto !important;
	max-width: 420px !important;
	line-height: 1.5 !important;
	text-align: center !important;
}

.pv-cart-empty__cta,
.woocommerce p.return-to-shop a.button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 46px !important;
	padding: 0 28px !important;
	background-color: #0f4c45 !important;
	color: #ffffff !important;
	border-radius: 999px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	border: none !important;
	transition: background-color 150ms ease, transform 100ms ease !important;
	margin: 0 auto !important;
}

.pv-cart-empty__cta:hover,
.woocommerce p.return-to-shop a.button:hover {
	background-color: #0f4c45 !important;
	color: #ffffff !important;
}

p.return-to-shop {
	text-align: center !important;
	margin: 0 auto !important;
}
