/* Novo estilo (B): camadas de papel, minimalismo suíço, um único acento vermelho. Tema claro e escuro por variáveis.
   Base compartilhada por home, 404 e /privacidade (a home acrescenta css/b-home.css). Sem recursos externos: fontes em /fonts. */
@font-face{font-family:"Plex";src:url("/fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Plex";src:url("/fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Plex";src:url("/fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Plex";src:url("/fonts/ibm-plex-sans-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"PlexMono";src:url("/fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

:root{
  color-scheme:light;
  --bg:#E6E6E1;--layer:#FFFFFF;--layer2:#F7F7F3;--card:#FFFFFF;--ink:#111111;--mut:#4F4F4A;--line:#CFCFC8;
  --acc:#D7261E;--acc-d:#A91A14;--acc-h:#B81D16;--on-acc:#FFFFFF;--tag:#EFEFEA;--focus:#0B3FD1;--ok:#0A6B36;--err:#B3261E;
  --sh1:0 -2px 0 rgba(0,0,0,.03),0 -14px 28px -12px rgba(0,0,0,.22),0 -46px 70px -34px rgba(0,0,0,.28);
  --shc:0 1px 1px rgba(0,0,0,.05),0 8px 16px -8px rgba(0,0,0,.15),0 24px 34px -24px rgba(0,0,0,.2);
  --shb:0 1px 1px rgba(0,0,0,.2),0 6px 10px -2px rgba(0,0,0,.2),0 18px 30px -10px rgba(0,0,0,.35),0 40px 50px -30px rgba(0,0,0,.4);
  --hdr:rgba(230,230,225,.9);--dimc:#000;--tile:#FFFFFF;
}
html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0E0F10;--layer:#17181A;--layer2:#1F2123;--card:#26282B;--ink:#ECECE8;--mut:#B0B0AA;--line:#3A3C40;
  --acc:#FF4A3F;--acc-d:#FF6B61;--acc-h:#FF6359;--on-acc:#0E0F10;--tag:#303236;--focus:#8FB4FF;--ok:#5FD08A;--err:#FF8A82;
  --sh1:0 -1px 0 rgba(255,255,255,.07),0 -16px 30px -12px rgba(0,0,0,.8),0 -46px 70px -34px rgba(0,0,0,.9);
  --shc:0 0 0 1px rgba(255,255,255,.03),0 10px 20px -10px rgba(0,0,0,.7),0 26px 36px -26px rgba(0,0,0,.8);
  --shb:0 1px 1px rgba(0,0,0,.5),0 8px 14px -4px rgba(0,0,0,.55),0 22px 34px -10px rgba(0,0,0,.7);
  --hdr:rgba(14,15,16,.9);--tile:#F4F4EF;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--bg)}
body{margin:0;font-family:"Plex",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:1.0625rem;line-height:1.6;background:var(--bg);color:var(--ink);overflow-x:clip}
img,svg{max-width:100%;height:auto}img{display:block}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,h4,p,dl,dd,figure{margin:0}
h1,h2,h3,h4{line-height:1.08;letter-spacing:-.025em;font-weight:700}
a{color:inherit}
button{font:inherit;color:inherit}
.mono{font-family:"PlexMono",ui-monospace,"Cascadia Mono",Consolas,monospace;font-weight:500}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:.75rem;top:-5rem;z-index:1000;padding:.7rem 1rem;background:var(--ink);color:var(--bg);border-radius:8px;text-decoration:none;font-weight:700;transition:top .15s}
.skip-link:focus{top:.75rem}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
[hidden]{display:none!important}
.i18n-pending body{visibility:hidden}
:root[data-lang="en"] .only-pt,:root[data-lang="es"] .only-pt,:root:not([data-lang="en"]) .only-en,:root:not([data-lang="es"]) .only-es{display:none}
.wrap{width:min(1180px,100% - 2.5rem);margin-inline:auto}

/* cabeçalho */
.top{position:fixed;inset:0 0 auto 0;z-index:80;background:var(--hdr);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top-in{width:min(1320px,100% - 2rem);margin-inline:auto;display:flex;align-items:center;gap:.6rem;min-height:60px}
.brand{display:block;line-height:0;flex:none;border-radius:10px}
.brand img{border-radius:10px;width:42px;height:42px}
.sp{flex:1}
.nav{display:flex;gap:.1rem;margin-inline:auto}
.nav a{display:inline-flex;align-items:center;min-height:44px;padding:.4rem .6rem;font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;text-decoration:none;color:var(--mut);white-space:nowrap;border-radius:6px}
.nav a:hover{color:var(--ink);background:var(--tag)}
.lang{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:var(--layer);border:1px solid var(--line);flex:none}
.lang-btn{border:0;background:transparent;cursor:pointer;min-width:44px;min-height:44px;padding:.2rem .5rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.04em;color:var(--ink)}
.lang-btn[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.theme-btn,.lite-btn,.theme-auto,.menu summary{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;min-width:44px;border:1px solid var(--line);background:var(--layer);cursor:pointer;border-radius:999px;font-size:.78rem;font-weight:600;padding:.3rem .8rem;color:var(--ink);flex:none}
.theme-btn{padding:0;width:44px}
.theme-auto{font-weight:700;letter-spacing:.02em}
.theme-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.theme-btn .i-sun{display:none}
html[data-theme="dark"] .theme-btn .i-sun{display:block}
html[data-theme="dark"] .theme-btn .i-moon{display:none}
.lite-btn[aria-pressed="true"],.theme-auto[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.theme-btn:hover,.lite-btn:hover,.menu summary:hover{border-color:var(--ink)}
.menu{display:none;position:relative}
.menu summary{list-style:none}.menu summary::-webkit-details-marker{display:none}
.menu nav{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;background:var(--layer);border:1px solid var(--line);border-radius:16px;padding:.5rem;box-shadow:var(--shb);z-index:5}
.menu li a,.menu li .lite-btn{display:flex;align-items:center;min-height:44px;padding:.4rem .9rem;border-radius:10px;text-decoration:none;font-weight:600}
.menu li a:hover{background:var(--tag)}
.menu .lite-btn,.menu .theme-auto{width:100%;justify-content:flex-start;border:0;background:transparent;border-radius:10px}
.menu .lite-btn[aria-pressed="true"],.menu .theme-auto[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.menu li .in-menu{display:none}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.8rem 1.3rem;font-weight:700;font-size:.95rem;border-radius:999px;border:2px solid var(--ink);text-decoration:none;line-height:1.2;background:transparent;color:var(--ink);cursor:pointer;transition:transform .2s,background .2s}
.btn:hover{transform:translateY(-2px)}
.btn-sm{padding:.5rem .95rem;font-size:.85rem}
.btn-primary{background:var(--acc);border-color:var(--acc);color:var(--on-acc)}
.btn-primary:hover{background:var(--acc-h);border-color:var(--acc-h)}
.btn-ghost{background:var(--layer);color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--bg)}
.btn:disabled{opacity:.6;cursor:wait;transform:none}

/* rodapé */
.ft{padding:2rem 0 3rem;font-size:.9rem;color:var(--mut)}
.ft .wrap{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}
.ft p{flex:1 1 260px}
.ft a{font-weight:600;color:var(--ink)}
.ft-logo{width:96px;height:auto}
.ft-logo.l-dark{display:none}
html[data-theme="dark"] .ft-logo.l-light{display:none}
html[data-theme="dark"] .ft-logo.l-dark{display:block}
.visit-counter{font-size:.8rem}

/* páginas simples (404 e privacidade) */
.page-main{padding:calc(60px + clamp(2rem,6vw,4.5rem)) 0 clamp(3rem,6vw,5rem);min-height:70svh}
.page-main .wrap{background:var(--layer);border-radius:30px;box-shadow:var(--shc);padding:clamp(1.6rem,4vw,3.4rem);border:1px solid var(--line)}
.eyebrow{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--acc-d);margin-bottom:.8rem;font-weight:600}
.error-title{font-size:clamp(2.2rem,6vw,4.5rem);letter-spacing:-.04em;line-height:.98;margin-bottom:1rem}
.lead{color:var(--mut);max-width:56ch}
.error-term{margin:1.6rem 0;padding:1rem 1.2rem;border-radius:16px;background:var(--layer2);border:1px solid var(--line);font-size:.9rem;overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.t-prompt{color:var(--acc-d)}.t-err{color:var(--acc-d);font-weight:700}
.error-actions{margin-top:1.6rem}
.prose{max-width:74ch}
.legal-page .prose h1{font-size:clamp(2rem,5vw,3.2rem);letter-spacing:-.035em;margin-bottom:.6rem}
.legal-page .prose h2{font-size:1.4rem;margin:2.2rem 0 .6rem;padding-top:1rem;border-top:1px solid var(--line)}
.legal-page .prose p,.legal-page .prose li{color:var(--ink)}
.legal-page .prose p+p{margin-top:.9rem}
.legal-page .prose ul{display:grid;gap:.7rem;margin:.6rem 0 0;padding-left:1.1rem;list-style:disc}
.legal-page .prose li::marker{color:var(--acc)}
.legal-page .prose a{color:var(--acc-d);font-weight:600}
.legal-updated{color:var(--mut);font-size:.9rem;margin-bottom:1.4rem}

html.lite .top{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--bg)}
main:focus{outline:none}
html.lite *,html.lite *::before,html.lite *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media (max-width:1280px){.nav{display:none}.menu{display:block}}
@media (max-width:640px){.top-in{gap:.4rem}.lite-btn.hdr,.theme-auto.hdr{display:none}.menu li .in-menu{display:flex}.brand img{width:40px;height:40px}.lang-btn{min-width:44px}}
@media (forced-colors:active){.lang-btn[aria-pressed="true"]{outline:2px solid CanvasText}}

/* 320 a 420 px: o botão de menu vira só o ícone (o texto fica para leitores de tela) e o cabeçalho cabe sem cortes com alvos de 44 px */
main{overflow-x:clip}
@media (max-width:420px){
  .top-in{gap:.25rem}
  .menu summary{font-size:0;width:44px;padding:0;position:relative}
  .menu summary::before{content:"";width:18px;height:2px;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor}
  .lang{padding:2px}.lang-btn{min-width:44px;padding:.2rem 0}
  .theme-auto.static{display:none}
}
