/* Self-contained defaults. Site themes may override these public custom properties. */
.wse-legal, .wse-legal-settings {
	--wse-legal-bg: var(--brandname-consent-bg, rgb(0 0 0 / .88));
	--wse-legal-text: var(--brandname-consent-text, #ffffff);
	--wse-legal-button: var(--brandname-consent-button, #ffffff);
	--wse-legal-font: var(--brandname-consent-font, var(--bn-font-body, system-ui, sans-serif));
	--wse-legal-height: 0px;
	color: var(--wse-legal-text);
	font: 400 14px/1.6 var(--wse-legal-font);
}
.wse-legal *, .wse-legal *::before, .wse-legal *::after { box-sizing: border-box; }
.wse-legal [hidden] { display: none !important; }
.wse-legal__bar {
	position: fixed;
	inset: auto 0 0;
	z-index: 100000;
	background: var(--wse-legal-bg);
	border: 0;
	box-shadow: 0 -4px 24px rgb(0 0 0 / .12);
	max-height: 70vh;
	max-height: 70dvh;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 18px max(24px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
}
.wse-legal__inner { display: flex; align-items: center; gap: 32px; max-width: 1600px; margin: 0 auto; }
.wse-legal__inner p { flex: 1; margin: 0; color: inherit; font: inherit; }
.wse-legal a { color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.wse-legal__inner p a { margin-inline-start: .35em; }
.wse-legal__actions { display: grid; grid-template-columns: repeat(2, minmax(112px, 1fr)); flex-shrink: 0; gap: 12px; }
.wse-legal button, .wse-legal-settings {
	appearance: none;
	border: 1px solid var(--wse-legal-button);
	border-radius: 4px;
	background: var(--wse-legal-bg);
	color: var(--wse-legal-button);
	font: 600 14px/1.3 var(--wse-legal-font);
	letter-spacing: normal;
	text-transform: none;
	text-decoration: none;
	min-height: 44px;
	padding: 10px 18px;
	cursor: pointer;
	box-shadow: none;
	margin: 0;
}
.wse-legal button:hover, .wse-legal-settings:hover { text-decoration: underline; text-underline-offset: 3px; }
.wse-legal__actions button { width: 100%; }
.wse-legal [data-wse-legal-choice="allow"] { background: var(--wse-legal-button); color: var(--wse-legal-bg); }
.wse-legal [data-wse-legal-choice="deny"] { background: transparent; color: var(--wse-legal-text); border-color: var(--wse-legal-text); border-color: color-mix(in srgb, var(--wse-legal-text) 30%, transparent); }
.wse-legal__bar [data-wse-legal-manage] { background: transparent; color: var(--wse-legal-text); opacity: .72; border-color: transparent; font-weight: 400; }
.wse-legal button:disabled { opacity: .5; cursor: default; text-decoration: none; }
.wse-legal :is(button, a):focus-visible, .wse-legal-settings:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.wse-legal__spacer { height: var(--wse-legal-height); }
.wse-legal__status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.wse-legal__error { position: fixed; left: 16px; right: 16px; bottom: calc(var(--wse-legal-height) + 8px); z-index: 100001; background: var(--wse-legal-bg); color: var(--wse-legal-text); padding: 12px 16px; border: 1px solid currentColor; font: inherit; margin: 0; }
.wse-legal__modal {
	width: calc(100% - 32px); max-width: 600px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px);
	margin: auto; padding: 0; border: 0; border-radius: 14px; overflow: hidden;
	background: #fff; color: #222; font: 400 15px/1.55 var(--wse-legal-font);
	box-shadow: 0 24px 80px rgb(0 0 0 / .32); text-align: left;
}
.wse-legal__modal[open] { display: flex; flex-direction: column; }
.wse-legal__modal::backdrop { background: rgb(0 0 0 / .6); }
.wse-legal__modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 24px 24px 12px; flex-shrink: 0; }
.wse-legal__modal h2 { margin: 6px 0 0; color: #111; font: 600 25px/1.25 var(--wse-legal-font); letter-spacing: -.025em; }
.wse-legal__modal .wse-legal__close { color: #555; background: transparent; border: 0; width: 44px; height: 44px; min-width: 44px; padding: 0; margin: -4px -8px 0 0; font: 400 28px/1 var(--wse-legal-font); }
.wse-legal__modal-content { padding: 0 24px 24px; overflow-y: auto; overscroll-behavior: contain; min-height: 0; }
.wse-legal__modal p { color: inherit; margin: 0 0 20px; font: inherit; }
.wse-legal__category { display: flex; align-items: flex-start; gap: 20px; justify-content: space-between; padding: 20px 0; border-top: 1px solid #e7e7e7; }
.wse-legal__category > div { min-width: 0; }
.wse-legal__category :is(h3, label) { display: block; margin: 0 0 6px; color: #111; font: 600 16px/1.4 var(--wse-legal-font); }
.wse-legal__category p { color: #5c5c5c; font-size: 14px; line-height: 1.55; margin: 0; }
.wse-legal__required { color: #5c5c5c; background: #f2f2f2; border-radius: 4px; padding: 5px 8px; font-size: 11px; white-space: nowrap; margin-top: 2px; }
.wse-legal .wse-legal__switch {
	appearance: none; -webkit-appearance: none; position: relative; display: block; flex: 0 0 auto;
	width: 46px !important; height: 44px !important; min-width: 46px; min-height: 44px; padding: 0 !important; margin: -5px 0 0 !important;
	background: transparent !important; border: 0 !important; border-radius: 0 !important; cursor: pointer; box-shadow: none !important;
}
.wse-legal__switch::before { content: ''; position: absolute; width: 46px; height: 28px; top: 8px; left: 0; border: 1px solid #aaa; border-radius: 20px; background: #dedede; }
.wse-legal__switch::after { content: ''; position: absolute; width: 20px; height: 20px; top: 12px; left: 4px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgb(0 0 0 / .2); transition: transform .15s; }
.wse-legal__switch:checked::before { background: #111; border-color: #111; }
.wse-legal__switch:checked::after { transform: translateX(18px); }
.wse-legal__switch:disabled { opacity: .5; cursor: wait; }
.wse-legal__switch:focus-visible { outline: 2px solid #111; outline-offset: 4px; }
.wse-legal__modal .wse-legal__modal-note { color: #666; font-size: 13px; line-height: 1.5; margin: 0 0 16px; }
.wse-legal__modal .wse-legal__modal-links { display: flex; flex-wrap: wrap; gap: 8px 16px; color: #555; font-size: 13px; margin: 0; }
.wse-legal__modal-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 16px 24px 24px; border-top: 1px solid #e7e7e7; flex-shrink: 0; }
.wse-legal__modal-actions button { background: #fff; color: #333; border: 1px solid #ccc; font-size: 13px; padding: 10px 8px; }
.wse-legal__modal-actions [data-wse-legal-choice="allow"] { background: var(--wse-legal-bg); color: var(--wse-legal-button); border-color: var(--wse-legal-bg); }
.wse-legal__modal-actions [data-wse-legal-choice="deny"] { color: #555; border-color: #ccc; }
.wse-legal__modal :is(button, a):focus-visible { outline-color: #111; }
.wse-legal__modal .wse-legal__modal-error { padding: 12px; background: #fff3f0; color: #8a2300; border-radius: 4px; margin-top: 16px; font-size: 13px; }
@media (max-width: 767px) {
	.wse-legal__bar { padding: 16px max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); }
	.wse-legal__inner { flex-direction: column; align-items: stretch; gap: 14px; }
	.wse-legal__actions { gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wse-legal__actions button { padding-inline: 10px; }
}
@media (max-width: 479px) {
	.wse-legal__modal-header { padding: 16px 16px 12px; }
	.wse-legal__modal-content { padding: 0 16px 16px; }
	.wse-legal__modal h2 { font-size: 23px; }
	.wse-legal__category { gap: 12px; }
	.wse-legal__required { max-width: 82px; white-space: normal; text-align: center; }
	.wse-legal__modal-actions { padding: 14px 16px 16px; grid-template-columns: 1fr; }
	.wse-legal__modal-actions [data-wse-legal-choice="allow"] { grid-row: 1; }
}
@media (prefers-reduced-motion: reduce) { .wse-legal__switch::after { transition: none; } }
