/* =============================================================================
   PHYTO VICTIMES — Charte graphique (variables & base typography)
   ============================================================================= */

/* ------------------------------------------------------------------------
   Typo PV forcée partout — override Elementor + widgets tiers.
   Elementor définit ses fonts via les variables --e-global-typography-*
   sur la classe .elementor-kit-XXXX. On les redéclare avec une spécificité
   supérieure pour qu'elles cascadent dans tous les widgets, puis on
   neutralise les font-family inline les plus courantes au cas où.
   ------------------------------------------------------------------------ */
:root,
html body[class*="elementor-kit-"],
[class*="elementor-kit-"] {
	--e-global-typography-primary-font-family:   'League Spartan', 'Helvetica Neue', Arial, sans-serif !important;
	--e-global-typography-secondary-font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif !important;
	--e-global-typography-text-font-family:      'Montserrat', 'Helvetica Neue', Arial, sans-serif !important;
	--e-global-typography-accent-font-family:    'League Spartan', 'Helvetica Neue', Arial, sans-serif !important;
}

/* Headings : League Spartan partout (Elementor, widgets thim-*, contenu page) */
.elementor h1, .elementor h2, .elementor h3, .elementor h4, .elementor h5, .elementor h6,
.elementor .elementor-heading-title,
.elementor .thim-box .thim-box-title,
.elementor .elementor-widget-heading,
.elementor-widget-thim-box .elementor-widget-container,
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6,
.pv-page-content h1, .pv-page-content h2, .pv-page-content h3, .pv-page-content h4, .pv-page-content h5, .pv-page-content h6 {
	font-family: var(--pv-font-display) !important;
}

/* Body / paragraphes / listes : Montserrat */
.elementor-widget-text-editor,
.elementor-widget-text-editor *,
.elementor p,
.elementor li,
.elementor td,
.elementor .thim-box .thim-box-text,
.entry-content p, .entry-content li, .entry-content td,
.pv-page-content p, .pv-page-content li, .pv-page-content td,
.give-form *,
.ninja-forms-form * {
	font-family: var(--pv-font-body) !important;
}

/* Boutons Elementor : League Spartan (titres-like) */
.elementor-button,
.elementor-button-text,
.elementor .thim-box-button,
.elementor-widget-button .elementor-button {
	font-family: var(--pv-font-display) !important;
}

/* Réserve nos propres composants : ils gardent leurs polices déclarées localement */
.pv-header *, .pv-footer *, .pv-megamenu *,
.pv-page-hero *, .pv-floating-tools *, .pv-a11y-panel *,
.pv-search-overlay *,
.pv-actu *, .pv-actions *, .pv-profile-card *,
.pv-newsletter *, .pv-support *, .pv-social * {
	/* Laisse les déclarations propres au composant prendre le dessus */
}

/* ------------------------------------------------------------------------
   Kill-switch : le thème parent `hello-elementor/reset.css` force
   `button:hover/focus { background-color:#c36 }` (rose magenta) sur TOUS
   les `<button>` du site. On neutralise ce comportement sur tous nos
   composants PV — chaque composant déclare ses propres états hover/focus.
   ------------------------------------------------------------------------ */
