/*
 * Aveefy — Fiche Établissement
 * Dark Editorial Template v2.0
 * Playfair Display + Source Sans 3
 */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;900&family=Source+Sans+3:wght@300;400;500;600;700&display=swap');

/* ─── VARIABLES ─────────────────────────────────────────────────────────────── */
.fiche-etablissement {
    --bg:      #0a0a0f;
    --bg2:     #12121a;
    --bg3:     #1a1a2e;
    --bg4:     #1e1e30;
    --bg5:     #252540;
    --accent:  #0B57D0;
    --accent2: #7AAFFF;
    --gold:    #7AAFFF;
    --txt:     #f1f2f6;
    --txt2:    #a4a4b8;
    --txt3:    #6b6b80;
    --border:  rgba(255,255,255,0.08);
    --green:   #2ed573;
    --red:     #e87070;
    --blue:    #70a1ff;
    --fd:      'Playfair Display', Georgia, serif;
    --fb:      'Source Sans 3', -apple-system, sans-serif;
    --radius:  10px;
    --radius-lg: 14px;
    --shadow:  0 4px 24px rgba(0,0,0,.4);
}

.fiche-etablissement *,
.fiche-etablissement *::before,
.fiche-etablissement *::after {
    box-sizing: border-box;
}

.fiche-etablissement {
    font-family: var(--fb);
    background: var(--bg);
    color: var(--txt);
    font-size: 16px;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
}

/* ─── ALERT BAR ─────────────────────────────────────────────────────────────── */
.fiche-alert-bar {
    background: linear-gradient(90deg, var(--accent), #c94000);
    padding: 9px 20px;
    text-align: center;
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    letter-spacing: .02em;
}

/* ─── HERO ──────────────────────────────────────────────────────────────────── */
.fiche-hero {
    background: var(--bg3);
    padding: 40px 20px 32px;
    position: relative;
    overflow: hidden;
}
.fiche-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 15% 60%, rgba(11,87,208,.15), transparent 55%);
    pointer-events: none;
}
.fiche-hero-inner {
    max-width: 960px;
    margin: 0 auto;
    position: relative;
}

.fiche-breadcrumb {
    font-size: 12px;
    color: var(--txt3);
    margin-bottom: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    align-items: center;
}
.fiche-breadcrumb a { color: var(--txt3); text-decoration: none; }
.fiche-breadcrumb a:hover { color: var(--accent2); }
.fiche-breadcrumb span { opacity: .4; }

.fiche-hero-meta {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
}
.fiche-cat {
    background: var(--accent);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    padding: 4px 12px;
    border-radius: 100px;
}
.fiche-date { font-size: 13px; color: var(--txt3); }

.fiche-hero h1 {
    font-family: var(--fd);
    font-size: clamp(1.7rem, 3.5vw, 2.6rem);
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 16px;
    background: linear-gradient(135deg, var(--txt) 0%, var(--accent2) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.fiche-hero h1 em {
    font-style: normal;
    -webkit-text-fill-color: var(--accent2);
}

.fiche-hero-excerpt {
    font-size: 1.05rem;
    color: var(--txt2);
    max-width: 700px;
    line-height: 1.8;
    margin-bottom: 20px;
}
.fiche-hero-excerpt strong { color: var(--txt); }

.fiche-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 24px;
}
.fiche-badge {
    font-size: 12px;
    font-weight: 500;
    padding: 5px 12px;
    border-radius: 100px;
    border: 1px solid;
}
.fiche-badge.warn  { background: rgba(232,93,38,.1);  color: #e87070; border-color: rgba(232,93,38,.25); }
.fiche-badge.ok    { background: rgba(46,213,115,.1); color: var(--green); border-color: rgba(46,213,115,.25); }
.fiche-badge.neutral { background: rgba(255,255,255,.05); color: var(--txt2); border-color: var(--border); }

.fiche-hero-img {
    width: 100%;
    height: 220px;
    border-radius: var(--radius-lg);
    margin-top: 24px;
    object-fit: cover;
    border: 1px solid var(--border);
}
.fiche-hero-img-placeholder {
    width: 100%;
    height: 220px;
    border-radius: var(--radius-lg);
    margin-top: 24px;
    background: linear-gradient(135deg, var(--bg4) 0%, var(--bg5) 100%);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--txt3);
    font-size: 13px;
    letter-spacing: .04em;
}

/* ─── LAYOUT ────────────────────────────────────────────────────────────────── */
.fiche-layout {
    max-width: 1120px;
    margin: 0 auto;
    padding: 36px 20px 60px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 290px;
    gap: 40px;
    align-items: start;
}

/* ─── ARTICLE BODY ──────────────────────────────────────────────────────────── */
.fiche-content {}

.fiche-section {
    margin-bottom: 36px;
}

.fiche-section h2 {
    font-family: var(--fd);
    font-size: 1.45rem;
    font-weight: 700;
    margin-bottom: 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--txt);
}

.fiche-section h3 {
    font-family: var(--fd);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--txt);
    margin: 20px 0 10px;
}

.snum {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--accent), #c94000);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--fb);
    font-size: 12px;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
}

.fiche-section p {
    color: var(--txt2);
    margin-bottom: 14px;
    font-size: .97rem;
    line-height: 1.8;
}
.fiche-section p:last-child { margin-bottom: 0; }
.fiche-section strong { color: var(--txt); font-weight: 600; }
.fiche-section p + p { margin-top: 0; }

