#listeArticle {
	background-color: #277a86 !important;
	color: #ffffff !important;
	padding: 20px 20px 0px 20px !important;
	max-width: 100% !important;
	width: 100% !important;
	min-height: auto !important;
	position: relative !important;
	box-sizing: border-box !important;
}
.articles-carousel-container {
	position: relative !important;
	width: 100% !important;
	overflow: visible !important;
}
.articles-slider {
	position: relative !important;
	width: 100% !important;
	overflow: hidden !important;
}
.slide {
	width: 100% !important;
	transition: transform 0.5s ease-in-out, opacity 0.5s ease-in-out !important;
	opacity: 0 !important;
	pointer-events: none !important;
	z-index: 1 !important;
	display: none !important;
}
.slide.active {
	display: block !important;
	opacity: 1 !important;
	pointer-events: auto !important;
	z-index: 2 !important;
	transform: translateX(0) !important;
}

/* Unified slide header layout */
.slide-header {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	margin-top: 10px !important;
	margin-bottom: 25px !important;
}
.snail-page-title {
	font-size: 2.5rem !important;
	font-weight: 800 !important;
	color: #d9a938 !important;
	text-align: center !important;
	text-transform: uppercase !important;
	margin: 0 !important;
	letter-spacing: 2px !important;
}
.snail-sub-title {
	font-size: 1.625rem !important;
	font-weight: 800 !important;
	color: #d9a938 !important;
	text-align: center !important;
	text-transform: uppercase !important;
	margin: 0 0 8px 0 !important;
	letter-spacing: 1px !important;
}
.carousel-dots-header {
	display: flex !important;
	justify-content: center !important;
	gap: 12px !important;
	margin-top: 8px !important;
}

/* Snail Map Structure */
.snail-container {
	display: grid !important;
	grid-template-columns: 1.15fr 1.2fr 1.15fr !important;
	gap: 15px !important;
	align-items: start !important;
	margin-top: 10px !important;
	position: relative !important;
}
.snail-left-col,
.snail-right-col {
	display: flex !important;
	flex-direction: column !important;
	gap: 20px !important;
}
.snail-center-col {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
}

/* Mascot styles - centered below the escargot */
.snail-mascot-center {
	margin-top: -25px !important;
	display: flex !important;
	justify-content: center !important;
	width: 100% !important;
}
.snail-mascot {
	width: 130px !important;
	height: auto !important;
}

/* Snail Block styles */
.snail-block {
	border: 2px solid transparent !important;
	border-radius: 8px !important;
	padding: 12px 16px !important;
	transition: all 0.3s ease !important;
	background-color: rgba(255, 255, 255, 0.03) !important;
}
.snail-block.hover-active {
	border-color: #d9a938 !important;
	box-shadow: 0 0 12px rgba(217, 169, 56, 0.4) !important;
	background-color: rgba(255, 255, 255, 0.07) !important;
}
.snail-block.block-clickable {
	cursor: pointer !important;
}

/* Block Header */
.block-header {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	margin-bottom: 6px !important;
}
.block-num {
	width: 30px !important;
	height: 30px !important;
	border: 2px solid #ffffff !important;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-weight: bold !important;
	font-size: 15px !important;
	flex-shrink: 0 !important;
}
.block-title {
	font-size: 1.05rem !important;
	font-weight: 700 !important;
	color: #ffffff !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
}

/* Block Content */
.block-content {
	padding-left: 42px !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 6px !important;
}
.block-content.two-cols {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 15px !important;
}
.sub-col {
	display: flex !important;
	flex-direction: column !important;
	gap: 5px !important;
}
.snail-item {
	color: #e2e8f0 !important;
	text-decoration: none !important;
	font-size: 0.95rem !important;
	font-weight: 500 !important;
	transition: color 0.2s !important;
	display: block !important;
}
.snail-item:before {
	content: "- " !important;
}
.snail-item:hover {
	color: #d9a938 !important;
}

/* Snail Map Image & SVG Overlay styles */
.snail-map-wrapper {
	position: relative !important;
	width: 100% !important;
	max-width: 460px !important;
	aspect-ratio: 1 / 1 !important;
	margin: -35px auto 0 auto !important;
}
.snail-map-bg {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	pointer-events: none !important;
}
.snail-map-svg {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	z-index: 2 !important;
	overflow: visible !important;
}
.snail-node {
	cursor: pointer !important;
	transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
	transform-origin: center !important;
}
.snail-node circle {
	transition: fill 0.3s, stroke 0.3s !important;
}
.snail-node text {
	transition: fill 0.3s !important;
}
.snail-node:hover,
.snail-node.highlight {
	transform: scale(1.25) !important;
}
.snail-node:hover circle,
.snail-node.highlight circle {
	fill: #d9a938 !important;
	stroke: #ffffff !important;
}
.snail-node:hover text,
.snail-node.highlight text {
	fill: #ffffff !important;
}

