.ri-grille-projets {
	width: 100%;
	padding-block: var(--ri-block-padding-xl);
	background-color: var(--ri-color-white);
	overflow: hidden;
}

/* ========================================
   En-tête
   ======================================== */

.ri-grille-projets .header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 48px;
}

.ri-grille-projets .titre {
	margin: 0;
	font: 700 var(--ri-size-title-h2) / 1.4 var(--ri-font-1);
	color: var(--ri-color-teal);
}

/* ========================================
   Slider pleine largeur avec débordement
   ======================================== */

.ri-grille-projets .slider-wrapper {
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.ri-grille-projets .swiper {
	width: min(var(--ri-container-width), 100% - var(--ri-container-padding) * 2);
	margin-inline: auto;
	overflow: hidden;
}

.ri-grille-projets .swiper-slide {
	height: auto;
}

/* ========================================
   Carte Projet
   ======================================== */

.ri-grille-projets .carte-projet,
.ri-archive-nos-projets .carte-projet {
	display: flex;
	flex-direction: column;
	height: 100%;
	background-color: var(--ri-color-grey-soft);
}

/* Image wrapper — image normale et logo */
.ri-grille-projets .carte-image-wrapper,
.ri-archive-nos-projets .carte-image-wrapper {
	height: 230px;
	padding: 8px 8px 0;
	background-color: var(--ri-color-grey-soft);
	overflow: hidden;
	flex-shrink: 0;
	transition: background-color var(--ri-transition-base);
}

.ri-grille-projets .carte-image-wrapper img,
.ri-archive-nos-projets .carte-image-wrapper img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ri-grille-projets .carte-image-wrapper.has-logo,
.ri-archive-nos-projets .carte-image-wrapper.has-logo {
	display: flex;
	align-items: center;
	justify-content: center;
}

.ri-grille-projets .carte-logo-img,
.ri-archive-nos-projets .carte-logo-img,
.ri-grille-projets .carte-image,
.ri-archive-nos-projets .carte-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ri-grille-projets .carte-content,
.ri-archive-nos-projets .carte-content {
	display: flex;
	flex-direction: column;
	gap: var(--ri-space-sm);
	padding: var(--ri-space-sm) var(--ri-space-sm) var(--ri-space-md);
	flex: 1;
	transition: background-color var(--ri-transition-base);
}

.ri-grille-projets .carte-meta,
.ri-archive-nos-projets .carte-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--ri-space-sm);
}

.ri-grille-projets .carte-meta .category,
.ri-archive-nos-projets .carte-meta .category {
	display: inline-flex;
	align-items: center;
	font: 700 12px/1.5 var(--ri-font-1);
	color: var(--ri-color-teal);
	background-color: var(--ri-color-yellow);
	padding: 2px 8px;
}

.ri-grille-projets .carte-meta .statut,
.ri-archive-nos-projets .carte-meta .statut {
	white-space: nowrap;
	font: 700 12px/1.5 var(--ri-font-1);
	color: var(--ri-color-teal);
	transition: color var(--ri-transition-base);
}

.ri-grille-projets .carte-titre-row,
.ri-archive-nos-projets .carte-titre-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.ri-grille-projets .carte-titre,
.ri-archive-nos-projets .carte-titre {
	margin: 0;
	font: 700 var(--ri-size-title-h2) / 1.4 var(--ri-font-1);
	color: var(--ri-color-teal);
	transition: color var(--ri-transition-base);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
}

.ri-grille-projets .carte-logo,
.ri-archive-nos-projets .carte-logo {
	flex-shrink: 0;
	display: flex;
	align-items: center;
}

.ri-grille-projets .carte-description,
.ri-archive-nos-projets .carte-description {
	margin: 0;
	font: 400 var(--ri-size-text-body) / 1.7 var(--ri-font-1);
	color: var(--ri-color-teal);
	flex: 1;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
	text-overflow: ellipsis;
	transition: color var(--ri-transition-base);
}

.ri-grille-projets .carte-link-wrapper,
.ri-archive-nos-projets .carte-link-wrapper {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 4px;
	margin-top: auto;
	padding-top: var(--ri-space-sm);
	height: 47px;
}

.ri-grille-projets .carte-link-arrow,
.ri-archive-nos-projets .carte-link-arrow {
	font: 700 var(--ri-size-text-body-sm) / 1 var(--ri-font-1);
	color: var(--ri-color-teal);
	transition: color var(--ri-transition-base);
}

.ri-grille-projets .carte-link,
.ri-archive-nos-projets .carte-link {
	font: 700 var(--ri-size-text-body-sm) / 1 var(--ri-font-1);
	color: var(--ri-color-teal);
	text-decoration: underline;
	text-decoration-color: var(--ri-color-yellow);
	text-decoration-thickness: 2px;
	text-underline-offset: 25%;
	transition: color var(--ri-transition-base), text-decoration-color var(--ri-transition-base);
}

/* ========================================
   Hover dark (bloc + archive)
   ======================================== */

.ri-grille-projets .carte-projet:hover .carte-image-wrapper,
.ri-archive-nos-projets .carte-projet:hover .carte-image-wrapper,
.ri-grille-projets .carte-projet:hover .carte-content,
.ri-archive-nos-projets .carte-projet:hover .carte-content {
	background-color: var(--ri-color-teal);
}

.ri-grille-projets .carte-projet:hover .carte-meta .statut,
.ri-grille-projets .carte-projet:hover .carte-titre,
.ri-grille-projets .carte-projet:hover .carte-description,
.ri-grille-projets .carte-projet:hover .carte-link-arrow,
.ri-grille-projets .carte-projet:hover .carte-link,
.ri-archive-nos-projets .carte-projet:hover .carte-meta .statut,
.ri-archive-nos-projets .carte-projet:hover .carte-titre,
.ri-archive-nos-projets .carte-projet:hover .carte-description,
.ri-archive-nos-projets .carte-projet:hover .carte-link-arrow,
.ri-archive-nos-projets .carte-projet:hover .carte-link {
	color: var(--ri-color-white);
}

.ri-grille-projets .carte-projet:hover .carte-link,
.ri-archive-nos-projets .carte-projet:hover .carte-link {
	text-decoration-color: var(--ri-color-white);
}

/* ========================================
   Navigation : Pagination + Lien Archive
   ======================================== */


.ri-grille-projets .archive-link-wrapper {
	margin-left: auto;
}

.ri-grille-projets .archive-link {
	white-space: nowrap;
}

.ri-grille-projets .hide-mobile {
	display: inline;
}

/* ========================================
   Responsive
   ======================================== */

@media (max-width: 782px) {

	.ri-grille-projets .carte-image-wrapper.has-logo {
		height: auto;
	}

	.ri-grille-projets .hide-mobile {
		display: none;
	}

	.ri-grille-projets .archive-link::first-letter {
		text-transform: uppercase;
	}

}

/* ========================================
   Grille statique (≤ 3 projets) + preview
   ======================================== */

.ri-grille-projets .static-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-auto-rows: 1fr;
	align-items: stretch;
	gap: 24px;
	margin-top: 0;
}

.ri-grille-projets .static-footer {
	display: flex;
	justify-content: flex-end;
	margin-top: 48px;
}

@media (max-width: 782px) {

	.ri-grille-projets .static-grid {
		grid-template-columns: 1fr;
	}
}

/* ========================================
   Placeholder
   ======================================== */

.ri-grille-projets.is-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 200px;
	padding: var(--ri-space-lg);
	background-color: var(--ri-color-grey-mid);
	border: 2px dashed var(--ri-color-teal);
	text-align: center;
	color: var(--ri-color-teal);
}
