/*
Theme Name: FitLife Heroes
Theme URI: https://www.fitlifeheroes.com/
Author: FitLife Heroes
Description: Le sport chez toi. Sans matériel, sans excuse. Thème sur-mesure écrit de zéro pour fitlifeheroes.com.
Version: 1.0.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
Text Domain: flheroes
*/

/* ============ Fonts self-hosted (P-086) ============ */
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/oswald-v57-latin-500.woff2") format("woff2");
}
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/oswald-v57-latin-700.woff2") format("woff2");
}
@font-face {
  font-family: "Figtree";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/figtree-v9-latin-regular.woff2") format("woff2");
}
@font-face {
  font-family: "Figtree";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/figtree-v9-latin-600.woff2") format("woff2");
}

/* ============ Tokens — 1 neutre + 1 accent (P-116) ============ */
/* Paires de contraste explicites clair ET sombre (P-110) : chaque fond
   colore posé dans le thème embarque SA couleur de texte, jamais l'héritage. */
:root {
  --fond: #f5f4f1;            /* neutre clair, gris chaud graphite */
  --fond-2: #edebe5;
  --carbone: #201f1c;         /* encre / sections sombres */
  --carbone-2: #2b2a26;
  --trait: #dcdad3;
  --trait-sombre: #3a3833;
  --accent: #a3e635;          /* lime électrique, seule teinte vive */
  --accent-doux: #d9f99d;
  /* contraste CLAIR : texte posé sur fonds clairs (≥ 4.5:1) */
  --texte-sur-fond: #201f1c;        /* 15.4:1 sur #f5f4f1 */
  --texte-2-sur-fond: #56534a;      /*  6.6:1 sur #f5f4f1 */
  --lien-sur-fond: #3f6212;         /*  6.5:1 sur #f5f4f1 (nuance lime foncée) */
  /* contraste SOMBRE : texte posé sur fonds sombres (≥ 4.5:1) */
  --texte-sur-carbone: #f5f4f1;     /* 15.4:1 sur #201f1c */
  --texte-2-sur-carbone: #b6b3aa;   /*  8.0:1 sur #201f1c */
  --lien-sur-carbone: #bef264;      /* 12.4:1 sur #201f1c (nuance lime claire) */
  /* contraste ACCENT : texte posé sur fond lime */
  --texte-sur-accent: #1a2e05;      /*  9.5:1 sur #a3e635 */
  --oswald: "Oswald", "Arial Narrow", sans-serif;
  --figtree: "Figtree", "Helvetica Neue", Arial, sans-serif;
  --marge: clamp(1rem, 4vw, 2rem);
  --largeur: 72rem;
  --colonne: 46rem;
}

/* ============ Base ============ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
body {
  margin: 0;
  background: var(--fond);
  color: var(--texte-sur-fond);
  font-family: var(--figtree);
  font-size: 1.0625rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 {
  font-family: var(--oswald);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: .01em;
  text-transform: uppercase;
  margin: 0 0 .6em;
}
h1 { font-size: clamp(2rem, 5.5vw, 3.4rem); }
h2 { font-size: clamp(1.5rem, 3.5vw, 2.2rem); }
h3 { font-size: clamp(1.15rem, 2.4vw, 1.4rem); }
p { margin: 0 0 1.1em; }
a { color: var(--lien-sur-fond); text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 2px;
  border-radius: 2px;
}
.sombre :focus-visible, .entete :focus-visible, .pied :focus-visible { outline-color: var(--accent); }

/* titre de section : barre d'élan héritée du logo */
.elan {
  position: relative;
  display: inline-block;
  padding-bottom: .45rem;
}
.elan::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 3.2rem; height: .32rem;
  background: var(--accent);
  transform: skewX(-10deg);
}

.cadre { max-width: var(--largeur); margin-inline: auto; padding-inline: var(--marge); }
.colonne { max-width: var(--colonne); margin-inline: auto; padding-inline: var(--marge); }

/* sections sombres « carbone » : couleurs posées explicitement (P-110) */
.sombre {
  background: var(--carbone);
  color: var(--texte-sur-carbone);
}
.sombre a { color: var(--lien-sur-carbone); }

/* accès rapide */
.evite {
  position: absolute;
  left: -999rem; top: 0;
  z-index: 200;
  background: var(--accent);
  color: var(--texte-sur-accent);
  font-family: var(--oswald);
  text-transform: uppercase;
  padding: .7rem 1.2rem;
  text-decoration: none;
}
.evite:focus { left: 0; }

