/**
 * Universal LGPD Cookie Consent — Global
 */

.ulgpd-root {
	--ulgpd-bg:#171717;
	--ulgpd-primary:#ffcc29;
	--ulgpd-accent:#ffe16a;
	--ulgpd-title:#fff;
	--ulgpd-text:#f0f0f0;
	--ulgpd-muted:#c6c6c6;
	--ulgpd-border:rgba(255,255,255,.14);
	--ulgpd-edge:20px;
	--ulgpd-banner-radius:20px;
	--ulgpd-banner-max:1080px;
	--ulgpd-logo-width:135px;
	--ulgpd-font:Arial,sans-serif;

	--ulgpd-reopen-bg:#fff;
	--ulgpd-reopen-color:#171717;
	--ulgpd-reopen-border:rgba(23,23,23,.14);
	--ulgpd-reopen-desktop-edge:18px;
	--ulgpd-reopen-desktop-bottom:18px;
	--ulgpd-reopen-desktop-height:38px;
	--ulgpd-reopen-desktop-icon:15px;
	--ulgpd-reopen-mobile-edge:12px;
	--ulgpd-reopen-mobile-bottom:14px;
	--ulgpd-reopen-mobile-size:36px;
	--ulgpd-reopen-mobile-icon:14px;

	font-family:var(--ulgpd-font);
}

.ulgpd-root,
.ulgpd-root *,
.ulgpd-root *::before,
.ulgpd-root *::after {
	box-sizing:border-box;
}

.ulgpd-banner {
	position:fixed;
	z-index:999999;
	bottom:var(--ulgpd-edge);
	display:grid;
	grid-template-columns:minmax(0,1fr) auto;
	align-items:center;
	gap:28px;
	width:calc(100% - (var(--ulgpd-edge) * 2));
	max-width:var(--ulgpd-banner-max);
	padding:24px 28px;
	border:1px solid var(--ulgpd-border);
	border-radius:var(--ulgpd-banner-radius);
	color:var(--ulgpd-text);
	background:
		radial-gradient(circle at 92% 8%,color-mix(in srgb,var(--ulgpd-accent) 18%,transparent),transparent 28%),
		var(--ulgpd-bg);
	box-shadow:0 22px 65px rgba(0,0,0,.38);
	backdrop-filter:blur(16px);
	-webkit-backdrop-filter:blur(16px);
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transform:translateY(24px);
	transition:
		opacity .35s ease,
		visibility .35s ease,
		transform .45s cubic-bezier(.22,1,.36,1);
}

.ulgpd-position-bottom-center .ulgpd-banner {
	left:50%;
	transform:translate(-50%,24px);
}

.ulgpd-position-bottom-center .ulgpd-banner.is-visible {
	transform:translate(-50%,0);
}

.ulgpd-position-bottom-left .ulgpd-banner {
	left:var(--ulgpd-edge);
}

.ulgpd-position-bottom-right .ulgpd-banner {
	right:var(--ulgpd-edge);
}

.ulgpd-banner.is-visible {
	opacity:1;
	visibility:visible;
	pointer-events:auto;
	transform:translateY(0);
}

.ulgpd-copy {
	min-width:0;
}

.ulgpd-logo-wrap {
	margin-bottom:14px;
}

.ulgpd-logo {
	display:block;
	width:var(--ulgpd-logo-width);
	max-width:100%;
	height:auto;
}

.ulgpd-title {
	margin:0 0 8px;
	color:var(--ulgpd-title);
	font-size:21px;
	font-weight:700;
	line-height:1.2;
}

.ulgpd-message {
	max-width:720px;
	margin:0;
	color:var(--ulgpd-muted);
	font-size:13px;
	line-height:1.65;
}

.ulgpd-policy-link {
	color:color-mix(in srgb,var(--ulgpd-accent) 78%,white);
	font-weight:700;
	text-decoration:none;
	border-bottom:1px solid color-mix(in srgb,var(--ulgpd-accent) 42%,transparent);
}

.ulgpd-actions {
	display:flex;
	align-items:center;
	justify-content:flex-end;
	flex-wrap:wrap;
	gap:9px;
	max-width:500px;
}

.ulgpd-button {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	padding:11px 17px;
	border:1px solid rgba(255,255,255,.25);
	border-radius:999px;
	font:inherit;
	font-size:12px;
	font-weight:700;
	line-height:1.2;
	text-align:center;
	cursor:pointer;
	appearance:none;
	-webkit-appearance:none;
	transition:
		transform .2s ease,
		color .2s ease,
		background .2s ease,
		border-color .2s ease,
		box-shadow .2s ease;
}

.ulgpd-button--primary {
	color:#171717;
	border-color:var(--ulgpd-primary);
	background:var(--ulgpd-primary);
	box-shadow:0 12px 28px color-mix(in srgb,var(--ulgpd-primary) 24%,transparent);
}

.ulgpd-button--secondary {
	color:#fff;
	background:rgba(255,255,255,.06);
}

