/* ============================================================
   INFOGEO · Insper — sistema visual do curso
   Vermelho institucional Insper: Pantone 2034 C · #E50505
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Lora:ital,wght@0,400;0,500;0,600;1,400;1,500&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --red:#E50505;
  --red-deep:#A80404;
  --red-wash:#FDECEC;
  --red-line:rgba(229,5,5,.28);
  --ink:#14141A;
  --ink-soft:#3A3A42;
  --graphite:#6B6B73;
  --mist:#9A9AA2;
  --line:#E2E0DC;
  --line-soft:#EFEDE9;
  --paper:#FFFFFF;
  --paper-warm:#FAF8F5;
  --paper-deep:#F2EFEA;
  --amber:#B26B00;
  --amber-wash:#FDF4E3;
  --green:#1F6B4A;
  --green-wash:#EAF4EE;
  --blue:#1B4F82;
  --blue-wash:#EAF1F8;

  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --serif:'Lora',Georgia,'Times New Roman',serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  --measure:70ch;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.68;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--red-deep);text-decoration:none;border-bottom:1px solid var(--red-line)}
a:hover{border-bottom-color:var(--red)}

.wrap{max-width:1160px;margin:0 auto;padding:0 34px}
.narrow{max-width:var(--measure)}

/* ── barra superior ────────────────────────────────── */
.topbar{
  position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);border-bottom:1px solid var(--line);
}
.topbar .wrap{display:flex;align-items:center;gap:24px;height:60px}
.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:14.5px;letter-spacing:-.02em;white-space:nowrap;border:0;color:var(--ink)}
.brand:hover{color:var(--red);border:0}
.brand .sq{width:9px;height:21px;background:var(--red)}
.topnav{display:flex;gap:20px;margin-left:auto;list-style:none;margin-block:0;padding:0}
.topnav a{color:var(--ink-soft);font-size:13.5px;font-weight:500;border:0}
.topnav a:hover{color:var(--red)}
.topnav a.here{color:var(--red);font-weight:600}
@media(max-width:900px){.topnav{display:none}}