/* ============ Boutons ============ */
.bouton {
  display: inline-block;
  font-family: var(--oswald);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 1rem;
  line-height: 1;
  padding: .95rem 1.7rem;
  border-radius: 999px;              /* pill (matrice : CTA pill accent) */
  border: 2px solid var(--accent);
  background: var(--accent);
  color: var(--texte-sur-accent);
  text-decoration: none;
  cursor: pointer;
  transition: transform .12s ease, background .12s ease;
}
.bouton:hover { transform: translateY(-2px); }
/* P-110 : le texte du bouton est posé AVEC son fond, jamais hérité —
   `.sombre a` ne doit jamais gagner sur un fond lime. */
.sombre a.bouton, .entete a.bouton { color: var(--texte-sur-accent); }
.bouton-creux {
  background: transparent;
  color: var(--lien-sur-fond);
  border-color: currentColor;
}
.sombre .bouton-creux, .sombre a.bouton-creux { color: var(--lien-sur-carbone); }

/* ============ En-tête sticky (P-004 : nav flex sans puces) ============ */
.entete {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--carbone);
  color: var(--texte-sur-carbone);
  border-bottom: 1px solid var(--trait-sombre);
}
.entete > .cadre {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 4rem;
}
.marque {
  display: inline-flex;
  align-items: center;
  color: var(--texte-sur-carbone);
  text-decoration: none;
}
.marque svg { display: block; height: 2rem; width: auto; }
.menu-site { margin-left: auto; }
.menu-site ul {
  list-style: none;                  /* jamais de puces (P-004) */
  display: flex;
  align-items: center;
  gap: .25rem;
  margin: 0;
  padding: 0;
}
.menu-site a {
  display: block;
  font-family: var(--oswald);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-size: .95rem;
  color: var(--texte-sur-carbone);
  text-decoration: none;
  padding: .8rem .85rem;             /* cible tactile ≥ 44px */
  border-bottom: 3px solid transparent;
}
.menu-site a:hover,
.menu-site .actif > a { border-bottom-color: var(--accent); }
.entete .bouton { padding: .75rem 1.3rem; font-size: .95rem; white-space: nowrap; }
.menu-bouton {
  display: none;
  margin-left: auto;
  background: none;
  border: 2px solid var(--trait-sombre);
  border-radius: 4px;
  color: var(--texte-sur-carbone);
  font-family: var(--oswald);
  text-transform: uppercase;
  font-size: .9rem;
  letter-spacing: .05em;
  padding: .6rem .9rem;
  cursor: pointer;
}
@media (max-width: 46em) {
  .menu-bouton { display: inline-block; }
  .menu-site {
    display: none;
    position: absolute;
    inset: 100% 0 auto 0;
    background: var(--carbone);
    color: var(--texte-sur-carbone);
    border-bottom: 1px solid var(--trait-sombre);
    padding: .5rem var(--marge) 1rem;
  }
  .menu-site.ouvert { display: block; }
  .menu-site ul { flex-direction: column; align-items: stretch; gap: 0; }
  .menu-site a { border-bottom: 1px solid var(--trait-sombre); padding: .9rem .25rem; }
  .entete .bouton { display: none; }
  .menu-site .appel { display: block; margin-top: .9rem; }
}
@media (min-width: 46.01em) { .menu-site .appel { display: none; } }

/* barre de progression de lecture (articles) */
.progression {
  position: sticky;
  top: 4rem;
  z-index: 99;
  height: .25rem;
  background: var(--fond-2);
}
.progression b {
  display: block;
  height: 100%;
  width: 0;
  background: var(--accent);
}

/* ============ Fil d'Ariane ============ */
.fil { font-size: .85rem; color: var(--texte-2-sur-fond); padding-block: 1rem .4rem; }
.fil ol { list-style: none; display: flex; flex-wrap: wrap; gap: .3rem; margin: 0; padding: 0; }
.fil li + li::before { content: "›"; margin-right: .3rem; color: var(--texte-2-sur-fond); }
.fil a { color: var(--texte-2-sur-fond); }
.sombre .fil, .sombre .fil a, .sombre .fil li + li::before { color: var(--texte-2-sur-carbone); }

