/* Estimation du remboursement mutuelle (accueil) : pastille sous la grille tarifaire et fenêtre.
   Charte du site : encre vert profond, vert feuille, orange, citron, framboise, pêche. */
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- Pastille sous la grille tarifaire et lien de la FAQ ---------- */
.pill-mutuelle{margin-top:18px;display:inline-flex;align-items:center;gap:.6em;padding:.75em 1.25em;border-radius:999px;
  border:2px solid var(--ink);background:color-mix(in srgb,var(--citron) 45%,#fff);color:var(--ink);
  font:600 1rem/1.25 var(--f-body);text-align:left;cursor:pointer;transition:background .2s, transform .2s}
.pill-mutuelle:hover{background:var(--citron);transform:translateY(-2px)}
.pill-mutuelle svg{flex:none;width:1.25em;height:1.25em;color:var(--leaf)}
details p + p:has(.link-mutuelle){margin-top:-10px}
.link-mutuelle{background:none;border:0;padding:0;font:600 1rem/1.4 var(--f-body);color:var(--kaki-deep);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.link-mutuelle:hover{color:var(--ink)}

/* ---------- Fenêtre ---------- */
html:has(dialog.mut[open]){overflow:hidden}
dialog.mut{--px:clamp(16px,4vw,32px);padding:0;border:0;border-radius:26px;background:var(--bg);color:var(--ink);
  width:min(780px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;scroll-padding-top:calc(var(--tete,0px) + var(--seg,0px) + 12px);
  box-shadow:0 40px 90px -30px rgba(29,42,35,.6)}
dialog.mut::backdrop{background:rgba(29,42,35,.6);backdrop-filter:blur(3px)}
.mut-tete{position:sticky;top:0;z-index:3;background:var(--ink);color:var(--bg);display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:clamp(18px,3vw,26px) var(--px)}
.mut-sur{display:block;font:700 1.35rem/1 var(--f-hand);color:var(--citron);margin-bottom:4px}
.mut-tete h2{font-size:clamp(1.25rem,3.4vw,1.85rem);font-weight:800;color:#fff}
.mut-fermer{flex:none;display:inline-flex;align-items:center;gap:.4em;padding:.6em 1em;border-radius:999px;border:2px solid rgba(255,255,255,.45);
  background:transparent;color:#fff;font:600 .95rem/1 var(--f-body);cursor:pointer;transition:background .2s,color .2s}
.mut-fermer:hover{background:#fff;color:var(--ink);border-color:#fff}
.mut-fermer svg{width:1em;height:1em}
.mut-corps{display:grid;gap:22px;padding:20px var(--px) clamp(24px,4vw,36px)}
.mut-attente{color:var(--ink-soft);padding:24px 0}
.mut-reessayer{font:inherit;color:var(--kaki-deep);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}

/* Avertissement et mutuelle absente */
.mut-intro{display:grid;gap:12px}
.mut-avert{display:flex;gap:12px;align-items:flex-start;background:var(--peche);border-radius:16px;padding:14px 16px;font-size:.95rem;line-height:1.5}
.mut-avert svg{flex:none;width:22px;height:22px;color:var(--kaki-deep);margin-top:1px}
.mut-intro-bas{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px}
.mut-date{font-size:.86rem;color:var(--ink-soft)}
.mut-pastille{display:inline-flex;align-items:center;gap:.5em;padding:.5em 1em .5em .55em;border-radius:999px;border:1.5px solid var(--betterave);
  background:var(--surface);color:var(--betterave);font:600 .9rem/1.2 var(--f-body);cursor:pointer;text-align:left;transition:background .2s,color .2s}
.mut-pastille::before{content:"?";display:grid;place-items:center;width:1.5em;height:1.5em;border-radius:50%;background:var(--betterave);color:#fff;font-size:.82em;flex:none}
.mut-pastille:hover,.mut-pastille[aria-expanded="true"]{background:var(--betterave);color:#fff}
.mut-pastille:hover::before,.mut-pastille[aria-expanded="true"]::before{background:#fff;color:var(--betterave)}
.mut-absente{background:var(--surface);border:2px solid var(--betterave);border-radius:20px;padding:20px;display:grid;gap:10px}
.mut-absente:focus{outline:none}
.mut-absente h3{font-size:1.2rem;color:var(--betterave)}
.mut-absente > p{color:var(--ink-soft)}

/* Choix de la consultation : segments, collants sous l'en-tête */
.mut-types{position:sticky;top:var(--tete,0px);z-index:2;border:0;margin:0 calc(-1 * var(--px));padding:10px var(--px);background:var(--bg);
  box-shadow:0 10px 14px -14px rgba(29,42,35,.4)}
.mut-types legend{float:left;width:100%;font:600 .78rem/1 var(--f-body);text-transform:uppercase;letter-spacing:.12em;color:var(--leaf);margin-bottom:8px;padding:0}
.mut-seg{clear:both;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;background:var(--surface);border:1.5px solid var(--line);border-radius:18px;padding:4px}
.mut-seg-choix{position:relative;display:grid;justify-items:center;gap:2px;padding:10px 6px;border-radius:14px;cursor:pointer;text-align:center;transition:background .2s,color .2s}
.mut-seg-choix input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.mut-seg-nom{font-size:.85rem;font-weight:600;color:var(--ink-soft);line-height:1.15}
.mut-seg-prix{font:800 1.25rem/1.1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.mut-seg-choix:hover{background:var(--bg)}
.mut-seg-choix:has(input:checked){background:var(--ink);color:#fff}
.mut-seg-choix:has(input:checked) .mut-seg-nom{color:var(--citron)}
.mut-seg-choix:has(input:focus-visible){outline:3px solid var(--kaki);outline-offset:2px}

/* Étapes */
.mut-etape{display:grid;gap:12px;padding-block:0} /* annule le grand espacement des sections de l'accueil */
.mut-etape[hidden]{display:none}
.mut-etape-titre{display:flex;align-items:center;gap:10px;font-size:1.2rem}
.mut-num{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--citron);font:800 1rem/1 var(--f-display);flex:none}
.mut-champ{display:grid;gap:6px}
.mut-champ label{font-weight:600;font-size:.95rem}
.mut-q{position:relative}
.mut-q svg{position:absolute;left:16px;top:50%;width:20px;height:20px;transform:translateY(-50%);color:var(--ink-soft);pointer-events:none}
.mut-q input{font:500 1.05rem/1.3 var(--f-body);color:var(--ink);background:var(--surface);border:2px solid var(--line);border-radius:999px;padding:.85em 1em .85em 2.9em;width:100%;transition:border-color .2s}
.mut-q input:focus{border-color:var(--leaf);outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--sauge) 45%,transparent)}
.mut-nb{font-size:.86rem;color:var(--ink-soft);margin-top:-4px}
.mut-orgs{display:flex;flex-wrap:wrap;gap:8px}
.mut-org{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:.55em 1em;font:500 .95rem/1.2 var(--f-body);cursor:pointer;transition:background .15s,border-color .15s,transform .15s}
.mut-org:hover{border-color:var(--ink);background:color-mix(in srgb,var(--citron) 35%,#fff);transform:translateY(-1px)}
.mut-vide{display:grid;gap:10px;justify-items:start;color:var(--ink-soft);background:var(--surface);border-radius:16px;padding:16px}
.mut-choisie{display:flex;align-items:center;gap:12px;background:var(--surface);border:2px solid var(--leaf);border-radius:999px;padding:8px 8px 8px 10px}
.mut-choisie strong{font:700 1.1rem/1.2 var(--f-display);flex:1}
.mut-pastille-ok{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--leaf);color:#fff;flex:none}
.mut-pastille-ok svg{width:16px;height:16px}
.mut-changer{border:0;background:var(--bg);color:var(--ink);border-radius:999px;padding:.55em 1em;font:600 .9rem/1 var(--f-body);cursor:pointer}
.mut-changer:hover{background:var(--ink);color:#fff}

/* Formules : tuiles */
.mut-fs{border:0;margin:0;padding:0;display:grid;gap:14px}
.mut-contrat{display:grid;gap:8px}
.mut-contrat-nom{font-size:.88rem;font-weight:600;color:var(--ink-soft)}
.mut-contrat-nom em{font-style:normal;font-size:.8rem;font-weight:600;color:var(--ink);background:var(--citron);border-radius:999px;padding:.15em .6em;margin-left:4px;white-space:nowrap}
.mut-tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,165px),1fr));gap:8px}
.mut-tuiles-seul{display:flex}
.mut-etape{scroll-margin-top:calc(var(--tete,0px) + var(--seg,0px) + 12px)}
.mut-tuile{position:relative;display:flex;align-items:center;gap:10px;background:var(--surface);border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;cursor:pointer;font-weight:500;line-height:1.25;transition:border-color .15s,background .15s}
.mut-tuile input{position:absolute;opacity:0;margin:0;width:1px;height:1px}
.mut-tuile::before{content:"";flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--ink-soft);background:var(--surface);transition:box-shadow .15s,border-color .15s}
.mut-tuile:hover{border-color:var(--ink)}
.mut-tuile:has(input:checked){border-color:var(--leaf);background:color-mix(in srgb,var(--sauge) 25%,#fff);font-weight:600}
.mut-tuile:has(input:checked)::before{border-color:var(--leaf);background:var(--leaf);box-shadow:inset 0 0 0 3px #fff}
.mut-tuile:has(input:focus-visible){outline:3px solid var(--kaki);outline-offset:2px}
.mut-tuile-inconnue{border-style:dashed;border-color:var(--betterave);color:var(--betterave)}
.mut-tuile-inconnue::before{border-color:var(--betterave)}
.mut-tuile-inconnue:has(input:checked){background:color-mix(in srgb,var(--betterave) 10%,#fff);border-color:var(--betterave)}
.mut-tuile-inconnue:has(input:checked)::before{background:var(--betterave);border-color:var(--betterave)}

/* ---------- Résultat : le « ticket » ---------- */
.mut-resultat{scroll-margin-top:calc(var(--tete,0px) + var(--seg,0px) + 12px)}
.mut-resultat:empty{display:none}
.mut-carte{--pad:clamp(18px,3.5vw,28px);background:var(--surface);border-radius:24px;overflow:hidden;box-shadow:0 18px 40px -26px rgba(29,42,35,.45);animation:mut-arrivee .35s ease}
@keyframes mut-arrivee{from{opacity:0;transform:translateY(10px)}}
.mut-carte-tete{background:var(--leaf);color:#fff;padding:20px var(--pad);display:grid;gap:6px}
.mut-carte-zero .mut-carte-tete{background:var(--ink-soft)}
.mut-org-nom{font:600 .78rem/1 var(--f-body);text-transform:uppercase;letter-spacing:.14em;color:var(--citron)}
.mut-carte-tete h3{font-size:clamp(1.2rem,3vw,1.45rem);color:#fff}
.mut-tags{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.mut-tags li{font-size:.8rem;font-weight:600;padding:.3em .75em;border-radius:999px;background:rgba(255,255,255,.16);color:#fff}
.mut-tags li.fort{background:var(--citron);color:var(--ink)}
.mut-carte-corps{padding:20px var(--pad) var(--pad);display:grid;gap:16px}
.mut-chiffres{display:grid;gap:14px}
.mut-ligne{display:grid;gap:8px}
.mut-ligne + .mut-ligne{border-top:1px solid var(--line);padding-top:14px}
.mut-type{display:flex;justify-content:space-between;gap:12px;font-weight:600;font-size:.9rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}
.mut-gros{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.mut-gros span{font:800 clamp(2.6rem,8vw,3.4rem)/1 var(--f-display);color:var(--leaf);letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.mut-gros em{font:700 1rem/1 var(--f-body);font-style:normal;background:var(--citron);color:var(--ink);border-radius:999px;padding:.45em .8em}
.mut-gros-zero span{color:var(--kaki-deep)}
.mut-gros-zero em{background:var(--peche)}
.mut-montant{font-size:1rem;line-height:1.5}
.mut-montant strong{font-weight:700}
.mut-barre{height:14px;border-radius:999px;background:repeating-linear-gradient(-45deg,var(--peche) 0 6px,color-mix(in srgb,var(--peche) 60%,#fff) 6px 12px);overflow:hidden}
.mut-barre span{display:block;height:100%;background:var(--leaf);border-radius:999px;transform-origin:left;animation:mut-barre .6s ease}
@keyframes mut-barre{from{transform:scaleX(0)}}
.mut-reste{font-weight:600}
.mut-zero{background:var(--bg);border-radius:14px;padding:14px 16px}
.mut-notes{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:.94rem;line-height:1.45;color:var(--ink-soft)}
.mut-notes li{position:relative;padding-left:22px}
.mut-notes li::before{content:"";position:absolute;left:4px;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--sauge)}
.mut-notes li.fort{background:color-mix(in srgb,var(--citron) 40%,#fff);border-radius:12px;padding:10px 12px 10px 34px;color:var(--ink)}
.mut-notes li.fort::before{left:14px;top:1.05em;background:var(--kaki-deep)}
.mut-notes strong{color:var(--ink)}
.mut-petit{font-size:.86rem;color:var(--ink-soft)}
.mut-sous-titre{font:600 .78rem/1 var(--f-body);text-transform:uppercase;letter-spacing:.12em;color:var(--leaf)}
.mut-garantie{margin:-6px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr));gap:8px}
.mut-garantie div{background:var(--bg);border-radius:12px;padding:10px 12px}
.mut-garantie dt{font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}
.mut-garantie dd{margin:3px 0 0;font-weight:600;line-height:1.35}

/* Perforation du ticket */
.mut-perfo{position:relative;height:0;border-top:2px dashed var(--line);margin:4px calc(-1 * var(--pad))}
.mut-perfo::before,.mut-perfo::after{content:"";position:absolute;top:-12px;width:22px;height:22px;border-radius:50%;background:var(--bg)}
.mut-perfo::before{left:-11px}
.mut-perfo::after{right:-11px}

/* Blocs repliables dans la carte */
.mut-replie{background:var(--bg);border:0;border-radius:14px}
.mut-replie[open]{border:0}
.mut-replie summary{font:600 .98rem/1.3 var(--f-body);padding:13px 16px}
.mut-replie summary small{font-weight:500;font-size:.8rem;color:var(--ink-soft);margin-left:auto}
.mut-replie summary::after{font-size:1.5rem}
.mut-replie-corps{padding:0 16px 16px;display:grid;gap:8px}
.mut-replie-corps p,.mut-solde-champs p{padding:0;font-size:.92rem;color:var(--ink-soft)}
.mut-solde-champs{display:grid;gap:6px;padding:0 16px 16px}
.mut-solde-champs label{font-weight:600;font-size:.92rem;margin-top:6px}
.mut-solde-champs input{font:500 1rem/1.3 var(--f-body);color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:.7em .9em;width:100%}
.mut-solde-champs input:focus{border-color:var(--leaf)}

/* Sources */
.mut-sources{display:grid;gap:10px}
.mut-sources p{display:grid;gap:3px;justify-items:start}
.mut-source{display:inline-flex;align-items:center;gap:.45em;font-weight:600;color:var(--kaki-deep);text-decoration:underline;text-underline-offset:3px}
.mut-source:hover{color:var(--ink)}
.mut-source svg{width:1em;height:1em;flex:none}
.mut-source-info{font-size:.84rem;color:var(--ink-soft)}

/* Formule inconnue : liste à toucher */
.mut-liste{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.mut-voir-f{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;text-align:left;background:var(--bg);border:1.5px solid transparent;border-radius:14px;padding:12px 14px;font:inherit;color:var(--ink);cursor:pointer;transition:border-color .15s}
.mut-voir-f:hover{border-color:var(--ink)}
.mut-voir-nom{font-weight:600;display:grid}
.mut-voir-nom small{font-weight:500;font-size:.8rem;color:var(--ink-soft)}
.mut-voir-montant{grid-column:1;font-size:.9rem;color:var(--leaf);font-weight:600}
.mut-voir-fleche{grid-column:2;grid-row:1 / span 2;font-size:1.2rem;color:var(--kaki)}

/* Message à copier */
.mut-mail{display:grid;gap:10px;justify-items:start}
.mut-mail-intro{font-weight:600}
.mut-copier{white-space:normal;line-height:1.2;text-align:left}
.mut-copier:hover{transform:none}
.mut-copie{font-size:.9rem;font-weight:600;color:var(--leaf)}
.mut-copie:empty{display:none}
.mut-mail-voir{width:100%;background:transparent;border:0;border-radius:0}
.mut-mail-voir[open]{border:0}
.mut-mail-voir summary{padding:4px 0;font:600 .92rem/1.3 var(--f-body);color:var(--ink-soft);justify-content:flex-start}
.mut-mail-voir summary::after{font-size:1.3rem}
.mut-mail-aide{padding:4px 0 8px!important;font-size:.88rem;color:var(--ink-soft)}
.mut-mail-texte{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:400 .9rem/1.55 var(--f-body);background:var(--bg);border-radius:12px;padding:14px 16px;max-height:16em;overflow:auto}

/* ---------- Mobile ---------- */
@media (max-width:620px){
  dialog.mut{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;border-radius:0;margin:0}
  .mut-sur{display:none}
  .mut-tete{padding-block:14px}
  .mut-tete h2{font-size:1.12rem;line-height:1.15}
  .mut-fermer{padding:.55em .8em}
  .mut-seg-choix{padding:8px 4px}
  .mut-seg-nom{font-size:.78rem}
  .mut-seg-prix{font-size:1.05rem}
  .pill-mutuelle{width:100%;justify-content:flex-start}
}
@media (prefers-reduced-motion:reduce){
  .pill-mutuelle,.pill-mutuelle:hover,.mut-org:hover{transition:none;transform:none}
  .mut-carte,.mut-barre span{animation:none}
}
