/* Identité « Gymnase » — générée par moteur/identite.py depuis moteur/identites/gymnase/. Ne pas modifier ici. */
@font-face{font-family:"Atkinson Hyperlegible Next";src:url("/static/polices/atkinson-hyperlegible-next-400-700.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Zilla Slab";src:url("/static/polices/zilla-slab-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
:root{--fond:#ffffff;--fond-2:#f6f3ee;--encre:#1f1a14;--encre-2:#5b524a;--trait:#e6e1db;--trait-fort:#1f1a14;--accent:#c2410c;--accent-texte:#b13a0a;--accent-doux:#ffeadb;--sur-accent:#ffffff;--bandeau:#0f6b62;--sur-bandeau:#ffffff;--sur-bandeau-2:#e3f2ef;--vif:#f6c945;--sur-vif:#1f1a14;--pied:#ffffff;--sur-pied:#5b524a;--bloc:#c2410c;--sur-bloc:#ffffff;--teinte-1:#ffeadb;--sur-teinte-1:#b13a0a;--teinte-2:#fdf1c7;--sur-teinte-2:#1f1a14;--teinte-3:#dff3ee;--sur-teinte-3:#0f6b62;color-scheme:light}
@media (prefers-color-scheme:dark){:root{--fond:#16120e;--fond-2:#211b16;--encre:#f4ede5;--encre-2:#bfb3a7;--trait:#3a3129;--trait-fort:#f4ede5;--accent:#ff8a4c;--accent-texte:#ff9b66;--accent-doux:#3a2116;--sur-accent:#16120e;--bandeau:#0c4f48;--sur-bandeau:#ffffff;--sur-bandeau-2:#cfe9e4;--vif:#f6c945;--sur-vif:#1f1a14;--pied:#16120e;--sur-pied:#bfb3a7;--bloc:#b13a0a;--sur-bloc:#ffffff;--teinte-1:#3a2116;--sur-teinte-1:#ffb48a;--teinte-2:#3a3015;--sur-teinte-2:#f6d66b;--teinte-3:#123a35;--sur-teinte-3:#7fd6c8;color-scheme:dark}}
/* Gymnase (S3b) — les marquages colorés d'un sol de salle (orange, jaune, vert), des titres
   à empattements carrés (Zilla Slab), des aplats francs, un texte très lisible (Atkinson). */
:root {
  --police-texte: "Atkinson Hyperlegible Next", system-ui, sans-serif;
  --police-titres: "Zilla Slab", Georgia, serif;
  --graisse-titres: 700;
  --t-corps: 1.125rem;
  --t-h1: clamp(2.6rem, 1.5rem + 4.4vw, 5rem);
  --t-h2: clamp(1.8rem, 1.4rem + 1.4vw, 2.75rem);
  --t-chiffre: clamp(3.25rem, 2rem + 4.8vw, 6.5rem);
  --lien-epaisseur: 2px;
  --rayon: 6px;
}
h1 { line-height: 1.1; letter-spacing: -.015em; }
h1 mark { padding: 0 .12em; }
.chiffres strong { font-variant-numeric: normal; }

/* Les trois lignes de marquage, sous l'en-tête et au-dessus du pied. */
.entete::after, .pied::before { content: ""; display: block; height: 24px; }
.entete::after { background: linear-gradient(var(--bloc) 0 6px, transparent 6px 9px, var(--vif) 9px 15px, transparent 15px 18px, var(--bandeau) 18px 24px); }
.pied::before { background: linear-gradient(var(--bandeau) 0 6px, transparent 6px 9px, var(--vif) 9px 15px, transparent 15px 18px, var(--bloc) 18px 24px); }
.marque-signe { width: 2.25rem; height: 2.25rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Ccircle cx='17' cy='17' r='15' fill='%23f6c945' stroke='%231f1a14' stroke-width='2'/%3E%3Cg fill='%231f1a14'%3E%3Ccircle cx='12' cy='11' r='2'/%3E%3Ccircle cx='21' cy='10' r='2'/%3E%3Ccircle cx='10' cy='19' r='2'/%3E%3Ccircle cx='18' cy='18' r='2'/%3E%3Ccircle cx='24' cy='21' r='2'/%3E%3Ccircle cx='15' cy='25' r='2'/%3E%3C/g%3E%3C/svg%3E"); }
.marque-nom { font-size: 1.65rem; }
.entete-nav a { color: var(--accent-texte); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .22em; }

.ouverture { padding-block: 1.25rem 0; }
.fil, .maj { color: var(--encre-2); }
.accroche { color: var(--encre-2); font-size: 1.35rem; }
.titre-sous { display: inline-block; margin-top: .5em; padding: 0 .3em; background: var(--vif); color: var(--sur-vif); font-size: .42em; }
.resume { color: var(--encre-2); }

/* Les chiffres : trois aplats, aux trois couleurs du marquage. */
.chiffres { gap: .75rem; }
.chiffres li { padding: 1.25rem 1.4rem 1.4rem; border-radius: var(--rayon); }
.chiffres li:nth-child(1) { background: var(--bloc); color: var(--sur-bloc); }
.chiffres li:nth-child(2) { background: var(--vif); color: var(--sur-vif); }
.chiffres li:nth-child(3) { background: var(--bandeau); color: var(--sur-bandeau); }
.chiffres span { font-weight: 700; font-size: 1.05rem; }

/* Cartes, lieux et fiche : des aplats tournants, sans bordure. */
.carte-lieu:nth-child(3n+1) a, .lieu:nth-child(3n+1), .fiche > div:nth-child(3n+1) { background: var(--teinte-1); }
.carte-lieu:nth-child(3n+2) a, .lieu:nth-child(3n+2), .fiche > div:nth-child(3n+2) { background: var(--teinte-2); }
.carte-lieu:nth-child(3n) a, .lieu:nth-child(3n), .fiche > div:nth-child(3n) { background: var(--teinte-3); }
.carte-lieu:nth-child(3n+1) .carte-code, .lieu:nth-child(3n+1) .lieu-rang { color: var(--sur-teinte-1); }
.carte-lieu:nth-child(3n+2) .carte-code, .lieu:nth-child(3n+2) .lieu-rang { color: var(--sur-teinte-2); }
.carte-lieu:nth-child(3n) .carte-code, .lieu:nth-child(3n) .lieu-rang { color: var(--sur-teinte-3); }
.carte-lieu a:hover, .tuiles a:hover { outline: 3px solid var(--encre); }
.carte-nom { font-size: 1.5rem; }
.lieu .etiquette { background: var(--fond); color: var(--encre); }
.fiche { border-top: 0; gap: .5rem; }
.fiche > div { border: 0; border-radius: var(--rayon); padding: .8rem 1rem; }
.fiche a { color: var(--encre); }
.motif { background: var(--bandeau); color: var(--sur-bandeau); }
.motif h2 { font-size: 1.6rem; }
.carte-bouton { background: var(--bloc); color: var(--sur-bloc); font-size: 1.125rem; min-height: 52px; }
.etapes li::before { color: var(--accent); }

.appel { padding: 2rem 2rem 2.25rem; border-radius: var(--rayon); background: var(--bandeau); color: var(--sur-bandeau); }
.appel .bloc-titre { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.25rem); }
.appel p { margin-bottom: .75rem; }
.appel-lien { display: inline-flex; align-items: center; min-height: 52px; padding: 0 1.4rem; border-radius: var(--rayon);
  background: var(--vif); color: var(--sur-vif); text-decoration: none; }
.appel-lien:hover { text-decoration: underline; }

.pied .cadre { padding-top: 1.5rem; }
