/* Les guides de Jobbya — la feuille commune de public/guides/.

   Un guide est une page HTML STATIQUE, servie telle quelle par les assets
   de Cloudflare : public/guides/<slug>.html répond à /guides/<slug>, et
   public/guides/index.html à /guides/ (html_handling par défaut). Ni React,
   ni écran de langue, ni JavaScript — sauf une calculette locale quand un
   guide en a vraiment besoin (script en ligne, rien n'est envoyé).

   Le modèle à recopier : paiement-en-4-fois-20-novembre-2026.html.
   Ses blocs, dans l'ordre (classes de cette feuille) :

     .aller-au-contenu    lien d'évitement, premier élément du <body>
     .entete              la marque (icône /marque/icone.svg + le mot en SVG
                          inline, qui prend --marque-mot) → lien vers /
     .page                la colonne de lecture (42 rem, marge de 16 px)
     .ariane              fil d'Ariane : « Guides » (/guides/) › page
     h1 + .date           le titre (la requête visée) et la date en <time>
     .chapeau             la réponse, dans les deux premières lignes
     .en-bref             encadré « En bref », TROIS points, en tête
     .note                encadré neutre ; .note--juridique pour
                          « Ceci n'est pas un conseil juridique »
     h2 / h3              les intertitres (h2 porte un id pour les ancres)
     .ref                 renvoi vers une source : <a class="ref"
                          href="#source-3">[3]</a> collé au chiffre ; deux
                          renvois ou plus dans <span class="refs">
     .exemple             tout exemple chiffré, avec .exemple__etiquette
                          « Exemple » (jamais un exemple sans son étiquette)
     .tableau             enveloppe d'un <table> : défile seul au téléphone,
                          la page, elle, ne défile jamais à l'horizontale
     .aide                « Où se faire aider » (dès que le sujet touche aux
                          dettes : Banque de France, Points conseil budget,
                          Crésus)
     .sortie              LA seule sortie vers le produit :
                          a.bouton « Essayer le faux achat » →
                          https://jobbya.com/?source=guide-<slug>
     .signature           « Page écrite le <date>, sources ci-dessous. »
     .sources             les sources, <ol> numérotée, un id="source-N" par li
     .pied                mentions légales, confidentialité

   Sur l'index (index.html) : .liste-guides, une carte par guide.

   Les couleurs suivent le SYSTÈME (prefers-color-scheme) : une page de
   lecture n'a pas de bouton de thème, et elle n'a pas de script pour lire
   celui choisi dans l'app. Le sombre est le défaut, comme sur le site.
   Les jetons reprennent ceux de src/envies.css et de la marque (13/09) :
   noir pur, violet d'accent, le dégradé violet → rose par touches, Inter
   servie depuis /fonts/ (les mêmes fichiers que le site). */

