/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5 */
/* Hallmark · macrostructure: fixed commerce drawer · genre: modern-minimal ecommerce · tone: premium-clean · anchor: Designer Frames orange/navy · theme: studied-DNA (source: supplied reference + existing DEV site) · states: default/hover/focus/active/disabled/loading/error/success · contrast: pass (40–41) · slop: pass (42–49) · mobile: pass (34, 49, 50–57) */

html,
body {
	overflow-x: clip;
}

#woo-cart-panel {
	--df-sc-paper: var(--theme-palette-color-8, oklch(99% 0.003 70));
	--df-sc-paper-soft: var(--theme-palette-color-7, oklch(98% 0.006 70));
	--df-sc-paper-muted: var(--theme-palette-color-6, oklch(96% 0.008 70));
	--df-sc-rule: var(--theme-palette-color-5, oklch(90% 0.009 250));
	--df-sc-text: var(--theme-palette-color-3, oklch(42% 0.035 250));
	--df-sc-ink: var(--theme-palette-color-4, oklch(28% 0.04 250));
	--df-sc-accent: var(--theme-button-background-initial-color, oklch(72% 0.16 55));
	--df-sc-accent-hover: oklch(68% 0.17 55);
	--df-sc-accent-ink: var(--theme-palette-color-4, oklch(28% 0.04 250));
	--df-sc-focus: var(--theme-palette-color-4, oklch(28% 0.04 250));
	--df-sc-error: oklch(50% 0.18 28);
	--df-sc-success: oklch(47% 0.12 150);
	--df-sc-font: var(--theme-font-family, inherit);
	--df-sc-space-3xs: 0.25rem;
	--df-sc-space-2xs: 0.25rem;
	--df-sc-space-xs: 0.5rem;
	--df-sc-space-sm: 0.75rem;
	--df-sc-space-md: 1rem;
	--df-sc-space-lg: 1.5rem;
	--df-sc-space-xl: 2rem;
	--df-sc-radius-sm: 0.375rem;
	--df-sc-radius-md: 0.5rem;
	--df-sc-dur-micro: 100ms;
	--df-sc-dur-short: 180ms;
	--df-sc-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--df-sc-shadow: 0 1px 2px oklch(24% 0.02 250 / 0.05);
}

#woo-cart-panel .ct-panel-inner {
	width: min(35rem, 100%) !important;
	max-width: 100%;
	background: var(--df-sc-paper);
	color: var(--df-sc-text);
	font-family: var(--df-sc-font);
}

#woo-cart-panel .ct-panel-actions {
	display: flex !important;
	width: 100% !important;
	min-height: 5rem;
	box-sizing: border-box;
	align-items: center;
	justify-content: space-between;
	gap: var(--df-sc-space-md);
	padding: var(--df-sc-space-md);
	border-block-end: 1px solid var(--df-sc-rule);
	background: var(--df-sc-paper);
	color: var(--df-sc-ink);
}

#woo-cart-panel .ct-panel-heading {
	font-family: var(--df-sc-font);
	font-size: clamp(1.45rem, 5vw, 1.75rem);
	font-style: normal;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.025em;
}

#woo-cart-panel .ct-toggle-close {
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0;
	place-items: center;
	margin-inline-start: auto;
	border: 1px solid transparent;
	border-radius: var(--df-sc-radius-sm);
	background: transparent;
	color: var(--df-sc-ink);
	transition: background-color var(--df-sc-dur-short) var(--df-sc-ease-out), transform var(--df-sc-dur-micro) var(--df-sc-ease-out);
}

#woo-cart-panel .ct-toggle-close svg {
	width: 0.9rem;
	height: 0.9rem;
	fill: currentColor;
}

#woo-cart-panel .ct-toggle-close:focus-visible,
#woo-cart-panel .remove:focus-visible,
#woo-cart-panel .df-sc-qty__button:focus-visible,
#woo-cart-panel .df-sc-qty__input:focus-visible,
#woo-cart-panel .woocommerce-mini-cart__buttons .button:focus-visible {
	outline: 2px solid var(--df-sc-focus);
	outline-offset: 2px;
}

#woo-cart-panel .ct-toggle-close:active,
#woo-cart-panel .woocommerce-mini-cart-item .remove:active,
#woo-cart-panel .df-sc-qty__button:active,
#woo-cart-panel .woocommerce-mini-cart__buttons .button:active {
	transform: translateY(1px);
}

#woo-cart-panel .ct-panel-content,
#woo-cart-panel .ct-panel-content-inner {
	height: 100%;
	min-height: 0;
}

