/* =========================================================
   VariÃ¡veis & Base
========================================================= */
:root {
  --primary-blue: #0B4A7A;
  --nav-blue: #2c5f7e;
  --sub-nav-blue: #3F82B5;
  --secondary-blue: #0f63a3;
  --other-blue: #6DA8D6;
  
   --gray-light:#B2B2B2;
  
  --gray-blue:#818697;


  --dark-blue: #083252;
  --text-color: #7d7d7d;
  --text-color: #50586b;
}

body {
  font-family: 'Roboto', sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: var(--text-color);
}

.breadcrumb{
  font-family: 'Roboto', sans-serif; /* fix: Roboto */
  
  font-size: 12px;
  color:#0f63a3 ;
}
.breadcrumb a{
  color:#0f63a3 ;
  text-decoration: none;
}

.breadcrumb-item.active {
    font-weight: 500;
    color: var(--secondary-blue);
}

/* =========================================================
   TÃ­tulos
========================================================= */

h1{
	font-family: 'Robot', sans-serif;
  font-weight: 600;
  font-size: 50px;
  color: var(--secondary-blue);
	
	}


.section{ 
 font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 40px;
  color: var(--primary-blue);
}

.section.invert{
  color:#f8f9fa
}

h2 {

  font-weight: 600;
  font-size: 40px;
  color: var(--other-blue);
}

h2.invert{
  color:#f8f9fa
}


h3 {
  font-weight: 600;
  font-size: 30px;
  color: var(--other-blue);
}

h4 {
  font-weight: 400;
  font-size: 16px;
  margin-bottom: 0.3rem;
  color: var(--other-blue);
}

.h5, h5 {
    font-size: 25px;
    font-weight: 600;
    color: var(--primary-blue);
}

h6 {
  font-family: 'Roboto', sans-serif; /* fix: Roboto */
  font-weight: 600;
  font-size: 20px;
}

/* =========================================================
   Header / NavegaÃ§Ã£o
========================================================= */
.navbar {
  background-color: var(--primary-blue) !important;
  /*padding: 1rem 0;*/
  min-height: 122px;
  height: auto;
}

.navbar-brand {
  color: #fff !important;
  font-weight: bold;
  display: flex;
  align-items: center;
}

.navbar-brand img {
  width: 58px;
  margin-right: 10px;
}

.navbar-toggler{
	padding:5px;
	
}
	
.logo-text {
    /* display: flex; */
    flex-direction: column;
    line-height: 1.1;
    /* margin-right: 23px; */
    justify-content: flex-end;
    top: 7px;
    position: relative;
}

.logo-subtitle {
  font-size: 0.9rem;
  font-weight: normal;
  opacity: 0.9;
}

.logo-title {
  font-size: 1.8rem;
  font-weight: 400;
  letter-spacing: 2px;
}

/* Nav links (merge das duas declaraÃ§Ãµes para manter o efeito atual) */
.navbar-nav .nav-link {
  font-weight: 500;               /* prevalecia na 2Âª regra */
  font-size: 16px;
  color: #ffffff !important;
  margin: 0 0.8rem;
  position: relative;
  transition: all 0.3s ease;
}

.navbar-nav .nav-link:hover {
  color: #f0f8ff !important;
  transform: translateY(-1px);
}

.navbar-nav .nav-link.active
 {
    color: var(--other-blue) !important;
}

.navbar-nav .dropdown-menu {
  background-color: var(--nav-blue);
  background-color:var(--primary-blue) !important;
  border: none;
  border: 1px solid #003;
  margin-top: 0;
}

.navbar-nav .dropdown-item {
  color: #ffffff !important;
  transition: all 0.3s ease;
  padding: 0.5rem 1rem;
}

.navbar-nav .dropdown-item:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

.btn-inscricoes {
  background-color: #fff !important;
  color: var(--primary-blue) !important;
  border: 2px solid #fff;
  font-weight: bold;
  padding: 8px 10px;
  border-radius: 5px;
  transition: all 0.3s ease;
}

.btn-inscricoes:hover {
  background-color: transparent !important;
  color: #fff !important;
  border-color: #fff;
}



/* Submenu "Sobre Nós" */
.submenu {
  background-color: var(--sub-nav-blue);
}

.sobre-nav {
  display: flex;
  flex-wrap: wrap;
}

.sobre-nav .nav-link {
  color: #ffffff;
  font-weight: 400;
  font-size: 14px;
  padding: 12px 18px;
  /*border-radius: 0;
  border-bottom: 3px solid transparent;*/
}

.sobre-nav .nav-link:hover {
  color: #f1f1f1;;
  
}

.sobre-nav .nav-link.active {
  
}
.sobre-nav .nav-link.active {
    
    background-color: var(--secondary-blue);
    font-weight: 800;
}


/* =========================================================
   text
========================================================= */


.sub-text{
	font-weight:500;
	font-size:24px;
	/*color:#B2B2B2;
	color: rgb(129, 134, 151); */
	color:var(--gray-blue);
    line-height: 29px;
}
	
.file-title{
	font-size:16px;
	font-weight:500;
	color: var(--sub-nav-blue);
	
}
	
.file-data{
	font-size:12px;
	font-weight:500;
	color: var(--gray-light);
	
}


/* =========================================================
   Hero
========================================================= */
.hero-section {
  position: relative;
  height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;

  /* a imagem vem do HTML (style="background-image: ...") */
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

/* overlay para escurecer APENAS a imagem */
.hero-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.10); /* escurece a imagem (ajusta 0.45 a gosto) */
  z-index: 1;
}

.hero-content {
  position: relative;  /* importante para ficar acima do overlay */
  text-align: center;
  color: #fff;
  z-index: 2;
}

