/**
 * Storefront WooCommerce notices — classic banners and block notice banners.
 * Keep in-page (not toast). Exclude per-field errors, thank-you hero, and delivery notes.
 */

.woocommerce-notices-wrapper,
.woocommerce-NoticeGroup,
.woocommerce-NoticeGroup-checkout {
	display: flex;
	flex-direction: column;
	gap: var(--dc-space-2);
	margin: 0 0 var(--dc-space-4);
}

.woocommerce-notices-wrapper:empty,
.woocommerce-NoticeGroup:empty {
	display: none;
	margin: 0;
}

/* —— Classic notices —— */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: var(--dc-space-2) var(--dc-space-3);
	margin: 0;
	padding: var(--dc-space-3) var(--dc-space-4);
	border: 1px solid var(--dc-colour-border);
	border-left-width: 3px;
	border-radius: var(--dc-radius-lg);
	background: var(--dc-colour-surface);
	box-shadow: var(--dc-shadow-sm);
	color: var(--dc-colour-text);
	font-size: var(--dc-font-size-sm);
	font-weight: 500;
	line-height: var(--dc-line-height);
	list-style: none !important;
}

.woocommerce-message,
.woocommerce-notice--success {
	border-color: color-mix(in srgb, var(--dc-colour-botanical) 40%, var(--dc-colour-border));
	border-left-color: var(--dc-colour-botanical);
}

.woocommerce-info,
.woocommerce-notice--info {
	border-color: color-mix(in srgb, var(--dc-colour-brand) 35%, var(--dc-colour-border));
	border-left-color: var(--dc-colour-brand);
}

.woocommerce-error,
.woocommerce-notice--error {
	border-color: color-mix(in srgb, var(--dc-colour-error) 40%, var(--dc-colour-border));
	border-left-color: var(--dc-colour-error);
	background: color-mix(in srgb, var(--dc-colour-accent) 12%, var(--dc-colour-surface));
}

/* Reset WooCommerce icon font (::before absolute + content).
 * Mask + background-color so child-theme tokens colour the icon. */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before,
