/* GIFO — barra institucional e remediação responsiva global. */
@font-face{font-family:'Archivo';src:url(/fonts/archivo-400.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Archivo';src:url(/fonts/archivo-600.woff2) format('woff2');font-weight:600;font-style:normal;font-display:swap}

html.gifo-public .classif-bar,
html.gifo-public .classif{
  box-sizing:border-box!important;
  width:100%!important;
  min-height:37px!important;
  margin:0!important;
  padding:8px 16px 7px!important;
  border:0!important;
  border-radius:0!important;
  background:#18243a!important;
  color:rgba(240,244,255,.9)!important;
  font-family:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif!important;
  font-size:10px!important;
  font-style:normal!important;
  font-weight:600!important;
  line-height:1.45!important;
  letter-spacing:2.25px!important;
  text-align:center!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  position:relative!important;
  inset:auto!important;
  z-index:1001!important;
}

html.gifo-public .classif-bar::before,
html.gifo-public .classif-bar::after,
html.gifo-public .classif::before,
html.gifo-public .classif::after{
  content:none!important;
  display:none!important;
}

html.gifo-public .classif-bar .classif-full,
html.gifo-public .classif .classif-full{
  display:inline!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  color:inherit!important;
  font:inherit!important;
  letter-spacing:inherit!important;
  line-height:inherit!important;
  text-transform:inherit!important;
  white-space:inherit!important;
}

/* Nunca mostrar simultaneamente a variante curta: evita texto duplicado e desalinhado. */
html.gifo-public .classif-bar .classif-short,
html.gifo-public .classif .classif-short{
  display:none!important;
}

/* Tabelas contratuais e documentais: deslocação horizontal acessível e explícita. */
html.gifo-public .tbl-wrap,
html.gifo-public .control-table-wrap{
  position:relative;
  display:block;
  width:100%;
  max-width:100%;
  overflow-x:auto!important;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
  border-radius:2px;
}

html.gifo-public .tbl-wrap:focus-visible,
html.gifo-public .control-table-wrap:focus-visible{
  outline:2px solid #8db5ee;
  outline-offset:3px;
}

html.gifo-public.page-dpa .tbl-wrap table,
html.gifo-public.page-sla .tbl-wrap table{
  width:100%;
  min-width:680px;
}

html.gifo-public .gifo-table-hint{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 9px;
  color:rgba(240,244,255,.56);
  font:600 .68rem/1.45 'Archivo',system-ui,sans-serif;
}

html.gifo-public .gifo-table-hint::before{
  content:'↔';
  color:#8db5ee;
  font-size:.9rem;
}

/* Índice automático para documentos extensos. */
html.gifo-public .gifo-page-index{
  width:min(100% - 36px,1120px);
  margin:22px auto 34px;
  padding:18px;
  border:1px solid rgba(255,255,255,.11);
  border-top:2px solid #315f9f;
  background:#101218;
  color:#f0f4ff;
}

html.gifo-public .gifo-page-index-title{
  display:block;
  margin-bottom:11px;
  color:rgba(240,244,255,.5);
  font:700 .65rem/1.3 'Archivo',system-ui,sans-serif;
  letter-spacing:1.35px;
  text-transform:uppercase;
}

html.gifo-public .gifo-page-index-links{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

html.gifo-public .gifo-page-index a{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.11);
  background:rgba(255,255,255,.025);
  color:rgba(240,244,255,.78);
  font:600 .72rem/1.35 'Archivo',system-ui,sans-serif;
  text-decoration:none;
}

html.gifo-public .gifo-page-index a:hover{
  border-color:rgba(49,95,159,.7);
  background:rgba(49,95,159,.12);
  color:#fff;
}

html.gifo-public main h2[id],
html.gifo-public .wrap h2[id]{
  scroll-margin-top:110px;
}

/* Botão transversal para páginas longas. */
html.gifo-public #gifo-back-to-top{
  position:fixed;
  right:max(16px,env(safe-area-inset-right));
  bottom:max(16px,env(safe-area-inset-bottom));
  z-index:9000;
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  padding:0;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  background:rgba(16,18,24,.96);
  color:#fff;
  box-shadow:0 12px 32px rgba(0,0,0,.38);
  font:700 1rem/1 'Archivo',system-ui,sans-serif;
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity .18s,transform .18s,border-color .18s,background .18s;
}

html.gifo-public #gifo-back-to-top.is-visible{
  opacity:1;
  pointer-events:auto;
  transform:none;
}

