/*
 Theme Name: PMR en Sortie Child
 Template: twentytwentyfive
 Description: Thème enfant pour pmr-en-sortie.be
 Version: 1.0
*/

/* =====================================================
   VARIABLES CSS — Palette PMR
   (miroir de theme.json pour usage dans le CSS)
   ===================================================== */
:root {
	--pmr-primary:                   #154212;
	--pmr-primary-container:         #2d5a27;
	--pmr-on-primary:                #ffffff;
	--pmr-secondary:                 #496800;
	--pmr-secondary-container:       #c8f17a;
	--pmr-on-secondary-container:    #4e6e00;
	--pmr-surface:                   #fbfbe2;
	--pmr-surface-lowest:            #ffffff;
	--pmr-surface-low:               #f5f5dc;
	--pmr-surface-container:         #efefd7;
	--pmr-surface-high:              #eaead1;
	--pmr-surface-highest:           #e4e4cc;
	--pmr-on-surface:                #1b1d0e;
	--pmr-on-surface-variant:        #42493e;
	--pmr-outline:                   #72796e;
	--pmr-outline-variant:           #c2c9bb;
	--pmr-error:                     #ba1a1a;

	--pmr-font-headline: "Lexend", sans-serif;
	--pmr-font-body:     "Public Sans", sans-serif;

	--pmr-radius-sm:     0.5rem;
	--pmr-radius-md:     0.75rem;
	--pmr-radius-lg:     1.25rem;
	--pmr-radius-card:   1.5rem;
	--pmr-radius-full:   9999px;
	--pmr-shadow-ambient: 0 20px 40px rgba(27, 29, 14, 0.06);

	/* Pins saisonniers (été par défaut) */
	--pmr-pin-1: #154212;
	--pmr-pin-2: #496800;
	--pmr-pin-3: #d97706;
	--pmr-pin-4: #dc2626;

	/* Fond header glass (saison-dépendant) */
	--pmr-header-bg:     rgba(251, 251, 226, 0.88);
	--pmr-mobile-nav-bg: rgba(251, 251, 226, 0.97);
}

/* =====================================================
   BASE
   ===================================================== */
html, body { overflow-x: hidden; }

body {
	background-color: var(--pmr-surface);
	color: var(--pmr-on-surface);
	font-family: var(--pmr-font-body);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--pmr-font-headline);
	color: var(--pmr-primary);
	line-height: 1.15;
	letter-spacing: -0.02em;
}

/* =====================================================
   NAVIGATION — effet "glass"
   ===================================================== */
.wp-site-header,
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--pmr-header-bg);
	backdrop-filter: blur(24px);
	-webkit-backdrop-filter: blur(24px);
	box-shadow: none;
	border-bottom: 1px solid rgba(194, 201, 187, 0.35);
	transition: box-shadow 0.3s ease;
}

header.wp-block-template-part.scrolled {
	box-shadow: 0 2px 20px rgba(27, 29, 14, 0.08);
}

/* Titre du site */
.wp-block-site-title a {
	font-family: var(--pmr-font-headline);
	font-weight: 800;
	color: var(--pmr-primary) !important;
	text-decoration: none !important;
	letter-spacing: -0.03em;
}

/* Liens de navigation */
.wp-block-navigation a {
	font-family: var(--pmr-font-headline);
	font-weight: 500;
	color: var(--pmr-on-surface-variant);
	text-decoration: none !important;
	transition: color 0.2s ease;
}

.wp-block-navigation a:hover,
.wp-block-navigation .current-menu-item > a {
	color: var(--pmr-primary);
}

/* =====================================================
   BOUTONS
   ===================================================== */

/* Bouton primaire — gradient */
.wp-block-button__link,
.wp-element-button {
	background: linear-gradient(135deg, var(--pmr-primary), var(--pmr-primary-container));
	color: var(--pmr-on-primary) !important;
	border-radius: var(--pmr-radius-full) !important;
	font-family: var(--pmr-font-headline);
	font-weight: 700;
	border: none;
	box-shadow: var(--pmr-shadow-ambient);
	transition: opacity 0.2s ease, transform 0.1s ease;
	min-height: 3.5rem;
	display: inline-flex;
	align-items: center;
}

.wp-block-button__link:hover,
.wp-element-button:hover {
	opacity: 0.9;
}

.wp-block-button__link:active,
.wp-element-button:active {
	transform: scale(0.97);
}

/* Bouton secondaire (variante "outline" ou classe manuelle) */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: var(--pmr-surface-highest) !important;
	color: var(--pmr-primary) !important;
	border: none !important;
	box-shadow: none;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--pmr-surface-high) !important;
	opacity: 1;
}

/* =====================================================
   CARTES
   ===================================================== */
.wp-block-group.pmr-card {
	background: var(--pmr-surface-lowest);
	border-radius: var(--pmr-radius-card);
	padding: 2.5rem;
	box-shadow: var(--pmr-shadow-ambient);
	border: none;
}

.wp-block-group.pmr-card-accent {
	background: var(--pmr-secondary-container);
	border-radius: var(--pmr-radius-card);
	padding: 2.5rem;
}

.wp-block-group.pmr-card-primary {
	background: linear-gradient(135deg, var(--pmr-primary), var(--pmr-primary-container));
	border-radius: var(--pmr-radius-card);
	padding: 2.5rem;
	color: var(--pmr-on-primary);
}

.wp-block-group.pmr-card-primary h1,
.wp-block-group.pmr-card-primary h2,
.wp-block-group.pmr-card-primary h3,
.wp-block-group.pmr-card-primary p {
	color: var(--pmr-on-primary);
}

/* =====================================================
   SECTIONS
   ===================================================== */

/* Séparation par fond — pas de bordures (règle "No-Line") */
.pmr-section-surface     { background-color: var(--pmr-surface); }
.pmr-section-surface-low { background-color: var(--pmr-surface-low); }
.pmr-section-surface-high{ background-color: var(--pmr-surface-high); }

/* =====================================================
   TYPOGRAPHIE ÉDITORIALE
   ===================================================== */
.pmr-label {
	font-family: var(--pmr-font-body);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--pmr-outline);
}

/* Élément décoratif vertical (motto) */
.pmr-motto-vertical {
	writing-mode: vertical-rl;
	text-orientation: mixed;
	font-family: var(--pmr-font-headline);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.5em;
	color: var(--pmr-outline);
	opacity: 0.3;
	user-select: none;
}

/* =====================================================
   PAGE CARTE
   ===================================================== */

.pmr-carte-page {
    display: grid;
    grid-template-columns: 280px 1fr;
    height: calc(100vh - 80px);
    overflow: hidden;
}

@media (max-width: 768px) {
    .pmr-carte-page {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr;
        height: auto;
    }
}

/* Panneau filtres */
.pmr-filtres {
    background: var(--pmr-surface-low);
    overflow-y: auto;
    border-right: 1px solid var(--pmr-outline-variant);
}

.pmr-filtres__inner {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.pmr-filtres__titre {
    font-size: 1.1rem;
    margin: 0;
}

.pmr-filtres__group {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.pmr-filtres__label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--pmr-outline);
}

.pmr-chips-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.pmr-chip-filtre {
    padding: 0.3rem 0.85rem;
    border-radius: 9999px;
    border: none;
    background: var(--pmr-surface-highest);
    color: var(--pmr-on-surface-variant);
    font-size: 0.82rem;
    font-weight: 600;
    font-family: var(--pmr-font-body);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.pmr-chip-filtre:hover {
    background: var(--pmr-surface-container);
}

.pmr-chip-filtre.active {
    background: var(--pmr-primary);
    color: var(--pmr-on-primary);
}

.pmr-filtres__compteur {
    font-size: 0.85rem;
    color: var(--pmr-on-surface-variant);
    margin: 0;
    padding-top: 0.5rem;
    border-top: 1px solid var(--pmr-outline-variant);
}

.pmr-filtres__compteur #pmr-compteur {
    font-weight: 700;
    color: var(--pmr-primary);
}

/* Carte */
.pmr-carte-wrapper {
    position: relative;
    flex: 1;
}

.pmr-map {
    width: 100%;
    height: calc(100vh - 80px);
    min-height: 500px;
}

/* Popups Leaflet */
.pmr-popup {
    min-width: 180px;
    font-family: var(--pmr-font-body);
}

.pmr-popup-titre {
    display: block;
    font-family: var(--pmr-font-headline);
    font-size: 0.95rem;
    color: var(--pmr-primary);
    margin-bottom: 0.25rem;
}

.pmr-popup-adresse {
    font-size: 0.8rem;
    color: var(--pmr-on-surface-variant);
    margin: 0 0 0.5rem;
}

.pmr-popup-lien {
    display: inline-block;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--pmr-primary);
    text-decoration: none;
    margin-top: 0.25rem;
}

.pmr-popup-lien:hover { text-decoration: underline; }

.pmr-popup-badge {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.2rem 0.6rem;
    border-radius: 9999px;
    margin-bottom: 0.4rem;
}