#woo-cart-panel .ct-panel-content-inner {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto auto auto;
	padding: 0;
	background: var(--df-sc-paper);
	color: var(--df-sc-text);
}

#woo-cart-panel .df-sc-trust {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	padding: var(--df-sc-space-sm) var(--df-sc-space-md);
	border-block-end: 1px solid var(--df-sc-rule);
	background: var(--df-sc-paper);
	color: var(--df-sc-ink);
	font-size: 0.75rem;
	font-weight: 500;
}

#woo-cart-panel .df-sc-trust__item {
	display: flex;
	min-width: 0;
	align-items: center;
	justify-content: center;
	gap: var(--df-sc-space-xs);
	white-space: nowrap;
}

#woo-cart-panel .df-sc-trust__item + .df-sc-trust__item {
	border-inline-start: 1px solid var(--df-sc-rule);
}

#woo-cart-panel .df-sc-trust svg {
	width: 1.125rem;
	height: 1.125rem;
	flex: 0 0 auto;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.65;
}

#woo-cart-panel .woocommerce-mini-cart {
	display: flex;
	min-height: 0;
	margin: 0;
	padding: var(--df-sc-space-md);
	flex-direction: column;
	gap: var(--df-sc-space-sm);
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-gutter: stable;
}

#woo-cart-panel .woocommerce-mini-cart-item {
	position: relative;
	display: grid;
	grid-template-columns: 5rem minmax(0, 1fr);
	align-items: start;
	gap: var(--df-sc-space-sm);
	margin: 0;
	padding: var(--df-sc-space-md);
	border: 1px solid var(--df-sc-rule);
	border-radius: var(--df-sc-radius-md);
	background: var(--df-sc-paper);
	color: var(--df-sc-text);
	box-shadow: var(--df-sc-shadow);
}

#woo-cart-panel .woocommerce-mini-cart-item .ct-media-container {
	grid-column: 1;
	grid-row: 1 / span 3;
	width: 5rem;
	height: 5rem;
	align-self: start;
	border: 1px solid var(--df-sc-rule);
	border-radius: var(--df-sc-radius-sm);
	background: var(--df-sc-paper-soft);
	overflow: hidden;
}

#woo-cart-panel .woocommerce-mini-cart-item .ct-media-container img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

#woo-cart-panel .woocommerce-mini-cart-item .product-data {
	display: contents;
	min-width: 0;
}

#woo-cart-panel .woocommerce-mini-cart-item .product-title {
	grid-column: 2;
	display: block;
	width: auto;
	min-width: 0;
	max-width: none;
	padding-inline-end: 2.5rem;
	color: var(--df-sc-ink);
	font-family: var(--df-sc-font);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

#woo-cart-panel .woocommerce-mini-cart-item dl.variation {
	grid-column: 2;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: var(--df-sc-space-3xs) var(--df-sc-space-xs);
	margin: var(--df-sc-space-xs) 0 0;
	color: var(--df-sc-text);
	font-size: 0.78rem;
	line-height: 1.4;
}

#woo-cart-panel .woocommerce-mini-cart-item dl.variation dt,
#woo-cart-panel .woocommerce-mini-cart-item dl.variation dd,
#woo-cart-panel .woocommerce-mini-cart-item dl.variation p {
	margin: 0;
}

#woo-cart-panel .woocommerce-mini-cart-item dl.variation dt {
	color: var(--df-sc-ink);
	font-weight: 600;
}

#woo-cart-panel .woocommerce-mini-cart-item .remove {
	position: absolute;
	inset-block-start: var(--df-sc-space-2xs);
	inset-inline-end: var(--df-sc-space-2xs);
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	min-width: 2.75rem;
	min-height: 2.75rem;
	place-items: center;
	border-radius: var(--df-sc-radius-sm);
	background: transparent;
	color: var(--df-sc-ink);
	transition: background-color var(--df-sc-dur-short) var(--df-sc-ease-out), transform var(--df-sc-dur-micro) var(--df-sc-ease-out);
}

#woo-cart-panel .woocommerce-mini-cart-item .remove svg {
	width: 0.95rem;
	height: 0.95rem;
	fill: currentColor;
}

#woo-cart-panel .df-sc-item-footer {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: end;
	gap: var(--df-sc-space-sm);
	margin-block-start: var(--df-sc-space-md);
}

#woo-cart-panel .df-sc-qty {
	position: relative;
	display: grid;
	grid-template-columns: 2.75rem 2.75rem 2.75rem;
	width: fit-content;
	border: 1px solid var(--df-sc-rule);
	border-radius: var(--df-sc-radius-sm);
	background: var(--df-sc-paper);
	color: var(--df-sc-ink);
	overflow: visible;
}

