html, body {
  height: 100%;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
}

main {
  flex: 1 0 auto;
}

footer {
  background-color: #7a42a0;
  color: white;
  text-align: center;
  padding: 10px 0;
  margin-top: auto;
}

.navbar-logo {
  max-width: 100px;
}

.material-symbols-outlined {
  color: white;
}

.btn-primary {
  background-color: #7a42a0 !important;
  border-color: #7a42a0 !important;
  color: white !important;
}

.btn-primary:hover {
  background-color: #572479 !important;
  border-color: #572479 !important;
  color: white !important;
  text-decoration: none !important;
}

.btn-secondary {
  background-color: #b637b9 !important;
  border-color: #b637b9 !important;
  color: white !important;
}

.btn-secondary:hover {
  background-color: #972799 !important;
  border-color: #972799 !important;
  color: white !important;
  text-decoration: none !important;
}

.btn-outline-primary {
  color: #7a42a0 !important;
  border-color: #7a42a0 !important;
  background-color: transparent;
  transition: all 0.3s ease;
}
.btn-outline-primary .material-symbols-outlined{
  color: #7a42a0 !important;
  border-color: #7a42a0 !important;
  background-color: transparent;
  transition: all 0.3s ease;
}
.btn-outline-primary:hover {
  background-color: #7a42a0 !important;
}
.btn-outline-primary:hover .material-symbols-outlined {
  color: white !important;
}
.btn-light {
  color: #972799!important;
  border-color: #972799 !important;
  background-color: transparent;
  transition: all 0.3s ease;
}
.btn-light .material-symbols-outlined{
  color: #972799!important;
  border-color: #972799 !important;
  background-color: transparent;
  transition: all 0.3s ease;
}

.btn-light:hover {
  background-color: #972799 !important;
}
.btn-light:hover .material-symbols-outlined{
  color: white !important;
}

.btn-extra {
  background-color: #f8f9fa !important;
  border: 1px solid #e9ecef !important;
  color: #7a42a0 !important;
}

/* Quando passa o mouse no botão de Site: Fundo Cinza Escuro */
.btn-extra:hover {
  background-color: #e2e6ea !important;
  border-color: #dae0e5 !important;
}

/* 4. Ajuste para o card subir suavemente (Se já não tiver) */
.hover-lift {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.hover-lift:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0,0,0,0.1) !important;
}

.bg-primary {
  background-color: #7a42a0 !important;
}

.text-primary {
  color: #7a42a0 !important;
}
.text-white {
  color: white !important;
}

.text-secondary {
  color: #b637b9 !important;
}

a {
  color: #7a42a0 !important;
}

a:hover {
  color: #572479 !important;
  text-decoration: underline;
}

.navbar a {
  color: #212529 !important;
}

.navbar a:hover {
  color: #7a42a0 !important;
  text-decoration: none;
}

.nav-pills {
  --bs-nav-pills-link-active-bg: #7a42a0;
}

.nav-link {
  color: #7a42a0;
}

.nav-link:hover {
  color: #7a42a0;
}

ol li::marker {
  color: #7a42a0;
  font-weight: bold;
}

.accordion-button:focus {
  box-shadow: none;
}

.accordion-button:not(.collapsed) {
  background-color: #7a42a0;
  color: white;
}

