.uif-cookie-banner *, .uif-cookie-modal *, .uif-external-media *, .uif-cookie-footer-link { box-sizing: border-box; }
.uif-cookie-banner[hidden], .uif-cookie-modal[hidden], .uif-business-legacy-bridge[hidden] { display: none !important; }
.uif-cookie-modal-open { overflow: hidden; }
.uif-cookie-banner {
	position: fixed; z-index: var(--uif-z-consent-banner); right: var(--uif-gutter); bottom: var(--uif-gutter); left: var(--uif-gutter);
	width: min(calc(100% - (var(--uif-gutter) * 2)), var(--uif-container)); margin: 0 auto; padding: var(--uif-sp-5);
	border: 1px solid var(--uif-line); border-top: var(--uif-sp-1) solid var(--uif-yellow); border-radius: var(--uif-r-bar);
	background: var(--uif-white); box-shadow: var(--uif-sh-float); color: var(--uif-ink); font-family: var(--uif-font);
	display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--uif-sp-4) var(--uif-sp-6); align-items: center;
}
.uif-cookie-banner__copy { display: grid; gap: var(--uif-sp-2); max-width: var(--uif-measure); }
.uif-cookie-banner__copy strong { font-size: var(--uif-fs-lg); font-weight: 800; }
.uif-cookie-banner__copy p, .uif-cookie-banner__copy a { margin: 0; color: var(--uif-muted); font-size: var(--uif-fs-sm); line-height: var(--uif-lh); }
.uif-cookie-banner__actions, .uif-cookie-modal__actions { display: flex; align-items: center; gap: var(--uif-sp-3); }
.uif-cookie-button, .uif-cookie-modal__actions button, .uif-cookie-footer-link, .uif-external-media button {
	display: inline-flex; align-items: center; justify-content: center; min-height: var(--uif-sp-12); padding: var(--uif-sp-3) var(--uif-sp-5) !important;
	border: 1px solid var(--uif-btn-line); border-radius: var(--uif-r-control) !important; background: var(--uif-white); color: var(--uif-ink) !important;
	font: inherit; font-weight: 800; line-height: 1.2; text-decoration: none !important; cursor: pointer;
}
.uif-cookie-button--equal { min-width: calc(var(--uif-sp-12) * 2.5); border-color: var(--uif-ink); }
.uif-cookie-button--primary { border-color: var(--uif-yellow) !important; background: var(--uif-yellow) !important; box-shadow: var(--uif-sh-cta); }
.uif-cookie-button:focus-visible, .uif-cookie-modal button:focus-visible, .uif-cookie-modal a:focus-visible, .uif-cookie-modal input:focus-visible, .uif-cookie-footer-link:focus-visible { outline: var(--uif-sp-1) solid var(--uif-ink); outline-offset: var(--uif-sp-1); }
.uif-cookie-error { grid-column: 1 / -1; margin: 0; color: var(--uif-danger, var(--uif-ink)); font-weight: 700; }
.uif-cookie-modal { position: fixed; z-index: calc(var(--uif-z-consent-banner) + 1); inset: 0; padding: var(--uif-gutter); background: var(--uif-dark-surface, var(--uif-ink)); display: grid; place-items: center; font-family: var(--uif-font); }
.uif-cookie-modal__panel { width: min(760px, 100%); max-height: calc(100vh - (var(--uif-gutter) * 2)); overflow: auto; padding: var(--uif-sp-6); border-radius: var(--uif-r-bar); background: var(--uif-white); box-shadow: var(--uif-sh-float); color: var(--uif-ink); }
.uif-cookie-modal__panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--uif-sp-4); }
.uif-cookie-modal__panel h2, .uif-cookie-modal__panel h3, .uif-cookie-modal__panel p { margin-top: 0; }
.uif-cookie-kicker { color: var(--uif-muted); font-weight: 800; letter-spacing: var(--uif-ls-kicker); }
.uif-cookie-modal__close { min-width: var(--uif-sp-12); min-height: var(--uif-sp-12); border: 1px solid var(--uif-line); border-radius: var(--uif-r-control); background: var(--uif-white); font-size: var(--uif-fs-lg); cursor: pointer; }
.uif-cookie-purposes { display: grid; gap: var(--uif-sp-3); margin: var(--uif-sp-5) 0; }
.uif-cookie-purpose { padding: var(--uif-sp-4); border: 1px solid var(--uif-line); border-radius: var(--uif-r-control); }
.uif-cookie-purpose__heading { display: flex; align-items: center; justify-content: space-between; gap: var(--uif-sp-4); }
.uif-cookie-purpose__heading p { margin-bottom: 0; color: var(--uif-muted); font-size: var(--uif-fs-sm); }
.uif-cookie-purpose details { margin-top: var(--uif-sp-3); }
.uif-cookie-purpose li { margin: var(--uif-sp-3) 0; line-height: var(--uif-lh); }
.uif-cookie-required { padding: var(--uif-sp-2) var(--uif-sp-3); border-radius: var(--uif-r-control); background: var(--uif-soft); font-size: var(--uif-fs-sm); font-weight: 800; white-space: nowrap; }
.uif-cookie-switch { position: relative; flex: 0 0 auto; }
.uif-cookie-switch input { position: absolute; opacity: 0; }
.uif-cookie-switch > span { display: block; width: var(--uif-sp-12); height: var(--uif-sp-6); border: 1px solid var(--uif-btn-line); border-radius: var(--uif-r-pill); background: var(--uif-soft); cursor: pointer; }
.uif-cookie-switch > span::after { content: ""; display: block; width: var(--uif-sp-5); height: var(--uif-sp-5); margin: 1px; border-radius: 50%; background: var(--uif-white); box-shadow: var(--uif-sh-float); transition: transform var(--uif-dur-fast) var(--uif-ease); }
.uif-cookie-switch input:checked + span { background: var(--uif-yellow); border-color: var(--uif-yellow); }
.uif-cookie-switch input:checked + span::after { transform: translateX(var(--uif-sp-6)); }
.uif-cookie-footer-link { margin: var(--uif-sp-4); min-height: auto; padding: var(--uif-sp-2) var(--uif-sp-3) !important; font-size: var(--uif-fs-sm); }
.uif-external-media { display: grid; place-items: center; min-height: calc(var(--uif-sp-18) * 3); padding: var(--uif-sp-6); border: 1px solid var(--uif-line); border-radius: var(--uif-r-control); background: var(--uif-soft); text-align: center; color: var(--uif-ink); }
@media (max-width: 782px) {
	.uif-cookie-banner { grid-template-columns: 1fr; }
	.uif-cookie-banner__actions, .uif-cookie-modal__actions { align-items: stretch; flex-direction: column; }
	.uif-cookie-button, .uif-cookie-modal__actions button { width: 100%; }
	.uif-cookie-purpose__heading { align-items: flex-start; }
}
@media (max-width: 480px) {
	.uif-cookie-banner { right: var(--uif-sp-3); bottom: var(--uif-sp-3); left: var(--uif-sp-3); width: calc(100% - (var(--uif-sp-3) * 2)); padding: var(--uif-sp-4); }
	.uif-cookie-modal { padding: var(--uif-sp-3); }
	.uif-cookie-modal__panel { max-height: calc(100vh - (var(--uif-sp-3) * 2)); padding: var(--uif-sp-4); }
	.uif-cookie-purpose__heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
}