.pmr-popup-badge--totale    { background: var(--pmr-secondary-container); color: var(--pmr-on-secondary-container); }
.pmr-popup-badge--partielle { background: #fff3cd; color: #856404; }
.pmr-popup-badge--limitee   { background: #ffdad6; color: #93000a; }

/* =====================================================
   FICHE LIEU
   ===================================================== */

/* Hero */
.pmr-fiche-hero {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    max-width: 1100px;
    margin: 3rem auto;
    padding: 0 1.5rem;
}

@media (min-width: 768px) {
    .pmr-fiche-hero {
        grid-template-columns: 1fr 1fr;
        align-items: start;
        gap: 3rem;
    }
}

.pmr-fiche-hero__image img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    border-radius: var(--pmr-radius-card);
}

.pmr-fiche-hero__content {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pmr-fiche-hero__content h1 {
    margin: 0;
}

/* Badge niveau accessibilité */
.pmr-badge {
    display: inline-block;
    padding: 0.35rem 1rem;
    border-radius: var(--pmr-radius-full);
    font-size: 0.8rem;
    font-weight: 700;
    font-family: var(--pmr-font-headline);
    width: fit-content;
}

.pmr-badge--totale    { background: var(--pmr-secondary-container); color: var(--pmr-on-secondary-container); }
.pmr-badge--partielle { background: #fff3cd; color: #856404; }
.pmr-badge--limitee   { background: #ffdad6; color: #93000a; }
.pmr-badge--event     { background: #e8f0fe; color: #1a56db; }

/* Adresse et contact */
.pmr-fiche-adresse {
    color: var(--pmr-on-surface-variant);
    margin: 0;
}

.pmr-fiche-contact {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.pmr-fiche-contact__item {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--pmr-primary);
    font-weight: 600;
    text-decoration: none;
}

.pmr-fiche-contact__item:hover {
    text-decoration: underline;
}

/* Chips taxonomies */
.pmr-fiche-taxes {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.pmr-chip {
    padding: 0.3rem 0.9rem;
    border-radius: 0.5rem;
    background: var(--pmr-surface-high);
    color: var(--pmr-on-surface-variant);
    font-size: 0.8rem;
    font-weight: 600;
}

.pmr-chip--province {
    background: var(--pmr-surface-container);
}

/* Sections */
.pmr-fiche-section {
    padding: 3rem 1.5rem;
}

.pmr-fiche-section--alt {
    background-color: var(--pmr-surface-low);
}

.pmr-fiche-section__inner {
    max-width: 1100px;
    margin: 0 auto;
}

.pmr-fiche-section__inner h2 {
    margin-bottom: 1.5rem;
}

/* Grille des critères */
.pmr-criteres-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

@media (min-width: 640px) {
    .pmr-criteres-grid { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1024px) {
    .pmr-criteres-grid { grid-template-columns: 1fr 1fr 1fr; }
}

.pmr-critere {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-radius: 0.75rem;
    background: var(--pmr-surface-lowest);
    box-shadow: var(--pmr-shadow-ambient);
}

.pmr-critere--non {
    opacity: 0.5;
}

.pmr-critere__icon {
    font-size: 1.5rem;
    flex-shrink: 0;
}

.pmr-critere__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.pmr-critere__label {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--pmr-on-surface);
}

.pmr-critere__note {
    font-size: 0.8rem;
    color: var(--pmr-on-surface-variant);
}

.pmr-critere__status {
    font-size: 1.1rem;
    font-weight: 700;
    flex-shrink: 0;
}

.pmr-critere--ok .pmr-critere__status       { color: var(--pmr-secondary); }
.pmr-critere--non .pmr-critere__status      { color: var(--pmr-error); }
.pmr-critere--inconnu                       { opacity: 0.6; }
.pmr-critere--inconnu .pmr-critere__status  { color: var(--pmr-outline); }

/* Galerie */
.pmr-galerie {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
}

.pmr-galerie__item img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 0.75rem;
    transition: transform 0.2s ease;
}

.pmr-galerie__item:hover img {
    transform: scale(1.03);
}

/* Mini-carte fiche */
.pmr-map-fiche {
    width: 100%;
    height: 380px;
    border-radius: var(--pmr-radius-card);
    overflow: hidden;
}

/* =====================================================
   FORMULAIRES
   ===================================================== */
input:not([type=submit]):not([type=checkbox]):not([type=radio]),
textarea,
select {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	background-color: var(--pmr-surface-highest);
	border: 2px solid transparent;
	border-radius: 0.5rem;
	padding: 0.75rem 1rem;
	font-family: var(--pmr-font-body);
	color: var(--pmr-on-surface);
	transition: border-color 0.2s ease;
}

input:not([type=submit]):focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: var(--pmr-secondary);
	box-shadow: 0 0 0 4px rgba(73, 104, 0, 0.12);
}

/* =====================================================
   FORMULAIRE CONTACT & SIGNALEMENT (CF7)
   ===================================================== */
.pmr-form-intro {
	color: var(--pmr-on-surface-variant);
	font-size: 1rem;
	line-height: 1.6;
	margin-bottom: 2rem;
}

.pmr-form-group {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin-bottom: 1.25rem;
}

.pmr-form-group label {
	font-family: var(--pmr-font-headline);
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--pmr-on-surface);
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.pmr-form-group label input,
.pmr-form-group label textarea,
.pmr-form-group label select {
	width: 100%;
}

.pmr-form-group--checkbox {
	flex-direction: row;
	align-items: flex-start;
	gap: 1rem;
	flex-wrap: wrap;
}

.pmr-form-label {
	font-family: var(--pmr-font-headline);
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--pmr-on-surface);
	min-width: 5rem;
	padding-top: 0.2rem;
}

.wpcf7-checkbox .wpcf7-list-item {
	margin-right: 1.25rem;
}

.wpcf7-checkbox .wpcf7-list-item-label {
	font-size: 0.9rem;
	color: var(--pmr-on-surface);
}

input[type=submit],
.wpcf7-submit {
	background: linear-gradient(135deg, var(--pmr-primary), var(--pmr-primary-container));
	color: #fff;
	border: none;
	border-radius: var(--pmr-radius-full);
	font-family: var(--pmr-font-headline);
	font-weight: 700;
	font-size: 1rem;
	padding: 0.875rem 2rem;
	cursor: pointer;
	box-shadow: var(--pmr-shadow-ambient);
	transition: opacity 0.2s ease, transform 0.1s ease;
	margin-top: 0.5rem;
}

input[type=submit]:hover,
.wpcf7-submit:hover { opacity: 0.9; }

input[type=submit]:active,
.wpcf7-submit:active { transform: scale(0.97); }

.wpcf7-response-output {
	border-radius: 0.5rem;
	padding: 0.75rem 1rem;
	margin-top: 1rem;
	font-size: 0.9rem;
}

/* =====================================================
   ESPACE MEMBRE (page-espace-membre.php)
   ===================================================== */
.pmr-membre-wrap {
	max-width: 800px;
	margin: 0 auto;
}
.pmr-membre-header {
	margin-bottom: var(--sp-lg);
}
.pmr-membre-header h1 {
	font-family: var(--pmr-font-headline);
	font-size: clamp(1.6rem, 4vw, 2.2rem);
	font-weight: 800;
	margin: var(--sp-sm) 0 var(--sp-xs);
	color: var(--pmr-on-surface);
}
.pmr-membre-intro {
	color: var(--pmr-on-surface-variant);
	line-height: 1.7;
	max-width: 580px;
}
.pmr-membre-status-card {
	background: var(--pmr-surface-low);
	border: 1px solid var(--pmr-outline-variant);
	border-radius: var(--pmr-radius-lg);
	padding: var(--sp-md);
	margin-bottom: var(--sp-lg);
	display: flex;
	flex-direction: column;
	gap: var(--sp-xs);
}
.pmr-membre-status-row {
	display: flex;
	gap: var(--sp-md);
	font-size: 0.95rem;
	color: var(--pmr-on-surface);
}
.pmr-membre-status-label {
	font-family: var(--pmr-font-headline);
	font-weight: 600;
	min-width: 60px;
	color: var(--pmr-on-surface-variant);
}
.pmr-membre-section {
	margin-bottom: var(--sp-lg);
}
.pmr-membre-section h2 {
	font-family: var(--pmr-font-headline);
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--pmr-on-surface);
	margin-bottom: var(--sp-sm);
}
.pmr-membre-placeholder {
	color: var(--pmr-on-surface-variant);
	font-style: italic;
	font-size: 0.95rem;
}
.pmr-membre-locked-notice {
	border-left: 3px solid var(--pmr-secondary-container);
	padding: var(--sp-sm) var(--sp-md);
	background: var(--pmr-surface-container);
	border-radius: 0 var(--pmr-radius-md) var(--pmr-radius-md) 0;
	color: var(--pmr-on-surface-variant);
	font-size: 0.95rem;
}
.pmr-membre-dashboard {
	margin-top: var(--sp-lg);
}

/* =====================================================
   PAGE GÉNÉRIQUE (page.php — contact, inscription, connexion, règlement…)
   ===================================================== */
.pmr-page-content {
	padding: var(--sp-2xl) var(--sp-md);
	min-height: 60vh;
	background: var(--pmr-surface);
}
.pmr-page-inner {
	max-width: 800px;
	margin: 0 auto;
}

/* =====================================================
   PAGE CONTACT
   ===================================================== */
.pmr-contact-wrap {
    max-width: 680px;
}

.pmr-contact-header {
    margin-bottom: var(--sp-lg);
    padding-bottom: var(--sp-md);
    border-bottom: 2px solid var(--pmr-surface-high);
}

.pmr-contact-title {
    font-family: var(--pmr-font-headline);
    font-size: 2rem;
    font-weight: 700;
    color: var(--pmr-primary);
    margin: 0 0 0.5rem;
}

.pmr-contact-subtitle {
    font-size: 1rem;
    color: var(--pmr-on-surface-variant);
    margin: 0;
}

@media (max-width: 600px) {
    .pmr-contact-title {
        font-size: 1.5rem;
    }
}

/* =====================================================
   SECTION SIGNALEMENT (fiche lieu)
   ===================================================== */
.pmr-fiche-signalement {
	border-top: 1px solid var(--pmr-surface-high);
}

.pmr-fiche-signalement .pmr-fiche-section__inner {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.pmr-signalement-text {
	margin: 0;
	color: var(--pmr-on-surface-variant);
	font-size: 0.9rem;
}

.pmr-btn-signaler {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: transparent;
	color: var(--pmr-primary);
	border: 2px solid var(--pmr-primary);
	border-radius: var(--pmr-radius-full);
	font-family: var(--pmr-font-headline);
	font-weight: 600;
	font-size: 0.875rem;
	padding: 0.5rem 1.25rem;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
	white-space: nowrap;
}

.pmr-btn-signaler:hover {
	background: var(--pmr-primary);
	color: #fff;
}

/* --- Logo site --- */
.wp-block-site-logo img {
	max-height: 90px;
	width: auto !important;
}

/* =====================================================
   DESIGN V1 — Variables supplémentaires
   ===================================================== */
:root {
	--pmr-shadow-card:  0 4px 24px rgba(27,29,14,0.07), 0 1px 4px rgba(27,29,14,0.04);
	--pmr-shadow-float: 0 12px 40px rgba(27,29,14,0.12);
	--sp-xs:  0.5rem;
	--sp-sm:  1rem;
	--sp-md:  1.5rem;
	--sp-lg:  2.5rem;
	--sp-xl:  4rem;
	--sp-2xl: 6rem;
}

/* =====================================================
   DESIGN V1 — Navigation : bouton S'inscrire (CTA)
   ===================================================== */
.wp-block-navigation li.pmr-cta .wp-block-navigation-item__content,
.wp-block-navigation .pmr-cta > a {
	background: linear-gradient(135deg, var(--pmr-primary), var(--pmr-primary-container)) !important;
	color: var(--pmr-on-primary) !important;
	border-radius: var(--pmr-radius-full) !important;
	padding: 0.5rem 1.25rem !important;
	font-weight: 700 !important;
	font-size: 0.875rem !important;
	box-shadow: 0 2px 12px rgba(21, 66, 18, 0.25);
	transition: opacity 0.2s ease, transform 0.15s ease !important;
	text-decoration: none !important;
}

.wp-block-navigation li.pmr-cta .wp-block-navigation-item__content:hover,
.wp-block-navigation .pmr-cta > a:hover {
	opacity: 0.9;
	transform: translateY(-1px);
}

/* =====================================================
   DESIGN V1 — Mobile burger button
   ===================================================== */
.pmr-burger {
	display: none;
	position: fixed;
	top: 16px;
	right: 1.5rem;
	z-index: 100001; /* au-dessus de la barre admin (99999) */
	flex-direction: column;
	gap: 5px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px;
	border-radius: 0.5rem;
}

.pmr-burger span {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--pmr-primary);
	border-radius: 2px;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.pmr-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.pmr-burger.open span:nth-child(2) { opacity: 0; }
.pmr-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* =====================================================
   DESIGN V1 — Mobile nav drawer
   ===================================================== */
.pmr-mobile-nav {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 99;
	background: var(--pmr-mobile-nav-bg);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	flex-direction: column;
	padding: 110px 1.5rem 2.5rem;
	gap: 0;
	overflow-y: auto;
}
/* Décalage barre admin */
.admin-bar .pmr-mobile-nav        { padding-top: 142px; }
@media screen and (max-width: 782px) {
	.admin-bar .pmr-mobile-nav    { padding-top: 156px; }
}

.pmr-mobile-nav.open {
	display: flex;
}

.pmr-mobile-nav a {
	font-family: var(--pmr-font-headline);
	font-weight: 600;
	font-size: 1.2rem;
	color: var(--pmr-on-surface);
	text-decoration: none;
	padding: 1rem 0;
	border-bottom: 1px solid var(--pmr-outline-variant);
}

.pmr-mobile-nav .pmr-mobile-cta {
	margin-top: 1rem;
	background: linear-gradient(135deg, var(--pmr-primary), var(--pmr-primary-container));
	color: #fff !important;
	text-align: center;
	border-radius: var(--pmr-radius-full);
	padding: 1rem 1.5rem;
	border-bottom: none;
}

/* ── Mobile nav ─────────────────────────────────────────────────────── */
@media (max-width: 900px) {
	.pmr-header-nav { display: none !important; }
	.pmr-burger { display: flex !important; }
}

/* Décalage admin-bar (barre WordPress visible uniquement quand connecté) */
.admin-bar .pmr-burger { top: calc(16px + 32px); }
@media screen and (max-width: 782px) {
	.admin-bar .pmr-burger { top: calc(16px + 46px); }
}

/* ── Header custom PHP (remplace le block template FSE) ─────────────── */
.pmr-custom-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--pmr-header-bg);
	backdrop-filter: blur(24px);
	-webkit-backdrop-filter: blur(24px);
	border-bottom: 1px solid rgba(194, 201, 187, 0.35);
	transition: box-shadow 0.3s ease;
}
.pmr-custom-header.scrolled {
	box-shadow: 0 2px 20px rgba(27, 29, 14, 0.08);
}
.pmr-header-inner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0.75rem 2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 3rem;
}
.pmr-header-logo {
	height: 90px;
	width: auto;
}
.pmr-header-logo-link {
	display: inline-flex;
	flex-shrink: 0;
}
.pmr-header-nav {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	flex-shrink: 0;
}
.pmr-header-nav a {
	font-family: var(--pmr-font-headline);
	font-weight: 500;
	color: var(--pmr-on-surface-variant);
	text-decoration: none;
	padding: 0.4rem 0.75rem;
	border-radius: var(--pmr-radius-sm);
	transition: color 0.2s, background 0.2s;
	font-size: 0.9375rem;
}
.pmr-header-nav a:hover {
	color: var(--pmr-primary);
	background: rgba(21, 66, 18, 0.06);
}
.pmr-header-cta {
	background: linear-gradient(135deg, var(--pmr-primary), var(--pmr-primary-container)) !important;
	color: var(--pmr-on-primary) !important;
	border-radius: var(--pmr-radius-full) !important;
	padding: 0.5rem 1.25rem !important;
	font-weight: 700 !important;
	font-size: 0.875rem !important;
	box-shadow: 0 2px 12px rgba(21, 66, 18, 0.25);
}
.pmr-header-cta:hover {
	opacity: 0.9 !important;
	transform: translateY(-1px);
}
.pmr-header-avatar {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 36px !important;
	height: 36px !important;
	border-radius: 50% !important;
	overflow: hidden;
	background: var(--pmr-primary) !important;
	color: var(--pmr-on-primary) !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	text-decoration: none;
	flex-shrink: 0;
	padding: 0 !important;
	transition: opacity 0.2s, transform 0.2s !important;
	box-shadow: 0 2px 8px rgba(21, 66, 18, 0.22);
}
.pmr-header-avatar:hover {
	opacity: 0.85 !important;
	transform: scale(1.08) !important;
	background: var(--pmr-primary) !important;
}
.pmr-header-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* =====================================================
   DESIGN V1 — Hero page d'accueil
   ===================================================== */