/* ============ Home — héros ============ */
.heros { padding-block: clamp(3rem, 8vw, 5.5rem); overflow: hidden; }
.heros > .cadre {
  display: grid;
  gap: 2.5rem;
  align-items: center;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
}
.heros h1 { font-size: clamp(2.4rem, 6.5vw, 4.2rem); margin-bottom: .4em; }
.heros h1 em {
  font-style: normal;
  color: var(--accent);
  display: inline-block;
  transform: skewX(-10deg);
}
.heros p { max-width: 34rem; color: var(--texte-2-sur-carbone); font-size: 1.15rem; }
.heros .actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.6rem; }
.chiffres {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  margin: 2.2rem 0 0;
  padding: 1.2rem 0 0;
  border-top: 1px solid var(--trait-sombre);
}
.chiffres b {
  display: block;
  font-family: var(--oswald);
  font-weight: 700;
  font-size: 1.7rem;
  color: var(--accent);
}
.chiffres span { font-size: .85rem; color: var(--texte-2-sur-carbone); }
.schema { display: block; width: 100%; max-width: 22rem; margin-inline: auto; }
@media (max-width: 52em) {
  .heros > .cadre { grid-template-columns: 1fr; }
  .schema { max-width: 16rem; }
}

/* ============ Home — sections ============ */
.tranche { padding-block: clamp(3rem, 7vw, 5rem); }
.tranche header p { max-width: 40rem; color: var(--texte-2-sur-fond); }
.sombre.tranche header p { color: var(--texte-2-sur-carbone); }

/* « par où commencer » : 3 parcours */
.parcours {
  display: grid;
  gap: 1.2rem;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  margin-top: 2rem;
}
.seance {
  position: relative;
  background: #fffefb;
  border: 1px solid var(--trait);
  border-top: 4px solid var(--accent);
  border-radius: 4px;
  padding: 1.5rem 1.4rem 1.3rem;
  color: var(--texte-sur-fond);
}
.seance b {
  font-family: var(--oswald);
  font-weight: 700;
  font-size: 2rem;
  color: var(--texte-2-sur-fond);
  display: block;
  transform: skewX(-10deg);
}
.seance h3 { margin: .3rem 0 .4rem; }
.seance p { font-size: .95rem; color: var(--texte-2-sur-fond); margin-bottom: .9rem; }
.seance a { font-family: var(--oswald); text-transform: uppercase; font-size: .9rem; letter-spacing: .04em; }
.seance a::after { content: "" ; position: absolute; inset: 0; }
.seance:hover { border-color: var(--accent); }

/* cartes silos exercices */
.silos {
  display: grid;
  gap: 1.2rem;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  margin-top: 2rem;
}
.exo {
  position: relative;
  background: var(--carbone);
  color: var(--texte-sur-carbone);
  border-radius: 4px;
  padding: 1.4rem 1.3rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  border: 1px solid var(--carbone);
  transition: transform .12s ease;
}
.exo:hover { transform: translateY(-3px); border-color: var(--accent); }
.exo svg { width: 3.4rem; height: 3.4rem; }
.exo h3 { margin: 0; }
.exo p { font-size: .9rem; color: var(--texte-2-sur-carbone); margin: 0; }
.exo a { color: var(--lien-sur-carbone); text-decoration: none; font-family: var(--oswald); text-transform: uppercase; font-size: .85rem; letter-spacing: .05em; }
.exo a::after { content: ""; position: absolute; inset: 0; }

