/* ============================================================
   ORPC Wiki de procédures — styles du single (reproduction maquette)
   100 % local, aucune ressource externe. Police Inter embarquée.
   ============================================================ */

/* Police Inter (SIL Open Font License), embarquée localement — aucun appel CDN.
   Sous-ensemble latin (couvre les accents français). */
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/inter-400.woff2') format('woff2');
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/inter-600.woff2') format('woff2');
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/inter-700.woff2') format('woff2');
}

.orpc-wiki {
	--orange:    #E95420; /* surchargé par l'admin (couleur principale) */
	--orange-d:  #C8430F;
	--vert:      #4A8B3A;
	--vert-d:    #3A6E2D;
	--encre:     #1F2933;
	--txt:       #3E4C59;
	--txt-2:     #52606D;
	--discret:   #7B8794;
	--gris:      #9AA5B1;
	--bord:      #E4E7EB;
	--bord-2:    #CBD2D9;
	--fond:      #F7F8FA;
	--surface:   #FFFFFF;

	background: var(--fond);
	color: var(--encre);
	font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	min-height: 100vh;
	scroll-behavior: smooth;
}

.orpc-wiki *,
.orpc-wiki *::before,
.orpc-wiki *::after { box-sizing: border-box; }

/* --- Durcissement typographique : on réimpose l'interligne aéré de la maquette
   (1.65) que certains thèmes compressent, et la police, sur tous les éléments
   de texte. !important ciblé pour gagner sur les règles du thème actif. --- */
.orpc-wiki,
.orpc-wiki p,
.orpc-wiki li,
.orpc-wiki a,
.orpc-wiki span,
.orpc-wiki div,
.orpc-wiki h1,
.orpc-wiki h2,
.orpc-wiki h3 {
	font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}
.orpc-lead,
.orpc-fields__value,
.orpc-content p,
.orpc-content li { line-height: 1.65 !important; }
.orpc-nav__link,
.orpc-toc__link,
.orpc-card__excerpt { line-height: 1.55 !important; }
.orpc-fields__label,
.orpc-card__title { line-height: 1.4 !important; }
.orpc-title { line-height: 1.2 !important; }
.orpc-content h2 { line-height: 1.3 !important; }
.orpc-content h3 { line-height: 1.4 !important; }

.orpc-wiki ::selection { background: var(--orange); color: #fff; }
.orpc-wiki a { color: inherit; }

/* ---------- Intégration thème Divi (et autres constructeurs) ----------
   Uniquement sur nos pages wiki (body.orpc-wiki-fullwidth), on neutralise la
   largeur contrainte du thème pour laisser le layout 3 colonnes occuper toute la
   largeur, et on masque la sidebar de widgets du thème. Les sélecteurs Divi
   (#main-content, .container, #left-area, #sidebar…) sont stables ; scoping par
   la classe body → aucun impact sur le reste du site. */
body.orpc-wiki-fullwidth #et-main-area,
body.orpc-wiki-fullwidth #main-content,
body.orpc-wiki-fullwidth #main-content > .container,
body.orpc-wiki-fullwidth #content-area,
body.orpc-wiki-fullwidth #left-area {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}
body.orpc-wiki-fullwidth #sidebar { display: none !important; }
body.orpc-wiki-fullwidth .orpc-wiki { max-width: 100% !important; }

/* filet orange en haut */
.orpc-rule-top { height: 3px; background: var(--orange); }

/* ---------- Header ---------- */
.orpc-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background: var(--surface);
	border-bottom: 1px solid var(--bord);
	height: 64px;
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 0 24px;
}

.orpc-hamburger {
	display: none;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--bord);
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
	padding: 0;
	flex: none;
	color: var(--encre);
}

.orpc-brand {
	display: flex;
	align-items: center;
	gap: 11px;
	text-decoration: none;
	flex: none;
}
.orpc-brand__logo {
	width: 38px;
	height: 38px;
	border-radius: 9px;
	background: var(--orange);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-weight: 700;
	font-size: 15px;
	letter-spacing: .3px;
	flex: none;
}
.orpc-brand__img {
	width: 38px;
	height: 38px;
	border-radius: 9px;
	object-fit: contain;
	flex: none;
}
.orpc-brand__txt { line-height: 1.2; }
.orpc-brand__name {
	display: block;
	font-size: 14px;
	font-weight: 700;
	color: var(--encre);
	letter-spacing: .2px;
}
.orpc-brand__sub {
	display: block;
	font-size: 11px;
	color: var(--txt-2);
	letter-spacing: .4px;
}