/* ── trilha das 10 perguntas ───────────────────────── */
.rail{background:var(--ink);padding:0}
.rail .wrap{display:flex;overflow-x:auto;gap:0;scrollbar-width:thin}
.rail a{
  flex:0 0 auto;padding:11px 15px;border:0;border-right:1px solid rgba(255,255,255,.1);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.42);white-space:nowrap;transition:color .15s,background .15s;
}
.rail a:hover{color:#fff;background:rgba(255,255,255,.07)}
.rail a.done{color:rgba(255,255,255,.62)}
.rail a.now{color:#fff;background:var(--red);font-weight:600}
.rail a.ahead{color:rgba(255,255,255,.40)}
.rail a.ahead:hover{color:#fff}

/* ── capa do encontro ──────────────────────────────── */
.cover{background:var(--ink);color:#fff;padding:64px 0 56px;position:relative;overflow:hidden}
.cover::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:44px 44px}
.cover::after{content:"";position:absolute;top:-160px;right:-140px;width:540px;height:540px;background:radial-gradient(circle,rgba(229,5,5,.32),transparent 66%)}
.cover .wrap{position:relative;z-index:2}
.cover .tag{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#FF6B6B;margin-bottom:20px}
.cover h1{font-family:var(--serif);font-weight:600;font-size:clamp(32px,4.8vw,54px);line-height:1.08;letter-spacing:-.024em;margin:0;max-width:22ch}
.cover .sub{font-size:18.5px;line-height:1.6;color:rgba(255,255,255,.72);max-width:64ch;margin:22px 0 0;font-weight:300}
.facts{display:flex;flex-wrap:wrap;margin-top:42px;border-top:1px solid rgba(255,255,255,.16)}
.facts div{padding:18px 28px 2px 0;margin-right:28px;border-right:1px solid rgba(255,255,255,.13)}
.facts div:last-child{border-right:0;margin-right:0}
.facts b{display:block;font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1.25}
.facts span{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.48)}

/* ── layout de conteúdo com sumário lateral ────────── */
.shell{display:grid;grid-template-columns:212px 1fr;gap:56px;padding:56px 0 90px;align-items:start}
@media(max-width:1000px){.shell{grid-template-columns:1fr;gap:0}}
.toc{position:sticky;top:92px}
@media(max-width:1000px){.toc{position:static;margin-bottom:44px;border-left:2px solid var(--red);padding-left:18px}}
.toc h6{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mist);margin:0 0 12px;font-weight:500}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:t}
.toc li{margin-bottom:2px}
.toc a{
  display:block;padding:5px 0 5px 14px;border:0;border-left:2px solid var(--line);
  font-size:13.5px;color:var(--graphite);line-height:1.4;
}
.toc a:hover{color:var(--red);border-left-color:var(--red)}
.toc a.on{color:var(--ink);border-left-color:var(--red);font-weight:600}
.toc .grp{font-family:var(--mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--red);padding:16px 0 5px 14px;border-left:2px solid transparent}

/* ── tipografia do corpo ───────────────────────────── */
.body{max-width:none;min-width:0}
.body > *{max-width:var(--measure)}
.body > .full{max-width:none}

.partmark{
  display:flex;align-items:baseline;gap:16px;margin:0 0 26px;padding-bottom:14px;
  border-bottom:2px solid var(--ink);max-width:none;
}
.partmark .pn{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);white-space:nowrap}
.partmark .pt{font-family:var(--serif);font-size:clamp(24px,3vw,32px);font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:0}
.partmark .pd{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--graphite);white-space:nowrap}
@media(max-width:640px){.partmark{flex-wrap:wrap}.partmark .pd{margin-left:0;width:100%}}

section.part{padding:52px 0 0;scroll-margin-top:96px}
section.part:first-of-type{padding-top:0}

h2{font-family:var(--serif);font-size:26px;font-weight:600;letter-spacing:-.018em;line-height:1.24;margin:44px 0 14px}
h3{font-size:18px;font-weight:700;letter-spacing:-.01em;margin:34px 0 10px;color:var(--ink)}
h4{font-size:15.5px;font-weight:700;margin:26px 0 8px}
p{margin:0 0 18px}
.body ul,.body ol{margin:0 0 18px;padding-left:22px}
.body li{margin-bottom:7px}
.body li::marker{color:var(--red)}
strong{font-weight:650}
em{font-style:italic}
.lede{font-size:19.5px;line-height:1.62;color:var(--ink-soft);font-weight:300;margin-bottom:26px}
.dim{color:var(--graphite);font-size:15px}

/* ── componentes didáticos ─────────────────────────── */

/* pergunta norteadora */
.pense{
  border-left:4px solid var(--red);background:var(--red-wash);
  padding:20px 24px;margin:30px 0;max-width:var(--measure);
}
.pense .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--red-deep);margin-bottom:9px;font-weight:600}
.pense p{margin:0 0 10px;font-size:16.5px;line-height:1.6}
.pense p:last-child{margin-bottom:0}
.pense .q{font-family:var(--serif);font-size:19px;font-weight:500;font-style:italic;line-height:1.45;color:var(--ink)}

/* caixa de conceito */
.conceito{
  border:1px solid var(--line);border-top:3px solid var(--ink);background:var(--paper-warm);
  padding:22px 26px;margin:30px 0;max-width:var(--measure);
}
.conceito .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--graphite);margin-bottom:10px}
.conceito h4{margin:0 0 8px;font-size:17px;font-family:var(--serif);font-weight:600;letter-spacing:-.012em}
.conceito p:last-child{margin-bottom:0}
.conceito p{font-size:16px}