.pmr-hero {
	padding: var(--sp-2xl) var(--sp-md) var(--sp-xl);
}

.pmr-hero-inner {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sp-xl);
	align-items: center;
}

.pmr-hero-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--pmr-font-body);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--pmr-outline);
	margin-bottom: 1.25rem;
}


.pmr-hero h1 {
	font-size: clamp(2.25rem, 5vw, 3.75rem);
	font-weight: 800;
	margin-bottom: 1.25rem;
}

.pmr-hero h1 em {
	font-style: normal;
	color: var(--pmr-secondary);
}

.pmr-hero-sub {
	font-size: 1.1rem;
	color: var(--pmr-on-surface-variant);
	line-height: 1.75;
	margin-bottom: 2.25rem;
	max-width: 440px;
}

.pmr-hero-ctas {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
}

.pmr-hero-proofs {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-top: 1.5rem;
}
.pmr-hero-proof {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	color: var(--pmr-on-surface-variant);
	font-weight: 500;
}

.pmr-btn-primary {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: linear-gradient(135deg, var(--pmr-primary), var(--pmr-primary-container));
	color: var(--pmr-on-primary);
	border: none;
	border-radius: var(--pmr-radius-full);
	font-family: var(--pmr-font-headline);
	font-weight: 700;
	font-size: 1rem;
	padding: 0.875rem 2rem;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 4px 16px rgba(21, 66, 18, 0.28);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	white-space: nowrap;
}

.pmr-btn-primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(21, 66, 18, 0.32);
	color: var(--pmr-on-primary);
}

.pmr-btn-ghost {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--pmr-surface-highest);
	color: var(--pmr-primary);
	border: none;
	border-radius: var(--pmr-radius-full);
	font-family: var(--pmr-font-headline);
	font-weight: 600;
	font-size: 1rem;
	padding: 0.875rem 2rem;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
	white-space: nowrap;
}

.pmr-btn-ghost:hover {
	background: var(--pmr-surface-high);
	transform: translateY(-1px);
	color: var(--pmr-primary);
}

/* Visuel carte décoratif */
.pmr-hero-visual { position: relative; height: 440px; }

.pmr-map-card {
	width: 100%;
	height: 100%;
	background: linear-gradient(145deg, var(--pmr-surface-container) 0%, var(--pmr-surface-low) 100%);
	border-radius: var(--pmr-radius-card);
	box-shadow: var(--pmr-shadow-float);
	position: relative;
	overflow: hidden;
}

.pmr-map-card::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(21,66,18,0.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(21,66,18,0.06) 1px, transparent 1px);
	background-size: 40px 40px;
}

.pmr-map-road { position: absolute; background: rgba(255,255,255,0.7); }
.pmr-map-road-h { height: 3px; left: 0; right: 0; }
.pmr-map-road-v { width: 3px; top: 0; bottom: 0; }