.orpc-search {
	position: relative;
	flex: 1;
	display: flex;
	justify-content: flex-end;
}
.orpc-search input {
	width: 100%;
	max-width: 420px;
	height: 40px;
	padding: 0 16px 0 40px;
	border: 1px solid var(--bord);
	border-radius: 999px;
	background: var(--fond);
	font-family: inherit;
	font-size: 14px;
	color: var(--encre);
	outline: none;
	transition: border-color .15s, box-shadow .15s, background .15s;
}
.orpc-search input::placeholder { color: var(--gris); }
.orpc-search input:focus {
	border-color: var(--orange);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(233, 84, 32, .12);
}
.orpc-search__icon {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--gris);
	pointer-events: none;
}

/* ---------- Grille 3 colonnes ---------- */
.orpc-grid {
	display: grid;
	grid-template-columns: 264px minmax(0, 1fr) 248px;
	align-items: start;
}

.orpc-backdrop {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(31, 41, 51, .45);
	z-index: 55;
}

/* ---------- Sidebar gauche ---------- */
.orpc-sidebar {
	background: var(--surface);
	border-right: 1px solid var(--bord);
	position: sticky;
	top: 64px;
	height: calc(100vh - 64px);
	overflow-y: auto;
}
.orpc-sidebar__close {
	display: none;
	position: absolute;
	top: 14px;
	right: 14px;
	width: 34px;
	height: 34px;
	border: none;
	background: transparent;
	cursor: pointer;
	color: var(--txt-2);
	font-size: 22px;
	line-height: 1;
}
.orpc-nav { padding: 24px 14px 40px; }
.orpc-nav__empty { padding: 0 10px; color: var(--discret); font-size: 13px; }

.orpc-nav__cat {
	margin-bottom: 8px;
	padding: 0 10px;
	display: flex;
	align-items: center;
	gap: 9px;
}
.orpc-nav__cat:not(:first-child) { margin-top: 22px; }
.orpc-nav__dot {
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: var(--vert);
	flex: none;
}
.orpc-nav__catlabel {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.2px;
	color: var(--discret);
	text-transform: uppercase;
}

.orpc-nav__link {
	display: block;
	padding: 7px 10px 7px 27px;
	font-size: 14px;
	color: var(--txt-2);
	text-decoration: none;
	border-radius: 6px;
}
.orpc-nav__link:hover { background: var(--fond); color: var(--encre); }
.orpc-nav__link.is-active {
	padding-left: 24px;
	font-weight: 600;
	color: var(--orange-d);
	border-left: 3px solid var(--orange);
	background: rgba(233, 84, 32, .07);
	border-radius: 0 6px 6px 0;
}

/* ---------- Colonne centrale ---------- */
.orpc-main { padding: 40px 40px 80px; }
.orpc-article {
	max-width: 900px; /* zone de lecture élargie sur desktop (maquette : 768px) */
	margin: 0 auto;
	background: var(--surface);
	border: 1px solid var(--bord);
	border-radius: 12px;
	padding: 48px 56px 64px;
	box-shadow: 0 1px 2px rgba(31, 41, 51, .04);
}

.orpc-breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--discret);
	margin-bottom: 18px;
	flex-wrap: wrap;
}
.orpc-breadcrumb a { color: var(--discret); text-decoration: none; }
.orpc-breadcrumb a:hover { color: var(--orange-d); }
.orpc-breadcrumb__sep { color: var(--bord-2); }
.orpc-breadcrumb__current { color: var(--txt-2); }

.orpc-title {
	font-size: 34px;
	line-height: 1.2;
	font-weight: 700;
	letter-spacing: -.4px;
	margin: 0;
	color: var(--encre);
}
.orpc-title-rule {
	width: 64px;
	height: 3px;
	background: var(--orange);
	border-radius: 2px;
	margin: 18px 0 28px;
}
.orpc-lead {
	font-size: 16px;
	color: var(--txt);
	margin: 0 0 28px;
}

/* encadré de champs */
.orpc-fields {
	background: var(--fond);
	border: 1px solid var(--bord);
	border-radius: 10px;
	padding: 6px 24px;
	margin: 0 0 30px;
}
.orpc-fields__row {
	display: flex;
	gap: 20px;
	padding: 16px 0;
	border-bottom: 1px solid var(--bord);
}
.orpc-fields__row--center { align-items: center; }
.orpc-fields__row--last { border-bottom: none; }
.orpc-fields__label {
	width: 185px;
	flex: none;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .8px;
	text-transform: uppercase;
	color: var(--discret);
	padding-top: 2px;
}
.orpc-fields__row--center .orpc-fields__label { padding-top: 0; }
.orpc-fields__value { font-size: 15px; color: var(--txt); }
.orpc-muted { color: var(--discret); }

.orpc-pill {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 13px;
	font-weight: 600;
	padding: 4px 12px;
	border-radius: 999px;
}
.orpc-pill__dot {
	width: 7px;
	height: 7px;
	border-radius: 999px;
}