.accordion-button.collapsed {
  background-color: #f8f9fa;
  color: #121212;
}
/* Micro-interação: o card sobe levemente */
.hover-lift {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover {
  transform: translateY(-5px);
  box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important;
}

/* Card de destaque para números (Carga Horária) */
.stat-card {
  background-color: #fff;
  border: 1px solid #e9ecef;
  border-radius: 12px;
  padding: 1.5rem;
  text-align: center;
  height: 100%;
}

.stat-card h3 {
  color: #7a42a0; /* Cor primária */
  font-weight: 800;
  margin-bottom: 0.5rem;
}

.stat-card span {
  font-size: 0.9rem;
  color: #6c757d;
  font-weight: 600;
  text-transform: uppercase;
}

/* Estilo para a caixa de Objetivo (Callout) */
.objective-box {
  border-left: 5px solid #7a42a0; /* Borda grossa na cor da marca */
  background-color: #f8f9fa; /* Fundo leve */
  border-radius: 0 8px 8px 0;
}
/* Box para os ícones dos cards */
.icon-square {
  width: 50px;
  height: 50px;
  background-color: rgba(122, 66, 160, 0.1); /* Roxo da marca com transparência */
  color: #7a42a0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  margin-bottom: 1rem;
  transition: background-color 0.3s ease;
}

/* Quando passar o mouse no card, o ícone fica mais forte */
.hover-lift:hover .icon-square {
  background-color: #7a42a0;
  color: white;
}

/* Ajuste fino para títulos de cards */
.card-title-custom {
  font-size: 1.1rem;
  font-weight: 700;
  color: #212529;
}


/* Home buttons alignment fix */
.home-nav-group {
  margin-bottom: 0 !important;
}
.home-btns {
  margin-bottom: 0 !important;
}
.home-secondary-buttons,
.home-secondary-buttons .d-flex {
  margin-top: 0 !important;
  gap: 0.5rem; /* keep horizontal spacing only */
}


/* Home buttons visual adjustments */
.home-nav .btn {
  border-radius: 6px;
}

/* Secondary buttons: white with purple border */
.home-nav .btn.btn-primary:nth-child(n+5) {
  background-color: #fff;
  color: #6f2da8;
  border: 1px solid #6f2da8;
}

/* Materiais de Apoio + FAQ + Canais */
.home-nav .btn-secondary {
  background-color: #e83e8c;
  border-color: #e83e8c;
  color: #fff;
}


/* Compact home buttons */
.home-nav .btn {
  border-radius: 6px;
  padding: 0.45rem 0.75rem;
  font-weight: 500;
}

/* Main buttons */
.btn-home-main {
  background-color: #5a2d82;
  border-color: #5a2d82;
  color: #fff;
}

/* Mid-level buttons: dark purple / pink-orange mix */
.btn-home-mid {
  background-color: #fff;
  border: 1px solid #7a1fa2;
  color: #7a1fa2;
}

.btn-home-mid:hover {
  background: linear-gradient(135deg, #7a1fa2, #ff8a00);
  color: #fff;
  border-color: transparent;
}

/* Support buttons */
.btn-home-support {
  background-color: #e83e8c;
  border-color: #e83e8c;
  color: #fff;
}


/* Frames de Publicações */
.frame-publicacao {
  background: #ffffff;
  border-radius: 12px;
}

.frame-publicacao h2 {
  color: #5a2d82;
}

.frame-publicacao ul {
  padding-left: 1.1rem;
}

.frame-publicacao img {
  object-fit: cover;
}


/* Publications frames */
.pub-frame{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
}

.pub-frame__head{
  padding: 1.15rem 1.15rem 0.9rem 1.15rem;
  border-bottom: 1px solid rgba(0,0,0,.06);
}

.pub-frame__kicker{
  font-size: .9rem;
  opacity: .85;
}

.pub-frame__body{
  padding: 1rem 1.15rem 0.25rem 1.15rem;
}

.pub-frame__media{
  padding: 0.75rem 1.15rem 1.15rem 1.15rem;
}

.pub-frame--periodicos .pub-frame__head{
  background: linear-gradient(135deg, rgba(122,31,162,.12), rgba(90,45,130,.06));
}

.pub-frame--plataforma .pub-frame__head{
  background: linear-gradient(135deg, rgba(255,138,0,.10), rgba(232,62,140,.10));
}

.pub-frame .btn{
  border-radius: 10px;
}


/* Feature chips */
.feature-chip{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  padding: .9rem .9rem;
  background: #fff;
  height: 100%;
}
.feature-chip__title{
  font-weight: 700;
  margin-bottom: .2rem;
}
.feature-chip__text{
  color: rgba(0,0,0,.65);
  margin: 0;
  font-size: .95rem;
}


/* Override dark button effects */
.btn-outline-dark, .btn-dark {
  background-color: #fff !important;
  border-color: #ccc !important;
  color: #6f2da8 !important;
}
.btn-outline-dark:hover, .btn-dark:hover {
  background-color: #f7f2fb !important;
}


/* Materiais: frames */
.info-frame{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
}
.info-frame__head{
  padding: 1.05rem 1.05rem 0.9rem 1.05rem;
  border-bottom: 1px solid rgba(0,0,0,.06);
  background: linear-gradient(135deg, rgba(122,31,162,.10), rgba(232,62,140,.08));
}
.info-frame__body{
  padding: 1rem 1.05rem 1.05rem 1.05rem;
}

/* Purple outline button (no black hover) */
.btn-outline-purple{
  background: #fff;
  border: 1px solid #7a1fa2;
  color: #7a1fa2;
}
.btn-outline-purple:hover,
.btn-outline-purple:focus{
  background: rgba(122,31,162,.08);
  border-color: #7a1fa2;
  color: #7a1fa2;
}

/* Avoid black hover from bootstrap outline-dark inside the kit */
.btn-outline-dark:hover,
.btn-outline-dark:focus{
  background: rgba(0,0,0,.06) !important;
  border-color: rgba(0,0,0,.25) !important;
  color: inherit !important;
  box-shadow: none !important;
}


/* Stricto: maximize figure visibility */
.stricto-hero-media .pub-frame__media{
  padding: 0.75rem 1.05rem 0 1.05rem;
}
.stricto-areas-img{
  width: 100%;
  height: auto;
}
@media (min-width: 992px){
  .stricto-hero-media .pub-frame__media{
    padding: 1rem 1.25rem 0 1.25rem;
  }
}


/* Remove hyperlink visual from home buttons */
.home-nav a,
.home-nav a:hover,
.home-nav a:focus,
.home-nav a:active {
  text-decoration: none !important;
  box-shadow: none !important;
}


/* FAQ accordion readability on primary background */




/* FAQ – estilo padrão com destaque apenas no item aberto */












/* Override Bootstrap toggler default visuals */



/* FAQ styles (versão 39) */
*/
.home-nav a,
.home-nav a:hover,
.home-nav a:focus,
.home-nav a:active {
  text-decoration: none !important;
  box-shadow: none !important;
}


/* FAQ accordion readability on primary background */


/* Back button near menu */
.btn-back{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 6px;
}


/* FAQ – estilo padrão com destaque apenas no item aberto */






/* Header actions (Home + Menu) — padrão do kit de referência */
.nav-actions{
  display:flex;
  align-items:center;
  gap:.5rem;
}

.nav-icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border-radius:6px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  color: rgba(0,0,0,.55);
  padding:0;
  text-decoration:none !important;
  box-shadow:none !important;
}

.nav-icon-btn--home{
  border-color: transparent;
  background:#7a3fa0;
 


/* FAQ styles (mantido igual ao v37) */
.home-nav a,
.home-nav a:hover,
.home-nav a:focus,
.home-nav a:active {
  text-decoration: none !important;
  box-shadow: none !important;
}


/* FAQ accordion readability on primary background */
#faqAccordion .accordion-item{
  background: transparent;
  border: 0;
}
#faqAccordion .accordion-button{
  background: #ffffff;
  border-radius: 6px;
  margin: 0 1rem 0.75rem 1rem;
  font-weight: 600;
}
#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 6px;
  margin: -0.5rem 1rem 0.75rem 1rem;
}
#faqAccordion .accordion-button:not(.collapsed){
  box-shadow: none;
}


