/**
 * Landing Panda Cloud.
 *
 * Tout est préfixé .pc- pour ne pas entrer en collision avec Kadence,
 * et la feuille n'est chargée que sur les pages utilisant le template.
 */

.pc-landing {
	--pc-ink: #0d1b2a;
	--pc-accent: #1b4f8f;
	--pc-accent-dark: #143a6b;
	--pc-muted: #5b6b7e;
	--pc-line: #e3e8ef;
	--pc-alt: #f6f8fb;
	/* Vert sauge repris de la bannière LinkedIn : accent de preuve. */
	--pc-sage: #a9c8a3;
	--pc-sage-dark: #4d7a52;

	color: var(--pc-ink);
	font-size: 17px;
	line-height: 1.65;
	/* Filet de sécurité : aucun mot long (URL, email) ne peut élargir la page. */
	overflow-wrap: break-word;
}

.pc-landing *,
.pc-landing *::before,
.pc-landing *::after {
	box-sizing: border-box;
}

.pc-wrap {
	width: 100%;
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 24px;
}

/* ---------------------------------------------------------------- Boutons */

.pc-btn {
	display: inline-block;
	padding: 14px 28px;
	border: 1px solid transparent;
	border-radius: 4px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.pc-btn--primary {
	background: var(--pc-accent);
	color: #fff;
}

.pc-btn--primary:hover,
.pc-btn--primary:focus {
	background: var(--pc-accent-dark);
	color: #fff;
}

.pc-btn--ghost {
	border-color: rgba(255, 255, 255, 0.35);
	color: #fff;
}

.pc-btn--ghost:hover,
.pc-btn--ghost:focus {
	border-color: #fff;
	color: #fff;
}

.pc-btn--lg {
	padding: 17px 38px;
	font-size: 17px;
}

/* ------------------------------------------------------------------ Hero */

.pc-hero {
	padding: 96px 0 88px;
	background: linear-gradient(160deg, #0d1b2a 0%, #17324f 100%);
	color: #fff;
}

.pc-eyebrow {
	margin: 0 0 20px;
	color: #8fb4dd;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.pc-hero__title {
	margin: 0;
	color: #fff;
	font-size: clamp(2.1rem, 5vw, 3.3rem);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.02em;
}

.pc-hero__subtitle {
	margin: 14px 0 0;
	color: #a8c6e6;
	font-size: clamp(1rem, 2.2vw, 1.25rem);
	font-weight: 500;
}

.pc-hero__pitch {
	max-width: 62ch;
	margin: 28px 0 0;
	color: rgba(255, 255, 255, 0.86);
	font-size: 1.05rem;
}

/* Pastilles du hero : reprises de la bannière LinkedIn. */
.pc-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 26px 0 0;
	padding: 0;
	list-style: none;
}

.pc-pill {
	padding: 8px 18px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(169, 200, 163, 0.55);
	border-radius: 999px;
	color: var(--pc-sage);
	font-size: 0.88rem;
	font-weight: 600;
}

/* ------------------------------------------------------------ Clients */

.pc-clients {
	padding: 34px 0;
	background: var(--pc-alt);
	border-bottom: 1px solid var(--pc-line);
}

.pc-clients__label {
	margin: 0 0 12px;
	color: var(--pc-sage-dark);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.pc-clients__list {
	/* Hauteur de référence d'un wordmark horizontal (scale 1). Les autres
	   logos s'y calent via --pc-logo-scale, posé en ligne par le template. */
	--pc-logo-unit: 24px;

	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 22px 38px;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--pc-muted);
	font-size: 0.95rem;
	font-weight: 600;
}

.pc-clients__item {
	display: flex;
	align-items: center;
}

.pc-clients__logo {
	max-width: 100%;
	height: calc(var(--pc-logo-unit) * var(--pc-logo-scale, 1));
	width: auto;
	object-fit: contain;
	/* Désaturés au repos : une bande de logos en couleurs pleines écrase la
	   hiérarchie de la page. La couleur revient au survol. */
	filter: grayscale(100%);
	opacity: 0.55;
	transition: filter 0.25s ease, opacity 0.25s ease;
}

.pc-clients__logo:hover,
.pc-clients__logo:focus-visible {
	filter: grayscale(0%);
	opacity: 1;
}

/* Références ministérielles en typo. Le filet leur donne un ancrage visuel
   que le lettrage seul n'a pas au milieu d'une bande de logos. */
.pc-clients__wordmark {
	display: block;
	padding-left: 12px;
	border-left: 2px solid currentColor;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	transition: color 0.25s ease;
}

.pc-clients__wordmark:hover {
	color: var(--pc-ink);
}

@media (prefers-reduced-motion: reduce) {
	.pc-clients__logo,
	.pc-clients__wordmark {
		transition: none;
	}
}

@media (max-width: 600px) {
	.pc-clients__list {
		--pc-logo-unit: 19px;

		gap: 18px 26px;
	}
}

.pc-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-top: 40px;
}

