/*
 * Base styles and reusable classes.
 * Utility classes (vt-*) can be added to Elementor elements under Advanced > CSS Classes.
 */

/* ---------- Astra palette → brand tokens ---------- */
:root {
	--ast-global-color-0: var(--vt-color-blue-700);
	--ast-global-color-1: var(--vt-color-blue-900);
	--ast-global-color-2: var(--vt-color-ink);
	--ast-global-color-3: var(--vt-color-ink);
	--ast-global-color-4: var(--vt-color-sand);
	--ast-global-color-5: var(--vt-color-white);
}

/* ---------- Base ---------- */
body,
button,
input,
select,
textarea,
.ast-button,
.ast-custom-button {
	font-family: var(--vt-font-body);
}

body {
	background-color: var(--vt-color-bg);
	color: var(--vt-color-text);
	font-size: var(--vt-fs-body);
	line-height: var(--vt-lh-body);
	-webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--vt-font-heading);
	color: var(--vt-color-text);
	letter-spacing: -0.015em;
}

a {
	color: var(--vt-color-link);
}

a:hover,
a:focus-visible {
	color: var(--vt-color-link-hover);
}

/* Visible keyboard focus everywhere, including Elementor widgets. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--vt-color-focus);
	outline-offset: 3px;
	border-radius: 4px;
}

.vt-on-dark :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline-color: var(--vt-color-lime);
}

img {
	height: auto;
	max-width: 100%;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* ---------- Typography helpers ---------- */
.vt-eyebrow {
	color: var(--vt-color-blue-700);
	font-size: var(--vt-fs-eyebrow);
	font-weight: 700;
	letter-spacing: var(--vt-tracking-eyebrow);
	text-transform: uppercase;
}

.vt-on-dark .vt-eyebrow {
	color: var(--vt-color-lime);
}

.vt-lead {
	font-size: var(--vt-fs-lead);
	line-height: 1.5;
}

.vt-muted {
	color: var(--vt-color-text-muted);
}

/* ---------- Buttons ----------
 * Use "vt-btn vt-btn--primary" on a plain <a>/<button>, or as CSS classes on an
 * Elementor Button widget: then only the inner .elementor-button is styled,
 * never the widget wrapper.
 */
:is(a, button).vt-btn,
.elementor-widget-button.vt-btn .elementor-button {
	align-items: center;
	border: 2px solid transparent;
	border-radius: var(--vt-radius-pill);
	display: inline-flex;
	font-weight: 700;
	gap: var(--vt-space-2);
	justify-content: center;
	line-height: 1.2;
	min-height: 44px;
	padding: 0.875rem 1.5rem;
	text-decoration: none;
	transition: background-color var(--vt-duration) var(--vt-ease), color var(--vt-duration) var(--vt-ease), border-color var(--vt-duration) var(--vt-ease);
}

:is(a, button).vt-btn--primary,
.elementor-widget-button.vt-btn--primary .elementor-button {
	background-color: var(--vt-color-lime);
	color: var(--vt-color-ink);
}

:is(a, button).vt-btn--primary:hover,
.elementor-widget-button.vt-btn--primary .elementor-button:hover {
	background-color: var(--vt-color-ink);
	color: var(--vt-color-white);
}

:is(a, button).vt-btn--dark,
.elementor-widget-button.vt-btn--dark .elementor-button {
	background-color: var(--vt-color-blue-900);
	color: var(--vt-color-white);
}

:is(a, button).vt-btn--dark:hover,
.elementor-widget-button.vt-btn--dark .elementor-button:hover {
	background-color: var(--vt-color-blue-700);
	color: var(--vt-color-white);
}

:is(a, button).vt-btn--outline,
.elementor-widget-button.vt-btn--outline .elementor-button {
	background-color: transparent;
	border-color: var(--vt-color-blue-700);
	color: var(--vt-color-blue-700);
}

:is(a, button).vt-btn--outline:hover,
.elementor-widget-button.vt-btn--outline .elementor-button:hover {
	background-color: var(--vt-color-blue-700);
	color: var(--vt-color-white);
}

.vt-on-dark :is(a, button).vt-btn--outline,
.vt-on-dark .elementor-widget-button.vt-btn--outline .elementor-button {
	border-color: var(--vt-color-white);
	color: var(--vt-color-white);
}

.vt-on-dark :is(a, button).vt-btn--outline:hover,
.vt-on-dark .elementor-widget-button.vt-btn--outline .elementor-button:hover {
	background-color: var(--vt-color-white);
	color: var(--vt-color-blue-900);
}