.hero-title {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 50px;
  margin-bottom: 2rem;
  line-height: 1.2;
}

.btn-aceder {
  background-color: #fff;
  color: var(--primary-blue);
  border: none;
  padding: 15px 40px;
  font-size: 1.4rem;
  font-weight: bold;
  border-radius: 10px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

.btn-aceder:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 25px rgba(0,0,0,0.3);
  background-color: #f0f8ff;
}

/* =========================================================
   Carrossel
========================================================= */
.carousel-control-prev,
.carousel-control-next {
  width: 5%;
  opacity: 0.7;
  transition: opacity 0.3s ease;
}

.carousel-control-prev:hover,
.carousel-control-next:hover {
  opacity: 1;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  background-size: 30px 30px;
}

.carousel-indicators {
  bottom: 30px;
}

.carousel-indicators [data-bs-target] {
   
    width: 20px;
    height: 20px;
    margin-left: 10px;
    margin-right: 10px;
}


.carousel-indicators button {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  margin: 0 8px;
  background-color: rgba(255, 255, 255, 0.5);
  border: 2px solid rgba(255, 255, 255, 0.8);
}

.carousel-indicators button.active {
  background-color: #fff;
}

/* =========================================================
   Cards (Noticias)
========================================================= */
.card-body {
  font-family: 'Inter', sans-serif;
}

.card-title {
  font-weight: 600;
  font-size: 20px;
  color: var(--dark-blue);
  margin-bottom: 3px;
}

.card-date {
    font-weight: 400;
    font-size: 12px;
    color: #7d7d7d;
}
.card-text {
  font-weight: 400;
  font-size: 12px;
  color: #7d7d7d;
}


.card .txt-de-gestao{
	position:relative;
	top:-10px
}

/* =========================================================
   Apoios - cartões com faixa azul sobre a imagem
======================================================== */
.support-card {
  position: relative;
  overflow: hidden;
  height: 324px;
  

}

/* A imagem ocupa todo o cartão */
.support-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;        /* mantém o recorte proporcional */
  object-position: center;  /* centra a imagem */
}


/* Faixa azul por cima da imagem, em baixo */
.support-banner {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;

  background-color: #0f63a3ed;      /* ou var(--primary-blue) */
  color: #ffffff;
  text-align: center;
  padding: 12px 16px;

  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.5px;

  z-index: 2;
}

/* Toda a área é clicável */
.support-link {
  position: absolute;
  inset: 0;
  z-index: 3;
}

/* =========================================================
   Novidades - catões
========================================================= */

.support-card2 {
  position: relative;
  overflow: hidden;
  height: 405px;
  

}

/* A imagem ocupa todo o cartão */
.support-card2 img {
  width: 100%;
  height: 270px;
  display: block;
  object-fit: cover;        /* mantém o recorte proporcional */
  object-position: center;  /* centra a imagem */
}

.news-read-more {
    display: inline-block;
    /* margin-top: 0.75rem; */
    /* font-family: 'Inter', sans-serif; */
    font-weight: 400;
    font-size: 13px;
    color: var(--primary-blue);
    text-decoration: none;
    bottom: -16px;
}

.news-read-more:hover {
  text-decoration: none;
  color: var(--dark-blue);              /* ligeiramente mais escuro no hover (opcional) */
}

.file-link {
    display: inline-block;
    /* margin-top: 0.75rem; */
    /* font-family: 'Inter', sans-serif; */
    font-weight: 600;
    
    color: var(--other-blue);
    text-decoration: none;
    bottom: -16px;
}

.file-link:hover {
  text-decoration: none;
  color: var(--dark-blue);             /* ligeiramente mais escuro no hover (opcional) */
}

/* =========================================================
   Footer
========================================================= */
footer li {
 
  font-weight: 300;                  /* light */
  font-size: 15px;
  margin-bottom: 10px;
}
.reclamacoes-logo {
    max-width: 207px;
    margin-top: 10px;
}


/**********************************/




#barra_admin.admin-bar{
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 9999;

  display: inline-flex;
  align-items: center;
  gap: 10px;

  padding: 8px 12px;
  font-size: 13px;
  line-height: 1;

  color: #0f172a;                 /* texto */
  background: rgba(241, 245, 249, 0.78);  /* “lightgray” profissional + opacidade */
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 12px;

  box-shadow: 0 6px 20px rgba(0,0,0,0.12);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);

  opacity: 0.58;
  transition: opacity .18s ease, transform .18s ease, box-shadow .18s ease, background .18s ease;
}

#barra_admin.admin-bar:hover{
  opacity: 1;
  background: rgba(241, 245, 249, 0.95);
  box-shadow: 0 10px 28px rgba(0,0,0,0.16);
  transform: translateY(-1px);
}

.admin-bar__label{
  font-weight: 400;
  color: #0b4a7a; /* combina com o teu azul do site */
}

.admin-bar__sep{
  opacity: .5;
}

.admin-bar__user{
  opacity: .75;
}

.admin-bar__link{
  color: #0b4a7a;
  text-decoration: none;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 8px;
  transition: background .15s ease, color .15s ease;
}

.admin-bar__link:hover{
  background: rgba(11, 74, 122, 0.10);
  color: #083252;
  text-decoration: none;
}


/**********************/


/* =========================================================
   Responsivo
========================================================= */
@media (max-width: 768px) {
  .hero-title { font-size: 2.5rem; }
  .navbar-nav { text-align: center; margin-top: 1rem; }
  .btn-inscricoes { margin-top: 1rem; }
}

@media (max-width: 576px) {
  .hero-title { font-size: 2rem; }
  .logo-title { font-size: 1.5rem; }
}
