/* Feuille de style du site. Volontairement simple : texte noir sur blanc. */
html { color-scheme: light; -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 17px/1.55 Georgia, "Times New Roman", Times, serif; color: #111; background: #fff; }
a { color: #1a3a9a; }
img { max-width: 100%; height: auto; }

.bandeau { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .3rem 1rem;
  padding: .6rem 1rem; border-bottom: 2px solid #111; }
.bandeau .nom { font-weight: bold; font-size: 1.15rem; color: #111; text-decoration: none; }
.bandeau .liens { font-size: .9rem; }
.avis { margin: 0; padding: .4rem 1rem; background: #fff6cc; border-bottom: 1px solid #c9a700; font: 14px/1.4 Arial, Helvetica, sans-serif; }

.cadre { display: grid; grid-template-columns: minmax(0, 1fr) 16rem; max-width: 70rem; margin: 0 auto; }
.cadre.seul { grid-template-columns: minmax(0, 1fr); max-width: 48rem; }
main { padding: 1rem 1.5rem 3rem; min-width: 0; }
nav.sommaire { padding: 1.2rem 1rem; border-left: 1px solid #999; font-size: .9rem; line-height: 1.35; }
nav.sommaire.accueil { border: 0; padding: 0; font-size: 1rem; line-height: 1.5; }
nav.sommaire ul { margin: 0 0 .8rem; padding-left: 1.1rem; }
nav.sommaire li { margin: .2rem 0; }
nav.sommaire li.ici a { color: #111; font-weight: bold; text-decoration: none; }
nav.sommaire .rub, .titre-som { margin: .9rem 0 .2rem; font-weight: bold; }
.titre-som { margin-top: 0; font-style: italic; font-size: 1.05rem; }

h1 { margin: .4rem 0 1rem; padding-bottom: .25rem; border-bottom: 1px solid #111; font-size: 1.85rem; line-height: 1.2;
  font-weight: normal; font-style: italic; color: #23237a; }
h2 { margin: 2rem 0 .6rem; font-size: 1.3rem; font-style: italic; }
h3 { margin: 1.4rem 0 .4rem; font-size: 1.06rem; }
h4 { margin: 1rem 0 .3rem; font-size: 1rem; text-decoration: underline; font-weight: normal; }
.sous-titre { font-size: 1.1rem; }
.outils { margin: 0 0 1rem; }
.aide { font: 14px/1.4 Arial, Helvetica, sans-serif; color: #444; }
button { font: 15px Arial, Helvetica, sans-serif; padding: .3rem .7rem; cursor: pointer; }
.suite { display: flex; justify-content: space-between; gap: 1rem; margin-top: 3rem; padding-top: .8rem; border-top: 1px solid #999; font-size: .95rem; }
.pied { padding: 1rem; border-top: 1px solid #999; text-align: center; font-size: .85rem; color: #444; }

/* contenu du cours */
.cours p { margin: .55rem 0; }
.cours ul, .cours ol { margin: .5rem 0; padding-left: 1.6rem; }
.cours li { margin: .25rem 0; }
.cours .centre { text-align: center; }
.cours .petit { font-size: .85rem; }
.cours .encadre { margin: 1rem 0; padding: .45rem .9rem; border: 1px solid #111; }
.cours .savoir { margin: 1rem 0; padding: .2rem 0 .2rem .9rem; border-left: 6px solid #999; }
.cours .cols { display: flex; flex-wrap: wrap; gap: .5rem 2rem; margin: .8rem 0; }
.cours .col { flex: 1 1 14rem; min-width: 0; }
.cours img.petite { max-height: 6.5rem; }
.cours img.moyenne { max-height: 12rem; }
.cours img.grande { width: 100%; }
.cours hr { border: 0; border-top: 1px solid #999; margin: 1.5rem 0; }
.defile { overflow-x: auto; margin: .8rem 0; }
.cours table { border-collapse: collapse; }
.cours td, .cours th { border: 1px solid #111; padding: .25rem .6rem; vertical-align: top; text-align: left; font-weight: normal; }
.cours th { font-weight: bold; }
.cours td.centre, .cours th.centre { text-align: center; }
.cours td.gris { background: #e4e4e4; }
.cours table.sans-bord td, .cours table.sans-bord th { border: 0; padding-left: 0; }
.cours table.etroit td, .cours table.etroit th { padding: .15rem .3rem; font-size: .85rem; text-align: center; }

/* écriture mathématique */
.frac { display: inline-flex; flex-direction: column; vertical-align: middle; text-align: center; font-size: .92em; line-height: 1.2; margin: 0 .15em; }
.frac > .num { padding: 0 .3em .05em; border-bottom: 1px solid currentColor; }
.frac > .den { padding: .05em .3em 0; }
.rac { border-top: 1px solid currentColor; padding: 0 .12em; }
.angle { position: relative; display: inline-block; }
.angle::before { content: ""; position: absolute; left: 0; right: 0; top: -.08em; height: .32em; background: currentColor;
  clip-path: polygon(0 100%, 50% 0, 100% 100%, 94% 100%, 50% 24%, 6% 100%); }

/* trous */
.trou { display: inline-block; min-width: 3em; min-height: 1.25em; padding: 0 .2em; border-bottom: 2px dotted #111; text-align: center; vertical-align: bottom; box-sizing: border-box; }
.trou.t1 { min-width: 2.6em; } .trou.t2 { min-width: 5em; } .trou.t3 { min-width: 9em; } .trou.t4 { min-width: 14em; } .trou.t5 { min-width: 19em; }
.trou.rep { color: #1a3a9a; }
.js .trou.rep { cursor: pointer; background: #ececec; }
.js .trou.rep:not(.vu) .r { visibility: hidden; }
.js .trou.rep.vu { background: none; }
.trou.rep:focus-visible { outline: 2px solid #1a3a9a; outline-offset: 1px; }
.trou-bloc.vide { margin: .6rem 0; }
.trou-bloc.vide i { display: block; height: 1.7em; border-bottom: 2px dotted #111; }
details.correction { margin: .7rem 0; padding: .3rem .8rem; border: 1px dashed #1a3a9a; color: #1a3a9a; }
details.correction summary { cursor: pointer; font: 15px Arial, Helvetica, sans-serif; }
details.correction .trou.rep { background: none; cursor: default; border-bottom: 0; min-width: 0; }
details.correction .trou.rep .r { visibility: visible !important; }

@media (max-width: 820px) {
  body { font-size: 16px; }
  .cadre { grid-template-columns: minmax(0, 1fr); }
  main { padding: .8rem 1rem 2rem; }
  nav.sommaire { border-left: 0; border-top: 1px solid #999; }
  h1 { font-size: 1.5rem; }
  .trou.t4, .trou.t5 { min-width: 9em; }
}
@media print {
  .bandeau .liens, nav.sommaire, .outils, .suite, .avis { display: none; }
  .cadre { display: block; }
  .js .trou.rep { background: none; }
}
