/*
Theme Name: Petits Pas Dehors
Theme URI: https://raisingkidsoutdoors.org/
Description: Thème enfant de GeneratePress pour Petits Pas Dehors, carnet de sorties nature avec des enfants classé par âge. Prototype « Poteau & Balises » : plaques-flèches sur un poteau de randonnée, balisage peint de 1 à 4 traits selon la tranche d'âge.
Author: Petits Pas Dehors
Template: generatepress
Version: 1.0.0
Text Domain: raisingkidsoutdoors-fr
*/

/* ============================================================
   JETONS
   Rayons : boutons, pastilles et bandeau cookies en gélule (999px) ;
   photos et panneaux à 14px ; plaques-flèches coupées par clip-path.
   ============================================================ */
:root{
  --bouleau:#F4F3EF;      /* fond : écorce de bouleau, blanc froid */
  --carte:#FBFAF7;        /* surfaces claires */
  --ciel:#DCE8EF;         /* bandes claires teintées, pastilles d'âge */
  --ciel-fonce:#C5D7E2;
  --granit:#232A2E;       /* texte + bande sombre + poteau */
  --granit-nuit:#181D20;  /* pied de page */
  --bruyere:#84367A;      /* accent unique : bruyère des landes */
  --bruyere-fonce:#6A2A62;
  --bruyere-pale:#E3B5D9; /* accent sur fond granit */
  --doux:#5A6266;         /* texte secondaire */
  --gris-clair:#C9CFD2;   /* texte secondaire sur granit */
  --filet:rgba(35,42,46,.14);
  --r:14px;
  --gelule:999px;
  --font-titre:'Besley', Georgia, 'Times New Roman', serif;
  --font-texte:'Radio Canada', 'Trebuchet MS', 'Segoe UI', sans-serif;
  --fleche:polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%);
  --fleche-g:polygon(22px 0, 100% 0, 100% 100%, 22px 100%, 0 50%);
}

/* ============================================================ BASE */
html{ scroll-behavior:smooth; }
body.ppd, body{
  margin:0; background:var(--bouleau); color:var(--granit);
  font-family:var(--font-texte); font-size:18px; line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
h1,h2,h3,h4{ font-family:var(--font-titre); color:var(--granit); font-weight:700; line-height:1.15; margin:0; }
p{ margin:0 0 1em; }
a{ color:var(--bruyere); }
img{ max-width:100%; height:auto; display:block; }
.ppd-wrap{ max-width:1240px; margin:0 auto; padding:0 24px; box-sizing:border-box; }
.ppd-page{ display:block; }
.screen-reader-text{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); }
.skip-link:focus{ position:fixed !important; top:8px; left:8px; width:auto; height:auto; clip:auto; z-index:100; background:var(--carte); padding:8px 14px; border-radius:var(--gelule); }
:focus-visible{ outline:3px solid var(--bruyere); outline-offset:3px; }

/* Barre de lecture (CSS scroll-driven, masquée si non supportée) */
.ppd-progress{ position:fixed; top:0; left:0; width:100%; height:3px; background:var(--bruyere); transform-origin:0 50%; transform:scaleX(0); z-index:60; display:none; }
@supports (animation-timeline: scroll()){
  .ppd-progress{ display:block; animation:ppd-lecture linear both; animation-timeline:scroll(root); }
}
@keyframes ppd-lecture{ to{ transform:scaleX(1); } }

/* ============================================================
   BALISAGE PEINT : 1 à 4 traits empilés (signature)
   ============================================================ */
.ppd-bal{ display:inline-flex; flex-direction:column; gap:2px; width:16px; flex:0 0 16px; vertical-align:middle; }
.ppd-bal i{ display:block; height:4px; border-radius:1px; background:var(--bruyere); }
.ppd-bal i:nth-child(even){ background:var(--granit); }
.ppd-bal-grand{ width:40px; flex-basis:40px; gap:4px; margin-bottom:18px; }
.ppd-bal-grand i{ height:8px; }

/* Pastille d'âge (meta _fr_age) */
.ppd-age{ display:inline-block; margin:14px 0 6px; padding:3px 12px; border-radius:var(--gelule); background:var(--ciel); color:var(--granit); font-size:.8rem; font-weight:700; line-height:1.5; }

/* Ligne de meta */
.ppd-meta{ display:flex; flex-wrap:wrap; gap:2px 14px; font-size:.84rem; color:var(--doux); line-height:1.5; }
.ppd-meta b{ color:var(--bruyere-fonce); font-weight:700; }
.ppd-meta.sur-granit{ color:var(--gris-clair); }
.ppd-meta.sur-granit b{ color:var(--bruyere-pale); }

/* Repli d'image : aplat ciel balisé */
.ppd-ph{ display:block; width:100%; height:100%; min-height:120px; background:var(--ciel) linear-gradient(var(--bruyere),var(--bruyere)) 24px 24px / 26px 6px no-repeat; }
.ppd-ph.ppd-ph-initiales{ display:flex; align-items:flex-end; padding:24px; aspect-ratio:4/5; font-family:var(--font-titre, Besley), serif; font-weight:800; font-size:clamp(3rem,7vw,5.5rem); color:var(--granit); line-height:1; }