/* derniers guides */
.guides {
  display: grid;
  gap: 1.2rem;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  margin-top: 2rem;
}
.fiche-exo {
  position: relative;
  background: #fffefb;
  border: 1px solid var(--trait);
  border-radius: 4px;
  padding: 1.3rem 1.3rem 1.1rem;
  color: var(--texte-sur-fond);
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.fiche-exo:hover { border-color: var(--accent); }
.fiche-exo .etiquette {
  align-self: flex-start;
  font-family: var(--oswald);
  text-transform: uppercase;
  font-size: .75rem;
  letter-spacing: .06em;
  background: var(--accent);
  color: var(--texte-sur-accent);
  padding: .25rem .6rem;
  border-radius: 3px;
  transform: skewX(-10deg);
}
.fiche-exo h3 { margin: .2rem 0; font-size: 1.15rem; }
.fiche-exo h3 a { color: inherit; text-decoration: none; }
.fiche-exo h3 a::after { content: ""; position: absolute; inset: 0; }
.fiche-exo p { font-size: .92rem; color: var(--texte-2-sur-fond); margin: 0; }
.fiche-exo time { font-size: .8rem; color: var(--texte-2-sur-fond); margin-top: auto; padding-top: .5rem; }
.vide {
  border: 2px dashed var(--trait);
  border-radius: 4px;
  padding: 2rem;
  text-align: center;
  color: var(--texte-2-sur-fond);
  grid-column: 1 / -1;
}

/* bloc baromètre (preuve data) */
.tuiles {
  display: grid;
  gap: 1.2rem;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  margin-top: 2rem;
}
.tuile {
  background: var(--carbone-2);
  color: var(--texte-sur-carbone);
  border-left: 4px solid var(--accent);
  border-radius: 4px;
  padding: 1.3rem 1.2rem;
}
.tuile b {
  display: block;
  font-family: var(--oswald);
  font-weight: 700;
  font-size: 1.9rem;
  color: var(--accent);
  transform: skewX(-10deg);
  transform-origin: left bottom;
}
.tuile span { font-size: .92rem; color: var(--texte-2-sur-carbone); }

/* qui est Lucas */
.persona > .cadre {
  display: grid;
  gap: 2.5rem;
  grid-template-columns: minmax(0, .4fr) minmax(0, 1fr);
  align-items: center;
}
.persona blockquote {
  margin: 1rem 0;
  padding: .3rem 0 .3rem 1.1rem;
  border-left: 4px solid var(--accent);
  font-family: var(--oswald);
  font-weight: 500;
  font-size: 1.25rem;
  text-transform: none;
}
@media (max-width: 46em) { .persona > .cadre { grid-template-columns: 1fr; } .persona .schema { max-width: 11rem; margin: 0; } }

/* ============ Capture email 2 étapes ============ */
.capture {
  background: var(--carbone);
  color: var(--texte-sur-carbone);
  border-radius: 6px;
  padding: clamp(1.6rem, 4vw, 2.6rem);
  border: 1px solid var(--trait-sombre);
}
.capture h2 { margin-bottom: .3em; }
.capture > p { color: var(--texte-2-sur-carbone); max-width: 36rem; }
.capture form { margin-top: 1.4rem; }
.capture fieldset { border: 0; margin: 0; padding: 0; }
.capture legend {
  font-family: var(--oswald);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 1rem;
  color: var(--texte-sur-carbone);
  margin-bottom: .8rem;
}
.etape { display: grid; gap: .7rem; }
.etape[hidden] { display: none; }
.etape label.choix {
  display: flex;
  align-items: center;
  gap: .7rem;
  background: var(--carbone-2);
  color: var(--texte-sur-carbone);
  border: 2px solid var(--trait-sombre);
  border-radius: 4px;
  padding: .85rem 1rem;
  cursor: pointer;
  font-size: 1rem;
}
.etape label.choix:hover { border-color: var(--accent); }
.etape input[type="radio"] { accent-color: var(--accent); width: 1.2rem; height: 1.2rem; }
.etape label.choix:has(input:checked) { border-color: var(--accent); }
.etape .rang { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: .4rem; }
.capture input[type="email"] {
  flex: 1 1 16rem;
  font: inherit;
  padding: .85rem 1rem;
  border-radius: 4px;
  border: 2px solid var(--trait-sombre);
  background: #fffefb;
  color: var(--texte-sur-fond);
  min-height: 44px;
}
.capture input[type="email"]:focus { border-color: var(--accent); outline: none; }
.capture .note { font-size: .82rem; color: var(--texte-2-sur-carbone); margin: .8rem 0 0; }
.capture .erreur { color: var(--accent-doux); font-size: .9rem; margin: .5rem 0 0; display: none; }
.capture .erreur.visible { display: block; }
.champ-cache { position: absolute; left: -999rem; }

/* ============ Article ============ */
.papier { padding-block: 0 3rem; }
.papier .entame { padding-block: .4rem 1.6rem; border-bottom: 1px solid var(--trait); margin-bottom: 2rem; }
.papier .entame h1 { margin-bottom: .3em; }
.signes {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1.4rem;
  font-size: .88rem;
  color: var(--texte-2-sur-fond);
}
.signes b { color: var(--lien-sur-fond); font-weight: 600; }
.prose { font-size: 1.0625rem; }
.prose h2 { margin-top: 1.8em; }
.prose h3 { margin-top: 1.4em; }
.prose img { border-radius: 4px; }
.prose figure { margin: 1.6rem 0; }
.prose figcaption { font-size: .85rem; color: var(--texte-2-sur-fond); margin-top: .4rem; }
.prose blockquote {
  margin: 1.6rem 0;
  padding: 1rem 1.3rem;
  background: var(--fond-2);
  border-left: 4px solid var(--accent);
  border-radius: 0 4px 4px 0;
}
.prose table { border-collapse: collapse; width: 100%; margin: 1.5rem 0; font-size: .95rem; }
.prose th, .prose td { border: 1px solid var(--trait); padding: .6rem .8rem; text-align: left; }
.prose th { background: var(--carbone); color: var(--texte-sur-carbone); font-family: var(--oswald); font-weight: 500; text-transform: uppercase; font-size: .85rem; letter-spacing: .04em; }
.prose > *:first-child { margin-top: 0; }

/* bio auteur 2 lignes */
.plume {
  display: flex;
  gap: 1rem;
  align-items: center;
  margin-top: 2.5rem;
  padding: 1.1rem 1.2rem;
  background: var(--fond-2);
  border-radius: 4px;
  border-left: 4px solid var(--accent);
  font-size: .95rem;
  color: var(--texte-sur-fond);
}
.plume svg { flex: 0 0 3rem; height: 3rem; }
.plume p { margin: 0; }

/* pagination + articles voisins */
.voisins {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 2rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--trait);
  font-family: var(--oswald);
  text-transform: uppercase;
  font-size: .9rem;
}
.pagination { display: flex; gap: .4rem; justify-content: center; margin-top: 2.5rem; font-family: var(--oswald); }
.pagination .page-numbers {
  display: inline-block;
  min-width: 2.6rem;
  padding: .55rem .6rem;
  text-align: center;
  border: 1px solid var(--trait);
  border-radius: 4px;
  text-decoration: none;
  color: var(--texte-sur-fond);
}
.pagination .page-numbers.current { background: var(--carbone); color: var(--texte-sur-carbone); border-color: var(--carbone); }

