[data-vlora-consent] {
	display: contents;
}

.vlora-consent__banner,
.vlora-consent__panel {
	z-index: 1000;
	max-width: min(32rem, calc(100vw - 2rem));
	padding: var(--vlora-gap);
	border: 1px solid var(--vlora-color-border);
	border-radius: var(--vlora-radius);
	background: var(--vlora-color-surface);
	box-shadow: 0 1rem 3rem rgb(42 37 33 / 18%);
	color: var(--vlora-color-ink);
}

.vlora-consent__banner {
	position: sticky;
}

.vlora-consent__panel {
	position: fixed;
	max-height: calc(100vh - 2 * var(--vlora-gap));
	overflow-y: auto;
}

.vlora-consent--bottom > *,
.vlora-consent--bottom-left > *,
.vlora-consent--bottom-right > * {
	bottom: var(--vlora-gap);
}

.vlora-consent--top > * {
	top: var(--vlora-gap);
}

.vlora-consent--bottom > *,
.vlora-consent--top > * {
	left: var(--vlora-gap);
	right: var(--vlora-gap);
	margin-right: auto;
	margin-left: auto;
}

.vlora-consent--bottom-left > *,
.vlora-consent--top-left > * {
	right: auto;
	margin-right: 0;
}

.vlora-consent--bottom-right > *,
.vlora-consent--top-right > * {
	left: auto;
	margin-left: 0;
}

.vlora-consent__title {
	margin: 0 0 0.5rem;
	font-size: 1.0625rem;
	line-height: 1.3;
}

.vlora-consent__text {
	margin: 0 0 0.5rem;
	color: var(--vlora-color-ink-soft);
	font-size: 0.9375rem;
}

.vlora-consent__policies {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 0 0 0.75rem;
	font-size: 0.875rem;
}

.vlora-consent__policy {
	color: var(--o-olive);
}

.vlora-consent__policy:hover,
.vlora-consent__policy:focus-visible {
	color: var(--o-olive-dark);
}

.vlora-consent__categories {
	margin: 0 0 var(--vlora-gap);
	padding: 0;
	list-style: none;
}

.vlora-consent__item + .vlora-consent__item {
	border-top: 1px solid var(--vlora-color-border);
}

.vlora-consent__label {
	display: flex;
	gap: 0.625rem;
	align-items: baseline;
	padding: 0.625rem 0;
	font-size: 0.9375rem;
	cursor: pointer;
}

.vlora-consent__label:has( input:disabled ) {
	cursor: default;
}

.vlora-consent__checkbox {
	flex: 0 0 auto;
	width: 1.125rem;
	height: 1.125rem;
	margin: 0;
	accent-color: var(--o-olive);
}

.vlora-consent__always {
	margin-left: auto;
	color: var(--vlora-color-ink-soft);
	font-size: 0.8125rem;
	white-space: nowrap;
}

.vlora-consent__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.vlora-consent__button {
	flex: 1 1 8rem;
	padding: 0.625rem 0.875rem;
	border: 1px solid var(--o-olive);
	border-radius: var(--vlora-radius-btn);
	background: var(--o-olive);
	color: var(--o-cream);
	font: inherit;
	font-size: 0.9375rem;
	text-align: center;
	cursor: pointer;
}

.vlora-consent__button--reject,
.vlora-consent__button--customize {
	background: var(--vlora-color-surface);
	color: var(--o-olive);
}

.vlora-consent__button:hover {
	background: var(--o-olive-dark);
	border-color: var(--o-olive-dark);
	color: var(--o-cream);
}

.vlora-consent__button--reject:hover,
.vlora-consent__button--customize:hover {
	background: var(--vlora-color-surface-soft);
	color: var(--o-olive);
}

.vlora-footer__consent {
	padding: 0;
	border: 0;
	background: none;
	color: var(--o-olive);
	font: inherit;
	font-size: 0.9375rem;
	text-decoration: underline;
	cursor: pointer;
}

.vlora-footer__consent:hover {
	color: var(--o-olive-dark);
}

@media (max-width: 480px) {
	.vlora-consent__banner,
	.vlora-consent__panel {
		max-width: none;
		right: 0.5rem;
		left: 0.5rem;
	}

	.vlora-consent__button {
		flex: 1 1 100%;
	}
}

