/**
 * Design tokens PRUNEL
 * --------------------------------------------------------------------------
 * Source unique des COULEURS / TYPO / ESPACEMENTS : theme.json
 * (WordPress génère les variables --wp--preset--*).
 * Ce fichier crée une couche d'alias sémantiques --prunel-* consommée par
 * le CSS du thème ET par Tailwind (tailwind.config.js).
 *
 * Les valeurs hex en 2e argument des var() ne sont que des FALLBACKS ;
 * la vérité reste theme.json. Mettre à jour les deux ensemble.
 * Valeurs extraites de Figma (fichier PRUNEL, imports XD).
 */
:root {
	/* --- Couleurs de marque (miroir de theme.json) --- */
	--prunel-blue: var(--wp--preset--color--blue, #0043af);
	--prunel-yellow: var(--wp--preset--color--yellow, #f2e500);
	--prunel-teal: var(--wp--preset--color--teal, #00d9b6);
	--prunel-coral: var(--wp--preset--color--coral, #ff5c42);
	--prunel-white: var(--wp--preset--color--white, #ffffff);
	--prunel-ink: var(--wp--preset--color--ink, #53545a);

	/* --- Surfaces dérivées --- */
	/* Cartes quartiers : blanc à 4,8 % par-dessus le bleu (cf. Figma Rectangle 56). */
	--prunel-card-on-blue: rgba(255, 255, 255, 0.048);

	/* --- Layout / stratégie conteneur (réf. volaypei.com) --- */
	--prunel-container: 1280px;   /* contenu centré */
	--prunel-bleed-max: 1920px;   /* visuels pleine largeur, plafonnés à 1920 */
	--prunel-gutter: clamp(1rem, 4vw, 2rem);

	/* --- Rayons --- */
	--prunel-radius: 25px;
	--prunel-radius-sm: 12px;

	/* --- Typographie --- */
	--prunel-font: "acumin-pro", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

	/* Graisses Acumin Pro (kit Typekit ufw4ddj : 100–900 + italiques). */
	--prunel-fw-regular: 400;
	--prunel-fw-medium: 500;
	--prunel-fw-semibold: 600;
	--prunel-fw-bold: 700;
	--prunel-fw-black: 800;
	--prunel-fw-ultra: 900;
}

/* Mobile (maquette « Version mobile », 390px) : gouttière de 36px partout. */
@media (max-width: 1023px) {
	:root {
		--prunel-gutter: 36px;
	}
}

*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: acumin-pro, system-ui, -apple-system, Segoe UI, Roboto, sans-serif; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
	html {
		-webkit-text-size-adjust: 100%;
	}

	body {
		font-family: var(--prunel-font);
		color: var(--prunel-ink);
		background: var(--prunel-white);
		font-weight: 400;
		line-height: 1.5;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}

	/* Titres : Acumin Pro Ultra Black (900) comme la maquette.
	   Le kit Typekit ufw4ddj fournit toutes les graisses 100–900 (+ italiques). */
	h1, h2, h3, h4, h5, h6 {
		font-weight: var(--prunel-fw-ultra);
		line-height: 1.1;
		text-transform: uppercase;
	}

	a {
		color: inherit;
		text-decoration: none;
	}

	img {
		max-width: 100%;
		height: auto;
	}
.container {
  width: 100%;
}
@media (min-width: 640px) {

  .container {
    max-width: 640px;
  }
}
@media (min-width: 768px) {

  .container {
    max-width: 768px;
  }
}
@media (min-width: 1024px) {

  .container {
    max-width: 1024px;
  }
}
@media (min-width: 1280px) {

  .container {
    max-width: 1280px;
  }
}
@media (min-width: 1536px) {

  .container {
    max-width: 1536px;
  }
}
	.pr-container {
		width: 100%;
		/* Contenu = 1280px EXACTEMENT aux grandes largeurs ; la gouttière
		   ne rogne le contenu qu'en dessous de 1280 + 2·gouttière. */
		max-width: calc(var(--prunel-container) + 2 * var(--prunel-gutter));
		margin-inline: auto;
		padding-inline: var(--prunel-gutter);
	}

	/* Section pleine largeur, plafonnée à 1920px et centrée au-delà. */
	.pr-bleed {
		width: 100%;
		max-width: var(--prunel-bleed-max);
		margin-inline: auto;
	}

	/* Un contenu 1280 à l'intérieur d'une section bleed retrouve
	   automatiquement les marges latérales de la maquette (320px à 1920). */
	.pr-bleed > .pr-container {
		padding-inline: var(--prunel-gutter);
	}

	/* Utilitaire : fond de marque pleine largeur. */
	.pr-section--blue {
		background-color: var(--prunel-blue);
		color: var(--prunel-white);
	}

	/* Carte translucide sur fond bleu (cartes quartiers). */

	/* ==========================================================================
	   En-tête
	   ========================================================================== */
	.pr-header {
		position: sticky;
		top: 0;
		z-index: 50;
		background: var(--prunel-white);
	}

	/* Variantes de logo : couleur en desktop, blanc en mobile (fond bleu). */
	.pr-header .is-mobile { display: none; }
	.pr-header .is-desktop { display: inline-block; }

	.pr-header__topbar {
		display: flex;
		width: 100%;
	}

	.pr-header__topbar span {
		display: block;
		height: 8px;
		flex: 1 1 0;
	}

	.pr-header__bar {
		background: var(--prunel-white);
		transition: box-shadow 0.2s ease;
	}

	.pr-header.is-scrolled .pr-header__bar {
		box-shadow: 0 6px 20px rgba(0, 67, 175, 0.08);
	}

	.pr-header__stdenis,
	.pr-header__brand {
		display: inline-flex;
	}

	.pr-header__actions {
		display: none;
	}

	/* Desktop (node 1-889, réf. 1920px, filet 8px compris dans les coordonnées Figma) :
	   en-tête 233px · blason St-Denis (64.72, 62.63) 78×107 · logo PRUNEL centré
	   (878.91, 38.54) 162.19×107.52 · ligne de menu à y186. Logos en taille native SVG. */
	@media (min-width: 1024px) {
		/* En-tête FIXE (sous la barre d'admin WP si présente) : sa place de 233px
		   est réservée sur <body>, donc sa réduction au scroll ne décale pas la page. */
		.pr-header {
			position: fixed;
			top: var(--wp-admin--admin-bar--height, 0px);
			left: 0;
			right: 0;
		}

		body {
			padding-top: 233px;
		}

		html {
			scroll-padding-top: 150px; /* ancres : pas cachées sous l'en-tête réduit */
		}

		.pr-header .pr-header__inner {
			position: relative;
			max-width: none;
			height: 225px; /* 233 - 8 (filet) */
			padding: 0;
		}

		.pr-header__stdenis {
			position: absolute;
			top: 54.63px; /* 62.63 - 8 */
			left: clamp(var(--prunel-gutter), 3.371vw, 64.72px); /* 64.72px à 1920 (élément collé au bord) */
		}

		.pr-header__brand {
			position: absolute;
			top: 30.54px; /* 38.54 - 8 */
			left: calc(50% - 81.09px); /* centre du logo (162.19px) sur l'axe à 960 */
		}

		.pr-header__stdenis img { height: 107px; width: auto; }
		.pr-header__brand img { height: 107.517px; width: auto; } /* logo PRUNEL v2 (162.19×107.52) */

		.pr-header__nav {
			position: absolute;
			top: 178px; /* 186 - 8 */
			left: 0;
			right: 0;
		}

		/* ----- En-tête réduit au scroll (.is-scrolled) : 150px de haut (filet
		   compris), logos à 50px de haut. Animé (pas de disparition/apparition). ----- */
		.pr-header__inner,
		.pr-header__stdenis,
		.pr-header__brand,
		.pr-header__nav,
		.pr-header__stdenis img,
		.pr-header__brand img {
			transition-duration: 0.35s;
			transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
		}

		.pr-header .pr-header__inner { transition-property: height; }
		.pr-header__stdenis,
		.pr-header__brand,
		.pr-header__nav { transition-property: top, left; }
		.pr-header__stdenis img,
		.pr-header__brand img { transition-property: height; }

		.pr-header.is-scrolled .pr-header__inner { height: 142px; } /* 150 - 8 */

		/* Blason centré verticalement dans la barre : (142 - 50) / 2. */
		.pr-header.is-scrolled .pr-header__stdenis { top: 46px; }
		.pr-header.is-scrolled .pr-header__stdenis img { height: 50px; }

		/* PRUNEL en haut, toujours centré (162.19 × 50/107.517 / 2 = 37.72). */
		.pr-header.is-scrolled .pr-header__brand { top: 22px; left: calc(50% - 37.72px); }
		.pr-header.is-scrolled .pr-header__brand img { height: 50px; }

		/* Menu : 23px sous le logo, 25px au-dessus du bas de la barre. */
		.pr-header.is-scrolled .pr-header__nav { top: 95px; }
	}

	.pr-header.is-instant *,
	.pr-header.is-instant .pr-header__inner {
		transition: none;
	}

	@media (min-width: 1024px) and (prefers-reduced-motion: reduce) {
		.pr-header__inner,
		.pr-header__stdenis,
		.pr-header__brand,
		.pr-header__nav,
		.pr-header__stdenis img,
		.pr-header__brand img {
			transition: none;
		}
	}

	/* Menu principal (desktop) : 5 items, 70px entre chaque à 1920 (410 → 1511, centré). */
	.pr-menu {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-wrap: wrap;
		gap: clamp(1.25rem, 3.646vw, 70px);
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.pr-menu li {
		position: relative;
	}

	/* La boîte du <li> = celle du lien (22px) : la bulle se cale exactement sur le libellé. */
	.pr-menu > li {
		display: flex;
	}

	/* Acumin Ultra Black 18px #0043AF, interlettrage normal (node 1:892). */
	.pr-menu a {
		display: inline-block;
		font-weight: var(--prunel-fw-ultra);
		text-transform: uppercase;
		color: var(--prunel-blue);
		font-size: clamp(0.95rem, 1.1vw, 1.125rem);
		line-height: 22px; /* boîte texte 22px (maquette) */
		white-space: nowrap;
	}

	.pr-menu > li > a:hover {
		color: var(--prunel-coral);
	}

	/* Sous-menu « 3 quartiers » (maquette node 1-1083, calque 1:2362 — 372×199).
	   Bulle blanche 354×181 qui ENGLOBE le libellé parent : celui-ci reste à sa
	   place, passe en corail ; les sous-items s'affichent dessous dans la bulle. */
	.pr-menu .menu-item-has-children > a {
		position: relative;
		z-index: 2; /* au-dessus de la bulle */
	}

	.pr-menu .menu-item-has-children:hover > a,
	.pr-menu .menu-item-has-children:focus-within > a {
		color: var(--prunel-coral);
	}

	.pr-menu .sub-menu {
		position: absolute;
		z-index: 1;
		top: -25px;   /* bord haut de la bulle 25px au-dessus du libellé */
		left: -26px;  /* bord gauche 26px avant le libellé */
		width: 354px;
		margin: 0;
		padding: 61px 26px 26px; /* 25 + 22 (libellé) + 14 → 1er sous-item à 36px du libellé */
		list-style: none;
		background: var(--prunel-white);
		border-radius: var(--prunel-radius); /* 25px */
		box-shadow: 0 3px 9px rgba(0, 0, 0, 0.12);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.18s ease, visibility 0.18s ease;
	}

	.pr-menu .menu-item-has-children:hover > .sub-menu,
	.pr-menu .menu-item-has-children:focus-within > .sub-menu {
		opacity: 1;
		visibility: visible;
	}

	/* Pas de 36px entre sous-items (22px de ligne + 14px). */
	.pr-menu .sub-menu li + li {
		margin-top: 14px;
	}

	/* Sous-items : Acumin Regular 18px bleu, SANS uppercase. */
	.pr-menu .sub-menu a {
		display: block;
		font-weight: var(--prunel-fw-regular);
		text-transform: none;
		letter-spacing: 0;
		font-size: 18px;
		line-height: 22px;
		color: var(--prunel-blue);
		white-space: nowrap;
	}

	.pr-menu .sub-menu a:hover {
		color: var(--prunel-coral);
	}

	/* Actions mobiles : séparateurs #2176FF + bulle + burger/croix (cachés en desktop). */
	.pr-header__actions {
		height: 52.25px; /* hauteur exacte des séparateurs verticaux (node Ligne 83/84) */
	}

	.pr-sep {
		flex: 0 0 auto;
		width: 0.75px; /* trait 0.75px (maquette) */
		height: 52.25px;
		background: #2176ff;
	}

	/* Positions calculées depuis le bord droit (maquette 6-744) :
	   séparateur x234 · bulle x260.58 · séparateur x312 · burger x335.15. */
	.pr-header__chat {
		display: inline-flex;
		align-items: center;
		margin: 0 26.05px 0 26.2px;
	}

	.pr-header__chat img { display: block; } /* taille native du SVG (25×26) */

	.pr-burger {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 32px; /* largeur FIXE = burger : la croix (plus étroite) se centre sans décaler la barre */
		margin-left: 22.77px; /* écart séparateur → burger (maquette) */
		padding: 0;
		background: none;
		border: 0;
		cursor: pointer;
	}

	/* Tailles natives des SVG Figma : burger 32×26 (haut à y36.36), croix 19.23×19.23 (centrée y48). */
	.pr-burger__open { display: block; position: relative; top: 1.36px; }
	.pr-burger__close { display: none; }

	/* Ouverture : le burger devient la croix rouge, SUR PLACE (la barre ne bouge pas). */
	body.pr-nav-open .pr-burger__open { display: none; }
	body.pr-nav-open .pr-burger__close { display: block; }

	/* ----- Bandeau mobile (node 6-744), positions exactes (ref 390px) ----- */
	@media (max-width: 1023px) {
		.pr-header { z-index: 80; } /* reste au-dessus du panneau (70) */
		.pr-header,
		.pr-header__bar {
			background: var(--prunel-blue);
		}

		/* Pas de filet multicolore en mobile ; filet bas #2176FF (node Ligne 85). */
		.pr-header__topbar { display: none; }
		/* Trait 0.75px CENTRÉ sur y96 (comme Figma) : la barre fait 96px pile
		   et le contenu démarre à 96. */
		.pr-header__bar { box-shadow: inset 0 -0.375px 0 #2176ff, 0 0.375px 0 #2176ff; }

		.pr-header .is-desktop { display: none; }
		.pr-header .is-mobile { display: inline-block; }

		/* St-Denis (23, 30.78) · PRUNEL (68.32, 30.95) · bulle · séparateurs · burger
		   (335.15) — marge droite 22.85px. Logos en taille native SVG (23×32, 139.11×31.03). */
		.pr-header .pr-header__inner {
			display: flex;
			align-items: center;
			gap: 0;
			height: 96px;
			padding: 0 22.85px 0 23px;
		}

		.pr-header__stdenis { order: 1; align-self: flex-start; margin-top: 30.78px; }
		.pr-header__stdenis img { height: auto; }

		.pr-header__brand { order: 2; align-self: flex-start; margin: 30.95px auto 0 22.32px; }
		.pr-header__brand img { height: auto; }

		.pr-header__nav { display: none; }

		.pr-header__actions {
			order: 3;
			display: flex;
			align-items: center;
		}

		.pr-header.is-scrolled .pr-header__bar {
			box-shadow: inset 0 -0.375px 0 #2176ff, 0 0.375px 0 #2176ff, 0 6px 20px rgba(0, 0, 0, 0.18);
		}
	}

	/* ==========================================================================
	   Panneau de menu mobile (node 6-847) : la LISTE seule.
	   La barre (.pr-header, z-index 80) reste fixe au-dessus — seul ce panneau
	   (z-index 70) apparaît. Rien ne bouge d'un pixel à l'ouverture.
	   ========================================================================== */
	.pr-mobile-panel {
		position: fixed;
		inset: 0;
		z-index: 70;
		background: var(--prunel-blue);
		color: var(--prunel-white);
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	.pr-mobile-panel[hidden] { display: none; }

	.pr-mobile-menu {
		/* Chevron jaune EXACT (node Groupe 187, fill #F2E500), en data-URI. */
		--pr-chevron: url("data:image/svg+xml,%3Csvg preserveAspectRatio=%22none%22 overflow=%22visible%22 width=%229.93846%22 height=%2216.9619%22 viewBox=%220 0 9.93846 16.9619%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M9.62377 7.60544L1.69677 0.289437C1.60559 0.196104 1.49635 0.122316 1.37573 0.0725732C1.2551 0.0228301 1.1256 -0.00182685 0.995137 0.000105384C0.864669 0.00203762 0.735962 0.0305185 0.61686 0.0838121C0.497758 0.137106 0.390756 0.214095 0.302377 0.310088C0.213999 0.406081 0.146094 0.519067 0.102802 0.642158C0.0595109 0.765248 0.0417396 0.895866 0.0505717 1.02605C0.0594037 1.15623 0.0946542 1.28325 0.154174 1.39937C0.213694 1.51548 0.296237 1.61826 0.396772 1.70144L7.58277 8.33444L0.296772 15.3074C0.205546 15.3947 0.132404 15.4991 0.0815231 15.6146C0.0306423 15.7301 0.00302 15.8545 0.000234081 15.9807C-0.00255183 16.1069 0.0195532 16.2324 0.0652865 16.3501C0.11102 16.4678 0.179485 16.5752 0.266772 16.6664C0.443386 16.8501 0.685567 16.9562 0.940282 16.9616C1.195 16.9671 1.44149 16.8714 1.62577 16.6954L9.63677 9.03444C9.73323 8.94202 9.80975 8.83083 9.86162 8.70773C9.9135 8.58463 9.93963 8.45221 9.93842 8.31863C9.9372 8.18505 9.90866 8.05313 9.85454 7.93099C9.80043 7.80885 9.7219 7.69908 9.62377 7.60844%22 fill=%22%23F2E500%22/%3E%3C/svg%3E");
		margin: 0;
		/* Boîte texte « LE PROJET » à y204.5 ; colonne indentée 55.75px (14.29% de 390). */
		padding: 187.5px 55.75px 48px;
		list-style: none;
	}

	/* Séparateurs #2176FF 0.75px sous chaque groupe (nodes Ligne 59-63). */
	.pr-mobile-menu > li {
		border-bottom: 0.75px solid #2176ff;
	}

	/* Items 1er niveau : Acumin Ultra Black 22px (boîte 26px) blanc, chevron jaune après le texte. */
	.pr-mobile-menu > li > a {
		display: flex;
		align-items: center;
		gap: 12px;
		padding: 17px 0 19px;
		color: var(--prunel-white);
		font-weight: var(--prunel-fw-ultra);
		font-size: 22px;
		line-height: 26px;
		text-transform: uppercase;
	}

	.pr-mobile-menu a::after {
		content: "";
		flex: 0 0 auto;
		width: 10px;
		height: 17px;
		background: var(--pr-chevron) no-repeat center / contain;
		transform: translateY(1.5px); /* chevrons ~1.5px sous l'axe du texte (maquette) */
	}

	/* « 3 QUARTIERS EMBLÉMATIQUES » : libellé (2 lignes), sans chevron. */
	.pr-mobile-menu .menu-item-has-children > a {
		display: block;
		padding-bottom: 0;
	}
	.pr-mobile-menu .menu-item-has-children > a::after { content: none; }

	/* Sous-items : 1er à 14px sous le libellé, pas de 36px, séparateur 19px sous « Butor ». */
	.pr-mobile-menu .sub-menu {
		margin: 0;
		padding: 14px 0 19px;
		list-style: none;
	}

	.pr-mobile-menu .sub-menu li + li {
		margin-top: 14px;
	}

	/* Sous-items : Acumin Bold 18px (boîte 22px) turquoise + chevron jaune. */
	.pr-mobile-menu .sub-menu a {
		display: flex;
		align-items: center;
		gap: 12px;
		padding: 0;
		color: var(--prunel-teal);
		font-weight: var(--prunel-fw-bold);
		font-size: 18px;
		line-height: 22px;
	}

	body.pr-nav-open { overflow: hidden; }

	/* ----- Bloc Héros (prunel/hero) ----- */
	.pr-hero {
		padding-block: clamp(2.5rem, 5vw, 4rem) clamp(3rem, 6vw, 4.5rem);
	}

	.pr-hero__title {
		margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
		color: var(--prunel-coral);
		text-align: center;
		font-weight: var(--prunel-fw-ultra);
		font-size: clamp(2.25rem, 5vw, 3.75rem);
		line-height: 1.05;
	}

	.pr-hero__photos {
		position: relative;
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 16px;
	}

	.pr-hero__photo {
		margin: 0;
		aspect-ratio: 416 / 328;
		border-radius: var(--prunel-radius);
		overflow: hidden;
	}

	.pr-hero__photo img {
		display: block;
		width: 100%;
		height: 100%;
		-o-object-fit: cover;
		   object-fit: cover;
	}

	/* Bouton de sélection d'image (éditeur). */
	.pr-hero__photo-btn {
		display: block;
		width: 100%;
		height: 100%;
		padding: 0;
		border: 0;
		cursor: pointer;
		background: none;
	}

	/* Carte corail flottante sur la 1re photo. */
	.pr-hero__card {
		position: absolute;
		top: 16%;
		left: 8.4%;
		width: 32.5%;
		padding: clamp(1.25rem, 1.8vw, 1.75rem) clamp(1.5rem, 2vw, 2.25rem);
		border-radius: var(--prunel-radius);
		background: var(--prunel-coral);
		color: var(--prunel-white);
		font-weight: var(--prunel-fw-bold);
		font-size: clamp(1rem, 1.15vw, 1.375rem);
		line-height: 1.3;
	}

	.pr-hero__intro {
		margin-top: clamp(1.5rem, 2.5vw, 2rem);
		color: var(--prunel-ink);
		font-size: 1.125rem;
		line-height: 1.5;
	}

	.pr-hero__intro p {
		margin: 0 0 1rem;
	}

	.pr-hero__intro p:last-child {
		margin-bottom: 0;
	}

	.pr-hero__intro-strong {
		font-weight: var(--prunel-fw-bold);
	}

	/* Mobile (node 6-3, ref 390px) : titre sur 2 lignes · photo 1 (coins hauts
	   arrondis) · carte corail qui chevauche les 2 photos de 35px · photo 3
	   (coins bas arrondis). La photo 2 et l'intro ne figurent pas en mobile. */
	@media (max-width: 1023px) {
		.pr-hero {
			padding-block: 32px 0;
		}

		.pr-hero__title {
			margin-bottom: 40px;
			font-size: 36px;
			line-height: 36px;
		}

		.pr-hero__photos {
			display: flex;
			flex-direction: column;
			gap: 0;
		}

		.pr-hero__photo {
			position: relative;
			aspect-ratio: 318 / 140;
		}

		.pr-hero__photo img {
			position: absolute;
		}

		/* Cadrages Figma : photo 1 = 318×178.7 calée à −4.59px ;
		   photo 3 = 328×184.7 calée à −5px (centrée). */
		.pr-hero__photo:nth-child(1) {
			order: 1;
			border-radius: var(--prunel-radius) var(--prunel-radius) 0 0;
		}

		.pr-hero__photo:nth-child(1) img {
			top: -3.2814%;
			left: 0;
			height: 127.64%;
		}

		.pr-hero__photo:nth-child(2) {
			display: none;
		}

		.pr-hero__photo:nth-child(3) {
			order: 3;
			border-radius: 0 0 var(--prunel-radius) var(--prunel-radius);
		}

		.pr-hero__photo:nth-child(3) img {
			top: 0;
			left: -1.5723%;
			width: 103.1447%;
			max-width: none;
			height: 131.926%;
		}

		.pr-hero__card {
			position: relative;
			z-index: 1;
			order: 2;
			top: auto;
			left: auto;
			width: auto;
			margin-block: -35px;
			padding: 28px 36px 40px;
			font-size: 18px;
			line-height: 22px;
		}

		.pr-hero__intro {
			display: none;
		}
	}

	/* ----- Bloc Chiffres clés (prunel/stats) ----- */
	.pr-stats {
		display: flex;
		align-items: center;
		gap: clamp(1.5rem, 3vw, 3.25rem);
		padding-block: clamp(2rem, 4vw, 3rem);
	}

	.pr-stats__title {
		flex: 0 0 auto;
		margin: 0;
		color: var(--prunel-blue);
		font-weight: var(--prunel-fw-ultra);
		font-size: clamp(1.75rem, 2.8vw, 2.25rem);
		line-height: 1.15;
	}

	.pr-stats__card {
		position: relative;
		flex: 1 1 auto;
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 1rem;
		padding: clamp(1.5rem, 2.2vw, 2.4rem) clamp(1.5rem, 2.5vw, 2.75rem);
		border-radius: var(--prunel-radius);
		background: var(--prunel-blue);
	}

	.pr-stats__item {
		position: relative;
		display: flex;
		flex-direction: column;
	}

	.pr-stats__num {
		color: var(--prunel-yellow);
		font-weight: var(--prunel-fw-ultra);
		font-size: clamp(2.5rem, 3.4vw, 3.75rem);
		line-height: 1;
	}

	.pr-stats__label {
		margin-top: 0.4rem;
		color: var(--prunel-white);
		font-weight: var(--prunel-fw-bold);
		font-size: clamp(0.95rem, 1.1vw, 1.375rem);
		line-height: 1.2;
	}

	/* Contrôles éditeur (repeater). */
	.pr-stats__remove {
		position: absolute;
		top: -0.5rem;
		right: -0.5rem;
		z-index: 2;
	}

	.pr-stats__add {
		margin-top: 1rem;
	}

	/* Mobile (node 6-3) : titre bleu 26/28 · carte 318×556 · chiffres centrés
	   en colonne (pas de 119px), libellés Bold 20/24. La carte déborde de 133px
	   sur le bandeau parallaxe qui suit (cf. .pr-parallax). */
	@media (max-width: 1023px) {
		.pr-stats {
			position: relative;
			z-index: 1;
			display: block;
			padding-block: 31px 0;
		}

		.pr-stats__title {
			margin-bottom: 26px;
			font-size: 26px;
			line-height: 28px;
		}

		.pr-stats__card {
			display: flex;
			flex-direction: column;
			gap: 24px;
			/* 43px latéraux : colonne de 232px → « de personnes vivant /
			   sous le seuil de pauvreté » comme la maquette. */
			padding: 25.5px 43px 54.5px;
		}

		.pr-stats__item {
			align-items: center;
			text-align: center;
		}

		.pr-stats__num {
			font-size: 60px;
			line-height: 72px;
		}

		.pr-stats__label {
			margin-top: -1px;
			font-size: 20px;
			line-height: 24px;
		}
	}

	/* ----- Bloc 3 quartiers (prunel/quartiers) ----- */
	.pr-quartiers {
		padding-block: clamp(2.5rem, 5vw, 4.5rem);
	}

	.pr-quartiers__title {
		margin: 0 0 clamp(2rem, 4vw, 3.5rem);
		color: var(--prunel-teal);
		text-align: center;
		font-weight: var(--prunel-fw-ultra);
		font-size: clamp(1.1rem, 1.6vw, 1.375rem);
		line-height: 1.3;
		letter-spacing: 0.01em;
	}

	.pr-quartiers__grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 16px;
	}

	.pr-quartier {
		--pr-quartier-pad: clamp(1.5rem, 2.3vw, 2.25rem);
		position: relative;
		display: flex;
		flex-direction: column;
		aspect-ratio: 416 / 604;
		border-radius: var(--prunel-radius);
		background: var(--prunel-card-on-blue);
		overflow: hidden;
	}

	.pr-quartier__body {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
		padding: var(--pr-quartier-pad);
	}

	.pr-quartier__head {
		display: flex;
		align-items: center;
		gap: 0.85rem;
	}

	.pr-quartier__pin {
		flex: 0 0 auto;
		width: 40px;
		height: 40px;
	}

	.pr-quartier__name {
		margin: 0;
		color: var(--prunel-white);
		font-weight: var(--prunel-fw-ultra);
		font-size: clamp(1.75rem, 2.5vw, 2.25rem);
		line-height: 1.05;
	}

	.pr-quartier__link {
		display: inline-flex;
		align-items: center;
		gap: 11.03px;
		/* Calé À DROITE comme la maquette (node 1-1339 : flèche à 55px du bord
		   de la carte) et jamais coupé : le libellé reste sur une ligne. */
		align-self: flex-end;
		margin-top: auto;
		margin-right: calc(55px - var(--pr-quartier-pad));
		margin-bottom: clamp(0.5rem, 1.5vw, 1.25rem);
		white-space: nowrap;
		color: var(--prunel-teal);
		font-weight: var(--prunel-fw-bold);
		font-size: 1.125rem;
		text-transform: uppercase;
	}

	.pr-quartier__arrow {
		width: 26px;
		height: 17px;
	}

	.pr-quartier__photo {
		flex: 0 0 40%;
	}

	.pr-quartier__photo img {
		display: block;
		width: 100%;
		height: 100%;
		-o-object-fit: cover;
		   object-fit: cover;
	}

	/* Contrôles éditeur. */
	.pr-quartier__remove {
		position: absolute;
		top: 0.5rem;
		right: 0.5rem;
		z-index: 2;
	}

	.pr-quartier__photo-btn {
		display: block;
		width: 100%;
		height: 100%;
		padding: 0;
		border: 0;
		cursor: pointer;
		background: none;
	}

	.pr-quartier__photo-ph {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 100%;
		min-height: 180px;
		color: var(--prunel-white);
		background: rgba(255, 255, 255, 0.1);
		font-weight: var(--prunel-fw-bold);
	}

	.pr-quartiers__add {
		margin-top: 1.5rem;
	}

	/* Mobile (node 6-3, cartes 6-69 / 6-94 / 6-119) : pas de titre · cartes
	   318×388 empilées (écart 28px), blanc 10 % sur bleu · pin 31px · nom 26/30 ·
	   « EN SAVOIR PLUS » 16px calé en bas du corps · photo 318×194. */
	@media (max-width: 1023px) {
		.pr-quartiers {
			/* 53px sous la dernière carte = départ du bloc « bénéfices » (même fond). */
			padding-block: 60px 53px;
		}

		.pr-quartiers__title {
			display: none;
		}

		/* Une colonne en mobile ; 2 puis 3 colonnes dès que les cartes ont
		   la place (≥ 280px de large), la carte orpheline est centrée. */
		.pr-quartiers__grid {
			grid-template-columns: 1fr;
			gap: 28px;
		}

		.pr-quartier {
			aspect-ratio: 318 / 388;
			background: rgba(255, 255, 255, 0.1);
		}

		.pr-quartier__body {
			padding: 0;
		}

		.pr-quartier__head {
			align-items: flex-start;
			gap: 9px;
			padding-inline: 34px;
		}

		.pr-quartier__pin {
			width: 31px;
			height: 31px;
			margin-top: 36px;
		}

		.pr-quartier__name {
			margin-top: 32px;
			font-size: 26px;
			line-height: 30px;
		}

		.pr-quartier__link {
			align-items: flex-start;
			gap: 11.39px;
			margin-right: 34px; /* flèche à 34px du bord (6-88) → texte à 122.54px */
			margin-bottom: 31.39px;
			font-size: 16px;
			line-height: 19px;
		}

		.pr-quartier__arrow {
			width: 20.608px;
			height: 13.757px;
			margin-top: 5.36px;
		}

		.pr-quartier__photo {
			flex: 0 0 50%;
		}
	}

	@media (min-width: 660px) and (max-width: 967px) {
		.pr-quartiers__grid {
			grid-template-columns: repeat(2, 1fr);
		}

		.pr-quartier:last-child:nth-child(odd) {
			grid-column: 1 / -1;
			justify-self: center;
			width: calc((100% - 28px) / 2);
		}
	}

	@media (min-width: 968px) and (max-width: 1023px) {
		.pr-quartiers__grid {
			grid-template-columns: repeat(3, 1fr);
		}
	}

	/* ----- Bloc Bandeau parallaxe (prunel/parallax) ----- */
	.pr-parallax {
		position: relative;
		height: clamp(200px, 17vw, 320px);
		background: var(--prunel-white);
		overflow: hidden;
	}

	.pr-parallax__photo {
		position: absolute;
		/* Photo calée sur le bord gauche du « M » des formes (maquette client :
		   ≈ 363px à 1920 = 1.1356 × la hauteur du bandeau). */
		inset: 0 0 0 clamp(227px, 19.31vw, 363.4px);
		background-position: center top;
		background-repeat: no-repeat;
		background-size: cover;
		/* Repli mobile : background-attachment: fixed est souvent désactivé sur iOS. */
		background-attachment: scroll;
	}

	/* Parallaxe DIFFÉRENCIÉE : la photo garde la taille du bandeau (pas de zoom) ;
	   js/parallax.js fait glisser le CADRAGE de l'image plus lentement que le
	   défilement (background-position), cadrage de la maquette au repos. */

	.pr-parallax__shapes {
		position: absolute;
		left: 0;
		bottom: 0;
		z-index: 1;
		height: 100%;
		width: auto;
		pointer-events: none;
	}

	.pr-parallax__photo-btn {
		display: block;
		width: 100%;
		height: 100%;
		padding: 0;
		border: 0;
		cursor: pointer;
		background: none;
	}

	/* Mobile (node 6-11 + 6-53) : photo pleine largeur 390×405, recouverte en
	   haut de 133px par la carte des chiffres ; formes (SVG exact 6-53) pleine
	   largeur collées en bas. NB : la photo n'a pas été importée dans Figma
	   (rectangle blanc), comme en desktop — même image que le bloc desktop. */
	@media (max-width: 1023px) {
		.pr-parallax {
			height: auto;
			aspect-ratio: 390 / 405;
			margin-top: -133px;
		}

		.pr-parallax__photo {
			inset: 0;
		}

		/* Le SVG exporté fait 172px pour 171.36px de dessin : on cale le dessin
		   (et non la boîte) sur le bas de la section. */
		.pr-parallax__shapes {
			width: 100%;
			height: auto;
			transform: translateY(0.3721%); /* 0.64 / 172 */
		}
	}

	/* ==========================================================================
	   Pied de page
	   ========================================================================== */
	.pr-footer {
		margin-top: clamp(2rem, 4vw, 3.5rem);
	}

	.pr-footer__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: clamp(2rem, 5vw, 4rem);
		padding-block: clamp(2.5rem, 4vw, 3.25rem);
	}

	.pr-footer__brand {
		display: flex;
		align-items: center;
		gap: clamp(1.5rem, 3vw, 2.5rem);
		flex: 0 0 auto;
	}

	.pr-footer__logo { height: clamp(68px, 7vw, 84px); width: auto; }

	.pr-footer__badges {
		display: flex;
		align-items: center;
		gap: 0.75rem;
	}

	.pr-footer__badges img { height: clamp(48px, 5vw, 64px); width: auto; }

	/* Colonne mentions légales */
	.pr-footer__legal-menu {
		display: flex;
		flex-direction: column;
		gap: 1.1rem;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.pr-footer__legal-menu a {
		color: var(--prunel-white);
		text-transform: uppercase;
		font-weight: var(--prunel-fw-medium);
		font-size: 0.95rem;
		letter-spacing: 0.02em;
	}

	.pr-footer__legal-menu a:hover { color: var(--prunel-teal); }

	/* Colonne contact / réseaux / newsletter */
	.pr-footer__contact {
		display: flex;
		flex-direction: column;
		gap: 1.1rem;
		align-items: flex-start;
	}

	.pr-footer__site {
		color: var(--prunel-teal);
		text-transform: uppercase;
		font-weight: var(--prunel-fw-ultra);
		font-size: 0.95rem;
		letter-spacing: 0.02em;
		border-bottom: 2px solid var(--prunel-teal);
		padding-bottom: 0.2rem;
	}

	.pr-footer__social {
		display: flex;
		align-items: center;
		gap: 0.9rem;
	}

	.pr-footer__social-label {
		color: var(--prunel-white);
		text-transform: uppercase;
		font-weight: var(--prunel-fw-ultra);
		font-size: 0.95rem;
		letter-spacing: 0.02em;
	}

	.pr-footer__social img { height: 34px; width: auto; display: block; }

	.pr-footer__newsletter {
		display: inline-flex;
		align-items: center;
		gap: 0.9rem;
		color: var(--prunel-white);
		text-transform: uppercase;
		font-weight: var(--prunel-fw-ultra);
		font-size: 0.95rem;
		letter-spacing: 0.02em;
	}

	.pr-footer__newsletter .pr-arrow { width: 26px; height: 17px; }
	.pr-footer__newsletter:hover { color: var(--prunel-teal); }

	/* Variantes d'assets desktop / mobile. */
	.pr-footer .is-mobile { display: none; }

	/* Mobile (node 6-605, ref 390×499) : logo + 3 pastilles · SAINTDENIS.RE
	   souligné · SUIVEZ PRUNEL + icônes · newsletter sur 2 lignes · mentions
	   (Regular 14px). Lignes de base calées au pixel sur la maquette. */
	@media (max-width: 1023px) {
		.pr-footer .is-desktop { display: none; }
		.pr-footer img.is-mobile { display: block; }
		.pr-footer br.is-mobile { display: inline; }

		.pr-footer__inner {
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			gap: 0;
			padding-block: 46.74px 92px;
		}

		.pr-footer__brand { order: 1; align-items: flex-start; gap: 0; }
		.pr-footer__contact { order: 2; }
		.pr-footer__legal { order: 3; }

		.pr-footer__logo { width: 112.701px; height: 74.711px; } /* node 6-677 : 112.70×74.71 */

		/* Pastilles à x189.73 / 247.45 / 304.32, y+18.69 sous le haut du logo,
		   49.82px de haut (fichiers 70px × 0.7117). */
		.pr-footer__badges {
			gap: 0;
			margin: 18.69px 0 0 41.029px; /* x189.73 = 36 + 112.701 + 41.029 */
		}

		.pr-footer__badges img { display: block; width: auto; height: 49.821px; }
		.pr-footer__badges img + img { margin-left: 7.899px; }
		.pr-footer__badges img:last-child { margin-left: 7.049px; }

		.pr-footer__contact { gap: 0; margin-top: 43.549px; } /* SAINTDENIS.RE à y165 */

		.pr-footer__site {
			padding-bottom: 4.25px;
			border-bottom-width: 1.5px;
			font-size: 14px;
			line-height: 17px;
			letter-spacing: 0;
		}

		.pr-footer__social {
			align-items: flex-start;
			gap: 0;
			margin-top: 15.85px;
		}

		.pr-footer__social-label {
			margin: 0.4px 19.61px 0 0;
			font-size: 14px;
			line-height: 17px;
			letter-spacing: 0;
		}

		.pr-footer__social a + a { margin-left: 15.64px; }
		.pr-footer__social img { width: auto; height: auto; }

		.pr-footer__newsletter {
			align-items: flex-start;
			gap: 13.33px;
			margin-top: 10.9px;
			font-size: 14px;
			line-height: 22px;
			letter-spacing: 0;
		}

		.pr-footer__newsletter .pr-arrow {
			width: 25.6146px;
			height: 17.0957px;
			margin-top: 26.406px;
		}

		.pr-footer__legal { margin-top: 24.5px; }

		.pr-footer__legal-menu { gap: 23px; }

		.pr-footer__legal-menu a {
			display: block;
			font-weight: var(--prunel-fw-regular);
			font-size: 14px;
			line-height: 17px;
			letter-spacing: 0;
		}
	}
.sticky {
  position: sticky;
}
.block {
  display: block;
}
.hidden {
  display: none;
}
.resize {
  resize: both;
}
.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.text-ink {
  color: var(--prunel-ink);
}
.text-yellow {
  color: var(--prunel-yellow);
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

/* ==========================================================================
   Base
   ========================================================================== */

/* ==========================================================================
   Layout — stratégie conteneur / pleine largeur
   Contenu : 1280px centré. Visuels « collés aux bords » : pleine largeur
   jusqu'à 1920px puis marges (réf. volaypei.com).
   ========================================================================== */

/* Éditeur : boutons « Supprimer » des repeaters (chiffres, quartiers) —
   simple croix blanche sans fond (fonds bleus), corail au survol. */
.components-button.pr-stats__remove,
.components-button.pr-quartier__remove {
	width: 24px;
	min-width: 24px;
	height: 24px;
	padding: 0;
	justify-content: center;
	background: none;
	color: rgba(255, 255, 255, 0.75);
	box-shadow: none;
	opacity: 0.2;
	transition: opacity 0.15s ease, color 0.15s ease;
}

.components-button.pr-stats__remove:hover,
.components-button.pr-quartier__remove:hover,
.components-button.pr-stats__remove:focus-visible,
.components-button.pr-quartier__remove:focus-visible {
	background: none;
	color: var(--prunel-coral);
	opacity: 1;
}

