.fp-grid {
	--fp-red: #c8282f;
	--fp-ink: #171717;
	--fp-blue: #245f87;
	--fp-green: #6aac4b;
	--fp-yellow: #efb33e;
	margin: 1.5rem 0;
}

.fp-cpt-container {
	max-width: 1180px;
}

.single-fp_grille .fp-cpt-container {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: clamp(2rem, 4vw, 3.5rem);
	margin-inline: auto;
	width: min(1180px, calc(100% - 40px));
}

.single-fp_grille .fp-cpt-main {
	overflow: visible;
}

.fp-cpt-article {
	min-width: 0;
	width: 100%;
}

.fp-context-sidebar {
	align-self: start;
	position: sticky;
	top: 7rem;
}

.fp-context-sidebar-inner {
	background: linear-gradient(90deg, #6aac4b 0 25%, #307baa 25% 50%, #efb33e 50% 75%, #c8282f 75% 100%) top / 100% 5px no-repeat, #fff;
	border: 1px solid #dde4e8;
	border-radius: 16px;
	box-shadow: 0 20px 50px rgba(25, 43, 54, .12);
	max-height: calc(100vh - 8.5rem);
	overflow-y: auto;
	padding-top: 5px;
	scrollbar-color: #c8d2d8 transparent;
	scrollbar-width: thin;
}

body.admin-bar .fp-context-sidebar {
	top: 9rem;
}

body.admin-bar .fp-context-sidebar-inner {
	max-height: calc(100vh - 10.5rem);
}

.fp-sidebar-section,
.fp-sidebar-cta {
	padding: 1.2rem 1.25rem;
}

.fp-sidebar-section + .fp-sidebar-section,
.fp-sidebar-section + .fp-sidebar-cta,
.fp-sidebar-cta + .fp-sidebar-section {
	border-top: 1px solid #e5eaed;
}

.fp-context-sidebar h2 {
	color: #b5262c;
	font-size: .82rem;
	font-weight: 850;
	letter-spacing: .055em;
	line-height: 1.25;
	margin: 0 0 .75rem;
	text-transform: uppercase;
}

.fp-sidebar-links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.fp-sidebar-links li + li {
	border-top: 1px solid #edf0f2;
}

.fp-sidebar-links a {
	color: #263640;
	display: block;
	font-size: .87rem;
	font-weight: 700;
	line-height: 1.35;
	padding: .66rem 1.75rem .66rem 0;
	position: relative;
	text-decoration: none;
}

.fp-sidebar-links a::after {
	align-items: center;
	background: #fbeaec;
	border-radius: 999px;
	color: #b5262c;
	content: "→";
	display: inline-flex;
	font-size: .72rem;
	height: 1.35rem;
	justify-content: center;
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1.35rem;
}

.fp-sidebar-links a:hover,
.fp-sidebar-links a:focus {
	color: #c8282f;
}

.fp-sidebar-cta {
	background: linear-gradient(145deg, #eaf4f9, #f8fbfc);
	border-left: 4px solid #245f87;
}

.fp-sidebar-cta h2 {
	color: #245f87;
	font-size: .9rem;
}

.fp-sidebar-cta p {
	color: #4d5b63;
	font-size: .86rem;
	line-height: 1.45;
	margin: 0 0 .75rem;
}

.single-fp_grille .fp-sidebar-cta a,
.single-fp_grille .fp-sidebar-cta a:visited {
	background: #c8282f;
	border-radius: 999px;
	color: #fff;
	display: inline-flex;
	font-size: .85rem;
	font-weight: 800;
	padding: .55rem .85rem;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease;
}

.single-fp_grille .fp-sidebar-cta a:hover,
.single-fp_grille .fp-sidebar-cta a:focus,
.single-fp_grille .fp-sidebar-cta a:active {
	box-shadow: 0 8px 18px rgba(200, 40, 47, .22);
	color: #fff;
	transform: translateY(-2px);
}

.fp-sidebar-join {
	background: linear-gradient(145deg, #eff7e9, #fbfdf9);
	border-left-color: #6aac4b;
}

.fp-sidebar-join h2 {
	color: #477d31;
}

.fp-sidebar-join a {
	background: #5b963f;
}

.fp-cpt-header {
	margin-bottom: .35rem;
}

.single-fp_grille .fp-cpt-header h1 {
	font-size: clamp(2.25rem, 3.1vw, 3.35rem);
	letter-spacing: -.025em;
	line-height: 1.08;
	margin-bottom: .65rem;
}

.fp-grade-summary {
	line-height: 1.5;
	margin: .85rem 0 .45rem;
}

.fp-grade-smic-summary {
	color: #554724;
	line-height: 1.5;
	margin: .45rem 0 .75rem;
}

.fp-framework-grids + .fp-grid-smic-note {
	margin-top: 1rem;
}

.fp-grid h2 {
	color: var(--fp-ink);
}

.fp-grid-badges {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	margin: 0 0 .75rem;
}

.fp-grid-badge,
.fp-grid-shared {
	border-radius: 999px;
	display: inline-flex;
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1;
	padding: .5rem .7rem;
}

.fp-grid-badge {
	background: var(--fp-blue);
	color: #fff;
}

.fp-grid-shared {
	background: #eef5e9;
	color: #3e6c29;
}

.fp-career-summary {
	background: #f2f7fa;
	border-left: 4px solid var(--fp-blue);
	color: #273846;
	font-size: .95rem;
	line-height: 1.55;
	margin: 0 0 .8rem;
	padding: .7rem .85rem;
}

.fp-smic-banner {
	align-items: flex-start;
	background: #fff8e7;
	border: 1px solid #efd18d;
	border-radius: 9px;
	color: #5b451d;
	display: flex;
	gap: .65rem;
	line-height: 1.45;
	margin: 0 0 .8rem;
	padding: .72rem .85rem;
}

.fp-smic-banner strong {
	background: var(--fp-yellow);
	border-radius: 5px;
	color: #382b11;
	flex: 0 0 auto;
	font-size: .76rem;
	letter-spacing: .02em;
	padding: .28rem .42rem;
	text-transform: uppercase;
}

.fp-grid-scroll {
	border: 1px solid #dedede;
	border-radius: 10px;
	overflow: visible;
}

.fp-grid-scroll::before {
	background: linear-gradient(90deg, var(--fp-green) 0 25%, #307baa 25% 50%, var(--fp-yellow) 50% 75%, var(--fp-red) 75% 100%);
	content: "";
	display: block;
	height: 4px;
}

.fp-grid-table {
	border-collapse: collapse;
	font-variant-numeric: tabular-nums;
	table-layout: fixed;
	width: 100%;
}

.fp-grid-table .fp-col-step {
	width: 11%;
}

.fp-grid-table .fp-col-index {
	width: 9%;
}

.fp-grid-table .fp-col-duration {
	width: 13%;
}

.fp-grid-table .fp-col-pay {
	width: 29%;
}

.fp-step-anchor .fp-label-full {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.fp-step-anchor .fp-label-compact {
	display: inline;
}

.fp-grid-table th,
.fp-grid-table td {
	border-bottom: 1px solid #e5e5e5;
	padding: .42rem .55rem;
	text-align: left;
	vertical-align: middle;
}

.fp-grid-table thead {
	background: var(--fp-blue);
	color: #fff;
}

.fp-grid-table thead th {
	background: var(--fp-blue);
	font-size: .83rem;
	line-height: 1.2;
	position: sticky;
	top: var(--fp-grid-sticky-top, 0);
	z-index: 3;
}

.fp-grid-table thead th:last-child {
	/* A solid color is required because this cell remains visible while sticky. */
	background: #3a6e93;
}

.fp-grid-table abbr {
	color: inherit;
	text-decoration: none;
}

.fp-grid-table tbody tr:nth-child(even) {
	background: #f7f7f7;
}

.fp-grid-table tbody tr.fp-row-below-smic,
.fp-grid-table tbody tr.fp-row-below-smic:nth-child(even) {
	background: #fffaf0;
}

.fp-grid-table tbody th {
	color: var(--fp-red);
}

.fp-row-special {
	box-shadow: inset 4px 0 0 var(--fp-yellow);
}

.fp-special-badge {
	background: #fff0c9;
	border-radius: 999px;
	color: #684900;
	display: table;
	font-size: .62rem;
	font-weight: 850;
	margin-top: .3rem;
	padding: .22rem .4rem;
	text-transform: uppercase;
}

.fp-special-note {
	background: #fff9e9;
	border-left: 4px solid var(--fp-yellow);
	font-size: .9rem;
	line-height: 1.5;
	margin: .8rem 0;
	padding: .75rem .9rem;
}

.fp-special-note ul {
	margin: .5rem 0 0 1.1rem;
}

.fp-step-anchor {
	color: inherit;
	text-decoration: none;
}

.fp-step-anchor:hover,
.fp-step-anchor:focus {
	text-decoration: underline;
}

.fp-grid-table tbody tr:last-child th,
.fp-grid-table tbody tr:last-child td {
	border-bottom: 0;
}

.fp-label-compact {
	display: none;
}

.fp-money {
	white-space: nowrap;
}

.fp-smic-marker {
	color: #9a6200;
	font-size: .75em;
	margin-left: .08em;
}

.fp-smic-marker a {
	color: inherit;
	text-decoration: none;
}

.fp-smic-detail {
	font-size: .72rem;
	font-weight: 500;
	margin-top: .35rem;
	position: relative;
}

.fp-smic-detail summary {
	color: var(--fp-blue);
	cursor: pointer;
	font-weight: 800;
	list-style-position: inside;
}

.fp-smic-panel {
	background: #fff;
	border: 1px solid #d7e0e5;
	border-radius: 8px;
	box-shadow: 0 12px 30px rgba(26, 45, 58, .16);
	color: var(--fp-ink);
	padding: .65rem;
	position: absolute;
	right: 0;
	text-align: left;
	top: calc(100% + .3rem);
	width: min(390px, calc(100vw - 2rem));
	z-index: 8;
}

.fp-smic-detail dl,
.fp-smic-detail p {
	margin: 0;
}

.fp-smic-detail .fp-minimum-applied {
	color: #6a4d12;
	font-weight: 700;
	padding: .25rem 0;
}

.fp-smic-detail dl > div {
	display: flex;
	gap: .8rem;
	justify-content: space-between;
	padding: .28rem 0;
}

.fp-smic-detail dd {
	font-weight: 800;
	margin: 0;
}

.fp-smic-detail .fp-smic-total {
	border-top: 1px solid #bbb;
	margin-top: .25rem;
	padding-top: .5rem;
}

.fp-smic-detail p {
	color: #5f676c;
	font-size: .9em;
	line-height: 1.4;
	padding-top: .45rem;
}

.fp-net-cell {
	font-weight: 700;
}

.fp-step-gain {
	display: block;
	font-size: .72em;
	font-weight: 800;
	line-height: 1.25;
	margin-top: .2rem;
	white-space: nowrap;
}

.fp-step-gain.is-positive {
	color: #39732d;
}

.fp-step-gain.is-negative {
	color: var(--fp-red);
}

.fp-step-gain.is-zero {
	color: #666;
}

.fp-net-inversion {
	background: #fff2f2;
	border-left: 4px solid var(--fp-red);
	color: #5d2528;
	font-size: .9rem;
	line-height: 1.5;
	margin: .8rem 0;
	padding: .7rem .85rem;
}

.fp-grid-net-note,
.fp-grid-smic-note,
.fp-grid-worktime,
.fp-grid-source,
.fp-grid-sources,
.fp-grid-date,
.fp-grid-report {
	color: #666;
	font-size: .82em;
	line-height: 1.45;
}

.fp-grid-net-note {
	background: #f7f7f7;
	border-left: 3px solid var(--fp-red);
	margin: .65rem 0 0;
	padding: .55rem .7rem;
}

.fp-grid-smic-note {
	background: #fff8e7;
	border-left: 3px solid var(--fp-yellow);
	margin: .65rem 0 0;
	padding: .55rem .7rem;
}

.fp-grid-worktime {
	font-style: italic;
	margin: .6rem 0;
}

.fp-grid-source {
	margin: .55rem 0;
}

.fp-grid-sources {
	border-top: 1px solid #e5e5e5;
	margin: .75rem 0;
	padding-top: .7rem;
}

.fp-grid-sources ul {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem .9rem;
	list-style: none;
	margin: .35rem 0 0;
	padding: 0;
}

.fp-grid-sources a {
	color: var(--fp-red);
	font-weight: 700;
}

/* Libellés de source sans espace (« pédicures-podologues/ergothérapeutes/… ») : coupure autorisée pour ne pas élargir la page sur mobile. */
.fp-grid-sources li {
	min-width: 0;
	overflow-wrap: anywhere;
}

.fp-grid-source a,
.fp-grid-legend summary,
.fp-grid-notes summary {
	color: var(--fp-red);
	font-weight: 750;
}

.fp-grid-legend,
.fp-grid-notes {
	border-bottom: 1px solid #e5e5e5;
	border-top: 1px solid #e5e5e5;
	font-size: .86rem;
	margin: .7rem 0;
	padding: .6rem 0;
}

.fp-grid-legend {
	display: none;
}

@media (max-width: 600px) {
	.fp-grid-legend {
		display: block;
	}
}

.fp-grid-legend summary,
.fp-grid-notes summary {
	cursor: pointer;
}

.fp-grid-legend p,
.fp-grid-notes p {
	margin: .55rem 0 0;
}

.fp-visually-hidden {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.fp-grid-report {
	border-top: 1px solid #e5e5e5;
	margin-top: .7rem;
	padding-top: .7rem;
}

.fp-grid-report a {
	color: var(--fp-red);
	font-weight: 700;
}

.fp-grade > h2 {
	border-left: 5px solid var(--fp-red, #c8282f);
	padding-left: .75rem;
}

.fp-public-page {
	--fp-red: #c8282f;
	--fp-ink: #171717;
	--fp-blue: #245f87;
	--fp-green: #6aac4b;
	--fp-yellow: #efb33e;
}

.fp-career-access ul,
.fp-career-transitions ul,
.fp-career-transitions ol {
	display: grid;
	gap: .7rem;
	margin: 1rem 0;
	padding-left: 1.35rem;
}

.fp-career-access li,
.fp-career-transitions li {
	padding-left: .25rem;
}

.fp-career-sources {
	white-space: nowrap;
}

.fp-career-sources a {
	font-weight: 700;
}

.fp-career-note {
	border-left: 3px solid var(--fp-blue, #276b91);
	background: #eef6fa;
	padding: .75rem 1rem;
}

.fp-breadcrumb ol,
.fp-public-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem .7rem;
}

.fp-breadcrumb ol {
	font-size: .82rem;
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
}

.fp-breadcrumb li:not(:last-child)::after {
	color: #8a9297;
	content: "/";
	margin-left: .7rem;
}

.fp-breadcrumb a,
.fp-public-meta a,
.fp-grade-link,
.fp-framework-comparison a {
	color: var(--fp-red);
	font-weight: 750;
}

.fp-public-meta {
	color: #505b62;
	font-weight: 700;
	margin: -.15rem 0 .75rem;
}

.fp-public-meta span + span::before {
	color: #9aa1a5;
	content: "·";
	margin-right: .7rem;
}

.fp-page-intro {
	color: #273846;
	font-size: 1.08rem;
	line-height: 1.65;
	margin: 0 0 1.2rem;
}

.fp-info-card p {
	margin: 0;
}

.fp-page-intro strong {
	color: var(--fp-ink);
}

.fp-inline-guarantee {
	color: #68501b;
	font-size: .92em;
}

.fp-framework-grade-grid {
	margin: 2rem 0 2.8rem;
}

.fp-framework-grade-grid > h2 {
	border-left: 5px solid var(--fp-red);
	margin-bottom: 1rem;
	padding-left: .75rem;
	scroll-margin-top: 7rem;
}

.fp-smic-explanation {
	background: #fff9e9;
	border-left: 4px solid var(--fp-yellow);
	padding: .9rem 1rem;
}

.fp-smic-explanation > h2 {
	margin-top: 0;
}

.fp-key-facts {
	margin: 1.2rem 0;
}

.fp-key-facts dl,
.fp-info-grid {
	display: grid;
	gap: .75rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fp-key-facts dl {
	margin: 0;
}

.fp-key-facts dl > div {
	background: #fff;
	border: 1px solid #dce3e7;
	border-radius: 10px;
	padding: .8rem;
}

.fp-key-facts dt {
	color: #667178;
	font-size: .78rem;
	font-weight: 750;
	text-transform: uppercase;
}

.fp-key-facts dd {
	color: var(--fp-ink);
	font-size: 1.25rem;
	font-weight: 850;
	margin: .2rem 0 0;
}

.fp-generated-section {
	margin: 1.8rem 0;
}

.fp-generated-section > h2 {
	margin-bottom: .65rem;
}

.fp-info-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fp-info-card {
	background: #fff;
	border: 1px solid #dce3e7;
	border-radius: 10px;
	box-shadow: 0 8px 22px rgba(36, 64, 80, .06);
	padding: .9rem;
}

.fp-info-card:nth-child(4n + 1) {
	border-top: 4px solid var(--fp-green);
}

.fp-info-card:nth-child(4n + 2) {
	border-top: 4px solid var(--fp-blue);
}

.fp-info-card:nth-child(4n + 3) {
	border-top: 4px solid var(--fp-yellow);
}

.fp-info-card:nth-child(4n + 4) {
	border-top: 4px solid var(--fp-red);
}

.fp-info-card h3 {
	font-size: 1rem;
	margin: 0 0 .45rem;
}

.fp-info-card a {
	color: var(--fp-red);
	display: inline-block;
	font-weight: 750;
	margin-top: .55rem;
}

.fp-grade-navigation {
	display: grid;
	gap: .75rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 1.5rem 0;
}

.fp-grade-navigation a {
	border: 1px solid #dce3e7;
	border-radius: 9px;
	color: var(--fp-ink);
	display: flex;
	flex-direction: column;
	gap: .2rem;
	padding: .75rem;
	text-decoration: none;
}

.fp-grade-navigation small,
.fp-grade-navigation span {
	color: #667178;
}

.fp-contextual-cta {
	align-items: center;
	background: var(--fp-red);
	border-radius: 10px;
	color: #fff;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin: 1.5rem 0;
	padding: 1rem;
}

.fp-contextual-cta a {
	background: #fff;
	border-radius: 7px;
	color: var(--fp-red);
	flex: 0 0 auto;
	font-weight: 800;
	padding: .55rem .7rem;
	text-decoration: none;
}

.fp-framework-comparison table {
	border-collapse: collapse;
	font-variant-numeric: tabular-nums;
	width: 100%;
}

.fp-framework-comparison th,
.fp-framework-comparison td {
	border-bottom: 1px solid #dde3e6;
	padding: .65rem .55rem;
	text-align: left;
}

.fp-framework-comparison thead {
	background: var(--fp-blue);
	color: #fff;
}

.fp-grade-accordion {
	border: 1px solid #dce3e7;
	border-radius: 10px;
	margin: .8rem 0;
	padding: .8rem;
}

.fp-grade-accordion > summary {
	color: var(--fp-ink);
	cursor: pointer;
	font-size: 1.05rem;
	font-weight: 800;
}

.fp-liability,
.fp-extinction {
	background: #f4f6f7;
	border-left: 4px solid var(--fp-red);
	font-size: .88rem;
	line-height: 1.5;
	margin: 1.2rem 0;
	padding: .8rem .9rem;
}

.fp-share {
	border-top: 1px solid #dce3e7;
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	text-align: center;
}

.fp-share h2 {
	font-size: 1.55rem;
	margin: 0 0 1rem;
	text-transform: uppercase;
}

.fp-share-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: .65rem;
	justify-content: center;
}

.fp-share-buttons a,
.fp-share-buttons button {
	align-items: center;
	background: #fff;
	border: 1px solid #cbd0d4;
	border-radius: 50%;
	color: var(--fp-ink);
	cursor: pointer;
	display: inline-flex;
	height: 48px;
	justify-content: center;
	padding: 0;
	transition: border-color 160ms ease, color 160ms ease, transform 160ms ease;
	width: 48px;
}

.fp-share-buttons a:hover,
.fp-share-buttons button:hover,
.fp-share-buttons button:focus {
	background: #fff;
	border-color: var(--fp-red);
	color: var(--fp-red);
	transform: translateY(-2px);
}

.fp-share-buttons svg {
	fill: currentColor;
	height: 22px;
	width: 22px;
}

.fp-share-buttons .fp-share-whatsapp {
	border-color: #25d366;
	color: #128c4a;
}

.fp-share-buttons button.is-copied {
	background: #eff8eb;
	border-color: var(--fp-green);
	color: #4f8b37;
}

.fp-share-feedback {
	color: #4f8b37;
	font-size: .85rem;
	min-height: 1.3em;
	margin: .5rem 0 0;
}

.fp-functional-rule {
	border-left: 4px solid var(--fp-blue, #2879a7);
	background: linear-gradient(135deg, #f4f9fc, #fff);
	padding: 1.25rem 1.4rem;
}

.fp-functional-job-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.fp-functional-job-list article {
	background: #fff;
	border: 1px solid #dbe4e9;
	border-radius: 12px;
	box-shadow: 0 8px 22px rgba(29, 58, 76, .06);
	padding: 1rem 1.1rem;
}

.fp-functional-job-list h3 {
	font-size: 1.05rem;
	margin: 0 0 .5rem;
}

@media (max-width: 600px) {
	.fp-functional-job-list {
		grid-template-columns: 1fr;
	}
	.fp-key-facts dl {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.fp-key-facts dl > div {
		padding: .55rem .35rem;
		text-align: center;
	}

	.fp-key-facts dt {
		font-size: .62rem;
	}

	.fp-key-facts dd {
		font-size: .9rem;
	}

	.fp-info-grid,
	.fp-grade-navigation {
		grid-template-columns: 1fr;
	}

	.fp-contextual-cta {
		align-items: flex-start;
		flex-direction: column;
	}

	.fp-framework-comparison thead {
		display: none;
	}

	.fp-framework-comparison table,
	.fp-framework-comparison tbody,
	.fp-framework-comparison tr,
	.fp-framework-comparison th,
	.fp-framework-comparison td {
		display: block;
		width: 100%;
	}

	.fp-framework-comparison tr {
		border: 1px solid #dce3e7;
		border-radius: 8px;
		margin-bottom: .7rem;
		padding: .65rem .75rem;
	}

	.fp-framework-comparison th,
	.fp-framework-comparison td {
		border: 0;
		padding: .22rem 0;
	}

	.fp-framework-comparison td::before {
		color: #667178;
		content: attr(data-label) " : ";
		font-weight: 700;
	}

	.fp-smic-banner {
		display: block;
		font-size: .85rem;
	}

	.fp-smic-banner strong {
		display: table;
		margin-bottom: .45rem;
	}

	.fp-grid-scroll {
		border-radius: 7px;
		overflow: visible;
	}

	.fp-grid-table {
		font-size: 1rem;
	}

	.fp-grid-table .fp-col-step {
		width: 10%;
	}

	.fp-grid-table .fp-col-index {
		width: 9%;
	}

	.fp-grid-table .fp-col-duration {
		width: 12%;
	}

	.fp-grid-table .fp-col-pay {
		width: 30%;
	}

	.fp-grid-table th,
	.fp-grid-table td {
		font-variant-numeric: tabular-nums;
		line-height: 1.1;
		padding: .34rem .1rem;
		text-align: center;
	}

	.fp-grid-table thead th {
		font-size: .75rem;
		letter-spacing: -.01em;
		text-transform: uppercase;
	}

	.fp-grid-table .fp-label-full {
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		height: 1px;
		overflow: hidden;
		position: absolute;
		white-space: nowrap;
		width: 1px;
	}

	.fp-grid-table .fp-label-compact {
		display: inline;
	}

	.fp-net-cell > span[aria-hidden="true"] {
		display: none;
	}

	.fp-grid-net-note {
		font-size: .75em;
	}

	.fp-smic-detail {
		font-size: .62rem;
	}

	.fp-step-gain {
		font-size: .68em;
		letter-spacing: -.01em;
	}

	/* 390px : « Gain : » masqué à l'écran (lu par les lecteurs d'écran), le signe et la couleur suffisent. */
	.fp-step-gain-label {
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		height: 1px;
		overflow: hidden;
		position: absolute;
		white-space: nowrap;
		width: 1px;
	}

	/* Durée courte (« 1a 2m ») sur une seule ligne. */
	.fp-duration-cell .fp-label-compact {
		white-space: nowrap;
	}

	.single-fp_grille .fp-grid-table td.fp-duration-cell {
		padding-left: .05rem;
		padding-right: .05rem;
	}

	.fp-smic-detail summary {
		line-height: 1.2;
	}

	.fp-smic-panel {
		position: fixed;
		bottom: 1rem;
		left: 1rem;
		right: 1rem;
		top: auto;
		width: auto;
	}
}

@media (max-width: 760px) {
	.single-fp_grille .fp-cpt-container {
		grid-template-columns: minmax(0, 1fr);
		width: min(100% - 28px, 1180px);
	}

	.fp-context-sidebar {
		position: static;
	}

	.fp-context-sidebar-inner,
	body.admin-bar .fp-context-sidebar-inner {
		max-height: none;
		overflow: visible;
	}

	.single-fp_grille .fp-cpt-header h1 {
		font-size: clamp(2rem, 9vw, 2.65rem);
	}
}

body.admin-bar .fp-grid-table thead th {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar .fp-grid-table thead th {
		top: 46px;
	}
}
.fp-filiere-page .fp-cpt-shell {
	width: min(1100px, calc(100% - 32px));
	margin-inline: auto;
}

.fp-filiere-metrics {
	display: flex;
	gap: 16px;
	justify-content: space-between;
	padding: 18px 20px;
	margin: 20px 0;
	border-left: 4px solid #d33a3f;
	background: #f4f7f8;
}

.fp-hub-page {
	background:
		radial-gradient(circle at 8% 8%, rgba(48, 123, 170, .09), transparent 28rem),
		linear-gradient(180deg, #f7fafb 0, #fff 38rem);
	padding: clamp(2rem, 5vw, 4.5rem) 0;
}

.fp-hub-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: clamp(2rem, 4vw, 3.5rem);
	margin-inline: auto;
	max-width: 1180px;
	width: min(1180px, calc(100% - 40px));
}

.fp-hub-article {
	min-width: 0;
}

.fp-hub-header h1 {
	font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
	font-size: clamp(2.65rem, 5vw, 4.6rem);
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: .98;
	margin: .85rem 0 1.4rem;
}

.fp-hub-top {
	align-items: start;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: .4rem .55rem;
}

.fp-hub-search-card {
	background: linear-gradient(145deg, #fff 0%, #f3f8fb 100%);
	border: 1px solid #dce5e9;
	border-radius: 14px;
	box-shadow: 0 14px 34px rgba(28, 53, 66, .1);
	overflow: hidden;
	padding: clamp(.95rem, 2.5vw, 1.25rem) clamp(1rem, 2.8vw, 1.4rem) .85rem;
	position: relative;
}

.fp-hub-search-card::before {
	background: linear-gradient(90deg, #6aac4b 0 25%, #307baa 25% 50%, #efb33e 50% 75%, #c8282f 75% 100%);
	content: "";
	height: 4px;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.fp-filiere-list > li {
	padding: 12px 0;
	border-bottom: 1px solid #dce2e5;
}

.fp-hub-search {
	display: grid;
	gap: 10px;
	font-weight: 700;
}

.fp-hub-search > span {
	color: #173f58;
	font-size: 1.03rem;
	letter-spacing: -.01em;
}

.fp-hub-search input {
	background-color: rgba(255, 255, 255, .92);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='21' height='21' viewBox='0 0 24 24' fill='none' stroke='%23245f87' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E");
	background-position: right 16px center;
	background-repeat: no-repeat;
	width: 100%;
	padding: 15px 50px 15px 17px;
	border: 1px solid #b9cdd8;
	border-radius: 12px;
	box-shadow: inset 0 1px 2px rgba(23, 63, 88, .04), 0 5px 14px rgba(36, 95, 135, .06);
	font-size: 1.05rem;
	transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.fp-hub-search input:focus {
	background-color: #fff;
	border-color: #307baa;
	box-shadow: 0 0 0 4px rgba(48, 123, 170, .14), 0 8px 20px rgba(36, 95, 135, .1);
	outline: 0;
}

[data-fp-grid-results] ul {
	margin: 0;
	padding: 8px 0;
	list-style: none;
	background: #fff;
	box-shadow: 0 12px 30px rgb(20 43 55 / 12%);
}

[data-fp-grid-results] a,
[data-fp-grid-results] li {
	display: block;
	padding: 8px 12px;
}

[data-fp-grid-results] small {
	display: block;
	color: #58656b;
}

.fp-hub-filters,
.fp-hub-popular > div {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 18px 0 0;
}

.fp-hub-complete .fp-hub-filters {
	align-items: center;
	background: #f5f8fa;
	border: 1px solid #dce5e9;
	border-radius: 10px;
	flex-wrap: nowrap;
	gap: 6px;
	margin: .9rem 0 1.1rem;
	padding: .7rem .8rem;
	overflow-x: auto;
	scrollbar-width: thin;
}

.fp-hub-filters > span {
	align-self: center;
	font-size: .88rem;
	font-weight: 750;
	margin-right: .25rem;
	white-space: nowrap;
}

.fp-filter-label-short {
	display: none;
}

.fp-hub-filters button,
.fp-hub-popular a {
	padding: 7px 12px;
	border: 1px solid #c8d1d5;
	border-radius: 999px;
	background: #fff;
}

.fp-hub-filters button {
	color: #171717;
	flex: 0 0 auto;
	min-width: 2.45rem;
	white-space: nowrap;
}

.fp-hub-filters button.is-active {
	color: #fff;
	border-color: #d33a3f;
	background: #d33a3f;
}

.fp-hub-popular {
	align-self: start;
	background: linear-gradient(135deg, #f2f8fb, #fff 70%);
	border: 1px solid #d6e4eb;
	border-radius: 14px;
	margin-top: 0;
	padding: .7rem .9rem .8rem;
}

.fp-hub-top .fp-hub-popular > h2 {
	font-size: clamp(1.45rem, 2.4vw, 1.75rem);
	margin: 0 0 .5rem !important;
}

.fp-popular-label-short {
	display: none;
}

.fp-hub-popular a {
	align-items: center;
	color: #1c4f6d;
	display: inline-flex;
	font-size: .88rem;
	font-weight: 750;
	gap: .5rem;
	justify-content: space-between;
	padding-inline: 10px;
	text-decoration: none;
	transition: border-color .18s ease, box-shadow .18s ease, color .18s ease, transform .18s ease;
}

.fp-hub-popular > div {
	align-items: flex-start;
	margin-top: 0;
}

.fp-hub-popular-items > .is-popular-hidden {
	display: none !important;
}

.fp-hub-popular a span {
	color: #c8282f;
}

.fp-hub-popular a:hover,
.fp-hub-popular a:focus {
	border-color: #307baa;
	box-shadow: 0 7px 16px rgba(32, 92, 128, .12);
	color: #c8282f;
	transform: translateY(-2px);
}

.fp-hub-point {
	align-items: center;
	background: linear-gradient(135deg, #174a6b, #2f789e);
	border-radius: 12px;
	box-shadow: 0 10px 24px rgba(23, 74, 107, .16);
	color: #fff;
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: .8rem;
	margin: 0 0 .35rem;
	overflow: hidden;
	padding: .9rem 1rem;
	position: relative;
}

.fp-hub-point::before {
	background: linear-gradient(90deg, #6aac4b 0 25%, #307baa 25% 50%, #efb33e 50% 75%, #c8282f 75% 100%);
	content: "";
	height: 5px;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.fp-hub-point-index {
	align-items: center;
	background: #fff;
	border-radius: 50%;
	color: #245f87;
	display: flex;
	font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
	font-size: 1.5rem;
	font-weight: 800;
	height: 2.55rem;
	justify-content: center;
	width: 2.55rem;
}

.fp-hub-point-label,
.fp-hub-point small,
.fp-hub-point-status span {
	display: block;
}

.fp-hub-point-label {
	font-size: .77rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.fp-hub-point > div > strong {
	display: inline-block;
	font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
	font-size: 1.65rem;
	line-height: 1;
	margin: .12rem .3rem .12rem 0;
}

.fp-hub-point-status {
	border-left: 1px solid rgba(255, 255, 255, .32);
	display: flex;
	flex-direction: column;
	gap: .35rem;
	padding-left: 1rem;
}

.fp-hub-point-status strong {
	color: #ffd475;
}

.fp-hub-point a,
.fp-hub-point a:visited {
	background: rgba(255, 255, 255, .13);
	border: 1px solid rgba(255, 255, 255, .42);
	border-radius: 999px;
	color: #fff !important;
	display: inline-flex;
	font-size: .8rem;
	font-weight: 800;
	padding: .35rem .65rem;
	text-decoration-color: rgba(255, 255, 255, .7);
}

.fp-hub-point a:hover,
.fp-hub-point a:focus {
	background: #fff;
	color: #174a6b !important;
	text-decoration: none;
}

.fp-hub-complete {
	background: #fff;
	border: 1px solid #dce5e9;
	border-radius: 14px;
	box-shadow: 0 14px 34px rgba(28, 53, 66, .08);
	margin: .35rem 0 2rem;
	padding: clamp(.85rem, 2vw, 1.15rem);
}

.fp-hub-complete > h2 {
	margin: 0 0 .65rem !important;
}

.fp-hub-directory-help {
	background: #eef6fa;
	border-left: 4px solid #307baa;
	color: #344c59;
	font-size: .95rem;
	padding: .75rem .9rem;
}

.fp-hub-filiere {
	border: 1px solid #d8e2e7;
	border-radius: 12px;
	box-shadow: 0 7px 20px rgba(34, 65, 78, .05);
	margin-top: .8rem;
	overflow: hidden;
}

.fp-hub-filiere summary {
	align-items: center;
	background: linear-gradient(90deg, #f4f9fb, #fff);
	border-left: 5px solid #307baa;
	cursor: pointer;
	display: flex;
	font-size: 1.16rem;
	font-weight: 800;
	gap: .8rem;
	justify-content: space-between;
	list-style: none;
	padding: .95rem 1rem;
}

.fp-hub-filiere summary::-webkit-details-marker {
	display: none;
}

.fp-hub-filiere summary::after {
	color: #c8282f;
	content: "+";
	font-size: 1.45rem;
	line-height: 1;
	margin-left: auto;
}

.fp-hub-filiere[open] summary::after {
	content: "−";
}

.fp-hub-filiere summary small {
	color: #64747c;
	font-size: .76rem;
	font-weight: 650;
	margin-left: auto;
}

.fp-hub-filiere-content {
	background: #f9fbfc;
	border-top: 1px solid #dfe7eb;
	padding: 1rem;
}

.fp-hub-category-group[hidden] {
	display: none !important;
}

.fp-hub-category-group + .fp-hub-category-group {
	border-top: 1px solid #dfe7eb;
	margin-top: 1.2rem;
	padding-top: 1rem;
}

.fp-hub-category-group > h3 {
	color: #245f87;
	font-size: 1rem;
	letter-spacing: .06em;
	margin: 0 0 .85rem;
	text-transform: uppercase;
}

.fp-hub-framework-list,
.fp-hub-grade-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.fp-hub-framework-list {
	display: grid;
	gap: .8rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fp-hub-framework {
	background: #fff;
	border: 1px solid #dce5e9;
	border-radius: 10px;
	box-shadow: 0 5px 14px rgba(34, 65, 78, .04);
	padding: .8rem .9rem;
}

.fp-hub-framework h4 {
	font-family: inherit;
	font-size: 1.04rem;
	line-height: 1.35;
	margin: 0 0 .6rem;
}

.fp-hub-complete .fp-hub-framework h4 > a {
	align-items: flex-start;
	color: #164e70;
	display: flex;
	gap: .6rem;
	justify-content: space-between;
	text-decoration: none;
}

.fp-hub-framework h4 > a span {
	color: #c8282f;
	flex: 0 0 auto;
}

.fp-hub-complete .fp-hub-framework h4 > a:hover,
.fp-hub-complete .fp-hub-framework h4 > a:focus {
	color: #c8282f;
}

.fp-hub-grade-list li {
	border-top: 1px solid #edf1f3;
	color: #596970;
	font-size: .94rem;
	line-height: 1.45;
	padding: .56rem 0;
}

.fp-hub-complete .fp-hub-grade-list a {
	color: #303d43;
	display: block;
	font-weight: 600;
	text-decoration: none;
}

.fp-hub-complete .fp-hub-grade-list a:hover,
.fp-hub-complete .fp-hub-grade-list a:focus {
	color: #c8282f;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.fp-hub-grade-list em {
	color: #8a6413;
	font-size: .82rem;
}

.fp-hub-sidebar-guide ol {
	color: #40535d;
	font-size: .84rem;
	line-height: 1.45;
	margin: 0 0 .8rem;
	padding-left: 1.15rem;
}

.fp-hub-sidebar-guide li + li {
	margin-top: .3rem;
}

.fp-hub-sidebar .fp-sidebar-cta a,
.fp-hub-sidebar .fp-sidebar-cta a:visited {
	background: #c8282f;
	border-radius: 999px;
	color: #fff;
	display: inline-flex;
	font-size: .85rem;
	font-weight: 800;
	padding: .55rem .85rem;
	text-decoration: none;
}

.fp-hub-sidebar .fp-sidebar-cta a:hover,
.fp-hub-sidebar .fp-sidebar-cta a:focus,
.fp-hub-sidebar .fp-sidebar-cta a:active {
	box-shadow: 0 8px 18px rgba(200, 40, 47, .22);
	color: #fff;
	transform: translateY(-2px);
}

@media (max-width: 900px) {
	.fp-hub-layout {
		grid-template-columns: 1fr;
	}

	.fp-hub-sidebar {
		position: static;
	}

	.fp-hub-sidebar .fp-context-sidebar-inner {
		max-height: none;
		position: static;
	}
}

@media (max-width: 600px) {
	.fp-hub-page {
		padding-top: 1.4rem;
	}

	.fp-hub-top {
		grid-template-columns: minmax(0, 1fr);
		gap: .55rem;
	}

	.fp-hub-layout {
		width: min(100% - 24px, 1180px);
	}

	.fp-hub-header h1 {
		font-size: clamp(2.35rem, 13vw, 3.2rem);
	}

	.fp-hub-point {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.fp-hub-point-status {
		border-left: 0;
		border-top: 1px solid rgba(255, 255, 255, .32);
		grid-column: 1 / -1;
		padding: .8rem 0 0;
	}

	.fp-hub-filters button span {
		display: none;
	}

	.fp-filter-label-long {
		display: none;
	}

	.fp-filter-label-short {
		display: inline;
	}

	.fp-hub-complete .fp-hub-filters {
		gap: 4px;
		padding: .55rem .6rem;
	}

	.fp-hub-filters > span {
		font-size: .78rem;
		margin-right: 0;
	}

	.fp-hub-filters button {
		font-size: .78rem;
		padding: 6px 9px;
	}

	.fp-hub-framework-list {
		grid-template-columns: 1fr;
	}

	.fp-hub-filiere summary {
		font-size: 1rem;
		padding: .85rem .8rem;
	}

	.fp-hub-filiere summary small {
		font-size: .68rem;
	}

	.fp-hub-filiere-content {
		padding: .75rem;
	}

	.fp-hub-popular-items > a:not([data-fp-popular-mobile="1"]) {
		display: none !important;
	}

	.fp-hub-popular-items {
		justify-content: space-between;
	}

	.fp-popular-label-full {
		display: none;
	}

	.fp-popular-label-short {
		display: inline;
	}
}

/* Silo hub/child pages: keep 2-col until 760px to match grilles sticky behavior */
@media (min-width: 761px) and (max-width: 1024px) {
	.fp-silo-hub.fsut62-silo-layout {
		grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
	}
}


/* Silo hub/child pages: CTA button style matching grilles sidebar */
.fp-silo-hub .fp-sidebar-cta a,
.fp-silo-hub .fp-sidebar-cta a:visited {
	background: #c8282f;
	border-radius: 999px;
	color: #fff;
	display: inline-flex;
	font-size: .85rem;
	font-weight: 800;
	padding: .55rem .85rem;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease;
}

.fp-silo-hub .fp-sidebar-cta a:hover,
.fp-silo-hub .fp-sidebar-cta a:focus,
.fp-silo-hub .fp-sidebar-cta a:active {
	box-shadow: 0 8px 18px rgba(200, 40, 47, .22);
	color: #fff;
	transform: translateY(-2px);
}

.fp-silo-hub .fp-sidebar-join a,
.fp-silo-hub .fp-sidebar-join a:visited {
	background: #5b963f;
}

.fp-silo-hub .fp-sidebar-join a:hover,
.fp-silo-hub .fp-sidebar-join a:focus,
.fp-silo-hub .fp-sidebar-join a:active {
	box-shadow: 0 8px 18px rgba(91, 150, 63, .22);
}

/* Grilles sans garantie SMIC : colonnes index plus larges, pay plus étroites */
.fp-grid-no-smic .fp-col-index {
	width: 13%;
}

.fp-grid-no-smic .fp-col-pay {
	width: 23%;
}

@media (max-width: 600px) {
	.fp-grid-no-smic .fp-col-index {
		width: 13%;
	}

	.fp-grid-no-smic .fp-col-pay {
		width: 22%;
	}
}

.fp-grid-alert-badge {
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1;
	padding: .5rem .8rem;
	background: #d11242;
	color: #fff !important;
	text-decoration: none !important;
	box-shadow: 0 2px 4px rgba(209, 18, 66, 0.3);
	transition: all 0.3s ease;
}
.fp-grid-alert-badge:hover {
	background: #a10d32;
	transform: translateY(-1px);
	box-shadow: 0 4px 6px rgba(209, 18, 66, 0.4);
}
.fp-grid-alert-badge svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
	animation: fp-ring 5s ease-in-out infinite;
	transform-origin: 50% 0;
}
@keyframes fp-ring {
	0%, 100% { transform: rotate(0deg); }
	5% { transform: rotate(15deg); }
	10% { transform: rotate(-10deg); }
	15% { transform: rotate(5deg); }
	20% { transform: rotate(-5deg); }
	25% { transform: rotate(0deg); }
}

.fp-sticky-alert-bar {
	position: fixed;
	bottom: -100px;
	left: 0;
	right: 0;
	background: #d11242;
	color: #ffffff !important;
	text-decoration: none !important;
	padding: 12px 20px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	font-size: 1rem;
	box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.15);
	z-index: 9999;
	transition: bottom 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.fp-sticky-alert-bar.is-visible {
	bottom: 0;
}
.fp-sticky-alert-bar svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
	animation: fp-ring 5s ease-in-out infinite;
	transform-origin: 50% 0;
}
.fp-sticky-alert-bar:hover {
	background: #a10d32;
}
@media (min-width: 768px) {
	.fp-sticky-alert-bar {
		left: auto;
		right: 20px;
		bottom: -100px;
		border-radius: 999px;
		padding: 12px 24px;
		box-shadow: 0 4px 15px rgba(209, 18, 66, 0.3);
	}
	.fp-sticky-alert-bar.is-visible {
		bottom: 20px;
	}
}

.fp-sticky-text-short {
	display: none;
}
.fp-sticky-text-long {
	display: inline;
}

@media (min-width: 768px) {
	.fp-sticky-text-short {
		display: inline;
	}
	.fp-sticky-text-long {
		display: none;
	}
}

.fp-net-simulator {
	background: #fff;
	border: 1px solid #dce3e7;
	border-radius: 12px;
	box-shadow: 0 8px 22px rgba(36, 64, 80, .06);
	padding: 1.2rem 1.3rem 1.4rem;
}

.fp-net-simulator > h2 {
	margin-top: 0;
}

.fp-simulator-form {
	align-items: end;
	display: flex;
	flex-wrap: wrap;
	gap: .9rem 1rem;
}

.fp-simulator-form label {
	color: var(--fp-ink);
	display: flex;
	flex-direction: column;
	font-size: .85rem;
	font-weight: 600;
	gap: .3rem;
}

.fp-simulator-form select,
.fp-simulator-form input[type="number"] {
	border: 1px solid #cbd0d4;
	border-radius: 8px;
	font-size: 1rem;
	min-width: 9rem;
	padding: .5rem .6rem;
}

.fp-simulator-form input[type="number"] {
	min-width: 6rem;
}

.fp-simulator-submit {
	background: var(--fp-blue);
	border: none;
	border-radius: 8px;
	color: #fff;
	cursor: pointer;
	font-weight: 700;
	padding: .6rem 1.1rem;
	transition: background 160ms ease, transform 160ms ease;
}

.fp-simulator-submit:hover {
	background: #1c4a6a;
	transform: translateY(-1px);
}

.fp-simulator-submit:disabled {
	cursor: wait;
	opacity: .65;
	transform: none;
}

.fp-simulator-result {
	color: var(--fp-ink);
	font-size: 1.15rem;
	margin-top: 1rem;
	min-height: 1.6em;
}

.fp-simulator-result strong {
	color: var(--fp-green);
	font-size: 1.4rem;
}

.fp-simulator-result span {
	color: #5c6b73;
	font-size: .95rem;
}

.fp-simulator-result.is-error {
	color: var(--fp-red);
	font-size: .95rem;
}

.fp-simulator-disclaimer {
	color: #5c6b73;
	font-size: .78rem;
	margin: .8rem 0 0;
}

/* --- Compaction du haut de page (audit du 15/08/2026) ---------------------
   L'écart entre le H1 et la ligne filière/catégorie cumulait 44 px issus de
   quatre conteneurs imbriqués (marge du H1, remplissage et marge de l'en-tête
   d'article du thème, remplissage du bloc de contenu). Ramené à un espacement
   unique porté par le H1, pour que le tableau remonte au-dessus du pli mobile.
   Portée limitée au CPT : le thème n'est pas modifié. */
/* 38 px de remplissage haut sur le conteneur principal, avant même le fil
   d'Ariane : c'est le tout premier espace perdu de la page. */
.single-fp_grille .fp-cpt-main {
	padding-top: 12px;
}

.single-fp_grille .fp-cpt-header {
	margin-bottom: 0;
	padding-bottom: 0;
}

.single-fp_grille .fp-cpt-header h1 {
	margin-bottom: 1.05rem;
}

.single-fp_grille .fp-cpt-content {
	padding-top: 0;
}

/* La ligne filière/catégorie héritait de la taille du corps de texte (18 px) :
   c'est une métadonnée de contexte, pas du contenu à lire. */
.single-fp_grille .fp-public-meta {
	font-size: .92rem;
	margin: 0 0 .55rem;
}

/* Le titre de chaque grade sur les pages cadre était à 31 px, contre 33,75 px
   pour le H1 : deux niveaux de titre quasi identiques, hiérarchie illisible. */
/* Pas de taille fixe : le thème dimensionne ses H2 de façon fluide (42 px en grand
   écran, 33,6 px vers 840 px). Une valeur figée rendait les titres de grille plus
   gros que les autres sections sur écran moyen, et à égalité avec le H1. */
.single-fp_grille .fp-framework-grade-grid > h2 {
	line-height: 1.15;
	margin-top: 1.5rem;
}

.single-fp_grille .fp-framework-grids > .fp-framework-grade-grid:first-child > h2 {
	margin-top: .3rem;
}

/* Bandeau de chiffres clés placé juste sous le titre, à la place de la phrase
   d'introduction : répond immédiatement à la question posée par l'internaute
   et coûte deux fois moins de hauteur. */
.fp-quick-stats {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem 1.6rem;
	margin: 0 0 1rem;
}

.fp-quick-stats > div {
	display: flex;
	flex-direction: column;
}

.fp-quick-stats dt {
	color: #667178;
	font-size: .72rem;
	font-weight: 750;
	letter-spacing: .02em;
	text-transform: uppercase;
}

.fp-quick-stats dd {
	color: var(--fp-ink);
	font-size: 1.08rem;
	font-weight: 850;
	font-variant-numeric: tabular-nums;
	line-height: 1.25;
	margin: 0;
}

/* --- Reclassement lors d'un avancement de grade (v1.27.27) ---------------- */
.fp-reclassement {
	background: #fff;
	border: 1px solid #dce3e7;
	border-left: 4px solid var(--fp-blue);
	border-radius: 10px;
	margin: 1.3rem 0 0;
	padding: 1.1rem 1.2rem 1.2rem;
}

.fp-reclassement > h3 {
	font-size: 1.12rem;
	margin: 0 0 .8rem;
}

.fp-reclassement-form label {
	color: var(--fp-ink);
	display: flex;
	flex-direction: column;
	font-size: .85rem;
	font-weight: 700;
	gap: .3rem;
	max-width: 22rem;
}

.fp-reclassement-form select {
	border: 1px solid #cbd0d4;
	border-radius: 8px;
	font-size: 1rem;
	padding: .5rem .6rem;
}

.fp-reclassement-result {
	font-size: 1rem;
	line-height: 1.55;
	margin: .9rem 0 0;
	min-height: 1.5em;
}

.fp-reclassement-result strong {
	color: var(--fp-blue);
}

.fp-reclassement-result .fp-recl-neutre {
	color: #8a5a12;
	display: block;
	font-size: .93rem;
	margin-top: .25rem;
}

.fp-reclassement-result .fp-recl-hausse {
	color: #4f8b37;
	display: block;
	font-size: .93rem;
	font-weight: 700;
	margin-top: .25rem;
}

.fp-reclassement-table {
	margin-top: 1rem;
}

.fp-reclassement-table summary {
	cursor: pointer;
	font-size: .88rem;
	font-weight: 700;
	color: var(--fp-blue);
}

.fp-reclassement-table table {
	border-collapse: collapse;
	font-size: .88rem;
	margin-top: .7rem;
	width: 100%;
}

.fp-reclassement-table th,
.fp-reclassement-table td {
	border-bottom: 1px solid #e6ebee;
	padding: .4rem .55rem;
	text-align: left;
}

.fp-reclassement-table th {
	color: #667178;
	font-size: .74rem;
	hyphens: auto;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.fp-reclassement-source {
	color: #5c6b73;
	font-size: .78rem;
	margin: .9rem 0 0;
}

/* --- Reprise d'interface (v1.27.33) ------------------------------------- */

/* Questions de FAQ : elles rivalisaient visuellement avec les titres de section. */
.single-fp_grille .fp-grade-questions h3 {
	font-size: 1.05rem;
	line-height: 1.3;
	margin: 1.15rem 0 .35rem;
}

/* Chiffres clés : bandeau en cartes, aux couleurs de la charte. */
.fp-key-figures .fp-quick-stats {
	display: grid;
	gap: .6rem;
	grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
	margin: 0;
}

.fp-key-figures .fp-quick-stats > div {
	background: #fff;
	border: 1px solid #dce3e7;
	border-radius: 10px;
	border-top: 4px solid var(--fp-blue);
	padding: .7rem .85rem;
}

.fp-key-figures .fp-quick-stats > div:nth-child(2) { border-top-color: var(--fp-green); }
.fp-key-figures .fp-quick-stats > div:nth-child(3) { border-top-color: var(--fp-yellow); }
.fp-key-figures .fp-quick-stats > div:nth-child(4) { border-top-color: var(--fp-red); }

.fp-key-figures .fp-quick-stats dd {
	font-size: 1.22rem;
}

/* Simulateur : le titre est désormais hors du cadre, le cadre porte la couleur. */
.fp-simulator-block > h2 {
	margin-bottom: .7rem;
}

.fp-net-simulator {
	background: linear-gradient(180deg, #f4f9fc 0%, #fff 55%);
	border: 1px solid #cfe0ea;
	border-radius: 14px;
	box-shadow: 0 10px 26px rgba(36, 95, 135, .08);
	padding: 1.15rem 1.2rem 1.25rem;
}

.fp-net-simulator .fp-simulator-form {
	align-items: end;
	display: grid;
	gap: .8rem .9rem;
	grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));
}

/* Le libellé de grade est long : il occupe toute la largeur et ne déborde plus. */
.fp-net-simulator .fp-simulator-form label.fp-simulator-wide {
	grid-column: 1 / -1;
}

.fp-net-simulator .fp-simulator-form label {
	min-width: 0;
}

.fp-net-simulator .fp-simulator-form select,
.fp-net-simulator .fp-simulator-form input[type="number"] {
	max-width: 100%;
	min-width: 0;
	width: 100%;
}

.fp-net-simulator .fp-simulator-submit {
	grid-column: 1 / -1;
	justify-self: start;
	padding: .62rem 1.4rem;
}

.fp-net-simulator .fp-simulator-result:not(:empty) {
	background: #eef7ea;
	border-left: 4px solid var(--fp-green);
	border-radius: 8px;
	margin-top: 1rem;
	padding: .7rem .85rem;
}

.fp-net-simulator .fp-simulator-result.is-error:not(:empty) {
	background: #fdeeee;
	border-left-color: var(--fp-red);
}

/* Reclassement : titre sorti du cadre, encart allégé. */
.fp-reclassement-block {
	margin: 1.6rem 0 0;
}

.fp-reclassement-block > h2 {
	margin-bottom: .7rem;
}

.fp-reclassement {
	border-left-width: 4px;
	margin: 0;
}

/* Comparatif des grades : lisible en un coup d'œil. */
.fp-framework-comparison table {
	border-collapse: collapse;
	width: 100%;
}

.fp-framework-comparison thead th {
	background: var(--fp-blue);
	color: #fff;
	font-size: .78rem;
	letter-spacing: .02em;
	text-transform: uppercase;
}

.fp-framework-comparison th,
.fp-framework-comparison td {
	border-bottom: 1px solid #e5eaed;
	padding: .5rem .6rem;
}

.fp-framework-comparison tbody tr:nth-child(even) {
	background: #f6f9fb;
}

.fp-framework-comparison tbody td:first-child {
	font-weight: 750;
}

.fp-reclassement-explication {
	border-top: 1px solid #e6ebee;
	color: #4a5a63;
	font-size: .88rem;
	line-height: 1.5;
	margin: 1rem 0 0;
	padding-top: .8rem;
}

/* CTA de bas de page : plus sobre que celui qui suit les grilles, pour ne pas répéter
   visuellement le même appel deux fois sur une page déjà longue. */
.fp-contextual-cta.fp-cta-bas {
	background: #f4f7f9;
	border: 1px solid #d7e0e5;
	color: var(--fp-ink);
}

.fp-contextual-cta.fp-cta-bas a {
	background: var(--fp-red);
	color: #fff;
}

/* --- Ajustements v1.27.35 ------------------------------------------------ */

/* Questions de FAQ : +15 %, elles étaient devenues un peu trop discrètes. */
.single-fp_grille .fp-grade-questions h3 {
	font-size: 1.21rem;
}

/* Encart « garantie SMIC » : le thème imposait une marge haute au titre malgré
   la règle existante, d'où un vide important en haut de l'encadré jaune. */
.single-fp_grille .fp-smic-explanation {
	padding: .8rem 1rem .85rem;
}

.single-fp_grille .fp-smic-explanation > h2 {
	margin-top: 0;
	margin-bottom: .45rem;
}

.single-fp_grille .fp-smic-explanation > p:last-child {
	margin-bottom: 0;
}

/* Le libellé du sélecteur de reclassement était bridé à 22rem et cassait sur
   deux lignes alors que la place ne manque pas sur grand écran. */
.fp-reclassement-form label {
	max-width: none;
}

.fp-reclassement-form select {
	max-width: 22rem;
	width: 100%;
}

/* Simulateur : hiérarchie plus nette entre les champs, le bouton et le résultat. */
.fp-net-simulator {
	background: linear-gradient(180deg, #f2f8fc 0%, #fff 60%);
	border-color: #c7dcea;
	border-radius: 16px;
	padding: 1.3rem 1.35rem 1.4rem;
}

.fp-net-simulator .fp-simulator-form label {
	color: #3d4d57;
	font-size: .78rem;
	letter-spacing: .02em;
	text-transform: uppercase;
}

.fp-net-simulator .fp-simulator-form select,
.fp-net-simulator .fp-simulator-form input[type="number"] {
	background: #fff;
	border: 1px solid #c2d3de;
	border-radius: 9px;
	padding: .58rem .65rem;
	transition: border-color 140ms ease, box-shadow 140ms ease;
}

.fp-net-simulator .fp-simulator-form select:focus,
.fp-net-simulator .fp-simulator-form input[type="number"]:focus {
	border-color: var(--fp-blue);
	box-shadow: 0 0 0 3px rgba(36, 95, 135, .14);
	outline: none;
}

.fp-net-simulator .fp-simulator-submit {
	border-radius: 9px;
	box-shadow: 0 6px 14px rgba(36, 95, 135, .22);
	font-size: 1rem;
	letter-spacing: .01em;
}

.fp-net-simulator .fp-simulator-result:not(:empty) {
	align-items: baseline;
	border-left-width: 5px;
	border-radius: 10px;
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	padding: .85rem 1rem;
}

.fp-net-simulator .fp-simulator-result strong {
	font-size: 1.65rem;
	line-height: 1.1;
}

.fp-net-simulator .fp-simulator-disclaimer {
	border-top: 1px solid #e2ebf1;
	margin-top: 1rem;
	padding-top: .7rem;
}

/* --- Ajustements v1.27.36 ------------------------------------------------ */

/* Lignes de grille : encore resserrées, et le lien « Détail garantie SMIC »
   collé au montant auquel il se rapporte plutôt que flottant sous la cellule. */
.single-fp_grille .fp-grid-table th,
.single-fp_grille .fp-grid-table td {
	line-height: 1.25;
	padding: .26rem .5rem;
}

.single-fp_grille .fp-smic-detail {
	line-height: 1.15;
	margin-top: 0;
}

.single-fp_grille .fp-smic-detail summary {
	padding: 0;
}

/* Le gain d'un échelon à l'autre est une mention secondaire : elle ne doit pas
   ajouter une pleine interligne à chaque ligne du tableau. */
.single-fp_grille .fp-step-gain {
	display: block;
	line-height: 1.15;
	margin-top: .05rem;
}

/* Détail des composantes du brut sous le résultat du simulateur. */
.fp-simulator-detail {
	border-top: 1px solid #cfe3d3;
	flex-basis: 100%;
	list-style: none;
	margin: .6rem 0 0;
	padding: .55rem 0 0;
}

.fp-simulator-detail li {
	color: #3d4d57;
	display: flex;
	font-size: .88rem;
	gap: 1rem;
	justify-content: space-between;
	padding: .18rem 0;
}

.fp-simulator-detail li span:last-child {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	white-space: nowrap;
}

/* --- Densité verticale v1.27.39 ------------------------------------------
   Les titres de section héritaient d'une marge haute de 42 px, à quoi s'ajoutait
   la marge du conteneur : sur une page qui compte une vingtaine de sections, le
   cumul pesait lourd. Les titres de grille gardent leur propre marge, réglée
   séparément et déjà serrée. */
.single-fp_grille .fp-generated-section > h2,
.single-fp_grille .fp-reclassement-block > h2 {
	margin-top: 1.6rem;
}

.single-fp_grille .fp-generated-section {
	margin-top: 1.4rem;
}

/* Interligne légèrement resserré sur le contenu généré, sans descendre au point
   de gêner la lecture d'un texte administratif dense. */
.single-fp_grille .fp-public-page p,
.single-fp_grille .fp-public-page li,
.single-fp_grille .fp-public-page dd {
	line-height: 1.6;
}

/* Simulateurs posés par shortcode sur une page rédigée à la main.
   La palette n'était déclarée que sur .fp-grid et .fp-public-page, les deux racines des pages
   générées par le plugin. Hors de ces pages var(--fp-blue) ne résolvait pas : le bouton
   « Calculer » perdait son fond bleu tout en gardant son texte blanc, donc blanc sur blanc. */
.fp-net-simulator,
.fp-avancement {
	--fp-red: #c8282f;
	--fp-ink: #171717;
	--fp-blue: #245f87;
	--fp-green: #6aac4b;
	--fp-yellow: #efb33e;
}

.fp-avancement {
	margin: 1.5rem 0;
}

/* Les deux sélecteurs du simulateur d'avancement portent des libellés longs (un cadre d'emplois
   entier, puis un avancement grade vers grade) : ils prennent toute la largeur au lieu de se
   partager une ligne comme les champs courts du simulateur de salaire. */
.fp-avancement .fp-simulator-form {
	display: grid;
	gap: .9rem;
}

.fp-avancement .fp-simulator-form label {
	max-width: 100%;
}

.fp-avancement .fp-simulator-form select {
	max-width: 100%;
	width: 100%;
}

/* .fp-simulator-form label impose display:flex, qui l'emporte sur la règle [hidden] du navigateur.
   Sans cette reprise, masquer le sélecteur des cadres à grade unique resterait sans effet. */
.fp-avancement .fp-simulator-form label[hidden],
.fp-avancement [hidden] {
	display: none;
}

.fp-avancement-cas {
	margin-top: 1rem;
}

/* Le formulaire aligne ses champs par le bas : le libellé le plus long impose donc sa hauteur à
   toute la ligne, et les champs courts se retrouvent précédés d'un vide. Plutôt que de raccourcir
   les libellés jusqu'à les rendre obscurs, on donne à chaque champ une largeur de base suffisante
   pour que son libellé tienne sur une seule ligne. */
.fp-simulator-form label {
	flex: 1 1 10rem;
	max-width: 100%;
	min-width: 0;
}

.fp-simulator-form label:has([data-fp-sim-prime]) {
	flex-basis: 16rem;
}

.fp-simulator-form label:has([data-fp-sim-enfants]) {
	flex-basis: 12rem;
}

.fp-simulator-form select,
.fp-simulator-form input[type="number"] {
	width: 100%;
}

/* Le bouton garde sa largeur propre : étiré comme un champ, il ressemblerait à un champ. */
.fp-simulator-form .fp-simulator-submit {
	flex: 0 0 auto;
}

/* ------------------------------------------------------------------------------------------------
   Simulateurs du plugin alignés sur la charte des simulateurs du thème (GIPA, SFT, ISRC) : carte
   blanche posée sur la page, liseré aux couleurs FSU, champs pleine largeur et bouton d'action
   franc. Le titre reste le h2 de la section, déjà rendu au-dessus du bloc : reprendre l'en-tête
   coloré des simulateurs du thème afficherait deux fois le même titre.
   ------------------------------------------------------------------------------------------------ */
.fp-net-simulator,
.fp-avancement {
	background: #fff;
	border: none;
	border-radius: 16px;
	box-shadow: 0 12px 40px rgba(21, 21, 21, .12);
	margin: 1.5rem 0 2rem;
	overflow: hidden;
	padding: 0;
	position: relative;
}

/* Le liseré qui signe les simulateurs du site, bleu vers rouge. */
.fp-net-simulator::before,
.fp-avancement::before {
	background: linear-gradient(90deg, var(--fp-blue), var(--fp-red));
	content: '';
	height: 4px;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.fp-net-simulator .fp-simulator-form,
.fp-avancement .fp-simulator-form {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	margin: 0;
	padding: 2rem 2rem 1.5rem;
}

.fp-net-simulator .fp-simulator-form label,
.fp-avancement .fp-simulator-form label {
	display: flex;
	flex-direction: column;
	font-size: .9rem;
	font-weight: 700;
	gap: .45rem;
	letter-spacing: -.01em;
	max-width: 100%;
}

/* Les deux sélecteurs d'identification (cadre d'emplois, grade) portent des libellés longs et
   commandent tout le reste du formulaire : ils occupent la largeur entière, au-dessus des champs
   numériques courts. */
.fp-simulator-wide,
.fp-avancement .fp-simulator-form label {
	grid-column: 1 / -1;
}

.fp-net-simulator .fp-simulator-form select,
.fp-net-simulator .fp-simulator-form input[type="number"],
.fp-avancement .fp-simulator-form select {
	background: #f3f5f7;
	border: 2px solid #e2e4e7;
	border-radius: 8px;
	box-shadow: inset 0 2px 4px rgba(0, 0, 0, .02);
	color: var(--fp-ink);
	font-size: 1rem;
	padding: .75rem 1rem;
	transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
	width: 100%;
}

.fp-net-simulator .fp-simulator-form select:focus,
.fp-net-simulator .fp-simulator-form input[type="number"]:focus,
.fp-avancement .fp-simulator-form select:focus {
	background: #fff;
	border-color: var(--fp-blue);
	box-shadow: 0 0 0 4px rgba(48, 123, 170, .15);
	outline: none;
}

.fp-net-simulator .fp-simulator-submit {
	background: linear-gradient(135deg, var(--fp-red) 0%, #e0343c 100%);
	border-radius: 10px;
	box-shadow: 0 4px 12px rgba(200, 40, 47, .25);
	font-size: 1.05rem;
	font-weight: 800;
	grid-column: 1 / -1;
	justify-self: stretch;
	letter-spacing: .02em;
	padding: .9rem 1.5rem;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
	width: 100%;
}

.fp-net-simulator .fp-simulator-submit:hover {
	background: linear-gradient(135deg, #a9252a 0%, var(--fp-red) 100%);
	box-shadow: 0 6px 16px rgba(200, 40, 47, .35);
	transform: translateY(-2px);
}

.fp-net-simulator .fp-simulator-submit:disabled {
	box-shadow: none;
	opacity: .5;
	transform: none;
}

/* Le résultat occupe un pied de carte distinct, comme la zone de résultat des simulateurs du
   thème : l'agent doit voir d'un coup d'œil où regarder après avoir cliqué. */
.fp-net-simulator .fp-simulator-result:not(:empty) {
	background: #fcfdfd;
	border-left: none;
	border-radius: 0;
	border-top: 1px solid #e2e4e7;
	font-size: 1.25rem;
	margin: 0;
	padding: 1.5rem 2rem;
	text-align: center;
}

.fp-net-simulator .fp-simulator-result strong {
	color: var(--fp-red);
	font-size: 2.2rem;
	font-variant-numeric: tabular-nums;
	font-weight: 850;
	letter-spacing: -.03em;
}

.fp-net-simulator .fp-simulator-result .fp-simulator-detail {
	font-size: .9rem;
	margin: 1rem auto 0;
	max-width: 26rem;
	text-align: left;
}

.fp-net-simulator .fp-simulator-disclaimer {
	background: #fcfdfd;
	border-top: 1px solid #e2e4e7;
	color: #64686d;
	font-size: .78rem;
	line-height: 1.5;
	margin: 0;
	padding: 1rem 2rem 1.25rem;
}

.fp-avancement [data-fp-av-blocs] {
	padding: 0 2rem 1.5rem;
}

@media (max-width: 600px) {
	.fp-net-simulator .fp-simulator-form,
	.fp-avancement .fp-simulator-form {
		padding: 1.5rem 1.15rem 1.15rem;
	}

	.fp-net-simulator .fp-simulator-result:not(:empty),
	.fp-net-simulator .fp-simulator-disclaimer,
	.fp-avancement [data-fp-av-blocs] {
		padding-left: 1.15rem;
		padding-right: 1.15rem;
	}
}

/* ------------------------------------------------------------------------------------------------
   Alignement complet sur les simulateurs du thème (GIPA, SFT) : bandeau aux quatre couleurs du
   logo, en-tête bleu plein, puis le formulaire. Les quatre couleurs sont posées en quarts nets,
   comme sur la barre latérale du site, et non en dégradé : le dégradé mélange les teintes et fait
   disparaître l'identité visuelle.
   ------------------------------------------------------------------------------------------------ */
.fp-net-simulator::before,
.fp-avancement::before {
	background: linear-gradient(90deg,
		#6aac4b 0 25%,
		#307baa 25% 50%,
		#efb33e 50% 75%,
		#c8282f 75% 100%);
	height: 5px;
}

.fp-simulator-head {
	background: linear-gradient(135deg, #307baa 0%, #205c82 100%);
	color: #fff;
	padding: 1.8rem 2rem;
	position: relative;
	text-align: center;
}

/* Le liseré rouge qui ferme l'en-tête, exactement comme sur les simulateurs du thème. */
.fp-simulator-head::after {
	background: linear-gradient(90deg, #c8282f, #e0343c);
	bottom: 0;
	content: '';
	height: 4px;
	left: 0;
	position: absolute;
	width: 100%;
}

.fp-simulator-head h3 {
	color: #fff;
	font-size: 1.5rem;
	font-weight: 850;
	letter-spacing: -.02em;
	line-height: 1.2;
	margin: 0 0 .4rem;
	padding: 0;
}

.fp-simulator-head p {
	color: #b3d4e8;
	font-size: .9rem;
	font-weight: 500;
	margin: 0;
}

/* L'en-tête occupe toute la largeur de la carte : le padding du formulaire ne doit pas s'y
   appliquer, et le bandeau quadricolore reste visible au-dessus. */
.fp-net-simulator,
.fp-avancement {
	padding-top: 5px;
}

@media (max-width: 600px) {
	.fp-simulator-head {
		padding: 1.35rem 1.15rem;
	}

	.fp-simulator-head h3 {
		font-size: 1.25rem;
	}
}

/* ------------------------------------------------------------------------------------------------
   Fiche d'un échelon (pages « /echelon-N/ »).
   Tableau à deux colonnes, libellé puis valeur, qui reprend l'écriture des grilles du plugin :
   même bleu en tête, même zébrage, mêmes bordures. Le style vit ici et non dans fp-grilles parce
   que ces pages sont éditoriales et ne sont pas produites par l'extension.
   ------------------------------------------------------------------------------------------------ */
.fp-fiche-echelon {
	border-collapse: collapse;
	margin: 1.5rem 0 2rem;
	width: 100%;
}

.fp-fiche-echelon caption {
	background: var(--fp-blue, #307baa);
	border-radius: 8px 8px 0 0;
	color: #fff;
	font-size: .95rem;
	font-weight: 700;
	padding: .7rem .9rem;
	text-align: left;
}

.fp-fiche-echelon th,
.fp-fiche-echelon td {
	border-bottom: 1px solid #e5e5e5;
	padding: .75rem .9rem;
	text-align: left;
	vertical-align: middle;
}

.fp-fiche-echelon th {
	color: #171717;
	font-weight: 600;
	width: 55%;
}

.fp-fiche-echelon td {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	white-space: nowrap;
}

.fp-fiche-echelon tbody tr:nth-child(even) {
	background: #f7f7f7;
}

/* Les deux lignes que le lecteur cherche en premier : le brut garanti et le net estimé. */
.fp-fiche-echelon tr.est-total th,
.fp-fiche-echelon tr.est-total td {
	border-top: 2px solid var(--fp-blue, #307baa);
	font-size: 1.05rem;
}

.fp-fiche-echelon tr.est-total td {
	color: var(--fp-blue, #307baa);
	font-weight: 800;
}

.fp-fiche-echelon tr.est-net td {
	color: #6aac4b;
}

/* Navigation d'un échelon à l'autre, en pied de page. */
.fp-echelon-nav {
	background: #f7f9fa;
	border-left: 4px solid var(--fp-blue, #307baa);
	border-radius: 8px;
	font-weight: 600;
	margin: 2rem 0 0;
	padding: .9rem 1.1rem;
}

/* Sommaire des échelons, posé dans le contenu éditorial de la page du grade. */
.fp-echelons-index {
	display: grid;
	gap: .6rem;
	grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
	list-style: none;
	margin: 1.2rem 0 0;
	padding: 0;
}

.fp-echelons-index li {
	margin: 0;
}

.fp-echelons-index a {
	background: #fff;
	border: 1px solid #dde4e8;
	border-radius: 8px;
	display: block;
	font-weight: 600;
	padding: .7rem .9rem;
	text-decoration: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.fp-echelons-index a:hover {
	border-color: var(--fp-blue, #307baa);
	box-shadow: 0 4px 14px rgba(25, 43, 54, .1);
}

.fp-echelons-index .fp-echelons-montant {
	color: #64686d;
	display: block;
	font-size: .82rem;
	font-weight: 500;
}

/* --- Simulateur « si le point avait suivi l'inflation » (v1.27.49) -------------
   Même cadre que le simulateur de net ; le résultat se lit en trois chiffres côte à côte,
   le manque à gagner en rouge FSU puisque c'est lui que l'article met en avant. */
.fp-inflation {
	margin: 1.5rem 0;
}

/* Même bandeau que le résultat du simulateur de net : le cadre n'a pas de marge latérale,
   chaque bloc porte la sienne. */
.fp-inflation-result:not(:empty) {
	background: #fcfdfd;
	border-top: 1px solid #e2e4e7;
	padding: 1.5rem 2rem;
}

@media (max-width: 600px) {
	.fp-inflation-result:not(:empty) {
		padding-left: 1.15rem;
		padding-right: 1.15rem;
	}
}

.fp-inflation-figures {
	display: grid;
	gap: .6rem;
	grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
}

.fp-inflation-figures > div {
	background: #fff;
	border: 1px solid #d5e3ec;
	border-radius: 10px;
	min-width: 0;
	padding: .7rem .85rem;
}

.fp-inflation-figures span {
	color: #3d4d57;
	display: block;
	font-size: .76rem;
	letter-spacing: .02em;
	text-transform: uppercase;
}

.fp-inflation-figures strong {
	display: block;
	font-size: 1.45rem;
	font-variant-numeric: tabular-nums;
	line-height: 1.2;
	margin: .15rem 0;
}

.fp-inflation-figures small {
	color: #5c6c7a;
	display: block;
	font-size: .82rem;
	line-height: 1.35;
}

.fp-inflation-figures > .is-gap {
	background: #fdf2f2;
	border-color: #efc4c6;
}

.fp-inflation-figures > .is-gap strong {
	color: var(--fp-red);
}

.fp-inflation-note {
	color: #3d4d57;
	font-size: .92rem;
	line-height: 1.5;
	margin: .75rem 0 0;
}

/* Téléchargement des PDF (atelier PDF, lot C) */
.fp-public-page .fp-pdf-download { margin: 2rem 0 1.5rem; padding: 1rem 1.2rem; border-left: 4px solid var(--fp-green); background: #f3f8f0; }
.fp-public-page .fp-pdf-download { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 1rem 1.2rem; }
.fp-public-page .fp-pdf-text { flex: 1 1 18rem; min-width: 0; }
.fp-public-page .fp-pdf-preview { flex: 0 0 auto; display: block; width: 7.5rem; line-height: 0; border: 1px solid #d5dbe0; box-shadow: 0 2px 6px rgba(22, 34, 43, .12); background: #fff; }
.fp-public-page .fp-pdf-preview img { display: block; width: 100%; height: auto; }
.fp-public-page .fp-pdf-preview:hover, .fp-public-page .fp-pdf-preview:focus { box-shadow: 0 3px 10px rgba(22, 34, 43, .22); }
.fp-public-page .fp-pdf-download h2 { margin: 0 0 .35rem; font-size: 1.15rem; }
.fp-public-page .fp-pdf-download p { margin: 0 0 .8rem; }
.fp-public-page .fp-pdf-buttons { display: flex; flex-wrap: wrap; gap: .6rem; }
.fp-public-page .fp-pdf-button { display: inline-flex; align-items: center; gap: .5rem; padding: .55rem .9rem; border-radius: 4px; background: var(--fp-blue); color: #fff; font-weight: 600; text-decoration: none; }
.fp-public-page .fp-pdf-button:hover, .fp-public-page .fp-pdf-button:focus { background: #1b4a6a; color: #fff; }
.fp-public-page .fp-pdf-button span { font-size: .75em; padding: .1rem .35rem; border: 1px solid rgba(255,255,255,.7); border-radius: 3px; }

/* Barre d'actions au-dessus de chaque grille : « Télécharger » (et, plus tard, « M'alerter »), en pastilles
   comme .fp-grid-alert-badge. Le menu s'ouvre en flottant sous le bouton, sans script. */
.fp-public-page .fp-grid-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: .2rem 0 .75rem; position: relative; }
/* Le bouton « Télécharger » vit dans la ligne de badges de la grille, à côté de « Grille partagée ». */
.fp-public-page .fp-grid-badges { position: relative; }
.fp-public-page .fp-grid-download { position: static; } /* le menu se place par rapport à toute la barre */
.fp-public-page .fp-grid-download summary {
	display: inline-flex; align-items: center; gap: .4rem; min-height: 38px; padding: 0 .85rem; box-sizing: border-box;
	border-radius: 999px; border: 1.5px solid var(--fp-blue); background: #fff; color: var(--fp-blue);
	font-size: .78rem; font-weight: 800; letter-spacing: .02em; line-height: 1; cursor: pointer; list-style: none;
	transition: background-color .15s, color .15s;
}
.fp-public-page .fp-grid-download summary::-webkit-details-marker { display: none; }
.fp-public-page .fp-grid-download summary svg { width: 15px; height: 15px; }
/* Même gabarit pour la pastille d'alerte quand elle rejoindra la barre ; libellé court sur téléphone. */
.fp-public-page .fp-grid-actions .fp-grid-alert-badge { min-height: 38px; padding: 0 .85rem; box-sizing: border-box; }
.fp-public-page .fp-grid-actions .fp-label-court { display: none; }
@media (max-width: 480px) {
	.fp-public-page .fp-grid-actions .fp-label-long { display: none; }
	.fp-public-page .fp-grid-actions .fp-label-court { display: inline; }
}
.fp-public-page .fp-grid-download summary::after { content: ""; width: .42rem; height: .42rem; margin-left: .1rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.fp-public-page .fp-grid-download[open] summary::after { transform: rotate(-135deg) translateY(-1px); }
.fp-public-page .fp-grid-download summary:hover, .fp-public-page .fp-grid-download[open] summary { background: var(--fp-blue); color: #fff; }
.fp-public-page .fp-grid-download summary:focus-visible { outline: 3px solid var(--fp-yellow); outline-offset: 2px; }
.fp-public-page .fp-grid-download-menu {
	position: absolute; z-index: 30; top: calc(100% + .4rem); left: 0; width: min(22rem, 100%); box-sizing: border-box;
	margin: 0; padding: .4rem; list-style: none; background: #fff; border: 1px solid #d5dbe0; border-radius: 10px;
	box-shadow: 0 10px 28px rgba(22, 34, 43, .16);
}
.fp-public-page .fp-grid-download-menu li { margin: 0; }
.fp-public-page .fp-grid-download-titre { padding: .35rem .6rem .45rem; font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #5c6c7a; }
.fp-public-page .fp-grid-download-situation { margin: 0 .3rem .3rem !important; padding: .4rem .6rem; border-radius: 7px; background: #f1f3f5; color: #4a5763; font-size: .82rem; line-height: 1.35; }
/* Interrupteur « Montants » : deux boutons radio stylés (segments), texte toujours lisible au survol, au focus et coché. */
.fp-public-page .fp-grid-download-montants { margin: 0 .3rem .35rem !important; }
.fp-public-page .fp-grid-download-montants fieldset { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin: 0; padding: .35rem .45rem; border: 0; border-radius: 8px; background: #f1f3f5; }
.fp-public-page .fp-grid-download-montants legend { float: left; margin: 0 .2rem 0 0; padding: 0; font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #5c6c7a; }
.fp-public-page .fp-grid-download-montants label { display: inline-block; margin: 0; cursor: pointer; }
.fp-public-page .fp-grid-download-montants label span { display: inline-block; min-height: 2rem; box-sizing: border-box; padding: .35rem .8rem; border: 2px solid #c3ccd4; border-radius: 999px; background: #fff; color: #16222b; font-size: .85rem; font-weight: 700; line-height: 1.1rem; }
.fp-public-page .fp-grid-download-montants label:hover span { background: #eef4f9; color: #16222b; border-color: var(--fp-blue); }
.fp-public-page .fp-grid-download-montants input:checked + span, .fp-public-page .fp-grid-download-montants label:hover input:checked + span { background: var(--fp-blue); border-color: var(--fp-blue); color: #fff; }
.fp-public-page .fp-grid-download-montants input:focus-visible + span { outline: 3px solid #307baa; outline-offset: 2px; }
.fp-public-page .fp-grid-download-menu a {
	display: flex; flex-direction: column; gap: .12rem; padding: .6rem .7rem; border-radius: 7px;
	border-left: 3px solid transparent; color: #16222b; text-decoration: none;
}
.fp-public-page .fp-grid-download-menu a:hover, .fp-public-page .fp-grid-download-menu a:focus-visible { background: #eef4f9; border-left-color: var(--fp-blue); }
.fp-public-page .fp-grid-download-menu a strong { font-size: .95rem; }
.fp-public-page .fp-grid-download-menu a span { font-size: .82rem; color: #4a5763; line-height: 1.35; }

/* Réglages d'une page de grade (1.31.0) : période et temps de travail, au-dessus du tableau.
   L'ancien bandeau de formulaire (.fp-explorer*, rempli en AJAX) a été retiré : la page entière se
   recalcule désormais par l'adresse, via la feuille « Adapter la grille » ci-dessous. */
.fp-simulator-form label[hidden] { display: none; }
.fp-grid-quotite { color: #3d434a; font-size: .92rem; margin: .5rem 0 0; }

/* --- Rangée au-dessus du tableau : puce de temps de travail, cloche d'alerte (1.31.0) --------- */

.fp-grid-badges {
	align-items: center;
}

.fp-situation-puce {
	align-items: center;
	background: #fff;
	border: 2px solid var(--fp-blue);
	border-radius: 999px;
	color: var(--fp-blue);
	cursor: pointer;
	display: inline-flex;
	font-size: .78rem;
	font-weight: 800;
	gap: .35rem;
	letter-spacing: .01em;
	min-height: 40px;
	padding: 0 .8rem;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.fp-situation-puce svg {
	flex: 0 0 auto;
	height: 18px;
	width: 18px;
}

.fp-situation-puce:hover,
.fp-situation-puce:focus,
.fp-situation-puce:active {
	background: #eaf2f8;
	border-color: var(--fp-blue);
	color: var(--fp-blue);
}

.fp-situation-puce:focus-visible {
	outline: 2px solid var(--fp-blue);
	outline-offset: 2px;
}

.fp-situation-puce.is-active,
.fp-situation-puce.is-active:hover,
.fp-situation-puce.is-active:focus,
.fp-situation-puce.is-active:active {
	background: var(--fp-blue);
	border-color: var(--fp-blue);
	color: #fff;
}

/* Puce active : un bouton (ouvre la feuille) et un lien ✕ (retire le réglage) posés côte à côte.
   Un <a> ne pouvant pas être imbriqué dans un <button>, le bouton perd son cadre propre et hérite de
   celui de la puce qui les entoure tous les deux. */
.fp-situation-puce-bouton,
.fp-situation-puce-bouton:hover,
.fp-situation-puce-bouton:focus,
.fp-situation-puce-bouton:active {
	background: none;
	border: 0;
	box-shadow: none;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	font: inherit;
	gap: .35rem;
	padding: 0;
}

.fp-situation-puce .fp-situation-retirer,
.fp-situation-puce .fp-situation-retirer:visited,
.fp-situation-puce .fp-situation-retirer:hover,
.fp-situation-puce .fp-situation-retirer:focus,
.fp-situation-puce .fp-situation-retirer:active {
	color: #fff;
	font-weight: 900;
	margin-left: .1rem;
	text-decoration: none;
}

.fp-situation-puce .fp-situation-retirer:hover,
.fp-situation-puce .fp-situation-retirer:focus-visible {
	text-decoration: underline;
}

.fp-situation-puce .fp-situation-retirer:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

/* Sous 400 px, le bouton « Télécharger » n'affiche plus que son icône, comme la cloche, pour que la
   rangée entière tienne sur une ligne à 360 px de large. */
@media (max-width: 399px) {
	.fp-public-page .fp-grid-download summary {
		border-radius: 50%;
		gap: 0;
		height: 40px;
		justify-content: center;
		min-height: 40px;
		padding: 0;
		width: 40px;
	}

	.fp-public-page .fp-grid-download summary span {
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		height: 1px;
		overflow: hidden;
		position: absolute;
		white-space: nowrap;
		width: 1px;
	}

	.fp-public-page .fp-grid-download summary::after {
		display: none;
	}
}

.fp-alerte-cloche {
	align-items: center;
	background: #fff;
	border: 2px solid var(--fp-blue);
	border-radius: 999px;
	color: var(--fp-blue);
	display: inline-flex;
	gap: .35rem;
	height: 40px;
	justify-content: center;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
	width: 40px;
}

.fp-alerte-cloche svg {
	flex: 0 0 auto;
	height: 18px;
	width: 18px;
}

.fp-grid-badges a.fp-alerte-cloche:hover,
.fp-grid-badges a.fp-alerte-cloche:focus,
.fp-grid-badges a.fp-alerte-cloche:active {
	background: #eaf2f8;
	border-color: var(--fp-blue);
	color: var(--fp-blue);
	text-decoration: none;
}

.fp-alerte-cloche:focus-visible {
	outline: 2px solid var(--fp-blue);
	outline-offset: 2px;
}

.fp-alerte-cloche-texte {
	display: none;
}

@media (min-width: 900px) {
	.fp-alerte-cloche {
		border-radius: 999px;
		padding: 0 .8rem;
		width: auto;
	}

	.fp-alerte-cloche-texte {
		display: inline;
		font-size: .78rem;
		font-weight: 800;
	}
}

/* --- Sous le tableau : bouton « Autres dates » (1.31.0) ---------------------------------------- */

.fp-grid-date {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.fp-autres-dates {
	align-items: center;
	background: #fff;
	border: 1px solid #d5dbe0;
	border-radius: 999px;
	color: #1d3f58;
	cursor: pointer;
	display: inline-flex;
	font-size: .76rem;
	font-weight: 700;
	gap: .3rem;
	height: 32px;
	padding: 0 .65rem;
	transition: border-color .15s ease, background-color .15s ease;
}

.fp-autres-dates svg {
	flex: 0 0 auto;
	height: 14px;
	width: 14px;
}

.fp-autres-dates:hover,
.fp-autres-dates:focus,
.fp-autres-dates:active {
	background: #eaf2f8;
	border-color: var(--fp-blue);
	color: #1d3f58;
}

.fp-autres-dates:focus-visible {
	outline: 2px solid var(--fp-blue);
	outline-offset: 2px;
}

/* --- Feuille de réglage : « Temps de travail » et « Voir une autre date » (1.34.0) ---------------
   Mobile d'abord : panneau collé en bas d'écran, coins arrondis en haut. À partir de 900 px, petite
   fenêtre centrée de 440 px. Un choix s'applique tout de suite (lien ou bouton) : il n'y a plus de bouton
   « Afficher ». Rouge FSU réservé au bouton d'action « Voir à 24 h », jamais à un état.
   Le thème applique `button:hover, button:focus { color: #fff; background: #3f4047 }` à tous les boutons :
   chaque composant ci-dessous redéclare donc sa couleur ET son fond dans ses états :hover, :focus et :active
   (sélecteur plus spécifique que celui du thème), pour ne jamais retomber en blanc sur blanc. */

.fp-situation-feuille[hidden] {
	display: none;
}

.fp-situation-feuille {
	/* Rendue une fois par page, potentiellement hors de .fp-grid/.fp-public-page : la palette est
	   redéclarée ici pour ne pas dépendre du conteneur qui l'entoure. */
	--fp-red: #c8282f;
	--fp-ink: #171717;
	--fp-blue: #245f87;
	--fp-green: #6aac4b;
	--fp-yellow: #efb33e;
	bottom: 0;
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	z-index: 900;
}

.fp-situation-voile {
	background: rgba(0, 0, 0, .32);
	inset: 0;
	position: absolute;
}

.fp-situation-panneau {
	background: #f3f5f7;
	border-radius: 22px 22px 0 0;
	bottom: 0;
	box-shadow: 0 -12px 34px rgba(15, 25, 32, .22);
	box-sizing: border-box;
	color: var(--fp-ink);
	left: 0;
	max-height: 88vh;
	max-height: 88dvh;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: .55rem 1.1rem calc(1.3rem + env(safe-area-inset-bottom));
	position: absolute;
	right: 0;
}

/* Poignée visuelle, purement décorative. */
.fp-situation-panneau::before {
	background: #c9ccd1;
	border-radius: 999px;
	content: "";
	display: block;
	height: 4px;
	margin: .5rem auto .9rem;
	width: 36px;
}

.fp-situation-tete {
	align-items: center;
	display: flex;
	gap: .8rem;
	justify-content: space-between;
	margin-bottom: .25rem;
}

.fp-situation-tete h2 {
	color: var(--fp-ink);
	font-size: 1.2rem;
	line-height: 1.25;
	margin: 0;
}

.fp-situation-tete h2[hidden],
.fp-situation-sous[hidden],
.fp-situation-vue[hidden] {
	display: none;
}

/* Croix : rond de 36 px, deux traits SVG centrés, gris foncé sur gris clair, sans bordure. */
.fp-situation-fermer,
.fp-situation-fermer:hover,
.fp-situation-fermer:focus,
.fp-situation-fermer:active {
	align-items: center;
	background: #e7eaee;
	border: 0;
	border-radius: 50%;
	box-shadow: none;
	color: #3d434a;
	cursor: pointer;
	display: inline-flex;
	flex: 0 0 auto;
	height: 36px;
	justify-content: center;
	margin: 0;
	padding: 0;
	transform: none;
	width: 36px;
}

.fp-situation-fermer:hover,
.fp-situation-fermer:active {
	background: #d9dee3;
	color: #171717;
}

.fp-situation-fermer svg {
	display: block;
	height: 18px;
	width: 18px;
}

.fp-situation-fermer:focus-visible {
	outline: 2px solid var(--fp-blue);
	outline-offset: 2px;
}

.fp-situation-sous {
	color: #56636b;
	font-size: .9rem;
	line-height: 1.45;
	margin: 0 0 1.15rem;
}

/* Segments façon iOS : le choix actif ressort en blanc sur le fond gris du groupe. Trois éléments, un lien
   (Temps complet) et deux boutons, qui partagent le même dessin. */
.fp-situation-segments {
	background: #e3e6ea;
	border-radius: 12px;
	display: flex;
	gap: 3px;
	padding: 3px;
}

.fp-situation-feuille .fp-seg {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 9px;
	box-shadow: none;
	box-sizing: border-box;
	color: #2f3a42;
	cursor: pointer;
	display: flex;
	flex: 1 1 0;
	font: inherit;
	font-size: .88rem;
	font-weight: 700;
	justify-content: center;
	line-height: 1.2;
	margin: 0;
	min-height: 46px;
	padding: .4rem .35rem;
	text-align: center;
	text-decoration: none;
	transform: none;
	transition: background-color .15s ease, color .15s ease;
}

.fp-situation-feuille .fp-seg:hover,
.fp-situation-feuille .fp-seg:focus,
.fp-situation-feuille .fp-seg:active {
	background: rgba(255, 255, 255, .6);
	color: #171717;
	text-decoration: none;
}

.fp-situation-feuille .fp-seg.is-on,
.fp-situation-feuille .fp-seg.is-on:hover,
.fp-situation-feuille .fp-seg.is-on:focus,
.fp-situation-feuille .fp-seg.is-on:active {
	background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .16);
	color: var(--fp-blue);
}

.fp-situation-feuille .fp-seg:focus-visible {
	outline: 2px solid var(--fp-blue);
	outline-offset: 1px;
}

/* Quotités du temps partiel : puces qui s'appliquent au clic. */
.fp-situation-quotites {
	display: grid;
	gap: .4rem;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin-top: 1rem;
}

.fp-situation-quotites[hidden],
.fp-situation-heures[hidden] {
	display: none;
}

.fp-situation-feuille .fp-quo {
	align-items: center;
	background: #fff;
	border: 1px solid #ccd3d9;
	border-radius: 999px;
	box-shadow: none;
	box-sizing: border-box;
	color: #2f3a42;
	display: inline-flex;
	font-size: .95rem;
	font-weight: 700;
	justify-content: center;
	min-height: 46px;
	padding: 0 .2rem;
	text-decoration: none;
	transform: none;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.fp-situation-feuille .fp-quo:hover,
.fp-situation-feuille .fp-quo:focus,
.fp-situation-feuille .fp-quo:active {
	background: #eaf2f8;
	border-color: var(--fp-blue);
	color: #1a4a6b;
	text-decoration: none;
}

.fp-situation-feuille .fp-quo.is-on,
.fp-situation-feuille .fp-quo.is-on:hover,
.fp-situation-feuille .fp-quo.is-on:focus,
.fp-situation-feuille .fp-quo.is-on:active {
	background: var(--fp-blue);
	border-color: var(--fp-blue);
	color: #fff;
}

.fp-situation-feuille .fp-quo:focus-visible {
	outline: 2px solid var(--fp-blue);
	outline-offset: 2px;
}

/* Temps non complet : un champ d'heures et un seul bouton d'action. */
.fp-situation-heures {
	display: flex;
	flex-direction: column;
	gap: .9rem;
	margin: 1rem 0 0;
}

.fp-situation-heures label {
	display: flex;
	flex-direction: column;
	gap: .4rem;
	margin: 0;
}

.fp-situation-heures label > span:first-child {
	color: var(--fp-ink);
	font-size: .88rem;
	font-weight: 700;
}

.fp-heures-ligne {
	align-items: center;
	display: flex;
	gap: .7rem;
}

.fp-situation-heures input[type="text"] {
	-webkit-appearance: none;
	appearance: none;
	background: #fff;
	border: 1px solid #ccd3d9;
	border-radius: 10px;
	box-shadow: none;
	box-sizing: border-box;
	color: var(--fp-ink);
	font-size: 1.1rem;
	font-weight: 700;
	margin: 0;
	min-height: 48px;
	padding: .5rem .8rem;
	text-align: center;
	width: 6rem;
}

.fp-situation-heures input[type="text"]:focus {
	background: #fff;
	border-color: var(--fp-blue);
	box-shadow: 0 0 0 3px rgba(36, 95, 135, .18);
	color: var(--fp-ink);
	outline: none;
}

.fp-situation-heures small {
	color: #56636b;
	font-size: .84rem;
}

.fp-situation-feuille .fp-situation-voir,
.fp-situation-feuille .fp-situation-voir:hover,
.fp-situation-feuille .fp-situation-voir:focus,
.fp-situation-feuille .fp-situation-voir:active {
	background: var(--fp-red);
	border: 0;
	border-radius: 12px;
	box-shadow: none;
	color: #fff;
	cursor: pointer;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 800;
	min-height: 52px;
	padding: 0 1rem;
	transform: none;
	width: 100%;
}

.fp-situation-feuille .fp-situation-voir:hover,
.fp-situation-feuille .fp-situation-voir:active {
	background: #a9252a;
}

.fp-situation-feuille .fp-situation-voir:focus-visible {
	outline: 3px solid var(--fp-blue);
	outline-offset: 2px;
}

.fp-situation-feuille .fp-situation-voir:disabled,
.fp-situation-feuille .fp-situation-voir:disabled:hover {
	background: #d5d9dd;
	color: #4b565e;
	cursor: not-allowed;
}

/* Liste des périodes : lignes aérées séparées d'un filet, période en gras, coche bleue sur celle qui est
   affichée, étiquette « en vigueur » sur la période ouverte. Aucun fond gris derrière chaque ligne. */
.fp-situation-periodes {
	list-style: none;
	margin: 0;
	padding: 0;
}

.fp-situation-periodes li {
	border-top: 1px solid #dfe4e8;
	margin: 0;
	padding: 0;
}

.fp-situation-periodes li:first-child {
	border-top: 0;
}

.fp-situation-feuille .fp-periode {
	align-items: center;
	background: transparent;
	border-radius: 10px;
	box-shadow: none;
	box-sizing: border-box;
	color: var(--fp-ink);
	display: flex;
	font-size: 1rem;
	font-weight: 700;
	gap: .8rem;
	justify-content: space-between;
	line-height: 1.35;
	min-height: 56px;
	padding: .9rem .25rem;
	text-decoration: none;
	transform: none;
}

.fp-situation-feuille .fp-periode:hover,
.fp-situation-feuille .fp-periode:focus,
.fp-situation-feuille .fp-periode:active {
	background: rgba(36, 95, 135, .08);
	color: #12384f;
	text-decoration: none;
}

.fp-situation-feuille .fp-periode:focus-visible {
	outline: 2px solid var(--fp-blue);
	outline-offset: -2px;
}

.fp-periode-texte {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: .3rem .6rem;
}

.fp-etiquette {
	background: #dcebf5;
	border-radius: 999px;
	color: #16455f;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1;
	padding: .32rem .55rem;
	text-transform: uppercase;
}

.fp-periode svg {
	color: var(--fp-blue);
	flex: 0 0 auto;
	height: 22px;
	width: 22px;
}

/* Navigation en cours : l'élément touché s'estompe, la feuille ne répond plus aux autres clics. */
.fp-situation-feuille.is-loading .fp-situation-panneau {
	cursor: progress;
}

.fp-situation-feuille.is-loading a,
.fp-situation-feuille.is-loading button {
	pointer-events: none;
}

.fp-situation-feuille .is-loading {
	opacity: .5;
}

body.fp-situation-ouverte {
	overflow: hidden;
}

@media (min-width: 900px) {
	.fp-situation-panneau {
		border-radius: 16px;
		bottom: auto;
		box-shadow: 0 20px 48px rgba(15, 25, 32, .24);
		left: 50%;
		max-height: min(88vh, 640px);
		padding: 1.3rem 1.4rem 1.5rem;
		top: 50%;
		transform: translate(-50%, -50%);
		width: 440px;
	}

	.fp-situation-panneau::before {
		display: none;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.fp-situation-panneau {
		animation: fp-feuille-monte .22s ease-out;
	}

	@media (min-width: 900px) {
		.fp-situation-panneau {
			animation: none;
		}
	}
}

@keyframes fp-feuille-monte {
	from { transform: translateY(24px); opacity: .6; }
	to { transform: none; opacity: 1; }
}

/* --- Note sur les blocs non recalculables à une autre quotité ou date (1.31.0) ------------------ */

.fp-note-situation {
	background: #f6f7f9;
	border-left: 3px solid #c9ccd1;
	color: #4a5560;
	font-size: .82rem;
	line-height: 1.5;
	margin: 0 0 .8rem;
	padding: .55rem .7rem;
}

/* --- Frise « Évolution de la grille » (1.31.0) --------------------------------------------------- */

.fp-frise ol {
	border-left: 2px solid #dce3e7;
	list-style: none;
	margin: 1rem 0 0 .3rem;
	padding: 0 0 0 1.3rem;
}

.fp-frise li {
	margin: 0 0 1.1rem;
	position: relative;
}

.fp-frise li::before {
	background: #fff;
	border: 3px solid var(--fp-blue);
	border-radius: 50%;
	content: "";
	height: 12px;
	left: -1.66rem;
	position: absolute;
	top: .2rem;
	width: 12px;
}

.fp-frise li.is-actuelle::before {
	background: var(--fp-blue);
}

.fp-frise-grade {
	border-top: 1px solid #dce3e7;
	padding: .6rem 0;
}

.fp-frise-grade > summary {
	color: var(--fp-ink);
	cursor: pointer;
	font-weight: 800;
}

.fp-frise-periode {
	color: var(--fp-ink);
	display: block;
	font-weight: 800;
}

.fp-frise-montants {
	color: #667178;
	display: block;
	font-size: .92rem;
	margin-top: .15rem;
}

.fp-frise li a {
	color: var(--fp-blue);
	display: inline-block;
	font-weight: 700;
	margin-top: .3rem;
}

.fp-frise details {
	margin-top: .5rem;
}

.fp-frise details summary {
	color: var(--fp-blue);
	cursor: pointer;
	font-weight: 700;
}

.fp-frise details ol {
	margin-top: 1rem;
}

/* Correctifs d'intégration (1.31.0) : un bloc conditionnel masqué reste masqué malgré son display propre, et la
   cloche garde le bleu des boutons, pas la couleur des liens du thème. */
.fp-grid-badges a.fp-alerte-cloche, .fp-grid-badges a.fp-alerte-cloche:visited { color: var(--fp-blue, #245f87); }

/* Formulaire d'alerte (1.34.0) : champ piège anti-robots, hors écran et hors du parcours au clavier. */
.fp-alert-hp {
	height: 1px;
	left: -9999px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

/* Accès replié vers l'autre vue de la feuille (1.34.0) : « Voir une autre date » sous le temps de travail,
   « Changer le temps de travail » sous la liste des dates. Fermé par défaut. */
.fp-situation-autre {
	border-top: 1px solid #dfe4e8;
	margin-top: 1.2rem;
	padding-top: .2rem;
}

.fp-situation-feuille .fp-situation-autre summary {
	align-items: center;
	background: transparent;
	color: var(--fp-blue);
	cursor: pointer;
	display: flex;
	font-size: .95rem;
	font-weight: 700;
	justify-content: space-between;
	list-style: none;
	min-height: 48px;
	padding: .5rem .1rem;
}

.fp-situation-feuille .fp-situation-autre summary::-webkit-details-marker {
	display: none;
}

.fp-situation-feuille .fp-situation-autre summary::after {
	border-bottom: 2px solid currentColor;
	border-right: 2px solid currentColor;
	content: "";
	flex: 0 0 auto;
	height: .5rem;
	margin: 0 .35rem .2rem .6rem;
	transform: rotate(45deg);
	transition: transform .15s ease;
	width: .5rem;
}

.fp-situation-feuille .fp-situation-autre[open] summary::after {
	margin-bottom: 0;
	transform: rotate(-135deg);
}

.fp-situation-feuille .fp-situation-autre summary:hover,
.fp-situation-feuille .fp-situation-autre summary:focus,
.fp-situation-feuille .fp-situation-autre summary:active {
	background: transparent;
	color: #12384f;
}

.fp-situation-feuille .fp-situation-autre summary:focus-visible {
	border-radius: 8px;
	outline: 2px solid var(--fp-blue);
	outline-offset: 0;
}

.fp-situation-autre .fp-situation-temps,
.fp-situation-autre .fp-situation-periodes {
	margin-top: .4rem;
}

/* Case d'accord séparée « informations » du formulaire d'alerte (1.36.0) : jamais cochée d'office, cible de 40 px. */
.fp-alert-infos {
	align-items: flex-start;
	display: flex;
	gap: .7rem;
	margin: .9rem 0 0;
	min-height: 40px;
}

.fp-alert-infos input[type="checkbox"] {
	accent-color: var(--fp-blue, #245f87);
	cursor: pointer;
	flex: 0 0 auto;
	height: 1.5rem;
	margin: .35rem 0 0;
	width: 1.5rem;
}

.fp-alert-infos label {
	color: #2b3640;
	cursor: pointer;
	display: block;
	font-size: .95rem;
	line-height: 1.45;
	padding: .3rem 0;
}

.fp-alert-infos input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--fp-blue, #245f87);
	outline-offset: 2px;
}

.fp-alert-form button[type="submit"]:disabled {
	cursor: wait;
	opacity: .65;
}

/* --- Lien « Comparer avec un autre grade » sous le tableau (1.35.0) ----------------------------------
   Même puce discrète que « Autres dates » ; la zone cliquable est agrandie à 40 px sans grossir la puce. */
.fp-autres-dates.fp-comparer,
.fp-autres-dates.fp-comparer:visited {
	position: relative;
	text-decoration: none;
}

.fp-autres-dates.fp-comparer::after {
	content: "";
	inset: -4px 0;
	position: absolute;
}

.fp-autres-dates.fp-comparer:hover,
.fp-autres-dates.fp-comparer:focus,
.fp-autres-dates.fp-comparer:active {
	color: #1d3f58;
	text-decoration: none;
}

/* --- Tableau des strates DGS / DGA / DG d'EPL compact sur mobile (04/10/2026) -------------------------
   « Les autres strates » / « Toutes les strates » (#fp-strates) : sous 600 px, une strate = une ligne fine
   (lien de la strate, puis « IM 425 → 687 · 13 ans » en petit) au lieu d'une carte de trois lignes.
   Limité à .fp-strata-table : « Comparer les grades » garde ses cartes. La ligne entière est cliquable (44 px mini). */
@media (max-width: 600px) {
	.fp-framework-comparison .fp-strata-table table {
		border: 0;
		border-top: 1px solid #e5eaed;
	}

	.fp-framework-comparison .fp-strata-table tr {
		border: 0;
		border-bottom: 1px solid #e5eaed;
		border-radius: 0;
		box-sizing: border-box;
		font-size: .78rem;
		line-height: 1.35;
		margin: 0;
		min-height: 44px;
		padding: .35rem .5rem;
		position: relative;
	}

	.fp-framework-comparison .fp-strata-table tr[aria-current="page"] {
		box-shadow: inset 3px 0 0 var(--fp-blue, #245f87);
	}

	.fp-framework-comparison .fp-strata-table th {
		border: 0;
		font-size: .9rem;
		line-height: 1.3;
		padding: 0;
	}

	.fp-framework-comparison .fp-strata-table th a::after {
		content: "";
		inset: 0;
		position: absolute;
	}

	.fp-framework-comparison .fp-strata-table td {
		border: 0;
		color: #505b62;
		display: inline;
		padding: 0;
		width: auto;
	}

	.fp-framework-comparison .fp-strata-table td::before {
		content: none;
	}

	.fp-framework-comparison .fp-strata-table td + td::before {
		color: inherit;
		content: "\00a0· ";
		font-weight: 400;
	}
}