/* ─── STAT CARDS ────────────────────────────────────────────────────────────── */
.fiche-stat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 18px 0;
}
.fiche-stat-card {
    background: var(--bg4);
    border-radius: var(--radius);
    padding: 16px;
    text-align: center;
    border: 1px solid var(--border);
}
.fiche-stat-card .num {
    font-family: var(--fd);
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
    color: var(--txt);
}
.fiche-stat-card .num.warn { color: var(--red); }
.fiche-stat-card .num.ok   { color: var(--green); }
.fiche-stat-card .lbl {
    font-size: 11px;
    color: var(--txt3);
    margin-top: 5px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

/* ─── TABLES ────────────────────────────────────────────────────────────────── */
.tbl-wrap {
    border-radius: var(--radius);
    border: 1px solid var(--border);
    overflow: hidden;
    margin: 18px 0;
    overflow-x: auto;
}
.fiche-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.fiche-table th {
    background: var(--bg3);
    color: rgba(255,255,255,.8);
    font-family: var(--fb);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding: 10px 12px;
    text-align: left;
    white-space: nowrap;
}
.fiche-table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--border);
    color: var(--txt2);
    vertical-align: middle;
}
.fiche-table tr:last-child td { border-bottom: none; }
.fiche-table tr:nth-child(even) td { background: rgba(255,255,255,.02); }
.fiche-table tr.row-cible td { background: rgba(232,93,38,.08); color: var(--txt); font-weight: 500; }

.tdtag {
    font-size: 11px;
    padding: 3px 8px;
    border-radius: 100px;
    display: inline-block;
    white-space: nowrap;
}
.tdtag.warn { background: rgba(232,93,38,.15); color: var(--red); }
.tdtag.ok   { background: rgba(46,213,115,.12); color: var(--green); }
.tdtag.amb  { background: rgba(200,150,58,.12); color: var(--gold); }

.fiche-table a.concu-link {
    color: var(--txt2);
    text-decoration: none;
    border-bottom: 1px dashed rgba(232,93,38,.4);
    transition: color .15s, border-color .15s;
}
.fiche-table a.concu-link:hover { color: var(--accent2); border-color: var(--accent2); }
.fiche-table a.concu-link.internal { border-bottom-style: solid; color: var(--accent2); }

/* ─── HIGHLIGHT BOXES ───────────────────────────────────────────────────────── */
.fiche-highlight {
    display: flex;
    gap: 14px;
    padding: 18px 20px;
    border-radius: var(--radius);
    margin: 20px 0;
    border-left: 3px solid;
}
.fiche-highlight.warn   { background: rgba(200,150,58,.08); border-color: var(--gold); }
.fiche-highlight.danger { background: rgba(232,93,38,.08);  border-color: var(--accent); }
.fiche-highlight.info   { background: rgba(112,161,255,.08); border-color: var(--blue); }
.fiche-highlight.ok     { background: rgba(46,213,115,.08); border-color: var(--green); }
.fiche-highlight-icon { font-size: 1.4rem; flex-shrink: 0; margin-top: 2px; }
.fiche-highlight p { margin: 0; font-size: .93rem; color: var(--txt2); line-height: 1.7; }
.fiche-highlight strong { color: var(--txt); }

/* ─── INLINE CTA ────────────────────────────────────────────────────────────── */
.fiche-cta-inline {
    background: linear-gradient(135deg, rgba(232,93,38,.12), rgba(200,150,58,.06));
    border: 1px solid rgba(232,93,38,.3);
    border-radius: var(--radius-lg);
    padding: 26px 28px;
    margin: 32px 0;
    text-align: center;
}
.fiche-cta-inline h3 {
    font-family: var(--fd);
    font-size: 1.2rem;
    color: var(--txt);
    margin-bottom: 8px;
    font-weight: 700;
}
.fiche-cta-inline p {
    font-size: .9rem;
    color: var(--txt2);
    margin-bottom: 18px;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
}
.fiche-btn-row {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
}

/* ─── BUTTONS ───────────────────────────────────────────────────────────────── */
.btn-aveefy-pri {
    background: var(--accent);
    color: #fff;
    padding: 12px 24px;
    border-radius: var(--radius);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
    cursor: pointer;
    border: none;
    transition: opacity .15s, transform .1s;
    font-family: var(--fb);
}
.btn-aveefy-pri:hover { opacity: .9; }
.btn-aveefy-pri:active { transform: scale(.98); }

.btn-aveefy-ghost {
    background: transparent;
    color: var(--txt2);
    padding: 11px 22px;
    border-radius: var(--radius);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    display: inline-block;
    border: 1px solid rgba(255,255,255,.15);
    transition: background .15s, color .15s;
    font-family: var(--fb);
}
.btn-aveefy-ghost:hover { background: rgba(255,255,255,.06); color: var(--txt); }

/* ─── MID ARTICLE IMAGE ─────────────────────────────────────────────────────── */
.fiche-mid-img {
    width: 100%;
    height: 180px;
    border-radius: var(--radius);
    object-fit: cover;
    border: 1px solid var(--border);
    margin: 24px 0;
}
.fiche-mid-img-placeholder {
    width: 100%;
    height: 160px;
    border-radius: var(--radius);
    background: linear-gradient(135deg, var(--bg4), var(--bg5));
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--txt3);
    font-size: 12px;
    letter-spacing: .04em;
    margin: 24px 0;
}

/* ─── FAQ ───────────────────────────────────────────────────────────────────── */
.fiche-faq .faq-item { border-bottom: 1px solid var(--border); }
.fiche-faq .faq-item:last-child { border-bottom: none; }
.fiche-faq details summary {
    padding: 13px 0;
    cursor: pointer;
    font-weight: 500;
    color: var(--txt);
    font-size: .95rem;
    list-style: none;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}
.fiche-faq details summary::-webkit-details-marker { display: none; }
.fiche-faq details summary::after { content: '▾'; color: var(--accent); flex-shrink: 0; transition: transform .2s; }
.fiche-faq details[open] summary::after { transform: rotate(180deg); }
.fiche-faq details p { font-size: .9rem; color: var(--txt2); padding-bottom: 13px; line-height: 1.7; }
.fiche-faq details strong { color: var(--txt); }

/* ─── SCORE BAR ─────────────────────────────────────────────────────────────── */
.fiche-score-wrap { margin: 14px 0 18px; }
.fiche-score-label {
    font-size: 12px;
    color: var(--txt3);
    margin-bottom: 7px;
    display: flex;
    justify-content: space-between;
}
.fiche-score-bar { height: 7px; background: var(--bg5); border-radius: 100px; overflow: hidden; }
.fiche-score-fill {
    height: 100%;
    border-radius: 100px;
    background: linear-gradient(90deg, var(--accent), var(--gold));
}

