/*
 * Complianz cookie banner, preferences and "Manage consent" button in the LTHEME look (DESIGN.md, revision 3).
 * Loaded on the front end only while Complianz is active (functions.php). No plugin settings are changed.
 *
 * Complianz prints its own banner CSS after the theme's, so every rule here is scoped under an ID
 * (#cmplz-cookiebanner-container, #cmplz-manage-consent, body #cmplz-manage-consent-container.cmplz-manage-consent-container) to win without
 * !important, and its colour variables are set on <body> so they beat the plugin's :root values.
 *
 * GDPR: Accept and Deny are the same size, colour and weight; "Preferences" is a quieter outline button.
 * Complianz currently hides Deny and the "Manage consent" button through its own settings; both are shown
 * again here (see the report / DESIGN.md "Cookie banner").
 */

body {
	--cmplz_banner_background_color: var(--wp--preset--color--base, #fff);
	--cmplz_banner_border_color: var(--wp--preset--color--line, #e2e2da);
	--cmplz_banner_border_width: 1px;
	--cmplz_banner_border_radius: var(--wp--custom--radius--lg, 24px);
	--cmplz_text_color: var(--wp--preset--color--ink, #111827);
	--cmplz_hyperlink_color: var(--wp--preset--color--ink, #111827);
	--cmplz_title_font_size: 1.05rem;
	--cmplz_text_font_size: .95rem;
	--cmplz_link_font_size: .875rem;
	--cmplz_category_body_font_size: .875rem;
	--cmplz_button_accept_background_color: var(--wp--preset--color--primary, #ffc600);
	--cmplz_button_accept_border_color: var(--wp--preset--color--primary, #ffc600);
	--cmplz_button_accept_text_color: var(--wp--preset--color--ink, #111827);
	--cmplz_button_deny_background_color: var(--wp--preset--color--primary, #ffc600);
	--cmplz_button_deny_border_color: var(--wp--preset--color--primary, #ffc600);
	--cmplz_button_deny_text_color: var(--wp--preset--color--ink, #111827);
	--cmplz_button_settings_background_color: transparent;
	--cmplz_button_settings_border_color: var(--wp--preset--color--ink, #111827);
	--cmplz_button_settings_text_color: var(--wp--preset--color--ink, #111827);
	--cmplz_button_border_radius: var(--wp--custom--radius--pill, 999px);
	--cmplz_button_font_size: .95rem;
	--cmplz_category_header_always_active_color: var(--wp--preset--color--ink-soft, #4b5563);
	--cmplz_category_header_title_font_size: .95rem;
	--cmplz_category_header_active_font_size: .8rem;
	--cmplz_slider_active_color: var(--wp--preset--color--ink, #111827);
	--cmplz_slider_inactive_color: var(--wp--preset--color--surface-2, #edede7);
	--cmplz_slider_bullet_color: var(--wp--preset--color--base, #fff);
	--lt-cc-ink: var(--wp--preset--color--ink, #111827);
	--lt-cc-soft: var(--wp--preset--color--ink-soft, #4b5563);
	--lt-cc-line: var(--wp--preset--color--line, #e2e2da);
	--lt-cc-surface: var(--wp--preset--color--surface, #f6f6f3);
	--lt-cc-surface-2: var(--wp--preset--color--surface-2, #edede7);
	--lt-cc-yellow: var(--wp--preset--color--primary, #ffc600);
	--lt-cc-yellow-deep: var(--wp--preset--color--primary-deep, #e0ac00);
	--lt-cc-blue: var(--wp--preset--color--accent, #2563eb);
	--lt-cc-white: var(--wp--preset--color--base, #fff);
	--lt-cc-body: var(--wp--preset--font-family--body, Inter, ui-sans-serif, system-ui, sans-serif);
	--lt-cc-heading: var(--wp--preset--font-family--heading, "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif);
}

/* ---------- Banner: a white card floating above the page (portal card: 24px corners, lifted shadow) ---------- */
#cmplz-cookiebanner-container .cmplz-cookiebanner {
	box-sizing: border-box;
	font-family: var(--lt-cc-body);
	color: var(--lt-cc-ink);
	background: var(--lt-cc-white);
	border: 1px solid var(--lt-cc-line);
	border-radius: var(--wp--custom--radius--lg, 24px);
	box-shadow: 0 24px 48px -12px rgba(17, 24, 39, .28), 0 2px 6px rgba(17, 24, 39, .08);
	padding: 1.25rem 1.5rem;
	margin: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "header" "body" "buttons" "docs";
	gap: 0;
	animation: none;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-dismissed { display: none; }
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:hover { box-shadow: 0 24px 48px -12px rgba(17, 24, 39, .28), 0 2px 6px rgba(17, 24, 39, .08); }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-divider { display: none; }

/* Header (logo, title and close are switched off in Complianz; styled in case they are turned on) */
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-header { grid-area: header; display: flex; align-items: center; gap: .75rem; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-title { font-family: var(--lt-cc-heading); font-weight: 800; font-size: 1.05rem; letter-spacing: -.01em; margin: 0 0 .5rem; justify-self: start; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-close { margin-left: auto; width: 2rem; height: 2rem; line-height: 2rem; text-align: center; border-radius: 999px; color: var(--lt-cc-ink); }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-close svg { width: .9rem; height: .9rem; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-close:hover { background: var(--lt-cc-surface); font-size: inherit; }

/* Message */
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-body { grid-area: body; min-width: 0; width: auto; max-height: 55vh; overflow-y: auto; overflow-x: hidden; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-message { font-size: .95rem; line-height: 1.55; color: var(--lt-cc-ink); margin: 0; max-width: 62ch; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-message a { color: var(--lt-cc-ink); text-decoration: underline; text-underline-offset: .15em; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-body::-webkit-scrollbar-thumb { background-color: var(--lt-cc-line); }

/* Buttons: theme pills. Accept and Deny identical (yellow fill, ink text); Preferences an ink outline pill. */
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons { grid-area: buttons; display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
	font-family: var(--lt-cc-body);
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.2;
	min-height: 2.75rem;
	min-width: 0;
	width: auto;
	flex: 1 1 0;
	padding: .7rem 1.35rem;
	border-radius: var(--wp--custom--radius--pill, 999px);
	border: 2px solid transparent;
	white-space: nowrap;
	text-align: center;
	cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny {
	display: block;
	background: var(--lt-cc-yellow);
	border-color: var(--lt-cc-yellow);
	color: var(--lt-cc-ink);
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:hover,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:hover { background: var(--lt-cc-yellow-deep); border-color: var(--lt-cc-yellow-deep); }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-manage-options {
	background: transparent;
	border-color: var(--lt-cc-ink);
	color: var(--lt-cc-ink);
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:hover,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:hover { background: var(--lt-cc-surface); }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons a.cmplz-btn.tcf { display: none; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn:focus-visible,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-close:focus-visible,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-category-toggle:focus-visible,
#cmplz-cookiebanner-container .cmplz-cookiebanner a:focus-visible { outline: 2px solid var(--lt-cc-blue); outline-offset: 3px; }

/* Policy links */
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-links.cmplz-documents { grid-area: docs; margin-top: .85rem; justify-content: flex-start; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-links ul { gap: 1.25rem; justify-content: flex-start; flex-wrap: wrap; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-links .cmplz-link { font-size: .875rem; color: var(--lt-cc-soft); text-decoration: underline; text-underline-offset: .15em; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-links .cmplz-link:hover { color: var(--lt-cc-ink); }

/* ---------- Preferences: category rows with a switch ---------- */
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-categories { margin-top: 1rem; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-categories .cmplz-category,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-categories .cmplz-category {
	background: var(--lt-cc-surface);
	border: 1px solid var(--lt-cc-line);
	border-radius: var(--wp--custom--radius--md, 14px);
	margin: 0;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-categories .cmplz-category:not(:last-child),
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-categories .cmplz-category:not(:last-child) { margin-bottom: .5rem; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-category-header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto 2rem;
	align-items: center;
	gap: .75rem;
	padding: .6rem .6rem .6rem 1rem;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-category .cmplz-category-header .cmplz-category-title,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-title { font-family: var(--lt-cc-heading); font-weight: 700; font-size: .95rem; color: var(--lt-cc-ink); margin: 0; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-category .cmplz-category-header .cmplz-always-active,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-always-active { font-size: .8rem; font-weight: 600; color: var(--lt-cc-soft); }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-category .cmplz-category-header .cmplz-category-toggle,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-toggle {
	grid-column-start: 3;
	width: 2rem;
	height: 2rem;
	border-radius: 999px;
	color: var(--lt-cc-ink);
	background: none;
	border: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-category .cmplz-category-toggle:hover,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-toggle:hover { background: var(--lt-cc-surface-2); }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-category .cmplz-icon.cmplz-open,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-icon.cmplz-open { width: .9rem; height: .9rem; display: flex; transition: transform .2s ease; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-category .cmplz-icon svg,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-icon svg { width: 100%; height: 100%; fill: currentColor; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-description,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-description { font-size: .875rem; line-height: 1.55; color: var(--lt-cc-soft); padding: 0 1rem .9rem; margin: 0; }

/* Switch (the plugin's checkbox, kept as a real checkbox for keyboard and screen readers) */
#cmplz-cookiebanner-container .cmplz-banner-checkbox,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-banner-checkbox { display: flex; align-items: center; margin: 0; position: relative; }
#cmplz-cookiebanner-container .cmplz-banner-checkbox input.cmplz-consent-checkbox,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-banner-checkbox input.cmplz-consent-checkbox {
	-webkit-appearance: none;
	appearance: none;
	position: relative;
	width: 2.6rem;
	height: 1.5rem;
	margin: 0;
	border-radius: 999px;
	border: 1px solid var(--lt-cc-soft);
	background: var(--lt-cc-white);
	cursor: pointer;
	flex: none;
	transition: background-color .15s, border-color .15s;
}
#cmplz-cookiebanner-container .cmplz-banner-checkbox input.cmplz-consent-checkbox::before,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-banner-checkbox input.cmplz-consent-checkbox::before {
	content: "";
	position: absolute;
	top: 50%;
	left: .2rem;
	width: 1.05rem;
	height: 1.05rem;
	border-radius: 999px;
	background: var(--lt-cc-soft);
	transform: translateY(-50%);
	transition: left .15s, background-color .15s;
}
#cmplz-cookiebanner-container .cmplz-banner-checkbox input.cmplz-consent-checkbox:checked,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-banner-checkbox input.cmplz-consent-checkbox:checked { background: var(--lt-cc-ink); border-color: var(--lt-cc-ink); }
#cmplz-cookiebanner-container .cmplz-banner-checkbox input.cmplz-consent-checkbox:checked::before,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-banner-checkbox input.cmplz-consent-checkbox:checked::before { left: calc(100% - 1.25rem); background: var(--lt-cc-yellow); }
#cmplz-cookiebanner-container .cmplz-banner-checkbox input.cmplz-consent-checkbox:focus-visible,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-banner-checkbox input.cmplz-consent-checkbox:focus-visible { outline: 2px solid var(--lt-cc-blue); outline-offset: 2px; }
#cmplz-cookiebanner-container .cmplz-banner-checkbox .cmplz-label,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-banner-checkbox .cmplz-label { position: absolute; inset: 0; margin: 0; cursor: pointer; }
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-always-active .cmplz-banner-checkbox { display: none; }
#cmplz-cookiebanner-container .cmplz-banner-checkbox .cmplz-label::before,
#cmplz-cookiebanner-container .cmplz-banner-checkbox .cmplz-label::after,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-banner-checkbox .cmplz-label::before,
body #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-banner-checkbox .cmplz-label::after { content: none; }

/* ---------- Phones: a sheet at the bottom; Accept and Deny side by side, Preferences under them ---------- */
@media (max-width: 1023px) {
	#cmplz-cookiebanner-container .cmplz-cookiebanner {
		left: 12px;
		right: 12px;
		bottom: 12px;
		top: auto;
		width: auto;
		max-width: none;
		transform: none;
		max-height: calc(100vh - 24px);
		padding: 1.1rem 1.1rem 1rem;
		border-radius: 20px;
	}
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-body { max-height: 50vh; }
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-message { font-size: .9rem; margin: 0; }
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons { display: grid; grid-template-columns: 1fr 1fr; flex-direction: initial; }
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences,
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences { grid-column: 1 / -1; }
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-links.cmplz-documents { justify-content: center; }
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-links ul { justify-content: center; }
}
@media (max-width: 425px) {
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-category .cmplz-category-header { grid-template-columns: minmax(0, 1fr) auto 2rem !important; }
}

/* ---------- Wide screens: one row (message | buttons) in a card as wide as the content (1200px) ---------- */
@media (min-width: 1024px) {
	#cmplz-cookiebanner-container .cmplz-cookiebanner {
		left: 50%;
		right: auto;
		top: auto;
		bottom: 16px;
		transform: translateX(-50%);
		width: min(1200px, calc(100% - 32px));
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "header header" "body buttons" "docs buttons";
		column-gap: 2.5rem;
		align-items: center;
		padding: 1.25rem 1.5rem 1.25rem 1.75rem;
	}
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-body { display: block; }
	#cmplz-cookiebanner-container .cmplz-cookiebanner.optin .cmplz-categories,
	#cmplz-cookiebanner-container .cmplz-cookiebanner.optout .cmplz-categories { width: auto; }
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons { flex-direction: row; flex-wrap: nowrap; margin-top: 0; align-self: center; }
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn { min-width: 8.5rem; width: auto; }
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-links.cmplz-documents { margin-top: .5rem; justify-content: flex-start; }

	/* Preferences open: the category list under the message, buttons stacked on the right */
	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-categories-visible { align-items: start; }
	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-categories-visible .cmplz-categories.cmplz-fade-in { max-width: 46rem; }
	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-categories-visible .cmplz-body > div { width: auto; }
	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-categories-visible .cmplz-buttons { flex-direction: column; align-self: end; }
	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-categories-visible .cmplz-links.cmplz-documents { grid-area: docs; }
}

@media (prefers-reduced-motion: reduce) {
	#cmplz-cookiebanner-container .cmplz-cookiebanner,
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-categories.cmplz-fade-in { animation: none; }
	#cmplz-cookiebanner-container .cmplz-category .cmplz-icon.cmplz-open,
	#cmplz-cookiebanner-container .cmplz-banner-checkbox input.cmplz-consent-checkbox::before { transition: none; }
}

/* ---------- "Manage consent" (revoke) button: a small ink pill, bottom left, after a choice was made ---------- */
#cmplz-manage-consent .cmplz-manage-consent.cmplz-show {
	display: inline-flex;
	align-items: center;
	position: fixed;
	left: 16px;
	right: auto;
	bottom: 16px;
	height: auto;
	min-width: 0;
	margin: 0;
	padding: .5rem .95rem;
	font-family: var(--lt-cc-body);
	font-size: .8rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--lt-cc-white);
	background: var(--lt-cc-ink);
	border: 1px solid color-mix(in srgb, var(--lt-cc-white) 22%, var(--lt-cc-ink));
	border-radius: var(--wp--custom--radius--pill, 999px);
	box-shadow: 0 6px 18px -6px rgba(17, 24, 39, .4);
	cursor: pointer;
	animation: none;
	z-index: 9998;
}
#cmplz-manage-consent .cmplz-manage-consent.cmplz-show:hover { background: var(--lt-cc-soft); }
#cmplz-manage-consent .cmplz-manage-consent.cmplz-show:focus-visible { outline: 2px solid var(--lt-cc-yellow); outline-offset: 3px; }
#cmplz-manage-consent .cmplz-manage-consent.cmplz-dismissed,
#cmplz-manage-consent .cmplz-manage-consent.cmplz-hidden { display: none; }
@media print { #cmplz-manage-consent, #cmplz-cookiebanner-container { display: none; } }