/* passo do roteiro */
.passo{display:grid;grid-template-columns:52px 1fr;gap:22px;margin:0 0 8px;padding:26px 0;border-top:1px solid var(--line);max-width:none}
.passo:first-of-type{border-top:2px solid var(--red)}
.passo > .n{
  font-family:var(--mono);font-size:13px;font-weight:600;color:#fff;background:var(--ink);
  width:38px;height:38px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;margin-top:2px;
}
.passo > .c{min-width:0}
.passo > .c > *{max-width:var(--measure)}
.passo h3{margin:0 0 10px;font-size:19px;font-family:var(--serif);font-weight:600;letter-spacing:-.014em}
.passo p{font-size:16px}
.passo ol,.passo ul{font-size:16px}

/* caminho de menu */
.caminho{
  display:inline-block;font-family:var(--mono);font-size:13px;background:var(--ink);color:#fff;
  padding:4px 11px;letter-spacing:.01em;margin:2px 0;line-height:1.7;
}
.caminho i{font-style:normal;color:#FF8A8A;padding:0 3px}
code,.expr{font-family:var(--mono);font-size:14px;background:var(--paper-deep);padding:2px 6px;color:var(--ink)}
pre.expr{
  display:block;padding:16px 18px;margin:16px 0;overflow-x:auto;line-height:1.6;
  border-left:3px solid var(--red);background:var(--paper-deep);font-size:14px;
}
pre.expr .cm{color:var(--graphite)}

/* parâmetros de uma janela de ferramenta */
.params{margin:16px 0;border:1px solid var(--line);background:var(--paper);max-width:var(--measure)}
.params .hd{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--ink);padding:8px 14px}
.params dl{margin:0;padding:6px 14px 12px;display:grid;grid-template-columns:auto 1fr;gap:0 18px}
.params dt{font-size:14px;color:var(--graphite);padding:7px 0;border-bottom:1px solid var(--line-soft)}
.params dd{margin:0;padding:7px 0;font-family:var(--mono);font-size:13.5px;border-bottom:1px solid var(--line-soft);word-break:break-word}
.params dl > :nth-last-child(1),.params dl > :nth-last-child(2){border-bottom:0}

/* checkpoint */
.confira{
  border-left:4px solid var(--green);background:var(--green-wash);padding:16px 20px;margin:20px 0;
  max-width:var(--measure);font-size:15.5px;
}
.confira .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--green);font-weight:600;margin-bottom:7px}
.confira p{margin:0 0 8px}
.confira p:last-child{margin-bottom:0}

/* erro comum */
.cuidado{
  border-left:4px solid var(--amber);background:var(--amber-wash);padding:16px 20px;margin:20px 0;
  max-width:var(--measure);font-size:15.5px;
}
.cuidado .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--amber);font-weight:600;margin-bottom:7px}
.cuidado p{margin:0 0 8px}
.cuidado p:last-child{margin-bottom:0}

/* nota lateral / contexto */
.contexto{
  border-left:4px solid var(--blue);background:var(--blue-wash);padding:16px 20px;margin:20px 0;
  max-width:var(--measure);font-size:15.5px;
}
.contexto .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--blue);font-weight:600;margin-bottom:7px}
.contexto p{margin:0 0 8px}
.contexto p:last-child{margin-bottom:0}

/* figura / captura de tela */
figure{margin:26px 0;max-width:none}
figure img{border:1px solid var(--line)}
figure.ph{
  border:1px dashed var(--mist);background:var(--paper-warm);padding:44px 26px;text-align:center;
  font-family:var(--mono);font-size:12px;color:var(--mist);letter-spacing:.06em;
}
figcaption{font-size:13.5px;color:var(--graphite);margin-top:9px;line-height:1.5;max-width:var(--measure)}
figcaption b{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--red);font-weight:600;margin-right:6px}

