:root{
  --blue-700:#1346a0;--blue-500:#1a5dc8;--blue-900:#0a1628;
  --blue-50:#eff6ff;--amber:#f59e0b;--green:#10b981;
  --surface:#f8fafc;--border:#e2e8f0;--text-1:#0f172a;--text-2:#475569;--text-3:#94a3b8;
  --r:14px;
}
*,*::before,*::after{box-sizing:border-box;}
body{font-family:'DM Sans',sans-serif;background:var(--surface);}
h1,h2,h3,h4,h5,h6{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;}

/* NAVBAR */
.navbar-top{background:#fff;border-bottom:1px solid var(--border);padding:.75rem 0;position:sticky;top:0;z-index:100;}
.brand{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.4rem;font-weight:800;background:linear-gradient(135deg,var(--blue-700),var(--blue-500));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.brand span{color:var(--amber);-webkit-text-fill-color:var(--amber);}

/* HERO */
.profile-hero{background:linear-gradient(160deg,var(--blue-900),var(--blue-700));min-height:190px;position:relative;overflow:hidden;}
.profile-logo{width:90px;height:90px;border-radius:16px;border:4px solid #fff;font-weight:800;font-size:1.8rem;color:#fff;box-shadow:0 4px 20px rgba(0,0,0,.2);overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;}
.profile-logo img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block;}
.profile-logo--initials{background:linear-gradient(135deg,var(--avatar-color),var(--avatar-color,#1346a0));}

/* BADGES */
.badge-v{display:inline-flex;align-items:center;gap:.25rem;background:rgba(16,185,129,.1);color:#059669;border:1px solid rgba(16,185,129,.3);font-size:.72rem;font-weight:700;padding:.2rem .55rem;border-radius:100px;}
.badge-pro{display:inline-flex;align-items:center;gap:.25rem;background:rgba(26,93,200,.1);color:var(--blue-700);border:1px solid rgba(26,93,200,.3);font-size:.72rem;font-weight:700;padding:.2rem .55rem;border-radius:100px;}
.badge-premium{display:inline-flex;align-items:center;gap:.25rem;background:rgba(147,51,234,.1);color:#7c3aed;border:1px solid rgba(147,51,234,.3);font-size:.72rem;font-weight:700;padding:.2rem .55rem;border-radius:100px;}
.badge-r{display:inline-flex;align-items:center;gap:.25rem;background:rgba(245,158,11,.1);color:#d97706;border:1px solid rgba(245,158,11,.3);font-size:.72rem;font-weight:700;padding:.2rem .55rem;border-radius:100px;}

/* CARDS */
.info-card{background:#fff;border-radius:var(--r);border:1.5px solid var(--border);padding:1.5rem;}

/* BOUTONS CONTACT */
.btn-wa{background:#25d366;color:#fff;font-weight:700;border:none;border-radius:10px;padding:.75rem 1.5rem;display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;transition:all .2s;}
.btn-wa:hover{background:#1da851;color:#fff;}
.btn-call{background:var(--blue-700);color:#fff;font-weight:700;border:none;border-radius:10px;padding:.75rem 1.5rem;display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;transition:all .2s;}
.btn-call:hover{background:var(--blue-900);color:#fff;}

/* ══ GRILLE PUBLICATIONS (photos) ══ */
.pub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.1rem;}

.pub-card{background:#fff;border:1.5px solid var(--border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .25s,border-color .2s,transform .25s;}
.pub-card:hover{box-shadow:0 8px 28px rgba(10,22,64,.11);border-color:#bfdbfe;transform:translateY(-3px);}

.pub-img-wrap{position:relative;aspect-ratio:1;overflow:hidden;background:var(--surface);cursor:pointer;}
.pub-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s;}
.pub-card:hover .pub-img-wrap img{transform:scale(1.05);}

/* Overlay zoom */
.pub-img-overlay{position:absolute;inset:0;background:rgba(10,22,58,.4);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;}
.pub-card:hover .pub-img-overlay{opacity:1;}
.pub-img-overlay i{font-size:1.8rem;color:#fff;}

/* Badge principale */
.pub-cover-badge{position:absolute;top:.55rem;left:.65rem;z-index:2;display:inline-flex;align-items:center;gap:.25rem;background:var(--blue-700);color:#fff;font-size:.6rem;font-weight:800;padding:.15rem .5rem;border-radius:100px;text-transform:uppercase;letter-spacing:.04em;}

/* Corps texte */
.pub-body{padding:.85rem 1rem 1rem;flex:1;display:flex;flex-direction:column;border-top:1.5px solid #f1f5f9;}
.pub-caption{font-size:.9rem;color:var(--text-1);line-height:1.65;font-weight:500;flex:1;}
.pub-date{font-size:.7rem;color:var(--text-3);margin-top:.55rem;display:flex;align-items:center;gap:.3rem;}

/* AVIS */
.review-card{background:#f8fafc;border-radius:12px;padding:1.2rem;margin-bottom:.8rem;}
.review-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--blue-700),var(--blue-500));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0;}
.star-select i{font-size:1.5rem;cursor:pointer;color:#d1d5db;transition:color .2s;}
.star-select i.selected,.star-select i:hover{color:var(--amber);}

/* SIMILAIRES */
.similar-card{background:#fff;border:1.5px solid var(--border);border-radius:12px;padding:1rem;text-decoration:none;color:inherit;transition:all .2s;display:block;}
.similar-card:hover{border-color:#93c5fd;box-shadow:0 4px 16px rgba(10,22,40,.08);transform:translateY(-2px);color:inherit;}

/* VÉRIFICATION */
.verif-box-ok{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:.9rem 1rem;}
.verif-box-pending{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:.9rem 1rem;}
.verif-box-none{background:#f8fafc;border:1px solid var(--border);border-radius:10px;padding:.9rem 1rem;}

@media(max-width:640px){.pub-grid{grid-template-columns:1fr 1fr;}}