//**
 * @file
 * Use this CSS file to override theme CSS rules
 */


/*---------- Ajustes gerais da página - Limpar os espaços------*/

.path-frontpage .page {
    padding: 0px;
}

.page {
padding: 0px;
}

.main-content {
    padding: 0px;
}

.header-inside {
    padding: 2px 0px 8px 0px;
    position: relative;
}

.block {
    padding: 0px 0px 0px 0px;
}

ul.links li a {
    text-align: left;
    white-space:nowrap;
}


.search-area:hover input.form-search, .search-area input.form-search:focus {
    width: 450px;
    background-color: #eef7ff;
    color: #000;
}

.block-search .form-actions:after {
    color: #455ED4;
}

input.form-text, input.form-tel, input.form-email, input.form-url, input.form-search, input.form-file, input.form-number, input.form-color, textarea.form-textarea, textarea, select.form-select, select {
    background: #eef7ff;
    color: #454545;
}

.file--application-pdf {
    background-image: none;
}

.field--entity-reference-target-type-taxonomy-term .field__items > li a {
   /* color: #000000;*/
    padding: 0px;
    line-height: 1.5;
    background-color: transparent;
    -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
    border-radius: 2px;
    display: inline-block;
    margin: 2px 0px 0px 0px;
    font-size: 16px;
    text-transform: none;
    min-width: 0;
}

.field--entity-reference-target-type-taxonomy-term {
    display: block;
    overflow: hidden;
    position: relative;
    font-size: 0;
    margin: 0px 0px 0px 0px;
}

.field--label-inline, .field--label-inline > H3{
    font-size: 16px;
    margin-bottom: 0px;
}

/*.field__item, .field__items > H3{
    font-size: 16px;
}*/


.ds-2col-stacked > .group-right {
    float: right;
}

/* dar cor à barra de menu */
.header-container {
  background-color: #eee;
}

/* dar cor à barra de menu */
.onscroll .header {
  background-color: #eee;
}


.header-container ul.menu {
    margin: 0px;
    padding: 20px 0px 0px 50px;
    list-style: none;
    text-align: center;
    color: #2a68af;
}

.header-container ul.menu li a {
    text-transform: none;
    color: #2a68af;
    font-size: 16px;
    text-decoration: none;
    font-weight: 500;
}
.header-container ul.menu li{
    text-transform: none;
    font-size: 16px;
    font-weight: 500;
    color: #2a68af;
}

.header-inside-first {
    padding: 0px;
}


ul.menu li a.is-active, ul.menu li.menu-item--active-trail a {
  border-bottom: 1px solid #2a68af;
  color: #2a68af;
}

ul.menu a.is-active {
border-bottom: 1px solid #2a68af;
color: #2a68af;
}

.header-container ul.menu li a:hover,
.header-container nav>ul.menu>li.menu-item--active-trail>a:hover {
    background-color: #2a68af;
    border-bottom: 1px solid #2a68af;
    color: #ffffff;
}

a.sf-depth-1{
  color: #2a68af;
  text-decoration: none;
}

a.sf-depth-1:hover{
  color: #2a68af;
  background-color: #eeeeee;
}

a.sf-depth-1:active{
  color: #2a68af;
  background-color: #eeeeee;
}


a.sf-depth-2{
    
  color: #2a68af;
  background-color: #eeeeee;
}

a.sf-depth-2:hover{
    
  color: #2a68af;
  background-color: #eeeeee;
}

a.sf-depth-2 .nolink {
background-color: #eeeeee;
}


ul.sf-menu a, ul.sf-menu span.nolink {
 
    padding: 0.55em 1.5em;
}

.header-container ul.menu li span.nolink {
   border: 1px solid #2a68af;
}

.header-container ul.menu li a {
    border: 1px solid #2a68af;
    background-color: #ffffff;
    
}




span.nolink {
    background-color: #ffffff;
}

.images-container {
    margin-bottom: 0px;
}

.rodape {
    color: #000000;
    font-size: 13px;
    text-decoration: none;
}

a.rodape:hover {
    text-decoration: none;
}



.h-100 {
    height: 100%;
}

.card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-color: #fff;
    background-clip: border-box;
    border-color: #bfc9ca;
    border-radius: 6px;
    border-width: 1px;
    box-shadow: 0 2px 4px 0 rgba(0,0,0,.3);
    height: 475px;
    }