/* ============ Pilier / pages ============ */
.pilier .entame { padding-block: .4rem 1.8rem; }
.pilier-nav {
  background: var(--fond-2);
  border: 1px solid var(--trait);
  border-radius: 4px;
  padding: 1.1rem 1.3rem;
  margin: 0 0 2rem;
  font-size: .95rem;
}
.pilier-nav b { font-family: var(--oswald); text-transform: uppercase; letter-spacing: .05em; font-weight: 500; display: block; margin-bottom: .5rem; }
.pilier-nav ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.pilier-nav li::before { content: "—"; color: var(--lien-sur-fond); margin-right: .5rem; }
.pilier-nav a { text-decoration: none; }
.pilier-nav a:hover { text-decoration: underline; }
.pilier-nav[hidden] { display: none; }

/* ============ Hub catégorie ============ */
.hub .entame { padding-bottom: 2rem; }
.hub .entame p { max-width: 42rem; color: var(--texte-2-sur-carbone); margin-bottom: 0; }
.hub .grille { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); padding-block: 2.5rem 0; }

/* ============ 404 ============ */
.egare { min-height: 60vh; display: grid; place-content: center; text-align: center; padding-block: 4rem; }
.egare b {
  font-family: var(--oswald);
  font-weight: 700;
  font-size: clamp(5rem, 18vw, 9rem);
  line-height: 1;
  color: var(--accent);
  display: block;
  transform: skewX(-10deg);
}
.egare p { color: var(--texte-2-sur-carbone); max-width: 30rem; margin-inline: auto; }
.egare .actions { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; margin-top: 1.5rem; }

/* ============ Pied de page ============ */
.pied { margin-top: 4rem; border-top: 4px solid var(--accent); }
.pied > .cadre {
  display: grid;
  gap: 2.5rem;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr);
  padding-block: 3rem 2rem;
}
.pied .marque svg { height: 1.7rem; }
.pied p { font-size: .92rem; color: var(--texte-2-sur-carbone); max-width: 22rem; }
.pied h4 { font-size: .95rem; font-weight: 500; letter-spacing: .07em; color: var(--texte-2-sur-carbone); }
.pied ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; font-size: .95rem; }
.pied ul a { color: var(--texte-sur-carbone); text-decoration: none; }
.pied ul a:hover { color: var(--lien-sur-carbone); text-decoration: underline; }
.pied .legal {
  border-top: 1px solid var(--trait-sombre);
  padding-block: 1.1rem;
  font-size: .84rem;
  color: var(--texte-2-sur-carbone);
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.5rem;
  align-items: center;
}
.pied .legal a { color: var(--texte-2-sur-carbone); }
@media (max-width: 46em) { .pied > .cadre { grid-template-columns: 1fr; gap: 1.8rem; } }

/* ============ Alignements WP de base ============ */
.alignleft { float: left; margin: 0 1.2rem .8rem 0; }
.alignright { float: right; margin: 0 0 .8rem 1.2rem; }
.aligncenter { display: block; margin-inline: auto; }
.screen-reader-text { position: absolute; left: -999rem; }
