/* =============================================================================
   PHYTO VICTIMES — Page profil (parcours guidé)
   ----------------------------------------------------------------------------
   Composants :
   - Intro + stats
   - Stepper sticky (scroll-spy)
   - Card étape (badge, header, checklist, délais, FAQ, témoignage, contact)
   - Mode redirection (Riverains → partenaires)
   - FAB "Être accompagné" + modale
   ============================================================================= */

.pv-profile { background: var(--pv-cream); padding-bottom: 80px; }

/* ---------- Intro + stats ---------- */
.pv-profile__intro {
	padding: 48px 0 8px;
}
.pv-profile__intro-text {
	font-family: var(--pv-font-body);
	font-size: 1.05rem;
	line-height: 1.7;
	color: var(--pv-navy);
	max-width: 820px;
	margin: 0 auto;
	text-align: center;
}
.pv-profile__intro-text p { margin: 0 0 1em; }
.pv-profile__intro-text p:last-child { margin: 0; }

.pv-profile__stats {
	list-style: none;
	margin: 36px auto 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 18px;
	max-width: 900px;
}
.pv-profile__stat {
	background: #fff;
	border-radius: var(--pv-radius-md);
	padding: 24px 18px 22px;
	text-align: center;
	box-shadow: var(--pv-shadow-sm);
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.pv-profile__stat-value {
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.6rem, 2.4vw, 2rem);
	color: var(--pv-teal);
	line-height: 1;
}
.pv-profile__stat-label {
	font-family: var(--pv-font-body);
	font-size: .88rem;
	color: var(--pv-navy);
	line-height: 1.3;
}

/* ---------- Section ressources (vidéos, infographies, CTAs) ---------- */
.pv-profile__resources {
	padding: 16px 0 8px;
}
.pv-profile__resources-title {
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	color: var(--pv-navy);
	text-align: center;
	margin: 0 0 24px;
}
.pv-profile__resources-content {
	max-width: 920px;
	margin: 0 auto 32px;
	font-family: var(--pv-font-body);
	font-size: 1rem;
	line-height: 1.7;
	color: var(--pv-navy);
}
.pv-profile__resources-content p { margin: 0 0 1em; }
.pv-profile__resources-content h2,
.pv-profile__resources-content h3 {
	font-family: var(--pv-font-display);
	font-weight: 700;
	color: var(--pv-navy);
	margin: 1.6em 0 .6em;
}
.pv-profile__resources-content a { color: var(--pv-teal); text-decoration: underline; text-underline-offset: 3px; }
.pv-profile__resources-content img { border-radius: var(--pv-radius-md); margin: 16px 0; max-width: 100%; height: auto; }
/* Embeds vidéo responsifs (iframe YouTube/Vimeo) */
.pv-profile__resources-content iframe,
.pv-profile__resources-content video {
	width: 100%;
	max-width: 920px;
	aspect-ratio: 16 / 9;
	border-radius: var(--pv-radius-md);
	margin: 16px auto;
	display: block;
	border: 0;
}
.pv-profile__resources-content figure { margin: 16px 0; }
.pv-profile__resources-content figcaption { font-size: .85rem; color: var(--pv-grey-600); margin-top: 6px; text-align: center; }

/* ---- CTA Cards (3 à 5 cartes-liens) ---- */
.pv-profile__resources-ctas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
	margin-top: 8px;
}
.pv-cta-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	background: #fff;
	border-radius: var(--pv-radius-md);
	padding: 26px 26px 22px;
	text-decoration: none !important;
	color: var(--pv-navy);
	box-shadow: var(--pv-shadow-sm);
	transition: transform .15s ease, box-shadow .15s ease;
	position: relative;
	overflow: hidden;
	border-top: 4px solid var(--pv-teal);
}
.pv-cta-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--pv-shadow-md);
	color: var(--pv-navy);
}
.pv-cta-card__icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--pv-mint);
	color: var(--pv-navy);
	flex: 0 0 56px;
	margin-bottom: 4px;
}
.pv-cta-card__icon svg {
	width: 100%;
	height: 100%;
	max-width: 36px;
	max-height: 36px;
}
.pv-cta-card__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1 1 auto;
}
.pv-cta-card__title {
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: 1.1rem;
	color: var(--pv-navy);
	line-height: 1.25;
}
.pv-cta-card__desc {
	font-family: var(--pv-font-body);
	font-size: .9rem;
	color: var(--pv-grey-600);
	line-height: 1.55;
}
.pv-cta-card__action {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--pv-font-display);
	font-weight: 600;
	font-size: .95rem;
	color: var(--pv-teal);
	margin-top: auto;
	padding-top: 6px;
	transition: gap .15s ease;
}
.pv-cta-card__action svg { width: 16px; height: 16px; transition: transform .15s ease; }
.pv-cta-card:hover .pv-cta-card__action { gap: 12px; }
.pv-cta-card:hover .pv-cta-card__action svg { transform: translateX(2px); }

/* Variantes d'accent — change le bord, le rond icône et la flèche */
.pv-cta-card--teal   { border-top-color: var(--pv-teal); }
.pv-cta-card--teal   .pv-cta-card__icon { background: var(--pv-mint); color: var(--pv-teal-dark); }
.pv-cta-card--teal   .pv-cta-card__action { color: var(--pv-teal); }

.pv-cta-card--orange { border-top-color: var(--pv-orange); }
.pv-cta-card--orange .pv-cta-card__icon { background: rgba(229, 121, 4, .15); color: var(--pv-orange-dark); }
.pv-cta-card--orange .pv-cta-card__action { color: var(--pv-orange-dark); }

.pv-cta-card--navy { border-top-color: var(--pv-navy); }
.pv-cta-card--navy .pv-cta-card__icon { background: var(--pv-navy); color: #fff; }
.pv-cta-card--navy .pv-cta-card__action { color: var(--pv-navy); }

.pv-cta-card--mint { border-top-color: var(--pv-mint); }
.pv-cta-card--mint .pv-cta-card__icon { background: var(--pv-mint); color: var(--pv-navy); }
.pv-cta-card--mint .pv-cta-card__action { color: var(--pv-navy); }

.pv-cta-card--yellow { border-top-color: var(--pv-yellow); }
.pv-cta-card--yellow .pv-cta-card__icon { background: rgba(246, 206, 104, .35); color: var(--pv-navy); }
.pv-cta-card--yellow .pv-cta-card__action { color: var(--pv-navy); }

.pv-cta-card--coral { border-top-color: var(--pv-coral); }
.pv-cta-card--coral .pv-cta-card__icon { background: rgba(223, 110, 110, .18); color: var(--pv-coral); }
.pv-cta-card--coral .pv-cta-card__action { color: var(--pv-coral); }

/* ---------- Stepper sticky ---------- */
.pv-stepper {
	position: sticky;
	top: 120px; /* sous le header sticky pill */
	z-index: 30;
	background: var(--pv-cream);
	padding: 16px 0;
	margin: 40px 0 16px;
	border-top: 1px solid rgba(0, 40, 62, .06);
	border-bottom: 1px solid rgba(0, 40, 62, .06);
}
.pv-stepper__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 8px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}
.pv-stepper__item { flex: 0 0 auto; }
.pv-stepper__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 16px 8px 8px;
	border-radius: var(--pv-radius-pill);
	background: #fff;
	color: var(--pv-navy);
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: .92rem;
	text-decoration: none;
	box-shadow: 0 2px 8px rgba(0, 40, 62, .06);
	transition: background .15s ease, color .15s ease, transform .15s ease;
	white-space: nowrap;
}
.pv-stepper__link:hover {
	transform: translateY(-1px);
	color: var(--pv-navy);
	background: var(--pv-mint);
}
.pv-stepper__link.is-active {
	background: var(--pv-navy);
	color: #fff;
}
.pv-stepper__num {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--pv-mint);
	color: var(--pv-navy);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: .8rem;
	flex: 0 0 26px;
}
.pv-stepper__link.is-active .pv-stepper__num {
	background: var(--pv-teal);
	color: #fff;
}
.pv-stepper__link.is-complete .pv-stepper__num { background: var(--pv-teal); color: #fff; }

/* ---------- Sections étapes ---------- */
.pv-profile__steps { padding: 8px 0 40px; }

.pv-step {
	background: #fff;
	border-radius: var(--pv-radius-lg);
	padding: 36px 40px 32px;
	margin: 32px 0;
	box-shadow: var(--pv-shadow-sm);
	scroll-margin-top: 200px; /* offset pour ancres sous header + stepper sticky */
}

.pv-step__head {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 22px;
	align-items: start;
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid rgba(0, 40, 62, .08);
}
.pv-step__badge {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: var(--pv-mint);
	color: var(--pv-navy);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 60px;
}
.pv-step__badge svg { width: 28px; height: 28px; }
.pv-step__num {
	display: inline-block;
	font-family: var(--pv-font-display);
	font-weight: 600;
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--pv-teal);
	margin-bottom: 6px;
}
.pv-step__title {
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.4rem, 2.2vw, 1.8rem);
	color: var(--pv-navy);
	margin: 0 0 6px;
	line-height: 1.2;
}
.pv-step__subtitle {
	font-family: var(--pv-font-body);
	font-size: 1rem;
	color: var(--pv-grey-600);
	margin: 0;
}
.pv-step__duration {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--pv-cream);
	color: var(--pv-navy);
	padding: 8px 16px;
	border-radius: var(--pv-radius-pill);
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: .85rem;
	white-space: nowrap;
}
.pv-step__duration svg { width: 16px; height: 16px; color: var(--pv-teal); }