.card:hover {
    box-shadow: 1px 3px 5px 3px #ed8579;
}

.card-footer {
    height: 27px;
    background-color: #eeeeee;
    padding: 0rem 1rem;
}

.image-style-card-img-top {
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
    width: 100%;
    height: 10vw;
    object-fit: cover;
    vertical-align: middle;
}

.card-body {
    height: 185px;
    color: #000000;
    border-top: 3px solid #ed8579;
}

.card-link {
    border-radius: 6px;
    border-width: 1px;
    bottom: 0;
    left: 0;
    position: absolute;
    right: 0;
    text-decoration: none;
    top: 0;
    color: #000000;
}

.card-nivel {
    text-decoration: none;
    text-transform: capitalize;
    font-weight: normal;
    font-size: 10px;
    line-height: 1.5;
}

.card-title {
    height: 61px;
    font-size: 80%;
    margin-bottom: 0.8rem;
    margin-top: 17px;
    font-weight: 600;
    line-height: 1.2;
}

.image-style-imagem-areas-pag-inicial:hover {
  background-color: #dd8b59;  
}

.image-style-icon-cards-areas {
    position: relative;
    position: relative;
    left: 15px;
    top: -55px;
    width: 65px;
    height: 60px;
}

.imagemarea {
   height: 0px; 
}

/** cards dos cursos**/


.cardC {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-color: #fff;
    background-clip: border-box;
    border-color: #315887;
    border-radius: 6px;
    border-width: 1px;
    box-shadow: 0 2px 4px 0 rgba(0,0,0,.3);
    height: 475px;
    }

.cardC:hover {
    box-shadow: 1px 3px 5px 3px #315887;
}

.image-style-imagem-areas-pag-inicialC:hover {
  background-color: #587BE1;  
}

.card-bodyC {
    height: 185px;
    color: #000000;
    border-top: 3px solid #315887;
}

/** cards dos cursos**/

.btn-primary {
    color: #fff;
    background-color: #587BE1;
    border-color: #587BE1;
}

.fa {
    color: #FCCD43;
}


.block-search form {
    position: relative;
    width: 300px;
    margin: auto;
}

.block-search input.form-search {
    padding: 11px 11px;
}

.videos {
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 30px;
    height: 0;
    overflow: hidden;
}
 
.video-container iframe,
.video-container object,
.video-container embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.fonte {
    text-decoration: none;
    font-weight: normal;
    font-size: 15px !important;
   /* font-style: italic;*/
}

blockquote {
    font-size: 20px;
    font-style: italic;
    padding: 0 0 0 140px;
    border-left: none;
    position: relative;
    margin: 20px 0 20px;
}

blockquote p {
  font-weight: 400;
  line-height: 1.44;
}

.footer-area blockquote {
  padding-left: 70px;
}

/*blockquote quote symbol*/
blockquote:after {
    position: absolute;
    font-family: 'PT Serif', Georgia, Times, Times New Roman, Serif;
    left: 121px;
    top: 2px;
    font-style: normal;
    font-size: 37px;
    line-height: 1;
}

.footer-area blockquote:after {
  left: 0;
  font-size: 130px;
}

.colored-region:not(.black) blockquote:after {
  color: #ffffff;
}

@media (max-width:991px) {
  .footer-area blockquote {
    padding-left: 40px;
    font-size: 18px;
  }
  .footer-area blockquote:after {
    left: 0;
    font-size: 90px;
  }
}

@media (max-width:767px) {
  blockquote {
    padding: 0 0 0 75px;
  }
  blockquote:after {
    left: 0;
    font-size: 130px;
  }
}

.video-embed-field-responsive-video {
    position: relative;
    margin-bottom: 40px;
    margin-top: 10px;
    margin-right: 40px;
    margin-left: 40px;
}

.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
    color: #2a68af;
    font-size: 20px;
    font-weight: 700;
    text-decoration: none;
}

.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited, a.ui-button, a:link.ui-button, a:visited.ui-button, .ui-button {
    font-size: 18px;
    color: #2a68af;
}

.content-top-highlighted {
    padding: 21px 0 0;
    position: relative;
}

h1, h2, h3, h4, h5, h6 {
    padding: 0;
    margin: 15px 0 15px 0;
    font-weight: 400;
    /* text-transform: capitalize; */
}