#woo-cart-panel .df-sc-qty__button,
#woo-cart-panel .df-sc-qty__input {
	width: 2.75rem;
	height: 2.75rem;
	min-width: 2.75rem;
	min-height: 2.75rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: var(--df-sc-paper);
	color: var(--df-sc-ink);
	font-family: var(--df-sc-font);
	font-size: 0.95rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	text-align: center;
	transition: background-color var(--df-sc-dur-short) var(--df-sc-ease-out), transform var(--df-sc-dur-micro) var(--df-sc-ease-out), opacity var(--df-sc-dur-short) var(--df-sc-ease-out);
}

#woo-cart-panel .df-sc-qty__button:first-child {
	border-start-start-radius: var(--df-sc-radius-sm);
	border-end-start-radius: var(--df-sc-radius-sm);
}

#woo-cart-panel .df-sc-qty__button:last-child {
	border-start-end-radius: var(--df-sc-radius-sm);
	border-end-end-radius: var(--df-sc-radius-sm);
}

#woo-cart-panel .df-sc-qty__input {
	border-inline: 1px solid var(--df-sc-rule);
	-moz-appearance: textfield;
}

#woo-cart-panel .df-sc-qty__input::-webkit-inner-spin-button,
#woo-cart-panel .df-sc-qty__input::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

#woo-cart-panel .df-sc-qty__input:focus-visible {
	outline-offset: 1px;
}

#woo-cart-panel .df-sc-qty__button:disabled,
#woo-cart-panel .df-sc-qty__input:disabled,
#woo-cart-panel .woocommerce-mini-cart__buttons .button[aria-disabled="true"],
#woo-cart-panel .woocommerce-mini-cart__buttons .button:disabled {
	cursor: not-allowed;
	opacity: 0.48;
}

#woo-cart-panel .df-sc-line-price {
	justify-self: end;
	align-self: center;
	color: var(--df-sc-ink);
	font-size: 1rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	line-height: 1.2;
	white-space: nowrap;
}

#woo-cart-panel .df-sc-status {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	border: 0;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	overflow: hidden;
	white-space: nowrap;
}

#woo-cart-panel .is-df-sc-loading .df-sc-qty {
	opacity: 0.64;
}

#woo-cart-panel .is-df-sc-loading .df-sc-qty::after {
	position: absolute;
	inset: 50% auto auto 50%;
	width: 1rem;
	height: 1rem;
	border: 2px solid var(--df-sc-rule);
	border-block-start-color: var(--df-sc-ink);
	border-radius: 50%;
	content: "";
	transform: translate(-50%, -50%);
	animation: df-sc-spin 700ms linear infinite;
}

#woo-cart-panel .is-df-sc-error {
	border-color: var(--df-sc-error);
}

#woo-cart-panel .is-df-sc-error .df-sc-status {
	position: static;
	grid-column: 1 / -1;
	width: auto;
	height: auto;
	margin-block-start: var(--df-sc-space-xs);
	clip: auto;
	clip-path: none;
	color: var(--df-sc-error);
	font-size: 0.78rem;
	font-weight: 600;
	white-space: normal;
}

#woo-cart-panel .is-df-sc-success .df-sc-qty {
	border-color: var(--df-sc-success);
}

#woo-cart-panel .woocommerce-mini-cart__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--df-sc-space-md);
	margin: 0;
	padding: var(--df-sc-space-lg) var(--df-sc-space-md) var(--df-sc-space-xs);
	border-block-start: 1px solid var(--df-sc-rule);
	background: var(--df-sc-paper);
	color: var(--df-sc-ink);
	font-size: 1rem;
	line-height: 1.3;
}

#woo-cart-panel .woocommerce-mini-cart__total strong {
	font-size: 1.05rem;
	font-weight: 700;
	text-transform: none;
}

#woo-cart-panel .woocommerce-mini-cart__total .amount {
	font-size: 1.25rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

#woo-cart-panel .df-sc-checkout-note {
	margin: 0;
	padding: 0 var(--df-sc-space-md) var(--df-sc-space-md);
	background: var(--df-sc-paper);
	color: var(--df-sc-text);
	font-size: 0.78rem;
	line-height: 1.4;
}

#woo-cart-panel .woocommerce-mini-cart__buttons {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr) !important;
	gap: var(--df-sc-space-sm);
	margin: 0;
	padding: 0 var(--df-sc-space-md) max(var(--df-sc-space-md), env(safe-area-inset-bottom));
	background: var(--df-sc-paper);
}