/* bouton PDF */
.orpc-pdf {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--orange);
	color: #fff;
	text-decoration: none;
	font-size: 15px;
	font-weight: 600;
	padding: 12px 22px;
	border-radius: 9px;
	margin-bottom: 40px;
	box-shadow: 0 1px 2px rgba(233, 84, 32, .3);
	transition: background .15s;
}
.orpc-pdf:hover { background: var(--orange-d); }

/* ---------- Contenu ---------- */
.orpc-content { font-size: 16px; color: var(--txt); }
.orpc-content h2 {
	scroll-margin-top: 84px;
	font-size: 23px;
	font-weight: 700;
	letter-spacing: -.2px;
	margin: 36px 0 14px;
	color: var(--encre);
}
.orpc-content h2:first-child { margin-top: 0; }
.orpc-content h3 {
	scroll-margin-top: 84px;
	font-size: 18px;
	font-weight: 600;
	margin: 22px 0 12px;
	color: var(--encre);
}
.orpc-content p { font-size: 16px; color: var(--txt); margin: 0 0 16px; }

/* Listes : on réimpose puces/numéros et l'espacement serré de la maquette,
   en défendant contre les resets du thème actif (!important ciblé). */
.orpc-content ul,
.orpc-content ol {
	font-size: 16px;
	color: var(--txt);
	margin: 0 0 24px !important;
	padding-left: 22px !important;
	list-style-position: outside !important;
}
.orpc-content ul { list-style-type: disc !important; }
.orpc-content ol { list-style-type: decimal !important; }
.orpc-content ul ul { list-style-type: circle !important; margin: 8px 0 !important; }
.orpc-content ol ol { list-style-type: lower-latin !important; margin: 8px 0 !important; }
.orpc-content li {
	display: list-item !important;
	margin: 0 0 9px !important;
	padding: 0 !important;
	font-size: 16px;
}
.orpc-content li::marker { color: var(--discret); }
.orpc-content li > ul,
.orpc-content li > ol { margin-top: 8px !important; }
.orpc-content strong { color: var(--encre); }
.orpc-content a { color: var(--orange-d); }
.orpc-content img { max-width: 100%; height: auto; border-radius: 8px; }

/* callouts — format verrouillé (!important) pour que « Important » et
   « Bon à savoir » soient rigoureusement identiques, quel que soit le thème.
   Seules les couleurs (bord gauche, fond, couleur du titre) diffèrent : elles
   restent en style inline sur chaque encadré. */
.orpc-callout {
	border-radius: 0 8px 8px 0 !important;
	padding: 16px 20px !important;
	margin: 0 0 26px !important;
}
.orpc-callout__titre {
	font-size: 13px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	margin: 0 0 4px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
.orpc-callout__corps,
.orpc-callout__corps p {
	font-size: 15px !important;
	line-height: 1.65 !important;
	color: var(--txt) !important;
}
.orpc-callout__corps p { margin: 0 !important; }
.orpc-callout__corps p + p { margin-top: 10px !important; }

/* ---------- Sommaire droite ---------- */
.orpc-toc-desktop { padding: 48px 24px 40px 0; }
.orpc-toc-desktop__inner { position: sticky; top: 88px; }
.orpc-toc-desktop__title {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--discret);
	padding: 0 12px;
	margin-bottom: 12px;
}
.orpc-toc__link {
	display: block;
	padding: 6px 12px;
	font-size: 13.5px;
	color: var(--txt-2);
	text-decoration: none;
	border-left: 2px solid var(--bord);
}
.orpc-toc__link:hover { color: var(--encre); }
.orpc-toc__link--sub {
	padding-left: 24px;
	font-size: 13px;
	color: var(--discret);
}
.orpc-toc__link.is-active {
	color: var(--orange-d);
	font-weight: 600;
	border-left-color: var(--orange);
}

/* ---------- TOC mobile (accordéon) ---------- */
.orpc-toc-mobile {
	display: none;
	border: 1px solid var(--bord);
	border-radius: 10px;
	margin-bottom: 36px;
	overflow: hidden;
}
.orpc-toc-mobile__btn {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 18px;
	background: var(--fond);
	border: none;
	cursor: pointer;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .8px;
	text-transform: uppercase;
	color: var(--txt-2);
}
.orpc-toc-mobile__chevron { transition: transform .25s ease; }
.orpc-toc-mobile__list { display: none; padding: 8px 8px 12px; }
.orpc-toc-mobile__list .orpc-toc__link { border-left: none; border-radius: 6px; }
.orpc-toc-mobile__list .orpc-toc__link--sub { padding-left: 26px; }

/* ============================================================
   Archive (accueil du wiki + page de catégorie)
   ============================================================ */