@media(hover:hover) and (pointer:fine) {
	.ulgpd-button:hover {
		transform:translateY(-2px);
	}

	.ulgpd-button--primary:hover {
		border-color:var(--ulgpd-accent);
		background:var(--ulgpd-accent);
	}

	.ulgpd-button--secondary:hover {
		background:rgba(255,255,255,.12);
		border-color:#fff;
	}
}

.ulgpd-overlay {
	position:fixed;
	z-index:1000000;
	inset:0;
	display:grid;
	place-items:center;
	padding:20px;
	background:rgba(2,17,31,.76);
	backdrop-filter:blur(7px);
	-webkit-backdrop-filter:blur(7px);
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transition:opacity .28s ease,visibility .28s ease;
}

.ulgpd-overlay.is-visible {
	opacity:1;
	visibility:visible;
	pointer-events:auto;
}

.ulgpd-panel {
	width:100%;
	max-width:670px;
	max-height:calc(100vh - 40px);
	overflow-y:auto;
	padding:30px;
	border:1px solid var(--ulgpd-border);
	border-radius:24px;
	color:var(--ulgpd-text);
	background:
		radial-gradient(circle at 94% 4%,color-mix(in srgb,var(--ulgpd-accent) 16%,transparent),transparent 25%),
		var(--ulgpd-bg);
	box-shadow:0 28px 80px rgba(0,0,0,.46);
	transform:translateY(18px) scale(.98);
	transition:transform .35s cubic-bezier(.22,1,.36,1);
}

.ulgpd-overlay.is-visible .ulgpd-panel {
	transform:translateY(0) scale(1);
}

.ulgpd-panel-head {
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:20px;
	margin-bottom:24px;
}

.ulgpd-panel-title {
	margin:0 0 7px;
	color:var(--ulgpd-title);
	font-size:28px;
	font-weight:700;
	line-height:1.15;
}

.ulgpd-panel-intro {
	margin:0;
	color:var(--ulgpd-muted);
	font-size:13px;
	line-height:1.6;
}

.ulgpd-close {
	display:grid;
	width:40px;
	height:40px;
	flex:0 0 auto;
	place-items:center;
	padding:0;
	border:1px solid rgba(255,255,255,.18);
	border-radius:50%;
	color:#fff;
	background:rgba(255,255,255,.06);
	font:inherit;
	font-size:22px;
	cursor:pointer;
	appearance:none;
	-webkit-appearance:none;
}

.ulgpd-category {
	display:grid;
	grid-template-columns:minmax(0,1fr) auto;
	align-items:center;
	gap:20px;
	padding:19px 0;
	border-top:1px solid rgba(255,255,255,.10);
}

.ulgpd-category h4 {
	margin:0 0 6px;
	color:var(--ulgpd-title);
	font-size:15px;
	font-weight:700;
}

.ulgpd-category p {
	margin:0;
	color:var(--ulgpd-muted);
	font-size:12px;
	line-height:1.55;
}

.ulgpd-always {
	color:color-mix(in srgb,var(--ulgpd-accent) 78%,white);
	font-size:11px;
	font-weight:700;
	letter-spacing:.7px;
	text-transform:uppercase;
}

.ulgpd-switch {
	position:relative;
	display:inline-flex;
	width:48px;
	height:27px;
}

.ulgpd-switch input {
	position:absolute;
	opacity:0;
	pointer-events:none;
}

.ulgpd-switch-ui {
	position:absolute;
	inset:0;
	border:1px solid rgba(255,255,255,.24);
	border-radius:999px;
	background:rgba(255,255,255,.10);
	cursor:pointer;
	transition:background .2s ease,border-color .2s ease;
}

.ulgpd-switch-ui::after {
	content:"";
	position:absolute;
	top:3px;
	left:3px;
	width:19px;
	height:19px;
	border-radius:50%;
	background:#fff;
	box-shadow:0 3px 10px rgba(0,0,0,.2);
	transition:transform .22s cubic-bezier(.22,1,.36,1);
}

.ulgpd-switch input:checked + .ulgpd-switch-ui {
	border-color:var(--ulgpd-accent);
	background:var(--ulgpd-accent);
}

.ulgpd-switch input:checked + .ulgpd-switch-ui::after {
	transform:translateX(21px);
}

.ulgpd-panel-actions {
	display:flex;
	align-items:center;
	justify-content:flex-end;
	flex-wrap:wrap;
	gap:9px;
	padding-top:23px;
	border-top:1px solid rgba(255,255,255,.10);
}

/* =========================================================
   BOTÃO FLUTUANTE DE PREFERÊNCIAS
   ========================================================= */

.ulgpd-reopen {
	position:fixed;
	z-index:999998;
	bottom:var(--ulgpd-reopen-desktop-bottom);
	display:none;
	align-items:center;
	justify-content:center;
	gap:8px;
	min-height:var(--ulgpd-reopen-desktop-height);
	padding:8px 13px;
	border:1px solid var(--ulgpd-reopen-border);
	border-radius:999px;
	color:var(--ulgpd-reopen-color);
	background:var(--ulgpd-reopen-bg);
	font:inherit;
	font-size:11px;
	font-weight:700;
	line-height:1;
	cursor:pointer;
	appearance:none;
	-webkit-appearance:none;
	backdrop-filter:blur(10px);
	-webkit-backdrop-filter:blur(10px);
}

