/* ==========================================================================
   ICM — Page « Foire aux questions »
   Sommaire par thèmes, recherche instantanée et accordéon autonome.
   Palette : or #CB9937 / or clair #E6BA56 / or foncé #AE791D / bronze #8E5A0B
             bleu nuit #171f2c.
   Aucune dépendance externe (JS et CSS autonomes).
   ========================================================================== */

.icm-faq{
    --faq-gold:#CB9937;
    --faq-gold-light:#E6BA56;
    --faq-gold-dark:#AE791D;
    --faq-bronze:#8E5A0B;
    --faq-dark:#171f2c;
    --faq-muted:#5b6472;
    --faq-line:#e8ecf3;
    --faq-soft:#f7f8fa;
    /* Hauteur de la barre de navigation collante (76px) + respiration */
    --faq-offset:100px;
}

/* --------------------------------------------------------------------------
   1. En-tête de page
   -------------------------------------------------------------------------- */
.icm-faq-intro{padding:72px 0 34px;background:linear-gradient(180deg,#fbfbfd 0%,#fff 100%);}
.icm-faq-intro .icm-faq-eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:1.6px;
    text-transform:uppercase;color:var(--faq-gold-dark);margin-bottom:12px;}
.icm-faq-intro h2{font-size:32px;line-height:1.22;font-weight:800;color:var(--faq-dark);margin:0 0 16px;}
.icm-faq-rule{width:74px;height:3px;border-radius:3px;margin:0 auto 20px;
    background:linear-gradient(90deg,var(--faq-gold-light),var(--faq-gold),var(--faq-gold-dark));}
.icm-faq-lead{max-width:840px;margin:0 auto;color:var(--faq-muted);font-size:15.5px;line-height:1.8;}

/* --------------------------------------------------------------------------
   2. Champ de recherche
   -------------------------------------------------------------------------- */
.icm-faq-search{max-width:620px;margin:34px auto 0;}
.icm-faq-search-in{position:relative;}
.icm-faq-search .icm-faq-search-ico{position:absolute;left:20px;top:0;bottom:0;display:flex;align-items:center;
    color:var(--faq-gold-dark);font-size:15px;pointer-events:none;}
.icm-faq-search input{width:100%;border:1px solid #e1e6ee;border-radius:50px;background:#fff;
    padding:15px 52px 15px 50px;font-size:15px;color:var(--faq-dark);font-family:inherit;outline:none;
    box-shadow:0 8px 24px rgba(20,30,50,.06);transition:border-color .18s,box-shadow .18s;}
.icm-faq-search input::placeholder{color:#a3acbb;}
/* La croix native ferait doublon avec notre bouton d'effacement */
.icm-faq-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;}
.icm-faq-search input:focus{border-color:var(--faq-gold);box-shadow:0 0 0 3px rgba(203,153,55,.16),0 8px 24px rgba(20,30,50,.06);}
.icm-faq-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;
    border:0;border-radius:50%;background:#f1f3f7;color:#5b6472;font-size:14px;cursor:pointer;display:none;
    align-items:center;justify-content:center;transition:.18s;}
