/* Paulo Esteves — site visual system (Opção B · burgundy #8c2f46) */
:root{
  --ink:#161310; --mut:#6f6a60; --line:#e3e0d6; --bg:#f5f3ec; --card:#fdfcf8;
  --accent:#8c2f46; --accent-ink:#6b2235; --accent-bg:#f4e3e8; --accent-border:#e6c4cf;
  --maxw:1120px;
  --disp:"Space Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* Header + nav */
header{border-bottom:2px solid var(--ink);position:sticky;top:0;background:var(--bg);z-index:50}
.bar{display:flex;align-items:center;gap:26px;min-height:74px}
.brand{font-family:var(--disp);font-size:22px;font-weight:700;letter-spacing:-.02em;white-space:nowrap}
.brand b{color:var(--accent)}
nav{margin-left:auto;display:flex;gap:20px;align-items:center}
.nav-item{position:relative}
.nav-item>a{display:inline-block;font-family:var(--disp);font-size:14px;font-weight:500;color:var(--ink);padding:6px 2px;cursor:pointer}
.nav-item>a:hover,.nav-item.active>a{color:var(--accent)}
.caret{font-size:9px;color:var(--mut);margin-left:3px}
.menu{position:absolute;top:100%;left:0;min-width:300px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.09);padding:8px;display:none}
.nav-item.open .menu{display:block}
.menu a{display:block;font-family:var(--sans);font-size:14px;padding:9px 12px;border-radius:6px;color:#2e2a24}
.menu a:hover{background:var(--accent-bg);color:var(--accent-ink)}
.menu .mlabel{font-family:var(--disp);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);padding:8px 12px 4px}
/* Language selector */
.langsel{display:flex;align-items:center;gap:7px;margin-left:18px;font-family:var(--disp);font-size:13px;font-weight:500}
.langsel a{color:var(--mut);padding:2px 1px;letter-spacing:.02em}
.langsel a:hover{color:var(--accent)}
.langsel a.on{color:var(--ink);font-weight:600}
.langsel .sep{color:var(--line)}

