.dv-cookie-banner {
	position: fixed;
	right: max(1rem, env(safe-area-inset-right));
	bottom: max(1rem, env(safe-area-inset-bottom));
	left: auto;
	top: auto;
	z-index: 300;
	width: min(22rem, calc(100vw - 2rem));
	padding: 0;
	background: transparent;
	color: #fff;
	pointer-events: none;
}

.dv-cookie-banner[hidden] {
	display: none !important;
}

.dv-cookie-banner__inner {
	pointer-events: auto;
	display: grid;
	gap: 0.65rem;
	max-width: none;
	margin: 0;
	padding: 1rem 1.1rem 1.05rem;
	background: var(--dv-green-dark, #234a32);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: var(--dv-radius-lg, 20px);
	box-shadow:
		0 18px 40px rgba(20, 40, 28, 0.35),
		0 2px 0 rgba(255, 255, 255, 0.06);
	animation: dv-cookie-in 0.35s ease both;
}

@keyframes dv-cookie-in {
	from {
		opacity: 0;
		transform: translateY(0.75rem) scale(0.98);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.dv-cookie-banner__title {
	margin: 0;
	font-family: var(--dv-font-display, "Quicksand", sans-serif);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #fff;
}

.dv-cookie-banner__text {
	margin: 0;
	font-family: var(--dv-font-body, "Source Sans 3", sans-serif);
	font-size: 0.8125rem;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.88);
}

.dv-cookie-banner__text a {
	color: var(--dv-lime-accent, #a1c515);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.dv-cookie-banner__text a:hover,
.dv-cookie-banner__text a:focus-visible {
	color: #fff;
}

.dv-cookie-banner__actions {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.45rem;
	margin-top: 0.15rem;
}

.dv-cookie-banner__btn {
	appearance: none;
	flex: 1 1 auto;
	min-height: 2.25rem;
	padding: 0.4rem 0.75rem;
	border-radius: 999px;
	border: 1px solid transparent;
	font-family: var(--dv-font-display, "Quicksand", sans-serif);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.dv-cookie-banner__btn--ghost {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.45);
	color: #fff;
}

.dv-cookie-banner__btn--ghost:hover,
.dv-cookie-banner__btn--ghost:focus-visible {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.7);
}

.dv-cookie-banner__btn--solid {
	background: var(--dv-lime-accent, #a1c515);
	border-color: var(--dv-lime-accent, #a1c515);
	color: var(--dv-green-dark, #234a32);
}

.dv-cookie-banner__btn--solid:hover,
.dv-cookie-banner__btn--solid:focus-visible {
	background: #b4d42a;
	border-color: #b4d42a;
}

@media (max-width: 420px) {
	.dv-cookie-banner {
		right: max(0.75rem, env(safe-area-inset-right));
		left: max(0.75rem, env(safe-area-inset-left));
		width: auto;
	}

	.dv-cookie-banner__actions {
		flex-direction: column;
	}
}

.dv-cookie-preferences__options {
	display: grid;
	gap: 0.5rem;
	margin: 1rem 0;
}

.dv-cookie-preferences__option {
	display: flex;
	gap: 0.5rem;
	align-items: flex-start;
}

.dv-cookie-preferences__status {
	margin-top: 0.75rem;
}

.dv-legal .dv-legal-section + .dv-legal-section {
	margin-top: 2rem;
	padding-top: 2rem;
	border-top: 1px solid rgba(57, 38, 28, 0.12);
}

.dv-legal .dv-prose p {
	margin: 0 0 1rem;
	line-height: 1.6;
}

.dv-page-404__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.5rem;
}
