/*
 Theme Name:   MONNAWA — thème enfant Astra
 Theme URI:    https://monnawa.fr
 Description:  Habillage MONNAWA pour le thème Astra. Toutes les couleurs viennent de la palette globale d'Astra : modifiez-les dans Apparence › Personnaliser › Global › Couleurs et tout le site suit.
 Author:       MONNAWA
 Author URI:   https://monnawa.fr
 Template:     astra
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Tags:         astra
 Text Domain:  nawa-astra-child
*/

/* ═══════════════════════════════════════════════════════════════════
   COMMENT CE FICHIER EST ORGANISÉ

   1. Les jetons — toutes les couleurs et tailles, en un seul endroit
   2. La base — titres, texte, liens, boutons WordPress
   3. Les sections — les grands blocs de page
   4. Les composants — cartes, fiches, frises, tableaux
   5. Les modules interactifs — diagnostic, calculateur, espace membre
   6. Paid Member Subscriptions — pour que ses écrans ressemblent au site

   POUR CHANGER UNE COULEUR : ne touchez pas à ce fichier. Allez dans
   Apparence › Personnaliser › Global › Couleurs. Les neuf couleurs de
   la palette Astra pilotent tout ce qui suit.
   ═══════════════════════════════════════════════════════════════════ */


/* ── 1. Les jetons ────────────────────────────────────────────────
   Chaque jeton MONNAWA est branché sur une couleur de la palette Astra,
   avec une valeur de repli si la palette n'a pas encore été réglée.
   C'est ce branchement qui rend le Personnalisateur utile : changer
   « Couleur 1 » dans Astra change les boutons, les liens et les
   accents partout, sans ouvrir un fichier. */
