/* =============================================================================
   onglets-accueil.css — permis-de-exploitation.com
   Samy 08/09/2026 : habillage de la zone des quatre onglets de l'accueil.

   FEUILLE ADDITIONNELLE. Ne remplace aucune feuille existante, ne modifie aucune
   classe existante. Chargee dans header.php, branche `index==1` uniquement :

       <link rel="stylesheet" href="onglets-accueil.css?v=20260908">

   ATTENTION, verifie le 08/09 : l'accueil NE CHARGE PAS theme.css. `index.php`
   pose $index=1, et header.php bascule alors sur la branche `else`, qui ne charge
   que assets/css/bootstrap.min.css et styles/themeindex.css. C'est donc
   styles/themeindex.css — et lui seul — qui gouverne l'accueil.

   Tout est enfermé sous la racine .oa : aucune règle ne peut fuir vers le
   reste du site. Le préfixe oa- (onglets accueil) est verifié libre dans
   theme.css, themeindex.css, styles/main.css et bootstrap.min.css.

   Pour revenir en arrière : retirer la ligne <link>. Le balisage retombe sur
   .blgris / .size18 / .cadre-home et le site reprend son aspect d'avant.
   ============================================================================= */

.oa{
  /* --- couleurs : un seul endroit à toucher ---------------------------- */
  --oa-accent:#e62117;        /* Samy : rouge de marque, inchangé */
  --oa-accent-doux:#FDF0EE;   /* le même, très dilué, pour les fonds */
  --oa-lien:#3b5998;          /* Samy : bleu de marque, inchangé */
  --oa-encre:#111827;         /* remplace le #333 grisâtre du thème */
  --oa-encre-2:#4B5566;
  --oa-encre-3:#7A8496;
  --oa-bord:#E8EAF0;
  --oa-fond:#F7F8FA;
  --oa-fond-actif:#FDF7F6;

  /* --- typographie ------------------------------------------------------ */
  /* Samy 08/09/2026 : PILE SYSTEME, zero requete reseau.
     La feuille nommait d'abord Figtree et Source Sans 3, mais aucune feuille Google
     Fonts n'a jamais ete chargee (header.php ne porte qu'un `preconnect`) : le rendu
     retombait donc deja sur la pile systeme. C'est ce rendu-la qui a ete valide.
     La declaration dit maintenant ce qui s'affiche vraiment.
     Pour passer a une police chargee, ajouter dans header.php :
       <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Figtree:wght@500;600;700;800&display=swap">
     puis remettre "Figtree", en tete de --oa-titres. Une requete de plus. */
  --oa-titres:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI Variable Display","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --oa-corps:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI Variable Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --oa-taille:18px;
  --oa-mesure:70ch;
  --oa-rayon:12px;

  font-family:var(--oa-corps);
  font-size:var(--oa-taille);
  line-height:1.7;
  color:var(--oa-encre);
  -webkit-font-smoothing:antialiased;
}

/* --- garde-fous contre les règles génériques de la feuille du site --------
   styles/themeindex.css pose des sélecteurs d'élément nus qui atteignent notre
   zone : h2/h3 en graisse 300 et 21/26 px. On les neutralise ici, et seulement ici.

   Le float sur `ol li` est neutralisé par précaution : cette règle existe dans
   theme.css (elle a cassé les listes numérotées de haccp le 01/09) mais PAS dans
   styles/themeindex.css, donc elle n'atteint pas l'accueil aujourd'hui. Le garde-fou
   ne coûte rien et tiendra si la branche de chargement change un jour.          */
.oa ol li,
.oa ul li{float:none;list-style:none;}
/* `:where()` ne compte pas dans la specificite : la regle vaut (0,1,0), assez pour
   battre le `h2{...}` nu de styles/themeindex.css (0,0,1), mais a egalite avec les
   classes de composants — qui viennent plus bas et l'emportent donc.
   Sans cela, `.oa h2` (0,1,1) ecrasait le padding et les marges de .oa-question,
   .oa-engagement-titre, .oa-chapitre-titre et .oa-sous-titre. Defaut vu en ligne. */