/* ─── GMB GRID ──────────────────────────────────────────────────────────────── */
.fiche-gmb-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    gap: 8px;
    margin: 14px 0;
}
.fiche-gmb-item {
    background: var(--bg4);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--txt2);
}
.gmb-yes { color: var(--green); font-size: 14px; font-weight: 700; }
.gmb-no  { color: var(--red);   font-size: 14px; font-weight: 700; }

/* ─── CTA PROPRIÉTAIRE ──────────────────────────────────────────────────────── */
.fiche-cta-proprio {
    background: var(--bg2);
    border: 1px solid rgba(232,93,38,.25);
    border-radius: var(--radius-lg);
    padding: 28px;
    margin-top: 32px;
}
.fiche-cta-proprio h2 {
    font-family: var(--fd);
    font-size: 1.3rem;
    color: var(--txt);
    margin-bottom: 12px;
    border: none;
    padding: 0;
    display: block;
}
.fiche-cta-proprio p { font-size: .92rem; color: var(--txt2); margin-bottom: 18px; }
.fiche-cta-proprio strong { color: var(--txt); }
.fiche-cta-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.fiche-droit-reponse {
    background: rgba(255,255,255,.03);
    border: 1px dashed rgba(255,255,255,.1);
    border-radius: 8px;
    padding: 16px;
    margin-top: 18px;
    text-align: center;
}
.fiche-droit-reponse h3 { font-size: .95rem; color: var(--txt2); font-family: var(--fb); margin-bottom: 6px; font-weight: 600; }
.fiche-droit-reponse p  { font-size: 12px; color: var(--txt3); margin-bottom: 10px; }

/* ─── DISCLAIMER ────────────────────────────────────────────────────────────── */
.fiche-disclaimer {
    margin-top: 28px;
    padding: 14px 18px;
    background: rgba(255,255,255,.03);
    border-radius: 8px;
    border: 1px solid var(--border);
    font-size: 11px;
    color: var(--txt3);
    line-height: 1.6;
    font-style: italic;
}

/* ─── SIDEBAR ───────────────────────────────────────────────────────────────── */
.fiche-sidebar {}
.fiche-sidebar-sticky {
    position: sticky;
    top: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sw {
    background: var(--bg4);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 20px;
    overflow: hidden;
    position: relative;
}
.sw::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--accent), var(--gold));
}
.sw h3 {
    font-family: var(--fd);
    font-size: 1rem;
    color: var(--txt);
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border);
    font-weight: 600;
}

.sw-phone { text-align: center; padding: 8px 0 4px; }
.sw-phone-num {
    font-family: var(--fd);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--accent);
    display: block;
    margin-bottom: 4px;
    letter-spacing: .02em;
}
.sw-phone-sub { font-size: 11px; color: var(--txt3); }

.sw-btn {
    display: block;
    background: var(--accent);
    color: #fff;
    text-align: center;
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    margin-top: 12px;
    transition: opacity .15s;
    font-family: var(--fb);
}
.sw-btn:hover { opacity: .9; }
.sw-btn.ghost {
    background: transparent;
    border: 1px solid rgba(255,255,255,.15);
    color: var(--txt2);
    margin-top: 8px;
    font-weight: 500;
}
.sw-btn.ghost:hover { background: rgba(255,255,255,.05); color: var(--txt); }

.sw-sum { list-style: none; }
.sw-sum li {
    font-size: 12px;
    color: var(--txt2);
    padding: 7px 0;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: center;
}
.sw-sum li:last-child { border-bottom: none; }
.sw-sum li strong { color: var(--txt3); font-weight: 500; white-space: nowrap; }
.sw-sum li span { text-align: right; word-break: break-word; }

.sw-stat {
    text-align: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
}
.sw-stat:last-child { border-bottom: none; }
.sw-stat .n {
    font-family: var(--fd);
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--accent);
    display: block;
    line-height: 1.1;
}
.sw-stat .l { font-size: 11px; color: var(--txt3); }

/* ─── COMMENTS ──────────────────────────────────────────────────────────────── */
.fiche-etablissement #respond h3,
.fiche-etablissement .comment-reply-title {
    font-family: var(--fd);
    font-size: 1rem;
    color: var(--txt2);
    margin: 14px 0 10px;
    font-weight: 600;
}
.fiche-etablissement #respond input[type="text"],
.fiche-etablissement #respond input[type="email"],
.fiche-etablissement #respond input[type="url"],
.fiche-etablissement #respond textarea {
    width: 100%;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 8px;
    padding: 10px 14px;
    color: var(--txt);
    font-family: var(--fb);
    font-size: 13px;
    margin-bottom: 8px;
}
.fiche-etablissement #respond input[type="submit"] {
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 10px 20px;
    font-weight: 600;
    cursor: pointer;
    font-family: var(--fb);
    font-size: 13px;
}