.pmr-map-pin {
	position: absolute;
	transform: translate(-50%, -100%);
	display: flex;
	flex-direction: column;
	align-items: center;
	animation: pmrPinPop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

.pmr-map-pin-dot {
	width: 28px;
	height: 28px;
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.pmr-map-pin-dot::after {
	content: '';
	width: 10px;
	height: 10px;
	background: white;
	border-radius: 50%;
}

.pmr-map-pin--green .pmr-map-pin-dot { background: var(--pmr-primary); }
.pmr-map-pin--lime  .pmr-map-pin-dot { background: var(--pmr-secondary); }
.pmr-map-pin--amber .pmr-map-pin-dot { background: #d97706; }
.pmr-map-pin--red   .pmr-map-pin-dot { background: #dc2626; }

.pmr-map-pin-shadow {
	width: 12px;
	height: 4px;
	background: rgba(0,0,0,0.15);
	border-radius: 50%;
	margin-top: 2px;
	filter: blur(2px);
}

@keyframes pmrPinPop {
	from { transform: translate(-50%, -80%) scale(0.5); opacity: 0; }
	to   { transform: translate(-50%, -100%) scale(1); opacity: 1; }
}

.pmr-map-popup {
	position: absolute;
	bottom: 1.5rem;
	left: 1.5rem;
	right: 1.5rem;
	background: white;
	border-radius: 1rem;
	padding: 1rem 1.25rem;
	box-shadow: var(--pmr-shadow-float);
	display: flex;
	align-items: center;
	gap: 0.75rem;
	animation: pmrSlideUp 0.5s 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@keyframes pmrSlideUp {
	from { transform: translateY(20px); opacity: 0; }
	to   { transform: translateY(0); opacity: 1; }
}

.pmr-map-popup-icon {
	width: 42px;
	height: 42px;
	background: var(--pmr-secondary-container);
	border-radius: 0.75rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.3rem;
	flex-shrink: 0;
}

.pmr-map-popup-content { flex: 1; min-width: 0; }

.pmr-map-popup-name {
	font-family: var(--pmr-font-headline);
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--pmr-on-surface);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.pmr-map-popup-meta { font-size: 0.75rem; color: var(--pmr-outline); }

.pmr-map-badge {
	background: var(--pmr-secondary-container);
	color: var(--pmr-on-secondary-container);
	font-size: 0.7rem;
	font-weight: 700;
	padding: 0.2rem 0.6rem;
	border-radius: var(--pmr-radius-full);
	flex-shrink: 0;
	font-family: var(--pmr-font-headline);
}

@media (max-width: 900px) {
	.pmr-hero { padding-top: var(--sp-md); }
	.pmr-hero-inner { grid-template-columns: 1fr; padding-top: 0; gap: var(--sp-md); }
	.pmr-hero h1 { font-size: 2.25rem; }
	.pmr-hero-sub { max-width: 100%; }
	.pmr-hero-visual { height: 300px; order: -1; }
}

@media (max-width: 600px) {
	.pmr-hero-ctas { flex-direction: column; align-items: center; }
	.pmr-btn-primary, .pmr-btn-ghost, .pmr-btn-outline {
		max-width: 100%;
		justify-content: center;
		padding: 0.75rem 1.5rem;
		font-size: 0.9rem;
		white-space: normal;
	}
}

/* =====================================================
   DESIGN V1 — Fiche lieu : fil d'Ariane
   ===================================================== */
.pmr-breadcrumb {
	padding: 0.875rem 1.5rem;
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.82rem;
	color: var(--pmr-outline);
}

.pmr-breadcrumb a { color: var(--pmr-outline); text-decoration: none; transition: color 0.2s ease; }
.pmr-breadcrumb a:hover { color: var(--pmr-primary); }
.pmr-breadcrumb-sep { color: var(--pmr-outline-variant); }
.pmr-breadcrumb-current { color: var(--pmr-on-surface-variant); font-weight: 500; }

/* =====================================================
   DESIGN V1 — Fiche lieu : contact pills
   ===================================================== */
.pmr-fiche-contact__item {
	padding: 0.35rem 0.85rem;
	background: var(--pmr-surface-container);
	border-radius: var(--pmr-radius-full);
	transition: background 0.2s ease;
	font-size: 0.9rem;
}

.pmr-fiche-contact__item:hover {
	background: var(--pmr-surface-high);
	text-decoration: none;
}

/* =====================================================
   DESIGN V1 — Fiche lieu : boutons d'action
   ===================================================== */
.pmr-fiche-actions {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	margin-top: 0.5rem;
}

.pmr-btn-outline {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: transparent;
	color: var(--pmr-primary);
	border: 2px solid var(--pmr-primary);
	border-radius: var(--pmr-radius-full);
	font-family: var(--pmr-font-headline);
	font-weight: 600;
	font-size: 0.875rem;
	padding: 0.65rem 1.25rem;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
	white-space: nowrap;
}

.pmr-btn-outline:hover { background: var(--pmr-primary); color: white; }

/* =====================================================
   DESIGN V1 — Fiche lieu : barre de score
   ===================================================== */
.pmr-score-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.pmr-score-header h2 { margin-bottom: 0; }

.pmr-score-bar-wrap {
	flex: 1;
	min-width: 200px;
	max-width: 400px;
}

.pmr-score-bar-label {
	display: flex;
	justify-content: space-between;
	font-size: 0.8rem;
	color: var(--pmr-outline);
	margin-bottom: 0.4rem;
	font-weight: 600;
}

.pmr-score-bar {
	height: 8px;
	background: var(--pmr-surface-highest);
	border-radius: 99px;
	overflow: hidden;
}

.pmr-score-bar-fill {
	height: 100%;
	background: linear-gradient(90deg, var(--pmr-secondary), var(--pmr-primary));
	border-radius: 99px;
	width: 0%;
	transition: width 1s ease;
}

/* =====================================================
   DESIGN V1 — Fiche lieu : critères (mise à jour)
   ===================================================== */
.pmr-critere {
	box-shadow: var(--pmr-shadow-card);
	transition: transform 0.2s ease;
}

.pmr-critere:hover { transform: translateY(-2px); }

.pmr-critere__content { gap: 0.1rem; }

.pmr-critere__label { font-size: 0.875rem; }

.pmr-critere__status {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.95rem;
	font-weight: 800;
}

.pmr-critere--ok .pmr-critere__status {
	background: var(--pmr-secondary-container);
	color: var(--pmr-on-secondary-container);
}

.pmr-critere--non .pmr-critere__status {
	background: #ffdad6;
	color: var(--pmr-error);
}

.pmr-critere--inconnu .pmr-critere__status {
	background: var(--pmr-surface-highest);
	color: var(--pmr-outline);
}

/* =====================================================
   DESIGN V1 — Fiche lieu : scroll reveal
   ===================================================== */
.pmr-reveal {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.5s ease, transform 0.5s ease;
}

.pmr-reveal.visible { opacity: 1; transform: translateY(0); }
.pmr-reveal-delay-1 { transition-delay: 0.08s; }
.pmr-reveal-delay-2 { transition-delay: 0.16s; }
.pmr-reveal-delay-3 { transition-delay: 0.24s; }
.pmr-reveal-delay-4 { transition-delay: 0.32s; }
.pmr-reveal-delay-5 { transition-delay: 0.40s; }
.pmr-reveal-delay-6 { transition-delay: 0.48s; }

/* =====================================================
   DESIGN V1 — Fiche lieu : section rapport
   ===================================================== */
.pmr-fiche-report {
	padding: 1.5rem;
	border-top: 1px solid var(--pmr-surface-high);
}

.pmr-fiche-report__inner {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.pmr-fiche-report__text {
	color: var(--pmr-on-surface-variant);
	font-size: 0.9rem;
	flex: 1;
	margin: 0;
}

/* =====================================================
   DESIGN V1 — Fiche lieu : responsive (mise à jour)
   ===================================================== */
@media (max-width: 900px) {
	.pmr-fiche-hero { gap: 1.5rem; margin-top: 0.5rem; }
	.pmr-fiche-hero__image { aspect-ratio: 16/9; height: auto; }
	.pmr-criteres-grid { grid-template-columns: 1fr 1fr; }
	.pmr-fiche-actions { flex-direction: column; align-items: center; }
	.pmr-score-bar-wrap { max-width: 100%; }
}

@media (max-width: 600px) {
	.pmr-fiche-hero__content h1 { font-size: 1.75rem; }
	.pmr-criteres-grid { grid-template-columns: 1fr; }
	.pmr-btn-primary, .pmr-btn-outline { max-width: 100%; justify-content: center; }
	.pmr-fiche-report__inner { flex-direction: column; align-items: flex-start; }
}

/* =====================================================
   PAGE AJOUTER UN LIEU
   ===================================================== */

.pmr-ajouter-page {
    background: var(--pmr-surface);
    min-height: 60vh;
    padding: 2.5rem 1.5rem 4rem;
}

.pmr-ajouter-container {
    max-width: 780px;
    margin: 0 auto;
}

.pmr-ajouter-header {
    margin-bottom: 2.5rem;
}

.pmr-ajouter-header h1 {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    margin: 0.25rem 0 0.75rem;
}

.pmr-ajouter-intro {
    color: var(--pmr-on-surface-variant);
    font-size: 1rem;
    max-width: 580px;
    line-height: 1.7;
    margin: 0;
}

/* Sections du formulaire */
.pmr-form-section {
    background: var(--pmr-surface-lowest);
    border-radius: var(--pmr-radius-card);
    padding: 2rem;
    margin-bottom: 1.5rem;
    box-shadow: var(--pmr-shadow-ambient);
}

.pmr-form-section__title {
    font-size: 1.1rem;
    margin: 0 0 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--pmr-surface-high);
}

.pmr-event-toggle {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    cursor: pointer;
    font-weight: 600;
    color: var(--pmr-on-surface);
    margin-bottom: 1.25rem;
}
.pmr-event-toggle input[type="checkbox"] {
    width: 1.1rem;
    height: 1.1rem;
    accent-color: var(--pmr-primary);
    cursor: pointer;
}

/* Champs */
.pmr-field {
    margin-bottom: 1.25rem;
}

.pmr-field:last-child { margin-bottom: 0; }

.pmr-field__label {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--pmr-outline);
    margin-bottom: 0.45rem;
}

.pmr-field__optional {
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    color: var(--pmr-outline);
    font-size: 0.75rem;
}

.pmr-required {
    color: var(--pmr-error);
}

.pmr-field__input {
    width: 100%;
    box-sizing: border-box;
    padding: 0.7rem 0.9rem;
    border: 1.5px solid var(--pmr-outline-variant);
    border-radius: 0.75rem;
    background: var(--pmr-surface);
    color: var(--pmr-on-surface);
    font-family: var(--pmr-font-body);
    font-size: 0.95rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    -webkit-appearance: none;
    appearance: none;
}

.pmr-field__input:focus {
    outline: none;
    border-color: var(--pmr-secondary);
    box-shadow: 0 0 0 3px rgba(73, 104, 0, 0.12);
}

.pmr-field__textarea {
    resize: vertical;
    min-height: 90px;
}

.pmr-field__input--half { max-width: 360px; }

.pmr-field__input--sm {
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    border-radius: 0.5rem;
}

.pmr-field__hint {
    margin-top: 0.4rem;
    font-size: 0.8rem;
    color: var(--pmr-outline);
    line-height: 1.5;
}

.pmr-field__hint--success { color: var(--pmr-secondary); }
.pmr-field__hint--error   { color: var(--pmr-error); }

.pmr-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

/* Géocodage */
.pmr-geocode-row {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
}

.pmr-geocode-row .pmr-field__input {
    flex: 1;
}

.pmr-btn-geocode {
    flex-shrink: 0;
    padding: 0.7rem 1.1rem;
    background: var(--pmr-surface-container);
    border: 1.5px solid var(--pmr-outline-variant);
    border-radius: 0.75rem;
    font-family: var(--pmr-font-body);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--pmr-primary);
    cursor: pointer;
    transition: background 0.15s ease;
    white-space: nowrap;
}

.pmr-btn-geocode:hover:not(:disabled) {
    background: var(--pmr-surface-high);
}

.pmr-btn-geocode:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Cases à cocher type de lieu */
.pmr-checkboxes {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.25rem;
}

.pmr-checkbox-label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.85rem;
    border-radius: var(--pmr-radius-full);
    border: 1.5px solid var(--pmr-outline-variant);
    background: var(--pmr-surface);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--pmr-on-surface-variant);
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
    user-select: none;
}

.pmr-checkbox-label input { display: none; }

.pmr-checkbox-label:has(input:checked) {
    background: var(--pmr-secondary-container);
    border-color: var(--pmr-secondary);
    color: var(--pmr-on-secondary-container);
}

/* Critères accessibilité */
.pmr-critere-form {
    padding: 1rem 0;
    border-bottom: 1px solid var(--pmr-surface-container);
}

.pmr-critere-form:last-of-type { border-bottom: none; }

.pmr-critere-form__label {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--pmr-on-surface);
    margin: 0 0 0.6rem;
}

