/* ============================================================
   SERVICES
   ============================================================ */
.services-grille {
    display:grid; grid-template-columns:repeat(3,1fr); gap:26px;
}
.service-carte {
    background:var(--c-blanc); border-radius:var(--radius-card);
    padding:0; position:relative; overflow:hidden;
    border:1.5px solid var(--c-bordure);
    box-shadow:var(--ombre-sm);
    transition:box-shadow .4s ease, border-color .4s ease, transform .35s cubic-bezier(.22,1,.36,1);
    display:flex; flex-direction:column;
    transform-style:preserve-3d; will-change:transform;
}
.service-carte::before {
    content:''; position:absolute; top:0; left:0; right:0;
    height:4px; background:var(--g-logo);
    transform:scaleX(0); transform-origin:left;
    transition:transform .35s ease; z-index:2;
}
/* Halo lumineux qui suit le curseur (positionné via --mx/--my en JS) */
.service-carte::after {
    content:''; position:absolute; inset:0; z-index:0; opacity:0;
    background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%), rgba(125,194,66,.16), transparent 65%);
    transition:opacity .4s ease; pointer-events:none;
}
.service-carte:hover { box-shadow:0 26px 50px -12px rgba(12,45,74,.22); border-color:transparent; }
.service-carte:hover::before { transform:scaleX(1); }
.service-carte:hover::after { opacity:1; }

/* Effet de balayage lumineux */
.service-shine {
    position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden;
}
.service-shine::before {
    content:''; position:absolute; top:0; bottom:0; left:-60%; width:40%;
    background:linear-gradient(100deg, transparent 20%, rgba(255,255,255,.55) 50%, transparent 80%);
    transform:skewX(-18deg) translateX(0);
    transition:transform 1s cubic-bezier(.22,1,.36,1);
}
.service-carte:hover .service-shine::before { transform:skewX(-18deg) translateX(420%); }

/* Image en haut de la carte */
.service-img-wrap {
    width:100%; aspect-ratio:16/9; overflow:hidden;
    flex-shrink:0; position:relative; z-index:1;
}
.service-img-wrap img {
    width:100%; height:100%; object-fit:cover;
    transition:transform .5s cubic-bezier(.22,1,.36,1);
}
.service-carte:hover .service-img-wrap img { transform:scale(1.08); }

/* Contenu texte (padding seulement quand pas d'image aussi) */
.service-carte .service-icone,
.service-carte h3,
.service-carte p {
    padding-left:28px; padding-right:28px; position:relative; z-index:1;
}
.service-carte .service-icone { padding-top:28px; }
.service-carte h3 { padding-top:16px; }
.service-carte p  { padding-bottom:8px; }

/* Quand il y a une image, le contenu texte est en-dessous */
.service-carte .service-img-wrap + h3 { padding-top:20px; }
.service-carte .service-img-wrap ~ p  { flex:1; }

.service-icone {
    width:58px; height:58px; border-radius:14px;
    display:flex; align-items:center; justify-content:center;
    margin-bottom:16px;
    background:var(--c-bleu-clair);
    color:var(--c-bleu);
    transition:transform .45s cubic-bezier(.34,1.56,.64,1), background .35s ease, color .35s ease;
}
.service-icone svg { width:26px; height:26px; }
.service-carte:hover .service-icone {
    transform:scale(1.12) rotate(-6deg);
    background:var(--g-logo); color:#fff;
}
.service-carte:nth-child(even) .service-icone { background:var(--c-vert-clair); color:var(--c-vert-fonce); }
.service-carte h3 { margin-bottom:8px; font-size:1.1rem; transition:color .3s ease; }
.service-carte:hover h3 { color:var(--c-vert-fonce); }
.service-carte p  { font-size:.9rem; line-height:1.6; }
.service-num {
    position:absolute; top:14px; right:18px;
    font-family:var(--f-display); font-size:2rem; font-weight:700;
    color:rgba(41,171,226,.10); line-height:1; z-index:0;
    transition:color .35s ease, transform .35s ease;
}
.service-carte:hover .service-num { color:rgba(125,194,66,.18); transform:scale(1.1); }