/* Back button near menu */
.btn-back{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 6px;
}


/* FAQ – visual style like reference (only active item highlighted) */
#faqAccordion .accordion-item{
  background: transparent;
  border: 0;
}

#faqAccordion .accordion-button{
  background: #ffffff;
  border-radius: 6px;
  margin: 0 0 0.75rem 0;
  font-weight: 600;
  border: 1px solid rgba(0,0,0,.08);
}

#faqAccordion .accordion-button::after{
  filter: grayscale(1);
}

#faqAccordion .accordion-button:not(.collapsed){
  background: #7a1fa2; /* roxo institucional */
  color: #ffffff;
  box-shadow: none;
}

#faqAccordion .accordion-button:not(.collapsed)::after{
  filter: invert(1);
}

#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 0 0 6px 6px;
  margin: -0.5rem 0 0.75rem 0;
  border: 1px solid rgba(0,0,0,.08);
  border-top: 0;
}
  text-decoration: none !important;
  box-shadow: none !important;
}


/* FAQ accordion readability on primary background */
#faqAccordion .accordion-item{
  background: transparent;
  border: 0;
}
#faqAccordion .accordion-button{
  background: #ffffff;
  border-radius: 6px;
  margin: 0 1rem 0.75rem 1rem;
  font-weight: 600;
}
#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 6px;
  margin: -0.5rem 1rem 0.75rem 1rem;
}
#faqAccordion .accordion-button:not(.collapsed){
  box-shadow: none;
}