.pmr-radio-group {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.pmr-radio-label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.9rem;
    border-radius: var(--pmr-radius-full);
    border: 1.5px solid var(--pmr-outline-variant);
    background: var(--pmr-surface);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--pmr-on-surface-variant);
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
    user-select: none;
}

.pmr-radio-label input { display: none; }

.pmr-radio-label:has(input:checked) {
    border-color: var(--pmr-secondary);
    background: var(--pmr-secondary-container);
    color: var(--pmr-on-secondary-container);
}

.pmr-radio-custom { display: none; }

.pmr-critere-note {
    margin-top: 0.6rem;
}

/* Zone upload photos */
.pmr-photo-zone {
    border: 2px dashed var(--pmr-outline-variant);
    border-radius: var(--pmr-radius-card);
    overflow: hidden;
    transition: border-color 0.15s;
}

.pmr-photo-zone__inner {
    padding: 2rem;
    text-align: center;
    color: var(--pmr-outline);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

.pmr-photo-zone__inner svg { opacity: 0.5; }

.pmr-photo-zone__inner p {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.5;
}

.pmr-photo-zone__inner span { font-style: italic; font-size: 0.8rem; }

.pmr-photo-zone__inner--drag { border-color: var(--pmr-secondary); background: var(--pmr-secondary-container); }

.pmr-btn-upload {
    display: inline-block;
    padding: 0.5rem 1.25rem;
    background: var(--pmr-surface-container);
    border: 1.5px solid var(--pmr-outline-variant);
    border-radius: var(--pmr-radius-full);
    font-family: var(--pmr-font-body);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--pmr-primary);
    cursor: pointer;
    transition: background 0.15s;
}

.pmr-btn-upload:hover { background: var(--pmr-surface-high); }

/* Prévisualisations photos */
.pmr-photo-previews {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
}

.pmr-photo-preview {
    position: relative;
    width: 100px;
    height: 100px;
    border-radius: 0.75rem;
    overflow: hidden;
    background: var(--pmr-surface-container);
    flex-shrink: 0;
}

.pmr-photo-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pmr-photo-preview__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pmr-photo-preview--loading .pmr-photo-preview__overlay {
    background: rgba(255,255,255,0.6);
}

.pmr-photo-preview__spinner {
    width: 24px;
    height: 24px;
    border: 3px solid var(--pmr-outline-variant);
    border-top-color: var(--pmr-primary);
    border-radius: 50%;
    animation: pmr-spin 0.7s linear infinite;
}

@keyframes pmr-spin { to { transform: rotate(360deg); } }

.pmr-photo-remove {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: none;
    background: rgba(21, 66, 18, 0.85);
    color: #fff;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.15s;
}

.pmr-photo-preview:hover .pmr-photo-remove { opacity: 1; }

.pmr-photo-count { padding: 0 1rem 0.75rem; }

/* Zone d'action + erreur */
.pmr-form-actions {
    margin-top: 2rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
}

.pmr-form-error {
    padding: 0.85rem 1.1rem;
    background: #ffdad6;
    color: var(--pmr-error);
    border-radius: 0.75rem;
    font-size: 0.9rem;
    font-weight: 500;
    width: 100%;
    box-sizing: border-box;
}

/* Message de succès */
.pmr-form-success {
    text-align: center;
    padding: 3rem 2rem;
    background: var(--pmr-surface-lowest);
    border-radius: var(--pmr-radius-card);
    box-shadow: var(--pmr-shadow-ambient);
    margin-bottom: 2rem;
}

.pmr-success-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--pmr-secondary-container);
    color: var(--pmr-on-secondary-container);
    font-size: 1.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.25rem;
}

.pmr-form-success h2 { margin: 0 0 0.5rem; }
.pmr-form-success p  { color: var(--pmr-on-surface-variant); margin: 0 0 1.5rem; }

/* Responsive */
@media (max-width: 600px) {
    .pmr-ajouter-page { padding: 1.5rem 1rem 3rem; }
    .pmr-form-section { padding: 1.25rem; }
    .pmr-field-row { grid-template-columns: 1fr; }
    .pmr-geocode-row { flex-direction: column; }
    .pmr-btn-geocode { width: 100%; }
    .pmr-field__input--half { max-width: 100%; }
}

/* =====================================================
   SAISONS — Variables par saison
   ===================================================== */

/* Printemps — mousse fraîche + crème doré + accent rose */
body.season-spring {
	--pmr-primary:                   #3a6b2c;
	--pmr-primary-container:         #5b8a3e;
	--pmr-on-primary:                #ffffff;
	--pmr-secondary:                 #87a043;
	--pmr-secondary-container:       #e6efb8;
	--pmr-on-secondary-container:    #4a5b1c;
	--pmr-surface:                   #fdf9ec;
	--pmr-surface-lowest:            #ffffff;
	--pmr-surface-low:               #f8f3e0;
	--pmr-surface-container:         #f3ecd4;
	--pmr-surface-high:              #ede4c8;
	--pmr-surface-highest:           #e6dcbb;
	--pmr-on-surface:                #1f2210;
	--pmr-on-surface-variant:        #4a5240;
	--pmr-outline:                   #7e8472;
	--pmr-outline-variant:           #c8cebc;
	--pmr-pin-1: #3a6b2c;
	--pmr-pin-2: #87a043;
	--pmr-pin-3: #e8a3b8;
	--pmr-pin-4: #c3699a;
	--pmr-header-bg:     rgba(253, 249, 236, 0.88);
	--pmr-mobile-nav-bg: rgba(253, 249, 236, 0.97);
}

/* Automne — sienne brûlée + or chaud + rouille */
body.season-autumn {
	--pmr-primary:                   #8e3a14;
	--pmr-primary-container:         #a85a2a;
	--pmr-on-primary:                #ffffff;
	--pmr-secondary:                 #b86b1a;
	--pmr-secondary-container:       #f4dab0;
	--pmr-on-secondary-container:    #5b3008;
	--pmr-surface:                   #fbf2dc;
	--pmr-surface-lowest:            #ffffff;
	--pmr-surface-low:               #f4e8c8;
	--pmr-surface-container:         #ecdfb5;
	--pmr-surface-high:              #e3d3a0;
	--pmr-surface-highest:           #d8c489;
	--pmr-on-surface:                #2a1a08;
	--pmr-on-surface-variant:        #5c4530;
	--pmr-outline:                   #8a7660;
	--pmr-outline-variant:           #cdbfa5;
	--pmr-pin-1: #8e3a14;
	--pmr-pin-2: #b86b1a;
	--pmr-pin-3: #d99a1c;
	--pmr-pin-4: #6b2810;
	--pmr-header-bg:     rgba(251, 242, 220, 0.88);
	--pmr-mobile-nav-bg: rgba(251, 242, 220, 0.97);
}