/* tabela */
table{width:100%;border-collapse:collapse;margin:26px 0;font-size:15px;max-width:none}
th{text-align:left;font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--graphite);font-weight:500;padding:0 14px 10px 0;border-bottom:2px solid var(--ink);vertical-align:bottom}
td{padding:11px 14px 11px 0;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.5}
tbody tr:hover{background:var(--paper-warm)}
td.num,th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;padding-right:20px}
tr.hi td{background:var(--red-wash);font-weight:600}
tr.hi:hover td{background:var(--red-wash)}
table caption{caption-side:bottom;text-align:left;font-size:13px;color:var(--graphite);padding-top:10px;line-height:1.5}

/* exercício */
.exercicio{border:2px solid var(--ink);background:var(--paper);margin:34px 0;max-width:none}
.exercicio .hd{background:var(--ink);color:#fff;padding:14px 26px;display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.exercicio .hd b{font-family:var(--serif);font-size:19px;font-weight:600;letter-spacing:-.012em}
.exercicio .hd span{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:#FF8A8A}
.exercicio .bd{padding:24px 26px 10px}
.exercicio .bd > *{max-width:var(--measure)}
.exercicio ol{padding-left:20px}
.entrega{border-top:1px solid var(--line);margin-top:8px;padding:16px 26px;background:var(--paper-warm);font-size:15px}
.entrega b{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--red-deep);display:block;margin-bottom:6px}

/* a resposta da semana */
.resposta{background:var(--ink);color:#fff;padding:30px 34px;margin:34px 0;border-left:5px solid var(--red);max-width:none}
.resposta .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#FF6B6B;margin-bottom:12px;font-weight:600}
.resposta p{color:rgba(255,255,255,.82);margin:0 0 12px;font-size:16.5px;max-width:72ch}
.resposta p:last-child{margin-bottom:0}
.resposta strong{color:#fff}
.resposta .big{font-family:var(--serif);font-size:22px;line-height:1.45;color:#fff;font-weight:500}

/* limitações */
.limites{border:1px solid var(--line);border-left:4px solid var(--graphite);padding:22px 26px;margin:30px 0;max-width:var(--measure);background:var(--paper-warm)}
.limites .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--graphite);font-weight:600;margin-bottom:11px}
.limites ul{margin:0;padding-left:20px}
.limites li{margin-bottom:9px;font-size:15.5px;line-height:1.55}
.limites li:last-child{margin-bottom:0}

/* leituras */
.leituras{margin:24px 0;max-width:var(--measure)}
.leituras .item{padding:13px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:88px 1fr;gap:18px;align-items:baseline}
.leituras .item:first-child{border-top:1px solid var(--line)}
.leituras .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--graphite)}
.leituras .k.prep{color:var(--red);font-weight:600}
.leituras .t{font-size:15.5px;line-height:1.5}
.leituras .t .src{display:block;font-family:var(--mono);font-size:11px;color:var(--mist);letter-spacing:.04em;margin-top:3px}
@media(max-width:600px){.leituras .item{grid-template-columns:1fr;gap:4px}}

/* dados */
.dados{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.dado{font-family:var(--mono);font-size:12px;background:var(--ink);color:#fff;padding:5px 11px;letter-spacing:.02em}
.dado.pre{background:var(--paper);color:var(--red-deep);border:1px solid var(--red)}

/* navegação entre encontros */
.nextprev{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:70px;padding-top:34px;border-top:2px solid var(--ink);max-width:none}
.nextprev a{border:1px solid var(--line);padding:20px 24px;display:block;background:var(--paper)}
.nextprev a:hover{border-color:var(--red);background:var(--paper-warm)}
.nextprev .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--graphite);display:block;margin-bottom:7px}
.nextprev .t{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--ink);line-height:1.3;display:block;letter-spacing:-.014em}
.nextprev a:hover .t{color:var(--red)}
.nextprev .r{text-align:right}
@media(max-width:640px){.nextprev{grid-template-columns:1fr}.nextprev .r{text-align:left}}