/* Troisième action volontairement dégradée en lien : elle mène à une preuve,
   pas à une conversion. En bouton, elle diluait les deux autres. */
.pc-hero__link {
	/* Padding réduit au minimum : le soulignement doit rester collé au texte,
	   pas flotter à 14px dessous comme le ferait la boîte d'un bouton. */
	padding: 4px 2px;
	color: rgba(255, 255, 255, 0.75);
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.3);
	transition: color 0.15s ease, border-color 0.15s ease;
}

.pc-hero__link:hover,
.pc-hero__link:focus {
	color: #fff;
	border-color: #fff;
}

/* --------------------------------------------------------------- Métriques */

.pc-metrics {
	padding: 0;
	background: var(--pc-ink);
	border-top: 1px solid rgba(255, 255, 255, 0.09);
}

.pc-metrics__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
	gap: 1px;
	padding-top: 0;
	padding-bottom: 0;
	background: rgba(255, 255, 255, 0.09);
}

.pc-metric {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 32px 24px;
	background: var(--pc-ink);
}

.pc-metric__value {
	color: #fff;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.01em;
}

.pc-metric__label {
	color: #a8c6e6;
	font-size: 0.95rem;
	font-weight: 600;
}

.pc-metric__note {
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.85rem;
}

/* --------------------------------------------------------------- Sections */

/* Décale l'arrivée des ancres du menu pour qu'un header fixe ne recouvre pas
   le titre de la section visée. */
.pc-landing [id] {
	scroll-margin-top: 100px;
}

.pc-section {
	padding: 88px 0;
}

.pc-section--alt {
	background: var(--pc-alt);
	border-top: 1px solid var(--pc-line);
	border-bottom: 1px solid var(--pc-line);
}

.pc-section__title {
	margin: 0 0 44px;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	letter-spacing: -0.015em;
}

/* ---------------------------------------------------------------- Offres */

.pc-offers {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(290px, 100%), 1fr));
	gap: 24px;
}

.pc-offer {
	display: flex;
	flex-direction: column;
	padding: 32px 28px;
	background: #fff;
	border: 1px solid var(--pc-line);
	border-top: 3px solid var(--pc-accent);
	border-radius: 4px;
}

.pc-offer__kicker {
	margin: 0 0 12px;
	color: var(--pc-accent);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.pc-offer__title {
	margin: 0 0 14px;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.3;
}

.pc-offer__pitch {
	margin: 0 0 20px;
	color: var(--pc-muted);
	font-size: 0.97rem;
}

.pc-offer__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--pc-line);
}

.pc-offer__list li {
	position: relative;
	padding: 11px 0 11px 20px;
	font-size: 0.93rem;
	border-bottom: 1px solid var(--pc-line);
}

.pc-offer__list li:last-child {
	border-bottom: 0;
}

.pc-offer__list li::before {
	position: absolute;
	top: 11px;
	left: 0;
	color: var(--pc-accent);
	content: "▪";
	font-size: 0.8rem;
}

/* ------------------------------------------------------------- Expertise */

.pc-expertise {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(400px, 100%), 1fr));
	gap: 32px 44px;
}

.pc-domain {
	padding-left: 20px;
	border-left: 3px solid var(--pc-sage);
}

.pc-domain__title {
	margin: 0 0 8px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.3;
}

.pc-domain__pitch {
	margin: 0 0 16px;
	color: var(--pc-sage-dark);
	font-size: 0.95rem;
	font-style: italic;
}