/* Back button near menu */
.btn-back{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 6px;
}


/* FAQ – visual style like reference (only active item highlighted) */
#faqAccordion .accordion-item{
  background: transparent;
  border: 0;
}

#faqAccordion .accordion-button{
  background: #ffffff;
  border-radius: 6px;
  margin: 0 0 0.75rem 0;
  font-weight: 600;
  border: 1px solid rgba(0,0,0,.08);
}

#faqAccordion .accordion-button::after{
  filter: grayscale(1);
}

#faqAccordion .accordion-button:not(.collapsed){
  background: #7a1fa2; /* roxo institucional */
  color: #ffffff;
  box-shadow: none;
}

#faqAccordion .accordion-button:not(.collapsed)::after{
  filter: invert(1);
}

#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 0 0 6px 6px;
  margin: -0.5rem 0 0.75rem 0;
  border: 1px solid rgba(0,0,0,.08);
  border-top: 0;
}
#faqAccordion .accordion-item{
  background: transparent;
  border: 0;
}
#faqAccordion .accordion-button{
  background: #ffffff;
  border-radius: 6px;
  margin: 0 1rem 0.75rem 1rem;
  font-weight: 600;
}
#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 6px;
  margin: -0.5rem 1rem 0.75rem 1rem;
}
#faqAccordion .accordion-button:not(.collapsed){
  box-shadow: none;
}


/* Back button near menu */
.btn-back{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 6px;
}


/* FAQ – visual style like reference (only active item highlighted) */
#faqAccordion .accordion-item{
  background: transparent;
  border: 0;
}

#faqAccordion .accordion-button{
  background: #ffffff;
  border-radius: 6px;
  margin: 0 0 0.75rem 0;
  font-weight: 600;
  border: 1px solid rgba(0,0,0,.08);
}

#faqAccordion .accordion-button::after{
  filter: grayscale(1);
}

#faqAccordion .accordion-button:not(.collapsed){
  background: #7a1fa2; /* roxo institucional */
  color: #ffffff;
  box-shadow: none;
}

#faqAccordion .accordion-button:not(.collapsed)::after{
  filter: invert(1);
}

#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 0 0 6px 6px;
  margin: -0.5rem 0 0.75rem 0;
  border: 1px solid rgba(0,0,0,.08);
  border-top: 0;
}
  background: #ffffff;
  border-radius: 6px;
  margin: 0 1rem 0.75rem 1rem;
  font-weight: 600;
}
#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 6px;
  margin: -0.5rem 1rem 0.75rem 1rem;
}
#faqAccordion .accordion-button:not(.collapsed){
  box-shadow: none;
}


/* Back button near menu */
.btn-back{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 6px;
}


/* FAQ – visual style like reference (only active item highlighted) */
#faqAccordion .accordion-item{
  background: transparent;
  border: 0;
}

#faqAccordion .accordion-button{
  background: #ffffff;
  border-radius: 6px;
  margin: 0 0 0.75rem 0;
  font-weight: 600;
  border: 1px solid rgba(0,0,0,.08);
}

#faqAccordion .accordion-button::after{
  filter: grayscale(1);
}

#faqAccordion .accordion-button:not(.collapsed){
  background: #7a1fa2; /* roxo institucional */
  color: #ffffff;
  box-shadow: none;
}

#faqAccordion .accordion-button:not(.collapsed)::after{
  filter: invert(1);
}

#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 0 0 6px 6px;
  margin: -0.5rem 0 0.75rem 0;
  border: 1px solid rgba(0,0,0,.08);
  border-top: 0;
}
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 6px;
}