.more-link a, .view-promoted-items--style-2 .views-row .more-link a {
    margin: 0px 15px 15px 0px;
    display: block;
    background: transparent;
    padding: 0;
    font-size: 96%;
    text-align: right;
    text-transform: none;
    text-decoration: none;
}

.colored-region {
    padding: 25px 0;
}

ul.links {
    padding: 11px 0px 0px 0px;
    margin: 0;
    list-style: none;
}

body:not(.path-frontpage) .main, body:not(.path-frontpage) .sidebar {
    padding: 30px 0px 40px 0px;
}


p {
    margin: 0;
    padding: 0px 0px 15px 0px;
}


p::first-line {
    margin-top: 2em;
}

.passos-title {
    background-color: #eef7ff;
    color: #2a68af;
    line-height: 200%;
    padding: 3px 0px 3px 15px;
    font-size: 1.6rem;
    font-weight: 500;
    margin-block-end: 35px;
    margin-block-start: 65px;
}

.field--name-field-nivel-ciclo{
    margin-block-end: 25px;
}

.hidden {
    display: none !important;
}

div.areas {
  width: 100%;
  text-align: left;
  border-collapse: collapse;
}
.divTable.areas .divTableCell, .divTable.areas .divTableHead {
  border: 0px solid #AAAAAA;
  padding: 0px 0px 30px 15px;
  width: 40px;
  vertical-align: top;
}
.areas .tableFootStyle {
  font-size: 14px;
}
.areas .tableFootStyle .links {
	 text-align: right;
}
.areas .tableFootStyle .links a{
  display: inline-block;
  background: #1C6EA4;
  color: #FFFFFF;
  padding: 2px 8px;
  border-radius: 5px;
}
.areas.outerTableFooter {
  border-top: none;
}
.areas.outerTableFooter .tableFootStyle {
  padding: 3px 5px; 
}
/* DivTable.com */
.divTable{ display: table; }
.divTableRow { 
    display: table-row;
    height: 160px;
    
}
.divTableHeading { display: table-header-group;}
.divTableCell, .divTableHead { 
    display: table-cell;
    vertical-align: middle;
}
.divTableHeading { display: table-header-group;}
.divTableFoot { display: table-footer-group;}
.divTableBody { display: table-row-group;}

@media(max-width: 600px){
	.ds-2col-stacked-fluid .group-right {
		float:none;
		width:100%;
	}
	.ds-2col-stacked-fluid .group-left {
		width:100%;
	}
}

.ds-2col-stacked-fluid > .group-right {
    padding-left: 10px;
    padding-top: 20px;
    padding-right: 10px;
    padding-bottom: 31px;
}

.ds-2col-stacked-fluid > .group-left {
    padding-left: 10px;
    padding-top: 30px;
    padding-right: 10px;
    padding-bottom: 35px;
}

.image-style-noticias-img-top {
border-top-left-radius: 6px;
border-top-right-radius: 6px;
width: 100%;
height: 25vw;
object-fit: cover;
vertical-align: middle;
margin-bottom: 9px;
}

.file {
padding-left: 0px;
}

.titulos
{
    color: #2a68af;
    text-align:center;
}


.file--application-pdf {
  padding-bottom: 21px;
}


h1.titulo-recursos
{
    color: #ed8579;
}

li.pager__item > a {
  color: #2a68af;
    line-height: 3;
    padding: 0px 13px 0px 13px;
    text-decoration: none;
}

.pager__items {
    margin: 20px 0 0px;
}

.logo {
padding: 0;
float: left;
margin-left: 40px;
display: inline-block;
margin-right: 40px;
margin-top: 2px;
margin-bottom: 0px;
}

.slick, .slick-wrapper {
max-width: 50%;
position: relative;
margin: auto;
}

.tituloI
{
font-size: 53px !important;
line-height: 64px !important;
}

.textoI
{
font-size: 18px !important;
line-height: 30px !important;
}

.tooltip.show {
  opacity: 1;
}

.tooltip-inner {
  background-color: #ff0000;
  box-shadow: 0px 0px 4px black;
  opacity: 1 !important;
}

.tooltip.bs-tooltip-right .arrow:before {
  border-right-color: #ff0000 !important;
}

.tooltip.bs-tooltip-left .arrow:before {
 border-left-color: #ff0000 !important;
}

.tooltip.bs-tooltip-bottom .arrow:before {
 border-bottom-color: #ff0000 !important;
}