/* ---------- Header (Theme Builder "Header – Default", class vt-header) ---------- */
@media (max-width: 1024px) {
	/* Let the mobile dropdown position against the full header, not its column. */
	.vt-header .e-con,
	.vt-header .elementor-widget-nav-menu,
	.vt-header .elementor-widget-nav-menu > .elementor-widget-container {
		position: static;
	}

	.vt-header {
		position: relative;
	}

	/* 44px minimum tap target (WCAG 2.5.5 / project DoD). */
	.vt-header .elementor-menu-toggle {
		margin-inline: auto 0;
		min-height: 44px;
		min-width: 44px;
	}

	.vt-header nav.elementor-nav-menu--dropdown {
		box-shadow: 0 16px 24px color-mix(in srgb, var(--vt-color-ink) 12%, transparent);
		left: 0 !important; /* Overrides Elementor's inline "stretch" offset. */
		position: absolute;
		right: 0;
		top: 100%;
		width: auto !important;
		z-index: 60;
	}
}

/* ---------- Header with mega menu (Theme Builder headers, class vt-header--mega) ---------- */
/* Homepage overlay header turns solid once Elementor's sticky offset is passed. */
.vt-header--overlay {
	transition: background-color var(--vt-duration) var(--vt-ease), box-shadow var(--vt-duration) var(--vt-ease), padding var(--vt-duration) var(--vt-ease);
}

.vt-header--overlay.elementor-sticky--effects {
	background-color: var(--vt-color-blue-900) !important;
	background-image: none !important;
	box-shadow: 0 10px 24px color-mix(in srgb, var(--vt-color-ink) 18%, transparent);
	padding-bottom: 16px !important;
}

.vt-header--mega.elementor-sticky--effects:not(.vt-header--overlay) {
	box-shadow: 0 10px 24px color-mix(in srgb, var(--vt-color-ink) 10%, transparent);
}

/*
 * Homepage hero sits under the transparent header. Pull it up a little more than
 * the header height (72 / 96 / ~112 px) so no page background shows above it.
 */
.vt-home-hero.vt-home-hero {
	margin-top: -78px !important;
}

@media (min-width: 768px) {
	.vt-home-hero.vt-home-hero {
		margin-top: -100px !important;
	}
}

@media (min-width: 1025px) {
	.vt-home-hero.vt-home-hero {
		margin-top: -120px !important;
	}
}

/* Desktop: the dropdown is a centred card, not a full-width strip. */
@media (min-width: 1025px) {
	.vt-header--mega .e-n-menu-content {
		box-shadow: none !important;
	}

	.vt-header--mega .e-n-menu-content > .e-con {
		border-radius: var(--vt-radius-lg);
		box-shadow: 0 24px 48px color-mix(in srgb, var(--vt-color-ink) 18%, transparent);
		margin: 12px auto 0;
		max-width: min(1240px, calc(100vw - 48px));
		overflow: hidden;
	}
}

/* Mobile/tablet dropdown: one solid white panel, left-aligned rows, visible chevrons. */
@media (max-width: 1024px) {
	.vt-header--mega .e-n-menu-heading {
		align-items: stretch !important;
		background-color: var(--vt-color-white);
		box-shadow: 0 16px 24px color-mix(in srgb, var(--vt-color-ink) 12%, transparent);
		gap: 0 !important;
		justify-content: flex-start !important;
	}

	.vt-header--mega .e-n-menu-item {
		width: 100%;
	}

	/* Title left, chevron right (Elementor sets flex-end from the desktop alignment). */
	.vt-header--mega .e-n-menu-title {
		border-bottom: 1px solid var(--vt-color-sand);
		justify-content: space-between !important;
		padding-inline: 20px !important;
		width: 100%;
	}

	.vt-header--mega .e-n-menu-title-container {
		justify-content: flex-start;
		min-height: 44px;
	}

	.vt-header--mega .e-n-menu-title-text {
		font-size: 1.125rem;
	}

	.vt-header--mega .e-n-menu-title .e-n-menu-dropdown-icon,
	.vt-header--mega .e-n-menu-title .e-n-menu-dropdown-icon svg {
		color: var(--vt-color-ink) !important;
		fill: var(--vt-color-ink) !important;
	}
}

/* ---------- Sections ---------- */
.vt-section {
	padding-block: var(--vt-section-spacing);
}

.vt-section--white {
	background-color: var(--vt-color-white);
}