/* ─── RESPONSIVE ────────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .fiche-layout {
        grid-template-columns: 1fr;
        padding: 24px 16px 40px;
    }
    .fiche-sidebar-sticky {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .fiche-hero { padding: 28px 16px 24px; }
    .fiche-hero h1 { font-size: 1.6rem; }
    .fiche-stat-grid { grid-template-columns: repeat(3, 1fr); }
    .fiche-sidebar-sticky { grid-template-columns: 1fr; }
    .fiche-section h2 { font-size: 1.25rem; }
    .fiche-cta-inline { padding: 20px 18px; }
    .fiche-cta-proprio { padding: 20px 18px; }
}

/* ─── FULL WIDTH ASTRA OVERRIDE ─────────────────────────────────────────────── */
body.aveefy-fiche-page .site-content,
body.aveefy-fiche-page #content,
body.aveefy-fiche-page #primary,
body.aveefy-fiche-page .ast-container,
body.aveefy-fiche-page .entry-content,
body.aveefy-fiche-page .post-content {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
body.aveefy-fiche-page .ast-article-single,
body.aveefy-fiche-page .single-layout-1 {
    padding: 0 !important;
}
body.aveefy-fiche-page .fiche-etablissement {
    width: 100%;
    max-width: 100%;
}

/* ─── CACHER LOGGED-IN-AS ────────────────────────────────────────────────────── */
.fiche-etablissement .logged-in-as { display: none !important; }
.fiche-etablissement .comment-notes { display: none !important; }

/* ─── DÉGRADÉ BLEU AVEEFY ────────────────────────────────────────────────────── */
.snum {
    background: linear-gradient(135deg, #0B57D0, #7AAFFF) !important;
}
.fiche-score-fill {
    background: linear-gradient(90deg, #0B57D0, #7AAFFF) !important;
}
.sw::before {
    background: linear-gradient(90deg, #0B57D0, #7AAFFF) !important;
}
.fiche-cta-inline {
    background: linear-gradient(135deg, rgba(11,87,208,.12), rgba(122,175,255,.06)) !important;
    border-color: rgba(11,87,208,.35) !important;
}
.fiche-cta-proprio {
    border-color: rgba(11,87,208,.3) !important;
}
.btn-aveefy-pri, .sw-btn:not(.ghost) {
    background: #0B57D0 !important;
}
.sw-phone-num { color: #7AAFFF !important; }
.fiche-hero h1 {
    background: linear-gradient(135deg, #f1f2f6 0%, #7AAFFF 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
}
.fiche-highlight.ok   { border-left-color: #0B57D0 !important; background: rgba(11,87,208,.08) !important; }
.fiche-highlight.info { border-left-color: #7AAFFF !important; background: rgba(122,175,255,.06) !important; }
.fiche-cat { background: #0B57D0 !important; }
.fiche-alert-bar { background: linear-gradient(90deg, #0B57D0, #0a47b0) !important; }
.fiche-badge.warn { background: rgba(11,87,208,.1) !important; color: #7AAFFF !important; border-color: rgba(11,87,208,.3) !important; }
.fiche-stat-card .num.warn { color: #e87070 !important; }
.sw-stat .n { color: #7AAFFF !important; }

/* ─── HUB PAGES (département + ville) ──────────────────────────────────────── */

/* S'assure que les hubs ont le même fond sombre */
body.aveefy-hub-page {
    background: #0a0a0f;
    color: #f1f2f6;
    font-family: 'Source Sans 3', -apple-system, sans-serif;
}

body.aveefy-hub-page .site-content,
body.aveefy-hub-page #content,
body.aveefy-hub-page #primary,
body.aveefy-hub-page .ast-container,
body.aveefy-hub-page .entry-content {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    background: #0a0a0f !important;
}

/* Grille villes */
.hub-villes-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.hub-ville-card {
    display: flex;
    flex-direction: column;
    gap: 4px;
    background: var(--bg4, #1e1e30);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 10px;
    padding: 14px 16px;
    text-decoration: none;
    transition: border-color .2s, transform .15s;
}

.hub-ville-card:hover {
    border-color: var(--accent, #0B57D0);
    transform: translateY(-2px);
}

.hub-ville-nom {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: .95rem;
    font-weight: 600;
    color: #f1f2f6;
}

.hub-ville-count {
    font-size: 12px;
    color: #6b6b80;
}

/* Correction couleur liens internes dans les tableaux hub */
.fiche-etablissement a[style*="color:var(--accent2)"] {
    color: #7AAFFF !important;
}

/* Correction badges neutral pour hubs */
.fiche-badge.neutral {
    background: rgba(255,255,255,.05);
    color: #a4a4b8;
    border-color: rgba(255,255,255,.08);
}

/* Hero des hubs — fond légèrement différent */
body.aveefy-hub-page .fiche-hero {
    background: #12121a;
}

body.aveefy-hub-page .fiche-hero::before {
    background: radial-gradient(ellipse at 15% 60%, rgba(11,87,208,.1), transparent 55%);
}

/* Responsive hub */
@media (max-width: 600px) {
    .hub-villes-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ─── FIXES CENTRAGE + OVERFLOW + MOBILE FIRST ──────────────────────────────── */

/* Empêcher tout débordement horizontal */
body.aveefy-fiche-page,
body.aveefy-hub-page {
    overflow-x: hidden !important;
}

.fiche-etablissement {
    overflow-x: hidden;
    width: 100%;
    max-width: 100vw;
}

/* Hero centré proprement */
.fiche-hero {
    width: 100%;
    overflow-x: hidden;
}

.fiche-hero-inner {
    max-width: 960px;
    margin: 0 auto;
    padding: 40px 20px 32px;
    width: 100%;
    box-sizing: border-box;
}

/* Layout principal centré */
.fiche-layout {
    max-width: 1120px;
    margin: 0 auto;
    padding: 36px 20px 60px;
    width: 100%;
    box-sizing: border-box;
}

/* Breadcrumb Astra natif — masquer, on a le nôtre */
body.aveefy-fiche-page .ast-breadcrumbs-wrapper,
body.aveefy-hub-page .ast-breadcrumbs-wrapper,
body.aveefy-fiche-page .rank-math-breadcrumb,
body.aveefy-hub-page .rank-math-breadcrumb {
    display: none !important;
}

/* Fond sombre sur toutes les zones Astra */
body.aveefy-hub-page .ast-article-single,
body.aveefy-hub-page .site-content,
body.aveefy-hub-page #content,
body.aveefy-hub-page .ast-separate-container,
body.aveefy-hub-page .ast-page-builder-template .site-content {
    background: #0a0a0f !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ─── MOBILE FIRST ─────────────────────────────────────────────────────────── */

/* Base mobile : tout en colonne */
@media (max-width: 767px) {

    .fiche-hero-inner {
        padding: 24px 16px 20px;
    }

    .fiche-hero h1 {
        font-size: 1.5rem;
        line-height: 1.25;
    }

    .fiche-hero-excerpt {
        font-size: .9rem;
    }

    .fiche-badges {
        gap: 6px;
    }

    .fiche-alert-bar {
        font-size: 11px;
        padding: 8px 12px;
        line-height: 1.4;
    }

    /* Layout : colonne unique sur mobile */
    .fiche-layout {
        grid-template-columns: 1fr !important;
        padding: 20px 16px 40px;
        gap: 24px;
    }

    /* Sidebar : grille 1 col sur mobile */
    .fiche-sidebar-sticky {
        position: static !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px;
    }

    /* Stat cards : 3 colonnes compactes */
    .fiche-stat-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }
    .fiche-stat-card .num { font-size: 1.6rem; }

    /* Tableaux : scroll horizontal */
    .tbl-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* CTA inline : padding réduit */
    .fiche-cta-inline {
        padding: 18px 14px;
    }
    .fiche-btn-row {
        flex-direction: column;
        gap: 8px;
    }
    .btn-aveefy-pri,
    .btn-aveefy-ghost {
        text-align: center;
        width: 100%;
    }

    /* Hero image placeholder */
    .fiche-hero-img,
    .fiche-hero-img-placeholder {
        height: 160px;
    }

    /* FAQ */
    .fiche-faq details summary {
        font-size: .88rem;
    }

    /* Sections */
    .fiche-section h2 {
        font-size: 1.15rem;
        gap: 8px;
    }
    .snum {
        width: 26px;
        height: 26px;
        font-size: 11px;
        flex-shrink: 0;
    }

    /* GMB grid */
    .fiche-gmb-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Hub grille villes */
    .hub-villes-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }

    /* CTA proprio */
    .fiche-cta-proprio {
        padding: 18px 14px;
    }
    .fiche-cta-btns {
        flex-direction: column;
    }
    .fiche-cta-btns a {
        text-align: center;
        width: 100%;
    }

    /* Sidebar widgets */
    .sw { padding: 16px; }
    .sw-phone-num { font-size: 1.3rem; }
}

/* Tablette */
@media (min-width: 768px) and (max-width: 1023px) {
    .fiche-layout {
        grid-template-columns: 1fr 240px !important;
        gap: 24px;
        padding: 28px 20px 50px;
    }

    .fiche-sidebar-sticky {
        position: sticky;
        top: 20px;
        display: flex;
        flex-direction: column;
        gap: 14px;
    }

    .hub-villes-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}


/* ─── FAQ HTML BRUT (Claude génère du HTML au lieu de JSON) ─────────────────── */
.fiche-faq-html h2 { display: none; } /* on a déjà le H2 du template */
.fiche-faq-html h3 {
    font-family: var(--fd);
    font-size: .95rem;
    font-weight: 500;
    color: var(--txt);
    padding: 13px 0 0;
    border-top: 1px solid var(--border);
    margin-bottom: 8px;
    cursor: default;
}
.fiche-faq-html p {
    font-size: .9rem;
    color: var(--txt2);
    padding-bottom: 10px;
    line-height: 1.7;
}
.fiche-faq-html div:first-child h3 { border-top: none; padding-top: 0; }

/* ─── HUB FRANCE — GRILLE DÉPARTEMENTS ──────────────────────────────────────── */
.hub-france-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.hub-dept-card {
    display: flex;
    flex-direction: column;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--border);
    text-decoration: none;
    transition: border-color .2s, transform .15s, box-shadow .2s;
    background: var(--bg4);
}
.hub-dept-card:hover {
    border-color: var(--accent);
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(11,87,208,.2);
}
.hub-dept-card.empty { opacity: .5; }
.hub-dept-card.empty:hover { transform: none; box-shadow: none; border-color: var(--border); }

.hub-dept-img {
    width: 100%;
    height: 90px;
    background-size: cover;
    background-position: center;
    background-color: var(--bg5);
}
.hub-dept-img-placeholder {
    background: linear-gradient(135deg, var(--bg3) 0%, var(--bg5) 100%);
    position: relative;
}
.hub-dept-img-placeholder::after {
    content: '📍';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1.4rem;
    opacity: .3;
}

.hub-dept-body {
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.hub-dept-nom {
    font-family: var(--fd);
    font-size: .85rem;
    font-weight: 600;
    color: var(--txt);
    line-height: 1.2;
}
.hub-dept-count {
    font-size: 11px;
    color: var(--accent2);
    font-weight: 500;
}
.hub-dept-soon {
    font-size: 11px;
    color: var(--txt3);
    font-style: italic;
}

/* Responsive grille France */
@media (max-width: 767px) {
    .hub-france-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }
    .hub-dept-img { height: 65px; }
    .hub-dept-nom { font-size: .78rem; }
}
@media (max-width: 480px) {
    .hub-france-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ─── FORCE DARK MODE TOUTES PAGES AVEEFY ───────────────────────────────────── */
body.aveefy-hub-page,
body.aveefy-fiche-page {
    background-color: #0a0a0f !important;
}

body.aveefy-hub-page .site,
body.aveefy-hub-page .site-content,
body.aveefy-hub-page #content,
body.aveefy-hub-page #primary,
body.aveefy-hub-page main,
body.aveefy-hub-page article,
body.aveefy-hub-page .ast-article-single,
body.aveefy-hub-page .entry-content,
body.aveefy-hub-page .post-content,
body.aveefy-hub-page .ast-container,
body.aveefy-hub-page .ast-separate-container,
body.aveefy-hub-page .ast-narrow-container,
body.aveefy-hub-page .ast-grid-right-section,
body.aveefy-hub-page .ast-grid-left-section,
body.aveefy-hub-page #ast-featured-below,
body.aveefy-fiche-page .site,
body.aveefy-fiche-page .site-content,
body.aveefy-fiche-page #content,
body.aveefy-fiche-page #primary,
body.aveefy-fiche-page main,
body.aveefy-fiche-page article,
body.aveefy-fiche-page .ast-article-single,
body.aveefy-fiche-page .entry-content,
body.aveefy-fiche-page .ast-container {
    background-color: #0a0a0f !important;
    background: #0a0a0f !important;
    padding: 0 !important;
    margin-top: 0 !important;
}

/* Forcer l'affichage de nos éléments */
body.aveefy-hub-page .fiche-etablissement,
body.aveefy-fiche-page .fiche-etablissement {
    display: block !important;
    background: #0a0a0f;
    color: #f1f2f6;
    font-family: 'Source Sans 3', -apple-system, sans-serif;
}

/* Cards département — forcer la grille même si Astra interfère */
.hub-france-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)) !important;
    gap: 12px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 16px 0 0 !important;
}

.hub-dept-card {
    display: flex !important;
    flex-direction: column !important;
    text-decoration: none !important;
    background: #1e1e30 !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    transition: border-color .2s, transform .15s, box-shadow .2s !important;
}
.hub-dept-card.has-fiches:hover {
    border-color: #0B57D0 !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 24px rgba(11,87,208,.2) !important;
}
.hub-dept-card.empty {
    opacity: .45 !important;
    cursor: default !important;
    pointer-events: none !important;
}
.hub-dept-img {
    width: 100% !important;
    height: 90px !important;
    background-size: cover !important;
    background-position: center !important;
    background-color: #252540 !important;
    display: block !important;
    flex-shrink: 0 !important;
}
.hub-dept-img-placeholder {
    background: linear-gradient(135deg, #1a1a2e 0%, #252540 100%) !important;
    position: relative !important;
}
.hub-dept-img-placeholder::after {
    content: '📍' !important;
    position: absolute !important;
    top: 50% !important; left: 50% !important;
    transform: translate(-50%, -50%) !important;
    font-size: 1.4rem !important;
    opacity: .25 !important;
}
.hub-dept-body {
    padding: 10px 12px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
}
.hub-dept-nom {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: .85rem !important;
    font-weight: 600 !important;
    color: #f1f2f6 !important;
    line-height: 1.25 !important;
}
.hub-dept-count {
    font-size: 11px !important;
    color: #7AAFFF !important;
    font-weight: 500 !important;
}
.hub-dept-soon {
    font-size: 11px !important;
    color: #6b6b80 !important;
    font-style: italic !important;
}

/* Hub badges */
body.aveefy-hub-page .fiche-badge.ok {
    background: rgba(46,213,115,.1) !important;
    color: #2ed573 !important;
    border-color: rgba(46,213,115,.25) !important;
}
/* ═══════════════════════════════════════════════════════════════════
   AVEEFY — MOBILE RESPONSIVE FIX
   À ajouter à la FIN de fiche-etablissement.css
   ═══════════════════════════════════════════════════════════════════ */

/* ── 1. STOPPER tout débordement horizontal ─────────────────────── */
html,
body.aveefy-fiche-page,
body.aveefy-hub-page {
    overflow-x: hidden !important;
    max-width: 100vw !important;
}

body.aveefy-fiche-page *,
body.aveefy-hub-page * {
    max-width: 100%;
}

/* ── 2. HERO — fix padding et largeur ──────────────────────────── */
.fiche-hero {
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
}
.fiche-hero-inner {
    padding: 32px 16px 28px;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
}

/* ── 3. LAYOUT — forcer colonne unique < 768px ─────────────────── */
@media (max-width: 768px) {
    .fiche-layout {
        display: flex !important;
        flex-direction: column !important;
        padding: 16px 14px 40px !important;
        gap: 20px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .fiche-content,
    .fiche-sidebar {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .fiche-sidebar-sticky {
        position: static !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
        width: 100% !important;
    }

    /* Hero */
    .fiche-hero-inner {
        padding: 20px 14px 16px !important;
    }
    .fiche-hero h1 {
        font-size: 1.4rem !important;
        line-height: 1.25 !important;
        word-break: break-word;
    }
    .fiche-hero-excerpt {
        font-size: .88rem !important;
    }
    .fiche-hero-img,
    .fiche-hero-img-placeholder {
        height: 150px !important;
        margin-top: 16px !important;
    }

    /* Alert bar */
    .fiche-alert-bar {
        font-size: 11px !important;
        padding: 8px 10px !important;
        line-height: 1.45 !important;
        white-space: normal !important;
    }

    /* Badges */
    .fiche-badges {
        gap: 5px !important;
    }
    .fiche-badge {
        font-size: 11px !important;
        padding: 4px 9px !important;
    }

    /* Sections */
    .fiche-section {
        margin-bottom: 26px !important;
    }
    .fiche-section h2 {
        font-size: 1.1rem !important;
        gap: 8px !important;
        word-break: break-word !important;
    }
    .fiche-section p {
        font-size: .9rem !important;
    }
    .snum {
        width: 24px !important;
        height: 24px !important;
        font-size: 10px !important;
        flex-shrink: 0 !important;
    }

    /* Stat grid */
    .fiche-stat-grid {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 6px !important;
    }
    .fiche-stat-card {
        padding: 10px 6px !important;
    }
    .fiche-stat-card .num {
        font-size: 1.4rem !important;
    }
    .fiche-stat-card .lbl {
        font-size: 9px !important;
    }

    /* Tables : scroll horizontal, ne jamais casser la page */
    .tbl-wrap {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        width: 100% !important;
        max-width: calc(100vw - 28px) !important;
    }
    .fiche-table {
        min-width: 500px;
        font-size: 12px !important;
    }
    .fiche-table th,
    .fiche-table td {
        padding: 8px 8px !important;
        white-space: normal !important;
    }

    /* CTA inline */
    .fiche-cta-inline {
        padding: 16px 12px !important;
        margin: 20px 0 !important;
    }
    .fiche-cta-inline h3 {
        font-size: 1rem !important;
    }
    .fiche-btn-row {
        flex-direction: column !important;
        gap: 8px !important;
    }
    .btn-aveefy-pri,
    .btn-aveefy-ghost {
        width: 100% !important;
        text-align: center !important;
        display: block !important;
        padding: 13px 16px !important;
        box-sizing: border-box !important;
    }

    /* Highlight boxes */
    .fiche-highlight {
        padding: 14px 12px !important;
        gap: 10px !important;
    }
    .fiche-highlight-icon {
        font-size: 1.1rem !important;
    }

    /* GMB grid */
    .fiche-gmb-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 6px !important;
    }
    .fiche-gmb-item {
        font-size: 11px !important;
        padding: 8px 10px !important;
    }

    /* FAQ */
    .fiche-faq .faq-item {
        padding: 2px 0 !important;
    }
    .faq-q {
        font-size: .88rem !important;
        line-height: 1.4 !important;
    }

    /* CTA proprio */
    .fiche-cta-proprio {
        padding: 16px 12px !important;
    }
    .fiche-cta-btns {
        flex-direction: column !important;
        gap: 8px !important;
    }
    .fiche-cta-btns a {
        width: 100% !important;
        text-align: center !important;
        display: block !important;
        box-sizing: border-box !important;
    }

    /* Sidebar widgets */
    .sw {
        padding: 14px !important;
    }
    .sw-phone-num {
        font-size: 1.2rem !important;
    }
    .sw-btn {
        padding: 11px 14px !important;
        font-size: 12px !important;
    }

    /* Mid image */
    .fiche-mid-img,
    .fiche-mid-img-placeholder {
        height: 130px !important;
    }

    /* Score bar */
    .fiche-score-wrap {
        margin: 10px 0 14px !important;
    }

    /* Hub grille France */
    .hub-france-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }
    .hub-dept-img {
        height: 60px !important;
    }
    .hub-dept-nom {
        font-size: .78rem !important;
    }
    .hub-dept-count,
    .hub-dept-soon {
        font-size: 10px !important;
    }

    /* Hub grille villes */
    .hub-villes-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }

    /* Sidebar résumé */
    .sw-sum li {
        font-size: 11px !important;
    }
}

/* ── 4. TRÈS PETIT ÉCRAN (< 380px) ─────────────────────────────── */
@media (max-width: 380px) {
    .fiche-hero h1 {
        font-size: 1.25rem !important;
    }
    .fiche-stat-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
    .fiche-stat-card .num {
        font-size: 1.2rem !important;
    }
    .hub-france-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .fiche-layout {
        padding: 12px 10px 30px !important;
    }
}

/* ═══════════════════════════════════════════════════════════════════
   HUB FRANCE V2 — Coller à la FIN de fiche-etablissement.css
   ═══════════════════════════════════════════════════════════════════ */

/* ─── SEARCH BAR + AUTOCOMPLETE ──────────────────────────────────── */
.hub-search-outer {
    background: #12121a;
    padding: 14px 20px;
    border-bottom: 1px solid rgba(255,255,255,.05);
}
.hub-search-inner {
    max-width: 1120px;
    margin: 0 auto;
    display: flex;
    gap: 10px;
    align-items: flex-start;
    position: relative;
}
.hub-search-field {
    flex: 1;
    position: relative;
}
.hub-search-input {
    width: 100%;
    background: #1e1e30;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 8px;
    padding: 10px 16px;
    color: #f1f2f6;
    font-family: 'Source Sans 3', sans-serif;
    font-size: 14px;
    outline: none;
    transition: border-color .2s;
    box-sizing: border-box;
}
.hub-search-input::placeholder { color: #6b6b80; }
.hub-search-input:focus { border-color: #0B57D0; }
.hub-search-input.open { border-radius: 8px 8px 0 0; border-color: #0B57D0; }

/* Dropdown autocomplete */
.hub-autocomplete {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #1e1e30;
    border: 1px solid #0B57D0;
    border-top: none;
    border-radius: 0 0 8px 8px;
    z-index: 1000;
    max-height: 360px;
    overflow-y: auto;
}
.hub-autocomplete.visible { display: block; }
.hub-ac-section {
    padding: 8px 0 4px;
}
.hub-ac-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #6b6b80;
    padding: 0 14px 6px;
}
.hub-ac-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 14px;
    text-decoration: none;
    transition: background .12s;
    gap: 10px;
    cursor: pointer;
}
.hub-ac-item:hover { background: rgba(11,87,208,.15); }
.hub-ac-item-left { overflow: hidden; flex: 1; }
.hub-ac-title {
    font-size: 13px;
    font-weight: 500;
    color: #f1f2f6;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.hub-ac-sub {
    font-size: 11px;
    color: #6b6b80;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 1px;
}
.hub-ac-right {
    font-size: 11px;
    color: #7AAFFF;
    white-space: nowrap;
    flex-shrink: 0;
}
.hub-ac-divider {
    height: 1px;
    background: rgba(255,255,255,.05);
    margin: 4px 0;
}
.hub-ac-empty {
    padding: 12px 14px;
    font-size: 12px;
    color: #6b6b80;
    font-style: italic;
}

.hub-search-btn {
    background: #0B57D0;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 10px 22px;
    font-size: 13px;
    font-weight: 600;
    font-family: 'Source Sans 3', sans-serif;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity .15s;
    flex-shrink: 0;
    height: 40px;
}
.hub-search-btn:hover { opacity: .88; }

/* ─── VEDETTES TOP 3 ─────────────────────────────────────────────── */
.hub-vedettes-top3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 16px;
}
.hub-vedette-card {
    background: #1e1e30;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 10px;
    overflow: hidden;
    text-decoration: none;
    display: block;
    transition: border-color .2s, transform .15s;
}
.hub-vedette-card:hover,
.hub-vedette-card.active { border-color: #0B57D0; transform: translateY(-2px); }
.hub-vedette-body {
    padding: 10px 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 6px;
}
.hub-vedette-nom {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: .88rem;
    font-weight: 600;
    color: #f1f2f6;
    line-height: 1.2;
}
.hub-vedette-nb {
    font-size: 10px;
    background: rgba(11,87,208,.2);
    color: #7AAFFF;
    padding: 2px 8px;
    border-radius: 100px;
    font-weight: 500;
    white-space: nowrap;
    flex-shrink: 0;
}
.hub-vedette-etabs { border-top: 1px solid rgba(255,255,255,.05); padding-top: 10px; }
.hub-vedette-etab-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 7px 0;
    border-bottom: 1px solid rgba(255,255,255,.04);
    gap: 10px;
    text-decoration: none;
}
.hub-vedette-etab-row:last-child { border-bottom: none; }
.hub-vedette-etab-row:hover .hub-vedette-etab-name { color: #7AAFFF; }
.hub-vedette-etab-name {
    font-size: 12px;
    font-weight: 500;
    color: #f1f2f6;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color .15s;
}
.hub-vedette-etab-meta { font-size: 11px; color: #6b6b80; margin-top: 2px; }
.hub-etab-badge {
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 100px;
    white-space: nowrap;
    flex-shrink: 0;
}
.hub-etab-badge.warn   { background: rgba(200,150,58,.15);   color: #FAC775; }
.hub-etab-badge.danger { background: rgba(232,112,112,.12);  color: #e87070; }
.hub-etab-badge.ok     { background: rgba(46,213,115,.1);    color: #2ed573; }

/* ─── CATÉGORIES SCROLLABLES ─────────────────────────────────────── */
.hub-cats-label {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .07em;
    color: #6b6b80;
    text-transform: uppercase;
    margin-bottom: 10px;
    padding: 0 16px;
}
.hub-cats-wrap {
    background: #12121a;
    border-top: 1px solid rgba(255,255,255,.06);
    border-bottom: 1px solid rgba(255,255,255,.06);
    border-radius: 0;
    padding: 12px 0;
    margin-bottom: 24px;
}
.hub-cats-row {
    display: flex;
    align-items: center;
    gap: 8px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 0 16px;
}
.hub-cats-row::-webkit-scrollbar { display: none; }
.hub-cats-scroll {
    display: contents; /* supprime le wrapper inutile */
}
.hub-cats-arrow { display: none; }

.hub-cat-pill {
    font-size: 12px;
    padding: 5px 14px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 100px;
    background: #1e1e30;
    color: #a4a4b8;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    text-decoration: none;
    transition: border-color .15s, color .15s, background .15s;
}
.hub-cat-pill:hover { border-color: #0B57D0; color: #f1f2f6; }
.hub-cat-pill.active { border-color: #0B57D0; background: rgba(11,87,208,.15); color: #7AAFFF; }
.hub-cat-pill .hub-cat-nb {
    font-size: 10px;
    background: rgba(122,175,255,.12);
    color: #7AAFFF;
    padding: 1px 6px;
    border-radius: 100px;
}

/* ─── GRILLE FICHES — overlay trick, pas de <a> imbriqués ────────── */
.hub-fiches-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 20px;
}

@media (max-width: 900px) {
    .hub-fiches-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 600px) {
    .hub-fiches-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
}
@media (max-width: 380px) {
    .hub-fiches-grid { grid-template-columns: 1fr; }
}

/* La card est un div positionné relativement */
.hub-fiche-card {
    position: relative;
    background: #1e1e30;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 10px;
    padding: 14px 16px;
    display: block;
    transition: border-color .2s, transform .15s;
}
.hub-fiche-card:hover { border-color: #0B57D0; transform: translateY(-2px); }

/* Overlay invisible qui couvre toute la card → lien vers la fiche */
.hub-fiche-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: 10px;
}

/* Tous les enfants au-dessus de l'overlay */
.hub-fiche-nom,
.hub-fiche-meta,
.hub-fiche-note {
    position: relative;
    z-index: 2;
}

.hub-fiche-nom {
    font-size: 13px;
    font-weight: 600;
    color: #f1f2f6;
    line-height: 1.35;
    margin-bottom: 6px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.hub-fiche-meta {
    font-size: 11px;
    color: #6b6b80;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: nowrap;
    overflow: hidden;
}

/* Type et ville : liens au-dessus de l'overlay via z-index hérité */
.hub-fiche-type,
.hub-fiche-ville-link {
    color: #6b6b80;
    text-decoration: none;
    transition: color .15s;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.hub-fiche-type:hover,
.hub-fiche-ville-link:hover { color: #7AAFFF; text-decoration: underline; }

.hub-fiche-note {
    font-size: 12px;
    color: #a4a4b8;
    display: flex;
    align-items: center;
    gap: 4px;
    font-weight: 500;
}
.hub-fiche-note .star { color: #FAC775; }

/* Compteur + reset */
.hub-fiches-count { font-size: 12px; color: #6b6b80; margin-bottom: 14px; }
.hub-fiches-count strong { color: #a4a4b8; }
.hub-fiches-count a { color: #7AAFFF; text-decoration: none; }
.hub-fiches-count a:hover { text-decoration: underline; }

/* ─── PAGINATION HUB ─────────────────────────────────────────────── */
.hub-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin: 4px 0 28px;
    flex-wrap: wrap;
}
.hub-pg-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    padding: 0 8px;
    background: #1e1e30;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 8px;
    font-size: 13px;
    color: #a4a4b8;
    text-decoration: none;
    transition: border-color .15s, color .15s, background .15s;
    font-family: 'Source Sans 3', sans-serif;
}
.hub-pg-btn:hover { border-color: #0B57D0; color: #f1f2f6; }
.hub-pg-btn.active { background: #0B57D0; border-color: #0B57D0; color: #fff; font-weight: 600; }
.hub-pg-btn.dots { border: none; background: none; cursor: default; color: #6b6b80; pointer-events: none; }

/* ─── TEXTE SEO ──────────────────────────────────────────────────── */
.hub-seo-text {
    background: #0d0d16;
    border: 1px solid rgba(255,255,255,.04);
    border-radius: 10px;
    padding: 20px 24px;
    margin-top: 8px;
    font-size: .87rem;
    color: #6b6b80;
    line-height: 1.85;
}

.hub-seo-text p { margin-bottom: 0; }
.hub-seo-text a { color: #7AAFFF; text-decoration: none; }
.hub-seo-text a:hover { text-decoration: underline; }

/* ─── RESPONSIVE ─────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .hub-fiches-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
    .hub-search-outer  { padding: 12px 14px; }
    .hub-search-input  { font-size: 13px; padding: 9px 12px; }
    .hub-search-btn    { padding: 9px 14px; font-size: 12px; height: 38px; }
    .hub-vedettes-top3 { gap: 6px; }
    .hub-vedette-nom   { font-size: .78rem; }
    .hub-vedette-nb    { display: none; }
    .hub-fiches-grid   { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .hub-fiche-nom     { font-size: 12px; }
    .hub-seo-text      { padding: 14px; font-size: .82rem; }
}
@media (max-width: 420px) {
    .hub-fiches-grid { grid-template-columns: repeat(2, 1fr); }
}

.footer-title {
font-weight: 700;
  color: #969696;
  text-align: center;
  margin: auto;
  font-size: 1.17em;
    padding: 30px 0 5px;
        margin-bottom: 14px;
}