.icm-faq-search-clear:hover{background:var(--faq-gold);color:#fff;}
.icm-faq-search.has-value .icm-faq-search-clear{display:flex;}
.icm-faq-search-count{display:block;text-align:center;font-size:13px;color:var(--faq-muted);margin-top:12px;min-height:19px;}

/* --------------------------------------------------------------------------
   3. Sommaire des thèmes (navigation par ancres)
   -------------------------------------------------------------------------- */
.icm-faq-toc{padding:8px 0 20px;}
.icm-faq-toc h3{font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
    color:#8a94a6;text-align:center;margin:0 0 22px;}
.icm-faq-toc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.icm-faq-toc-item{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--faq-line);
    border-radius:14px;padding:16px 18px;transition:.22s;box-shadow:0 6px 18px rgba(20,30,50,.05);}
.icm-faq-toc-item:hover,.icm-faq-toc-item:focus-visible{border-color:rgba(203,153,55,.45);transform:translateY(-3px);
    box-shadow:0 14px 30px rgba(20,30,50,.1);text-decoration:none;}
.icm-faq-toc-item i{flex:0 0 auto;width:42px;height:42px;border-radius:12px;display:flex;align-items:center;
    justify-content:center;font-size:16px;color:#fff;
    background:linear-gradient(135deg,var(--faq-gold),var(--faq-gold-dark));
    box-shadow:0 8px 16px rgba(142,90,11,.24);}
.icm-faq-toc-item .t{font-size:14.5px;font-weight:700;color:var(--faq-dark);line-height:1.35;display:block;}
.icm-faq-toc-item .n{font-size:12px;color:#8a94a6;display:block;margin-top:2px;}
.icm-faq-toc-item:hover .t{color:var(--faq-gold-dark);}

/* --------------------------------------------------------------------------
   4. Catégories
   -------------------------------------------------------------------------- */
.icm-faq-body{padding:24px 0 80px;}
.icm-faq-cat{scroll-margin-top:var(--faq-offset);margin-bottom:40px;}
.icm-faq-cat:last-of-type{margin-bottom:0;}
.icm-faq-cat-head{display:flex;align-items:center;gap:14px;padding:0 4px 16px;border-bottom:1px solid var(--faq-line);
    margin-bottom:18px;}
.icm-faq-cat-ico{flex:0 0 auto;width:46px;height:46px;border-radius:13px;display:flex;align-items:center;
    justify-content:center;font-size:17px;color:#fff;
    background:linear-gradient(135deg,var(--faq-gold-light),var(--faq-gold) 52%,var(--faq-gold-dark));
    box-shadow:0 8px 18px rgba(142,90,11,.26);}
.icm-faq-cat-head h2{flex:1 1 auto;font-size:19px;font-weight:800;color:var(--faq-dark);margin:0;
    text-transform:uppercase;letter-spacing:.4px;}
.icm-faq-cat-badge{flex:0 0 auto;font-size:11.5px;font-weight:700;letter-spacing:.4px;color:var(--faq-gold-dark);
    background:rgba(203,153,55,.12);border:1px solid rgba(203,153,55,.28);border-radius:40px;padding:4px 12px;
    white-space:nowrap;}

/* --------------------------------------------------------------------------
   5. Accordéon
   -------------------------------------------------------------------------- */
.icm-faq-list{display:flex;flex-direction:column;gap:12px;}
.icm-faq-item{background:#fff;border:1px solid var(--faq-line);border-radius:14px;overflow:hidden;
    box-shadow:0 6px 18px rgba(20,30,50,.05);transition:border-color .22s,box-shadow .22s;
    scroll-margin-top:var(--faq-offset);}
.icm-faq-item:hover{border-color:rgba(203,153,55,.4);}
.icm-faq-item.is-open{border-color:rgba(203,153,55,.55);box-shadow:0 14px 32px rgba(20,30,50,.09);}

.icm-faq-q{margin:0;}
.icm-faq-btn{display:flex;align-items:center;gap:14px;width:100%;text-align:left;border:0;background:transparent;
    padding:18px 20px;font-family:inherit;font-size:15.5px;font-weight:700;line-height:1.5;color:var(--faq-dark);
    cursor:pointer;transition:color .2s,background .2s;}
.icm-faq-btn:hover{color:var(--faq-gold-dark);background:#fdfbf6;}
.icm-faq-btn:focus-visible{outline:3px solid rgba(203,153,55,.55);outline-offset:-3px;border-radius:14px;}
.icm-faq-item.is-open .icm-faq-btn{color:var(--faq-gold-dark);}
.icm-faq-btn .icm-faq-btn-txt{flex:1 1 auto;}
/* Chevron dessiné en CSS pur (bordures pivotées) : aucune police d'icônes */
.icm-faq-chev{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;
    justify-content:center;background:rgba(203,153,55,.12);
    transition:transform .3s ease,background .22s;}
.icm-faq-chev>i{display:block;width:8px;height:8px;margin-top:-3px;
    border-right:2px solid var(--faq-gold-dark);border-bottom:2px solid var(--faq-gold-dark);
    transform:rotate(45deg);transition:border-color .22s;}
.icm-faq-item.is-open .icm-faq-chev{transform:rotate(180deg);
    background:linear-gradient(135deg,var(--faq-gold),var(--faq-gold-dark));}
.icm-faq-item.is-open .icm-faq-chev>i{border-right-color:#fff;border-bottom-color:#fff;}

/* Repli / dépli : grid-template-rows animé (aucune hauteur codée en dur) */
.icm-faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease;}
.icm-faq-item.is-open .icm-faq-a{grid-template-rows:1fr;}
.icm-faq-a>div{overflow:hidden;visibility:hidden;transition:visibility .3s;}
.icm-faq-item.is-open .icm-faq-a>div{visibility:visible;}
.icm-faq-a-in{padding:0 20px 20px 64px;color:var(--faq-muted);font-size:14.8px;line-height:1.8;}
.icm-faq-a-in p{margin:0;}
.icm-faq-a-in .icm-faq-ul{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;}
/* Puce dessinée en CSS pur : aucune dépendance à une police d'icônes */
.icm-faq-a-in .icm-faq-ul li{display:flex;align-items:flex-start;gap:11px;font-size:14.5px;line-height:1.6;}
.icm-faq-a-in .icm-faq-ul li .icm-faq-dot{flex:0 0 auto;margin-top:7px;width:8px;height:8px;border-radius:50%;
    background:linear-gradient(135deg,var(--faq-gold-light),var(--faq-gold-dark));
    box-shadow:0 0 0 3px rgba(203,153,55,.14);}

/* --------------------------------------------------------------------------
   6. Recherche : masquage et message « aucun résultat »
   -------------------------------------------------------------------------- */
.icm-faq-item[hidden],.icm-faq-cat[hidden],.icm-faq-empty[hidden],.icm-faq-toc[hidden]{display:none !important;}
.icm-faq-empty{text-align:center;background:#fff;border:1px dashed rgba(203,153,55,.5);border-radius:16px;
    padding:44px 26px;box-shadow:0 6px 18px rgba(20,30,50,.04);}
.icm-faq-empty i{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:16px;
    font-size:22px;color:var(--faq-gold-dark);background:rgba(203,153,55,.12);margin-bottom:16px;}
.icm-faq-empty h3{font-size:18px;font-weight:800;color:var(--faq-dark);margin:0 0 8px;}
.icm-faq-empty p{color:var(--faq-muted);font-size:14.5px;line-height:1.7;margin:0;}

/* Surlignage des correspondances */
.icm-faq-mark{background:rgba(230,186,86,.38);border-radius:3px;padding:0 1px;color:inherit;}

/* --------------------------------------------------------------------------
   7. Bloc de clôture
   -------------------------------------------------------------------------- */
.icm-faq-cta{padding:66px 0;background:linear-gradient(135deg,#171f2c 0%,#25314a 100%);position:relative;overflow:hidden;}
.icm-faq-cta::after{content:"";position:absolute;right:-90px;top:-90px;width:300px;height:300px;border-radius:50%;
    background:radial-gradient(circle,rgba(203,153,55,.28),transparent 68%);pointer-events:none;}
.icm-faq-cta-in{position:relative;z-index:1;text-align:center;max-width:760px;margin:0 auto;}
.icm-faq-cta-ico{width:64px;height:64px;border-radius:18px;display:flex;align-items:center;justify-content:center;
    font-size:24px;color:#fff;margin:0 auto 20px;
    background:linear-gradient(135deg,var(--faq-gold-light),var(--faq-gold) 50%,var(--faq-gold-dark));
    box-shadow:0 12px 26px rgba(142,90,11,.4);}
.icm-faq-cta h2{font-size:27px;font-weight:800;color:#fff;margin:0 0 14px;}
.icm-faq-cta p{color:#c3cddc;font-size:15.2px;line-height:1.8;margin:0 0 28px;}
.icm-faq-cta-btn{display:inline-flex;align-items:center;gap:10px;padding:15px 36px;border-radius:50px;
    font-size:13.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:#fff;
    background:linear-gradient(135deg,var(--faq-gold-light) 0%,var(--faq-gold) 52%,var(--faq-gold-dark) 100%);
    box-shadow:0 10px 24px rgba(142,90,11,.4);transition:.22s;}
.icm-faq-cta-btn:hover,.icm-faq-cta-btn:focus-visible{color:#fff;transform:translateY(-2px);
    box-shadow:0 16px 32px rgba(142,90,11,.5);text-decoration:none;}
.icm-faq-cta-btn:focus-visible{outline:3px solid rgba(230,186,86,.7);outline-offset:3px;}

/* --------------------------------------------------------------------------
   8. Responsive — cible majoritairement mobile
   -------------------------------------------------------------------------- */
@media(max-width:991px){
    .icm-faq-toc-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:767px){
    .icm-faq-intro{padding:48px 0 26px;}
    .icm-faq-intro h2{font-size:24px;}
    .icm-faq-lead{font-size:14.6px;}
    .icm-faq-search{margin-top:26px;}
    .icm-faq-search input{padding:13px 48px 13px 46px;font-size:14.5px;}
    .icm-faq-toc-grid{grid-template-columns:1fr;gap:12px;}
    .icm-faq-body{padding:16px 0 60px;}
    .icm-faq-cat{margin-bottom:32px;}
    .icm-faq-cat-head h2{font-size:16px;letter-spacing:.2px;}
    .icm-faq-cat-ico{width:40px;height:40px;font-size:15px;border-radius:11px;}
    .icm-faq-cat-badge{display:none;}
    .icm-faq-btn{padding:15px 16px;font-size:14.6px;gap:10px;}
    .icm-faq-chev{width:26px;height:26px;font-size:11px;}
    .icm-faq-a-in{padding:0 16px 18px;font-size:14.2px;}
    .icm-faq-a-in .icm-faq-ul{grid-template-columns:1fr;gap:9px;}
    .icm-faq-cta{padding:52px 0;}
    .icm-faq-cta h2{font-size:21px;}
    .icm-faq-cta p{font-size:14.4px;}
    .icm-faq-cta-btn{padding:14px 28px;font-size:12.5px;}
}

@media(prefers-reduced-motion:reduce){
    .icm-faq-a,.icm-faq-chev,.icm-faq-item,.icm-faq-toc-item,.icm-faq-cta-btn{transition:none !important;}
}

/* ---- Hauteur des cadres repliés -------------------------------------
   « grid-template-rows:0fr » ne replie réellement la ligne que si l'enfant
   autorise une hauteur nulle : sans min-height:0, sa hauteur minimale
   automatique laissait ~46 px de vide sous chaque question fermée. */
.icm-faq-a>div{min-height:0;}
/* Bouton un peu plus compact : la liste des questions devient plus dense. */
.icm-faq-btn{padding:13px 18px;}
.icm-faq-chev{width:27px;height:27px;}
/* Le cadre héritait d'un padding 22px 26px du gabarit, qui s'ajoutait à
   celui du bouton : 44 px de hauteur inutile sur chaque question fermée.
   Le bouton porte seul l'espacement, et devient cliquable sur toute la
   largeur du cadre. */
.icm-faq-item{padding:0;}
