/* ============================================================
   JESA Annuaire — CSS Front redesign
   ============================================================ */
.jann-wrap *{box-sizing:border-box;}
.jann-wrap{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:#111827;width:100%;}

/* ── Toolbar ─────────────────────────────────────────────── */
.jann-toolbar{margin-bottom:24px;}
.jann-search-form{margin-bottom:14px;}
.jann-search-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.jann-search-input{flex:1;min-width:180px;height:42px;padding:0 14px;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;transition:border-color .2s;background:#fff;outline:none;}
.jann-search-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1);}
.jann-btn-search{height:42px;padding:0 20px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap;transition:background .2s;}
.jann-btn-search:hover{background:#1d4ed8;}
.jann-btn-reset{height:42px;padding:0 14px;background:#fff;color:#6b7280;border:1px solid #d1d5db;border-radius:8px;text-decoration:none;font-size:.85rem;display:inline-flex;align-items:center;transition:all .2s;}
.jann-btn-reset:hover{background:#f9fafb;color:#374151;}

/* Filtres */
.jann-filters{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.jann-cats{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.jann-cat-btn{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 14px;border-radius:20px;text-decoration:none;font-size:.82rem;font-weight:500;background:#f3f4f6;color:#374151;border:1px solid transparent;transition:all .15s;}
.jann-cat-btn:hover{background:#e5e7eb;color:#111827;}
.jann-cat-btn.active{background:#2563eb;color:#fff;font-weight:600;}
.jann-cat-count{font-size:.72rem;opacity:.75;}
.jann-cat-btn.active .jann-cat-count{opacity:.9;}

/* Switcher */
.jann-vue-switcher{display:flex;gap:3px;background:#f3f4f6;border-radius:8px;padding:3px;}
.jann-vue-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;text-decoration:none;font-size:1rem;color:#6b7280;transition:all .15s;}
.jann-vue-btn:hover{color:#374151;}
.jann-vue-btn.active{background:#fff;color:#2563eb;box-shadow:0 1px 3px rgba(0,0,0,.12);}

/* Compteur */
.jann-count{font-size:.82rem;color:#9ca3af;margin-bottom:16px;}

/* ── VUE GRILLE ──────────────────────────────────────────── */
.jann-vue-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;}

.jann-vue-grille .jann-card{
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:12px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    transition:box-shadow .2s,transform .2s;
}
.jann-vue-grille .jann-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.1);transform:translateY(-2px);}

/* Logo en haut sur toute la largeur */
.jann-vue-grille .jann-card-logo{
    width:100%;
    height:140px;
    overflow:hidden;
    background:#f8fafc;
    border-bottom:1px solid #f3f4f6;
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
}
.jann-vue-grille .jann-card-logo img{width:100%;height:100%;object-fit:cover;}
.jann-vue-grille .jann-logo-placeholder{
    width:100%;height:140px;
    background:linear-gradient(135deg,#eff6ff,#dbeafe);
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
}
.jann-vue-grille .jann-logo-placeholder span{font-size:2.5rem;font-weight:800;color:#93c5fd;text-transform:uppercase;}

.jann-vue-grille .jann-card-body{padding:16px;display:flex;flex-direction:column;flex:1;}

.jann-vue-grille .jann-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px;}
.jann-vue-grille .jann-card-title{font-size:1rem;font-weight:700;color:#111827;margin:0;line-height:1.3;}
.jann-vue-grille .jann-cat-tag{display:inline-block;background:#eff6ff;color:#2563eb;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:10px;white-space:nowrap;flex-shrink:0;margin-top:2px;}

.jann-vue-grille .jann-card-desc{font-size:.82rem;color:#6b7280;line-height:1.5;margin-bottom:12px;}

.jann-vue-grille .jann-card-infos{display:flex;flex-direction:column;gap:5px;flex:1;margin-bottom:12px;}
.jann-vue-grille .jann-info-item{display:flex;align-items:flex-start;gap:6px;font-size:.8rem;color:#4b5563;}
.jann-vue-grille .jann-info-icon{font-size:.85rem;width:16px;text-align:center;flex-shrink:0;margin-top:1px;}
.jann-vue-grille .jann-info-item a{color:#2563eb;text-decoration:none;}
.jann-vue-grille .jann-info-item a:hover{text-decoration:underline;}

.jann-vue-grille .jann-card-footer{
    display:flex;align-items:center;justify-content:space-between;
    padding-top:12px;border-top:1px solid #f3f4f6;
    margin-top:auto;gap:8px;flex-wrap:wrap;
}
.jann-vue-grille .jann-card-meta{display:flex;gap:4px;flex-wrap:wrap;}
.jann-meta-tag{display:inline-block;background:#f9fafb;border:1px solid #f3f4f6;color:#9ca3af;font-size:.72rem;padding:2px 7px;border-radius:10px;}
.jann-vue-grille .jann-card-links{display:flex;gap:5px;align-items:center;}

/* ── VUE LISTE ───────────────────────────────────────────── */
.jann-vue-liste{display:flex;flex-direction:column;gap:10px;}

.jann-vue-liste .jann-card{
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:10px;
    padding:14px 16px;
    display:flex;
    align-items:center;
    gap:14px;
    transition:box-shadow .15s;
}
.jann-vue-liste .jann-card:hover{box-shadow:0 2px 12px rgba(0,0,0,.08);}

.jann-vue-liste .jann-card-logo{
    width:52px;height:52px;border-radius:10px;overflow:hidden;
    background:#f8fafc;border:1px solid #f3f4f6;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
}
.jann-vue-liste .jann-card-logo img{width:100%;height:100%;object-fit:cover;}
.jann-vue-liste .jann-logo-placeholder{
    width:52px;height:52px;border-radius:10px;
    background:linear-gradient(135deg,#eff6ff,#dbeafe);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.jann-vue-liste .jann-logo-placeholder span{font-size:1.1rem;font-weight:800;color:#93c5fd;text-transform:uppercase;}

.jann-vue-liste .jann-card-body{flex:1;min-width:0;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}

.jann-vue-liste .jann-card-header{display:flex;align-items:center;gap:8px;min-width:180px;}
.jann-vue-liste .jann-card-title{font-size:.95rem;font-weight:700;color:#111827;margin:0;}
.jann-vue-liste .jann-cat-tag{display:inline-block;background:#eff6ff;color:#2563eb;font-size:.68rem;font-weight:600;padding:2px 8px;border-radius:10px;white-space:nowrap;}

.jann-vue-liste .jann-card-infos{display:flex;gap:14px;flex-wrap:wrap;flex:1;}
.jann-vue-liste .jann-info-item{display:flex;align-items:center;gap:5px;font-size:.8rem;color:#4b5563;}
.jann-vue-liste .jann-info-icon{font-size:.8rem;}
.jann-vue-liste .jann-info-item a{color:#2563eb;text-decoration:none;}
.jann-vue-liste .jann-info-item a:hover{text-decoration:underline;}

.jann-vue-liste .jann-card-footer{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.jann-vue-liste .jann-card-meta{display:none;}
.jann-vue-liste .jann-card-desc{display:none;}

/* ── Boutons liens ───────────────────────────────────────── */
.jann-link-btn{
    display:inline-flex;align-items:center;justify-content:center;
    height:30px;min-width:30px;padding:0 8px;
    border-radius:6px;background:#f3f4f6;text-decoration:none;
    font-size:.78rem;font-weight:500;color:#374151;
    border:1px solid #e5e7eb;transition:all .15s;
    gap:4px;
}
.jann-link-btn:hover{background:#e5e7eb;color:#111827;}
.jann-link-voir{color:#2563eb;background:#eff6ff;border-color:#bfdbfe;}
.jann-link-voir:hover{background:#dbeafe;}
.jann-link-contact{color:#059669;background:#f0fdf4;border-color:#a7f3d0;}
.jann-link-contact:hover{background:#dcfce7;}

/* ── Vide ────────────────────────────────────────────────── */
.jann-empty{text-align:center;padding:48px 20px;}
.jann-empty-icon{font-size:2.5rem;margin-bottom:10px;}
.jann-empty p{color:#9ca3af;font-size:.9rem;margin-bottom:14px;}

/* ── Pagination ──────────────────────────────────────────── */
.jann-wrap .page-numbers{
    display:inline-flex;align-items:center;justify-content:center;
    width:36px;height:36px;border:1px solid #e5e7eb;border-radius:7px;
    text-decoration:none;color:#374151;font-size:.85rem;margin:3px;
    transition:all .15s;
}
.jann-wrap .page-numbers.current{background:#2563eb;color:#fff;border-color:#2563eb;}
.jann-wrap .page-numbers:hover:not(.current){background:#f9fafb;}
.jann-wrap .page-numbers.dots{border:none;width:auto;}

/* ── Responsive ──────────────────────────────────────────── */
@media(max-width:640px){
    .jann-vue-grille{grid-template-columns:1fr 1fr;}
    .jann-vue-liste .jann-card{flex-wrap:wrap;}
    .jann-vue-liste .jann-card-body{flex-direction:column;align-items:flex-start;gap:6px;}
    .jann-vue-liste .jann-card-footer{margin-top:6px;}
}
@media(max-width:400px){
    .jann-vue-grille{grid-template-columns:1fr;}
}
