/* ============================================================
   PLACE DU RHIN — V131 « Marketplace élevée »
   Direction : densité fonctionnelle façon Leboncoin
   + chaleur alsacienne (Rhin + grès des Vosges), poussée
   au niveau premium. Rien qui sente le template / l'IA.

   Se charge EN DERNIER. Ne touche jamais au HTML ni au JS :
   surcharge uniquement la présentation des classes existantes.
   ============================================================ */

/* ------------------------------------------------------------
   0. TOKENS — palette chaude unifiée
   ------------------------------------------------------------ */
:root {
  /* Encre */
  --v131-ink:        #1b2a30;
  --v131-ink-2:      #45575e;
  --v131-muted:      #7c8890;
  --v131-faint:      #9aa4aa;

  /* Marque : vert Rhin */
  --v131-river:      #24424b;
  --v131-river-2:    #2d5560;
  --v131-river-deep: #16323a;

  /* Accent : bleu-vert (teal). Noms « terra » conservés pour ne pas
     casser les nombreuses références — seules les VALEURS changent. */
  --v131-terra:      #0f7d87;
  --v131-terra-2:    #0c6870;
  --v131-terra-deep: #094f56;
  --v131-terra-soft: #e6f3f4;
  --v131-terra-line: #c4e0e2;

  /* Appoints (vert-bleu) */
  --v131-moss:       #2f7d6e;
  --v131-moss-soft:  #e7f3f2;
  --v131-gold:       #8fc7cb;

  /* Surfaces chaudes */
  --v131-bg:         #ffffff;
  --v131-bg-warm:    #f4f7f8;   /* sections alternées (froid léger) */
  --v131-card:       #ffffff;
  --v131-hover:      #f2f7f7;

  /* Traits froids doux */
  --v131-line:       #e8edee;   /* hairline */
  --v131-line-2:     #dce5e6;   /* un peu plus marqué */
  --v131-line-str:   #ccd8d9;   /* fort */

  /* États sémantiques */
  --v131-warning:      #b26a1f;   /* avertissements uniquement */
  --v131-warning-soft: #fbf0e2;
  --v131-danger:       #b3261e;   /* erreurs / actions dangereuses */
  --v131-danger-soft:  #fbeceb;

  /* Ombres SOBRES — réduites (bordure OU ombre légère, pas les deux systématiquement) */
  --v131-sh-xs:  0 1px 2px rgba(15,45,50,.04);
  --v131-sh-sm:  0 1px 3px rgba(15,45,50,.06);
  --v131-sh-md:  0 4px 14px rgba(15,45,50,.07);
  --v131-sh-lg:  0 10px 30px rgba(15,45,50,.09);

  /* Rayons SOBRES — fini les capsules partout */
  --v131-r-xs: 6px;    /* petits éléments */
  --v131-r-sm: 10px;   /* inputs / boutons */
  --v131-r:    12px;   /* cartes */
  --v131-r-lg: 14px;   /* grandes cartes */
  --v131-r-xl: 16px;   /* grandes sections (max) */

  /* Échelle d'espacement cohérente (4/8/12/16/24/32/48/64) */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-12: 48px;
  --sp-16: 64px;

  --v131-ease: cubic-bezier(.22,.75,.22,1);
  --v131-focus: 0 0 0 3px rgba(15,125,135,.22);

  /* Typographie — pile système neutre, sobre. Une seule famille partout. */
  --v131-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --v131-display: var(--v131-sans);

  /* ---- Variables sémantiques publiques (nommage demandé) ---- */
  --color-primary:          var(--v131-terra);
  --color-primary-hover:    var(--v131-terra-2);
  --color-brand:            var(--v131-river);
  --color-text:             var(--v131-ink);
  --color-text-secondary:   var(--v131-ink-2);
  --color-text-muted:       var(--v131-muted);
  --color-border:           var(--v131-line);
  --color-border-strong:    var(--v131-line-str);
  --color-background:       var(--v131-bg);
  --color-background-soft:  var(--v131-bg-warm);
  --color-success:          var(--v131-moss);
  --color-warning:          var(--v131-warning);
  --color-danger:           var(--v131-danger);
}

/* On réaligne les tokens hérités des couches précédentes
   sur la palette chaude v131 (une seule source de vérité). */
:root {
  --pdr-ink: var(--v131-ink);
  --pdr-ink-2: var(--v131-ink-2);
  --pdr-ink-soft: var(--v131-ink-2);
  --pdr-muted: var(--v131-muted);
  --pdr-river: var(--v131-river);
  --pdr-river-deep: var(--v131-river-deep);
  --pdr-river-dark: var(--v131-river-deep);
  --pdr-sand: var(--v131-terra);
  --pdr-paper: var(--v131-bg);
  --pdr-paper-2: var(--v131-bg-warm);
  --pdr-ivory: var(--v131-bg-warm);
  --pdr-mist: var(--v131-moss-soft);
  --pdr-line: var(--v131-line);
  --pdr-line-strong: var(--v131-line-2);
  --pdr-radius-sm: var(--v131-r-sm);
  --pdr-radius: var(--v131-r);
  --pdr-radius-lg: var(--v131-r-lg);
  --pdr-radius-xl: var(--v131-r-xl);
}

.pdr-v129 {
  --v129-bg: #ffffff;
  --v129-surface: #ffffff;
  --v129-ink: var(--v131-ink);
  --v129-ink-strong: var(--v131-ink);
  --v129-muted: var(--v131-muted);
  --v129-line: var(--v131-line);
  --v129-brand: var(--v131-river);
  --v129-brand-deep: var(--v131-river-deep);
  --v129-accent: var(--v131-terra);
  --v129-accent-dark: var(--v131-terra-deep);
  --v129-accent-soft: var(--v131-terra-soft);
  --v129-green: var(--v131-moss);
  --v129-shadow: var(--v131-sh-xs);
  --v129-shadow-hover: var(--v131-sh-md);
}

/* ------------------------------------------------------------
   1. CANVAS — calme, chaud, net
   ------------------------------------------------------------ */
