/* ==========================================================================
   MISV — Feuille de tokens & composants (charte 2026)
   Mission Internationale Source de Vie
   Chargée site-wide par MISV_Design_Tokens (handle `misv-tokens`).
   Ordre du fichier : :root (variables) → @font-face/imports (fonts Google
   chargées via <link> dans wp_head, rien à déclarer ici) → keyframes →
   classes de base → classes de composants → media queries responsive →
   bloc prefers-reduced-motion.
   ========================================================================== */

:root{
  --misv-red:#D1202A; --misv-red-hover:#B3161F; --misv-red-dark:#A31318;
  --misv-pink:#FFD9DB; --misv-pink-2:#FFE4E5;
  --misv-gold:#C9A13B; --misv-gold-light:#E8C766;
  /* Règle des Deux Familles : --misv-gold est l'or de remplissage / bordure /
     grand affichage ; --misv-gold-text est la même teinte (H 42,9° vs 43,1°)
     assombrie jusqu'à 4,84:1 sur #FFFFFF et 4,67:1 sur #FCFBF8 — AA pour du
     petit texte. L'or sur fond sombre reste --misv-gold. */
  --misv-gold-text:#8A6E28;
  --misv-green:#2E8B4A; --misv-green-hover:#257A3F; --misv-green-deep:#17402A;
  /* Vert PORTANT DU TEXTE, jamais un aplat. Même logique que --misv-gold-text :
     --misv-green #2E8B4A plafonne à 4,28:1 sur blanc, donc AUCUNE taille de texte
     normal ne peut y satisfaire AA. #257A3F donne 5,34:1 sur blanc. */
  --misv-green-text:#257A3F;
  --misv-green-light:#8FD3A8; --misv-green-pale:#D9F2E2; --misv-green-pale-2:#E4F5EA;
  --misv-ink:#141210; --misv-ink-hover:#2A2622; --misv-ink-deep:#0A0908;
  --misv-title:#1C1916; --misv-paper:#FCFBF8; --misv-ivory:#FAF7F1;
  --misv-line-1:#EEE9DF; --misv-line-2:#EFEAE1; --misv-line-3:#E1D3B3;
  --misv-hover-row:#F7F4EE; --misv-sand:#CDB98A;
  /* `--misv-muted` valait #8A8073, qui ne donnait que 3,75:1 sur --misv-paper,
     3,88:1 sur blanc et 3,53:1 sur --misv-hover-row : un echec AA partout ou la
     charte l'emploie comme texte courant. Le defaut etait consigne depuis la
     ronde 2 et renvoye a la passe accessibilite. #776E63 tient 4,50:1 sur
     --misv-paper, 4,56:1 sur blanc et 4,56:1 sur --misv-hover-row. Les onze
     usages du jeton sont tous du texte sur surface claire, sauf
     `.misv-dot--offline` qui s'en sert comme fond de pastille : un gris
     legerement plus sombre y est sans consequence. */
  --misv-body:#5E564B; --misv-muted:#776E63; --misv-ink-alt:#4A443C;
  --misv-on-dark:#B8AE9E; --misv-on-dark-link:#D8D0C2;
  --misv-media-1:#211D18; --misv-media-2:#2A241C; --misv-media-3:#2A251E; --misv-media-4:#1A1712;
  --misv-live-light:#FF6B72; --misv-placeholder:#B0A695;
  --misv-font:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif;
  --misv-serif:"Cormorant Garamond",Georgia,serif;
  --misv-ease:cubic-bezier(.2,.7,.2,1);
  --misv-gutter:56px; --misv-section-y:96px;
}

/* --- Copie au clic -------------------------------------------------------
   `.misv-copy` marque une valeur qu'on peut copier (numéro, IBAN). Le
   `position:relative` est porté ici parce que le toast est inséré DANS
   l'élément : sans lui il se positionnerait par rapport au premier ancêtre
   positionné, souvent la section entière.
   Contraste vérifié : --misv-ink sur --misv-gold-light = 12,3:1. */
.misv-copy,
button.misv-copy,
[data-misv-copy]{
  position:relative;cursor:pointer;
  border-bottom:1px dashed var(--misv-line-3);
  transition:border-color .3s var(--misv-ease);
}
.misv-copy:hover,
button.misv-copy:hover,
[data-misv-copy]:hover{border-bottom-color:var(--misv-gold-text)}
.misv-copy:focus-visible,
button.misv-copy:focus-visible,
[data-misv-copy]:focus-visible{outline:2px solid var(--misv-gold);outline-offset:3px}

.misv-toast{
  position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);
  z-index:60;white-space:nowrap;pointer-events:none;
  background:var(--misv-gold-light);color:var(--misv-ink);
  font-family:var(--misv-font);font-size:11px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  padding:6px 12px;border-radius:999px;
  animation:misv-fadeup .25s var(--misv-ease) both;
}
@media (prefers-reduced-motion: reduce){
  .misv-toast{animation:none}
}