.tooltip.bs-tooltip-top .arrow:before {
 border-top-color: #ff0000 !important;
}


b,
strong {
  font-weight: bold !important;
}

.placeholder {
  display: none;
  min-height: 1em;
  vertical-align: auto;
  cursor: none;
  background-color: transparent;
  opacity: inherit;
}
fieldset legend {
    text-transform: none;
}



.add {
text-align: right;
    margin: -30px 15px -10px 0px;
}

.btn {
    display: inline;
    line-height: 2.5;
    border-radius: 1rem;
}


.simplelogin .simplelogin-link {
  text-align: center;
  text-transform: none;
  padding: 0px;
}

.colored-region, .colored-region.black {
    color: #3f3f3f; 
}


td, th {

    align-content: center;
}


body:not(.path-frontpage) .main, body:not(.path-frontpage) .sidebar {
    padding: 0px 0px 40px 0px;
}


.search-area:hover input.form-search, .search-area input.form-search:focus {
    width: 250px;
    background-color: #ffffff;
    color: #000000;
}

input.form-text, input.form-tel, input.form-email, input.form-url, input.form-search, input.form-file, input.form-number, input.form-color, textarea.form-textarea, textarea, select.form-select, select {
    background: #c4d1f4;
    color: #454545;
}

.views-view-grid {
    text-align: center;
}

views-bootstrap-lista-de-anos-de-escolaridade-block-1 {
    text-align: center;
}

.shs-widget-container {
    padding: 0px 6px 0px 0px;
}

.add {
    margin: -15px 0px -10px 0px;
}

/**
.header-container ul.menu {
    display: inline-flex;
;**/


/* Remove qualquer fundo de TODOS os <a> em todos os estados */
a,
a:link,
a:visited,
a:hover,
a:focus,
a:active,
a::before,
a::after {
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
  transition: none !important; /* evita “flash” de fundo */
}

/* Se algum <a> tiver estilos inline sem !important, isto ainda sobrepõe */
a[style*="background"] {
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* --- Correção de visibilidade do menu --- */

/* Links de topo do menu */
.header-container ul.menu li a {
  background: #fff !important;
  color: #2a68af !important;
  border: 1px solid #2a68af !important;
  text-decoration: none !important;
}

/* Hover/focus no topo */
.header-container ul.menu li a:hover,
.header-container ul.menu li a:focus {
  background: #2a68af !important;
  color: #fff !important;
  border-color: #2a68af !important;
}

/* Estado ativo/trail claramente visível */
ul.menu li a.is-active,
ul.menu li.menu-item--active-trail > a,
ul.menu a.is-active {
  background: #2a68af !important;
  color: #fff !important;
  border-color: #2a68af !important;
}

/* Submenus (Superfish) */
ul.sf-menu a,
ul.sf-menu span.nolink {
  background: #fff !important;
  color: #2a68af !important;
  border: 1px solid #2a68af !important;
}

ul.sf-menu li:hover > a,
ul.sf-menu a:hover,
ul.sf-menu span.nolink:hover {
  background: #2a68af !important;
  color: #fff !important;
  border-color: #2a68af !important;
}

/* Profundidades específicas */
a.sf-depth-1,
a.sf-depth-2 {
  background: #fff !important;
  color: #2a68af !important;
}

a.sf-depth-1:hover,
a.sf-depth-2:hover {
  background: #2a68af !important;
  color: #fff !important;
}

/* Acessibilidade no foco por teclado */
.header-container ul.menu li a:focus-visible,
ul.sf-menu a:focus-visible {
  outline: 2px solid #2a68af !important;
  outline-offset: 2px !important;
}

/* =========================
   AJUSTES UNIFORMIDADE E ACESSIBILIDADE
   (06/10/2025)
   ========================= */

/* Paleta única (mantém apenas este :root) */
:root{
  --primary: #2a68af;
  --primary-600: #315887;     /* apoio/hover escuro */
  --secondary: #587BE1;       /* antigo btn-primary */
  --link-alt: #1C6EA4;        /* links da tabela .areas */
  --accent: #ed8579;          /* destaques (ex. card borda) */
  --surface: #ffffff;
  --surface-100: #eeeeee;
  --input-bg: #eef7ff;
  --text: #000000;
}

/* Conteúdo: cor de link e feedback */
.main-content a{
  color: var(--primary);
  text-decoration: none;
}
.main-content a:hover,
.main-content a:focus{
  text-decoration: underline;
}

/* Foco consistente em todos os controlos */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline: 3px solid var(--primary) !important;
  outline-offset: 2px !important;
}