.pc-domain__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pc-domain__list li {
	position: relative;
	padding: 0 0 9px 18px;
	color: var(--pc-muted);
	font-size: 0.94rem;
}

.pc-domain__list li::before {
	position: absolute;
	top: 0;
	left: 0;
	color: var(--pc-sage);
	content: "▪";
	font-size: 0.78rem;
}

/* ------------------------------------------------------------ Références */

.pc-refs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr));
	gap: 24px;
}

.pc-ref {
	padding: 30px 28px;
	background: #fff;
	border: 1px solid var(--pc-line);
	border-radius: 4px;
}

.pc-ref__client {
	margin: 0 0 6px;
	font-size: 1.12rem;
	font-weight: 700;
	line-height: 1.35;
}

.pc-ref__result {
	margin: 0 0 14px;
	color: var(--pc-accent);
	font-size: 0.97rem;
	font-weight: 700;
}

.pc-ref__summary {
	margin: 0 0 18px;
	color: var(--pc-muted);
	font-size: 0.94rem;
}

.pc-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pc-tag {
	padding: 4px 11px;
	background: var(--pc-alt);
	border: 1px solid var(--pc-line);
	border-radius: 3px;
	color: var(--pc-muted);
	font-size: 0.78rem;
	font-weight: 600;
}

/* ----------------------------------------------------------------- Stack */

.pc-stack {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	gap: 28px 40px;
}