.vt-section--dark {
	background-color: var(--vt-color-blue-900);
	color: var(--vt-color-white);
}

.vt-section--blue {
	background-color: var(--vt-color-blue-700);
	color: var(--vt-color-white);
}

.vt-section--lime {
	background-color: var(--vt-color-lime);
	color: var(--vt-color-ink);
}

.vt-section--dark :is(h1, h2, h3, h4),
.vt-section--blue :is(h1, h2, h3, h4) {
	color: var(--vt-color-white);
}

/* ---------- Media shapes (brand motifs) ---------- */
.vt-media--arch img,
img.vt-media--arch {
	border-radius: var(--vt-radius-arch);
	object-fit: cover;
}

.vt-media--rounded img,
img.vt-media--rounded {
	border-radius: var(--vt-radius-md);
	object-fit: cover;
}

.vt-media--blob img,
img.vt-media--blob {
	border-radius: 58% 42% 46% 54% / 44% 50% 50% 56%;
	object-fit: cover;
}

/* Diagonal brand planes: add to a container with position relative + overflow hidden. */
.vt-plane-blue,
.vt-plane-lime,
.vt-beam {
	isolation: isolate;
	position: relative;
}

.vt-plane-blue::before,
.vt-plane-lime::before,
.vt-beam::after {
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: -1;
}

.vt-plane-blue::before {
	background: color-mix(in srgb, var(--vt-color-blue-900) 88%, transparent);
	clip-path: polygon(0 0, 56% 0, 40% 100%, 0 100%);
}

/* On phones the text column is full width, so the blue plane covers it fully (mockup 04). */
@media (max-width: 767px) {
	.vt-plane-blue::before {
		clip-path: polygon(0 0, 100% 0, 100% 64%, 0 92%);
	}
}

.vt-plane-lime::before {
	background: var(--vt-color-lime);
	clip-path: polygon(0 70%, 34% 100%, 0 100%);
}

.vt-beam::after {
	background: linear-gradient(180deg, color-mix(in srgb, var(--vt-color-lime) 60%, transparent), color-mix(in srgb, var(--vt-color-lime) 15%, transparent));
	clip-path: polygon(56% 0, 66% 0, 50% 100%, 40% 100%);
}

/* ---------- Cards ---------- */
.vt-card {
	background-color: var(--vt-color-surface);
	border-radius: var(--vt-radius-lg);
	overflow: hidden;
}

.vt-date-badge {
	align-items: center;
	background-color: var(--vt-color-lime);
	border-radius: var(--vt-radius-sm);
	color: var(--vt-color-ink);
	display: inline-flex;
	flex-direction: column;
	font-weight: 800;
	line-height: 1;
	min-width: 4.5rem;
	padding: 0.625rem 0.5rem;
}

.vt-date-badge small {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	margin-top: 0.25rem;
	text-transform: uppercase;
}

/* ---------- Card links (Loop Item templates use class vt-card-link) ---------- */
.vt-card-link {
	color: inherit;
	text-decoration: none;
}

.vt-card-link .vt-card__media img {
	transition: transform var(--vt-duration) var(--vt-ease);
}

.vt-card-link:hover .vt-card__media img,
.vt-card-link:focus-visible .vt-card__media img {
	transform: scale(1.03);
}

.vt-card-link .vt-card__media {
	border-radius: var(--vt-radius-md);
	overflow: hidden;
}

/* ---------- Conditional sections (front end only, never in the editor) ---------- */
/* Related-content sections hide themselves when their Loop Grid is empty. */
body:not(.elementor-editor-active) .vt-related:not(:has(.e-loop-item)) {
	display: none;
}

/* Buttons whose dynamic link is empty hide themselves (e.g. no coordinates, no ticket URL). */
body:not(.elementor-editor-active) :is(.vt-directions, .vt-hide-if-no-link):not(:has(a[href^="http"])) {
	display: none;
}

/* ---------- Map teaser illustration (homepage; class vt-map-teaser) ---------- */
/* Decorative only: a stylised coastline with pins. No third-party map is loaded. */
.vt-map-teaser {
	isolation: isolate;
	overflow: hidden;
	position: relative;
}

.vt-map-teaser::before,
.vt-map-teaser::after {
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: -1;
}

.vt-map-teaser::before {
	background: var(--vt-color-blue);
	clip-path: polygon(0 0, 100% 0, 100% 34%, 82% 46%, 64% 38%, 46% 52%, 28% 44%, 0 58%);
}

