.rgpd-suite-overlay {
	position: fixed;
	inset: 0;
	background: var(--rgpd-overlay-color, rgba(0,0,0,.55));
	z-index: calc(var(--rgpd-zindex, 999999) - 1);
}
.rgpd-suite-overlay[hidden] { display: none; }

.rgpd-suite-banner {
	position: fixed;
	left: 0;
	right: 0;
	z-index: var(--rgpd-zindex, 999999);
	background: var(--rgpd-primary, #1a2b4c);
	color: var(--rgpd-text, #ffffff);
	font-size: var(--rgpd-font-size, 14px);
	font-family: var(--rgpd-font-family, inherit);
	line-height: 1.5;
	box-shadow: var(--rgpd-shadow, 0 -2px 14px rgba(0,0,0,.25));
	text-align: var(--rgpd-text-align, left);
}

.rgpd-suite-banner[hidden] { display: none; }

.rgpd-suite-banner.rgpd-position-bottom { bottom: 0; }
.rgpd-suite-banner.rgpd-position-top { top: 0; }

.rgpd-suite-banner.rgpd-position-popup {
	position: fixed;
	top: 50%;
	left: 50%;
	right: auto;
	transform: translate(-50%, -50%);
	border-radius: var(--rgpd-radius, 6px);
	max-width: var(--rgpd-max-width, 1100px);
	width: 92%;
	max-height: 90vh;
	overflow-y: auto;
}

/* Animations d'apparition */
.rgpd-anim-fade { animation: rgpdFadeIn .35s ease both; }
.rgpd-anim-slide.rgpd-position-bottom { animation: rgpdSlideUp .35s ease both; }
.rgpd-anim-slide.rgpd-position-top { animation: rgpdSlideDown .35s ease both; }
.rgpd-anim-slide.rgpd-position-popup { animation: rgpdPopIn .3s ease both; }

@keyframes rgpdFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes rgpdSlideUp { from { transform: translateY(100%); } to { transform: translateY(0); } }
@keyframes rgpdSlideDown { from { transform: translateY(-100%); } to { transform: translateY(0); } }
@keyframes rgpdPopIn { from { opacity: 0; transform: translate(-50%,-46%); } to { opacity: 1; transform: translate(-50%,-50%); } }

.rgpd-suite-banner__close {
	position: absolute;
	top: 8px;
	right: 12px;
	background: transparent;
	border: none;
	color: inherit;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	opacity: .7;
}
.rgpd-suite-banner__close:hover { opacity: 1; }

.rgpd-suite-banner__inner {
	max-width: var(--rgpd-max-width, 1100px);
	margin: 0 auto;
	padding: var(--rgpd-padding-v, 18px) var(--rgpd-padding-h, 24px);
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}

.rgpd-suite-banner__logo {
	width: var(--rgpd-logo-width, 110px);
	height: auto;
	flex-shrink: 0;
}

.rgpd-suite-banner__content { flex: 1 1 320px; }

.rgpd-suite-banner__title {
	margin: 0 0 4px;
	font-weight: 700;
}

.rgpd-suite-banner__text {
	margin: 0;
	opacity: .92;
}

.rgpd-suite-banner__link {
	color: inherit;
	text-decoration: underline;
	white-space: nowrap;
	margin-left: 4px;
}

.rgpd-suite-banner__actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	flex-shrink: 0;
}

.rgpd-btn {
	width: var(--rgpd-btn-width, 160px);
	height: var(--rgpd-btn-height, 44px);
	border-radius: var(--rgpd-radius, 6px);
	border: var(--rgpd-btn-border-width, 2px) solid transparent;
	cursor: pointer;
	font-size: var(--rgpd-font-size, 14px);
	font-family: var(--rgpd-font-family, inherit);
	font-weight: 600;
	padding: 0 14px;
	transition: opacity .15s ease, transform .1s ease;
}
.rgpd-btn:hover { opacity: .85; }
.rgpd-btn:active { transform: scale(.97); }

.rgpd-btn--primary {
	background: var(--rgpd-btn-bg, #c1272d);
	color: var(--rgpd-btn-text, #ffffff);
}

.rgpd-btn--secondary {
	background: var(--rgpd-btn-bg-secondary, #4a4a4a);
	color: var(--rgpd-btn-text, #ffffff);
}

.rgpd-btn--outline {
	background: var(--rgpd-btn-bg-customize, transparent);
	color: var(--rgpd-btn-text-customize, #ffffff);
	border-color: var(--rgpd-btn-border-color, currentColor);
}

.rgpd-suite-banner__panel {
	max-width: var(--rgpd-max-width, 1100px);
	margin: 0 auto;
	padding: 0 var(--rgpd-padding-h, 24px) var(--rgpd-padding-v, 18px);
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
	border-top: 1px solid rgba(255,255,255,.15);
	padding-top: 16px;
}
.rgpd-suite-banner__panel[hidden] { display: none; }

.rgpd-suite-toggle {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: calc(var(--rgpd-font-size, 14px) - 1px);
}
.rgpd-suite-toggle--locked { opacity: .7; }

@media (max-width: 640px) {
	.rgpd-suite-banner__inner { flex-direction: column; align-items: flex-start; }
	.rgpd-btn { width: 100%; }
	.rgpd-suite-banner__actions { width: 100%; flex-direction: column; }
}