/* CTA "Prendre rendez-vous" par carte */
.service-cta {
    display:flex; align-items:center; gap:8px;
    margin:14px 28px 26px; padding-top:14px;
    border-top:1px solid var(--c-bordure);
    font-size:.83rem; font-weight:700; color:var(--c-bleu);
    background:none; border-left:none; border-right:none; border-bottom:none;
    cursor:pointer; text-align:left; position:relative; z-index:1;
    width:calc(100% - 56px);
    transition:color .3s ease, gap .3s ease;
}
.service-cta svg { width:15px; height:15px; transition:transform .3s ease; flex-shrink:0; }
.service-carte:hover .service-cta { color:var(--c-vert-fonce); gap:12px; }
.service-cta:hover svg { transform:translateX(4px); }

@media(max-width:980px){ .services-grille{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .services-grille{ grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce){
    .service-carte, .service-carte *, .service-shine::before { transition:none !important; animation:none !important; }
}

/* ============================================================
   DOCTEUR — styles communs conservés (credentials + signature)
   Le reste (hero, hotspots, timeline, valeurs, expertise,
   technologies) vit dans css/docteur-premium.css
   ============================================================ */
.docteur-credentials { margin:26px 0 30px; display:flex; flex-direction:column; gap:14px; }
.docteur-credentials li {
    display:flex; align-items:flex-start; gap:12px;
    font-size:.93rem; color:var(--c-texte);
}
.docteur-credentials li svg {
    flex-shrink:0; margin-top:2px;
    color:var(--c-vert); width:19px; height:19px;
}
.docteur-signature {
    font-family:var(--f-display); font-style:italic;
    font-size:1.4rem; color:var(--c-bleu-fonce); margin-top:8px;
}

/* ============================================================
   APPEL À L'ACTION — Prise de rendez-vous
   ============================================================ */
.cta-rdv-section {
    padding:64px 0; background:var(--g-logo);
    position:relative; overflow:hidden;
}
.cta-rdv-section::before {
    content:''; position:absolute; inset:0;
    background:radial-gradient(circle at 85% 20%, rgba(255,255,255,.16), transparent 55%);
    pointer-events:none;
}
.cta-rdv-grid {
    position:relative; z-index:1;
    display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center;
}
.cta-rdv-contenu { max-width:520px; }
.cta-rdv-eyebrow {
    font-size:.8rem; font-weight:800; letter-spacing:.04em;
    color:#fff; opacity:.92; margin-bottom:14px;
}
.cta-rdv-contenu h2 { color:#fff; margin-bottom:16px; }
.cta-rdv-texte { color:rgba(255,255,255,.88); font-size:1rem; margin-bottom:30px; }
.cta-rdv-bouton {
    background:#fff; color:var(--c-bleu-nuit);
    box-shadow:0 6px 22px rgba(12,45,74,.28);
}
.cta-rdv-bouton:hover { transform:translateY(-2px); box-shadow:0 10px 30px rgba(12,45,74,.36); }

/* Scène 3D — sourire animé */
.cta-rdv-visuel { display:flex; justify-content:center; perspective:1200px; }
.cta-sourire-scene {
    position:relative; width:min(300px,62vw); aspect-ratio:4/5;
    transform-style:preserve-3d;
    animation:ctaSourireFlotte 6.5s ease-in-out infinite;
    transition:transform .15s ease-out;
}
.cta-sourire-glow-layer {
    position:absolute; inset:-14%;
    background:radial-gradient(circle, rgba(255,255,255,.5), transparent 70%);
    border-radius:50%;
    transform:translateZ(-70px) scale(1.1);
    filter:blur(3px);
}
.cta-sourire-carte {
    position:relative; width:100%; height:100%;
    border-radius:var(--radius-xl); overflow:hidden;
    transform:translateZ(10px);
    box-shadow:0 24px 50px rgba(12,45,74,.35);
    border:5px solid #fff;
}
.cta-sourire-img {
    width:100%; height:100%; object-fit:cover; object-position:center 42%;
    display:block;
}
.cta-sourire-etincelle {
    position:absolute; color:#fff; text-shadow:0 2px 10px rgba(12,45,74,.25);
    animation:ctaEtincelleFlotte 3.6s ease-in-out infinite;
}
.cta-sourire-etincelle-1 { top:4%; right:6%; font-size:1.5rem; transform:translateZ(90px); }
.cta-sourire-etincelle-2 { bottom:12%; left:0%; font-size:1.1rem; transform:translateZ(60px); animation-delay:.7s; }
.cta-sourire-etincelle-3 { top:42%; right:-6%; font-size:1rem; transform:translateZ(110px); animation-delay:1.3s; }

@keyframes ctaSourireFlotte {
    0%,100% { transform:rotateY(-8deg) rotateX(5deg) translateY(0); }
    50%     { transform:rotateY(8deg) rotateX(-4deg) translateY(-12px); }
}
@keyframes ctaEtincelleFlotte {
    0%,100% { opacity:.45; }
    50%     { opacity:1; }
}

@media(max-width:600px){
    .cta-rdv-section { padding:48px 0; }
}

@media(max-width:900px){
    .cta-rdv-grid { grid-template-columns:1fr; text-align:center; gap:36px; }
    .cta-rdv-contenu { max-width:520px; margin:0 auto; }
}

@media(prefers-reduced-motion:reduce){
    .cta-sourire-scene, .cta-sourire-etincelle { animation:none; }
}

/* ============================================================
   AVIS GOOGLE — vitrine "conversation" premium (téléphone + chat)
   ============================================================ */
.avis-section {
    --avis-vert:#8ED13F; --avis-bleu:#0278C4; --avis-cyan:#00B9E8; --avis-bleu-clair:#B5E8FF;
    position:relative; overflow:hidden;
    background:linear-gradient(160deg, #fff 0%, var(--avis-bleu-clair) 55%, #eafcff 100%);
}

/* --- Fond premium : glows + élément médical très subtil --- */
.avis-fond { position:absolute; inset:0; overflow:hidden; z-index:0; pointer-events:none; }
.avis-glow { position:absolute; border-radius:50%; filter:blur(70px); }
.avis-glow-1 { top:-12%; left:-8%; width:420px; height:420px; background:radial-gradient(circle, rgba(0,185,232,.30), transparent 70%); animation:deriveFond1 22s ease-in-out infinite; }
.avis-glow-2 { bottom:-16%; right:-10%; width:460px; height:460px; background:radial-gradient(circle, rgba(142,209,63,.30), transparent 70%); animation:deriveFond2 24s ease-in-out infinite; }
.avis-glow-3 { top:32%; right:14%; width:260px; height:260px; background:radial-gradient(circle, rgba(2,120,196,.18), transparent 70%); animation:deriveFond1 18s ease-in-out infinite reverse; }
.avis-dent-fond {
    position:absolute; top:10%; right:22%; width:70px; height:70px;
    background:var(--avis-vert);
    clip-path:path('M50 4C25 4 8 22 9 46C10 62 18 74 24 88C28 97 38 96 39 85C40 76 43 72 50 72C57 72 60 76 61 85C62 96 72 97 76 88C82 74 90 62 91 46C92 22 75 4 50 4Z');
    opacity:.06; animation:flotteDent 14s ease-in-out infinite;
}

/* --- Grille deux colonnes : marketing / scène téléphone --- */
.avis-grille { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1.1fr; gap:56px; align-items:center; }

.avis-marketing h2 { margin-bottom:16px; }
.avis-marketing-texte { font-size:1.05rem; margin-bottom:32px; max-width:480px; }

.avis-stats { display:flex; gap:30px; flex-wrap:wrap; margin-bottom:36px; }
.avis-stat { display:flex; flex-direction:column; gap:4px; }
.avis-stat-etoiles { color:#F5C518; font-size:1rem; letter-spacing:2px; }
.avis-stat strong { font-family:var(--f-display); font-size:1.65rem; font-weight:700; color:var(--c-bleu-nuit); line-height:1.1; }
.avis-stat small { font-size:.78rem; color:var(--c-texte-doux); font-weight:600; }

.avis-marketing-actions { display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.avis-btn-google {
    background:linear-gradient(135deg, var(--avis-bleu), var(--avis-cyan)); color:#fff;
    box-shadow:0 12px 28px rgba(2,120,196,.32);
}
.avis-btn-google:hover { transform:translateY(-2px); box-shadow:0 16px 36px rgba(2,120,196,.42); }
.avis-btn-google svg { width:20px; height:20px; }
/* Bouton "Laisser un avis" — premium, façon carte NFC Google, avec halo et étoile qui invitent au clic */
.avis-btn-avis {
    position:relative; display:inline-flex; align-items:center; gap:11px;
    background:#fff; border:2px solid var(--avis-cyan);
    padding:10px 20px 10px 13px; border-radius:var(--radius-btn);
    box-shadow:0 8px 20px rgba(0,185,232,.20);
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.avis-btn-avis:hover {
    transform:translateY(-2px);
    box-shadow:0 12px 28px rgba(0,185,232,.30);
    border-color:var(--avis-bleu);
}
.avis-btn-avis-halo {
    position:absolute; inset:0; border-radius:inherit; z-index:-1; pointer-events:none;
    box-shadow:0 0 0 0 rgba(0,185,232,.45);
    animation:avisHaloPulse 2.2s ease-out infinite;
}
@keyframes avisHaloPulse {
    0%   { box-shadow:0 0 0 0 rgba(0,185,232,.45); }
    70%  { box-shadow:0 0 0 14px rgba(0,185,232,0); }
    100% { box-shadow:0 0 0 0 rgba(0,185,232,0); }
}
.avis-btn-avis-g { width:22px; height:22px; flex-shrink:0; }
.avis-btn-avis-corps { display:flex; flex-direction:column; gap:3px; align-items:flex-start; }
.avis-btn-avis-texte { font-size:.86rem; font-weight:800; color:var(--c-bleu-nuit); }
.avis-btn-avis-etoiles { display:flex; align-items:center; gap:1px; color:#F5C518; }
.avis-btn-avis-etoiles svg { width:11px; height:11px; }
.avis-btn-avis-etoile-active {
    position:relative; display:inline-flex;
    animation:avisEtoileClignote 1.8s ease-in-out infinite;
}
@keyframes avisEtoileClignote {
    0%,100% { opacity:1; transform:scale(1); }
    50%     { opacity:.5; transform:scale(1.3); }
}
.avis-btn-avis-curseur {
    position:absolute; bottom:-8px; right:-8px; width:13px; height:13px;
    color:var(--c-bleu-nuit); transform:rotate(-12deg);
}
@media(prefers-reduced-motion:reduce){
    .avis-btn-avis-halo, .avis-btn-avis-etoile-active { animation:none; }
}

/* --- Scène du téléphone + décorations flottantes --- */
.avis-phone-scene { position:relative; display:flex; align-items:center; justify-content:center; min-height:640px; }

.avis-phone {
    position:relative; z-index:2; width:300px; height:620px;
    background:linear-gradient(155deg, #4a4d52 0%, #202226 45%, #000 100%);
    border-radius:56px; padding:14px;
    box-shadow:0 45px 90px -20px rgba(2,45,74,.35), 0 16px 36px rgba(0,0,0,.22), inset 0 0 0 2px rgba(255,255,255,.06);
    transform:perspective(1400px) rotateY(-9deg) rotateX(3deg);
    animation:avisPhoneFlotte 8s ease-in-out infinite;
}
.avis-phone::before {
    content:''; position:absolute; inset:0; border-radius:inherit; z-index:3; pointer-events:none;
    background:linear-gradient(120deg, rgba(255,255,255,.20) 0%, transparent 28%, transparent 72%, rgba(255,255,255,.08) 100%);
}
@keyframes avisPhoneFlotte {
    0%,100% { transform:perspective(1400px) rotateY(-9deg) rotateX(3deg) translateY(0); }
    50%     { transform:perspective(1400px) rotateY(-9deg) rotateX(3deg) translateY(-12px); }
}
.avis-phone-bouton { position:absolute; background:#101114; z-index:0; }
.avis-phone-bouton-volume-1 { left:-3px; top:118px; width:3px; height:32px; border-radius:2px 0 0 2px; }
.avis-phone-bouton-volume-2 { left:-3px; top:162px; width:3px; height:54px; border-radius:2px 0 0 2px; }
.avis-phone-bouton-power { right:-3px; top:148px; width:3px; height:68px; border-radius:0 2px 2px 0; }

.avis-phone-encoche {
    position:absolute; top:24px; left:50%; transform:translateX(-50%);
    width:96px; height:28px; background:#000; border-radius:20px; z-index:5;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}

.avis-phone-ecran {
    position:relative; width:100%; height:100%; z-index:1;
    border-radius:42px; overflow:hidden;
    background:linear-gradient(180deg, var(--avis-bleu-clair) 0%, #fff 32%, var(--c-vert-pale) 100%);
    display:flex; flex-direction:column;
}
.avis-phone-entete {
    flex-shrink:0; position:relative; z-index:2; display:flex; align-items:center; gap:10px;
    padding:58px 18px 12px; background:rgba(255,255,255,.65); backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(2,45,74,.07);
}
.avis-phone-avatar-cabinet {
    width:34px; height:34px; border-radius:50%; overflow:hidden; flex-shrink:0;
    background:#fff; box-shadow:0 2px 6px rgba(0,0,0,.14); padding:4px;
}
.avis-phone-avatar-cabinet img { width:100%; height:100%; object-fit:contain; display:block; }
.avis-phone-entete-texte { display:flex; flex-direction:column; gap:2px; min-width:0; }
.avis-phone-entete-texte strong { font-size:.82rem; font-weight:800; color:var(--c-bleu-nuit); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.avis-phone-entete-texte small { font-size:.66rem; color:var(--avis-vert); font-weight:700; display:flex; align-items:center; gap:5px; }
.avis-phone-entete-texte small::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--avis-vert); flex-shrink:0; }

.avis-phone-messages-viewport { position:relative; flex:1; overflow:hidden; }
.avis-phone-messages { display:flex; flex-direction:column; gap:10px; padding:12px 14px 24px; animation:avisDefilement 42s linear infinite; }
.avis-phone-messages-viewport:hover .avis-phone-messages,
.avis-phone-messages-viewport:focus-within .avis-phone-messages { animation-play-state:paused; }
@keyframes avisDefilement { 0% { transform:translateY(0); } 100% { transform:translateY(-50%); } }
.avis-phone-chargement { text-align:center; font-size:.8rem; color:var(--c-texte-doux); padding-top:20px; }

.avis-phone-barre-accueil {
    position:absolute; bottom:8px; left:50%; transform:translateX(-50%);
    width:120px; height:4px; border-radius:3px; background:rgba(12,45,74,.35); z-index:6; pointer-events:none;
}

/* --- Bulles de conversation (avis réels, style messagerie) --- */
.avis-msg {
    display:flex; gap:8px; align-items:flex-end; max-width:86%;
    opacity:0; transform:translateY(14px) scale(.96);
    animation:avisMsgIn .6s cubic-bezier(.34,1.56,.64,1) forwards;
}
.avis-msg-recu { align-self:flex-start; }
.avis-msg-envoye { align-self:flex-end; flex-direction:row-reverse; }
@keyframes avisMsgIn { to { opacity:1; transform:translateY(0) scale(1); } }

.avis-msg-avatar {
    width:28px; height:28px; border-radius:50%; overflow:hidden; flex-shrink:0;
    background:var(--avis-bleu-clair); display:flex; align-items:center; justify-content:center;
}
.avis-msg-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.avis-msg-avatar-fallback { font-family:var(--f-display); font-weight:700; font-size:.76rem; color:var(--avis-bleu); }

.avis-msg-bulle {
    position:relative; max-width:228px;
    background:#fff; border-radius:16px 16px 16px 4px;
    padding:9px 12px 7px; box-shadow:0 3px 10px rgba(2,120,196,.10);
}
.avis-msg-envoye .avis-msg-bulle {
    background:linear-gradient(135deg, var(--avis-vert), #6ab52a); color:#fff;
    border-radius:16px 16px 4px 16px;
}
.avis-msg-entete { display:flex; align-items:center; gap:6px; margin-bottom:2px; flex-wrap:wrap; }
.avis-msg-entete strong { font-size:.78rem; font-weight:800; color:var(--c-bleu-nuit); }
.avis-msg-envoye .avis-msg-entete strong { color:#fff; }
.avis-msg-entete .avis-etoiles { font-size:.6rem; color:#F5C518; letter-spacing:1px; }
.avis-msg-envoye .avis-msg-entete .avis-etoiles { color:#FFEBB0; }
.avis-msg-bulle p { font-size:.76rem; line-height:1.42; margin:0 0 4px; color:var(--c-texte); }
.avis-msg-envoye .avis-msg-bulle p { color:#fff; }
.avis-msg-date { font-size:.6rem; opacity:.55; display:block; text-align:right; }

/* --- Petits éléments flottants autour du téléphone --- */
.avis-deco {
    position:absolute; z-index:3; pointer-events:none;
    display:flex; align-items:center; justify-content:center; gap:6px;
    background:rgba(255,255,255,.65); backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,.55); box-shadow:0 10px 26px rgba(2,45,74,.12);
}
.avis-deco-etoile, .avis-deco-coeur, .avis-deco-dent, .avis-deco-check {
    width:52px; height:52px; border-radius:50%; padding:0;
}
.avis-deco-etoile { top:6%; left:2%; color:#F5C518; animation:avisFloatDoux 6s ease-in-out infinite; }
.avis-deco-coeur { top:58%; left:-4%; color:var(--avis-cyan); animation:avisFloatDoux 7s ease-in-out infinite reverse; }
.avis-deco-dent { bottom:9%; left:9%; color:var(--avis-vert); animation:avisFloatDoux 8s ease-in-out infinite; }
.avis-deco-check { top:12%; right:1%; color:var(--avis-bleu); animation:avisFloatDoux 6.5s ease-in-out infinite reverse; }
.avis-deco-etoile svg, .avis-deco-coeur svg, .avis-deco-dent svg, .avis-deco-check svg { width:24px; height:24px; }
.avis-deco-chip {
    bottom:6%; right:-2%; border-radius:var(--radius-btn); padding:9px 16px 9px 10px;
    font-size:.78rem; font-weight:800; color:var(--c-bleu-nuit);
    animation:avisFloatDoux 7.5s ease-in-out infinite;
}
.avis-deco-chip svg { width:18px; height:18px; }
@keyframes avisFloatDoux { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-12px); } }

@media(prefers-reduced-motion:reduce){
    .avis-phone-messages { animation:none; }
    .avis-phone-messages-viewport { overflow-y:auto; }
    .avis-msg { animation-duration:.01ms; }
    .avis-phone, .avis-glow, .avis-dent-fond, .avis-deco { animation:none !important; }
}

@media(max-width:1080px){
    .avis-grille { grid-template-columns:1fr; gap:64px; }
    .avis-phone-scene { min-height:600px; }
    .avis-deco-coeur, .avis-deco-check { display:none; }
}
@media(max-width:560px){
    .avis-phone { width:240px; height:500px; border-radius:44px; transform:perspective(1200px) rotateY(-6deg) rotateX(2deg); }
    .avis-phone-ecran { border-radius:32px; }
    .avis-phone-encoche { width:76px; height:22px; top:18px; }
    .avis-phone-entete { padding:46px 14px 10px; }
    .avis-deco-etoile, .avis-deco-dent { width:42px; height:42px; }
    .avis-deco-etoile svg, .avis-deco-dent svg { width:20px; height:20px; }
    .avis-deco-chip { padding:7px 12px 7px 8px; font-size:.7rem; }
    .avis-marketing-texte { max-width:none; }
    .avis-stats { gap:22px; }
}

/* ============================================================
   FAQ
   ============================================================ */
.faq-section { background:var(--c-bleu-pale); position:relative; overflow:hidden; }
.faq-section::before {
    content:''; position:absolute; top:-15%; right:-12%; width:50%; height:75%;
    background:radial-gradient(ellipse, rgba(125,194,66,.12) 0%, transparent 70%);
    pointer-events:none; animation:deriveFond1 18s ease-in-out infinite;
}
.faq-section::after {
    content:''; position:absolute; bottom:-15%; left:-12%; width:40%; height:60%;
    background:radial-gradient(ellipse, rgba(41,171,226,.10) 0%, transparent 70%);
    pointer-events:none; animation:deriveFond2 22s ease-in-out infinite;
}
.faq-liste { max-width:780px; margin:0 auto; position:relative; z-index:1; display:flex; flex-direction:column; gap:14px; }
.faq-item {
    background:var(--c-blanc); border-radius:var(--radius-lg);
    overflow:hidden; position:relative;
    box-shadow:var(--ombre-sm); border:1.5px solid var(--c-bordure);
    transition:box-shadow .3s ease, border-color .3s ease, transform .3s ease;
}
.faq-item::before {
    content:''; position:absolute; top:0; left:0; bottom:0; width:4px;
    background:var(--g-logo); transform:scaleY(0); transform-origin:top;
    transition:transform .4s cubic-bezier(.25,.1,.25,1);
}
.faq-item:hover { transform:translateY(-3px); box-shadow:var(--ombre-md); border-color:var(--c-bleu); }
.faq-item.ouvert { border-color:var(--c-vert); box-shadow:var(--ombre-lg); }
.faq-item.ouvert::before { transform:scaleY(1); }

.faq-question {
    width:100%; display:flex; align-items:center; gap:16px;
    justify-content:space-between; padding:22px 26px;
    text-align:left; cursor:pointer; background:none; border:none;
    font-family:var(--f-corps); font-size:1.02rem; font-weight:700;
    color:var(--c-bleu-nuit); transition:color .25s ease;
}
.faq-question-contenu { display:flex; align-items:center; gap:16px; min-width:0; }
.faq-question-contenu span:last-child { min-width:0; }
.faq-numero {
    flex-shrink:0; font-family:var(--f-display); font-size:.92rem; font-weight:700;
    color:var(--c-bleu); background:var(--c-bleu-clair);
    width:36px; height:36px; border-radius:11px;
    display:flex; align-items:center; justify-content:center;
    transition:background .35s ease, color .35s ease, transform .35s ease;
}
.faq-item.ouvert .faq-numero { background:var(--g-logo); color:#fff; transform:scale(1.06); }
.faq-item.ouvert .faq-question { color:var(--c-vert-fonce); }

.faq-question .icone-plus {
    flex-shrink:0; width:32px; height:32px;
    border-radius:50%; display:flex; align-items:center; justify-content:center;
    background:var(--c-bleu-clair); color:var(--c-bleu);
    transition:transform .4s cubic-bezier(.25,.1,.25,1), background .3s ease, color .3s ease;
}
.faq-item.ouvert .faq-question .icone-plus {
    transform:rotate(135deg); background:var(--c-vert); color:#fff;
}
.faq-question .icone-plus svg { width:14px; height:14px; }

.faq-reponse { max-height:0; overflow:hidden; transition:max-height .45s cubic-bezier(.25,.1,.25,1); }
.faq-reponse-inner { padding:0 26px 24px 78px; }
.faq-reponse p {
    font-size:.93rem; color:var(--c-texte-doux); max-width:600px; line-height:1.7;
    opacity:0; transform:translateY(-6px); transition:opacity .35s ease, transform .35s ease;
}
.faq-item.ouvert .faq-reponse p { opacity:1; transform:translateY(0); transition-delay:.1s; }

@media(max-width:600px){
    .faq-question { padding:18px 18px; gap:12px; }
    .faq-numero { width:30px; height:30px; font-size:.82rem; }
    .faq-reponse-inner { padding:0 18px 20px 60px; }
}