.orpc-archive {
	max-width: 1140px;
	margin: 0 auto;
	padding: 48px 40px 96px;
}

.orpc-hero { margin-bottom: 40px; }
.orpc-hero__back {
	display: inline-block;
	font-size: 13.5px;
	color: var(--txt-2);
	text-decoration: none;
	margin-bottom: 16px;
}
.orpc-hero__back:hover { color: var(--orange-d); }
.orpc-hero__title {
	font-size: 38px;
	line-height: 1.15;
	font-weight: 700;
	letter-spacing: -.5px;
	margin: 0;
	color: var(--encre);
}
.orpc-hero .orpc-title-rule { margin: 18px 0 22px; }
.orpc-hero__sub {
	font-size: 17px;
	color: var(--txt);
	margin: 0;
	max-width: 680px;
}
.orpc-hero__count {
	display: inline-block;
	margin-top: 18px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .6px;
	text-transform: uppercase;
	color: var(--discret);
	background: #fff;
	border: 1px solid var(--bord);
	border-radius: 999px;
	padding: 5px 14px;
}

.orpc-archive__empty {
	background: #fff;
	border: 1px solid var(--bord);
	border-radius: 12px;
	padding: 28px;
	color: var(--txt-2);
	text-align: center;
}

.orpc-cat-section { margin-bottom: 44px; }
.orpc-cat-head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--bord);
}
.orpc-cat-head .orpc-nav__dot { width: 9px; height: 9px; }
.orpc-cat-head__label {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--discret);
}
.orpc-cat-head__label a { color: inherit; text-decoration: none; }
.orpc-cat-head__label a:hover { color: var(--orange-d); }
.orpc-cat-head__count {
	font-size: 12px;
	font-weight: 700;
	color: var(--gris);
	background: var(--fond);
	border: 1px solid var(--bord);
	border-radius: 999px;
	min-width: 22px;
	height: 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 7px;
}

/* Sous-catégories imbriquées (archive) */
.orpc-cat-section--sub {
	margin-bottom: 30px;
	padding-left: 16px;
	border-left: 2px solid var(--bord);
}
.orpc-cat-section--sub .orpc-cat-head { padding-bottom: 8px; }
.orpc-cat-section--sub .orpc-cat-head__label { font-size: 12px; letter-spacing: 1px; }
.orpc-cat-section--sub .orpc-nav__dot { width: 7px; height: 7px; }

.orpc-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 18px;
}

.orpc-card {
	display: flex;
	flex-direction: column;
	background: var(--surface);
	border: 1px solid var(--bord);
	border-radius: 12px;
	padding: 22px 22px 20px;
	text-decoration: none;
	box-shadow: 0 1px 2px rgba(31, 41, 51, .04);
	transition: border-color .15s, box-shadow .15s, transform .15s;
}
.orpc-card:hover {
	border-color: var(--orange);
	box-shadow: 0 8px 22px rgba(31, 41, 51, .10);
	transform: translateY(-2px);
}
.orpc-card__top {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 10px;
}
.orpc-card__title {
	margin: 0;
	font-size: 17px;
	line-height: 1.35;
	font-weight: 700;
	color: var(--encre);
	letter-spacing: -.1px;
}
.orpc-card .orpc-pill { align-self: flex-start; }
.orpc-card__excerpt {
	margin: 0 0 16px;
	font-size: 14px;
	line-height: 1.55;
	color: var(--txt-2);
	flex: 1;
}
.orpc-card__more {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--orange-d);
}

@media (max-width: 680px) {
	.orpc-archive { padding: 28px 18px 64px; }
	.orpc-hero__title { font-size: 30px; }
	.orpc-cards { grid-template-columns: 1fr; }
}

/* ---------- Responsive ≤ 980px ---------- */
@media (max-width: 980px) {
	.orpc-grid { grid-template-columns: 1fr; }
	.orpc-hamburger { display: flex; }
	.orpc-sidebar {
		position: fixed;
		top: 0;
		left: 0;
		height: 100vh;
		width: 286px;
		z-index: 60;
		transform: translateX(-100%);
		transition: transform .28s ease;
		box-shadow: 0 0 50px rgba(31, 41, 51, .18);
	}
	.orpc-sidebar.is-open { transform: translateX(0); }
	.orpc-sidebar__close { display: block; }
	.orpc-toc-desktop { display: none; }
	.orpc-toc-mobile { display: block; }
	.orpc-main { padding: 24px 16px 64px; }
	.orpc-article { padding: 32px 22px 48px; }
	.orpc-title { font-size: 28px; }
	.orpc-fields { padding: 6px 18px; }
	.orpc-fields__row { flex-direction: column; gap: 6px; }
	.orpc-fields__label { width: auto; padding-top: 0; }
}