/* Hiver — givre & ardoise + vert sapin */
body.season-winter {
	--pmr-primary:                   #284b6a;
	--pmr-primary-container:         #3e6b8d;
	--pmr-on-primary:                #ffffff;
	--pmr-secondary:                 #1f5a3a;
	--pmr-secondary-container:       #c5dfe8;
	--pmr-on-secondary-container:    #14334d;
	--pmr-surface:                   #eef3f5;
	--pmr-surface-lowest:            #ffffff;
	--pmr-surface-low:               #e3eaee;
	--pmr-surface-container:         #d6dfe5;
	--pmr-surface-high:              #c8d4dc;
	--pmr-surface-highest:           #b9c8d2;
	--pmr-on-surface:                #0f1820;
	--pmr-on-surface-variant:        #3d4d5c;
	--pmr-outline:                   #6a7a88;
	--pmr-outline-variant:           #b6c1ca;
	--pmr-pin-1: #284b6a;
	--pmr-pin-2: #1f5a3a;
	--pmr-pin-3: #8aaec4;
	--pmr-pin-4: #c1393a;
	--pmr-header-bg:     rgba(238, 243, 245, 0.88);
	--pmr-mobile-nav-bg: rgba(238, 243, 245, 0.97);
}

/* =====================================================
   ACCUEIL V2 — Visuel Belgique (héro)
   ===================================================== */
.pmr-belgium-visual {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 460px;
	position: relative;
}

.pmr-belgium-visual::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(21,66,18,0.07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(21,66,18,0.07) 1px, transparent 1px);
	background-size: 32px 32px;
	border-radius: var(--pmr-radius-card);
	mask-image: radial-gradient(ellipse at center, #000 55%, transparent 90%);
	-webkit-mask-image: radial-gradient(ellipse at center, #000 55%, transparent 90%);
	pointer-events: none;
}

.pmr-belgium-img-wrap {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.pmr-belgium-img-wrap img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	animation: pmrBelgiumFadeIn 1s ease-out both;
	filter: drop-shadow(0 8px 24px rgba(21,66,18,0.10));
	position: relative;
	z-index: 1;
}

@keyframes pmrBelgiumFadeIn {
	from { opacity: 0; transform: scale(0.96); }
	to   { opacity: 1; transform: scale(1); }
}

.pmr-belgium-pin {
	position: absolute;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	border: 3px solid #fff;
	box-shadow: 0 3px 8px rgba(0,0,0,0.18);
	z-index: 2;
	transform: translate(-50%, -50%) scale(0);
	opacity: 0;
	animation: pmrBelgiumPinPop 0.5s cubic-bezier(0.34,1.56,0.64,1) forwards;
}

.pmr-belgium-pin::after {
	content: '';
	position: absolute;
	inset: -8px;
	border-radius: 50%;
	background: currentColor;
	opacity: 0.18;
	animation: pmrPinPulse 2.4s ease-out infinite;
}

@keyframes pmrBelgiumPinPop {
	from { transform: translate(-50%, -50%) scale(0); opacity: 0; }
	to   { transform: translate(-50%, -50%) scale(1); opacity: 1; }
}

@keyframes pmrPinPulse {
	0%   { transform: scale(0.6); opacity: 0.35; }
	70%  { transform: scale(1.6); opacity: 0; }
	100% { transform: scale(1.6); opacity: 0; }
}

.pmr-belgium-pin--1 { background: var(--pmr-pin-1); color: var(--pmr-pin-1); }
.pmr-belgium-pin--2 { background: var(--pmr-pin-2); color: var(--pmr-pin-2); }
.pmr-belgium-pin--3 { background: var(--pmr-pin-3); color: var(--pmr-pin-3); }
.pmr-belgium-pin--4 { background: var(--pmr-pin-4); color: var(--pmr-pin-4); }

@media (max-width: 900px) {
	.pmr-belgium-visual { height: 280px; order: -1; }
}

/* =====================================================
   ACCUEIL V2 — Bande stats
   ===================================================== */
.pmr-stats-strip {
	background: var(--pmr-surface-low);
	padding: var(--sp-lg) var(--sp-md);
}

.pmr-stats-inner {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	justify-content: center;
	gap: var(--sp-xl);
	flex-wrap: wrap;
}

.pmr-stat-item {
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.pmr-stat-number {
	font-family: var(--pmr-font-headline);
	font-size: 2.25rem;
	font-weight: 800;
	color: var(--pmr-primary);
	line-height: 1;
	letter-spacing: -0.03em;
}

.pmr-stat-label {
	font-size: 0.8rem;
	color: var(--pmr-on-surface-variant);
	font-weight: 500;
}

@media (max-width: 600px) {
	.pmr-stats-inner { gap: var(--sp-lg); }
	.pmr-stat-number { font-size: 1.9rem; }
}

/* =====================================================
   ACCUEIL V2 — Comment ça marche
   ===================================================== */
.pmr-section-how {
	background: var(--pmr-surface-low);
	padding: var(--sp-2xl) var(--sp-md);
}

.pmr-section-header {
	text-align: center;
	margin-bottom: var(--sp-xl);
}

.pmr-section-label {
	display: block;
	font-family: var(--pmr-font-body);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pmr-outline);
	margin-bottom: 0.6rem;
}

.pmr-section-header h2 {
	font-size: clamp(1.75rem, 3vw, 2.4rem);
	font-weight: 700;
}

.pmr-steps-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--sp-md);
	max-width: 900px;
	margin: 0 auto;
}

.pmr-step-card {
	background: var(--pmr-surface-lowest);
	border-radius: var(--pmr-radius-card);
	padding: var(--sp-lg) var(--sp-md);
	box-shadow: var(--pmr-shadow-card);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--sp-sm);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.pmr-step-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--pmr-shadow-float);
}

.pmr-step-num {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--pmr-primary), var(--pmr-primary-container));
	color: white;
	font-family: var(--pmr-font-headline);
	font-weight: 800;
	font-size: 1.1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 12px rgba(21,66,18,0.25);
	flex-shrink: 0;
}

.pmr-step-icon { font-size: 2rem; line-height: 1; }

.pmr-step-card h3 { font-size: 1.05rem; font-weight: 700; }

.pmr-step-card p {
	font-size: 0.875rem;
	color: var(--pmr-on-surface-variant);
	line-height: 1.65;
	margin: 0;
}

@media (max-width: 900px) {
	.pmr-steps-grid { grid-template-columns: 1fr; max-width: 480px; }
}

/* =====================================================
   ACCUEIL V2 — Mission bento
   ===================================================== */
.pmr-section-mission {
	background: var(--pmr-surface);
	padding: var(--sp-2xl) var(--sp-md);
}

.pmr-mission-grid {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: var(--sp-md);
	max-width: 1100px;
	margin: 0 auto;
}

.pmr-mission-main {
	background: linear-gradient(145deg, var(--pmr-primary) 0%, var(--pmr-primary-container) 100%);
	border-radius: var(--pmr-radius-card);
	padding: var(--sp-xl) var(--sp-lg);
	color: white;
	display: flex;
	flex-direction: column;
	gap: var(--sp-sm);
	position: relative;
	overflow: hidden;
}

.pmr-mission-main::before {
	content: '';
	position: absolute;
	top: -60px; right: -60px;
	width: 220px; height: 220px;
	border-radius: 50%;
	background: rgba(255,255,255,0.04);
}

.pmr-mission-main h2 {
	color: white;
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 700;
	position: relative;
	z-index: 1;
}

.pmr-mission-main p {
	color: rgba(255,255,255,0.82);
	font-size: 1rem;
	line-height: 1.75;
	position: relative;
	z-index: 1;
	margin: 0;
}

.pmr-mission-side {
	display: flex;
	flex-direction: column;
	gap: var(--sp-md);
}

.pmr-mission-tile {
	background: var(--pmr-secondary-container);
	border-radius: var(--pmr-radius-card);
	padding: var(--sp-md);
	flex: 1;
}

.pmr-mission-tile h3 {
	color: var(--pmr-on-secondary-container);
	font-size: 0.95rem;
	font-weight: 700;
	margin-bottom: 0.4rem;
}

.pmr-mission-tile p {
	font-size: 0.875rem;
	color: var(--pmr-on-secondary-container);
	opacity: 0.85;
	line-height: 1.6;
	margin: 0;
}

.pmr-mission-tile--white {
	background: var(--pmr-surface-lowest);
	box-shadow: var(--pmr-shadow-card);
}

.pmr-mission-tile--white h3 { color: var(--pmr-primary); }

.pmr-mission-tile--white p {
	color: var(--pmr-on-surface-variant);
	opacity: 1;
}

@media (max-width: 900px) {
	.pmr-mission-grid { grid-template-columns: 1fr; }
}

/* =====================================================
   ACCUEIL V2 — Lieux récemment ajoutés
   ===================================================== */
.pmr-section-places {
	background: var(--pmr-surface-low);
	padding: var(--sp-2xl) var(--sp-md);
}

.pmr-places-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	max-width: 1100px;
	margin: 0 auto var(--sp-lg);
	gap: var(--sp-md);
	flex-wrap: wrap;
}

.pmr-places-header-left .pmr-section-label { margin-bottom: 0.4rem; }
.pmr-places-header-left h2 { font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 700; }

.pmr-places-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--sp-md);
	max-width: 1100px;
	margin: 0 auto;
}

.pmr-place-card {
	background: var(--pmr-surface-lowest);
	border-radius: var(--pmr-radius-card);
	overflow: hidden;
	box-shadow: var(--pmr-shadow-card);
	display: flex;
	flex-direction: column;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.pmr-place-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--pmr-shadow-float);
}

.pmr-place-thumb {
	height: 175px;
	background: var(--pmr-surface-container);
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
	flex-shrink: 0;
	text-decoration: none;
	cursor: pointer;
}