.oa :where(h2,h3,h4){
  font-family:var(--oa-titres);
  color:var(--oa-encre);
  text-transform:none;
  letter-spacing:-.015em;
  margin:0;
  padding:0;
  border:0;
  height:auto;
}
.oa p{margin:0;}
.oa a{color:var(--oa-lien);}
.oa *,.oa *::before,.oa *::after{box-sizing:border-box;}

/* =============================================================================
   1. BARRE D'ONGLETS

   Samy 08/09/2026 : la barre reste celle de Bootstrap — memes <ul>/<li>/<a>,
   meme data-toggle="tab", meme JavaScript. On ne fait que l'habiller. Le
   comportement des onglets n'est pas touche : c'est ce qui rend ce changement
   sans risque, et reversible en retirant deux classes.

   Specificite : `.oa-nav > li > .oa-tab` vaut (0,2,1), ce qui bat le
   `.nav-tabs > li > a` de Bootstrap (0,1,2). Verifie, sinon les bordures
   d'onglet de Bootstrap reprenaient le dessus.
   ============================================================================= */
.oa-nav{
  display:flex;
  gap:6px;
  padding:5px;
  margin:0 0 28px;
  background:var(--oa-fond);
  border:0;
  border-radius:14px;
  overflow-x:auto;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  justify-content:flex-start;
}
.oa-nav::-webkit-scrollbar{display:none;}
.oa-nav > li{float:none;margin:0;list-style:none;flex:1 1 auto;}

.oa-nav > li > .oa-tab{
  display:block;
  font-family:var(--oa-titres);
  font-size:15px;
  font-weight:600;
  /* Samy 08/09/2026 : la capitale est DECLAREE ici, pas heritee.
     styles/themeindex.css pose `.nav>li>a{text-transform:uppercase}` (0,1,2), que les
     `style="text-transform:none"` en ligne annulaient. En retirant ces styles, la barre est
     passee en capitales — resultat retenu par Samy, mais c'etait un effet de bord. On l'ecrit
     donc explicitement : le rendu ne doit pas dependre d'une regle du site qui peut bouger.
     Un peu d'interlettrage, sans quoi une capitale se lit mal. */
  text-transform:uppercase;
  letter-spacing:.025em;
  line-height:1.3;
  color:var(--oa-encre-2);
  background:transparent;
  border:0;
  border-radius:10px;
  padding:13px 18px;
  margin:0;
  text-align:center;
  text-decoration:none;
  white-space:nowrap;
  transition:background .16s ease,color .16s ease,box-shadow .16s ease;
}
.oa-nav > li > .oa-tab:hover,
.oa-nav > li > .oa-tab:focus{
  color:var(--oa-encre);
  background:rgba(17,24,39,.04);
  border:0;
  text-decoration:none;
}
.oa-nav > li.active > .oa-tab,
.oa-nav > li.active > .oa-tab:hover,
.oa-nav > li.active > .oa-tab:focus{
  color:var(--oa-accent);
  background:#fff;
  border:0;
  box-shadow:0 1px 2px rgba(17,24,39,.10),0 0 0 1px rgba(17,24,39,.04);
}
.oa-nav > li > .oa-tab:focus-visible{outline:2px solid var(--oa-accent);outline-offset:-2px;}

.oa-panneau{display:none;}
.oa-panneau.is-actif{display:block;}

/* =============================================================================
   2. ONGLET « NOS ENGAGEMENTS » — une promesse par ligne
   ============================================================================= */
.oa-engagements{
  display:flex;
  flex-direction:column;
  gap:26px;
  margin:0;
  padding:0;
}
.oa-engagement{
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  gap:0 20px;
  align-items:start;
}
.oa-engagement-ic{
  width:52px;height:52px;
  border-radius:16px;
  background:var(--oa-accent-doux);
  display:flex;align-items:center;justify-content:center;
  flex:none;
}
.oa-engagement-ic svg{display:block;width:24px;height:24px;}
.oa-engagement-ic{background-repeat:no-repeat;background-position:center;background-size:24px 24px;}