.vt-map-teaser::after {
	background:
		radial-gradient(circle at 22% 68%, var(--vt-color-blue-700) 0 8px, var(--vt-color-white) 8.5px 12px, transparent 12.5px),
		radial-gradient(circle at 56% 64%, var(--vt-color-blue-700) 0 8px, var(--vt-color-white) 8.5px 12px, transparent 12.5px),
		radial-gradient(circle at 40% 84%, var(--vt-color-taupe) 0 8px, var(--vt-color-white) 8.5px 12px, transparent 12.5px),
		radial-gradient(circle at 74% 80%, var(--vt-color-taupe) 0 8px, var(--vt-color-white) 8.5px 12px, transparent 12.5px),
		radial-gradient(circle at 86% 62%, var(--vt-color-blue-700) 0 8px, var(--vt-color-white) 8.5px 12px, transparent 12.5px);
}

/* ---------- Footer credit ---------- */
.vt-credit a {
	color: var(--vt-color-lime);
	font-weight: 700;
	text-decoration: none;
}

/* ---------- Tags ([vt_post_tags], [vt_story_filter]) ---------- */
.vt-tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--vt-space-2);
	list-style: none;
	margin: 0;
	padding: 0;
}

.vt-tag {
	align-items: center;
	background-color: var(--vt-color-surface);
	border: 1px solid var(--vt-color-blue-700);
	border-radius: var(--vt-radius-pill);
	color: var(--vt-color-blue-700);
	display: inline-flex;
	font-size: var(--vt-fs-small);
	font-weight: 700;
	min-height: 44px;
	padding: 0 var(--vt-space-4);
	text-decoration: none;
	transition: background-color var(--vt-duration) var(--vt-ease), color var(--vt-duration) var(--vt-ease);
}

.vt-tag:hover,
.vt-tag[aria-current="page"] {
	background-color: var(--vt-color-blue-700);
	color: var(--vt-color-white);
}

/* Stories filter bar ([vt_story_filter]) */
.vt-filter {
	display: grid;
	gap: var(--vt-space-4);
}

.vt-filter__group {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--vt-space-3);
}

.vt-filter__label {
	color: var(--vt-color-blue-900);
	font-weight: 800;
	min-width: 4.5rem;
}