.pmr-place-thumb img {
	transition: transform 0.35s ease;
}

.pmr-place-thumb:hover img {
	transform: scale(1.04);
}

.pmr-place-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: relative;
	z-index: 1;
}

.pmr-place-thumb::before {
	content: '';
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(
		-45deg,
		transparent,
		transparent 8px,
		rgba(21,66,18,0.04) 8px,
		rgba(21,66,18,0.04) 16px
	);
}

.pmr-place-thumb-label {
	font-family: var(--pmr-font-headline);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--pmr-outline);
	text-transform: uppercase;
	position: relative;
	z-index: 1;
}

.pmr-place-body {
	padding: 1.25rem var(--sp-md);
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 0.5rem;
}

.pmr-place-chips {
	display: flex;
	gap: 0.4rem;
	flex-wrap: wrap;
}

.pmr-place-body h3 {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	margin: 0;
}

.pmr-place-desc {
	font-size: 0.83rem;
	color: var(--pmr-on-surface-variant);
	flex: 1;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 0;
}

.pmr-place-link {
	font-family: var(--pmr-font-headline);
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--pmr-primary);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	margin-top: auto;
	transition: gap 0.2s ease;
}

.pmr-place-link:hover { gap: 0.6rem; }

@media (max-width: 900px) {
	.pmr-places-grid { grid-template-columns: repeat(2, 1fr); }
	.pmr-places-header { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 600px) {
	.pmr-places-grid { grid-template-columns: 1fr; max-width: 400px; margin-left: auto; margin-right: auto; }
	.pmr-places-header .pmr-btn-ghost { display: none; }
}

/* =====================================================
   ACCUEIL V2 — CTA rejoindre
   ===================================================== */
.pmr-section-cta {
	background: var(--pmr-surface);
	padding: var(--sp-2xl) var(--sp-md);
}

.pmr-cta-inner {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sp-md);
}

.pmr-cta-inner h2 {
	font-size: clamp(1.75rem, 3vw, 2.4rem);
	font-weight: 700;
}

.pmr-cta-inner p {
	color: var(--pmr-on-surface-variant);
	font-size: 1.05rem;
	line-height: 1.7;
	margin: 0;
}

.pmr-cta-btns {
	display: flex;
	gap: var(--sp-sm);
	flex-wrap: wrap;
	justify-content: center;
}

@media (max-width: 600px) {
	.pmr-cta-btns { flex-direction: column; align-items: center; width: 100%; }
	.pmr-cta-btns .pmr-btn-primary,
	.pmr-cta-btns .pmr-btn-ghost { width: 100%; max-width: 340px; justify-content: center; }
}

/* ── Photo mise en valeur (formulaire ajout lieu) ─────────────────────── */
.pmr-photo-feature {
	position: absolute;
	bottom: 4px;
	left: 4px;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	border: none;
	background: rgba(0,0,0,0.45);
	color: rgba(255,255,255,0.65);
	font-size: 0.85rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 3;
	transition: background 0.15s, color 0.15s;
	padding: 0;
	line-height: 1;
}
.pmr-photo-feature:hover {
	background: rgba(0,0,0,0.65);
	color: #fff;
}
.pmr-photo-feature--active {
	background: var(--pmr-secondary);
	color: #fff;
}
.pmr-photo-preview--featured {
	box-shadow: inset 0 0 0 3px var(--pmr-secondary);
}

/* ── Footer ──────────────────────────────────────────────────────────── */
.pmr-site-footer {
	background: var(--pmr-on-surface);
	color: rgba(255,255,255,0.55);
	padding: 2.5rem 1.5rem 1.5rem;
}

.pmr-footer-inner {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 3rem;
	flex-wrap: wrap;
}

.pmr-footer-logo-link {
	display: inline-flex;
	flex-shrink: 0;
}

.pmr-footer-logo {
	height: 42px;
	width: auto;
	filter: brightness(0) invert(1);
	opacity: 0.75;
	transition: opacity 0.2s;
}
.pmr-footer-logo-link:hover .pmr-footer-logo { opacity: 1; }

.pmr-footer-links {
	display: flex;
	gap: 2rem;
	flex-wrap: wrap;
	align-items: center;
}

.pmr-footer-links a {
	color: rgba(255,255,255,0.55);
	text-decoration: none;
	font-size: 0.875rem;
	transition: color 0.2s;
}
.pmr-footer-links a:hover { color: rgba(255,255,255,0.9); }

.pmr-footer-copy {
	max-width: 1100px;
	margin: 1.25rem auto 0;
	font-size: 0.78rem;
	color: rgba(255,255,255,0.28);
	text-align: center;
	border-top: 1px solid rgba(255,255,255,0.08);
	padding-top: 1.25rem;
}

@media (max-width: 600px) {
	.pmr-footer-inner { flex-direction: column; text-align: center; }
	.pmr-footer-links { justify-content: center; gap: 1.25rem; }
}

/* ── Méta fiche lieu (date + auteur) ─────────────────────────────────── */
.pmr-fiche-meta {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	flex-wrap: wrap;
	margin-top: 1rem;
	font-size: 0.78rem;
	color: var(--pmr-on-surface-variant);
	opacity: 0.7;
}

/* ── Modale d'accueil ────────────────────────────────────────────────── */
.pmr-welcome-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--sp-md);
}
.pmr-welcome-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
}
.pmr-welcome-box {
	position: relative;
	background: var(--pmr-surface-lowest);
	border-radius: var(--pmr-radius-card);
	padding: var(--sp-xl) var(--sp-lg);
	max-width: 480px;
	width: 100%;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sp-md);
	box-shadow: 0 8px 40px rgba(0, 0, 0, 0.18);
}
.pmr-welcome-logo {
	width: 120px;
	height: auto;
}
.pmr-welcome-heading {
	font-family: var(--pmr-font-headline);
	font-size: 2.5rem;
	font-weight: 800;
	color: var(--pmr-primary);
	margin: 0;
	letter-spacing: -0.02em;
}
.pmr-welcome-text {
	font-family: var(--pmr-font-body);
	font-size: 0.88rem;
	color: var(--pmr-on-surface-variant);
	text-align: left;
	line-height: 1.65;
	background: var(--pmr-surface-low);
	border-radius: 0.75rem;
	padding: var(--sp-sm) var(--sp-md);
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
}
.pmr-welcome-text svg {
	flex-shrink: 0;
	margin-top: 0.15rem;
	color: var(--pmr-secondary);
}
.pmr-welcome-text p {
	margin: 0 0 0.5rem;
}
.pmr-welcome-text p:last-child {
	margin: 0;
}
body.pmr-modal-open {
	overflow: hidden;
}
@media (max-width: 600px) {
	.pmr-welcome-box {
		padding: var(--sp-lg) var(--sp-md);
	}
	.pmr-welcome-heading {
		font-size: 2rem;
	}
}

/* =====================================================
   SPRINT 1 — Barre de recherche header
   ===================================================== */
.pmr-header-search {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--pmr-surface-highest);
	border: 1px solid var(--pmr-outline-variant);
	padding: 0.45rem 0.85rem;
	border-radius: var(--pmr-radius-full);
	width: 210px;
	margin: 0 0.25rem;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.pmr-header-search:focus-within {
	border-color: var(--pmr-primary);
	box-shadow: 0 0 0 3px rgba(21, 66, 18, 0.12);
}
.pmr-header-search svg {
	flex-shrink: 0;
	color: var(--pmr-outline);
}
.pmr-header-search input {
	border: none;
	background: transparent;
	font-family: var(--pmr-font-body);
	font-size: 0.875rem;
	color: var(--pmr-on-surface);
	width: 100%;
	outline: none;
}
.pmr-header-search input::placeholder {
	color: var(--pmr-outline);
}
@media (max-width: 1100px) {
	.pmr-header-search { display: none; }
}

/* =====================================================
   SPRINT 1 — Ce que vous pouvez vérifier
   ===================================================== */
.pmr-section-checks {
	background: var(--pmr-surface);
	padding: var(--sp-2xl) var(--sp-md);
}
.pmr-checks-inner {
	max-width: 900px;
	margin: 0 auto;
}
.pmr-checks-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.85rem;
}
.pmr-check-tile {
	background: var(--pmr-surface-lowest);
	border-radius: 1rem;
	padding: 1.1rem 0.75rem;
	box-shadow: var(--pmr-shadow-card);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.65rem;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.pmr-check-tile:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(27, 29, 14, 0.10);
}
.pmr-check-tile__icon {
	width: 52px;
	height: 52px;
	border-radius: 0.85rem;
	background: var(--pmr-secondary-container);
	color: var(--pmr-on-secondary-container);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.pmr-check-tile__icon svg {
	width: 28px;
	height: 28px;
}
.pmr-check-tile__label {
	font-family: var(--pmr-font-headline);
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--pmr-on-surface);
	line-height: 1.25;
}
@media (max-width: 720px) {
	.pmr-checks-grid { grid-template-columns: repeat(2, 1fr); }
}

/* =====================================================
   SPRINT 1 — Icône SVG pour les étapes
   ===================================================== */
.pmr-step-icon--svg {
	width: 56px;
	height: 56px;
	border-radius: 1rem;
	background: var(--pmr-secondary-container);
	color: var(--pmr-on-secondary-container);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: inherit;
}

/* =====================================================
   PAGES AUTH — Connexion + Inscription
   ===================================================== */
.pmr-auth-page {
	padding: 3rem 1.5rem 4rem;
	min-height: 70vh;
	background: var(--pmr-surface);
}

.pmr-auth-wrap {
	max-width: 560px;
	margin: 0 auto;
}

.pmr-auth-wrap--wide {
	max-width: 680px;
}

.pmr-auth-back {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.875rem;
	color: var(--pmr-on-surface-variant);
	text-decoration: none;
	margin-bottom: 1.5rem;
	transition: color 0.2s;
}
.pmr-auth-back:hover { color: var(--pmr-primary); }

