/* ==========================================================================
   COMPLIANCE MATTERS
   Um único azul: #2264A9. Um único dourado: #E9C219.
   Quatro superfícies: branco, azul-tinta claro, azul da marca, dourado.
   ========================================================================== */

/* Fontes alojadas no próprio site (sem pedidos à Google) */
@font-face{font-family:'Outfit';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/outfit-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/outfit-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/outfit-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/outfit-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:800;font-display:swap;src:url(fonts/outfit-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/instrument-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/instrument-sans-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/instrument-sans-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/instrument-sans-latin-400-italic.woff2) format('woff2')}

:root{
  --azul:       #2264A9;   /* o azul da marca. O único azul. */
  --azul-luz:   #EAF0F7;   /* tinta muito clara do mesmo azul */
  --ouro:       #E9C219;
  --carvao:     #15181C;   /* texto — neutro, para não competir com o azul */
  --cinza:      #5A6672;
  --risco:      #D9E0E8;
  --branco:     #FFFFFF;

  --display: 'Outfit', system-ui, -apple-system, sans-serif;
  --texto:   'Instrument Sans', system-ui, -apple-system, sans-serif;

  --marge: clamp(1.25rem, 4.5vw, 4.5rem);
  --faixa: clamp(4.5rem, 10vh, 8rem);
  --larg:  1360px;

  --mola:  cubic-bezier(.22,1,.36,1);
  --mola-suave: cubic-bezier(.34,1.26,.64,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--branco);color:var(--carvao);
  font-family:var(--texto);
  font-size:clamp(1rem,.97rem + .16vw,1.06rem);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}
::selection{background:var(--ouro);color:var(--carvao)}
:focus-visible{outline:3px solid var(--ouro);outline-offset:3px}

.env{max-width:var(--larg);margin-inline:auto;padding-inline:var(--marge)}
.faixa{padding-block:var(--faixa)}
.f-luz{background:var(--azul-luz)}
.f-azul{background:var(--azul);color:#fff}
.f-ouro{background:var(--ouro);color:var(--carvao)}

/* --------------------------------------------------------------------------
   TIPOGRAFIA
   -------------------------------------------------------------------------- */
h1,h2,h3,h4{font-family:var(--display);margin:0;font-weight:700;text-wrap:balance}

.t-cartaz{
  font-size:clamp(2.7rem,1rem + 7.4vw,6.4rem);
  line-height:.96;letter-spacing:-.05em;font-weight:700;
  text-transform:lowercase;
}
.t-1{font-size:clamp(2.1rem,1rem + 4.2vw,4rem);line-height:1.02;letter-spacing:-.04em}
.t-2{font-size:clamp(1.7rem,1.1rem + 2.4vw,2.9rem);line-height:1.08;letter-spacing:-.033em}
.t-3{font-size:clamp(1.2rem,1.05rem + .75vw,1.6rem);line-height:1.2;letter-spacing:-.022em;font-weight:600}
.entrada{font-size:clamp(1.08rem,1rem + .55vw,1.36rem);line-height:1.5;max-width:54ch}
.grande{font-size:clamp(1.02rem,.99rem + .3vw,1.14rem);line-height:1.62;max-width:62ch}
p{margin:0 0 1.15rem}
p:last-child{margin-bottom:0}
.suave{color:var(--cinza)}
.f-azul .suave{color:rgba(255,255,255,.74)}

.etiq{
  font-family:var(--display);font-weight:600;font-size:.76rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--azul);
  padding-top:.9rem;border-top:4px solid var(--ouro);
  display:inline-block;margin:0 0 1.75rem;
}
.f-azul .etiq{color:var(--ouro)}
.f-ouro .etiq{color:var(--carvao);border-top-color:var(--carvao)}

/* --------------------------------------------------------------------------
   BOTÕES
   -------------------------------------------------------------------------- */
.bt{
  display:inline-flex;align-items:center;gap:.7rem;position:relative;
  font-family:var(--display);font-weight:600;font-size:.98rem;
  letter-spacing:-.01em;padding:1rem 1.7rem;border:2px solid transparent;
  cursor:pointer;overflow:hidden;
  transition:background .26s var(--mola), color .26s, border-color .26s,
             transform .3s var(--mola);
}
.bt::after{
  content:'';position:absolute;left:1.7rem;right:1.7rem;bottom:.62rem;
  height:2px;background:currentColor;opacity:0;
  transform:scaleX(.35);transform-origin:left;
  transition:opacity .3s, transform .5s var(--mola);
}
.bt:hover::after{opacity:.9;transform:scaleX(1)}
.bt .seta{transition:transform .42s var(--mola);display:inline-block}
.bt:hover .seta{transform:translateX(6px)}
.bt:hover{transform:translateY(-2px)}
.bt:active{transform:translateY(0) scale(.985);transition-duration:.09s}

