/* ==========================================================================
   Banner Polyges — styles front-end
   ICT Tunisia — https://ict.com.tn/
   ========================================================================== */

.bp-banner-polyges {
	--bp-navy: #1C3D76;
	--bp-navy-dark: #1C3D76;
	--bp-bg-start: #eef1f8;
	--bp-bg-end: #dfe4f0;
	--bp-text-muted: #242424;
	--bp-radius: 10px;

	position: relative;
	width: 100%;
	padding: 56px 24px 64px;
	background-color: var(--bp-bg-start);
	background-image: linear-gradient(135deg, var(--bp-bg-start) 0%, var(--bp-bg-end) 100%);
	background-size: cover;
	background-position: center;
	overflow: hidden;
	box-sizing: border-box;
	font-family:'Montserrat';
}

.bp-banner-polyges * {
	box-sizing: border-box;
}

/*
 * La hauteur et la largeur de la bannière sont définies dans les réglages
 * (onglet Général) et posées en inline par le plugin (min-height / width).
 * Quand une hauteur est fixée ou qu'une image est présente, le contenu est
 * centré verticalement ; s'il est plus haut, le bloc s'agrandit.
 */
.bp-banner-polyges.bp-has-image,
.bp-banner-polyges.bp-custom-height {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.bp-banner-polyges.bp-has-image .bp-news-ticker,
.bp-banner-polyges.bp-has-image .bp-content,
.bp-banner-polyges.bp-custom-height .bp-news-ticker,
.bp-banner-polyges.bp-custom-height .bp-content {
	width: 100%;
}

.bp-banner-polyges .bp-overlay {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 15% 20%, rgba(255, 255, 255, 0.35), transparent 55%);
	pointer-events: none;
}

/* ---------- Fil d'actualités (rotation verticale, un article à la fois) ---------- */
.bp-news-ticker {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: 760px;
	margin: 0 auto 28px;
	overflow: hidden;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.85);
	border: 1px solid rgba(22, 33, 79, 0.12);
	box-shadow: 0 2px 10px rgba(22, 33, 79, 0.08);
	padding: 6px 20px 6px 6px;
}

.bp-rtl .bp-news-ticker {
	padding: 6px 6px 6px 20px;
}

/* Pastille du mot-clé (ex. "New"), gérée par langue dans les réglages. */
.bp-news-pill {
	flex: 0 0 auto;
	background: var(--bp-navy-dark);
	color: #fff;
	font-size: 11.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	padding: 4px 14px;
	border-radius: 999px;
}

.bp-news-viewport {
	position: relative;
	flex: 1;
	min-width: 0;
	height: 22px;
	overflow: hidden;
}

/* Sans pastille, on compense le padding réduit du côté de la pastille. */
.bp-news-viewport:first-child {
	margin-inline-start: 14px;
}

.bp-news-item {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--bp-navy);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	opacity: 0;
	transform: translateY(100%);
	transition: transform 0.55s cubic-bezier(0.33, 1, 0.68, 1), opacity 0.55s ease;
	pointer-events: none;
}

/* Article visible */
.bp-news-item.bp-news-active {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

/* Article qui sort par le haut (swipe up) */
.bp-news-item.bp-news-leaving {
	opacity: 0;
	transform: translateY(-100%);
}

.bp-news-item a {
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	text-overflow: ellipsis;
}

.bp-news-item a:hover {
	text-decoration: underline;
}

/* ---------- Contenu principal ---------- */
.bp-content {
	position: relative;
	z-index: 1;
	max-width: 70%;
	margin: 0 auto;
	text-align: center;
}

.bp-title {
	font-size: clamp(28px, 5vw, 100px);
	font-weight: 700;
	line-height: 1.15;
	color: var(--bp-navy);
	margin: 0 0 18px;
	letter-spacing: -0.01em;
}

.bp-description {
	font-size: clamp(15px, 2vw, 18px);
	color: var(--bp-text-muted);
	max-width: 620px;
	margin: 0 auto 30px;
	line-height: 1.6;
}

.bp-buttons {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 48px;
}

/* Neutralise le soulignement que certains thèmes appliquent aux liens. */
.bp-btn,
.bp-btn:hover,
.bp-btn:focus,
.bp-btn:active,
.bp-btn:visited {
	text-decoration: none !important;
}

.bp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 13px 26px;
	font-size: 15px;
	font-weight: 600;
	border-radius: 8px;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
	white-space: nowrap;
}

.bp-btn-primary {
	background: var(--bp-navy);
	color: #fff;
	box-shadow: 0 4px 14px rgba(22, 33, 79, 0.25);
}

.bp-btn-primary:hover {
	background: var(--bp-navy-dark);
	transform: translateY(-1px);
	color: #fff;
}

.bp-btn-outline {
	background: transparent;
	color: var(--bp-navy);
	border: 1.5px solid var(--bp-navy);
}

.bp-btn-outline:hover {
	background: rgba(22, 33, 79, 0.06);
	transform: translateY(-1px);
	color: var(--bp-navy);
}

/* ---------- Carrousel partenaires ---------- */
.bp-partners {
	margin-top: 8px;
}

.bp-partners-label {
	font-size: clamp(15px, 2vw, 18px);
	color: var(--bp-text-muted);
	letter-spacing: 0.03em;
	margin-bottom: 18px;
}

.bp-partners-carousel {
	position: relative;
	overflow: hidden;
	max-width: 960px;
	margin: 0 auto;
	mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}

.bp-partners-track {
	display: flex;
	align-items: center;
	width: max-content;
	gap: 35px;
	animation: bp-partners-scroll 22s linear infinite;
}

.bp-rtl .bp-partners-track {
	animation-name: bp-partners-scroll-rtl;
}

.bp-partners-carousel:hover .bp-partners-track {
	animation-play-state: paused;
}

.bp-partner-slide {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 56px;
	min-width: 70px;
}

.bp-partner-slide img {
	display: block;
	width: auto;
	height: auto;
	max-height: 46px;
	max-width: 180px;
	object-fit: contain;
	transition: opacity 0.2s ease, filter 0.2s ease;
}

/* Mode "Couleurs d'origine" (défaut) : logos affichés tels quels. */
.bp-partners-color .bp-partner-slide img {
	filter: none;
	opacity: 1;
}

/* Mode "Noir et blanc" : logos désaturés, couleurs restaurées au survol. */
.bp-partners-gray .bp-partner-slide img {
	filter: grayscale(100%);
	opacity: 0.7;
}

.bp-partners-gray .bp-partner-slide img:hover {
	filter: grayscale(0%);
	opacity: 1;
}

@keyframes bp-partners-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

@keyframes bp-partners-scroll-rtl {
	from { transform: translateX(0); }
	to   { transform: translateX(50%); }
}

/* ---------- Responsive ---------- */
@media (max-width: 600px) {
	.bp-banner-polyges {
		padding: 40px 16px 48px;
	}

	.bp-buttons {
		flex-direction: column;
	}

	.bp-btn {
		width: 100%;
	}

	.bp-partners-track {
		gap: 34px;
	}
}

.bp-partners-track.bp-paused {
	animation-play-state: paused;
}

/* ---------- Réduction des animations (accessibilité) ---------- */
@media (prefers-reduced-motion: reduce) {
	.bp-partners-track {
		animation: none;
	}

	.bp-news-item {
		transition: none;
	}
}
