/* =========================================================================
   Démarches administratives
   Même charte que le panneau d'affichage : rouge de la navigation,
   encre du pied de page, bordure des cartes d'actualité.
   ====================================================================== */

.dem {
	--dem-encre: #212121;
	--dem-encre-2: #4d4d4d;
	--dem-encre-3: #767676;
	--dem-surface: #ffffff;
	--dem-surface-2: #f5f5f5;
	--dem-bordure: #dfdfdf;
	--dem-accent: #e20915;
	--dem-rayon: 6px;

	color: var(--dem-encre-2);
	line-height: 1.5;
}

.dem * {
	box-sizing: border-box;
}

.dem-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* Neutralisation des styles de lien du thème et d'Oxygen, au repos
   puis, séparément, dans les états. Ne jamais remettre padding ni font
   dans le second bloc : la carte se tasserait au survol. */

.dem .dem__lien {
	display: flex !important;
	align-items: flex-start;
	gap: 12px;
	height: 100%;
	margin: 0 !important;
	padding: 1rem 1.125rem !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 1px solid var(--dem-bordure) !important;
	border-radius: var(--dem-rayon) !important;
	box-shadow: none !important;
	color: var(--dem-encre-2) !important;
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: 400 !important;
	text-decoration: none !important;
	text-transform: none !important;
	transition: border-color 0.18s ease, box-shadow 0.18s ease !important;
}

.dem .dem__lien:hover,
.dem .dem__lien:focus,
.dem .dem__lien:active {
	background-color: transparent !important;
	background-image: none !important;
	text-shadow: none !important;
	filter: none !important;
	opacity: 1 !important;
	transform: none !important;
	color: var(--dem-encre-2) !important;
	border-color: var(--dem-accent) !important;
	box-shadow: 0 2px 12px rgba(33, 33, 33, 0.09) !important;
}

.dem .dem__lien:focus-visible {
	outline: 2px solid var(--dem-accent) !important;
	outline-offset: 2px !important;
}

/* -------------------------------------------------------------- Rubriques */

.dem .dem__rubrique + .dem__rubrique {
	margin-top: 2.75rem;
}

.dem .dem__titre {
	margin: 0 0 1.25rem !important;
	padding-left: 14px;
	border-left: 5px solid var(--dem-accent);
	font-size: 1.8rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	color: var(--dem-encre) !important;
}

.dem .dem__titre + .dem__grille {
	margin-top: 1.25rem;
}

/* ----------------------------------------------------------------- Liens */

.dem .dem__grille {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.dem-colonnes-1 .dem__grille { grid-template-columns: 1fr; }
.dem-colonnes-3 .dem__grille { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

.dem .dem__item {
	margin: 0;
	padding: 0;
	list-style: none;
}

.dem .dem__item::before,
.dem .dem__item::marker {
	content: none;
}

.dem .dem__icone {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin-top: 1px;
}

.dem .dem__icone .dashicons {
	width: 22px;
	height: 22px;
	font-size: 22px;
	line-height: 1;
	color: var(--dem-accent);
}

.dem .dem__icone--emoji {
	font-size: 1.25rem;
	line-height: 1.2;
}

.dem .dem__icone--image img {
	width: 22px;
	height: 22px;
	object-fit: contain;
	display: block;
}

.dem .dem__texte {
	flex: 1;
	min-width: 0;
}

.dem .dem__libelle {
	display: block;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--dem-encre);
}

.dem .dem__lien:hover .dem__libelle,
.dem .dem__lien:focus-visible .dem__libelle {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.dem .dem__description {
	display: block;
	margin-top: 2px;
	font-size: 0.8125rem;
	color: var(--dem-encre-2);
}

.dem .dem__marqueur {
	display: inline-block;
	margin-top: 8px;
	padding: 2px 8px;
	border-radius: 3px;
	background: var(--dem-surface-2);
	font-size: 0.6875rem;
	letter-spacing: 0.02em;
	color: var(--dem-encre-3);
}

.dem .dem-chevron {
	flex: none;
	margin-top: 3px;
	color: var(--dem-accent);
	transition: transform 0.18s ease;
}

.dem .dem__lien:hover .dem-chevron,
.dem .dem__lien:focus-visible .dem-chevron {
	transform: translateX(4px);
}

/* ---------------------------------------------------------------- Mobile */

@media (max-width: 640px) {
	.dem .dem__grille { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.dem .dem__lien,
	.dem .dem-chevron {
		transition: none !important;
	}
	.dem .dem__lien:hover .dem-chevron {
		transform: none;
	}
}

@media print {
	.dem .dem__lien {
		border-color: #999 !important;
		box-shadow: none !important;
		break-inside: avoid;
	}
}
