/* Keep upstream's accessible modal, responsive layout and equal-weight actions.
 * All site identity comes through Lean Core's opt-in public token contract.
 */
[id="cc-main"] {
	--cc-font-family: var(--lean-public-font-family, inherit);
	--cc-bg: var(--lean-public-surface);
	--cc-primary-color: var(--lean-public-text);
	--cc-secondary-color: var(--lean-public-muted);
	--cc-modal-border-radius: var(--lean-public-radius-panel);
	--cc-btn-border-radius: var(--lean-public-radius);
	--cc-link-color: var(--lean-public-link);
	--cc-btn-primary-bg: var(--lean-public-action);
	--cc-btn-primary-color: var(--lean-public-on-action);
	--cc-btn-primary-border-color: var(--lean-public-action);
	--cc-btn-primary-hover-bg: var(--lean-public-action-hover);
	--cc-btn-primary-hover-color: var(--lean-public-on-action-hover);
	--cc-btn-primary-hover-border-color: var(--lean-public-action-hover);
	--cc-btn-secondary-bg: var(--lean-public-subtle);
	--cc-btn-secondary-color: var(--lean-public-text);
	--cc-btn-secondary-border-color: var(--lean-public-border);
	--cc-btn-secondary-hover-bg: var(--lean-public-action-hover);
	--cc-btn-secondary-hover-color: var(--lean-public-on-action-hover);
	--cc-btn-secondary-hover-border-color: var(--lean-public-action-hover);
	--cc-separator-border-color: var(--lean-public-border);
	--cc-toggle-on-bg: var(--lean-public-action);
	--cc-toggle-on-knob-bg: var(--lean-public-on-action);
	--cc-toggle-off-bg: var(--lean-public-muted);
	--cc-toggle-off-knob-bg: var(--lean-public-surface);
	--cc-toggle-enabled-icon-color: var(--lean-public-on-action);
	--cc-toggle-disabled-icon-color: var(--lean-public-surface);
	--cc-toggle-readonly-bg: var(--lean-public-subtle);
	--cc-toggle-readonly-knob-bg: var(--lean-public-text);
	--cc-toggle-readonly-knob-icon-color: var(--lean-public-surface);
	--cc-section-category-border: var(--lean-public-border);
	--cc-cookie-category-block-bg: var(--lean-public-subtle);
	--cc-cookie-category-block-border: var(--lean-public-border);
	--cc-cookie-category-block-hover-bg: var(--lean-public-subtle);
	--cc-cookie-category-block-hover-border: var(--lean-public-border);
	--cc-cookie-category-expanded-block-bg: var(--lean-public-surface);
	--cc-cookie-category-expanded-block-hover-bg: var(--lean-public-subtle);
	--cc-overlay-bg: var(--lean-public-overlay);
	--cc-webkit-scrollbar-bg: var(--lean-public-subtle);
	--cc-webkit-scrollbar-hover-bg: var(--lean-public-muted);
	--cc-footer-bg: var(--lean-public-surface);
	--cc-footer-color: var(--lean-public-text);
	--cc-footer-border-color: var(--lean-public-border);
	font-family: var(--lean-public-font-family, inherit) !important;
	font-size: var(--lean-public-font-size) !important;
	font-weight: var(--lean-public-weight) !important;
	line-height: var(--lean-public-leading) !important;
}

[id="cc-main"] .cm,
[id="cc-main"] .pm {
	box-shadow: var(--lean-public-shadow) !important;
}

/* The pinned upstream stylesheet uses #cc-main and all:initial. Only these
 * competing non-token declarations need important when selecting its fixed
 * root by attribute instead of ID specificity. Tokens retain normal cascade.
 */
/* Upstream's narrow layout marks this divider important. Keep actions open. */
[id="cc-main"] .cm__btns {
	border-top: 0 !important;
}

[id="cc-main"] .pm__header {
	background: var(--lean-public-heading-surface) !important;
	color: var(--lean-public-heading-text) !important;
	border-bottom: 0 !important;
}

[id="cc-main"] .pm__footer {
	border-top: 0 !important;
}

[id="cc-main"] .pm__btn[data-role="necessary"] {
	--cc-btn-primary-bg: var(--lean-public-action-hover);
	--cc-btn-primary-color: var(--lean-public-on-action-hover);
	--cc-btn-primary-border-color: var(--lean-public-action-hover);
}

[id="cc-main"] .cm__desc,
[id="cc-main"] .pm__section-desc,
[id="cc-main"] .pm__section-title,
[id="cc-main"] .pm__service-counter {
	line-height: var(--lean-public-leading) !important;
}

[id="cc-main"] .cm__btn,
[id="cc-main"] .pm__btn {
	/* Upstream all:initial otherwise resets system colors to the light scheme. */
	color-scheme: inherit !important;
	min-height: max(44px, var(--lean-public-target)) !important;
	border-radius: var(--lean-public-radius) !important;
	font-size: var(--lean-public-font-small) !important;
	font-weight: var(--lean-public-weight-strong) !important;
	padding: var(--lean-public-space-small) var(--lean-public-space) !important;
	overflow-wrap: anywhere !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
}

.lean-legal-consent-preferences {
	cursor: pointer;
}

/* Embed placeholders retain a decorative icon. Modal actions stay text-only. */
[data-ll-placeholder][data-ll-preferences] {
	--ll-action-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M4 17h16M8 4v6M16 14v6'/%3E%3C/svg%3E");
	display: inline-grid;
	grid-template-columns: 1em minmax(0, 1fr);
	align-items: start;
	gap: 0.5em;
	max-inline-size: 100%;
	line-height: 1.5;
	text-align: start;
	white-space: normal;
	overflow-wrap: anywhere;
}

[data-ll-placeholder][data-ll-preferences]::before {
	content: "";
	display: block;
	inline-size: 1em;
	block-size: 1em;
	margin-block-start: 0.25em;
	background: currentColor;
	mask: var(--ll-action-icon) center / contain no-repeat;
}

.lean-legal-consent-fallback {
	margin: 1rem;
	font: inherit;
}

[data-ll-placeholder] {
	min-height: 44px;
	cursor: pointer;
	white-space: normal;
}

[data-ll-embed],
[data-ll-embed] iframe {
	max-width: 100%;
}

[data-ll-embed] [hidden] {
	display: none !important;
}

[data-ll-preferences]:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

[id="cc-main"] button:focus-visible,
[id="cc-main"] a:focus-visible,
[id="cc-main"] input:focus-visible {
	outline: 3px solid var(--lean-public-focus) !important;
	outline-offset: 3px !important;
}

[id="cc-main"] .cm__btn:focus-visible,
[id="cc-main"] .pm__btn:focus-visible {
	outline-color: currentColor !important;
	outline-offset: -5px !important;
}

[id="cc-main"] ::selection {
	background: var(--lean-public-action) !important;
	color: var(--lean-public-on-action) !important;
}

@media (prefers-reduced-motion: reduce) {
	[id="cc-main"] {
		--cc-modal-transition-duration: 0s;
	}
}
