/*
 * assets/css/d3-public.css
 * Pages publiques « en tuiles » (octobre 2026)
 *
 * Même langage visuel que l'espace infirmier : encre, corail, tuiles
 * pastel, titres en Outfit, boutons en pilule. Chargé APRÈS la feuille
 * propre à chaque page. Toutes les règles sont préfixées par body.d3p,
 * plus une classe par famille de pages :
 *   .d3p-home    page d'accueil (index.php)
 *   .d3p-ann     annonces publiques (liste, fiche, département, connexion)
 *   .d3p-auth    connexion, inscription, mot de passe, vérification
 *   .d3p-guest   création de contrat sans compte (public/guest-contrat.php)
 *   .d3p-blog    blog
 *   .d3p-sign    signature d'un contrat ou d'une quittance
 *   .d3p-invite  formulaires d'invitation (remplaçant, titulaire, modalités,
 *                autorisation)
 *
 * Les textes, liens, formulaires, scripts et données structurées des
 * pages ne changent pas : seule l'apparence change.
 *
 * Sommaire
 *   1. Jetons et base
 *   2. Boutons et champs communs
 *   3. Page d'accueil
 *   (les sections suivantes sont ajoutées plus bas, par famille)
 */

/* ── 1. Jetons et base ─────────────────────────────────────────────────── */
body.d3p {
  --p-ink:     #1e1b4b;
  --p-ink-2:   #2b2770;
  --p-ink-3:   #3a3590;
  --p-coral:   #ff7a59;
  --p-coral-d: #e8603f;
  --p-lav:     #e4dcff;  --p-lav-t:   #5b21b6;
  --p-mint:    #ccf3e0;  --p-mint-t:  #0b5c40;
  --p-sky:     #cde7ff;  --p-sky-t:   #1e3a8a;
  --p-sun:     #ffeaa1;  --p-sun-t:   #854d0e;
  --p-peach:   #ffd9cc;  --p-peach-t: #9a3412;
  --p-bg:      #f5f5fa;
  --p-line:    #e8e8f2;
  --p-muted:   #6b6b8a;
  --p-soft:    #c7c4ff;
  --p-violet:  #6d5dfc;
  --p-danger:  #b42318;
  --p-title:   'Outfit', 'DM Sans', system-ui, sans-serif;
  --p-text:    'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;

  background: var(--p-bg) !important;
  color: var(--p-ink);
  font-family: var(--p-text);
  -webkit-font-smoothing: antialiased;
}
body.d3p ::selection { background: var(--p-lav); color: var(--p-ink); }
body.d3p :focus-visible { outline: 3px solid var(--p-violet); outline-offset: 2px; }
body.d3p h1, body.d3p h2, body.d3p h3 { font-family: var(--p-title); color: var(--p-ink); letter-spacing: -.015em; }

/* Bouton « Nous contacter » (pied de page commun) */
body.d3p #mc-support-trigger { background: var(--p-ink); box-shadow: 0 10px 26px rgba(30,27,75,.28); }

/* Pastille de section réutilisable */
body.d3p .d3p-kicker {
  display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px;
  background: var(--p-lav); color: var(--p-lav-t); font: 800 13px/1.2 var(--p-text);
}

