.wpvip-demo-policy-approval {
	--policy-brand: var(--wp--preset--color--brand-primary, var(--wp--preset--color--primary, #155e75));
	--policy-accent: var(--wp--preset--color--accent, #f59e0b);
	--policy-text: var(--wp--preset--color--contrast, var(--wp--preset--color--foreground, #102a43));
	--policy-muted: var(--wp--preset--color--secondary, #52606d);
	--policy-base: var(--wp--preset--color--base, var(--wp--preset--color--background, #fff));
	--policy-on-brand: #fff;
	box-sizing: border-box;
	color: var(--policy-text);
	margin-block: clamp(2rem, 6vw, 5rem);
}

.wpvip-demo-policy-approval *,
.wpvip-demo-policy-approval *::before,
.wpvip-demo-policy-approval *::after { box-sizing: inherit; }

.wpvip-demo-policy-approval__card,
.wpvip-demo-policy-approval__success {
	background: var(--policy-base);
	border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
	border-radius: 1rem;
	box-shadow: 0 1.25rem 4rem rgba(16, 42, 67, 0.1);
	margin-inline: auto;
	max-width: 54rem;
	padding: clamp(1.5rem, 5vw, 3.5rem);
}

.wpvip-demo-policy-approval__eyebrow {
	color: var(--policy-brand);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	margin: 0 0 0.75rem;
	text-transform: uppercase;
}

.wpvip-demo-policy-approval h2,
.wpvip-demo-policy-approval__title {
	color: currentColor;
	font-size: clamp(2rem, 5vw, 3.5rem);
	letter-spacing: -0.035em;
	line-height: 1.05;
	margin: 0;
}

.wpvip-demo-policy-approval__summary {
	color: var(--policy-muted);
	font-size: 1.05rem;
	line-height: 1.7;
	margin: 1.25rem 0 0;
	max-width: 46rem;
}

.wpvip-demo-policy-approval__meta {
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 2rem 0;
	overflow: hidden;
}

.wpvip-demo-policy-approval__meta-item {
	background: color-mix(in srgb, var(--policy-brand) 7%, var(--policy-base));
	padding: 1rem;
}

.wpvip-demo-policy-approval__meta dt {
	color: var(--policy-muted);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.wpvip-demo-policy-approval__meta dd {
	font-weight: 700;
	margin: 0.25rem 0 0;
	overflow-wrap: anywhere;
}

.wpvip-demo-policy-approval__meta dd.is-empty { font-style: italic; font-weight: 400; }
.wpvip-demo-policy-approval__action { margin: 0 0 2rem; }

.wpvip-demo-policy-approval__policy-link,
.wpvip-demo-policy-approval__acknowledgement button {
	align-items: center;
	background: var(--policy-brand);
	border: 2px solid var(--policy-brand);
	border-radius: 0.45rem;
	color: var(--policy-on-brand);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 750;
	gap: 0.5rem;
	justify-content: center;
	min-height: 3rem;
	padding: 0.65rem 1rem;
	text-decoration: none;
}

.wpvip-demo-policy-approval__acknowledgement {
	border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent);
	display: grid;
	gap: 1.25rem;
	padding-top: 2rem;
}

.wpvip-demo-policy-approval__acknowledgement label {
	align-items: flex-start;
	cursor: pointer;
	display: flex;
	font-weight: 650;
	gap: 0.75rem;
	line-height: 1.55;
}

.wpvip-demo-policy-approval__acknowledgement input {
	accent-color: var(--policy-brand);
	flex: 0 0 auto;
	height: 1.25rem;
	margin: 0.15rem 0 0;
	width: 1.25rem;
}

.wpvip-demo-policy-approval__acknowledgement button { justify-self: start; }
.wpvip-demo-policy-approval__demo-note,
.wpvip-demo-policy-approval__empty-link { color: var(--policy-muted); font-size: 0.8rem; margin: 0; }

.wpvip-demo-policy-approval__success { text-align: center; }
.wpvip-demo-policy-approval__success-icon {
	align-items: center;
	background: #d9fbe5;
	border-radius: 999px;
	color: #176b3a;
	display: flex;
	font-size: 1.5rem;
	height: 3.5rem;
	justify-content: center;
	margin: 0 auto 1.25rem;
	width: 3.5rem;
}

.wpvip-demo-policy-approval__success h2 { font-size: clamp(1.8rem, 4vw, 2.75rem); }
.wpvip-demo-policy-approval__success > p { color: var(--policy-muted); line-height: 1.65; margin: 1rem auto 0; max-width: 36rem; }
.wpvip-demo-policy-approval__success-policy { font-weight: 750; }
.wpvip-demo-policy-approval :focus-visible { outline: 3px solid var(--policy-accent); outline-offset: 3px; }
.wpvip-demo-policy-approval--editor .wpvip-demo-policy-approval__policy-link { cursor: default; }
.wpvip-demo-policy-approval--editor .wpvip-demo-policy-approval__acknowledgement button { cursor: default; opacity: 0.75; }

@media (max-width: 600px) {
	.wpvip-demo-policy-approval__card,
	.wpvip-demo-policy-approval__success { border-radius: 0.75rem; }
	.wpvip-demo-policy-approval__meta { grid-template-columns: 1fr; }
	.wpvip-demo-policy-approval__acknowledgement button { justify-self: stretch; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.wpvip-demo-policy-approval * { scroll-behavior: auto !important; }
}