.pv-step__body {
	font-family: var(--pv-font-body);
	font-size: 1rem;
	line-height: 1.7;
	color: var(--pv-navy);
	margin-bottom: 24px;
}
.pv-step__body p { margin: 0 0 1em; }
.pv-step__body p:last-child { margin: 0; }
.pv-step__body strong { color: var(--pv-navy); }
.pv-step__body a { color: var(--pv-teal); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Panels (checklist, délais, FAQ) ---------- */
.pv-step__panel {
	background: var(--pv-cream);
	border-radius: var(--pv-radius-md);
	padding: 22px 26px;
	margin-top: 18px;
}
.pv-step__panel-title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--pv-navy);
	margin: 0 0 16px;
}
.pv-step__panel-title svg { width: 20px; height: 20px; color: var(--pv-teal); flex: 0 0 20px; }
.pv-step__panel-count {
	margin-left: auto;
	font-size: .85rem;
	color: var(--pv-grey-600);
	font-weight: 500;
}

/* ---------- Checklist interactive ---------- */
.pv-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pv-checklist__item {
	background: #fff;
	border-radius: var(--pv-radius-sm);
	padding: 14px 16px;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	transition: background .15s ease;
}
.pv-checklist__item:hover { background: rgba(182, 222, 221, .25); }
.pv-checklist__row {
	flex: 1;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	cursor: pointer;
	min-width: 0;
}
.pv-checklist__cb {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.pv-checklist__check {
	width: 22px;
	height: 22px;
	border-radius: 6px;
	border: 2px solid var(--pv-grey-300);
	background: #fff;
	flex: 0 0 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	transition: background .15s ease, border-color .15s ease;
	margin-top: 2px;
}
.pv-checklist__check svg { width: 14px; height: 14px; opacity: 0; transition: opacity .12s ease; }
.pv-checklist__cb:checked ~ .pv-checklist__check {
	background: var(--pv-teal);
	border-color: var(--pv-teal);
}
.pv-checklist__cb:checked ~ .pv-checklist__check svg { opacity: 1; }
.pv-checklist__cb:focus-visible ~ .pv-checklist__check {
	outline: 2px solid var(--pv-teal);
	outline-offset: 2px;
}
.pv-checklist__content { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1; }
.pv-checklist__name {
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: 1rem;
	color: var(--pv-navy);
}
.pv-checklist__cb:checked ~ .pv-checklist__content .pv-checklist__name {
	text-decoration: line-through;
	color: var(--pv-grey-600);
}
.pv-checklist__help {
	font-family: var(--pv-font-body);
	font-size: .85rem;
	color: var(--pv-grey-600);
	line-height: 1.5;
}
.pv-checklist__criticality {
	font-family: var(--pv-font-display);
	font-weight: 600;
	font-size: .7rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: var(--pv-radius-pill);
	white-space: nowrap;
	align-self: flex-start;
	margin-top: 2px;
}
.pv-checklist__criticality--required    { background: rgba(229, 121, 4, .15); color: var(--pv-orange-dark); }
.pv-checklist__criticality--recommended { background: rgba(0, 175, 156, .15); color: var(--pv-teal-dark); }
.pv-checklist__criticality--optional    { background: var(--pv-grey-100); color: var(--pv-grey-600); }

.pv-checklist__download {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: .82rem;
	color: var(--pv-navy);
	text-decoration: none;
	background: var(--pv-mint);
	padding: 6px 12px;
	border-radius: var(--pv-radius-pill);
	white-space: nowrap;
	align-self: flex-start;
	margin-top: 2px;
	transition: background .15s ease;
}
.pv-checklist__download:hover { background: #a5d3d2 !important; color: var(--pv-navy); }
.pv-checklist__download svg { width: 14px; height: 14px; }

.pv-checklist__progress {
	margin-top: 14px;
	height: 6px;
	background: #fff;
	border-radius: 999px;
	overflow: hidden;
}
.pv-checklist__progress-fill {
	height: 100%;
	background: linear-gradient(90deg, var(--pv-teal), var(--pv-teal-dark));
	border-radius: 999px;
	transition: width .35s cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Délais ---------- */
.pv-delays {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	margin: 0;
}
.pv-delays__item {
	background: #fff;
	border-radius: var(--pv-radius-sm);
	padding: 14px 16px;
	text-align: center;
}
.pv-delays__item dt {
	font-family: var(--pv-font-display);
	font-weight: 600;
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--pv-grey-600);
	margin-bottom: 4px;
}
.pv-delays__item dd {
	margin: 0;
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: 1.1rem;
	color: var(--pv-navy);
}
.pv-delays__item--median {
	background: var(--pv-mint);
	transform: scale(1.04);
}
.pv-delays__item--median dt { color: var(--pv-teal-dark); }

/* ---------- FAQ ---------- */
.pv-faq { display: grid; gap: 8px; }
.pv-faq__item {
	background: #fff;
	border-radius: var(--pv-radius-sm);
	overflow: hidden;
}
.pv-faq__q {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	background: transparent;
	border: 0;
	padding: 16px 20px;
	font-family: var(--pv-font-display);
	font-weight: 600;
	font-size: 1rem;
	color: var(--pv-navy);
	text-align: left;
	cursor: pointer;
	transition: background .15s ease;
}
.pv-faq__q:hover { background: rgba(182, 222, 221, .25) !important; color: var(--pv-navy); }
.pv-faq__q[aria-expanded="true"] {
	background: var(--pv-mint) !important;
	color: var(--pv-navy);
}
.pv-faq__chevron { transition: transform .2s ease; color: var(--pv-teal); }
.pv-faq__chevron svg { width: 16px; height: 16px; }
.pv-faq__q[aria-expanded="true"] .pv-faq__chevron { transform: rotate(180deg); }
.pv-faq__a {
	padding: 16px 20px 18px;
	font-family: var(--pv-font-body);
	font-size: .95rem;
	color: var(--pv-navy);
	line-height: 1.7;
	border-top: 1px solid rgba(0, 40, 62, .06);
}
.pv-faq__a p { margin: 0 0 .8em; }
.pv-faq__a p:last-child { margin: 0; }
.pv-faq__a a { color: var(--pv-teal); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Témoignage ---------- */
.pv-testimonial {
	background: linear-gradient(135deg, rgba(182, 222, 221, .4), rgba(0, 175, 156, .08));
	border-left: 4px solid var(--pv-teal);
	border-radius: var(--pv-radius-md);
	padding: 24px 28px;
	margin-top: 22px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.pv-testimonial__quote {
	position: relative;
	font-family: var(--pv-font-body);
	font-style: italic;
	font-size: 1.05rem;
	line-height: 1.7;
	color: var(--pv-navy);
}
.pv-testimonial__quote blockquote { margin: 0; padding: 0 0 0 40px; }
.pv-testimonial__icon {
	position: absolute;
	left: -4px;
	top: -2px;
	width: 32px;
	height: 32px;
	color: var(--pv-teal);
	opacity: .5;
}
.pv-testimonial__author {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	padding-left: 40px;
}
.pv-testimonial__author img {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 48px;
}
.pv-testimonial__author strong {
	display: block;
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: 1rem;
	color: var(--pv-navy);
}
.pv-testimonial__author span {
	font-family: var(--pv-font-body);
	font-size: .85rem;
	color: var(--pv-grey-600);
}

/* ---------- Contact bottom ---------- */
.pv-step__contact {
	margin-top: 28px;
	padding: 20px 24px;
	background: var(--pv-navy);
	border-radius: var(--pv-radius-md);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}
.pv-step__contact p { margin: 0; font-family: var(--pv-font-body); font-size: .95rem; line-height: 1.5; }
.pv-step__contact strong {
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	display: block;
	margin-bottom: 2px;
	color: #fff;
}
.pv-step__contact-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.pv-step__contact-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: transparent;
	border: 1.5px solid #fff;
	color: #fff;
	padding: 10px 18px;
	border-radius: var(--pv-radius-pill);
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: .9rem;
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
}
.pv-step__contact-btn:hover { background: #fff !important; color: var(--pv-navy); }
.pv-step__contact-btn svg { width: 16px; height: 16px; }
.pv-step__contact-btn--phone { background: var(--pv-orange); border-color: var(--pv-orange); }
.pv-step__contact-btn--phone:hover { background: var(--pv-orange-dark) !important; border-color: var(--pv-orange-dark); color: #fff; }

/* ---------- Mode redirection (Riverains) ---------- */
.pv-profile__redirect { padding: 40px 0; }
.pv-profile__redirect-reason {
	background: #fff;
	border-radius: var(--pv-radius-md);
	padding: 28px 32px;
	margin-bottom: 36px;
	box-shadow: var(--pv-shadow-sm);
}
.pv-profile__redirect-reason h2 {
	font-family: var(--pv-font-display);
	font-weight: 700;
	color: var(--pv-navy);
	margin: 0 0 14px;
}
.pv-profile__partners-title {
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.4rem, 2.4vw, 1.8rem);
	color: var(--pv-navy);
	text-align: center;
	margin: 0 0 28px;
}
.pv-profile__partners {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 24px;
}
.pv-partner-card {
	background: #fff;
	border-radius: var(--pv-radius-md);
	padding: 28px 26px;
	box-shadow: var(--pv-shadow-sm);
	display: flex;
	flex-direction: column;
	gap: 12px;
	transition: transform .15s ease, box-shadow .15s ease;
}
.pv-partner-card:hover { transform: translateY(-3px); box-shadow: var(--pv-shadow-md); }
.pv-partner-card__logo { max-width: 120px; height: auto; }
.pv-partner-card__name {
	font-family: var(--pv-font-display);
	font-weight: 700;
	color: var(--pv-navy);
	margin: 0;
	font-size: 1.15rem;
}
.pv-partner-card__desc {
	font-family: var(--pv-font-body);
	font-size: .92rem;
	color: var(--pv-navy);
	line-height: 1.6;
	margin: 0;
}
.pv-partner-card__actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: auto;
	padding-top: 8px;
}
.pv-partner-card__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--pv-teal);
	font-family: var(--pv-font-display);
	font-weight: 600;
	text-decoration: none;
	font-size: .95rem;
}
.pv-partner-card__link:hover { color: var(--pv-teal-dark); }
.pv-partner-card__link svg { width: 16px; height: 16px; }
.pv-partner-card__email { color: var(--pv-grey-600); font-size: .85rem; text-decoration: none; }
.pv-partner-card__email:hover { color: var(--pv-navy); }

.pv-profile__redirect-help {
	text-align: center;
	margin-top: 32px;
	padding: 20px;
	font-family: var(--pv-font-body);
	color: var(--pv-grey-600);
}
.pv-profile__redirect-help a { color: var(--pv-teal); font-weight: 600; text-decoration: underline; }

/* ====================================================================
   FAB "Être accompagné" — CTA omniprésent
   ==================================================================== */
.pv-fab {
	position: fixed;
	bottom: 24px;
	right: 24px;
	z-index: 80;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 22px 14px 18px;
	border-radius: var(--pv-radius-pill);
	background: var(--pv-orange);
	color: #fff;
	border: 0;
	cursor: pointer;
	font-family: var(--pv-font-display);
	font-weight: 600;
	font-size: 1rem;
	box-shadow: 0 8px 24px rgba(229, 121, 4, .35);
	transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
	animation: pv-fab-pulse 8s ease-in-out infinite;
}
.pv-fab:hover { background: var(--pv-orange-dark) !important; color: #fff !important; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(229, 121, 4, .45); }
.pv-fab svg { width: 20px; height: 20px; }
@keyframes pv-fab-pulse {
	0%, 92%, 100% { box-shadow: 0 8px 24px rgba(229, 121, 4, .35); }
	95% { box-shadow: 0 8px 24px rgba(229, 121, 4, .35), 0 0 0 14px rgba(229, 121, 4, 0); }
}
@media (max-width: 720px) {
	.pv-fab {
		bottom: 88px; /* au-dessus des floating tools mobile */
		right: 12px;
		padding: 12px 18px 12px 14px;
		font-size: .92rem;
	}
}

.pv-fab-modal {
	position: fixed;
	inset: 0;
	z-index: 220;
	background: rgba(0, 40, 62, .55);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	opacity: 0;
	transition: opacity .2s ease;
	pointer-events: none;
}
.pv-fab-modal[hidden] { display: none; }
.pv-fab-modal.is-open { opacity: 1; pointer-events: auto; }
.pv-fab-modal__inner {
	background: #fff;
	border-radius: var(--pv-radius-lg);
	padding: 32px 36px 28px;
	max-width: 520px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
	position: relative;
	transform: scale(.95);
	transition: transform .25s cubic-bezier(.2, .7, .2, 1);
}
.pv-fab-modal.is-open .pv-fab-modal__inner { transform: scale(1); }
.pv-fab-modal__close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--pv-cream) !important;
	color: var(--pv-navy) !important;
	border: 0;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.pv-fab-modal__close:hover, .pv-fab-modal__close:focus { background: var(--pv-mint) !important; color: var(--pv-navy) !important; }
.pv-fab-modal__close svg { width: 18px; height: 18px; }
.pv-fab-modal__inner h2 {
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.3rem, 2vw, 1.6rem);
	color: var(--pv-navy);
	margin: 0 0 8px;
	padding-right: 50px;
}
.pv-fab-modal__lead { font-family: var(--pv-font-body); color: var(--pv-grey-600); margin: 0 0 22px; line-height: 1.5; }
.pv-fab-modal__form { display: grid; gap: 14px; }
.pv-fab-modal__form label { display: flex; flex-direction: column; gap: 6px; }
.pv-fab-modal__form label span { font-family: var(--pv-font-display); font-weight: 500; font-size: .9rem; color: var(--pv-navy); }
.pv-fab-modal__form input,
.pv-fab-modal__form textarea {
	font: inherit;
	font-family: var(--pv-font-body);
	color: var(--pv-navy);
	background: var(--pv-cream);
	border: 1.5px solid transparent;
	border-radius: var(--pv-radius-sm);
	padding: 12px 16px;
	outline: none;
	transition: border-color .15s ease;
}
.pv-fab-modal__form input:focus,
.pv-fab-modal__form textarea:focus { border-color: var(--pv-teal); }
.pv-fab-modal__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	background: var(--pv-orange) !important;
	color: #fff !important;
	border: 0;
	padding: 14px 24px;
	border-radius: var(--pv-radius-pill);
	font-family: var(--pv-font-display);
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
	margin-top: 6px;
	transition: background .15s ease;
}
.pv-fab-modal__submit:hover, .pv-fab-modal__submit:focus { background: var(--pv-orange-dark) !important; color: #fff !important; }
.pv-fab-modal__submit svg { width: 18px; height: 18px; }
.pv-fab-modal__legal { font-family: var(--pv-font-body); font-size: .78rem; color: var(--pv-grey-600); margin: 18px 0 0; line-height: 1.5; text-align: center; }

/* =================================================================
   Responsive
   ================================================================= */
@media (max-width: 880px) {
	.pv-step { padding: 24px 22px; }
	.pv-step__head { grid-template-columns: auto 1fr; gap: 16px; }
	.pv-step__duration { grid-column: 1 / -1; margin-top: 4px; align-self: start; }
	.pv-step__panel { padding: 18px 18px; }
	.pv-checklist__item { flex-wrap: wrap; }
	.pv-checklist__criticality { margin-left: 34px; }
	.pv-checklist__download { margin-left: 34px; }
	.pv-step__contact { padding: 18px 20px; }
	.pv-step__contact-actions { width: 100%; }
	.pv-step__contact-btn { flex: 1; justify-content: center; min-width: 0; }
	.pv-stepper { top: 92px; padding: 12px 0; }
}
@media (max-width: 480px) {
	.pv-step { padding: 20px 16px; border-radius: var(--pv-radius-md); margin: 20px 0; }
	.pv-step__badge { width: 48px; height: 48px; flex: 0 0 48px; }
	.pv-step__badge svg { width: 22px; height: 22px; }
	.pv-step__title { font-size: 1.2rem; }
	.pv-step__panel { padding: 16px 14px; }
	.pv-delays { grid-template-columns: 1fr; }
	.pv-delays__item--median { transform: none; }
	.pv-testimonial { padding: 20px 18px; }
	.pv-testimonial__quote blockquote { padding-left: 32px; font-size: .98rem; }
	.pv-testimonial__author { padding-left: 32px; }
	.pv-fab span { display: none; } /* sur très petit écran, juste l'icône */
	.pv-fab { padding: 14px; }
	.pv-fab-modal__inner { padding: 24px 22px 20px; }
}

/* ============================================================
   Bandeaux 25 août 2026 — pages profils (équipe, avis, cagnotte, FAQ, soutiens)
   Couleurs charte : orange #E56E0B · turquoise #0DAB9C · marine #082740
   ============================================================ */
.pv-profile__team,
.pv-profile__reviews,
.pv-profile__cagnotte,
.pv-profile__faqhl,
.pv-profile__supporters { padding: 48px 0; }
.pv-profile__reviews { background: #f6f8f8; }
.pv-profile__band-title {
	font-size: clamp(1.4rem, 1rem + 1.4vw, 2rem);
	color: #082740; margin: 0 0 28px; text-align: center; font-weight: 800;
}

/* Équipe sur place */
.pv-team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; max-width: 760px; margin: 0 auto; }
.pv-team-card { margin: 0; text-align: center; background: #fff; border: 1px solid #eef1f1; border-radius: 14px; padding: 20px; }
.pv-team-card__photo { width: 120px; height: 120px; object-fit: cover; border-radius: 50%; margin: 0 auto 14px; display: block; border: 3px solid #0DAB9C; }
.pv-team-card__name { display: block; color: #082740; font-size: 1.05rem; }
.pv-team-card__role { display: block; color: #555; font-size: .9rem; margin-top: 2px; }
.pv-team-card__region { display: inline-block; margin-top: 8px; padding: 2px 12px; border-radius: 999px; background: #E56E0B; color: #fff; font-size: .78rem; font-weight: 700; }

/* Leurs avis (piste défilante horizontale) */
.pv-reviews-track { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 2px 18px; }
.pv-review-card { scroll-snap-align: start; flex: 0 0 min(340px, 82%); margin: 0; background: #fff; border-radius: 14px; padding: 24px; border-left: 4px solid #0DAB9C; box-shadow: 0 6px 20px rgba(8,39,64,.06); }
.pv-review-card__quote { color: #333; font-style: italic; margin: 0 0 14px; line-height: 1.55; }
.pv-review-card footer strong { color: #082740; display: block; }
.pv-review-card footer span { color: #777; font-size: .85rem; }

/* Cagnotte */
.pv-cagnotte-card { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; background: linear-gradient(120deg, #0DAB9C, #4b8dbd); color: #fff; border-radius: 18px; padding: 32px 36px; }
.pv-cagnotte-card__text h2 { margin: 0 0 6px; color: #fff; }
.pv-cagnotte-card__text p { margin: 0; opacity: .95; }
.pv-cagnotte-card__btn { background: #E56E0B; color: #fff; font-weight: 700; padding: 14px 26px; border-radius: 999px; text-decoration: none; white-space: nowrap; transition: filter .15s ease; }
.pv-cagnotte-card__btn:hover { filter: brightness(1.08); }

/* FAQ en avant — réutilise .pv-faq existant */
.pv-profile__faqhl .pv-faq { max-width: 760px; margin: 0 auto; }
.pv-profile__faqhl-more { text-align: center; margin-top: 24px; }
.pv-btn-ghost { display: inline-block; border: 2px solid #0DAB9C; color: #0DAB9C; font-weight: 700; padding: 10px 24px; border-radius: 999px; text-decoration: none; transition: background .15s ease, color .15s ease; }
.pv-btn-ghost:hover { background: #0DAB9C; color: #fff; }

/* Soutiens / partenaires financiers */
.pv-supporters { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 28px 40px; }
.pv-supporter img { max-height: 70px; width: auto; filter: grayscale(1); opacity: .75; transition: filter .2s ease, opacity .2s ease; }
.pv-supporter:hover img { filter: grayscale(0); opacity: 1; }

/* Photo d'accueil (hero image) */
.pv-profile__hero-image { max-width: 1040px; margin: 0 auto 8px; padding: 0 20px; }
.pv-profile__hero-image img { width: 100%; height: auto; border-radius: 18px; display: block; }

@media (max-width: 600px) {
	.pv-cagnotte-card { padding: 24px; }
	.pv-cagnotte-card__btn { width: 100%; text-align: center; }
}
.pv-review-card--image{padding:0;border-left:none;background:transparent;overflow:hidden;box-shadow:0 6px 20px rgba(8,39,64,.1);border-radius:14px}
.pv-review-card--image img{width:100%;height:auto;display:block}

/* Kit pro de santé — tableau de téléchargement */
.pv-kit-table { width:100%; border-collapse:collapse; margin:16px 0 24px; font-size:.95rem; }
.pv-kit-table th, .pv-kit-table td { border:1px solid #e6ebec; padding:10px 14px; text-align:left; }
.pv-kit-table thead th { background:#0dab9c; color:#fff; }
.pv-kit-table tbody tr:nth-child(even) { background:#f6f8f8; }
.pv-kit-table a { color:#e56e0b; font-weight:700; }

/* ==========================================================================
   GABARITS CLIENT DU 25/08/2026
   Composition reprise des schémas (blocs à onglet, tuiles, bandeaux pleine
   largeur, cartes équipe) ; filets, typographie et couleurs du site.
   ========================================================================== */

/* Accent par profil : orange par défaut, turquoise pour les Antilles. */
.pv-profile {
	--accent: var(--pv-orange);
	--accent-clair: #fff3e3;
	--accent-tuile: #ffeab4;
	--gouttiere: 44px;      /* blanc réel entre deux blocs */
	--onglet-h: 50px;       /* hauteur de l'onglet, en débord au-dessus du bloc */
}
.pv-profile--turquoise { --accent: var(--pv-teal); --accent-clair: #e0f4f2; --accent-tuile: var(--pv-mint); }

/* ---------- Bloc encadré à onglet ---------- */
.pv-bloc {
	position: relative;
	margin: calc(var(--gouttiere) + var(--onglet-h)) auto 0;
	max-width: 980px;
	background: var(--pv-white);
	border: 2px solid var(--accent);
	border-radius: var(--pv-radius-md);
	border-top-left-radius: 0;
	padding: 30px clamp(20px, 3vw, 36px) clamp(26px, 3vw, 34px);
	box-shadow: var(--pv-shadow-sm);
}
.pv-bloc__onglet {
	position: absolute;
	left: -2px;
	bottom: calc(100% - 2px);
	margin: 0;
	background: var(--accent);
	color: var(--pv-white);
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.05rem, .9rem + .45vw, 1.35rem);
	line-height: 1.2;
	letter-spacing: .01em;
	padding: 13px 26px 12px;
	border-radius: var(--pv-radius-sm) var(--pv-radius-sm) 0 0;
	white-space: nowrap;
	max-width: calc(100% + 4px);
	overflow: hidden;
	text-overflow: ellipsis;
}
.pv-bloc--turquoise { --accent: var(--pv-teal); }
.pv-bloc--orange { --accent: var(--pv-orange); }
.pv-bloc__chapeau {
	font-family: var(--pv-font-body);
	font-size: .95rem;
	line-height: 1.7;
	color: var(--pv-grey-600);
	margin: 0 0 22px;
}
.pv-bloc__chapeau > *:last-child { margin-bottom: 0; }

/* ---------- Introduction + photo détourée ---------- */
.pv-profile__intro { padding: 44px 0 4px; }
.pv-intro {
	max-width: 980px;
	margin: 0 auto;
	font-family: var(--pv-font-body);
	font-size: 1rem;
	line-height: 1.72;
	color: var(--pv-navy);
	text-align: left;
}
.pv-intro__texte > *:first-child { margin-top: 0; }
.pv-intro__texte > *:last-child { margin-bottom: 0; }
.pv-intro__texte h2 {
	font-family: var(--pv-font-display);
	font-size: clamp(1.45rem, 1.1rem + 1.4vw, 2.05rem);
	color: var(--pv-navy);
	margin: 0 0 14px;
}
.pv-intro__texte p { margin: 0 0 1.05em; }
/* Gabarits : la photo détourée vient SOUS le texte, calée à droite, et
   déborde sur le haut du bloc suivant. */
.pv-intro__photo {
	display: block;
	width: clamp(240px, 33vw, 420px);
	margin: 14px 0 0 auto;
	position: relative;
	z-index: 2;
	pointer-events: none;
}
.pv-intro__photo img { width: 100%; height: auto; display: block; }
/* Le bas de la photo tombe pile sur le filet du bloc suivant, comme sur le
   gabarit : 4px de padding bas de la section + la marge haute du bloc. */
.pv-profile__intro:has(.pv-intro__photo) { margin-bottom: calc(-4px - var(--gouttiere) - var(--onglet-h)); }
@media (max-width: 720px) {
	.pv-intro__photo { width: min(300px, 78%); margin: 12px auto 0; }
	.pv-profile__intro:has(.pv-intro__photo) { margin-bottom: 0; }
}

/* ---------- Encadré « Enfants & Familles » ---------- */
.pv-famille { font-family: var(--pv-font-body); font-size: .97rem; line-height: 1.72; color: var(--pv-navy); }
.pv-famille > *:first-child { margin-top: 0; }
.pv-famille > *:last-child { margin-bottom: 0; }
.pv-famille h3 { font-family: var(--pv-font-body); font-size: 1rem; font-weight: 700; color: var(--pv-navy); margin: 22px 0 4px; }
.pv-famille h3:first-child { margin-top: 0; }
.pv-famille p { margin: 0 0 1em; }
.pv-famille a { color: var(--pv-teal); font-weight: 700; text-decoration: underline; }
.pv-famille a:hover { color: var(--pv-teal-dark); }

/* ---------- Une équipe sur place ---------- */
.pv-equipe { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 26px; align-items: start; }
.pv-equipe__kicker { margin: 0; align-self: center; text-align: center; }
.pv-equipe__guillemets { display: block; width: 72px; margin: 0 auto 6px; }
.pv-equipe__guillemets svg { width: 100%; height: auto; display: block; }
.pv-equipe__kicker-texte {
	display: block;
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.2rem);
	line-height: 1.15;
	color: var(--pv-navy);
}
.pv-membre { margin: 0; text-align: center; }
.pv-membre__visuel {
	margin: 0 0 12px;
	height: clamp(150px, 15vw, 205px);
	display: flex;
	align-items: flex-end;
	justify-content: center;
}
.pv-membre__visuel img { max-height: 100%; width: auto; max-width: 100%; height: auto; display: block; object-fit: contain; }
.pv-membre__infos { display: block; font-family: var(--pv-font-body); font-style: normal; }
.pv-membre__nom { display: block; font-size: .98rem; font-weight: 700; color: var(--accent); }
.pv-membre__role { display: block; font-size: .85rem; color: var(--pv-grey-600); margin-top: 1px; }
.pv-membre__ligne { display: block; font-size: .88rem; line-height: 1.55; color: var(--pv-navy); text-decoration: none; word-break: break-word; }
a.pv-membre__ligne:hover { color: var(--accent); text-decoration: underline; }
.pv-membre__nom, .pv-membre__role, .pv-membre__ligne { font-style: normal; }
.pv-membre__ville { display: inline-flex; align-items: center; justify-content: center; gap: 4px; color: var(--pv-grey-600); }
.pv-membre__pin { width: 12px; height: 12px; flex: 0 0 auto; color: var(--pv-navy); }

/* ---------- Tuiles « En savoir plus » ---------- */
.pv-tuiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
@media (max-width: 720px) { .pv-tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 440px) { .pv-tuiles { grid-template-columns: 1fr; } }
.pv-tuile {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
	min-height: 118px;
	padding: 20px 18px;
	background: var(--accent-tuile);
	border-radius: var(--pv-radius-sm);
	text-align: center;
	text-decoration: none;
	transition: filter .15s ease, transform .15s ease;
}
.pv-tuile:hover { filter: brightness(.96); transform: translateY(-2px); }
.pv-tuile__titre { font-family: var(--pv-font-body); font-size: .98rem; font-weight: 600; color: var(--pv-navy); line-height: 1.35; }
.pv-tuile__desc { font-family: var(--pv-font-body); font-size: .82rem; color: var(--pv-grey-600); line-height: 1.5; }

/* ---------- Bouton large de bas de bloc ---------- */
.pv-bouton-large {
	display: block;
	margin-top: 18px;
	padding: 17px 24px;
	background: var(--accent);
	color: var(--pv-white);
	font-family: var(--pv-font-body);
	font-size: 1.02rem;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	border-radius: var(--pv-radius-sm);
	transition: filter .15s ease;
}
.pv-bouton-large:hover { filter: brightness(1.07); color: var(--pv-white); }

/* ---------- Bandeau chiffres clefs (pleine largeur) ---------- */
.pv-bande-chiffres { margin-top: var(--gouttiere); padding: 30px 0; background: var(--accent); }
.pv-profile--turquoise .pv-bande-chiffres { background: var(--pv-mint); }
.pv-chiffres { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 18px; max-width: 980px; margin-inline: auto; }
.pv-chiffre { text-align: center; }
.pv-chiffre__valeur { display: block; font-family: var(--pv-font-display); font-weight: 700; font-size: clamp(1.7rem, 1.2rem + 1.8vw, 2.4rem); color: var(--pv-navy); line-height: 1.1; }
.pv-chiffre__label { display: block; font-family: var(--pv-font-body); font-size: .86rem; font-weight: 700; color: var(--pv-navy); line-height: 1.45; margin-top: 4px; }

/* ---------- Bandeau cagnotte (plat, doré) ---------- */
.pv-profile__cagnotte { padding-top: var(--gouttiere); }
.pv-bande-cagnotte {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	max-width: 980px;
	margin: 0 auto;
	padding: 28px clamp(20px, 3vw, 36px);
	background: var(--pv-yellow);
	border-radius: var(--pv-radius-sm);
	text-decoration: none;
	transition: filter .15s ease;
}
.pv-bande-cagnotte:hover { filter: brightness(.97); }
.pv-bande-cagnotte__titre { display: block; font-family: var(--pv-font-display); font-weight: 700; font-size: clamp(1.1rem, .95rem + .6vw, 1.45rem); color: var(--pv-navy); }
.pv-bande-cagnotte__sous { display: block; font-family: var(--pv-font-body); font-size: .9rem; color: var(--pv-navy); opacity: .85; margin-top: 4px; max-width: 62ch; }
.pv-bande-cagnotte__action { font-family: var(--pv-font-body); font-weight: 700; font-size: .95rem; color: var(--pv-navy); border-bottom: 2px solid var(--pv-navy); white-space: nowrap; }

/* ---------- Questions-Réponses : accordéon + tuile FAQ ---------- */
.pv-qr { display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 24px; align-items: start; }
.pv-qr .pv-faq { max-width: none; margin: 0; }
.pv-tuile--faq { min-height: 150px; }
@media (max-width: 760px) { .pv-qr { grid-template-columns: 1fr; } }

/* Libellé long : il prend la place disponible, le chevron reste dans la carte. */
.pv-faq__q { white-space: normal; }
.pv-faq__q > span:first-child { flex: 1 1 auto; min-width: 0; white-space: normal; }
.pv-faq__chevron { flex: 0 0 auto; }

/* ---------- Soutiens : logos en couleur ---------- */
.pv-profile__supporters .pv-supporters { gap: 22px 34px; }
.pv-profile__supporters .pv-supporter img { filter: none; opacity: 1; max-height: 74px; }

/* ---------- Avis ---------- */
.pv-profile__reviews { background: transparent; padding: 0; }
.pv-profile__reviews .pv-reviews-track { padding-bottom: 8px; }

/* ---------- Rythme vertical commun ---------- */
.pv-profile__famille,
.pv-profile__team,
.pv-profile__resources,
.pv-profile__faqhl,
.pv-profile__supporters { padding: 0; }
/* le bandeau chiffres est pleine largeur : il apporte déjà sa propre respiration */
.pv-bande-chiffres + * .pv-bloc { margin-top: calc(var(--gouttiere) + var(--onglet-h)); }
.pv-profile { padding-bottom: 90px; }

@media (max-width: 600px) {
	.pv-profile { --gouttiere: 30px; --onglet-h: 44px; }
	.pv-bloc { padding: 24px 18px 26px; }
	.pv-bloc__onglet { font-size: 1rem; padding: 11px 18px 10px; }
	.pv-bande-cagnotte { padding: 22px 20px; }
}

/* ==========================================================================
   CHARTE 2026 — profils « Professionnel » et « Professionnel de santé »
   Trame client du 06/11/2026. Portée volontairement limitée à ces deux pages
   par la classe .pv-profile--charte2026 : les six autres profils gardent le
   rendu des gabarits du 25/08 ci-dessus, tant que le client ne les a pas
   validés. Pour basculer une page, voir pv_profil_charte_2026() dans
   page-profile.php.
   ========================================================================== */
/* ----------------------------------------------------------------------
   Neutralisation : la section « gabarits 25/08 » ci-dessus s'applique à tous
   les profils. On annule ici, et seulement dans la charte 2026, ce qu'elle
   impose et que la nouvelle composition ne redéclare pas.
   ---------------------------------------------------------------------- */
.pv-profile--charte2026 .pv-bloc {
	border: 0;
	border-top-left-radius: var(--pv-radius-lg);
}
.pv-profile--charte2026 .pv-intro__photo { width: auto; pointer-events: auto; }
.pv-profile--charte2026.pv-profile__intro:has(.pv-intro__photo),
.pv-profile--charte2026 .pv-profile__intro:has(.pv-intro__photo) { margin-bottom: 0; }
.pv-profile--charte2026 .pv-bande-chiffres { margin-top: var(--gouttiere); }

/* Accent par profil : orange par défaut, turquoise pour les Antilles. */
.pv-profile--charte2026{
	--accent: var(--pv-orange);
	--accent-clair: #fff3e3;
	--accent-tuile: #ffeab4;
	/* Aplat du bandeau chiffres : la teinte claire de l'accent, pas l'accent
	   saturé. Navy sur orange plein donne 4,8:1, navy sur ce jaune 10:1, et la
	   page garde sa couleur chaude. Le profil turquoise a déjà son mint. */
	--accent-bande: var(--pv-yellow);
	--gouttiere: 56px;      /* blanc réel entre deux blocs */
	background: var(--pv-cream);
	padding-bottom: 96px;
}
.pv-profile--charte2026.pv-profile--turquoise{ --accent: var(--pv-teal); --accent-clair: #e0f4f2; --accent-tuile: var(--pv-mint); --accent-bande: var(--pv-mint); }

/* ---------- Bloc : carte blanche, titre au surligneur du hero ---------- */
.pv-profile--charte2026 .pv-bloc{
	position: relative;
	margin: var(--gouttiere) auto 0;
	max-width: 1080px;
	background: var(--pv-white);
	border-radius: var(--pv-radius-lg);
	padding: clamp(30px, 3.2vw, 44px) clamp(22px, 3vw, 44px) clamp(30px, 3vw, 42px);
	box-shadow: var(--pv-shadow-sm);
}
.pv-profile--charte2026 .pv-bloc__titre{
	margin: 0 0 clamp(20px, 2.4vw, 30px);
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem);
	line-height: 1.4;
	color: var(--pv-navy);
}
.pv-profile--charte2026 .pv-bloc--turquoise{ --accent: var(--pv-teal); }
.pv-profile--charte2026 .pv-bloc--orange{ --accent: var(--pv-orange); }
.pv-profile--charte2026 .pv-bloc__chapeau{
	font-family: var(--pv-font-body);
	font-size: .97rem;
	line-height: 1.75;
	color: var(--pv-navy);
	margin: 0 0 26px;
}
.pv-profile--charte2026 .pv-bloc__chapeau > *:last-child{ margin-bottom: 0; }
/* Intertitres à l'intérieur d'un bloc : sous le titre surligné, ils restent
   des sous-titres. Filet d'accent à gauche, jamais de second surligneur. */
.pv-profile--charte2026 .pv-bloc__corps h2,
.pv-profile--charte2026 .pv-bloc__corps h3{
	font-family: var(--pv-font-display);
	font-weight: 700;
	color: var(--pv-navy);
	line-height: 1.25;
	margin: 34px 0 12px;
	padding-left: 14px;
	border-left: 4px solid var(--accent);
}
.pv-profile--charte2026 .pv-bloc__corps h2{ font-size: clamp(1.15rem, 1rem + .6vw, 1.4rem); }
.pv-profile--charte2026 .pv-bloc__corps h3{ font-size: clamp(1.02rem, .96rem + .3vw, 1.15rem); }
.pv-profile--charte2026 .pv-bloc__corps{ font-family: var(--pv-font-body); font-size: .97rem; line-height: 1.75; color: var(--pv-navy); }
.pv-profile--charte2026 .pv-bloc__corps > *:first-child,
.pv-profile--charte2026 .pv-bloc__corps .pv-bloc__chapeau + h2{ margin-top: 0; }

/* ---------- Introduction : bloc deux colonnes, motif du hero d'accueil ---------- */
.pv-profile--charte2026 .pv-profile__intro{ padding: 56px 0 4px; }
.pv-profile--charte2026 .pv-intro{
	max-width: 1080px;
	margin: 0 auto;
	font-family: var(--pv-font-body);
	font-size: 1.02rem;
	line-height: 1.75;
	color: var(--pv-navy);
	text-align: left;
}
/* Sans photo, l'introduction reste à nu sur le papier : la carte blanche à
   ombre n'est pas systématique, elle sert à délimiter un bloc, pas à ouvrir
   une page (arbitrage Walter du 09/11/2026). */
.pv-profile--charte2026 .pv-intro:not(.pv-intro--bloc){ padding: 8px 0 20px; }
.pv-profile--charte2026 .pv-intro__texte > *:first-child{ margin-top: 0; }
.pv-profile--charte2026 .pv-intro__texte > *:last-child{ margin-bottom: 0; }
.pv-profile--charte2026 .pv-intro__texte h2{
	font-family: var(--pv-font-display);
	font-size: clamp(1.6rem, 1.15rem + 1.6vw, 2.25rem);
	line-height: 1.38;
	color: var(--pv-navy);
	margin: 0 0 18px;
	max-width: 26ch;
}
.pv-profile--charte2026 .pv-intro__texte p{ margin: 0 0 1.05em; }
.pv-profile--charte2026 .pv-intro__texte a{ color: var(--pv-teal); font-weight: 600; text-decoration: underline; }
.pv-profile--charte2026 .pv-intro__texte a:hover{ color: var(--pv-teal-dark); }

/* Deux colonnes franches, texte et photo pleine hauteur : le hero d'accueil
   ramené à l'échelle d'une page intérieure. La photo n'est pas détournée. */
.pv-profile--charte2026 .pv-intro--bloc{
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
	align-items: stretch;
	background: var(--pv-white);
	border-radius: var(--pv-radius-lg);
	box-shadow: var(--pv-shadow-sm);
	overflow: hidden;
}
.pv-profile--charte2026 .pv-intro--bloc .pv-intro__texte{
	padding: clamp(28px, 3vw, 44px) clamp(24px, 2.8vw, 44px);
	align-self: center;
	font-size: .97rem;
	line-height: 1.68;
}
.pv-profile--charte2026 .pv-intro--bloc .pv-intro__texte p{ max-width: 60ch; margin: 0 0 .95em; }
.pv-profile--charte2026 .pv-intro--bloc .pv-intro__texte h2{ font-size: clamp(1.5rem, 1.1rem + 1.3vw, 2rem); margin: 0 0 14px; }
.pv-profile--charte2026 .pv-intro--bloc .pv-intro__texte > *:last-child{ margin-bottom: 0; }
.pv-profile--charte2026 .pv-intro__photo{
	margin: 0;
	position: relative;
	min-height: 100%;
}
.pv-profile--charte2026 .pv-intro__photo img{
	width: 100%;
	height: 100%;
	min-height: clamp(280px, 30vw, 420px);
	object-fit: cover;
	object-position: center 32%;
	display: block;
}
@media (max-width: 860px) {
	.pv-profile--charte2026 .pv-intro--bloc{ grid-template-columns: 1fr; }
	.pv-profile--charte2026 .pv-intro--bloc .pv-intro__texte{ order: 2; }
	.pv-profile--charte2026 .pv-intro__photo{ order: 1; }
	.pv-profile--charte2026 .pv-intro__photo img{ min-height: 220px; max-height: 300px; }
}

/* ---------- Encadré « Enfants & Familles » ---------- */
.pv-profile--charte2026 .pv-famille{ font-family: var(--pv-font-body); font-size: .99rem; line-height: 1.75; color: var(--pv-navy); max-width: 86ch; }
.pv-profile--charte2026 .pv-famille > *:first-child{ margin-top: 0; }
.pv-profile--charte2026 .pv-famille > *:last-child{ margin-bottom: 0; }
.pv-profile--charte2026 .pv-famille h3{
	font-family: var(--pv-font-display);
	font-size: 1.12rem;
	font-weight: 700;
	color: var(--pv-navy);
	margin: 26px 0 6px;
}
.pv-profile--charte2026 .pv-famille h3:first-child{ margin-top: 0; }
.pv-profile--charte2026 .pv-famille p{ margin: 0 0 1em; }
.pv-profile--charte2026 .pv-famille a{ color: var(--pv-teal); font-weight: 700; text-decoration: underline; }
.pv-profile--charte2026 .pv-famille a:hover{ color: var(--pv-teal-dark); }

/* ---------- Une équipe sur place ---------- */
.pv-profile--charte2026 .pv-equipe{ display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 26px; align-items: start; }
.pv-profile--charte2026 .pv-equipe__kicker{ margin: 0; align-self: center; text-align: center; }
.pv-profile--charte2026 .pv-equipe__guillemets{ display: block; width: 72px; margin: 0 auto 6px; }
.pv-profile--charte2026 .pv-equipe__guillemets svg{ width: 100%; height: auto; display: block; }
.pv-profile--charte2026 .pv-equipe__kicker-texte{
	display: block;
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.2rem);
	line-height: 1.15;
	color: var(--pv-navy);
}
.pv-profile--charte2026 .pv-membre{ margin: 0; text-align: center; }
.pv-profile--charte2026 .pv-membre__visuel{
	margin: 0 0 12px;
	height: clamp(150px, 15vw, 205px);
	display: flex;
	align-items: flex-end;
	justify-content: center;
}
.pv-profile--charte2026 .pv-membre__visuel img{ max-height: 100%; width: auto; max-width: 100%; height: auto; display: block; object-fit: contain; }
.pv-profile--charte2026 .pv-membre__infos{ display: block; font-family: var(--pv-font-body); font-style: normal; }
.pv-profile--charte2026 .pv-membre__nom{ display: block; font-size: .98rem; font-weight: 700; color: var(--accent); }
.pv-profile--charte2026 .pv-membre__role{ display: block; font-size: .85rem; color: var(--pv-grey-600); margin-top: 1px; }
.pv-profile--charte2026 .pv-membre__ligne{ display: block; font-size: .88rem; line-height: 1.55; color: var(--pv-navy); text-decoration: none; word-break: break-word; }
.pv-profile--charte2026 a.pv-membre__ligne:hover{ color: var(--accent); text-decoration: underline; }
.pv-profile--charte2026 .pv-membre__nom,
.pv-profile--charte2026 .pv-membre__role,
.pv-profile--charte2026 .pv-membre__ligne{ font-style: normal; }
.pv-profile--charte2026 .pv-membre__ville{ display: inline-flex; align-items: center; justify-content: center; gap: 4px; color: var(--pv-grey-600); }
.pv-profile--charte2026 .pv-membre__pin{ width: 12px; height: 12px; flex: 0 0 auto; color: var(--pv-navy); }

/* ---------- Tuiles « En savoir plus » ----------
   Trame : trois tuiles photo, titre en blanc sur le bas de l'image, pastille
   « Lire + ». Sans photo, la tuile retombe sur un picto Fanny sur fond clair. */
.pv-profile--charte2026 .pv-tuiles{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 760px) { .pv-profile--charte2026 .pv-tuiles{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .pv-profile--charte2026 .pv-tuiles{ grid-template-columns: 1fr; } }

.pv-profile--charte2026 .pv-tuile{
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 196px;
	border-radius: var(--pv-radius-md);
	overflow: hidden;
	text-decoration: none;
	isolation: isolate;
	transition: transform .18s ease, box-shadow .18s ease;
}
.pv-profile--charte2026 .pv-tuile:hover,
.pv-profile--charte2026 .pv-tuile:focus-visible{ transform: translateY(-3px); box-shadow: var(--pv-shadow-md); outline: none; }

.pv-profile--charte2026 .pv-tuile__media{ position: absolute; inset: 0; z-index: -2; }
.pv-profile--charte2026 .pv-tuile__media img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.pv-profile--charte2026 .pv-tuile--photo{ background: var(--pv-navy); }
.pv-profile--charte2026 .pv-tuile--photo::before{
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(0, 40, 62, .18) 0%, rgba(0, 40, 62, .52) 48%, rgba(0, 40, 62, .90) 100%);
}
.pv-profile--charte2026 .pv-tuile--photo .pv-tuile__titre{ color: #fff; text-shadow: 0 1px 10px rgba(0, 40, 62, .5); }
.pv-profile--charte2026 .pv-tuile--photo .pv-tuile__desc{ color: rgba(255, 255, 255, .88); }

.pv-profile--charte2026 .pv-tuile--picto{ background: var(--accent-clair); justify-content: center; }
.pv-profile--charte2026 .pv-tuile__picto{ display: block; width: 76px; height: 76px; margin: 0 auto 4px; }
.pv-profile--charte2026 .pv-tuile__picto svg{ width: 100%; height: 100%; display: block; }

.pv-profile--charte2026 .pv-tuile__corps{
	position: relative;
	display: grid;
	justify-items: center;
	gap: 12px;
	padding: 20px 16px 22px;
	text-align: center;
}
.pv-profile--charte2026 .pv-tuile__titre{
	font-family: var(--pv-font-display);
	font-size: 1.08rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--pv-navy);
}
.pv-profile--charte2026 .pv-tuile__desc{ font-family: var(--pv-font-body); font-size: .84rem; line-height: 1.5; color: var(--pv-grey-600); }
/* Pastille des tuiles : plus compacte que la pastille de bandeau. */
.pv-profile--charte2026 .pv-tuile .pv-pastille{
	font-size: .95rem;
	gap: 10px;
	padding: 6px 6px 6px 20px;
	align-self: center;
}
.pv-profile--charte2026 .pv-tuile .pv-pastille__cercle{ width: 28px; height: 28px; flex: 0 0 28px; }
.pv-profile--charte2026 .pv-tuile .pv-pastille__cercle svg{ width: 13px; height: 13px; }

/* ---------- Barre d'action en bas de bloc (navy, pleine largeur du bloc) ---------- */
.pv-profile--charte2026 .pv-bouton-large{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(18px, 3vw, 40px);
	margin-top: 22px;
	padding: 18px clamp(20px, 3vw, 32px);
	background: var(--pv-navy);
	border-radius: var(--pv-radius-md);
	text-decoration: none;
	transition: background .15s ease;
}
.pv-profile--charte2026 .pv-bouton-large:hover{ background: #003b5c; }
.pv-profile--charte2026 .pv-bouton-large__texte{
	font-family: var(--pv-font-display);
	font-size: clamp(1.02rem, .95rem + .3vw, 1.2rem);
	font-weight: 700;
	color: #fff;
	text-align: center;
}
.pv-profile--charte2026 .pv-bouton-large .pv-pastille{
	font-size: .95rem;
	gap: 10px;
	padding: 6px 6px 6px 20px;
	background: transparent;
	border-color: #fff;
	color: #fff;
}
.pv-profile--charte2026 .pv-bouton-large .pv-pastille__cercle{ width: 28px; height: 28px; flex: 0 0 28px; background: #fff; color: var(--pv-navy); }
.pv-profile--charte2026 .pv-bouton-large .pv-pastille__cercle svg{ width: 13px; height: 13px; }
.pv-profile--charte2026 .pv-bouton-large:hover .pv-pastille{ background: #fff; color: var(--pv-navy); }
.pv-profile--charte2026 .pv-bouton-large:hover .pv-pastille__cercle{ background: var(--pv-navy); color: #fff; }
@media (max-width: 560px) {
	.pv-profile--charte2026 .pv-bouton-large{ flex-direction: column; gap: 14px; }
}

/* ---------- Bandeau chiffres clefs (pleine largeur, pictos Fanny) ---------- */
.pv-profile--charte2026 .pv-bande-chiffres{ margin-top: var(--gouttiere); padding: 46px 0; background: var(--accent-bande); }
.pv-profile--charte2026.pv-profile--turquoise .pv-bande-chiffres{ background: var(--pv-mint); }
.pv-profile--charte2026 .pv-chiffres{
	list-style: none;
	margin: 0 auto;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 30px 18px;
	max-width: 1080px;
}
.pv-profile--charte2026 .pv-chiffre{ text-align: center; }
.pv-profile--charte2026 .pv-chiffre__picto{ display: block; width: 88px; height: 88px; margin: 0 auto 10px; }
.pv-profile--charte2026 .pv-chiffre__picto svg{ width: 100%; height: 100%; display: block; }
/* Les pictos Fanny portent des aplats teal : sur l'orange, ils perdent en
   lisibilité. On les ramène au navy de la charte, comme sur la trame. */
.pv-profile--charte2026 .pv-bande-chiffres .pv-chiffre__picto svg [fill="#00AF9C"],
.pv-profile--charte2026 .pv-bande-chiffres .pv-chiffre__picto svg [fill="#00af9c"]{ fill: var(--pv-navy); }
.pv-profile--charte2026.pv-profile--turquoise .pv-bande-chiffres .pv-chiffre__picto svg [fill="#00AF9C"],
.pv-profile--charte2026.pv-profile--turquoise .pv-bande-chiffres .pv-chiffre__picto svg [fill="#00af9c"]{ fill: var(--pv-teal-dark); }
.pv-profile--charte2026 .pv-chiffre__valeur{
	display: block;
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.9rem, 1.3rem + 2vw, 2.7rem);
	color: var(--pv-navy);
	line-height: 1.05;
}
.pv-profile--charte2026 .pv-chiffre__label{
	display: block;
	font-family: var(--pv-font-body);
	font-size: .88rem;
	font-weight: 700;
	color: var(--pv-navy);
	line-height: 1.45;
	margin-top: 6px;
	max-width: 28ch;
	margin-inline: auto;
}

/* ---------- Avis : carrousel à pastilles ---------- */
.pv-profile--charte2026 .pv-profile__reviews{ background: transparent; padding: 0; }
.pv-profile--charte2026 .pv-profile__reviews .pv-reviews-track{
	gap: 24px;
	padding: 4px 2px 10px;
	scrollbar-width: none;
}
.pv-profile--charte2026 .pv-profile__reviews .pv-reviews-track::-webkit-scrollbar{ display: none; }
.pv-profile--charte2026 .pv-profile__reviews .pv-review-card{
	flex: 0 0 calc((100% - 48px) / 3);
	border-radius: var(--pv-radius-md);
	box-shadow: var(--pv-shadow-sm);
	border-left: 0;
}
@media (max-width: 860px) { .pv-profile--charte2026 .pv-profile__reviews .pv-review-card{ flex: 0 0 calc((100% - 24px) / 2); } }
@media (max-width: 560px) { .pv-profile--charte2026 .pv-profile__reviews .pv-review-card{ flex: 0 0 86%; } }
.pv-profile--charte2026 .pv-profile__reviews .pv-review-card--image{ background: transparent; }
.pv-profile--charte2026 .pv-profile__reviews .pv-review-card--image img{ width: 100%; height: auto; display: block; }

.pv-profile--charte2026 .pv-reviews-points{ display: flex; justify-content: center; gap: 10px; margin-top: 20px; }
.pv-profile--charte2026 .pv-reviews-point{
	width: 12px; height: 12px;
	padding: 0;
	border: 2px solid var(--accent);
	border-radius: 50%;
	background: transparent !important;
	cursor: pointer;
	transition: background .15s ease, transform .15s ease;
}
.pv-profile--charte2026 .pv-reviews-point.is-active{ background: var(--accent) !important; transform: scale(1.1); }
.pv-profile--charte2026 .pv-reviews-point:focus-visible{ outline: 2px solid var(--pv-navy); outline-offset: 3px; }

/* ---------- Nouveautés : carte oblique (motif newsletter de l'accueil) ---------- */
.pv-profile--charte2026 .pv-profile__nouveaute{
	padding: calc(var(--gouttiere) + 16px) 0 calc(var(--gouttiere) + 24px);
	overflow: clip;
}
.pv-profile--charte2026 .pv-nouveaute{
	position: relative;
	display: grid;
	grid-template-columns: 1fr 240px;
	gap: 40px;
	align-items: center;
	max-width: 1000px;
	margin: 0 auto;
	padding: 48px clamp(26px, 4vw, 60px) 52px;
	background: var(--pv-teal);
	color: #fff;
	border-radius: 22px;
	box-shadow: 0 6px 22px rgba(0, 40, 62, .28);
	transform: rotate(-2.66deg);
	transform-origin: center;
}
.pv-profile--charte2026 .pv-nouveaute__titre{
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.7rem, 1.2rem + 1.8vw, 2.5rem);
	color: #fff;
	line-height: 1.08;
	margin: 0 0 12px;
}
.pv-profile--charte2026 .pv-nouveaute__texte{ font-family: var(--pv-font-body); font-size: .99rem; line-height: 1.7; color: #fff; }
.pv-profile--charte2026 .pv-nouveaute__texte > *:first-child{ margin-top: 0; }
.pv-profile--charte2026 .pv-nouveaute__texte > *:last-child{ margin-bottom: 0; }
.pv-profile--charte2026 .pv-nouveaute__texte a{ color: #fff; text-decoration: underline; }
.pv-profile--charte2026 .pv-nouveaute__lien{ margin-top: 24px; }
.pv-profile--charte2026 .pv-nouveaute__lien.pv-pastille--blanc .pv-pastille__cercle{ background: var(--pv-teal); color: #fff; }
.pv-profile--charte2026 .pv-nouveaute__lien.pv-pastille--blanc:hover{ background: var(--pv-navy); color: #fff; }
.pv-profile--charte2026 .pv-nouveaute__lien.pv-pastille--blanc:hover .pv-pastille__cercle{ background: #fff; color: var(--pv-navy); }
.pv-profile--charte2026 .pv-nouveaute__art{
	/* Le parent porte rotate(-2.66°) : +7.16° relatif pour +4.5° absolu, comme
	   l'illustration de la newsletter de l'accueil. */
	transform: rotate(7.16deg);
	transform-origin: center;
}
.pv-profile--charte2026 .pv-nouveaute__art svg{ width: 100%; max-width: 220px; height: auto; margin-left: auto; display: block; }
@media (max-width: 820px) {
	.pv-profile--charte2026 .pv-nouveaute{ grid-template-columns: 1fr; gap: 26px; text-align: left; }
	.pv-profile--charte2026 .pv-nouveaute__art{ justify-self: center; }
	.pv-profile--charte2026 .pv-nouveaute__art svg{ margin: 0 auto; max-width: 170px; }
}

/* ---------- Bandeau soutien (navy pleine largeur) ---------- */
.pv-profile--charte2026 .pv-profile__cagnotte{ padding-top: var(--gouttiere); }
.pv-profile--charte2026 .pv-bande-soutien{ background: var(--pv-navy); color: #fff; padding: 52px 0; }
.pv-profile--charte2026 .pv-bande-soutien__inner{
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(220px, 300px);
	gap: clamp(26px, 4vw, 56px);
	align-items: center;
	max-width: 1080px;
}
.pv-profile--charte2026 .pv-bande-soutien__titre{
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.6rem, 1.15rem + 1.6vw, 2.3rem);
	line-height: 1.18;
	color: #fff;
	margin: 0 0 16px;
	max-width: 18ch;
}
.pv-profile--charte2026 .pv-bande-soutien__sous{ font-family: var(--pv-font-body); font-size: .97rem; line-height: 1.7; color: rgba(255, 255, 255, .92); max-width: 60ch; }
.pv-profile--charte2026 .pv-bande-soutien__sous > *:first-child{ margin-top: 0; }
.pv-profile--charte2026 .pv-bande-soutien__sous > *:last-child{ margin-bottom: 0; }
.pv-profile--charte2026 .pv-bande-soutien__sous strong{ color: #fff; }
.pv-profile--charte2026 .pv-bande-soutien__sous a{ color: var(--pv-mint); text-decoration: underline; }
.pv-profile--charte2026 .pv-bande-soutien__action{ display: grid; justify-items: center; gap: 18px; }
.pv-profile--charte2026 .pv-bande-soutien__picto{ display: block; width: clamp(150px, 17vw, 210px); }
.pv-profile--charte2026 .pv-bande-soutien__picto svg{ width: 100%; height: auto; display: block; }
/* Picto Fanny sur fond navy : les tracés sombres passent en blanc, les
   aplats teal restent. */
.pv-profile--charte2026 .pv-bande-soutien__picto svg [fill="#00283E"],
.pv-profile--charte2026 .pv-bande-soutien__picto svg [fill="#00283e"],
.pv-profile--charte2026 .pv-bande-soutien__picto svg [stroke="#00283E"],
.pv-profile--charte2026 .pv-bande-soutien__picto svg [stroke="#00283e"]{ fill: #fff; stroke: #fff; }
@media (max-width: 820px) {
	.pv-profile--charte2026 .pv-bande-soutien__inner{ grid-template-columns: 1fr; }
	.pv-profile--charte2026 .pv-bande-soutien__titre{ max-width: none; }
}

/* ---------- Questions-Réponses : accordéon + picto + bouton FAQ ---------- */
.pv-profile--charte2026 .pv-qr{ display: grid; grid-template-columns: minmax(0, 1fr) minmax(200px, 260px); gap: clamp(24px, 4vw, 48px); align-items: center; }
.pv-profile--charte2026 .pv-qr .pv-faq{ max-width: none; margin: 0; }
.pv-profile--charte2026 .pv-qr__aside{ display: grid; justify-items: center; gap: 16px; }
.pv-profile--charte2026 .pv-qr__picto{ display: block; width: clamp(120px, 14vw, 170px); }
.pv-profile--charte2026 .pv-qr__picto svg{ width: 100%; height: auto; display: block; }
.pv-profile--charte2026 .pv-qr .pv-pastille{ font-size: 1rem; padding: 8px 8px 8px 24px; gap: 12px; }
.pv-profile--charte2026 .pv-qr .pv-pastille__cercle{ width: 32px; height: 32px; flex: 0 0 32px; }
.pv-profile--charte2026 .pv-qr .pv-pastille__cercle svg{ width: 14px; height: 14px; }
@media (max-width: 760px) { .pv-profile--charte2026 .pv-qr{ grid-template-columns: 1fr; } }

/* Libellé long : il prend la place disponible, le chevron reste dans la carte. */
.pv-profile--charte2026 .pv-faq__q{ white-space: normal; }
.pv-profile--charte2026 .pv-faq__q > span:first-child{ flex: 1 1 auto; min-width: 0; white-space: normal; }
.pv-profile--charte2026 .pv-faq__chevron{ flex: 0 0 auto; }

/* ---------- Soutiens : logos en couleur ---------- */
.pv-profile--charte2026 .pv-profile__supporters .pv-supporters{ gap: 26px 44px; }
.pv-profile--charte2026 .pv-profile__supporters .pv-supporter img{ filter: none; opacity: 1; max-height: 78px; width: auto; }

/* ---------- Rythme vertical commun ---------- */
.pv-profile--charte2026 .pv-profile__famille,
.pv-profile--charte2026 .pv-profile__team,
.pv-profile--charte2026 .pv-profile__resources,
.pv-profile--charte2026 .pv-profile__faqhl,
.pv-profile--charte2026 .pv-profile__supporters{ padding: 0; }
/* Le bandeau chiffres est pleine largeur : il apporte sa propre respiration. */

@media (max-width: 600px) {
	.pv-profile--charte2026{ --gouttiere: 36px; }
	.pv-profile--charte2026 .pv-bloc{ padding: 26px 18px 28px; border-radius: var(--pv-radius-md); }
	.pv-profile--charte2026 .pv-intro--bloc{ border-radius: var(--pv-radius-md); }
	.pv-profile--charte2026 .pv-bande-soutien{ padding: 40px 0; }
	.pv-profile--charte2026 .pv-nouveaute{ padding: 36px 24px 40px; }
}

/* ---------- Bloc nu : titre surligné, contenu à même le papier ----------
   La carte blanche groupe un contenu dense (tableau, accordéon, logos). Pour
   du texte ou des objets qui portent déjà leur fond, elle est de trop. */
.pv-profile--charte2026 .pv-bloc--nu {
	background: transparent;
	box-shadow: none;
	padding-left: 0;
	padding-right: 0;
	padding-bottom: 0;
}

/* ---------- Tuiles « En savoir plus » : format de la trame ----------
   Plus larges que hautes, titre bas, pastille blanche à filet teal. */
.pv-profile--charte2026 .pv-tuile { min-height: 168px; }
.pv-profile--charte2026 .pv-tuile--photo::before {
	background: linear-gradient(180deg, rgba(0, 40, 62, .12) 0%, rgba(0, 40, 62, .42) 46%, rgba(0, 40, 62, .78) 100%);
}
.pv-profile--charte2026 .pv-tuile__corps { gap: 10px; padding: 18px 16px 20px; }
.pv-profile--charte2026 .pv-tuile .pv-pastille--blanc {
	background: #fff;
	border-color: var(--pv-teal);
	color: var(--pv-teal-dark);
	font-weight: 700;
}
.pv-profile--charte2026 .pv-tuile .pv-pastille--blanc .pv-pastille__cercle { background: var(--pv-teal); color: #fff; }
.pv-profile--charte2026 .pv-tuile:hover .pv-pastille--blanc { background: var(--pv-teal); color: #fff; }
.pv-profile--charte2026 .pv-tuile:hover .pv-pastille--blanc .pv-pastille__cercle { background: #fff; color: var(--pv-teal-dark); }

/* ---------- Avis : carrousel de texte, deux à la fois ----------
   Les avis étaient des captures d'écran, illisibles en petit. Ils passent en
   texte : lisible, accessible, et éditable en back-office. */
.pv-profile--charte2026 .pv-profile__reviews .pv-reviews-track {
	gap: 24px;
	scroll-snap-type: x mandatory;
	padding: 4px 2px 6px;
}
.pv-profile--charte2026 .pv-profile__reviews .pv-review-card {
	flex: 0 0 calc((100% - 24px) / 2);
	scroll-snap-align: start;
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 34px clamp(22px, 2.4vw, 34px) 28px;
	background: var(--pv-white);
	border: 0;
	border-radius: var(--pv-radius-lg);
	box-shadow: var(--pv-shadow-sm);
}
.pv-profile--charte2026 .pv-review-card__guillemets { display: block; width: 52px; flex: 0 0 auto; }
.pv-profile--charte2026 .pv-review-card__guillemets svg { width: 100%; height: auto; display: block; }
.pv-profile--charte2026 .pv-review-card__quote {
	margin: 0;
	font-style: normal;
	font-family: var(--pv-font-body);
	font-size: 1rem;
	line-height: 1.72;
	color: var(--pv-navy);
	flex: 1 1 auto;
}
.pv-profile--charte2026 .pv-review-card footer {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px;
	font-family: var(--pv-font-display);
	font-style: normal;
	border-top: 2px solid var(--accent-clair);
	padding-top: 14px;
}
.pv-profile--charte2026 .pv-review-card footer strong { font-size: 1.02rem; font-weight: 700; color: var(--accent); }
.pv-profile--charte2026 .pv-review-card footer span { font-family: var(--pv-font-body); font-size: .85rem; color: var(--pv-grey-600); }
@media (max-width: 760px) {
	.pv-profile--charte2026 .pv-profile__reviews .pv-review-card { flex: 0 0 88%; }
}
.pv-profile--charte2026 .pv-reviews-points { margin-top: 22px; }

/* Navigation du carrousel d'avis : motif du carrousel d'actualités de l'accueil. */
.pv-profile--charte2026 .pv-reviews-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	margin-top: 24px;
}
.pv-profile--charte2026 .pv-reviews-points { margin-top: 0; }
.pv-profile--charte2026 .pv-reviews-btn {
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 50%;
	background: var(--pv-mint) !important;
	color: var(--pv-navy);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	flex: 0 0 42px;
	transition: background .15s ease, opacity .15s ease;
}
.pv-profile--charte2026 .pv-reviews-btn:hover:not(:disabled),
.pv-profile--charte2026 .pv-reviews-btn:focus-visible:not(:disabled) { background: #a5d3d2 !important; outline: none; }
.pv-profile--charte2026 .pv-reviews-btn:disabled { opacity: .35; cursor: not-allowed; }
.pv-profile--charte2026 .pv-reviews-btn svg { width: 18px; height: 18px; }

/* ==========================================================================
   HERO DE PROFIL — remplace le bandeau de titre
   Arbitrage Walter du 09/11/2026 : empiler le bandeau photo des pages
   classiques et une bande hero faisait deux entrées de page et deux photos.
   Sur un profil en charte 2026 qui a une photo, le bandeau saute et le hero
   porte le fil d'Ariane, le titre et l'introduction.
   Le panneau est navy et non teal : du texte blanc sur teal tombe à 2,8:1,
   ce qui ne passe pas en AA pour du texte courant.
   ========================================================================== */
.pv-profile--charte2026 .pv-profile__intro--hero {
	padding: 0;
	margin-top: calc(-104px - 16px);   /* le pill du header flotte au-dessus */
}
.pv-profile--charte2026 .pv-intro-bande { width: 100%; }
.pv-profile--charte2026.pv-profile .pv-profile__intro--hero .pv-intro {
	max-width: none;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	align-items: stretch;
	background: var(--pv-navy);
	border-radius: 0;
	box-shadow: none;
	overflow: hidden;
}

/* Le texte est calé sur la grille du site : seule la bande est pleine. */
.pv-profile--charte2026.pv-profile .pv-profile__intro--hero .pv-intro__texte {
	align-self: center;
	color: #fff;
	padding-top: 164px;
	padding-bottom: clamp(44px, 4.4vw, 76px);
	padding-right: clamp(28px, 4vw, 72px);
	padding-left: max(var(--pv-gutter), calc((100vw - var(--pv-container)) / 2 + var(--pv-gutter)));
}
.pv-profile--charte2026 .pv-profile__intro--hero .pv-intro__texte p { color: rgba(255, 255, 255, .92); max-width: 56ch; }
.pv-profile--charte2026 .pv-profile__intro--hero .pv-intro__texte a { color: var(--pv-mint); }
.pv-profile--charte2026 .pv-profile__intro--hero .pv-intro__texte a:hover { color: #fff; }

.pv-profile--charte2026 .pv-profile-hero__fil {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	font-family: var(--pv-font-body);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .08em;
}
.pv-profile--charte2026 .pv-profile-hero__crumb { color: rgba(255, 255, 255, .78); text-decoration: none; }
.pv-profile--charte2026 .pv-profile-hero__crumb:hover { color: #fff; }
.pv-profile--charte2026 .pv-profile-hero__crumb.is-current { color: var(--pv-orange); }
.pv-profile--charte2026 .pv-profile-hero__sep { color: rgba(255, 255, 255, .45); }

.pv-profile--charte2026 .pv-profile-hero__titre {
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.9rem, 1.25rem + 2.1vw, 2.75rem);
	line-height: 1.36;
	color: #fff;
	margin: 0 0 22px;
	max-width: 24ch;
	text-wrap: balance;
}
/* Le fil d'Ariane est un repère, pas un lien de contenu : pas de soulignement. */
.pv-profile--charte2026 .pv-profile-hero__fil a { text-decoration: none; }

/* La photo est détachée du flux : sinon c'est elle qui impose la hauteur de la
   bande, et la version portrait du cliché donnait 960 px. */
.pv-profile--charte2026 .pv-profile__intro--hero .pv-intro__photo {
	position: relative;
	width: auto;
	min-height: clamp(360px, 36vw, 540px);
}
.pv-profile--charte2026 .pv-profile__intro--hero .pv-intro__photo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	min-height: 0;
	object-fit: cover;
	object-position: center 38%;
}

@media (max-width: 1100px) {
	.pv-profile--charte2026 .pv-profile__intro--hero { margin-top: calc(-76px - 12px); }
	.pv-profile--charte2026.pv-profile .pv-profile__intro--hero .pv-intro__texte { padding-top: 136px; }
}
@media (max-width: 860px) {
	.pv-profile--charte2026.pv-profile .pv-profile__intro--hero .pv-intro { grid-template-columns: 1fr; }
	.pv-profile--charte2026.pv-profile .pv-profile__intro--hero .pv-intro__texte {
		order: 2;
		padding: 34px var(--pv-gutter) 40px;
	}
	.pv-profile--charte2026 .pv-profile__intro--hero .pv-intro__photo { order: 1; min-height: 260px; }
	.pv-profile--charte2026 .pv-profile-hero__titre { max-width: none; }
}
@media (max-width: 540px) {
	.pv-profile--charte2026 .pv-profile__intro--hero { margin-top: calc(-68px - 12px); }
}
