.dvm-consent {
	--dvm-ink: var(--color-ink, #201b18);
	--dvm-muted: var(--color-muted, #716a65);
	--dvm-paper: var(--color-paper, #f7f3ed);
	--dvm-ivory: var(--color-ivory, #fffdf9);
	--dvm-accent: var(--color-accent, #8b6757);
	--dvm-sage: var(--color-sage, #7b8574);
	--dvm-line: var(--color-line, #ded8d2);
	--dvm-display: var(--font-display, Georgia, "Times New Roman", serif);
	--dvm-body: var(--font-body, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
	color: var(--dvm-ink);
	font-family: var(--dvm-body);
	position: relative;
	z-index: 2147483000;
}

.dvm-consent *,
.dvm-consent *::before,
.dvm-consent *::after {
	box-sizing: border-box;
}

.dvm-consent button,
.dvm-consent input {
	font: inherit;
}

.dvm-consent button {
	-webkit-tap-highlight-color: transparent;
}

.dvm-consent [hidden] {
	display: none !important;
}

.dvm-consent .screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* Compact, unobtrusive first-visit card anchored to the lower-left. */
.dvm-consent__banner {
	align-items: start;
	background:
		radial-gradient(circle at 0 0, rgba(139, 103, 87, .1), transparent 33%),
		rgba(255, 253, 249, .985);
	border: 1px solid rgba(32, 27, 24, .14);
	border-radius: 20px;
	bottom: 20px;
	box-shadow: 0 28px 80px rgba(38, 27, 21, .2), 0 4px 14px rgba(38, 27, 21, .08);
	display: grid;
	gap: 14px;
	grid-template-columns: 44px minmax(0, 1fr);
	left: 20px;
	max-width: 450px;
	overflow: hidden;
	padding: 21px;
	position: fixed;
	width: min(450px, calc(100% - 40px));
}

.dvm-consent__banner::before {
	background: linear-gradient(90deg, var(--dvm-accent), #b8947f 56%, var(--dvm-sage));
	content: "";
	height: 3px;
	inset: 0 0 auto;
	position: absolute;
}

.dvm-consent__banner-close,
.dvm-consent__dialog-close {
	align-items: center;
	background: transparent;
	border: 1px solid rgba(32, 27, 24, .14);
	border-radius: 50%;
	color: var(--dvm-muted);
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	padding: 0;
	transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.dvm-consent__banner-close {
	height: 32px;
	position: absolute;
	right: 11px;
	top: 11px;
	width: 32px;
}

.dvm-consent__banner-close span,
.dvm-consent__dialog-close span {
	font-family: Arial, sans-serif;
	font-size: 24px;
	font-weight: 300;
	line-height: 1;
	margin-top: -2px;
}

.dvm-consent__banner-close:hover,
.dvm-consent__dialog-close:hover {
	background: var(--dvm-paper);
	border-color: var(--dvm-accent);
	color: var(--dvm-ink);
	transform: rotate(4deg);
}

.dvm-consent__banner-close:focus-visible,
.dvm-consent__dialog-close:focus-visible,
.dvm-consent button:focus-visible,
.dvm-consent a:focus-visible,
.dvm-consent input:focus-visible + .dvm-consent__switch-track {
	outline: 3px solid rgba(139, 103, 87, .28);
	outline-offset: 3px;
}

.dvm-consent__mark {
	align-items: center;
	align-self: start;
	background: var(--dvm-ink);
	border-radius: 50%;
	box-shadow: 0 9px 24px rgba(32, 27, 24, .16);
	display: flex;
	height: 42px;
	justify-content: center;
	margin-top: 1px;
	width: 42px;
}

.dvm-consent__mark svg {
	fill: none;
	height: 20px;
	stroke: #fff;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.55;
	width: 20px;
}

.dvm-consent__banner-copy {
	min-width: 0;
}

.dvm-consent__banner-copy > small,
.dvm-consent__intro > small {
	color: var(--dvm-accent);
	display: block;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .16em;
	margin: 0 0 6px;
	text-transform: uppercase;
}

.dvm-consent__banner h2 {
	color: var(--dvm-ink);
	font-family: var(--dvm-display);
	font-size: clamp(21px, 2vw, 24px);
	font-weight: 400;
	letter-spacing: -.025em;
	line-height: 1.08;
	margin: 0 44px 7px 0;
}

.dvm-consent__banner p {
	color: var(--dvm-muted);
	font-size: 12px;
	line-height: 1.55;
	margin: 0;
	max-width: 680px;
}

.dvm-consent__assurances {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	margin-top: 9px;
}

.dvm-consent__assurances span {
	align-items: center;
	color: #5d5651;
	display: inline-flex;
	font-size: 10px;
	font-weight: 650;
	gap: 7px;
}

.dvm-consent__assurances i {
	background: var(--dvm-sage);
	border-radius: 50%;
	box-shadow: 0 0 0 3px rgba(123, 133, 116, .12);
	height: 5px;
	width: 5px;
}

.dvm-consent__actions {
	display: grid;
	gap: 7px;
	grid-column: 1 / -1;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	padding-right: 0;
}

.dvm-consent__actions button,
.dvm-consent__dialog-footer button {
	align-items: center;
	border: 1px solid transparent;
	border-radius: 999px;
	cursor: pointer;
	display: inline-flex;
	font-size: 11px;
	font-weight: 760;
	justify-content: center;
	letter-spacing: .01em;
	min-height: 40px;
	padding: 9px 17px;
	transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.dvm-consent button.is-primary {
	background: var(--dvm-ink);
	border-color: var(--dvm-ink);
	color: #fff;
}

.dvm-consent button.is-primary:hover {
	background: var(--dvm-accent);
	border-color: var(--dvm-accent);
	transform: translateY(-1px);
}

.dvm-consent button.is-secondary {
	background: rgba(255, 255, 255, .62);
	border-color: rgba(32, 27, 24, .18);
	color: var(--dvm-ink);
}

.dvm-consent button.is-secondary:hover {
	background: #fff;
	border-color: var(--dvm-ink);
}

.dvm-consent button.is-text {
	background: transparent;
	border-color: transparent;
	color: #665d57;
	min-height: 32px;
	text-decoration: underline;
	text-decoration-color: rgba(102, 93, 87, .35);
	text-underline-offset: 4px;
}

.dvm-consent button.is-text:hover {
	color: var(--dvm-accent);
	text-decoration-color: currentColor;
}

.dvm-consent__actions button.is-text {
	background: rgba(255, 255, 255, .62);
	border-color: rgba(32, 27, 24, .18);
	color: var(--dvm-ink);
	min-height: 40px;
	text-decoration: none;
}

.dvm-consent__actions button.is-text:hover {
	background: #fff;
	border-color: var(--dvm-ink);
	color: var(--dvm-ink);
	text-decoration: none;
}

.dvm-consent__actions button.is-secondary {
	grid-column: 1 / -1;
}

/* Detailed preference center. */
.dvm-consent__dialog {
	background: var(--dvm-ivory);
	border: 0;
	border-radius: 22px;
	box-shadow: 0 38px 120px rgba(28, 20, 16, .34);
	color: var(--dvm-ink);
	height: min(780px, calc(100dvh - 42px));
	margin: auto;
	max-height: calc(100dvh - 42px);
	max-width: 790px;
	overflow: hidden;
	padding: 0;
	width: calc(100% - 34px);
}

.dvm-consent__dialog::backdrop {
	backdrop-filter: blur(5px);
	background: rgba(27, 22, 19, .62);
}

.dvm-consent__dialog form {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	height: 100%;
	margin: 0;
}

.dvm-consent__dialog-header {
	align-items: center;
	background: rgba(255, 253, 249, .98);
	border-bottom: 1px solid var(--dvm-line);
	display: flex;
	justify-content: space-between;
	padding: 17px 22px;
}

.dvm-consent__brand {
	align-items: center;
	display: flex;
	gap: 11px;
}

.dvm-consent__brand-mark {
	align-items: center;
	background: var(--dvm-ink);
	border-radius: 50%;
	color: #fff;
	display: flex;
	font-family: var(--dvm-display);
	font-size: 17px;
	height: 36px;
	justify-content: center;
	width: 36px;
}

.dvm-consent__brand > span:last-child {
	display: grid;
	gap: 1px;
}

.dvm-consent__brand small {
	color: var(--dvm-accent);
	font-size: 8px;
	font-weight: 850;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.dvm-consent__brand strong {
	font-family: var(--dvm-display);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.1;
}

.dvm-consent__dialog-close {
	height: 38px;
	width: 38px;
}

.dvm-consent__dialog-scroll {
	overscroll-behavior: contain;
	overflow: auto;
	padding: 30px 34px 27px;
	scrollbar-color: rgba(139, 103, 87, .45) transparent;
	scrollbar-width: thin;
}

.dvm-consent__intro {
	border-bottom: 1px solid var(--dvm-line);
	margin-bottom: 22px;
	padding-bottom: 25px;
}

.dvm-consent__intro h2 {
	color: var(--dvm-ink);
	font-family: var(--dvm-display);
	font-size: clamp(29px, 4.2vw, 42px);
	font-weight: 400;
	letter-spacing: -.035em;
	line-height: 1.03;
	margin: 0;
	max-width: 650px;
	text-wrap: balance;
}

.dvm-consent__intro p {
	color: var(--dvm-muted);
	font-size: 12.5px;
	line-height: 1.72;
	margin: 15px 0 0;
	max-width: 680px;
}

.dvm-consent__categories {
	display: grid;
	gap: 10px;
}

.dvm-consent__category {
	background: rgba(255, 255, 255, .58);
	border: 1px solid rgba(32, 27, 24, .13);
	border-radius: 14px;
	overflow: hidden;
	transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.dvm-consent__category.is-selected {
	background: rgba(247, 243, 237, .84);
	border-color: rgba(139, 103, 87, .42);
	box-shadow: inset 3px 0 0 var(--dvm-accent);
}

.dvm-consent__category-row {
	align-items: center;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	min-height: 72px;
	padding: 8px 14px 8px 10px;
}

.dvm-consent__category-toggle {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--dvm-ink);
	cursor: pointer;
	display: grid;
	gap: 12px;
	grid-template-columns: 40px minmax(0, 1fr) auto 18px;
	min-width: 0;
	padding: 6px;
	text-align: left;
}

.dvm-consent__category-icon {
	align-items: center;
	background: var(--dvm-paper);
	border: 1px solid rgba(32, 27, 24, .12);
	border-radius: 11px;
	color: var(--dvm-accent);
	display: flex;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 9px;
	font-weight: 750;
	height: 38px;
	justify-content: center;
	letter-spacing: .08em;
	width: 38px;
}

.dvm-consent__category-toggle > span:nth-child(2) {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.dvm-consent__category-toggle strong {
	color: var(--dvm-ink);
	font-size: 13px;
	font-weight: 760;
}

.dvm-consent__category-toggle small {
	color: var(--dvm-muted);
	font-size: 10px;
	line-height: 1.35;
}

.dvm-consent__category-action {
	color: var(--dvm-accent);
	font-size: 9px;
	font-weight: 760;
	white-space: nowrap;
}

.dvm-consent__category-toggle > svg {
	fill: none;
	height: 16px;
	stroke: var(--dvm-muted);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
	transition: transform 160ms ease;
	width: 16px;
}

.dvm-consent__category-toggle[aria-expanded="true"] > svg {
	transform: rotate(180deg);
}

.dvm-consent__always {
	background: #edf0e9;
	border: 1px solid rgba(123, 133, 116, .22);
	border-radius: 999px;
	color: #586151;
	font-size: 8px;
	font-weight: 800;
	letter-spacing: .035em;
	padding: 7px 9px;
	white-space: nowrap;
}

.dvm-consent__switch {
	cursor: pointer;
	display: inline-flex;
	padding: 8px 2px 8px 14px;
}

.dvm-consent__switch input {
	height: 1px;
	opacity: 0;
	position: absolute;
	width: 1px;
}

.dvm-consent__switch-track {
	background: #d7d1cb;
	border: 1px solid rgba(32, 27, 24, .12);
	border-radius: 999px;
	display: block;
	height: 28px;
	position: relative;
	transition: background 170ms ease, border-color 170ms ease;
	width: 48px;
}

.dvm-consent__switch-track i {
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 2px 5px rgba(32, 27, 24, .23);
	height: 22px;
	left: 2px;
	position: absolute;
	top: 2px;
	transition: transform 170ms ease;
	width: 22px;
}

.dvm-consent__switch input:checked + .dvm-consent__switch-track {
	background: var(--dvm-accent);
	border-color: var(--dvm-accent);
}

.dvm-consent__switch input:checked + .dvm-consent__switch-track i {
	transform: translateX(20px);
}

.dvm-consent__category-detail {
	border-top: 1px solid rgba(32, 27, 24, .1);
	margin: 0 16px;
	padding: 18px 0 20px;
}

.dvm-consent__category-detail > p {
	color: #625a55;
	font-size: 11.5px;
	line-height: 1.7;
	margin: 0;
	max-width: 680px;
}

.dvm-consent__category-detail dl {
	display: grid;
	gap: 7px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 15px 0;
}

.dvm-consent__category-detail dl > div {
	background: var(--dvm-paper);
	border-radius: 9px;
	display: grid;
	gap: 4px;
	padding: 11px 12px;
}

.dvm-consent__category-detail dt {
	color: var(--dvm-accent);
	font-size: 8px;
	font-weight: 850;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.dvm-consent__category-detail dd {
	color: #4f4844;
	font-size: 9.5px;
	line-height: 1.5;
	margin: 0;
}

.dvm-consent__category-detail .dvm-consent__examples,
.dvm-consent__category-detail .dvm-consent__note {
	background: rgba(139, 103, 87, .07);
	border-left: 2px solid rgba(139, 103, 87, .5);
	border-radius: 0 8px 8px 0;
	color: #665c56;
	font-size: 9.5px;
	padding: 9px 11px;
}

.dvm-consent__category-detail code {
	background: rgba(255, 255, 255, .72);
	border-radius: 4px;
	color: #5c463b;
	font-size: 8.5px;
	padding: 2px 4px;
}

.dvm-consent__dialog-footer {
	align-items: center;
	background: rgba(255, 253, 249, .98);
	border-top: 1px solid var(--dvm-line);
	display: flex;
	gap: 18px;
	justify-content: space-between;
	padding: 16px 22px;
}

.dvm-consent__dialog-footer > div:first-child {
	display: grid;
	gap: 4px;
}

.dvm-consent__dialog-footer > div:last-child {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: flex-end;
}

.dvm-consent__dialog-footer small {
	color: #91867e;
	font-size: 8.5px;
}

.dvm-consent__privacy {
	color: var(--dvm-accent);
	font-size: 9.5px;
	font-weight: 750;
	text-decoration: none;
	text-underline-offset: 3px;
}

.dvm-consent__privacy:hover {
	text-decoration: underline;
}

.dvm-consent__privacy span {
	display: inline-block;
	margin-left: 3px;
	transition: transform 160ms ease;
}

.dvm-consent__privacy:hover span {
	transform: translate(2px, -2px);
}

.dvm-consent__dialog-footer button {
	min-height: 40px;
	padding-inline: 14px;
}

.dvm-consent__toast {
	background: var(--dvm-ink);
	border-radius: 999px;
	bottom: 18px;
	box-shadow: 0 12px 34px rgba(32, 27, 24, .22);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	left: 16px;
	max-width: calc(100% - 32px);
	padding: 10px 14px;
	position: fixed;
}

.footer-bottom .dvm-consent-footer-link {
	white-space: nowrap;
}

.footer-bottom .dvm-consent-footer-link:focus-visible {
	border-radius: 3px;
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

@media (max-width: 920px) {
	.dvm-consent__banner {
		grid-template-columns: 44px minmax(0, 1fr);
		max-width: 450px;
	}

	.dvm-consent__actions {
		display: grid;
		grid-column: 1 / -1;
		padding-right: 0;
	}
}

@media (max-width: 700px) {
	.dvm-consent__banner {
		border-radius: 17px;
		bottom: max(10px, env(safe-area-inset-bottom));
		display: grid;
		gap: 12px;
		grid-template-columns: 38px minmax(0, 1fr);
		left: 10px;
		max-height: calc(100dvh - 20px);
		max-width: 430px;
		overflow: auto;
		padding: 17px 15px 14px;
		width: min(430px, calc(100% - 20px));
	}

	.dvm-consent__banner-close {
		height: 32px;
		right: 10px;
		top: 10px;
		width: 32px;
	}

	.dvm-consent__mark {
		height: 36px;
		margin: 1px 0 0;
		width: 36px;
	}

	.dvm-consent__mark svg {
		height: 18px;
		width: 18px;
	}

	.dvm-consent__banner h2 {
		font-size: 20px;
		line-height: 1.12;
		margin-right: 32px;
	}

	.dvm-consent__banner p {
		font-size: 11.5px;
	}

	.dvm-consent__assurances {
		display: none;
	}

	.dvm-consent__actions {
		display: grid;
		gap: 6px;
		grid-column: 1 / -1;
		grid-template-columns: 1fr 1fr;
		margin-top: 0;
	}

	.dvm-consent__actions button {
		min-height: 42px;
		padding-inline: 10px;
	}

	.dvm-consent__dialog {
		border-radius: 22px 22px 0 0;
		height: min(92dvh, 820px);
		margin: auto 0 0;
		max-height: 92dvh;
		max-width: none;
		width: 100%;
	}

	.dvm-consent__dialog-header {
		padding: 14px 16px;
	}

	.dvm-consent__dialog-close {
		height: 42px;
		width: 42px;
	}

	.dvm-consent__dialog-scroll {
		padding: 24px 16px 20px;
	}

	.dvm-consent__intro {
		margin-bottom: 16px;
		padding-bottom: 20px;
	}

	.dvm-consent__intro h2 {
		font-size: clamp(28px, 9vw, 36px);
	}

	.dvm-consent__category-row {
		padding: 7px 10px 7px 6px;
	}

	.dvm-consent__category-toggle {
		gap: 9px;
		grid-template-columns: 38px minmax(0, 1fr) 16px;
		padding: 6px 4px;
	}

	.dvm-consent__category-action {
		display: none;
	}

	.dvm-consent__category-toggle > svg {
		grid-column: 3;
	}

	.dvm-consent__category-icon {
		height: 35px;
		width: 35px;
	}

	.dvm-consent__always {
		font-size: 0;
		height: 27px;
		padding: 0;
		position: relative;
		width: 27px;
	}

	.dvm-consent__always::after {
		content: "✓";
		font-size: 11px;
		left: 50%;
		position: absolute;
		top: 50%;
		transform: translate(-50%, -50%);
	}

	.dvm-consent__switch {
		padding-left: 8px;
	}

	.dvm-consent__category-detail {
		margin-inline: 12px;
	}

	.dvm-consent__category-detail dl {
		grid-template-columns: 1fr;
	}

	.dvm-consent__dialog-footer {
		align-items: stretch;
		display: grid;
		gap: 11px;
		padding: 12px 14px max(12px, env(safe-area-inset-bottom));
	}

	.dvm-consent__dialog-footer > div:first-child {
		display: flex;
		justify-content: space-between;
	}

	.dvm-consent__dialog-footer > div:last-child {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.dvm-consent__dialog-footer button {
		min-height: 44px;
		padding-inline: 10px;
	}

	.dvm-consent__dialog-footer button.is-primary {
		grid-column: 1 / -1;
		grid-row: 1;
	}

	.dvm-consent__dialog-footer button.is-text {
		grid-column: 1;
		grid-row: 2;
	}

	.dvm-consent__dialog-footer button.is-secondary {
		grid-column: 2;
		grid-row: 2;
	}

	.dvm-consent__toast {
		bottom: max(10px, env(safe-area-inset-bottom));
	}
}

@media (max-width: 390px) {
	.dvm-consent__dialog-footer > div:first-child small {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.dvm-consent *,
	.dvm-consent *::before,
	.dvm-consent *::after {
		scroll-behavior: auto !important;
		transition: none !important;
	}
}