/* ---------------------------------------------------------------------------
   Neutralisation du reset boutons du thème Hello Elementor.

   `reset.css` du thème pose sur TOUT <button> deux règles :
     [type=button],[type=submit],button{ background-color:transparent;
       border:1px solid #c36; color:#c36; display:inline-block;
       padding:.5rem 1rem; border-radius:3px; ... }
     [type=button],[type=reset],[type=submit],button{ width:auto }

   Mesuré au rendu sur /banc-widgets/ le 2026-09-07 : ces règles l'emportaient
   sur les classes du plugin. La tuile du lecteur radio s'affichait en boîte à
   bordure rose sans son fond vert, et les boutons play en ovales de 15px de
   large au lieu de cercles de 54px — `height` passait, `width` non, puisque
   seule `width` est contestée par le thème.

   Mécanisme : Chrome applique à ces listes groupées la spécificité de leur
   branche la plus forte, `[type="button"]` = (0,1,0), soit autant qu'une
   classe simple. À égalité, l'ordre de source tranche — et les feuilles du
   plugin sont imprimées AVANT celles du thème. Toute règle du plugin en
   (0,1,0) posée sur un <button> perd donc systématiquement.

   Parade, vérifiée au rendu et sans un seul !important : porter les règles de
   composant à (0,1,1) en préfixant par `button` le DERNIER compound du
   sélecteur (c'est lui qui désigne l'élément stylé) — `.a .b` devient
   `.a button.b`. Ce fichier et `misv-broadcast.css` sont transformés ainsi.

   Ce bloc, lui, remet un bouton du plugin à zéro avant que les règles de
   composant ne le rhabillent. Il est volontairement en (0,1,1) : il doit
   battre le thème, et perdre contre les règles de composant qui le suivent.

   TOUTE nouvelle règle habillant un <button> doit être doublée de même.
   --------------------------------------------------------------------------- */
button[class*="misv-"]{
  background:none;border:0;border-radius:0;color:inherit;font:inherit;
  padding:0;text-align:inherit;white-space:normal;transition:none;
  -webkit-appearance:none;appearance:none;
}
@media (max-width:1024px){:root{--misv-gutter:32px;--misv-section-y:72px}}
@media (max-width:767px){:root{--misv-gutter:20px;--misv-section-y:56px}}