/* ── 2. Boutons et champs communs ──────────────────────────────────────── */
body.d3p .d3p-btn,
body.d3p .d3p-btn-ink,
body.d3p .d3p-btn-ghost {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 52px; padding: 0 26px; border: 0; border-radius: 999px; cursor: pointer;
  font: 800 16px/1 var(--p-title); text-decoration: none; white-space: nowrap;
  transition: transform .1s, box-shadow .1s, background .15s;
}
body.d3p .d3p-btn { background: var(--p-coral); color: var(--p-ink); box-shadow: 0 6px 0 var(--p-coral-d); margin-bottom: 6px; }
body.d3p .d3p-btn:hover { transform: translateY(-1px); box-shadow: 0 7px 0 var(--p-coral-d); }
body.d3p .d3p-btn:active { transform: translateY(4px); box-shadow: 0 2px 0 var(--p-coral-d); }
body.d3p .d3p-btn-ink { background: var(--p-ink); color: #fff; }
body.d3p .d3p-btn-ink:hover { background: var(--p-ink-2); }
body.d3p .d3p-btn-ghost { background: #fff; color: var(--p-ink); border: 1.5px solid var(--p-line); font-family: var(--p-text); font-weight: 700; font-size: 15px; }
body.d3p .d3p-btn-ghost:hover { background: #f0f0f8; }

/* ── 3. Page d'accueil ─────────────────────────────────────────────────── */
body.d3p-home { --container: 1200px; }

/* Barre de navigation : claire, collante, floutée */
body.d3p-home .hp-nav {
  background: rgba(245,245,250,.86); backdrop-filter: saturate(1.4) blur(14px);
  -webkit-backdrop-filter: saturate(1.4) blur(14px);
  box-shadow: 0 1px 0 var(--p-line);
}
body.d3p-home .hp-nav-inner { height: 76px; }
body.d3p-home .hp-nav-logo img { height: 52px; }
body.d3p-home .hp-nav-link { color: var(--p-ink); opacity: .78; font-weight: 700; }
body.d3p-home .hp-nav-link:hover { opacity: 1; color: var(--p-ink); }
body.d3p-home .hp-nav-ctas { gap: 10px; }
body.d3p-home .hp-nav .btn { border-radius: 999px; min-height: 44px; padding: 0 18px; font-size: 14px; box-shadow: none; filter: none; }
body.d3p-home .hp-nav .btn-nav-contract { background: var(--p-coral) !important; color: var(--p-ink) !important; border: 0 !important; box-shadow: 0 4px 0 var(--p-coral-d) !important; margin-bottom: 4px; }
body.d3p-home .hp-nav .btn-ghost { background: #fff; color: var(--p-ink); border: 1.5px solid var(--p-line); backdrop-filter: none; }
body.d3p-home .hp-nav .btn-ghost:hover { background: #f0f0f8; color: var(--p-ink); }
body.d3p-home .hp-nav .btn-nav-account { background: var(--p-ink); color: #fff; border: 0; }
body.d3p-home .hp-nav .btn-nav-account:hover { background: var(--p-ink-2); }

/* Boutons de la page */
body.d3p-home .btn { border-radius: 999px; font-family: var(--p-title); filter: none; }
body.d3p-home .btn-primary {
  background: var(--p-coral); border-color: var(--p-coral); color: var(--p-ink);
  box-shadow: 0 6px 0 var(--p-coral-d); margin-bottom: 6px; transition: transform .1s, box-shadow .1s;
}
body.d3p-home .btn-primary:hover { background: #ff8a6c; border-color: #ff8a6c; transform: translateY(-1px); box-shadow: 0 7px 0 var(--p-coral-d); }
body.d3p-home .btn-primary:active { transform: translateY(4px); box-shadow: 0 2px 0 var(--p-coral-d); }
body.d3p-home .btn-outline { background: #fff; color: var(--p-ink); border: 1.5px solid var(--p-line); font-family: var(--p-text); font-weight: 700; }
body.d3p-home .btn-outline:hover { background: #f0f0f8; border-color: #d4d4e6; }
body.d3p-home .btn-white { background: #fff; color: var(--p-ink); border-color: #fff; box-shadow: 0 6px 0 rgba(0,0,0,.18); }
body.d3p-home .btn-ghost { border-radius: 999px; }
body.d3p-home .btn-lg { min-height: 58px; padding: 0 30px; font-size: 17px; }

/* Hero */
body.d3p-home .hero { background: var(--p-bg); padding: 70px 0 70px; }
body.d3p-home .hero::before {
  width: 560px; height: 560px; top: -220px; right: -160px;
  background: radial-gradient(circle, rgba(228,220,255,.9) 0%, rgba(228,220,255,0) 68%);
}
body.d3p-home .hero::after {
  content: ""; position: absolute; left: -140px; bottom: -160px; width: 380px; height: 380px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,217,204,.8) 0%, rgba(255,217,204,0) 70%); pointer-events: none;
}
body.d3p-home .hero .wrap { position: relative; z-index: 1; }
body.d3p-home .hero-eyebrow { background: var(--p-sun); color: var(--p-ink); border: 0; font-weight: 800; padding: 8px 16px; }
body.d3p-home .hero h1 {
  font: 800 clamp(38px, 5.2vw, 64px)/1.02 var(--p-title); letter-spacing: -.035em; color: var(--p-ink); margin-bottom: 22px;
}
body.d3p-home .hero h1 strong {
  color: var(--p-ink); position: relative; white-space: nowrap;
  background: linear-gradient(transparent 62%, var(--p-coral) 62%, var(--p-coral) 90%, transparent 90%);
}
body.d3p-home .hero-sub { color: var(--p-muted); font-size: 18px; }
body.d3p-home .hero-sub strong { color: var(--p-ink); }
body.d3p-home .hero-checks { gap: 10px; }
body.d3p-home .hero-check { font-weight: 600; color: var(--p-ink); }
body.d3p-home .hero-check-ico { width: 26px; height: 26px; background: var(--p-mint); color: var(--p-mint-t); font-size: 12px; }
body.d3p-home .hero-ctas { gap: 12px; align-items: center; }
body.d3p-home .hero-ctas .btn-lg { font-size: 16px; padding: 0 24px; }
body.d3p-home .hero-trust { color: var(--p-muted); }
body.d3p-home .hero-trust-item { background: #fff; border-radius: 999px; padding: 8px 14px; }

/* Sections */
body.d3p-home .section { padding: 90px 0; }
body.d3p-home .section-alt { background: transparent; }
body.d3p-home .section-head h2 { font: 800 clamp(30px, 4vw, 46px)/1.08 var(--p-title); color: var(--p-ink); letter-spacing: -.03em; }
body.d3p-home .section-head p { color: var(--p-muted); }
body.d3p-home .badge-eyebrow { background: var(--p-lav); color: var(--p-lav-t); border: 0; font-weight: 800; padding: 7px 14px; font-size: 13px; }

/* Profils : deux grandes tuiles */
body.d3p-home .persona-grid { gap: 20px; }
body.d3p-home .persona-card { border: 0; border-radius: 36px; padding: 40px 36px; transition: transform .15s, box-shadow .15s; }
body.d3p-home .persona-card::before { display: none; }
body.d3p-home .persona-card.nurse { background: var(--p-lav); }
body.d3p-home .persona-card.facturier { background: var(--p-mint); }
body.d3p-home .persona-card:hover { transform: translateY(-4px); box-shadow: 0 12px 0 rgba(30,27,75,.08); border-color: transparent; }
body.d3p-home .persona-ico { width: 72px; height: 72px; border-radius: 24px; background: #fff; display: flex; align-items: center; justify-content: center; font-size: 34px; }
body.d3p-home .persona-card h3 { font: 800 30px/1.1 var(--p-title); color: var(--p-ink); }
body.d3p-home .persona-card li { color: #34345a; border-bottom-color: rgba(255,255,255,.7); }
body.d3p-home .persona-card li .chk { width: 22px; height: 22px; border-radius: 50%; background: var(--p-ink); color: #fff; font-size: 11px; display: inline-flex; align-items: center; justify-content: center; line-height: 1; transform: translateY(4px); }
body.d3p-home .persona-card strong { color: var(--p-ink); }
body.d3p-home .persona-card .btn-primary { background: var(--p-ink); border-color: var(--p-ink); color: #fff; box-shadow: none; margin-bottom: 0; }
body.d3p-home .persona-card .btn-primary:hover { background: var(--p-ink-2); transform: none; box-shadow: none; }

/* Cartes de fonctionnalités : blanches, icône sur pastille de couleur */
body.d3p-home .features-grid { gap: 16px; }
body.d3p-home .feature-card { border: 0; border-radius: 30px; padding: 30px 28px; background: #fff; transition: transform .15s, box-shadow .15s; }
body.d3p-home .feature-card:hover { transform: translateY(-3px); box-shadow: 0 10px 0 rgba(30,27,75,.06); border-color: transparent; }
body.d3p-home .feature-ico { width: 58px; height: 58px; border-radius: 20px; background: var(--p-lav); font-size: 26px; }
body.d3p-home .features-grid > :nth-child(6n+2) .feature-ico { background: var(--p-mint); }
body.d3p-home .features-grid > :nth-child(6n+3) .feature-ico { background: var(--p-sun); }
body.d3p-home .features-grid > :nth-child(6n+4) .feature-ico { background: var(--p-sky); }
body.d3p-home .features-grid > :nth-child(6n+5) .feature-ico { background: var(--p-peach); }
body.d3p-home .features-grid > :nth-child(6n+6) .feature-ico { background: var(--p-lav); }
body.d3p-home .feature-card h3 { font: 800 20px/1.2 var(--p-title); color: var(--p-ink); }
body.d3p-home .feature-card p { color: var(--p-muted); font-size: 15px; }
/* Section annonces : trois tuiles colorées */
body.d3p-home #annonces .feature-card:nth-child(1) { background: var(--p-lav); }
body.d3p-home #annonces .feature-card:nth-child(2) { background: var(--p-mint); }
body.d3p-home #annonces .feature-card:nth-child(3) { background: var(--p-sun); }
body.d3p-home #annonces .feature-card .feature-ico { background: #fff; }
body.d3p-home #annonces .feature-card p { color: #3f3f63; }

/* Bloc signature : grande tuile encre */
body.d3p-home .sig-block { background: var(--p-ink); border: 0; border-radius: 40px; padding: 48px 46px; position: relative; overflow: hidden; }
body.d3p-home .sig-block::after {
  content: ""; position: absolute; width: 320px; height: 320px; border-radius: 50%; right: -120px; bottom: -160px;
  border: 30px solid var(--p-ink-3); pointer-events: none;
}
body.d3p-home .sig-block > * { position: relative; z-index: 1; }
body.d3p-home .sig-block h3 { font: 800 clamp(26px, 3vw, 36px)/1.1 var(--p-title); color: #fff; }
body.d3p-home .sig-block p { color: var(--p-soft); }
body.d3p-home .sig-block .badge-eyebrow { background: var(--p-coral); color: var(--p-ink); }
body.d3p-home .sig-feature { color: #fff; }
body.d3p-home .sig-feature-ico { width: 24px; height: 24px; background: #7ee0b8; color: var(--p-ink); }
body.d3p-home .sig-mockup { border: 0; border-radius: 28px; padding: 24px; box-shadow: 0 20px 50px rgba(0,0,0,.25); transform: rotate(2deg); }
body.d3p-home .sig-mockup-head { border-bottom-color: #f0f0f6; }
body.d3p-home .sig-mockup-ico { background: var(--p-mint); border-radius: 14px; width: 42px; height: 42px; }
body.d3p-home .sig-mockup-title { font-family: var(--p-title); color: var(--p-ink); font-size: 16px; }
body.d3p-home .sig-mockup-check { border-color: var(--p-ink); color: var(--p-ink); border-radius: 6px; }
body.d3p-home .sig-mockup-canvas { border-color: var(--p-soft); border-radius: 16px; background: repeating-linear-gradient(0deg,transparent,transparent 19px,#efedfb 19px,#efedfb 20px); }
body.d3p-home .sig-mockup-sig { color: var(--p-ink); }
body.d3p-home .sig-mockup-btn { background: var(--p-coral); color: var(--p-ink); border-radius: 999px; font-family: var(--p-title); box-shadow: 0 4px 0 var(--p-coral-d); }

/* Étapes */
body.d3p-home .steps-grid { gap: 16px; }
body.d3p-home .step-card { background: #fff; border-radius: 30px; padding: 34px 28px; text-align: left; }
body.d3p-home .step-num { width: 58px; height: 58px; margin: 0 0 18px; border-radius: 20px; background: var(--p-ink); color: #fff; font: 800 24px/1 var(--p-title); box-shadow: 0 5px 0 var(--p-coral); }
body.d3p-home .step-card h3 { font: 800 21px/1.2 var(--p-title); color: var(--p-ink); }
body.d3p-home .step-card p { color: var(--p-muted); font-size: 15px; }

/* FAQ : questions en cartes */
body.d3p-home .faq-list { display: flex; flex-direction: column; gap: 10px; }
body.d3p-home .faq-item { background: #fff; border: 0; border-radius: 24px; padding: 0 24px; transition: background .15s; }
body.d3p-home .faq-item[open] { background: #fff; box-shadow: 0 0 0 2px var(--p-ink); }
body.d3p-home .faq-item summary { color: var(--p-ink); font: 700 17px/1.35 var(--p-title); padding: 20px 0; gap: 16px; }
body.d3p-home .faq-item summary::after {
  content: "+"; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--p-bg); color: var(--p-ink);
  display: inline-flex; align-items: center; justify-content: center; font: 700 20px/1 var(--p-text);
}
body.d3p-home .faq-item[open] summary::after { content: "−"; background: var(--p-coral); color: var(--p-ink); }
body.d3p-home .faq-item p { color: #4a4a6a; font-size: 15.5px; padding-bottom: 22px; }
body.d3p-home .faq-item a { color: var(--p-ink) !important; text-decoration: underline; }

/* Bandeau final : grande tuile corail */
body.d3p-home .cta-band {
  background: var(--p-coral); color: var(--p-ink); max-width: 1200px; margin: 20px auto 70px;
  border-radius: 44px; padding: 70px 24px; position: relative; overflow: hidden;
}
body.d3p-home .cta-band::before {
  content: ""; position: absolute; width: 300px; height: 300px; border-radius: 50%; left: -90px; top: -140px;
  background: rgba(255,255,255,.18); pointer-events: none;
}
body.d3p-home .cta-band .wrap { position: relative; z-index: 1; }
body.d3p-home .cta-band h2 { font: 800 clamp(30px, 4vw, 48px)/1.08 var(--p-title); color: var(--p-ink); letter-spacing: -.03em; }
body.d3p-home .cta-band p { color: #4a2111; opacity: 1; }
body.d3p-home .cta-band .btn-white { background: var(--p-ink); color: #fff; border-color: var(--p-ink); box-shadow: 0 6px 0 #0f0d2e; }
body.d3p-home .cta-band .btn-cta-alt { background: #fff; color: var(--p-ink); border: 0; font-family: var(--p-text); font-weight: 700; }

/* Pied de page */
body.d3p-home .hp-foot { background: transparent; border-top: 0; color: var(--p-muted); padding: 10px 20px 40px; }
body.d3p-home .hp-foot a { color: var(--p-ink); font-weight: 600; }

/* Mobile */
@media (max-width: 768px) {
  body.d3p-home .hp-nav-inner { height: 66px; }
  body.d3p-home .hp-nav-logo img { height: 44px; }
  body.d3p-home .hp-nav .btn { min-height: 40px; padding: 0 14px; font-size: 13px; }
  body.d3p-home .hero { padding: 40px 0 50px; }
  body.d3p-home .hero h1 strong { white-space: normal; }
  body.d3p-home .section { padding: 60px 0; }
  body.d3p-home .persona-card { padding: 30px 24px; border-radius: 30px; }
  body.d3p-home .sig-block { padding: 32px 24px; border-radius: 32px; }
  body.d3p-home .sig-mockup { transform: none; }
  body.d3p-home .cta-band { margin: 10px 14px 50px; border-radius: 34px; padding: 50px 20px; }
  body.d3p-home .hero-ctas .btn { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
  body.d3p * { transition: none !important; animation: none !important; }
  body.d3p-home .sig-mockup { transform: none; }
}

/* ── 4. Annonces publiques (liste, fiche, département, connexion) ──────── */
body.d3p-ann { background: var(--p-bg) !important; }

/* Barre de navigation */
body.d3p-ann .anp-top {
  background: rgba(245,245,250,.86); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px);
  box-shadow: 0 1px 0 var(--p-line);
}
body.d3p-ann .anp-top-inner { max-width: 1200px; height: 76px; }
body.d3p-ann .anp-top-logo img { height: 52px; }
body.d3p-ann .anp-top-nav a { color: var(--p-ink); opacity: .78; font-weight: 700; }
body.d3p-ann .anp-top-nav a:hover { opacity: 1; color: var(--p-ink); }
body.d3p-ann .anp-btn { border-radius: 999px; min-height: 44px; padding: 0 18px; font-size: 14px; }
body.d3p-ann .anp-btn-ghost { background: #fff; color: var(--p-ink); border: 1.5px solid var(--p-line); backdrop-filter: none; }
body.d3p-ann .anp-btn-ghost:hover { background: #f0f0f8; color: var(--p-ink); border-color: #d4d4e6; }
body.d3p-ann .anp-btn-white { background: var(--p-ink); color: #fff; border: 0; box-shadow: none; }
body.d3p-ann .anp-btn-white:hover { background: var(--p-ink-2); }

body.d3p-ann .anp-wrap { max-width: 1200px; }

/* Hero de la liste */
body.d3p-ann .anp-hero--landing { padding: 40px 0 10px; }
body.d3p-ann .anp-hero--landing h1 { font: 800 clamp(34px, 4.6vw, 56px)/1.04 var(--p-title); letter-spacing: -.035em; color: var(--p-ink); }
body.d3p-ann .anp-hero-hl { background: none; -webkit-background-clip: border-box; background-clip: border-box; color: var(--p-ink);
  background-image: linear-gradient(transparent 62%, var(--p-coral) 62%, var(--p-coral) 90%, transparent 90%); }
body.d3p-ann .anp-hero--landing p { color: var(--p-muted); font-size: 17px; }
body.d3p-ann .anp-hero--landing p strong { color: var(--p-ink); }
body.d3p-ann .anp-hero-eyebrow { background: var(--p-sun); border: 0; color: var(--p-ink); font-weight: 800; padding: 8px 16px; }
body.d3p-ann .anp-hero-eyebrow-dot { background: var(--p-coral); box-shadow: 0 0 0 3px rgba(255,122,89,.25); animation: none; }
body.d3p-ann .anp-hero-checks span { border: 0; box-shadow: none; color: var(--p-ink); padding: 8px 14px; }
body.d3p-ann .anp-hero-trust { color: var(--p-muted); }
/* Ancien bandeau bleu (pages sans hero enrichi) */
body.d3p-ann .anp-hero:not(.anp-hero--landing) { background: var(--p-ink); border-radius: 34px; box-shadow: none; padding: 34px 32px; }
body.d3p-ann .anp-hero:not(.anp-hero--landing) h1 { color: #fff; font: 800 clamp(26px, 3vw, 36px)/1.1 var(--p-title); }
body.d3p-ann .anp-hero:not(.anp-hero--landing) p { color: var(--p-soft); }

/* Boutons d'appel */
body.d3p-ann .anp-btn-cta { border-radius: 999px; min-height: 54px; padding: 0 26px; font-family: var(--p-title); font-size: 16px; }
body.d3p-ann .anp-btn-cta--green {
  background: var(--p-coral); border-color: var(--p-coral); color: var(--p-ink);
  box-shadow: 0 6px 0 var(--p-coral-d) !important; margin-bottom: 6px;
}
body.d3p-ann .anp-btn-cta--green:hover { background: #ff8a6c; border-color: #ff8a6c; }
body.d3p-ann .anp-btn-cta--green:active { transform: translateY(4px); box-shadow: 0 2px 0 var(--p-coral-d) !important; }
body.d3p-ann .anp-btn-cta--ghost,
body.d3p-ann .anp-hero--landing .anp-btn-cta--ghost,
body.d3p-ann .anp-dep-head .anp-btn-cta--ghost { background: #fff; color: var(--p-ink); border: 1.5px solid var(--p-line); font-family: var(--p-text); font-weight: 700; backdrop-filter: none; }
body.d3p-ann .anp-btn-cta--ghost:hover { background: #f0f0f8; border-color: #d4d4e6; }
body.d3p-ann .anp-band .anp-btn-cta--ghost { background: #fff; color: var(--p-ink); border: 0; }

/* Maquette annonce → contrat */
body.d3p-ann .anp-mock-card { border: 0; border-radius: 26px; box-shadow: 0 20px 50px rgba(30,27,75,.12); padding: 20px; }
body.d3p-ann .anp-mock-card--annonce { background: var(--p-lav); }
body.d3p-ann .anp-mock-badge { background: var(--p-ink); }
body.d3p-ann .anp-mock-live { background: #fff; border: 0; color: var(--p-mint-t); }
body.d3p-ann .anp-mock-title { font-family: var(--p-title); color: var(--p-ink); font-size: 16px; }
body.d3p-ann .anp-mock-btn { background: var(--p-coral); color: var(--p-ink); border-radius: 999px; box-shadow: 0 3px 0 var(--p-coral-d); }
body.d3p-ann .anp-mock-flow-line { background: linear-gradient(90deg, rgba(30,27,75,.04), rgba(30,27,75,.3), rgba(30,27,75,.04)); }
body.d3p-ann .anp-mock-flow-chip { background: var(--p-mint); border: 0; color: var(--p-mint-t); }
body.d3p-ann .anp-mock-contrat-ico { background: var(--p-sun); border: 0; border-radius: 14px; }
body.d3p-ann .anp-mock-lines i { background: #efeff6; }
body.d3p-ann .anp-mock-sign { background: var(--p-mint); border: 0; color: var(--p-mint-t); border-radius: 999px; }
body.d3p-ann .anp-mock-sign span { background: var(--p-ink); }

/* Titres de section */
body.d3p-ann .anp-h2 { font: 800 clamp(26px, 3.4vw, 40px)/1.1 var(--p-title); color: var(--p-ink); letter-spacing: -.03em; }
body.d3p-ann .anp-h2-sub { color: var(--p-muted); font-size: 15.5px; }
body.d3p-ann .anp-h2-sub a, body.d3p-ann .anp-dep-head p a { color: var(--p-ink); text-decoration: underline; }

/* Filtres et recherche */
body.d3p-ann .anp-search { border: 0; border-radius: 999px; padding: 0 18px; min-height: 52px; }
body.d3p-ann .anp-search:focus-within { box-shadow: 0 0 0 3px var(--p-violet); }
body.d3p-ann .anp-search input { font-size: 15px; color: var(--p-ink); }
body.d3p-ann .anp-chip { border: 0; background: #fff; color: var(--p-ink); min-height: 40px; display: inline-flex; align-items: center; padding: 0 16px; font-size: 13.5px; }
body.d3p-ann .anp-chip:hover { background: #ebebf4; }
body.d3p-ann .anp-chip.on { background: var(--p-ink); color: #fff; }

/* Cartes d'annonce */
body.d3p-ann .anp-grid { gap: 14px; }
body.d3p-ann .anp-card { border: 0; border-top: 0; border-radius: 28px; padding: 24px; box-shadow: none; }
body.d3p-ann .anp-card:hover { box-shadow: 0 10px 0 rgba(30,27,75,.06); transform: translateY(-3px); }
body.d3p-ann .anp-card h2 { font: 800 19px/1.25 var(--p-title); color: var(--p-ink); }
body.d3p-ann .anp-card-desc { color: var(--p-muted); }
body.d3p-ann .anp-card-meta { color: #4a4a6a; }
body.d3p-ann .anp-badge { font-size: 12px; padding: 5px 12px; }
body.d3p-ann [data-type="remplacement"] .anp-badge--type { background: var(--p-lav) !important; color: var(--p-lav-t) !important; }
body.d3p-ann [data-type="collaboration"] .anp-badge--type { background: var(--p-mint) !important; color: var(--p-mint-t) !important; }
body.d3p-ann [data-type="cession"] .anp-badge--type { background: var(--p-sun) !important; color: var(--p-sun-t) !important; }
body.d3p-ann .anp-badge--cand { background: var(--p-peach) !important; color: var(--p-peach-t) !important; border: 0 !important; }
body.d3p-ann .anp-empty { border: 0; border-radius: 30px; color: var(--p-muted); }

/* Types, étapes, confidentialité, FAQ, bandeau */
body.d3p-ann .anp-sec--card { border: 0; border-radius: 36px; box-shadow: none; padding: 44px 40px; }
body.d3p-ann .anp-types { gap: 14px; }
body.d3p-ann .anp-type { border: 0; border-top: 0; border-radius: 30px; padding: 30px 28px; background: var(--p-lav); }
body.d3p-ann .anp-types > :nth-child(2) { background: var(--p-mint); }
body.d3p-ann .anp-types > :nth-child(3) { background: var(--p-sun); }
body.d3p-ann .anp-type:hover { transform: translateY(-3px); box-shadow: 0 10px 0 rgba(30,27,75,.07); }
body.d3p-ann .anp-type-ico { width: 60px; height: 60px; border-radius: 20px; background: #fff; display: flex; align-items: center; justify-content: center; font-size: 28px; }
body.d3p-ann .anp-type h3 { font: 800 21px/1.2 var(--p-title); color: var(--p-ink); }
body.d3p-ann .anp-type p { color: #3f3f63; }
body.d3p-ann .anp-steps { gap: 12px; }
body.d3p-ann .anp-step { border: 0; border-radius: 24px; background: var(--p-bg); padding: 24px 22px; }
body.d3p-ann .anp-step--hl { background: var(--p-mint); border: 0; }
body.d3p-ann .anp-step-num { width: 44px; height: 44px; border-radius: 15px; background: var(--p-ink); font-family: var(--p-title); }
body.d3p-ann .anp-step--hl .anp-step-num { background: var(--p-coral); color: var(--p-ink); }
body.d3p-ann .anp-step h3 { font: 800 17px/1.25 var(--p-title); color: var(--p-ink); }
body.d3p-ann .anp-step p { color: #4a4a6a; }
body.d3p-ann .anp-sec--split { background: var(--p-ink); border: 0; border-radius: 40px; padding: 46px 42px; }
body.d3p-ann .anp-sec--split .anp-h2 { color: #fff; text-align: left; }
body.d3p-ann .anp-priv-p, body.d3p-ann .anp-priv-list li { color: var(--p-soft); }
body.d3p-ann .anp-priv-p strong, body.d3p-ann .anp-priv-list strong { color: #fff; }
body.d3p-ann .anp-priv-mock { border: 0; border-radius: 28px; box-shadow: 0 20px 50px rgba(0,0,0,.25); }
body.d3p-ann .anp-priv-mock-hd { font-family: var(--p-title); color: var(--p-ink); border-bottom-color: #f0f0f6; }
body.d3p-ann .anp-priv-mock-row { border-radius: 18px; }
body.d3p-ann .anp-priv-mock-row.them { background: var(--p-bg); color: var(--p-ink); }
body.d3p-ann .anp-priv-mock-row.me { background: var(--p-ink); }
body.d3p-ann .anp-faq { display: flex; flex-direction: column; gap: 10px; }
body.d3p-ann .anp-faq-item { background: #fff; border: 0; border-radius: 24px; padding: 0 24px; }
body.d3p-ann .anp-faq-item[open] { box-shadow: 0 0 0 2px var(--p-ink); }
body.d3p-ann .anp-faq-item summary { color: var(--p-ink); font: 700 16.5px/1.35 var(--p-title); padding: 19px 0; }
body.d3p-ann .anp-faq-item summary::after {
  content: "+"; width: 34px; height: 34px; border-radius: 50%; background: var(--p-bg); color: var(--p-ink);
  display: inline-flex; align-items: center; justify-content: center; font: 700 20px/1 var(--p-text);
}
body.d3p-ann .anp-faq-item[open] summary::after { content: "−"; background: var(--p-coral); color: var(--p-ink); }
body.d3p-ann .anp-faq-item p { color: #4a4a6a; font-size: 15px; padding-bottom: 20px; }
body.d3p-ann .anp-band { background: var(--p-coral); color: var(--p-ink); border-radius: 40px; padding: 56px 32px; position: relative; overflow: hidden; }
body.d3p-ann .anp-band::before { content: ""; position: absolute; width: 260px; height: 260px; border-radius: 50%; left: -80px; top: -120px; background: rgba(255,255,255,.2); }
body.d3p-ann .anp-band > * { position: relative; }
body.d3p-ann .anp-band h2 { font: 800 clamp(26px, 3.4vw, 40px)/1.1 var(--p-title); color: var(--p-ink); }
body.d3p-ann .anp-band p { color: #4a2111; }
body.d3p-ann .anp-band .anp-btn-cta--green { background: var(--p-ink); border-color: var(--p-ink); color: #fff; box-shadow: 0 6px 0 #0f0d2e !important; }

/* Fiche d'une annonce */
body.d3p-ann .anp-back { display: inline-flex; height: 40px; align-items: center; padding: 0 16px; border-radius: 999px; background: #fff; border: 1px solid var(--p-line); color: var(--p-ink); font-weight: 700; margin-bottom: 14px; }
body.d3p-ann .anp-back:hover { background: #f0f0f8; color: var(--p-ink); }
body.d3p-ann .anp-main { border: 0; border-top: 0; border-radius: 34px; padding: 34px; }
body.d3p-ann .anp-main h1 { font: 800 clamp(26px, 3.2vw, 38px)/1.1 var(--p-title); color: var(--p-ink); letter-spacing: -.025em; }
body.d3p-ann .anp-detail-meta { color: #4a4a6a; }
body.d3p-ann .anp-desc { color: #34345a; }
body.d3p-ann .anp-facts { border-top-color: #f0f0f6; }
body.d3p-ann .anp-facts li { border-bottom-color: #f5f5fa; }
body.d3p-ann .anp-facts li b { color: var(--p-ink); }
body.d3p-ann .anp-side { border: 0; border-radius: 30px; background: var(--p-ink); color: #fff; box-shadow: none; padding: 26px; top: 96px; }
body.d3p-ann .anp-side h3 { color: #fff; font: 800 20px/1.2 var(--p-title); }
body.d3p-ann .anp-side p { color: var(--p-soft); }
body.d3p-ann .anp-cta { background: var(--p-coral); color: var(--p-ink); border-radius: 999px; font-family: var(--p-title); font-size: 16px; padding: 15px; box-shadow: 0 5px 0 var(--p-coral-d); }
body.d3p-ann .anp-cta-ghost { background: var(--p-ink-2); color: #fff; border: 0; border-radius: 999px; }
body.d3p-ann .anp-textarea { border: 0; border-radius: 18px; background: #fff; min-height: 120px; }
body.d3p-ann .anp-textarea:focus { box-shadow: 0 0 0 3px var(--p-coral); }
body.d3p-ann .anp-note { border-radius: 16px; border: 0; }
body.d3p-ann .anp-note-ok { background: var(--p-mint); color: var(--p-mint-t); }
body.d3p-ann .anp-note-info { background: var(--p-ink-2); color: var(--p-soft); }
body.d3p-ann .anp-main .anp-note-info { background: var(--p-sky); color: var(--p-sky-t); }

/* Pages départementales */
body.d3p-ann .anp-crumbs { color: var(--p-muted); }
body.d3p-ann .anp-crumbs a { color: var(--p-ink); }
body.d3p-ann .anp-dep-head h1 { font: 800 clamp(30px, 4vw, 48px)/1.06 var(--p-title); color: var(--p-ink); letter-spacing: -.03em; }
body.d3p-ann .anp-dep-head p { color: var(--p-muted); }

/* Messages flash */
body.d3p-ann .mc-flash { border: 0; border-radius: 18px; }
body.d3p-ann .mc-flash--success { background: var(--p-mint); color: var(--p-mint-t); }
body.d3p-ann .mc-flash--error { background: #ffeee9; color: #9a3412; }
body.d3p-ann .mc-flash--info { background: var(--p-sky); color: var(--p-sky-t); }
body.d3p-ann .mc-flash--warning { background: var(--p-sun); color: var(--p-sun-t); }

/* Pied de page */
body.d3p-ann .anp-foot { background: transparent; border-top: 0; color: var(--p-muted); padding: 16px 20px 40px; }
body.d3p-ann .anp-foot a { color: var(--p-ink); }

/* Connexion / inscription du module annonces */
body.d3p-ann .cx-pitch { background: var(--p-ink); border-radius: 36px; box-shadow: none; padding: 38px 34px; overflow: hidden; position: sticky; }
body.d3p-ann .cx-pitch h1 { color: #fff; font: 800 clamp(26px, 3vw, 34px)/1.1 var(--p-title); }
body.d3p-ann .cx-pitch > p, body.d3p-ann .cx-args span { color: var(--p-soft); }
body.d3p-ann .cx-arg-ico { background: var(--p-ink-2); border: 0; border-radius: 14px; width: 42px; height: 42px; }
body.d3p-ann .cx-args strong { color: #fff; font-size: 14.5px; }
body.d3p-ann .cx-card { border: 0; border-radius: 34px; box-shadow: none; }
body.d3p-ann .cx-tabs { border-bottom: 0; padding: 14px 14px 0; gap: 6px; }
body.d3p-ann .cx-tab { border-radius: 999px; background: var(--p-bg); color: var(--p-muted); padding: 13px; font-family: var(--p-title); font-weight: 800; }
body.d3p-ann .cx-tab.on { background: var(--p-ink); color: #fff; box-shadow: none; }
body.d3p-ann .cx-body { padding: 24px 28px 30px; }
body.d3p-ann .cx-label { color: var(--p-ink); }
body.d3p-ann .cx-input { border: 1.5px solid transparent; border-radius: 16px; background: #f4f4f9; min-height: 50px; font-size: 15px; color: var(--p-ink); }
body.d3p-ann .cx-input:focus { border-color: var(--p-violet); background: #fff; box-shadow: 0 0 0 4px rgba(109,93,252,.14); }
body.d3p-ann .cx-submit { border-radius: 999px; background: var(--p-coral); color: var(--p-ink); font-family: var(--p-title); min-height: 54px; box-shadow: 0 6px 0 var(--p-coral-d); margin-bottom: 6px; }
body.d3p-ann .cx-submit:hover { background: #ff8a6c; }
body.d3p-ann .cx-alt a { color: var(--p-ink); text-decoration: underline; }
body.d3p-ann .cx-alert { border: 0; border-radius: 16px; }
body.d3p-ann .cx-alert--err { background: #ffeee9; color: #9a3412; }
body.d3p-ann .cx-alert--ok { background: var(--p-mint); color: var(--p-mint-t); }
body.d3p-ann .cx-role { border: 3px solid transparent; border-radius: 22px; background: var(--p-lav); }
body.d3p-ann .cx-roles > :nth-child(2) { background: var(--p-mint); }
body.d3p-ann .cx-role:hover { border-color: transparent; transform: translateY(-2px); }
body.d3p-ann .cx-role.on { border-color: var(--p-ink); box-shadow: 0 5px 0 var(--p-ink); background: var(--p-lav); }
body.d3p-ann .cx-roles > .cx-role.on:nth-child(2) { background: var(--p-mint); }
body.d3p-ann .cx-role-ico { width: 44px; height: 44px; border-radius: 15px; background: #fff; display: flex; align-items: center; justify-content: center; }
body.d3p-ann .cx-role strong { font-family: var(--p-title); color: var(--p-ink); font-size: 15px; }
body.d3p-ann .cx-role span { color: #4a4a6a; }
body.d3p-ann .cx-next-note { background: var(--p-sky); border: 0; color: var(--p-sky-t); border-radius: 16px; }

@media (max-width: 560px) {
  body.d3p-ann .anp-top-inner { height: 66px; }
  body.d3p-ann .anp-top-logo img { height: 44px; }
  body.d3p-ann .anp-sec--card, body.d3p-ann .anp-sec--split { padding: 28px 20px; border-radius: 30px; }
  body.d3p-ann .anp-band { padding: 38px 20px; border-radius: 32px; }
  body.d3p-ann .anp-main { padding: 24px 20px; border-radius: 28px; }
  body.d3p-ann .cx-pitch { padding: 28px 22px; border-radius: 30px; }
}

/* ── 5. Connexion, inscription, mot de passe, vérification ─────────────── */
body.d3p-auth .login-nav { background: transparent; border-bottom: 0; height: 80px; max-width: 1200px; width: 100%; margin: 0 auto; box-sizing: border-box; }
body.d3p-auth .login-nav-logo img { height: 52px; }
body.d3p-auth .login-nav-back {
  display: inline-flex; align-items: center; height: 44px; padding: 0 18px; border-radius: 999px;
  background: #fff; border: 1.5px solid var(--p-line); color: var(--p-ink); font-size: 14px; font-weight: 700;
}
body.d3p-auth .login-nav-back:hover { background: #f0f0f8; border-color: #d4d4e6; }
body.d3p-auth .login-page::before { background: radial-gradient(circle, rgba(228,220,255,.9) 0%, rgba(228,220,255,0) 68%); }
body.d3p-auth .login-page::after { background: radial-gradient(circle, rgba(255,217,204,.75) 0%, rgba(255,217,204,0) 70%); }
body.d3p-auth .login-container { max-width: 1060px; gap: 40px; }
body.d3p-auth .login-info h1 { font: 800 clamp(34px, 4vw, 50px)/1.04 var(--p-title); letter-spacing: -.035em; color: var(--p-ink); }
body.d3p-auth .login-info h1 strong { color: var(--p-ink); background: linear-gradient(transparent 62%, var(--p-coral) 62%, var(--p-coral) 90%, transparent 90%); }
body.d3p-auth .login-info-sub { color: var(--p-muted); font-size: 17px; }
body.d3p-auth .login-feature { color: var(--p-ink); font-weight: 600; }
body.d3p-auth .login-feature-ico { width: 38px; height: 38px; border-radius: 13px; background: var(--p-lav); font-size: 17px; }
body.d3p-auth .login-features > :nth-child(5n+2) .login-feature-ico { background: var(--p-mint); }
body.d3p-auth .login-features > :nth-child(5n+3) .login-feature-ico { background: var(--p-sun); }
body.d3p-auth .login-features > :nth-child(5n+4) .login-feature-ico { background: var(--p-sky); }
body.d3p-auth .login-features > :nth-child(5n+5) .login-feature-ico { background: var(--p-peach); }
body.d3p-auth .login-trust { border-top-color: var(--p-line); }
body.d3p-auth .login-trust-item { color: var(--p-muted); font-size: 13px; }

body.d3p-auth .auth-card { border: 0; border-radius: 36px; box-shadow: 0 30px 70px rgba(30,27,75,.10); }
body.d3p-auth .tab-nav { border-bottom: 0; padding: 14px 14px 0; gap: 6px; }
body.d3p-auth .tab-btn { border-radius: 999px; border-bottom: 0; background: var(--p-bg); color: var(--p-muted); padding: 14px; font-family: var(--p-title); }
body.d3p-auth .tab-btn:hover { color: var(--p-ink); }
body.d3p-auth .tab-btn.active { background: var(--p-ink); color: #fff; }
body.d3p-auth .tab-body { padding: 26px 30px 32px; }
body.d3p-auth .pane h2,
body.d3p-auth .auth-card h1,
body.d3p-auth .auth-card h2 { font: 800 26px/1.15 var(--p-title); color: var(--p-ink); }
body.d3p-auth .field-label { color: var(--p-ink); font-size: 13.5px; }
body.d3p-auth .field-input {
  border: 1.5px solid transparent; border-radius: 16px; background-color: #f4f4f9; min-height: 52px; color: var(--p-ink);
}
body.d3p-auth .field-input:hover { border-color: var(--p-line); }
body.d3p-auth .field-input:focus { border-color: var(--p-violet); background-color: #fff; box-shadow: 0 0 0 4px rgba(109,93,252,.14); }
body.d3p-auth .pw-toggle { color: var(--p-ink); text-decoration: underline; }
body.d3p-auth .btn-submit {
  border-radius: 999px; background: var(--p-coral); color: var(--p-ink); font-family: var(--p-title); min-height: 56px;
  box-shadow: 0 6px 0 var(--p-coral-d); margin-bottom: 6px;
}
body.d3p-auth .btn-submit:hover { background: #ff8a6c; box-shadow: 0 7px 0 var(--p-coral-d); }
body.d3p-auth .btn-submit:active { transform: translateY(4px); box-shadow: 0 2px 0 var(--p-coral-d); }
body.d3p-auth .switch-hint { color: var(--p-muted); }
body.d3p-auth .switch-hint a { color: var(--p-ink); text-decoration: underline; }
body.d3p-auth .alert { border: 0; border-radius: 16px; }
body.d3p-auth .alert-err { background: #ffeee9; color: #9a3412; }
body.d3p-auth .alert-ok { background: var(--p-mint); color: var(--p-mint-t); }
body.d3p-auth .resend-box { background: var(--p-bg); border: 0; border-radius: 16px; }
body.d3p-auth .resend-btn { color: var(--p-ink); }
body.d3p .login-foot a { color: var(--p-muted); font-weight: 600; text-decoration: none; }
body.d3p .login-foot a:hover { color: var(--p-ink); text-decoration: underline; }
@media (max-width: 640px) {
  body.d3p-auth .login-nav { padding: 0 16px; height: 70px; }
  body.d3p-auth .login-nav-logo img { height: 44px; }
  body.d3p-auth .login-nav-back, body.d3p-guest .login-nav-back { white-space: nowrap; height: 40px; padding: 0 14px; font-size: 13px; }
  body.d3p-auth .login-nav-logo span, body.d3p-guest .login-nav-logo span { display: none; }
  body.d3p-auth .auth-card { border-radius: 30px; }
  body.d3p-auth .tab-body { padding: 22px 20px 26px; }
}

/* Page « vérification impossible » (verify.php) */
body.d3p-auth .vf-wrap { max-width: 560px; margin: 0 auto; padding: 30px 20px 60px; }
body.d3p-auth .vf-card { background: #fff; border-radius: 34px; padding: 34px 32px; box-shadow: 0 30px 70px rgba(30,27,75,.10); }
body.d3p-auth .vf-ico { width: 74px; height: 74px; border-radius: 26px; background: var(--p-peach); display: flex; align-items: center; justify-content: center; font-size: 34px; margin-bottom: 18px; }
body.d3p-auth .vf-card h1 { font: 800 30px/1.1 var(--p-title); margin: 0 0 14px; }
body.d3p-auth .vf-card .err { background: #ffeee9; color: #9a3412; border-radius: 16px; padding: 14px 16px; margin: 0; }
body.d3p-auth .vf-card .resend { margin-top: 16px; padding: 16px 18px; background: var(--p-bg); border-radius: 18px; font-size: 14px; color: #4a4a6a; line-height: 1.55; }
body.d3p-auth .vf-card .resend button {
  display: inline-flex; align-items: center; margin-top: 12px; min-height: 48px; padding: 0 22px; border: 0; border-radius: 999px;
  background: var(--p-coral); color: var(--p-ink); font: 800 15px/1 var(--p-title); cursor: pointer; box-shadow: 0 5px 0 var(--p-coral-d);
}
body.d3p-auth .vf-card .resend button:disabled { background: #e3e3ee; color: #8a8aa8; box-shadow: 0 5px 0 #cfcfe0; cursor: not-allowed; }
body.d3p-auth .vf-card .st { display: block; margin-top: 10px; font-weight: 700; }
body.d3p-auth .vf-card .st.ok { color: var(--p-mint-t); }
body.d3p-auth .vf-card .st.ko { color: #9a3412; }
body.d3p-auth .vf-links { margin-top: 18px; display: flex; gap: 10px; flex-wrap: wrap; }

/* ── 6. Création de contrat sans compte (public/guest-contrat.php) ─────── */
/* La page a son propre système (variables --gc-*, classes .gn-*) : on
   redéfinit ses variables, puis on retouche les blocs principaux. */
body.d3p-guest {
  --gc-ink: #1e1b4b; --gc-navy: #1e1b4b;
  --gc-blue: #1e1b4b; --gc-blue-2: #6d5dfc; --gc-blue-dk: #1e1b4b;
  --gc-green: #2fbf86; --gc-green2: #0b5c40;
  --gc-muted: #6b6b8a; --gc-hint: #a2a2bb;
  --gc-border: #ececf4; --gc-border-2: #dcdcea;
  --gc-bg: #f5f5fa; --gc-paper: #fff; --gc-soft: #efeaff;
  --gc-radius: 30px; --gc-shadow: none; --gc-shadow-sm: none;
}
body.d3p-guest::before { display: none; }
body.d3p-guest .login-nav { background: transparent; border-bottom: 0; height: 80px; max-width: 1000px; width: 100%; margin: 0 auto; box-sizing: border-box; }
body.d3p-guest .login-nav-logo img { height: 52px; }
body.d3p-guest .login-nav-logo span { color: var(--p-ink); font-family: var(--p-title); }
body.d3p-guest .login-nav-back { display: inline-flex; align-items: center; height: 44px; padding: 0 18px; border-radius: 999px; background: #fff; border: 1.5px solid var(--p-line); color: var(--p-ink); font-size: 14px; font-weight: 700; }
body.d3p-guest .gn-crumb { background: transparent; border-bottom: 0; max-width: 920px; margin: 0 auto; padding: 0 20px; font-weight: 600; }
body.d3p-guest .gn-crumb a { color: var(--p-ink); }
body.d3p-guest .gn-wrap { max-width: 920px; margin-top: 18px; }
body.d3p-guest .gn-hero { background: var(--p-ink); border-radius: 36px; box-shadow: none; padding: 34px 36px; }
body.d3p-guest .gn-hero::before { content: ''; font-size: 0; width: 260px; height: 260px; border-radius: 50%; right: -100px; bottom: -140px; border: 26px solid var(--p-ink-3); color: transparent; }
body.d3p-guest .gn-hero::after { display: none; }
body.d3p-guest .gn-hero-tag { background: var(--p-coral); border: 0; color: var(--p-ink); border-radius: 999px; text-transform: none; letter-spacing: 0; font-size: 13px; font-weight: 800; padding: 6px 14px; }
body.d3p-guest .gn-hero h1 { font: 800 clamp(26px, 3.4vw, 40px)/1.08 var(--p-title); color: #fff; letter-spacing: -.025em; }
body.d3p-guest .gn-hero-badge { background: var(--p-ink-2); border: 0; border-radius: 999px; color: var(--p-soft); padding: 6px 12px; }
body.d3p-guest .gn-hero-change { background: #fff; color: var(--p-ink); border: 0; border-radius: 999px; padding: 12px 18px; }
body.d3p-guest .gn-hero-change:hover { background: var(--p-lav); }
body.d3p-guest .gn-ps-dot { border-radius: 16px; border: 0; background: #fff; color: var(--p-muted); width: 44px; height: 44px; font-family: var(--p-title); }
body.d3p-guest .gn-ps-item:not(:last-child)::after { top: 21px; height: 4px; border-radius: 999px; background: #e3e3ee; }
body.d3p-guest .gn-ps-item.active .gn-ps-dot { background: var(--p-coral); color: var(--p-ink); box-shadow: 0 4px 0 var(--p-coral-d); }
body.d3p-guest .gn-ps-item.done .gn-ps-dot { background: var(--p-ink); color: #fff; box-shadow: none; }
body.d3p-guest .gn-ps-item.done:not(:last-child)::after { background: var(--p-ink); }
body.d3p-guest .gn-ps-item.active .gn-ps-label { color: var(--p-ink); }
body.d3p-guest .gn-ps-item.done .gn-ps-label { color: var(--p-ink); }
body.d3p-guest .gn-card { border: 0; border-radius: 34px; }
body.d3p-guest .gn-card::before { display: none; }
body.d3p-guest .gn-form-step { padding: 30px 34px; }
body.d3p-guest .gn-section { color: var(--p-ink); border-bottom: 0; padding-bottom: 0; font: 800 13px/1.2 var(--p-title); letter-spacing: .08em; gap: 2px; }
body.d3p-guest .gn-section::before { content: ''; width: 10px; height: 10px; border-radius: 50%; background: var(--p-coral); box-shadow: 0 0 0 4px var(--p-peach); margin-right: 10px; flex: none; }
body.d3p-guest .gn-label { font-size: 13.5px; }
body.d3p-guest .gn-req { color: var(--p-coral-d); }
body.d3p-guest .gn-input, body.d3p-guest .gn-select, body.d3p-guest .gn-textarea,
body.d3p-guest .gn-dates-tags-wrap, body.d3p-guest .gn-wall-input {
  border: 1.5px solid transparent; border-radius: 16px; background-color: #f4f4f9; min-height: 52px; font-size: 15px;
}
body.d3p-guest .gn-input:hover, body.d3p-guest .gn-select:hover, body.d3p-guest .gn-textarea:hover, body.d3p-guest .gn-dates-tags-wrap:hover { border-color: var(--p-line); }
body.d3p-guest .gn-input:focus, body.d3p-guest .gn-select:focus, body.d3p-guest .gn-textarea:focus,
body.d3p-guest .gn-dates-tags-wrap.focused, body.d3p-guest .gn-wall-input:focus {
  border-color: var(--p-violet); background-color: #fff; box-shadow: 0 0 0 4px rgba(109,93,252,.14);
}
body.d3p-guest .gn-input.valid, body.d3p-guest .gn-select.valid, body.d3p-guest .gn-textarea.valid { border-color: #2fbf86; box-shadow: none; background-color: #fff; }
body.d3p-guest .gn-input.invalid, body.d3p-guest .gn-select.invalid, body.d3p-guest .gn-textarea.invalid { border-color: var(--p-coral-d); box-shadow: 0 0 0 4px rgba(232,96,63,.12); background-color: #fff; }
body.d3p-guest .gn-wall-input.invalid, body.d3p-guest .gn-dates-tags-wrap.invalid { border-color: var(--p-coral-d); box-shadow: 0 0 0 4px rgba(232,96,63,.12); }
body.d3p-guest .gn-tip { background: var(--p-lav); color: var(--p-lav-t); width: 20px; height: 20px; }
body.d3p-guest .gn-tip:hover { background: var(--p-ink); color: #fff; }
body.d3p-guest .gn-tip-bubble { border-radius: 16px; }
body.d3p-guest .gn-actions-wrap { padding: 16px 34px; border-top-color: #f0f0f6; box-shadow: 0 -10px 30px rgba(30,27,75,.06); border-radius: 0 0 34px 34px; }
body.d3p-guest .gn-btn { border-radius: 999px; min-height: 50px; padding: 0 24px; font-family: var(--p-title); }
body.d3p-guest .gn-btn-ghost { border: 1.5px solid var(--p-line); color: var(--p-ink); font-family: var(--p-text); }
body.d3p-guest .gn-btn-ghost:hover { background: #f0f0f8; border-color: #d4d4e6; color: var(--p-ink); }
body.d3p-guest .gn-btn-primary, body.d3p-guest .gn-btn-green, body.d3p-guest .gn-wall-cta {
  background: var(--p-coral); color: var(--p-ink); box-shadow: 0 6px 0 var(--p-coral-d); margin-bottom: 6px;
}
body.d3p-guest .gn-btn-primary:hover, body.d3p-guest .gn-btn-green:hover, body.d3p-guest .gn-wall-cta:hover { background: #ff8a6c; box-shadow: 0 7px 0 var(--p-coral-d); }
body.d3p-guest .gn-btn-primary:disabled, body.d3p-guest .gn-wall-cta:disabled { background: #e3e3ee; color: #8a8aa8; box-shadow: 0 6px 0 #cfcfe0; opacity: 1; }
body.d3p-guest .gn-wall-cta { border-radius: 999px; min-height: 56px; font-family: var(--p-title); }
body.d3p-guest .gn-spinner { border-color: rgba(30,27,75,.25); border-top-color: var(--p-ink); }
body.d3p-guest .gn-step-info { background: var(--p-lav); color: var(--p-lav-t); border-radius: 999px; padding: 6px 14px; }
body.d3p-guest #gn-wall { background: rgba(30,27,75,.6); backdrop-filter: blur(6px); }
body.d3p-guest .gn-wall-modal { border-radius: 34px; overflow: hidden; }
body.d3p-guest .gn-wall-top { background: var(--p-ink); }
body.d3p-guest .gn-wall-top::before { content: ''; font-size: 0; width: 220px; height: 220px; border-radius: 50%; right: -80px; bottom: -120px; border: 24px solid var(--p-ink-3); }
body.d3p-guest .gn-wall-top h2 { font: 800 26px/1.15 var(--p-title); color: #fff; }
body.d3p-guest .gn-wall-top p { color: var(--p-soft); }
body.d3p-guest .gn-wall-check { border-radius: 24px; color: var(--p-mint-t); background: var(--p-mint); box-shadow: 0 8px 0 rgba(0,0,0,.2); }
body.d3p-guest .gn-wall-benefit { background: var(--p-ink-2); border: 0; border-radius: 999px; color: var(--p-soft); }
body.d3p-guest .gn-wall-login-toggle a { color: var(--p-ink); }
body.d3p-guest .gn-wall-role-card { border: 3px solid transparent; border-radius: 22px; background: var(--p-lav); }
body.d3p-guest .gn-wall-role-grid > :nth-child(2) { background: var(--p-mint); }
body.d3p-guest .gn-wall-role-card:hover { border-color: transparent; background: var(--p-lav); transform: translateY(-2px); }
body.d3p-guest .gn-wall-role-card.selected { border-color: var(--p-ink); box-shadow: 0 5px 0 var(--p-ink); background: var(--p-lav); }
body.d3p-guest .gn-wall-role-grid > .gn-wall-role-card:nth-child(2):hover,
body.d3p-guest .gn-wall-role-grid > .gn-wall-role-card.selected:nth-child(2) { background: var(--p-mint); }
body.d3p-guest .gn-wall-role-ico, body.d3p-guest .gn-wall-role-card.selected .gn-wall-role-ico { color: var(--p-ink); }
body.d3p-guest .gn-wall-role-label { font-family: var(--p-title); font-size: 14.5px; }
body.d3p-guest .gn-wall-err { background: #ffeee9; border: 0; border-radius: 16px; color: #9a3412; }
body.d3p-guest .gn-wall-footer { border-top-color: #f0f0f6; }
@media (max-width: 640px) {
  body.d3p-guest .login-nav { padding: 0 16px; height: 70px; }
  body.d3p-guest .gn-hero { padding: 26px 22px; border-radius: 30px; }
  body.d3p-guest .gn-form-step { padding: 22px 18px; }
  body.d3p-guest .gn-actions-wrap { padding: 14px 18px; border-radius: 0 0 30px 30px; }
  body.d3p-guest .gn-card { border-radius: 30px; }
}

/* ── 7. Blog ───────────────────────────────────────────────────────────── */
body.d3p-blog { background: var(--p-bg) !important; }
body.d3p-blog .blog-topbar {
  background: rgba(245,245,250,.86); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px);
  box-shadow: 0 1px 0 var(--p-line); position: sticky; top: 0; z-index: 100; padding: 12px max(24px, calc((100% - 1152px) / 2));
}
body.d3p-blog .blog-topbar-logo span { color: var(--p-ink); font-family: var(--p-title); font-size: 18px; }
body.d3p-blog .blog-topbar-nav a { color: var(--p-ink); opacity: .78; font-weight: 700; font-size: 14px; }
body.d3p-blog .blog-topbar-nav a:hover { opacity: 1; color: var(--p-ink); }
body.d3p-blog .blog-topbar-nav a.blog-topbar-login { opacity: 1; background: var(--p-ink); color: #fff; border: 0; border-radius: 999px; padding: 11px 18px; }
body.d3p-blog .blog-topbar-nav a.blog-topbar-login:hover { background: var(--p-ink-2); }
body.d3p-blog .blog-hero { background: transparent; color: var(--p-ink); padding: 56px 24px 20px; }
body.d3p-blog .blog-hero-eyebrow { background: var(--p-sun); border: 0; color: var(--p-ink); text-transform: none; letter-spacing: 0; font-size: 13px; font-weight: 800; padding: 7px 15px; }
body.d3p-blog .blog-hero h1 { font: 800 clamp(34px, 4.6vw, 56px)/1.05 var(--p-title); letter-spacing: -.035em; color: var(--p-ink); }
body.d3p-blog .blog-hero p { color: var(--p-muted); font-size: 17px; }
body.d3p-blog .blog-filter-pill { border: 0; background: #fff; color: var(--p-ink); min-height: 42px; display: inline-flex; align-items: center; padding: 0 18px; font-weight: 700; }
body.d3p-blog .blog-filter-pill:hover, body.d3p-blog .blog-filter-pill.active,
body.d3p-blog .blog-filter-pill.cat-factu:hover, body.d3p-blog .blog-filter-pill.cat-factu.active { background: var(--p-ink); border-color: var(--p-ink); color: #fff; }
body.d3p-blog .blog-grid { gap: 16px; margin-top: 32px; }
body.d3p-blog .blog-card { border: 0; border-radius: 30px; box-shadow: none; }
body.d3p-blog .blog-card:hover { transform: translateY(-3px); box-shadow: 0 10px 0 rgba(30,27,75,.06); }
body.d3p-blog .blog-card-img { height: 150px; margin: 10px 10px 0; border-radius: 22px; font-size: 52px; }
body.d3p-blog .blog-card-img.bg-nurse { background: var(--p-lav); }
body.d3p-blog .blog-card-img.bg-factu { background: var(--p-mint); }
body.d3p-blog .blog-grid > :nth-child(3n+2) .blog-card-img.bg-nurse { background: var(--p-sky); }
body.d3p-blog .blog-grid > :nth-child(3n+3) .blog-card-img.bg-nurse { background: var(--p-peach); }
body.d3p-blog .blog-card-body { padding: 18px 22px 22px; }
body.d3p-blog .blog-card-cat, body.d3p-blog .blog-article-cat { text-transform: none; letter-spacing: 0; font-size: 12px; font-weight: 800; padding: 5px 12px; }
body.d3p-blog .blog-card-cat.nurse, body.d3p-blog .blog-article-cat.nurse { background: var(--p-lav); color: var(--p-lav-t); }
body.d3p-blog .blog-card-cat.factu, body.d3p-blog .blog-article-cat.factu { background: var(--p-mint); color: var(--p-mint-t); }
body.d3p-blog .blog-card h2 { font: 800 18px/1.3 var(--p-title); color: var(--p-ink); }
body.d3p-blog .blog-card p { color: var(--p-muted); font-size: 14px; }
body.d3p-blog .blog-card-meta { border-top-color: #f0f0f6; color: var(--p-muted); }
body.d3p-blog .blog-card-read, body.d3p-blog .blog-card.cat-factu .blog-card-read { color: var(--p-ink); font-weight: 800; }

/* Article */
body.d3p-blog .blog-article-wrap { max-width: 780px; }
body.d3p-blog .blog-breadcrumb { color: var(--p-muted); padding-top: 22px; }
body.d3p-blog .blog-breadcrumb a { color: var(--p-ink); font-weight: 700; }
body.d3p-blog .blog-article-header { border-bottom: 0; padding: 32px 0 28px; margin-bottom: 18px; }
body.d3p-blog .blog-article-header h1 { font: 800 clamp(32px, 4.4vw, 50px)/1.06 var(--p-title); letter-spacing: -.035em; color: var(--p-ink); }
body.d3p-blog .blog-article-header .blog-intro { color: var(--p-muted); font-size: 18px; }
body.d3p-blog .blog-article-date { color: var(--p-muted); }
body.d3p-blog .blog-article-content { background: #fff; border-radius: 34px; padding: 40px 44px; }
body.d3p-blog .blog-article-content > :first-child { margin-top: 0; }
body.d3p-blog .blog-article-content h2 { font: 800 26px/1.2 var(--p-title); color: var(--p-ink); border-bottom: 0; padding-bottom: 0; margin-top: 40px; letter-spacing: -.02em; }
body.d3p-blog .blog-article-content h3 { font: 800 19px/1.3 var(--p-title); color: var(--p-ink); }
body.d3p-blog .blog-article-content p, body.d3p-blog .blog-article-content li { color: #34345a; font-size: 16.5px; }
body.d3p-blog .blog-article-content ul, body.d3p-blog .blog-article-content ol { color: #34345a; }
body.d3p-blog .blog-article-content li::marker { color: var(--p-coral-d); }
body.d3p-blog .blog-article-content strong { color: var(--p-ink); }
body.d3p-blog .blog-article-content a { color: var(--p-ink); text-decoration: underline; text-decoration-color: var(--p-coral); text-decoration-thickness: 2px; text-underline-offset: 3px; }
body.d3p-blog .blog-article-content table { border-collapse: collapse; width: 100%; }
body.d3p-blog .blog-box { border-left: 0; border-radius: 24px; padding: 22px 24px; }
body.d3p-blog .blog-box.info { background: var(--p-sky); color: #1f2d55; }
body.d3p-blog .blog-box.warn { background: var(--p-sun); color: #4b3a0a; }
body.d3p-blog .blog-box.tip { background: var(--p-mint); color: #0b4d36; }
body.d3p-blog .blog-box.cta { background: var(--p-ink); color: #fff; }
body.d3p-blog .blog-box.cta a { color: var(--p-coral); }
body.d3p-blog .blog-box strong { font-family: var(--p-title); color: inherit; }
body.d3p-blog .blog-cta-block { background: var(--p-coral); color: var(--p-ink); border-radius: 36px; padding: 42px 34px; position: relative; overflow: hidden; }
body.d3p-blog .blog-cta-block::before { content: ""; position: absolute; width: 220px; height: 220px; border-radius: 50%; left: -70px; top: -100px; background: rgba(255,255,255,.2); }
body.d3p-blog .blog-cta-block > * { position: relative; }
body.d3p-blog .blog-cta-block h3, body.d3p-blog .blog-cta-block .blog-cta-title { font: 800 26px/1.15 var(--p-title); color: var(--p-ink); }
body.d3p-blog .blog-cta-block p { color: #4a2111; }
body.d3p-blog .blog-cta-btn { background: var(--p-ink); color: #fff; font-family: var(--p-title); font-weight: 800; padding: 15px 28px; box-shadow: 0 5px 0 #0f0d2e; }
body.d3p-blog .blog-article-nav { border-top: 0; }
body.d3p-blog .blog-article-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; background: #fff; color: var(--p-ink); font-weight: 700; }
body.d3p-blog .blog-related { margin-top: 36px; }
body.d3p-blog .blog-related h2 { font: 800 24px/1.2 var(--p-title); }
body.d3p-blog .blog-related a { color: var(--p-ink); }
body.d3p-blog .blog-disclaimer { color: var(--p-muted); }
body.d3p-blog .blog-footer { background: transparent; border-top: 0; color: var(--p-muted); }
body.d3p-blog .blog-footer a, body.d3p-blog .blog-footer-links a { color: var(--p-ink); }
@media (max-width: 640px) {
  body.d3p-blog .blog-topbar { padding: 10px 14px; }
  body.d3p-blog .blog-topbar-nav { gap: 10px; }
  body.d3p-blog .blog-topbar-nav a { font-size: 12.5px; }
  body.d3p-blog .blog-topbar-nav a.blog-topbar-login { padding: 8px 12px; }
  body.d3p-blog .blog-article-content { padding: 26px 20px; border-radius: 28px; }
  body.d3p-blog .blog-cta-block { padding: 32px 22px; border-radius: 30px; }
}

/* ── 8. Signature d'un contrat ou d'une quittance ──────────────────────── */
body.d3p-sign .sign-container { max-width: 900px; padding-top: 10px; }
body.d3p-sign .sign-logo-bar { padding: 14px 0 18px; }
body.d3p-sign .sign-logo-bar img { width: 52px; height: 52px; }
body.d3p-sign .sign-card { border: 0; border-radius: 36px; box-shadow: none; overflow: hidden; }
body.d3p-sign .sign-card-hd { background: var(--p-ink); border-bottom: 0; padding: 30px 32px; position: relative; overflow: hidden; }
body.d3p-sign .sign-card-hd::after { content: ""; position: absolute; width: 220px; height: 220px; border-radius: 50%; right: -80px; bottom: -130px; border: 24px solid var(--p-ink-3); }
body.d3p-sign .sign-card-hd h1 { position: relative; z-index: 1; font: 800 clamp(24px, 3vw, 34px)/1.1 var(--p-title); color: #fff; margin: 0; }
body.d3p-sign .sign-card-sub { position: relative; z-index: 1; color: var(--p-soft); font-size: 15px; }
body.d3p-sign .sign-card-body { padding: 28px 32px 32px; }
body.d3p-sign .sign-infos { gap: 10px; }
body.d3p-sign .sign-info-item { background: var(--p-bg); border: 0; border-radius: 20px; padding: 14px 16px; color: var(--p-ink); font-weight: 700; }
body.d3p-sign .sign-info-item span { color: var(--p-muted); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: 11px; }
body.d3p-sign .sign-alert { border: 0; border-radius: 18px; }
body.d3p-sign .sign-alert-err { background: #ffeee9; color: #9a3412; }
body.d3p-sign .sign-alert-ok { background: var(--p-mint); color: var(--p-mint-t); }
body.d3p-sign .sign-alert-info { background: var(--p-sky); color: var(--p-sky-t); }
body.d3p-sign .sign-form-section { color: var(--p-ink); font-family: var(--p-title); }
body.d3p-sign .sign-pdf-frame { border: 0; border-radius: 24px; background: var(--p-bg); }
body.d3p-sign .sign-label { color: var(--p-ink); font-weight: 700; }
body.d3p-sign .sign-input { border: 1.5px solid transparent; border-radius: 16px; background: #f4f4f9; min-height: 52px; color: var(--p-ink); }
body.d3p-sign .sign-input:focus { border-color: var(--p-violet); background: #fff; box-shadow: 0 0 0 4px rgba(109,93,252,.14); outline: none; }
body.d3p-sign .sign-checkbox-row { background: var(--p-bg); border-radius: 18px; padding: 14px 16px; border: 0; }
body.d3p-sign .sign-checkbox-row input { accent-color: var(--p-ink); }
body.d3p-sign .sign-checkbox-row a { color: var(--p-ink); font-weight: 700; }
body.d3p-sign .sign-canvas-wrap { border: 2px dashed var(--p-soft); border-radius: 24px; background: #fafaff; }
body.d3p-sign .sign-canvas-wrap.drawing { border-color: var(--p-mint-t); border-style: solid; background: #f1fbf6; }
body.d3p-sign .sign-btn-clear { border-radius: 999px; border: 1.5px solid var(--p-line); background: #fff; color: var(--p-ink); font-weight: 700; }
body.d3p-sign .sign-btn-submit {
  border-radius: 999px; background: var(--p-coral); color: var(--p-ink); font-family: var(--p-title); min-height: 56px;
  box-shadow: 0 6px 0 var(--p-coral-d); margin-bottom: 6px; border: 0;
}
body.d3p-sign .sign-btn-submit:hover:not(:disabled) { background: #ff8a6c; }
body.d3p-sign .sign-btn-submit:disabled { background: #e3e3ee; color: #8a8aa8; box-shadow: 0 6px 0 #cfcfe0; }
body.d3p-sign .sign-hint, body.d3p-sign .sign-small, body.d3p-sign .sign-canvas-hint { color: var(--p-muted); }
body.d3p-sign a { color: var(--p-ink); }
@media (max-width: 640px) {
  body.d3p-sign .sign-card { border-radius: 30px; }
  body.d3p-sign .sign-card-hd { padding: 24px 20px; }
  body.d3p-sign .sign-card-body { padding: 20px; }
}

/* ── 9. Formulaires d'invitation ───────────────────────────────────────── */
body.d3p-invite .if-container { max-width: 880px; margin-top: 14px; }
body.d3p-invite .if-logo-bar { padding: 4px 0; }
body.d3p-invite .if-logo-bar span[style] { color: var(--p-ink) !important; font-family: var(--p-title); font-size: 18px !important; }
/* [en ligne] Bandeau bleu → titre encre en tuile */
body.d3p-invite .if-container > div[style*="linear-gradient(135deg,#0c4a6e"] {
  background: var(--p-ink) !important; border-radius: 34px !important; box-shadow: none !important; padding: 28px 30px !important; position: relative; overflow: hidden;
}
body.d3p-invite .if-container > div[style*="linear-gradient(135deg,#0c4a6e"] span[style] { background: var(--p-coral) !important; border: 0 !important; color: var(--p-ink) !important; font-weight: 800 !important; font-size: 12.5px !important; padding: 5px 12px !important; }
body.d3p-invite .if-container > div[style*="linear-gradient(135deg,#0c4a6e"] h1 { font: 800 clamp(24px, 3vw, 34px)/1.1 var(--p-title) !important; color: #fff !important; }
body.d3p-invite .if-container > div[style*="linear-gradient(135deg,#0c4a6e"] p { color: var(--p-soft) !important; font-size: 14.5px !important; }
body.d3p-invite .if-card { border: 0; border-radius: 34px; box-shadow: none; }
body.d3p-invite .if-card-hd { background: transparent; border-bottom: 0; padding: 26px 30px 4px; }
body.d3p-invite .if-card-hd h1 { font: 800 22px/1.2 var(--p-title); color: var(--p-ink); }
body.d3p-invite .if-card-hd p { color: var(--p-muted); font-size: 14.5px; }
body.d3p-invite .if-card-body { padding: 18px 30px 30px; }
body.d3p-invite .if-section { display: flex; align-items: center; gap: 10px; border-bottom: 0; padding-bottom: 0; margin: 26px 0 14px; font: 800 13px/1.2 var(--p-title); color: var(--p-ink); letter-spacing: .08em; }
body.d3p-invite .if-section::before { content: ''; width: 10px; height: 10px; border-radius: 50%; background: var(--p-coral); box-shadow: 0 0 0 4px var(--p-peach); flex: none; }
body.d3p-invite .if-label { color: var(--p-ink); font-weight: 700; }
body.d3p-invite .if-req { color: var(--p-coral-d); }
body.d3p-invite .if-hint { color: var(--p-muted); }
body.d3p-invite .if-input, body.d3p-invite .if-select, body.d3p-invite .if-textarea {
  border: 1.5px solid transparent; border-radius: 16px; background-color: #f4f4f9; color: var(--p-ink);
}
body.d3p-invite .if-input:hover, body.d3p-invite .if-select:hover, body.d3p-invite .if-textarea:hover { border-color: var(--p-line); }
body.d3p-invite .if-input:focus, body.d3p-invite .if-select:focus, body.d3p-invite .if-textarea:focus { border-color: var(--p-violet); background-color: #fff; box-shadow: 0 0 0 4px rgba(109,93,252,.14); }
body.d3p-invite .if-select {
  appearance: none; -webkit-appearance: none; padding-right: 44px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231e1b4b' stroke-width='2.6' 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 16px center;
}
body.d3p-invite .if-btn-submit,
body.d3p-invite button[type="submit"] {
  border-radius: 999px !important; background: var(--p-coral) !important; color: var(--p-ink) !important;
  font-family: var(--p-title) !important; font-weight: 800 !important; min-height: 54px; box-shadow: 0 6px 0 var(--p-coral-d) !important; filter: none !important; margin-bottom: 6px;
}
body.d3p-invite .if-alert { border: 0; border-radius: 18px; }
body.d3p-invite .if-alert-err { background: #ffeee9; color: #9a3412; }
body.d3p-invite .if-alert-ok { background: var(--p-mint); color: var(--p-mint-t); }
/* En-tête de la page de renouvellement d'autorisation (.if-pub-bar, jusqu'ici sans style) */
body.d3p-invite .if-pub-bar { display: flex; align-items: center; gap: 10px; max-width: 880px; margin: 0 auto; padding: 22px 20px 0; }
body.d3p-invite .if-pub-bar a { display: inline-flex; text-decoration: none; }
body.d3p-invite .if-pub-title { font: 800 18px/1 var(--p-title); color: var(--p-ink); }
body.d3p-invite .if-card-hd h2[style] { font: 800 22px/1.2 var(--p-title) !important; color: var(--p-ink) !important; }
body.d3p-invite .if-card-hd p[style] { color: var(--p-muted) !important; font-size: 14.5px !important; }
body.d3p-invite div[style*="background:#f0f9ff"] { color: var(--p-sky-t) !important; }
body.d3p-invite .mc-tooltip { background: var(--p-lav); color: var(--p-lav-t); width: 20px; height: 20px; }
body.d3p-invite .mc-tooltip:hover { background: var(--p-ink); color: #fff; }
body.d3p-invite .mc-tooltip:focus { outline-color: var(--p-violet); }
body.d3p-invite .mc-tooltip-bubble { background: var(--p-ink); border-radius: 16px; }
body.d3p-invite .mc-tooltip-bubble::after { border-top-color: var(--p-ink); }
body.d3p-invite .if-tooltip { background: var(--p-lav); color: var(--p-lav-t); width: 20px; height: 20px; }
body.d3p-invite .if-tooltip:hover { background: var(--p-ink); color: #fff; }
body.d3p-invite .if-tooltip-bubble { background: var(--p-ink); border-radius: 16px; }
body.d3p-invite .if-tooltip-bubble::after { border-top-color: var(--p-ink); }
body.d3p-invite .if-footer { color: var(--p-muted); }
body.d3p-invite .if-footer a { color: var(--p-ink); }
/* [en ligne] cases de consentement et encadrés */
body.d3p-invite label[style*="border"] { border-radius: 18px !important; border-color: #ececf4 !important; background: #fff !important; }
body.d3p-invite div[style*="background:#f0f9ff"], body.d3p-invite div[style*="background: #f0f9ff"] { background: var(--p-sky) !important; border: 0 !important; border-radius: 18px !important; }
body.d3p-invite a[style*="color:#0369a1"], body.d3p-invite a[style*="color:#0ea5e9"] { color: var(--p-ink) !important; text-decoration: underline; }
@media (max-width: 640px) {
  body.d3p-invite .if-card { border-radius: 30px; }
  body.d3p-invite .if-card-hd { padding: 22px 20px 2px; }
  body.d3p-invite .if-card-body { padding: 14px 20px 24px; }
  body.d3p-invite .if-container > div[style*="linear-gradient(135deg,#0c4a6e"] { padding: 22px 20px !important; border-radius: 30px !important; }
}

/* Pages de confirmation (« Merci », lien expiré…) des invitations */
body.d3p-done { background: var(--p-bg) !important; }
body.d3p-done .card { border: 0; border-radius: 36px; box-shadow: 0 30px 70px rgba(30,27,75,.10); }
body.d3p-done .hd { background: var(--p-mint); border-bottom: 0; padding: 30px 28px; }
body.d3p-done .hd h1 { font: 800 28px/1.15 var(--p-title); color: var(--p-ink); }
body.d3p-done .hd p { color: var(--p-mint-t); }
body.d3p-done .bd h2 { font: 800 21px/1.2 var(--p-title); color: var(--p-ink); }
body.d3p-done .bd p, body.d3p-done ul { color: #4a4a6a; }
body.d3p-done .ico { background: var(--p-mint); border-radius: 26px; }
body.d3p-done .ft { background: transparent; border-top: 1px solid #f0f0f6; color: var(--p-muted); }

/* Liens bleus écrits en ligne, toutes pages publiques [en ligne] */
body.d3p a[style*="color:#0ea5e9"], body.d3p a[style*="color:#0369a1"] { color: var(--p-ink) !important; text-decoration: underline; }
body.d3p-auth .auth-card h2[style] { color: var(--p-ink) !important; font: 800 26px/1.15 var(--p-title) !important; }

/* Encart « Créez votre espace » de la page de remerciement du remplaçant */
body.d3p-done .d3p-cta { background: var(--p-lav) !important; border: 0 !important; border-radius: 24px !important; }
body.d3p-done .d3p-cta > div:first-child { font-family: var(--p-title); font-size: 17px !important; color: var(--p-ink) !important; }
body.d3p-done .d3p-cta > div { color: #3c3a66 !important; }
body.d3p-done .d3p-cta-btn { background: var(--p-coral) !important; color: var(--p-ink) !important; border-radius: 999px !important; box-shadow: 0 5px 0 var(--p-coral-d); transition: transform .12s, box-shadow .12s; }
body.d3p-done .d3p-cta-btn:hover { transform: translateY(2px); box-shadow: 0 3px 0 var(--p-coral-d); }
body.d3p-done .d3p-cta > div:last-child { color: #6b6b8a !important; }

body.d3p-blog .blog-article-cat { white-space: nowrap; }