/* Buttons */
.btn{display:inline-block;font-family:var(--disp);font-weight:500;font-size:14px;padding:11px 20px;border-radius:999px;border:1.5px solid var(--ink);cursor:pointer;background:transparent;color:var(--ink);transition:background .12s,color .12s,border-color .12s}
.btn:hover{background:var(--ink);color:#fff}
.btn.solid{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.solid:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
.btn.small{padding:7px 14px;font-size:13px}

/* Generic */
main{padding:0 0 84px}
.badge{display:inline-block;font-family:var(--disp);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-bg);border-radius:999px;padding:5px 12px}
.crumb{font-family:var(--disp);font-size:13px;color:var(--mut);margin:26px 0 4px;letter-spacing:.02em}
.crumb a:hover{color:var(--accent)}
h1.page{font-family:var(--disp);font-weight:700;font-size:46px;line-height:1.02;letter-spacing:-.025em;margin:6px 0 18px}
h2.sec{font-family:var(--disp);font-weight:700;font-size:15px;letter-spacing:.1em;text-transform:uppercase;margin:56px 0 20px;display:flex;align-items:center;gap:12px}
h2.sec::after{content:"";flex:1;height:2px;background:var(--line)}
h2.sec .opt{font-family:var(--sans);font-weight:400;font-size:12px;letter-spacing:0;text-transform:none;color:var(--mut)}
.prose{max-width:66ch}
.prose p{margin:0 0 16px;font-size:18px;color:#2e2a24}
.lead{font-size:20px;color:#3a352e;max-width:48ch}
.muted{color:var(--mut);font-size:14px}

/* Hero (home) */
.hero{padding:44px 0 34px;border-bottom:1px solid var(--line)}
.hero h1{font-family:var(--disp);font-weight:700;font-size:72px;line-height:.98;letter-spacing:-.03em;margin:16px 0 0}
.hero .ul{height:7px;width:120px;background:var(--accent);margin:18px 0 20px}
.hero p{font-size:20px;color:#3a352e;max-width:46ch;margin:0 0 24px}
.btns{display:flex;gap:10px;flex-wrap:wrap}

/* Feature (dark block) */
.feature{aspect-ratio:21/9;background:var(--ink);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f3ead9;gap:8px;text-align:center;padding:20px}
.feature .k{font-family:var(--disp);font-weight:700;font-size:30px;letter-spacing:-.01em}
.feature .s{color:#c9a98f;font-size:14px}
.feature .pill{font-family:var(--disp);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--accent);border-radius:999px;padding:4px 12px;margin-top:6px}
.feature-cap{max-width:72ch;margin:16px 0 0;font-size:16px;line-height:1.55;color:#3a352e}
.embed{border:1px dashed var(--accent-border);background:var(--card);border-radius:10px;min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--mut);gap:6px;text-align:center;padding:20px}

/* Notes / Substack */
.notes{display:grid;grid-template-columns:1.4fr .9fr;gap:26px;align-items:start}
.note{border-top:1px solid var(--line);padding:16px 0;display:flex;gap:16px}
.note .d{font-family:var(--disp);font-weight:600;font-size:12px;color:var(--accent-ink);min-width:72px;letter-spacing:.04em;text-transform:uppercase;padding-top:3px}
.note h3{font-family:var(--disp);font-weight:500;font-size:20px;line-height:1.2;margin:0}
.sub{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px}
.sub h4{font-family:var(--disp);font-weight:600;font-size:19px;margin:0 0 6px}
.sub .f{display:flex;gap:8px;margin-top:14px}
.sub input{flex:1;border:1.5px solid var(--line);background:#fff;padding:10px 12px;border-radius:999px;font:inherit;font-size:14px}

/* Areas grid */
.areas{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.area{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px;min-height:168px;display:flex;flex-direction:column;transition:transform .12s,border-color .12s}
.area:hover{transform:translateY(-3px);border-color:var(--accent)}
.area .n{font-family:var(--disp);font-weight:700;font-size:13px;color:var(--accent)}
.area h3{font-family:var(--disp);font-weight:600;font-size:21px;line-height:1.12;margin:10px 0 8px;letter-spacing:-.01em}
.area p{font-size:14.5px;color:var(--mut);margin:0}
.area .go{margin-top:auto;font-family:var(--disp);font-weight:600;font-size:13px;color:var(--accent-ink);padding-top:14px}
.area.alt{background:var(--accent-bg);border-color:var(--accent-border)}

/* Recent / cards list */
.recent{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.rec{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:0 10px 10px 0;padding:18px 20px}
.rec .t{font-family:var(--disp);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink)}
.rec h3{font-family:var(--disp);font-weight:500;font-size:19px;margin:7px 0 4px;line-height:1.2}
.rec .m{font-size:13.5px;color:var(--mut)}
.rec h3 a{color:inherit;text-decoration:none}
.rec h3 a:hover{color:var(--accent)}
.subsec{font-family:var(--disp);font-weight:600;font-size:15px;letter-spacing:.02em;margin:26px 0 10px;color:var(--accent-ink)}
.sesslist{display:grid;gap:8px;margin:6px 0 4px}
.sess{border-left:3px solid var(--accent-border);padding:8px 14px;background:var(--card);border-radius:0 8px 8px 0;font-size:14.5px;line-height:1.35;color:#3a352e}
.biblist{margin:4px 0}
.biblist p{font-size:14px;line-height:1.5;margin:0 0 9px;padding-left:1.6em;text-indent:-1.6em;color:#3a352e}
.rec-empty{background:transparent;border:1px dashed var(--line);border-left:1px dashed var(--line);color:var(--mut)}
.rec-empty .t,.rec-empty h3,.rec-empty .m{color:var(--mut);font-weight:500}

/* Publications */
.filters{display:flex;flex-direction:column;gap:8px;margin:18px 0 6px}
.filterrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.filterrow .lbl{font-family:var(--disp);font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin-right:4px}
.chip{font-family:var(--sans);font-size:13px;border:1px solid var(--line);border-radius:999px;padding:5px 12px;background:var(--card);color:#4a443b;cursor:pointer}
.chip:hover{border-color:var(--accent)}
.chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.hr{height:1px;background:var(--line);margin:22px 0}
.pub{border-bottom:1px solid var(--line);padding:18px 0}
.pub .t{font-family:var(--disp);font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink)}
.pub h3{font-family:var(--disp);font-weight:500;font-size:20px;margin:6px 0 5px;line-height:1.22}
.pub .m{font-size:14px;color:var(--mut)}
.pub .acts{margin-top:8px;display:flex;gap:14px;flex-wrap:wrap}
.pub .acts a{font-size:13px;color:var(--accent-ink);border-bottom:1px solid var(--accent-border)}

/* Gallery (teaching activities as boxes) */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery .tile{min-height:120px}

/* Publications table (central page) */
.tablewrap{overflow-x:auto}
.pubtable{width:100%;border-collapse:collapse;font-size:14.5px;margin-top:4px}
.pubtable th,.pubtable td{text-align:left;padding:12px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.pubtable th{font-family:var(--disp);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);cursor:pointer;user-select:none;white-space:nowrap}
.pubtable th:hover{color:var(--accent)}
.pubtable th[data-k]::after{content:" \2195";opacity:.4;font-size:10px}
.pubtable td .rauth{color:var(--mut);font-size:12.5px;margin-top:3px}
.pubtable .ract{white-space:nowrap}
.pubtable .ract a{font-size:12.5px;color:var(--accent-ink);border-bottom:1px solid var(--accent-border);margin-right:10px}
.pubtable tbody tr:hover{background:var(--card)}

/* Publication cards (area pages) */
.pubgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pubcard{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:0 10px 10px 0;padding:16px 18px}
.pubcard .t{font-family:var(--disp);font-weight:600;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink)}
.pubcard .ttl{font-family:var(--disp);font-weight:500;font-size:17px;line-height:1.22;margin:5px 0 4px}
.pubcard a.ttl{display:block;color:inherit;text-decoration:none}
.pubcard a.ttl:hover{color:var(--accent)}
.pubcard .m{font-size:13px;color:var(--mut)}
.pubcard .acts{margin-top:8px;display:flex;gap:12px;flex-wrap:wrap}
.pubcard .acts a{font-size:12.5px;color:var(--accent-ink);border-bottom:1px solid var(--accent-border)}

/* Ensino cards with level badge */
.ecards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ecard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;min-height:150px;color:inherit;text-decoration:none;transition:transform .12s,border-color .12s}
.ecard:hover{transform:translateY(-3px);border-color:var(--accent)}
.ecard .badge{align-self:flex-start;margin-bottom:10px}
.ecard h4{font-family:var(--disp);font-weight:600;font-size:16px;margin:0 0 6px;line-height:1.2}
.ecard p{font-size:13px;color:var(--mut);margin:0}
.ecard .lvl{margin-top:auto;padding-top:14px;font-size:13px;color:var(--accent-ink);font-family:var(--disp);font-weight:600}
.ecard .cbtns{margin-top:auto;padding-top:14px;display:flex;gap:8px;flex-wrap:wrap}

/* Two-column apresentação with figure */
.apres2{display:grid;grid-template-columns:1.25fr .75fr;gap:30px;align-items:start}
.apres2 .prose{max-width:none}
.figbox{background:var(--card);border:1px solid var(--line);border-radius:12px;min-height:280px;display:flex;flex-direction:column;margin:0}
.figbox .fimg{flex:1;display:flex;align-items:center;justify-content:center;color:var(--mut);text-align:center;padding:22px;font-size:13.5px}
.figbox figcaption{padding:12px 16px;border-top:1px solid var(--line);font-size:13px;color:var(--mut)}
.figwide{margin:20px 0 0;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.figwide img{display:block;width:100%;height:auto}
.figwide figcaption{padding:12px 18px;border-top:1px solid var(--line);font-size:13px;line-height:1.45;color:var(--mut);background:var(--card)}
.enroll{margin:22px 0 4px;background:var(--accent);color:#fff;border-radius:12px;padding:22px 24px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.enroll .enroll-t{font-family:var(--disp);font-weight:700;font-size:22px;letter-spacing:-.01em}
.enroll .enroll-note{font-size:14.5px;color:#f3ead9;line-height:1.4}
.enroll .btn.solid{background:#fff;color:var(--accent-ink);border-color:#fff}
.enroll .btn.solid:hover{background:#f3ead9}
.figbox .fimg-img{display:block;background:#fff;cursor:zoom-in;border-radius:12px 12px 0 0;overflow:hidden}
.figbox .fimg-img img{display:block;width:100%;height:auto}
.figbox figcaption .figzoom{display:block;margin-top:4px;font-size:12px;color:var(--accent-ink)}

/* Scrollytelling / interactive embed */
.scrolly{position:relative;width:100%;height:640px;border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden}
.scrolly iframe{width:100%;height:100%;border:0;display:block}
.fsbtn{position:absolute;bottom:14px;right:14px;z-index:2;font-family:var(--disp);font-size:12px;font-weight:600;color:#fff;background:var(--accent);border:0;border-radius:999px;padding:7px 14px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.fsbtn:hover{background:var(--accent-ink)}
.scrolly:fullscreen{height:100%;width:100%;border-radius:0;border:0}
.scrolly:-webkit-full-screen{height:100%;width:100%;border-radius:0;border:0}
.scrolly:fullscreen iframe,.scrolly:-webkit-full-screen iframe{height:100%}
.embed-meta{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:12px}
.embed-meta a{font-size:13px;color:var(--accent-ink);border-bottom:1px solid var(--accent-border)}

/* Course page info box */
.infobox{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-top:10px}
.infobox>div{background:var(--card);padding:14px 16px;display:flex;flex-direction:column;gap:3px}
.infobox .k{font-family:var(--disp);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.infobox .v{font-family:var(--disp);font-weight:600;font-size:15px}
.badge.lg{font-size:12px;margin-top:24px}

/* Columns helper */
.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cols-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;min-height:90px}
.tile h3{font-family:var(--disp);font-weight:600;font-size:18px;margin:0 0 6px}
.tile p{font-size:14px;color:var(--mut);margin:0}
a.tile.tlink{display:block;color:inherit;text-decoration:none;transition:border-color .12s,transform .12s}
a.tile.tlink:hover{border-color:var(--accent);transform:translateY(-2px)}
.tile .go{display:block;margin-top:12px;font-family:var(--disp);font-weight:600;font-size:13px;color:var(--accent-ink)}

/* Footer */
footer{border-top:2px solid var(--ink);margin-top:14px;padding:44px 0;font-size:14px;color:var(--mut)}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:24px}
.fgrid.nf3{grid-template-columns:2fr 1fr 1fr}
.fgrid.nf2{grid-template-columns:2fr 1fr}
footer h5{font-family:var(--disp);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin:0 0 10px;font-weight:600}
footer a{display:block;padding:3px 0;color:#5a544b}
footer a:hover{color:var(--accent)}
.flabel{font-family:var(--disp);font-size:22px;font-weight:700;color:var(--ink)}
.flabel b{color:var(--accent)}

@media(max-width:820px){
  nav{display:none}
  .hero h1{font-size:46px}
  h1.page{font-size:34px}
  .notes,.recent,.cols-2{grid-template-columns:1fr}
  .areas{grid-template-columns:1fr}
  .cols-4{grid-template-columns:1fr 1fr}
  .fgrid,.fgrid.nf2,.fgrid.nf3{grid-template-columns:1fr 1fr}
  .gallery,.ecards,.pubgrid{grid-template-columns:1fr}
  .infobox{grid-template-columns:1fr 1fr}
  .apres2{grid-template-columns:1fr}
  .scrolly{height:520px}
}