.pc-stack__label {
	margin: 0 0 5px;
	color: var(--pc-muted);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pc-stack__tools {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
}

.pc-sectors {
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid var(--pc-line);
	color: var(--pc-muted);
	font-size: 0.95rem;
}

.pc-sectors__label {
	display: block;
	margin-bottom: 5px;
	color: var(--pc-muted);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* -------------------------------------------------------------- Parcours */

.pc-timeline {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pc-timeline__item {
	display: flex;
	gap: 28px;
	padding: 18px 0;
	border-bottom: 1px solid var(--pc-line);
}

.pc-timeline__item:last-child {
	border-bottom: 0;
}

.pc-timeline__year {
	flex: 0 0 64px;
	color: var(--pc-accent);
	font-size: 0.95rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.pc-timeline__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.pc-timeline__role {
	font-size: 1rem;
	font-weight: 600;
}

.pc-timeline__org {
	color: var(--pc-muted);
	font-size: 0.92rem;
}

/* --------------------------------------------------------------- Closing */

.pc-closing {
	padding: 88px 0 96px;
	background: linear-gradient(160deg, #17324f 0%, #0d1b2a 100%);
	color: #fff;
	text-align: center;
}

.pc-closing__title {
	margin: 0 0 18px;
	color: #fff;
	font-size: clamp(1.5rem, 3.4vw, 2.1rem);
	font-weight: 700;
	letter-spacing: -0.015em;
}

.pc-closing__pitch {
	max-width: 58ch;
	margin: 0 auto 36px;
	color: rgba(255, 255, 255, 0.82);
	font-size: 1.02rem;
}

.pc-contact {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 28px;
	margin: 40px 0 0;
	padding: 28px 0 0;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	list-style: none;
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.95rem;
}

.pc-contact a {
	color: #a8c6e6;
	text-decoration: none;
}

.pc-contact a:hover,
.pc-contact a:focus {
	color: #fff;
	text-decoration: underline;
}

/* ------------------------------------------------------------- Responsive */

@media (max-width: 640px) {

	.pc-wrap {
		padding: 0 18px;
	}

	.pc-hero {
		padding: 68px 0 60px;
	}

	.pc-offer,
	.pc-ref {
		padding: 26px 20px;
	}

	.pc-metric {
		padding: 26px 20px;
	}

	.pc-section,
	.pc-closing {
		padding: 60px 0;
	}

	.pc-hero__actions .pc-btn {
		flex: 1 1 100%;
		text-align: center;
	}

	/* Le lien suit les boutons empilés, centré sous eux plutôt que rejeté
	   contre le bord gauche. */
	.pc-hero__link {
		flex: 1 1 100%;
		text-align: center;
		border-bottom: 0;
		text-decoration: underline;
	}

	.pc-timeline__item {
		flex-direction: column;
		gap: 4px;
	}

	.pc-timeline__year {
		flex-basis: auto;
	}
}

/* Respecte les préférences de réduction de mouvement. */
@media (prefers-reduced-motion: reduce) {

	.pc-btn {
		transition: none;
	}
}

/* ----------------------------------------------------------- Pages légales */

/* Colonne étroite : un texte juridique se lit en une seule colonne courte,
   pas sur la pleine largeur de la landing. */
.pc-legal__doc {
	max-width: 760px;
	padding-top: 72px;
	padding-bottom: 88px;
}

.pc-legal__header {
	margin-bottom: 56px;
	padding-bottom: 32px;
	border-bottom: 1px solid var(--pc-line);
}

.pc-legal__title {
	margin: 0;
	font-size: clamp(1.8rem, 4vw, 2.4rem);
	font-weight: 700;
	letter-spacing: -0.015em;
}

.pc-legal__intro {
	margin: 16px 0 0;
	color: var(--pc-muted);
	font-size: 1.02rem;
}

.pc-legal__updated {
	margin: 20px 0 0;
	color: var(--pc-sage-dark);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.pc-legal__section {
	margin-bottom: 44px;
}

.pc-legal__heading {
	margin: 0 0 16px;
	font-size: 1.2rem;
	font-weight: 700;
}

.pc-legal__section p {
	margin: 0 0 14px;
	color: var(--pc-muted);
}

/* Identité de l'éditeur : grille libellé/valeur plutôt qu'un paragraphe
   compact, pour qu'un lecteur trouve le SIRET ou le RCS d'un coup d'œil. */
.pc-legal__rows {
	display: grid;
	grid-template-columns: minmax(180px, 34%) 1fr;
	gap: 1px;
	margin: 0;
	background: var(--pc-line);
	border: 1px solid var(--pc-line);
	border-radius: 4px;
	overflow: hidden;
}

.pc-legal__rows dt,
.pc-legal__rows dd {
	margin: 0;
	padding: 12px 16px;
	background: #fff;
	font-size: 0.94rem;
}

.pc-legal__rows dt {
	color: var(--pc-muted);
	font-weight: 600;
}

.pc-legal__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pc-legal__list li {
	position: relative;
	margin-bottom: 10px;
	padding-left: 20px;
	color: var(--pc-muted);
}

.pc-legal__list li::before {
	position: absolute;
	left: 0;
	color: var(--pc-sage-dark);
	content: '—';
}

.pc-legal__list strong {
	color: var(--pc-ink);
}

.pc-legal__back {
	margin: 56px 0 0;
	padding-top: 28px;
	border-top: 1px solid var(--pc-line);
}

@media (max-width: 600px) {
	.pc-legal__rows {
		grid-template-columns: 1fr;
	}

	.pc-legal__rows dt {
		padding-bottom: 0;
	}
}

/* Liens légaux en pied de landing : les mentions doivent rester accessibles
   depuis toute page du site. Reprend la trame de .pc-contact, en plus discret. */
.pc-legal-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 22px;
	margin: 26px 0 0;
	padding: 0;
	list-style: none;
	color: rgba(255, 255, 255, 0.45);
	font-size: 0.85rem;
}

.pc-legal-links a {
	color: rgba(255, 255, 255, 0.55);
	text-decoration: none;
}

.pc-legal-links a:hover,
.pc-legal-links a:focus {
	color: #fff;
	text-decoration: underline;
}

/* ---------------------------------------------------------------- Avis */

.pc-quotes {
	display: grid;
	/* 420px de plancher : sur 1080px de contenu, ça donne deux colonnes et une
	   grille 2x2 pleine. À 320px on obtenait trois colonnes et un quatrième
	   avis orphelin sur sa propre ligne. */
	grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr));
	gap: 24px;
}

.pc-quote {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 28px 28px 24px;
	background: #fff;
	border: 1px solid var(--pc-line);
	border-radius: 4px;
}

.pc-quote__text {
	flex: 1;
	/* Kadence habille les blockquote d'un filet et d'un retrait : on repart de
	   zéro, sinon la barre du thème double le guillemet et décale les cartes. */
	margin: 0 0 20px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--pc-ink);
	font-size: 1rem;
	font-style: italic;
	line-height: 1.6;
}

/* Guillemet ouvrant en filigrane : marque la citation sans alourdir le bloc. */
.pc-quote__text::before {
	display: block;
	margin-bottom: 6px;
	color: var(--pc-sage);
	font-size: 2.2rem;
	font-style: normal;
	line-height: 0.6;
	content: '\201C';
}

.pc-quote__by {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-top: 18px;
	border-top: 1px solid var(--pc-line);
}

.pc-quote__author {
	color: var(--pc-ink);
	font-size: 0.95rem;
	font-weight: 700;
}

.pc-quote__role {
	color: var(--pc-muted);
	font-size: 0.88rem;
}

/* Date obligatoire sur un avis publié, mais elle ne doit pas concurrencer
   le nom : plus petite, plus claire, en bas de bloc. */
.pc-quote__date {
	margin-top: 4px;
	color: var(--pc-muted);
	font-size: 0.78rem;
	opacity: 0.75;
}

.pc-quotes__source {
	margin: 26px 0 0;
	font-size: 0.88rem;
}

.pc-quotes__source a {
	color: var(--pc-accent);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
}

.pc-quotes__source a:hover,
.pc-quotes__source a:focus {
	color: var(--pc-accent-dark);
}

/* ------------------------------------------------------ Auto-diagnostic */

.pc-diag__intro {
	padding: 72px 0 40px;
	background: linear-gradient(160deg, #0d1b2a 0%, #17324f 100%);
	color: #fff;
}

.pc-diag__title {
	max-width: 20ch;
	margin: 0;
	color: #fff;
	font-size: clamp(1.9rem, 4.5vw, 2.8rem);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

.pc-diag__lead {
	max-width: 60ch;
	margin: 20px 0 0;
	color: rgba(255, 255, 255, 0.86);
	font-size: 1.05rem;
}

/* La promesse de confidentialité est le premier frein levé : elle doit être
   lue avant la première question, pas reléguée en bas de page. */
.pc-diag__privacy {
	max-width: 60ch;
	margin: 22px 0 32px;
	padding-left: 14px;
	border-left: 2px solid var(--pc-sage);
	color: var(--pc-sage);
	font-size: 0.9rem;
}

.pc-diag__form {
	padding-top: 56px;
	padding-bottom: 24px;
}

.pc-diag__section {
	margin: 0 0 44px;
	padding: 0;
	border: 0;
}

.pc-diag__legend {
	margin-bottom: 22px;
	padding: 0;
	color: var(--pc-sage-dark);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.pc-diag__q {
	padding: 24px 0;
	border-top: 1px solid var(--pc-line);
}

.pc-diag__label {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 600;
}

.pc-diag__help {
	max-width: 68ch;
	margin: 8px 0 0;
	color: var(--pc-muted);
	font-size: 0.92rem;
}

.pc-diag__answers {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}

/* Le bouton radio natif est masqué visuellement mais reste focusable :
   la navigation au clavier et les lecteurs d'écran continuent de fonctionner. */
.pc-diag__radio {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.pc-diag__choice {
	display: inline-block;
	padding: 9px 18px;
	background: #fff;
	border: 1px solid var(--pc-line);
	border-radius: 999px;
	color: var(--pc-muted);
	font-size: 0.92rem;
	font-weight: 600;
	cursor: pointer;
	transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.pc-diag__choice:hover {
	border-color: var(--pc-accent);
	color: var(--pc-accent);
}

.pc-diag__radio:checked + .pc-diag__choice {
	background: var(--pc-accent);
	border-color: var(--pc-accent);
	color: #fff;
}

.pc-diag__radio:focus-visible + .pc-diag__choice {
	outline: 2px solid var(--pc-accent);
	outline-offset: 2px;
}

.pc-diag__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 20px;
	padding-top: 28px;
	border-top: 1px solid var(--pc-line);
}

.pc-diag__reset {
	padding: 0;
	background: none;
	border: 0;
	color: var(--pc-muted);
	font-size: 0.9rem;
	text-decoration: underline;
	cursor: pointer;
}

.pc-diag__progress {
	margin: 0;
	color: var(--pc-muted);
	font-size: 0.88rem;
}

/* --------------------------------------------------- Résultat du calcul */

.pc-diag__result {
	max-width: 860px;
	padding-top: 16px;
	padding-bottom: 72px;
}

.pc-diag__result:focus {
	outline: none;
}

.pc-diag__score {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px 18px;
	padding: 28px;
	background: var(--pc-ink);
	border-radius: 4px 4px 0 0;
	color: #fff;
}

.pc-diag__score-value {
	font-size: 2.6rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
}

.pc-diag__score-value small {
	color: rgba(255, 255, 255, 0.5);
	font-size: 1.1rem;
	font-weight: 600;
}

.pc-diag__score-label {
	color: var(--pc-sage);
	font-size: 1.05rem;
	font-weight: 700;
}

.pc-diag__verdict {
	/* Pas de max-width : le verdict prolonge visuellement le bandeau de score,
	   les deux doivent avoir exactement la même largeur. */
	margin: 0;
	padding: 24px 28px;
	background: var(--pc-alt);
	border: 1px solid var(--pc-line);
	border-top: 0;
	border-radius: 0 0 4px 4px;
	color: var(--pc-ink);
}

.pc-diag__partial {
	margin: 14px 0 0;
	color: var(--pc-muted);
	font-size: 0.9rem;
}

.pc-diag__flags-title {
	margin: 44px 0 18px;
	font-size: 1.2rem;
	font-weight: 700;
}

.pc-diag__flags {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: flag;
}

.pc-diag__flag {
	position: relative;
	margin-bottom: 14px;
	padding: 20px 24px 20px 62px;
	background: #fff;
	border: 1px solid var(--pc-line);
	border-left: 3px solid var(--pc-muted);
	border-radius: 4px;
	counter-increment: flag;
}

/* L'épaisseur du poids se lit à la couleur : le visiteur doit voir d'un coup
   d'œil ce qui relève de la survie et ce qui relève du confort. */
.pc-diag__flag--w3 {
	border-left-color: #c0392b;
}

.pc-diag__flag--w2 {
	border-left-color: #e08e0b;
}

.pc-diag__flag--w1 {
	border-left-color: var(--pc-sage-dark);
}

.pc-diag__flag::before {
	position: absolute;
	top: 20px;
	left: 24px;
	color: var(--pc-muted);
	font-size: 0.95rem;
	font-weight: 700;
	content: counter(flag);
}

.pc-diag__flag-q {
	margin: 0 0 6px;
	font-weight: 600;
}

.pc-diag__flag-risk {
	margin: 0;
	color: var(--pc-muted);
	font-size: 0.94rem;
}

@media (max-width: 600px) {
	.pc-diag__answers {
		gap: 8px;
	}

	.pc-diag__choice {
		padding: 8px 14px;
		font-size: 0.88rem;
	}
}

/* Question laissée sans réponse au moment du calcul. */
.pc-diag__q--missing {
	margin-left: -16px;
	padding-left: 16px;
	border-left: 3px solid #c0392b;
}

/* Passerelle depuis la carte d'offre vers l'auto-diagnostic. Poussée en bas
   de carte par margin-top:auto pour rester alignée d'une carte à l'autre. */
.pc-offer__link {
	margin-top: auto;
	padding-top: 20px;
	color: var(--pc-accent);
	font-size: 0.94rem;
	font-weight: 600;
	text-decoration: none;
}

.pc-offer__link::after {
	content: ' \2192';
}

.pc-offer__link:hover,
.pc-offer__link:focus {
	color: var(--pc-accent-dark);
	text-decoration: underline;
}

/* Justification du plafonnement : sans elle, un score bridé passe pour un
   bug de calcul. */
.pc-diag__capped {
	margin: 14px 0 0;
	padding-left: 14px;
	border-left: 3px solid #c0392b;
	color: var(--pc-muted);
	font-size: 0.92rem;
}

/* Relance placée à la fin du résultat : séparée par un filet pour qu'elle se
   lise comme une suite proposée, pas comme un dernier point à traiter. */
.pc-diag__cta {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid var(--pc-line);
}

.pc-diag__cta-pitch {
	margin: 0 0 16px;
	font-size: 1.05rem;
}