/* FAQ – visual style like reference (only active item highlighted) */
#faqAccordion .accordion-item{
  background: transparent;
  border: 0;
}

#faqAccordion .accordion-button{
  background: #ffffff;
  border-radius: 6px;
  margin: 0 0 0.75rem 0;
  font-weight: 600;
  border: 1px solid rgba(0,0,0,.08);
}

#faqAccordion .accordion-button::after{
  filter: grayscale(1);
}

#faqAccordion .accordion-button:not(.collapsed){
  background: #7a1fa2; /* roxo institucional */
  color: #ffffff;
  box-shadow: none;
}

#faqAccordion .accordion-button:not(.collapsed)::after{
  filter: invert(1);
}

#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 0 0 6px 6px;
  margin: -0.5rem 0 0.75rem 0;
  border: 1px solid rgba(0,0,0,.08);
  border-top: 0;
}
  border-radius: 6px;
}


/* FAQ – visual style like reference (only active item highlighted) */
#faqAccordion .accordion-item{
  background: transparent;
  border: 0;
}

#faqAccordion .accordion-button{
  background: #ffffff;
  border-radius: 6px;
  margin: 0 0 0.75rem 0;
  font-weight: 600;
  border: 1px solid rgba(0,0,0,.08);
}

#faqAccordion .accordion-button::after{
  filter: grayscale(1);
}

#faqAccordion .accordion-button:not(.collapsed){
  background: #7a1fa2; /* roxo institucional */
  color: #ffffff;
  box-shadow: none;
}

#faqAccordion .accordion-button:not(.collapsed)::after{
  filter: invert(1);
}

#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 0 0 6px 6px;
  margin: -0.5rem 0 0.75rem 0;
  border: 1px solid rgba(0,0,0,.08);
  border-top: 0;
}
}

#faqAccordion .accordion-button{
  background: #ffffff;
  border-radius: 6px;
  margin: 0 0 0.75rem 0;
  font-weight: 600;
  border: 1px solid rgba(0,0,0,.08);
}

#faqAccordion .accordion-button::after{
  filter: grayscale(1);
}

#faqAccordion .accordion-button:not(.collapsed){
  background: #7a1fa2; /* roxo institucional */
  color: #ffffff;
  box-shadow: none;
}

#faqAccordion .accordion-button:not(.collapsed)::after{
  filter: invert(1);
}

#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 0 0 6px 6px;
  margin: -0.5rem 0 0.75rem 0;
  border: 1px solid rgba(0,0,0,.08);
  border-top: 0;
}
  border-radius: 6px;
  margin: 0 0 0.75rem 0;
  font-weight: 600;
  border: 1px solid rgba(0,0,0,.08);
}

#faqAccordion .accordion-button::after{
  filter: grayscale(1);
}

#faqAccordion .accordion-button:not(.collapsed){
  background: #7a1fa2; /* roxo institucional */
  color: #ffffff;
  box-shadow: none;
}

#faqAccordion .accordion-button:not(.collapsed)::after{
  filter: invert(1);
}

#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 0 0 6px 6px;
  margin: -0.5rem 0 0.75rem 0;
  border: 1px solid rgba(0,0,0,.08);
  border-top: 0;
}
#faqAccordion .accordion-button::after{
  filter: grayscale(1);
}

#faqAccordion .accordion-button:not(.collapsed){
  background: #7a1fa2; /* roxo institucional */
  color: #ffffff;
  box-shadow: none;
}

#faqAccordion .accordion-button:not(.collapsed)::after{
  filter: invert(1);
}

#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 0 0 6px 6px;
  margin: -0.5rem 0 0.75rem 0;
  border: 1px solid rgba(0,0,0,.08);
  border-top: 0;
}
#faqAccordion .accordion-button:not(.collapsed){
  background: #7a1fa2; /* roxo institucional */
  color: #ffffff;
  box-shadow: none;
}

#faqAccordion .accordion-button:not(.collapsed)::after{
  filter: invert(1);
}

#faqAccordion .accordion-body{
  background: #ffffff;
  border-radius: 0 0 6px 6px;
  margin: -0.5rem 0 0.75rem 0;
  border: 1px solid rgba(0,0,0,.08);
  border-top: 0;
}