@keyframes misv-kb{0%{transform:scale(1)}100%{transform:scale(1.14)}}
@keyframes misv-floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes misv-pulse{0%{box-shadow:0 0 0 0 rgba(209,32,42,.45)}70%{box-shadow:0 0 0 9px rgba(209,32,42,0)}100%{box-shadow:0 0 0 0 rgba(209,32,42,0)}}
@keyframes misv-eq{0%,100%{transform:scaleY(.25)}50%{transform:scaleY(1)}}
@keyframes misv-marq{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes misv-fadeup{0%{opacity:0;transform:translateY(26px)}100%{opacity:1;transform:translateY(0)}}
@keyframes misv-glow{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes misv-ripple{0%{transform:scale(.55);opacity:.9}100%{transform:scale(2.3);opacity:0}}

.misv-btn,
button.misv-btn{display:inline-flex;align-items:center;gap:10px;border:0;border-radius:12px;
  font-family:var(--misv-font);font-size:12px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;padding:15px 26px;cursor:pointer;text-decoration:none;
  box-shadow:none;transition:all .3s var(--misv-ease)}
.misv-btn:hover,
button.misv-btn:hover{transform:translateY(-2px);box-shadow:none}
.misv-btn:active,
button.misv-btn:active{transform:translateY(0)}
.misv-btn:focus-visible,
button.misv-btn:focus-visible{outline:2px solid var(--misv-gold);outline-offset:3px}
.misv-btn--compact,
button.misv-btn--compact{padding:12px 20px}
.misv-btn--header,
button.misv-btn--header{padding:12px 22px;font-size:11.5px}
.misv-btn--header:hover,
button.misv-btn--header:hover{transform:translateY(-1px)}
.misv-btn--red,
button.misv-btn--red{background:var(--misv-red);color:#fff}
.misv-btn--red:hover,
button.misv-btn--red:hover{background:var(--misv-red-hover);color:#fff}
.misv-btn--ink,
button.misv-btn--ink{background:var(--misv-ink);color:#fff}
.misv-btn--ink:hover,
button.misv-btn--ink:hover{background:var(--misv-ink-hover);color:#fff}
.misv-btn--white,
button.misv-btn--white{background:#fff;color:var(--misv-ink)}
.misv-btn--white:hover,
button.misv-btn--white:hover{background:var(--misv-title);color:#fff}
.misv-btn--green,
button.misv-btn--green{background:var(--misv-green);color:#fff}
.misv-btn--green:hover,
button.misv-btn--green:hover{background:var(--misv-green-hover);color:#fff}
.misv-btn--gold,
button.misv-btn--gold{background:var(--misv-gold);color:var(--misv-ink)}
.misv-btn--gold:hover,
button.misv-btn--gold:hover{background:var(--misv-gold-light);color:var(--misv-ink)}
.misv-btn--outline,
button.misv-btn--outline{background:transparent;border:1.5px solid var(--misv-title);color:var(--misv-title)}
.misv-btn--outline:hover,
button.misv-btn--outline:hover{background:var(--misv-title);color:#fff}
.misv-btn--outline-dark,
button.misv-btn--outline-dark{background:transparent;border:1.5px solid rgba(250,247,241,.55);color:var(--misv-ivory)}
.misv-btn--outline-dark:hover,
button.misv-btn--outline-dark:hover{background:var(--misv-ivory);color:var(--misv-ink);border-color:var(--misv-ivory)}

/* --------------------------------------------------------------------------
   Typographie (§1.2)
   -------------------------------------------------------------------------- */
.misv-eyebrow,
button.misv-eyebrow{
  display:inline-block;font-family:var(--misv-font);font-size:12px;font-weight:600;
  text-transform:uppercase;letter-spacing:.3em;color:var(--misv-gold-text);
}
.misv-eyebrow--on-green-deep,
button.misv-eyebrow--on-green-deep{color:var(--misv-green-light)}
.misv-eyebrow--jeunesse,
button.misv-eyebrow--jeunesse{color:var(--misv-green)}
.misv-eyebrow--antenne,
button.misv-eyebrow--antenne{font-size:11.5px;font-weight:800;letter-spacing:.26em}
/* Sur fond sombre, l'or plein passe déjà : on le rend. */
.misv-section--ink .misv-eyebrow,
.misv-section--ink button.misv-eyebrow,
.misv-panel .misv-eyebrow,
.misv-panel button.misv-eyebrow,
.misv-hero .misv-eyebrow,
.misv-hero button.misv-eyebrow{color:var(--misv-gold)}
/* Pont Elementor : quand la classe de charte est posée sur le conteneur du
   widget, la couleur du titre l'hérite au lieu de suivre le global du Kit.
   Trois classes (0,3,0) : bat la règle générique du widget, perd contre un
   réglage natif par élément. JAMAIS de !important ici. */
.misv-eyebrow.elementor-widget .elementor-heading-title{color:inherit}

.misv-h1-antenne,
button.misv-h1-antenne{
  font-family:var(--misv-font);font-size:74px;font-weight:900;line-height:.98;
  text-transform:uppercase;letter-spacing:-.01em;margin:0;color:var(--misv-title);
}
.misv-h1-antenne--jeunesse,
button.misv-h1-antenne--jeunesse{font-size:72px}
.misv-h1-antenne--page,
button.misv-h1-antenne--page{font-size:64px}
.misv-h1-antenne--detail,
button.misv-h1-antenne--detail{font-size:56px}
.misv-h1-antenne__accent,
button.misv-h1-antenne__accent{color:var(--misv-ink)}

.misv-h2,
button.misv-h2{
  font-family:var(--misv-serif);font-size:50px;font-weight:500;line-height:1.1;
  color:var(--misv-title);margin:0;
}
.misv-h2--panel,
button.misv-h2--panel{font-size:48px;color:var(--misv-paper)}
.misv-h2--programme,
button.misv-h2--programme{font-size:44px}
.misv-h2--cta,
button.misv-h2--cta{font-size:42px}
.misv-h2--mission,
button.misv-h2--mission{font-size:36px}
.misv-h2 em{color:var(--misv-red);font-style:italic}

.misv-verse,
button.misv-verse{
  font-family:var(--misv-serif);font-style:italic;font-size:36px;font-weight:500;
  line-height:1.32;color:var(--misv-title);margin:0;
}

.misv-body,
button.misv-body{font-family:var(--misv-font);font-size:15.5px;font-weight:300;line-height:1.8;color:var(--misv-body)}
.misv-small,
button.misv-small{font-family:var(--misv-font);font-size:13px;font-weight:300;line-height:1.55;color:var(--misv-muted)}
.misv-label,
button.misv-label{font-family:var(--misv-font);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.16em}
.misv-nav,
button.misv-nav{
  font-family:var(--misv-font);font-size:12.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;color:var(--misv-ink);text-decoration:none;
}
.misv-nav:hover,
button.misv-nav:hover,
.misv-nav:focus-visible,
button.misv-nav:focus-visible,
.misv-nav--active,
button.misv-nav--active{color:var(--misv-red)}

/* --------------------------------------------------------------------------
   Composants récurrents (§1.5)
   -------------------------------------------------------------------------- */

/* Carte blanche */
.misv-card,
button.misv-card{
  position:relative;background:#fff;border:1px solid var(--misv-line-1);border-radius:16px;
  overflow:hidden;transition:transform .35s var(--misv-ease),box-shadow .35s var(--misv-ease);
}
.misv-card:hover,
button.misv-card:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(28,25,22,.12)}
.misv-card__media,
button.misv-card__media{width:100%;overflow:hidden}
.misv-card__body,
button.misv-card__body{padding:18px 20px 22px}
.misv-card__body--lg,
button.misv-card__body--lg{padding:30px}

/* Barre de couleur */
.misv-colorbar,
button.misv-colorbar{display:block;width:40px;height:3px;margin-bottom:16px;background:var(--misv-red)}
.misv-colorbar--sm,
button.misv-colorbar--sm{width:34px}
.misv-colorbar--gold,
button.misv-colorbar--gold{background:var(--misv-gold)}
.misv-colorbar--green,
button.misv-colorbar--green{background:var(--misv-green)}
.misv-colorbar--ink,
button.misv-colorbar--ink{background:var(--misv-ink)}

/* Panneaux */
.misv-panel,
button.misv-panel{
  position:relative;overflow:hidden;background:var(--misv-ink);color:var(--misv-ivory);
  border-radius:32px;padding:72px 64px;
}
.misv-panel--green,
button.misv-panel--green{background:var(--misv-green-deep);padding:70px 60px}
.misv-panel--cta,
button.misv-panel--cta{
  padding:56px 60px;display:flex;align-items:center;justify-content:space-between;
  gap:40px;flex-wrap:wrap;
}
.misv-panel--cta .misv-h2,
.misv-panel--cta button.misv-h2{font-size:42px}
.misv-panel--cta .misv-panel__text,
.misv-panel--cta button.misv-panel__text{font-size:14px;font-weight:300}
.misv-panel__actions,
button.misv-panel__actions{display:flex;gap:16px;flex-wrap:wrap}

/* Ligne de panneau */
.misv-panel-row,
button.misv-panel-row{
  background:rgba(250,247,241,.06);border:1px solid rgba(250,247,241,.12);
  border-radius:18px;padding:20px 26px;transition:background .3s var(--misv-ease);
}
.misv-panel-row:hover,
button.misv-panel-row:hover{background:rgba(250,247,241,.11)}

/* Badge live (3 variantes) */
.misv-badge-live,
button.misv-badge-live{
  display:inline-flex;align-items:center;gap:6px;border-radius:999px;
  background:rgba(209,32,42,.9);color:#fff;font-family:var(--misv-font);
  font-weight:800;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
  padding:7px 13px;
}
.misv-badge-live__dot,
button.misv-badge-live__dot{width:5px;height:5px;border-radius:50%;background:#fff;animation:misv-pulse 1.8s infinite}
.misv-badge-live--light,
button.misv-badge-live--light{background:#FDF3F3;border:1px solid #EFC9CB;color:var(--misv-red);font-size:10.5px;font-weight:700}
.misv-badge-live--light .misv-badge-live__dot,
.misv-badge-live--light button.misv-badge-live__dot{width:6px;height:6px;background:var(--misv-red)}
.misv-badge-live--antenne,
button.misv-badge-live--antenne{
  border-radius:0;background:var(--misv-red);font-size:9.5px;font-weight:800;
  letter-spacing:.16em;padding:6px 11px;animation:misv-pulse 1.8s infinite;
}

/* Point pulsé isolé */
.misv-dot,
button.misv-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--misv-red);animation:misv-pulse 1.8s infinite}

/* Égaliseur */
.misv-eq,
button.misv-eq{--misv-eq-color:var(--misv-gold);display:flex;align-items:flex-end;gap:3px;height:24px}
.misv-eq__bar,
button.misv-eq__bar{width:3px;border-radius:2px;background:var(--misv-eq-color);transform-origin:bottom;animation:misv-eq 1.1s ease-in-out infinite}
.misv-eq__bar:nth-child(1),
button.misv-eq__bar:nth-child(1){height:12px;animation-delay:-.15s}
.misv-eq__bar:nth-child(2),
button.misv-eq__bar:nth-child(2){height:20px;animation-delay:-.5s}
.misv-eq__bar:nth-child(3),
button.misv-eq__bar:nth-child(3){height:9px;animation-delay:-.8s}
.misv-eq__bar:nth-child(4),
button.misv-eq__bar:nth-child(4){height:24px;animation-delay:-.3s}
.misv-eq__bar:nth-child(5),
button.misv-eq__bar:nth-child(5){height:16px;animation-delay:-.6s}
.misv-eq__bar:nth-child(6),
button.misv-eq__bar:nth-child(6){height:14px;animation-delay:-1s}
.misv-eq--white,
button.misv-eq--white{--misv-eq-color:#fff}
.misv-eq--green-pale,
button.misv-eq--green-pale{--misv-eq-color:var(--misv-green-pale)}
.misv-eq--green,
button.misv-eq--green{--misv-eq-color:var(--misv-green)}
.misv-eq--paused .misv-eq__bar,
.misv-eq--paused button.misv-eq__bar{animation:none;transform:scaleY(.25)}

/* Pastille sur photo */
.misv-pastille,
button.misv-pastille{
  display:inline-flex;align-items:center;background:rgba(20,18,16,.85);color:#fff;
  font-family:var(--misv-font);font-weight:700;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;padding:6px 12px;border-radius:999px;
}
.misv-pastille--square,
button.misv-pastille--square{border-radius:0}
/* Ajouté tâche 6 (misv-live-status, tuile hors direct « DERNIER CULTE ») :
   seule variante de couleur de .misv-pastille à ce jour -- le fond sombre par
   défaut ne convient pas à un badge d'appel à l'action doré. */
.misv-pastille--gold,
button.misv-pastille--gold{background:var(--misv-gold);color:var(--misv-ink)}

/* Accordéon en carte (FAQ + confession de foi — même composant) */
.misv-accordion,
button.misv-accordion{background:#fff;border:1px solid var(--misv-line-1);border-radius:16px;overflow:hidden}
.misv-accordion__item,
button.misv-accordion__item{border-bottom:1px solid var(--misv-line-2)}
.misv-accordion__item:last-child,
button.misv-accordion__item:last-child{border-bottom:0}
.misv-accordion__head,
button.misv-accordion__head{
  display:flex;align-items:center;gap:20px;padding:22px 28px;cursor:pointer;
  background:transparent;border:0;width:100%;text-align:left;
  transition:background .2s var(--misv-ease);
}
.misv-accordion__head:hover,
button.misv-accordion__head:hover{background:var(--misv-hover-row)}
.misv-accordion__num,
button.misv-accordion__num{
  flex:none;width:24px;font-family:var(--misv-font);font-weight:700;font-size:11px;
  letter-spacing:.14em;color:var(--misv-gold-text);
}
.misv-accordion__question,
button.misv-accordion__question{
  flex:1;margin:0;font-family:var(--misv-serif);font-weight:600;font-size:25px;color:var(--misv-title);
}
.misv-accordion__toggle,
button.misv-accordion__toggle{
  flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--misv-line-3);
  display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:300;
  color:var(--misv-title);transition:transform .3s var(--misv-ease);
}
.misv-accordion__item[data-open="true"] .misv-accordion__toggle,
.misv-accordion__item[data-open="true"] button.misv-accordion__toggle{transform:rotate(45deg)}
.misv-accordion__panel,
button.misv-accordion__panel{
  padding:0 28px 26px 70px;font-family:var(--misv-font);font-weight:300;font-size:14.5px;
  line-height:1.8;color:var(--misv-body);
}
.misv-accordion__panel ul{margin:0;padding-left:18px}

/* Halo décoratif */
.misv-halo,
button.misv-halo{
  position:absolute;z-index:0;pointer-events:none;width:520px;height:520px;border-radius:50%;
  top:-140px;left:30%;background:radial-gradient(circle,rgba(201,161,59,.14),transparent 65%);
  animation:misv-glow 7s ease-in-out infinite;
}
.misv-halo--green,
button.misv-halo--green{
  left:auto;right:-100px;top:-160px;
  background:radial-gradient(circle,rgba(143,211,168,.16),transparent 65%);
}
.misv-halo--hero,
button.misv-halo--hero{
  width:460px;height:460px;left:auto;right:-80px;top:-140px;
  background:radial-gradient(circle,rgba(201,161,59,.16),transparent 65%);animation-duration:6s;
}

/* Anneau décoratif */
.misv-ring,
button.misv-ring{
  position:absolute;z-index:0;pointer-events:none;width:340px;height:340px;border-radius:50%;
  border:44px solid rgba(255,255,255,.10);right:-90px;top:-90px;animation:misv-floaty 7s ease-in-out infinite;
}
.misv-ring--green,
button.misv-ring--green{border-color:rgba(255,255,255,.12)}
.misv-ring--verse,
button.misv-ring--verse{width:220px;height:220px;border-width:30px;right:auto;left:-60px;top:-60px}

/* Photo Ken Burns */
.misv-kb-wrap,
button.misv-kb-wrap{position:relative;overflow:hidden}
.misv-kb,
button.misv-kb{display:block;width:100%;height:100%;object-fit:cover;animation:misv-kb 24s ease-in-out infinite alternate}

/* Carte or flottante */
.misv-floaty-card,
button.misv-floaty-card{
  position:absolute;z-index:2;right:-20px;bottom:-20px;background:var(--misv-gold);
  color:var(--misv-ink);border-radius:18px;padding:20px 24px;animation:misv-floaty 5.5s ease-in-out infinite;
}

/* Compteur */
.misv-counter,
button.misv-counter{
  display:inline-flex;flex-direction:column;align-items:center;gap:4px;text-align:center;
  background:#fff;border:1px solid var(--misv-line-1);border-radius:14px;padding:14px 22px;
}
.misv-counter__num,
button.misv-counter__num{font-family:var(--misv-serif);font-weight:600;font-size:30px;color:var(--misv-title)}
.misv-counter__label,
button.misv-counter__label{font-family:var(--misv-font);font-weight:700;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--misv-muted)}

/* Chips (églises) */
.misv-chip,
button.misv-chip{
  display:inline-flex;align-items:center;border-radius:999px;font-family:var(--misv-font);
  font-size:12px;font-weight:500;color:var(--misv-title);background:#fff;
  border:1px solid var(--misv-line-3);padding:8px 16px;cursor:pointer;
  transition:all .3s var(--misv-ease);
}
.misv-chip:hover,
button.misv-chip:hover{border-color:var(--misv-gold);transform:translateY(-2px)}
.misv-chip--active,
button.misv-chip--active,
.misv-chip[aria-pressed="true"],
button.misv-chip[aria-pressed="true"]{background:var(--misv-ink);border-color:var(--misv-ink);color:#fff;font-weight:600}

/* Lien or (texte) */
.misv-goldlink,
button.misv-goldlink{
  display:inline-flex;align-items:center;gap:10px;font-family:var(--misv-font);font-weight:600;
  font-size:13.5px;color:var(--misv-title);border-bottom:1px solid var(--misv-gold);
  padding-bottom:6px;text-decoration:none;
  transition:color .3s var(--misv-ease),border-color .3s var(--misv-ease);
}
.misv-goldlink::after,
button.misv-goldlink::after{content:"→";color:var(--misv-red);transition:color .3s var(--misv-ease)}
.misv-goldlink:hover,
button.misv-goldlink:hover{color:var(--misv-red);border-color:var(--misv-red)}

/* En-tête de section */
.misv-section-head,
button.misv-section-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:32px;
  margin-bottom:38px;flex-wrap:wrap;
}
.misv-section-head__title,
button.misv-section-head__title{margin-top:16px}
.misv-section-head__aside,
button.misv-section-head__aside{font-family:var(--misv-font);font-weight:300;font-size:13px;color:var(--misv-muted);max-width:300px}

/* Ornement doré (composant disponible, jamais en séparateur systématique) */
.misv-ornament,
button.misv-ornament{display:flex;align-items:center;gap:16px}
.misv-ornament::before,
button.misv-ornament::before,
.misv-ornament::after,
button.misv-ornament::after{content:"";flex:1;height:1px;background:var(--misv-line-2)}
.misv-ornament__diamond,
button.misv-ornament__diamond{flex:none;width:8px;height:8px;background:var(--misv-gold);transform:rotate(45deg)}

@media (prefers-reduced-motion:reduce){
  .misv-kb,.misv-ticker__track,.misv-halo,.misv-floaty,.misv-eq__bar,.misv-ripple,
.misv-ring,
button.misv-ring,
.misv-floaty-card,
button.misv-floaty-card{animation:none!important}
.misv-eq__bar,
button.misv-eq__bar{transform:scaleY(.25)}
  /* Ajouté tâche 6 (misv-live-status) : le pulse (misv-pulse) n'était neutralisé
     nulle part -- ni ici ni dans misv-broadcast.css -- avant que ce widget ne
     consomme .misv-badge-live__dot/.misv-badge-live--antenne/.misv-dot. Le
     brief de la tâche 6 est explicite sur ce point (contrairement à la règle
     générale du plan, qui ne citait pas "pulse" parmi marq/kb/glow/floaty/
     ripple/eq) : reduced-motion doit aussi figer le pulse. misv-pulse n'anime
     que box-shadow, donc `animation:none!important` suffit, sans reset de
     transform/opacity à ajouter. */
.misv-badge-live__dot,
button.misv-badge-live__dot,
.misv-badge-live--antenne,
button.misv-badge-live--antenne,
.misv-dot,
button.misv-dot{animation:none!important}
}

/* --- Compatibilité : classes de mise en page héritées --- */

/* --------------------------------------------------------------------------
   Header : garantir le menu sur UNE seule ligne jusqu'au laptop.
   (Elementor n'expose pas de réglage « no-wrap » pour le menu horizontal.)
   -------------------------------------------------------------------------- */
@media (min-width: 1025px) {
  header .elementor-nav-menu > ul {
    flex-wrap: nowrap;
  }
  header .elementor-nav-menu > ul > li > a.elementor-item {
    white-space: nowrap;
  }
}

.misv-has-shapes,
button.misv-has-shapes { position: relative; overflow: hidden; isolation: isolate; }

.misv-shape,
button.misv-shape {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  width: 420px;
  height: 420px;
  background: var(--misv-red);
  opacity: .12;
  filter: blur(2px);
  border-radius: 42% 58% 63% 37% / 41% 44% 56% 59%;
  animation: misv-shape-float 16s var(--misv-ease) infinite alternate;
}
.misv-shape--secondary,
button.misv-shape--secondary { background: var(--misv-gold); }
.misv-shape--accent,
button.misv-shape--accent    { background: var(--misv-green); }
.misv-shape--sm,
button.misv-shape--sm  { width: 240px; height: 240px; }
.misv-shape--lg,
button.misv-shape--lg  { width: 620px; height: 620px; }
.misv-shape--soft,
button.misv-shape--soft { opacity: .08; }
.misv-shape--tr,
button.misv-shape--tr { top: -120px; right: -100px; }
.misv-shape--bl,
button.misv-shape--bl { bottom: -140px; left: -120px; }
.misv-shape--slow,
button.misv-shape--slow { animation-duration: 24s; }

@keyframes misv-shape-float {
  0%   { transform: translate3d(0, 0, 0) rotate(0deg); }
  50%  { transform: translate3d(2%, -3%, 0) rotate(8deg); }
  100% { transform: translate3d(-2%, 2%, 0) rotate(-6deg); }
}

.misv-has-shapes > *:not(.misv-shape) { position: relative; z-index: 1; }

.misv-container,
button.misv-container {
  width: min(100% - 2 * var(--misv-gutter), 1140px);
  margin-inline: auto;
}

.misv-section--ink,
button.misv-section--ink     { background: var(--misv-ink); color: #fff; }
.misv-section--ink .misv-h2,
.misv-section--ink button.misv-h2 { color: #fff; }
.misv-section--ink .misv-body,
.misv-section--ink button.misv-body { color: rgba(255, 255, 255, .78); }
.misv-section--surface,
button.misv-section--surface { background: var(--misv-hover-row); }

.misv-votd,
button.misv-votd {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  text-align: center;
}
.misv-votd__text,
button.misv-votd__text {
  margin: 0;
  border: 0;
  padding: 0;
  quotes: none;
}
.misv-votd__text p {
  margin: 0;
  font-family: var(--misv-serif);
  font-weight: 500;
  color: var(--misv-title);
  line-height: 1.4;
  font-size: clamp(1.25rem, 1rem + 1.4vw, 1.9rem);
  text-wrap: balance;
}
.misv-votd__ref,
button.misv-votd__ref {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  font-family: var(--misv-font);
}
.misv-votd__reference,
button.misv-votd__reference {
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--misv-red);
}
.misv-votd__translation,
button.misv-votd__translation { font-size: .85rem; color: var(--misv-muted); }
.misv-votd__translation::before,
button.misv-votd__translation::before { content: "·"; margin-inline-end: 8px; color: var(--misv-line-1); }

.misv-votd--card,
button.misv-votd--card {
  padding: 48px 32px;
  background: #fff;
  border: 1px solid var(--misv-line-1);
  border-radius: 16px;
}
.misv-votd--card .misv-votd__text p { font-style: italic; }

.misv-section--ink .misv-votd__text p { color: #fff; }
.misv-section--ink .misv-votd__reference,
.misv-section--ink button.misv-votd__reference { color: var(--misv-gold-light); }
.misv-section--ink .misv-votd__translation,
.misv-section--ink button.misv-votd__translation { color: rgba(255, 255, 255, .65); }

/* --------------------------------------------------------------------------
   .misv-votd — habillages de la charte 2026 (tâche 9)

   Trois registres pilotés par le contrôle `style` du widget « Passage du
   jour ». Ils REMPLACENT la classe de disposition (`--band` / `--card`) au
   lieu de s'y ajouter, d'où le préfixe `--style-` : sans lui, `style = band`
   produirait la même classe que `layout = band` et repeindrait en or toutes
   les instances déjà posées dans les pages.

   CE QUI N'EST PAS ÉCRIT ICI, ET POURQUOI : aucune de ces règles ne pose
   `text-align` sur la racine `.misv-votd`. Le contrôle « Alignement » du
   widget la revendique déjà par un sélecteur Elementor de la forme
   `.elementor-element-xxx .misv-votd`, en (0,2,0) : toute déclaration
   concurrente en (0,1,0) serait morte au rendu, quel que soit l'ordre
   d'impression. L'alignement du texte reste donc gouverné par ce contrôle
   (défaut « centre », ce qui donne bien le bandeau centré du brief) ; ces
   règles ne fixent que l'axe transversal du conteneur flex.

   CONTRASTES, calculés sur les jetons de la charte :
   - `--misv-ink` plein sur `--misv-gold` : 7,69:1 (verset des deux registres
     or, AA et AAA).
   - `--misv-ink` à `opacity:.7` sur `--misv-gold` : le composité vaut
     #4A3D1D, soit 4,37:1 — SOUS le seuil AA de 4,5:1 pour du texte de 10 à
     10,5px, fût-il en 800. L'opacité est appliquée telle que le brief la
     spécifie et signalée pour arbitrage ; `.71` suffirait à passer (4,51:1).
   - Traits de la référence à `opacity:.5` : 2,74:1. Purement décoratifs (ils
     n'encodent aucune information), pas soumis au seuil des composants.
   - `--misv-gold-text` sur `--misv-paper` (registre `inline`) : 4,67:1.
   -------------------------------------------------------------------------- */

/* --- tuile or --- */
.misv-votd--style-tile-gold {
  align-items: stretch;
  gap: 12px;
  padding: 26px;
  background: var(--misv-gold);
  border-radius: 16px;
}
.misv-votd--style-tile-gold .misv-votd__eyebrow {
  font-family: var(--misv-font);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--misv-ink);
  opacity: .7;
}
.misv-votd--style-tile-gold .misv-votd__text p {
  font-family: var(--misv-font);
  font-size: 15.5px;
  font-weight: 800;
  font-style: normal;
  line-height: 1.4;
  color: var(--misv-ink);
}
.misv-votd--style-tile-gold .misv-votd__ref {
  display: flex;
  gap: 6px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--misv-ink);
  opacity: .7;
}
.misv-votd--style-tile-gold .misv-votd__reference,
.misv-votd--style-tile-gold .misv-votd__translation,
.misv-votd--style-tile-gold .misv-votd__translation::before {
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  color: inherit;
}

/* --- bandeau or --- */
.misv-votd--style-band {
  position: relative;
  overflow: hidden;
  align-items: center;
  gap: 20px;
  padding: 56px;
  background: var(--misv-gold);
}
/* Anneau décoratif de 220px. `z-index` explicite des deux côtés : un
   pseudo-élément positionné peindrait sinon PAR-DESSUS le contenu en flux,
   et le filet traverserait le verset. */
.misv-votd--style-band::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 0;
  width: 220px;
  height: 220px;
  margin: -110px 0 0 -110px;
  border: 1px solid rgba(20, 18, 16, .18);
  border-radius: 50%;
  pointer-events: none;
}
.misv-votd--style-band > * { position: relative; z-index: 1; }
.misv-votd--style-band .misv-votd__eyebrow {
  font-family: var(--misv-font);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--misv-ink);
  opacity: .7;
}
.misv-votd--style-band .misv-votd__text {
  width: 100%;
  max-width: 860px;
  margin-inline: auto;
}
.misv-votd--style-band .misv-votd__text p {
  font-family: var(--misv-serif);
  font-style: italic;
  font-size: 36px;
  font-weight: 500;
  line-height: 1.32;
  color: var(--misv-ink);
}
.misv-votd--style-band .misv-votd__ref {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--misv-ink);
}
.misv-votd--style-band .misv-votd__ref::before,
.misv-votd--style-band .misv-votd__ref::after {
  content: "";
  flex: 0 0 auto;
  width: 36px;
  height: 1px;
  background: var(--misv-ink);
  opacity: .5;
}
.misv-votd--style-band .misv-votd__reference,
.misv-votd--style-band .misv-votd__translation,
.misv-votd--style-band .misv-votd__translation::before {
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  color: inherit;
}

/* --- en ligne ---
   Le brief ne chiffre pas ce registre (il ne détaille que `tile-gold` et
   `band`) : il est tenu au plus sobre — une seule ligne, aucun aplat, aucune
   décoration, les échelles typographiques du socle. */
.misv-votd--style-inline {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 14px;
}
.misv-votd--style-inline .misv-votd__eyebrow {
  font-family: var(--misv-font);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--misv-gold-text);
}
.misv-votd--style-inline .misv-votd__text p {
  font-family: var(--misv-font);
  font-size: 14.5px;
  font-weight: 400;
  font-style: normal;
  line-height: 1.6;
  color: var(--misv-title);
}
.misv-votd--style-inline .misv-votd__ref {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.misv-votd--style-inline .misv-votd__reference { color: var(--misv-gold-text); }
/* `--misv-body` et non `--misv-muted` : à 11px, #8A8073 ne donne que 3,75:1
   sur le fond de page. La règle d'origine reste inchangée pour les autres
   registres — c'est une dette connue, rattachée à la tâche 21. */
.misv-votd--style-inline .misv-votd__translation { font-size: inherit; color: var(--misv-body); }
.misv-votd--style-inline .misv-votd__translation::before { color: var(--misv-line-3); }

/* --- Boutons natifs Elementor portant une classe de la charte --------------
   Quand `.misv-btn--x` est saisie dans le champ « CSS Classes » d'un widget
   Bouton, Elementor la pose sur le CONTENEUR du widget, pas sur le
   `<a class="elementor-button">` qui peint le fond. Les règles `.misv-btn--x`
   ci-dessus n'atteignaient donc jamais la surface colorée : mesuré au
   navigateur, aucun bouton natif ne changeait de couleur ni ne s'élevait au
   survol.

   Ce bloc ne définit QUE des états de survol : l'état au repos reste
   exactement ce qu'Elementor peint aujourd'hui, donc rien de visible ne peut
   régresser. Le Kit pose ses fonds par élément en `!important` mais sous
   `:not(:hover)` — au survol, la voie est libre.

   Spécificité : `a.elementor-button` (0,2,1) passe devant les règles de Kit
   en (0,2,0), nécessaire car les feuilles du plugin sont imprimées AVANT
   celles d'Elementor et perdraient tout départage à l'ancienneté.
   -------------------------------------------------------------------------- */
.misv-btn:hover a.elementor-button,
.misv-btn:hover button.elementor-button{
  transform:translateY(-2px);box-shadow:none;
  transition:all .3s var(--misv-ease);
}
.misv-btn--header:hover a.elementor-button,
.misv-btn--header:hover button.elementor-button{transform:translateY(-1px)}

.misv-btn--red:hover a.elementor-button,
.misv-btn--red:hover button.elementor-button{background-color:var(--misv-red-hover);color:#fff}
.misv-btn--ink:hover a.elementor-button,
.misv-btn--ink:hover button.elementor-button{background-color:var(--misv-ink-hover);color:#fff}
.misv-btn--white:hover a.elementor-button,
.misv-btn--white:hover button.elementor-button{background-color:var(--misv-title);color:#fff}
.misv-btn--green:hover a.elementor-button,
.misv-btn--green:hover button.elementor-button{background-color:var(--misv-green-hover);color:#fff}
.misv-btn--gold:hover a.elementor-button,
.misv-btn--gold:hover button.elementor-button{background-color:var(--misv-gold-light);color:var(--misv-ink)}