.bt-ouro{background:var(--ouro);color:var(--carvao)}
.bt-ouro:hover{background:#F5CF25}
.bt-azul{background:var(--azul);color:#fff}
.bt-azul:hover{background:var(--ouro);color:var(--carvao)}
.bt-carvao{background:var(--carvao);color:#fff}
.bt-carvao:hover{background:var(--azul)}
.bt-linha{border-color:currentColor}
.bt-linha:hover{background:var(--carvao);color:#fff;border-color:var(--carvao)}
.f-azul .bt-linha:hover{background:#fff;color:var(--azul);border-color:#fff}
.f-ouro .bt-linha:hover{background:var(--carvao);color:var(--ouro);border-color:var(--carvao)}
.botoes{display:flex;flex-wrap:wrap;gap:.9rem}

.lig{
  display:inline-flex;align-items:center;gap:.5rem;position:relative;
  font-family:var(--display);font-weight:600;font-size:.96rem;
  padding-bottom:.35rem;color:var(--azul);
}
.lig::after{
  content:'';position:absolute;left:0;bottom:0;height:2px;width:2.2rem;
  background:var(--ouro);transition:width .5s var(--mola);
}
.lig:hover::after{width:100%}
.lig .seta{transition:transform .42s var(--mola);display:inline-block}
.lig:hover .seta{transform:translateX(6px)}
.f-azul .lig{color:#fff}

/* --------------------------------------------------------------------------
   FOTOGRAFIA
   Duotone: cinzento multiplicado sobre cor chapada — o tratamento das artes.
   As imagens são sempre contidas, nunca esticadas ao ecrã inteiro, para
   manterem nitidez.
   -------------------------------------------------------------------------- */
.duo{position:relative;overflow:hidden;background:var(--azul);isolation:isolate}
.duo>img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.14) brightness(1.05);
  mix-blend-mode:multiply;
  transition:transform 1.1s var(--mola);
  /* Se a imagem não carregar fica só o bloco de cor da marca: o texto
     alternativo não deve aparecer por cima. Continua legível por leitores de ecrã. */
  color:transparent;font-size:0;
}
.duo-ouro{background:var(--ouro)}
a:hover>.duo>img,.duo-zoom:hover>img{transform:scale(1.045)}

/* Bloco de imagem com proporção fixa */
.fig{position:relative;overflow:hidden}
.fig-alta{aspect-ratio:4/5}
.fig-larga{aspect-ratio:16/10}
.fig-quadro{aspect-ratio:1/1}
.fig-legenda{
  font-family:var(--display);font-weight:500;font-size:.8rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--cinza);
  margin-top:.9rem;
}

/* --------------------------------------------------------------------------
   CABEÇALHO
   -------------------------------------------------------------------------- */
.topo{
  position:sticky;top:0;z-index:120;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px) saturate(180%);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
  border-bottom:1px solid var(--risco);
  transition:box-shadow .35s ease, background .35s ease;
}
.topo.desceu{box-shadow:0 6px 26px rgba(21,24,28,.07)}
.topo-in{
  max-width:var(--larg);margin-inline:auto;padding:.9rem var(--marge);
  display:flex;align-items:center;gap:1.6rem;
}
.marca img{height:38px;width:auto;transition:transform .4s var(--mola)}
.marca:hover img{transform:scale(1.03)}
.marca .branco{display:none}
body.aberto .topo{background:transparent;backdrop-filter:none;border-bottom-color:transparent;box-shadow:none}
body.aberto .topo .marca .escuro{display:none}
body.aberto .topo .marca .branco{display:block}

.menu{
  display:flex;gap:1.2rem;margin-left:auto;align-items:center;
  font-family:var(--display);font-weight:500;font-size:.92rem;white-space:nowrap;
}
.menu a{position:relative;padding:.35rem 0;color:var(--carvao);transition:color .2s}
.menu a::after{
  content:'';position:absolute;left:0;bottom:0;height:2.5px;width:100%;
  background:var(--ouro);transform:scaleX(0);transform-origin:left;
  transition:transform .45s var(--mola);
}
.menu a:hover::after,.menu a.aqui::after{transform:scaleX(1)}
.menu a.aqui{font-weight:600}
.topo .bt{white-space:nowrap;padding:.72rem 1.25rem;font-size:.92rem}

.burg{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:.5rem;color:var(--carvao)}
.burg span{display:block;width:24px;height:2.5px;background:currentColor;margin:5px 0;transition:transform .45s var(--mola),opacity .25s}
body.aberto .burg span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
body.aberto .burg span:nth-child(2){opacity:0}
body.aberto .burg span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
body.aberto .burg{color:#fff}

.painel{
  position:fixed;inset:0;z-index:110;background:var(--azul);
  display:flex;flex-direction:column;justify-content:center;
  padding:5.5rem var(--marge) 3rem;
  opacity:0;visibility:hidden;transition:opacity .38s var(--mola),visibility .38s;
}
body.aberto .painel{opacity:1;visibility:visible}
body.aberto{overflow:hidden}
.painel a{
  font-family:var(--display);font-weight:600;
  font-size:clamp(1.5rem,6.5vw,2.1rem);letter-spacing:-.035em;color:#fff;
  padding:.65rem 0;border-bottom:1px solid rgba(255,255,255,.2);
  opacity:0;transform:translateY(14px);
}
body.aberto .painel a{
  opacity:1;transform:none;
  transition:opacity .5s var(--mola) var(--d,0s), transform .5s var(--mola) var(--d,0s);
}
.painel a.bt{margin-top:2rem;justify-content:center;text-transform:none;border-bottom:0}
.painel a.bt-ouro{color:var(--carvao)}
.painel-pe{margin-top:2rem;font-size:.92rem;color:rgba(255,255,255,.72);line-height:1.9}
.painel-pe a{font:inherit;color:var(--ouro);border:0;padding:0;display:inline;text-transform:none;opacity:1;transform:none}

/* --------------------------------------------------------------------------
   CAPA — texto e imagem lado a lado. A imagem fica contida, logo nítida.
   -------------------------------------------------------------------------- */
.capa{background:var(--azul);color:#fff;overflow:hidden}
.capa-in{
  max-width:var(--larg);margin-inline:auto;
  padding:clamp(3.5rem,9vh,6rem) var(--marge) clamp(3.5rem,9vh,6rem);
  display:grid;grid-template-columns:1.15fr .85fr;
  gap:clamp(2.5rem,6vw,5rem);align-items:center;
}
.capa h1{max-width:16ch}
.capa .entrada{margin-top:1.6rem;color:rgba(255,255,255,.86)}
.capa .botoes{margin-top:2.4rem}
.capa .fig{align-self:stretch;min-height:min(58vh,30rem)}
/* Sobre o azul do herói, a fotografia vai a dourado — o par de cores da marca */
.capa .duo{background:var(--ouro)}
.migalha{
  font-family:var(--display);font-weight:500;font-size:.8rem;
  letter-spacing:.13em;text-transform:uppercase;color:var(--ouro);
  margin-bottom:1.6rem;
}
.migalha a{opacity:.78}
.migalha a:hover{opacity:1}
.capa-simples .capa-in{grid-template-columns:1fr}
.capa-simples h1{max-width:20ch}

/* --------------------------------------------------------------------------
   GRELHAS
   -------------------------------------------------------------------------- */
.dois{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5.5rem)}
.dois-desalinhado{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2.5rem,6vw,5.5rem)}
.cabeca{margin-bottom:clamp(2.5rem,5vw,3.75rem);max-width:60ch}

/* Texto + imagem emparelhados */
.par{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5rem);align-items:center}
.par-invertido>*:first-child{order:2}
.par .fig{min-height:22rem}

/* Tira de três imagens */
.tira{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.tira .fig{aspect-ratio:3/4}

.lista{border-top:1.5px solid var(--carvao)}
.linha{
  display:grid;grid-template-columns:3.5rem 1fr 1.4fr auto;
  gap:1.5rem;align-items:start;
  padding:2rem 0;border-bottom:1px solid var(--risco);
  transition:background .35s var(--mola), padding-left .4s var(--mola);
}
.linha:hover{background:var(--azul-luz);padding-left:.9rem}
.linha-n{
  font-family:var(--display);font-weight:600;font-size:.86rem;
  color:var(--azul);letter-spacing:.06em;padding-top:.35rem;
}
.linha h3{padding-top:.1rem}
.linha p{font-size:.97rem;color:var(--cinza);margin:0}
.linha .lig{align-self:center;white-space:nowrap}
.f-azul .lista{border-top-color:rgba(255,255,255,.55)}
.f-azul .linha{border-bottom-color:rgba(255,255,255,.2)}
.f-azul .linha:hover{background:rgba(255,255,255,.07)}
.f-azul .linha p{color:rgba(255,255,255,.74)}
.f-azul .linha-n{color:var(--ouro)}

.blocos{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:2.5rem 3rem}
.bloco{border-left:4px solid var(--ouro);padding-left:1.6rem}
.bloco h3{margin-bottom:.7rem}
.bloco p{font-size:.96rem;color:var(--cinza)}
.f-azul .bloco p{color:rgba(255,255,255,.76)}
.bloco .formato{
  font-family:var(--display);font-weight:600;font-size:.8rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--azul);
  margin-top:1rem;display:block;
}
.f-azul .bloco .formato{color:var(--ouro)}

.passos{counter-reset:p;border-top:1.5px solid var(--carvao)}
.passo{
  display:grid;grid-template-columns:auto 1fr;gap:1.5rem;
  padding:1.6rem 0;border-bottom:1px solid var(--risco);align-items:baseline;
}
.passo::before{
  counter-increment:p;content:counter(p);
  font-family:var(--display);font-weight:700;font-size:1.5rem;
  color:var(--ouro);line-height:1;min-width:1.5rem;
}
.passo b{font-family:var(--display);font-weight:600;font-size:1.1rem;letter-spacing:-.02em;display:block;margin-bottom:.15rem}
.passo span{font-size:.96rem;color:var(--cinza)}
.f-azul .passos{border-top-color:rgba(255,255,255,.55)}
.f-azul .passo{border-bottom-color:rgba(255,255,255,.2)}
.f-azul .passo span{color:rgba(255,255,255,.74)}

.aster{list-style:none;margin:0;padding:0}
.aster li{
  display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:baseline;
  padding:1.15rem 0;border-bottom:1px solid var(--risco);font-size:1rem;
  transition:padding-left .4s var(--mola);
}
.aster li:hover{padding-left:.5rem}
.aster li::before{content:'✱';color:var(--ouro);font-weight:700;font-size:.8rem}
.aster b{font-family:var(--display);font-weight:600;letter-spacing:-.015em}
.f-azul .aster li{border-bottom-color:rgba(255,255,255,.2)}

/* --------------------------------------------------------------------------
   CARTAZ — cor chapada e tipo enorme, como as artes de Instagram.
   Sem fotografia: é aqui que a marca fala mais alto.
   -------------------------------------------------------------------------- */
.cartaz{position:relative;overflow:hidden}
.cartaz-in{
  max-width:var(--larg);margin-inline:auto;
  padding:clamp(4.5rem,12vh,8rem) var(--marge);
  position:relative;z-index:1;
}
.cartaz h2{max-width:14ch}
.cartaz .assin{
  display:inline-block;margin-top:2rem;
  font-family:var(--display);font-weight:600;font-size:.84rem;
  letter-spacing:.15em;text-transform:uppercase;
}
/* asterisco enorme da marca, cortado pela margem */
.cartaz::after{
  content:'✱';position:absolute;right:-3vw;top:50%;
  transform:translateY(-50%) rotate(var(--giro,0deg));
  font-family:var(--display);font-weight:800;
  font-size:min(48vw,34rem);line-height:1;
  color:rgba(255,255,255,.1);pointer-events:none;user-select:none;
  transition:transform 1.4s var(--mola);
}
.cartaz.f-ouro::after{color:rgba(21,24,28,.07)}

/* --------------------------------------------------------------------------
   FASES E RISCO
   -------------------------------------------------------------------------- */
.fases{border-top:1.5px solid currentColor}
.fase{
  display:grid;grid-template-columns:7.5rem 1fr auto;gap:1rem 1.75rem;
  padding:1.5rem 0;border-bottom:1px solid var(--risco);align-items:center;
  transition:padding-left .4s var(--mola);
}
.fase:hover{padding-left:.6rem}
.f-azul .fase{border-bottom-color:rgba(255,255,255,.22)}
.fase-data{font-family:var(--display);font-weight:600;font-size:1.02rem;letter-spacing:-.01em}
.fase-o{font-size:.98rem;line-height:1.4}
.fase-e{
  font-family:var(--display);font-weight:600;font-size:.72rem;
  letter-spacing:.13em;text-transform:uppercase;white-space:nowrap;padding:.4rem .8rem;
}
.e-vigor{background:var(--ouro);color:var(--carvao)}
.e-futuro{border:1.5px solid currentColor;opacity:.78}

.risco{border-top:1.5px solid var(--carvao)}
.risco-l{padding:1.15rem 0;border-bottom:1px solid var(--risco)}
.risco-t{display:flex;justify-content:space-between;gap:1.5rem;align-items:baseline;margin-bottom:.6rem}
.risco-t b{font-family:var(--display);font-weight:600;font-size:1.04rem;letter-spacing:-.018em}
.risco-t span{
  font-family:var(--display);font-weight:500;font-size:.76rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--cinza);text-align:right;
}
.barra{height:6px;background:var(--risco);position:relative;overflow:hidden;display:block}
.barra i{
  position:absolute;inset:0 auto 0 0;width:var(--w);
  transform:scaleX(0);transform-origin:left;
  transition:transform 1.15s var(--mola) var(--atraso,0s);
}
.vis .barra i{transform:scaleX(1)}