/* “Saltar para o conteúdo” visível ao foco */
.skip-link:focus{
  position: static !important;
  clip: auto !important;
  width: auto !important;
  height: auto !important;
  padding: 0.5rem 0.75rem !important;
  background: var(--surface) !important;
  color: var(--primary) !important;
  border: 1px solid var(--primary) !important;
}

/* Header e submenus alinhados à paleta */
.header-container{ background-color: var(--surface-100); }
.header-container ul.menu li a{
  background: var(--surface) !important;
  color: var(--primary) !important;
  border: 1px solid var(--primary) !important;
  min-height: 44px; /* alvo mínimo recomendado */
  line-height: 1.2;
}
.header-container ul.menu li a:hover,
.header-container ul.menu li a:focus{
  background: var(--primary) !important;
  color: #fff !important;
  border-color: var(--primary) !important;
}
ul.menu li a.is-active,
ul.menu li.menu-item--active-trail > a,
ul.menu a.is-active{
  background: var(--primary) !important;
  color: #fff !important;
  border-color: var(--primary) !important;
}
ul.sf-menu a,
ul.sf-menu span.nolink{
  background: var(--surface) !important;
  color: var(--primary) !important;
  border: 1px solid var(--primary) !important;
  min-height: 44px;
  line-height: 1.2;
}
ul.sf-menu li:hover > a,
ul.sf-menu a:hover{
  background: var(--primary) !important;
  color: #fff !important;
  border-color: var(--primary) !important;
}

/* Botão primário coerente */
.btn-primary{
  background-color: var(--secondary) !important;
  border-color: var(--secondary) !important;
  color: #fff !important;
}
.btn-primary:hover,
.btn-primary:focus{
  background-color: var(--primary-600) !important;
  border-color: var(--primary-600) !important;
}

/* Paginação com estado ativo claro */
.pager__items .is-active > a{
  background: var(--primary);
  color: #fff !important;
  border-radius: 4px;
}
.pager__items a:hover{ text-decoration: underline; }

/* Campos uniformes */
input.form-text,
input.form-tel,
input.form-email,
input.form-url,
input.form-search,
input.form-file,
input.form-number,
input.form-color,
textarea.form-textarea,
textarea,
select.form-select,
select{
  background: var(--input-bg) !important;
  color: #454545 !important;
}
.search-area:hover input.form-search,
.search-area input.form-search:focus{
  background-color: var(--input-bg) !important;
  color: var(--text) !important;
}

/* Cartões: sombras na paleta */
.card:hover{ box-shadow: 1px 3px 5px 3px var(--accent); }
.cardC:hover{ box-shadow: 1px 3px 5px 3px var(--primary-600); }

/* Ícones herdam a cor do texto para uniformidade */
.fa, [class^="icon-"], [class*=" icon-"]{
  color: currentColor;
}

/* Ajuste de links da tabela .areas para a paleta */
.areas .tableFootStyle .links a{
  background: var(--link-alt);
  color: #FFFFFF;
}

/* Respeitar preferências do utilizador */
@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; }
}
@media (forced-colors: active){
  :focus-visible{ outline: 2px solid CanvasText !important; }
}


/* Topo: itens continuam lado a lado */
.header-container ul.menu > li {
  display: inline-block;       /* mantém horizontal */
  vertical-align: middle;
}

/* Centro vertical do texto dentro do link de topo */
.header-container ul.menu > li > a {
  display: inline-flex;        /* não quebra layout */
  align-items: center;         /* centra verticalmente */
  line-height: 1.2;            /* evita “falso” centramento via line-height */
  min-height: 44px;            /* já tinhas alvo mínimo; mantém */
  padding-top: 0.4rem;         /* ajusta se precisares mais “ar” */
  padding-bottom: 0.4rem;
  box-sizing: border-box;      /* inclui bordas na altura */
}

/* Submenus (Superfish): idem mas ocupando a largura do item */
ul.sf-menu li > a,
ul.sf-menu li > span.nolink {
  display: flex;               /* preenche largura do submenu */
  align-items: center;         /* centro vertical */
  line-height: 1.2;
  min-height: 38px;            /* ligeiramente menor nos submenus */
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
  box-sizing: border-box;
}