.ulgpd-reopen-shadow .ulgpd-reopen {
	box-shadow:0 8px 24px rgba(0,0,0,.13);
}

.ulgpd-reopen-desktop-left .ulgpd-reopen {
	left:var(--ulgpd-reopen-desktop-edge);
	right:auto;
}

.ulgpd-reopen-desktop-right .ulgpd-reopen {
	right:var(--ulgpd-reopen-desktop-edge);
	left:auto;
}

.ulgpd-reopen.is-visible {
	display:inline-flex;
}

.ulgpd-reopen-icon {
	display:grid;
	place-items:center;
	width:var(--ulgpd-reopen-desktop-icon);
	height:var(--ulgpd-reopen-desktop-icon);
	flex:0 0 auto;
}

.ulgpd-reopen-icon svg {
	display:block;
	width:100%;
	height:100%;
	fill:none;
	stroke:currentColor;
	stroke-width:1.8;
	stroke-linecap:round;
	stroke-linejoin:round;
}

.ulgpd-reopen-desktop-icon-only .ulgpd-reopen {
	width:var(--ulgpd-reopen-desktop-height);
	min-width:var(--ulgpd-reopen-desktop-height);
	height:var(--ulgpd-reopen-desktop-height);
	padding:0;
}

.ulgpd-reopen-desktop-icon-only .ulgpd-reopen-text {
	position:absolute!important;
	width:1px!important;
	height:1px!important;
	padding:0!important;
	margin:-1px!important;
	overflow:hidden!important;
	clip:rect(0,0,0,0)!important;
	white-space:nowrap!important;
	border:0!important;
}

/* Focus */
.ulgpd-root button:focus-visible,
.ulgpd-root input:focus-visible + span,
.ulgpd-root a:focus-visible {
	outline:3px solid color-mix(in srgb,var(--ulgpd-accent) 45%,transparent);
	outline-offset:3px;
}

@media(max-width:860px) {
	.ulgpd-banner {
		grid-template-columns:1fr;
		gap:18px;
	}

	.ulgpd-actions {
		justify-content:flex-start;
		max-width:none;
	}
}

@media(max-width:600px) {
	.ulgpd-banner {
		bottom:10px;
		width:calc(100% - 20px);
		max-height:calc(100vh - 20px);
		overflow-y:auto;
		padding:20px 18px;
	}

	.ulgpd-position-bottom-left .ulgpd-banner,
	.ulgpd-position-bottom-right .ulgpd-banner {
		right:10px;
		left:10px;
	}

	.ulgpd-title {
		font-size:19px;
	}

	.ulgpd-message {
		font-size:12px;
		line-height:1.55;
	}

	.ulgpd-actions,
	.ulgpd-panel-actions {
		display:grid;
		grid-template-columns:1fr;
		width:100%;
	}

	.ulgpd-button {
		width:100%;
		min-height:42px;
	}

	.ulgpd-panel {
		padding:22px 18px;
		border-radius:18px;
	}

	.ulgpd-panel-title {
		font-size:22px;
	}

	/* Mobile: botão discreto e independente do desktop. */
	.ulgpd-reopen {
		bottom:var(--ulgpd-reopen-mobile-bottom);
		width:var(--ulgpd-reopen-mobile-size);
		min-width:var(--ulgpd-reopen-mobile-size);
		height:var(--ulgpd-reopen-mobile-size);
		min-height:var(--ulgpd-reopen-mobile-size);
		padding:0;
		gap:0;
		border-radius:50%;
		font-size:10px;
	}

	.ulgpd-reopen-mobile-left .ulgpd-reopen {
		left:var(--ulgpd-reopen-mobile-edge);
		right:auto;
	}

	.ulgpd-reopen-mobile-right .ulgpd-reopen {
		right:var(--ulgpd-reopen-mobile-edge);
		left:auto;
	}

	.ulgpd-reopen-icon {
		width:var(--ulgpd-reopen-mobile-icon);
		height:var(--ulgpd-reopen-mobile-icon);
	}

	.ulgpd-reopen-mobile-icon-only .ulgpd-reopen-text {
		position:absolute!important;
		width:1px!important;
		height:1px!important;
		padding:0!important;
		margin:-1px!important;
		overflow:hidden!important;
		clip:rect(0,0,0,0)!important;
		white-space:nowrap!important;
		border:0!important;
	}

	/* Caso o usuário escolha mostrar texto no mobile. */
	.ulgpd-root:not(.ulgpd-reopen-mobile-icon-only) .ulgpd-reopen {
		width:auto;
		height:auto;
		min-width:var(--ulgpd-reopen-mobile-size);
		padding:8px 11px;
		border-radius:999px;
		gap:6px;
	}
}

@media(prefers-reduced-motion:reduce) {
	.ulgpd-root *,
	.ulgpd-root *::before,
	.ulgpd-root *::after {
		transition:none!important;
		scroll-behavior:auto!important;
	}
}