:root{
  --nawa-prune:   var(--ast-global-color-0, #2B1B3D);   /* Couleur 1 — Marque   */
  --nawa-or:      var(--ast-global-color-1, #8A6E33);   /* Couleur 2 — Accent   */
  --nawa-titre:   var(--ast-global-color-2, #1B1026);   /* Couleur 3 — Titres   */
  --nawa-texte:   var(--ast-global-color-3, #564A63);   /* Couleur 4 — Texte    */
  --nawa-fond:    var(--ast-global-color-4, #F8F5FB);   /* Couleur 5 — Fond     */
  --nawa-fond-2:  var(--ast-global-color-5, #F3EEF9);   /* Couleur 6 — Fond 2   */
  --nawa-bord:    var(--ast-global-color-6, #E4DCEE);   /* Couleur 7 — Bordures */
  --nawa-fond-3:  var(--ast-global-color-7, #EAE1F3);   /* Couleur 8 — Fond 3   */
  --nawa-surface: var(--ast-global-color-8, #FFFFFF);   /* Couleur 9 — Cartes   */

  /* Dérivés : calculés à partir des neuf ci-dessus, jamais saisis en dur. */
  --nawa-texte-3: color-mix(in srgb, var(--nawa-texte) 68%, var(--nawa-fond));
  --nawa-bord-fort: color-mix(in srgb, var(--nawa-bord) 74%, var(--nawa-titre));
  --nawa-or-fond: color-mix(in srgb, var(--nawa-or) 13%, var(--nawa-surface));
  --nawa-sur-prune: #FFFFFF;

  --nawa-ok:      #3F6349;
  --nawa-ok-fond: #E7F0E8;
  --nawa-dgr:     #8E2F2A;
  --nawa-dgr-fond:#FAE7E5;

  --nawa-fd: 'Fraunces','Iowan Old Style',Georgia,serif;
  --nawa-fb: 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;

  --nawa-r:   18px;   /* rayon des cartes   */
  --nawa-r-s: 13px;   /* rayon des petits blocs */
  --nawa-sec: 78px;   /* respiration verticale d'une section */
}
@media (max-width:640px){ :root{ --nawa-sec:52px } }


/* ── 2. La base ───────────────────────────────────────────────────
   Astra applique sa typographie via un CSS dynamique injecté en ligne.
   Le thème enfant est chargé APRÈS (voir functions.php : la dépendance
   à `astra-theme-css`), donc ces règles passent devant sans !important. */
body{
  background:var(--nawa-fond);
  color:var(--nawa-texte);
  font-family:var(--nawa-fb);
  font-size:17px;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
}

/* Astra cible « h1, .entry-content h1 » : on reprend la même forme
   pour gagner sans surenchère de spécificité. */
h1,.entry-content h1,h2,.entry-content h2,h3,.entry-content h3,
h4,.entry-content h4,h5,.entry-content h5,h6,.entry-content h6{
  font-family:var(--nawa-fd);
  font-weight:600;
  color:var(--nawa-titre);
  letter-spacing:-.02em;
  line-height:1.14;
  text-transform:none;
  text-wrap:balance;
}
h1,.entry-content h1{font-size:clamp(2.1rem,5.4vw,3.4rem);line-height:1.05}
h2,.entry-content h2{font-size:clamp(1.7rem,3.6vw,2.5rem)}
h3,.entry-content h3{font-size:clamp(1.15rem,2.1vw,1.35rem)}

.entry-content p{margin-bottom:1.05em}
a,.page-title{color:var(--nawa-or)}
a:hover,a:focus{color:var(--nawa-prune)}

/* Astra cible « .wp-block-button .wp-block-button__link » — forme
   descendante. On l'écrit pareil, sinon le thème l'emporte. */
.wp-block-button .wp-block-button__link,
.wp-block-button__link.wp-element-button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--nawa-prune);
  color:var(--nawa-sur-prune);
  font-family:var(--nawa-fb);
  font-weight:600;font-size:.97rem;
  padding:15px 30px;min-height:52px;
  border:0;border-radius:999px;
  text-decoration:none;
  transition:filter .16s ease,transform .1s ease;
}
.wp-block-button .wp-block-button__link:hover{filter:brightness(1.14);color:var(--nawa-sur-prune)}
.wp-block-button .wp-block-button__link:active{transform:scale(.985)}

/* Bouton secondaire : ajoutez la classe « est-ligne » au bloc Bouton
   (barre latérale › Avancé › Classe(s) CSS additionnelle(s)). */
.wp-block-button.est-ligne .wp-block-button__link{
  background:transparent;color:var(--nawa-titre);
  border:1.5px solid var(--nawa-bord-fort);
}
.wp-block-button.est-ligne .wp-block-button__link:hover{
  background:var(--nawa-fond-2);color:var(--nawa-titre);filter:none;
}
/* Bouton d'achat : la classe « est-or ». */
.wp-block-button.est-or .wp-block-button__link{
  background:var(--nawa-or);color:#fff;
}
/* Sur fond sombre (bloc final) : la classe « est-claire ». */
.wp-block-button.est-claire .wp-block-button__link{
  background:var(--nawa-surface);color:var(--nawa-prune);
}

:focus-visible{outline:2px solid var(--nawa-or);outline-offset:3px;border-radius:6px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}


/* ── 3. Les sections ──────────────────────────────────────────────
   Astra gratuit ne permet pas de régler les marges intérieures du
   conteneur (c'est une option Pro). On les pose donc ici, en ciblant
   la mise en page « Pleine largeur » qu'Astra marque d'une classe sur
   <body>. */
/* Quel que soit le conteneur retenu par Astra — « Pleine largeur »,
   « Normal » ou « Boxed » — les pages MONNAWA occupent toute la largeur :
   leurs sections gèrent elles-mêmes leur colonne de contenu. On vise
   les trois classes de conteneur plutôt qu'une seule, pour ne pas
   dépendre d'un réglage qui pourrait changer. */
body.ast-page-builder-template .site-content .ast-container,
body.ast-plain-container .site-content .ast-container,
body.ast-separate-container .site-content .ast-container,
body.ast-narrow-container .site-content > .ast-container{
  padding-left:0;padding-right:0;max-width:100%;
}
body.ast-separate-container .ast-article-single,
body.ast-separate-container #primary,
body.ast-separate-container .site-main{
  padding:0;margin:0;background:none;border:0;box-shadow:none}
.entry-content > *{margin-block-start:0}

/* Filet de sécurité, plus le mécanisme principal.

   Chaque page porte déjà son propre titre : celui du thème ferait
   doublon. On l'a longtemps masqué ici, et c'était une erreur —
   display:none enlève le titre de l'écran mais le laisse dans le code,
   si bien que chaque page annonçait DEUX <h1> aux moteurs : « Tarifs »,
   puis le vrai titre. Le titre du thème n'est donc plus écrit du tout
   (voir nawa_un_seul_h1 dans functions.php). Ces deux lignes restent
   pour le jour où ce filtre ne s'appliquerait pas : mieux vaut un titre
   invisible qu'un titre en double à l'écran. */
.page .entry-header .entry-title,
.page .ast-single-post-order .entry-title{display:none}

/* Un bloc Groupe portant la classe « nawa-sec » = une section du site.
   La colonne de contenu est une COLONNE DE GRILLE centrée, pas une
   largeur maximale posée sur chaque enfant : sans cela, tout composant
   qui remet ses marges à zéro (`margin:34px 0 0`) annule le centrage et
   se colle au bord gauche. Ici, la colonne est centrée une fois pour
   toutes et les enfants ne peuvent plus en sortir. */
.nawa-sec{padding:var(--nawa-sec) 24px;display:grid;gap:0;
  grid-template-columns:min(1080px,100%);justify-content:center}
.nawa-sec.est-etroite > *{max-width:760px}

/* WordPress ajoute aux blocs Groupe une mise en page « constrained »,
   avec ce CSS injecté dans la page :

     .is-layout-constrained > :where(:not(.alignleft)…){
       max-width: var(--wp--style--global--content-size);
       margin-left: auto !important; margin-right: auto !important; }

   Ces deux !important recentrent chaque enfant DANS la section. Sur une
   grille, des marges automatiques font en plus rétrécir l'élément à la
   largeur de son texte : les titres se retrouvaient 76 px à droite des
   cartes, et plus étroits qu'elles.

   Un !important ne se bat pas à la spécificité : il faut répondre par un
   !important. Ce sont les seuls de cette feuille, et ils sont ici pour
   cette raison précise. */
.nawa-sec.is-layout-constrained > *,
.nawa-tete.is-layout-constrained > *,
.nawa-hero.is-layout-constrained > *{
  max-width:none;margin-left:0!important;margin-right:0!important}
.nawa-sec.est-etroite.is-layout-constrained > *{max-width:760px}
.nawa-sec.is-layout-constrained > .nawa-lede,
.nawa-tete.is-layout-constrained > .nawa-lede{max-width:58ch}
.nawa-sec.est-centre.is-layout-constrained > *{
  margin-left:auto!important;margin-right:auto!important}
.nawa-sec.est-alt{background:var(--nawa-fond-2)}
.nawa-sec.est-centre{text-align:center}
.nawa-sec.est-centre.est-etroite > *{margin-left:auto;margin-right:auto}
.nawa-sec.est-centre .nawa-lede{margin-left:auto;margin-right:auto}

/* En-tête de page intérieure. */
.nawa-tete{padding:64px 24px 40px;position:relative;overflow:hidden;
  display:grid;gap:0;grid-template-columns:min(1080px,100%);justify-content:center}
.nawa-tete > *{position:relative;z-index:1}
.nawa-tete::before{content:'';position:absolute;inset:-40% -10% auto -10%;height:80%;
  background:radial-gradient(60% 60% at 50% 50%,var(--nawa-fond-3),transparent 70%);
  opacity:.8;pointer-events:none}

/* Accroche de haut de page. */
.nawa-hero{padding:70px 24px 58px;position:relative;overflow:hidden;
  display:grid;gap:0;grid-template-columns:min(1080px,100%);justify-content:center}
.nawa-hero > *{position:relative;z-index:1}
.nawa-hero::before{content:'';position:absolute;inset:-30% -10% auto -10%;height:72%;
  background:radial-gradient(58% 58% at 32% 46%,var(--nawa-fond-3),transparent 72%);
  pointer-events:none}

.nawa-surtitre{font-size:.72rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--nawa-or);margin-bottom:14px}
.nawa-lede{font-size:clamp(1.04rem,2.2vw,1.26rem);color:var(--nawa-texte);
  max-width:58ch;margin-left:0;margin-right:auto}
.nawa-fil{font-size:.8rem;color:var(--nawa-texte-3);margin-bottom:12px}
.nawa-fil a{color:var(--nawa-texte-3)}

/* Le H1 de l'espace membre. Le module qui suit ouvre déjà par son
   propre titre : afficher les deux ferait doublon à l'écran. On garde
   donc le H1 dans le document, mais hors du champ visuel — lu par les
   lecteurs d'écran et par les moteurs, invisible pour l'œil. C'est
   l'inverse exact de display:none, qui, lui, le supprime pour tout le
   monde sauf le code source. */
/* La phrase de fin de l'histoire de l'éditeur. Un filet à gauche et
   un peu d'air : c'est une signature, pas un paragraphe de plus. */
.nawa-signature{
  margin-top:26px;padding:16px 0 16px 22px;
  border-left:3px solid var(--nawa-or);
  font-size:1.06rem;line-height:1.6;color:var(--nawa-titre)}

.nawa-titre-espace{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.nawa-petit{font-size:.85rem;color:var(--nawa-texte-3)}

/* Bloc de fin, sur fond de marque. */
.nawa-final{background:var(--nawa-prune);border-radius:26px;padding:56px 32px;text-align:center}
.nawa-final h2,.nawa-final .entry-content h2{color:var(--nawa-sur-prune)}
.nawa-final p{color:color-mix(in srgb,var(--nawa-sur-prune) 78%,transparent);
  max-width:46ch;margin-left:auto;margin-right:auto}
.nawa-final .wp-block-buttons{justify-content:center;margin-top:26px}


/* ── 4. Les composants ────────────────────────────────────────────
   Chacun s'applique en ajoutant une classe à un bloc WordPress, dans
   « Avancé › Classe(s) CSS additionnelle(s) ». Aucun ne demande de
   toucher au code. */

/* Colonnes : espacement et bascule mobile propres. */
.wp-block-columns.nawa-cols{gap:20px}
@media (max-width:781px){.wp-block-columns.nawa-cols{gap:18px}}

/* Astra indente toutes les listes de `.entry-content` de 3 em et leur
   met des puces. Chaque liste habillée par MONNAWA doit donc remettre
   margin ET padding à zéro — un `margin-top` seul laisse l'indentation
   en place, ce qui décale la grille sans prévenir. */
.entry-content .nawa-jamais,.entry-content .nawa-jalons,
.entry-content .nawa-parcours ul,.entry-content .nawa-formule ul,
.entry-content .nawa-packs,.entry-content .nawa-faits{margin-left:0;padding-left:0;list-style:none}

/* Carte. */
.nawa-carte{background:var(--nawa-surface);border:1px solid var(--nawa-bord);
  border-radius:var(--nawa-r);padding:26px}
.nawa-carte h3{margin-bottom:8px}
.nawa-carte p{font-size:.95rem;color:var(--nawa-texte);margin-bottom:0}

/* Fiche parcours, plus affirmée. */
.nawa-parcours{background:var(--nawa-surface);border:1.5px solid var(--nawa-bord-fort);
  border-radius:22px;padding:32px;height:100%}
.nawa-parcours .nawa-surtitre{color:var(--nawa-or)}
.nawa-parcours ul{list-style:none;padding:0;margin:16px 0 0}
.nawa-parcours li{font-size:.93rem;color:var(--nawa-texte);
  padding:6px 0 6px 24px;position:relative}
.nawa-parcours li::before{content:'';position:absolute;left:4px;top:15px;
  width:7px;height:7px;border-radius:50%;background:var(--nawa-or)}

/* Frise numérotée : les numéros sont dans le texte, pas en CSS, pour
   que vous puissiez en ajouter ou en retirer sans rien casser. */
.nawa-frise .wp-block-columns{gap:22px;margin-bottom:34px;align-items:flex-start}
.nawa-frise .wp-block-column:first-child{flex-basis:47px!important;flex-grow:0}
.nawa-etape-n{width:47px;height:47px;border-radius:15px;background:var(--nawa-fond-3);
  color:var(--nawa-titre);display:flex;align-items:center;justify-content:center;
  font-family:var(--nawa-fd);font-weight:600;font-size:1.1rem;margin:0}
.nawa-frise .wp-block-columns:first-of-type .nawa-etape-n{
  background:var(--nawa-prune);color:var(--nawa-sur-prune)}
.nawa-jalons{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;list-style:none;padding:0}
.nawa-jalons li{font-size:.8rem;color:var(--nawa-texte);background:var(--nawa-fond-2);
  border:1px solid var(--nawa-bord);padding:6px 13px;border-radius:999px;margin:0}

/* Encart d'avertissement — les mentions obligatoires. */
.nawa-avert{display:block;background:var(--nawa-fond-2);
  border:1px solid var(--nawa-bord);border-left:3px solid var(--nawa-bord-fort);
  border-radius:14px;padding:17px 20px;
  font-size:.89rem;color:var(--nawa-texte);line-height:1.6;margin:26px 0 0}
.nawa-avert p{margin:0}
.nawa-avert.est-attention{background:var(--nawa-dgr-fond);border-color:transparent;
  border-left-color:var(--nawa-dgr)}
.nawa-avert.est-attention strong{color:var(--nawa-dgr)}
.nawa-avert.est-bien{background:var(--nawa-ok-fond);border-color:transparent;
  border-left-color:var(--nawa-ok)}
.nawa-avert.est-bien strong{color:var(--nawa-ok)}
.nawa-avert.est-ecrire{background:var(--nawa-or-fond);border-color:transparent;
  border-left-color:var(--nawa-or)}

/* Ce que MONNAWA ne fera jamais. */
.nawa-jamais{list-style:none;padding:0;display:grid;grid-template-columns:1fr;gap:12px;margin:34px 0 0}
@media (min-width:700px){.nawa-jamais{grid-template-columns:1fr 1fr}}
.nawa-jamais li{background:var(--nawa-surface);border:1px solid var(--nawa-bord);
  border-radius:14px;padding:15px 18px;font-size:.92rem;color:var(--nawa-texte);
  margin:0;padding-left:46px;position:relative}
.nawa-jamais li::before{content:'✕';position:absolute;left:16px;top:15px;
  width:22px;height:22px;border-radius:50%;background:var(--nawa-dgr-fond);
  color:var(--nawa-dgr);display:flex;align-items:center;justify-content:center;
  font-size:.72rem;font-weight:700}

/* Fiches des vingt activités. */
.nawa-metier{background:var(--nawa-surface);border:1px solid var(--nawa-bord);
  border-radius:var(--nawa-r);padding:24px 26px;height:100%}
.nawa-metier h3{font-size:1.14rem;margin-bottom:0}
.nawa-metier .nawa-pilule{display:inline-block;font-size:.66rem;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;color:var(--nawa-or);
  background:var(--nawa-or-fond);padding:4px 10px;border-radius:999px;margin:8px 0 0}
.nawa-metier p{font-size:.92rem;margin:11px 0 0;line-height:1.6}
.nawa-metier .nawa-faits{display:grid;grid-template-columns:auto 1fr;gap:7px 16px;
  margin:17px 0 0;padding:15px 0 0;border-top:1px solid var(--nawa-bord);
  font-size:.85rem;list-style:none}
.nawa-metier .nawa-faits li{display:contents}
.nawa-metier .nawa-faits b{color:var(--nawa-texte-3);font-weight:600}

/* Fiche verrouillée : l'activité est nommée, son dossier ne l'est pas.
   La carte doit rester belle et lisible — une grille de quarante
   cartes qui ne montrent qu'un cadenas passerait pour une page
   cassée, pas pour une réserve délibérée. */
.nawa-metier.est-verrouille{display:flex;flex-direction:column}
.nawa-metier .nawa-verrou{margin:17px 0 0;padding:15px 0 0;
  border-top:1px solid var(--nawa-bord);font-size:.84rem;line-height:1.6;
  color:var(--nawa-texte-3);margin-top:auto}
.nawa-metier .nawa-verrou a{font-weight:600;white-space:nowrap}
.nawa-cadenas{display:inline-block;width:13px;height:13px;margin-right:7px;
  vertical-align:-1px;background:currentColor;opacity:.55;
  -webkit-mask:var(--nawa-svg-cadenas) center/contain no-repeat;
  mask:var(--nawa-svg-cadenas) center/contain no-repeat}
/* Sommaire d'un dossier : quarante titres doivent tenir sans écraser
   la page — deux colonnes serrées, corps réduit, aucune puce. */
.nawa-sommaire{margin:14px 0 0;padding:0;list-style:none;
  columns:2;column-gap:26px;font-size:.83rem;line-height:1.75;
  color:var(--nawa-texte)}
.nawa-sommaire li{break-inside:avoid}
@media (max-width:600px){.nawa-sommaire{columns:1}}

/* Extrait de dossier : cité, donc visuellement détaché du reste. */
.nawa-extrait{margin:14px 0 0;padding:16px 18px;border-radius:12px;
  background:var(--nawa-fond);border-left:3px solid var(--nawa-or);
  font-size:.9rem;line-height:1.7}
.nawa-note{margin:14px 0 0;font-size:.85rem;color:var(--nawa-texte-3);
  line-height:1.65}

:root{--nawa-svg-cadenas:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 9V7a5 5 0 0 0-10 0v2H5v13h14V9h-2zM9 7a3 3 0 1 1 6 0v2H9V7z'/%3E%3C/svg%3E")}

/* Chiffres mis en avant. */
.nawa-chiffre{background:var(--nawa-surface);border:1px solid var(--nawa-bord);
  border-radius:16px;padding:22px;height:100%}
.nawa-chiffre .nawa-gros{display:block;font-family:var(--nawa-fd);font-size:2rem;
  font-weight:600;color:var(--nawa-titre);letter-spacing:-.02em;margin:0}
.nawa-chiffre p{font-size:.85rem;margin:5px 0 0;line-height:1.45}

/* Formules. */
.nawa-formule{background:var(--nawa-surface);border:1px solid var(--nawa-bord);
  border-radius:20px;padding:28px;height:100%;display:flex;flex-direction:column}
.nawa-formule.est-mise{border-color:var(--nawa-or);border-width:1.5px}
.nawa-formule .nawa-prix{font-family:var(--nawa-fd);font-size:2.4rem;font-weight:600;
  color:var(--nawa-titre);margin:10px 0 2px;letter-spacing:-.02em}
.nawa-formule .nawa-prix small{font-size:.9rem;font-family:var(--nawa-fb);
  font-weight:500;color:var(--nawa-texte-3);letter-spacing:0}
.nawa-formule ul{list-style:none;padding:0;margin:18px 0 22px;flex:1}
.nawa-formule li{font-size:.9rem;color:var(--nawa-texte);padding:6px 0 6px 24px;
  position:relative;line-height:1.5;margin:0}
.nawa-formule li::before{content:'✓';position:absolute;left:0;top:6px;
  color:var(--nawa-ok);font-weight:700;font-size:.85rem}
.nawa-formule .wp-block-buttons{margin-top:auto}

/* Accordéons — bloc « Détails » de WordPress. */
.wp-block-details{border-bottom:1px solid var(--nawa-bord);padding:4px 0;
  border-radius:0;background:none;margin:0}
.wp-block-details summary{cursor:pointer;list-style:none;padding:18px 0;
  font-weight:650;font-size:1rem;color:var(--nawa-titre);text-transform:none;
  display:flex;align-items:center;gap:14px}
.wp-block-details summary::-webkit-details-marker{display:none}
.wp-block-details summary::after{content:'+';margin-left:auto;color:var(--nawa-texte-3);
  font-size:1.4rem;font-weight:400;line-height:1;transition:transform .2s}
.wp-block-details[open] summary::after{transform:rotate(45deg)}
.wp-block-details p{padding:0 0 6px;font-size:.95rem;color:var(--nawa-texte);max-width:62ch}
.wp-block-details > :last-child{padding-bottom:20px}

/* Tableau comparatif. */
.wp-block-table.nawa-cmp{overflow-x:auto;margin:34px 0 0}
.wp-block-table.nawa-cmp table{border:0;border-collapse:collapse;width:100%;font-size:.9rem}
.wp-block-table.nawa-cmp th,.wp-block-table.nawa-cmp td{
  border:0;border-bottom:1px solid var(--nawa-bord);padding:13px 16px;
  text-align:left;vertical-align:top;color:var(--nawa-texte)}
.wp-block-table.nawa-cmp thead th{font-size:.7rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--nawa-texte-3);white-space:nowrap;
  background:var(--nawa-fond-2)}
.wp-block-table.nawa-cmp tbody td:first-child{font-weight:600;color:var(--nawa-titre)}
.wp-block-table.nawa-cmp tbody tr:last-child td{border-bottom:0}


/* ── 5. Les modules interactifs ───────────────────────────────────
   Diagnostic, calculateur et espace membre. Ce sont des applications :
   elles vivent dans des blocs « HTML personnalisé » et leur mise en
   forme est ici. Vous n'avez pas à les modifier. */

/* Calculateur d'accueil. */
.nawa-calc{background:var(--nawa-surface);border:1px solid var(--nawa-bord-fort);
  border-radius:22px;padding:28px;box-shadow:0 22px 52px -30px rgba(27,16,38,.3)}
.nawa-calc .t{font-family:var(--nawa-fd);font-size:1.15rem;font-weight:600;
  color:var(--nawa-titre);margin-bottom:4px}
.nawa-calc .st{font-size:.85rem;color:var(--nawa-texte);margin-bottom:20px}
.nawa-fld{margin-bottom:15px}
.nawa-fld label{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  font-size:.85rem;color:var(--nawa-texte);margin-bottom:7px}
.nawa-fld label b{font-family:var(--nawa-fd);font-size:1.02rem;color:var(--nawa-titre);font-weight:600}
.nawa-fld input[type=range]{width:100%;accent-color:var(--nawa-prune);
  -webkit-appearance:auto;appearance:auto;border:0;background:none;padding:0}
.nawa-out{margin-top:22px;padding-top:20px;border-top:1px solid var(--nawa-bord);
  display:grid;grid-template-columns:1fr 1fr;gap:11px}
.nawa-out .c{background:var(--nawa-fond-2);border:1px solid var(--nawa-bord);
  border-radius:14px;padding:13px 15px}
.nawa-out .c .l{font-size:.65rem;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--nawa-texte-3)}
.nawa-out .c .v{font-family:var(--nawa-fd);font-size:1.45rem;font-weight:600;
  color:var(--nawa-titre);margin-top:2px}
.nawa-out .c .h{font-size:.74rem;color:var(--nawa-texte-3);margin-top:1px}
.nawa-out .c.big{grid-column:span 2;background:var(--nawa-or-fond);border-color:transparent}
.nawa-out .c.big .l{color:var(--nawa-or)}
.nawa-out .c.neg .v{color:var(--nawa-dgr)}
.nawa-calc .note{font-size:.76rem;color:var(--nawa-texte-3);margin-top:16px;line-height:1.5}

/* Questionnaire. */
.nawa-qz{background:var(--nawa-surface);border:1.5px solid var(--nawa-bord-fort);
  border-radius:22px;padding:30px 28px;box-shadow:0 18px 44px -28px rgba(27,16,38,.26)}
@media (max-width:520px){.nawa-qz{padding:24px 20px}}
.nawa-qz .prog{height:5px;background:var(--nawa-fond-3);border-radius:999px;
  overflow:hidden;margin-bottom:24px}
.nawa-qz .prog i{display:block;height:100%;background:var(--nawa-prune);
  border-radius:999px;transition:width .3s ease}
.nawa-etq{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--nawa-texte-3);margin-bottom:9px}
.nawa-qz h3{font-size:1.28rem;line-height:1.25;margin-bottom:20px}
.nawa-opts{display:grid;gap:10px}
.nawa-opt{display:flex;align-items:center;gap:14px;width:100%;text-align:left;cursor:pointer;
  background:var(--nawa-fond-2);border:1.5px solid var(--nawa-bord);border-radius:14px;
  padding:15px 17px;font-size:.95rem;color:var(--nawa-titre);min-height:56px;
  font-family:var(--nawa-fb);transition:border-color .16s,background .16s}
.nawa-opt:hover{border-color:var(--nawa-bord-fort);background:var(--nawa-fond-3)}
.nawa-opt[aria-pressed=true]{border-color:var(--nawa-prune);background:var(--nawa-or-fond)}
.nawa-opt .b{flex:none;width:20px;height:20px;border-radius:50%;
  border:2px solid var(--nawa-bord-fort);display:flex;align-items:center;justify-content:center}
.nawa-opt[aria-pressed=true] .b{border-color:var(--nawa-prune);background:var(--nawa-prune)}
.nawa-opt[aria-pressed=true] .b::after{content:'';width:7px;height:7px;border-radius:50%;
  background:var(--nawa-sur-prune)}
.nawa-nav{display:flex;gap:10px;margin-top:22px;align-items:center;flex-wrap:wrap}
.nawa-mini{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--nawa-fb);font-weight:600;font-size:.9rem;padding:11px 22px;min-height:44px;
  border-radius:999px;cursor:pointer;border:1.5px solid var(--nawa-bord-fort);
  background:transparent;color:var(--nawa-titre)}
.nawa-mini.est-plein{background:var(--nawa-prune);color:var(--nawa-sur-prune);border-color:transparent}
.nawa-mini.est-or{background:var(--nawa-or);color:#fff;border-color:transparent;text-decoration:none}
.nawa-mini:disabled{opacity:.4;cursor:not-allowed}

/* Résultat du diagnostic. */
.nawa-res .top{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-bottom:24px}
.nawa-anneau{flex:none;width:96px;height:96px;border-radius:50%;display:flex;
  align-items:center;justify-content:center;font-family:var(--nawa-fd);font-size:1.7rem;
  font-weight:600;color:var(--nawa-titre);
  background:conic-gradient(var(--nawa-or) calc(var(--p,0)*1%),var(--nawa-fond-3) 0)}
.nawa-anneau i{width:76px;height:76px;border-radius:50%;background:var(--nawa-surface);
  display:flex;align-items:center;justify-content:center;font-style:normal}
.nawa-rang{display:flex;flex-direction:column;gap:11px;margin-top:6px}
.nawa-rg{display:grid;grid-template-columns:26px 1fr auto;gap:14px;align-items:center;
  background:var(--nawa-fond-2);border:1px solid var(--nawa-bord);
  border-radius:var(--nawa-r-s);padding:13px 16px}
.nawa-rg .p{font-family:var(--nawa-fd);font-size:1rem;font-weight:600;color:var(--nawa-texte-3)}
.nawa-rg .nm{font-size:.94rem;font-weight:600;color:var(--nawa-titre)}
.nawa-rg .nm small{display:block;font-weight:400;font-size:.81rem;
  color:var(--nawa-texte);margin-top:2px}
.nawa-rg .sc{font-family:var(--nawa-fd);font-size:1.18rem;font-weight:600;color:var(--nawa-or)}
.nawa-rg.est-floue .sc{filter:blur(6px);user-select:none}
.nawa-rg.est-floue .nm{color:var(--nawa-texte-3);font-weight:500}
.nawa-porte{background:var(--nawa-fond-3);border:1px dashed var(--nawa-bord-fort);
  border-radius:16px;padding:24px;text-align:center;margin-top:16px}
.nawa-porte p{font-size:.93rem;color:var(--nawa-texte);margin:0 auto 16px;max-width:46ch}

/* Espace membre. */
.nawa-mbar{display:flex;gap:20px;align-items:center;flex-wrap:wrap;
  background:var(--nawa-surface);border:1px solid var(--nawa-bord);
  border-radius:20px;padding:24px 26px}
.nawa-mbar .who{flex:1;min-width:200px}
.nawa-mbar .who h2{font-size:1.45rem;margin:4px 0 0}
.nawa-niv{display:flex;gap:16px;align-items:center}
.nawa-niv .lb{font-size:.8rem;color:var(--nawa-texte)}
.nawa-niv .lb b{display:block;font-family:var(--nawa-fd);font-size:1.05rem;
  color:var(--nawa-titre);font-weight:600}
.nawa-mgrid{display:grid;grid-template-columns:1fr;gap:18px;margin-top:20px;align-items:start}
@media (min-width:900px){.nawa-mgrid{grid-template-columns:1.4fr 1fr}}
.nawa-mcard{background:var(--nawa-surface);border:1px solid var(--nawa-bord);
  border-radius:var(--nawa-r);padding:24px 26px}
.nawa-mcard h3{font-size:1.08rem;margin-bottom:4px}
.nawa-mcard .st{font-size:.85rem;color:var(--nawa-texte-3);margin:0 0 16px}
.nawa-onglets{display:flex;gap:6px;background:var(--nawa-fond-2);border:1px solid var(--nawa-bord);
  border-radius:999px;padding:5px;margin:0 0 18px;flex-wrap:wrap;width:fit-content;max-width:100%}
.nawa-onglets button{background:transparent;color:var(--nawa-texte);font-size:.88rem;
  font-weight:600;padding:9px 18px;border:0;border-radius:999px;cursor:pointer;
  min-height:42px;font-family:var(--nawa-fb)}
.nawa-onglets button[aria-selected=true]{background:var(--nawa-surface);color:var(--nawa-titre);
  box-shadow:0 1px 3px rgba(27,16,38,.09)}
.nawa-tk{display:flex;gap:13px;align-items:flex-start;padding:12px 0;
  border-bottom:1px solid var(--nawa-bord);cursor:pointer;width:100%;text-align:left;
  background:none;border-left:0;border-right:0;border-top:0;font-family:var(--nawa-fb)}
.nawa-tk:last-child{border-bottom:0}
.nawa-tk .bx{flex:none;width:21px;height:21px;border-radius:7px;
  border:2px solid var(--nawa-bord-fort);display:flex;align-items:center;
  justify-content:center;margin-top:1px;transition:background .16s,border-color .16s}
.nawa-tk[aria-pressed=true] .bx{background:var(--nawa-ok);border-color:var(--nawa-ok)}
.nawa-tk[aria-pressed=true] .bx::after{content:'';width:5px;height:9px;border:solid #fff;
  border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-1px)}
.nawa-tk .tx{font-size:.93rem;color:var(--nawa-titre);line-height:1.5}
.nawa-tk[aria-pressed=true] .tx{color:var(--nawa-texte-3);text-decoration:line-through}
.nawa-etat{font-size:.79rem;color:var(--nawa-texte-3);margin-top:14px;min-height:1.2em}
.nawa-etat.est-ko{color:var(--nawa-dgr)}
.nawa-pk{display:flex;align-items:center;gap:13px;background:var(--nawa-fond-2);
  border:1px solid var(--nawa-bord);border-radius:var(--nawa-r-s);padding:14px 16px;
  margin-bottom:10px}
.nawa-pk .nm{flex:1;font-size:.92rem;font-weight:600;color:var(--nawa-titre)}
.nawa-pk .nm small{display:block;font-weight:400;color:var(--nawa-texte-3);
  font-size:.79rem;margin-top:2px}
.nawa-barre{height:8px;background:var(--nawa-fond-3);border-radius:999px;overflow:hidden}
.nawa-barre i{display:block;height:100%;width:0;background:var(--nawa-ok);
  border-radius:999px;transition:width .35s ease}


/* ── 6. Paid Member Subscriptions ─────────────────────────────────
   Ses écrans — inscription, connexion, compte, paiement — sont livrés
   sans habillage. On leur donne celui du site : sans quoi le tunnel de
   paiement ressemble à un autre site, ce qui fait abandonner au pire
   moment. Sélecteurs relevés dans sa feuille style-front-end.css. */
.pms-form{background:var(--nawa-surface);border:1px solid var(--nawa-bord);
  border-radius:var(--nawa-r);padding:26px;max-width:560px}
.pms-field{margin-bottom:16px}
.pms-field label{display:block;font-size:.87rem;font-weight:600;
  color:var(--nawa-titre);margin-bottom:6px}
.pms-field-description{font-size:.8rem;color:var(--nawa-texte-3);margin-top:5px}
.pms-field-required-asterix{color:var(--nawa-dgr)}
.pms-form input[type=text],.pms-form input[type=email],
.pms-form input[type=password],.pms-form input[type=tel],
.pms-form select,.pms-form textarea{
  width:100%;background:var(--nawa-fond-2);border:1.5px solid var(--nawa-bord);
  border-radius:12px;padding:13px 15px;font-family:var(--nawa-fb);font-size:1rem;
  color:var(--nawa-titre);-webkit-appearance:none;appearance:none}
.pms-form select{-webkit-appearance:auto;appearance:auto}
.pms-form input:focus,.pms-form select:focus,.pms-form textarea:focus{
  border-color:var(--nawa-prune);outline:none}
.pms-field-error input{border-color:var(--nawa-dgr)}

/* Le bouton d'envoi : c'est lui qu'on clique pour payer. */
.pms-form-submit,.pms-form input[type=submit],.pms-form button[type=submit]{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--nawa-prune);color:var(--nawa-sur-prune);
  font-family:var(--nawa-fb);font-weight:600;font-size:.97rem;
  padding:15px 30px;min-height:52px;border:0;border-radius:999px;cursor:pointer;
  width:auto;text-shadow:none;box-shadow:none;line-height:1.2}
.pms-form-submit:hover,.pms-form input[type=submit]:hover{filter:brightness(1.14)}
.pms-submit-disabled{opacity:.5;cursor:not-allowed}

/* Choix de l'abonnement, au moment de l'inscription. */
.pms-subscription-plan{background:var(--nawa-fond-2);border:1.5px solid var(--nawa-bord);
  border-radius:var(--nawa-r-s);padding:16px 18px;margin-bottom:11px}
.pms-subscription-plan-name{font-weight:650;color:var(--nawa-titre)}
.pms-subscription-plan-description{font-size:.88rem;color:var(--nawa-texte);margin-top:4px}

/* Messages : succès, erreur, avertissement, contenu réservé. */
.pms_success-messages-wrapper,.pms-form-errors-wrapper,
.pms_field-errors-wrapper,.pms-warning-message-wrapper,
.pms-login-error,.pms-payment-error,.pms-stripe-error-message{
  border-radius:14px;padding:14px 17px;font-size:.9rem;border:0;margin-bottom:16px}
.pms_success-messages-wrapper{background:var(--nawa-ok-fond);color:var(--nawa-ok)}
.pms-form-errors-wrapper,.pms_field-errors-wrapper,.pms-login-error,
.pms-payment-error,.pms-stripe-error-message{
  background:var(--nawa-dgr-fond);color:var(--nawa-dgr)}
.pms-warning-message-wrapper{background:var(--nawa-or-fond);color:var(--nawa-titre)}

/* La page « mon compte » : navigation et abonnements en cours. */
.pms-account-navigation{display:flex;flex-wrap:wrap;gap:6px;
  background:var(--nawa-fond-2);border:1px solid var(--nawa-bord);
  border-radius:999px;padding:5px;margin-bottom:24px;width:fit-content;max-width:100%}
.pms-account-navigation-link{padding:9px 18px;border-radius:999px;
  font-size:.9rem;font-weight:600;color:var(--nawa-texte);text-decoration:none}
.pms-account-navigation-link--active{background:var(--nawa-surface);
  color:var(--nawa-titre);box-shadow:0 1px 3px rgba(27,16,38,.09)}
.pms-account-subscriptions-header,.pms-subscription-plans-header{
  font-family:var(--nawa-fd);font-weight:600;color:var(--nawa-titre);margin-bottom:12px}
.pms-account-subscription{background:var(--nawa-surface);border:1px solid var(--nawa-bord);
  border-radius:var(--nawa-r);padding:20px 22px;margin-bottom:14px}
.pms-subscription-status{font-size:.72rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;padding:4px 10px;border-radius:999px;
  background:var(--nawa-ok-fond);color:var(--nawa-ok)}
.pms-subscription-plan-expiration{font-size:.86rem;color:var(--nawa-texte);margin-top:6px}
.pms-account-subscription-action-link{display:inline-flex;align-items:center;
  justify-content:center;font-family:var(--nawa-fb);font-weight:600;font-size:.88rem;
  padding:10px 20px;min-height:42px;border-radius:999px;text-decoration:none;
  border:1.5px solid var(--nawa-bord-fort);color:var(--nawa-titre);margin-right:8px}
.pms-account-subscription-action-link:hover{background:var(--nawa-fond-2)}
.pms-table{width:100%;border-collapse:collapse;font-size:.89rem}
.pms-table th,.pms-table td{padding:11px 14px;text-align:left;
  border-bottom:1px solid var(--nawa-bord);color:var(--nawa-texte)}

/* Le message affiché à la place d'un contenu réservé. */
.pms-restricted-content-message,.entry-content .pms-restrict{
  background:var(--nawa-fond-3);border:1px dashed var(--nawa-bord-fort);
  border-radius:16px;padding:24px;text-align:center}

.pms-spinner,.pms-loader{color:var(--nawa-prune)}

/* ── 7. Consentements à la commande ───────────────────────────────
   Les deux cases obligatoires avant paiement : acceptation des CGV et
   renonciation au droit de rétractation. Elles sont volontairement
   traitées comme un bloc à part, encadré, entre le choix de la formule
   et le bouton — c'est le dernier geste avant de payer, il ne doit pas
   se confondre avec le reste du formulaire.
   Aucune case n'est pré-cochée : ce serait sans valeur juridique. */

.nawa-consent{margin:22px 0 6px;padding:18px 20px;
  background:var(--nawa-fond-2);border:1px solid var(--nawa-bord);
  border-radius:var(--nawa-r)}
.nawa-consent-case{margin:0 0 12px}
.nawa-consent-case:last-of-type{margin-bottom:0}
.nawa-consent-case label{display:flex;gap:11px;align-items:flex-start;
  cursor:pointer;font-size:.88rem;line-height:1.55;
  font-weight:400;color:var(--nawa-texte);letter-spacing:0}
.nawa-consent-case input[type=checkbox]{flex:0 0 auto;width:18px;height:18px;
  margin:2px 0 0;accent-color:var(--nawa-prune);cursor:pointer}
.nawa-consent-case a{color:var(--nawa-prune);text-decoration:underline;
  text-underline-offset:2px}
.nawa-consent-case strong{font-weight:600;color:var(--nawa-titre)}
.nawa-consent-case.est-en-erreur label{color:var(--nawa-dgr)}
.nawa-consent-case.est-en-erreur input[type=checkbox]{outline:2px solid var(--nawa-dgr);
  outline-offset:2px}
.nawa-consent-erreur{margin:-6px 0 12px 29px;font-size:.82rem;
  color:var(--nawa-dgr)}

/* Extrait en liste : même famille visuelle que l'extrait en prose. */
.nawa-erreurs{margin:12px 0 0;padding:0;list-style:none;font-size:.88rem;
  line-height:1.7}
.nawa-erreurs li{padding-left:20px;position:relative;margin-bottom:5px;
  list-style:none}
/* Astra pose sa puce via ::marker : la neutraliser, sinon elle se
   superpose au « × » et l'on voit deux signes empilés. */
.nawa-erreurs li::marker{content:''}
/* La liste vit dans un bloc .nawa-parcours, dont la règle li::before
   dessine une pastille. Les propriétés d'un même pseudo-élément se
   cumulent : sans remise à zéro, la pastille et le « × » s'empilent. */
.nawa-erreurs li::before{content:'×';position:absolute;left:2px;top:-1px;
  color:var(--nawa-or);font-weight:700;
  background:none;width:auto;height:auto;border-radius:0}

/* ── L'attribut hidden doit toujours l'emporter ─────────────────────
   Les composants du site montrent et cachent des blocs en posant
   l'attribut « hidden » sur l'élément. Cet attribut n'a que la force
   d'une règle du navigateur : la moindre classe qui déclare un
   « display » le neutralise, et le bloc reste visible alors que le
   code le croit caché. C'est ce qui laissait le bandeau « Mode
   démonstration » affiché sur l'espace membre. */
[hidden]{display:none !important}

/* Bouton « Choisir » dans le classement du diagnostic ────────────────
   La ligne est une grille de trois colonnes. Le score et le bouton
   occupent ensemble la dernière, sans quoi le bouton bascule à la ligne
   suivante dans la colonne étroite du rang et s'affiche tronqué. */
.nawa-rg .fin{display:flex;align-items:center;gap:14px;justify-content:flex-end}
.nawa-choix{padding:8px 16px;min-height:38px;font-size:.85rem;white-space:nowrap}
.nawa-choix.est-choisi{background:var(--nawa-ok,#1f7a4d);border-color:transparent;
  color:#fff;opacity:1}
@media (max-width:560px){
  .nawa-rg{grid-template-columns:26px 1fr}
  .nawa-rg .fin{grid-column:1 / -1;justify-content:space-between;margin-top:8px}
}

/* Explication dépliable sous chaque tâche du plan de 90 jours ────────
   La case à cocher dit quoi faire ; l'explication dit comment. Elle est
   repliée par défaut pour que la liste reste lisible d'un coup d'œil. */
.nawa-tache{display:block}
.nawa-comment{display:inline-block;margin:2px 0 0 42px;padding:4px 0;
  background:none;border:0;cursor:pointer;font-family:var(--nawa-fb);
  font-size:.82rem;font-weight:600;color:var(--nawa-or);text-decoration:underline;
  text-underline-offset:3px}
.nawa-comment:hover{color:var(--nawa-prune)}
.nawa-aide{margin:6px 0 14px 42px;padding:12px 14px;border-radius:12px;
  background:var(--nawa-fond-2);border:1px solid var(--nawa-bord);
  font-size:.87rem;line-height:1.65;color:var(--nawa-texte)}
@media (max-width:560px){
  .nawa-comment,.nawa-aide{margin-left:0}
}

/* ══════════════════════════════════════════════════════════════════
   DOSSIERS COMPLETS  —  /dossiers/<activité>
   ══════════════════════════════════════════════════════════════════
   Quarante rubriques sur une page : sans sommaire ni repli, personne
   n'y retrouve rien. Chaque rubrique est un <details> replié ; le
   sommaire les ouvre et amène la bonne au bon endroit. */

.nawa-sommaire ol{columns:2;column-gap:34px;margin:10px 0 0;padding-left:20px;
  font-size:.88rem;line-height:1.85}
.nawa-sommaire li{break-inside:avoid}
.nawa-sommaire a{color:var(--nawa-texte);text-decoration:none}
.nawa-sommaire a:hover{color:var(--nawa-or);text-decoration:underline;
  text-underline-offset:3px}

.nawa-plier{margin:22px 0 0;text-align:right}

.nawa-dossier{margin:10px 0 26px}
.nawa-dossier .wp-block-details summary{gap:12px;font-family:var(--nawa-fb);
  font-weight:600;scroll-margin-top:90px}
.nawa-rn{display:inline-flex;align-items:center;justify-content:center;
  min-width:26px;height:26px;border-radius:8px;background:var(--nawa-fond-2);
  border:1px solid var(--nawa-bord);font-size:.76rem;font-weight:700;
  color:var(--nawa-texte-3);flex:none}
.nawa-dossier details[open] .nawa-rn{background:var(--nawa-or-fond);
  border-color:var(--nawa-or);color:var(--nawa-prune)}
.nawa-rb{padding:2px 0 22px;max-width:70ch;font-size:.95rem;line-height:1.7}
.nawa-rb > :first-child{margin-top:0}
.nawa-rb ul,.nawa-rb ol{padding-left:22px;margin:0 0 10px}
.nawa-rb li{margin:0 0 7px}

/* Tableaux de chiffres — budget, offres, prix. */
.nawa-tbl{overflow-x:auto;margin:0 0 12px}
.nawa-tbl table{width:100%;border-collapse:collapse;font-size:.9rem}
.nawa-tbl th,.nawa-tbl td{padding:9px 12px;border-bottom:1px solid var(--nawa-bord);
  text-align:left;vertical-align:top}
.nawa-tbl th{font-family:var(--nawa-fb);font-size:.78rem;text-transform:uppercase;
  letter-spacing:.04em;color:var(--nawa-texte-3);background:var(--nawa-fond-2)}
.nawa-tbl td small{display:block;margin-top:3px;font-size:.79rem;
  color:var(--nawa-texte-3);line-height:1.5}
.nawa-tbl .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.nawa-tbl .tot td{border-bottom:0;border-top:2px solid var(--nawa-bord)}

/* Objections : la question, puis la réponse. */
.nawa-obj{margin:0 0 14px;padding:12px 14px;border-radius:12px;
  background:var(--nawa-fond-2);border:1px solid var(--nawa-bord)}
.nawa-obj .q{margin:0 0 6px;font-family:var(--nawa-fb);font-weight:600;
  color:var(--nawa-prune)}
.nawa-obj p{margin:0;font-size:.9rem;line-height:1.65}

/* Scripts et modèles : à recopier tels quels. */
.nawa-modele{margin:0 0 12px}
.nawa-modele pre{margin:0;padding:14px 16px;border-radius:12px;
  background:var(--nawa-fond-2);border:1px solid var(--nawa-bord);
  white-space:pre-wrap;word-wrap:break-word;font-family:inherit;
  font-size:.88rem;line-height:1.65;color:var(--nawa-texte)}
.nawa-modele .nawa-copier{margin-top:10px}

/* Rubrique fermée à clé, pour qui n'a pas encore de formule. */
.nawa-verrouille{display:flex;align-items:center;gap:12px;padding:18px 0;
  border-bottom:1px solid var(--nawa-bord);font-family:var(--nawa-fb);
  font-weight:600;color:var(--nawa-texte-3)}
.nawa-verrouille .nawa-rn{opacity:.6}
.nawa-verrouille .nawa-cadenas{margin-left:auto;font-size:.9rem;opacity:.65}

/* ══════════════════════════════════════════════════════════════════
   CALCULATEURS  —  /outils/<calculateur>
   ══════════════════════════════════════════════════════════════════ */

.nawa-outil{margin:18px 0 6px}
.nawa-champs{display:grid;gap:14px;margin:14px 0 20px}
.nawa-ch{display:grid;grid-template-columns:1fr 150px;gap:14px;align-items:center}
.nawa-ch label{font-size:.92rem;font-weight:600;font-family:var(--nawa-fb);
  color:var(--nawa-texte)}
.nawa-ch label small{display:block;margin-top:3px;font-family:var(--nawa-fb);
  font-size:.79rem;font-weight:400;color:var(--nawa-texte-3);line-height:1.5}
.nawa-num{display:flex;align-items:center;gap:6px;padding:0 12px;
  border:1px solid var(--nawa-bord);border-radius:12px;background:var(--nawa-surface)}
.nawa-num:focus-within{border-color:var(--nawa-or);
  box-shadow:0 0 0 3px var(--nawa-or-fond)}
.nawa-num input{width:100%;padding:11px 0;border:0;background:none;
  font-family:var(--nawa-fb);font-size:1rem;font-weight:600;
  color:var(--nawa-prune);text-align:right;font-variant-numeric:tabular-nums}
.nawa-num input:focus{outline:none}
.nawa-num i{font-style:normal;font-size:.85rem;color:var(--nawa-texte-3)}
.nawa-outil .nawa-out .c.neg .v{color:var(--nawa-dgr)}

@media (max-width:600px){
  .nawa-sommaire ol{columns:1}
  .nawa-ch{grid-template-columns:1fr;gap:6px}
  .nawa-num input{text-align:left}
}

/* ══════════════════════════════════════════════════════════════════
   AVIS DES MEMBRES
   Les étoiles sont du texte (★), pas une image ni une police d'icônes :
   elles restent nettes à tous les zooms, se copient avec le texte et ne
   dépendent d'aucun fichier extérieur qui pourrait manquer un jour.
   ══════════════════════════════════════════════════════════════════ */
.nawa-avis-bloc{margin:26px 0}
.nawa-etoiles{display:inline-flex;gap:2px;line-height:1;letter-spacing:1px}
.nawa-etoiles .e{color:var(--nawa-bord-fort);font-size:1rem}
.nawa-etoiles .e.p{color:var(--nawa-or)}
.nawa-etoiles.gr .e{font-size:1.45rem}

.nawa-avis-tete{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:16px 18px;margin:0 0 18px;border-radius:var(--nawa-r-s);
  background:var(--nawa-or-fond);border:1px solid var(--nawa-bord)}
.nawa-avis-tete .ch{font-family:var(--nawa-fd);font-size:1.35rem;font-weight:600;
  color:var(--nawa-titre)}
.nawa-avis-tete .nb{font-size:.85rem;color:var(--nawa-texte-3)}
.nawa-avis-vide{font-size:.92rem;color:var(--nawa-texte-3);margin:0 0 18px}
.nawa-avis-tri{font-size:.79rem;color:var(--nawa-texte-3);margin:22px 0 12px}

.nawa-avis{background:var(--nawa-surface);border:1px solid var(--nawa-bord);
  border-radius:var(--nawa-r-s);padding:18px 20px;margin:0 0 12px}
.nawa-avis header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin:0 0 10px}
.nawa-avis header b{font-size:.92rem;color:var(--nawa-titre)}
.nawa-avis header time{font-size:.79rem;color:var(--nawa-texte-3)}
.nawa-avis p{margin:0;font-size:.95rem;line-height:1.65;color:var(--nawa-texte);
  max-width:70ch}

/* ── Le formulaire ─────────────────────────────────────────────── */
.nawa-avis-form{background:var(--nawa-surface);border:1.5px solid var(--nawa-bord);
  border-radius:var(--nawa-r);padding:22px 22px 20px;margin:0 0 24px}
.nawa-avis-form h3{font-size:1.08rem;margin:0 0 6px}
.nawa-avis-form .ch{font-size:.88rem;color:var(--nawa-texte-3);margin:0 0 16px;
  line-height:1.6;max-width:62ch}
.nawa-avis-form .ch.pt{font-size:.79rem;margin:12px 0 0}
.nawa-avis-form textarea{width:100%;padding:12px 14px;border-radius:12px;
  border:1px solid var(--nawa-bord);background:var(--nawa-fond);
  font-family:var(--nawa-fb);font-size:.94rem;line-height:1.6;color:var(--nawa-texte)}
.nawa-avis-form textarea:focus{outline:2px solid var(--nawa-or);outline-offset:1px}
.nawa-avis-lbl{display:block;font-size:.82rem;font-weight:600;
  color:var(--nawa-titre);margin:0 0 6px}
.nawa-avis-compteur{font-size:.78rem;color:var(--nawa-texte-3);margin:6px 0 14px}

.nawa-note-champ{border:0;padding:0;margin:0 0 18px}
.nawa-note-champ legend{font-size:.82rem;font-weight:600;color:var(--nawa-titre);
  padding:0;margin:0 0 8px}
.nawa-note-etoiles{display:flex;gap:4px}
.nawa-note-etoiles .ne{cursor:pointer;position:relative;padding:2px}
.nawa-note-etoiles .ne span{font-size:1.9rem;line-height:1;
  color:var(--nawa-bord-fort);transition:color .12s}
.nawa-note-etoiles .ne.on span{color:var(--nawa-or)}
/* Le libellé reste lisible par les lecteurs d'écran sans occuper la page. */
.nawa-note-etoiles .ne em,
.nawa-note-etoiles .ne input{position:absolute;width:1px;height:1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nawa-note-etoiles .ne input:focus-visible + span{outline:2px solid var(--nawa-or);
  outline-offset:2px;border-radius:4px}

.nawa-avis-msg{font-size:.86rem;margin:12px 0 0;min-height:1.2em}
.nawa-avis-msg.err{color:var(--nawa-dgr)}
.nawa-avis-etat{font-size:.84rem;margin:0 0 14px;padding:10px 13px;
  border-radius:11px;background:var(--nawa-fond-2);color:var(--nawa-texte)}
.nawa-avis-etat.refus{background:var(--nawa-dgr-fond);color:var(--nawa-dgr)}
.nawa-avis-note{font-size:.9rem;color:var(--nawa-texte-3);margin:0 0 22px;
  padding:14px 16px;border-radius:var(--nawa-r-s);background:var(--nawa-fond-2)}

.nawa-avis-mentions{margin:26px 0 0;font-size:.85rem;color:var(--nawa-texte-3)}
.nawa-avis-mentions summary{cursor:pointer;font-weight:600;color:var(--nawa-titre);
  padding:10px 0}
.nawa-avis-mentions p{margin:0 0 10px;line-height:1.6;max-width:72ch}


/* ══════════════════════════════════════════════════════════════════
   LA BARRE D ACTION COLLANTE — MOBILE UNIQUEMENT

   Volontairement basse et sobre : une barre qui prend un quart de
   l ecran fait fermer l onglet. Elle est masquee en desktop, ou le
   menu porte deja le bouton de diagnostic.
   ══════════════════════════════════════════════════════════════════ */

.nawa-barre-mobile{display:none}

@media (max-width:781px){
  .nawa-barre-mobile{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    background:var(--nawa-fond);border-top:1px solid var(--nawa-bord);
    box-shadow:0 -6px 20px rgba(43,27,61,.10)}
  .nawa-barre-mobile[hidden]{display:none}

  .nawa-barre-mobile__lien{display:flex;flex-direction:column;align-items:center;gap:2px;
    text-align:center;text-decoration:none;border-radius:var(--nawa-r-s,12px);
    padding:11px 14px;background:var(--nawa-prune);color:#fff}
  .nawa-barre-mobile__lien:hover,
  .nawa-barre-mobile__lien:focus{color:#fff;text-decoration:none}

  .nawa-barre-mobile__texte{font-weight:600;font-size:1rem;line-height:1.2}
  .nawa-barre-mobile__sous{font-size:.76rem;opacity:.85;line-height:1.3}

  /* Sans cela, la barre recouvre les derniers mots de la page. */
  body{padding-bottom:84px}
}
