/* SIM swapping : la fiche « ligne mobile » (utilisee dans la carte de l'accueil et en tete de la page dediee),
   puis les sections de la page protection-sim-swapping.html. Jetons de la marque uniquement. */

/* ═════════════ La fiche : ligne surveillee, trois signaux, conduite a tenir ═════════════ */
.simcarte {
  position: relative;
  width: 100%;
  max-width: 440px;
  margin: 0 auto;
  padding: 28px 18px 16px;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .9) inset, 0 2px 6px rgba(25, 20, 62, .08), 0 34px 60px -28px rgba(25, 20, 62, .55);
  text-align: left;
}
.simcarte__tete { display: flex; align-items: center; gap: 12px; }
.simcarte__tuile {
  position: relative; flex: 0 0 auto;
  display: grid; place-items: center;
  width: 44px; height: 44px; border-radius: 14px;
  color: #fff;
  background: linear-gradient(150deg, var(--brand-4), var(--brand-5));
  box-shadow: 0 10px 18px -8px rgba(94, 83, 152, .8), inset 0 1px 0 rgba(255, 255, 255, .35);
}
.simcarte__tuile::after {
  content: ""; position: absolute; inset: -5px; border-radius: 18px; pointer-events: none;
  box-shadow: 0 0 0 2px rgba(115, 111, 182, .4);
  animation: simHalo 2.8s ease-out infinite;
}
@keyframes simHalo { 0% { opacity: .9; transform: scale(.92); } 70%, 100% { opacity: 0; transform: scale(1.3); } }
.simcarte__ident { min-width: 0; flex: 1; }
.simcarte__nom { margin: 0; font-size: 15px; font-weight: 600; line-height: 1.25; color: var(--brand-1); }
.simcarte__num { margin: 3px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 9px; font-size: 13px; line-height: 1.3; color: var(--ink-muted-80); font-variant-numeric: tabular-nums; }
.simcarte__actif {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 2px 9px 2px 8px; border-radius: 999px;
  font-size: 11px; font-weight: 700; letter-spacing: .02em;
  color: var(--signal-sur); background: var(--signal-sur-tint);
}
.simcarte__actif i { width: 7px; height: 7px; border-radius: 50%; background: var(--signal-sur); animation: simVeille 1.8s ease-in-out infinite; }
@keyframes simVeille { 0%, 100% { box-shadow: 0 0 0 0 rgba(23, 146, 106, .5); } 60% { box-shadow: 0 0 0 5px rgba(23, 146, 106, 0); } }

