/* =========================================================
   ÉPRIS — feuille de style unique
   Tout est encapsulé dans .epris-app : aucun thème WordPress
   ni Elementor ne peut interférer, et inversement.
   ========================================================= */

.epris-app{
  --corail:#FF3D68;
  --corail-fonce:#E62B54;
  --mandarine:#FF8A3D;
  --violet:#7C4DFF;
  --violet-fonce:#5F35E0;
  --prune:#241733;
  --texte:#333333;
  --gris:#7A7285;
  --gris-clair:#A9A2B4;
  --fond:#FFFBF9;
  --blanc:#FFFFFF;
  --bord:#F1EAF2;
  --grad:linear-gradient(135deg,#FF8A3D 0%,#FF3D68 100%);
  --grad-violet:linear-gradient(135deg,#7C4DFF 0%,#C24BFF 100%);

  position:relative;
  font-family:'Outfit',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-weight:400;font-size:16px;line-height:1.6;
  color:var(--texte);background:var(--fond);
  width:100%;padding:60px 24px 110px;overflow:hidden;
  -webkit-font-smoothing:antialiased;
}
.epris-app *,.epris-app *::before,.epris-app *::after{box-sizing:border-box}
.epris-app p,.epris-app h1,.epris-app h2,.epris-app h3,
.epris-app figure,.epris-app ul,.epris-app li{margin:0;padding:0}
.epris-app ul{list-style:none}
.epris-app img{max-width:100%;display:block;height:auto}
.epris-app button{font-family:inherit}
.epris-app input,.epris-app textarea{font-family:inherit;font-size:16px}

/* halos */
.epris-app::before,.epris-app::after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;z-index:0;
  filter:blur(70px);opacity:.5;
}
.epris-app::before{width:520px;height:520px;top:-220px;right:-160px;
  background:radial-gradient(circle,rgba(255,138,61,.55),transparent 70%)}
.epris-app::after{width:560px;height:560px;bottom:-260px;left:-200px;
  background:radial-gradient(circle,rgba(124,77,255,.28),transparent 70%)}

.ep-shell{max-width:1140px;margin:0 auto;position:relative;z-index:1}
.ep-shell-etroit{max-width:720px}

/* ---------- manuscrit ---------- */
.epris-app .ep-script{font-family:'Style Script',cursive;font-weight:400;letter-spacing:0;line-height:1.15}
.ep-titre h2 .ep-script{font-size:1.3em;color:var(--corail)}
.ep-h1-script{font-family:'Style Script',cursive;font-size:40px;color:var(--prune);font-weight:400}

/* ---------- intro ---------- */
.ep-intro{margin-bottom:34px;max-width:58ch;position:relative;z-index:1}
.ep-eyebrow{
  display:inline-flex;align-items:center;gap:9px;font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;font-weight:600;color:var(--corail);
  background:rgba(255,61,104,.09);padding:8px 16px;border-radius:100px;margin-bottom:22px;
}
.ep-intro h1{
  font-size:clamp(32px,5vw,52px);font-weight:600;line-height:1.08;
  letter-spacing:-.03em;margin-bottom:16px;color:var(--prune);
}
.ep-intro h1 em{
  font-family:'Style Script',cursive;font-style:normal;font-weight:400;
  font-size:1.22em;line-height:1;letter-spacing:0;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.ep-intro p{color:var(--gris);font-size:17px}

/* ---------- bandeaux ---------- */
.ep-cycle,.ep-presence{
  display:flex;align-items:center;gap:13px;padding:15px 24px;background:var(--blanc);
  border-radius:100px;font-size:14.5px;color:var(--gris);width:fit-content;max-width:100%;
  box-shadow:0 6px 22px rgba(36,23,51,.07);position:relative;z-index:1;
}
.ep-cycle{margin-bottom:44px}
.ep-presence{margin-bottom:70px}
.ep-cycle strong,.ep-presence strong{font-weight:600;color:var(--prune)}
.ep-pulse{width:9px;height:9px;border-radius:50%;background:var(--corail);flex:none;
  box-shadow:0 0 0 5px rgba(255,61,104,.16)}
.ep-presence .ep-pulse{background:var(--violet);box-shadow:0 0 0 5px rgba(124,77,255,.16)}

/* ---------- sections ---------- */
.ep-section{margin-bottom:80px;position:relative;z-index:1}
.ep-titre{display:flex;align-items:baseline;gap:14px;margin-bottom:24px;flex-wrap:wrap}
.ep-titre h2{font-size:26px;font-weight:600;letter-spacing:-.02em;color:var(--prune)}
.ep-titre span{font-size:12.5px;font-weight:600;color:var(--violet);
  background:rgba(124,77,255,.1);padding:5px 12px;border-radius:100px}

/* ---------- cartes profil ---------- */
.ep-grid{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  margin-bottom:90px;position:relative;z-index:1}
.ep-card{background:var(--blanc);border-radius:28px;overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 4px 26px rgba(36,23,51,.07);
  transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease,opacity .3s ease}
.ep-card:hover{transform:translateY(-6px);box-shadow:0 18px 44px rgba(36,23,51,.13)}
.ep-card.ep-parti{opacity:0;transform:scale(.96)}

.ep-photo{aspect-ratio:4/5;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ep-deg-1{background:linear-gradient(150deg,#FFB86B 0%,#FF5F7E 100%)}
.ep-deg-2{background:linear-gradient(150deg,#9B6BFF 0%,#FF5F9E 100%)}
.ep-deg-3{background:linear-gradient(150deg,#FF9A5B 0%,#C44BFF 100%)}
.ep-photo .ep-img{width:100%;height:100%;object-fit:cover}
.ep-init{font-size:78px;font-weight:600;color:rgba(255,255,255,.9)}
.ep-km{position:absolute;right:18px;bottom:18px;background:rgba(36,23,51,.42);
  backdrop-filter:blur(8px);font-size:13px;font-weight:500;color:#fff;padding:7px 14px;border-radius:100px}

.ep-body{padding:26px 24px 24px;display:flex;flex-direction:column;flex:1}
.ep-nom{font-size:25px;font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--prune)}
.ep-meta{font-size:14.5px;color:var(--gris);margin-top:3px}

.ep-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.ep-chip{font-size:13px;font-weight:500;padding:7px 14px;border-radius:100px;
  color:var(--corail);background:rgba(255,61,104,.08)}
.ep-chip.v{color:var(--violet);background:rgba(124,77,255,.09)}
.ep-chip.m{color:#D96A17;background:rgba(255,138,61,.13)}

/* ---------- le mot d'un proche ---------- */
.ep-mot{margin-top:22px;padding:22px 22px 18px;border-radius:20px;
  background:linear-gradient(160deg,#FFF4EE 0%,#FFF0F4 100%)}
.ep-mot p{font-size:15.5px;line-height:1.6;color:var(--prune)}
.ep-mot cite{display:flex;align-items:center;gap:8px;margin-top:14px;font-style:normal;
  font-size:12.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--corail)}
.ep-mot cite::before{content:"";width:16px;height:2px;border-radius:2px;background:var(--corail)}
.ep-mots{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.ep-mot-vide{border-radius:24px;padding:26px 24px;background:var(--blanc);
  border:2px dashed #EADFF0;display:flex;flex-direction:column;justify-content:center}
.ep-mot-vide p{font-size:15.5px;color:var(--gris);margin-bottom:18px}

/* ---------- boutons ---------- */
.ep-actions{display:flex;gap:10px;margin-top:auto;padding-top:24px}
.ep-btn{font-size:15.5px;font-weight:600;cursor:pointer;border-radius:100px;
  padding:15px 22px;border:none;
  transition:transform .2s ease,box-shadow .25s ease,background .2s ease,color .2s ease}
.ep-btn:active{transform:scale(.97)}
.ep-btn[disabled]{opacity:.55;cursor:default}
.ep-btn-primaire{background:var(--grad);color:#fff;flex:1;box-shadow:0 8px 20px rgba(255,61,104,.32)}
.ep-btn-primaire:hover{box-shadow:0 12px 28px rgba(255,61,104,.42)}
.ep-btn-valider{background:var(--grad-violet);color:#fff;flex:1;box-shadow:0 8px 20px rgba(124,77,255,.32)}
.ep-btn-valider:hover{box-shadow:0 12px 28px rgba(124,77,255,.42)}
.ep-btn-fantome{background:#F6F2F7;color:var(--gris)}
.ep-btn-fantome:hover{background:#EFE9F1;color:var(--prune)}
.ep-large{width:100%;margin-top:8px}
.ep-lien-btn{font-size:14.5px;font-weight:500;color:var(--prune);background:#F6F2F7;
  padding:12px 20px;border-radius:100px;border:none;cursor:pointer;align-self:flex-start}
.ep-lien-btn:hover{background:#EFE9F1}
.ep-lien-discret{background:none;border:none;color:var(--gris);font-size:14px;
  text-decoration:underline;cursor:pointer;margin-top:14px;padding:0}
.ep-retour{background:none;border:none;color:var(--gris);font-size:14px;cursor:pointer;
  padding:0;margin-bottom:18px}

/* ---------- signes reçus ---------- */
.ep-signe{background:var(--blanc);border-radius:28px;padding:28px 26px 26px;
  display:flex;flex-direction:column;box-shadow:0 4px 26px rgba(36,23,51,.07);
  transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease,opacity .3s ease}
.ep-signe:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(36,23,51,.13)}
.ep-signe.ep-parti{opacity:0;transform:scale(.96)}
.ep-tete{display:flex;align-items:center;gap:17px}
.ep-avatar{width:64px;height:64px;border-radius:50%;flex:none;display:flex;
  align-items:center;justify-content:center;font-size:24px;font-weight:600;color:#fff;
  background:linear-gradient(150deg,#FFB86B,#FF5F7E)}
.ep-avatar.v2{background:linear-gradient(150deg,#9B6BFF,#FF5F9E)}
.ep-bio{margin-top:18px;font-size:15.5px;color:var(--gris)}
.ep-expire{margin-top:20px;padding:12px 16px;border-radius:14px;background:rgba(255,138,61,.1);
  color:#C25E13;font-size:13.5px;font-weight:500;display:flex;align-items:center;gap:10px}
.ep-expire i{width:6px;height:6px;border-radius:50%;background:var(--mandarine);flex:none;font-style:normal}

/* ---------- état vide ---------- */
.ep-vide{border-radius:28px;padding:52px 34px;text-align:center;
  background:linear-gradient(150deg,#FFF4EE 0%,#F6EFFF 100%)}
.ep-vide h3{font-size:36px;color:var(--prune);margin-bottom:10px}
.ep-vide p{font-size:16px;color:var(--gris);max-width:48ch;margin:0 auto}
.ep-vide-fin{padding:34px 24px}

/* ---------- invitation ---------- */
.ep-invite{display:flex;gap:10px;align-items:center;margin-top:20px;background:var(--blanc);
  border-radius:100px;padding:8px 8px 8px 24px;max-width:580px;box-shadow:0 6px 22px rgba(36,23,51,.07)}
.ep-lien{flex:1;font-size:14.5px;color:var(--gris);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-btn-copier{background:var(--prune);color:#fff;padding:13px 24px;font-size:14.5px;flex:none}
.ep-btn-copier:hover{background:#39264F}

/* ---------- profil ---------- */
.ep-profil{background:var(--blanc);border-radius:28px;padding:32px 30px;box-shadow:0 4px 26px rgba(36,23,51,.07)}
.ep-jauge{height:8px;background:#F3EDF6;border-radius:100px;overflow:hidden;margin:20px 0 16px}
.ep-jauge i{display:block;height:100%;background:var(--grad);border-radius:100px;transition:width .5s ease}
.ep-profil-txt{font-size:16px;color:var(--gris);max-width:62ch}

/* ---------- formulaires ---------- */
.ep-carte-form{background:var(--blanc);border-radius:28px;padding:36px 32px;
  box-shadow:0 4px 26px rgba(36,23,51,.07);position:relative;z-index:1}
.ep-centre{text-align:center}
.ep-h2{font-size:20px;font-weight:600;color:var(--prune);margin:0 0 18px;letter-spacing:-.01em}
.ep-questions .ep-h2,.ep-carte-form .ep-h2:not(:first-child){margin-top:38px}
.ep-grille-champs{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.ep-champ{display:flex;flex-direction:column;gap:7px}
.ep-champ > span{font-size:13.5px;font-weight:500;color:var(--gris)}
.ep-champ input,.epris-app textarea{
  border:1px solid var(--bord);background:#FDFBFE;border-radius:14px;padding:13px 16px;
  color:var(--texte);width:100%;transition:border-color .2s ease,box-shadow .2s ease}
.ep-champ input:focus,.epris-app textarea:focus{outline:none;border-color:var(--corail);
  box-shadow:0 0 0 4px rgba(255,61,104,.12)}
.ep-duo{display:flex;align-items:center;gap:10px}
.ep-duo em{font-style:normal;color:var(--gris-clair);font-size:14px}

.ep-question{margin-bottom:26px}
.ep-q-label{font-size:15.5px;font-weight:500;color:var(--prune);margin-bottom:12px}
.ep-options{display:flex;flex-wrap:wrap;gap:9px}
.ep-opt{font-size:14.5px;padding:11px 18px;border-radius:100px;border:1px solid var(--bord);
  background:#FDFBFE;color:var(--gris);cursor:pointer;transition:all .2s ease}
.ep-opt:hover{border-color:var(--gris-clair);color:var(--prune)}
.ep-opt.actif{background:var(--grad);color:#fff;border-color:transparent;
  box-shadow:0 6px 16px rgba(255,61,104,.26)}
.ep-q-input{width:100%;border:1px solid var(--bord);background:#FDFBFE;border-radius:14px;
  padding:13px 16px;color:var(--texte)}
.ep-compteur{font-size:13px;color:var(--gris-clair);margin-top:8px}
.ep-msg{font-size:14.5px;margin-top:14px;min-height:1.2em}
.ep-msg.ok{color:var(--violet)}
.ep-msg.ko{color:var(--corail)}
.ep-legal{font-size:12.5px;color:var(--gris-clair);margin-top:26px;line-height:1.55}

/* ---------- authentification ---------- */
.ep-auth{padding-top:70px}
.ep-auth-shell{max-width:1140px;margin:0 auto;display:grid;gap:56px;
  grid-template-columns:1.05fr .95fr;align-items:center;position:relative;z-index:1}
.ep-auth-pitch h1{font-size:clamp(34px,4.6vw,52px);font-weight:600;line-height:1.08;
  letter-spacing:-.03em;color:var(--prune);margin-bottom:28px}
.ep-auth-pitch h1 em{font-family:'Style Script',cursive;font-style:normal;font-weight:400;
  font-size:1.2em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.ep-pitch-liste li{padding:16px 0;border-top:1px solid var(--bord);font-size:15.5px;color:var(--gris)}
.ep-pitch-liste li strong{display:block;color:var(--prune);font-weight:600;margin-bottom:3px}
.ep-carte-auth{background:var(--blanc);border-radius:28px;padding:38px 34px;
  box-shadow:0 12px 44px rgba(36,23,51,.10)}
.ep-carte-auth h2{font-size:23px;font-weight:600;color:var(--prune);letter-spacing:-.02em}
.ep-aide{font-size:14.5px;color:var(--gris);margin:8px 0 24px}
.ep-choix-role{display:grid;gap:12px}
.ep-role{text-align:left;border:1px solid var(--bord);background:#FDFBFE;border-radius:20px;
  padding:20px 22px;cursor:pointer;transition:all .2s ease}
.ep-role:hover{border-color:var(--corail);box-shadow:0 8px 22px rgba(255,61,104,.14);transform:translateY(-2px)}
.ep-role-t{display:block;font-size:17px;font-weight:600;color:var(--prune);margin-bottom:4px}
.ep-role-d{display:block;font-size:14px;color:var(--gris);line-height:1.5}

/* ---------- conversations ---------- */
.ep-conv-liste{background:var(--blanc);border-radius:24px;padding:8px 10px;box-shadow:0 4px 22px rgba(36,23,51,.06)}
.ep-conv{display:flex;align-items:center;gap:16px;padding:16px 14px;border-radius:18px;
  cursor:pointer;transition:background .2s ease}
.ep-conv:hover{background:#FBF7FC}
.ep-conv .ep-avatar{width:52px;height:52px;font-size:20px}
.ep-conv-txt{flex:1;min-width:0}
.ep-conv-nom{font-size:16.5px;font-weight:600;color:var(--prune)}
.ep-conv-extrait{font-size:14.5px;color:var(--gris);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-conv-date{font-size:13px;color:var(--gris-clair);flex:none}
.ep-neuf{width:22px;height:22px;border-radius:50%;flex:none;background:var(--grad);color:#fff;
  font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}

/* ---------- panneau de fil ---------- */
.ep-fil{position:fixed;inset:0;z-index:99999;background:rgba(36,23,51,.42);
  backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center}
.ep-fil-panneau{background:var(--blanc);width:min(560px,100%);max-height:86vh;
  border-radius:28px 28px 0 0;display:flex;flex-direction:column;overflow:hidden}
.ep-fil-tete{display:flex;align-items:center;justify-content:space-between;
  padding:20px 24px;border-bottom:1px solid var(--bord)}
.ep-fil-tete strong{font-size:18px;color:var(--prune)}
.ep-fil-fermer{background:none;border:none;font-size:26px;line-height:1;color:var(--gris);cursor:pointer}
.ep-fil-corps{padding:20px 24px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:10px}
.ep-bulle{max-width:78%;padding:12px 16px;border-radius:20px;font-size:15px;line-height:1.5}
.ep-bulle.moi{align-self:flex-end;background:var(--grad);color:#fff;border-bottom-right-radius:6px}
.ep-bulle.lui{align-self:flex-start;background:#F6F2F7;color:var(--prune);border-bottom-left-radius:6px}
.ep-bulle-h{display:block;font-size:11px;opacity:.7;margin-top:5px}
.ep-fil-pied{display:flex;gap:10px;padding:16px 20px;border-top:1px solid var(--bord)}
.ep-fil-pied textarea{flex:1;resize:none;border-radius:20px}

@media (min-width:760px){
  .ep-fil{align-items:center}
  .ep-fil-panneau{border-radius:28px}
}
@media (max-width:900px){
  .ep-auth-shell{grid-template-columns:1fr;gap:40px}
}
@media (max-width:640px){
  .epris-app{padding:44px 18px 80px}
  .ep-grid,.ep-mots,.ep-grille-champs{grid-template-columns:1fr}
  .ep-actions{flex-direction:column}
  .ep-invite{border-radius:22px;flex-direction:column;align-items:stretch;padding:16px}
  .ep-lien{white-space:normal;padding-bottom:6px}
  .ep-carte-form,.ep-carte-auth{padding:28px 22px}
  .ep-note{padding:28px 24px}
}

/* ---------- note ---------- */
.ep-note{background:var(--prune);color:#EFE9F3;border-radius:28px;padding:36px 34px;
  font-size:16px;line-height:1.62;max-width:70ch;position:relative;z-index:1}
.ep-note strong{font-weight:600;background:var(--grad);
  -webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- lien de déconnexion (header) ---------- */
.ep-lien-deco{font-family:'Outfit',sans-serif;font-size:14.5px;color:#7A7285;text-decoration:none}
.ep-lien-deco:hover{color:#FF3D68}

@media (prefers-reduced-motion:reduce){
  .epris-app *{transition:none !important;animation:none !important}
}