.woocommerce-notice::before {
	content: "" !important;
	position: static !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	bottom: auto !important;
	display: block;
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
	margin: 0.1rem 0 0;
	padding: 0;
	font-size: 0 !important;
	line-height: 0;
	speak: never;
	background-color: var(--dc-colour-botanical);
	background-image: none;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpolyline points='8.5 12.5 11 15 15.5 9.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpolyline points='8.5 12.5 11 15 15.5 9.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.woocommerce-message::before,
.woocommerce-notice--success::before {
	background-color: var(--dc-colour-botanical);
}

.woocommerce-info::before,
.woocommerce-notice--info::before {
	background-color: var(--dc-colour-brand);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cline x1='12' y1='10' x2='12' y2='16'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cline x1='12' y1='10' x2='12' y2='16'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E") center / contain no-repeat;
}

.woocommerce-error::before,
.woocommerce-notice--error::before {
	background-color: var(--dc-colour-error);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cline x1='12' y1='8' x2='12' y2='12'/%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cline x1='12' y1='8' x2='12' y2='12'/%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Error / message lists: one card, line per issue beside the icon. */
.woocommerce-error > li,
.woocommerce-message > li,
.woocommerce-info > li {
	display: block;
	flex: 1 1 calc(100% - 1.25rem - var(--dc-space-3));
	max-width: calc(100% - 1.25rem - var(--dc-space-3));
	margin: 0;
	padding: 0;
	list-style: none !important;
}

.woocommerce-error > li + li,
.woocommerce-message > li + li,
.woocommerce-info > li + li {
	flex-basis: 100%;
	width: calc(100% - 1.25rem - var(--dc-space-3));
	max-width: none;
	margin-left: calc(1.25rem + var(--dc-space-3));
	padding-top: var(--dc-space-2);
	border-top: 1px solid color-mix(in srgb, var(--dc-colour-border) 70%, transparent);
}

.woocommerce-error li::before,
.woocommerce-message li::before,
.woocommerce-info li::before {
	content: none !important;
	display: none !important;
}

/* Inline actions (e.g. View cart) as text links. */
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button,
.woocommerce-message a.button,
.woocommerce-info a.button,
.woocommerce-error a.button,
.woocommerce-message .wc-forward,
.woocommerce-info .wc-forward {
	display: inline;
	float: none !important;
	margin: 0 0 0 var(--dc-space-2);
	padding: 0 !important;
	min-height: 0;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--dc-colour-brand) !important;
	font-size: inherit;
	font-weight: 600;
	line-height: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	white-space: nowrap;
}

.woocommerce-message .button:hover,
.woocommerce-info .button:hover,
.woocommerce-error .button:hover,
.woocommerce-message .wc-forward:hover {
	color: var(--dc-colour-brand-dark) !important;
	background: transparent !important;
}

@media (max-width: 479px) {
	.woocommerce-message .button,
	.woocommerce-info .button,
	.woocommerce-error .button,
	.woocommerce-message .wc-forward,
	.woocommerce-info .wc-forward,
	.woocommerce-message a.button,
	.woocommerce-info a.button {
		flex: 1 1 100%;
		display: block;
		width: 100%;
		max-width: 100%;
		margin-top: var(--dc-space-1);
		margin-right: 0;
		margin-bottom: 0;
		margin-left: 2.05rem; /* icon 1.25rem + gap */
		white-space: normal;
	}
}

/* —— Block notice banners —— */

body .wc-block-components-notice-banner {
	display: flex !important;
	align-items: flex-start;
	gap: var(--dc-space-3);
	margin: 0 0 var(--dc-space-4) !important;
	padding: var(--dc-space-3) var(--dc-space-4) !important;
	border: 1px solid var(--dc-colour-border) !important;
	border-left-width: 3px !important;
	border-radius: var(--dc-radius-lg) !important;
	background: var(--dc-colour-surface) !important;
	box-shadow: var(--dc-shadow-sm);
	color: var(--dc-colour-text) !important;
	font-size: var(--dc-font-size-sm);
	font-weight: 500;
	line-height: var(--dc-line-height);
}

body .wc-block-components-notice-banner.is-success {
	border-color: color-mix(in srgb, var(--dc-colour-botanical) 40%, var(--dc-colour-border)) !important;
	border-left-color: var(--dc-colour-botanical) !important;
}

body .wc-block-components-notice-banner.is-info,
body .wc-block-components-notice-banner.is-warning {
	border-color: color-mix(in srgb, var(--dc-colour-brand) 35%, var(--dc-colour-border)) !important;
	border-left-color: var(--dc-colour-brand) !important;
}

body .wc-block-components-notice-banner.is-error {
	border-color: color-mix(in srgb, var(--dc-colour-error) 40%, var(--dc-colour-border)) !important;
	border-left-color: var(--dc-colour-error) !important;
	background: color-mix(in srgb, var(--dc-colour-accent) 12%, var(--dc-colour-surface)) !important;
	color: var(--dc-colour-text) !important;
}

body .wc-block-components-notice-banner > svg {
	flex-shrink: 0;
	width: 1.25rem !important;
	height: 1.25rem !important;
	margin: 0.1rem 0 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	fill: var(--dc-colour-botanical) !important;
	color: var(--dc-colour-botanical);
}

body .wc-block-components-notice-banner.is-success > svg {
	fill: var(--dc-colour-botanical) !important;
	color: var(--dc-colour-botanical);
}

body .wc-block-components-notice-banner.is-info > svg,
body .wc-block-components-notice-banner.is-warning > svg {
	fill: var(--dc-colour-brand) !important;
	color: var(--dc-colour-brand);
}

body .wc-block-components-notice-banner.is-error > svg {
	background-color: transparent !important;
	fill: var(--dc-colour-error) !important;
	color: var(--dc-colour-error);
}

body .wc-block-components-notice-banner .wc-block-components-notice-banner__content,
body .wc-block-components-notice-banner .wc-block-components-notice-banner__summary {
	color: var(--dc-colour-text) !important;
	font-size: inherit;
	font-weight: 500;
	line-height: inherit;
}

/* —— Scoped exclusions —— */

/* Per-field checkout validation stays plain text. */
.dc-checkout .form-row .woocommerce-error {
	display: block;
	align-items: initial;
	gap: 0;
	margin: var(--dc-space-2) 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--dc-colour-error);
	font-size: var(--dc-font-size-sm);
	font-weight: 500;
	list-style: none;
}

.dc-checkout .form-row .woocommerce-error::before {
	display: none !important;
	content: none !important;
	background: none !important;
}

/* Thank-you hero / failed payment use their own layout. */
.dc-thankyou .woocommerce-notice,
.dc-thankyou .woocommerce-notice--success,
.dc-thankyou .woocommerce-notice--error {
	display: block;
	align-items: initial;
	gap: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
}

.dc-thankyou .woocommerce-notice::before,
.dc-thankyou .woocommerce-notice--success::before,
.dc-thankyou .woocommerce-notice--error::before {
	display: none !important;
	content: none !important;
	background: none !important;
}

.dc-thankyou__lead.woocommerce-notice {
	color: var(--dc-colour-muted);
	font-size: inherit;
	font-weight: inherit;
}