@font-face {
  font-family: Inter;
  src: url('/fonts/inter-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Inter;
  src: url('/fonts/inter-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Inter;
  src: url('/fonts/inter-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ── Jetons ───────────────────────────────────────────────────────────── */

:root {
  color-scheme: dark light;

  --fond: #000000;
  --surface: #0e0e13;
  --surface-appui: #17171f;
  --trait: rgba(255, 255, 255, 0.1);
  --trait-fort: rgba(255, 255, 255, 0.22);
  --texte: #f4f4f6;
  --texte-doux: #a3a3b0;
  --accent: #a78bfa;
  --accent-fort: #c4b5fd;
  --accent-voile: rgba(167, 139, 250, 0.13);
  --degrade-marque: linear-gradient(120deg, #a855f7, #ec4899);
  --marque-mot: #f5effc;
  --bouton-fond: #f4f4f6;
  --bouton-texte: #000000;

  --rayon: 16px;
  --rayon-grand: 20px;
  --mesure: 42rem;
  --gouttiere: 16px;
}

@media (prefers-color-scheme: light) {
  :root {
    --fond: #f5f5f7;
    --surface: #ffffff;
    --surface-appui: #ececf2;
    --trait: rgba(17, 17, 24, 0.1);
    --trait-fort: rgba(17, 17, 24, 0.24);
    --texte: #121217;
    --texte-doux: #5c5c6a;
    --accent: #6d28d9;
    --accent-fort: #5b21b6;
    --accent-voile: rgba(124, 58, 237, 0.09);
    --degrade-marque: linear-gradient(120deg, #9333ea, #db2777);
    --marque-mot: #1d0f30;
    --bouton-fond: #121217;
    --bouton-texte: #ffffff;
  }
}

/* ── Base ─────────────────────────────────────────────────────────────── */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--fond);
  color: var(--texte);
  font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  font-size: 1.0625rem;
  line-height: 1.65;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}

img,
svg {
  display: block;
  max-width: 100%;
}

a {
  color: var(--accent);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

a:hover {
  color: var(--accent-fort);
}

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 4px;
}

strong {
  font-weight: 600;
}

.visuellement-cache {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.aller-au-contenu {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 10;
  padding: 10px 16px;
  border-radius: 999px;
  background: var(--bouton-fond);
  color: var(--bouton-texte);
  font-weight: 600;
  text-decoration: none;
  transform: translateY(-200%);
}

.aller-au-contenu:focus {
  transform: none;
}

/* ── La colonne ───────────────────────────────────────────────────────── */

.page {
  width: 100%;
  max-width: calc(var(--mesure) + 2 * var(--gouttiere));
  margin: 0 auto;
  padding: 0 var(--gouttiere);
}

@media (min-width: 700px) {
  :root {
    --gouttiere: 24px;
  }

  body {
    font-size: 1.125rem;
  }
}

/* ── L'en-tête : la marque, et rien d'autre ───────────────────────────── */

.entete {
  display: flex;
  align-items: center;
  min-height: 72px;
}

/* Le lockup du site : l'icône fait --marque-h, le mot 0,88 de sa hauteur,
   l'écart 0,2 (proportions de .marque__lockup dans envies.css). */
.marque {
  --marque-h: 28px;
  display: inline-flex;
  align-items: center;
  gap: calc(var(--marque-h) * 0.2);
  min-height: 44px;
  color: var(--marque-mot);
  text-decoration: none;
}

.marque:hover {
  color: var(--marque-mot);
  opacity: 0.85;
}

.marque__icone {
  width: auto;
  height: var(--marque-h);
}

.marque__mot {
  width: auto;
  height: calc(var(--marque-h) * 0.88);
  overflow: visible;
}

/* ── Fil d'Ariane ─────────────────────────────────────────────────────── */

.ariane {
  margin: 8px 0 0;
  font-size: 0.875rem;
  color: var(--texte-doux);
}

.ariane ol {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ariane li + li {
  margin-top: 0;
}

.ariane li + li::before {
  content: '›';
  margin-right: 8px;
  color: var(--texte-doux);
}

.ariane a {
  color: var(--texte-doux);
}

.ariane a:hover {
  color: var(--texte);
}

.ariane [aria-current='page'] {
  color: var(--texte);
}

/* ── Titre, date, chapeau ─────────────────────────────────────────────── */

h1 {
  margin: 20px 0 12px;
  font-size: clamp(2rem, 1.35rem + 2.8vw, 3rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-wrap: balance;
}

.date {
  margin: 0 0 20px;
  font-size: 0.875rem;
  color: var(--texte-doux);
}

/* Le point de marque devant la date : la seule touche du dégradé en tête. */
.date::before {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 8px;
  border-radius: 50%;
  background: var(--degrade-marque);
  vertical-align: 0.05em;
}

.chapeau {
  margin: 0 0 28px;
  font-size: 1.15em;
  line-height: 1.5;
  text-wrap: pretty;
}

/* ── Intertitres et texte ─────────────────────────────────────────────── */

h2 {
  margin: 2.4em 0 0.6em;
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.015em;
  text-wrap: balance;
  scroll-margin-top: 16px;
}

h3 {
  margin: 1.8em 0 0.4em;
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.3;
  scroll-margin-top: 16px;
}

p,
ul,
ol {
  margin: 0 0 1em;
}

ul,
ol {
  padding-left: 1.3em;
}

li + li {
  margin-top: 0.4em;
}

li::marker {
  color: var(--texte-doux);
}

/* Le renvoi vers une source, collé au mot qui le précède : en ligne (un
   inline-block ouvrirait une coupure de ligne avant lui). Plusieurs renvois
   de suite vont dans <span class="refs">, qui ne se coupe pas. */
.ref {
  padding: 0 1px;
  font-size: 0.72em;
  line-height: 1;
  vertical-align: super;
  text-decoration: none;
  font-variant-numeric: tabular-nums;
}

.refs {
  white-space: nowrap;
}

/* Après « ) », « . » ou « » », le navigateur peut couper AVANT le « [ » :
   le renvoi partait seul en début de ligne (vu à 402 px, « …France) » puis
   « [10] : »). Un gluon (U+2060, WORD JOINER, sans largeur ni voix) interdit
   cette coupure. Dans .refs, le premier renvoi en porte un aussi : sans
   effet, le groupe ne se coupe déjà pas. */
.ref::before,
.refs::before {
  content: '\2060';
}

/* ── En bref ──────────────────────────────────────────────────────────── */

.en-bref {
  margin: 0 0 24px;
  padding: 20px 20px 8px;
  border: 1px solid var(--trait);
  border-radius: var(--rayon-grand);
  background: var(--surface);
}

.en-bref h2 {
  margin: 0 0 12px;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--texte-doux);
}

.en-bref ol {
  padding-left: 0;
  list-style: none;
  counter-reset: bref;
}

.en-bref li {
  position: relative;
  padding-left: 36px;
  counter-increment: bref;
}

.en-bref li + li {
  margin-top: 12px;
}

.en-bref li::before {
  content: counter(bref);
  position: absolute;
  top: 0.15em;
  left: 0;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--accent-voile);
  color: var(--accent);
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1;
}

/* ── Encadrés ─────────────────────────────────────────────────────────── */

.note {
  margin: 24px 0;
  padding: 14px 18px;
  border-left: 3px solid var(--accent);
  border-radius: 0 12px 12px 0;
  background: var(--accent-voile);
}

.note > :last-child {
  margin-bottom: 0;
}

.note--juridique {
  border-left-color: var(--trait-fort);
  background: var(--surface);
  font-size: 0.95em;
  color: var(--texte-doux);
}

.note--juridique strong {
  color: var(--texte);
}

.exemple {
  margin: 24px 0;
  padding: clamp(14px, 4vw, 20px);
  border: 1px dashed var(--trait-fort);
  border-radius: var(--rayon-grand);
}

.exemple > :last-child {
  margin-bottom: 0;
}

.exemple__etiquette {
  display: inline-block;
  margin: 0 0 12px;
  padding: 2px 10px;
  border-radius: 999px;
  background: var(--surface-appui);
  color: var(--texte-doux);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* ── Tableaux ─────────────────────────────────────────────────────────── */

.tableau {
  max-width: 100%;
  margin: 0 0 16px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.tableau table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  font-variant-numeric: tabular-nums;
}

.tableau caption {
  margin-bottom: 8px;
  font-size: 0.85rem;
  color: var(--texte-doux);
  text-align: left;
}

.tableau th,
.tableau td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--trait);
  text-align: right;
  white-space: nowrap;
}

.tableau th:first-child,
.tableau td:first-child {
  padding-left: 0;
  text-align: left;
}

.tableau th:last-child,
.tableau td:last-child {
  padding-right: 0;
}

.tableau thead th {
  font-weight: 600;
  color: var(--texte-doux);
  vertical-align: bottom;
}

.tableau .total {
  font-weight: 700;
}

/* Au téléphone, un tableau de cinq colonnes doit tenir sans défiler :
   les en-têtes passent à la ligne, les cellules se resserrent. Le défilement
   de .tableau ne reste qu'un filet pour les tableaux plus larges. */
@media (max-width: 479px) {
  .tableau table {
    font-size: 0.8125rem;
  }

  .tableau th,
  .tableau td {
    padding: 7px 5px;
  }

  .tableau thead th {
    white-space: normal;
  }
}

.tableau .vide {
  color: var(--texte-doux);
}

/* ── Où se faire aider ────────────────────────────────────────────────── */

.aide {
  margin: 28px 0;
  padding: 20px;
  border: 1px solid var(--trait);
  border-radius: var(--rayon-grand);
  background: var(--surface);
}

.aide h2 {
  margin: 0 0 12px;
  font-size: 1.15rem;
}

.aide ul {
  margin: 0;
  padding-left: 1.1em;
}

/* ── La sortie : une seule, sans pression ─────────────────────────────── */

.sortie {
  margin: 48px 0 32px;
  padding: 24px 20px;
  border: 1px solid var(--trait);
  border-radius: var(--rayon-grand);
  background: var(--surface);
  position: relative;
  overflow: hidden;
}

/* Le fil de marque en haut de la carte : la touche de rose de la page. */
.sortie::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 2px;
  background: var(--degrade-marque);
}

.sortie h2 {
  margin: 0 0 8px;
  font-size: 1.3rem;
}

.sortie p {
  color: var(--texte-doux);
}

.bouton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 4px;
  padding: 0 24px;
  border-radius: 999px;
  background: var(--bouton-fond);
  color: var(--bouton-texte);
  font-weight: 600;
  text-decoration: none;
}

.bouton:hover {
  color: var(--bouton-texte);
  filter: brightness(0.92);
}

.sortie__petit {
  margin: 12px 0 0;
  font-size: 0.85rem;
}

/* ── Signature et sources ─────────────────────────────────────────────── */

.signature {
  margin: 32px 0 8px;
  font-size: 0.9rem;
  color: var(--texte-doux);
}

.sources h2 {
  margin-top: 0.6em;
  font-size: 1.15rem;
}

.sources ol {
  padding-left: 1.6em;
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--texte-doux);
  overflow-wrap: anywhere;
}

.sources li {
  padding: 2px 4px;
  border-radius: 6px;
  scroll-margin-top: 16px;
}

.sources li:target {
  background: var(--accent-voile);
  color: var(--texte);
}

/* ── Pied de page ─────────────────────────────────────────────────────── */

.pied {
  margin-top: 48px;
  border-top: 1px solid var(--trait);
  padding: 20px 0 40px;
  font-size: 0.85rem;
  color: var(--texte-doux);
}

.pied ul {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pied li + li {
  margin-top: 0;
}

.pied a {
  display: inline-block;
  padding: 8px 0;
  color: var(--texte-doux);
}

.pied a:hover {
  color: var(--texte);
}

/* ── L'index : une carte par guide ────────────────────────────────────── */

.liste-guides {
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}

.liste-guides li + li {
  margin-top: 12px;
}

.liste-guides a {
  display: block;
  padding: 20px;
  border: 1px solid var(--trait);
  border-radius: var(--rayon-grand);
  background: var(--surface);
  color: var(--texte);
  text-decoration: none;
}

.liste-guides a:hover {
  border-color: var(--accent);
}

.liste-guides h2 {
  margin: 0 0 6px;
  font-size: 1.2rem;
}

.liste-guides p {
  margin: 0;
  color: var(--texte-doux);
  font-size: 0.95rem;
}

.liste-guides time {
  display: block;
  margin-top: 10px;
  font-size: 0.8rem;
  color: var(--texte-doux);
}

/* ── Impression : le texte et ses sources, sans le reste ──────────────── */

@media print {
  :root {
    --fond: #ffffff;
    --texte: #000000;
    --texte-doux: #333333;
    --accent: #000000;
  }

  .aller-au-contenu,
  .sortie,
  .pied {
    display: none;
  }

  .sources a::after {
    content: ' (' attr(href) ')';
  }
}

/* ── Tableau de phrases (ajout du 28/09) ──────────────────────────────────
   Pour comparer des conditions écrites en phrases, pas en chiffres :
   <div class="tableau tableau--texte">. Les cellules passent à la ligne et
   s'alignent à gauche. Au téléphone, chaque ligne devient une carte : les
   en-têtes sont masqués (lus par les lecteurs d'écran) et chaque <td>
   affiche le sien, recopié dans data-etiquette="…". Premier emploi :
   echeance-impayee-paiement-en-4-fois.html. */

.tableau--texte th,
.tableau--texte td {
  white-space: normal;
  text-align: left;
  vertical-align: top;
}

.tableau--texte tbody th {
  font-weight: 600;
}

.tableau--texte .tableau__source {
  display: block;
  margin-top: 4px;
  font-size: 0.8rem;
  color: var(--texte-doux);
}

@media (max-width: 479px) {
  .tableau--texte table,
  .tableau--texte tbody,
  .tableau--texte tr,
  .tableau--texte th,
  .tableau--texte td {
    display: block;
  }

  /* Des phrases, pas des chiffres : la taille de lecture, pas celle des
     tableaux resserrés du téléphone (0,8125 rem plus haut). */
  .tableau--texte table {
    font-size: 0.9375rem;
  }

  .tableau--texte thead {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .tableau--texte tbody tr {
    padding: 12px 0;
    border-bottom: 1px solid var(--trait);
  }

  .tableau--texte tbody th,
  .tableau--texte tbody td {
    padding: 3px 0;
    border-bottom: 0;
  }

  .tableau--texte tbody th {
    font-size: 1rem;
  }

  .tableau--texte td::before {
    content: attr(data-etiquette);
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--texte-doux);
  }
}

/* ── La calculette (ajout du 28/09) ───────────────────────────────────────
   Premier emploi : combien-je-dois-paiement-en-4-fois.html. Un <form
   class="calculette" hidden> que le script en ligne dévoile (sans script,
   un <noscript> dit comment faire à la main). Tout est préfixé calc- pour
   ne rien heurter : une ligne par paiement (fieldset.calc-ligne, cloné
   depuis un <template>), des champs remplis (.calc-champ), une case
   (.calc-case), deux boutons discrets (.calc-bouton plein gris,
   .calc-lien texte) et les résultats en <dl class="calc-resultats">.
   Rien n'est envoyé, rien n'est stocké. */

.calculette {
  --alerte: #fca5a5;
  margin: 24px 0;
  padding: clamp(16px, 4vw, 24px);
  border: 1px solid var(--trait);
  border-radius: var(--rayon-grand);
  background: var(--surface);
}

@media (prefers-color-scheme: light) {
  .calculette {
    --alerte: #b42318;
  }
}

.calculette[hidden] {
  display: none;
}

.calculette__titre {
  margin: 0 0 4px;
  font-size: 1.15rem;
  font-weight: 700;
}

.calculette__intro {
  margin: 0 0 16px;
  font-size: 0.9rem;
  color: var(--texte-doux);
}

.calc-ligne {
  min-width: 0;
  margin: 0;
  padding: 16px 0 0;
  border: 0;
  border-top: 1px solid var(--trait);
}

.calc-ligne + .calc-ligne {
  margin-top: 16px;
}

/* Le titre flotte : un <legend> posé dans la bordure du haut la couperait. */
.calc-ligne__titre {
  float: left;
  width: 100%;
  margin: 0 0 10px;
  padding: 0;
  font-size: 0.95rem;
  font-weight: 600;
}

.calc-ligne__champs {
  clear: both;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

@media (min-width: 560px) {
  .calc-ligne__champs {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
  }
}

.calc-champ {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  font-size: 0.85rem;
  color: var(--texte-doux);
}

.calc-champ__facultatif {
  font-weight: 400;
  opacity: 0.8;
}

.calc-champ__saisie {
  position: relative;
  display: block;
}

.calc-champ input {
  width: 100%;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: var(--surface-appui);
  color: var(--texte);
  font: inherit;
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
}

.calc-champ__saisie input {
  padding-right: 34px;
}

.calc-champ input::placeholder {
  color: var(--texte-doux);
  opacity: 0.6;
}

.calc-champ input:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.calc-champ input:disabled {
  opacity: 0.45;
}

.calc-champ input[aria-invalid='true'] {
  border-color: var(--alerte);
}

.calc-champ__unite {
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  color: var(--texte-doux);
  pointer-events: none;
}

.calc-case {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  margin-top: 4px;
  font-size: 0.9rem;
  color: var(--texte-doux);
  cursor: pointer;
}

.calc-case input {
  flex: none;
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--accent);
}

.calc-ligne__pied {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0 16px;
}

.calc-ligne__etat {
  flex: 1 1 14rem;
  margin: 0;
  font-size: 0.875rem;
  color: var(--texte-doux);
}

.calc-ligne__etat:empty {
  display: none;
}

.calc-ligne__etat--erreur {
  color: var(--alerte);
}

.calc-bouton,
.calc-lien {
  min-height: 44px;
  font: inherit;
  cursor: pointer;
}

.calc-bouton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 18px;
  border: 0;
  border-radius: 999px;
  background: var(--surface-appui);
  color: var(--texte);
  font-size: 0.95rem;
  font-weight: 600;
}

.calc-bouton:hover {
  box-shadow: inset 0 0 0 1px var(--trait-fort);
}

.calc-bouton:disabled {
  opacity: 0.5;
  cursor: default;
  box-shadow: none;
}

.calc-lien {
  padding: 0 4px;
  border: 0;
  background: none;
  color: var(--accent);
  font-size: 0.9rem;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.calc-lien:hover {
  color: var(--accent-fort);
}

.calculette__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: 20px 0;
}

.calc-resultats {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  margin: 0;
}

@media (min-width: 560px) {
  .calc-resultats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.calc-resultat {
  padding: 14px 16px;
  border: 1px solid var(--trait);
  border-radius: 14px;
  background: var(--fond);
}

.calc-resultat dt {
  font-size: 0.8rem;
  color: var(--texte-doux);
}

.calc-resultat dd {
  margin: 2px 0 0;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
}

.calc-resultats__note {
  margin: 12px 0 0;
  font-size: 0.875rem;
  color: var(--texte-doux);
}

.calc-resultats__note:empty {
  display: none;
}

@media print {
  .calculette__actions,
  .calc-ligne__retirer {
    display: none;
  }
}

/* Tableau de phrases au téléphone (ajout du 28/09) : quand le <table>
   passe en bloc, la légende garde son affichage de légende et s'enferme
   dans une colonne étroite. En bloc elle aussi, elle reprend la largeur. */
@media (max-width: 479px) {
  .tableau--texte caption {
    display: block;
  }
}