body.pdr-v129,
body.pdr-signature-page {
  background: var(--v131-bg) !important;
  color: var(--v131-ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: "cv05" 1, "ss01" 1;
}
body.pdr-signature-page::before,
body.pdr-v129::before { display: none !important; }

body.pdr-v129 .container,
body.pdr-signature-page .container,
body.pdr-signature-page .header-inner {
  width: min(1280px, calc(100% - 40px));
  max-width: none;
  margin-inline: auto;
}

/* Chiffres alignés (prix, compteurs) */
.v129-price, .v130-card-price, .v131-price,
.pdr-price, .price, [class*="price"] {
  font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------------
   1bis. TYPOGRAPHIE — une seule famille sans-serif neutre, sobre.
   Hiérarchie par la TAILLE d'abord, le gras en second (moins de 800).
   ------------------------------------------------------------ */
body.pdr-v129, body.pdr-signature-page {
  font-family: var(--v131-sans);
  line-height: 1.55;
  color: var(--v131-ink);
}
body.pdr-v129 :is(h1,h2,h3,h4,h5),
body.pdr-signature-page :is(h1,h2,h3,h4,h5) {
  font-family: var(--v131-sans);
  color: var(--v131-ink);
}
/* Échelle de titres par défaut (mesurée, pas gigantesque) */
body.pdr-v129 h1, body.pdr-signature-page h1 { font-weight: 700; letter-spacing: -.02em; line-height: 1.15; }
body.pdr-v129 h2, body.pdr-signature-page h2 { font-weight: 700; letter-spacing: -.015em; line-height: 1.2; }
body.pdr-v129 h3, body.pdr-signature-page h3 { font-weight: 650; letter-spacing: -.01em; }
body.pdr-v129 h4, body.pdr-signature-page h4 { font-weight: 650; }
/* Texte secondaire : plus léger et discret */
body.pdr-signature-page :is(.section-text, .breadcrumb, .page-hero p, small, .muted) {
  color: var(--v131-ink-2);
  font-weight: 400;
}

/* Accroche accueil : forte mais mesurée, accent teal (sans italique) */
.v129-tagline {
  font-family: var(--v131-sans);
  font-size: clamp(1.8rem, 3.2vw, 2.4rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.02em;
  color: var(--v131-ink);
}
.v129-tagline em {
  font-style: normal;
  font-weight: 700;
  color: var(--v131-terra);
}
.v129-subline { font-weight: 400; }

/* Titres de section accueil */
.v129-block-head h2 {
  font-family: var(--v131-sans);
  font-size: clamp(1.15rem, 1.7vw, 1.35rem);
  font-weight: 700;
  letter-spacing: -.015em;
  color: var(--v131-ink);
}

/* H1 des pages internes */
body.pdr-signature-page.pdr-v129 :is(
  .page-hero, .form-hero-pro, .profile-hero, .seller-hero, .my125-hero,
  .fav-hero, .messages-hero, .notif-hero, .settings-hero, .saved-hero-v121,
  .login-hero, .register-hero, .contact-hero, .legal-hero, .security-hero,
  .admin-hero, .mod-hero, main > .hero
) h1 {
  font-family: var(--v131-sans);
  font-weight: 700;
  font-size: clamp(1.45rem, 2.4vw, 1.9rem);
  letter-spacing: -.02em;
  line-height: 1.15;
}

/* Interface : même famille, réglages nets */
body.pdr-v129 .nav a, body.pdr-signature-page .nav a,
.pdr-v129 .btn, body.pdr-signature-page .btn,
.v130-card-title, .v130-card-price, .v130-card-meta,
.pdr-v129 .v129-card h3, .pdr-v129 .v129-price, .pdr-v129 .v129-meta {
  font-family: var(--v131-sans);
}

/* ------------------------------------------------------------
   2. HEADER — blanc net, sticky, sobre
   ------------------------------------------------------------ */
.pdr-v129 .site-header,
body.pdr-signature-page.pdr-v129 .site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  min-height: 64px;
  background: #fff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom: 1px solid var(--v131-line);
  box-shadow: none;
}
.pdr-v129 .header-inner,
body.pdr-signature-page.pdr-v129 .header-inner { min-height: 64px; }

/* Logo : pastille Rhin sobre (aplat, sans ombre) */
.pdr-v129 .logo-mark,
body.pdr-signature-page.pdr-v129 .logo-mark {
  width: 38px; height: 38px;
  display: grid; place-items: center;
  border-radius: 10px;
  background: var(--v131-river);
  color: #fff;
  box-shadow: none;
  border: 0;
}
.pdr-v129 .logo-mark::before,
body.pdr-signature-page.pdr-v129 .logo-mark::before { display: none; }
.pdr-v129 .logo-mark svg,
body.pdr-signature-page.pdr-v129 .logo-mark svg {
  width: 21px; height: 21px;
  stroke: #fff; stroke-width: 2; fill: none;
  stroke-linecap: round; stroke-linejoin: round;
}
.pdr-v129 .logo-copy strong,
body.pdr-signature-page.pdr-v129 .logo-copy strong {
  font-weight: 700; letter-spacing: -.02em;
  color: var(--v131-ink); font-size: 1.04rem;
}
.pdr-v129 .logo-copy small,
body.pdr-signature-page.pdr-v129 .logo-copy small {
  color: var(--v131-muted); font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase; font-size: .62rem;
}

/* Nav : pills discrètes */
.pdr-v129 .nav,
body.pdr-signature-page.pdr-v129 .nav {
  display: flex; gap: 2px; background: transparent; border: 0; padding: 0;
  justify-self: center;
}
.pdr-v129 .nav a,
body.pdr-signature-page.pdr-v129 .nav a {
  position: relative;
  font-weight: 500; font-size: .92rem;
  color: var(--v131-ink-2);
  padding: 8px 12px; border-radius: var(--v131-r-xs);
  transition: background .15s var(--v131-ease), color .15s var(--v131-ease);
}
.pdr-v129 .nav a:hover,
body.pdr-signature-page.pdr-v129 .nav a:hover {
  background: var(--v131-bg-warm); color: var(--v131-ink); box-shadow: none;
}
/* Lien actif : discret — texte foncé + fine ligne teal (pas de gros bouton sombre) */
.pdr-v129 .nav a.active,
body.pdr-signature-page.pdr-v129 .nav a.active {
  background: transparent; color: var(--v131-ink); font-weight: 600; box-shadow: none;
}
.pdr-v129 .nav a.active::after,
body.pdr-signature-page.pdr-v129 .nav a.active::after {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: 2px;
  height: 2px; border-radius: 2px; background: var(--v131-terra);
}

.pdr-v129 [data-auth-area] { justify-self: end; }

/* Zone actions : cluster compact et aligné (fini la suite de boutons hétérogènes) */
.pdr-v129 [data-auth-area],
body.pdr-signature-page.pdr-v129 [data-auth-area] {
  display: flex; align-items: center; gap: 8px;
}

/* ---- Compte connecté : discret, ne domine pas la nav ---- */
.pdr-v129 .auth-user-chip,
body.pdr-signature-page.pdr-v129 .auth-user-chip {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 2px 4px !important;
  gap: 8px !important;
  min-height: 40px !important;
  color: var(--v131-ink) !important;
  font-weight: 600 !important;
  font-size: .9rem !important;
}
.pdr-v129 .auth-user-chip *,
body.pdr-signature-page.pdr-v129 .auth-user-chip * { color: var(--v131-ink) !important; font-weight: 600 !important; }
.pdr-v129 .auth-user-avatar,
body.pdr-signature-page.pdr-v129 .auth-user-avatar {
  width: 32px !important; height: 32px !important; min-width: 32px !important; min-height: 32px !important;
  background: var(--v131-river) !important; box-shadow: none !important;
}

/* Cloche notifications : bouton icône sobre */
.pdr-v129 .pdr-notif-inline-btn-v117g,
body.pdr-signature-page .pdr-notif-inline-btn-v117g {
  width: 40px !important; height: 40px !important; min-width: 40px !important; min-height: 40px !important;
  border-radius: var(--v131-r-sm) !important;
  border: 1px solid var(--v131-line) !important;
  background: #fff !important;
  color: var(--v131-ink-2) !important;
  box-shadow: none !important;
}
.pdr-v129 .pdr-notif-inline-btn-v117g:hover,
body.pdr-signature-page .pdr-notif-inline-btn-v117g:hover {
  background: var(--v131-bg-warm) !important;
  border-color: var(--v131-line-str) !important;
  transform: none !important;
}

/* Profil = secondaire compact ; Déconnexion = lien texte discret */
.pdr-v129 .auth-action.auth-profile,
body.pdr-signature-page.pdr-v129 .auth-action.auth-profile {
  background: #fff !important;
  border: 1px solid var(--v131-line-str) !important;
  color: var(--v131-ink) !important;
  min-height: 40px !important;
  border-radius: var(--v131-r-sm) !important;
  font-weight: 600 !important;
  box-shadow: none !important;
}
.pdr-v129 .auth-action.auth-profile:hover,
body.pdr-signature-page.pdr-v129 .auth-action.auth-profile:hover {
  border-color: var(--v131-river) !important;
  color: var(--v131-river) !important;
  background: var(--v131-bg-warm) !important;
}
.pdr-v129 .auth-action.auth-logout,
body.pdr-signature-page.pdr-v129 .auth-action.auth-logout {
  background: transparent !important;
  border: 1px solid transparent !important;
  color: var(--v131-muted) !important;
  min-height: 40px !important;
  font-weight: 600 !important;
  box-shadow: none !important;
}
.pdr-v129 .auth-action.auth-logout:hover,
body.pdr-signature-page.pdr-v129 .auth-action.auth-logout:hover {
  color: var(--v131-danger) !important;
  background: var(--v131-danger-soft) !important;
}

/* ------------------------------------------------------------
   3. BOUTONS — pleins, francs, sans effet « shine »
   ------------------------------------------------------------ */
.pdr-v129 .btn,
body.pdr-signature-page .btn {
  border-radius: var(--v131-r-sm);
  font-weight: 600;
  letter-spacing: -.005em;
  padding: 9px 16px;
  box-shadow: none;
  transition: background .16s var(--v131-ease), border-color .16s var(--v131-ease),
              color .16s var(--v131-ease), transform .16s var(--v131-ease);
}
.pdr-v129 .btn::after,
body.pdr-signature-page .btn::after { display: none !important; }
.pdr-v129 .btn:hover,
body.pdr-signature-page .btn:hover { transform: translateY(-1px); box-shadow: none; }
.pdr-v129 .btn:active,
body.pdr-signature-page .btn:active { transform: none; }

/* PRIMARY — action principale (teal). Fond couleur, ombre discrète. */
.pdr-v129 .btn-primary,
body.pdr-signature-page.pdr-v129 .btn-primary,
body.pdr-signature-page.pdr-v129 .primary,
body.pdr-signature-page.pdr-v129 .search-btn,
.pdr-v129 .v129-search-btn {
  background: var(--v131-terra);
  border: 1px solid var(--v131-terra);
  color: #fff;
  box-shadow: none;
}
.pdr-v129 .btn-primary:hover,
body.pdr-signature-page.pdr-v129 .btn-primary:hover,
body.pdr-signature-page.pdr-v129 .primary:hover,
body.pdr-signature-page.pdr-v129 .search-btn:hover,
.pdr-v129 .v129-search-btn:hover {
  background: var(--v131-terra-2);
  border-color: var(--v131-terra-2);
  box-shadow: 0 2px 8px rgba(15,125,135,.20);
}

/* SECONDARY — fond clair / bordure */
.pdr-v129 .btn-outline,
body.pdr-signature-page .btn-outline,
body.pdr-signature-page .btn-soft {
  background: #fff;
  border: 1px solid var(--v131-line-str);
  color: var(--v131-ink);
  box-shadow: none;
}
.pdr-v129 .btn-outline:hover,
body.pdr-signature-page .btn-outline:hover,
body.pdr-signature-page .btn-soft:hover {
  border-color: var(--v131-river);
  color: var(--v131-river);
  background: var(--v131-bg-warm);
  box-shadow: none;
}

/* TERTIARY — texte seul (liens d'action discrets) */
.pdr-v129 .btn-tertiary,
body.pdr-signature-page .btn-tertiary,
body.pdr-signature-page .btn-text {
  background: transparent;
  border: 1px solid transparent;
  color: var(--v131-river);
  padding-inline: 8px;
}
.pdr-v129 .btn-tertiary:hover,
body.pdr-signature-page .btn-tertiary:hover,
body.pdr-signature-page .btn-text:hover {
  color: var(--v131-terra);
  background: var(--v131-bg-warm);
}

/* DANGER — rouge, réservé aux actions dangereuses */
body.pdr-signature-page .btn-danger,
.pdr-v129 .btn-danger {
  background: var(--v131-danger) !important;
  border: 1px solid var(--v131-danger) !important;
  color: #fff !important;
}
body.pdr-signature-page .btn-danger:hover,
.pdr-v129 .btn-danger:hover { filter: brightness(.94); }

/* Boutons « river » secondaires (ex. CTA neutres) */
body.pdr-signature-page .btn-river,
.pdr-v129 .btn-river {
  background: var(--v131-river); border: 1px solid var(--v131-river); color: #fff;
}
body.pdr-signature-page .btn-river:hover { background: var(--v131-river-deep); border-color: var(--v131-river-deep); }

/* ------------------------------------------------------------
   4. CHAMPS — nets, halo river au focus
   ------------------------------------------------------------ */
body.pdr-signature-page .field,
body.pdr-signature-page input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
body.pdr-signature-page select,
body.pdr-signature-page textarea {
  min-height: 46px;
  padding: 11px 14px;
  border: 1px solid var(--v131-line-str);
  border-radius: var(--v131-r-sm);
  background: #fff;
  color: var(--v131-ink);
  box-shadow: none;
  transition: border-color .15s var(--v131-ease), box-shadow .15s var(--v131-ease);
}
body.pdr-signature-page .field:hover,
body.pdr-signature-page input:hover,
body.pdr-signature-page select:hover,
body.pdr-signature-page textarea:hover { border-color: var(--v131-river-2); }
body.pdr-signature-page .field:focus,
body.pdr-signature-page input:focus,
body.pdr-signature-page select:focus,
body.pdr-signature-page textarea:focus {
  outline: none;
  border-color: var(--v131-river);
  background: #fff;
  box-shadow: var(--v131-focus);
}
body.pdr-signature-page label,
body.pdr-signature-page .contact-label,
body.pdr-signature-page .settings-field > span {
  color: var(--v131-ink-2); font-weight: 700; font-size: .86rem; letter-spacing: -.01em;
}
body.pdr-signature-page input::placeholder,
body.pdr-signature-page textarea::placeholder { color: var(--v131-faint); }

/* ------------------------------------------------------------
   5. CARTES ANNONCES — cœur de la marketplace
   Unifie l'accueil (.v129-card) et la page annonces (.v130-card).
   ------------------------------------------------------------ */
.pdr-v129 .v129-card,
.v130-card {
  background: var(--v131-card);
  border: 1px solid var(--v131-line);
  border-radius: var(--v131-r);
  overflow: hidden;
  box-shadow: none;                 /* bordure seule au repos (pas bordure + ombre) */
  transition: border-color .18s var(--v131-ease), box-shadow .18s var(--v131-ease),
              transform .18s var(--v131-ease);
}
.pdr-v129 .v129-card:hover,
.v130-card:hover {
  transform: translateY(-2px);      /* micro-élévation discrète */
  border-color: var(--v131-line-str);
  box-shadow: var(--v131-sh-md);    /* ombre légère uniquement au survol */
}

.pdr-v129 .v129-card-img,
.v130-card-img {
  aspect-ratio: 4 / 3;
  background: var(--v131-bg-warm);
  position: relative;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.pdr-v129 .v129-card-img img,
.v130-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s var(--v131-ease); }
.pdr-v129 .v129-card:hover .v129-card-img img,
.v130-card:hover .v130-card-img img { transform: scale(1.04); }
.v130-card-img svg { width: 34px; height: 34px; stroke: #adc3c5; fill: none; stroke-width: 1.5; }

.pdr-v129 .v129-card-body { padding: 12px 13px 14px; gap: 2px; }
.v130-card-body { padding: 12px 13px 14px; gap: 2px; }

/* Prix : immédiatement lisible (le point d'ancrage de la carte) */
.pdr-v129 .v129-price,
.v130-card-price {
  font-weight: 800; font-size: 1.08rem;
  color: var(--v131-terra); letter-spacing: -.02em;
}
/* Titre : léger (laisse le prix dominer) + hauteur 2 lignes = cartes uniformes */
.pdr-v129 .v129-card h3,
.v130-card .v130-card-title,
h3.v130-card-title {
  font-size: .9rem; font-weight: 500; line-height: 1.35;
  color: var(--v131-ink);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  min-height: calc(0.9rem * 1.35 * 2);
  margin-top: 1px;
}
.pdr-v129 .v129-meta,
.v130-card-meta { font-size: .79rem; color: var(--v131-muted); margin-top: 3px; }

/* Condition (annonces) : texte discret, PAS de pastille décorative */
.v130-card-state {
  align-self: flex-start;
  background: transparent; border: 0; padding: 0;
  font-size: .75rem; font-weight: 600; color: var(--v131-ink-2);
  margin-top: 2px;
}
/* Vrai STATUT (En ligne / Vendue) : reste une pastille (statut = pill légitime) */
.pdr-v129 .v129-status {
  align-self: flex-start;
  font-size: .7rem; font-weight: 700; letter-spacing: .01em;
  padding: 2px 8px; border-radius: 999px;
  background: var(--v131-moss-soft); color: var(--v131-moss);
  margin-bottom: 4px;
}
.pdr-v129 .v129-status.sold { background: var(--v131-terra-soft); color: var(--v131-terra-deep); }

.pdr-v129 .v129-card-actions a {
  border: 1px solid var(--v131-line-str); border-radius: var(--v131-r-xs);
  color: var(--v131-ink); font-weight: 600;
}
.pdr-v129 .v129-card-actions a:hover { border-color: var(--v131-river); color: var(--v131-river); }

/* ------------------------------------------------------------
   6. ACCUEIL
   ------------------------------------------------------------ */
.v129-hero {
  background:
    radial-gradient(110% 80% at 50% -20%, #eef6f7 0%, transparent 58%),
    var(--v131-bg);
  border-bottom: 1px solid var(--v131-line);
  padding: 44px 0 32px;
}
.v129-hero-inner { max-width: 820px; gap: 18px; }
/* (typographie de .v129-tagline gérée dans la section 1bis) */
.v129-subline { color: var(--v131-ink-2); font-size: 1.02rem; margin-top: -4px; }

/* Barre de recherche — pièce maîtresse (bordure seule + halo au focus) */
.v129-search {
  border: 1.5px solid var(--v131-line-str);
  border-radius: var(--v131-r);
  box-shadow: none;
  background: #fff;
}
.v129-search:focus-within {
  border-color: var(--v131-river);
  box-shadow: var(--v131-focus);
}
.v129-search-field svg { stroke: var(--v131-muted); }
.v129-search-field input { padding: 17px 2px; font-size: 1rem; color: var(--v131-ink); }
.v129-search-field.city { flex: 0 1 240px; border-left: 1px solid var(--v131-line); }
.v129-search-btn {
  font-weight: 600; font-size: .95rem; padding: 0 30px; margin: 6px; border-radius: var(--v131-r-sm);
  background: var(--v131-terra);
}
.v129-search-btn:hover { background: var(--v131-terra-2); }

/* Villes rapides : discrètes, sous la recherche */
.v129-cities { gap: 6px 14px; font-size: .9rem; color: var(--v131-muted); }

.v129-cities a { color: var(--v131-river); }
.v129-cities a:hover { text-decoration-color: var(--v131-river); }

/* Chips catégories */
.v129-cats { padding: 26px 0 4px; }
.v129-cat {
  border: 1px solid var(--v131-line-str);
  border-radius: 999px;
  background: #fff;
  color: var(--v131-ink);
  font-weight: 600;
  padding: 9px 15px 9px 12px;
  transition: border-color .15s var(--v131-ease), background .15s var(--v131-ease), transform .15s var(--v131-ease);
}
.v129-cat:hover { border-color: var(--v131-river); background: var(--v131-bg-warm); transform: translateY(-1px); }
.v129-cat svg { stroke: var(--v131-river); }
.v129-cat .v129-cat-count {
  color: var(--v131-muted); font-weight: 600; font-size: .78rem;
  background: var(--v131-bg-warm); border-radius: 999px; padding: 1px 7px; margin-left: 2px;
}

/* Sections — rythme régulier */
.v129-block { padding: 34px 0 4px; }
.v129-block-head { margin-bottom: 16px; }
.v129-block-head h2 { color: var(--v131-ink); }
.v129-block-head .v129-more { color: var(--v131-river); font-weight: 600; }
.v129-block-head .v129-more:hover { color: var(--v131-terra); }
.v129-grid { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; }

/* Bande confiance — discrète (une ligne, accent léger) */
.v129-trust { background: var(--v131-bg-warm); border-color: var(--v131-line); padding: 20px 0; margin-top: 40px; }
.v129-trust-icon { background: var(--v131-terra-soft); border-radius: var(--v131-r-sm); width: 40px; height: 40px; }
.v129-trust-icon svg { stroke: var(--v131-terra); }
.v129-trust-text { color: var(--v131-ink-2); font-weight: 400; }
.v129-trust-text a { color: var(--v131-river); font-weight: 600; }
.v129-trust-text a:hover { color: var(--v131-terra); }

/* Bande dépôt — CTA sobre (aplat river, sans ombre) */
.v129-sell-inner {
  background: var(--v131-river);
  border-radius: var(--v131-r-lg);
  box-shadow: none;
}
.v129-sell-inner strong { color: #fff; font-size: 1.12rem; font-weight: 700; letter-spacing: -.01em; }
.v129-sell-inner p { color: #c3d0d3; }
.v129-sell-inner .btn-primary { background: var(--v131-terra); border-color: var(--v131-terra); }
.v129-sell-inner .btn-primary:hover { background: #fff; border-color: #fff; color: var(--v131-terra-deep); }

/* Footer accueil */
.v129-footer { background: var(--v131-river-deep); color: #aebcc0; }
.v129-footer-brand strong { color: #fdfbf7; }
.v129-footer-brand svg { stroke: var(--v131-gold); }
.v129-footer-col strong { color: #e6e1d6; }
.v129-footer-col a:hover { color: #fff; }

/* ------------------------------------------------------------
   7. PAGES INTERNES — coquille
   ------------------------------------------------------------ */
/* Héros de page : bandeau mince, net */
body.pdr-signature-page.pdr-v129 :is(
  .page-hero, .form-hero-pro, .profile-hero, .seller-hero, .my125-hero,
  .fav-hero, .messages-hero, .notif-hero, .settings-hero, .saved-hero-v121,
  .login-hero, .register-hero, .contact-hero, .legal-hero, .security-hero,
  .admin-hero, .mod-hero, main > .hero
) {
  padding: 26px 0 22px;
  background:
    radial-gradient(120% 120% at 100% 0%, #eaf4f5 0%, transparent 55%),
    #fff;
  border-bottom: 1px solid var(--v131-line);
}
body.pdr-signature-page.pdr-v129 :is(
  .page-hero, .form-hero-pro, .profile-hero, .seller-hero, .my125-hero,
  .fav-hero, .messages-hero, .notif-hero, .settings-hero, .saved-hero-v121,
  .login-hero, .register-hero, .contact-hero, .legal-hero, .security-hero,
  .admin-hero, .mod-hero, main > .hero
) h1 {
  color: var(--v131-ink);
}
body.pdr-signature-page.pdr-v129 .breadcrumb {
  font-size: .82rem; color: var(--v131-muted); font-weight: 600;
}
body.pdr-signature-page.pdr-v129 .breadcrumb a { color: var(--v131-river); }

/* Panneaux : bordure seule (pas d'ombre systématique) */
body.pdr-signature-page.pdr-v129 .page-panel {
  background: #fff !important;
  border: 1px solid var(--v131-line) !important;
  border-radius: var(--v131-r) !important;
  box-shadow: none !important;
  padding: 20px 22px;
}
body.pdr-signature-page.pdr-v129 .panel-header strong { color: var(--v131-ink); font-weight: 700; letter-spacing: -.01em; }

/* ------------------------------------------------------------
   3bis. UTILITAIRES COMMUNS — pour désencartonner (titres,
   séparateurs, libellé/valeur) au lieu d'empiler des cartes.
   ------------------------------------------------------------ */
body.pdr-signature-page hr,
body.pdr-v129 hr,
.pdr-sep {
  border: 0;
  border-top: 1px solid var(--v131-line);
  margin: var(--sp-6) 0;
}
.pdr-section-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--v131-ink);
  letter-spacing: -.01em;
  margin: 0 0 var(--sp-4);
}
.pdr-eyebrow {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--v131-muted);
}
/* Rangées libellé / valeur (remplacent les mini-cartes d'info) */
.pdr-kv { display: grid; grid-template-columns: minmax(110px, auto) 1fr; gap: var(--sp-1) var(--sp-4); }
.pdr-kv > dt, .pdr-kv .pdr-k { color: var(--v131-muted); font-weight: 500; }
.pdr-kv > dd, .pdr-kv .pdr-v { color: var(--v131-ink); font-weight: 600; margin: 0; }
.pdr-kv-list { display: flex; flex-direction: column; }
.pdr-kv-row {
  display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-4);
  padding: 10px 0; border-bottom: 1px solid var(--v131-line);
}
.pdr-kv-row:last-child { border-bottom: 0; }
.pdr-kv-row .pdr-k { color: var(--v131-muted); font-weight: 500; }
.pdr-kv-row .pdr-v { color: var(--v131-ink); font-weight: 600; text-align: right; }

/* Titres génériques de section */
body.pdr-signature-page.pdr-v129 :is(h1,h2,h3,h4) { letter-spacing: -.02em; }

/* ------------------------------------------------------------
   8. PAGE ANNONCES — grille + filtres
   ------------------------------------------------------------ */
body.pdr-page-annonces .results-list {
  grid-template-columns: repeat(3, 1fr); gap: 16px;
}
body.pdr-page-annonces .listing-layout {
  display: grid; grid-template-columns: 258px 1fr; gap: 28px; align-items: start;
}
/* Sidebar SOBRE : ce n'est plus une grosse carte, juste une colonne
   (sélecteur .page-panel.filters-panel pour battre la règle .page-panel !important) */
body.pdr-page-annonces .page-panel.filters-panel {
  position: sticky; top: 80px;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* Résumé résultats — barre légère (bordure basse seule, pas une carte) */
body.pdr-page-annonces .search-summary.page-panel {
  border: 0 !important;
  border-bottom: 1px solid var(--v131-line) !important;
  border-radius: 0 !important;
  padding: 4px 0 14px !important;
  box-shadow: none !important;
  background: transparent !important;
}
#resultCount { color: var(--v131-ink); font-weight: 700; font-size: 1.02rem; }

/* Chips de filtres actifs */
.filter-chip {
  border: 1px solid var(--v131-terra-line);
  background: var(--v131-terra-soft);
  color: var(--v131-terra-deep);
  border-radius: 999px; padding: 6px 11px; font-size: .82rem; font-weight: 700;
}

/* Sélecteurs personnalisés */
.pdr-select-button {
  min-height: 46px; border: 1px solid var(--v131-line-str); border-radius: var(--v131-r-sm);
  color: var(--v131-ink); font-weight: 650; box-shadow: none;
}
.pdr-select-button:hover,
.pdr-select-wrap.is-open .pdr-select-button {
  border-color: var(--v131-river); box-shadow: none;
}
.pdr-select-button::after { color: var(--v131-muted); }
.pdr-select-menu {
  border: 1px solid var(--v131-line-2); border-radius: var(--v131-r-sm);
  box-shadow: var(--v131-sh-md);
}
.pdr-select-title { background: var(--v131-bg-warm); color: var(--v131-ink); font-weight: 800; }
.pdr-select-option { color: var(--v131-ink); font-weight: 600; }
.pdr-select-option:hover,
.pdr-select-option.is-selected { background: var(--v131-terra-soft); color: var(--v131-terra-deep); }

/* Suggestions de localisation */
.location-suggestions {
  border: 1px solid var(--v131-line-2); border-radius: var(--v131-r-sm); box-shadow: var(--v131-sh-md);
}
.location-suggestion { color: var(--v131-ink); font-weight: 600; }
.location-suggestion:hover { background: var(--v131-terra-soft); }
.location-help { color: var(--v131-muted); }
.location-help strong { color: var(--v131-river); }

/* Pagination */
.pagination button {
  border: 1px solid var(--v131-line-str); border-radius: var(--v131-r-sm);
  min-width: 40px; height: 40px; font-weight: 700; color: var(--v131-ink);
  transition: border-color .14s var(--v131-ease), background .14s var(--v131-ease);
}
.pagination button:hover:not(:disabled) { border-color: var(--v131-river); background: var(--v131-bg-warm); }
.pagination button.is-active { background: var(--v131-river); color: #fff; border-color: var(--v131-river); }

/* Vendeur (ligne owner) */
.result-owner { color: var(--v131-river); font-weight: 700; }
.result-owner:hover { color: var(--v131-terra); }
.listing-owner-avatar { background: linear-gradient(135deg, var(--v131-river), var(--v131-river-2)); box-shadow: none; }

/* Recherches sauvegardées */
.saved-searches-v120 { border-top: 1px solid var(--v131-line); }
.saved-searches-v120-head strong { color: var(--v131-ink); }
.saved-searches-v120-head a { color: var(--v131-river); }
.saved-search-btn-v120 {
  border: 1px solid var(--v131-line-str); background: #fff; color: var(--v131-river);
  font-weight: 700; border-radius: var(--v131-r-sm);
}
.saved-search-btn-v120:hover:not(:disabled) { background: var(--v131-bg-warm); border-color: var(--v131-river); }
.saved-search-item-v120 { border: 1px solid var(--v131-line); border-radius: var(--v131-r-sm); }
.saved-search-item-v120 strong { color: var(--v131-ink); }
.saved-search-item-actions-v120 button,
.saved-search-item-actions-v120 a {
  border: 1px solid var(--v131-line-str); background: var(--v131-bg-warm); color: var(--v131-river); font-weight: 700;
}
.saved-search-item-actions-v120 .danger { color: #a9493f; background: #fdf3f1; border-color: rgba(169,73,63,.2); }

/* État vide */
body.pdr-signature-page.pdr-v129 .empty-state h2 { color: var(--v131-ink); font-weight: 800; }
body.pdr-signature-page.pdr-v129 .empty-state p { color: var(--v131-ink-2); }

/* ------------------------------------------------------------
   9. FOOTER SIGNATURE (pages) + footer-rich hérité
   ------------------------------------------------------------ */
body.pdr-signature-page .pdr-footer-signature {
  background: var(--v131-river-deep);
  color: #aebcc0;
  border-top: 0;
}
body.pdr-signature-page .pdr-footer-signature::before { display: none !important; }
body.pdr-signature-page .pdr-footer-signature :is(h3,h4) { color: #f4efe6; }
body.pdr-signature-page .pdr-footer-signature a { color: #b7c4c7; }
body.pdr-signature-page .pdr-footer-signature a:hover { color: #fff; }
body.pdr-signature-page .pdr-footer-signature small { color: #8ea0a4; }
body.pdr-signature-page .pdr-footer-signature .footer-logo-mark {
  background: linear-gradient(135deg, var(--v131-gold), #5aa6ac); color: #0b3a3f;
}
body.pdr-signature-page .pdr-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); color: #8ea0a4; }

/* Footer « rich » (annonces.html embarque cette variante) */
.footer-rich { background: var(--v131-river-deep); border-top: 0; }
.footer-rich .footer-brand-head { color: #f4efe6; }
.footer-rich .footer-brand p { color: #b7c4c7; }
.footer-logo-mark { background: linear-gradient(135deg, var(--v131-gold), #5aa6ac); color: #0b3a3f; }
.footer-col strong { color: #9fd0d4; }
.footer-col a { color: #b7c4c7; }
.footer-col a:hover { color: #fff; }
.footer-rich-grid { border-bottom: 1px solid rgba(255,255,255,.12); }
.footer-rich-bottom { color: #8ea0a4; }

/* ============================================================
   11. CONTRÔLES UNIFIÉS — menus déroulants & autocomplétion
   UN SEUL look pour toutes les variantes du site :
   selects "enhanced" (pdr-select, pdr-form-select, contact-select)
   et autocomplétion commune (deposit/register/settings-city-* + location-*).
   Sélecteurs par suffixe → couvre toutes les versions sans toucher au JS.
   ============================================================ */

/* — Boutons de menu déroulant — */
[class*="-select-button"] {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--v131-line-str) !important;
  border-radius: var(--v131-r-sm) !important;
  background: #fff !important;
  color: var(--v131-ink) !important;
  font-weight: 600;
  box-shadow: none !important;
}
[class*="-select-button"]:hover,
[class*="-select"].is-open [class*="-select-button"] {
  border-color: var(--v131-river) !important;
  box-shadow: none !important;
}
[class*="-select-button"]::after { color: var(--v131-muted); }

/* — Panneaux déroulants — */
[class*="-select-menu"] {
  border: 1px solid var(--v131-line-2) !important;
  border-radius: var(--v131-r-sm) !important;
  box-shadow: var(--v131-sh-md) !important;
  padding: 6px;
  background: #fff;
}
[class*="-select-title"] {
  background: transparent !important;
  color: var(--v131-muted) !important;
  font-weight: 700 !important;
  font-size: .7rem !important;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: 8px 10px 4px !important;
}
[class*="-select-option"] {
  border-radius: var(--v131-r-xs);
  color: var(--v131-ink) !important;
  font-weight: 600 !important;
  padding: 10px 11px !important;
}
[class*="-select-option"]:hover,
[class*="-select-option"].is-selected,
[class*="-select-option"].is-active {
  background: var(--v131-moss-soft) !important;
  color: var(--v131-river-deep) !important;
}

/* — Autocomplétion commune : boîtes — */
[class*="city-suggestions"],
[class*="city-autocomplete-box"],
.location-suggestions {
  border: 1px solid var(--v131-line-2) !important;
  border-radius: var(--v131-r-sm) !important;
  box-shadow: var(--v131-sh-md) !important;
  padding: 6px !important;
  background: #fff !important;
}
/* — Autocomplétion commune : options — */
[class*="city-option"],
[class*="city-suggestion"],
.location-suggestion {
  border-radius: var(--v131-r-xs) !important;
  color: var(--v131-ink) !important;
  font-weight: 600 !important;
  padding: 10px 11px !important;
}
[class*="city-option"]:hover,
[class*="city-option"].is-active,
[class*="city-suggestion"]:hover,
[class*="city-suggestion"].is-active,
.location-suggestion:hover {
  background: var(--v131-moss-soft) !important;
  color: var(--v131-river-deep) !important;
}
[class*="city-empty"] {
  color: var(--v131-muted) !important;
  padding: 12px !important;
  font-weight: 600 !important;
}

/* — Selects natifs (non enhanced) : chevron cohérent — */
body.pdr-signature-page select,
.pdr-v129 select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237c8890' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 16px;
  padding-right: 40px;
}

/* — Cases à cocher & radios : accent grès — */
body.pdr-signature-page input[type="checkbox"],
body.pdr-signature-page input[type="radio"],
.pdr-v129 input[type="checkbox"],
.pdr-v129 input[type="radio"] {
  accent-color: var(--v131-terra);
  width: 18px;
  height: 18px;
  min-height: 0;
  cursor: pointer;
}

/* ============================================================
   12. FORMULAIRES EN SECTIONS — dépôt / modification d'annonce
   En-têtes pleine largeur qui structurent le form-grid.
   ============================================================ */
.pdr-form-section-head {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 14px 0 2px;
  padding-top: 22px;
  border-top: 1px solid var(--v131-line);
}
.pdr-form-section-head:first-child {
  border-top: 0;
  padding-top: 0;
  margin-top: 0;
}
.pdr-form-section-num {
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--v131-terra-soft);
  color: var(--v131-terra-deep);
  font-weight: 800;
  font-size: .9rem;
}
.pdr-form-section-label {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
  font-weight: 750;
  font-size: 1.05rem;
  color: var(--v131-ink);
  letter-spacing: -.015em;
}
.pdr-form-section-label small {
  font-weight: 500;
  font-size: .8rem;
  color: var(--v131-muted);
  margin-top: 2px;
  letter-spacing: 0;
}

/* ============================================================
   13. MENU DÉROULANT « CATÉGORIES » (barre de nav)
   ============================================================ */
.pdr-navdrop { position: relative; display: inline-flex; }
.pdr-navdrop-trigger { display: inline-flex !important; align-items: center; gap: 6px; }
.pdr-navdrop-caret {
  width: 7px; height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin-top: -3px; opacity: .55;
  transition: transform .16s var(--v131-ease);
}
.pdr-navdrop:hover .pdr-navdrop-caret,
.pdr-navdrop.is-open .pdr-navdrop-caret { transform: rotate(-135deg); margin-top: 2px; }

.pdr-navdrop-panel {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  min-width: 256px;
  background: #fff;
  border: 1px solid var(--v131-line-2);
  border-radius: var(--v131-r);
  box-shadow: var(--v131-sh-lg);
  padding: 8px;
  opacity: 0; visibility: hidden;
  transition: opacity .16s var(--v131-ease), transform .16s var(--v131-ease);
  z-index: 1200;
}
/* pont invisible pour ne pas perdre le survol dans l'espace */
.pdr-navdrop-panel::before {
  content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px;
}
.pdr-navdrop:hover .pdr-navdrop-panel,
.pdr-navdrop.is-open .pdr-navdrop-panel {
  opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0);
}
.pdr-navdrop-panel a {
  display: block;
  padding: 9px 11px;
  border-radius: var(--v131-r-xs);
  color: var(--v131-ink) !important;
  font-weight: 600;
  font-size: .9rem;
}
.pdr-navdrop-panel a:hover {
  background: var(--v131-moss-soft);
  color: var(--v131-river-deep) !important;
}
.pdr-navdrop-all {
  margin-top: 4px; padding-top: 11px !important;
  border-top: 1px solid var(--v131-line);
  color: var(--v131-river) !important;
  font-weight: 700 !important;
}

/* ============================================================
   14. ONGLETS ESPACE MEMBRE
   ============================================================ */
.pdr-member-tabs {
  background: #fff;
  border-bottom: 1px solid var(--v131-line);
}
.pdr-member-tabs-inner {
  display: flex;
  gap: 2px;
  overflow-x: auto;
  scrollbar-width: none;
}
.pdr-member-tabs-inner::-webkit-scrollbar { display: none; }
.pdr-member-tabs a {
  padding: 13px 15px;
  font-weight: 650;
  font-size: .92rem;
  color: var(--v131-muted);
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color .15s var(--v131-ease), border-color .15s var(--v131-ease);
}
.pdr-member-tabs a:hover { color: var(--v131-ink); }
.pdr-member-tabs a.is-active {
  color: var(--v131-terra);
  border-bottom-color: var(--v131-terra);
}

/* ============================================================
   15. FILTRES ANNONCES — colonne sobre
   ============================================================ */
body.pdr-page-annonces .filters-panel .panel-header {
  padding-bottom: 10px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--v131-line);
}
body.pdr-page-annonces .filters-panel .panel-header strong {
  font-size: 1.05rem; font-weight: 700; color: var(--v131-ink);
}
body.pdr-page-annonces .filter-grid { gap: 12px; }

/* « Rechercher » = action principale bien visible (pleine largeur) */
body.pdr-page-annonces .filter-grid .search-btn {
  width: 100%;
  min-height: 46px;
  font-size: .95rem;
  margin-top: 2px;
}
/* « Effacer les filtres » = secondaire discret (lien texte, pas un bouton plein) */
body.pdr-page-annonces #resetFilters {
  width: 100%;
  margin-top: 2px;
  background: transparent !important;
  border: 0 !important;
  color: var(--v131-muted) !important;
  font-weight: 600 !important;
  min-height: 36px;
}
body.pdr-page-annonces #resetFilters:hover {
  color: var(--v131-danger) !important;
  background: var(--v131-bg-warm) !important;
}

/* Toolbar résultats : compteur à gauche, action à droite */
.search-summary.page-panel {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  flex-wrap: wrap;
}
.search-summary #resultInfo { color: var(--v131-muted); }

/* ============================================================
   16. CORRECTIF ICÔNES DE TUILES (contact / sécurité)
   Sur ces pages, une règle « X span:first-child { background } »
   touchait aussi l'icône imbriquée (elle aussi span:first-child),
   la rendant invisible (masque coloré comme son propre fond).
   On force une icône visible et centrée.
   ============================================================ */
.contact-mini-item > span:first-child,
.security-mini-stat > span:first-child,
[class*="-mini-item"] > span:first-child,
[class*="-mini-stat"] > span:first-child {
  display: grid;
  place-items: center;
}
.contact-mini-item .pdr-icon,
.security-mini-stat .pdr-icon,
[class*="-mini-item"] .pdr-icon,
[class*="-mini-stat"] .pdr-icon {
  width: 20px !important;
  height: 20px !important;
  background-color: var(--v131-river) !important;
}

/* Bouton « Afficher » du mot de passe (styles inline cyan hérités) */
.pdr-password-toggle {
  background: #fff !important;
  color: var(--v131-river) !important;
  border: 1px solid var(--v131-line-str) !important;
  border-radius: var(--v131-r-xs) !important;
  font-weight: 700 !important;
}
.pdr-password-toggle:hover {
  background: var(--v131-bg-warm) !important;
  border-color: var(--v131-river) !important;
  color: var(--v131-river-deep) !important;
}

/* ============================================================
   17. MENU MOBILE (drawer session-header) — restes bleus → Rhin
   ============================================================ */
.pdr-mobile-clean-mark,
.pdr-mobile-clean-avatar {
  background-image: linear-gradient(150deg, var(--v131-river), var(--v131-river-2)) !important;
}
.pdr-mobile-clean-link.primary {
  background-image: linear-gradient(135deg, var(--v131-river), var(--v131-river-2)) !important;
  background-color: var(--v131-river) !important;
  border-color: var(--v131-river) !important;
}

/* ============================================================
   18. COHÉRENCE HEADER / CONTENEUR / FOOTER
   Même géométrie EXACTE sur toutes les pages (accueil comme
   pages internes) : largeur, gouttières, header en grille avec
   nav centrée. Corrige les décalages « pas au même endroit ».
   ============================================================ */
body.pdr-v129 .container,
body.pdr-signature-page .container,
body.pdr-v129 .header-inner,
body.pdr-signature-page .header-inner {
  width: min(1280px, 100%);
  max-width: none;
  margin-inline: auto;
  padding-left: 24px !important;
  padding-right: 24px !important;
  box-sizing: border-box;
}

/* Header : grille identique partout (logo | nav centrée | actions),
   uniquement en desktop — en dessous, session-header.js gère le
   menu mobile (burger), on ne touche donc pas à la disposition. */
@media (min-width: 981px) {
  body.pdr-v129 .header-inner,
  body.pdr-signature-page .header-inner {
    display: grid;
    /* logo et actions à leur largeur réelle, nav au centre de l'espace
       restant : garantit toujours un écart (jamais de chevauchement) */
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    min-height: 66px;
  }
  body.pdr-v129 .logo,
  body.pdr-signature-page .logo { justify-self: start; }
  body.pdr-v129 .header-inner .nav,
  body.pdr-signature-page .header-inner .nav { justify-self: center; }
  body.pdr-v129 [data-auth-area],
  body.pdr-signature-page [data-auth-area] {
    justify-self: end;
    margin-left: 0 !important;
  }
}

/* Barre de défilement de la nav (visible surtout sur l'admin) : masquée */
.site-header .nav {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.site-header .nav::-webkit-scrollbar { display: none; }

/* ============================================================
   19. ESPACE ANNONCES — recherche · liste · détail
   Cohérence teal, plus lisse, quelques touches de détail.
   ============================================================ */

/* — Cartes (liste + accueil) : prix plus présent, méta avec repère lieu — */
.v130-card-price,
.pdr-v129 .v129-price {
  font-size: 1.14rem;
  font-weight: 800;
  letter-spacing: -.02em;
}
.v130-card-meta,
.pdr-v129 .v129-meta {
  display: flex;
  align-items: center;
  gap: 5px;
}
.v130-card-meta::before,
.pdr-v129 .v129-meta::before {
  content: "";
  width: 13px;
  height: 13px;
  flex: none;
  background: var(--v131-muted);
  -webkit-mask: url("../icons/map-pin.svg") center / contain no-repeat;
  mask: url("../icons/map-pin.svg") center / contain no-repeat;
}
/* Vrai statut « Vendue » : pastille teal (la condition, elle, reste en texte discret) */
.pdr-v129 .v129-status.sold {
  background: var(--v131-terra-soft);
  color: var(--v131-terra-deep);
}

/* — Cœur favori sur la photo des cartes — */
.pdr-fav-btn {
  position: absolute;
  top: 9px;
  right: 9px;
  z-index: 3;
  width: 34px;
  height: 34px;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  background: rgba(255, 255, 255, .92);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  box-shadow: var(--v131-sh-sm);
  display: grid;
  place-items: center;
  opacity: 0;
  transform: translateY(-4px) scale(.96);
  transition: opacity .16s var(--v131-ease), transform .16s var(--v131-ease), background .16s var(--v131-ease);
}
.v130-card:hover .pdr-fav-btn,
.pdr-v129 .v129-card:hover .pdr-fav-btn,
.pdr-fav-btn.is-fav,
.pdr-fav-btn:focus-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.pdr-fav-btn svg { width: 18px; height: 18px; fill: none; stroke: var(--v131-ink-2); stroke-width: 2; stroke-linejoin: round; }
.pdr-fav-btn:hover { background: #fff; }
.pdr-fav-btn.is-fav svg { fill: var(--v131-terra); stroke: var(--v131-terra); }
.pdr-fav-btn.just-popped { animation: pdrFavPop .32s var(--v131-ease); }
@keyframes pdrFavPop { 0% { transform: scale(1); } 42% { transform: scale(1.28); } 100% { transform: scale(1); } }
@media (hover: none) {
  .pdr-fav-btn { opacity: 1; transform: none; }
}

/* — Vendeur sur la carte — */
.v130-card-seller {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 9px;
  padding-top: 9px;
  border-top: 1px solid var(--v131-line);
  font-size: .78rem;
  font-weight: 600;
  color: var(--v131-ink-2);
}
.v130-card-seller-dot {
  flex: none;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: linear-gradient(150deg, var(--v131-river), var(--v131-river-2));
  color: #fff;
  font-size: .66rem;
  font-weight: 800;
}

/* — Barre de tri (toolbar résultats) — */
.results-toolbar-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.results-sort-label { color: var(--v131-muted); font-weight: 700; font-size: .85rem; }
.results-sort-select {
  min-height: 42px !important;
  width: auto !important;
  min-width: 168px;
  padding: 8px 40px 8px 13px !important;
  font-weight: 650;
}

/* — Galerie de la page détail — */
.gallery-main {
  border-radius: var(--v131-r-lg) !important;
  box-shadow: var(--v131-sh-sm);
  background: var(--v131-bg-warm);
}
.gallery-thumb {
  border-radius: var(--v131-r-sm) !important;
  border: 1px solid var(--v131-line) !important;
  overflow: hidden;
  transition: border-color .15s var(--v131-ease), transform .15s var(--v131-ease);
}
.gallery-thumb:hover { border-color: var(--v131-terra-2) !important; transform: translateY(-1px); }
.gallery-thumb.is-active {
  border-color: var(--v131-terra) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(15,125,135,.22) !important;
}

/* — Bloc prix / titre / badges (sidebar détail) — */
.detail-price {
  color: var(--v131-terra);
  letter-spacing: -.03em;
}
.listing-status-pill,
.listing-status-pill-v116 {
  background: var(--v131-terra-soft) !important;
  color: var(--v131-terra-deep) !important;
  border-color: var(--v131-terra-line) !important;
}
.listing-quick-item-v116 {
  border-radius: var(--v131-r-sm) !important;
  transition: border-color .15s var(--v131-ease), box-shadow .15s var(--v131-ease);
}
.listing-quick-item-v116:hover {
  border-color: var(--v131-terra-line) !important;
  box-shadow: var(--v131-sh-xs);
}
.listing-seller-inline {
  border-radius: var(--v131-r) !important;
  transition: border-color .15s var(--v131-ease), box-shadow .15s var(--v131-ease);
}
.listing-seller-inline:hover {
  border-color: var(--v131-terra-line) !important;
  box-shadow: var(--v131-sh-sm);
}
.seller-avatar-img,
.listing-seller-inline .avatar {
  background: linear-gradient(150deg, var(--v131-river), var(--v131-river-2)) !important;
}

/* — Description + faits — */
.listing-section-eyebrow,
.listing-detail-eyebrow-v116,
.listing-facts-grid > div strong {
  color: var(--v131-terra-deep);
}
.listing-facts-grid > div {
  border-radius: var(--v131-r-sm) !important;
}

/* — Panneau « Rendez-vous sécurisé » / réassurance : accent teal — */
.listing-mini-reassurance-v116 strong,
.safe-places-panel strong { color: var(--v131-ink); }

/* ============================================================
   19b. PAGE DÉTAIL — UNIFICATION (fini le patchwork)
   Un seul langage : panneaux extérieurs = rayon 16 / fond blanc /
   bordure fine ; tuiles intérieures = rayon 12 / fond gris-bleu doux.
   ============================================================ */
/* Panneaux extérieurs : tous au même rayon 16, fond blanc, bordure fine.
   Préfixés body.pdr-page-annonce-detail pour battre la règle v127 (0,2,1 !important). */
body.pdr-page-annonce-detail .gallery-card,
body.pdr-page-annonce-detail .listing-gallery-card,
body.pdr-page-annonce-detail .listing-buy-card,
body.pdr-page-annonce-detail .listing-buy-card-v116,
body.pdr-page-annonce-detail .description-block,
body.pdr-page-annonce-detail .listing-description-card,
body.pdr-page-annonce-detail .listing-description-card-v116,
body.pdr-page-annonce-detail .listing-seller-card,
body.pdr-page-annonce-detail .listing-safe-card,
body.pdr-page-annonce-detail .seller-profile-card,
body.pdr-page-annonce-detail .safe-places-panel,
body.pdr-page-annonce-detail .report-box,
body.pdr-page-annonce-detail .detail-sidebar > .page-panel {
  border-radius: var(--v131-r) !important;
  background: #fff !important;
  border: 1px solid var(--v131-line) !important;
  box-shadow: var(--v131-sh-xs) !important;
}
body.pdr-page-annonce-detail .detail-sidebar > .page-panel { padding: 18px !important; }
body.pdr-page-annonce-detail .description-block { padding: 20px !important; }

/* Tuiles internes : même rayon 12, même fond doux, même bordure */
body.pdr-page-annonce-detail .listing-quick-item-v116,
body.pdr-page-annonce-detail .listing-seller-inline,
body.pdr-page-annonce-detail .listing-mini-reassurance-v116,
body.pdr-page-annonce-detail .listing-facts-grid > div {
  border-radius: var(--v131-r-sm) !important;
  background: var(--v131-bg-warm) !important;
  border: 1px solid var(--v131-line) !important;
}
body.pdr-page-annonce-detail .seller-trust-v115c { border-radius: var(--v131-r) !important; }

/* Rythme vertical régulier entre les blocs des deux colonnes */
body.pdr-page-annonce-detail .listing-main-column,
body.pdr-page-annonce-detail .detail-sidebar {
  gap: 16px !important;
}

/* Titre / prix : hiérarchie nette et moderne */
.detail-title,
.detail-title-v116 {
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: 1.15;
}
.detail-price {
  font-weight: 800;
  letter-spacing: -.03em;
}
/* Puce d'état alignée sur l'accent */
.listing-badge-v116 { border-color: var(--v131-line) !important; }
.listing-badge-v116.good { border-color: var(--v131-terra-line) !important; }

/* ============================================================
   19c. PAGE DÉTAIL — libellé/valeur (fini les mini-cartes)
   Les infos catégorie/commune/état/prix passent en lignes
   libellé/valeur avec séparateurs discrets, pas en tuiles.
   ============================================================ */
/* Prix : domine (grand, gras) mais pas criard — on bat la règle interne (0,4,0) */
body.pdr-page-annonce-detail .detail-price,
body.pdr-page-annonce-detail .detail-sidebar .page-panel:first-child .detail-price {
  font-size: clamp(1.7rem, 2.6vw, 2.05rem) !important;
  font-weight: 800 !important;
  letter-spacing: -.03em;
  line-height: 1.1;
}
body.pdr-page-annonce-detail .detail-title,
body.pdr-page-annonce-detail .detail-title-v116 {
  font-size: clamp(1.2rem, 1.8vw, 1.45rem) !important;
  font-weight: 700 !important;
  line-height: 1.25;
  letter-spacing: -.015em;
}

/* Quick-grid + facts : lignes libellé/valeur, sans tuile */
body.pdr-page-annonce-detail .listing-quick-item-v116,
body.pdr-page-annonce-detail .listing-facts-grid > div {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--v131-line) !important;
  border-radius: 0 !important;
  padding: 9px 0 !important;
  display: flex !important;
  flex-direction: column;
  gap: 2px;
}
body.pdr-page-annonce-detail .listing-quick-item-v116 > span,
body.pdr-page-annonce-detail .listing-facts-grid > div > span {
  color: var(--v131-muted) !important;
  font-weight: 500 !important;
  font-size: .78rem !important;
}
body.pdr-page-annonce-detail .listing-quick-item-v116 > strong,
body.pdr-page-annonce-detail .listing-facts-grid > div > strong {
  color: var(--v131-ink) !important;
  font-weight: 600 !important;
  font-size: .92rem !important;
}
/* Grilles à 2 colonnes avec un peu d'air entre colonnes */
body.pdr-page-annonce-detail .listing-quick-grid-v116,
body.pdr-page-annonce-detail .listing-facts-grid {
  gap: 0 var(--sp-6) !important;
}

/* Bloc confiance : badges plus discrets et uniformes (moins criards) */
body.pdr-page-annonce-detail .seller-trust-badge-v115c {
  font-size: .74rem !important;
  padding: 3px 9px !important;
  font-weight: 600 !important;
}

/* ============================================================
   20. PAGE CATÉGORIES — cartes simples à scanner
   Icône sans contenant, compteur/sous-catégories en texte léger.
   ============================================================ */
body.pdr-signature-page .category-pro-card {
  background: #fff !important;
  border: 1px solid var(--v131-line) !important;
  border-radius: var(--v131-r) !important;
  box-shadow: none !important;
  padding: 18px !important;
  transition: border-color .16s var(--v131-ease), box-shadow .16s var(--v131-ease), transform .16s var(--v131-ease);
}
body.pdr-signature-page .category-pro-card:hover {
  border-color: var(--v131-line-str) !important;
  box-shadow: var(--v131-sh-md) !important;
  transform: translateY(-2px);
}
/* Icône SANS contenant : juste le pictogramme en vert Rhin */
body.pdr-signature-page .category-pro-icon {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  width: auto !important; height: auto !important;
  min-width: 0 !important; min-height: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
body.pdr-signature-page .category-pro-icon .pdr-icon {
  width: 26px !important; height: 26px !important;
  background-color: var(--v131-river) !important;
}
body.pdr-signature-page .category-pro-head { gap: 12px; align-items: center; }
body.pdr-signature-page .category-pro-card h3 {
  font-size: 1.02rem; font-weight: 700; color: var(--v131-ink); margin: 0; letter-spacing: -.01em;
}
/* Compteur : texte discret (pas une pastille) */
body.pdr-signature-page .category-count {
  background: transparent !important; border: 0 !important; padding: 0 !important;
  color: var(--v131-muted) !important; font-weight: 500 !important; font-size: .82rem !important;
}
body.pdr-signature-page .category-count.has-listings { color: var(--v131-moss) !important; }
body.pdr-signature-page .category-pro-card p {
  color: var(--v131-ink-2) !important; font-weight: 400 !important; font-size: .9rem !important; margin: 11px 0 0 !important;
}
/* Sous-catégories : texte léger séparé par des points (sans encadrer chacune) */
body.pdr-signature-page .category-examples {
  display: flex !important; flex-wrap: wrap; gap: 3px 8px !important; margin-top: 12px !important;
}
body.pdr-signature-page .category-examples span {
  background: transparent !important; border: 0 !important; padding: 0 !important;
  color: var(--v131-muted) !important; font-size: .8rem !important; font-weight: 500 !important;
}
body.pdr-signature-page .category-examples span:not(:last-child)::after {
  content: "·"; margin-left: 8px; color: var(--v131-faint);
}
/* Lien « Voir les annonces » : simple */
body.pdr-signature-page .category-footer-action { margin-top: 14px !important; }
body.pdr-signature-page .category-footer-action strong { color: var(--v131-river) !important; font-weight: 600 !important; }
body.pdr-signature-page .category-pro-card:hover .category-footer-action strong,
body.pdr-signature-page .category-pro-card:hover .category-arrow { color: var(--v131-terra) !important; }
body.pdr-signature-page .category-arrow { color: var(--v131-river) !important; }

/* ============================================================
   21. PAGE SÉCURITÉ — vraie page d'information (moins de cartes)
   ============================================================ */
/* « Ce que la plateforme surveille » : blocs icône + titre + texte, PAS des cartes */
body.pdr-signature-page .security-card {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
body.pdr-signature-page .security-icon {
  display: inline-flex !important;
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important;
  padding: 0 !important; border-radius: 0 !important; margin-bottom: 10px;
}
body.pdr-signature-page .security-icon .pdr-icon {
  width: 24px !important; height: 24px !important; background-color: var(--v131-river) !important;
}
body.pdr-signature-page .security-card strong {
  display: block; font-size: 1rem; font-weight: 700; color: var(--v131-ink); margin-bottom: 5px; letter-spacing: -.01em;
}
body.pdr-signature-page .security-card p { color: var(--v131-ink-2) !important; font-weight: 400 !important; font-size: .9rem !important; margin: 0 !important; }
body.pdr-signature-page .security-grid { gap: 30px !important; }

/* Bonnes pratiques / interdits : sections sobres (pas des cartes) */
body.pdr-signature-page .security-panel {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
body.pdr-signature-page .security-panel h3 { font-size: 1.12rem; font-weight: 700; color: var(--v131-ink); margin: 0 0 6px; letter-spacing: -.01em; }
body.pdr-signature-page .security-panel > p { color: var(--v131-ink-2) !important; font-weight: 400 !important; }
body.pdr-signature-page .security-two-cols { gap: 48px !important; }

/* Listes à puces propres */
body.pdr-signature-page .security-list {
  list-style: none !important; padding: 0 !important; margin: 14px 0 0 !important;
  display: grid; gap: 9px;
}
body.pdr-signature-page .security-list li {
  display: block !important;              /* neutralise la grille 28px/1fr interne (sinon le texte tombe dans la colonne 28px → coupé mot par mot) */
  grid-template-columns: none !important;
  position: relative; padding-left: 24px !important; color: var(--v131-ink-2); font-weight: 400; line-height: 1.6;
}
body.pdr-signature-page .security-list li::before {
  content: ""; position: absolute; left: 0; top: .55em;
  width: 7px; height: 7px; border-radius: 2px; background: var(--v131-moss);
}
body.pdr-signature-page .security-list.danger li::before { background: var(--v131-danger); }

/* Sommaire « Principes de sécurité » (aside) : panneau léger sobre */
body.pdr-signature-page .security-summary-card {
  background: #fff !important;
  border: 1px solid var(--v131-line) !important;
  box-shadow: none !important;
  border-radius: var(--v131-r) !important;
}
/* Bandeau CTA final : sobre */
body.pdr-signature-page .security-callout {
  background: var(--v131-bg-warm) !important;
  border: 1px solid var(--v131-line) !important;
  box-shadow: none !important;
  border-radius: var(--v131-r) !important;
}
/* Eyebrow « Sécurité et confiance » : discret */
body.pdr-signature-page .security-pill {
  background: var(--v131-terra-soft) !important;
  color: var(--v131-terra-deep) !important;
  border: 0 !important;
}

/* ============================================================
   22. PAGE CONTACT — formulaire prioritaire, latéraux allégés
   ============================================================ */
/* Colonne principale = formulaire (panneau propre, prioritaire) */
body.pdr-signature-page section.contact-panel {
  background: #fff !important; border: 1px solid var(--v131-line) !important;
  box-shadow: none !important; border-radius: var(--v131-r) !important;
}
/* « Quel sujet choisir » = colonne latérale allégée (pas une carte) */
body.pdr-signature-page aside.contact-panel {
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  padding: 0 !important; border-radius: 0 !important;
}
body.pdr-signature-page aside.contact-panel h3 { font-size: 1.05rem; font-weight: 700; color: var(--v131-ink); margin: 0 0 4px; letter-spacing: -.01em; }
body.pdr-signature-page aside.contact-panel > p { color: var(--v131-ink-2) !important; font-weight: 400 !important; }
/* Sujets : liste titre/desc séparée (pas des cartes) */
body.pdr-signature-page .contact-side-list { display: flex; flex-direction: column; margin-top: 8px; }
body.pdr-signature-page .contact-side-card {
  background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
  padding: 12px 0 !important; border-bottom: 1px solid var(--v131-line) !important;
}
body.pdr-signature-page .contact-side-card:last-child { border-bottom: 0 !important; }
body.pdr-signature-page .contact-side-card strong { display: block; font-weight: 600; color: var(--v131-ink); margin-bottom: 2px; }
body.pdr-signature-page .contact-side-card p { color: var(--v131-ink-2) !important; font-weight: 400 !important; font-size: .88rem !important; margin: 0 !important; }
/* Sommaire hero « Avant d'envoyer » : panneau léger */
body.pdr-signature-page .contact-info-card {
  background: #fff !important; border: 1px solid var(--v131-line) !important;
  box-shadow: none !important; border-radius: var(--v131-r) !important;
}
/* Cartes d'aide (bas) → blocs sobres (fini la carte contenant trois cartes) */
body.pdr-signature-page .contact-help-card {
  background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important;
}
body.pdr-signature-page .contact-help-card strong { display: block; font-weight: 700; color: var(--v131-ink); margin-bottom: 4px; }
body.pdr-signature-page .contact-help-card p { color: var(--v131-ink-2) !important; font-weight: 400 !important; font-size: .9rem !important; margin: 0 !important; }
body.pdr-signature-page .contact-help-grid { gap: 30px !important; }
/* Eyebrow contact */
body.pdr-signature-page .contact-pill { background: var(--v131-terra-soft) !important; color: var(--v131-terra-deep) !important; border: 0 !important; }

/* ============================================================
   23. PAGE PROFIL — espace perso grand public (moins de cartes)
   ============================================================ */
/* Panneaux profil : sobres (bordure seule) */
body.pdr-signature-page .profile-panel {
  background: #fff !important; border: 1px solid var(--v131-line) !important;
  box-shadow: none !important; border-radius: var(--v131-r) !important;
}
body.pdr-signature-page .profile-panel > h2 { font-size: 1.12rem; font-weight: 700; color: var(--v131-ink); letter-spacing: -.01em; }
body.pdr-signature-page .profile-panel > p { color: var(--v131-ink-2) !important; font-weight: 400 !important; }

/* Résumé du compte : LIGNE de stats compacte (fini les boîtes) */
body.pdr-signature-page .profile-stats-grid {
  display: flex !important; flex-wrap: wrap; gap: 8px 0 !important;
  border-top: 1px solid var(--v131-line);
  border-bottom: 1px solid var(--v131-line);
  padding: 14px 0; margin-top: 10px;
}
body.pdr-signature-page .profile-stat {
  display: flex !important; align-items: baseline; gap: 7px;
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  padding: 2px 20px !important; border-radius: 0 !important; position: relative;
}
body.pdr-signature-page .profile-stat:first-child { padding-left: 0 !important; }
body.pdr-signature-page .profile-stat:not(:last-child)::after {
  content: ""; position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  width: 1px; height: 24px; background: var(--v131-line);
}
body.pdr-signature-page .profile-stat strong { order: 0; font-size: 1.3rem; font-weight: 800; color: var(--v131-ink); }
body.pdr-signature-page .profile-stat span { order: 1; font-size: .82rem; color: var(--v131-muted); font-weight: 500; }

/* Cartes d'action rapides : sobres + icône sans contenant */
body.pdr-signature-page .profile-action-card {
  background: #fff !important; border: 1px solid var(--v131-line) !important;
  box-shadow: none !important; border-radius: var(--v131-r) !important;
  transition: border-color .16s var(--v131-ease), box-shadow .16s var(--v131-ease), transform .16s var(--v131-ease);
}
body.pdr-signature-page .profile-action-card:hover {
  border-color: var(--v131-line-str) !important; box-shadow: var(--v131-sh-md) !important; transform: translateY(-2px);
}
body.pdr-signature-page .profile-action-card::after { display: none !important; }
body.pdr-signature-page .profile-action-icon {
  display: inline-flex !important;
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important;
  padding: 0 !important; border-radius: 0 !important; margin-bottom: 8px;
}
body.pdr-signature-page .profile-action-icon .pdr-icon {
  width: 24px !important; height: 24px !important; background-color: var(--v131-river) !important;
}
body.pdr-signature-page .profile-action-card strong { font-weight: 700; color: var(--v131-ink); }
body.pdr-signature-page .profile-action-card span { color: var(--v131-ink-2) !important; font-weight: 400 !important; }

/* Sommaire hero « Votre espace personnel » : panneau léger */
body.pdr-signature-page .profile-status-card {
  background: #fff !important; border: 1px solid var(--v131-line) !important;
  box-shadow: none !important; border-radius: var(--v131-r) !important;
}

/* ============================================================
   24. RESPONSIVE — ajustements finaux
   ============================================================ */
/* Détail : en vue empilée, la GALERIE passe en premier (photos visibles
   en haut), puis la colonne prix/vendeur/contact — plus de photos en bas. */
@media (max-width: 1000px) {
  body.pdr-page-annonce-detail .listing-main-column { order: -1 !important; }
  body.pdr-page-annonce-detail .detail-sidebar { order: 1 !important; }
}

/* ============================================================
   25. ESPACE MEMBRE — nav secondaire + patterns communs
   ============================================================ */
/* Nav secondaire : liens texte, soulignement actif discret, distincte du header */
.pdr-member-tabs { background: #fff; border-bottom: 1px solid var(--v131-line); }
.pdr-member-tabs-inner { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.pdr-member-tabs-inner::-webkit-scrollbar { display: none; }
.pdr-member-tabs a {
  padding: 12px 14px; font-weight: 500; font-size: .9rem; color: var(--v131-muted);
  border-bottom: 2px solid transparent; white-space: nowrap;
}
.pdr-member-tabs a:hover { color: var(--v131-ink); }
.pdr-member-tabs a.is-active { color: var(--v131-ink); font-weight: 600; border-bottom-color: var(--v131-terra); }

/* Cartes explicatives « en haut à droite » : dé-cartonnées (garde bouton + texte) */
body.pdr-account-page :is(.fav-hero-card, .my125-hero-card, .notif-hero-card, .settings-hero-card, .messages-hero-side) {
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  padding: 0 !important; border-radius: 0 !important;
}

/* Stats → LIGNE compacte (fini les grosses cartes) */
body.pdr-account-page :is(.fav-summary-grid, .my125-summary, .notif-summary-grid, .messages-summary) {
  display: flex !important; flex-wrap: wrap; gap: 6px 0 !important; grid-template-columns: none !important;
  border-top: 1px solid var(--v131-line); border-bottom: 1px solid var(--v131-line);
  padding: 12px 0; margin: 8px 0 22px;
}
body.pdr-account-page :is(.fav-summary-card, .my125-summary-card, .notif-summary-card, .messages-summary-card) {
  background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
  padding: 2px 18px !important; margin: 0 !important; min-height: 0 !important;
  display: flex !important; align-items: baseline; gap: 6px; position: relative;
}
body.pdr-account-page :is(.fav-summary-card, .my125-summary-card, .notif-summary-card, .messages-summary-card):first-child { padding-left: 0 !important; }
body.pdr-account-page :is(.fav-summary-card, .my125-summary-card, .notif-summary-card, .messages-summary-card):not(:last-child)::after {
  content: ""; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 1px; height: 22px; background: var(--v131-line);
}
body.pdr-account-page :is(.fav-summary-card, .my125-summary-card, .notif-summary-card, .messages-summary-card) strong { order: 0; font-size: 1.15rem; font-weight: 800; color: var(--v131-ink); }
body.pdr-account-page :is(.fav-summary-card, .my125-summary-card, .notif-summary-card, .messages-summary-card) span { order: 1; font-size: .8rem; color: var(--v131-muted); font-weight: 500; }

/* Onglets de gestion → texte + soulignement actif (pas des capsules) */
body.pdr-account-page :is(.fav-tabs, .my125-tabs, .notif-tabs) {
  display: flex !important; flex-wrap: wrap; gap: 2px; border-bottom: 1px solid var(--v131-line); margin-bottom: 14px;
}
body.pdr-account-page :is(.fav-tabs, .my125-tabs, .notif-tabs) > * {
  background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
  padding: 9px 12px !important; color: var(--v131-muted) !important; font-weight: 500 !important; cursor: pointer;
  border-bottom: 2px solid transparent !important; min-height: 0 !important;
}
body.pdr-account-page :is(.fav-tabs, .my125-tabs, .notif-tabs) > *:hover { color: var(--v131-ink) !important; }
body.pdr-account-page :is(.fav-tabs, .my125-tabs, .notif-tabs) > *.is-active,
body.pdr-account-page :is(.fav-tabs, .my125-tabs, .notif-tabs) > *.active {
  color: var(--v131-ink) !important; font-weight: 700 !important; border-bottom-color: var(--v131-terra) !important;
}
body.pdr-account-page .notif-tab-count { color: var(--v131-muted); font-weight: 600; }

/* Panneaux de contenu (liste) : dé-cartonnés → le contenu domine */
body.pdr-account-page :is(.fav-panel, .my125-panel, .notif-panel) {
  background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important;
}

/* ============================================================
   26. MES ANNONCES — semi-liste de gestion
   ============================================================ */
body.pdr-page-mes-annonces .my125-list { display: flex !important; flex-direction: column; gap: 10px; }
body.pdr-page-mes-annonces .my125-card {
  display: grid !important; grid-template-columns: auto 132px 1fr; align-items: center; gap: 16px;
  background: #fff !important; border: 1px solid var(--v131-line) !important; box-shadow: none !important;
  border-radius: var(--v131-r) !important; padding: 12px !important;
  transition: border-color .16s var(--v131-ease);
}
body.pdr-page-mes-annonces .my125-card:hover { border-color: var(--v131-line-str) !important; }
body.pdr-page-mes-annonces .my125-thumb { width: 132px !important; height: 100px !important; border-radius: var(--v131-r-sm); overflow: hidden; background: var(--v131-bg-warm); }
body.pdr-page-mes-annonces .my125-thumb img { width: 100%; height: 100%; object-fit: cover; }
body.pdr-page-mes-annonces .my125-stats { display: flex !important; flex-wrap: wrap; gap: 6px 14px; margin-top: 6px; }
body.pdr-page-mes-annonces .my125-stat { color: var(--v131-muted); font-weight: 500; }
body.pdr-page-mes-annonces .my125-card h3 { font-size: 1rem; font-weight: 600; }
@media (max-width: 720px) {
  body.pdr-page-mes-annonces .my125-card { grid-template-columns: 1fr; }
  body.pdr-page-mes-annonces .my125-thumb { width: 100% !important; height: 180px !important; }
}

/* ============================================================
   27. FAVORIS — collection simple + empty state
   ============================================================ */
body.pdr-page-favoris .fav-list { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
body.pdr-page-favoris .fav-card {
  display: grid !important; grid-template-columns: 118px 1fr; gap: 14px; align-items: start;
  background: #fff !important; border: 1px solid var(--v131-line) !important; box-shadow: none !important;
  border-radius: var(--v131-r) !important; padding: 12px !important;
}
body.pdr-page-favoris .fav-thumb { width: 118px !important; height: 118px !important; border-radius: var(--v131-r-sm); overflow: hidden; background: var(--v131-bg-warm); }
body.pdr-page-favoris .fav-thumb img { width: 100%; height: 100%; object-fit: cover; }
body.pdr-page-favoris .fav-body { min-width: 0; }
body.pdr-page-favoris .fav-price { color: var(--v131-terra) !important; font-weight: 800 !important; font-size: 1.05rem !important; }
body.pdr-page-favoris .fav-desc { display: none; }
body.pdr-page-favoris .fav-meta { display: flex; flex-wrap: wrap; gap: 4px 8px; }
body.pdr-page-favoris .fav-meta span { background: transparent !important; border: 0 !important; padding: 0 !important; color: var(--v131-muted) !important; font-weight: 500 !important; font-size: .8rem !important; }
body.pdr-page-favoris .fav-meta span:not(:last-child)::after { content: "·"; margin-left: 8px; color: var(--v131-faint); }
body.pdr-page-favoris .fav-note-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
body.pdr-page-favoris .fav-note { background: transparent !important; border: 0 !important; padding: 0 !important; color: var(--v131-muted) !important; font-weight: 500 !important; }
body.pdr-page-favoris .fav-empty {
  grid-column: 1 / -1; text-align: center; padding: 52px 20px; color: var(--v131-muted);
  border: 1px dashed var(--v131-line); border-radius: var(--v131-r); background: var(--v131-bg-warm);
}

/* ============================================================
   28. NOTIFICATIONS — flux large + lignes
   ============================================================ */
body.pdr-page-notifications .notif-layout { display: block !important; }
body.pdr-page-notifications aside.notif-panel { margin-bottom: 10px; }
body.pdr-page-notifications .notif-side-actions { display: flex; flex-wrap: wrap; gap: 8px; }
body.pdr-page-notifications .notif-card {
  display: grid !important; grid-template-columns: auto 1fr; align-items: start; gap: 14px;
  background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--v131-line) !important;
  box-shadow: none !important; border-radius: 0 !important; padding: 14px 8px !important;
}
body.pdr-page-notifications .notif-card.is-unread { background: var(--v131-bg-warm) !important; box-shadow: inset 3px 0 0 var(--v131-terra) !important; }
body.pdr-page-notifications .notif-icon { background: transparent !important; border: 0 !important; box-shadow: none !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; padding: 0 !important; display: inline-flex !important; }
body.pdr-page-notifications .notif-icon .pdr-icon { width: 22px !important; height: 22px !important; background-color: var(--v131-river) !important; }
body.pdr-page-notifications .notif-badge.read,
body.pdr-page-notifications .notif-badge.unread { display: none !important; }
body.pdr-page-notifications .notif-meta { display: flex; gap: 8px; align-items: baseline; color: var(--v131-muted); font-size: .8rem; font-weight: 500; }
body.pdr-page-notifications .notif-meta .notif-badge { background: transparent !important; border: 0 !important; padding: 0 !important; color: var(--v131-muted) !important; font-weight: 500 !important; }
body.pdr-page-notifications .notif-card h3 { font-size: 1rem; font-weight: 600; margin: 4px 0 2px; }
body.pdr-page-notifications .notif-card p { color: var(--v131-ink-2); font-weight: 400; margin: 0; }

/* ============================================================
   29. PARAMÈTRES + APPAREILS CONNECTÉS
   ============================================================ */
body.pdr-page-parametres .settings-panel {
  background: #fff !important; border: 1px solid var(--v131-line) !important; box-shadow: none !important; border-radius: var(--v131-r) !important;
}
/* Neutralise le gros bandeau coloré « Appareils connectés » */
body.pdr-page-parametres #connectedDevicesV109b .settings-panel-head,
body.pdr-page-parametres .settings-security-wrap-v109e { background: transparent !important; }
/* Appareils : lignes séparées par des filets (pas des grosses cartes) */
body.pdr-page-parametres .devices-list-v109b { display: flex; flex-direction: column; }
body.pdr-page-parametres .device-card-v109b {
  display: grid !important; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px;
  background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--v131-line) !important;
  box-shadow: none !important; border-radius: 0 !important; padding: 14px 4px !important;
}
body.pdr-page-parametres .device-card-v109b:last-child { border-bottom: 0 !important; }
body.pdr-page-parametres .device-icon-v109b { background: transparent !important; border: 0 !important; box-shadow: none !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; padding: 0 !important; display: inline-flex !important; }
body.pdr-page-parametres .device-icon-v109b .pdr-icon { width: 22px !important; height: 22px !important; background-color: var(--v131-river) !important; }
body.pdr-page-parametres .device-pill-v109b { background: var(--v131-terra-soft) !important; color: var(--v131-terra-deep) !important; border: 0 !important; font-weight: 600 !important; }

/* ============================================================
   30. PROFIL VENDEUR PUBLIC
   ============================================================ */
body.pdr-page-vendeur .seller-hero-card { background: transparent !important; border: 0 !important; box-shadow: none !important; }
/* Confiance : supprime les doublons — on cache les pastilles, on garde la liste ✓/!/— */
body.pdr-page-vendeur .seller-trust-badges-v115c { display: none !important; }
body.pdr-page-vendeur .seller-trust-v115c,
body.pdr-page-vendeur .seller-panel {
  background: #fff !important; border: 1px solid var(--v131-line) !important; box-shadow: none !important; border-radius: var(--v131-r) !important;
}
/* Stats vendeur → ligne compacte */
body.pdr-page-vendeur :is(.seller-stats-grid, .seller-trust-grid-v115c) {
  display: flex !important; flex-wrap: wrap; gap: 6px 0 !important; grid-template-columns: none !important;
  border-top: 1px solid var(--v131-line); border-bottom: 1px solid var(--v131-line); padding: 12px 0; margin: 10px 0;
}
body.pdr-page-vendeur :is(.seller-stat, .seller-trust-stat-v115c) {
  background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
  padding: 2px 18px !important; display: flex !important; align-items: baseline; gap: 6px; position: relative;
}
body.pdr-page-vendeur :is(.seller-stat, .seller-trust-stat-v115c):first-child { padding-left: 0 !important; }
body.pdr-page-vendeur :is(.seller-stat, .seller-trust-stat-v115c):not(:last-child)::after { content: ""; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 1px; height: 20px; background: var(--v131-line); }
body.pdr-page-vendeur :is(.seller-stat, .seller-trust-stat-v115c) strong { order: 0; font-size: 1.1rem; font-weight: 800; color: var(--v131-ink); }
body.pdr-page-vendeur :is(.seller-stat, .seller-trust-stat-v115c) span { order: 1; font-size: .8rem; color: var(--v131-muted); font-weight: 500; }
/* Checks confiance : lignes propres */
body.pdr-page-vendeur .seller-trust-checks-v115c { display: flex; flex-direction: column; gap: 8px; }
/* Annonces vendeur = dominantes, cartes sobres */
body.pdr-page-vendeur .seller-listing-card {
  background: #fff !important; border: 1px solid var(--v131-line) !important; box-shadow: none !important; border-radius: var(--v131-r) !important;
}
body.pdr-page-vendeur .seller-listing-card:hover { border-color: var(--v131-line-str) !important; box-shadow: var(--v131-sh-md) !important; }
body.pdr-page-vendeur .seller-price { color: var(--v131-terra) !important; font-weight: 800 !important; }
/* Signaler ce profil : discret */
body.pdr-page-vendeur .seller-report {
  background: transparent !important; border: 0 !important; border-top: 1px solid var(--v131-line) !important;
  box-shadow: none !important; border-radius: 0 !important; margin-top: 24px; padding-top: 16px !important;
}
body.pdr-page-vendeur .seller-report strong { font-weight: 600; color: var(--v131-ink-2); font-size: .95rem; }

/* ============================================================
   31. MESSAGERIE — vraie appli 2 colonnes, large
   ============================================================ */
body.pdr-page-messages .container,
body.pdr-page-messages .header-inner { width: min(1560px, 100%) !important; }
/* Hero minimal : petit titre, on va droit aux conversations */
body.pdr-page-messages .messages-hero { padding: 18px 0 8px !important; background: #fff !important; }
body.pdr-page-messages .messages-hero-grid { display: block !important; }
body.pdr-page-messages .messages-hero h1 { font-size: 1.4rem; }
body.pdr-page-messages .messages-hero-side { display: none !important; }
/* Grille 2 colonnes qui remplit la hauteur */
body.pdr-page-messages .messages-shell {
  display: grid !important; grid-template-columns: 340px 1fr; gap: 18px; align-items: stretch;
  height: calc(100vh - 200px); min-height: 540px;
}
body.pdr-page-messages .messages-side { min-width: 0; height: 100%; }
body.pdr-page-messages .messages-side .messages-card,
body.pdr-page-messages .thread-panel {
  height: 100%; display: flex; flex-direction: column;
  background: #fff !important; border: 1px solid var(--v131-line) !important; box-shadow: none !important; border-radius: var(--v131-r) !important;
}
body.pdr-page-messages .conversation-list { flex: 1; overflow-y: auto; min-height: 0; }
body.pdr-page-messages .messages-box { flex: 1; overflow-y: auto; min-height: 0; }
/* Item conversation */
body.pdr-page-messages .conversation-item {
  width: 100%; text-align: left; display: grid; grid-template-columns: 44px 1fr; gap: 10px; align-items: center;
  background: transparent !important; border: 0 !important; border-radius: var(--v131-r-sm) !important;
  padding: 10px !important; cursor: pointer;
}
body.pdr-page-messages .conversation-item:hover { background: var(--v131-bg-warm) !important; }
body.pdr-page-messages .conversation-item.is-active { background: var(--v131-bg-warm) !important; box-shadow: inset 3px 0 0 var(--v131-terra) !important; }
body.pdr-page-messages .conversation-thumb { width: 44px; height: 44px; border-radius: 999px; overflow: hidden; background: var(--v131-river); }
body.pdr-page-messages .conversation-title { font-weight: 600; color: var(--v131-ink); }
body.pdr-page-messages .conversation-meta { color: var(--v131-muted); font-size: .8rem; }
body.pdr-page-messages .conversation-last { color: var(--v131-ink-2); font-size: .82rem; }
/* Filtres compacts */
body.pdr-page-messages .messages-filters-v114 { display: flex; gap: 4px; flex-wrap: wrap; }
body.pdr-page-messages .messages-filter-v114 {
  background: transparent !important; border: 1px solid var(--v131-line) !important; border-radius: 999px !important;
  padding: 5px 11px !important; font-size: .8rem !important; color: var(--v131-ink-2) !important; min-height: 0 !important; font-weight: 500 !important;
}
body.pdr-page-messages .messages-filter-v114.is-active { background: var(--v131-river) !important; color: #fff !important; border-color: var(--v131-river) !important; }
/* En-tête du fil + zone d'écriture ancrées */
body.pdr-page-messages .thread-header { flex: 0 0 auto; }
body.pdr-page-messages .message-form { flex: 0 0 auto; }
/* Bulles de message (pas d'énormes cartes) */
body.pdr-page-messages .message-row { margin: 8px 0; }
body.pdr-page-messages .message-bubble {
  max-width: 74%; background: var(--v131-bg-warm) !important; border: 1px solid var(--v131-line) !important;
  border-radius: 12px !important; padding: 9px 12px !important; box-shadow: none !important;
}
body.pdr-page-messages .message-row.is-me .message-bubble { background: var(--v131-terra) !important; border-color: var(--v131-terra) !important; color: #fff !important; }
body.pdr-page-messages .message-row.is-me .message-bubble :is(.message-author, .message-body, .message-date) { color: #fff !important; }
body.pdr-page-messages .message-author { font-size: .74rem; color: var(--v131-muted); font-weight: 600; }
body.pdr-page-messages .message-date { font-size: .72rem; color: var(--v131-muted); }
/* Carte « lieu de rendez-vous » : mini-carte compacte */
body.pdr-page-messages .trusted-message-card {
  background: #fff !important; border: 1px solid var(--v131-line) !important; box-shadow: none !important;
  border-radius: var(--v131-r-sm) !important; padding: 12px !important;
}
body.pdr-page-messages .message-row.is-me .trusted-message-card :is(h3, p) { color: var(--v131-ink) !important; }
/* Mobile : une colonne (liste puis fil) */
@media (max-width: 900px) {
  body.pdr-page-messages .messages-shell { grid-template-columns: 1fr; height: auto; }
  body.pdr-page-messages .messages-side .messages-card,
  body.pdr-page-messages .thread-panel { height: auto; }
  body.pdr-page-messages .messages-box { min-height: 52vh; }
  body.pdr-page-messages .message-bubble { max-width: 86%; }
}

/* ============================================================
   33. MENTIONS LÉGALES — document officiel sobre
   ============================================================ */
/* En-tête : carte « Page officielle » dé-cartonnée */
body.pdr-legal-page .legal-hero-card { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important; }
body.pdr-legal-page .legal-status-icon { background: transparent !important; border: 0 !important; box-shadow: none !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; padding: 0 !important; display: inline-flex !important; }
body.pdr-legal-page .legal-status-icon .pdr-icon { width: 20px !important; height: 20px !important; background-color: var(--v131-river) !important; }
/* Sommaire + contenu, largeur de lecture confortable */
body.pdr-legal-page .section > .container { display: grid !important; grid-template-columns: 230px minmax(0, 1fr); gap: 40px; align-items: start; }
body.pdr-legal-page .legal-summary {
  position: sticky; top: 80px;
  background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important;
}
body.pdr-legal-page .legal-nav { display: flex; flex-direction: column; gap: 2px; }
body.pdr-legal-page .legal-nav a { padding: 7px 10px; border-radius: var(--v131-r-xs); color: var(--v131-ink-2); font-weight: 500; font-size: .9rem; border-left: 2px solid transparent; }
body.pdr-legal-page .legal-nav a:hover { background: var(--v131-bg-warm); color: var(--v131-ink); }
body.pdr-legal-page .legal-nav a.is-active,
body.pdr-legal-page .legal-nav a[aria-current] { color: var(--v131-terra); border-left-color: var(--v131-terra); font-weight: 600; }
body.pdr-legal-page .legal-note { color: var(--v131-ink-2); font-size: .88rem; margin-top: 14px; }
/* Contenu éditorial (pas des cartes), largeur de lecture ~820px */
body.pdr-legal-page .legal-content { max-width: 820px; }
body.pdr-legal-page .legal-block { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important; margin-bottom: 38px; }
body.pdr-legal-page .legal-block :is(h2, h3) { border-bottom: 1px solid var(--v131-line); padding-bottom: 8px; margin: 0 0 14px; font-size: 1.15rem; font-weight: 700; }
body.pdr-legal-page .legal-block p, body.pdr-legal-page .legal-block li { color: var(--v131-ink-2); line-height: 1.8; }
/* Tableaux → libellé/valeur avec filets */
body.pdr-legal-page .legal-table { display: flex; flex-direction: column; }
body.pdr-legal-page .legal-row {
  display: grid !important; grid-template-columns: minmax(140px, 200px) 1fr; gap: 6px 20px;
  padding: 11px 0; border-bottom: 1px solid var(--v131-line); align-items: baseline;
}
body.pdr-legal-page .legal-row:last-child { border-bottom: 0; }
body.pdr-legal-page .legal-row > :first-child { color: var(--v131-muted); font-weight: 500; }
/* « À compléter » : petit label orange discret */
body.pdr-legal-page .legal-placeholder {
  display: inline-block; background: var(--v131-warning-soft) !important; color: var(--v131-warning) !important;
  border: 0 !important; border-radius: var(--v131-r-xs); padding: 1px 7px; font-size: .76rem; font-weight: 600;
}
@media (max-width: 900px) {
  body.pdr-legal-page .section > .container { grid-template-columns: 1fr; }
  body.pdr-legal-page .legal-summary { position: static; }
}

/* ============================================================
   34. FORMULAIRES DÉPÔT / MODIFICATION — simples et sobres
   ============================================================ */
/* Conseils dé-cartonnés (fini la grosse carte à droite) */
body.pdr-signature-page .form-help-card {
  background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important;
}
body.pdr-signature-page .form-help-card strong { font-size: .95rem; color: var(--v131-ink); }
body.pdr-signature-page .form-help-card p { color: var(--v131-muted); font-size: .85rem; }
/* Conteneur de formulaire allégé (modifier : form-shell-pro) */
body.pdr-signature-page .form-shell-pro {
  background: #fff !important; border: 1px solid var(--v131-line) !important; box-shadow: none !important; border-radius: var(--v131-r) !important; padding: 22px !important;
}
/* Numéros d'étape discrets */
.pdr-form-section-num { width: 26px !important; height: 26px !important; background: var(--v131-terra-soft) !important; color: var(--v131-terra-deep) !important; font-size: .82rem !important; font-weight: 700 !important; }
.pdr-form-section-label { font-size: 1rem !important; font-weight: 700 !important; }
/* Options : simples cases (pas une carte par case) */
body.pdr-signature-page .form-options-box { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
body.pdr-signature-page .form-options-box > label:first-child { font-weight: 700 !important; color: var(--v131-ink) !important; }
body.pdr-signature-page .form-options-box label:not(:first-child) { border: 0 !important; background: transparent !important; padding: 6px 0 !important; font-weight: 500 !important; }
/* Zone d'upload modernisée (dépôt + modif) */
body.pdr-signature-page :is(.upload-zone-v118, .upload-box, .upload-zone) {
  border: 1.5px dashed var(--v131-line-str) !important; background: var(--v131-bg-warm) !important; box-shadow: none !important;
  border-radius: var(--v131-r) !important; padding: 22px !important;
  transition: border-color .16s var(--v131-ease), background .16s var(--v131-ease);
}
body.pdr-signature-page :is(.upload-zone-v118, .upload-box, .upload-zone):hover { border-color: var(--v131-river) !important; background: #fff !important; }
body.pdr-signature-page :is(.upload-help) { color: var(--v131-muted) !important; }
body.pdr-signature-page :is(.upload-preview-grid-v118, .upload-preview) { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 8px; }
body.pdr-signature-page :is(.upload-preview-grid-v118, .upload-preview) img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--v131-r-sm); }
/* Brouillon = alerte compacte (orange), suppression = danger */
body.pdr-signature-page .draft-panel-v106b {
  background: var(--v131-warning-soft) !important; border: 1px solid #efd9b6 !important; box-shadow: none !important;
  border-radius: var(--v131-r) !important; padding: 14px 16px !important;
}
body.pdr-signature-page .draft-panel-actions-v106b { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
body.pdr-signature-page [data-v106b-delete-draft] { color: var(--v131-danger) !important; border-color: rgba(179,38,30,.28) !important; background: #fff !important; }
/* Actions finales : hiérarchie (Prévisualiser tertiaire, Enregistrer secondaire, Publier primaire) */
body.pdr-signature-page #previewListingBtnV106b { background: transparent !important; border-color: transparent !important; color: var(--v131-river) !important; }
body.pdr-signature-page #previewListingBtnV106b:hover { background: var(--v131-bg-warm) !important; }

/* ------------------------------------------------------------
   10. FINITIONS
   ------------------------------------------------------------ */
body.pdr-signature-page :focus-visible {
  outline: 3px solid rgba(36,66,75,.28); outline-offset: 2px;
}

@media (max-width: 1000px) {
  body.pdr-page-annonces .listing-layout { grid-template-columns: 1fr; }
  body.pdr-page-annonces .filters-panel { position: static; }
  body.pdr-page-annonces .results-list { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  body.pdr-page-annonces .results-list { grid-template-columns: repeat(2, 1fr); gap: 11px; }
  .v129-hero { padding: 34px 0 26px; }
  /* Barre de recherche empilée : le champ ville ne doit pas garder une base de 230px */
  .v129-search { flex-direction: column; }
  .v129-search-field.city {
    flex: 1 1 auto;
    border-left: 0;
    border-top: 1px solid var(--v131-line);
  }
  .v129-search-btn { margin: 8px; padding: 14px 0; }
}

@media (prefers-reduced-motion: reduce) {
  .pdr-v129 *, body.pdr-signature-page * {
    transition-duration: .01ms !important; animation-duration: .01ms !important;
  }
}