/* Controls & Pagination */
.carousel-arrow {
	position: fixed !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	background: transparent !important;
	border: none !important;
	color: #d9a938 !important;
	font-size: 3.5rem !important;
	cursor: pointer !important;
	z-index: 999999 !important;
	transition: color 0.2s, transform 0.2s !important;
	padding: 10px !important;
	line-height: 1 !important;
}
.carousel-arrow:hover {
	color: #ffffff !important;
	transform: translateY(-50%) scale(1.15) !important;
}
.carousel-arrow.arrow-left {
	left: 15px !important;
}
.carousel-arrow.arrow-right {
	right: 15px !important;
}
.carousel-dot {
	width: 13px !important;
	height: 13px !important;
	border-radius: 50% !important;
	background-color: #ffffff !important;
	cursor: pointer !important;
	transition: background-color 0.3s !important;
	border: 1px solid rgba(0, 0, 0, 0.1) !important;
	display: inline-block !important;
}
.carousel-dot.active {
	background-color: #d9a938 !important;
}

/* Filter status bar styling */
.filter-status-bar {
	background-color: rgba(255, 255, 255, 0.08) !important;
	border: 1px solid rgba(217, 169, 56, 0.3) !important;
	border-radius: 6px !important;
	padding: 12px 20px !important;
	margin: 15px auto !important;
	width: 75% !important;
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	font-size: 1.1rem !important;
}
.filter-text {
	font-weight: 600 !important;
	color: #ffffff !important;
}
.clear-filter-btn {
	color: #d9a938 !important;
	border-color: #d9a938 !important;
	font-weight: bold !important;
}
.clear-filter-btn:hover {
	background-color: #d9a938 !important;
	color: #ffffff !important;
}

/* Original card lists view slide 2 styles */
#listeArticle .article-card {
	display: flex !important;
	flex-direction: column !important;
	background: #ffffff !important;
	border: 1px solid #e0e0e0 !important;
	border-radius: 8px !important;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05) !important;
	margin-bottom: 24px !important;
	overflow: hidden !important;
	width: 75% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	color: #333333 !important;
}

#listeArticle .card-top-content {
	display: flex !important;
	flex-direction: row !important;
	flex: 1 !important;
	padding: 15px !important;
	gap: 20px !important;
	align-items: flex-start !important;
	position: relative !important;
}

#listeArticle .admin-card-badge {
	position: absolute !important;
	right: 15px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	font-weight: bold !important;
	font-size: 11px !important;
	padding: 2px 6px !important;
	border-radius: 4px !important;
	z-index: 10 !important;
	background-color: #ffffff !important;
	line-height: 1.2 !important;
}
#listeArticle .admin-card-badge.badge-ap {
	border: 1px solid #d9a938 !important; /* gold border */
	color: #d9a938 !important; /* gold text */
}
#listeArticle .admin-card-badge.badge-anp {
	border: 1px solid #2563eb !important; /* blue border */
	color: #2563eb !important; /* blue text */
}
.border-blue-custom {
	border: 1.5px solid #2563eb !important;
}
.border-gold-custom {
	border: 1.5px solid #d9a938 !important;
}

#listeArticle .miniature {
	width: 250px !important;
	height: auto !important;
	max-width: none !important;
	max-height: 180px !important;
	object-fit: contain !important;
	border-radius: 0 !important;
	flex-shrink: 0 !important;
}

#listeArticle .miniature-link {
	display: block !important;
	width: auto !important;
	flex-shrink: 0 !important;
	cursor: pointer !important;
}

#listeArticle .card-middle-content {
	flex-grow: 1 !important;
}

#listeArticle .article-link {
	text-decoration: none !important;
	color: inherit !important;
	display: block !important;
}

#listeArticle .article-title {
	font-size: 1.95rem !important;
	font-weight: 700 !important;
	color: #333 !important;
	margin-bottom: 8px !important;
}

#listeArticle .article-preview {
	font-size: 1.44rem !important;
	color: #666 !important;
	margin-bottom: 0 !important;
	line-height: 1.5 !important;
}

#listeArticle .card-actions {
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
	flex-shrink: 0 !important;
	justify-content: center !important;
}

#listeArticle .card-actions .button2 {
	margin: 0 !important;
	width: 90px !important;
	text-align: center !important;
	padding: 4px 8px !important;
	font-size: 12px !important;
}

/* Gray categories banner at the bottom */
#listeArticle .card-bottom-categories {
	background-color: #f0f2f5 !important;
	border-top: 1px solid #e0e0e0 !important;
	padding: 8px 15px !important;
	font-size: 0.85rem !important;
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 10px !important;
	flex-wrap: wrap !important;
	color: #333333 !important;
	position: relative !important;
	padding-right: 70px !important;
}

#listeArticle .category-tag {
	background-color: #e2e8f0 !important;
	color: #475569 !important;
	padding: 2px 8px !important;
	border-radius: 4px !important;
	font-weight: 600 !important;
}
@media (min-width: 993px) {
	.snail-left-col {
		align-items: flex-end !important;
	}
	.snail-right-col {
		align-items: flex-start !important;
	}
	.snail-block {
		max-width: 360px !important;
		width: 100% !important;
	}
}

