:root{--ink:#151310;--muted:#625d55;--line:#e7e3db;--paper:#fff;--wash:#faf8f4;--red:#e23a2e;--red-ink:#b32418;--green:#0e9c57;--yellow:#f6b60d;--max:1120px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.6 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}.wrap{max-width:var(--max);margin:auto;padding:0 26px}header{border-bottom:1px solid var(--line);background:#fffffff2;position:sticky;top:0;z-index:5}.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-weight:900;line-height:.95;letter-spacing:-.04em;font-size:18px}.brand span{display:block}.brand i{display:inline-block;width:9px;height:9px;border-radius:50%;background:linear-gradient(90deg,var(--red),var(--yellow),var(--green));margin-right:7px}nav{display:flex;gap:25px;font-weight:750;font-size:14px}nav a:hover{color:var(--red-ink)}.page-hero{padding:76px 0 58px;background:linear-gradient(120deg,#fff 55%,#faf7ef)}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.15em;font-weight:850;color:var(--red-ink)}h1{font-size:clamp(42px,7vw,82px);line-height:.98;letter-spacing:-.06em;margin:12px 0 20px;max-width:850px}h2{font-size:clamp(28px,4vw,46px);line-height:1.05;letter-spacing:-.045em;margin:0 0 16px}h3{line-height:1.1;letter-spacing:-.02em}p{max-width:720px;color:var(--muted)}.lede{font-size:20px;max-width:720px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px;padding:48px 0}.card{border:1px solid var(--line);border-radius:18px;padding:25px;background:var(--paper);transition:.2s}.card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #15131018}.card.red{border-top:7px solid var(--red)}.card.green{border-top:7px solid var(--green)}.card.yellow{border-top:7px solid var(--yellow)}.pill{display:inline-block;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.1em;padding:4px 10px;border-radius:999px;background:#1513100d}.section{padding:58px 0;border-top:1px solid var(--line)}.list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.list a{display:block;padding:20px;border-bottom:1px solid var(--line);font-weight:800}.list a:hover{color:var(--red-ink)}.cta{display:inline-block;background:var(--ink);color:#fff;padding:12px 20px;border-radius:999px;font-weight:800;margin-top:12px}.cta.alt{background:transparent;color:var(--ink);border:1px solid var(--ink)}footer{margin-top:80px;background:var(--ink);color:#d9d5cd;padding:42px 0}footer p,footer a{color:#d9d5cd;font-size:14px}footer .brand{color:#fff}@media(max-width:760px){nav{display:none}.grid,.list{grid-template-columns:1fr}.page-hero{padding-top:50px}}
/* Wordmark shared by the editorial pages: same proportions as the landing-page mark. */
.brand{display:grid;grid-template-columns:34px auto;grid-template-rows:auto auto;align-items:center;align-content:center;gap:0 10px;font-size:18px}
.brand i{display:block;grid-column:1;grid-row:1 / span 2;width:34px;height:34px;margin:0;border:1px solid #e7e3db;border-radius:9px;background:#fff;position:relative}
.brand i::before,.brand i::after{content:"";position:absolute;top:8px;width:0;height:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:15px solid var(--red)}
.brand i::before{left:6px}.brand i::after{left:15px;opacity:.5}
.brand span{grid-column:2;line-height:.95}.brand span:nth-of-type(1){grid-row:1}.brand span:nth-of-type(2){grid-row:2}

/* Shared liquid-glass navigation for every editorial page. */
header{margin:0 22px;border:1px solid rgba(255,255,255,.72);border-radius:999px;background:rgba(255,255,255,.62);box-shadow:0 12px 34px rgba(21,19,16,.10),inset 0 1px rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px)}header .nav{height:64px}header nav a{position:relative}header nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:2px;border-radius:2px;background:var(--red-ink);transition:right .2s}header nav a:hover::after{right:0}
@media(max-width:760px){header{margin:0 12px}header .nav{height:58px}}
/* Full-bleed glass bar: no floating capsule around the page navigation. */
body{padding-top:0}header{margin:0;border-radius:0;border-left:0;border-right:0;border-top:0}header .nav{height:76px}
@media(max-width:760px){body{padding-top:0}header{margin:0}header .nav{height:64px}}
/* Editorial page heroes: every section gets a distinct visual entry point. */
body.route-noticias .page-hero,body.route-temas .page-hero,body.route-projetos .page-hero,body.route-sobre .page-hero{position:relative;isolation:isolate;min-height:430px;display:flex;align-items:flex-end;padding:82px 0 64px;color:#fff;background:#151310 center/cover no-repeat;overflow:hidden}
body.route-noticias .page-hero{background-image:url('pessoas-tecnologia.jpg')}body.route-temas .page-hero{background-image:url('crianca-futuro.jpg')}body.route-projetos .page-hero{background-image:url('familia-servico-publico.jpg')}body.route-sobre .page-hero{background-image:url('hero-progresso.jpg')}
body.route-noticias .page-hero::before,body.route-temas .page-hero::before,body.route-projetos .page-hero::before,body.route-sobre .page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,12,10,.88),rgba(10,12,10,.48) 52%,rgba(10,12,10,.12)),linear-gradient(0deg,rgba(10,12,10,.75),transparent 65%)}
body.route-noticias .page-hero .wrap,body.route-temas .page-hero .wrap,body.route-projetos .page-hero .wrap,body.route-sobre .page-hero .wrap{width:100%}body.route-noticias .page-hero h1,body.route-temas .page-hero h1,body.route-projetos .page-hero h1,body.route-sobre .page-hero h1{max-width:760px;color:#fff;margin-bottom:16px}body.route-noticias .page-hero p,body.route-temas .page-hero p,body.route-projetos .page-hero p,body.route-sobre .page-hero p{color:rgba(255,255,255,.88)}body.route-noticias .page-hero .eyebrow,body.route-temas .page-hero .eyebrow,body.route-projetos .page-hero .eyebrow,body.route-sobre .page-hero .eyebrow{color:#f6c536}
@media(max-width:600px){body.page-noticias .page-hero,body.page-temas .page-hero,body.page-projetos .page-hero,body.page-sobre .page-hero{min-height:480px;padding:80px 0 42px}body.page-temas .page-hero{background-position:58% center}body.page-sobre .page-hero{background-position:62% center}}
/* Fallback selectors also cover the legacy minified internal pages while they
   are normalized: the image belongs to the opening editorial block, never to
   the footer. */
body>main .page-hero{position:relative;isolation:isolate;min-height:430px;display:flex;align-items:flex-end;padding:82px 0 64px;color:#fff;background:#151310 url('pessoas-tecnologia.jpg') center/cover no-repeat;overflow:hidden}
body>main .page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,12,10,.88),rgba(10,12,10,.48) 52%,rgba(10,12,10,.12)),linear-gradient(0deg,rgba(10,12,10,.75),transparent 65%)}
body>main .page-hero .wrap{width:100%}body>main .page-hero h1{max-width:760px;color:#fff}body>main .page-hero p{color:rgba(255,255,255,.88)}body>main .page-hero .eyebrow{color:#f6c536}
body:has(.project-tag) .hero{background-image:linear-gradient(90deg,rgba(10,12,10,.88),rgba(10,12,10,.44)),url('partido-futuro-hero.jpg');background-size:cover;background-position:center}
@media(max-width:600px){body>main .page-hero{min-height:480px;padding:80px 0 42px}body>main .page-hero h1{font-size:clamp(38px,12vw,60px)}body:has(.project-tag) .hero{background-position:62% center}}
@media(max-width:960px){body header .nav{gap:14px}body header .brand{flex:0 0 auto}body header nav{display:flex;flex:1;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;gap:18px;padding:4px 2px}body header nav::-webkit-scrollbar{display:none}body header nav a{flex:0 0 auto;min-height:44px;display:flex;align-items:center}body header .tools{display:none}}
@media(max-width:600px){.wrap{padding-left:18px;padding-right:18px}header .nav{height:64px}header .brand{grid-template-columns:30px auto;column-gap:8px;font-size:15px}header .brand i{width:30px;height:30px;border-radius:8px}header .brand i::before,header .brand i::after{top:7px;border-top-width:8px;border-bottom-width:8px;border-left-width:13px}header .brand i::before{left:5px}header .brand i::after{left:13px}header nav{gap:16px;font-size:13px}.page-hero{padding:48px 0 38px}h1{font-size:clamp(38px,12vw,60px);overflow-wrap:anywhere}.lede{font-size:18px}.section{padding:42px 0}.list a{padding:18px 0}footer{margin-top:52px;padding:40px 0 28px}}
.route-noticias>main .page-hero{background-image:url('pessoas-tecnologia.jpg')}.route-temas>main .page-hero{background-image:url('crianca-futuro.jpg')}.route-projetos>main .page-hero{background-image:url('familia-servico-publico.jpg')}.route-sobre>main .page-hero{background-image:url('hero-progresso.jpg')}
header nav a[aria-current="page"]{color:var(--red-ink);font-weight:900}header nav a[aria-current="page"]::after{right:0}
/* Homepage uses the projects page metrics verbatim, overriding its legacy inline shell. */
body.route-index>header>.wrap.nav{max-width:var(--max)!important;padding:0 26px!important;height:76px!important;min-height:76px!important;gap:24px!important}
body.route-index>header .brand{display:grid!important;grid-template-columns:34px auto!important;grid-template-rows:auto auto!important;align-content:center!important;column-gap:10px!important;gap:0 10px!important;font-size:18px!important;line-height:.95!important}
body.route-index>header nav{display:flex!important;gap:25px!important;font-size:14px!important;font-weight:750!important}
body.route-index>header nav a{padding:0!important;font-size:14px!important;font-weight:750!important}
/* One shared glass treatment across the editorial shell. */
body>header.site-menu{background:rgba(255,255,255,.86)!important;backdrop-filter:saturate(180%) blur(18px)!important;-webkit-backdrop-filter:saturate(180%) blur(18px)!important}
/* Homepage hero state: the navigation sits over the image at scroll position 0. */
body.route-index>header.is-hero-top{background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-bottom-color:transparent!important}
body.route-index>header.is-hero-top .brand,body.route-index>header.is-hero-top nav a{color:#fff!important}
body.route-index>header.is-hero-top .brand i{background:transparent!important;border-color:rgba(255,255,255,.9)!important}
body.route-index>header.is-hero-top .brand i::before,body.route-index>header.is-hero-top .brand i::after{border-left-color:#fff!important}
/* Consolidated editorial hierarchy: section pages introduce content without
   competing with the homepage hero. */
body>main .page-hero{min-height:340px;padding:58px 0 46px}
body>main .page-hero h1{font-size:clamp(40px,5vw,68px);letter-spacing:-.045em}
body>main .page-hero p{max-width:620px;font-size:17px}
body>main .section,body>main .grid{padding-top:42px;padding-bottom:42px}
body>main .card{box-shadow:none}
@media(max-width:760px){body>main .page-hero{min-height:320px;padding:48px 0 36px}body>main .page-hero h1{font-size:clamp(36px,10vw,54px)}body>main .page-hero p{font-size:16px}body header nav{display:flex;max-width:calc(100vw - 150px);overflow-x:auto;mask-image:linear-gradient(90deg,#000 0 88%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 0 88%,transparent)}}
[id]{scroll-margin-top:92px}.grid{row-gap:32px}.grid4{row-gap:28px}main>section+section{margin-top:56px}footer{margin-top:96px}
@media(max-width:600px){body header nav{gap:11px;max-width:none;mask-image:none;-webkit-mask-image:none;font-size:12px}main>section+section{margin-top:40px}footer{margin-top:64px}}

/* Shared shell: every public page uses the same grid, header and edge rhythm. */
body>header{width:100%;margin:0;border-radius:0}
body>header>.wrap.nav{width:100%;max-width:var(--max);min-height:76px;padding-left:26px;padding-right:26px;margin:0 auto}
body>header nav{align-items:center}
body>main>.wrap,body>main>section>.wrap,body>main>section.wrap{width:100%;max-width:var(--max);margin-left:auto;margin-right:auto}
body>main>.page-hero>.wrap{max-width:var(--max);padding-left:26px;padding-right:26px}
body>footer>.wrap{width:100%;max-width:var(--max);margin-left:auto;margin-right:auto;padding-left:26px;padding-right:26px}
body>header .wordmark{font-size:18px;line-height:.95;letter-spacing:-.04em}
body>header .mark{width:34px;height:34px;flex:0 0 34px}
@media(max-width:600px){body>header>.wrap.nav{min-height:64px;padding-left:18px;padding-right:18px}body>main>.page-hero>.wrap,body>footer>.wrap{padding-left:18px;padding-right:18px}}

/* Keep the shared navigation visible after page-specific styles load. */
body>header nav,body>header nav.menu{display:flex!important;visibility:visible!important;opacity:1!important}

/* Homepage safeguard: the shared shell must remain visible at every viewport. */
body>header{display:block!important;visibility:visible!important;opacity:1!important}
body>header>.nav{display:flex!important;visibility:visible!important;opacity:1!important}

/* Homepage: keep the shared shell visible even when the page is restored at a scroll position. */
body.route-index>header,body:not([class])>header{
  position:fixed!important;
  inset:0 0 auto 0!important;
  width:100%!important;
  height:77px!important;
  margin:0!important;
  border-radius:0!important;
  z-index:10000!important;
  transform:none!important;
}
body.route-index>main,body:not([class])>main{padding-top:0!important}
body.route-index>header.is-hero-top{background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body.route-index>header.is-hero-top .brand i{background:transparent!important;border-color:rgba(255,255,255,.9)!important}
body.route-index>header.is-hero-top .brand i::before,body.route-index>header.is-hero-top .brand i::after{border-left-color:#fff!important}
body.route-index>header.is-hero-top nav a,body.route-index>header.is-hero-top .brand{color:#fff!important}
@media(max-width:600px){
  body.route-index>header,body:not([class])>header{height:64px!important}
  body.route-index>main,body:not([class])>main{padding-top:0!important}
}


/* Mobile navigation: keep the menu visible beside the mark and let the link
   row scroll horizontally when the viewport is narrower than the full menu. */
@media(max-width:760px){
  body>header.site-menu>.wrap.nav{display:flex!important;min-width:0;overflow:hidden}
  body>header.site-menu nav,
  body>header.site-menu nav.menu{display:flex!important;visibility:visible!important;opacity:1!important;flex:1 1 auto;min-width:0;max-width:none;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-width:none;gap:14px}
  body>header.site-menu nav::-webkit-scrollbar,
  body>header.site-menu nav.menu::-webkit-scrollbar{display:none}
  body>header.site-menu nav a{display:flex!important;flex:0 0 auto;align-items:center;min-height:44px}
  body>header.site-menu .brand{flex:0 0 auto}
  body>header.site-menu .menu-toggle{display:inline-flex;flex:0 0 44px;align-items:center;justify-content:center;flex-direction:column;gap:4px;width:44px;height:44px;margin-left:8px;border:1px solid currentColor;border-radius:10px;background:transparent;color:inherit;cursor:pointer}
  body>header.site-menu .menu-toggle span{display:block;width:18px;height:2px;border-radius:2px;background:currentColor;transition:transform .2s,opacity .2s}
  body>header.site-menu .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  body>header.site-menu .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  body>header.site-menu .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  body>header.site-menu nav{position:absolute;top:calc(100% + 8px);left:18px;right:18px;display:none!important;flex-direction:column;align-items:stretch;gap:0;padding:8px;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 16px 36px rgba(21,19,16,.16);overflow:visible}
  body>header.site-menu nav a{min-height:46px;padding:10px 12px;border-radius:10px;color:var(--ink)!important}
  body>header.site-menu nav a:hover,body>header.site-menu nav a[aria-current="page"]{background:rgba(21,19,16,.06)}
  body.menu-open>header.site-menu nav{display:flex!important}
}

body>header.site-menu .menu-toggle{display:none}
@media(max-width:760px){body>header.site-menu .menu-toggle{display:inline-flex}}
:focus-visible{outline:3px solid var(--red-ink);outline-offset:3px;border-radius:4px}

/* Editorial pages keep a sticky menu, with a quiet top breathing space. */
body:not(.route-index){padding-top:14px}
/* Editorial pages begin with a small breathing space, then the menu pins to
   the viewport edge while scrolling. The space belongs to the page flow, not
   to the sticky offset. */
body:not(.route-index)>header.site-menu{position:sticky!important;top:0;left:auto;right:auto;width:100%;margin:0}

.cta.is-soon{opacity:.55;cursor:default}

/* Skip link: the first tab stop on every page. */
.skip-link{position:absolute;left:-9999px;top:0;z-index:10001;padding:12px 18px;background:var(--ink);color:#fff;font-weight:800;border-radius:0 0 12px 0}
.skip-link:focus{left:0}

/* Mobile menu collapse is owned by JavaScript, so only apply it once JavaScript
   has proved it is running. Without the gate, a failed script would leave the
   navigation permanently hidden on phones. */
@media(max-width:760px){
  html.js body>header.site-menu nav,
  html.js body>header.site-menu nav.menu{display:none!important}
  html.js body.menu-open>header.site-menu nav,
  html.js body.menu-open>header.site-menu nav.menu{display:flex!important}
  html:not(.js) body>header.site-menu .menu-toggle{display:none}
  html:not(.js) body>header.site-menu nav{position:static;flex-direction:row;overflow-x:auto;border:0;box-shadow:none;padding:0;background:none}
}

/* Editorial content: analyses, positions and theme sections. */
.toc{padding-top:34px;padding-bottom:0;border-top:0}
.toc-title{font-size:12px;font-weight:850;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.toc ol{margin:0;padding-left:1.1em;display:grid;gap:9px;max-width:760px}
.toc a{font-weight:750;border-bottom:1px solid var(--line)}
.toc a:hover{color:var(--red-ink);border-bottom-color:currentColor}
.analysis h2{max-width:900px}
.analysis .pill{margin-bottom:14px}
.byline{font-size:13px;font-weight:750;color:var(--muted);letter-spacing:.01em;margin:0 0 22px}
.analysis p{max-width:720px;margin:0 0 16px;color:var(--ink)}
.analysis p strong{font-weight:850}
.analysis-more{margin-top:22px}
.analysis-more a{font-weight:850;color:var(--red-ink);border-bottom:2px solid currentColor;padding-bottom:2px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;margin:26px 0 0}
.stance h3{font-size:13px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:var(--red-ink);margin:0 0 10px}
.stance p{margin:0;font-size:15.5px}
.stance ul{margin:0;padding-left:1.1em;display:grid;gap:9px;color:var(--muted);font-size:15.5px}
.card ul{margin:14px 0 0;padding-left:1.1em;display:grid;gap:8px;color:var(--muted);font-size:15px}
.card h3{margin:10px 0 8px}
.card p{margin:0 0 10px}
.card .cta{margin-top:6px;margin-right:8px}
main>section>.pill{margin-bottom:12px}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Shared footer: one template, stamped identically into every page and
   verified by check-links.py. Edit here, not per page. */
footer{margin-top:96px;background:var(--ink);color:#cfcbc3;padding:56px 0 34px}
footer .fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:34px}
footer .fbrand .brand{color:#fff}
footer .fbrand p{margin-top:16px;max-width:340px;font-size:14.5px;line-height:1.55;color:#cfcbc3}
footer .fcol{color:#fff;font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin:0 0 14px}
footer a{display:block;padding:5px 0;font-size:14.5px;color:#cfcbc3}
footer a:hover{color:#fff;text-decoration:underline}
footer .fnote{margin-top:40px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:#a8a49b}
@media(max-width:960px){footer .fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){footer{padding:42px 0 28px}footer .fgrid{grid-template-columns:1fr;gap:28px}}

/* Manifesto: a full-height quote screen, not a band of text. The scrim is
   deliberately heavy — the photo behind it is busy, and the type has to win. */
.manifesto{position:relative;isolation:isolate;margin:0;border:0;color:#fff;
  min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:96px 0;
  background:#0b120d url('partido-futuro-hero.jpg') center/cover no-repeat;overflow:hidden}
.manifesto::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(6,11,8,.96) 0%,rgba(6,11,8,.9) 42%,rgba(6,11,8,.66) 72%,rgba(6,11,8,.5) 100%),
             linear-gradient(0deg,rgba(6,11,8,.8),rgba(6,11,8,.2) 70%)}
.manifesto::after{content:"";position:absolute;left:0;right:0;top:0;height:5px;
  background:linear-gradient(90deg,var(--green) 0 33%,var(--yellow) 33% 66%,var(--red) 66%)}
.manifesto .wrap{width:100%}
.manifesto .eyebrow{color:#ffd34d!important}
.manifesto h2{max-width:15ch;margin-top:18px;color:#fff;font-size:clamp(34px,5.4vw,68px);line-height:1.02;letter-spacing:-.035em;
  text-wrap:balance;text-shadow:0 2px 18px rgba(0,0,0,.45)}
.manifesto h2{font-weight:900}
.manifesto h2 span{display:block;font-weight:300;color:#fff;letter-spacing:-.025em}
.manifesto p{max-width:560px;margin-top:24px;font-size:17px;line-height:1.62;color:rgba(255,255,255,.9);text-shadow:0 1px 12px rgba(0,0,0,.4)}
.manifesto a{color:#fff!important}
@media(max-width:760px){
  .manifesto{min-height:auto;padding:78px 0;background-position:64% center}
  .manifesto h2{max-width:none}
  .manifesto::before{background:linear-gradient(0deg,rgba(6,11,8,.95),rgba(6,11,8,.72) 60%,rgba(6,11,8,.55))}}

/* Homepage rhythm. Three screens own a full viewport each — hero, destaques and
   manifesto — and every editorial block after them starts with real breathing
   room instead of the 34px it used to get. The destaques block centres its
   content, so the space above and below it is equal by construction; before,
   it was 14px on top and 96px underneath. */
.destaques{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  padding-top:clamp(56px,8vh,96px);padding-bottom:clamp(56px,8vh,96px)}
.destaques .feature{margin:0}
section.block{padding:clamp(56px,8vh,96px) 0}
.manifesto + section.block{padding-top:clamp(88px,13vh,150px)}
.believe{margin-top:0}
main > section.block:last-of-type{padding-bottom:clamp(72px,10vh,120px)}
@media(max-width:960px){
  .destaques{min-height:auto;padding-top:56px;padding-bottom:56px}
  section.block{padding:48px 0}
  .manifesto + section.block{padding-top:64px}
}

/* .section{padding:58px 0} é shorthand: ele zera o padding horizontal que o
   .wrap define, e vem depois dele com a mesma especificidade. Todo elemento
   com as duas classes — as análises, os temas, as seções dos projetos —
   encostava na borda em qualquer viewport menor que --max, ou seja, em tablet
   e celular. Esta regra fica no fim de propósito: é a última palavra sobre a
   margem lateral do conteúdo. */
.wrap{padding-left:26px;padding-right:26px}
@media(max-width:600px){.wrap{padding-left:18px;padding-right:18px}}

/* Alvos de toque: o rodapé e os links de análise ficavam em 33px e 22px de
   altura, colados uns nos outros. 11px de padding vertical leva os dois para
   ~44px sem mexer no ritmo visual. */
footer a{padding-top:11px;padding-bottom:11px}
.analysis-more a{display:inline-block;padding-top:11px;padding-bottom:11px}
@media(max-width:600px){body>header .brand{min-height:44px;align-content:center}}

/* Conteúdo de exemplo que segue publicado: o aviso precisa ser lido antes das
   falas, não depois delas. */
.placeholder-aviso{margin:10px 0 0;max-width:640px;padding:12px 16px;border-left:4px solid var(--yellow);
  background:rgba(246,182,13,.14);color:var(--ink);font-size:14px;line-height:1.5;border-radius:0 10px 10px 0}
.placeholder-aviso strong{font-weight:850}

/* O rodapé tinha a marca herdando o grid do cabeçalho, e com isso herdava
   também o gap:12px que o index.html define em .brand — o site.css só
   redefinia column-gap, então sobravam 12px de row-gap e as duas linhas
   abriam. Regra própria, fechada, sem depender do que a página faz com
   .brand. */
footer .fbrand .brand{display:grid;grid-template-columns:34px auto;grid-template-rows:auto auto;
  align-items:center;align-content:center;column-gap:12px;row-gap:0;
  font-size:17px;line-height:1.06;letter-spacing:-.03em;color:#fff}
footer .fbrand .brand i{grid-column:1;grid-row:1 / span 2;width:34px;height:34px;margin:0;align-self:center}
footer .fbrand .brand span{grid-column:2;display:block}
footer .fbrand .brand span:nth-of-type(1){grid-row:1}
footer .fbrand .brand span:nth-of-type(2){grid-row:2}

/* Imagem destacada. O card tem padding de 25px e a imagem precisa sangrar
   até a borda, por isso as margens negativas; o raio acompanha o do card
   (18px) menos a espessura da borda superior colorida. */
.card-imagem{display:block;margin:-25px -25px 18px;overflow:hidden;border-radius:17px 17px 0 0}
.card-imagem img{display:block;width:100%;height:180px;object-fit:cover}
.analise-imagem{margin:0 0 28px;border-radius:16px;overflow:hidden}
.analise-imagem img{display:block;width:100%;height:auto}
@media(max-width:600px){.card-imagem{margin:-25px -25px 16px}.card-imagem img{height:150px}}

/* O home.css declara .brand{gap:12px} — atalho que define row-gap E
   column-gap. O site.css carrega depois mas redefinia só o column-gap, então
   o row-gap de 12px sobrevivia e afastava as duas linhas do wordmark. Havia
   uma correção, mas presa a body.route-index, que só existe na home: por isso
   a home aparecia certa e toda página interna aparecia errada. A regra base
   acima agora usa `gap:0 10px`, que zera as duas dimensões de uma vez. */

/* Botão do menu sobre o hero da home. O cabeçalho fica transparente no topo
   (is-hero-top) e as regras de lá pintam a marca e os links de branco, mas
   nunca o .menu-toggle, que herda o preto do corpo. Medido a 375px: botão
   rgb(21,19,16) sobre foto escura — o único controle de navegação do celular,
   invisível até o primeiro scroll. */
body.route-index>header.is-hero-top .menu-toggle{color:#fff;border-color:rgba(255,255,255,.75)}
body.route-index>header.is-hero-top .menu-toggle span{background:#fff}

/* O reset `*{margin:0;padding:0}` do home.css vale em todas as páginas, e
   nada repunha margem de parágrafo nem recuo de lista fora de .analysis.
   Medido em /sobre/: ul com padding-left 0 e list-style outside, ou seja,
   marcadores caindo fora dos 18px de folga da .wrap; parágrafos com
   margin-bottom 0, colados uns nos outros. */
.entry-conteudo p,.entry-conteudo ul,.entry-conteudo ol,.entry-conteudo blockquote,
.entry-conteudo h2,.entry-conteudo h3,.entry-conteudo figure{margin-bottom:20px}
.entry-conteudo h2,.entry-conteudo h3{margin-top:34px}
.entry-conteudo ul,.entry-conteudo ol{padding-left:22px}
.entry-conteudo li{margin-bottom:8px}
.entry-conteudo>*:last-child{margin-bottom:0}

/* Paginação sem quebra de linha rolava horizontalmente no celular. */
.paginacao{flex-wrap:wrap}

/* Rodapé: o recuo de 11px acima e abaixo existe para dar alvo de toque de
   44px no celular, mas valia em qualquer largura — medido: 45px de passo
   entre links para um texto de 14,5px, que no desktop lê como desalinhado.
   Ponteiro fino (mouse) não precisa do alvo grande. */
@media (hover:hover) and (pointer:fine){
  footer a{padding-top:5px;padding-bottom:5px}
  .analysis-more a{padding-top:6px;padding-bottom:6px}
}

/* Menu sobre hero fotográfico. O tratamento transparente estava presa a
   body.route-index, então só a home o recebia — /temas/ e as demais páginas
   com hero de foto ganhavam a barra branca sobre a imagem, e o menu parecia
   mudar de identidade entre uma página e outra. Vale agora em qualquer página
   cujo hero seja fotográfico (o site-nav.js marca is-hero-top no topo). */
body>header.is-hero-top{background:transparent!important;box-shadow:none!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-bottom-color:transparent!important}
body>header.is-hero-top .brand,body>header.is-hero-top nav a{color:#fff!important}
body>header.is-hero-top .brand i{background:transparent!important;border-color:rgba(255,255,255,.9)!important}
body>header.is-hero-top .brand i::before,body>header.is-hero-top .brand i::after{border-left-color:#fff!important}
body>header.is-hero-top .menu-toggle{color:#fff;border-color:rgba(255,255,255,.75)}
body>header.is-hero-top .menu-toggle span{background:#fff}