.vt-filter .vt-tag {
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.vt-filter__group + .vt-filter__group .vt-tag {
	text-transform: none;
}

/* ---------- Events calendar ([vt_event_calendar]) ---------- */
.vt-cal {
	scroll-margin-top: 140px;
}

.vt-cal__nav {
	align-items: center;
	display: flex;
	gap: var(--vt-space-4);
	justify-content: space-between;
	margin-bottom: var(--vt-space-6);
}

.vt-cal__title {
	font-size: var(--vt-fs-h3);
	margin: 0;
	text-align: center;
}

.vt-cal__step {
	align-items: center;
	border: 1px solid var(--vt-color-blue-700);
	border-radius: var(--vt-radius-pill);
	color: var(--vt-color-blue-700);
	display: inline-flex;
	font-weight: 700;
	gap: var(--vt-space-2);
	min-height: 44px;
	padding: 0 var(--vt-space-4);
	text-decoration: none;
}

.vt-cal__step:hover {
	background-color: var(--vt-color-blue-700);
	color: var(--vt-color-white);
}

.vt-cal__grid {
	background-color: var(--vt-color-surface);
	border-collapse: separate;
	border-radius: var(--vt-radius-lg);
	border-spacing: 0;
	margin: 0;
	overflow: hidden;
	table-layout: fixed;
	width: 100%;
}

.vt-cal__grid th {
	background-color: var(--vt-color-blue-900);
	border: 0;
	color: var(--vt-color-white);
	font-size: var(--vt-fs-small);
	padding: var(--vt-space-3) var(--vt-space-2);
	text-align: center;
}

.vt-cal__grid abbr {
	text-decoration: none;
}

.vt-cal__day {
	border: 0;
	border-right: 1px solid var(--vt-color-sand);
	border-top: 1px solid var(--vt-color-sand);
	height: 7rem;
	padding: var(--vt-space-2);
	vertical-align: top;
}

.vt-cal__day--pad {
	background-color: var(--vt-color-sand);
}

.vt-cal__date {
	display: block;
	font-weight: 700;
	margin-bottom: var(--vt-space-1);
}

.vt-cal__weekday,
.vt-cal__month {
	display: none;
}

.vt-cal__day--empty .vt-cal__date {
	color: var(--vt-color-text-muted);
	font-weight: 400;
}

.vt-cal__day--today .vt-cal__num {
	background-color: var(--vt-color-lime);
	border-radius: var(--vt-radius-pill);
	color: var(--vt-color-ink);
	display: inline-block;
	font-weight: 800;
	min-width: 1.75em;
	text-align: center;
}

.vt-cal__events {
	display: grid;
	gap: var(--vt-space-1);
	list-style: none;
	margin: 0;
	padding: 0;
}

.vt-cal__events a {
	background-color: var(--vt-color-blue-700);
	border-radius: var(--vt-radius-sm);
	color: var(--vt-color-white);
	display: block;
	font-size: var(--vt-fs-small);
	font-weight: 600;
	line-height: 1.3;
	overflow-wrap: anywhere;
	padding: var(--vt-space-1) var(--vt-space-2);
	text-decoration: none;
}

.vt-cal__events a:hover {
	background-color: var(--vt-color-blue-900);
}

.vt-cal__none {
	color: var(--vt-color-text-muted);
	margin: var(--vt-space-4) 0 0;
	text-align: center;
}

/* Small screens: a list of the days that have events (.vt-cal__grid raises specificity above the .vt-cal__day grid rule below). */
@media (max-width: 767px) {
	.vt-cal__grid thead,
	.vt-cal__grid .vt-cal__day--empty,
	.vt-cal__grid .vt-cal__day--pad {
		display: none;
	}

	.vt-cal__grid,
	.vt-cal__grid tbody,
	.vt-cal__grid tr,
	.vt-cal__day {
		display: block;
	}

	.vt-cal__grid {
		background-color: transparent;
	}

	.vt-cal__grid tr {
		display: contents;
	}

	.vt-cal__day {
		background-color: var(--vt-color-surface);
		border: 0;
		border-radius: var(--vt-radius-md);
		display: grid;
		gap: var(--vt-space-4);
		grid-template-columns: 4rem 1fr;
		height: auto;
		margin-bottom: var(--vt-space-3);
		padding: var(--vt-space-4);
	}

	.vt-cal__date {
		align-items: center;
		background-color: var(--vt-color-lime);
		border-radius: var(--vt-radius-sm);
		color: var(--vt-color-ink);
		display: flex;
		flex-direction: column;
		line-height: 1.1;
		margin: 0;
		padding: var(--vt-space-2) 0;
		text-transform: uppercase;
	}

	.vt-cal__weekday,
	.vt-cal__month {
		display: block;
		font-size: 0.75rem;
		letter-spacing: 0.08em;
	}

	.vt-cal__num {
		font-size: 1.5rem;
		font-weight: 800;
	}

	.vt-cal__day--today .vt-cal__num {
		background: none;
	}

	.vt-cal__events a {
		font-size: var(--vt-fs-body);
		padding: var(--vt-space-2) var(--vt-space-3);
	}
}

/* ---------- Story article body (Single – Story, theme-post-content) ---------- */
.single-post .elementor-widget-theme-post-content > * > :first-child,
.single-post .elementor-widget-theme-post-content :is(h2, h3):first-child {
	margin-top: 0;
}

.single-post .elementor-widget-theme-post-content :is(p, ul, ol) {
	margin: 0 0 var(--vt-space-6);
}

.single-post .elementor-widget-theme-post-content .vt-lead {
	font-size: var(--vt-fs-lead);
	font-weight: 500;
	line-height: 1.5;
}

.single-post .elementor-widget-theme-post-content h2 {
	font-size: var(--vt-fs-h3);
	line-height: 1.2;
	margin: var(--vt-space-12) 0 var(--vt-space-4);
}

.single-post .elementor-widget-theme-post-content h3 {
	font-size: var(--vt-fs-lead);
	line-height: 1.3;
	margin: var(--vt-space-8) 0 var(--vt-space-3);
}

.single-post .elementor-widget-theme-post-content a {
	color: var(--vt-color-link);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.single-post .elementor-widget-theme-post-content a:hover {
	color: var(--vt-color-link-hover);
}

.single-post .elementor-widget-theme-post-content :is(ul, ol) {
	padding-left: var(--vt-space-6);
}

.single-post .elementor-widget-theme-post-content li + li {
	margin-top: var(--vt-space-2);
}

.single-post .elementor-widget-theme-post-content li::marker {
	color: var(--vt-color-blue-700);
	font-weight: 700;
}

.single-post .elementor-widget-theme-post-content figure {
	margin: var(--vt-space-8) 0;
}

.single-post .elementor-widget-theme-post-content img {
	border-radius: var(--vt-radius-md);
	height: auto;
	max-width: 100%;
}

.single-post .elementor-widget-theme-post-content figcaption {
	color: var(--vt-color-text-muted);
	font-size: var(--vt-fs-small);
	margin-top: var(--vt-space-2);
	text-align: center;
}

.single-post .elementor-widget-theme-post-content blockquote {
	border-left: 6px solid var(--vt-color-lime);
	font-size: var(--vt-fs-lead);
	font-style: normal;
	font-weight: 600;
	line-height: 1.45;
	margin: var(--vt-space-8) 0;
	padding: var(--vt-space-2) 0 var(--vt-space-2) var(--vt-space-6);
}

.single-post .elementor-widget-theme-post-content blockquote p {
	margin: 0;
}

.single-post .elementor-widget-theme-post-content cite {
	color: var(--vt-color-text-muted);
	display: block;
	font-size: var(--vt-fs-small);
	font-style: normal;
	font-weight: 500;
	margin-top: var(--vt-space-3);
}

/* Footer of the article: tags, share links and "All stories" link. */
.vt-story-footer {
	border-top: 1px solid var(--vt-color-taupe);
	padding-top: var(--vt-space-6);
}

/* ---------- Tables in page text (e.g. Cookie Policy) ---------- */
.elementor-widget-text-editor table {
	border-collapse: collapse;
	display: block;
	font-size: var(--vt-fs-small);
	margin: 0 0 var(--vt-space-8);
	overflow-x: auto;
	width: 100%;
}

.elementor-widget-text-editor :is(th, td) {
	border: 1px solid var(--vt-color-taupe);
	padding: var(--vt-space-2) var(--vt-space-3);
	text-align: left;
	vertical-align: top;
}

.elementor-widget-text-editor th {
	background-color: var(--vt-color-blue-900);
	color: var(--vt-color-white);
}

/* ---------- Consent banner (Complianz) ---------- */
/* :root:root outranks the plugin's generated :root variables. */
:root:root {
	--cmplz_banner_background_color: var(--vt-color-white);
	--cmplz_banner_border_radius: var(--vt-radius-md);
	--cmplz_text_color: var(--vt-color-ink);
	--cmplz_hyperlink_color: var(--vt-color-blue-700);
	--cmplz_title_font_size: 1.125rem;
	--cmplz_text_font_size: var(--vt-fs-small);
	--cmplz_link_font_size: var(--vt-fs-small);
	--cmplz_category_body_font_size: var(--vt-fs-small);
	--cmplz_button_font_size: var(--vt-fs-small);
	--cmplz_button_border_radius: var(--vt-radius-pill);
	--cmplz_button_accept_background_color: var(--vt-color-lime);
	--cmplz_button_accept_border_color: var(--vt-color-lime);
	--cmplz_button_accept_text_color: var(--vt-color-ink);
	--cmplz_button_deny_background_color: var(--vt-color-white);
	--cmplz_button_deny_border_color: var(--vt-color-blue-700);
	--cmplz_button_deny_text_color: var(--vt-color-blue-700);
	--cmplz_button_settings_background_color: var(--vt-color-white);
	--cmplz_button_settings_border_color: var(--vt-color-blue-700);
	--cmplz_button_settings_text_color: var(--vt-color-blue-700);
	--cmplz_slider_active_color: var(--vt-color-blue-700);
	--cmplz_category_header_always_active_color: var(--vt-color-blue-700);
}

.cmplz-cookiebanner,
.cmplz-manage-consent {
	font-family: var(--vt-font-body);
}

.cmplz-cookiebanner .cmplz-btn {
	font-weight: 700;
	min-height: 44px;
}

.cmplz-cookiebanner .cmplz-title {
	font-weight: 800;
}

/* Footer "Cookie settings": a button styled like the Legal menu links next to it. */
.vt-cookie-settings {
	background: none;
	border: 0;
	color: var(--vt-color-white);
	cursor: pointer;
	font: inherit;
	font-size: 0.9375rem;
	line-height: 1.5;
	min-height: 44px;
	padding: 0 var(--vt-space-3);
	transition: color var(--vt-duration) var(--vt-ease);
}

.vt-cookie-settings:hover,
.vt-cookie-settings:focus,
.vt-cookie-settings:focus-visible {
	background: none;
	color: var(--vt-color-lime);
}