footer.site{background:var(--ink);color:rgba(255,255,255,.52);padding:46px 0;font-size:13.5px}
footer.site .wrap{display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap;align-items:flex-end}
footer.site b{color:#fff;display:block;font-size:14.5px;margin-bottom:5px;font-weight:700}
footer.site .sig{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.36)}

/* ── impressão ─────────────────────────────────────── */
@media print{
  :root{--measure:100%}
  body{font-size:10.5pt;line-height:1.5;background:#fff}
  .topbar,.rail,.toc,.nextprev,footer.site{display:none !important}
  .shell{display:block;padding:0}
  .cover{background:#fff;color:#000;padding:0 0 18pt;border-bottom:2pt solid #000}
  .cover::before,.cover::after{display:none}
  .cover h1{font-size:22pt;color:#000}
  .cover .sub{color:#333}
  .cover .tag{color:#A80404}
  .facts{border-top:1px solid #999}
  .facts b{color:#000;font-size:12pt}
  .facts span{color:#666}
  .resposta{background:#fff;color:#000;border:1.5pt solid #000;border-left:4pt solid #A80404}
  .resposta p,.resposta .big{color:#000}
  .resposta .lbl{color:#A80404}
  .passo{display:block;padding:18pt 0}
  .passo > .n{
    background:#000;display:inline-block;width:24pt;height:24pt;line-height:24pt;text-align:center;
    font-size:11pt;border-radius:12pt;margin:0 0 8pt;
    -webkit-print-color-adjust:exact;print-color-adjust:exact
  }
  .passo > .c{display:block}
  pre.expr{font-size:8.5pt;line-height:1.45;white-space:pre-wrap;overflow-x:visible;padding:10pt 12pt}
  .params dd,.params dt{font-size:9.5pt}
  .caminho{background:#eee;color:#000;border:1px solid #999}
  .caminho i{color:#A80404}
  .exercicio .hd{background:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  section.part{page-break-inside:auto;padding-top:22pt}
  .conceito,.pense,.confira,.cuidado,.exercicio,figure,.params{page-break-inside:avoid}
  .passo > .n{page-break-after:avoid}
  h2,h3,.partmark{page-break-after:avoid}
  a{color:#000;border:0}
  code,kbd,.caminho{white-space:normal;word-break:break-word;overflow-wrap:anywhere}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* ── home ──────────────────────────────────────────── */
.hero{background:var(--ink);color:#fff;padding:82px 0 70px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:46px 46px}
.hero::after{content:"";position:absolute;top:-150px;right:-150px;width:560px;height:560px;background:radial-gradient(circle,rgba(229,5,5,.34),transparent 66%)}
.hero .wrap{position:relative;z-index:2}
.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(38px,5.6vw,62px);line-height:1.05;letter-spacing:-.025em;margin:0;max-width:21ch}
.hero h1 em{color:var(--red);font-style:normal}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0;border-top:2px solid var(--ink);margin-top:38px}
.card{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:26px 26px 26px 0;display:block;border-left:0;border-top:0}
a.card{color:var(--ink)}
a.card:hover{background:var(--paper-warm)}
a.card:hover .ct{color:var(--red)}
.card .cn{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--red);margin-bottom:9px}
.card .ct{font-family:var(--serif);font-size:20px;font-weight:600;line-height:1.28;letter-spacing:-.016em;margin-bottom:9px;transition:color .15s}
.card .cs{font-size:14px;color:var(--graphite);line-height:1.55;margin:0}
.card .cm{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mist);margin-top:13px}
.card.soon{opacity:.5}

section.block{padding:70px 0;border-bottom:1px solid var(--line)}
section.block.warm{background:var(--paper-warm)}
.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.kicker::after{content:"";flex:1;height:1px;background:var(--line);max-width:170px}
section.block h2{font-family:var(--serif);font-size:clamp(27px,3.5vw,38px);margin:0 0 18px;max-width:24ch;line-height:1.14}


/* itens ainda não produzidos */
.rail .rl{
  flex:0 0 auto;padding:11px 15px;border-right:1px solid rgba(255,255,255,.1);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.26);white-space:nowrap;
}
.nextprev .np-soon{
  border:1px dashed var(--line);padding:20px 24px;display:block;background:var(--paper-warm);opacity:.62;
}
.nextprev .np-soon .t{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--graphite);line-height:1.3;display:block;letter-spacing:-.014em}

/* ── bloco de download de dados ─────────────────────── */
.baixar{border:1px solid var(--line);border-top:3px solid var(--red);background:var(--paper);margin:26px 0;max-width:none}
.baixar .hd{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap;
  padding:14px 22px;border-bottom:1px solid var(--line);background:var(--paper-warm)}
.baixar .hd b{font-family:var(--serif);font-size:17px;font-weight:600;letter-spacing:-.012em}
.baixar .hd span{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--graphite)}
/* linha única de procedência do pacote */
.baixar .fonte{background:var(--red-wash);font-family:var(--mono);font-size:11.5px;line-height:1.6;color:var(--graphite);
  background:var(--paper-deep);padding:10px 22px;border-bottom:1px solid var(--line)}
.baixar .fonte b{color:var(--ink);font-weight:600}
.baixar .fonte code{font-size:11.5px;background:transparent;padding:0}
.baixar ul{list-style:none;margin:0;padding:6px 22px 14px}
.baixar li{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:baseline;
  padding:11px 0;border-bottom:1px solid var(--line-soft)}
.baixar li:last-child{border-bottom:0}
.baixar .fn{font-family:var(--mono);font-size:13.5px;color:var(--ink);border:0;display:block}
.baixar a.fn{color:var(--red-deep);border-bottom:1px solid var(--red-line)}
.baixar a.fn:hover{border-bottom-color:var(--red)}
.baixar .fd{font-size:13.5px;color:var(--graphite);display:block;margin-top:3px;line-height:1.45}
.baixar .tp{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--graphite);border:1px solid var(--line);padding:3px 8px;white-space:nowrap}
.baixar .tp.prov{color:var(--amber);border-color:var(--amber)}
.baixar .tp.did{color:var(--blue);border-color:var(--blue)}
.baixar .tp.real{color:var(--green);border-color:var(--green)}
.baixar .ft{padding:12px 22px;background:var(--paper-warm);border-top:1px solid var(--line);
  font-size:13.5px;color:var(--graphite);line-height:1.55}
@media(max-width:600px){.baixar li{grid-template-columns:1fr}}

/* ── figuras ─────────────────────────────────────────── */
figure.diagrama{margin:34px 0;max-width:none;background:var(--paper-warm);border:1px solid var(--line);padding:24px 26px 18px}
figure.diagrama img{border:0;margin:0 auto}
figure.diagrama figcaption{max-width:none;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
figure.print{margin:30px 0;max-width:none}
figure.print img{border:1px solid var(--line);box-shadow:0 1px 0 var(--line)}

/* itens da trilha: todos navegáveis */
.rail .rl{display:none}

/* ── cabeçalho de plano de ensino (substitui o hero de produto) ── */
.hero{padding:56px 0 44px}
.hero h1{font-size:clamp(30px,4vw,44px);letter-spacing:-.022em;max-width:none}
.hero .ident{display:grid;grid-template-columns:auto 1fr;gap:0 22px;margin:30px 0 0;max-width:62ch}
.hero .ident dt{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;
  color:rgba(255,255,255,.46);padding:9px 0;border-top:1px solid rgba(255,255,255,.14)}
.hero .ident dd{margin:0;padding:9px 0;font-size:15.5px;color:rgba(255,255,255,.86);
  border-top:1px solid rgba(255,255,255,.14)}
@media(max-width:560px){.hero .ident{grid-template-columns:1fr;gap:0}
  .hero .ident dd{border-top:0;padding-top:0;padding-bottom:12px}}

/* ── tabela de programa ── */
table.programa td:nth-child(2){font-weight:600}
table.programa td:nth-child(2) a{border-bottom-color:var(--line)}
table.programa td:nth-child(2) a:hover{border-bottom-color:var(--red)}
table.programa td:nth-child(3){color:var(--ink-soft);font-size:14.5px}

/* ══ ABERTURA EDITORIAL da apresentação da disciplina ══════════ */
#disciplina{padding:82px 0 76px;background:var(--paper);border-bottom:1px solid var(--line)}
#disciplina .wrap{max-width:1160px}

.editorial{display:grid;grid-template-columns:1fr 1fr;gap:0 54px;position:relative}
.editorial > *{grid-column:1}
.editorial .col2{grid-column:2}
@media(max-width:900px){.editorial{grid-template-columns:1fr;gap:0}
  .editorial .col2{grid-column:1}}

/* filete vertical entre as colunas */
.editorial::before{content:"";position:absolute;top:8px;bottom:8px;left:calc(50% - 1px);
  width:1px;background:var(--line)}
@media(max-width:900px){.editorial::before{display:none}}

/* título de abertura, grande e serifado */
.abertura h2{font-family:var(--serif);font-size:clamp(34px,5.2vw,58px);line-height:1.03;
  letter-spacing:-.03em;margin:0 0 6px;max-width:20ch;font-weight:600}
.abertura h2 em{font-style:italic;color:var(--red)}
.abertura .credito{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--mist);margin:0 0 34px;padding-bottom:22px;
  border-bottom:2px solid var(--ink)}

/* capitular */
.editorial p.cap{margin-top:0}
.editorial p.cap::first-letter{
  float:left;font-family:var(--serif);font-weight:600;font-size:5.1em;line-height:.80;
  padding:.06em .10em 0 0;margin-right:.02em;color:var(--red);
}
.editorial p{font-size:16.5px;line-height:1.72;margin:0 0 18px;max-width:none;
  text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.editorial p:last-child{margin-bottom:0}

/* entrelinha destacada, ao modo de revista */
.editorial .destaque{margin:26px 0 28px;padding:22px 0;border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);font-family:var(--serif);font-size:20.5px;
  line-height:1.44;color:var(--ink);text-align:left;hyphens:manual}
.editorial .destaque .lbl{display:block;font-family:var(--mono);font-size:9.5px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin:0 0 11px}
.editorial .destaque p{font-family:var(--serif);font-size:20.5px;line-height:1.44;
  text-align:left;hyphens:manual;margin:0;color:var(--ink)}

/* pequena capitulação de seção dentro do texto */
.editorial h3{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--red);margin:30px 0 12px;font-weight:600}
.editorial h3:first-of-type{margin-top:0}

/* versalete para siglas de instituição */
.sc{font-variant-caps:all-small-caps;letter-spacing:.06em;font-weight:600}


/* figura de largura total dentro da apresentação */
#disciplina figure.aplic{grid-column:1 / -1;margin:34px 0 30px;padding:26px 26px 18px;
  background:var(--paper-warm);border:1px solid var(--line)}
#disciplina figure.aplic img{margin:0 auto}
#disciplina figure.aplic figcaption{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);
  font-size:13.5px;color:var(--graphite);line-height:1.55;max-width:none;text-align:left}
#disciplina figure.aplic figcaption b{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--red);font-weight:600;margin-right:6px}

/* pacote obtido fora do site */
/* (linha .obter removida: a procedência agora fica só em .fonte) */
  background:var(--red-wash);border-bottom:1px solid var(--line)}
.baixar .obter b{font-weight:650;color:var(--red-deep)}
.baixar span.fn{font-family:var(--mono);font-size:13.5px;color:var(--ink);display:block}
