/*
Corrections éditoriales — supprime les éléments "template WordPress" par défaut
et applique la direction artistique PLAGEPLAGE. S'appuie sur les design tokens.
*/

body {
	background: var(--pp-color-bg);
	color: var(--pp-color-text);
	font-family: var(--pp-font-text);
	font-size: var(--pp-font-size-base);
	line-height: var(--pp-line-height-base);
}

/* ── Texte blanc sur tous les fonds sombres ─────────────────────────── */

/* 1. Blocs Gutenberg (WordPress ajoute .has-dark-background automatiquement) */
.has-dark-background,
.has-dark-background * {
	color: var(--pp-color-creme, #faf8f5) !important;
}
.has-dark-background a:hover {
	opacity: .75;
}

/* 2. Tous les heroes/sections PLAGEPLAGE à fond encre — texte blanc */
.pp-arch-dest__hero,
.pp-arch-dest__hero *,
.pp-arch-plage__hero,
.pp-arch-plage__hero *,
.pp-arch-adr__hero,
.pp-arch-adr__hero *,
.pp-arch-coll__hero,
.pp-arch-coll__hero *,
.pp-archive-mag__hero,
.pp-archive-mag__hero *,
.pp-archive__header,
.pp-archive__header *,
.pp-mag__hero,
.pp-mag__hero *,
.pp-region-page__hero,
.pp-region-page__hero *,
.pp-club__hero,
.pp-club__hero *,
.pp-pro__hero,
.pp-pro__hero *,
.pp-band--encre,
.pp-band--encre *,
.pp-cta-inline,
.pp-cta-inline * {
	color: var(--pp-color-creme, #faf8f5) !important;
}

/* 3. Heroes archives — fond encre pour les heroes sans background inline */
.pp-arch-coll__hero {
	background: var(--pp-color-encre, #1a2020) !important;
}

/* 3b. Heroes archives — hauteur fixe + flex center = cohérence parfaite toutes pages */
.pp-arch-dest__hero,
.pp-arch-plage__hero,
.pp-arch-adr__hero,
.pp-arch-coll__hero,
.pp-archive__header,
.pp-mag__hero {
	height: 320px !important;
	min-height: unset !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	align-items: center !important;
	text-align: center !important;
	padding: 0 2rem !important;
	box-sizing: border-box !important;
}

/* ── Pas de cartes avec ombres, pas d'encadrés */
.ct-image-container,
article,
.entry-content {
	box-shadow: none !important;
	border: none !important;
}

/* Suppression visuelle des séparateurs et widgets superflus dans le contenu éditorial uniquement */
.entry-content hr,
.widget-area,
.ct-sidebar {
	display: none;
}

/*
Titres : Blocksy pilote h1-h6 via ses propres variables CSS (--theme-font-weight,
--theme-font-size, générées par son Customizer dans global.css), qui passent
au-dessus de theme.json sur la spécificité. On force explicitement la priorité
éditoriale ici plutôt que de dépendre d'un ordre de chargement fragile.
*/
h1, h2, h3, h4, h5, h6, .entry-title {
	font-family: var(--pp-font-display) !important;
	font-weight: 400 !important;
	letter-spacing: -0.01em;
	line-height: 1.15;
}

h1, .entry-title {
	font-family: var(--pp-font-display);
	font-weight: 400;
	letter-spacing: -0.01em;
	font-size: clamp(2rem, 4vw, 3.2rem);
	line-height: 1.15;
	margin-bottom: var(--pp-space-md);
}

h2 {
	font-family: var(--pp-font-display);
	font-weight: 400;
	font-size: clamp(1.5rem, 2.5vw, 2rem);
}

/* Contenu : largeur de lecture confortable, marges généreuses */
.entry-content {
	max-width: var(--pp-content-max-width);
	margin: 0 auto;
	padding: var(--pp-space-lg) var(--pp-space-md);
}

.entry-content p {
	margin-bottom: var(--pp-space-sm);
}

/* Pas de bouton "Read More" ni de boutons décoratifs */
.ct-button,
.more-link {
	background: none;
	border: 1px solid var(--pp-color-text);
	border-radius: 0;
	color: var(--pp-color-text);
	text-transform: none;
	box-shadow: none;
	padding: 0.6em 1.4em;
}

/* Catégorie discrète au-dessus du titre, pas de badge coloré */
.pp-category-label {
	font-family: var(--pp-font-text);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--pp-color-text-muted);
	margin-bottom: var(--pp-space-xs);
}

/* Images : respirent, pas de recadrage agressif par défaut */
.pp-editorial-figure img {
	width: 100%;
	display: block;
}

.pp-editorial-figure figcaption {
	font-size: 0.85rem;
	color: var(--pp-color-text-muted);
	margin-top: var(--pp-space-xs);
}

/*
Homepage éditorialisée — cf. Brand Book §7. Hero plein cadre en ratio 2:1
desktop / 9:16 mobile (même contrainte que les pages entité), titre en
overlay bas comme les gabarits Destination/Plage/Adresse — c'est la
cohérence visuelle qui fait reconnaître PLAGEPLAGE avant le logo.
*/
.pp-hero--entite {
	position: relative;
	aspect-ratio: 2 / 1;
	max-height: 85vh;
}

.pp-hero--entite .pp-hero__figure,
.pp-hero--entite .pp-hero__figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.pp-hero--entite .pp-hero__figure {
	position: absolute;
	inset: 0;
}

/* Gradient bas → haut pour lisibilité du titre sans text-shadow */
.pp-hero--entite::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(22,21,19,.60) 0%, rgba(22,21,19,.15) 45%, transparent 70%);
	pointer-events: none;
}

.pp-hero--entite .pp-hero__text {
	position: absolute;
	bottom: var(--pp-space-lg);
	left: var(--pp-space-md);
	right: var(--pp-space-md);
	max-width: var(--pp-content-max-width);
	z-index: 1;
	color: var(--pp-color-creme, #faf8f5);
}

.pp-hero--entite .pp-hero__text h1,
.pp-hero--entite .pp-hero__text h2 {
	color: var(--pp-color-creme, #faf8f5);
	margin: 0;
}

@media (max-width: 640px) {
	.pp-hero--entite {
		aspect-ratio: 9 / 16;
		max-height: 90vh;
	}
}

.pp-hero__text a,
.pp-hero__excerpt {
	color: inherit;
	text-decoration: none;
}

/* "À la une" — même grille de cartes verticales 4:5 que le maillage interne */
.pp-a-la-une {
	max-width: var(--pp-page-max-width);
	margin: var(--pp-space-xl) auto;
	padding: 0 var(--pp-space-md);
}

/* Article V1 */
.pp-article__header {
	max-width: var(--pp-content-max-width);
	margin: var(--pp-space-lg) auto 0;
	padding: 0 var(--pp-space-md);
}

.pp-article__figure {
	max-width: var(--pp-page-max-width);
	margin: var(--pp-space-md) auto;
	padding: 0 var(--pp-space-md);
}

/* Couverture article — ratio 16:9, cf. Brand Book §4/§7 */
.pp-article__couverture {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.pp-article__couverture img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/*
Chapô — cf. Brand Book §7. Court (2-3 phrases), police display, distinct
du corps de texte qui reste en police texte.
*/
.pp-article__chapo {
	max-width: var(--pp-content-max-width);
	margin: var(--pp-space-lg) auto var(--pp-space-md);
	padding: 0 var(--pp-space-md);
	font-family: var(--pp-font-display);
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	line-height: 1.4;
	color: var(--pp-color-text);
}

/*
Citations — mappe le bloc natif Gutenberg core/quote sur le style du
Brand Book §6, pour qu'un éditeur n'ait jamais besoin d'ajouter une classe
manuelle : trait fin bleu-gris à gauche, police display, jamais de fond.
*/
.entry-content blockquote,
.entry-content .wp-block-quote {
	font-family: var(--pp-font-display);
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 400;
	line-height: 1.3;
	margin: var(--pp-space-lg) 0;
	padding-left: var(--pp-space-md);
	border-left: 1px solid var(--pp-color-bleu-gris);
	background: none;
}

.entry-content .wp-block-quote cite {
	display: block;
	margin-top: var(--pp-space-xs);
	font-family: var(--pp-font-text);
	font-size: 0.85rem;
	font-style: normal;
	color: var(--pp-color-text-muted);
}

/*
Pages entité (Destination/Plage/Adresse) — hero + maillage interne automatique.
Ratio 2:1 desktop, 9:16 mobile — cf. Brand Book §4. Remplace le précédent
min-height:70vh non contraint par un ratio explicite et délibéré.
*/
.pp-entite__hero {
	position: relative;
	aspect-ratio: 2 / 1;
	max-height: 85vh;
	overflow: hidden;
}

.pp-entite__hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Gradient cinématique — jamais de text-shadow (Brand Book §2) */
.pp-entite__hero::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(22,21,19,.65) 0%, rgba(22,21,19,.15) 45%, transparent 70%);
	pointer-events: none;
}

@media (max-width: 640px) {
	.pp-entite__hero {
		aspect-ratio: 9 / 16;
		max-height: 90vh;
	}
}

.pp-entite__titre-hero {
	color: var(--pp-color-blanc-casse, #faf8f5);
	font-family: var(--pp-font-display, serif);
	font-weight: 400;
	font-size: clamp(2rem, 5vw, 4rem);
	line-height: 1.2;
	margin: 0.4rem 0 0.3rem;
	max-width: 720px;
}

.pp-entite__titre {
	max-width: var(--pp-content-max-width);
	margin: var(--pp-space-lg) auto var(--pp-space-md);
	padding: 0 var(--pp-space-md);
}

.pp-entite__fil-ariane {
	max-width: var(--pp-content-max-width);
	margin: var(--pp-space-sm) auto 0;
	padding: 0;
	font-size: 0.85rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(250,248,245,.65);
}

.pp-entite__fil-ariane a {
	color: rgba(250,248,245,.65);
	text-decoration: none;
}


/* Compatibilité : si une carte n'a pas encore le wrapper .pp-maillage__carte-image */
.pp-maillage__carte > img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	display: block;
	margin-bottom: var(--pp-space-xs);
}


/*
Citation éditoriale — cf. Brand Book §6. Police display, trait fin
bleu-gris à gauche, jamais de fond coloré, jamais de guillemets
décoratifs surdimensionnés.
*/
.pp-citation {
	font-family: var(--pp-font-display);
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 400;
	line-height: 1.3;
	max-width: var(--pp-content-max-width);
	margin: var(--pp-space-lg) auto;
	padding: 0 var(--pp-space-md) 0 var(--pp-space-md);
	border-left: 1px solid var(--pp-color-bleu-gris);
}

.pp-citation cite {
	display: block;
	margin-top: var(--pp-space-xs);
	font-family: var(--pp-font-text);
	font-size: 0.85rem;
	font-style: normal;
	color: var(--pp-color-text-muted);
}

/* Hero sans image — fond sable */
.pp-hero--no-image {
	background: var(--pp-color-sable);
	aspect-ratio: 2 / 1;
}
.pp-hero--no-image img { display: none; }

/* Archive destinations */
.pp-archive-destinations {
	max-width: var(--pp-page-max-width);
	margin: 0 auto;
	padding: 0 var(--pp-space-md) var(--pp-space-xl);
}

.pp-archive__header {
	max-width: var(--pp-content-max-width);
	margin: 0 auto;
	text-align: center;
}

.pp-archive__intro {
	color: var(--pp-color-text-muted);
	font-size: 1.1rem;
}

.pp-archive__grille {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: var(--pp-space-md);
}

.pp-archive__carte {
	display: block;
	text-decoration: none;
	color: inherit;
}

.pp-archive__carte-image {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	margin-bottom: var(--pp-space-xs);
	background: var(--pp-color-sable);
}

.pp-archive__carte-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
}

.pp-archive__carte:hover .pp-archive__carte-image img {
	transform: scale(1.03);
}

.pp-archive__carte-texte {
	padding: var(--pp-space-xs) 0;
}

.pp-archive__carte-titre {
	font-family: var(--pp-font-display);
	font-size: 1rem;
	font-weight: 400;
	margin: 0 0 0.25rem;
	line-height: 1.3;
}

.pp-archive__carte-excerpt {
	font-size: 0.85rem;
	color: var(--pp-color-text-muted);
	margin: 0;
	line-height: 1.4;
}

/* Footer */
.pp-footer {
	border-top: 1px solid var(--pp-color-sable);
	margin-top: var(--pp-space-xl);
	padding: var(--pp-space-lg) var(--pp-space-md);
}
.pp-footer__inner {
	max-width: var(--pp-page-max-width);
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--pp-space-sm);
	text-align: center;
}
.pp-footer__logo a {
	font-family: var(--pp-font-display);
	font-size: 1.5rem;
	font-weight: 400;
	letter-spacing: -0.01em;
	color: var(--pp-color-text);
	text-decoration: none;
}
.pp-footer__nav {
	display: flex;
	gap: var(--pp-space-md);
	flex-wrap: wrap;
	justify-content: center;
}
.pp-footer__nav a {
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--pp-color-text-muted);
	text-decoration: none;
}
.pp-footer__nav a:hover { color: var(--pp-color-text); }
.pp-footer__copy {
	font-size: 0.8rem;
	color: var(--pp-color-text-muted);
	margin: 0;
}

/*
Icônes — cf. Brand Book §6. Un seul set, Phosphor Icons "light", traits
fins. Chargées en SVG inline (currentColor) pour héritage de couleur
sans dépendance JS supplémentaire — voir plageplage_get_icone() dans
inc/acf-fields.php (ou équivalent) pour l'usage côté PHP.
*/
.pp-icone {
	display: inline-block;
	width: 1.2em;
	height: 1.2em;
	vertical-align: -0.2em;
	color: currentColor;
}

.pp-icone svg {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
}

/* ── Infos pratiques ────────────────────────────────────────────────── */
.pp-infos-pratiques {
	max-width: var(--pp-content-max-width);
	margin: var(--pp-space-lg) auto;
	padding: 0 var(--pp-space-md);
}
.pp-infos-pratiques__inner {
	border-top: 1px solid var(--pp-color-bleu-gris);
	border-bottom: 1px solid var(--pp-color-bleu-gris);
	padding: var(--pp-space-md) 0;
}
.pp-infos-pratiques__liste {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: var(--pp-space-sm) clamp(1.5rem, 4vw, 3rem);
	margin: 0;
	align-items: start;
}
.pp-infos-pratiques__item {
	display: flex;
	flex-direction: column;
	gap: .15rem;
}
.pp-infos-pratiques__item dt {
	font-size: .7rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pp-color-text-muted);
	font-weight: 400;
}
.pp-infos-pratiques__item dd {
	font-size: .95rem;
	color: var(--pp-color-text);
	margin: 0;
}
.pp-infos-pratiques__label {
	font-size: .7rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pp-color-text-muted);
	margin: var(--pp-space-sm) 0 .25rem;
}

/* ── Badge recommandé ───────────────────────────────────────────────── */
.pp-badge-recommande {
	display: inline-flex;
	align-items: center;
	font-size: .7rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pp-color-bleu-gris);
	border: 1px solid var(--pp-color-bleu-gris);
	padding: .3rem .7rem;
}

/* ── Bouton Réserver ────────────────────────────────────────────────── */
.pp-btn-reserve {
	display: inline-block;
	font-family: var(--pp-font-text);
	font-size: .8rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pp-color-bg);
	background: var(--pp-color-text);
	padding: .6rem 1.4rem;
	text-decoration: none;
	transition: opacity .15s;
}
.pp-btn-reserve:hover { opacity: .8; }

/* ── Système d'avis ─────────────────────────────────────────────────── */
.pp-avis {
	max-width: var(--pp-page-max-width);
	margin: var(--pp-space-xl) auto;
	padding: 0 var(--pp-space-md);
	border-top: 1px solid var(--pp-color-sable);
	padding-top: var(--pp-space-xl);
}
.pp-avis__header { margin-bottom: var(--pp-space-lg); }

.pp-avis__agregat {
	display: flex;
	align-items: center;
	gap: var(--pp-space-md);
	margin-top: var(--pp-space-sm);
}
.pp-avis__note-grande {
	font-family: var(--pp-font-display);
	font-size: clamp(2.5rem, 5vw, 4rem);
	font-weight: 400;
	line-height: 1;
	color: var(--pp-color-text);
}
.pp-avis__count {
	display: block;
	font-size: .75rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pp-color-text-muted);
	margin-top: .3rem;
}

/* Étoiles lecture */
.pp-etoiles {
	display: inline-flex;
	gap: .15rem;
	color: var(--pp-color-bleu-gris);
}
.pp-etoile--empty { opacity: .25; }

/* Étoiles input */
.pp-etoiles-input {
	display: flex;
	flex-direction: row-reverse;
	gap: .2rem;
	width: max-content;
}
.pp-etoiles-input input[type="radio"] { display: none; }
.pp-etoiles-input label {
	cursor: pointer;
	color: rgba(22,21,19,.2);
	transition: color .1s;
}
.pp-etoiles-input label svg { display: block; }
.pp-etoiles-input input:checked ~ label,
.pp-etoiles-input label:hover,
.pp-etoiles-input label:hover ~ label {
	color: var(--pp-color-bleu-gris);
}

/* Liste d'avis */
.pp-avis__liste {
	display: flex;
	flex-direction: column;
	gap: var(--pp-space-lg);
	margin-bottom: var(--pp-space-xl);
}
.pp-avis__item {
	border-bottom: 1px solid var(--pp-color-sable);
	padding-bottom: var(--pp-space-lg);
}
.pp-avis__item-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: var(--pp-space-md);
	margin-bottom: var(--pp-space-xs);
	flex-wrap: wrap;
}
.pp-avis__item-titre {
	font-family: var(--pp-font-display);
	font-size: 1.1rem;
	margin: .3rem 0 0;
}
.pp-avis__item-meta {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: .2rem;
	font-size: .75rem;
	color: var(--pp-color-text-muted);
	text-align: right;
}
.pp-avis__auteur {
	font-size: .85rem;
	color: var(--pp-color-text);
}
.pp-avis__tag {
	display: inline-block;
	font-size: .65rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	border: 1px solid var(--pp-color-sable);
	padding: .15rem .5rem;
}
.pp-avis__texte {
	font-size: .95rem;
	line-height: 1.65;
	color: var(--pp-color-text);
	margin-bottom: var(--pp-space-xs);
}
.pp-avis__date-publication {
	font-size: .75rem;
	color: var(--pp-color-text-muted);
}

/* Formulaire */
.pp-avis__formulaire {
	background: var(--pp-color-sable);
	padding: var(--pp-space-lg);
}
.pp-avis__formulaire-titre {
	font-family: var(--pp-font-display);
	font-size: 1.25rem;
	font-weight: 400;
	margin: 0 0 var(--pp-space-md);
}
.pp-avis__form-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: var(--pp-space-sm);
	margin-bottom: var(--pp-space-sm);
}
.pp-avis__form-field {
	display: flex;
	flex-direction: column;
	gap: .3rem;
	margin-bottom: var(--pp-space-sm);
}
.pp-avis__form-field--full { grid-column: 1 / -1; }
.pp-avis__form-label {
	font-size: .7rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pp-color-text-muted);
}
.pp-avis__form .pp-avis__form-field input,
.pp-avis__form .pp-avis__form-field select,
.pp-avis__form .pp-avis__form-field textarea {
	font-family: var(--pp-font-text);
	font-size: .9rem;
	color: var(--pp-color-text);
	background: var(--pp-color-bg);
	border: 1px solid rgba(22,21,19,.2);
	padding: .55rem .75rem;
	border-radius: 0;
	width: 100%;
	box-sizing: border-box;
	-webkit-appearance: none;
}
.pp-avis__form textarea { resize: vertical; min-height: 100px; }
.pp-avis__form-note { margin-bottom: var(--pp-space-sm); }

/* ── Pages statiques (À propos, Contact) ────────────────────────────── */
.pp-page-statique {
	max-width: var(--pp-content-max-width);
	margin: 0 auto;
	padding: var(--pp-space-xl) var(--pp-space-md);
}
.pp-page-statique__hero {
	margin-bottom: var(--pp-space-xl);
	border-bottom: 1px solid var(--pp-color-sable);
	padding-bottom: var(--pp-space-lg);
}
.pp-page-statique__hero h1 {
	margin: .5rem 0 0;
}
.pp-page-statique__corps {
	max-width: 680px;
}
.pp-page-statique__corps h2 {
	font-size: clamp(1.1rem, 1.8vw, 1.4rem);
	margin-top: var(--pp-space-lg);
}
.pp-page-statique__contact-cta {
	margin-top: var(--pp-space-xl);
	padding-top: var(--pp-space-lg);
	border-top: 1px solid var(--pp-color-sable);
}
.pp-contact-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: var(--pp-space-lg);
	margin: var(--pp-space-lg) 0;
}
.pp-contact-item { display: flex; flex-direction: column; gap: .4rem; }
.pp-contact-email {
	font-family: var(--pp-font-display);
	font-size: 1.1rem;
	color: var(--pp-color-text);
	text-decoration: none;
	border-bottom: 1px solid var(--pp-color-bleu-gris);
	width: max-content;
}
.pp-contact-email:hover { color: var(--pp-color-bleu-gris); }

