/**
 * Cookie banner (COMP-01, D-133, UI-SPEC section 1). Restyles Complianz's "consent per category"
 * markup. Tokens only. Complianz's own generated stylesheet loads after this one, so rules carry a
 * `body` prefix to win on specificity, and the colour/size variables Complianz reads are set on the
 * banner element itself.
 */

body .cmplz-cookiebanner {
	--cmplz_banner_width: 440px;
	--cmplz_banner_background_color: var(--materli-color-surface-alt);
	--cmplz_banner_border_color: var(--materli-color-border);
	--cmplz_banner_border_width: 1px;
	--cmplz_banner_border_radius: var(--materli-radius);
	--cmplz_banner_margin: var(--materli-space-sm);
	--cmplz_text_color: var(--materli-color-text);
	--cmplz_hyperlink_color: var(--materli-color-text);
	--cmplz_text_font_size: var(--materli-text-body);
	--cmplz_text_line_height: var(--materli-leading-body);
	--cmplz_link_font_size: var(--materli-text-label);
	--cmplz_category_body_font_size: var(--materli-text-label);
	--cmplz_category_header_title_font_size: var(--materli-text-body);
	--cmplz_category_header_active_font_size: var(--materli-text-label);
	--cmplz_category_header_always_active_color: var(--materli-color-text-muted);
	--cmplz_button_accept_background_color: var(--materli-color-accent);
	--cmplz_button_accept_border_color: var(--materli-color-accent);
	--cmplz_button_accept_text_color: var(--materli-color-surface);
	--cmplz_button_deny_background_color: var(--materli-color-accent);
	--cmplz_button_deny_border_color: var(--materli-color-accent);
	--cmplz_button_deny_text_color: var(--materli-color-surface);
	--cmplz_button_settings_background_color: transparent;
	--cmplz_button_settings_border_color: var(--materli-color-text);
	--cmplz_button_settings_text_color: var(--materli-color-text);
	--cmplz_button_border_radius: var(--materli-radius);
	--cmplz_button_font_size: var(--materli-text-body);
	--cmplz_slider_active_color: var(--materli-color-accent);
	--cmplz_slider_inactive_color: var(--materli-color-control-border);
	--cmplz_slider_bullet_color: var(--materli-color-surface);

	font: inherit;
	color: var(--materli-color-text);
	box-shadow: var(--materli-shadow-raised);
	transition: none;
	animation: none;
}

/* Desktop and tablet: bottom-left card. */
@media (min-width: 690px) {
	body .cmplz-cookiebanner {
		left: var(--materli-space-lg);
		right: auto;
		bottom: var(--materli-space-lg);
		top: auto;
		transform: none;
		width: auto;
		min-width: 0;
		max-width: var(--cmplz_banner_width);
		padding: var(--materli-space-lg);
	}

	body .cmplz-cookiebanner .cmplz-message,
	body .cmplz-cookiebanner .cmplz-categories {
		width: auto;
	}

	body .cmplz-cookiebanner .cmplz-buttons {
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: var(--materli-space-sm);
	}
}

/* Mobile: full-width bottom sheet. */
@media (max-width: 689px) {
	body .cmplz-cookiebanner {
		left: 0;
		right: 0;
		bottom: 0;
		top: auto;
		transform: none;
		width: 100%;
		min-width: 0;
		max-width: none;
		max-height: 80vh;
		overflow: auto;
		padding: var(--materli-space-md);
		border-radius: 0;
	}

	body .cmplz-cookiebanner .cmplz-buttons {
		flex-direction: column;
	}

	body .cmplz-cookiebanner .cmplz-body {
		min-width: 0;
		max-height: none;
	}
}

body .cmplz-cookiebanner .cmplz-header {
	display: block;
}

body .cmplz-cookiebanner .cmplz-header .cmplz-title {
	display: block;
	justify-self: stretch;
	font-family: var(--materli-font-heading);
	font-size: var(--materli-text-heading);
	font-weight: var(--materli-weight-strong);
	line-height: var(--materli-leading-heading);
	color: var(--materli-color-text);
	text-align: left;
}

body .cmplz-cookiebanner .cmplz-links.cmplz-information,
body .cmplz-cookiebanner .cmplz-divider,
body .cmplz-cookiebanner .cmplz-logo,
body .cmplz-cookiebanner .cmplz-close {
	display: none;
}

body .cmplz-cookiebanner .cmplz-message {
	font-size: var(--materli-text-body);
	font-weight: var(--materli-weight-regular);
	line-height: var(--materli-leading-body);
}