.simcarte__etapes { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 8px; }
.simcarte__etapes li {
  display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; column-gap: 12px; align-items: center;
  padding: 11px 13px; border-radius: 15px;
  background: #fff6f8;
  box-shadow: inset 0 0 0 1px rgba(210, 38, 79, .14);
}
.simcarte__etapes li:first-child { background: linear-gradient(135deg, #fff1f4, #ffe3ea); box-shadow: inset 0 0 0 1.5px rgba(210, 38, 79, .32), 0 12px 20px -14px rgba(210, 38, 79, .65); }
.simcarte__n { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; font-size: 12px; font-weight: 700; color: #fff; background: var(--signal-critique); }
.simcarte__etapes li:not(:first-child) .simcarte__n { background: rgba(210, 38, 79, .75); }
.simcarte__txt { min-width: 0; }
.simcarte__txt b { display: block; font-size: 14px; font-weight: 600; line-height: 1.3; color: var(--brand-1); }
.simcarte__txt small { display: block; margin-top: 2px; font-size: 12px; line-height: 1.35; color: var(--ink-muted-80); }

.simcarte__note {
  display: flex; align-items: flex-start; gap: 10px;
  margin: 14px 0 0; padding: 12px 14px; border-radius: 15px;
  font-size: 13px; line-height: 1.5; color: var(--ink);
  background: var(--action-tint);
  box-shadow: inset 0 0 0 1px var(--action-tint-strong);
}
.simcarte__note svg { flex: 0 0 auto; margin-top: 2px; color: var(--action-focus); }

.simcarte__flottant {
  position: absolute; z-index: 2; top: -15px; right: 18px;
  display: inline-flex; align-items: center; gap: 7px;
  padding: 7px 13px; border-radius: 999px;
  font-size: 12px; font-weight: 700; white-space: nowrap; color: #fff;
  background: linear-gradient(150deg, #3a2e70, #19143e);
  box-shadow: 0 14px 26px -10px rgba(25, 20, 62, .8), 0 0 0 4px rgba(255, 255, 255, .55);
}
.simcarte__flottant svg { color: var(--action-on-dark); }

/* Entree : les trois signaux arrivent l'un apres l'autre, puis la conduite a tenir. */
.js-anim .simcarte__etapes li { opacity: 0; transform: translate3d(0, 10px, 0); }
.js-anim .simcarte__note,
.js-anim .simcarte__flottant { opacity: 0; transform: translate3d(0, 8px, 0) scale(.96); }
.js-anim .simcarte.is-animated .simcarte__etapes li {
  opacity: 1; transform: none;
  transition: opacity 500ms var(--ease-standard) calc(var(--ordre, 0) * 520ms + 350ms), transform 560ms var(--ease-standard) calc(var(--ordre, 0) * 520ms + 350ms);
}
.js-anim .simcarte.is-animated .simcarte__note {
  opacity: 1; transform: none;
  transition: opacity 500ms var(--ease-standard) 2100ms, transform 560ms var(--ease-standard) 2100ms;
}
.js-anim .simcarte.is-animated .simcarte__flottant {
  opacity: 1; transform: none;
  transition: opacity 400ms var(--ease-standard) 1000ms, transform 520ms cubic-bezier(.3, 1.5, .5, 1) 1000ms;
}
@media (prefers-reduced-motion: reduce) {
  .js-anim .simcarte__etapes li, .js-anim .simcarte__note, .js-anim .simcarte__flottant { opacity: 1; transform: none; }
  .simcarte__tuile::after, .simcarte__actif i { animation: none; }
}

/* Dans la carte de l'accueil : un cran plus compacte. */
.card__scene--sim { align-items: center; padding: 34px 26px 26px; background: radial-gradient(70% 70% at 85% 10%, rgba(255, 255, 255, .8) 0%, rgba(255, 255, 255, 0) 65%), linear-gradient(135deg, #e2e1f6 0%, #eee3e2 55%, #fee5ca 100%); }
.card__scene--sim .simcarte { max-width: 400px; padding: 26px 15px 14px; }
.card__scene--sim .simcarte__nom { font-size: 14px; }
.card__scene--sim .simcarte__etapes { margin-top: 13px; gap: 6px; }
.card__scene--sim .simcarte__etapes li { padding: 9px 11px; }
.card__scene--sim .simcarte__txt b { font-size: 13px; }
.card__scene--sim .simcarte__txt small { font-size: 11.5px; }
.card__scene--sim .simcarte__note { margin-top: 11px; padding: 10px 12px; font-size: 12px; }

/* ═════════════ Tete de la page : liste des signaux surveilles ═════════════ */
.sim-puces { list-style: none; margin: 26px 0 0; padding: 0; display: grid; gap: 11px; }
.sim-puces li { position: relative; padding-left: 30px; font-size: 16px; line-height: 1.45; color: rgba(255, 255, 255, .9); }
.sim-puces li::before { content: ""; position: absolute; left: 0; top: .15em; width: 20px; height: 20px; border-radius: 50%; background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25); }
.sim-puces li::after { content: ""; position: absolute; left: 6px; top: calc(.15em + 5.5px); width: 8px; height: 4.5px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); }

/* ═════════════ Comprendre l'arnaque : quatre temps ═════════════ */
.sim-temps { background: var(--canvas); padding: 104px 0 96px; }
.sim-temps__liste {
  position: relative; list-style: none; margin: 56px auto 0; padding: 0;
  width: min(1040px, calc(100% - 48px));
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px;
}
.sim-temps__liste::before {
  content: ""; position: absolute; top: 31px; left: calc(12.5% + 38px); right: calc(12.5% + 38px); height: 2px;
  background: repeating-linear-gradient(90deg, var(--action-tint-strong) 0 8px, transparent 8px 15px);
}
.sim-temps__item { position: relative; padding: 0 8px; text-align: center; }
.sim-temps__rond {
  position: relative; z-index: 1; display: grid; place-items: center;
  width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 50%;
  font-family: var(--font-display); font-size: 22px; font-weight: 600; color: #fff;
  background: linear-gradient(145deg, var(--brand-3), var(--brand-5));
  box-shadow: 0 14px 28px -12px rgba(94, 83, 152, .8), inset 0 1px 0 rgba(255, 255, 255, .3), 0 0 0 7px var(--canvas);
}
.sim-temps__item:last-child .sim-temps__rond { background: linear-gradient(145deg, #e0537a, var(--signal-critique)); box-shadow: 0 14px 28px -12px rgba(210, 38, 79, .7), inset 0 1px 0 rgba(255, 255, 255, .3), 0 0 0 7px var(--canvas); }
.sim-temps__titre { margin: 0 0 8px; font-family: var(--font-display); font-size: 18px; font-weight: 600; line-height: 1.3; color: var(--brand-1); text-wrap: balance; }
.sim-temps__texte { margin: 0 auto; max-width: 17em; font-size: 14.5px; line-height: 1.6; color: var(--ink-muted-80); text-wrap: pretty; }
.sim-temps__pied { width: min(720px, calc(100% - 48px)); margin: 44px auto 0; padding: 16px 22px; border-radius: 18px; text-align: center; font-size: 15px; line-height: 1.55; color: var(--ink); background: var(--action-tint); box-shadow: inset 0 0 0 1px var(--action-tint-strong); }

/* ═════════════ Que faire si une alerte arrive ═════════════ */
.sim-agir { padding: 104px 0 100px; background: radial-gradient(56% 40% at 50% 0%, rgba(115, 111, 182, .14) 0%, rgba(115, 111, 182, 0) 100%), linear-gradient(180deg, var(--canvas-parchment) 0%, var(--surface-pearl) 100%); }
.sim-agir__liste { list-style: none; margin: 52px auto 0; padding: 0; width: min(1040px, calc(100% - 48px)); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.sim-agir__carte { padding: 28px 26px 30px; border-radius: 24px; background: #fff; border: 1px solid var(--hairline-alpha); box-shadow: 0 2px 6px rgba(25, 20, 62, .05), 0 26px 46px -28px rgba(66, 55, 122, .45); }
.sim-agir__num { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; font-size: 14px; font-weight: 700; color: #fff; background: linear-gradient(145deg, var(--brand-4), var(--brand-5)); box-shadow: 0 8px 14px -6px rgba(94, 83, 152, .8); }
.sim-agir__titre { margin: 16px 0 8px; font-family: var(--font-display); font-size: 20px; font-weight: 600; line-height: 1.3; letter-spacing: -.2px; color: var(--brand-1); text-wrap: balance; }
.sim-agir__texte { margin: 0; font-size: 15px; line-height: 1.65; color: var(--ink-muted-80); text-wrap: pretty; }
.sim-agir__note { width: min(720px, calc(100% - 48px)); margin: 34px auto 0; text-align: center; font-size: 14px; line-height: 1.6; color: var(--ink-muted-80); }

/* ═════════════ Bande finale ═════════════ */
.sim-fin { background: var(--surface-pearl); padding: 0 0 var(--space-xxl); }
.sim-fin__carte {
  width: min(1040px, calc(100% - 48px)); margin: 0 auto; padding: 56px 40px;
  border-radius: 32px; text-align: center; color: #fff;
  background: radial-gradient(60% 80% at 88% 0%, rgba(132, 126, 214, .5) 0%, rgba(132, 126, 214, 0) 100%), linear-gradient(160deg, #1d1648 0%, #2b2169 55%, #1a1242 100%);
  box-shadow: 0 30px 60px -34px rgba(29, 22, 72, .7);
}
.sim-fin__titre { margin: 0 auto; max-width: 18em; font-family: var(--font-display); font-size: clamp(26px, 3.4vw, 38px); font-weight: 600; line-height: 1.15; letter-spacing: -.5px; color: #fff; text-wrap: balance; }
.sim-fin__texte { margin: 16px auto 0; max-width: 34em; font-size: 16px; line-height: 1.6; color: rgba(255, 255, 255, .82); }
.sim-fin__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 28px; }
.sim-fin__actions .btn--ghost { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .55); background: transparent; }
.sim-fin__actions .btn--ghost:hover { background: rgba(255, 255, 255, .12); }

@media (max-width: 900px) {
  .sim-temps { padding: 80px 0 72px; }
  .sim-temps__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 20px; margin-top: 44px; }
  .sim-temps__liste::before { display: none; }
  .sim-agir { padding: 80px 0 76px; }
  .sim-agir__liste { grid-template-columns: minmax(0, 1fr); gap: 14px; margin-top: 40px; }
  .sim-fin__carte { padding: 44px 26px; border-radius: 26px; }
}
@media (max-width: 560px) {
  .sim-temps__liste { grid-template-columns: minmax(0, 1fr); }
  .sim-temps__texte { max-width: 22em; }
  .simcarte { padding: 26px 14px 14px; }
  .simcarte__etapes li { padding: 10px 11px; column-gap: 10px; }
  .simcarte__txt b { font-size: 13.5px; }
  .card__scene--sim { padding: 30px 16px 22px; }
  .sim-fin__carte { width: calc(100% - 32px); padding: 38px 20px; }
}

/* ═════════════ « Qu'est-ce que le SIM swapping ? » : definition, puis le signal d'alerte a retenir ═════════════ */
.sim-def { background: var(--canvas); padding: 96px 0 24px; }
.sim-def__carte {
  width: min(1040px, calc(100% - 48px)); margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px; align-items: center;
  padding: 52px 52px; border-radius: 32px;
  background: radial-gradient(60% 80% at 100% 0%, rgba(255, 255, 255, .9) 0%, rgba(255, 255, 255, 0) 65%), linear-gradient(135deg, #e2e1f6 0%, #eee3e2 58%, #fee5ca 100%);
  box-shadow: 0 1px 2px rgba(25, 20, 62, .05), 0 30px 54px -34px rgba(66, 55, 122, .5);
}
.sim-def__titre { margin: 12px 0 18px; font-family: var(--font-display); font-size: clamp(28px, 3.4vw, 40px); font-weight: 600; line-height: 1.12; letter-spacing: -.6px; color: var(--brand-1); text-wrap: balance; }
.sim-def__p { margin: 0 0 14px; font-size: 18px; line-height: 1.7; color: var(--ink-muted-80); text-wrap: pretty; }
.sim-def__p:last-child { margin-bottom: 0; }
.sim-def__p strong { font-weight: 600; color: var(--ink); }
.sim-def__alerte {
  position: relative; margin: 0; padding: 28px 28px 28px; border-radius: 24px;
  display: flex; flex-direction: column; gap: 16px;
  font-size: 19px; line-height: 1.5; color: #fff;
  background: radial-gradient(70% 80% at 90% 0%, rgba(132, 126, 214, .5) 0%, rgba(132, 126, 214, 0) 100%), linear-gradient(160deg, #1d1648 0%, #2b2169 60%, #1a1242 100%);
  box-shadow: 0 26px 46px -26px rgba(29, 22, 72, .75);
}
.sim-def__alerte strong { font-family: var(--font-display); font-weight: 600; letter-spacing: -.2px; color: #fff; }
.sim-def__ico {
  display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; color: #fff;
  background: linear-gradient(150deg, #e0537a, var(--signal-critique));
  box-shadow: 0 10px 18px -8px rgba(210, 38, 79, .75), inset 0 1px 0 rgba(255, 255, 255, .35);
}
.sim-def + .sim-temps { padding-top: 88px; }

@media (max-width: 900px) {
  .sim-def { padding: 72px 0 12px; }
  .sim-def__carte { grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 38px 28px; border-radius: 26px; }
  .sim-def + .sim-temps { padding-top: 72px; }
}
@media (max-width: 560px) {
  .sim-def__carte { width: calc(100% - 32px); padding: 30px 20px; }
  .sim-def__p { font-size: 17px; }
  .sim-def__alerte { padding: 22px 20px; font-size: 17.5px; }
}

/* « Qu'est-ce que le SIM swapping ? » ouvre la page : on le degage de la barre de navigation, et le bandeau sombre suit. */
.sim-def:first-child { padding-top: 136px; padding-bottom: 72px; }
.sim-def:first-child + .scam { margin-top: 0; }
@media (max-width: 900px) { .sim-def:first-child { padding-top: 116px; padding-bottom: 52px; } }

/* ═════════════ Ordre final : definition (clair) > quatre temps (bleu nuit) > bandeau de la ligne (clair) ═════════════ */
/* Quatre temps sur le bleu nuit du site. */
.sim-temps {
  position: relative; isolation: isolate;
  background: radial-gradient(58% 48% at 80% 8%, rgba(115, 111, 182, .38) 0%, rgba(66, 55, 122, .12) 52%, rgba(25, 20, 62, 0) 80%), linear-gradient(180deg, #241c53 0%, var(--surface-deep) 46%, #140f31 100%);
}
.sim-temps .eyebrow { color: var(--on-dark-muted); }
.sim-temps .fonctions__title { color: #fff; }
.sim-temps .fonctions__lede { color: rgba(255, 255, 255, .8); }
.sim-temps__liste::before { background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .28) 0 8px, transparent 8px 15px); }
.sim-temps__rond { color: #2b2169; background: linear-gradient(150deg, #fff 0%, #eeebfb 60%, #d9d4f4 100%); box-shadow: 0 14px 28px -12px rgba(0, 0, 0, .55), 0 0 0 7px rgba(255, 255, 255, .08); }
.sim-temps__item:last-child .sim-temps__rond { color: #fff; background: linear-gradient(145deg, #e0537a, var(--signal-critique)); box-shadow: 0 14px 28px -12px rgba(210, 38, 79, .7), 0 0 0 7px rgba(255, 255, 255, .08); }
.sim-temps__titre { color: #fff; }
.sim-temps__texte { color: rgba(255, 255, 255, .78); }
.sim-temps__pied { color: #fff; background: rgba(255, 255, 255, .08); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16); }
.sim-def:first-child + .sim-temps { padding-top: 96px; }

/* Bandeau de la ligne : fond blanc. */
.scam#sim-swap {
  background: var(--canvas);
  padding-top: 104px;
}
.scam#sim-swap .scam__lueur { display: none; }
.scam#sim-swap .scam__title { color: var(--brand-1); }
.scam#sim-swap .scam__lede { color: var(--ink-muted-80); }
.scam#sim-swap .scam__note { color: var(--ink-muted-80); }
.scam#sim-swap .sim-puces li { color: var(--ink); }
.scam#sim-swap .sim-puces li::before { background: var(--action-tint); box-shadow: inset 0 0 0 1px var(--action-tint-strong); }
.scam#sim-swap .sim-puces li::after { border-color: var(--action-focus); }
.scam#sim-swap .parcours { border-top-color: var(--divider-soft); }
.scam#sim-swap .parcours__num { color: rgba(94, 83, 152, .4); }
.scam#sim-swap .parcours__titre { color: var(--brand-1); }
.scam#sim-swap .parcours__texte { color: var(--ink-muted-80); }
.scam#sim-swap .simcarte { box-shadow: 0 1px 2px rgba(25, 20, 62, .06), 0 34px 60px -28px rgba(66, 55, 122, .5), 0 0 0 1px var(--hairline); }
.scam#sim-swap .scam__scene { position: relative; }
.scam#sim-swap .scam__scene::before {
  content: ""; position: absolute; z-index: -1; inset: -6% -4%; border-radius: 40px;
  background: radial-gradient(70% 70% at 85% 10%, rgba(255, 255, 255, .8) 0%, rgba(255, 255, 255, 0) 65%), linear-gradient(135deg, #e2e1f6 0%, #eee3e2 55%, #fee5ca 100%);
}
@media (max-width: 900px) { .scam#sim-swap { padding-top: 76px; } .sim-def:first-child + .sim-temps { padding-top: 76px; } }

/* Sans la bande « Nous surveillons… », la grille du bandeau n'a plus de seconde rangee : on retire l'ecart qu'elle laissait. */
.scam#sim-swap { grid-template-areas: "mot scene"; row-gap: 0; padding-bottom: 96px; }
@media (max-width: 900px) { .scam#sim-swap { grid-template-areas: "mot" "scene"; row-gap: 40px; padding-bottom: 72px; } }

/* Sans la bande finale, le bandeau blanc touche le pied de page : un peu d'air avant lui. */
.scam#sim-swap { padding-bottom: 104px; }
@media (max-width: 900px) { .scam#sim-swap { padding-bottom: 80px; } }

/* ═════════════ Carte SIM swapping de l'accueil : le telephone dessine (meme famille que la carte dark web) ═════════════
   Histoire racontee par l'animation : le reseau tombe (barres vides, « SOS »), des ondes rouges partent du
   telephone, la veille en direct passe au rouge, l'alerte « Nouvelle eSIM activee » arrive ligne a ligne, puis les
   deux pastilles : alerte envoyee, proche prevenu. La scene herite de --tel-w et de sa chaine responsive. */
.appareil--sim { position: relative; }
.card__scene--sim { background: radial-gradient(70% 70% at 85% 10%, rgba(255, 255, 255, .8) 0%, rgba(255, 255, 255, 0) 65%), linear-gradient(135deg, #e2e1f6 0%, #eee3e2 55%, #fee5ca 100%); }

/* Barre d'etat : « barres + 5G » devient « SOS ». Les deux occupent la meme case : quand le reseau tombe, le groupe
   s'efface en entier et « SOS » prend sa place (comme sur un iPhone), au lieu de laisser des barres grisees collees
   a l'ilot. La case garde la largeur du groupe : rien ne bouge dans la barre pendant la bascule. */
.tel__jauges .jauge--bascule { display: inline-grid; align-items: center; justify-items: end; }
.jauge--bascule > * { grid-area: 1 / 1; transition: opacity 360ms var(--ease-standard), transform 360ms var(--ease-standard); }
.jauge__reseau5g { display: inline-flex; align-items: center; gap: 3px; }
.jauge__sos {
  opacity: 0; transform: scale(.85); transform-origin: right center;
  font-size: 9.4px; font-weight: 800; letter-spacing: .3px; line-height: 1; color: var(--signal-critique);
}

/* Ondes rouges qui partent du telephone */
.sim-ondes { position: absolute; z-index: 0; left: 50%; top: 50%; width: 100%; aspect-ratio: 1; margin: calc(-50% ) 0 0 -50%; pointer-events: none; }
.sim-ondes i { position: absolute; inset: 0; border-radius: 50%; border: 1.5px solid rgba(210, 38, 79, .42); opacity: 0; transform: scale(.7); }

/* Alerte : petits reglages propres a cette scene */
.alerte--sim .alerte__marque { flex: 0 0 auto; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 8px; background: var(--brand-gradient-diag); box-shadow: 0 6px 10px -5px rgba(94, 83, 152, .7); }
.alerte--sim .alerte__marque img { width: 14px; height: 14px; }
.alerte--sim .alerte__entete .chip { padding: 2px 6px; font-size: 8px; }
/* Le nom « SentinelleFin » doit se lire en entier : on gagne la place sur les marges de l'en-tête, pas sur le nom. */
.alerte--sim .alerte__entete { padding-left: 12px; padding-right: 12px; gap: 6px; }
.alerte--sim .alerte__source { gap: 8px; }
.alerte--sim .alerte__source-mot b { overflow: visible; text-overflow: clip; }
@media (max-width: 380px) {
  .alerte--sim .alerte__entete { padding-left: 10px; padding-right: 10px; }
  .alerte--sim .alerte__source { gap: 6px; }
  .alerte--sim .alerte__marque { width: 22px; height: 22px; border-radius: 7px; }
  .alerte--sim .alerte__marque img { width: 12px; height: 12px; }
  .alerte--sim .alerte__source-mot b { font-size: 10px; }
}
.alerte--sim .alerte__legende { text-transform: none; letter-spacing: 0; font-size: 8.6px; font-weight: 600; color: var(--signal-critique); }
.alerte--sim .alerte__tags { font-size: 8.4px; line-height: 1.45; }

/* Pastilles flottantes autour du telephone */
.sim-puce {
  position: absolute; z-index: 4;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 11px; border-radius: 999px;
  font-size: 10.5px; font-weight: 700; line-height: 1; white-space: nowrap;
  box-shadow: 0 14px 26px -10px rgba(25, 20, 62, .7), 0 0 0 3px rgba(255, 255, 255, .6);
}
.sim-puce--alerte { right: -42px; top: 88px; color: #fff; background: linear-gradient(150deg, #3a2e70, #19143e); }
.sim-puce--alerte svg { color: var(--action-on-dark); }
.sim-puce--proche { left: -42px; bottom: 96px; color: var(--brand-1); background: #fff; }
.sim-puce--proche svg { color: var(--signal-sur); }

/* ---- Sequence ---- */
.js-anim .appareil--sim .alerte__entete,
.js-anim .appareil--sim .alerte__titre,
.js-anim .appareil--sim .alerte__legende,
.js-anim .appareil--sim .alerte__tags,
.js-anim .appareil--sim .alerte__actions { opacity: 0; transform: translate3d(0, 8px, 0); }
.js-anim .appareil--sim .sim-puce { opacity: 0; transform: translate3d(0, 10px, 0) scale(.92); }

.js-anim .appareil--sim.is-animated .jauge__reseau5g { opacity: 0; transform: scale(.85); transition-delay: 500ms; }
.js-anim .appareil--sim.is-animated .jauge__sos { opacity: 1; transform: none; transition-delay: 760ms; }

.js-anim .appareil--sim.is-animated :is(.alerte__entete, .alerte__titre, .alerte__legende, .alerte__tags, .alerte__actions) {
  opacity: 1; transform: none;
  transition: opacity 480ms var(--ease-standard), transform 520ms var(--ease-standard);
}
.js-anim .appareil--sim.is-animated .alerte__entete { transition-delay: 1100ms; }
.js-anim .appareil--sim.is-animated .alerte__titre { transition-delay: 1400ms; }
.js-anim .appareil--sim.is-animated .alerte__legende { transition-delay: 1650ms; }
.js-anim .appareil--sim.is-animated .alerte__tags { transition-delay: 1850ms; }
.js-anim .appareil--sim.is-animated .alerte__actions { transition-delay: 2050ms; }

.js-anim .appareil--sim.is-animated .sim-puce--alerte { opacity: 1; transform: none; transition: opacity 400ms var(--ease-standard) 2350ms, transform 520ms cubic-bezier(.3, 1.5, .5, 1) 2350ms; }
.js-anim .appareil--sim.is-animated .sim-puce--proche { opacity: 1; transform: none; transition: opacity 400ms var(--ease-standard) 2750ms, transform 520ms cubic-bezier(.3, 1.5, .5, 1) 2750ms; }

@media (prefers-reduced-motion: no-preference) {
  .appareil--sim.is-animated .sim-ondes i { animation: sim-onde 3.6s ease-out infinite; animation-delay: calc(800ms + var(--i, 0) * 1.2s); }
  .appareil--sim.is-animated .sim-puce--alerte { animation: sim-flotte 4.6s ease-in-out 3.2s infinite alternate; }
  .appareil--sim.is-animated .sim-puce--proche { animation: sim-flotte 5.2s ease-in-out 3.6s infinite alternate-reverse; }
}
/* Petits ecrans : un ilot un peu plus etroit laisse un vrai espace entre lui et les jauges (4 px mesures a 390). */
@media (max-width: 640px) { .appareil--sim .tel { --ilot-w: 50px; } }
@media (max-width: 380px) { .appareil--sim .tel { --ilot-w: 44px; } .jauge__sos { font-size: 8.4px; } }
@keyframes sim-onde { 0% { opacity: .75; transform: scale(.7); } 100% { opacity: 0; transform: scale(1.55); } }
@keyframes sim-flotte { to { translate: 0 -5px; } }

@media (prefers-reduced-motion: reduce) {
  .js-anim .appareil--sim :is(.alerte__entete, .alerte__titre, .alerte__legende, .alerte__tags, .alerte__actions, .sim-puce) { opacity: 1; transform: none; }
  .jauge__reseau5g { opacity: 0; }
  .jauge__sos { opacity: 1; transform: none; }
}

@media (max-width: 640px) {
  .sim-puce { font-size: 9.5px; padding: 5px 9px; }
  .sim-puce--alerte { right: -34px; top: 82px; }
  .sim-puce--proche { left: -34px; bottom: 86px; }
}

/* Reglages apres essai : les pastilles ne recouvrent plus l'ecran (haut gauche et bas droite, a cheval sur le cadre). */
.sim-puce--alerte { right: auto; left: -22px; top: -14px; }
.sim-puce--proche { left: auto; right: -22px; bottom: -14px; }
@media (max-width: 640px) {
  .sim-puce--alerte { left: -16px; top: -14px; right: auto; }
  .sim-puce--proche { right: -16px; bottom: -14px; left: auto; }
}
.alerte--sim .alerte__tags { font-weight: 500; color: var(--ink-muted-80); }
