/* =========================================================================
   CEPRONE — camada de identidade (v2)
   Carregada DEPOIS de styles.css. Só redefine fichas de cor e acrescenta
   componentes novos; não altera nenhuma regra antiga, por isso é reversível:
   basta tirar o <link> do base.html.

   As quatro cores vêm do logótipo (static/img/logo.svg):
     amarelo #FFD400 · índigo #3B2FA0 · verde #00A551 · vermelho #EE3124
   ========================================================================= */

:root{
  --amarelo:#FFD400; --indigo:#3B2FA0; --verde:#00A551; --vermelho:#EE3124;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
}

/* --- tema escuro: cores aclaradas para contraste sobre fundo escuro --- */
html[data-theme="dark"]{
  --amarelo-c:#FFD400; --indigo-c:#7566ff; --verde-c:#16c46a; --vermelho-c:#ff5546;
  --bg:#070617; --panel:#0e0c24; --panel2:#141130; --line:#241f4f;
  --txt:#edebf7; --muted:#9c97bd;
  --accent:#16c46a; --accent2:#7566ff; --gold:#FFD400; --red:#ff5546;
  --topbar:rgba(7,6,23,.86); --topbar-solid:#070617;
  --hero:linear-gradient(135deg,#0d0a28,#070617 62%);
  --cep-cell:#17133a; --cep-net:160,155,210; --cep-net-op:.22; --cep-ring-op:.13;
}
/* --- tema claro --- */
html[data-theme="light"]{
  --amarelo-c:#9a7a00; --indigo-c:#3B2FA0; --verde-c:#00843f; --vermelho-c:#cf2417;
  --bg:#ffffff; --panel:#ffffff; --panel2:#f5f5fa; --line:#e4e3ef;
  --txt:#13112b; --muted:#5a5775;
  --accent:#00843f; --accent2:#3B2FA0; --gold:#9a7a00; --red:#cf2417;
  --topbar:rgba(255,255,255,.9); --topbar-solid:#ffffff;
  --hero:linear-gradient(135deg,#f6f5ff,#ffffff 62%);
  --cep-cell:#e8e7f1; --cep-net:60,50,120; --cep-net-op:.26; --cep-ring-op:.07;
}

/* ---------- assinatura: a barra das quatro cores ---------- */
.cep-brandbar{height:3px;display:flex;width:100%}
.cep-brandbar i{flex:1}
.cep-brandbar i:nth-child(1){background:var(--amarelo)}
.cep-brandbar i:nth-child(2){background:var(--indigo)}
.cep-brandbar i:nth-child(3){background:var(--verde)}
.cep-brandbar i:nth-child(4){background:var(--vermelho)}
.topbar{flex-wrap:wrap}
.topbar .cep-brandbar{order:-1}

/* logótipo real em vez da fotografia */
.topbar .brand .logo{background:none!important;padding:0!important;border-radius:0}

/* ---------- blocos largos ---------- */
.cep-wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.cep-sec{padding:clamp(60px,9vw,112px) 0;position:relative;scroll-margin-top:92px}
.cep-sec.alt{background:var(--panel2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cep-h{display:flex;align-items:baseline;gap:16px;margin-bottom:12px}
.cep-num{font-family:var(--mono);font-size:12px;letter-spacing:.1em;font-weight:700}
.cep-sec h2{font-size:clamp(26px,4vw,43px);letter-spacing:-.035em;line-height:1.08;max-width:21ch;margin:0}
.cep-lead{color:var(--muted);max-width:58ch;margin-top:14px;font-size:17px}

/* ---------- héroi ---------- */
.cep-hero{position:relative;min-height:min(92svh,780px);display:flex;align-items:center;
  padding:96px 0 64px;overflow:hidden}
#cep-net{position:absolute;inset:0;width:100%;height:100%}
.cep-ring{position:absolute;right:-16vw;top:50%;translate:0 -50%;width:60vw;height:60vw;
  max-width:820px;max-height:820px;opacity:var(--cep-ring-op);pointer-events:none;
  animation:cep-spin 90s linear infinite}
@keyframes cep-spin{to{rotate:360deg}}
.cep-hero .cep-wrap{position:relative;z-index:2}
.cep-eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);margin-bottom:24px}
.cep-hero h1{font-size:clamp(36px,6.4vw,76px);line-height:1.02;letter-spacing:-.04em;
  font-weight:800;max-width:15ch;margin:0}
.cep-hero h1 em{font-style:normal;color:var(--verde-c)}
.cep-hero .cep-lede{margin-top:24px;font-size:clamp(16px,1.9vw,19px);color:var(--muted);max-width:56ch}
.cep-hero .cep-lede b{color:var(--txt);font-weight:600}
.cep-cta{display:flex;flex-wrap:wrap;gap:11px;margin-top:34px}

/* números do héroi */
.cep-stats{display:flex;flex-wrap:wrap;margin-top:56px;border-top:1px solid var(--line)}
.cep-stat{padding:20px 32px 0 0;border-top:3px solid transparent;margin-top:-1px}
.cep-stat:nth-child(1){border-top-color:var(--verde)}
.cep-stat:nth-child(2){border-top-color:var(--amarelo)}
.cep-stat:nth-child(3){border-top-color:var(--indigo)}
.cep-stat:nth-child(4){border-top-color:var(--vermelho)}
.cep-stat b{display:block;font-size:clamp(23px,3vw,32px);font-weight:800;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums}
.cep-stat span{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}

/* ---------- cartões com cor da marca ---------- */
.cep-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(244px,1fr));gap:16px;margin-top:48px}
.cep-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:28px 24px 32px;position:relative;overflow:hidden;transition:transform .3s,border-color .3s}
.cep-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--cor,var(--verde))}
.cep-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--cor,var(--verde)) 45%,var(--line))}
.cep-card .k{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.16em;display:block;margin-bottom:16px}
.cep-card svg.ic{width:30px;height:30px;color:var(--cor,var(--verde));margin-bottom:16px}
.cep-card h3{font-size:18.5px;letter-spacing:-.02em;margin:0 0 9px}
.cep-card p{color:var(--muted);font-size:14.5px;margin:0}