html.gifo-public #gifo-back-to-top:hover{
  border-color:#8db5ee;
  background:#18243a;
}

/* Editorial: submenu totalmente visível e hero sem corte lateral. */
html.page-editorial .hero-layout>*{
  min-width:0;
}

html.page-editorial .hero-publication::before{
  max-width:100%;
}

/* VigiForensic: não permitir que conteúdo ou botões excedam os painéis. */
html.page-vigiforensic .sector-tabs,
html.page-vigiforensic .tab-list,
html.page-vigiforensic .sector-panel{
  min-width:0;
}

html.page-vigiforensic .tab-button{
  max-width:100%;
}

/* Tecnologia: isolar a decoração do conteúdo real dos cartões. */
html.page-tecnologia .growth-product{
  isolation:isolate;
  overflow:clip!important;
  contain:paint;
}

html.page-tecnologia .growth-product::after{
  z-index:0;
}

html.page-tecnologia .growth-product>*{
  position:relative;
  z-index:1;
  min-width:0;
}

@media (max-width:760px){
  html.page-editorial .editorial-nav{
    overflow:visible!important;
  }

  html.page-editorial .editorial-nav-inner{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%!important;
    min-height:0!important;
    padding:10px 14px 12px!important;
    gap:7px!important;
    white-space:normal!important;
  }

  html.page-editorial .editorial-nav a{
    display:flex!important;
    align-items:center;
    justify-content:center;
    width:100%;
    min-width:0;
    min-height:42px;
    padding:9px 10px!important;
    border:1px solid rgba(255,255,255,.09);
    border-radius:3px!important;
    text-align:center;
    line-height:1.3;
  }

  html.page-editorial .editorial-nav .editorial-submit{
    grid-column:1/-1;
    margin-left:0!important;
  }

  html.page-editorial .editorial-hero{
    overflow:clip!important;
  }

  html.page-editorial .hero-publication::before{
    inset:12% 0 -5% 10%!important;
  }
}

@media (max-width:640px){
  html.gifo-public .classif-bar,
  html.gifo-public .classif{
    min-height:37px!important;
    padding:8px 8px 7px!important;
    font-size:clamp(7px,2.05vw,9px)!important;
    letter-spacing:clamp(.55px,.28vw,1.35px)!important;
  }

  html.gifo-public .gifo-page-index{
    width:calc(100% - 24px);
    margin:16px auto 26px;
    padding:14px;
  }

  html.gifo-public .gifo-page-index-links{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  html.gifo-public .gifo-page-index a{
    justify-content:center;
    min-width:0;
    text-align:center;
  }

  html.page-vigiforensic .sector-tabs{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  html.page-vigiforensic .sector-tabs .tab-list{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    width:100%;
  }

  html.page-vigiforensic .sector-tabs .tab-button{
    display:grid!important;
    place-items:center;
    align-content:center;
    gap:5px;
    width:100%!important;
    min-width:0!important;
    min-height:62px;
    padding:10px 8px!important;
    white-space:normal!important;
    text-align:center!important;
  }

  html.page-vigiforensic .sector-tabs .tab-button small{
    display:block;
    white-space:normal;
    text-align:center;
  }

  html.page-vigiforensic .sector-panel{
    padding:19px!important;
  }

  html.page-vigiforensic .sector-panel-head{
    flex-direction:column;
  }

  html.page-vigiforensic .sector-tools{
    grid-template-columns:1fr!important;
  }
}

@media (max-width:390px){
  html.gifo-public .classif-bar,
  html.gifo-public .classif{
    font-size:7px!important;
    letter-spacing:.55px!important;
  }
}

@media (max-width:360px){
  html.gifo-public .gifo-page-index-links{
    grid-template-columns:1fr;
  }
}

@media (prefers-reduced-motion:reduce){
  html.gifo-public .classif-bar,
  html.gifo-public .classif{scroll-behavior:auto!important}
  html.gifo-public #gifo-back-to-top{transition:none}
}