/* Boutons */
.ppd-btn{
  display:inline-block; padding:12px 26px; border-radius:var(--gelule); background:var(--bruyere); color:#FFFFFF;
  font-family:var(--font-texte); font-weight:700; font-size:1rem; text-decoration:none; white-space:nowrap;
  transition:background-color .2s ease, transform .2s ease;
}
.ppd-btn:hover{ background:var(--bruyere-fonce); color:#FFFFFF; }
.ppd-btn:active{ transform:translateY(1px); }
.ppd-btn-trait{ background:transparent; color:var(--granit); box-shadow:inset 0 0 0 2px var(--granit); }
.ppd-btn-trait:hover{ background:var(--granit); color:var(--carte); }

.ppd-h2{ font-size:clamp(1.8rem, 3.2vw, 2.6rem); font-weight:700; letter-spacing:-.01em; margin:0 0 14px; }
.ppd-intro{ max-width:60ch; color:var(--doux); font-size:1.06rem; margin:0 0 44px; }

/* ============================================================ EN-TÊTE */
.ppd-mast-in{ max-width:1240px; margin:0 auto; padding:22px 24px 16px; display:flex; justify-content:space-between; align-items:flex-end; gap:24px; box-sizing:border-box; }
.ppd-np{ display:inline-flex; align-items:center; gap:12px; font-family:var(--font-titre); font-weight:800; font-size:1.95rem; line-height:1.1; color:var(--granit); text-decoration:none; letter-spacing:-.01em; }
.ppd-np .ppd-np-bal{ width:20px; flex-basis:20px; gap:3px; }
.ppd-np .ppd-np-bal i{ height:6px; }
.ppd-np-tag{ margin:6px 0 0; font-size:.95rem; color:var(--doux); }
.ppd-mast-lien{ flex:0 0 auto; padding:8px 18px; border-radius:var(--gelule); box-shadow:inset 0 0 0 1.5px var(--granit); color:var(--granit); font-weight:700; font-size:.9rem; text-decoration:none; transition:background-color .2s ease, color .2s ease; }
.ppd-mast-lien:hover{ background:var(--granit); color:var(--carte); }

.ppd-nav{ border-top:1px solid var(--filet); border-bottom:1px solid var(--filet); background:var(--bouleau); }
.ppd-nav-in{ max-width:1240px; margin:0 auto; padding:0 24px; box-sizing:border-box; }
.ppd-nav-menu{ display:flex; align-items:stretch; gap:2px; list-style:none; margin:0; padding:0; }
.ppd-nav-menu li{ margin:0; padding:0; }
.ppd-nav-menu li:nth-child(5){ margin-left:auto; }
.ppd-nav-menu a{
  display:inline-flex; align-items:center; gap:9px; padding:14px 12px 12px; border-bottom:3px solid transparent;
  color:var(--granit); font-weight:700; font-size:.95rem; text-decoration:none; white-space:nowrap; transition:color .2s ease, border-color .2s ease;
}
.ppd-nav-menu a:hover{ color:var(--bruyere); }
.ppd-nav-menu .current-menu-item > a, .ppd-nav-menu .current-category-ancestor > a{ border-bottom-color:var(--bruyere); }

/* ============================================================ 1. BANDEAU */
.ppd-hero{ max-width:1240px; margin:0 auto; padding:56px 24px 88px; box-sizing:border-box; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:56px; align-items:center; }
.ppd-hero-titre{ font-size:clamp(2.3rem, 4.4vw, 3.55rem); font-weight:700; line-height:1.12; letter-spacing:-.015em; margin:0 0 22px; padding-bottom:4px; }
.ppd-hero-titre em{ font-style:italic; font-weight:600; color:var(--bruyere); }
.ppd-hero-corps{ font-size:1.15rem; color:var(--doux); max-width:34ch; margin:0 0 30px; }
.ppd-hero-photos{ position:relative; }
.ppd-hero-p1{ display:block; width:88%; margin-left:auto; aspect-ratio:4/3; border-radius:var(--r); overflow:hidden; background:var(--ciel); }
.ppd-hero-p2{ position:absolute; left:0; bottom:-44px; width:38%; aspect-ratio:1/1; border-radius:var(--r); overflow:hidden; border:8px solid var(--bouleau); background:var(--ciel); }
.ppd-hero-p1 img, .ppd-hero-p2 img{ width:100%; height:100%; object-fit:cover; }

/* ============================================================ 2. LE POTEAU DES ÂGES */
.ppd-poteau{ background:var(--ciel); padding:88px 0 96px; }
.ppd-poteau-rangs{ position:relative; padding-left:30px; }
.ppd-poteau-rangs::before{
  content:""; position:absolute; left:0; top:-28px; bottom:-28px; width:18px; border-radius:5px 5px 0 0;
  background:var(--granit) repeating-linear-gradient(90deg, rgba(255,255,255,.06) 0 2px, transparent 2px 7px);
}
.ppd-rang{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:32px; align-items:center; margin:0 0 22px; }
.ppd-rang:last-child{ margin-bottom:0; }
.ppd-rang-1{ --w:62%; } .ppd-rang-2{ --w:74%; } .ppd-rang-3{ --w:87%; } .ppd-rang-4{ --w:100%; }
.ppd-plaque{
  display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:14px; align-items:center;
  width:var(--w); box-sizing:border-box; margin-left:-12px; padding:16px 48px 16px 22px;
  background:var(--carte); color:var(--granit); text-decoration:none; clip-path:var(--fleche);
  transition:transform .25s ease, background-color .25s ease;
}
.ppd-plaque .ppd-bal{ grid-row:1 / span 2; }
.ppd-plaque-nom{ font-family:var(--font-titre); font-weight:700; font-size:1.4rem; line-height:1.2; }
.ppd-plaque-note{ font-size:.9rem; color:var(--doux); line-height:1.4; margin-top:3px; }
.ppd-plaque:hover{ transform:translateX(6px); background:#FFFFFF; }
.ppd-rang-recit{ display:grid; grid-template-columns:136px minmax(0,1fr); gap:18px; align-items:center; color:var(--granit); text-decoration:none; }
.ppd-rang-img{ display:block; aspect-ratio:4/3; border-radius:10px; overflow:hidden; background:var(--ciel-fonce); }
.ppd-rang-img img{ width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.ppd-rang-recit:hover .ppd-rang-img img{ transform:scale(1.04); }
.ppd-rang-titre{ display:block; font-family:var(--font-titre); font-weight:600; font-size:1.08rem; line-height:1.3; margin-bottom:6px; }
.ppd-rang-recit:hover .ppd-rang-titre{ color:var(--bruyere); }

/* ============================================================ 3. LES DERNIERS RÉCITS */
.ppd-recits{ padding:96px 0 72px; }
.ppd-recits .ppd-h2{ margin-bottom:40px; }
.ppd-mosaique{ columns:3 300px; column-gap:32px; }
.ppd-tuile{ break-inside:avoid; margin:0 0 40px; display:inline-block; width:100%; }
.ppd-tuile-img{ display:block; border-radius:var(--r); overflow:hidden; background:var(--ciel); aspect-ratio:4/3; }
.ppd-tuile-0 .ppd-tuile-img{ aspect-ratio:4/5; }
.ppd-tuile-2 .ppd-tuile-img{ aspect-ratio:1/1; }
.ppd-tuile-3 .ppd-tuile-img{ aspect-ratio:3/2; }
.ppd-tuile-img img{ width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.ppd-tuile:hover .ppd-tuile-img img{ transform:scale(1.03); }
.ppd-tuile-titre{ font-size:1.3rem; font-weight:700; line-height:1.25; margin:6px 0 8px; }
.ppd-tuile-0 .ppd-tuile-titre{ font-size:1.65rem; }
.ppd-tuile-titre a{ color:var(--granit); text-decoration:none; }
.ppd-tuile-titre a:hover{ color:var(--bruyere); }
.ppd-tuile-ext{ color:var(--doux); font-size:1rem; margin:0 0 10px; }
.ppd-tuile > .ppd-age + .ppd-tuile-titre{ margin-top:2px; }
.ppd-tuile-img + .ppd-tuile-titre{ margin-top:16px; }

/* ============================================================ 4. BANDE GRANIT : TYPES DE SORTIE */
.ppd-sorties{ background:var(--granit); color:var(--carte); padding:96px 0; }
.ppd-sorties .ppd-h2{ color:var(--carte); }
.ppd-sorties .ppd-intro{ color:var(--gris-clair); }
.ppd-sorties-grille{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); grid-template-rows:repeat(3, auto); column-gap:56px; }
.ppd-sortie{ color:var(--carte); text-decoration:none; }
.ppd-sortie-grande{ grid-row:1 / span 3; display:block; }
.ppd-sortie-grande .ppd-sortie-img{ display:block; aspect-ratio:5/4; border-radius:var(--r); overflow:hidden; margin-bottom:22px; }
.ppd-sortie-grande .ppd-sortie-nom{ font-size:1.9rem; }
.ppd-sortie-ligne{ display:grid; grid-template-columns:168px minmax(0,1fr); gap:22px; align-items:center; padding:22px 0; border-bottom:1px solid rgba(251,250,247,.14); }
.ppd-sortie-ligne:nth-child(2){ padding-top:0; }
.ppd-sortie-ligne:last-child{ border-bottom:0; padding-bottom:0; }
.ppd-sortie-ligne .ppd-sortie-img{ display:block; aspect-ratio:4/3; border-radius:10px; overflow:hidden; }
.ppd-sortie-img img{ width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.ppd-sortie:hover .ppd-sortie-img img{ transform:scale(1.04); }
.ppd-sortie-txt{ display:block; }
.ppd-sortie-nom{ display:block; font-family:var(--font-titre); font-weight:700; font-size:1.35rem; line-height:1.2; color:var(--carte); margin-bottom:6px; }
.ppd-sortie:hover .ppd-sortie-nom{ color:var(--bruyere-pale); }
.ppd-sortie-note{ display:block; color:var(--gris-clair); font-size:.98rem; line-height:1.5; }
.ppd-sortie-nb{ display:inline-block; margin-top:10px; padding-left:24px; position:relative; color:var(--bruyere-pale); font-size:.85rem; font-weight:700; }
.ppd-sortie-nb::before{ content:""; position:absolute; left:0; top:50%; width:16px; height:4px; margin-top:-2px; border-radius:1px; background:var(--bruyere-pale); }

/* ============================================================ 5. QUI ÉCRIT CE CARNET */
.ppd-auteur{ padding:96px 0 104px; }
.ppd-auteur-in{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:64px; align-items:start; }
.ppd-auteur-photo{ aspect-ratio:4/5; border-radius:var(--r); overflow:hidden; background:var(--ciel); }
.ppd-auteur-photo img{ width:100%; height:100%; object-fit:cover; }
.ppd-auteur-bio{ font-size:1.12rem; }
.ppd-auteur-texte > p{ max-width:62ch; }
.ppd-auteur-texte .ppd-btn{ margin:6px 0 40px; }
.ppd-engagements{ list-style:none; margin:0; padding:0; }
.ppd-engagements li{ display:grid; grid-template-columns:16px minmax(0,1fr); gap:18px; padding:20px 0; border-top:1px solid var(--filet); }
.ppd-engagements .ppd-bal{ margin-top:8px; }
.ppd-engagements h3{ font-size:1.15rem; margin:0 0 4px; }
.ppd-engagements p{ margin:0; color:var(--doux); font-size:.98rem; }
.ppd-engagements a{ font-weight:700; }

/* ============================================================ PIED DE PAGE */
.ppd-pied{ background:var(--granit-nuit); color:var(--gris-clair); font-size:.95rem; }
.ppd-pied-in{ max-width:1240px; margin:0 auto; padding:64px 24px 40px; box-sizing:border-box; display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; }
.ppd-pied-nom{ display:flex; align-items:center; gap:10px; font-family:var(--font-titre); font-weight:800; font-size:1.45rem; color:var(--carte); margin:0 0 12px; }
.ppd-pied-nom .ppd-bal i:nth-child(even){ background:var(--carte); }
.ppd-pied-copy{ font-size:.85rem; }
.ppd-pied-h{ font-size:1rem; color:var(--carte); margin:4px 0 14px; }
.ppd-pied ul{ list-style:none; margin:0; padding:0; }
.ppd-pied li{ margin:0 0 9px; }
.ppd-pied li a{ display:inline-flex; align-items:center; gap:10px; color:#DCE1E3; text-decoration:none; }
.ppd-pied li a:hover{ color:var(--bruyere-pale); }
.ppd-pied .ppd-bal i{ background:var(--bruyere-pale); }
.ppd-pied .ppd-bal i:nth-child(even){ background:var(--carte); }
.ppd-pied-rgpd{ max-width:1240px; margin:0 auto; padding:20px 24px 30px; box-sizing:border-box; border-top:1px solid rgba(251,250,247,.12); display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; font-size:.85rem; }
.ppd-pied-rgpd a{ color:var(--bruyere-pale); }

/* ============================================================ ARTICLE */
.ppd-article-tete{ max-width:820px; margin:0 auto; padding:48px 24px 28px; box-sizing:border-box; }
.ppd-ariane{ font-size:.88rem; color:var(--doux); margin:0 0 22px; }
.ppd-ariane a{ color:var(--doux); }
.ppd-ariane span{ margin:0 6px; }
.ppd-article-rub{ display:inline-flex; align-items:center; gap:9px; padding:5px 14px; border-radius:var(--gelule); background:var(--ciel); color:var(--granit); font-weight:700; font-size:.88rem; text-decoration:none; margin-bottom:18px; }
.ppd-article-titre{ font-size:clamp(2rem, 4.2vw, 3.05rem); line-height:1.13; letter-spacing:-.01em; margin:0 0 18px; }
.ppd-article-meta{ display:flex; flex-wrap:wrap; gap:4px 18px; font-size:.92rem; color:var(--doux); margin:0 0 20px; }
.ppd-article-meta strong{ color:var(--granit); }
.ppd-fiche{ display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:0; padding:0; }
.ppd-fiche li{ margin:0; padding:8px 34px 8px 14px; background:var(--granit); color:var(--carte); font-size:.92rem; line-height:1.35; clip-path:var(--fleche); }
.ppd-fiche li span{ display:block; font-size:.74rem; font-weight:700; color:var(--bruyere-pale); }
.ppd-article-cover{ max-width:1180px; margin:8px auto 44px; padding:0 24px; box-sizing:border-box; }
.ppd-article-cover img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:var(--r); }
.ppd-texte{ max-width:700px; margin:0 auto; padding:0 24px; box-sizing:border-box; font-size:1.1rem; line-height:1.75; }
.ppd-texte h2{ font-size:1.7rem; margin:2.1em 0 .6em; }
.ppd-texte h3{ font-size:1.3rem; margin:1.8em 0 .5em; }
.ppd-texte a{ color:var(--bruyere); text-decoration:underline; text-underline-offset:3px; }
.ppd-texte a:hover{ color:var(--bruyere-fonce); }
.ppd-texte img{ border-radius:10px; }
.ppd-texte ul li::marker, .ppd-texte ol li::marker{ color:var(--bruyere); font-weight:700; }
.ppd-texte blockquote{ margin:1.8em 0; padding:4px 0 4px 22px; border-left:5px solid var(--bruyere); font-family:var(--font-titre); font-style:italic; font-size:1.2rem; color:var(--granit); }
.ftc-disclosure{ background:var(--ciel); border-radius:10px; padding:14px 18px; margin:0 0 28px; font-size:.92rem; line-height:1.55; }
.ftc-disclosure p{ margin:0; }
.ppd-signe{ max-width:700px; margin:56px auto 0; box-sizing:border-box; display:grid; grid-template-columns:60px minmax(0,1fr); gap:20px; padding:26px; background:var(--carte); border-radius:var(--r); box-shadow:0 0 0 1px var(--filet); }
.ppd-signe-ini{ width:60px; height:60px; border-radius:50%; background:var(--bruyere); color:#FFFFFF; display:flex; align-items:center; justify-content:center; font-family:var(--font-titre); font-weight:700; font-size:1.3rem; }
.ppd-signe-nom{ font-family:var(--font-titre); font-weight:700; font-size:1.2rem; margin:0 0 6px; }
.ppd-signe p{ font-size:.98rem; color:var(--doux); }
.ppd-signe a{ font-weight:700; }
.ppd-lies{ max-width:1180px; margin:72px auto 96px; padding:0 24px; box-sizing:border-box; }
.ppd-lies-titre{ font-size:1.6rem; margin:0 0 28px; }
.ppd-lies-liste{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:28px; }
.ppd-lie{ display:block; color:var(--granit); text-decoration:none; }
.ppd-lie-img{ display:block; aspect-ratio:3/2; border-radius:var(--r); overflow:hidden; background:var(--ciel); }
.ppd-lie-img img{ width:100%; height:100%; object-fit:cover; }
.ppd-lie-titre{ display:block; margin-top:12px; font-family:var(--font-titre); font-weight:700; font-size:1.12rem; line-height:1.3; }
.ppd-lie .ppd-age + .ppd-lie-titre{ margin-top:2px; }
.ppd-lie:hover .ppd-lie-titre{ color:var(--bruyere); }

/* ============================================================ RUBRIQUES */
.ppd-rubrique-tete{ background:var(--ciel); padding:60px 0 52px; margin-bottom:48px; }
.ppd-rubrique-tete h1{ font-size:clamp(2.2rem, 4.6vw, 3.4rem); margin:0 0 12px; }
.ppd-rubrique-desc{ font-size:1.12rem; color:var(--doux); max-width:56ch; margin:0 0 6px; }
.ppd-rubrique-nb{ font-weight:700; color:var(--bruyere-fonce); margin:0; }
.ppd-vedette{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:44px; align-items:center; margin:0 0 64px; }
.ppd-vedette-img{ display:block; aspect-ratio:3/2; border-radius:var(--r); overflow:hidden; background:var(--ciel); }
.ppd-vedette-img img{ width:100%; height:100%; object-fit:cover; }
.ppd-vedette h2{ font-size:clamp(1.6rem, 2.6vw, 2.15rem); margin:6px 0 12px; }
.ppd-vedette h2 a, .ppd-carte-titre a{ color:var(--granit); text-decoration:none; }
.ppd-vedette h2 a:hover, .ppd-carte-titre a:hover{ color:var(--bruyere); }
.ppd-vedette p{ color:var(--doux); }
.ppd-grille{ display:grid; grid-template-columns:repeat(auto-fill, minmax(290px, 1fr)); gap:48px 32px; }
.ppd-carte-img{ display:block; aspect-ratio:4/3; border-radius:var(--r); overflow:hidden; background:var(--ciel); }
.ppd-carte-img img{ width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.ppd-carte:hover .ppd-carte-img img{ transform:scale(1.03); }
.ppd-carte-titre{ font-size:1.25rem; margin:6px 0 8px; }
.ppd-carte-img + .ppd-carte-titre{ margin-top:16px; }
.ppd-carte-ext{ color:var(--doux); font-size:.98rem; margin:0 0 8px; }
.ppd-vide{ padding:40px 0; color:var(--doux); }
.ppd-pagination{ margin:64px 0 96px; }
.ppd-pagination .nav-links{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.ppd-pagination .page-numbers{ display:inline-block; padding:8px 16px; border-radius:var(--gelule); box-shadow:inset 0 0 0 1.5px var(--filet); color:var(--granit); text-decoration:none; font-weight:700; }
.ppd-pagination .page-numbers.current{ background:var(--granit); color:var(--carte); box-shadow:none; }
.ppd-pagination a.page-numbers:hover{ background:var(--ciel); }

/* ============================================================
   PAGES FIXES : « Borne » (préfixe ppd-borne)
   ============================================================ */
.ppd-borne-tete{ position:relative; background:var(--ciel); padding:64px 0 62px; }
.ppd-borne-tete::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:10px;
  background:repeating-linear-gradient(90deg, var(--bruyere) 0 48px, transparent 48px 64px, var(--granit) 64px 72px, transparent 72px 88px);
}
.ppd-borne-tete-in{ max-width:1120px; margin:0 auto; padding:0 24px; box-sizing:border-box; }
.ppd-borne-kicker{ display:inline-flex; align-items:center; gap:10px; font-weight:700; color:var(--bruyere-fonce); margin:0 0 14px; }
.ppd-borne-titre{ font-size:clamp(2.2rem, 5vw, 3.5rem); font-weight:800; letter-spacing:-.015em; margin:0 0 20px; max-width:20ch; }
.ppd-borne-maj{ display:inline-block; margin:0; padding:7px 36px 7px 16px; background:var(--carte); color:var(--granit); font-size:.9rem; font-weight:700; clip-path:var(--fleche); }

.ppd-borne-corps{ max-width:1120px; margin:64px auto 0; padding:0 24px; box-sizing:border-box; display:grid; grid-template-columns:minmax(0,1fr); gap:64px; }
.ppd-borne-corps.a-sommaire{ grid-template-columns:minmax(0,1fr) 270px; }
.ppd-borne-corps.a-sommaire .ppd-borne-texte{ grid-column:1; grid-row:1; }
.ppd-borne-sommaire{ grid-column:2; grid-row:1; align-self:start; position:sticky; top:28px; padding:4px 0 6px 16px; border-left:10px solid var(--granit); border-radius:4px 0 0 0; }
.ppd-borne-sommaire-titre{ font-family:var(--font-titre); font-weight:700; font-size:1.05rem; margin:0 0 12px; }
.ppd-borne-sommaire ul{ list-style:none; margin:0; padding:0; }
.ppd-borne-sommaire li{ margin:0 0 8px; }
.ppd-borne-sommaire a{ display:block; margin-left:-16px; padding:8px 32px 8px 16px; background:var(--ciel); color:var(--granit); font-size:.9rem; font-weight:700; line-height:1.35; text-decoration:none; clip-path:var(--fleche); transition:background-color .2s ease, color .2s ease; }
.ppd-borne-sommaire a:hover{ background:var(--bruyere); color:#FFFFFF; }

.ppd-borne-texte.entry-content{ margin:0; max-width:70ch; font-size:1.06rem; line-height:1.75; }
.ppd-borne-texte h2{ font-size:1.6rem; margin:2em 0 .6em; scroll-margin-top:28px; display:flex; align-items:baseline; gap:12px; }
.ppd-borne-texte h2:first-child{ margin-top:0; }
.ppd-borne-texte h2::before{ content:""; flex:0 0 14px; height:11px; background:linear-gradient(var(--bruyere) 0 4px, transparent 4px 7px, var(--granit) 7px 11px); }
.ppd-borne-texte h3{ font-size:1.25rem; margin:1.6em 0 .5em; }
.ppd-borne-texte a{ color:var(--bruyere); text-underline-offset:3px; }
.ppd-borne-texte table{ width:100%; border-collapse:separate; border-spacing:0; margin:1.4em 0; border-radius:12px; overflow:hidden; box-shadow:0 0 0 1px var(--filet), inset 5px 0 0 var(--bruyere); font-size:.98rem; }
.ppd-borne-texte th, .ppd-borne-texte td{ padding:12px 16px; text-align:left; vertical-align:top; border-bottom:1px solid var(--filet); overflow-wrap:anywhere; }
.ppd-borne-texte{ min-width:0; overflow-wrap:break-word; }
.ppd-borne-texte dd, .ppd-borne-texte dt{ overflow-wrap:anywhere; }
.ppd-borne-texte tr:last-child th, .ppd-borne-texte tr:last-child td{ border-bottom:0; }
.ppd-borne-texte th:first-child, .ppd-borne-texte td:first-child{ background:var(--ciel); font-weight:700; width:34%; padding-left:22px; }
.ppd-borne-texte dl{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:0; margin:1.4em 0; border-radius:12px; overflow:hidden; box-shadow:0 0 0 1px var(--filet); }
.ppd-borne-texte dt{ background:var(--ciel); font-weight:700; padding:10px 16px; border-bottom:1px solid var(--filet); }
.ppd-borne-texte dd{ margin:0; padding:10px 16px; border-bottom:1px solid var(--filet); }

.ppd-borne-pied{ max-width:1120px; margin:72px auto 96px; padding:40px 24px 0; box-sizing:border-box; border-top:1px solid var(--filet); }
.ppd-borne-pied-titre{ font-size:1.45rem; margin:0 0 20px; }
.ppd-borne-directions{ display:flex; flex-wrap:wrap; gap:12px 10px; list-style:none; margin:0 0 28px; padding:0; }
.ppd-borne-directions li{ margin:0; }
.ppd-borne-directions a{ display:block; padding:11px 38px 11px 18px; background:var(--granit); color:var(--carte); font-weight:700; font-size:.95rem; text-decoration:none; clip-path:var(--fleche); transition:background-color .2s ease; }
.ppd-borne-directions li:nth-child(even) a{ padding:11px 18px 11px 38px; clip-path:var(--fleche-g); }
.ppd-borne-directions a:hover{ background:var(--bruyere); }
.ppd-borne-note{ color:var(--doux); margin:0; }

/* ============================================================ RESPONSIVE */
@media (max-width:1100px){
  .ppd-nav-menu a{ padding-left:9px; padding-right:9px; font-size:.9rem; }
}
@media (max-width:960px){
  .ppd-nav-in{ overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .ppd-nav-in::-webkit-scrollbar{ display:none; }
  .ppd-nav-menu li:nth-child(5){ margin-left:10px; padding-left:10px; border-left:1px solid var(--filet); }
  .ppd-hero{ grid-template-columns:1fr; gap:40px; padding:40px 20px 80px; }
  .ppd-hero-photos{ margin-right:0; }
  .ppd-rang{ grid-template-columns:1fr; gap:14px; margin-bottom:34px; }
  .ppd-sorties-grille{ grid-template-columns:1fr; }
  .ppd-sortie-grande{ grid-row:auto; margin-bottom:28px; }
  .ppd-sortie-ligne:nth-child(2){ padding-top:22px; }
  .ppd-auteur-in{ grid-template-columns:1fr; gap:36px; }
  .ppd-auteur-photo{ aspect-ratio:3/2; }
  .ppd-pied-in{ grid-template-columns:1fr 1fr; }
  .ppd-pied-marque{ grid-column:1 / -1; }
  .ppd-vedette{ grid-template-columns:1fr; gap:22px; }
  .ppd-lies-liste{ grid-template-columns:1fr 1fr; }
  .ppd-borne-corps.a-sommaire{ grid-template-columns:minmax(0,1fr); gap:40px; }
  .ppd-borne-sommaire{ grid-column:1; grid-row:1; position:static; }
  .ppd-borne-corps.a-sommaire .ppd-borne-texte{ grid-column:1; grid-row:2; }
}
@media (max-width:640px){
  body.ppd, body{ font-size:17px; }
  .ppd-wrap{ padding:0 16px; }
  .ppd-mast-in{ flex-direction:column; align-items:flex-start; gap:12px; padding:18px 16px 14px; }
  .ppd-np{ font-size:1.6rem; }
  .ppd-nav-in{ padding:0 8px; }
  .ppd-hero{ padding:32px 16px 72px; }
  .ppd-hero-p1{ width:100%; }
  .ppd-hero-p2{ width:42%; bottom:-40px; left:-4px; border-width:6px; }
  .ppd-poteau, .ppd-recits, .ppd-sorties, .ppd-auteur{ padding-top:64px; padding-bottom:64px; }
  .ppd-poteau-rangs{ padding-left:22px; }
  .ppd-poteau-rangs::before{ width:12px; }
  .ppd-rang-1{ --w:80%; } .ppd-rang-2{ --w:87%; } .ppd-rang-3{ --w:94%; } .ppd-rang-4{ --w:100%; }
  .ppd-plaque{ padding:13px 38px 13px 16px; margin-left:-10px; }
  .ppd-plaque-nom{ font-size:1.2rem; }
  .ppd-rang-recit{ grid-template-columns:104px minmax(0,1fr); gap:14px; }
  .ppd-rang-titre{ font-size:1rem; }
  .ppd-sortie-ligne{ grid-template-columns:112px minmax(0,1fr); gap:16px; }
  .ppd-sortie-nom{ font-size:1.18rem; }
  .ppd-sortie-grande .ppd-sortie-nom{ font-size:1.5rem; }
  .ppd-pied-in{ grid-template-columns:1fr; padding:48px 16px 32px; gap:28px; }
  .ppd-pied-rgpd{ padding:18px 16px 96px; }
  .ppd-article-tete{ padding:32px 16px 22px; }
  .ppd-article-cover{ padding:0 16px; }
  .ppd-texte{ padding:0 16px; font-size:1.05rem; }
  .ppd-signe{ margin-left:16px; margin-right:16px; grid-template-columns:1fr; }
  .ppd-lies{ padding:0 16px; }
  .ppd-lies-liste{ grid-template-columns:1fr; }
  .ppd-borne-tete{ padding:44px 0 48px; }
  .ppd-borne-tete-in{ padding:0 16px; }
  .ppd-borne-corps{ padding:0 16px; margin-top:44px; }
  .ppd-borne-pied{ padding:32px 16px 0; }
  .ppd-borne-texte th:first-child, .ppd-borne-texte td:first-child{ width:40%; padding-left:18px; }
  .ppd-borne-texte dl{ grid-template-columns:1fr; }
  .ppd-borne-texte dt{ border-bottom:0; padding-bottom:2px; }
}

/* ============================================================
   BANDEAU COOKIES : gélule en bas à gauche
   Une gélule sombre horizontale, texte puis boutons en ligne dans la gélule.
   (tarteaucitron injecte son CSS après le nôtre -> !important)
   On ne force JAMAIS display sur #tarteaucitronAlertBig : la lib l'affiche / le masque.
   ============================================================ */
#tarteaucitronRoot #tarteaucitronAlertBig{
  position:fixed !important; left:16px !important; right:auto !important; top:auto !important; bottom:16px !important;
  transform:none !important; margin:0 !important;
  width:auto !important; max-width:min(1040px, calc(100vw - 32px)) !important; min-width:0 !important; box-sizing:border-box !important;
  background:var(--granit) !important; color:var(--carte) !important;
  border:0 !important; border-radius:var(--gelule) !important;
  box-shadow:0 20px 44px -18px rgba(24,29,32,.65), 0 0 0 1px rgba(251,250,247,.08) !important;
  padding:10px 12px 10px 28px !important; text-align:left !important;
  font-family:var(--font-texte) !important; line-height:1.4 !important; z-index:2147483640 !important;
}
#tarteaucitronRoot #tarteaucitronAlertBig::before{
  content:""; display:inline-block; vertical-align:middle; width:14px; height:11px; margin:0 14px 0 0;
  background:linear-gradient(var(--bruyere-pale) 0 4px, transparent 4px 7px, var(--carte) 7px 11px);
}
#tarteaucitronRoot #tarteaucitronDisclaimerAlert,
#tarteaucitronRoot #tarteaucitronDisclaimerAlert *{
  color:var(--carte) !important; font-size:.9rem !important; line-height:1.4 !important;
  text-align:left !important; font-family:var(--font-texte) !important;
}
#tarteaucitronRoot #tarteaucitronDisclaimerAlert{ display:inline-block !important; vertical-align:middle !important; max-width:330px !important; margin:0 16px 0 0 !important; padding:0 !important; }
#tarteaucitronRoot #tarteaucitronAlertBig br{ display:none !important; }
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCheck,
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCross{ display:none !important; }
#tarteaucitronRoot #tarteaucitronAlertBig button{
  display:inline-block !important; vertical-align:middle !important; width:auto !important; box-sizing:border-box !important;
  margin:3px 3px !important; padding:9px 18px !important; border-radius:var(--gelule) !important;
  font-family:var(--font-texte) !important; font-size:.86rem !important; font-weight:700 !important; line-height:1.2 !important;
  letter-spacing:0 !important; text-transform:none !important; cursor:pointer !important; white-space:nowrap !important;
  border:0 !important; background:transparent !important; color:var(--carte) !important; box-shadow:inset 0 0 0 1.5px rgba(251,250,247,.5) !important;
}
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2{ background:var(--bruyere) !important; color:#FFFFFF !important; box-shadow:none !important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2:hover{ background:var(--bruyere-fonce) !important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2:hover{ background:rgba(251,250,247,.12) !important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert{ box-shadow:none !important; text-decoration:underline !important; text-underline-offset:3px !important; padding-left:10px !important; padding-right:10px !important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl{
  box-shadow:none !important; padding:9px 12px 9px 6px !important; color:var(--gris-clair) !important;
  font-size:.8rem !important; font-weight:400 !important; text-decoration:underline !important; text-underline-offset:3px !important;
}
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl:hover{ color:var(--bruyere-pale) !important; }

/* bouton de réouverture : petite gélule claire en bas à gauche */
#tarteaucitronRoot #tarteaucitronIcon, #tarteaucitronIcon{
  left:16px !important; right:auto !important; bottom:16px !important; top:auto !important;
  transform:none !important; width:auto !important; height:auto !important; background:transparent !important;
}
#tarteaucitronManager img{display:none !important;}
#tarteaucitronRoot #tarteaucitronManager img{display:none !important;}
#tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager, #tarteaucitronIcon #tarteaucitronManager{
  display:inline-flex !important; align-items:center !important; gap:9px !important;
  width:auto !important; height:auto !important; padding:8px 16px 8px 14px !important; line-height:1 !important;
  background:var(--carte) !important; border:0 !important; border-radius:var(--gelule) !important;
  box-shadow:inset 0 0 0 1.5px var(--granit), 0 8px 20px -10px rgba(24,29,32,.5) !important;
}
#tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager::before, #tarteaucitronIcon #tarteaucitronManager::before{
  content:""; width:12px; height:9px; background:linear-gradient(var(--bruyere) 0 3px, transparent 3px 6px, var(--granit) 6px 9px);
}
#tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager::after, #tarteaucitronIcon #tarteaucitronManager::after{
  content:"Modifier mes cookies"; font-family:var(--font-texte); font-size:.82rem; font-weight:700; color:var(--granit);
}