.pv-header a:hover, .pv-header a:focus, .pv-header a:focus-visible,
.pv-header button:hover, .pv-header button:focus, .pv-header button:focus-visible,
.pv-footer a:hover, .pv-footer a:focus, .pv-footer a:focus-visible,
.pv-footer button:hover, .pv-footer button:focus,
.pv-megamenu a:hover, .pv-megamenu a:focus, .pv-megamenu a:focus-visible,
.pv-megamenu button:hover, .pv-megamenu button:focus,
.pv-floating-tools a:hover, .pv-floating-tools button:hover,
.pv-floating-tools button:focus, .pv-floating-tools button:focus-visible,
.pv-drawer button:hover, .pv-drawer button:focus, .pv-drawer button:focus-visible,
.pv-newsletter button:hover, .pv-newsletter button:focus, .pv-newsletter button:focus-visible,
.pv-actu button:hover, .pv-actu button:focus, .pv-actu button:focus-visible,
.pv-search-overlay button:hover, .pv-search-overlay button:focus, .pv-search-overlay button:focus-visible,
.pv-filter-bar button:hover, .pv-filter-bar button:focus,
.pv-archive button:hover, .pv-archive button:focus,
.pv-page-hero a:hover, .pv-page-hero a:focus,
.pv-a11y-panel button:hover, .pv-a11y-panel button:focus,
.pv-burger:hover, .pv-burger:focus {
	background-color: transparent;
	color: inherit;
	box-shadow: none;
	text-decoration: none;
}
.pv-cta-pill:hover { background: #a0d0cf !important; }
.pv-floating-tools__btn:hover { background: var(--pv-teal-dark) !important; color: #fff !important; }
.pv-burger:hover, .pv-burger:focus, .pv-burger:focus-visible { background: var(--pv-teal) !important; color: #fff !important; }

:root {
	/* Couleurs principales — valeurs Figma (source of truth) */
	--pv-orange: #E56E0B;
	--pv-orange-dark: #c46505;
	--pv-teal: #00af9c;
	--pv-teal-dark: #008c7d;

	/* Couleurs secondaires */
	--pv-yellow: #f6ce68;
	--pv-mint: #b6dedd;
	--pv-blue: #4b8dbd;
	--pv-navy: #00283e;
	--pv-coral: #df6e6e;

	/* Neutres */
	--pv-white: #ffffff;
	--pv-cream: #fbfaf8;
	--pv-grey-50: #f5f7f9;
	--pv-grey-100: #e9edf1;
	--pv-grey-300: #c4ccd5;
	--pv-grey-600: #56636f;
	--pv-grey-800: #1f2a36;
	--pv-text: #1f2a36;

	/* Typo */
	--pv-font-display: 'League Spartan', 'Helvetica Neue', Arial, sans-serif;
	--pv-font-body: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;

	/* Rayons */
	--pv-radius-sm: 10px;
	--pv-radius-md: 18px;
	--pv-radius-lg: 28px;
	--pv-radius-pill: 999px;

	/* Ombres */
	--pv-shadow-sm: 0 4px 12px rgba(12, 40, 64, 0.06);
	--pv-shadow-md: 0 12px 30px rgba(12, 40, 64, 0.10);

	/* Layout */
	--pv-container: 1240px;
	--pv-gutter: clamp(16px, 4vw, 32px);
}

/* ---------- reset light ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body {
	/* Safety net : empêche tout débordement horizontal de créer un scroll
	   sur la page entière (cas typique : carousel avec négative margin,
	   éléments rotated, ou contenu mal contraint sur mobile).
	   `clip` ≈ `hidden` mais ne crée pas de scroll container. */
	overflow-x: clip;
}
body {
	margin: 0;
	font-family: var(--pv-font-body);
	color: var(--pv-text);
	background: var(--pv-cream);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
	font-family: var(--pv-font-display);
	font-weight: 700;
	line-height: 1.15;
	margin: 0 0 .5em;
	color: var(--pv-navy);
}
h1 { font-size: clamp(2rem, 4.5vw, 3.25rem); }
h2 { font-size: clamp(1.6rem, 3vw, 2.25rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.5rem); }

a { color: var(--pv-teal); text-decoration: none; }
a:hover { color: var(--pv-teal-dark); }

img, svg { max-width: 100%; height: auto; display: block; }

.pv-container {
	max-width: var(--pv-container);
	margin: 0 auto;
	padding-left: var(--pv-gutter);
	padding-right: var(--pv-gutter);
}

/* ---------- boutons (charte) ---------- */
.pv-btn {
	display: inline-flex;
	align-items: center;
	gap: .6em;
	padding: .7em 1.5em;
	border-radius: var(--pv-radius-pill);
	font-family: var(--pv-font-display);
	font-weight: 600;
	font-size: .95rem;
	letter-spacing: .02em;
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}
.pv-btn::after {
	content: '';
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: rgba(255,255,255,.18);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M5 3l5 5-5 5'/></svg>");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 12px;
}
.pv-btn--teal { background: var(--pv-teal); color: #fff; }
.pv-btn--teal:hover { background: var(--pv-teal-dark); color: #fff; transform: translateY(-1px); box-shadow: var(--pv-shadow-md); }
.pv-btn--orange { background: var(--pv-orange); color: #fff; }
.pv-btn--orange:hover { background: var(--pv-orange-dark); color: #fff; transform: translateY(-1px); box-shadow: var(--pv-shadow-md); }
.pv-btn--yellow { background: var(--pv-yellow); color: var(--pv-navy); }
.pv-btn--yellow:hover { background: #ecbe50; color: var(--pv-navy); }
.pv-btn--ghost { background: transparent; color: var(--pv-navy); border-color: var(--pv-navy); }
.pv-btn--ghost::after { background-color: var(--pv-navy); background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M5 3l5 5-5 5'/></svg>"); }
.pv-btn--coral { background: var(--pv-coral); color: #fff; }
.pv-btn--coral:hover { background: #c95757; color: #fff; }

/* =============================================================================
   COMPOSANTS PARTAGÉS — accueil et pages profil
   Ces motifs viennent de la page d'accueil sur-mesure. Ils vivent ici, dans la
   feuille chargée partout, pour que les gabarits internes portent exactement le
   même dessin que l'accueil. Ne pas les redéclarer dans home.css ou profile.css.
   ============================================================================= */

/* ---------- rond fléché (fin de pastille, carte, lien) ---------- */
.pv-link-circle {
	width: 28px; height: 28px;
	border-radius: 50%;
	background: var(--pv-navy);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-left: 8px;
	flex: 0 0 28px;
}
.pv-link-circle svg { width: 12px; height: 12px; }
.pv-link-circle--white { background: #fff; color: var(--pv-orange); }

/* ---------- pastille (bouton à rond fléché) ----------
   .pv-btn-mint est l'alias historique de .pv-pastille--mint, utilisé par le
   carrousel d'actualités de l'accueil. Les deux partagent le même dessin. */
.pv-pastille,
.pv-btn-mint {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	padding: 12px 12px 12px 32px;
	border-radius: var(--pv-radius-pill);
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: 1.1rem;
	line-height: 1;
	border: 2px solid transparent;
	text-decoration: none !important;
	align-self: flex-start;
	white-space: nowrap;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.pv-pastille__cercle,
.pv-btn-mint__circle {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 38px;
	transition: background .15s ease, color .15s ease;
}
.pv-pastille__cercle svg,
.pv-btn-mint__circle svg { width: 16px; height: 16px; }

/* mint sur fond clair : le bouton de l'accueil */
.pv-pastille--mint,
.pv-btn-mint { background: var(--pv-mint) !important; color: var(--pv-navy) !important; }
.pv-pastille--mint .pv-pastille__texte,
.pv-btn-mint span { color: var(--pv-navy); }
.pv-pastille--mint .pv-pastille__cercle,
.pv-btn-mint__circle { background: #fff !important; color: var(--pv-navy) !important; }
.pv-pastille--mint:hover, .pv-pastille--mint:focus-visible,
.pv-btn-mint:hover, .pv-btn-mint:focus-visible {
	background: #a5d3d2 !important; color: var(--pv-navy) !important; outline: none;
}

/* blanc plein : sur photo sombre, sur bandeau navy ou orange */
.pv-pastille--blanc { background: #fff; color: var(--pv-navy); }
.pv-pastille--blanc .pv-pastille__cercle { background: var(--pv-navy); color: #fff; }
.pv-pastille--blanc:hover, .pv-pastille--blanc:focus-visible {
	background: var(--pv-mint); color: var(--pv-navy); outline: none;
}

/* contour blanc : sur bandeau navy (motif « Nous soutenir » de l'accueil) */
.pv-pastille--contour { background: transparent; border-color: #fff; color: #fff; }
.pv-pastille--contour .pv-pastille__cercle { background: #fff; color: var(--pv-navy); }
.pv-pastille--contour:hover, .pv-pastille--contour:focus-visible {
	background: #fff; color: var(--pv-navy); outline: none;
}
.pv-pastille--contour:hover .pv-pastille__cercle { background: var(--pv-navy); color: #fff; }

/* contour accent : sur fond clair, prend la couleur du profil */
.pv-pastille--accent {
	background: transparent;
	border-color: var(--accent, var(--pv-orange));
	color: var(--accent, var(--pv-orange));
}
.pv-pastille--accent .pv-pastille__cercle { background: var(--accent, var(--pv-orange)); color: #fff; }
.pv-pastille--accent:hover, .pv-pastille--accent:focus-visible {
	background: var(--accent, var(--pv-orange)); color: #fff; outline: none;
}
.pv-pastille--accent:hover .pv-pastille__cercle { background: #fff; color: var(--accent, var(--pv-orange)); }

/* ---------- surligneur de titre (motif du hero d'accueil) ---------- */
.pv-surligne {
	background: var(--pv-teal);
	color: #fff;
	padding: .1em .34em .16em;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}
/* Sur une page profil, le surligneur prend la couleur du profil. */
.pv-surligne--accent { background: var(--accent, var(--pv-orange)); }

/* ---------- header (pill sticky, flotte au-dessus du hero au repos) ---------- */
.pv-header {
	position: sticky;
	top: 0;
	z-index: 50;
	padding: 16px clamp(16px, 5vw, 72px) 0;
	background: transparent;
	pointer-events: none;
}
.pv-header__pill {
	pointer-events: auto;
	max-width: 1320px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 16px clamp(24px, 2.6vw, 44px);
	background: #fff;
	border-radius: 22px;
	box-shadow: 0 4px 18px rgba(0, 40, 62, .18);
	min-height: 104px;
}
/* Le hero remonte de la hauteur du pill pour que le teal démarre à y=0 du viewport */
.pv-hero { margin-top: calc(-104px - 16px); }
.pv-logo { display: inline-flex; align-items: center; flex: 0 0 auto; }
.pv-logo img { height: 68px; width: auto; display: block; }
.pv-nav {
	display: flex;
	align-items: center;
	gap: clamp(14px, 1.8vw, 28px);
	margin-left: 8px;
}
.pv-nav__item {
	background: transparent;
	border: 0;
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: 1.05rem;
	color: var(--pv-navy);
	cursor: pointer;
	padding: 8px 2px;
	line-height: 1;
}
.pv-nav__item:hover,
.pv-nav__item:focus,
.pv-nav__item:focus-visible,
.pv-nav__item[aria-expanded="true"] {
	background: transparent !important;
	outline: none;
	color: var(--pv-teal);
}
.pv-nav__item--has-mega::after {
	content: '';
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-left: 6px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-3px) rotate(45deg);
}

.pv-header__actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 14px;
}
.pv-search-toggle {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: transparent;
	border: 0;
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: 1.05rem;
	color: var(--pv-navy);
	cursor: pointer;
	padding: 4px 2px;
}
.pv-search-toggle:hover,
.pv-search-toggle:focus,
.pv-search-toggle:focus-visible {
	color: var(--pv-navy) !important;
	background: transparent !important;
	outline: none;
}
.pv-search-toggle__circle {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--pv-navy);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.pv-search-toggle__circle svg { width: 18px; height: 18px; }
.pv-search-toggle:hover .pv-search-toggle__circle { background: var(--pv-teal); color: #fff; }

.pv-nearby {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: transparent;
	border: 0;
	padding: 4px 2px;
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: 1.05rem;
	color: var(--pv-orange);
	text-decoration: none;
	cursor: pointer;
}
.pv-nearby:hover,
.pv-nearby:focus,
.pv-nearby:focus-visible {
	color: var(--pv-orange) !important;
	background: transparent !important;
	outline: none;
}
.pv-nearby__circle {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--pv-orange);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.pv-nearby__circle svg { width: 20px; height: 20px; }
.pv-nearby:hover .pv-nearby__circle { background: var(--pv-orange-dark); }

.pv-cta-pill {
	display: inline-flex;
	align-items: center;
	padding: 10px 26px;
	border-radius: var(--pv-radius-pill);
	background: var(--pv-mint);
	color: var(--pv-navy);
	border: 0;
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: 1rem;
	text-decoration: none;
	cursor: pointer;
	transition: background .15s ease;
	line-height: 1;
}
.pv-cta-pill:hover,
.pv-cta-pill:focus,
.pv-cta-pill:focus-visible {
	background: #a0d0cf !important;
	color: var(--pv-navy);
	outline: none;
}

/* ---------- mega menu (pill mint, stack sous le pill blanc) ---------- */
.pv-megamenu {
	position: absolute;
	left: clamp(16px, 5vw, 72px);
	right: clamp(16px, 5vw, 72px);
	top: calc(100% + 10px);
	max-width: 1296px;
	margin: 0 auto;
	background: var(--pv-mint);
	border-radius: 20px;
	box-shadow: 0 4px 18px rgba(0,40,62,.18);
	display: none;
	pointer-events: auto;
}
/* Pont invisible entre le pill blanc et le mega menu — évite la fermeture quand
   la souris traverse les 10px de gap. */
.pv-megamenu::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: -16px;
	height: 16px;
	background: transparent;
	pointer-events: auto;
}
.pv-megamenu[data-open="true"] { display: block; }
.pv-megamenu__inner {
	padding: 32px 56px 36px;
}
.pv-megamenu__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 56px;
}
.pv-megamenu__col-title {
	font-family: var(--pv-font-display);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--pv-navy);
	margin: 0 0 14px;
}
.pv-megamenu__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pv-megamenu__list a {
	display: inline-block;
	padding: 2px 0;
	color: var(--pv-navy);
	font-family: var(--pv-font-display);
	font-weight: 400;
	font-size: 1rem;
	border-bottom: 1.5px solid transparent;
	transition: border-color .15s ease;
}
.pv-megamenu__list a:hover,
.pv-megamenu__list a:focus,
.pv-megamenu__list a:focus-visible {
	background: transparent !important;
	color: var(--pv-navy);
	border-bottom-color: var(--pv-navy);
	outline: none;
}

/* ---------- footer (logo + 2 col liens + adresse, bottom bar séparée) ---------- */
.pv-footer { background: #fff; padding: 56px 0 0; }
.pv-footer__grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1fr 1.2fr;
	gap: 40px;
	align-items: start;
	padding-bottom: 48px;
}
.pv-footer__brand img { max-width: 200px; height: auto; display: block; }
.pv-footer__col {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 16px;
}
.pv-footer__col a {
	color: var(--pv-navy);
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: 1.05rem;
	text-decoration: none;
	display: inline-block;
	border-bottom: 1.5px solid transparent;
	padding-bottom: 1px;
}
.pv-footer__col a:hover,
.pv-footer__col a:focus,
.pv-footer__col a:focus-visible {
	background: transparent !important;
	color: var(--pv-navy);
	border-bottom-color: var(--pv-navy);
	outline: none;
}
.pv-footer__address {
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: 1.05rem;
	color: var(--pv-navy);
	font-style: normal;
	line-height: 1.7;
}
.pv-footer__address strong { font-weight: 700; display: block; margin-bottom: 4px; }
.pv-footer__bottom {
	background: var(--pv-cream);
	padding: 14px clamp(16px, 5vw, 72px);
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: .92rem;
	color: var(--pv-teal);
}
.pv-footer__bottom a { color: var(--pv-teal); text-decoration: none; }
.pv-footer__bottom a:hover { color: var(--pv-teal-dark); }
.pv-footer__bottom span[aria-hidden="true"] { color: var(--pv-teal); opacity: .6; }

/* ---------- page hero (bandeau titre + breadcrumb sur image) ---------- */
.pv-page-hero {
	position: relative;
	min-height: 280px;
	display: flex;
	align-items: center;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color: #fff;
	overflow: hidden;
	/* Le hero remonte sous le header pill sticky (104px + 16px padding-top) */
	margin-top: calc(-104px - 16px);
	padding: 160px clamp(16px, 5vw, 72px) 60px;
}
.pv-page-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,40,62,.55) 0%, rgba(0,40,62,.35) 50%, rgba(0,40,62,.55) 100%);
	pointer-events: none;
}
.pv-page-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 1296px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 24px;
	align-items: center;
}
.pv-page-hero__title {
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.8rem, 3.6vw, 2.8rem);
	color: #fff;
	margin: 0;
	line-height: 1.15;
}
.pv-page-hero__breadcrumb {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: .9rem;
	letter-spacing: .04em;
	color: #fff;
}
.pv-page-hero__crumb {
	color: #fff;
	text-decoration: none;
}
.pv-page-hero__crumb:hover,
.pv-page-hero__crumb:focus,
.pv-page-hero__crumb:focus-visible {
	background: transparent !important;
	color: var(--pv-orange);
	outline: none;
}
.pv-page-hero__crumb.is-current { color: var(--pv-orange); }
.pv-page-hero__sep { opacity: .65; }

@media (max-width: 880px) {
	.pv-page-hero { padding: 120px 18px 44px; min-height: 220px; }
	.pv-page-hero__inner { grid-template-columns: 1fr; gap: 14px; }
	.pv-page-hero__title { font-size: clamp(1.4rem, 5vw, 2rem); line-height: 1.2; }
	.pv-page-hero__breadcrumb { font-size: .78rem; gap: 6px; }
}
@media (max-width: 480px) {
	.pv-page-hero { padding: 100px 14px 32px; min-height: 180px; }
	.pv-page-hero__title { font-size: clamp(1.2rem, 5.5vw, 1.6rem); }
	.pv-page-hero__breadcrumb { font-size: .72rem; }
}

/* ---------- page content (article > .pv-container) ---------- */
.pv-page-content { padding: 56px 0 80px; background: var(--pv-cream); }
/* Pas d'override : on hérite du --pv-container global (1240px) pour cohérence
   avec le reste du site. Les paragraphes purs restent lisibles grâce au
   max-width local sur p/h2 ci-dessous (~860px sur les pages texte). */
.pv-page-content .pv-container { max-width: var(--pv-container); }
/* Limite la largeur de lecture sur les pages texte purs (pas Elementor) :
   les paragraphes restent lisibles même si le container est plus large. */
.pv-page-content > .pv-container > p,
.pv-page-content > .pv-container > h2,
.pv-page-content > .pv-container > h3,
.pv-page-content > .pv-container > h4,
.pv-page-content > .pv-container > ul,
.pv-page-content > .pv-container > ol,
.pv-page-content > .pv-container > blockquote {
	max-width: 860px;
}
.pv-page-content h2 {
	font-family: var(--pv-font-display);
	font-weight: 700;
	color: var(--pv-navy);
	margin: 1.8em 0 .6em;
}
.pv-page-content p { line-height: 1.7; margin: 0 0 1.2em; color: var(--pv-navy); }
.pv-page-content a { color: var(--pv-teal); text-decoration: underline; }
.pv-page-content a:hover { color: var(--pv-teal-dark); }
.pv-page-content img { max-width: 100%; height: auto; border-radius: var(--pv-radius-sm); }
.pv-page-content ul, .pv-page-content ol { line-height: 1.7; margin: 0 0 1.2em 1.5em; }

/* ---------- single post ---------- */
.pv-single { padding-top: 40px; }
.pv-single__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 28px;
	align-items: center;
}
@media (max-width: 880px) {
	.pv-page-content { padding: 32px 0 60px; }
	.pv-single { padding-top: 24px; }
	.pv-single__meta { gap: 8px; margin-bottom: 20px; }
	.pv-single__date { font-size: .78rem; width: 100%; margin-top: 4px; }
	/* Texte page lisible sans contrainte trop large sur mobile */
	.pv-page-content > .pv-container > p,
	.pv-page-content > .pv-container > h2,
	.pv-page-content > .pv-container > h3,
	.pv-page-content > .pv-container > h4,
	.pv-page-content > .pv-container > ul,
	.pv-page-content > .pv-container > ol,
	.pv-page-content > .pv-container > blockquote { max-width: 100%; }
	.pv-page-content h2 { font-size: 1.4rem; }
	.pv-page-content h3 { font-size: 1.2rem; }
	.pv-page-content p { font-size: 1rem; line-height: 1.65; }
}
/* Spécificité 0,2,1 pour battre `.pv-page-content a` (0,1,1) qui réécrirait
   sinon la couleur du texte en teal — invisible sur fond teal. */
.pv-page-content a.pv-single__tag,
a.pv-single__tag {
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: .72rem;
	padding: 5px 12px;
	border-radius: var(--pv-radius-pill);
	background: var(--pv-teal);
	color: #fbfaf8;
	text-decoration: none !important;
	letter-spacing: .04em;
	display: inline-block;
	line-height: 1.4;
}
.pv-single__date {
	font-family: var(--pv-font-body);
	font-style: italic;
	font-size: .85rem;
	color: var(--pv-teal);
}

/* ---------- article-card (utilisée home, archive, search) ---------- */
.pv-article-card {
	background: #fff;
	border-radius: var(--pv-radius-md);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: 0 4px 18px rgba(0, 40, 62, .08);
	transition: transform .15s ease, box-shadow .15s ease;
	align-self: stretch; /* match siblings in flex/grid row → hauteur uniforme */
}
.pv-article-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 26px rgba(0, 40, 62, .12);
}
.pv-article-card__media {
	aspect-ratio: 16/11;
	background:
		linear-gradient(135deg, rgba(0,175,156,.15) 0%, rgba(182,222,221,.6) 100%),
		var(--pv-mint);
	overflow: visible;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}
.pv-article-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; position: absolute; inset: 0; }
/* Fallback decorative quand pas d'image — logo PV en filigrane */
.pv-article-card__media::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><g fill='none' stroke='%2300283e' stroke-opacity='.15' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M30 170c0-30 70-30 70-70s70 40 70 70'/><circle cx='100' cy='80' r='28'/><path d='M85 70l30 0M85 80l30 0M85 90l30 0'/><path d='M40 50l10 5M40 60l15 0M30 130l8 -6'/></g></svg>");
	background-size: 65%;
	background-repeat: no-repeat;
	background-position: center;
	opacity: .9;
	z-index: 0;
}
.pv-article-card__media:has(img)::before { display: none; }
.pv-article-card__tags {
	position: absolute;
	bottom: -16px;
	left: 18px;
	right: 18px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	max-width: calc(100% - 36px);
	z-index: 2;
}
.pv-article-card__tag {
	font-family: var(--pv-font-display);
	font-weight: 600;
	font-size: .74rem;
	padding: 7px 16px;
	border-radius: var(--pv-radius-pill);
	letter-spacing: .04em;
	white-space: nowrap;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	line-height: 1;
}
.pv-article-card__body {
	padding: 32px 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1 1 auto; /* prend toute la hauteur dispo pour pousser le bouton "Lire +" en bas */
}
.pv-article-card__meta {
	font-family: var(--pv-font-body);
	font-style: italic;
	font-weight: 500;
	font-size: .75rem;
	color: var(--pv-teal);
}
.pv-article-card__meta strong { font-weight: 700; font-style: italic; }
.pv-article-card__title {
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	line-height: 1.25;
	color: var(--pv-orange);
	margin: 0;
}
.pv-article-card__title a {
	color: inherit;
	text-decoration: none;
	background-image: linear-gradient(transparent 65%, rgba(246,206,104,.55) 65%);
	background-size: 100% 100%;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
	padding: 0 1px;
}
.pv-article-card__title a:hover { color: var(--pv-orange); }
.pv-article-card__excerpt {
	font-family: var(--pv-font-body);
	font-weight: 500;
	font-size: .82rem;
	color: var(--pv-navy);
	line-height: 1.55;
	margin: 0;
}
.pv-article-card__more {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 6px 8px 6px 18px;
	border-radius: var(--pv-radius-pill);
	border: 1.5px solid var(--pv-navy);
	color: var(--pv-navy);
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: .92rem;
	text-decoration: none;
	margin-top: auto; /* aligné en bas de la card */
	align-self: flex-start;
	background: transparent;
}
.pv-article-card__more:hover,
.pv-article-card__more:focus,
.pv-article-card__more:focus-visible {
	background: var(--pv-navy) !important;
	color: #fff;
	outline: none;
}
.pv-article-card__more:hover .pv-article-card__more-circle { background: #fff; color: var(--pv-navy); }
.pv-article-card__more-circle {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--pv-mint);
	color: var(--pv-navy);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 26px;
}
.pv-article-card__more-circle svg { width: 11px; height: 11px; }

/* ---------- archive + search ---------- */
.pv-archive { padding: 56px 0 96px; background: var(--pv-cream); }
.pv-archive__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 24px;
	margin-top: 28px;
}
.pv-archive .pv-article-card { flex: none; }

.pv-archive__pagination {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 48px;
}
.pv-archive__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 14px;
	border-radius: var(--pv-radius-pill);
	background: #fff;
	color: var(--pv-navy);
	text-decoration: none;
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: .92rem;
	box-shadow: 0 2px 8px rgba(0,40,62,.06);
}
.pv-archive__pagination .page-numbers.current,
.pv-archive__pagination .page-numbers:hover,
.pv-archive__pagination .page-numbers:focus-visible {
	background: var(--pv-mint) !important;
	color: var(--pv-navy);
	outline: none;
}
.pv-archive__pagination .page-numbers.dots { background: transparent; box-shadow: none; }

.pv-archive__empty {
	text-align: center;
	color: var(--pv-navy);
	padding: 60px 24px;
	background: #fff;
	border-radius: var(--pv-radius-md);
	margin-top: 28px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
}
.pv-archive__empty svg { width: 56px; height: 56px; color: var(--pv-grey-300); }
.pv-archive__empty h2 {
	font-family: var(--pv-font-display);
	font-size: 1.4rem;
	margin: 0;
	color: var(--pv-navy);
}
.pv-archive__empty p { color: var(--pv-grey-600); margin: 0; max-width: 420px; }

/* ---------- filter bar ---------- */
.pv-filter-bar {
	display: flex;
	flex-direction: column;
	gap: 18px;
	background: #fff;
	border-radius: var(--pv-radius-md);
	padding: 20px 22px;
	box-shadow: var(--pv-shadow-sm);
}
.pv-filter-bar__row {
	display: flex;
	gap: 16px;
	align-items: center;
	flex-wrap: wrap;
}
.pv-filter-bar__row--top {
	justify-content: space-between;
}

.pv-filter-search {
	display: flex;
	align-items: center;
	background: var(--pv-cream);
	border-radius: var(--pv-radius-pill);
	padding: 4px 10px 4px 16px;
	gap: 10px;
	min-width: 280px;
	flex: 1 1 280px;
	max-width: 480px;
}
.pv-filter-search__icon { width: 18px; height: 18px; color: var(--pv-navy); flex: 0 0 18px; }
.pv-filter-search input[type="search"] {
	flex: 1;
	border: 0;
	outline: none;
	background: transparent;
	font: inherit;
	font-family: var(--pv-font-body);
	color: var(--pv-navy);
	padding: 10px 0;
	min-width: 0;
}
.pv-filter-search input[type="search"]::placeholder { color: var(--pv-grey-600); }
.pv-filter-search__clear {
	width: 28px; height: 28px;
	border-radius: 50%;
	background: var(--pv-navy);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	flex: 0 0 28px;
}
.pv-filter-search__clear:hover { background: var(--pv-navy) !important; color: #fff; }
.pv-filter-search__clear svg { width: 12px; height: 12px; }

.pv-filter-bar__count {
	font-family: var(--pv-font-body);
	font-size: .9rem;
	color: var(--pv-grey-600);
	white-space: nowrap;
}
.pv-filter-bar__count strong { color: var(--pv-navy); font-weight: 700; }

.pv-filter-sort select {
	font: inherit;
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: .92rem;
	background: var(--pv-cream);
	border: 0;
	color: var(--pv-navy);
	padding: 10px 36px 10px 16px;
	border-radius: var(--pv-radius-pill);
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='%2300283e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M4 6l4 4 4-4'/></svg>");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 14px;
}

.pv-filter-bar__row--chips {
	gap: 8px;
	border-top: 1px solid rgba(0, 40, 62, .06);
	padding-top: 18px;
}
.pv-filter-chip {
	display: inline-flex;
	align-items: center;
	padding: 7px 14px;
	border-radius: var(--pv-radius-pill);
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: .8rem;
	letter-spacing: .04em;
	text-decoration: none;
	border: 1.5px solid transparent;
	cursor: pointer;
	background: var(--pv-cream);
	color: var(--pv-navy);
	transition: transform .12s ease, box-shadow .12s ease;
}
.pv-filter-chip:hover, .pv-filter-chip:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 4px 10px rgba(0, 40, 62, .12);
	color: inherit;
	outline: none;
}
.pv-filter-chip.is-active {
	border-color: var(--pv-navy);
	box-shadow: 0 0 0 2px rgba(0, 40, 62, .08);
}
.pv-filter-chip--all {
	background: var(--pv-navy) !important;
	color: #fff !important;
	border-color: transparent;
}
.pv-filter-chip--all.is-active { box-shadow: 0 0 0 3px rgba(0, 40, 62, .15); }

/* ---------- card "page" pour search ---------- */
.pv-article-card--page .pv-article-card__media-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background: var(--pv-mint);
	color: var(--pv-navy);
}
.pv-article-card--page .pv-article-card__media-placeholder svg {
	width: 56px; height: 56px;
	opacity: .55;
}
.pv-article-card--page .pv-article-card__meta { color: var(--pv-grey-600); font-style: normal; }
.pv-article-card--page .pv-article-card__title { color: var(--pv-navy); }

/* ---------- responsive filter bar ---------- */
@media (max-width: 880px) {
	.pv-filter-bar { padding: 16px; }
	.pv-filter-bar__row--top {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}
	.pv-filter-search {
		max-width: none;
		min-width: 0;
		flex: 1 1 auto;
	}
	.pv-filter-bar__count {
		text-align: center;
		font-size: .82rem;
		width: 100%;
	}
	.pv-filter-sort { width: 100%; }
	.pv-filter-sort select { width: 100%; }
	/* Chips : scroll horizontal au lieu de wrap (gain vertical considérable) */
	.pv-filter-bar__row--chips {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
		padding-bottom: 6px;
		margin: 0 -8px;
		padding-left: 8px;
		padding-right: 8px;
	}
	.pv-filter-chip {
		flex: 0 0 auto;
		white-space: nowrap;
	}
	/* Pagination plus aérée sur mobile */
	.pv-archive__pagination .page-numbers {
		min-width: 38px;
		height: 38px;
		font-size: .85rem;
	}
	.pv-archive { padding: 32px 0 64px; }
	.pv-archive__grid {
		grid-template-columns: 1fr;
		gap: 18px;
		margin-top: 20px;
	}
	.pv-archive__empty { padding: 40px 18px; }
	.pv-archive__empty h2 { font-size: 1.2rem; }
}

/* ---------- search overlay (plein viewport) ---------- */
.pv-search-overlay {
	position: fixed;
	inset: 0;
	z-index: 200;
	background: rgba(0, 40, 62, .88);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	opacity: 0;
	transition: opacity .2s ease;
}
.pv-search-overlay.is-open { opacity: 1; }
.pv-search-overlay[hidden] { display: none; }
.pv-search-overlay__close {
	position: absolute;
	top: 24px;
	right: 28px;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	border: 0;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background .15s ease;
}
.pv-search-overlay__close:hover { background: rgba(255, 255, 255, .22) !important; color: #fff; }
.pv-search-overlay__close svg { width: 22px; height: 22px; }
.pv-search-overlay__form {
	width: 100%;
	max-width: 720px;
	display: flex;
	flex-direction: column;
	gap: 20px;
	text-align: center;
}
.pv-search-overlay__label {
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: clamp(1.5rem, 3.6vw, 2.8rem);
	color: #fff;
	margin: 0 0 12px;
	display: block;
}
.pv-search-overlay__input-wrap {
	position: relative;
	display: flex;
	align-items: center;
	background: #fff;
	border-radius: var(--pv-radius-pill);
	padding: 6px 6px 6px 24px;
	gap: 12px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, .25);
}
.pv-search-overlay__icon { width: 22px; height: 22px; color: var(--pv-navy); flex: 0 0 22px; }
.pv-search-overlay__input-wrap input[type="search"] {
	flex: 1;
	border: 0;
	outline: none;
	background: transparent;
	font: inherit;
	font-family: var(--pv-font-body);
	font-size: 1.1rem;
	color: var(--pv-navy);
	padding: 14px 0;
	min-width: 0;
}
.pv-search-overlay__input-wrap input[type="search"]::placeholder { color: var(--pv-grey-600); }
.pv-search-overlay__hint {
	font-family: var(--pv-font-body);
	font-size: .82rem;
	color: rgba(255, 255, 255, .7);
	margin: 0;
}

/* ---------- floating tools (collés au bord droit) ---------- */
.pv-floating-tools {
	position: fixed;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	flex-direction: column;
	gap: 10px;
	z-index: 60;
}
.pv-floating-tools__btn {
	width: 52px;
	height: 52px;
	border: 0;
	border-radius: 12px 0 0 12px; /* arrondi gauche uniquement, flush au bord droit */
	background: var(--pv-teal);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: -4px 4px 14px rgba(0, 40, 62, .20);
	text-decoration: none;
	transition: background .15s ease, transform .15s ease;
}
.pv-floating-tools__btn:hover { background: var(--pv-teal-dark) !important; color: #fff; transform: translateX(-2px); }
.pv-floating-tools__btn[aria-expanded="true"] { background: var(--pv-teal-dark); }
.pv-floating-tools__btn svg { width: 26px; height: 26px; }
@media (max-width: 960px) {
	/* En mobile, on déplace les outils en bas-droit pour ne pas chevaucher le contenu */
	.pv-floating-tools {
		right: 12px;
		top: auto;
		bottom: 16px;
		transform: none;
		flex-direction: row;
		gap: 10px;
	}
	.pv-floating-tools__btn {
		width: 46px;
		height: 46px;
		border-radius: 50%; /* full circle au lieu du flush-right */
		box-shadow: 0 4px 14px rgba(0, 40, 62, .22);
	}
	.pv-floating-tools__btn:hover { transform: translateY(-2px); }
	.pv-floating-tools__btn svg { width: 22px; height: 22px; }
}

/* ---------- a11y panel ---------- */
.pv-a11y-panel {
	position: fixed;
	right: 64px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 70;
	width: 240px;
	background: #fff;
	color: var(--pv-navy);
	border-radius: 12px;
	box-shadow: 0 8px 30px rgba(0, 40, 62, .25);
	padding: 16px 14px;
	font-family: var(--pv-font-body);
}
.pv-a11y-panel[hidden] { display: none; }
.pv-a11y-panel__title {
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--pv-navy);
	margin: 0 0 10px;
	line-height: 1.2;
}
.pv-a11y-panel__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 2px; }
.pv-a11y-panel__list button {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 10px;
	background: transparent;
	border: 0;
	padding: 6px 4px;
	color: var(--pv-navy);
	font: inherit;
	font-size: .92rem;
	text-align: left;
	cursor: pointer;
	border-radius: 6px;
}
.pv-a11y-panel__list button:hover,
.pv-a11y-panel__list button:focus-visible {
	background: var(--pv-mint) !important;
	outline: none;
}
.pv-a11y-panel__list button.is-active {
	background: var(--pv-mint);
	font-weight: 600;
}
.pv-a11y-panel__list button svg {
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
	color: var(--pv-navy);
}
@media (max-width: 960px) {
	/* Panel ancré au-dessus des boutons (qui sont en bas en mobile) */
	.pv-a11y-panel {
		right: 12px;
		left: 12px;
		bottom: 78px;
		top: auto;
		transform: none;
		width: auto;
		max-width: 320px;
		margin-left: auto;
	}
}

/* ---------- ÉTATS GLOBAUX a11y (classes sur <html>) ---------- */
html.pv-a11y--grayscale { filter: grayscale(1); }
html.pv-a11y--contrast-high { filter: contrast(1.45) saturate(1.2); }
html.pv-a11y--contrast-negative { filter: invert(1) hue-rotate(180deg); }
html.pv-a11y--contrast-negative img,
html.pv-a11y--contrast-negative video,
html.pv-a11y--contrast-negative svg { filter: invert(1) hue-rotate(180deg); }

html.pv-a11y--bg-light,
html.pv-a11y--bg-light body,
html.pv-a11y--bg-light .pv-hero,
html.pv-a11y--bg-light .pv-hero__copy,
html.pv-a11y--bg-light .pv-profiles,
html.pv-a11y--bg-light .pv-actions,
html.pv-a11y--bg-light .pv-actu,
html.pv-a11y--bg-light .pv-newsletter,
html.pv-a11y--bg-light .pv-newsletter__card,
html.pv-a11y--bg-light .pv-social,
html.pv-a11y--bg-light .pv-footer,
html.pv-a11y--bg-light .pv-footer__bottom { background: #fff !important; color: var(--pv-navy) !important; }
html.pv-a11y--bg-light .pv-hero__copy *,
html.pv-a11y--bg-light .pv-actions *,
html.pv-a11y--bg-light .pv-newsletter__card *,
html.pv-a11y--bg-light .pv-hero__title,
html.pv-a11y--bg-light .pv-hero__text { color: var(--pv-navy) !important; }
html.pv-a11y--bg-light .pv-hero__highlight { background: var(--pv-navy) !important; color: #fff !important; }

html.pv-a11y--underline-links a { text-decoration: underline !important; }

html.pv-a11y--readable-font,
html.pv-a11y--readable-font * {
	font-family: Verdana, 'Trebuchet MS', Arial, sans-serif !important;
	letter-spacing: .01em;
}

/* ---------- utils ---------- */
.pv-eyebrow {
	display: inline-block;
	font-family: var(--pv-font-display);
	font-weight: 600;
	text-transform: uppercase;
	font-size: .78rem;
	letter-spacing: .12em;
	color: var(--pv-teal);
	margin-bottom: 8px;
}
.pv-section { padding: 80px 0; }
.pv-section--tight { padding: 56px 0; }
.pv-section__head {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 40px;
}

@media (max-width: 960px) {
	.pv-nav { display: none; }
	.pv-header__actions { display: none; }
	.pv-megamenu { display: none !important; } /* mega menus géré par le drawer en mobile */
	.pv-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; }
	.pv-megamenu__grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
	.pv-footer__grid { grid-template-columns: 1fr; text-align: center; }
	.pv-footer__brand img { max-width: 160px; margin: 0 auto; }
	.pv-footer__address { font-style: normal; }
	.pv-footer__col { justify-items: center; }
	.pv-footer__bottom {
		flex-direction: column;
		gap: 8px;
		font-size: .82rem;
		padding: 18px 16px;
	}
	.pv-footer__bottom span[aria-hidden="true"] { display: none; }
}

/* ====================================================================
   BURGER BUTTON — visible uniquement < 960px
   ==================================================================== */
.pv-burger {
	display: none;
	width: 48px;
	height: 48px;
	margin-left: auto;
	border: 0;
	background: var(--pv-navy);
	border-radius: 12px;
	cursor: pointer;
	padding: 0;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	transition: background .15s ease;
}
.pv-burger:hover { background: var(--pv-teal) !important; }
.pv-burger__bar {
	width: 22px;
	height: 2.5px;
	background: #fff;
	border-radius: 2px;
	transition: transform .25s ease, opacity .2s ease;
	transform-origin: center;
}
.pv-burger[aria-expanded="true"] .pv-burger__bar:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.pv-burger[aria-expanded="true"] .pv-burger__bar:nth-child(2) { opacity: 0; }
.pv-burger[aria-expanded="true"] .pv-burger__bar:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

@media (max-width: 960px) {
	.pv-burger { display: flex; }
	.pv-header { padding: 12px clamp(12px, 4vw, 24px) 0; }
	.pv-header__pill {
		min-height: 76px;
		padding: 12px 16px;
		border-radius: 16px;
		gap: 12px;
	}
	.pv-hero { margin-top: calc(-76px - 12px); }
	.pv-page-hero {
		margin-top: calc(-76px - 12px);
		padding-top: 120px;
	}
	.pv-logo img { height: 48px; }
}
@media (max-width: 540px) {
	.pv-burger { width: 44px; height: 44px; }
	.pv-burger__bar { width: 18px; }
	.pv-logo img { height: 42px; }
	.pv-header__pill { min-height: 68px; padding: 10px 14px; }
	.pv-hero { margin-top: calc(-68px - 12px); }
	.pv-page-hero { margin-top: calc(-68px - 12px); padding-top: 100px; }
}

/* ====================================================================
   DRAWER MOBILE — overlay + panel slide-in depuis la droite
   ==================================================================== */
.pv-drawer {
	position: fixed;
	inset: 0;
	z-index: 220;
	background: rgba(0, 40, 62, .5);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	display: flex;
	justify-content: flex-end;
	opacity: 0;
	transition: opacity .25s ease;
	pointer-events: none;
}
.pv-drawer[hidden] { display: none; }
.pv-drawer.is-open { opacity: 1; pointer-events: auto; }

.pv-drawer__panel {
	width: min(380px, 88vw);
	background: #fff;
	height: 100%;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	transform: translateX(100%);
	transition: transform .3s cubic-bezier(.2, .7, .2, 1);
	display: flex;
	flex-direction: column;
	box-shadow: -12px 0 40px rgba(0, 40, 62, .25);
}
.pv-drawer.is-open .pv-drawer__panel { transform: translateX(0); }

.pv-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 22px;
	border-bottom: 1px solid rgba(0, 40, 62, .08);
	position: sticky;
	top: 0;
	background: #fff;
	z-index: 2;
}
.pv-drawer__logo img { height: 48px; width: auto; display: block; }
.pv-drawer__close {
	width: 40px; height: 40px;
	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;
	transition: background .15s ease;
	outline: none;
	box-shadow: none;
}
.pv-drawer__close:hover,
.pv-drawer__close:focus,
.pv-drawer__close:active,
.pv-drawer__close:focus-visible {
	background: var(--pv-mint) !important;
	color: var(--pv-navy) !important;
	outline: none;
	box-shadow: none;
}
.pv-drawer__close svg { width: 18px; height: 18px; }

.pv-drawer__search {
	display: flex;
	align-items: center;
	gap: 12px;
	background: var(--pv-cream);
	border: 0;
	margin: 18px 22px 8px;
	padding: 12px 18px;
	border-radius: var(--pv-radius-pill);
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: 1rem;
	color: var(--pv-navy);
	cursor: pointer;
	transition: background .15s ease;
}
.pv-drawer__search:hover { background: var(--pv-mint) !important; color: var(--pv-navy); }
.pv-drawer__search svg { width: 20px; height: 20px; flex: 0 0 20px; color: var(--pv-navy); }

.pv-drawer__nav { padding: 8px 0 32px; }
.pv-drawer__list { list-style: none; margin: 0; padding: 0; }
.pv-drawer__item { border-bottom: 1px solid rgba(0, 40, 62, .06); }
.pv-drawer__item:last-child { border-bottom: 0; }

.pv-drawer__link,
.pv-drawer__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 18px 22px;
	background: transparent;
	border: 0;
	font-family: var(--pv-font-display);
	font-weight: 500;
	font-size: 1.1rem;
	color: var(--pv-navy);
	text-decoration: none;
	cursor: pointer;
	text-align: left;
	transition: background .15s ease;
}
.pv-drawer__link:hover,
.pv-drawer__trigger:hover,
.pv-drawer__trigger[aria-expanded="true"] {
	background: var(--pv-cream) !important;
	color: var(--pv-navy);
}
.pv-drawer__chevron {
	transition: transform .2s ease;
	display: inline-flex;
	color: var(--pv-teal);
}
.pv-drawer__chevron svg { width: 16px; height: 16px; }
.pv-drawer__trigger[aria-expanded="true"] .pv-drawer__chevron { transform: rotate(180deg); }

.pv-drawer__sub {
	max-height: 0;
	overflow: hidden;
	transition: max-height .35s cubic-bezier(.2, .7, .2, 1);
	background: var(--pv-cream);
}
.pv-drawer__trigger[aria-expanded="true"] + .pv-drawer__sub { max-height: 1200px; }
.pv-drawer__group { padding: 12px 22px 16px; }
.pv-drawer__group-title {
	font-family: var(--pv-font-display);
	font-weight: 700;
	font-size: .85rem;
	color: var(--pv-teal);
	margin: 0 0 8px;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.pv-drawer__sublist { list-style: none; margin: 0; padding: 0; }
.pv-drawer__sublist li { margin: 0; }
.pv-drawer__sublist a {
	display: block;
	padding: 8px 0;
	color: var(--pv-navy);
	font-family: var(--pv-font-display);
	font-weight: 400;
	font-size: 1rem;
	text-decoration: none;
	border-bottom: 1px solid transparent;
}
.pv-drawer__sublist a:hover { border-bottom-color: var(--pv-navy); color: var(--pv-navy); }

/* Lock body scroll quand drawer ouvert */
.pv-no-scroll { overflow: hidden; touch-action: none; }

/* ===== Harmonisation refonte (pages Elementor existantes vers le nouveau design) ===== */
.elementor-widget-heading .elementor-heading-title { font-family: var(--pv-font-display); }
body .elementor-widget-text-editor { font-family: var(--pv-font-body); }
.elementor-button, .elementor-button-link, a.elementor-button { font-family: var(--pv-font-display); border-radius: 999px; letter-spacing: .01em; }

/* === Pages editoriales (contenu Gutenberg, 100% editable backoffice) — charte 2026 === */
.pv-article { max-width: 840px; margin: 0 auto; padding: 36px 22px 60px; color: #233; font-family: var(--pv-font-body); line-height: 1.66; }
.pv-article > h2:first-child, .pv-article > *:first-child { margin-top: 0; }
.pv-article h2 { font-family: var(--pv-font-display); color: #082740; font-weight: 800; margin: 1.9em 0 .5em; font-size: 1.55rem; line-height: 1.2; }
.pv-article h3 { font-family: var(--pv-font-display); color: #0dab9c; font-weight: 700; margin: 1.5em 0 .4em; font-size: 1.18rem; }
.pv-article p { margin: 0 0 1em; }
.pv-article ul { margin: 0 0 1.3em; padding-left: 1.25em; }
.pv-article li { margin: .35em 0; }
.pv-article a { color: #e56e0b; text-decoration: underline; }
.pv-article a:hover { color: #082740; }
.pv-article .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 1.3em 0 1.7em; }
.pv-article .wp-block-button__link { background: #e56e0b; color: #fff; border-radius: 999px; padding: 12px 28px; font-family: var(--pv-font-display); font-weight: 700; text-decoration: none; display: inline-block; }
.pv-article .wp-block-button__link:hover { background: #082740; color: #fff; }
.pv-article .pv-note { font-size: .85rem; color: #667; }

/* === FAQ accordéon + galerie avis (charte 2026) === */
.pv-faq { max-width: 860px; margin: 0 auto; }
.pv-faq__section { margin: 1.6em 0 .5em; color: #082740; font-family: var(--pv-font-display); font-weight: 800; font-size: 1.3rem; }
.pv-faq details { border: 1px solid #e0e6e8; border-radius: 12px; margin: 10px 0; background: #fff; overflow: hidden; }
.pv-faq summary { cursor: pointer; padding: 16px 48px 16px 20px; font-family: var(--pv-font-display); font-weight: 700; color: #082740; list-style: none; position: relative; }
.pv-faq summary::-webkit-details-marker { display: none; }
.pv-faq summary::after { content: "+"; position: absolute; right: 20px; top: 14px; color: #e56e0b; font-size: 1.4rem; line-height: 1; }
.pv-faq details[open] summary::after { content: "\2212"; }
.pv-faq details[open] summary { color: #0dab9c; }
.pv-faq__a { padding: 0 20px 18px; color: #334; line-height: 1.6; }
.pv-faq__a ul, .pv-faq__a ol { padding-left: 1.25em; margin: .4em 0; }
.pv-faq__a li { margin: .3em 0; }
.pv-avis img { border: 1px solid #e6eaec; border-radius: 10px; box-shadow: 0 6px 18px rgba(8,39,64,.08); }

/* ------------------------------------------------------------------------
   Barre de navigation : tenue de la rangée
   1. Le libellé « Près de chez vous » se coupait sur deux lignes et le rond
      au globe se décrochait du texte.
   2. Une fois le libellé tenu sur une ligne, la rangée réclamait plus de
      place que la carte blanche et le bouton « Nous soutenir » débordait.
   On élargit donc légèrement la carte, on autorise la navigation à se
   resserrer, et on masque les libellés secondaires sur les écrans étroits
   en gardant leurs pastilles (et leur intitulé pour les lecteurs d'écran).
   ------------------------------------------------------------------------ */
.pv-header__pill { max-width: 1400px; }

.pv-nav { min-width: 0; gap: clamp(12px, 1.4vw, 24px); }
.pv-nav__item { white-space: nowrap; }

.pv-nearby { flex: 0 0 auto; line-height: 1.2; }
.pv-nearby__label { white-space: nowrap; }
.pv-nearby__circle { flex: 0 0 38px; }
.pv-search-toggle__label { white-space: nowrap; }
.pv-search-toggle__circle { flex: 0 0 auto; }
.pv-cta-pill { flex: 0 0 auto; white-space: nowrap; }

/* Masquage visuel qui reste lisible par les lecteurs d'écran. */
.pv-label-discret {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

@media (max-width: 1500px) {
	.pv-search-toggle__label { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); border: 0; }
	.pv-search-toggle { gap: 0; }
}
@media (max-width: 1240px) {
	.pv-nearby__label { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); border: 0; }
	.pv-nearby { gap: 0; }
	.pv-header__actions { gap: 10px; }
}