/* --------------------------------------------------------------------------
   CLIENTES EM MARQUEE
   -------------------------------------------------------------------------- */
.marquee{overflow:hidden;position:relative;padding-block:1.5rem;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-fita{display:flex;gap:3.5rem;width:max-content;animation:desliza 34s linear infinite}
.marquee:hover .marquee-fita{animation-play-state:paused}
.marquee span{
  font-family:var(--display);font-weight:600;
  font-size:clamp(1.1rem,1rem + .9vw,1.7rem);letter-spacing:-.025em;
  color:var(--azul);opacity:.55;white-space:nowrap;transition:opacity .3s;
}
.marquee span:hover{opacity:1}
@keyframes desliza{to{transform:translateX(-50%)}}

/* --------------------------------------------------------------------------
   TESTEMUNHOS / ARTIGOS / EQUIPA
   -------------------------------------------------------------------------- */
.carril{
  display:flex;gap:1.5rem;overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:1.25rem;
  margin-inline:calc(var(--marge) * -1);padding-inline:var(--marge);
  scrollbar-width:none;
}
.carril::-webkit-scrollbar{display:none}
.cit{
  flex:0 0 min(27rem,82vw);scroll-snap-align:start;
  border-top:4px solid var(--ouro);padding-top:1.5rem;
  display:flex;flex-direction:column;
}
.cit p{font-size:1rem;line-height:1.6;margin-bottom:1.5rem}
.cit footer{margin-top:auto}
.cit b{font-family:var(--display);font-weight:600;display:block;letter-spacing:-.015em}
.cit span{font-size:.88rem;color:var(--cinza)}
.f-azul .cit span{color:rgba(255,255,255,.7)}

.artigos{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:2.5rem 2rem}
.artigo{display:flex;flex-direction:column}
.artigo .fig{aspect-ratio:16/10;margin-bottom:1.25rem}
.artigo .data{
  font-family:var(--display);font-weight:500;font-size:.78rem;
  letter-spacing:.11em;text-transform:uppercase;color:var(--cinza);margin-bottom:.7rem;
}
.artigo h3{font-size:1.14rem;line-height:1.26;letter-spacing:-.025em;font-weight:600;margin-bottom:.65rem}
.artigo:hover h3{color:var(--azul)}
.artigo p{font-size:.93rem;color:var(--cinza);line-height:1.55;margin-bottom:1.2rem}
.artigo .lig{margin-top:auto;font-size:.9rem}

/* Artigo em destaque no blog */
.destaque{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.destaque .fig{aspect-ratio:4/3}
.destaque h2{margin:.8rem 0 1rem}

.equipa{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:clamp(2rem,4vw,3.5rem)}
.pessoa .fig{aspect-ratio:4/5;margin-bottom:1.5rem;background:var(--azul-luz)}
.pessoa .fig img{filter:none;mix-blend-mode:normal;transition:transform 1.1s var(--mola)}
.pessoa:hover .fig img{transform:scale(1.04)}
.pessoa h3{margin-bottom:.2rem}
.pessoa .papel{
  font-family:var(--display);font-weight:600;font-size:.84rem;
  letter-spacing:.09em;text-transform:uppercase;color:var(--azul);margin-bottom:1rem;
}
.pessoa p{font-size:.95rem;color:var(--cinza)}

/* Cursos */
.curso{border-bottom:1px solid var(--risco)}
.curso summary{
  display:flex;align-items:center;gap:1.25rem;cursor:pointer;
  padding:1.5rem 0;list-style:none;
  font-family:var(--display);font-weight:600;
  font-size:clamp(1.05rem,1rem + .4vw,1.25rem);letter-spacing:-.022em;
  transition:padding-left .4s var(--mola), color .25s;
}
.curso summary:hover{padding-left:.6rem;color:var(--azul)}
.curso summary::-webkit-details-marker{display:none}
.curso summary::after{
  content:'+';margin-left:auto;color:var(--ouro);font-weight:700;
  font-size:1.5rem;line-height:1;transition:transform .45s var(--mola);
}
.curso[open] summary::after{transform:rotate(45deg)}
.curso[open] summary{color:var(--azul)}
.curso-meta{
  font-family:var(--display);font-weight:500;font-size:.76rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--cinza);white-space:nowrap;
}
.curso-corpo{padding:0 0 2rem;display:grid;grid-template-columns:1fr 1.35fr;gap:2.5rem}
.curso[open] .curso-corpo{animation:abre .5s var(--mola)}
@keyframes abre{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.curso-corpo h4{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--azul);margin-bottom:.8rem;font-weight:600}
.curso-corpo ul{margin:0 0 1.5rem;padding-left:1.1rem;font-size:.94rem;color:var(--cinza)}
.curso-corpo li{margin-bottom:.4rem}
.curso-corpo ul:last-child{margin-bottom:0}

/* --------------------------------------------------------------------------
   CORPO DE ARTIGO
   -------------------------------------------------------------------------- */
.corpo-artigo{max-width:68ch;margin-inline:auto}
.corpo-artigo h2{font-size:clamp(1.4rem,1.15rem + 1.1vw,1.9rem);letter-spacing:-.028em;margin:2.75rem 0 1rem}
.corpo-artigo h3{font-size:1.2rem;letter-spacing:-.02em;margin:2rem 0 .75rem;font-weight:600}
.corpo-artigo p{font-size:1.08rem;line-height:1.72;margin-bottom:1.35rem}
.corpo-artigo ul,.corpo-artigo ol{font-size:1.06rem;line-height:1.7;padding-left:1.3rem;margin:0 0 1.5rem}
.corpo-artigo li{margin-bottom:.6rem}
.corpo-artigo blockquote{
  margin:2.25rem 0;padding:0 0 0 1.6rem;border-left:4px solid var(--ouro);
  font-family:var(--display);font-weight:500;
  font-size:clamp(1.2rem,1.05rem + .7vw,1.55rem);line-height:1.35;letter-spacing:-.022em;
}
.corpo-artigo .fig{margin:2.5rem 0;aspect-ratio:16/9}
.corpo-artigo strong{font-weight:600}

/* --------------------------------------------------------------------------
   RODAPÉ — azul da marca
   -------------------------------------------------------------------------- */
.pe{background:var(--azul);color:#fff;padding-block:clamp(3.5rem,8vh,5.5rem) 2rem}
.pe-topo{
  display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:clamp(2rem,5vw,4rem);
  padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.24);
}
.pe .marca img{height:46px}
.pe address{font-style:normal;font-size:.94rem;line-height:1.8;color:rgba(255,255,255,.76);margin-top:1.75rem}
.pe address a:hover{color:var(--ouro)}
.pe h4{
  font-family:var(--display);font-size:.78rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ouro);margin-bottom:1.2rem;
}
.pe ul{list-style:none;margin:0;padding:0;display:grid;gap:.72rem}
.pe ul a{font-size:.95rem;color:rgba(255,255,255,.8);transition:color .2s,padding-left .35s var(--mola)}
.pe ul a:hover{color:#fff;padding-left:.35rem}
.pe-baixo{
  display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
  padding-top:1.75rem;font-size:.85rem;color:rgba(255,255,255,.6);
}

/* --------------------------------------------------------------------------
   MOVIMENTO
   -------------------------------------------------------------------------- */
html.js .rev{
  opacity:0;transform:translateY(22px);
  transition:opacity .8s var(--mola) var(--d,0s), transform .8s var(--mola) var(--d,0s);
}
html.js .rev.vis{opacity:1;transform:none}

/* Entrada do herói, linha a linha */
html.js .capa h1,
html.js .capa .entrada,
html.js .capa .botoes,
html.js .capa .migalha,
html.js .capa .fig{
  opacity:0;transform:translateY(20px);
  animation:sobe .95s var(--mola) forwards;
}
html.js .capa .migalha{animation-delay:.05s}
html.js .capa h1{animation-delay:.13s}
html.js .capa .entrada{animation-delay:.24s}
html.js .capa .botoes{animation-delay:.33s}
html.js .capa .fig{animation-delay:.2s;transform:translateY(28px)}
@keyframes sobe{to{opacity:1;transform:none}}

/* Parallax: só transform, movido por rAF */
.parallax{will-change:transform}

/* --------------------------------------------------------------------------
   RESPONSIVO
   -------------------------------------------------------------------------- */
@media (max-width:1080px){
  .capa-in,.dois,.dois-desalinhado,.par,.destaque,.curso-corpo{grid-template-columns:1fr}
  .capa .fig{min-height:20rem;order:-1}
  .par-invertido>*:first-child{order:0}
  .linha{grid-template-columns:2.5rem 1fr;gap:.4rem 1.25rem}
  .linha p,.linha>div{grid-column:2}
  .linha .lig{grid-column:2;margin-top:.5rem}
  .pe-topo{grid-template-columns:1fr 1fr}
  .pe-topo>div:first-child{grid-column:1/-1}
}
@media (max-width:1279px){
  .menu,.topo .bt{display:none}
  .burg{display:block}
}
@media (max-width:680px){
  .fase{grid-template-columns:1fr auto;gap:.35rem 1rem}
  .fase-data{grid-column:1/-1;color:var(--azul)}
  .f-azul .fase-data{color:var(--ouro)}
  .curso summary{flex-wrap:wrap;gap:.35rem 1rem}
  .curso-meta{width:100%;order:3}
  .risco-t{flex-direction:column;gap:.2rem}
  .risco-t span{text-align:left}
  .tira{grid-template-columns:1fr;gap:1rem}
  .tira .fig:nth-child(3){display:none}
}
@media (max-width:520px){
  .pe-topo{grid-template-columns:1fr}
  .botoes .bt{width:100%;justify-content:center}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  html.js .rev{opacity:1;transform:none}
  html.js .capa h1,html.js .capa .entrada,html.js .capa .botoes,
  html.js .capa .migalha,html.js .capa .fig{opacity:1;transform:none;animation:none}
  .barra i{transform:scaleX(1)}
  .marquee-fita{animation:none}
  .parallax{transform:none !important}
}

/* Âncoras das áreas de atuação ficam abaixo do cabeçalho fixo */
.linha[id]{scroll-margin-top:110px}

/* --------------------------------------------------------------------------
   ACADEMIA: formação em destaque e lista de espera
   -------------------------------------------------------------------------- */
.ancora{
  background:var(--azul);color:#fff;
  padding:clamp(2rem,4.5vw,3.5rem);
  display:grid;grid-template-columns:1fr 1.1fr;gap:1.75rem clamp(2rem,5vw,4.5rem);align-items:end;
  margin-bottom:clamp(3rem,6vw,4.5rem);
}
.ancora h3{margin:1.1rem 0 .9rem}
.ancora p{color:rgba(255,255,255,.84);font-size:clamp(1.02rem,.99rem + .3vw,1.14rem);max-width:56ch}
.ancora .formato{
  font-family:var(--display);font-weight:600;font-size:.8rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ouro);display:block;
}
.selo{
  display:inline-block;background:var(--ouro);color:var(--carvao);
  font-family:var(--display);font-weight:700;font-size:.72rem;
  letter-spacing:.16em;text-transform:uppercase;padding:.45rem .8rem;
}
.espera{
  margin-top:clamp(3rem,6vw,4.5rem);
  border:2px solid var(--ouro);padding:clamp(1.75rem,3.5vw,2.75rem);
  display:grid;grid-template-columns:1fr auto;gap:1.5rem 3rem;align-items:center;
}
.espera h3{margin-bottom:.7rem}
.espera p{color:rgba(255,255,255,.8);max-width:60ch}
@media (max-width:900px){
  .ancora,.espera{grid-template-columns:1fr}
}