/* --- icones ---------------------------------------------------------------
   Samy 08/09/2026 : les pictogrammes sont dans la FEUILLE, pas dans le contenu.
   Deux raisons. D'abord c'est leur place : ce sont des elements d'habillage, ils
   n'ont rien a faire dans un texte editorial. Ensuite la barriere Watermark refuse
   la balise <svg> dans un fragment (`unsupported_html_tag`) : le balisage des
   onglets doit rester dans le sous-ensemble qu'elle accepte.
   Le balisage se limite donc a <span class="oa-engagement-ic oa-ic-xxx"></span>. */
.oa-ic-inscription{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23e62117%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%225%22%20width%3D%2220%22%20height%3D%2214%22%20rx%3D%222.5%22%2F%3E%3Cpath%20d%3D%22M2%2010h20%22%2F%3E%3Cpath%20d%3D%22M6%2015h3%22%2F%3E%3Cpath%20d%3D%22M17%208.5V5a3%203%200%200%200-6%200%22%2F%3E%3C%2Fsvg%3E");}
.oa-ic-agrement{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23e62117%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%2011.5%2011.2%2014l4.3-4.6%22%2F%3E%3Cpath%20d%3D%22M12%202.6%2020%206v6c0%204.5-3.2%208.2-8%209.4C7.2%2020.2%204%2016.5%204%2012V6z%22%2F%3E%3C%2Fsvg%3E");}
.oa-ic-annulation{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23e62117%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2011a9%209%200%200%201%2015.3-6.4L21%207%22%2F%3E%3Cpath%20d%3D%22M21%203v4h-4%22%2F%3E%3Cpath%20d%3D%22M21%2013a9%209%200%200%201-15.3%206.4L3%2017%22%2F%3E%3Cpath%20d%3D%22M3%2021v-4h4%22%2F%3E%3C%2Fsvg%3E");}
.oa-ic-suivi{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23e62117%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M15.5%203.5a6%206%200%200%201%205%205%22%2F%3E%3Cpath%20d%3D%22M14.8%207a3%203%200%200%201%202.2%202.2%22%2F%3E%3Cpath%20d%3D%22M6.6%2010.8a15%2015%200%200%200%206.6%206.6l2.2-2.2a1%201%200%200%201%201-.24%2011%2011%200%200%200%203.6.58%201%201%200%200%201%201%201V20a1%201%200%200%201-1%201A18%2018%200%200%201%203%204a1%201%200%200%201%201-1h3.5a1%201%200%200%201%201%201%2011%2011%200%200%200%20.57%203.58%201%201%200%200%201-.24%201z%22%2F%3E%3C%2Fsvg%3E");}
.oa-ic-paiement{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23e62117%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224.5%22%20width%3D%2218%22%20height%3D%2216%22%20rx%3D%222.5%22%2F%3E%3Cpath%20d%3D%22M3%209.5h18M8%202.5v4M16%202.5v4%22%2F%3E%3Cpath%20d%3D%22M7.5%2013.5h2M11%2013.5h2M14.5%2013.5h2M7.5%2017h2M11%2017h2%22%2F%3E%3C%2Fsvg%3E");}
.oa-engagement-titre{
  font-size:20px;
  font-weight:700;
  line-height:1.35;
  margin-bottom:4px;
}
.oa-engagement-texte{
  color:var(--oa-encre-2);
  max-width:var(--oa-mesure);
}

/* =============================================================================
   3. ONGLET « QUESTIONS RÉCURRENTES » — accordéon en amélioration progressive

   Samy 08/09/2026 : la barriere Watermark refuse <details>, <summary>, <button>
   et les attributs aria-*/hidden. Le balisage se limite donc a ul/li/h2/div, et
   le comportement est ajoute par onglets-accueil.js, qui pose lui-meme role,
   tabindex et aria-expanded.

   CONSEQUENCE VOULUE : sans JavaScript, les reponses restent VISIBLES. Rien n'est
   jamais cache par le HTML seul — ni pour un visiteur, ni pour un moteur. C'est le
   script qui replie, jamais le balisage.
   ============================================================================= */
.oa-faq{margin:0;padding:0;}
.oa-faq-item{list-style:none;border-bottom:1px solid var(--oa-bord);}
.oa-faq-item:first-child{border-top:1px solid var(--oa-bord);}

.oa-question{
  font-family:var(--oa-titres);
  font-size:18px;
  font-weight:600;
  line-height:1.45;
  color:var(--oa-encre);
  margin:0;
  padding:22px 52px 22px 18px;
  position:relative;
}
.oa-reponse{
  padding:2px 52px 24px 18px;
  color:var(--oa-encre-2);
  max-width:var(--oa-mesure);
}
.oa-reponse p{margin:0;}
.oa-reponse p + p{margin-top:12px;}

/* --- a partir d'ici, uniquement quand le script a pris la main --- */
.oa-faq.est-interactif .oa-question{
  cursor:pointer;
  border-radius:10px;
  /* flex + align-items : le titre se centre dans la hauteur au lieu de rester
     colle en haut. Une hauteur minimale sans centrage laissait un vide sous le
     texte, tres visible sur la question ouverte. */
  display:flex;
  align-items:center;
  min-height:64px;
  transition:background .16s ease,color .16s ease;
}
.oa-faq.est-interactif .oa-question::after{
  content:"";
  position:absolute;
  right:14px;top:50%;
  width:22px;height:22px;
  margin-top:-11px;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%237A8496%22%20stroke-width%3D%222.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%2F%3E%3C%2Fsvg%3E");
  background-repeat:no-repeat;background-position:center;background-size:22px 22px;
  transition:transform .2s ease;
}
.oa-faq.est-interactif .oa-question:hover{background:var(--oa-fond);color:var(--oa-accent);}
.oa-faq.est-interactif .oa-question:focus-visible{
  outline:2px solid var(--oa-accent);
  outline-offset:-2px;
}
.oa-faq.est-interactif .oa-reponse{display:none;}

.oa-faq.est-interactif .est-ouvert .oa-question{background:var(--oa-fond-actif);color:var(--oa-accent);}
.oa-faq.est-interactif .est-ouvert .oa-question::after{
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%237A8496%22%20stroke-width%3D%222.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%2F%3E%3C%2Fsvg%3EACTIF");
  transform:rotate(180deg);
}
.oa-faq.est-interactif .est-ouvert .oa-reponse{display:block;}

/* =============================================================================
   4. ONGLETS « LICENCES » et « 20 HEURES » — chapitres

   Samy 08/09/2026 : ce sont les seuls blocs de prose longue de la zone.
   Le corps y descend a 17 px avec un interligne de 1,72 : plus de mots par
   ligne, moins de hauteur, et l'oeil retrouve la ligne suivante. Les blocs
   courts (engagements, FAQ) restent a 18 px.
   ============================================================================= */
.oa-chapitre{
  font-size:17px;
  line-height:1.72;
  padding:44px 0;
}
.oa-chapitre + .oa-chapitre{border-top:1px solid var(--oa-bord);}
.oa-chapitre:first-child{padding-top:0;}
.oa-chapitre:last-child{padding-bottom:8px;}

.oa-surtitre{
  font-family:var(--oa-titres);
  font-size:15px;
  font-weight:700;
  line-height:1.4;
  color:var(--oa-accent);
  margin-bottom:10px;
}
/* en bloc et non en ligne : une etiquette inline-block herite du line-height
   du paragraphe et fabrique quelques pixels de vide sous elle */
.oa-etiquette{
  display:block;
  width:-moz-fit-content;
  width:fit-content;
  font-family:var(--oa-titres);
  font-size:14px;
  font-weight:600;
  line-height:1;
  color:var(--oa-accent);
  background:var(--oa-accent-doux);
  border-radius:999px;
  padding:8px 15px;
  margin-bottom:14px;
}
.oa-chapitre-titre{
  font-size:24px;
  font-weight:800;
  line-height:1.28;
  margin-bottom:14px;
  text-wrap:balance;
}
.oa-chapitre-intro{
  color:var(--oa-encre-2);
  max-width:var(--oa-mesure);
  margin-bottom:18px;
}
.oa-sous-titre{
  font-size:18px;
  font-weight:700;
  line-height:1.4;
  margin:34px 0 10px;
}
/* sous-titre place immediatement sous le titre du chapitre : il le complete,
   il n'ouvre pas une nouvelle section — donc pas d'espace avant. */
.oa-chapitre-titre + .oa-sous-titre{
  margin-top:0;
  font-weight:600;
  color:var(--oa-encre-2);
}
/* les questions courtes en fin de chapitre : un cran sous le sous-titre,
   sinon quatre titres de meme poids se succedent et le rythme se casse */
.oa-question-courte{
  font-size:17px;
  font-weight:700;
  line-height:1.45;
  color:var(--oa-encre);
  margin:28px 0 6px;
}
.oa-chapitre p{color:var(--oa-encre-2);max-width:var(--oa-mesure);}
.oa-chapitre p + p{margin-top:14px;}

/* listes : puce ronde dessinee, jamais un caractere colle dans le texte.
   L'ecart entre items doit rester lisible quand un item passe sur deux
   lignes : 16 px pour un interligne de ~29 px. */
.oa-liste{
  margin:16px 0 24px;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:16px;
  max-width:var(--oa-mesure);
}
.oa-liste li{
  position:relative;
  padding-left:26px;
  color:var(--oa-encre-2);
  list-style:none;
}
.oa-liste li::before{
  content:"";
  position:absolute;
  left:6px;
  top:calc(.86em - 4px);   /* centre sur la premiere ligne, quel que soit le corps */
  width:7px;height:7px;
  border-radius:50%;
  background:var(--oa-accent);
  opacity:.5;
}
.oa-liste li b,.oa-liste li strong{color:var(--oa-encre);font-weight:600;}

/* l'information qui decide de l'inscription, sortie du corps du texte */
.oa-encart{
  background:var(--oa-accent-doux);
  border-radius:var(--oa-rayon);
  padding:20px 24px;
  margin:28px 0;
  max-width:var(--oa-mesure);
}
.oa-encart-titre{
  display:block;
  font-family:var(--oa-titres);
  font-size:15px;
  font-weight:700;
  line-height:1.4;
  color:var(--oa-accent);
  margin-bottom:7px;
}
.oa-encart p{color:var(--oa-encre);margin:0;}

.oa-note{
  margin-top:28px;
  padding-top:18px;
  border-top:1px solid var(--oa-bord);
  font-size:16px;
  color:var(--oa-encre-3);
  max-width:var(--oa-mesure);
}

/* =============================================================================
   5. ACCESSIBILITÉ ET PETITS ÉCRANS
   ============================================================================= */
.oa button:focus-visible{
  outline:2px solid var(--oa-accent);
  outline-offset:2px;
}

@media (max-width:767px){
  .oa{--oa-taille:17px;}
  .oa-nav{gap:4px;padding:4px;margin-bottom:22px;}
  .oa-nav > li{flex:0 0 auto;}
  .oa-nav > li > .oa-tab{font-size:14px;padding:12px 14px;}
  .oa-engagement{grid-template-columns:44px minmax(0,1fr);gap:0 14px;}
  .oa-engagement-ic{width:44px;height:44px;border-radius:13px;}
  .oa-engagement-ic svg{width:21px;height:21px;}
  .oa-engagement-ic{background-size:21px 21px;}
  .oa-engagement-titre{font-size:18px;}
  .oa-engagements{gap:22px;}
  .oa-question{font-size:17px;padding:18px 44px 18px 10px;}
  .oa-faq.est-interactif .oa-question::after{right:8px;}
  .oa-reponse{padding:2px 44px 20px 10px;}
  .oa-chapitre{font-size:16px;line-height:1.7;padding:32px 0;}
  .oa-chapitre-titre{font-size:21px;}
  .oa-sous-titre{font-size:17px;margin-top:28px;}
  .oa-question-courte{font-size:16px;margin-top:24px;}
  .oa-liste{gap:14px;margin-bottom:20px;}
  .oa-encart{padding:17px 19px;margin:24px 0;}
}

@media (prefers-reduced-motion:reduce){
  .oa *{transition:none !important;}
}
