/* pythonedinburgh.org — style « Le sommaire » */

@font-face{font-family:"Atkinson Hyperlegible";src:url("fonts/atkinson-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url("fonts/atkinson-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --ink:#000;
  --text:#37352f;
  --soft:#787774;
  --blue:#2383e2;
  --rule:#e9e9e7;
  --wash:#f7f7f5;
  --font:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:24px}
body{margin:0;background:#fff;color:var(--text);font-family:var(--font);font-size:18.5px;line-height:1.7}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
a:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:2px}

.top{max-width:1160px;margin:0 auto;padding:20px 32px}
.top a{color:var(--ink);font-weight:700;font-size:16px;text-decoration:none}

.wrap{max-width:1160px;margin:0 auto;padding:24px 32px 96px;display:grid;grid-template-columns:260px minmax(0,680px);gap:64px}

/* sommaire */
.toc{position:sticky;top:24px;align-self:start;max-height:calc(100vh - 48px);overflow:auto;font-size:14.5px;line-height:1.4}
.toc summary{display:none}
.toc .label{margin:0 0 10px;color:var(--soft);font-size:13.5px}
.toc ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--rule)}
.toc li{margin:0}
.toc a{display:block;padding:5px 0 5px 14px;margin-left:-2px;border-left:2px solid transparent;color:var(--text);text-decoration:none}
.toc a:hover{color:var(--ink)}
.toc a.on{border-left-color:var(--ink);color:var(--ink);font-weight:700}

/* texte */
main{min-width:0}
h1{margin:8px 0 12px;color:var(--ink);font-size:clamp(34px,4.2vw,46px);line-height:1.1;letter-spacing:-.01em}
.sub{margin:0 0 36px;color:var(--soft);font-size:21px;line-height:1.45}
.lead{color:var(--ink);font-size:20px;line-height:1.6}
h1+.lead{margin-top:20px}
h2{margin:52px 0 12px;color:var(--ink);font-size:27px;line-height:1.22}
h3{margin:34px 0 8px;color:var(--ink);font-size:20px;line-height:1.3}
p{margin:0 0 1em}
ul,ol{margin:0 0 1.2em;padding-left:1.3em}
li{margin:0 0 .5em}
strong{color:var(--ink)}
figure{margin:32px 0}
figure img{border-radius:4px}
.note{background:var(--wash);border-left:3px solid var(--ink);padding:14px 18px;margin:0 0 1.2em}
.note p:last-child{margin:0}
.table{overflow-x:auto;margin:0 0 1.4em}
table{border-collapse:collapse;width:100%;font-size:15.5px;line-height:1.45}
th,td{text-align:left;vertical-align:top;padding:9px 12px 9px 0;border-bottom:1px solid var(--rule)}
th{color:var(--ink);border-bottom:2px solid var(--ink)}

.foot{max-width:1160px;margin:0 auto;padding:28px 32px 40px;color:var(--soft);font-size:13.5px}

@media (max-width:900px){
  .top{padding:16px}
  .wrap{grid-template-columns:1fr;gap:8px;padding:8px 16px 72px}
  .toc{position:static;max-height:none;border:1px solid var(--rule);border-radius:6px;padding:12px 14px;margin-bottom:20px}
  .toc summary{display:list-item;cursor:pointer;font-weight:700;color:var(--ink)}
  .toc[open] summary{margin-bottom:10px}
  body{font-size:17.5px}
  h2{font-size:24px;margin-top:44px}
  .foot{padding:24px 16px 36px}
}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media print{.toc{display:none}.wrap{display:block}}