#woo-cart-panel .woocommerce-mini-cart__buttons .button {
	display: inline-flex;
	min-width: 0;
	min-height: 3.25rem;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: var(--df-sc-space-sm) var(--df-sc-space-md);
	border: 1px solid var(--df-sc-ink);
	border-radius: var(--df-sc-radius-sm);
	background: var(--df-sc-paper);
	color: var(--df-sc-ink);
	font-family: var(--df-sc-font);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color var(--df-sc-dur-short) var(--df-sc-ease-out), color var(--df-sc-dur-short) var(--df-sc-ease-out), transform var(--df-sc-dur-micro) var(--df-sc-ease-out);
}

#woo-cart-panel .woocommerce-mini-cart__buttons .checkout {
	border-color: var(--df-sc-accent);
	background: var(--df-sc-accent);
	color: var(--df-sc-accent-ink);
}

#woo-cart-panel .woocommerce-mini-cart__buttons .checkout::after {
	margin-inline-start: var(--df-sc-space-xs);
	content: "→";
	font-size: 1.1em;
}

#woo-cart-panel .woocommerce-mini-cart__empty-message {
	align-self: center;
	margin: auto;
	padding: var(--df-sc-space-xl) var(--df-sc-space-md);
	color: var(--df-sc-text);
	font-size: 1rem;
	line-height: 1.5;
	text-align: center;
}

@media (hover: hover) and (pointer: fine) {
	#woo-cart-panel .ct-toggle-close:hover,
	#woo-cart-panel .woocommerce-mini-cart-item .remove:hover,
	#woo-cart-panel .df-sc-qty__button:hover:not(:disabled) {
		background: var(--df-sc-paper-muted);
	}

	#woo-cart-panel .woocommerce-mini-cart__buttons .button:hover {
		background: var(--df-sc-ink);
		color: var(--df-sc-paper);
	}

	#woo-cart-panel .woocommerce-mini-cart__buttons .checkout:hover {
		border-color: var(--df-sc-accent-hover);
		background: var(--df-sc-accent-hover);
		color: var(--df-sc-accent-ink);
	}
}

@media (min-width: 40rem) {
	#woo-cart-panel .ct-panel-actions {
		padding-inline: var(--df-sc-space-xl);
	}

	#woo-cart-panel .df-sc-trust {
		padding: var(--df-sc-space-md) var(--df-sc-space-xl);
		font-size: 0.82rem;
	}

	#woo-cart-panel .df-sc-trust svg {
		width: 1.25rem;
		height: 1.25rem;
	}

	#woo-cart-panel .woocommerce-mini-cart {
		padding: var(--df-sc-space-lg) var(--df-sc-space-xl);
		gap: var(--df-sc-space-md);
	}

	#woo-cart-panel .woocommerce-mini-cart-item {
		grid-template-columns: 7.5rem minmax(0, 1fr);
		gap: var(--df-sc-space-md);
		padding: var(--df-sc-space-lg);
	}

	#woo-cart-panel .woocommerce-mini-cart-item .ct-media-container {
		width: 7.5rem;
		height: 7.5rem;
	}

	#woo-cart-panel .woocommerce-mini-cart-item .product-data {
		display: flex;
		min-width: 0;
		min-height: 7.5rem;
		flex-direction: column;
	}

	#woo-cart-panel .woocommerce-mini-cart-item .product-title,
	#woo-cart-panel .woocommerce-mini-cart-item dl.variation,
	#woo-cart-panel .df-sc-item-footer,
	#woo-cart-panel .df-sc-status {
		grid-column: auto;
	}

	#woo-cart-panel .woocommerce-mini-cart-item .product-title {
		font-size: 1rem;
	}

	#woo-cart-panel .df-sc-item-footer {
		width: 100%;
		margin-block-start: auto;
		padding-block-start: var(--df-sc-space-md);
	}

	#woo-cart-panel .woocommerce-mini-cart__total {
		padding: var(--df-sc-space-lg) var(--df-sc-space-xl) var(--df-sc-space-xs);
	}

	#woo-cart-panel .df-sc-checkout-note {
		padding: 0 var(--df-sc-space-xl) var(--df-sc-space-lg);
	}

	#woo-cart-panel .woocommerce-mini-cart__buttons {
		padding: 0 var(--df-sc-space-xl) max(var(--df-sc-space-xl), env(safe-area-inset-bottom));
	}
}

@media (prefers-reduced-motion: reduce) {
	#woo-cart-panel *,
	#woo-cart-panel *::before,
	#woo-cart-panel *::after {
		animation-duration: 150ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 150ms !important;
	}
}

@keyframes df-sc-spin {
	to {
		transform: translate(-50%, -50%) rotate(360deg);
	}
}