/* Links: explicit colours in every state (Blocksy's a:hover is espresso, Pitfall 11). */
body .cmplz-cookiebanner a,
body .cmplz-cookiebanner .cmplz-links .cmplz-link {
	color: var(--materli-color-text);
	font-size: var(--materli-text-label);
	text-decoration: underline;
}

body .cmplz-cookiebanner a:hover,
body .cmplz-cookiebanner .cmplz-links .cmplz-link:hover {
	color: var(--materli-color-text);
	text-decoration-thickness: 2px;
}

body .cmplz-cookiebanner a:focus-visible,
body .cmplz-cookiebanner .cmplz-links .cmplz-link:focus-visible,
body .cmplz-cookiebanner button:focus-visible {
	color: var(--materli-color-text);
	outline: 2px solid var(--materli-color-focus);
	outline-offset: 2px;
}

body .cmplz-cookiebanner .cmplz-links ul {
	flex-wrap: wrap;
	justify-content: flex-start;
}

body .cmplz-cookiebanner .cmplz-links.cmplz-documents {
	justify-content: flex-start;
}

/* Buttons: 48px, equal accept and deny, flex order Tylko niezbędne, Akceptuję wszystkie, Preferencje. */
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
	min-height: 48px;
	min-width: var(--materli-hit);
	padding: var(--materli-space-sm) var(--materli-space-md);
	font: inherit;
	font-size: var(--materli-text-body);
	font-weight: var(--materli-weight-strong);
	line-height: 1.25;
	white-space: normal;
	border-radius: var(--materli-radius);
	box-shadow: none;
	transition: none;
}

body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept {
	background-color: var(--materli-color-accent);
	border: 1px solid var(--materli-color-accent);
	color: var(--materli-color-surface);
}

body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny {
	order: 1;
}

body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept {
	order: 2;
}

body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences {
	order: 3;
	background-color: transparent;
	border: 1px solid var(--materli-color-text);
	color: var(--materli-color-text);
}

/* Desktop card: one equal-width row. Mobile sheet: stacked, full width. Placed after the base rules to win on order. */
@media (min-width: 690px) {
	body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
		flex: 1 1 0;
		min-width: 0;
		padding: var(--materli-space-sm);
		text-align: center;
		justify-content: center;
	}
}

@media (max-width: 689px) {
	body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
		flex: 0 0 auto;
		width: 100%;
	}
}

body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:hover,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:hover,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:focus-visible,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:focus-visible {
	background-color: var(--materli-color-text);
	border-color: var(--materli-color-text);
	color: var(--materli-color-surface);
}

body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:hover,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:hover,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:focus-visible,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:focus-visible {
	background-color: var(--materli-color-surface);
	border-color: var(--materli-color-text);
	color: var(--materli-color-text);
}

/* Category rows: 44px, toggles on the control-border token. */
body .cmplz-cookiebanner .cmplz-categories .cmplz-category {
	background-color: var(--materli-color-surface);
	border: 1px solid var(--materli-color-border);
	border-radius: var(--materli-radius);
}

body .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header {
	min-height: var(--materli-hit);
	grid-template-columns: 1fr auto var(--materli-hit);
	padding: 0 0 0 var(--materli-space-md);
}

body .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-title {
	font-size: var(--materli-text-body);
	font-weight: var(--materli-weight-strong);
	color: var(--materli-color-text);
}

body .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-toggle {
	width: var(--materli-hit);
	height: var(--materli-hit);
	color: var(--materli-color-text);
}

body .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-toggle:hover {
	background: transparent;
	color: var(--materli-color-text);
}

body .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-description {
	font-size: var(--materli-text-label);
	line-height: var(--materli-leading-body);
	padding: var(--materli-space-sm) var(--materli-space-md) var(--materli-space-md);
}

body .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox input.cmplz-consent-checkbox {
	width: var(--materli-hit);
	height: var(--materli-hit);
	margin-top: calc(var(--materli-hit) / -2);
}

body .cmplz-cookiebanner .cmplz-category .cmplz-icon.cmplz-open {
	transition: none;
}

/* One control only: Complianz's floating manage-consent tab is replaced by the footer link. */
#cmplz-manage-consent,
#cmplz-manage-consent .cmplz-manage-consent {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	body .cmplz-cookiebanner,
	body .cmplz-cookiebanner * {
		animation: none;
		transition: none;
	}
}

/* First paint: show the banner from the HTML unless the visitor already chose (head script sets the class). */
html:not(.materli-consent-set) body .cmplz-cookiebanner.cmplz-hidden {
	display: grid !important;
}