@media (max-width:640px){
  #tarteaucitronRoot #tarteaucitronAlertBig{ left:10px !important; right:10px !important; bottom:10px !important; max-width:none !important; border-radius:26px !important; padding:14px 12px 10px 18px !important; }
  #tarteaucitronRoot #tarteaucitronAlertBig::before{ display:block; margin:0 0 8px; }
  #tarteaucitronRoot #tarteaucitronDisclaimerAlert{ display:block !important; max-width:none !important; margin:0 0 8px !important; }
  #tarteaucitronRoot #tarteaucitronDisclaimerAlert, #tarteaucitronRoot #tarteaucitronDisclaimerAlert *{ font-size:.85rem !important; }
  #tarteaucitronRoot #tarteaucitronAlertBig button{ padding:8px 14px !important; font-size:.8rem !important; }
  #tarteaucitronRoot #tarteaucitronIcon, #tarteaucitronIcon{ left:10px !important; bottom:10px !important; }
}

/* ============================================================ MOUVEMENT RÉDUIT */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ transition:none !important; animation:none !important; }
  .ppd-progress{ display:none !important; }
  .ppd-plaque:hover{ transform:none; }
  .ppd-tuile:hover .ppd-tuile-img img, .ppd-carte:hover .ppd-carte-img img, .ppd-rang-recit:hover .ppd-rang-img img, .ppd-sortie:hover .ppd-sortie-img img{ transform:none; }
}