.pmr-auth-card {
	background: var(--pmr-surface-lowest);
	border-radius: var(--pmr-radius-card);
	box-shadow: var(--pmr-shadow-ambient);
	padding: 2.5rem;
}

.pmr-auth-title {
	font-size: clamp(1.5rem, 4vw, 2rem);
	font-weight: 800;
	margin: 0 0 0.4rem;
	color: var(--pmr-primary);
}

.pmr-auth-subtitle {
	color: var(--pmr-on-surface-variant);
	font-size: 0.95rem;
	margin: 0 0 2rem;
	line-height: 1.5;
}

.pmr-auth-sep {
	border: none;
	border-top: 1px solid var(--pmr-outline-variant);
	margin: 1.75rem 0;
}

.pmr-auth-link-row {
	text-align: center;
	font-size: 0.9rem;
	color: var(--pmr-on-surface-variant);
}
.pmr-auth-link-row a {
	color: var(--pmr-primary);
	font-weight: 600;
	text-decoration: none;
}
.pmr-auth-link-row a:hover { text-decoration: underline; }

.pmr-auth-remember-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.5rem;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.pmr-auth-remember {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	color: var(--pmr-on-surface);
	cursor: pointer;
	user-select: none;
}

.pmr-auth-forgot {
	font-size: 0.875rem;
	color: var(--pmr-primary);
	text-decoration: none;
	font-weight: 500;
}
.pmr-auth-forgot:hover { text-decoration: underline; }

/* Champ mot de passe avec bouton afficher/masquer */
.pmr-password-wrap {
	position: relative;
}
.pmr-password-wrap .pmr-field__input {
	padding-right: 3rem;
}
.pmr-password-toggle {
	position: absolute;
	right: 0.75rem;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	cursor: pointer;
	color: var(--pmr-outline);
	padding: 0.25rem;
	display: flex;
	align-items: center;
	transition: color 0.2s;
}
.pmr-password-toggle:hover { color: var(--pmr-primary); }

/* Indicateur de force mot de passe */
.pmr-strength-wrap { margin-top: 0.5rem; }

.pmr-strength-bar {
	height: 4px;
	background: var(--pmr-outline-variant);
	border-radius: 2px;
	overflow: hidden;
	margin-bottom: 0.3rem;
}

.pmr-strength-fill {
	height: 100%;
	width: 0%;
	border-radius: 2px;
	transition: width 0.3s ease, background-color 0.3s ease;
}

.pmr-strength-fill--faible  { width: 33%; background: var(--pmr-error); }
.pmr-strength-fill--correct { width: 66%; background: #d97706; }
.pmr-strength-fill--fort    { width: 100%; background: var(--pmr-secondary); }

.pmr-strength-label { font-size: 0.75rem; color: var(--pmr-outline); }
.pmr-strength-label--faible  { color: var(--pmr-error); }
.pmr-strength-label--correct { color: #d97706; }
.pmr-strength-label--fort    { color: var(--pmr-secondary); }

/* Règlement scrollable */
.pmr-reglement-box {
	border: 1.5px solid var(--pmr-outline-variant);
	border-radius: var(--pmr-radius-md);
	overflow: hidden;
	margin-bottom: 0.75rem;
}

.pmr-reglement-body {
	height: 150px;
	overflow-y: scroll;
	padding: 1rem 1.25rem;
	background: var(--pmr-surface-low);
	font-size: 0.85rem;
	color: var(--pmr-on-surface-variant);
	line-height: 1.7;
}

.pmr-reglement-accept {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 0.75rem 1.25rem;
	background: var(--pmr-surface-container);
	font-size: 0.875rem;
	color: var(--pmr-on-surface);
}
.pmr-reglement-accept input[type="checkbox"]:disabled { opacity: 0.4; cursor: not-allowed; }
.pmr-reglement-accept label { cursor: pointer; line-height: 1.5; }

/* Section subtitle dans formulaire */
.pmr-section-subtitle {
	font-size: 0.875rem;
	color: var(--pmr-on-surface-variant);
	margin: -0.75rem 0 1.25rem;
	line-height: 1.5;
}

/* Besoins — liste verticale */
.pmr-besoins-list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.pmr-besoins-list .pmr-checkbox-label {
	justify-content: flex-start;
	padding: 0.45rem 1rem;
}

/* Boutons taille réduite */
.pmr-btn-primary--sm {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: linear-gradient(135deg, var(--pmr-primary), var(--pmr-primary-container));
	color: var(--pmr-on-primary);
	border: none;
	border-radius: var(--pmr-radius-full);
	font-family: var(--pmr-font-headline);
	font-weight: 700;
	font-size: 0.875rem;
	padding: 0.55rem 1.4rem;
	cursor: pointer;
	transition: opacity 0.2s, transform 0.1s;
	text-decoration: none;
}
.pmr-btn-primary--sm:hover { opacity: 0.9; transform: translateY(-1px); color: var(--pmr-on-primary); }

.pmr-btn-ghost--sm {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: var(--pmr-surface-highest);
	color: var(--pmr-primary);
	border: none;
	border-radius: var(--pmr-radius-full);
	font-family: var(--pmr-font-headline);
	font-weight: 600;
	font-size: 0.875rem;
	padding: 0.55rem 1.25rem;
	cursor: pointer;
	transition: background 0.2s;
	text-decoration: none;
}
.pmr-btn-ghost--sm:hover { background: var(--pmr-surface-high); color: var(--pmr-primary); }

@media (max-width: 600px) {
	.pmr-auth-page { padding: 1.5rem 1rem 3rem; }
	.pmr-auth-card { padding: 1.5rem; }
}

/* =====================================================
   ESPACE MEMBRE — Dashboard V2
   ===================================================== */
.pmr-dashboard-wrap {
	max-width: 900px;
	margin: 0 auto;
	padding: 2.5rem 1.5rem 4rem;
}

.pmr-dashboard-header { margin-bottom: 2rem; }

.pmr-dashboard-header h1 {
	font-size: clamp(1.6rem, 4vw, 2.2rem);
	font-weight: 800;
	margin: 0.5rem 0 0.25rem;
	color: var(--pmr-on-surface);
}

.pmr-dashboard-subtitle {
	color: var(--pmr-on-surface-variant);
	font-size: 0.95rem;
}

.pmr-dashboard-section {
	background: var(--pmr-surface-lowest);
	border-radius: var(--pmr-radius-card);
	box-shadow: var(--pmr-shadow-ambient);
	margin-bottom: 1.5rem;
	overflow: hidden;
}

.pmr-dashboard-section__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.5rem 2rem 0;
}

.pmr-dashboard-section__head h2 {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--pmr-on-surface);
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.pmr-dashboard-section__body {
	padding: 1.5rem 2rem 2rem;
}

/* Profil */
.pmr-profile-top {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1.5rem;
	align-items: start;
}

.pmr-avatar {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: var(--pmr-secondary-container);
	color: var(--pmr-on-secondary-container);
	font-family: var(--pmr-font-headline);
	font-weight: 800;
	font-size: 1.75rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	overflow: hidden;
}

.pmr-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }

.pmr-profile-name {
	font-family: var(--pmr-font-headline);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--pmr-on-surface);
}

.pmr-profile-meta {
	font-size: 0.875rem;
	color: var(--pmr-on-surface-variant);
	margin-top: 0.2rem;
}

.pmr-profile-meta span { margin-right: 1rem; }

/* Edit profil */
.pmr-profile-edit {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--pmr-surface-high);
	display: none;
}
.pmr-profile-edit.open { display: block; }

/* Feedback sauvegarde */
.pmr-save-feedback {
	font-size: 0.875rem;
	color: var(--pmr-secondary);
	display: none;
}
.pmr-save-feedback.visible { display: inline; }
.pmr-save-feedback--error { color: var(--pmr-error); }

/* Actions prefs */
.pmr-prefs-actions {
	margin-top: 1.25rem;
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}

/* Zones grid */
.pmr-zones-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 0.4rem;
	margin-top: 0.25rem;
}
.pmr-zones-grid .pmr-checkbox-label { justify-content: flex-start; }

/* Stats contributions */
.pmr-contrib-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.pmr-contrib-stat {
	background: var(--pmr-surface-low);
	border-radius: var(--pmr-radius-md);
	padding: 1.25rem 1rem;
	text-align: center;
}

.pmr-contrib-number {
	font-family: var(--pmr-font-headline);
	font-size: 2rem;
	font-weight: 800;
	color: var(--pmr-primary);
	line-height: 1;
}

.pmr-contrib-label {
	font-size: 0.78rem;
	color: var(--pmr-on-surface-variant);
	margin-top: 0.35rem;
}

/* Placeholder sections */
.pmr-placeholder-notice {
	text-align: center;
	padding: 2.5rem 1rem;
	color: var(--pmr-on-surface-variant);
	font-size: 0.9rem;
}

.pmr-placeholder-notice svg {
	display: block;
	margin: 0 auto 0.75rem;
	opacity: 0.25;
}

.pmr-placeholder-notice p { margin: 0; font-style: italic; }

/* Upload avatar */
.pmr-avatar-upload-row {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.pmr-avatar--lg {
	width: 88px;
	height: 88px;
	font-size: 2.2rem;
}

@media (max-width: 700px) {
	.pmr-dashboard-wrap { padding: 1.5rem 1rem 3rem; }
	.pmr-dashboard-section__head,
	.pmr-dashboard-section__body { padding-left: 1.25rem; padding-right: 1.25rem; }
	.pmr-contrib-stats { grid-template-columns: repeat(2, 1fr); }
	.pmr-profile-top { grid-template-columns: 1fr; }
	.pmr-zones-grid { grid-template-columns: repeat(2, 1fr); }
}