/* ── Archive magazine ────────────────────────────────────────────────── */
.pp-archive-magazine {
	max-width: var(--pp-page-max-width);
	margin: 0 auto;
	padding: 0 var(--pp-space-md) var(--pp-space-xl);
}

/* ── Newsletter footer ───────────────────────────────────────────────── */
.pp-footer__newsletter {
	background: var(--pp-color-encre, #1a2020);
	color: #fff;
	padding: var(--pp-space-xl) var(--pp-space-md);
	text-align: center;
}
.pp-footer__newsletter-inner {
	max-width: 560px;
	margin: 0 auto;
}
.pp-footer__newsletter-label {
	font-family: var(--pp-font-text);
	font-size: .75rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #9e9b96;
	margin: 0 0 .6rem;
}
.pp-footer__newsletter-titre {
	font-family: var(--pp-font-display);
	font-size: clamp(1.6rem, 4vw, 2.2rem);
	font-weight: 400;
	color: #faf8f5;
	margin: 0 0 .6rem;
	line-height: 1.15;
}
.pp-footer__newsletter-desc {
	font-size: .9rem;
	color: #c8c3bc;
	margin: 0 0 1.4rem;
}
.pp-newsletter-form__row {
	display: flex;
	gap: .5rem;
	justify-content: center;
	flex-wrap: wrap;
}
.pp-newsletter-form__input {
	flex: 1 1 240px;
	max-width: 320px;
	padding: .7rem 1rem;
	border: 1px solid rgba(255,255,255,.3);
	background: rgba(255,255,255,.1);
	color: #fff;
	font-family: var(--pp-font-text);
	font-size: .95rem;
	border-radius: 2px;
	outline: none;
}
.pp-newsletter-form__input::placeholder { color: rgba(255,255,255,.5); }
.pp-newsletter-form__input:focus { border-color: rgba(255,255,255,.7); background: rgba(255,255,255,.15); }
.pp-newsletter-form__btn {
	padding: .7rem 1.4rem;
	background: #fff;
	color: var(--pp-color-encre, #1a2020);
	font-family: var(--pp-font-text);
	font-size: .9rem;
	font-weight: 500;
	border: none;
	border-radius: 2px;
	cursor: pointer;
	white-space: nowrap;
	transition: opacity .15s;
}
.pp-newsletter-form__btn:hover { opacity: .85; }
.pp-newsletter-form__btn:disabled { opacity: .5; cursor: not-allowed; }
.pp-newsletter-form__message {
	margin: .8rem 0 0;
	font-size: .85rem;
	min-height: 1.2em;
}

/* ── Masquer la barre régions du header Blocksy sur les pages qui ont
   leur propre nav régions (taxonomy région, archive destinations) ────── */
.tax-region_littorale [data-row="top"],
.tax-region_littorale .ct-header-row:first-child:not([data-row="main"]),
.post-type-archive-pp_destination [data-row="top"],
.post-type-archive-pp_destination .ct-header-row:first-child:not([data-row="main"]) {
	display: none !important;
}

/* ── Navigation & Header PLAGEPLAGE ──────────────────────────────────── */

/* Header principal — fixed, toujours visible (exclure #offcanvas qui partage la classe ct-header) */
.ct-header:not(#offcanvas):not(.ct-panel),
#header {
	background: var(--pp-color-creme, #faf8f5) !important;
	border-bottom: 1px solid var(--pp-color-sable, #ece5d8);
	box-shadow: none !important;
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	z-index: 200 !important;
}

/* Compensation hauteur header fixe — visiteurs non connectés uniquement */
body:not(.admin-bar) {
	padding-top: var(--pp-header-h, 65px) !important;
}
/* Fiches entité : hero plein écran, pas de compensation — le header s'affiche en overlay */
body:not(.admin-bar).single-pp_destination,
body:not(.admin-bar).single-pp_plage,
body:not(.admin-bar).single-pp_adresse,
body:not(.admin-bar).single-pp_collection,
body:not(.admin-bar).single-pp_guide,
body:not(.admin-bar).single-post {
	padding-top: 0 !important;
}
body.admin-bar .ct-header,
body.admin-bar #header {
	top: 32px !important;
}

/* Le drawer mobile — au-dessus du header fixe, pas de padding hérité */
.ct-drawer-canvas {
	padding-top: 0 !important;
	z-index: 9999 !important;
}

/* Décaler les navs sticky des templates pour ne pas se superposer au header */
.pp-region-page__regnav,
.pp-arch-dest__regnav {
	top: var(--pp-header-h, 65px) !important;
}

/* Inner des subnavs — flex horizontal */
.pp-page-subnav__inner {
	display: flex;
	padding: 0 clamp(1.5rem, 5vw, 4rem);
	min-width: max-content;
	overflow-x: auto;
}

/* Items subnav */
.pp-rn-item {
	font-family: var(--pp-font-text, 'General Sans', system-ui, sans-serif);
	font-size: .72rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pp-color-gris, #8a8a86);
	text-decoration: none;
	padding: .8rem 1.1rem;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
	transition: color .2s, border-color .2s;
	display: flex;
	align-items: center;
	gap: .4rem;
}
.pp-rn-item:hover,
.pp-rn-item--active {
	color: var(--pp-color-encre, #1a2020);
	border-bottom-color: var(--pp-color-encre, #1a2020);
}
.pp-rn-count {
	font-size: .6rem;
	opacity: .6;
}

/* Logo — taille compacte, aligné verticalement */
.site-logo-container,
.ct-site-logo {
	font-family: var(--pp-font-display, serif) !important;
	font-weight: 400 !important;
	letter-spacing: 0.1em;
	display: flex !important;
	align-items: center !important;
}

/* Liens navigation */
.ct-menu > li > a,
.ct-header .menu-item > a,
[data-id="menu"] .menu-item > a {
	font-family: var(--pp-font-text, sans-serif) !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: var(--pp-color-noir, #161513) !important;
	font-weight: 500 !important;
	padding: 0.4rem 0.75rem !important;
	transition: color 0.15s !important;
}

.ct-menu > li > a:hover,
.ct-header .menu-item > a:hover,
[data-id="menu"] .menu-item > a:hover,
.ct-menu > li.current-menu-item > a,
.ct-menu > li.current-menu-ancestor > a {
	color: var(--pp-color-bleu-gris, #5e6b6d) !important;
}

/* Dropdown */
.ct-sub-menu,
.ct-header .sub-menu {
	background: var(--pp-color-creme, #faf8f5) !important;
	border: 1px solid var(--pp-color-sable, #ece5d8) !important;
	border-top: 2px solid var(--pp-color-bleu-gris, #5e6b6d) !important;
	box-shadow: 0 8px 24px rgba(22,21,19,.06) !important;
	border-radius: 0 !important;
	min-width: 200px !important;
}

.ct-sub-menu li a,
.ct-header .sub-menu li a {
	font-family: var(--pp-font-text, sans-serif) !important;
	font-size: 0.78rem !important;
	letter-spacing: 0.06em !important;
	text-transform: none !important;
	color: var(--pp-color-noir, #161513) !important;
	font-weight: 400 !important;
	padding: 0.55rem 1rem !important;
	border-bottom: 1px solid var(--pp-color-sable, #ece5d8) !important;
	transition: background 0.12s, color 0.12s !important;
}

.ct-sub-menu li:last-child a,
.ct-header .sub-menu li:last-child a {
	border-bottom: none !important;
}

.ct-sub-menu li a:hover,
.ct-header .sub-menu li a:hover {
	background: var(--pp-color-sable, #ece5d8) !important;
	color: var(--pp-color-bleu-gris, #5e6b6d) !important;
}

/* Caret dropdown */
.ct-menu .menu-item-has-children > a::after,
[data-id="menu"] .menu-item-has-children > a::after {
	content: '' !important;
	display: inline-block !important;
	width: 5px !important;
	height: 5px !important;
	border-right: 1px solid currentColor !important;
	border-bottom: 1px solid currentColor !important;
	transform: rotate(45deg) translateY(-2px) !important;
	margin-left: 6px !important;
	vertical-align: middle !important;
}

/* Mobile menu */
@media (max-width: 900px) {
	.ct-drawer-canvas,
	#mobile-menu {
		background: var(--pp-color-creme, #faf8f5) !important;
	}

	/* Pousser la liste sous le header logo+X du drawer (~90px) */
	.ct-drawer-canvas .ct-panel > nav,
	.ct-drawer-canvas .ct-panel > ul,
	.ct-drawer-canvas .ct-panel-inner > nav,
	.ct-drawer-canvas .ct-panel-inner > ul,
	.ct-drawer-canvas nav.ct-menu,
	.ct-drawer-canvas ul.nav-menu {
		padding-top: 90px !important;
	}

	/* Tous les items — même alignement gauche, blanc, typo display */
	#offcanvas .menu-item > a,
	#offcanvas li > a,
	#offcanvas nav li a {
		color: #fff !important;
		font-family: var(--pp-font-display, 'Fraunces', serif) !important;
		font-size: 1.4rem !important;
		font-weight: 400 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
		padding-left: 1.5rem !important;
		border-bottom: 1px solid rgba(255,255,255,.12) !important;
	}

	/* Sous-menus — uppercase, même marge, sans bullet */
	#offcanvas .sub-menu,
	#offcanvas .ct-sub-menu {
		list-style: none !important;
		padding-left: 0 !important;
	}
	#offcanvas .sub-menu li,
	#offcanvas .ct-sub-menu li {
		list-style: none !important;
	}
	#offcanvas .sub-menu li::before,
	#offcanvas .ct-sub-menu li::before,
	#offcanvas .sub-menu li::marker,
	#offcanvas .ct-sub-menu li::marker {
		display: none !important;
		content: none !important;
	}
	#offcanvas .sub-menu li a,
	#offcanvas .ct-sub-menu li a {
		color: var(--pp-color-noir, #161513) !important;
		font-family: var(--pp-font-text, sans-serif) !important;
		font-size: 0.72rem !important;
		font-weight: 400 !important;
		letter-spacing: 0.12em !important;
		text-transform: uppercase !important;
		padding-left: 1.5rem !important;
		border-bottom: 1px solid rgba(255,255,255,.08) !important;
	}
}

/* Footer */
.ct-footer,
#footer {
	background: var(--pp-color-encre, #1a2020) !important;
	color: var(--pp-color-creme, #faf8f5);
}

.ct-footer a,
#footer a {
	color: rgba(250,248,245,.65);
	text-decoration: none;
}

.ct-footer a:hover,
#footer a:hover {
	color: var(--pp-color-creme, #faf8f5);
}

/* Barre légale footer (WPCode snippet #812) */
#pp-footer-legal {
	background: var(--pp-color-encre, #1a2020);
	border-top: 1px solid rgba(250,248,245,.1);
}

/* Maillage — grille de cartes destinations */
.pp-maillage {
	max-width: var(--pp-container-max, 1200px);
	margin: 0 auto;
	padding: var(--pp-space-lg) var(--pp-container-pad, 1.5rem);
}

.pp-maillage__label {
	font-size: 0.65rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--pp-color-bleu-gris, #5e6b6d);
	margin: 0 0 0.5rem;
}

.pp-maillage__titre {
	font-family: var(--pp-font-display, serif);
	font-weight: 400;
	font-size: clamp(1.4rem, 2.5vw, 2rem);
	margin: 0 0 2rem;
}

.pp-maillage__grille {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--pp-grid-gutter, 24px);
}

@media (max-width: 900px) {
	.pp-maillage__grille { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
	.pp-maillage__grille { grid-template-columns: 1fr; }
}

.pp-maillage__carte {
	text-decoration: none;
	color: inherit;
	display: block;
}

.pp-maillage__carte-image {
	overflow: hidden;
	aspect-ratio: 4 / 5;
	background: var(--pp-color-sable, #ece5d8);
}

.pp-maillage__carte-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
}

.pp-maillage__carte:hover .pp-maillage__carte-image img {
	transform: scale(1.04);
}

.pp-maillage__carte-titre {
	display: block;
	font-family: var(--pp-font-display, serif);
	font-size: 0.95rem;
	font-weight: 400;
	margin-top: 0.6rem;
	line-height: 1.3;
}

/* Bouton CTA global PLAGEPLAGE */
.pp-btn,
.pp-cta-btn {
	display: inline-block;
	font-family: var(--pp-font-text, sans-serif);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 500;
	padding: 0.75rem 2rem;
	border: 1px solid currentColor;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
	border-radius: 0;
	cursor: pointer;
}

.pp-btn--encre {
	background: var(--pp-color-encre, #1a2020);
	color: var(--pp-color-creme, #faf8f5);
	border-color: var(--pp-color-encre, #1a2020);
}

.pp-btn--encre:hover {
	background: var(--pp-color-bleu-gris, #5e6b6d);
	border-color: var(--pp-color-bleu-gris, #5e6b6d);
	color: var(--pp-color-creme, #faf8f5);
}

.pp-btn--outline {
	background: transparent;
	color: var(--pp-color-encre, #1a2020);
	border-color: var(--pp-color-encre, #1a2020);
}

.pp-btn--outline:hover {
	background: var(--pp-color-encre, #1a2020);
	color: var(--pp-color-creme, #faf8f5);
}

/* ── Carte adresse : image carrée (1:1) ── */
.pp-maillage__carte-image--carre {
	aspect-ratio: 1 / 1;
}

/* ── Badge type sur carte (Restaurant, Hôtel…) ── */
.pp-maillage__carte-type {
	display: block;
	font-family: var(--pp-font-text);
	font-size: 0.7rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--pp-color-text-muted);
	margin-top: var(--pp-space-xs);
	margin-bottom: 0.15rem;
}

/* ── W-CTA-CLUB ── */
.pp-cta-club {
	background: var(--pp-color-encre, #1a2020);
	color: var(--pp-color-creme, #faf8f5);
	padding: var(--pp-space-xl) var(--pp-space-md);
	margin: var(--pp-space-xl) 0 0;
	text-align: center;
}

.pp-cta-club__inner {
	max-width: 560px;
	margin: 0 auto;
}

.pp-cta-club__surtitre,
.pp-cta-club__eyebrow {
	font-family: var(--pp-font-text);
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: rgba(250, 248, 245, 0.5);
	display: block;
	margin-bottom: var(--pp-space-xs);
}

.pp-cta-club__titre {
	font-family: var(--pp-font-display);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 400;
	color: var(--pp-color-creme, #faf8f5);
	margin: 0 0 var(--pp-space-sm);
}

.pp-cta-club__texte {
	font-family: var(--pp-font-text);
	font-size: 0.95rem;
	color: var(--pp-color-bleu-gris, #5e6b6d);
	margin-bottom: var(--pp-space-lg);
	line-height: 1.6;
}

.pp-cta-club__btn {
	display: inline-block;
	font-family: var(--pp-font-text);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--pp-color-creme, #faf8f5);
	border: 1px solid var(--pp-color-creme, #faf8f5);
	padding: 0.75rem 2.5rem;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.pp-cta-club__btn:hover {
	background: var(--pp-color-creme, #faf8f5);
	color: var(--pp-color-encre, #1a2020);
}

/* ── W-METEO — widget météo live ── */
.pp-widget-meteo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.25rem;
	max-width: 100%;
	margin: 0 auto var(--pp-space-md);
	padding: 1.25rem var(--pp-space-md);
	background: var(--pp-color-sable, #ece5d8);
	font-family: var(--pp-font-text);
	font-size: .85rem;
}

.pp-widget-meteo__air {
	display: flex;
	align-items: center;
	gap: .6rem;
}

.pp-widget-meteo__emoji {
	font-size: 1.4rem;
	line-height: 1;
}

.pp-widget-meteo__temp {
	font-family: var(--pp-font-display);
	font-size: 1.6rem;
	color: var(--pp-color-encre);
	line-height: 1;
}

.pp-widget-meteo__unit {
	font-size: .9rem;
}

.pp-widget-meteo__desc {
	color: var(--pp-color-text-muted);
	font-size: .8rem;
}

.pp-widget-meteo__vent,
.pp-widget-meteo__eau {
	display: flex;
	align-items: center;
	gap: .4rem;
	color: var(--pp-color-bleu-gris);
	font-size: .8rem;
}

.pp-widget-meteo__vent-dir {
	background: var(--pp-color-bleu-gris);
	color: var(--pp-color-creme);
	font-size: .6rem;
	letter-spacing: .08em;
	padding: .1rem .35rem;
	border-radius: 2px;
}

.pp-widget-meteo__source {
	width: 100%;
	margin: .5rem 0 0;
	font-size: .65rem;
	color: var(--pp-color-text-muted);
	opacity: .6;
}

/* ── COMPOSANTS PARTAGÉS (destination + plage) ─────────────────────────── */

.pp-maillage__voir-tout { text-align: center; margin-top: 2rem; font-size: .8rem; letter-spacing: .1em; }
.pp-maillage__voir-tout a { color: var(--pp-color-encre, #1a2020); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: .1em; }
.pp-maillage__voir-tout a:hover { opacity: .6; }

.pp-badge-recommande { display: inline-block; font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; color: var(--pp-color-bleu-gris, #5e6b6d); margin-bottom: .25rem; }
.pp-badge-club { font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; background: var(--pp-color-encre, #1a2020); color: #fff; padding: .2em .5em; border-radius: 2px; vertical-align: middle; }

.pp-articles-liste { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.pp-article-apercu { display: flex; flex-direction: column; text-decoration: none; color: inherit; gap: .75rem; }
.pp-article-apercu__image img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.pp-article-apercu__cat { font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; color: var(--pp-color-bleu-gris, #5e6b6d); }
.pp-article-apercu__titre { font-family: var(--pp-font-display, serif); font-size: 1rem; margin: .3rem 0 0; line-height: 1.35; }
.pp-article-apercu:hover .pp-article-apercu__titre { text-decoration: underline; }
.pp-article-apercu__date { font-size: .75rem; color: var(--pp-color-bleu-gris, #5e6b6d); margin-top: .3rem; }

.pp-guide-section { max-width: var(--pp-container-max, 1200px); margin: 2.5rem auto; padding: 0 var(--pp-container-pad, 1.5rem); }
.pp-guide-card { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; background: var(--pp-color-creme, #faf8f5); border: 1px solid var(--pp-color-sable, #ece5d8); padding: 1.5rem 2rem; }
.pp-guide-card__titre { font-family: var(--pp-font-display, serif); font-size: 1.15rem; font-weight: 400; margin: 0 0 .4rem; display: flex; align-items: center; gap: .6rem; }
.pp-guide-card__desc { font-size: .9rem; color: var(--pp-color-bleu-gris, #5e6b6d); margin: .3rem 0 0; }
.pp-guide-card__lien { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--pp-color-encre, #1a2020); border-bottom: 1px solid currentColor; padding-bottom: .15em; text-decoration: none; white-space: nowrap; transition: opacity .2s; flex-shrink: 0; }
.pp-guide-card__lien:hover { opacity: .6; }

.pp-guide-bientot { max-width: var(--pp-container-max, 1200px); margin: 2.5rem auto; padding: 0 var(--pp-container-pad, 1.5rem); }
.pp-guide-bientot__inner { border: 1px dashed rgba(94,107,109,.3); padding: 2rem; text-align: center; }
.pp-guide-bientot__eyebrow { font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--pp-color-bleu-gris, #5e6b6d); display: block; margin-bottom: .6rem; }
.pp-guide-bientot__titre { font-family: var(--pp-font-display, serif); font-size: 1.1rem; font-weight: 400; margin: 0 0 .6rem; color: var(--pp-color-encre, #1a2020); }
.pp-guide-bientot__desc { font-size: .875rem; color: var(--pp-color-bleu-gris, #5e6b6d); margin: 0; }

.pp-explorer { background: var(--pp-color-sable, #ece5d8); padding: 3rem var(--pp-container-pad, 1.5rem); text-align: center; margin: 3rem 0 0; }
.pp-explorer__label { font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--pp-color-bleu-gris, #5e6b6d); margin: 0 0 1.5rem; }
.pp-explorer__liens { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 2.5rem; }
.pp-explorer__lien { font-family: var(--pp-font-display, serif); font-size: 1rem; font-weight: 400; color: var(--pp-color-encre, #1a2020); text-decoration: none; border-bottom: 1px solid transparent; padding-bottom: .1em; transition: border-color .2s; }
.pp-explorer__lien:hover { border-color: var(--pp-color-encre, #1a2020); }

.pp-boutique-ctx { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; padding: 1.5rem var(--pp-container-pad, 1.5rem); border-top: 1px solid var(--pp-color-sable, #ece5d8); border-bottom: 1px solid var(--pp-color-sable, #ece5d8); max-width: var(--pp-container-max, 1200px); margin: 2rem auto; }
.pp-boutique-ctx__eyebrow { font-family: var(--pp-font-text, inherit); font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; color: var(--pp-color-gris-doux, #8a8a86); display: block; margin-bottom: .3rem; }
.pp-boutique-ctx__titre { font-family: var(--pp-font-display, serif); font-size: 1rem; font-weight: 400; margin: 0; color: var(--pp-color-noir, #161513); }
.pp-boutique-ctx__lien { font-family: var(--pp-font-text, inherit); font-size: .72rem; letter-spacing: .13em; text-transform: uppercase; color: var(--pp-color-bleu-gris, #5e6b6d); border-bottom: 1px solid currentColor; padding-bottom: .15em; text-decoration: none; white-space: nowrap; transition: opacity .2s; flex-shrink: 0; }
.pp-boutique-ctx__lien:hover { opacity: .6; }

/* ── CTA Boutique (partagé — copie exacte de page-design-system.php) ── */
.pp-cta-boutique { text-align: center; padding: clamp(1rem,2vw,1.5rem) var(--ppPad, clamp(1.5rem,5vw,4rem)); }
.pp-cta-boutique__eyebrow { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ppG, #8a8a86); display: block; margin-bottom: 1.1rem; }
.pp-cta-boutique__titre { font-family: var(--ppFd, 'Fraunces',serif); font-size: clamp(1.7rem,3.5vw,2.6rem); font-weight: 400; margin: 0 auto 1rem; max-width: 520px; line-height: 1.18; color: var(--ppE, #1a2020); }
.pp-cta-boutique__desc { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .9rem; color: var(--ppG, #8a8a86); margin: 0 auto 2rem; max-width: 400px; line-height: 1.62; }
.pp-cta-boutique__btn { display: inline-block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ppE, #1a2020); border: 1px solid var(--ppE, #1a2020); padding: .8rem 2.2rem; text-decoration: none; transition: background .22s, color .22s; }
.pp-cta-boutique__btn:hover { background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); }
/* Variante encre (page collections) */
.pp-band--encre .pp-cta-boutique__eyebrow { color: rgba(250,248,245,.5) !important; }
.pp-band--encre .pp-cta-boutique__titre { color: var(--ppC, #faf8f5) !important; }
.pp-band--encre .pp-cta-boutique__desc { color: rgba(250,248,245,.65) !important; }
.pp-band--encre .pp-cta-boutique__btn { color: var(--ppC, #faf8f5) !important; border-color: rgba(250,248,245,.45) !important; }
.pp-band--encre .pp-cta-boutique__btn:hover { background: var(--ppC, #faf8f5) !important; color: var(--ppE, #1a2020) !important; }

.pp-cta-inline { background: var(--pp-color-encre, #1a2020); color: var(--pp-color-creme, #faf8f5); text-align: center; padding: 4rem 2rem; margin: 3rem 0 0; }
.pp-cta-inline__label { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: #9e9b96; margin: 0 0 .8rem; }
.pp-cta-inline__titre { font-family: var(--pp-font-display, serif); font-size: clamp(1.5rem, 3vw, 2.2rem); margin: 0 0 .8rem; font-weight: 400; color: #faf8f5; }
.pp-cta-inline__sous { color: #c8c3bc; font-size: .9rem; margin: 0 0 1.8rem; }
.pp-cta-inline__btn { display: inline-block; border: 1px solid rgba(250,248,245,.4); color: var(--pp-color-creme, #faf8f5); text-decoration: none; padding: .75rem 2rem; font-size: .8rem; letter-spacing: .1em; transition: all .2s; }
.pp-cta-inline__btn:hover { background: rgba(250,248,245,.1); border-color: rgba(250,248,245,.8); }

.pp-cta-pro-discret { text-align: center; font-family: var(--pp-font-text, inherit); font-size: .8rem; color: var(--pp-color-gris-doux, #8a8a86); padding: 1.2rem var(--pp-container-pad, 1.5rem) 2rem; margin: 0; }
.pp-cta-pro-discret a { color: var(--pp-color-bleu-gris, #5e6b6d); text-decoration: underline; text-underline-offset: .2em; }
.pp-cta-pro-discret a:hover { color: var(--pp-color-noir, #161513); }

@media (max-width: 768px) {
	.pp-articles-liste { grid-template-columns: 1fr; gap: 2rem; }
	.pp-guide-card { flex-direction: column; align-items: flex-start; }
	.pp-boutique-ctx { flex-direction: column; align-items: flex-start; }
	.pp-cta-inline { padding: 3rem 1.5rem; }
}

/* ── CORRECTIONS V1.6 ───────────────────────────────────────────────────── */

/* Crédit photo — bas droite du hero, discret */
.pp-hero__credit {
	position: absolute;
	bottom: .4rem;
	right: .75rem;
	font-size: .6rem;
	letter-spacing: .06em;
	color: rgba(250,248,245,.45);
	margin: 0;
	z-index: 2;
	pointer-events: none;
}

/* Chapeau dans le héro */
.pp-hero__chapeau {
	color: rgba(250,248,245,.85);
	font-size: clamp(.875rem, 1.8vw, 1rem);
	line-height: 1.5;
	margin: 1rem 0 0;
}

/* Fil d'ariane dans le héro */
.pp-fil-ariane {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .2rem .4rem;
	color: rgba(250,248,245,.65);
	font-size: .85rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	margin-bottom: .75rem;
}
.pp-fil-ariane a { color: inherit; text-decoration: none; }
.pp-fil__sep { opacity: .5; }

/* Météo : centrer le contenu texte brut */
.pp-widget-meteo {
	justify-content: center;
	text-align: center;
}

/* ═══════════════════════════════════════════════════════
   HARMONISATION DESIGN GLOBALE v2.0
   Référence : homepage (front-page.php)
   Périmètre : editorial.css uniquement
   ═══════════════════════════════════════════════════════ */

/* ── Logo ───────────────────────────────────────────────── */
img.default-logo,
.site-logo-container img,
.ct-site-logo img {
	height: 52px !important;
	width: auto !important;
	max-width: none !important;
	display: block !important;
}

/* ── Bande de section — composant partagé ──────────────── */
/*
   Usage : <section class="pp-band">          → fond blanc-cassé
            <section class="pp-band pp-band--sable">  → fond sable
            <section class="pp-band pp-band--encre">  → fond encre
*/
.pp-band {
	padding: var(--pp-section-pad-md) var(--pp-section-side);
}
.pp-band__inner {
	max-width: var(--pp-page-max-width, 1280px);
	margin: 0 auto;
}
.pp-band--sable { background: var(--pp-color-sable, #ece5d8); }
.pp-band--encre {
	background: var(--pp-color-encre, #1a2020);
	color: var(--pp-color-creme, #faf8f5);
}

/* ── En-tête de section — composant partagé ────────────── */
/*
   Remplace : pp-hp-sh / pp-arch-sh / pp-aa-sh / pp-collection-bloc__header
   Usage : <div class="pp-sh">
             <h2 class="pp-sh__titre">…</h2>
             <a class="pp-sh__voir">…</a>
           </div>
*/
.pp-sh {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	gap: 1rem;
}
.pp-sh__eyebrow {
	font-family: var(--pp-font-text);
	font-size: .65rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--pp-color-text-muted);
	display: block;
	margin-bottom: .3rem;
}
.pp-sh__titre {
	font-family: var(--pp-font-display);
	font-size: clamp(1.4rem, 2.5vw, 2rem);
	font-weight: 400;
	margin: 0;
	line-height: 1.15;
}
.pp-sh__voir {
	font-family: var(--pp-font-text);
	font-size: .72rem;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: inherit;
	border-bottom: 1px solid currentColor;
	padding-bottom: .15em;
	text-decoration: none;
	white-space: nowrap;
	opacity: .7;
	transition: opacity .2s;
	flex-shrink: 0;
}
.pp-sh__voir:hover { opacity: 1; }
.pp-band--encre .pp-sh__titre { color: var(--pp-color-creme, #faf8f5); }
.pp-band--encre .pp-sh__voir  { color: var(--pp-color-creme, #faf8f5); }

/* ── Collection bloc — base ─────────────────────────────── */
.pp-collection-bloc {
	max-width: var(--pp-page-max-width);
	margin: var(--pp-space-xl) auto;
	padding: 0 var(--pp-space-md);
}
.pp-collection-bloc__header { margin-bottom: var(--pp-space-md); }

/* ── Grille adresses ─────────────────────────────────────── */
.pp-adr-grid { display: grid; gap: 1.25rem; }
.pp-adr-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .pp-adr-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .pp-adr-grid--3 { grid-template-columns: 1fr; } }

/* ── CTA Pro discret (pp-pros) ───────────────────────────── */
.pp-pros {
	font-family: var(--pp-font-text, sans-serif);
	font-size: .85rem;
	color: var(--pp-color-gris-doux, #8a8a86);
	border-top: 1px solid var(--pp-color-sable, #ece5d8);
	max-width: 1280px;
	margin: 0 auto;
	padding: 2.5rem var(--pp-space-md, clamp(1.5rem, 5vw, 4rem)) 3rem;
}
.pp-pros a {
	color: var(--pp-color-bleu-gris, #5e6b6d);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: .1em;
}

/* ── Normalisation h2 sections (rétrocompat all templates) ─ */
.pp-hp-sh__titre,
.pp-arch-sh__titre,
.pp-aa-sh__titre,
.pp-collection-bloc__titre,
.pp-arch-coll__body h2 {
	font-family: var(--pp-font-display) !important;
	font-size: clamp(1.4rem, 2.5vw, 2rem) !important;
	font-weight: 400 !important;
	line-height: 1.15 !important;
	margin: 0 !important;
}

/* ── H1 archives — taille uniforme ─────────────────────── */
.pp-arch-adr__hero h1,
.pp-arch-coll__hero h1,
.pp-archive__header h1,
.pp-arch-plage__hero h1,
.pp-arch-dest__hero h1 {
	font-family: var(--pp-font-display) !important;
	font-size: clamp(2.4rem, 6vw, 4rem) !important;
	font-weight: 400 !important;
	letter-spacing: -.01em !important;
	line-height: 1.1 !important;
	color: inherit !important;
}

/* ── Cards : design plat — pas de shadow ni translateY ──── */
.pp-adr-card:hover,
.pp-coll-card:hover,
.pp-archive__carte:hover {
	transform: none !important;
	box-shadow: none !important;
}
/* Seul l'image zoome légèrement, la carte reste immobile */
.pp-adr-card,
.pp-coll-card,
.pp-archive__carte {
	transition: none !important;
}
.pp-adr-card__img img,
.pp-coll-card__img img {
	transition: transform .4s ease;
}
.pp-adr-card:hover .pp-adr-card__img img,
.pp-coll-card:hover .pp-coll-card__img img {
	transform: scale(1.04);
}
/* Cards adresses : supprimer fond blanc + padding intérieur
   → cohérence avec cartes destination/plage (sans encadré) */
.pp-adr-card {
	background: transparent !important;
}
.pp-adr-card__body {
	padding: .55rem 0 .75rem !important;
}

/* ── Club / Newsletter — navy unique = encre ────────────── */
/* Toutes les variantes de blocs Club doivent utiliser encre */
.pp-aa-club,
.pp-hp-section--encre,
.pp-cta-club,
.pp-cta-inline,
.pp-collection-premium {
	background: var(--pp-color-encre, #1a2020) !important;
}
.pp-aa-club__titre,
.pp-aa-club__eyebrow,
.pp-aa-club__btn {
	/* hérite de la couleur crème via color: inherit ou blanc */
}
/* S'assurer que le texte reste lisible */
.pp-aa-club { color: var(--pp-color-creme, #faf8f5); }
.pp-aa-club__titre { color: var(--pp-color-creme, #faf8f5) !important; }
.pp-aa-club__eyebrow { color: rgba(250,248,245,.5) !important; }

/* ── Collection page — plages en grille (pas scroll) ────── */
.pp-collection-scroll {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: var(--pp-grid-gutter, 24px) !important;
	overflow-x: visible !important;
	padding-bottom: 0 !important;
	scroll-snap-type: none !important;
}
@media (max-width: 900px) {
	.pp-collection-scroll { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
	.pp-collection-scroll { grid-template-columns: 1fr !important; }
}
.pp-collection-scroll__item {
	flex: none !important;
	width: auto !important;
}
.pp-collection-scroll__img {
	aspect-ratio: 4 / 5;
}

/* ── Collection — rythme éditorial bandes ────────────────── */
.pp-collection-bloc--destinations {
	background: var(--pp-color-blanc-casse, #faf8f5);
	padding: var(--pp-section-pad-md) var(--pp-section-side);
	margin: 0 !important;
	max-width: none !important;
}
.pp-collection-bloc--destinations .pp-maillage__grille {
	max-width: var(--pp-page-max-width, 1280px);
	margin: 0 auto;
}
.pp-collection-bloc--destinations .pp-collection-bloc__header {
	max-width: var(--pp-page-max-width, 1280px);
	margin: 0 auto var(--pp-space-md);
}
.pp-collection-bloc--plages {
	background: var(--pp-color-sable, #ece5d8);
	padding: var(--pp-section-pad-md) var(--pp-section-side);
	margin: 0 !important;
	max-width: none !important;
}
.pp-collection-bloc--plages .pp-collection-scroll,
.pp-collection-bloc--plages .pp-collection-bloc__header {
	max-width: var(--pp-page-max-width, 1280px);
	margin-left: auto;
	margin-right: auto;
}
.pp-collection-bloc--plages .pp-collection-scroll {
	margin-top: 0;
}
.pp-collection-bloc--adresses {
	background: var(--pp-color-blanc-casse, #faf8f5);
	padding: var(--pp-section-pad-md) var(--pp-section-side);
	margin: 0 !important;
	max-width: none !important;
}
.pp-collection-bloc--adresses .pp-maillage__grille,
.pp-collection-bloc--adresses .pp-collection-bloc__header {
	max-width: var(--pp-page-max-width, 1280px);
	margin-left: auto;
	margin-right: auto;
}
.pp-collection-bloc--adresses .pp-collection-bloc__header {
	margin-bottom: var(--pp-space-md);
}

/* Section "À découvrir aussi" — fiche adresse */
.pp-autres-adresses {
	padding: var(--pp-section-pad-md, 3rem) var(--pp-section-side, clamp(1.5rem,5vw,4rem));
	max-width: var(--pp-page-max-width, 1280px);
	margin: 0 auto;
}
.pp-autres-adresses__header {
	margin-bottom: 1.5rem;
}

/* Collection intro — plus grande, plus lisible */
.pp-collection__intro {
	padding: var(--pp-section-pad-lg) var(--pp-section-side) 0 !important;
	margin: 0 auto !important;
	max-width: none !important;
}
.pp-collection__intro-inner {
	max-width: var(--pp-content-max-width, 720px);
	margin: 0 auto;
	font-size: clamp(1rem, 1.8vw, 1.2rem) !important;
	line-height: 1.75 !important;
}

/* Articles liés — fond sable */
.pp-maillage--articles {
	background: var(--pp-color-sable, #ece5d8);
	padding: var(--pp-section-pad-md) var(--pp-section-side) !important;
	margin: 0 !important;
	max-width: none !important;
}
.pp-maillage--articles .pp-articles-liste,
.pp-maillage--articles .pp-maillage__titre,
.pp-maillage--articles .pp-maillage__label {
	max-width: var(--pp-page-max-width, 1280px);
	margin-left: auto;
	margin-right: auto;
}
.pp-maillage--articles .pp-maillage__label {
	margin-bottom: .4rem;
}

/* Collections similaires — fond blanc */
.pp-maillage--collections-similaires {
	padding: var(--pp-section-pad-md) var(--pp-section-side) !important;
	margin: 0 !important;
	max-width: none !important;
}
.pp-maillage--collections-similaires .pp-maillage__grille,
.pp-maillage--collections-similaires .pp-maillage__titre,
.pp-maillage--collections-similaires .pp-maillage__label {
	max-width: var(--pp-page-max-width, 1280px);
	margin-left: auto;
	margin-right: auto;
}

/* ── Hero collection : titre plus grand ─────────────────── */
.pp-hero--collection .pp-entite__titre-hero {
	font-size: clamp(2rem, 5vw, 4rem) !important;
}
.pp-hero--collection .pp-hero__meta {
	color: rgba(250, 248, 245, .7);
	font-size: .8rem;
	letter-spacing: .08em;
	margin: .5rem 0 0;
}
.pp-hero--collection .pp-hero__badge-club {
	border: 1px solid rgba(250, 248, 245, .4);
	padding: .15rem .5rem;
	font-size: .7rem;
	letter-spacing: .1em;
}

/* ── Hero entité : chapeau lisible ──────────────────────── */
.pp-hero__chapeau {
	font-size: clamp(.9rem, 1.8vw, 1.05rem);
	opacity: 1;
	color: rgba(250,248,245,.88);
}

/* padding heroes géré par la règle globale en haut du fichier */

/* ── Séparateur horizontal — version légère ─────────────── */
.pp-divider {
	border: none;
	border-top: 1px solid var(--pp-color-sable);
	margin: 0;
}

/* ── Mobile : réduction spacing ─────────────────────────── */
@media (max-width: 640px) {
	.pp-collection-bloc--destinations,
	.pp-collection-bloc--plages,
	.pp-collection-bloc--adresses,
	.pp-maillage--articles,
	.pp-maillage--collections-similaires,
	.pp-collection__intro {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}
}

/* ── Double nav régions — masquer la barre topnav dupliquée ── */
.pp-region-topnav {
	display: none !important;
}

/* ── Rangée Blocksy "top" sur pages entité — masquée comme sur les archives ── */
.single-pp_adresse [data-row="top"],
.single-pp_adresse .ct-header-row:first-child:not([data-row="main"]),
.single-pp_plage [data-row="top"],
.single-pp_plage .ct-header-row:first-child:not([data-row="main"]),
.single-pp_destination [data-row="top"],
.single-pp_destination .ct-header-row:first-child:not([data-row="main"]) {
	display: none !important;
}

/* ── Subnav sticky — toutes les pages ── */
.pp-page-subnav {
	position: sticky;
	top: var(--pp-header-h, 65px);
	z-index: 90;
	background: var(--pp-color-creme, #faf8f5);
	border-bottom: 1px solid var(--pp-color-sable, #ece5d8);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* ── Ancres sections — évite que le header + subnav masquent le titre cible ── */
.single-pp_adresse [id],
.single-pp_plage [id],
.single-pp_guide [id],
.single-pp_collection [id] {
	scroll-margin-top: calc(var(--pp-header-h, 65px) + 56px);
}

/* ── Badge recommandé — disposition côte à côte ── */
.pp-badge-recommande-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	max-width: var(--pp-content-max-width);
	margin: 1.5rem auto .5rem;
	padding: 0 var(--pp-space-md);
}

/* ── Bannière destination (hero panoramique) ── */
/* Overlay lien sur hero destination parente (fiche adresse) */
.pp-hero__lien-overlay {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.pp-hero__cta-dest {
	position: relative;
	z-index: 2;
	font-family: var(--pp-font-text, sans-serif);
	font-size: .75rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pp-color-creme, #faf8f5);
	opacity: .8;
	transition: opacity .2s ease;
	display: inline-block;
	margin-top: .5rem;
}
.pp-entite__hero:hover .pp-hero__cta-dest { opacity: 1; }
#destination .pp-hero__figure img { transition: transform .55s cubic-bezier(.25,.46,.45,.94); }
#destination:hover .pp-hero__figure img { transform: scale(1.04); }

/* ══════════════════════════════════════════════════════
   FICHE ADRESSE — blocs éditoriaux + avis + FAQ
   Layout : même max-width + padding que pp-infos-pratiques
   Séparation : border-top sable, pas de grandes marges
   ══════════════════════════════════════════════════════ */

/* ── Étoiles navy DS (lecture) ── */
.pp-etoiles {
	display: inline-flex;
	gap: 1px;
	color: var(--pp-color-encre, #1a2020);
	vertical-align: middle;
	line-height: 1;
}
.pp-etoile { display: inline-flex; }
.pp-etoile--empty { color: var(--pp-color-sable, #ece5d8); }

/* Étoiles interactives (formulaire) — sens inversé CSS trick */
.pp-etoiles-input {
	display: inline-flex;
	flex-direction: row-reverse;
	gap: 2px;
}
.pp-etoiles-input input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }
.pp-etoiles-input label { cursor: pointer; color: var(--pp-color-sable, #ece5d8); transition: color .15s ease; }
.pp-etoiles-input label:hover,
.pp-etoiles-input label:hover ~ label,
.pp-etoiles-input input:checked ~ label { color: var(--pp-color-encre, #1a2020); }

/* ── Conteneur partagé — aligne tout avec la carte d'identité ── */
.pp-verdict,
.pp-bloc-editorial,
.pp-contexte,
.pp-avis,
.pp-faq {
	max-width: var(--pp-content-max-width, 780px);
	margin: 0 auto;
	padding: 1.5rem var(--pp-space-md, clamp(1.5rem, 5vw, 4rem));
	border-top: 1px solid var(--pp-color-sable, #ece5d8);
}

/* Label de section — identique à .pp-maillage__label */
.pp-bloc-editorial__label,
.pp-contexte__label,
.pp-avis__section-label {
	font-family: var(--pp-font-text, sans-serif);
	font-size: .68rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--pp-color-gris-doux, #8a8a86);
	display: block;
	margin: 0 0 .75rem;
}

/* ── Verdict ── */
.pp-verdict {
	background: var(--pp-color-sable, #ece5d8);
	border-top: none;
}
.pp-verdict__texte {
	font-family: var(--pp-font-display, serif);
	font-size: clamp(1rem, 2vw, 1.2rem);
	font-weight: 400;
	line-height: 1.6;
	color: var(--pp-color-encre, #1a2020);
	margin: 0;
}
.pp-verdict__note {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-top: .75rem;
}
.pp-verdict__note-chiffre { font-size: .85rem; font-weight: 600; }
.pp-verdict__note-count { font-size: .72rem; color: var(--pp-color-gris-doux, #8a8a86); }

/* ── Blocs ambiance / spécialité ── */
.pp-bloc-editorial__texte {
	font-size: .95rem;
	line-height: 1.75;
	color: var(--pp-color-encre, #1a2020);
	margin: 0;
}
.pp-bloc-editorial--ambiance .pp-bloc-editorial__texte { font-style: italic; }

/* ── Contexte (meilleur moment / pour qui / anecdote) ── */
.pp-contexte__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem 2rem;
}
.pp-contexte__item { display: flex; flex-direction: column; gap: .2rem; }
.pp-contexte__item--full { grid-column: 1 / -1; }
.pp-contexte__item .pp-contexte__label {
	font-size: .65rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--pp-color-gris-doux, #8a8a86);
}
.pp-contexte__valeur { font-size: .9rem; line-height: 1.55; color: var(--pp-color-encre, #1a2020); }

/* ── Avis ── */
.pp-avis__header { margin-bottom: 1.25rem; }
.pp-avis__header .pp-maillage__titre { margin-bottom: .25rem; }
.pp-avis__agregat {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-top: .5rem;
}
.pp-avis__note-grande {
	font-family: var(--pp-font-display, serif);
	font-size: 2rem;
	font-weight: 400;
	line-height: 1;
	color: var(--pp-color-encre, #1a2020);
}
.pp-avis__count { font-size: .72rem; color: var(--pp-color-gris-doux, #8a8a86); display: block; }
.pp-avis__liste { margin-bottom: 1.5rem; }
.pp-avis__item {
	padding: 1rem 0;
	border-top: 1px solid var(--pp-color-sable, #ece5d8);
}
.pp-avis__item:first-child { border-top: none; padding-top: 0; }
.pp-avis__item-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1rem;
	margin-bottom: .5rem;
}
.pp-avis__item-titre {
	font-family: var(--pp-font-display, serif);
	font-size: .95rem;
	font-weight: 400;
	margin: .25rem 0 0;
	color: var(--pp-color-encre, #1a2020);
}
.pp-avis__item-meta { text-align: right; flex-shrink: 0; }
.pp-avis__auteur { font-size: .82rem; font-weight: 500; color: var(--pp-color-encre, #1a2020); display: block; }
.pp-avis__ville { font-weight: 400; }
.pp-avis__tag {
	font-size: .65rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pp-color-gris-doux, #8a8a86);
	display: block;
}
.pp-avis__texte { font-size: .9rem; line-height: 1.7; color: var(--pp-color-encre, #1a2020); margin: 0; }
.pp-avis__date-publication { font-size: .7rem; color: var(--pp-color-gris-doux, #8a8a86); display: block; margin-top: .35rem; }

/* Formulaire */
.pp-avis__formulaire { border-top: 1px solid var(--pp-color-sable, #ece5d8); padding-top: 1.25rem; margin-top: .25rem; }
.pp-avis__formulaire-titre {
	font-family: var(--pp-font-display, serif);
	font-size: 1.1rem;
	font-weight: 400;
	margin: 0 0 1.25rem;
	color: var(--pp-color-encre, #1a2020);
}
.pp-avis__form-label {
	display: block;
	font-size: .65rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pp-color-gris-doux, #8a8a86);
	margin-bottom: .3rem;
}
.pp-avis__form-note { margin-bottom: 1rem; }
.pp-avis__form-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: .75rem;
	margin-bottom: .75rem;
}
.pp-avis__form-field { display: flex; flex-direction: column; gap: .25rem; }
.pp-avis__form-field--full { margin-bottom: .75rem; }
.pp-avis__form textarea,
.pp-avis__form input[type="text"],
.pp-avis__form input[type="email"],
.pp-avis__form input[type="month"],
.pp-avis__form select {
	width: 100%;
	padding: .5rem .75rem;
	border: 1px solid var(--pp-color-sable, #ece5d8);
	background: transparent;
	font-family: var(--pp-font-text, sans-serif);
	font-size: .875rem;
	color: var(--pp-color-encre, #1a2020);
	outline: none;
	transition: border-color .2s ease;
	box-sizing: border-box;
	appearance: none;
}
.pp-avis__form textarea:focus,
.pp-avis__form input:focus,
.pp-avis__form select:focus { border-color: var(--pp-color-encre, #1a2020); }
.pp-avis__submit {
	display: inline-block;
	padding: .6rem 1.5rem;
	background: var(--pp-color-encre, #1a2020);
	color: var(--pp-color-creme, #faf8f5);
	font-family: var(--pp-font-text, sans-serif);
	font-size: .72rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	border: none;
	cursor: pointer;
	transition: opacity .2s ease;
	margin-top: .75rem;
}
.pp-avis__submit:hover { opacity: .85; }
.pp-avis__moderation-note,
.pp-avis__login-note { font-size: .78rem; color: var(--pp-color-gris-doux, #8a8a86); margin: .5rem 0 0; }
.pp-avis__login-lien { color: var(--pp-color-bleu-gris, #5e6b6d); }

/* ── FAQ ── */
.pp-faq__liste { margin-top: .75rem; }
.pp-faq__item { padding: .875rem 0; border-top: 1px solid var(--pp-color-sable, #ece5d8); }
.pp-faq__item:first-child { border-top: none; padding-top: 0; }
.pp-faq__question {
	font-family: var(--pp-font-display, serif);
	font-size: 1rem;
	font-weight: 400;
	color: var(--pp-color-encre, #1a2020);
	margin: 0 0 .4rem;
}
.pp-faq__reponse p { font-size: .875rem; line-height: 1.65; color: var(--pp-color-encre, #1a2020); margin: 0; }

/* Responsive */
@media (max-width: 640px) {
	.pp-contexte__inner { grid-template-columns: 1fr; }
	.pp-avis__form-grid { grid-template-columns: 1fr; }
	.pp-avis__item-header { flex-direction: column; gap: .4rem; }
	.pp-avis__item-meta { text-align: left; }
}

/* ══════════════════════════════════════════════════════════════════
   SYSTÈME ANTI-COLLAGE — seuil minimum 2.5rem entre sections
   Règle : chaque section pleine-largeur doit respirer.
   Les sections avec fond propre (dark/sable) = séparateur visuel,
   mais nécessitent un écart minimal du contenu qui précède.
   ══════════════════════════════════════════════════════════════════ */

/* Newsletter footer : toujours séparée de ce qui précède */
.pp-footer__newsletter {
	margin-top: var(--pp-section-pad-sm, 2rem) !important;
}

/* CTA Club inline (fiches adresses, plages) */
.pp-cta-inline {
	margin-top: var(--pp-section-pad-sm, 2rem) !important;
	margin-bottom: 0 !important;
}

/* CTA Club article (single.php) */
.pp-single-club-cta {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* Bloc boutique dans pp-band : padding vertical harmonisé */
.pp-band {
	padding-top: var(--pp-section-pad-sm, 2rem);
	padding-bottom: var(--pp-section-pad-sm, 2rem);
}

/* CTA pro discret (pp-pros) : respiration entre deux zones dark */
.pp-pros {
	padding-top: 2.5rem !important;
	padding-bottom: 2.5rem !important;
}

/* ══════════════════════════════════════════════════════════════════
   TEMPLATE GUIDE (single-pp_guide.php)
   ══════════════════════════════════════════════════════════════════ */

/* ── Meta bar ──────────────────────────────────────────────────── */
.pp-guide-meta { border-top: 1px solid var(--ppS, #ece5d8); border-bottom: 1px solid var(--ppS, #ece5d8); padding: 1.2rem var(--ppPad, clamp(1.25rem,5vw,4rem)); }
.pp-guide-meta__inner { display: flex; gap: 2.5rem; flex-wrap: wrap; justify-content: center; max-width: 1280px; margin: 0 auto; }
.pp-guide-meta__item { text-align: center; }
.pp-guide-meta__label { display: block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ppG, #8a8a86); margin-bottom: .25rem; }
.pp-guide-meta__val { font-family: var(--ppFd, 'Fraunces',serif); font-size: 1.5rem; color: var(--ppE, #1a2020); }

/* ── Subnav locked items ───────────────────────────────────────── */
.pp-rn-item--locked { color: var(--ppG, #8a8a86); opacity: .5; cursor: default; pointer-events: none; }

/* ── Page verrouillée (paywall) ────────────────────────────────── */
.pp-guide-lock { padding: 5rem var(--ppPad, clamp(1.25rem,5vw,4rem)) 4rem; text-align: center; background: var(--ppC, #faf8f5); border-top: 1px solid var(--ppS, #ece5d8); }
.pp-guide-lock__inner { max-width: 620px; margin: 0 auto; }
.pp-guide-lock__titre { font-family: var(--ppFd, 'Fraunces',serif); font-size: clamp(2rem,5vw,3.2rem); font-weight: 400; color: var(--ppE, #1a2020); line-height: 1.1; margin: .75rem 0; }
.pp-guide-lock__desc { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .85rem; color: var(--ppG, #8a8a86); letter-spacing: .04em; margin: 0 0 3rem; }
.pp-guide-lock__options { display: grid; grid-template-columns: 1fr auto 1fr; max-width: 520px; margin: 0 auto 2.5rem; align-items: stretch; }
.pp-guide-lock__option { padding: 2rem 1.5rem; text-align: left; }
.pp-guide-lock__option--primary { background: var(--ppE, #1a2020); }
.pp-guide-lock__option--secondary { background: transparent; border: 1px solid var(--ppS, #ece5d8); border-left: none; }
.pp-guide-lock__tag { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .57rem; letter-spacing: .16em; text-transform: uppercase; margin: 0 0 .5rem; }
.pp-guide-lock__option--primary .pp-guide-lock__tag { color: rgba(250,248,245,.45); }
.pp-guide-lock__option--secondary .pp-guide-lock__tag { color: var(--ppG, #8a8a86); }
.pp-guide-lock__name { font-family: var(--ppFd, 'Fraunces',serif); font-size: 1.15rem; font-weight: 400; line-height: 1.2; margin: 0 0 .5rem; }
.pp-guide-lock__option--primary .pp-guide-lock__name { color: var(--ppC, #faf8f5); }
.pp-guide-lock__option--secondary .pp-guide-lock__name { color: var(--ppE, #1a2020); }
.pp-guide-lock__detail { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .73rem; line-height: 1.4; margin: 0 0 1.5rem; }
.pp-guide-lock__option--primary .pp-guide-lock__detail { color: rgba(250,248,245,.55); }
.pp-guide-lock__option--secondary .pp-guide-lock__detail { color: var(--ppG, #8a8a86); }
.pp-guide-lock__price { font-family: var(--ppFd, 'Fraunces',serif); font-size: 1.6rem; color: var(--ppE, #1a2020); margin: .25rem 0 1.25rem; }
.pp-guide-lock__btn { display: block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .63rem; letter-spacing: .14em; text-transform: uppercase; padding: .85rem 1rem; text-decoration: none; transition: opacity .2s; text-align: center; background: var(--ppC, #faf8f5); color: var(--ppE, #1a2020); }
.pp-guide-lock__btn:hover { opacity: .8; }
.pp-guide-lock__btn-outline { display: block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .63rem; letter-spacing: .14em; text-transform: uppercase; padding: .85rem 1rem; text-decoration: none; transition: border-color .2s; text-align: center; border: 1px solid var(--ppS, #ece5d8); color: var(--ppE, #1a2020); background: transparent; }
.pp-guide-lock__btn-outline:hover { border-color: var(--ppE, #1a2020); }
.pp-guide-lock__sep { display: flex; align-items: center; justify-content: center; padding: 0 .75rem; }
.pp-guide-lock__sep span { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; color: var(--ppG, #8a8a86); position: relative; }
.pp-guide-lock__sep span::before, .pp-guide-lock__sep span::after { content: ''; position: absolute; left: 50%; width: 1px; height: 1.5rem; background: var(--ppS, #ece5d8); }
.pp-guide-lock__sep span::before { top: calc(100% + .3rem); }
.pp-guide-lock__sep span::after { bottom: calc(100% + .3rem); }
.pp-guide-lock__login { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .78rem; color: var(--ppG, #8a8a86); }
.pp-guide-lock__login a { color: var(--ppB, #5e6b6d); border-bottom: 1px solid var(--ppS, #ece5d8); text-decoration: none; }


/* ── Contenu éditorial (page déverrouillée) ────────────────────── */
.pp-guide-cta-dl { background: var(--ppS, #ece5d8); padding: 3rem var(--ppPad, clamp(1.25rem,5vw,4rem)); text-align: center; margin: 3rem 0; }
.pp-guide-cta-dl__inner { max-width: 500px; margin: 0 auto; }
.pp-guide-cta-dl__label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .7rem; letter-spacing: .15em; text-transform: uppercase; color: var(--ppB, #5e6b6d); margin-bottom: .5rem; }
.pp-guide-cta-dl__titre { font-family: var(--ppFd, 'Fraunces',serif); font-size: clamp(1.4rem,3vw,2rem); font-weight: 400; margin: 0 0 1rem; color: var(--ppE, #1a2020); }
.pp-guide-cta-dl__btn { display: inline-block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ppE, #1a2020); border: 1px solid var(--ppE, #1a2020); padding: .75rem 2.5rem; text-decoration: none; transition: all .2s; }
.pp-guide-cta-dl__btn:hover { background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); }

.pp-entite__contenu { max-width: 720px; margin: 0 auto; padding: 0 var(--ppPad, clamp(1.25rem,5vw,4rem)) clamp(3rem,6vw,5rem); }
.pp-entite__contenu h2 { font-family: var(--ppFd, 'Fraunces',serif); font-size: clamp(1.4rem,3vw,2rem); font-weight: 400; color: var(--ppE, #1a2020); margin: 2.5rem 0 1rem; padding-top: 2.5rem; border-top: 1px solid var(--ppS, #ece5d8); }
.pp-entite__contenu h2:first-child { border-top: none; padding-top: 0; margin-top: 1.5rem; }
.pp-entite__contenu h3 { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ppB, #5e6b6d); font-weight: 500; margin: 2rem 0 .6rem; }
.pp-entite__contenu p { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: 1rem; line-height: 1.75; color: var(--ppE, #1a2020); margin-bottom: 1rem; }
.pp-entite__contenu strong { font-weight: 500; color: var(--ppE, #1a2020); }
.pp-entite__contenu em { font-style: italic; color: var(--ppB, #5e6b6d); }
.pp-entite__contenu ul, .pp-entite__contenu ol { padding-left: 1.25rem; margin-bottom: 1.25rem; }
.pp-entite__contenu li { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: 1rem; line-height: 1.7; color: var(--ppE, #1a2020); margin-bottom: .35rem; }
.pp-entite__contenu hr { border: none; border-top: 1px solid var(--ppS, #ece5d8); margin: 2.5rem 0; }
.pp-entite__contenu table { width: 100%; border-collapse: collapse; font-size: .875rem; margin: 1rem 0 1.5rem; display: block; overflow-x: auto; }
.pp-entite__contenu th { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ppB, #5e6b6d); font-weight: 500; padding: .6rem .75rem; border-bottom: 1px solid var(--ppS, #ece5d8); text-align: left; }
.pp-entite__contenu td { padding: .6rem .75rem; border-bottom: 1px solid var(--ppS, #ece5d8); vertical-align: top; line-height: 1.5; color: var(--ppE, #1a2020); }
.pp-entite__contenu tr:last-child td { border-bottom: none; }
.pp-entite__contenu figure { margin: 2rem 0; line-height: 0; }
.pp-entite__contenu figure img { width: 100%; height: auto; display: block; }
.pp-entite__contenu figcaption { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .75rem; letter-spacing: .08em; color: var(--ppG, #8a8a86); padding: .5rem 0; line-height: 1.5; }
.pp-guide-img-full { width: 100%; aspect-ratio: 16/7; object-fit: cover; display: block; margin: 2.5rem 0; }
.pp-guide-img-pair { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin: 2rem 0; }
.pp-guide-img-pair img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }

/* ── Responsive guide ──────────────────────────────────────────── */
@media (max-width: 768px) {
	.pp-guide-lock__options { grid-template-columns: 1fr; max-width: 360px; }
	.pp-guide-lock__option--secondary { border: 1px solid var(--ppS, #ece5d8); border-top: none; }
	.pp-guide-lock__sep { padding: .75rem 0; flex-direction: row; gap: .75rem; }
	.pp-guide-lock__sep span::before, .pp-guide-lock__sep span::after { position: static; width: 2rem; height: 1px; display: inline-block; vertical-align: middle; margin: 0; }
}
@media (max-width: 600px) {
	.pp-grid--2, .pp-grid--3, .pp-grid--4 { grid-template-columns: 1fr; }
	.pp-guide-img-pair { grid-template-columns: 1fr; }
	.pp-guide-lock { padding: 3rem var(--ppPad, clamp(1.25rem,5vw,4rem)) 2.5rem; }
	.pp-guide-lock__titre { font-size: 1.75rem; }
	.pp-guide-lock__options { max-width: 100%; }
}

/* ═══════════════════════════════════════════════════════════════════
   DS 2.1 — Hero archive (pp-arch-hero)
   Utilisé : magazine, destinations, plages, adresses
═══════════════════════════════════════════════════════════════════ */
.pp-arch-hero { position: relative; background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); height: 320px; overflow: hidden; box-sizing: border-box; }
.pp-arch-hero__inner { position: absolute; top: 50%; left: 0; right: 0; transform: translateY(-50%); padding: 0 var(--ppPad, clamp(1.5rem,5vw,4rem)); text-align: center; z-index: 1; }
.pp-arch-hero__eyebrow { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; opacity: .5; display: block; margin-bottom: .5rem; }
.pp-arch-hero h1 { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: clamp(2.4rem,6vw,4rem); font-weight: 400; margin: .3rem 0 .8rem; color: var(--ppC, #faf8f5); }
.pp-arch-hero__intro { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: 1rem; color: var(--ppC, #faf8f5) !important; opacity: .75; max-width: 560px; margin: 0 auto; }

/* ═══════════════════════════════════════════════════════════════════
   DS 2.4 — Section header (pp-sh)
═══════════════════════════════════════════════════════════════════ */
.pp-sh { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 1.75rem; gap: 1rem; flex-wrap: wrap; }
.pp-sh__eyebrow { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ppG, #8a8a86); display: block; margin-bottom: .3rem; }
.pp-sh__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: clamp(1.3rem,2.5vw,1.8rem); font-weight: 400; margin: 0; color: var(--ppE, #1a2020); }
.pp-sh__voir { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ppB, #5e6b6d); border-bottom: 1px solid currentColor; padding-bottom: .15em; text-decoration: none; white-space: nowrap; opacity: .8; flex-shrink: 0; transition: opacity .2s; }
.pp-sh__voir:hover { opacity: 1; }

/* ═══════════════════════════════════════════════════════════════════
   DS 2.5 — Sections
═══════════════════════════════════════════════════════════════════ */
.pp-section { padding: 3rem 0; border-bottom: 1px solid var(--ppS, #ece5d8); }
.pp-section--sable { background: var(--ppS, #ece5d8); margin: 0 calc(-1 * var(--ppPad, clamp(1.5rem,5vw,4rem))); padding: 3rem var(--ppPad, clamp(1.5rem,5vw,4rem)); }
.pp-section--encre { background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); }

/* ═══════════════════════════════════════════════════════════════════
   DS 2.6 — Grilles (pp-grid)
═══════════════════════════════════════════════════════════════════ */
.pp-grid { display: grid; gap: 1.25rem; }
.pp-grid--2 { grid-template-columns: repeat(2, 1fr); }
.pp-grid--3 { grid-template-columns: repeat(3, 1fr); }
.pp-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .pp-grid--3, .pp-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .pp-grid--2, .pp-grid--3, .pp-grid--4 { grid-template-columns: 1fr; } }

/* ═══════════════════════════════════════════════════════════════════
   DS 2.10 — Carte article magazine (pp-card-mag)
═══════════════════════════════════════════════════════════════════ */
.pp-card-mag { display: block; text-decoration: none; color: inherit; overflow: hidden; background: #fff; transition: transform .2s, box-shadow .2s; }
.pp-card-mag:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(26,32,32,.1); }
.pp-card-mag__img { aspect-ratio: 16/10; overflow: hidden; background: var(--ppS, #ece5d8); }
.pp-card-mag--portrait .pp-card-mag__img { aspect-ratio: 3/4; }
.pp-card-mag__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.pp-card-mag:hover .pp-card-mag__img img { transform: scale(1.04); }
.pp-card-mag__body { padding: .8rem 1rem 1rem; }
.pp-card-mag__cat { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .62rem; letter-spacing: .15em; text-transform: uppercase; color: var(--ppB, #5e6b6d); display: block; margin-bottom: .3rem; }
.pp-card-mag__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1rem; font-weight: 400; margin: 0 0 .4rem; color: var(--ppE, #1a2020); line-height: 1.25; }
.pp-card-mag__date { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .68rem; color: var(--ppG, #8a8a86); }

/* ═══════════════════════════════════════════════════════════════════
   DS 2.11 — Carte destination overlay (pp-card-dest-overlay)
═══════════════════════════════════════════════════════════════════ */
.pp-card-dest-overlay { display: block; position: relative; overflow: hidden; text-decoration: none; aspect-ratio: 3/2; }
.pp-card-dest-overlay img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.pp-card-dest-overlay:hover img { transform: scale(1.06); }
.pp-card-dest-overlay__label { position: absolute; inset: 0; display: flex; align-items: flex-end; padding: .75rem; background: linear-gradient(to top, rgba(13,31,31,.7) 0%, transparent 60%); font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: .95rem; color: #fff; font-weight: 400; }

/* ═══════════════════════════════════════════════════════════════════
   Magazine — body container
═══════════════════════════════════════════════════════════════════ */
.pp-mag-body { max-width: 1280px; margin: 0 auto; padding: 0 var(--ppPad, clamp(1.5rem,5vw,4rem)) 3rem; }

/* ── Article vedette ── */
.pp-mag-vedette { margin: 2.5rem 0; }
.pp-mag-vedette__lien { display: grid; grid-template-columns: 1fr 1fr; gap: 0; text-decoration: none; color: inherit; overflow: hidden; background: #fff; transition: box-shadow .2s; }
.pp-mag-vedette__lien:hover { box-shadow: 0 8px 28px rgba(26,32,32,.12); }
@media (max-width: 720px) { .pp-mag-vedette__lien { grid-template-columns: 1fr; } }
.pp-mag-vedette__img { aspect-ratio: 16/9; overflow: hidden; background: var(--ppS, #ece5d8); }
.pp-mag-vedette__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.pp-mag-vedette__lien:hover .pp-mag-vedette__img img { transform: scale(1.03); }
.pp-mag-vedette__corps { padding: 2rem 2.5rem; display: flex; flex-direction: column; justify-content: center; background: #fff; }
@media (max-width: 720px) { .pp-mag-vedette__corps { padding: 1.25rem 1rem; } }
.pp-mag-vedette__cat { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ppB, #5e6b6d); display: block; margin-bottom: .75rem; }
.pp-mag-vedette__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: clamp(1.4rem,3vw,2rem); font-weight: 400; margin: 0 0 .8rem; color: var(--ppE, #1a2020); line-height: 1.2; }
.pp-mag-vedette__expt { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .9rem; color: var(--ppG, #8a8a86); margin: 0 0 1rem; line-height: 1.55; }
.pp-mag-vedette__date { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ppG, #8a8a86); opacity: .7; }

/* ── Rendez-vous éditoriaux ── */
.pp-mag-rdv { }
.pp-mag-rdv .pp-grid--2 { gap: 1.25rem; }
.pp-mag-rdv__carte { display: block; position: relative; overflow: hidden; text-decoration: none; color: inherit; background: #fff; transition: box-shadow .2s; }
.pp-mag-rdv__carte:hover { box-shadow: 0 6px 20px rgba(26,32,32,.1); }
.pp-mag-rdv__carte--photo { cursor: default; }
.pp-mag-rdv__img { aspect-ratio: 16/10; overflow: hidden; background: var(--ppE, #1a2020); }
.pp-mag-rdv__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.pp-mag-rdv__carte:hover .pp-mag-rdv__img img { transform: scale(1.03); }
.pp-mag-rdv__corps { padding: .75rem 1rem 1rem; border-top: 2px solid var(--ppE, #1a2020); }
.pp-mag-rdv__label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ppG, #8a8a86); display: block; margin-bottom: .3rem; }
.pp-mag-rdv__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1rem; font-weight: 400; margin: 0; color: var(--ppE, #1a2020); line-height: 1.25; }
@media (max-width: 600px) { .pp-mag-rdv .pp-grid--2 { grid-template-columns: 1fr; } }

/* ── Cluster du moment ── */
.pp-mag-cluster { background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); margin: 3rem calc(-1 * var(--ppPad, clamp(1.5rem,5vw,4rem))); overflow: hidden; }
.pp-mag-cluster__hero { position: relative; height: 280px; background: center/cover no-repeat var(--ppE, #1a2020); }
.pp-mag-cluster__hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(26,32,32,.85) 0%, rgba(26,32,32,.2) 100%); }
.pp-mag-cluster__hero-inner { position: absolute; bottom: 0; left: 0; right: 0; padding: 2rem var(--ppPad, clamp(1.5rem,5vw,4rem)); z-index: 1; }
.pp-mag-cluster__eyebrow { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(250,248,245,.55); display: block; margin-bottom: .4rem; }
.pp-mag-cluster__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: clamp(1.8rem,4vw,2.8rem); font-weight: 400; color: var(--ppC, #faf8f5); margin: 0; }
.pp-mag-cluster__corps { display: grid; grid-template-columns: 1fr 1fr auto; gap: 3rem; padding: 2.5rem var(--ppPad, clamp(1.5rem,5vw,4rem)); align-items: start; }
@media (max-width: 768px) { .pp-mag-cluster__corps { grid-template-columns: 1fr 1fr; gap: 1.5rem; } }
@media (max-width: 480px) { .pp-mag-cluster__corps { grid-template-columns: 1fr; gap: 1.25rem; } }
.pp-mag-cluster__col { }
.pp-mag-cluster__col-label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(250,248,245,.45); margin: 0 0 1rem; }
.pp-mag-cluster__item { display: flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--ppC, #faf8f5); margin-bottom: .75rem; transition: opacity .2s; }
.pp-mag-cluster__item:hover { opacity: .75; }
.pp-mag-cluster__item-img { width: 48px; height: 32px; flex-shrink: 0; overflow: hidden; background: rgba(255,255,255,.1); }
.pp-mag-cluster__item-img img { width: 100%; height: 100%; object-fit: cover; }
.pp-mag-cluster__item-nom { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: .9rem; font-weight: 400; line-height: 1.3; }
.pp-mag-cluster__ctas { display: flex; flex-direction: column; justify-content: flex-start; gap: .75rem; padding-top: 1.5rem; }
.pp-mag-cluster__cta-dest { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ppC, #faf8f5); border: 1px solid rgba(250,248,245,.35); padding: .75rem 1.5rem; text-decoration: none; transition: border-color .2s, background .2s; white-space: nowrap; text-align: center; }
.pp-mag-cluster__cta-dest:hover { border-color: rgba(250,248,245,.7); background: rgba(250,248,245,.07); }
.pp-mag-cluster__cta-guide { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ppE, #1a2020); background: var(--ppC, #faf8f5); border: 1px solid var(--ppC, #faf8f5); padding: .75rem 1.5rem; text-decoration: none; transition: opacity .2s; white-space: nowrap; text-align: center; }
.pp-mag-cluster__cta-guide:hover { opacity: .85; }

/* ── Adresses Dormir/Manger ── */
.pp-mag-adresses { }
.pp-mag-adresses__cols { display: flex; flex-direction: column; gap: 2.5rem; }
.pp-mag-adresses__col-label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ppE, #1a2020); margin: 0 0 1.25rem; padding-bottom: .6rem; border-bottom: 2px solid var(--ppE, #1a2020); }

/* ── Liste éditoriale (activités, conseils) ── */
.pp-mag-liste { border-top: 1px solid var(--ppS, #ece5d8); }
.pp-mag-liste__item { display: flex; align-items: baseline; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--ppS, #ece5d8); text-decoration: none; color: inherit; transition: background .15s; }
.pp-mag-liste__item:hover { background: var(--ppS, #ece5d8); padding-left: .5rem; }
.pp-mag-liste__cat { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .15em; text-transform: uppercase; color: var(--ppB, #5e6b6d); min-width: 90px; flex-shrink: 0; }
.pp-mag-liste__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1rem; font-weight: 400; color: var(--ppE, #1a2020); flex: 1; line-height: 1.3; }
.pp-mag-liste__dest { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ppG, #8a8a86); }
.pp-mag-liste__fleche { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .8rem; color: var(--ppG, #8a8a86); margin-left: auto; }
@media (max-width: 600px) { .pp-mag-liste__cat { display: none; } .pp-mag-liste__dest { display: none; } }

/* ── Villes du littoral ── */
.pp-mag-villes { }
.pp-mag-villes__grille { display: flex; flex-wrap: wrap; gap: .5rem; }
.pp-mag-villes__item { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .75rem; letter-spacing: .08em; text-decoration: none; color: var(--ppE, #1a2020); border: 1px solid var(--ppE, #1a2020); padding: .4rem .9rem; transition: background .15s, color .15s; }
.pp-mag-villes__item:hover { background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); }

/* ── Saisons ── */
.pp-mag-saisons { }
.pp-mag-saisons__grille { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }
@media (max-width: 720px) { .pp-mag-saisons__grille { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .pp-mag-saisons__grille { grid-template-columns: 1fr; } }
.pp-mag-saisons__bloc { }
.pp-mag-saisons__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1.1rem; font-weight: 400; color: var(--ppE, #1a2020); display: block; margin-bottom: .75rem; text-decoration: none; border-bottom: 1px solid var(--ppE, #1a2020); padding-bottom: .4rem; transition: opacity .2s; }
.pp-mag-saisons__titre:hover { opacity: .6; }
.pp-mag-saisons__art { display: block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .8rem; color: var(--ppG, #8a8a86); text-decoration: none; margin-bottom: .4rem; line-height: 1.4; transition: color .2s; }
.pp-mag-saisons__art:hover { color: var(--ppE, #1a2020); }

/* ── Pagination ── */
.pp-mag-pagination { display: flex; gap: .5rem; justify-content: center; margin-top: 2rem; flex-wrap: wrap; }
.pp-mag-pagination .page-numbers { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .75rem; letter-spacing: .08em; padding: .5rem .9rem; border: 1px solid var(--ppS, #ece5d8); text-decoration: none; color: var(--ppG, #8a8a86); transition: all .15s; }
.pp-mag-pagination .page-numbers.current, .pp-mag-pagination .page-numbers:hover { border-color: var(--ppE, #1a2020); color: var(--ppE, #1a2020); }

/* ── Vide ── */
.pp-mag-vide { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .9rem; color: var(--ppG, #8a8a86); padding: 3rem 0; text-align: center; }

/* ═══════════════════════════════════════════════════════════════════
   Magazine — Hero bouton CTA
═══════════════════════════════════════════════════════════════════ */
.pp-arch-hero__btn { display: inline-block; margin-top: 1.5rem; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ppC, #faf8f5); border: 1px solid rgba(250,248,245,.45); padding: .65rem 2rem; text-decoration: none; transition: border-color .2s, background .2s; }
.pp-arch-hero__btn:hover { border-color: rgba(250,248,245,.85); background: rgba(250,248,245,.08); }

/* ═══════════════════════════════════════════════════════════════════
   Magazine — Intro éditoriale (emprunt page-collections.php)
═══════════════════════════════════════════════════════════════════ */
.pp-mag-intro { max-width: 760px; }
.pp-mag-intro .pp-maillage__label { display: block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ppB, #5e6b6d); margin-bottom: .6rem; }
.pp-mag-intro .pp-maillage__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: clamp(1.8rem,4vw,2.8rem); font-weight: 400; color: var(--ppE, #1a2020); margin: 0 0 1.25rem; }
.pp-mag-intro__texte { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: 1rem; line-height: 1.7; color: var(--ppG, #8a8a86); margin: 0; max-width: 680px; }

/* ═══════════════════════════════════════════════════════════════════
   Magazine — Bande adresses compacte (emprunt archive-pp_plage.php)
═══════════════════════════════════════════════════════════════════ */
.pp-adresse-strip { display: grid; grid-template-columns: repeat(6, 1fr); gap: .75rem; }
@media (max-width: 1024px) { .pp-adresse-strip { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .pp-adresse-strip { grid-template-columns: repeat(2, 1fr); } }
.pp-adresse-mini { display: block; text-decoration: none; color: inherit; overflow: hidden; transition: opacity .2s; }
.pp-adresse-mini:hover { opacity: .8; }
.pp-adresse-mini__img { aspect-ratio: 4/3; overflow: hidden; background: var(--ppS, #ece5d8); }
.pp-adresse-mini__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.pp-adresse-mini:hover .pp-adresse-mini__img img { transform: scale(1.05); }
.pp-adresse-mini__body { padding: .5rem 0 .25rem; }
.pp-adresse-mini__type { display: block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .15em; text-transform: uppercase; color: var(--ppB, #5e6b6d); margin-bottom: .15rem; }
.pp-adresse-mini__name { display: block; font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: .88rem; font-weight: 400; color: var(--ppE, #1a2020); line-height: 1.25; }

/* ═══════════════════════════════════════════════════════════════════
   Magazine — Sorties transversales 3 cols (emprunt archive-pp_plage.php)
═══════════════════════════════════════════════════════════════════ */
.pp-ap-sorties { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ppS, #ece5d8); }
@media (max-width: 600px) { .pp-ap-sorties { grid-template-columns: 1fr; } }
.pp-ap-sortie { display: flex; align-items: center; gap: 1rem; padding: 2rem var(--ppPad, clamp(1.25rem,5vw,4rem)); text-decoration: none; color: inherit; border-right: 1px solid var(--ppS, #ece5d8); transition: background .15s; }
.pp-ap-sortie:last-child { border-right: none; }
.pp-ap-sortie:hover { background: var(--ppS, #ece5d8); }
@media (max-width: 600px) { .pp-ap-sortie { border-right: none; border-bottom: 1px solid var(--ppS, #ece5d8); } .pp-ap-sortie:last-child { border-bottom: none; } }
.pp-ap-sortie__cat { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ppB, #5e6b6d); display: block; margin-bottom: .2rem; }
.pp-ap-sortie__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1rem; font-weight: 400; color: var(--ppE, #1a2020); flex: 1; line-height: 1.3; }
.pp-ap-sortie__arr { font-size: .9rem; color: var(--ppG, #8a8a86); flex-shrink: 0; }

/* ═══════════════════════════════════════════════════════════════════
   Magazine — Grille régions (emprunt archive-pp_plage.php)
═══════════════════════════════════════════════════════════════════ */
.pp-ap-regions-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
@media (max-width: 900px) { .pp-ap-regions-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .pp-ap-regions-grid { grid-template-columns: 1fr; } }
.pp-ap-region-card { display: block; position: relative; padding: 1.5rem 1.25rem; text-decoration: none; border: 1px solid var(--ppS, #ece5d8); background: var(--ppC, #faf8f5); transition: border-color .15s, background .15s; }
.pp-ap-region-card:hover { border-color: var(--ppE, #1a2020); background: #fff; }
.pp-ap-region-card--soon { opacity: .55; pointer-events: none; }
.pp-ap-region-card__label { display: block; font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1.05rem; font-weight: 400; color: var(--ppE, #1a2020); margin-bottom: .3rem; }
.pp-ap-region-card__sub { display: block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .72rem; color: var(--ppG, #8a8a86); line-height: 1.4; }
.pp-ap-region-card__badge { position: absolute; top: .65rem; right: .65rem; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ppB, #5e6b6d); border: 1px solid var(--ppS, #ece5d8); padding: .2rem .5rem; }

/* ═══════════════════════════════════════════════════════════════════
   Magazine — Pills univers (vue filtrée)
═══════════════════════════════════════════════════════════════════ */
.pp-mag-univers-strip { display: flex; flex-wrap: wrap; gap: .5rem; }
.pp-mag-univers-pill { display: inline-block; text-decoration: none; padding: .6rem 1.25rem; border: 1px solid var(--ppS, #ece5d8); transition: border-color .15s, background .15s; }
.pp-mag-univers-pill:hover { border-color: var(--ppE, #1a2020); background: #fff; }
.pp-mag-univers-pill__titre { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .78rem; letter-spacing: .05em; color: var(--ppE, #1a2020); }

/* Section avant pp-ap-sorties : supprimer le padding-bottom */
.pp-band--pre-sorties { padding-bottom: 0 !important; }

/* ═══════════════════════════════════════════════════════════════════
   AGENDA — Carte événement (pp-card-agenda)
═══════════════════════════════════════════════════════════════════ */
.pp-card-agenda { display: block; text-decoration: none; color: inherit; overflow: hidden; background: #fff; transition: transform .2s, box-shadow .2s; position: relative; }
.pp-card-agenda:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(26,32,32,.1); }
.pp-card-agenda__img { aspect-ratio: 16/10; overflow: hidden; background: var(--ppS, #ece5d8); position: relative; }
.pp-card-agenda__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.pp-card-agenda:hover .pp-card-agenda__img img { transform: scale(1.04); }
.pp-card-agenda__body { padding: .8rem 1rem 1rem; }
.pp-card-agenda__type { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ppB, #5e6b6d); display: block; margin-bottom: .3rem; }
.pp-card-agenda__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1rem; font-weight: 400; margin: 0 0 .5rem; color: var(--ppE, #1a2020); line-height: 1.25; }
.pp-card-agenda__meta { display: flex; flex-direction: column; gap: .15rem; }
.pp-card-agenda__date { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .72rem; color: var(--ppE, #1a2020); font-weight: 500; }
.pp-card-agenda__lieu { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .7rem; color: var(--ppG, #8a8a86); }
.pp-card-agenda__tarif { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ppB, #5e6b6d); margin-top: .2rem; }

/* ── Badge "En cours" / "Dans X jours" ── */
.pp-agenda-badge { position: absolute; top: .65rem; left: .65rem; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .58rem; letter-spacing: .14em; text-transform: uppercase; padding: .3rem .75rem; }
.pp-agenda-badge--now  { background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); }
.pp-agenda-badge--soon { background: var(--ppC, #faf8f5); color: var(--ppE, #1a2020); border: 1px solid var(--ppE, #1a2020); }

/* ═══════════════════════════════════════════════════════════════════
   AGENDA — Liste compacte (pp-agenda-liste)
═══════════════════════════════════════════════════════════════════ */
.pp-agenda-liste { border-top: 1px solid var(--ppS, #ece5d8); }
.pp-agenda-liste__item { display: flex; align-items: baseline; gap: .75rem; padding: .9rem 0; border-bottom: 1px solid var(--ppS, #ece5d8); text-decoration: none; color: inherit; transition: background .15s, padding-left .15s; flex-wrap: wrap; }
.pp-agenda-liste__item:hover { background: var(--ppS, #ece5d8); padding-left: .5rem; }
.pp-agenda-liste__type { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .58rem; letter-spacing: .15em; text-transform: uppercase; color: var(--ppB, #5e6b6d); min-width: 80px; flex-shrink: 0; }
.pp-agenda-liste__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1rem; font-weight: 400; color: var(--ppE, #1a2020); flex: 1; line-height: 1.3; min-width: 180px; }
.pp-agenda-liste__info { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .7rem; color: var(--ppG, #8a8a86); }
.pp-agenda-liste__tarif { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .62rem; letter-spacing: .08em; color: var(--ppB, #5e6b6d); flex-shrink: 0; }
.pp-agenda-liste__tarif--gratuit { background: var(--ppS, #ece5d8); padding: .15rem .5rem; }
.pp-agenda-liste__arr { font-size: .8rem; color: var(--ppG, #8a8a86); margin-left: auto; flex-shrink: 0; }
@media (max-width: 600px) { .pp-agenda-liste__type { display: none; } .pp-agenda-liste__info { display: none; } }

/* ── Groupement par mois (vue "Plus tard") ── */
.pp-agenda-mois-groupe { margin-bottom: 2rem; }
.pp-agenda-mois-groupe__label { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1.1rem; font-weight: 400; color: var(--ppE, #1a2020); margin: 0 0 .75rem; padding-bottom: .5rem; border-bottom: 2px solid var(--ppE, #1a2020); }
.pp-agenda-mois-groupe__label span { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .75rem; color: var(--ppG, #8a8a86); font-weight: 400; }

/* ═══════════════════════════════════════════════════════════════════
   AGENDA — Hero fiche événement (pp-evt-hero)
═══════════════════════════════════════════════════════════════════ */
.pp-evt-hero { position: relative; background: var(--ppE, #1a2020); min-height: 340px; display: flex; align-items: flex-end; overflow: hidden; box-sizing: border-box; }
.pp-evt-hero--img { background-size: cover; background-position: center; }
.pp-evt-hero__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(26,32,32,.9) 0%, rgba(26,32,32,.25) 100%); }
.pp-evt-hero__inner { position: relative; z-index: 1; padding: 2.5rem var(--ppPad, clamp(1.5rem,5vw,4rem)); width: 100%; }
.pp-evt-hero__eyebrow { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .22em; text-transform: uppercase; color: rgba(250,248,245,.55); display: block; margin-bottom: .4rem; }
.pp-evt-hero__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: clamp(1.8rem,4vw,2.8rem); font-weight: 400; color: var(--ppC, #faf8f5) !important; margin: 0 0 .6rem; line-height: 1.1; }
.pp-evt-hero__meta { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .85rem; color: rgba(250,248,245,.65); margin: 0; }

/* ── Meta bar ── */
.pp-agenda-meta { border-top: 1px solid var(--ppS, #ece5d8); border-bottom: 1px solid var(--ppS, #ece5d8); padding: 1.25rem var(--ppPad, clamp(1.25rem,5vw,4rem)); }
.pp-agenda-meta__inner { display: flex; gap: 2.5rem; flex-wrap: wrap; max-width: 1280px; margin: 0 auto; }
.pp-agenda-meta__item { }
.pp-agenda-meta__label { display: block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ppG, #8a8a86); margin-bottom: .2rem; }
.pp-agenda-meta__val { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1.1rem; font-weight: 400; color: var(--ppE, #1a2020); }

/* ── Contenu fiche ── */
.pp-evt-contenu { max-width: 720px; }

/* ── Bloc source officielle ── */
.pp-agenda-source { margin-top: 2rem; padding: 1.5rem; background: var(--ppS, #ece5d8); }
.pp-agenda-source__label { display: block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ppB, #5e6b6d); margin-bottom: 1rem; }
.pp-agenda-source__ctass { display: flex; gap: .75rem; flex-wrap: wrap; }
.pp-agenda-source__btn { display: inline-block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ppC, #faf8f5); background: var(--ppE, #1a2020); padding: .7rem 1.5rem; text-decoration: none; transition: opacity .2s; }
.pp-agenda-source__btn:hover { opacity: .8; }
.pp-agenda-source__btn--billet { background: transparent; color: var(--ppE, #1a2020); border: 1px solid var(--ppE, #1a2020); }
.pp-agenda-source__btn--billet:hover { background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); opacity: 1; }

/* ── Bandeau événement passé ── */
.pp-agenda-archive-band { background: var(--ppS, #ece5d8); text-align: center; padding: .75rem var(--ppPad, clamp(1.25rem,5vw,4rem)); font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .8rem; color: var(--ppG, #8a8a86); }
.pp-agenda-archive-band a { color: var(--ppE, #1a2020); border-bottom: 1px solid currentColor; text-decoration: none; margin-left: .5rem; }


/* ═══════════════════════════════════════════════════════════════════
   MÉTÉO — page-meteo.php
═══════════════════════════════════════════════════════════════════ */

/* ── Intro ── */
.pp-meteo-intro { max-width: 760px; }
.pp-meteo-intro .pp-maillage__label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .22em; text-transform: uppercase; color: var(--ppB, #5e6b6d); display: block; margin-bottom: .75rem; }
.pp-meteo-intro .pp-maillage__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: clamp(1.8rem,4vw,2.8rem); font-weight: 400; color: var(--ppE, #1a2020); margin: 0 0 1.25rem; line-height: 1.15; }
.pp-meteo-intro__texte { font-size: 1rem; line-height: 1.7; color: var(--ppG, #8a8a86); max-width: 640px; }

/* ── Région active ── */
.pp-meteo-region__desc { font-size: 1rem; line-height: 1.7; color: var(--ppG, #8a8a86); max-width: 680px; margin-bottom: 1.25rem; }
.pp-meteo-villes { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; }
.pp-meteo-ville { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .7rem; letter-spacing: .08em; color: var(--ppB, #5e6b6d); border: 1px solid var(--ppS, #ece5d8); padding: .3rem .75rem; }

/* ── Widget météo ── */
.pp-meteo-widgets { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-bottom: 1rem; }
.pp-meteo-widget__label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; color: var(--ppG, #8a8a86); margin: 0 0 .75rem; }
.pp-meteo-iframe { border: 1px solid var(--ppS, #ece5d8); display: block; width: 100%; }
.pp-meteo-source { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .72rem; color: var(--ppG, #8a8a86); line-height: 1.5; margin-top: 1rem; }
.pp-meteo-source a { color: var(--ppE, #1a2020); border-bottom: 1px solid currentColor; text-decoration: none; }

/* ── Grille régions (vue générale) ── */
.pp-meteo-regions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
@media (max-width: 900px) { .pp-meteo-regions { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .pp-meteo-regions { grid-template-columns: 1fr; } }
.pp-meteo-region-card { display: flex; flex-direction: column; gap: .5rem; padding: 1.5rem; border: 1px solid var(--ppS, #ece5d8); text-decoration: none; transition: border-color .2s, background .2s; }
.pp-meteo-region-card:hover { border-color: var(--ppE, #1a2020); background: var(--ppS, #ece5d8); }
.pp-meteo-region-card__label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ppB, #5e6b6d); }
.pp-meteo-region-card__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1.2rem; font-weight: 400; color: var(--ppE, #1a2020); line-height: 1.2; }
.pp-meteo-region-card__desc { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .8rem; line-height: 1.6; color: var(--ppG, #8a8a86); flex: 1; }
.pp-meteo-region-card__villes { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; color: var(--ppB, #5e6b6d); letter-spacing: .04em; }
.pp-meteo-region-card__cta { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .7rem; letter-spacing: .1em; color: var(--ppE, #1a2020); border-bottom: 1px solid currentColor; align-self: flex-start; margin-top: .5rem; }

/* ── Saisons ── */
.pp-meteo-saisons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
@media (max-width: 900px) { .pp-meteo-saisons { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .pp-meteo-saisons { grid-template-columns: 1fr; } }
.pp-meteo-saison { padding: 1.5rem; border: 1px solid var(--ppS, #ece5d8); display: flex; flex-direction: column; gap: .4rem; }
.pp-meteo-saison__icon { font-size: 1.5rem; line-height: 1; }
.pp-meteo-saison__periode { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .62rem; letter-spacing: .15em; text-transform: uppercase; color: var(--ppB, #5e6b6d); }
.pp-meteo-saison__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1.1rem; font-weight: 400; color: var(--ppE, #1a2020); }
.pp-meteo-saison__desc { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .8rem; line-height: 1.6; color: var(--ppG, #8a8a86); }

/* ── Températures ── */
.pp-meteo-temps-grille { display: grid; grid-template-columns: repeat(5, 1fr); gap: .75rem; margin-bottom: 1rem; }
@media (max-width: 900px) { .pp-meteo-temps-grille { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .pp-meteo-temps-grille { grid-template-columns: repeat(2, 1fr); } }
.pp-meteo-temp { padding: 1.25rem; border: 1px solid var(--ppS, #ece5d8); display: flex; flex-direction: column; gap: .4rem; }
.pp-meteo-temp__region { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: .95rem; font-weight: 400; color: var(--ppE, #1a2020); }
.pp-meteo-temp__vals { display: flex; gap: .75rem; margin: .25rem 0; }
.pp-meteo-temp__val { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .75rem; display: flex; flex-direction: column; gap: .1rem; color: var(--ppE, #1a2020); font-weight: 500; }
.pp-meteo-temp__val em { font-style: normal; font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ppG, #8a8a86); font-weight: 400; }
.pp-meteo-temp__note { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .7rem; color: var(--ppG, #8a8a86); line-height: 1.5; }


/* ═══════════════════════════════════════════════════════════════════
   PLAYLIST — page-playlist.php
═══════════════════════════════════════════════════════════════════ */

/* ── Intro ── */
.pp-playlist-intro { max-width: 760px; }
.pp-playlist-intro .pp-maillage__label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .22em; text-transform: uppercase; color: var(--ppB, #5e6b6d); display: block; margin-bottom: .75rem; }
.pp-playlist-intro .pp-maillage__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: clamp(1.8rem,4vw,2.8rem); font-weight: 400; color: var(--ppE, #1a2020); margin: 0 0 1.25rem; line-height: 1.15; }
.pp-playlist-intro__texte { font-size: 1rem; line-height: 1.7; color: var(--ppG, #8a8a86); max-width: 640px; }

/* ── Vue ambiance unique ── */
.pp-playlist-ambiance-desc { font-size: 1.05rem; line-height: 1.7; color: var(--ppG, #8a8a86); max-width: 680px; margin-bottom: 2rem; }
.pp-playlist-ambiance-desc--light { color: rgba(250,248,245,.65); }
.pp-playlist-embed-wrap { margin-bottom: 2rem; }
.pp-playlist-embed { border: none; border-radius: 0; display: block; }

/* ── Titres liste ── */
.pp-playlist-titres { margin-top: 1rem; }
.pp-playlist-titres__label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ppG, #8a8a86); margin: 0 0 .75rem; }
.pp-playlist-titres__label--light { color: rgba(250,248,245,.45); }
.pp-playlist-titres__liste { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--ppS, #ece5d8); }
.pp-playlist-titres__liste--compact .pp-playlist-titre { padding: .6rem 0; }
.pp-band--encre .pp-playlist-titres__liste { border-color: rgba(250,248,245,.15); }
.pp-playlist-titre { display: flex; align-items: baseline; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--ppS, #ece5d8); }
.pp-band--encre .pp-playlist-titre { border-color: rgba(250,248,245,.12); }
.pp-playlist-titre--light .pp-playlist-titre__nom { color: var(--ppC, #faf8f5); }
.pp-playlist-titre--light .pp-playlist-titre__artiste { color: rgba(250,248,245,.5); }
.pp-playlist-titre__nom { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1rem; font-weight: 400; color: var(--ppE, #1a2020); flex: 1; }
.pp-playlist-titre__artiste { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .75rem; color: var(--ppG, #8a8a86); }

/* ── Cards autres ambiances ── */
.pp-playlist-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
@media (max-width: 768px) { .pp-playlist-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .pp-playlist-cards { grid-template-columns: 1fr; } }
.pp-playlist-card { display: flex; flex-direction: column; gap: .5rem; padding: 1.5rem; text-decoration: none; border: 1px solid var(--ppS, #ece5d8); transition: border-color .2s, background .2s; }
.pp-playlist-card:hover { border-color: var(--ppE, #1a2020); background: var(--ppS, #ece5d8); }
.pp-playlist-card--encre { background: var(--ppE, #1a2020); border-color: transparent; }
.pp-playlist-card--encre:hover { background: #0f1616; border-color: transparent; }
.pp-playlist-card__emoji { font-size: 1.5rem; line-height: 1; }
.pp-playlist-card__label { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1.15rem; font-weight: 400; color: var(--ppE, #1a2020); }
.pp-playlist-card--encre .pp-playlist-card__label { color: var(--ppC, #faf8f5); }
.pp-playlist-card__desc { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .8rem; line-height: 1.6; color: var(--ppG, #8a8a86); }
.pp-playlist-card--encre .pp-playlist-card__desc { color: rgba(250,248,245,.5); }

/* ── Vue générale — blocs alternés ── */
.pp-playlist-bloc { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
@media (max-width: 768px) { .pp-playlist-bloc { grid-template-columns: 1fr; } }
.pp-playlist-bloc__info { display: flex; flex-direction: column; gap: .75rem; }
.pp-playlist-bloc__emoji { font-size: 2rem; line-height: 1; }
.pp-playlist-bloc__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: clamp(1.5rem,3vw,2.2rem); font-weight: 400; color: var(--ppE, #1a2020); margin: 0; line-height: 1.1; }
.pp-playlist-bloc__titre--light { color: var(--ppC, #faf8f5) !important; }
.pp-playlist-bloc__desc { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .9rem; line-height: 1.65; color: var(--ppG, #8a8a86); }
.pp-playlist-bloc__desc--light { color: rgba(250,248,245,.6); }
.pp-playlist-bloc__btn { display: inline-block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ppE, #1a2020); border-bottom: 1px solid currentColor; text-decoration: none; align-self: flex-start; margin-top: .5rem; transition: opacity .2s; }
.pp-playlist-bloc__btn:hover { opacity: .6; }
.pp-playlist-bloc__btn--light { color: var(--ppC, #faf8f5); }
.pp-playlist-bloc__embed { }


/* ═══════════════════════════════════════════════════════════════════
   MÉTÉO — Composants live Open-Meteo (ajout)
═══════════════════════════════════════════════════════════════════ */

/* ── Spot card (vue région) ── */
.pp-meteo-spots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
@media (max-width: 900px) { .pp-meteo-spots { grid-template-columns: 1fr; } }

.pp-meteo-spot { padding: 1.75rem; border: 1px solid var(--ppS, #ece5d8); background: #fff; display: flex; flex-direction: column; gap: .6rem; }
.pp-meteo-spot--offline { opacity: .55; }
.pp-meteo-spot__head { display: flex; flex-direction: column; gap: .15rem; border-bottom: 1px solid var(--ppS, #ece5d8); padding-bottom: .75rem; margin-bottom: .25rem; }
.pp-meteo-spot__nom { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1.15rem; font-weight: 400; color: var(--ppE, #1a2020); }
.pp-meteo-spot__note { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ppG, #8a8a86); }

.pp-meteo-spot__ciel { display: flex; align-items: center; gap: .5rem; }
.pp-meteo-spot__icon { font-size: 1.5rem; line-height: 1; }
.pp-meteo-spot__ciel-label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .8rem; color: var(--ppG, #8a8a86); }

.pp-meteo-spot__temp { display: flex; align-items: baseline; gap: .75rem; }
.pp-meteo-spot__temp-val { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 2.8rem; font-weight: 300; color: var(--ppE, #1a2020); line-height: 1; }
.pp-meteo-spot__temp-feels { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .72rem; color: var(--ppG, #8a8a86); }

.pp-meteo-spot__kpis { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-top: .5rem; padding-top: .75rem; border-top: 1px solid var(--ppS, #ece5d8); }
.pp-meteo-spot__offline { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .8rem; color: var(--ppG, #8a8a86); }

/* ── KPI (réutilisé spot + overview) ── */
.pp-meteo-kpi { display: flex; flex-direction: column; gap: .15rem; }
.pp-meteo-kpi--inline { flex-direction: row; align-items: baseline; gap: .5rem; }
.pp-meteo-kpi__label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .58rem; letter-spacing: .15em; text-transform: uppercase; color: var(--ppG, #8a8a86); flex-shrink: 0; }
.pp-meteo-kpi__val { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: .95rem; font-weight: 400; color: var(--ppE, #1a2020); }
.pp-meteo-kpi__sub { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .68rem; color: var(--ppB, #5e6b6d); }

/* ── Overview (vue générale — 1 spot par région) ── */
.pp-meteo-overview { display: flex; flex-direction: column; gap: 1rem; }
.pp-meteo-overview__ciel { display: flex; align-items: center; gap: 1rem; }
.pp-meteo-overview__icon { font-size: 2.5rem; line-height: 1; }
.pp-meteo-overview__ciel-info { display: flex; flex-direction: column; gap: .1rem; flex: 1; }
.pp-meteo-overview__nom { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1.1rem; font-weight: 400; color: var(--ppE, #1a2020); }
.pp-meteo-overview__ciel-label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .78rem; color: var(--ppG, #8a8a86); }
.pp-meteo-overview__temp { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 3rem; font-weight: 300; color: var(--ppE, #1a2020); line-height: 1; }
.pp-meteo-overview__kpis { display: flex; flex-direction: column; gap: .5rem; padding-top: .75rem; border-top: 1px solid var(--ppS, #ece5d8); }

/* ── Update label ── */
.pp-meteo-update { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .65rem; letter-spacing: .08em; color: var(--ppB, #5e6b6d); align-self: center; }


/* ═══════════════════════════════════════════════════════════════════
   ADRESSES — Carte & grille (canonical, remplace le inline de archive-pp_adresse.php)
═══════════════════════════════════════════════════════════════════ */

.pp-adr-grid { display: grid; gap: 1.25rem; }
.pp-adr-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .pp-adr-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .pp-adr-grid--3 { grid-template-columns: 1fr; } }

.pp-adr-card { display: block; text-decoration: none; color: inherit; overflow: hidden; background: #fff; transition: transform .2s, box-shadow .2s; }
.pp-adr-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(26,32,32,.1); }
.pp-adr-card__img { aspect-ratio: 3/2; overflow: hidden; background: var(--ppS, #ece5d8); position: relative; }
.pp-adr-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.pp-adr-card:hover .pp-adr-card__img img { transform: scale(1.04); }
.pp-adr-card__badge { position: absolute; top: .6rem; left: .6rem; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; background: #fff; color: var(--ppE, #1a2020); padding: .2rem .6rem; }
.pp-adr-card__body { padding: .8rem 1rem 1rem; }
.pp-adr-card__title { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1rem; font-weight: 400; margin: 0 0 .25rem; color: var(--ppE, #1a2020); line-height: 1.25; }
.pp-adr-card__dest { font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ppB, #5e6b6d); display: block; margin-bottom: .3rem; font-family: var(--ppFt, 'General Sans',sans-serif); }
.pp-adr-card__excerpt { font-size: .78rem; color: var(--ppG, #8a8a86); margin: .3rem 0 0; line-height: 1.4; font-family: var(--ppFt, 'General Sans',sans-serif); }

/* ═══════════════════════════════════════════════════════════════════
   TAXONOMY pp_type_adresse — page par type
═══════════════════════════════════════════════════════════════════ */

.pp-tax-adr__desc { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .95rem; line-height: 1.7; color: var(--ppG, #8a8a86); max-width: 680px; margin-bottom: 2rem; }

/* ── Bloc vide ── */
.pp-tax-adr__vide { text-align: center; padding: 4rem 2rem; max-width: 480px; margin: 0 auto; }
.pp-tax-adr__vide-titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1.5rem; font-weight: 400; color: var(--ppE, #1a2020); margin: 0 0 .75rem; }
.pp-tax-adr__vide-txt { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .9rem; color: var(--ppG, #8a8a86); line-height: 1.65; margin: 0 0 1.5rem; }
.pp-tax-adr__vide-btn { display: inline-block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ppC, #faf8f5); background: var(--ppE, #1a2020); padding: .8rem 2rem; text-decoration: none; transition: opacity .2s; }
.pp-tax-adr__vide-btn:hover { opacity: .8; }

/* ── Bande autres types ── */
.pp-tax-adr__autres { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
@media (max-width: 900px) { .pp-tax-adr__autres { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .pp-tax-adr__autres { grid-template-columns: 1fr; } }

.pp-tax-adr__autre { display: flex; flex-direction: column; gap: .25rem; padding: 1.25rem; border: 1px solid var(--ppS, #ece5d8); text-decoration: none; transition: border-color .2s, background .2s; }
.pp-tax-adr__autre:hover { border-color: var(--ppE, #1a2020); background: var(--ppS, #ece5d8); }
.pp-tax-adr__autre-eyebrow { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .58rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ppB, #5e6b6d); }
.pp-tax-adr__autre-nom { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1.05rem; font-weight: 400; color: var(--ppE, #1a2020); flex: 1; }
.pp-tax-adr__autre-arr { font-size: .8rem; color: var(--ppG, #8a8a86); align-self: flex-end; }


/* ═══════════════════════════════════════════════════════════════════
   MAGAZINE — Pill univers avec eyebrow (category.php)
═══════════════════════════════════════════════════════════════════ */
.pp-mag-univers-pill__eyebrow { display: block; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .55rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ppB, #5e6b6d); margin-bottom: .2rem; }


/* ═══════════════════════════════════════════════════════════════════
   PAGE CLUB — Sprint juillet 2026
═══════════════════════════════════════════════════════════════════ */

/* ── Hero Club ── */
.pp-club-hero { background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); min-height: 80vh; display: flex; align-items: center; justify-content: center; text-align: center; padding: 6rem 2rem; }
.pp-club-hero .pp-arch-hero__inner { max-width: 740px; }
.pp-club-hero .pp-arch-hero__eyebrow { color: var(--ppS, #ece5d8); opacity: .7; }
.pp-club-hero h1 { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: clamp(2.4rem,5vw,4rem); font-weight: 300; color: var(--ppC, #faf8f5); line-height: 1.12; margin: 1rem 0 1.5rem; }
.pp-club-hero .pp-arch-hero__intro { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: 1.05rem; line-height: 1.7; color: var(--ppS, #ece5d8); max-width: 560px; margin: 0 auto 2.5rem; opacity: .85; }
.pp-club-hero__actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
.pp-club-hero__btn { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; padding: 1rem 2rem; transition: opacity .2s; display: inline-block; }
.pp-club-hero__btn--primary { background: var(--ppC, #faf8f5); color: var(--ppE, #1a2020); }
.pp-club-hero__btn--ghost { border: 1px solid rgba(255,255,255,.35); color: var(--ppC, #faf8f5); }
.pp-club-hero__btn:hover { opacity: .8; }

/* ── Intro texte ── */
.pp-club-intro-text { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: 1.05rem; line-height: 1.75; color: var(--ppB, #5e6b6d); max-width: 640px; margin: 0 0 3.5rem; }

/* ── Grille avantages ── */
.pp-club-avantages { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem 3rem; }
@media (max-width: 900px) { .pp-club-avantages { grid-template-columns: repeat(2, 1fr); gap: 2rem; } }
@media (max-width: 580px) { .pp-club-avantages { grid-template-columns: 1fr; } }
.pp-club-avantage__num { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 2.5rem; font-weight: 300; color: var(--ppS, #ece5d8); line-height: 1; display: block; margin-bottom: .5rem; }
.pp-club-avantage__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1.15rem; font-weight: 400; color: var(--ppE, #1a2020); margin: 0 0 .6rem; }
.pp-club-avantage__desc { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .88rem; line-height: 1.65; color: var(--ppB, #5e6b6d); margin: 0; }

/* ── Tarifs ── */
.pp-club-tarifs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; align-items: start; margin-top: 3rem; }
@media (max-width: 900px) { .pp-club-tarifs { grid-template-columns: 1fr; max-width: 480px; margin-inline: auto; } }

.pp-club-tarif { border: 1.5px solid var(--ppS, #ece5d8); padding: 2.5rem 2rem; position: relative; background: var(--ppC, #faf8f5); }
.pp-club-tarif--featured { border-color: var(--ppE, #1a2020); background: #fff; }
.pp-club-tarif__badge { position: absolute; top: -1px; left: 50%; transform: translateX(-50%); background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .58rem; letter-spacing: .14em; text-transform: uppercase; padding: .3rem .9rem; white-space: nowrap; }
.pp-club-tarif__label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ppB, #5e6b6d); display: block; margin-bottom: 1rem; }
.pp-club-tarif__prix { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 2.8rem; font-weight: 300; color: var(--ppE, #1a2020); line-height: 1; }
.pp-club-tarif__periode { font-size: 1rem; font-weight: 300; color: var(--ppB, #5e6b6d); }
.pp-club-tarif__annuel { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .78rem; color: var(--ppB, #5e6b6d); margin: .5rem 0 0; }
.pp-club-tarif__desc { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .85rem; color: var(--ppG, #8a8a86); margin: 1rem 0 1.5rem; }
.pp-club-tarif__liste { list-style: none; margin: 0 0 2rem; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.pp-club-tarif__liste li { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .82rem; color: var(--ppB, #5e6b6d); padding-left: 1.2rem; position: relative; }
.pp-club-tarif__liste li::before { content: '—'; position: absolute; left: 0; color: var(--ppG, #8a8a86); }
.pp-club-tarif__btn { display: block; text-align: center; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; padding: .9rem 1.5rem; transition: opacity .2s; }
.pp-club-tarif__btn--primary { background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); }
.pp-club-tarif__btn--ghost { border: 1.5px solid var(--ppE, #1a2020); color: var(--ppE, #1a2020); }
.pp-club-tarif__btn:hover { opacity: .75; }

/* ── Collections Club cards ── */
.pp-club-coll-card { display: block; text-decoration: none; color: inherit; }
.pp-club-coll-card__img { aspect-ratio: 4/5; overflow: hidden; background: var(--ppS, #ece5d8); position: relative; }
.pp-club-coll-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.pp-club-coll-card:hover .pp-club-coll-card__img img { transform: scale(1.04); }
.pp-club-coll-card__badge { position: absolute; top: .75rem; right: .75rem; font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .55rem; letter-spacing: .14em; text-transform: uppercase; background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); padding: .25rem .7rem; }
.pp-club-coll-card__body { padding: 1rem 0 .5rem; }
.pp-club-coll-card__cat { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ppB, #5e6b6d); display: block; margin-bottom: .3rem; }
.pp-club-coll-card__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 1.05rem; font-weight: 400; color: var(--ppE, #1a2020); margin: 0; }

/* ── Newsletter section (pp-band--encre) ── */
.pp-club-nl { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; }
@media (max-width: 900px) { .pp-club-nl { grid-template-columns: 1fr; gap: 3rem; } }
.pp-club-nl__eyebrow { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ppS, #ece5d8); opacity: .6; display: block; margin-bottom: .75rem; }
.pp-club-nl__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: clamp(1.8rem,3vw,2.6rem); font-weight: 300; color: var(--ppC, #faf8f5); line-height: 1.18; margin: 0 0 1.5rem; }
.pp-club-nl__desc { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .9rem; line-height: 1.7; color: var(--ppS, #ece5d8); opacity: .75; margin: 0 0 1.5rem; }
.pp-club-nl__liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.pp-club-nl__liste li { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .82rem; color: var(--ppS, #ece5d8); opacity: .75; padding-left: 1.2rem; position: relative; }
.pp-club-nl__liste li::before { content: '→'; position: absolute; left: 0; opacity: .5; }
.pp-club-nl__form-label { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ppS, #ece5d8); opacity: .6; margin-bottom: 1rem; display: block; }
.pp-club-nl__form-inner { display: flex; flex-direction: column; gap: .75rem; }
.pp-club-nl__form-inner .pp-newsletter-form__input { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); color: var(--ppC, #faf8f5); }
.pp-club-nl__form-inner .pp-newsletter-form__input::placeholder { color: rgba(255,255,255,.4); }
.pp-club-nl__form-inner .pp-newsletter-form__btn { background: var(--ppC, #faf8f5); color: var(--ppE, #1a2020); }
.pp-club-nl__form-inner .pp-newsletter-form__btn:hover { opacity: .9; }
.pp-club-nl__rgpd { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .72rem; color: var(--ppS, #ece5d8); opacity: .5; margin-top: .75rem; }
.pp-club-nl__rgpd a { color: inherit; }

/* ── Section Rejoindre ── */
.pp-club-rejoindre { text-align: center; max-width: 600px; margin: 0 auto; }
.pp-club-rejoindre__eyebrow { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .6rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ppB, #5e6b6d); display: block; margin-bottom: .75rem; }
.pp-club-rejoindre__titre { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: clamp(1.8rem,3vw,2.8rem); font-weight: 300; color: var(--ppE, #1a2020); margin: 0 0 1rem; }
.pp-club-rejoindre__texte { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .9rem; line-height: 1.7; color: var(--ppB, #5e6b6d); margin: 0 0 2rem; }
.pp-club-rejoindre__prix-bloc { display: flex; align-items: center; justify-content: center; gap: 1.25rem; flex-wrap: wrap; margin-bottom: 2.5rem; }
.pp-club-rejoindre__prix { font-family: var(--ppFd, 'Fraunces',Georgia,serif); font-size: 2.5rem; font-weight: 300; color: var(--ppE, #1a2020); }
.pp-club-rejoindre__prix span { font-size: 1.1rem; color: var(--ppB, #5e6b6d); }
.pp-club-rejoindre__ou { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ppG, #8a8a86); }
.pp-club-rejoindre__annuel { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .9rem; color: var(--ppB, #5e6b6d); }
.pp-club-rejoindre__actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-bottom: 1.25rem; }
.pp-club-rejoindre__btn { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; padding: 1rem 2.25rem; transition: opacity .2s; display: inline-block; }
.pp-club-rejoindre__btn--primary { background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); }
.pp-club-rejoindre__btn--ghost { border: 1.5px solid var(--ppE, #1a2020); color: var(--ppE, #1a2020); }
.pp-club-rejoindre__btn:hover { opacity: .75; }
.pp-club-rejoindre__note { font-family: var(--ppFt, 'General Sans',sans-serif); font-size: .72rem; color: var(--ppG, #8a8a86); margin: 0; }

/* ═══════════════════════════════════════════════════════════════════
   CLAIM BAR — wp_footer hook (functions.php)
═══════════════════════════════════════════════════════════════════ */
.pp-claim-bar { position: fixed; bottom: 0; left: 0; right: 0; z-index: 9000; background: var(--ppE, #1a2020); color: var(--ppC, #faf8f5); display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1rem 2rem; font-family: var(--ppFt, 'General Sans',sans-serif); }
.pp-claim-bar__text { font-size: .82rem; line-height: 1.4; opacity: .8; }
.pp-claim-bar__text strong { color: var(--ppC, #faf8f5); opacity: 1; font-weight: 500; }
.pp-claim-bar__btn { flex-shrink: 0; font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; background: var(--ppC, #faf8f5); color: var(--ppE, #1a2020); padding: .65rem 1.5rem; white-space: nowrap; transition: opacity .2s; }
.pp-claim-bar__btn:hover { opacity: .85; }
.pp-claim-bar__close { flex-shrink: 0; background: none; border: none; color: var(--ppC, #faf8f5); opacity: .5; font-size: 1.2rem; cursor: pointer; padding: .25rem .5rem; line-height: 1; transition: opacity .2s; }
.pp-claim-bar__close:hover { opacity: 1; }
@media (max-width: 600px) { .pp-claim-bar { flex-direction: column; align-items: flex-start; gap: .75rem; padding: 1rem 1.25rem; } }

/* ═══════════════════════════════════════════════════════════════════
   PREMIUM GATE — bloc paywall visibility:members
═══════════════════════════════════════════════════════════════════ */
.pp-premium-gate { position: relative; margin: 3rem 0; }
.pp-premium-gate__blur { filter: blur(4px); opacity: .35; pointer-events: none; user-select: none; padding: 1.5rem 0; font-family: var(--ppFt,'General Sans',sans-serif); font-size: .95rem; line-height: 1.7; color: var(--ppE,#1a2020); }
.pp-premium-gate__inner { position: relative; background: var(--ppC,#faf8f5); border: 1.5px solid var(--ppS,#ece5d8); padding: 2.5rem 2rem; text-align: center; }
@media (min-width: 768px) { .pp-premium-gate__inner { padding: 3rem 3.5rem; } }
.pp-premium-gate__badge { display: inline-block; font-family: var(--ppFt,'General Sans',sans-serif); font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; background: var(--ppE,#1a2020); color: var(--ppC,#faf8f5); padding: .35rem 1rem; margin-bottom: 1.25rem; }
.pp-premium-gate__title { font-family: var(--ppFd,'Fraunces',serif); font-size: clamp(1.5rem,3vw,2rem); font-weight: 400; color: var(--ppE,#1a2020); margin: 0 0 .75rem; line-height: 1.2; }
.pp-premium-gate__intro { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .95rem; color: var(--ppB,#5e6b6d); margin: 0 0 1.5rem; line-height: 1.6; }
.pp-premium-gate__list { list-style: none; padding: 0; margin: 0 0 2rem; display: grid; gap: .5rem; text-align: left; max-width: 380px; margin-left: auto; margin-right: auto; }
.pp-premium-gate__list li { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .88rem; color: var(--ppE,#1a2020); padding-left: 1.25rem; position: relative; line-height: 1.5; }
.pp-premium-gate__list li::before { content: '→'; position: absolute; left: 0; color: var(--ppB,#5e6b6d); font-size: .8rem; top: .1em; }
.pp-premium-gate__actions { display: flex; flex-direction: column; align-items: center; gap: .75rem; }
.pp-premium-gate__actions .pp-btn--primary { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; background: var(--ppE,#1a2020); color: var(--ppC,#faf8f5); padding: 1rem 2.5rem; display: inline-block; transition: opacity .2s; }
.pp-premium-gate__actions .pp-btn--primary:hover { opacity: .8; }
.pp-premium-gate__note { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .72rem; color: var(--ppG,#8a8a86); }
.pp-premium-gate__login { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .78rem; color: var(--ppB,#5e6b6d); text-decoration: underline; text-underline-offset: 3px; }

/* ═══════════════════════════════════════════════════════════════════
   ARTICLE MAILLAGE — plages & adresses sous les articles magazine
═══════════════════════════════════════════════════════════════════ */
.pp-article-maillage { max-width: 960px; margin: 3rem auto 0; padding: 0 var(--ppPad, 2rem); }
.pp-article-maillage__header { margin-bottom: 1.5rem; }
.pp-article-maillage__label { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ppG,#8a8a86); margin: 0 0 .4rem; }
.pp-article-maillage__titre { font-family: var(--ppFd,'Fraunces',serif); font-size: clamp(1.3rem,2.5vw,1.75rem); font-weight: 400; color: var(--ppE,#1a2020); margin: 0; line-height: 1.2; }
.pp-article-maillage__voir-tout { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .82rem; color: var(--ppB,#5e6b6d); margin-top: 1rem; }
.pp-article-maillage__voir-tout a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* ═══════════════════════════════════════════════════════════════════
   SYSTÈME IMAGE — Attribution Google Places & open-license
   MODE A : photo Google via proxy API — jamais hébergée
   MODE B : photo hébergée avec droits vérifiés
═══════════════════════════════════════════════════════════════════ */
.pp-img-figure { position: relative; margin: 0; overflow: hidden; }
.pp-img-figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pp-img-figure--error { background: var(--ppS, #ece5d8); }
.pp-img-figure--error img { display: none; }

/* Attribution — commune */
.pp-img-attr { position: absolute; bottom: 0; right: 0; font-family: var(--ppFt,'General Sans',sans-serif); font-size: .62rem; line-height: 1.3; padding: .2rem .5rem; background: rgba(26,32,32,.55); color: rgba(255,255,255,.85); backdrop-filter: blur(4px); display: flex; align-items: center; gap: .35rem; max-width: 80%; }
.pp-img-attr a { color: inherit; text-decoration: underline; text-underline-offset: 2px; opacity: .9; }
.pp-img-attr a:hover { opacity: 1; }

/* Google spécifique */
.pp-img-attr--google .pp-img-attr__google-logo { font-size: .7rem; opacity: .7; }
.pp-img-attr--google .pp-img-attr__maps { font-size: .6rem; white-space: nowrap; }
.pp-img-attr--google .pp-img-attr__flag { font-size: .65rem; opacity: .6; }

/* Local open-license */
.pp-img-attr--local { font-size: .6rem; }
.pp-img-attr__credit { opacity: .9; }
.pp-img-attr__license { opacity: .7; }

/* Placeholder sans image */
.pp-img-placeholder { background: var(--ppS, #ece5d8); aspect-ratio: 3/2; width: 100%; }

/* Overlay crédit card — applicable dans tout conteneur position:relative */
.pp-img-credit {
    position: absolute;
    bottom: 4px; right: 4px;
    font-family: var(--ppFt,'General Sans',sans-serif);
    font-size: .58rem;
    line-height: 1.2;
    padding: .15rem .4rem;
    background: rgba(26,32,32,.52);
    color: rgba(255,255,255,.82);
    backdrop-filter: blur(3px);
    border-radius: 2px;
    text-decoration: none;
    pointer-events: auto;
    z-index: 2;
    max-width: 75%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pp-img-credit:hover { opacity: .9; color: #fff; }
.pp-img-credit--google { cursor: pointer; }
.pp-img-credit__flag { position: absolute; bottom: 4px; right: 4px; font-size: .65rem; opacity: .5; color: rgba(255,255,255,.7); text-decoration: none; }
.pp-img-credit__flag:hover { opacity: .9; }

/* ── Formulaire contact ──────────────────────────────────────────────────── */
.pp-contact-wrap { max-width: 600px; margin: 0 auto; padding: 3rem 0 6rem; }
.pp-contact-form { display: flex; flex-direction: column; gap: 2.25rem; }
.pp-cf-row { display: flex; flex-direction: column; gap: .55rem; }
.pp-cf-label {
  font-family: var(--ppFt,'General Sans',sans-serif);
  font-size: .62rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ppG,#8a8a86);
}
.pp-cf-input {
  font-family: var(--ppFt,'General Sans',sans-serif);
  font-size: .95rem;
  color: var(--ppE,#1a2020);
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(26,32,32,.25);
  padding: .65rem 0;
  width: 100%;
  outline: none;
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .2s;
}
.pp-cf-input:focus { border-bottom-color: var(--ppE,#1a2020); }
textarea.pp-cf-input { resize: none; min-height: 140px; }
.pp-cf-submit {
  font-family: var(--ppFt,'General Sans',sans-serif);
  font-size: .66rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  background: var(--ppE,#1a2020);
  color: var(--ppC,#faf8f5);
  border: none;
  padding: .85rem 2.5rem;
  cursor: pointer;
  align-self: flex-start;
  margin-top: .75rem;
  transition: opacity .2s;
}
.pp-cf-submit:hover { opacity: .8; }
.pp-cf-submit:disabled { opacity: .4; cursor: default; }

.pp-cf-footer { display: flex; align-items: center; gap: 2rem; margin-top: 1rem; }
.pp-cf-back { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ppG,#8a8a86); text-decoration: none; }
.pp-cf-back:hover { color: var(--ppE,#1a2020); }
.pp-cf-notice { padding: .9rem 0; font-family: var(--ppFt,'General Sans',sans-serif); font-size: .85rem; }
.pp-cf-notice--ok  { color: #1d5c2e; }
.pp-cf-notice--err { color: #7a0000; }

/* ── Layout rubrique : une (large) + aside (4 compacts) ── */
.pp-mag-rubrique-layout { display: grid; grid-template-columns: 3fr 2fr; gap: 1.25rem; align-items: start; }
@media (max-width: 860px) { .pp-mag-rubrique-layout { grid-template-columns: 1fr; } }

.pp-mag-une { display: block; text-decoration: none; color: inherit; overflow: hidden; background: #fff; transition: box-shadow .2s; }
.pp-mag-une:hover { box-shadow: 0 6px 24px rgba(26,32,32,.11); }
.pp-mag-une__img { aspect-ratio: 16/9; overflow: hidden; background: var(--ppS, #ece5d8); }
.pp-mag-une__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.pp-mag-une:hover .pp-mag-une__img img { transform: scale(1.03); }
.pp-mag-une__body { padding: 1.1rem 1.2rem 1.3rem; }
.pp-mag-une__cat { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ppB,#5e6b6d); display: block; margin-bottom: .4rem; }
.pp-mag-une__titre { font-family: var(--ppFd,'Fraunces',Georgia,serif); font-size: clamp(1.1rem,2.2vw,1.5rem); font-weight: 400; margin: 0 0 .5rem; color: var(--ppE,#1a2020); line-height: 1.2; }
.pp-mag-une__expt { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .82rem; color: var(--ppG,#8a8a86); line-height: 1.5; display: block; }

.pp-mag-rubrique-aside { display: flex; flex-direction: column; gap: .75rem; }
.pp-card-mag--sm .pp-card-mag__img { aspect-ratio: 5/3; }
.pp-card-mag__titre--sm { font-size: .88rem; line-height: 1.25; }
.pp-card-mag--sm .pp-card-mag__body { padding: .5rem .7rem .65rem; }

/* ══════════════════════════════════════════════════════════════════
   PAGE MAGAZINE — Hub éditorial redesign juillet 2026
   ══════════════════════════════════════════════════════════════════ */

/* ── Body wrapper ── */
.pp-mag__body { max-width: 1280px; margin: 0 auto; padding: 0 var(--ppPad, clamp(1.5rem,5vw,4rem)) 3rem; }

/* ── Top : vedette + liste recents côte à côte ── */
.pp-mag-top { display: grid !important; grid-template-columns: 1fr 340px !important; gap: 1.5rem; margin: 2rem 0; align-items: start; }
@media (max-width: 900px) { .pp-mag-top { grid-template-columns: 1fr !important; } }

/* ── Vedette (grande carte gauche) ── */
.pp-mag-vedette { display: block !important; text-decoration: none; color: inherit; background: var(--ppC,#faf8f5); border: 1px solid var(--ppS,#ece5d8); overflow: hidden; transition: box-shadow .2s; }
.pp-mag-vedette:hover { box-shadow: 0 6px 24px rgba(26,32,32,.1); }
.pp-mag-vedette__img { aspect-ratio: 16/9; overflow: hidden; background: var(--ppS,#ece5d8); }
.pp-mag-vedette__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.pp-mag-vedette:hover .pp-mag-vedette__img img { transform: scale(1.03); }
.pp-mag-vedette__body { padding: 1.4rem 1.6rem 1.6rem; }
.pp-mag-vedette__cat { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ppB,#5e6b6d); display: block; margin-bottom: .5rem; }
.pp-mag-vedette__titre { font-family: var(--ppFd,'Fraunces',Georgia,serif); font-size: clamp(1.3rem,2.5vw,1.85rem); font-weight: 400; margin: 0 0 .65rem; line-height: 1.2; color: var(--ppE,#1a2020); }
.pp-mag-vedette__expt { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .84rem; color: var(--ppG,#8a8a86); margin: 0 0 1rem; line-height: 1.55; }
.pp-mag-vedette__lire { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ppE,#1a2020); border-bottom: 1px solid var(--ppE,#1a2020); padding-bottom: .1em; }

/* ── Recents (liste latérale droite) ── */
.pp-mag-recents { display: flex; flex-direction: column; border: 1px solid var(--ppS,#ece5d8); background: var(--ppC,#faf8f5); }
.pp-mag-recents__titre { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .63rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ppG,#8a8a86); margin: 0; padding: .85rem 1rem .65rem; border-bottom: 1px solid var(--ppS,#ece5d8); }
.pp-mag-recent { display: grid !important; grid-template-columns: 88px 1fr !important; gap: .75rem; align-items: center; padding: .75rem 1rem; border-bottom: 1px solid var(--ppS,#ece5d8); text-decoration: none; color: inherit; transition: background .15s; }
.pp-mag-recent:last-child { border-bottom: none; }
.pp-mag-recent:hover { background: var(--ppS,#ece5d8); }
.pp-mag-recent__img { aspect-ratio: 3/2; overflow: hidden; background: var(--ppS,#ece5d8); }
.pp-mag-recent__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pp-mag-recent__body { min-width: 0; }
.pp-mag-recent__cat { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .6rem; letter-spacing: .15em; text-transform: uppercase; color: var(--ppB,#5e6b6d); display: block; margin-bottom: .2rem; }
.pp-mag-recent__titre { font-family: var(--ppFd,'Fraunces',Georgia,serif); font-size: .85rem; font-weight: 400; margin: 0; line-height: 1.25; color: var(--ppE,#1a2020); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

/* ── Sections catégories ── */
.pp-mag-section { padding: 2rem 0; border-top: 1px solid var(--ppS,#ece5d8); }
.pp-mag-sh { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 1.2rem; gap: 1rem; flex-wrap: wrap; }
.pp-mag-sh__left { display: flex; align-items: baseline; gap: .6rem; }
.pp-mag-sh__titre { font-family: var(--ppFd,'Fraunces',Georgia,serif); font-size: clamp(1.05rem,2vw,1.35rem); font-weight: 400; margin: 0; color: var(--ppE,#1a2020); }
.pp-mag-sh__count { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .68rem; letter-spacing: .06em; color: var(--ppG,#8a8a86); opacity: .7; }
.pp-mag-sh__voir { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ppB,#5e6b6d); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: .1em; white-space: nowrap; opacity: .75; transition: opacity .2s; }
.pp-mag-sh__voir:hover { opacity: 1; }

/* ── Grilles articles ── */
.pp-mag-grid { display: grid !important; gap: 1rem; }
.pp-mag-grid--3 { grid-template-columns: repeat(3,1fr) !important; }
.pp-mag-grid--6 { grid-template-columns: repeat(6,1fr) !important; }
.pp-mag-grid--2 { grid-template-columns: repeat(2,1fr) !important; }
.pp-mag-grid--1 { grid-template-columns: 1fr !important; max-width: 400px; }
@media (max-width: 1100px) { .pp-mag-grid--6 { grid-template-columns: repeat(3,1fr) !important; } }
@media (max-width: 900px)  { .pp-mag-grid--3, .pp-mag-grid--6 { grid-template-columns: repeat(2,1fr) !important; } }
@media (max-width: 500px)  { .pp-mag-grid--3, .pp-mag-grid--6, .pp-mag-grid--2 { grid-template-columns: 1fr !important; } }

/* ── Carte article ── */
.pp-mag-card { display: block !important; text-decoration: none; color: inherit; overflow: hidden; transition: opacity .18s; }
.pp-mag-card:hover { opacity: .8; }
.pp-mag-card__img { aspect-ratio: 3/2; overflow: hidden; background: var(--ppS,#ece5d8); }
.pp-mag-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.pp-mag-card:hover .pp-mag-card__img img { transform: scale(1.04); }
.pp-mag-card__body { padding: .6rem 0 .3rem; }
.pp-mag-card__titre { font-family: var(--ppFd,'Fraunces',Georgia,serif); font-size: .92rem; font-weight: 400; margin: 0 0 .25rem; color: var(--ppE,#1a2020); line-height: 1.25; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.pp-mag-card__date { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .62rem; color: var(--ppG,#8a8a86); }
.pp-mag-grid--6 .pp-mag-card__titre { font-size: .82rem; }
.pp-mag-grid--6 .pp-mag-card__img { aspect-ratio: 4/3; }

/* ── Pagination ── */
.pp-mag-pagination { display: flex; gap: .5rem; justify-content: center; margin-top: 2rem; flex-wrap: wrap; }
.pp-mag-pagination .page-numbers { font-family: var(--ppFt,'General Sans',sans-serif); font-size: .73rem; letter-spacing: .07em; padding: .45rem .85rem; border: 1px solid var(--ppS,#ece5d8); text-decoration: none; color: var(--ppG,#8a8a86); transition: all .15s; }
.pp-mag-pagination .page-numbers.current, .pp-mag-pagination .page-numbers:hover { border-color: var(--ppE,#1a2020); color: var(--ppE,#1a2020); }

/* ── Maillage destination (injecté via the_content filter sur articles) ── */
.pp-maillage-destination{border-top:1px solid var(--ppS,#ece5d8);margin-top:2.5rem;padding-top:1.5rem}
.pp-maillage-destination__intro{font-family:var(--ppFt,'General Sans',sans-serif);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ppG,#8a8a86);margin:0 0 1rem}
.pp-maillage-destination__intro a{color:var(--ppB,#5e6b6d);text-decoration:none;border-bottom:1px solid currentColor}
.pp-maillage-destination{display:grid;grid-template-columns:auto repeat(3,1fr);gap:0 2rem;align-items:start}
.pp-maillage-destination__intro{grid-column:1;padding-right:1rem;border-right:1px solid var(--ppS,#ece5d8)}
.pp-maillage-destination__groupe{padding-left:0}
.pp-maillage-destination__label{font-family:var(--ppFt,'General Sans',sans-serif);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ppG,#8a8a86);display:block;margin-bottom:.5rem}
.pp-maillage-destination ul{list-style:none;margin:0;padding:0}
.pp-maillage-destination li{margin-bottom:.3rem}
.pp-maillage-destination li a{font-family:var(--ppFt,'General Sans',sans-serif);font-size:.82rem;color:var(--ppE,#1a2020);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s}
.pp-maillage-destination li a:hover{border-color:var(--ppB,#5e6b6d)}
@media(max-width:720px){.pp-maillage-destination{grid-template-columns:1fr;gap:1rem}.pp-maillage-destination__intro{border-right:none;padding-right:0;border-bottom:1px solid var(--ppS,#ece5d8);padding-bottom:.75rem}}

/* ─── ACTUALITÉS DU LITTORAL ──────────────────────────────────────────────── */

/* Badges statut */
.pp-badge{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--ppFt,'General Sans',sans-serif);font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .55rem;border-radius:3px;white-space:nowrap}
.pp-badge--live{background:#C0392B;color:#fff;animation:pp-pulse 2s infinite}
.pp-badge--updated{background:#1a2020;color:#fff}
.pp-badge--confirmed{background:rgba(26,32,32,.1);color:#1a2020}
.pp-badge--resolved{background:rgba(94,107,109,.15);color:#5e6b6d}
.pp-badge--correction{background:#8B5E1A;color:#fff}
@keyframes pp-pulse{0%,100%{opacity:1}50%{opacity:.7}}

/* Header page Actualités */
.pp-actualites-header{background:var(--ppE,#1a2020);color:var(--ppC,#faf8f5);padding:3rem 1.5rem 2.5rem;text-align:center}
.pp-actualites-header__eyebrow{font-family:var(--ppFt,'General Sans',sans-serif);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;opacity:.5;margin-bottom:.75rem}
.pp-actualites-header__title{font-family:var(--ppFd,'Fraunces',serif);font-size:clamp(2rem,5vw,3rem);font-weight:300;line-height:1.1;margin-bottom:.75rem}
.pp-actualites-header__desc{font-family:var(--ppFt,'General Sans',sans-serif);font-size:.95rem;opacity:.7;line-height:1.6;margin-bottom:1rem}
.pp-actualites-header__update{font-family:var(--ppFt,'General Sans',sans-serif);font-size:.72rem;opacity:.45;letter-spacing:.04em}

/* Filtres */
.pp-actualites-filters{border-bottom:1px solid var(--ppS,#ece5d8);background:var(--ppC,#faf8f5);position:sticky;top:0;z-index:10}
.pp-actualites-filters__inner{display:flex;gap:.25rem;overflow-x:auto;padding:.75rem 1.5rem;scrollbar-width:none;-ms-overflow-style:none}
.pp-actualites-filters__inner::-webkit-scrollbar{display:none}
.pp-actu-filter{font-family:var(--ppFt,'General Sans',sans-serif);font-size:.78rem;font-weight:500;white-space:nowrap;padding:.35rem .85rem;border-radius:99px;border:1px solid var(--ppS,#ece5d8);color:var(--ppB,#5e6b6d);text-decoration:none;transition:all .15s;display:flex;align-items:center;gap:.3rem}
.pp-actu-filter:hover{border-color:var(--ppE,#1a2020);color:var(--ppE,#1a2020)}
.pp-actu-filter--active{background:var(--ppE,#1a2020);color:var(--ppC,#faf8f5);border-color:var(--ppE,#1a2020)}
.pp-actu-filter__count{font-size:.62rem;opacity:.6}

/* Article lead */
.pp-actualites-lead{padding:2rem 1.5rem}
.pp-actualites-lead .pp-actu-card--lead{display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;max-width:1100px;margin:0 auto}
.pp-actualites-lead .pp-actu-card--lead .pp-actu-card__img-wrap{display:block;border-radius:4px;overflow:hidden;aspect-ratio:16/9}
.pp-actualites-lead .pp-actu-card--lead .pp-actu-card__img-wrap img{width:100%;height:100%;object-fit:cover}
.pp-actualites-lead .pp-actu-card--lead .pp-actu-card__title{font-family:var(--ppFd,'Fraunces',serif);font-size:clamp(1.4rem,3vw,2rem);font-weight:300;line-height:1.25;margin-top:.75rem}
.pp-actualites-lead .pp-actu-card--lead .pp-actu-card__excerpt{font-size:.92rem;color:var(--ppB,#5e6b6d);line-height:1.65;margin-top:.5rem}

/* Alertes en cours */
.pp-actualites-alerts{background:#FBF0EE;border-top:3px solid #C0392B;padding:1.5rem}
.pp-actualites-alerts__inner{max-width:1100px;margin:0 auto}
.pp-actualites-alerts__heading{display:flex;align-items:center;gap:.75rem;font-family:var(--ppFt,'General Sans',sans-serif);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#C0392B;margin-bottom:1rem}

/* Grille articles */
.pp-actualites-main{padding:2rem 1.5rem 3rem}
.pp-actualites-main__inner{max-width:1100px;margin:0 auto}
.pp-actualites-main__heading{font-family:var(--ppFt,'General Sans',sans-serif);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ppG,#8a8a86);margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--ppS,#ece5d8)}
.pp-actualites-grid{display:grid;gap:1.5rem}
.pp-actualites-grid--3{grid-template-columns:repeat(3,1fr)}
.pp-actualites-grid--alerts{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}

/* Card article */
.pp-actu-card{display:flex;flex-direction:column;background:var(--ppC,#faf8f5);border:1px solid var(--ppS,#ece5d8);border-radius:4px;overflow:hidden;transition:box-shadow .15s}
.pp-actu-card:hover{box-shadow:0 4px 16px rgba(26,32,32,.08)}
.pp-actu-card__img-wrap{display:block;aspect-ratio:16/9;overflow:hidden}
.pp-actu-card__img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.pp-actu-card:hover .pp-actu-card__img-wrap img{transform:scale(1.02)}
.pp-actu-card__body{padding:1rem 1.1rem 1.25rem;flex:1;display:flex;flex-direction:column}
.pp-actu-card__meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}
.pp-actu-card__subcat{font-family:var(--ppFt,'General Sans',sans-serif);font-size:.68rem;color:var(--ppB,#5e6b6d);letter-spacing:.05em}
.pp-actu-card__subcat::before{content:'·';margin-right:.4rem;opacity:.4}
.pp-actu-card__time{font-family:var(--ppFt,'General Sans',sans-serif);font-size:.68rem;color:var(--ppG,#8a8a86);margin-left:auto}
.pp-actu-card__title{font-family:var(--ppFd,'Fraunces',serif);font-size:1.05rem;font-weight:400;line-height:1.35;margin-bottom:.4rem}
.pp-actu-card__title a{color:inherit;text-decoration:none}
.pp-actu-card__title a:hover{text-decoration:underline;text-underline-offset:3px}
.pp-actu-card__excerpt{font-size:.82rem;color:var(--ppB,#5e6b6d);line-height:1.6;margin-top:.3rem}

/* Card compact (alertes) */
.pp-actu-card--compact .pp-actu-card__title{font-size:.92rem}
.pp-actu-card--compact{border-left:3px solid #C0392B}

/* Empty state */
.pp-actualites-empty{padding:4rem 1.5rem;text-align:center;color:var(--ppG,#8a8a86);font-family:var(--ppFt,'General Sans',sans-serif)}

/* Pagination */
.pp-actualites-pagination{margin-top:2.5rem;display:flex;justify-content:center}

/* Styles article Actualités single */
.pp-actualite__timestamp{font-family:var(--ppFt,'General Sans',sans-serif);font-size:.78rem;color:var(--ppB,#5e6b6d);background:rgba(192,57,43,.07);border-left:3px solid #C0392B;padding:.5rem .85rem;border-radius:0 3px 3px 0;margin-bottom:2rem}
.pp-actualite__sources{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--ppS,#ece5d8)}
.pp-actualite__sources h3{font-family:var(--ppFt,'General Sans',sans-serif);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ppG,#8a8a86);margin-bottom:.75rem}
.pp-actualite__sources ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}
.pp-actualite__sources li a{font-size:.82rem;color:var(--ppB,#5e6b6d);text-decoration:underline;text-underline-offset:2px}

/* Responsive */
@media(max-width:860px){
  .pp-actualites-lead .pp-actu-card--lead{grid-template-columns:1fr}
  .pp-actualites-grid--3{grid-template-columns:1fr 1fr}
}
@media(max-width:540px){
  .pp-actualites-grid--3{grid-template-columns:1fr}
  .pp-actualites-header{padding:2rem 1rem 1.75rem}
}

/* ── RECHERCHE HEADER ──────────────────────────────────────────────────────── */

.pp-search-trigger {
  background: none;
  border: none;
  cursor: pointer;
  color: inherit;
  padding: 6px 8px;
  display: flex;
  align-items: center;
  opacity: .75;
  transition: opacity .15s;
  line-height: 1;
}
.pp-search-trigger:hover { opacity: 1; }

#pp-search-overlay {
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: rgba(10,16,16,.72);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: clamp(60px, 8vh, 120px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}
#pp-search-overlay.pp-search-overlay--open {
  opacity: 1;
  pointer-events: all;
}

.pp-search-modal {
  background: var(--ppC, #faf8f5);
  border-radius: 12px;
  width: min(680px, calc(100vw - 32px));
  max-height: calc(100vh - 140px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,.22);
}

.pp-search-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(26,32,32,.1);
  flex-shrink: 0;
}
.pp-search-icon-input { color: #8a8a86; flex-shrink: 0; }

#pp-search-input {
  flex: 1;
  border: none;
  background: transparent;
  font-family: var(--ppFt, 'General Sans', sans-serif);
  font-size: 16px;
  color: var(--ppE, #1a2020);
  outline: none;
  min-width: 0;
}
#pp-search-input::placeholder { color: #8a8a86; }
#pp-search-input::-webkit-search-cancel-button { display: none; }

.pp-search-close {
  background: none;
  border: none;
  cursor: pointer;
  color: #8a8a86;
  padding: 4px;
  display: flex;
  align-items: center;
  border-radius: 6px;
  transition: background .12s, color .12s;
  flex-shrink: 0;
}
.pp-search-close:hover { background: rgba(26,32,32,.08); color: var(--ppE, #1a2020); }

#pp-search-results {
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 8px 0 4px;
}

.pp-search-hint {
  padding: 20px 24px;
  color: #8a8a86;
  font-size: 14px;
  text-align: center;
}
.pp-search-empty { font-style: italic; }

.pp-search-group { padding: 8px 0; }
.pp-search-group + .pp-search-group { border-top: 1px solid rgba(26,32,32,.06); }

.pp-search-group-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #8a8a86;
  padding: 4px 20px 6px;
  margin: 0;
}

.pp-search-group-items { list-style: none; margin: 0; padding: 0; }

.pp-search-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 20px;
  cursor: pointer;
  transition: background .1s;
  outline: none;
}
.pp-search-item:hover,
.pp-search-item--active { background: rgba(26,32,32,.05); }

.pp-search-item-thumb {
  width: 40px;
  height: 40px;
  border-radius: 6px;
  object-fit: cover;
  flex-shrink: 0;
  background: rgba(26,32,32,.07);
}
.pp-search-item-thumb--empty { display: block; }

.pp-search-item-body { flex: 1; min-width: 0; }

.pp-search-item-title {
  display: block;
  font-size: 14px;
  color: var(--ppE, #1a2020);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
}
.pp-search-item-title mark {
  background: none;
  color: var(--ppE, #1a2020);
  font-weight: 600;
}

.pp-search-item-meta {
  display: block;
  font-size: 12px;
  color: #8a8a86;
  margin-top: 1px;
}

.pp-search-footer {
  padding: 10px 20px 14px;
  border-top: 1px solid rgba(26,32,32,.08);
  text-align: center;
  flex-shrink: 0;
}
.pp-search-see-all {
  font-size: 13px;
  color: var(--ppE, #1a2020);
  font-weight: 500;
  text-decoration: none;
  opacity: .7;
  transition: opacity .12s;
}
.pp-search-see-all:hover { opacity: 1; }

@media (prefers-color-scheme: dark) {
  .pp-search-modal { background: #1f2828; }
  #pp-search-input { color: #ece5d8; }
  #pp-search-input::placeholder { color: #5e6b6d; }
  .pp-search-group-label { color: #5e6b6d; }
  .pp-search-item-title { color: #ece5d8; }
  .pp-search-item-title mark { color: #ece5d8; }
  .pp-search-item:hover, .pp-search-item--active { background: rgba(236,229,216,.06); }
  .pp-search-see-all { color: #ece5d8; }
}
