/* np-proof — charte NutriPatient (raccord thème v1.2.8)
   Variables reprises du thème ; fallback si plugin utilisé seul. */
.np-proof-btn,
.np-proof-link,
.np-proof-modal {
  --p-forest:#1a4731; --p-green:#2d6a4f; --p-sage:#52b788;
  --p-foam:#d8f3dc;   --p-cream:#faf9f6; --p-ink:#1b2d3e;
  --p-slate:#4a5568;  --p-border:#e2e8f0; --p-white:#fff;
  --p-radius:12px; --p-radius-lg:20px;
  --p-shadow:0 4px 16px rgba(26,71,49,.08);
  --p-shadow-xl:0 24px 64px rgba(26,71,49,.16);
  --p-font-d:'Outfit',sans-serif; --p-font-b:'DM Sans',sans-serif;
}

/* Bouton déclencheur — lien élégant intégré, pas un bouton plaqué */
.np-proof-btn{
  display:inline-flex;align-items:center;gap:.4em;
  font-family:var(--p-font-b);font-size:.875rem;font-weight:600;
  color:var(--p-green);background:none;border:none;
  padding:0;margin-top:.4em;cursor:pointer;
  border-bottom:1.5px solid transparent;
  transition:color .2s,border-color .2s,gap .2s;
}
.np-proof-btn::after{
  content:"→";font-size:1.05em;
  transition:transform .2s;display:inline-block;
}
.np-proof-btn:hover{
  color:var(--p-forest);border-bottom-color:var(--p-sage);
  gap:.65em;
}
.np-proof-btn:hover::after{transform:translateX(2px);}
.np-proof-link{
  background:none;border:none;padding:0;cursor:pointer;
  font-family:var(--p-font-b);color:var(--p-green);
  font-weight:600;text-decoration:underline;
  text-underline-offset:3px;font-size:inherit;
}
.np-proof-link:hover{color:var(--p-forest);}
.np-proof-soon{
  display:inline-block;font-family:var(--p-font-b);
  font-size:.85rem;color:var(--p-slate);
  background:var(--p-cream);border:1px dashed var(--p-border);
  padding:.45em 1em;border-radius:var(--p-radius);font-style:italic;
}

/* Modal */
.np-proof-modal{position:fixed;inset:0;z-index:99999;
  display:flex;align-items:center;justify-content:center;padding:4vh 4vw;}
.np-proof-modal[hidden]{display:none;}
.np-proof-backdrop{position:absolute;inset:0;
  background:rgba(26,45,62,.55);backdrop-filter:blur(3px);
  animation:np-fade .25s ease;}
.np-proof-dialog{position:relative;background:var(--p-white);
  border-radius:var(--p-radius-lg);box-shadow:var(--p-shadow-xl);
  max-width:820px;width:100%;max-height:92vh;display:flex;
  flex-direction:column;animation:np-pop .3s cubic-bezier(.34,1.56,.64,1);}
.np-proof-close{position:absolute;top:12px;right:16px;z-index:2;
  background:var(--p-cream);border:1px solid var(--p-border);
  width:36px;height:36px;border-radius:50%;cursor:pointer;
  font-size:1.4rem;line-height:1;color:var(--p-slate);
  transition:all .2s;}