/* ---------- grelha das 200 ---------- */
.cep-g200{display:grid;grid-template-columns:repeat(25,1fr);gap:5px;margin-top:40px}
.cep-g200 div{aspect-ratio:1;border-radius:3px;background:var(--cep-cell);transition:background .5s,box-shadow .5s}
.cep-legend{display:flex;flex-wrap:wrap;gap:22px;margin-top:24px;font-family:var(--mono);
  font-size:11.5px;color:var(--muted);letter-spacing:.09em;text-transform:uppercase}
.cep-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:7px;vertical-align:middle}

/* ---------- terminal ---------- */
.cep-term{margin-top:44px;border:1px solid var(--line);border-radius:12px;overflow:hidden;
  background:#0a0820}
.cep-term-bar{display:flex;align-items:center;gap:8px;padding:11px 15px;border-bottom:1px solid #241f4f;background:#13102e}
.cep-term-bar i{width:10px;height:10px;border-radius:50%;display:block}
.cep-term-bar i:nth-child(1){background:var(--vermelho)}
.cep-term-bar i:nth-child(2){background:var(--amarelo)}
.cep-term-bar i:nth-child(3){background:var(--verde)}
.cep-term-bar span{font-family:var(--mono);font-size:11.5px;color:#8d88ad;margin-left:8px}
.cep-term-body{padding:20px 18px;font-family:var(--mono);font-size:13px;line-height:2;
  color:#b9b4d6;overflow-x:auto;white-space:pre}
.cep-term-body .g{color:#16c46a}.cep-term-body .m{color:#8d88ad}.cep-term-body .y{color:#FFD400}
.cep-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.cep-chip{font-family:var(--mono);font-size:12px;color:var(--muted);border:1px solid var(--line);
  padding:6px 13px;border-radius:7px}

/* ---------- lista de programas ---------- */
.cep-progs{display:grid;gap:11px;margin-top:44px}
.cep-prog{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--cor,var(--verde));
  border-radius:10px;display:grid;grid-template-columns:58px 1fr auto;gap:18px;align-items:center;
  padding:22px 24px;transition:background .25s;color:inherit;text-decoration:none}
.cep-prog:hover{background:var(--panel2)}
.cep-prog .pn{font-family:var(--mono);font-size:12px;color:var(--cor,var(--verde));font-weight:700}
.cep-prog h3{font-size:18px;letter-spacing:-.02em;margin:0}
.cep-prog p{color:var(--muted);font-size:14.5px;margin:3px 0 0}
.cep-prog .ar{color:var(--muted);transition:transform .25s,color .25s}
.cep-prog:hover .ar{transform:translateX(5px);color:var(--cor,var(--verde))}

/* ---------- equipa ---------- */
.cep-team{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;margin-top:40px}
.cep-person{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px;text-align:center}
.cep-person .av{width:88px;height:88px;border-radius:50%;margin:0 auto 16px;object-fit:cover;display:block;
  background:var(--panel2);border:3px solid var(--cor,var(--verde))}
.cep-person .av.ph{display:grid;place-items:center;font-size:30px;font-weight:800;color:var(--cor,var(--verde));
  font-family:var(--mono)}
.cep-person h3{font-size:16.5px;margin:0 0 4px;letter-spacing:-.01em}
.cep-person .role{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--cor,var(--verde));display:block;margin-bottom:10px}
.cep-person p{color:var(--muted);font-size:13.5px;margin:0}

/* ---------- texto corrido ---------- */
.cep-prose{max-width:62ch}
.cep-prose p{color:var(--muted);font-size:17px;margin:0 0 16px}
.cep-prose p strong{color:var(--txt);font-weight:600}

/* ---------- linha do tempo ---------- */
.cep-tl{margin-top:40px;border-left:2px solid var(--line);padding-left:24px;list-style:none}
.cep-tl li{margin-bottom:24px;position:relative}
.cep-tl li::before{content:"";position:absolute;left:-31px;top:6px;width:11px;height:11px;border-radius:50%;
  background:var(--bg);border:2px solid var(--cor,var(--verde))}
.cep-tl b{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--cor,var(--verde));margin-bottom:3px}
.cep-tl p{color:var(--muted);font-size:15px;margin:0}

/* ---------- aparecer ao rolar ---------- */
.cep-rv{opacity:0;transform:translateY(18px);
  transition:opacity .65s cubic-bezier(.2,.7,.3,1),transform .65s cubic-bezier(.2,.7,.3,1)}
.cep-rv.in{opacity:1;transform:none}

@media(max-width:860px){
  .cep-g200{grid-template-columns:repeat(20,1fr)}
  .cep-prog{grid-template-columns:1fr;gap:5px}
  .cep-prog .ar{display:none}
  .cep-stat{padding-right:24px}
  .cep-ring{opacity:calc(var(--cep-ring-op) * .6)}
}
@media(prefers-reduced-motion:reduce){
  .cep-ring{animation:none}
  .cep-rv{opacity:1;transform:none;transition:none}
}

/* ---------- páginas de erro ---------- */
.cep-erro{text-align:center;min-height:62vh;display:grid;align-content:center}
.cep-erro-cod{font:800 clamp(72px,16vw,172px)/1 var(--mono);letter-spacing:-.06em;
  color:var(--line);margin:0 0 8px;user-select:none}
.cep-erro-cod span{color:var(--vermelho)}
.cep-erro h1{font-size:clamp(26px,4.4vw,42px);letter-spacing:-.035em;line-height:1.1;margin:0 0 14px}
.cep-erro .cep-lead{margin:0 auto}
.cep-erro-busca{display:flex;gap:10px;max-width:470px;margin:32px auto 0}
.cep-erro-busca input{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:9px;
  padding:14px 18px;color:var(--txt);font:inherit;font-size:15px}
.cep-erro-busca input:focus{outline:none;border-color:var(--verde-c)}
.cep-erro-links{display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:center;margin-top:34px;font-size:14.5px}
.cep-erro-links a{color:var(--muted);border-bottom:1px solid transparent;padding-bottom:2px}
.cep-erro-links a:hover{color:var(--txt);border-bottom-color:var(--verde-c)}
.cep-erro .cep-cta{justify-content:center}
.cep-erro-nota{margin-top:26px;color:var(--muted);font-size:14px}

/* ---------- Sobre: texto à esquerda, números à direita ---------- */
.cep-split{display:grid;grid-template-columns:1.25fr .85fr;gap:56px;align-items:start}
.cep-painel{background:var(--panel2);border:1px solid var(--line);border-radius:14px;
  padding:30px 28px;position:relative;overflow:hidden}
.cep-painel::before{content:"";position:absolute;inset:0 0 auto;height:3px;
  background:linear-gradient(90deg,var(--amarelo) 25%,var(--indigo) 25% 50%,var(--verde) 50% 75%,var(--vermelho) 75%)}
.cep-painel-t{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin:0 0 22px}
.cep-painel dl{margin:0;display:grid;gap:20px}
.cep-painel div{border-left:3px solid var(--cor,var(--verde));padding-left:16px}
.cep-painel dt{font:800 clamp(22px,2.8vw,30px)/1 inherit;letter-spacing:-.03em;color:var(--txt);
  font-variant-numeric:tabular-nums}
.cep-painel dd{margin:4px 0 0;font-size:14px;color:var(--muted)}
@media(max-width:900px){.cep-split{grid-template-columns:1fr;gap:34px}}

/* ---------- héroi de pesquisa do directório ---------- */
.cep-dirhero{background:var(--panel2);border-bottom:1px solid var(--line);
  padding:clamp(40px,6vw,66px) 0;margin-bottom:28px;position:relative;overflow:hidden}
.cep-dirhero .cep-wrap{position:relative;z-index:2}
.cep-dirhero h1{font-size:clamp(26px,4.2vw,44px);letter-spacing:-.035em;line-height:1.08;margin:0 0 12px;max-width:18ch}
.cep-dirhero p{color:var(--muted);font-size:17px;margin:0 0 26px;max-width:52ch}
.cep-dirbusca{display:flex;flex-wrap:wrap;gap:10px;max-width:760px}
.cep-dirbusca .fld{flex:1 1 200px;display:flex;flex-direction:column;gap:5px}
.cep-dirbusca label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.cep-dirbusca input,.cep-dirbusca select{background:var(--panel);border:1px solid var(--line);
  border-radius:9px;padding:13px 16px;color:var(--txt);font:inherit;font-size:15px;width:100%}
.cep-dirbusca input:focus,.cep-dirbusca select:focus{outline:none;border-color:var(--verde-c)}
.cep-dirbusca .btn{align-self:flex-end;padding:13px 28px}
.cep-dirring{position:absolute;right:-9vw;top:50%;translate:0 -50%;width:34vw;height:34vw;
  max-width:420px;max-height:420px;opacity:calc(var(--cep-ring-op) * .8);pointer-events:none}
@media(max-width:760px){.cep-dirring{display:none}.cep-dirbusca .btn{width:100%}}