/* Responsive Styles */
@media (max-width: 1200px) {
	.carousel-arrow.arrow-left {
		left: 15px !important;
	}
	.carousel-arrow.arrow-right {
		right: 15px !important;
	}
}
@media (max-width: 992px) {
	.snail-container {
		grid-template-columns: 1fr !important;
		gap: 30px !important;
	}
	.snail-center-col {
		order: -1;
	}
	#listeArticle .article-card {
		width: 95% !important;
	}
	.filter-status-bar {
		width: 95% !important;
	}
	.slide-3 .table-custom-container {
		width: 95% !important;
	}
}

/* Slide 3: Table View Specific Styles */
.slide-3 .table-custom-container {
	background-color: #ffffff !important;
	border-radius: 8px !important;
	padding: 15px !important;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05) !important;
	margin-top: 20px !important;
	overflow-x: auto !important;
	min-height: 350px !important;
	width: 75% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.slide-3 .table-custom {
	width: 100% !important;
	border-collapse: collapse !important;
	color: #333333 !important;
}
.slide-3 .table-custom th {
	background-color: #308796 !important;
	color: #ffffff !important;
	font-weight: bold !important;
	text-align: left !important;
	padding: 10px 15px !important;
	font-size: 1.1rem !important;
}
.slide-3 .table-custom td {
	padding: 6px 15px !important;
	border-bottom: 1px solid #eee !important;
	font-size: 1.05rem !important;
	color: #333333 !important;
}
.slide-3 .table-custom tbody tr:hover {
	background-color: #f8fafd !important;
}
.slide-3 .article-link-public {
	color: #308796 !important;
	text-decoration: none !important;
	font-weight: 600 !important;
	font-size: 1.2rem !important;
	transition: color 0.2s !important;
}
.slide-3 .article-link-public:hover {
	color: #1f616d !important;
	text-decoration: underline !important;
}
.slide-3 .badge-category-public {
	background-color: #eef7f9 !important;
	color: #308796 !important;
	font-size: 0.85rem !important;
	font-weight: bold !important;
	padding: 4px 8px !important;
	border-radius: 4px !important;
	border: 1px solid #d2e9ec !important;
	display: inline-block !important;
}
.slide-3 .article-thumbnail {
	width: 45px !important;
	height: 30px !important;
	object-fit: cover !important;
	border-radius: 4px !important;
	border: 1px solid #dee2e6 !important;
	display: block !important;
}
.slide-3 .article-thumbnail-placeholder {
	width: 45px !important;
	height: 30px !important;
	background-color: #e9ecef !important;
	color: #adb5bd !important;
	border-radius: 4px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 1rem !important;
	border: 1px solid #dee2e6 !important;
}
.slide-3 .sortable-header-public {
	cursor: pointer !important;
	user-select: none !important;
	transition: background-color 0.2s !important;
}
.slide-3 .sortable-header-public:hover {
	background-color: #236975 !important;
}
.slide-3 .sort-icon-public {
	margin-left: 5px !important;
	font-size: 0.85em !important;
	display: inline-block !important;
}
.slide-3 .filter-dropdown {
	position: absolute !important;
	top: 100% !important;
	left: 0 !important;
	background: #ffffff !important;
	color: #333333 !important;
	border: 1px solid #dee2e6 !important;
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1) !important;
	border-radius: 6px !important;
	padding: 12px !important;
	z-index: 1050 !important;
	min-width: 220px !important;
	max-height: 250px !important;
	overflow-y: auto !important;
	text-align: left !important;
	font-weight: normal !important;
}
.slide-3 .filter-dropdown,
.slide-3 .filter-dropdown strong,
.slide-3 .filter-dropdown-item,
.slide-3 .filter-dropdown-item label {
	color: #333333 !important;
}
.slide-3 .filter-dropdown-item {
	padding: 4px 6px !important;
	display: flex !important;
	align-items: center !important;
	font-size: 0.95rem !important;
}
.slide-3 .filter-dropdown-item label {
	cursor: pointer !important;
	width: 100% !important;
	display: flex !important;
	align-items: center !important;
	margin-bottom: 0 !important;
}
.slide-3 .filter-dropdown-item input[type="checkbox"] {
	margin-right: 8px !important;
	cursor: pointer !important;
	opacity: 1 !important;
	display: inline-block !important;
}
.slide-3 .filter-dropdown-item:hover {
	background-color: #f8f9fa !important;
	border-radius: 4px !important;
}

/* ============================================================================
   Classes remplaçant les anciens attributs style= des templates.
   :is(.classe, #_#_#_) donne à la règle la spécificité de 3 id (le second sélecteur ne
   correspond à rien) : comme le style inline qu'elle remplace, elle l'emporte sur les
   règles normales des autres feuilles, mais pas sur leurs !important ni sur element.style.
   ============================================================================ */

/* article/liste.html.twig */
:is(.article-liste__article-title, #_#_#_) {
	margin-top: 0 !important;
}
:is(.article-liste__th, #_#_#_) {
	width: 70px;
}
:is(.article-liste__btn-filter-categories-public, #_#_#_) {
	text-decoration: none;
	line-height: 1;
}
:is(.article-liste__tiret, #_#_#_) {
	font-size: 0.9rem !important;
}