.np-proof-close:hover{background:var(--p-coral,#e76f51);color:#fff;
  transform:rotate(90deg);}
.np-proof-scroll{overflow-y:auto;padding:2.5rem 2.5rem 2rem;
  border-radius:var(--p-radius-lg);}

/* Contenu de la preuve */
.np-proof{font-family:var(--p-font-b);color:var(--p-ink);
  line-height:1.6;font-size:.95rem;}
.np-proof-badge{display:inline-block;font-family:var(--p-font-b);
  font-size:.78rem;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:#fff;background:var(--p-green);
  padding:.4em 1em;border-radius:999px;margin-bottom:1rem;}
.np-proof-title{font-family:var(--p-font-d);color:var(--p-forest);
  font-size:1.6rem;font-weight:700;margin:.2rem 0 1.4rem;
  line-height:1.2;}
.np-proof h3{font-family:var(--p-font-d);color:var(--p-forest);
  font-size:1.15rem;margin:1.6rem 0 .6rem;
  padding-bottom:.3rem;border-bottom:2px solid var(--p-foam);}
.np-proof h4{font-family:var(--p-font-d);color:var(--p-green);
  font-size:1rem;margin:1.1rem 0 .4rem;}
.np-proof p{margin:.5rem 0;}
.np-proof li{margin:.3rem 0 .3rem 1.2rem;list-style:disc;}
.np-proof-table{width:100%;border-collapse:collapse;margin:1rem 0;
  font-size:.88rem;}
.np-proof-table th{background:var(--p-forest);color:#fff;
  text-align:left;padding:.5em .7em;font-family:var(--p-font-d);
  font-weight:600;}
.np-proof-table td{padding:.45em .7em;
  border-bottom:1px solid var(--p-border);}
.np-proof-table tr:nth-child(even) td{background:var(--p-cream);}

/* ─── Structures dynamiques ─────────────────────────────── */
/* Stratégies 1/2/3 — bandeau coloré numéroté */
.np-strat{display:flex;align-items:center;gap:14px;
  margin:2rem 0 1rem;padding:14px 20px;border-radius:14px;
  border-left:5px solid;}
.np-strat-num{font-family:var(--p-font-d);font-weight:700;
  font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;
  color:#fff;padding:5px 12px;border-radius:999px;white-space:nowrap;}
.np-strat-h{font-family:var(--p-font-d);font-weight:700;
  font-size:1.08rem;color:var(--p-ink);line-height:1.3;}
.np-strat-s1{background:#eef6f0;border-left-color:#2d6a4f;}
.np-strat-s1 .np-strat-num{background:#2d6a4f;}
.np-strat-s2{background:#fdf4e8;border-left-color:#d69e2e;}
.np-strat-s2 .np-strat-num{background:#d69e2e;}
.np-strat-s3{background:#fdeee9;border-left-color:#e76f51;}
.np-strat-s3 .np-strat-num{background:#e76f51;}

/* Levier — sous-titre marqué */
.np-levier{font-family:var(--p-font-d);font-weight:700;
  color:var(--p-forest);font-size:1rem;margin:1.2rem 0 .4rem;
  padding-left:14px;border-left:3px solid var(--p-sage);}

/* Justification biologique — encadré sobre */
.np-justif{background:var(--p-cream);border:1px solid var(--p-border);
  border-radius:10px;padding:12px 16px;margin:.6rem 0;
  font-size:.9rem;color:var(--p-slate);}

/* Question — encadré question */
.np-q{background:#eef6f0;border-radius:12px;
  padding:13px 18px;margin:1.1rem 0 .3rem;font-weight:600;
  color:var(--p-forest);position:relative;padding-left:42px;}
.np-q::before{content:"?";position:absolute;left:14px;top:12px;
  width:20px;height:20px;background:var(--p-green);color:#fff;
  border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:.78rem;font-weight:700;}

/* Réponse — bloc patient distinct */
.np-rep{background:#fff;border:1.5px solid var(--p-sage);
  border-radius:12px;padding:12px 16px;margin:.3rem 0 .6rem;
  font-size:.92rem;color:var(--p-ink);}

/* Objectif clinique → en retrait, vert italique */
.np-obj{color:var(--p-green);font-style:italic;font-size:.88rem;
  margin:.3rem 0 1rem;padding-left:18px;}

@keyframes np-fade{from{opacity:0}to{opacity:1}}
@keyframes np-pop{from{opacity:0;transform:scale(.94) translateY(12px)}
  to{opacity:1;transform:scale(1) translateY(0)}}

@media(max-width:640px){
  .np-proof-scroll{padding:2rem 1.3rem 1.5rem;}
  .np-proof-title{font-size:1.3rem;}
  .np-proof-modal{padding:0;}
  .np-proof-dialog{max-height:100vh;border-radius:0;}
}