/* --------------------------------------------------------------------------
   SOBRE NÓS: quem lidera
   -------------------------------------------------------------------------- */
.lider{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2.5rem,6vw,5.5rem);align-items:start}
.lider-foto{aspect-ratio:4/5;background:var(--azul-luz);position:sticky;top:7rem}
.lider-foto img{width:100%;height:100%;object-fit:cover}
.lider h2{margin-bottom:.5rem}
.lider .papel{
  font-family:var(--display);font-weight:600;font-size:.82rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--azul);margin-bottom:1.8rem;
}
@media (max-width:900px){
  .lider{grid-template-columns:1fr}
  .lider-foto{position:static;max-width:26rem}
}
.blocos-dois{grid-template-columns:1fr 1fr}
@media (max-width:680px){ .blocos-dois{grid-template-columns:1fr} }

/* --------------------------------------------------------------------------
   PARCEIROS: faixa escura com logótipos
   -------------------------------------------------------------------------- */
.f-carvao{background:var(--carvao);color:#fff}
.f-carvao .etiq{color:var(--ouro)}
.f-carvao .grande{color:rgba(255,255,255,.74)}
.logos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14)}
.logos li{background:var(--carvao);min-height:10rem;display:flex;align-items:center;justify-content:center;padding:1.75rem 2rem}
.logos img{max-width:100%;max-height:4.2rem;width:auto;height:auto;object-fit:contain}
.logos span{font-family:var(--display);font-weight:600;font-size:1.15rem;letter-spacing:-.01em;text-align:center;color:#fff}
@media (max-width:600px){ .logos{grid-template-columns:1fr} }
@media (max-width:480px){ .logos li{min-height:8rem;padding:1.25rem} .logos img{max-height:3.4rem} }
.logos img.alto{max-height:6.5rem}
@media (max-width:480px){ .logos img.alto{max-height:5rem} }

.topo-in>.marca,.topo .bt{flex-shrink:0}

/* --------------------------------------------------------------------------
   BANNER DE COOKIES
   -------------------------------------------------------------------------- */
.cookies{
  position:fixed;left:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);z-index:200;
  width:min(27rem,calc(100% - 2rem));
  background:var(--carvao);color:#fff;padding:1.5rem 1.6rem;
  box-shadow:0 18px 50px rgba(0,0,0,.28);border-top:4px solid var(--ouro);
  font-size:.92rem;line-height:1.55;
}
.cookies p{margin:0 0 1.1rem;color:rgba(255,255,255,.82)}
.cookies .cookies-t{font-family:var(--display);font-weight:700;font-size:1.05rem;color:#fff;margin-bottom:.5rem}
.cookies a{color:var(--ouro);text-decoration:underline;text-underline-offset:2px}
.cookies-bt{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.cookies-bt button{
  font-family:var(--display);font-weight:600;font-size:.92rem;cursor:pointer;
  padding:.8rem 1rem;background:transparent;color:#fff;border:1.5px solid #fff;
  transition:background .2s,color .2s;
}
.cookies-bt button:hover{background:#fff;color:var(--carvao)}
.pe button[data-cookies]{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;text-align:left}

/* --------------------------------------------------------------------------
   POLÍTICA DE PRIVACIDADE
   -------------------------------------------------------------------------- */
.politica .data-pol{font-family:var(--display);font-weight:600;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--azul);margin-bottom:1.5rem}
.politica a{color:var(--azul);text-decoration:underline;text-underline-offset:2px}
.trat{border-left:4px solid var(--ouro);padding:.2rem 0 .2rem 1.4rem;margin:0 0 2rem}
.trat h3{margin:0 0 .9rem}
.trat dl{margin:0;display:grid;grid-template-columns:7.5rem 1fr;gap:.55rem 1.25rem;font-size:1rem;line-height:1.6}
.trat dt{font-family:var(--display);font-weight:600;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--azul);padding-top:.2rem}
.trat dd{margin:0;color:var(--cinza)}
.tabela-rolar{overflow-x:auto;margin:0 0 1.75rem;border:1px solid var(--risco)}
.tabela{border-collapse:collapse;width:100%;font-size:.9rem}
@media (max-width:680px){ .tabela{min-width:34rem} }
.tabela th,.tabela td{text-align:left;padding:.75rem .8rem;border-bottom:1px solid var(--risco);vertical-align:top}
.tabela th{font-family:var(--display);font-weight:600;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--azul);background:var(--azul-luz)}
.tabela tr:last-child td{border-bottom:0}
.tabela code{font-size:.88em;background:var(--azul-luz);padding:.1rem .35rem}
@media (max-width:520px){ .trat dl{grid-template-columns:1fr;gap:.2rem} .trat dd{margin-bottom:.6rem} }
.politica{max-width:78ch}
.politica h3{margin-top:1.8rem}
.tabela-3{min-width:0}
.tabela-3 td:first-child{font-weight:500;color:var(--carvao)}
.tabela td{color:var(--cinza)}
.direitos li{margin-bottom:.8rem}
@media (max-width:680px){ .tabela-3{min-width:38rem} .tabela-6{min-width:44rem} }
.pe-baixo .livro{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.pe-baixo .livro:hover{color:var(--ouro)}
