/* --------------------- */
/* --------------------- */
/* -- STYLES GÉNÉRAUX -- */
/* --------------------- */
/* --------------------- */

/*
DESCRIPTION :

Des styles qui sont appliqués de telle façon à ce qu'ils concernent des éléments et des conteneurs situés à tous les niveaux du contenu.
*/

/* ----------------------- */
/* ----------------------- */
/* -- Réinitialisations -- */

/* ------------------------ */
/* -- Reset d'Eric Meyer -- */
/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
   margin: 0;
   padding: 0;
   border: 0;
   /* font-size: 100%; DÉSACTIVÉ */
   /* font: inherit; DÉSACTIVÉ */
   vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
   display: block;
}

body {
   line-height: 1;
}

ol,
ul {
   list-style: none;
}

blockquote,
q {
   quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
   content: '';
   content: none;
}

table {
   border-collapse: collapse;
   border-spacing: 0;
}

/* ------------------------------------ */
/* -- Réinitialisations personnelles -- */
* {
   box-sizing: border-box;
}

input,
select {
   appearance: none;
   /* safari */
   -webkit-appearance: none;
}

input {
   border: 0;
}

address {
   font-style: unset;
}

img {
   z-index: 5000;
   display: block;
}

button {
   display: block;
   border: 0;
   padding: 0;
   background-color: transparent;
}


/* ----------------------- */
/* ----------------------- */
/* -- Styles d'éléments -- */
* {
   appearance: none;
   color: inherit;
   outline-offset: var(--decalage-bordure);
   /**/
   font: inherit;
   line-height: var(--espacement-XL);
}

*:not(input,
   textarea,
   button,
   .bouton):focus {
   outline: none;
}

*.clair:focus-visible {
   background: var(--couleur-sombre);
   color: var(--couleur-claire);
   outline: var(--bordure);
}

*::selection,
.clair *.surligne::selection {
   background-color: var(--couleur-claire);
   color: var(--couleur-sombre);
}

.clair *::selection,
*.surligne::selection {
   background-color: var(--couleur-legere);
   color: var(--couleur-claire);
}

/* ----------------------------- */
a:not(.bouton):focus-visible,
a:not(.bouton):hover {
   background: var(--couleur-claire);
   color: var(--couleur-sombre);
   text-decoration: none;
}

/* ----------------------------- */
button,
*.bouton {
   display: flex;
   gap: var(--espacement-S);
   align-items: center;
   width: fit-content;
   padding: var(--espacement-M) var(--espacement-S);
   /**/
   cursor: pointer;
   text-decoration: none;
   outline: var(--bordure);
}

button.separateur_protocole,
*.bouton.separateur_protocole {
   padding: var(--espacement-M) var(--espacement-S) var(--espacement-M) 0;
}

button.clair,
*.bouton.clair,
button:not(.clair):hover,
*.bouton:not(.clair):hover,
button:focus-visible,
*.bouton:focus-visible {
   background: var(--couleur-claire);
   color: var(--couleur-sombre);
}

button.clair:hover,
*.bouton.clair:hover {
   background: var(--couleur-sombre);
   color: var(--couleur-claire);
}

button.clair:focus-visible,
*.bouton.clair:focus-visible,
button:focus-visible:hover,
*.bouton:focus-visible:hover {
   background: var(--couleur-moyenne);
   color: var(--couleur-claire);
}

/* ----------------------------- */
em {
   font-style: normal;
}

/* ----------------------------- */
img {
   display: block;
}

/* ----------------------------- */
svg {
   overflow: visible;
}

/* ----------------------------- */
input {
   text-indent: var(--espacement-M);
   padding: var(--espacement-L) var(--espacement-L) var(--espacement-L) 0;
   line-height: calc(var(--espacement-M) + 2 * var(--espacement-L));
   /**/
   outline: var(--bordure);
   background: transparent;
   color: var(--couleur-claire);
   caret-color: var(--couleur-clair);
   caret-shape: block;
}

input::placeholder {
   color: var(--couleur-brillance-forte);
}

/* ----------------------------- */
mark.surligne {
   padding: var(--espacement-XS) 0 var(--espacement-XS) var(--espacement-3XS);
}

/* ----------------------------- */
*:has(>pre) {
   max-width: 100%;
   overflow-x: scroll;
}

pre {
   line-height: 1;
   padding: var(--espacement-L);
}

/* ----------------------------- */
ol,
ul {
   display: flex;
   flex-direction: column;
}

/* ----------------------------- */
nav ul,
nav ol {
   gap: var(--espacement-L);
}

/* ----------------------------- */
p:has(svg) > *,
span:has(svg) > *,
mark:has(svg) > * {
   vertical-align: middle;
}

/* ----------------------------- */
nav *:not(button,
   .bouton) {
   overflow-wrap: anywhere;
}


/* ------------------------ */
/* ------------------------ */
/* -- Styles de sections -- */

html {
   width: 100%;
   height: 100%;
   /**/
   scrollbar-color: var(--couleur-claire) var(--couleur-sombre);
   background: var(--couleur-sombre);
   color: var(--couleur-claire);
   /**/
   font-family: "--fixedsys-excelsior", sans-serif;
   font-size: medium;
   font-weight: normal;
}

html:not(:has(.conteneur_defilement)) {
   display: flex;
   flex-direction: column;
   align-items: center;
   height: unset;
}

/* ----------------------------- */
body:not(:has(.conteneur_defilement)),
body .conteneur_contenu {
   container-type: inline-size;
   /**/
   display: flex;
   flex-direction: column;
   gap: var(--espacement-L);
   width: 100%;
   max-width: calc(60 * var(--espacement-M));
   padding: var(--espacement-4XL) var(--espacement-XL) calc(2 * var(--espacement-4XL)) var(--espacement-XL);
}

/* ----------------------------- */
body .conteneur_defilement {
   scrollbar-gutter: stable both-edges;
   display: flex;
   flex-direction: column;
   align-items: center;
   overflow-y: scroll;
   height: calc(100vh - (2 * var(--espacement-2XL) + var(--espacement-XL)));
}

/* ----------------------------- */
main {
   display: flex;
   flex-direction: column;
   gap: var(--espacement-XL);
}

/* ----------------------------- */
article,
aside,
section:not(.bloc,
   [aria-label="Rappel pratique"]) {
   display: flex;
   flex-direction: column;
   flex-wrap: wrap;
   gap: var(--espacement-XL);
}

section[data-contenu-clc] {
   gap: var(--espacement-L);
}

section[aria-label="Réponse du système"] {
   scroll-margin-top: var(--espacement-4XL);
}

section[aria-label="Réponse du système"]:focus-visible {
   background: var(--couleur-moyenne);
   color: inherit;
   outline: var(--focus-sections-CLC);
   outline-offset: unset;
}