/*
Theme Name:         Consulmar
Description:        Consulmar Theme
Version:            1.0
Author:             wevolved

Text Domain:        consulmar
*/

/* Configurações BASE */
* {
	box-sizing: border-box;
}

html,
body {
	margin: 0px;
	padding: 0px;
	overflow-x: hidden;
	user-select: none; /* Standard syntax */
	scroll-behavior: smooth;
}

/* desativar scroll quando adicionada a classe disableScroll ao HTML */
html.disableScroll {
	overflow-y: hidden;
}

img {
	max-width: 100%;
}

/********* Alterar o scroll bar **********/
html {
	scrollbar-width: thin; /* Adjust the width of the scrollbar */
	scrollbar-color: var(--blue) transparent; /* Adjust the color of the scrollbar */
}

/* Define the style for the scrollbar track */
html::-webkit-scrollbar {
	width: 4px; /* Adjust the width of the scrollbar */
}

/* Define the style for the scrollbar thumb */
html::-webkit-scrollbar-thumb {
	background-color: var(--blue); /* Adjust the color of the scrollbar thumb */
	border-radius: 4px; /* Adjust the border radius of the scrollbar thumb */
}

/* Style for scrollbar track (background) */
html::-webkit-scrollbar-track {
	background-color: var(--white); /* Background color of the scrollbar track */
}
/********* FIM DE Alterar o scroll bar **********/

/* Reset comportamento de links */
a,
a:hover,
a:focus,
a:active {
	text-decoration: none;
	color: #00598F;
	cursor: pointer;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
label,
input {
	margin: 0px;
	/* para que as fonts fiquem com linha mais fina */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

label {
	font-weight: 400;
}

a,
span {
	/* para que as fonts fiquem com linha mais fina */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

a {
	overflow-wrap: anywhere;
}

/**************** COMPONENTES DE FORMULARIOS **************/
/* Colocar os placeholders dos inputs com cor normal, remover o cinzento */
input::placeholder {
	color: var(--white);
	opacity: 1; /* Firefox */
}

/* Change the white to any color */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus,
select:-webkit-autofill:active {
	-webkit-box-shadow: 0 0 0 30px var(--darkerBlue) inset !important;
	-webkit-text-fill-color: var(--white) !important;
}

input:focus,
select:focus {
	outline: none !important;
}

/* Remover incremento de número - Chrome, Safari, Edge, Opera  */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* remover espaçamentos */
.wpb_button,
.wpb_content_element,
ul.wpb_thumbnails-fluid > li,
.vc_btn3-container {
	margin-bottom: 0px !important;
}

ul {
	list-style: none;
	padding: 0px;
	margin: 0px;
}

/******** SELECT IGUAL EM TODO O LADO ********* */
select {
	-webkit-appearance: none; /* Remove default arrow in WebKit browsers */
	-moz-appearance: none; /* Remove default arrow in Firefox */
	appearance: none; /* Remove default arrow in other browsers */
	background: transparent url("/wp-content/uploads/2024/10/arrow.svg")
		no-repeat right center;
	background-size: 24px 24px;
	padding-right: 10px;
	background-position: 98% 50%;
}

select::-ms-expand {
	display: none;
}
/******** SELECT IGUAL EM TODO O LADO ********* */

/**************** FONTS ****************/
/* Fonts */
@font-face {
	font-family: "FontAwesome";
	src: url("fonts/FontAwesome.otf");
	font-weight: normal;
	font-style: normal;
}

/* Montserrat 300-600  */
@font-face {
	font-family: "Montserrat-Light";
	src: url("fonts/montserrat/Montserrat-Light.woff2") format("woff2"),
		url("fonts/montserrat/Montserrat-Light.ttf") format("ttf"),
		url("fonts/montserrat/Montserrat-Light.otf") format("otf");
	font-weight: 300;
	font-style: normal;
}

@font-face {
	font-family: "Montserrat-Regular";
	src: url("fonts/montserrat/Montserrat-Regular.woff2") format("woff2"),
		url("fonts/montserrat/Montserrat-Regular.ttf") format("ttf"),
		url("fonts/montserrat/Montserrat-Regular.otf") format("otf");
	font-weight: normal;
	font-style: normal;
}
@font-face {
	font-family: "Montserrat-Italic";
	src: url("fonts/montserrat/Montserrat-Italic.woff2") format("woff2"),
		url("fonts/montserrat/Montserrat-Italic.ttf") format("truetype"),
		url("fonts/montserrat/Montserrat-Italic.otf") format("otf");
	font-weight: normal;
	/* font-style: italic; */
}

@font-face {
	font-family: "Montserrat-Bold-Italic";
	src: url("fonts/montserrat/Montserrat-BoldItalic.woff2") format("woff2"),
		url("fonts/montserrat/Montserrat-BoldItalic.ttf") format("truetype"),
		url("fonts/montserrat/Montserrat-BoldItalic.otf") format("otf");
	font-weight: bold;
}

@font-face {
	font-family: "Montserrat-Medium";
	src: url("fonts/montserrat/Montserrat-Medium.woff2") format("woff2"),
		url("fonts/montserrat/Montserrat-Medium.ttf") format("ttf"),
		url("fonts/montserrat/Montserrat-Medium.otf") format("otf");
	font-weight: 500;
	font-style: normal;
}

@font-face {
	font-family: "Montserrat-SemiBold";
	src: url("fonts/montserrat/Montserrat-SemiBold.woff2") format("woff2"),
		url("fonts/montserrat/Montserrat-SemiBold.ttf") format("ttf"),
		url("fonts/montserrat/Montserrat-SemiBold.otf") format("otf");
	font-weight: 600;
	font-style: normal;
}

/* Poppins 400 e 600 */
@font-face {
	font-family: "Poppins-SemiBold";
	src: url("fonts/poppins/Poppins-SemiBold.woff2") format("woff2"),
		url("fonts/poppins/Poppins-SemiBold.ttf") format("truetype"),
		url("fonts/poppins/Poppins-SemiBold.otf") format("otf");
	font-weight: 600;
	font-style: normal;
}

@font-face {
	font-family: "Poppins-Regular";
	src: url("fonts/poppins/Poppins-Regular.woff2") format("woff2"),
		url("fonts/poppins/Poppins-Regular.ttf") format("truetype"),
		url("fonts/poppins/Poppins-Regular.woff2") format("otf");
	font-weight: normal;
	font-style: normal;
}

@font-face {
	font-family: "Poppins";
	src: url("fonts/poppins/Poppins-Regular.woff2") format("woff2"),
		url("fonts/poppins/Poppins-Regular.ttf") format("truetype"),
		url("fonts/poppins/Poppins-Regular.woff2") format("otf");
	font-weight: normal;
	font-style: normal;
}

@font-face {
	font-family: "Poppins";
	src: url("fonts/poppins/Poppins-Regular.woff2") format("woff2"),
		url("fonts/poppins/Poppins-Regular.ttf") format("truetype"),
		url("fonts/poppins/Poppins-Regular.woff2") format("otf");
	font-weight: 600;
	font-style: normal;
}

/* Headers */
/* H1 default das páginas e H2 */
h1,
h2 {
	font-family: "Montserrat-Medium", "sans-serif";
	font-size: 37px;
	line-height: 40px;
	letter-spacing: -0.02em;
	text-align: left;
	text-transform: uppercase;
	color: var(--darkBlue);
}
/* H1 grande */
h1.bigH1 {
	font-family: "Montserrat-Medium", "sans-serif";
	font-size: 49px;
	line-height: 52px;
	letter-spacing: -0.04em;
	margin-top: 150px;
}

/* H1 small (texto tipo paragrafo de algumas páginas) */
h1.smallH1,
h2.smallH2 {
	font-family: "Montserrat-Medium", "sans-serif";
	font-size: 16px;
	line-height: 21px;
	letter-spacing: -0.02em;
}

/* Header mais pequeno Poppins - Presença pelo mundo,   */
h3 {
	font-family: "Poppins-SemiBold", "sans-serif";
	font-size: 18px;
	line-height: 24px;
	letter-spacing: -0.02em;
}

/* titulo noticias e header timeline */
h4 {
	font-family: "Montserrat-SemiBold", "sans-serif";
	font-size: 28px;
	line-height: 32px;
	letter-spacing: -0.02em;
}

/* Fonts default */
p {
	font-family: "Montserrat-Regular", "sans-serif";
	font-size: 20px;
	line-height: 24px;
	letter-spacing: -0.02em;
	color: var(--darkerBlue);
}
input,
label,
select,
textarea,
option,
.fakeFile p {
	font-family: "Montserrat-Regular", "sans-serif";
	font-size: 16px;
	line-height: 22px;
	letter-spacing: -0.02em;
}
a {
	font-family: "Poppins-Regular", "sans-serif";
	font-size: 14px;
	line-height: 21px;
}

/* Variáveis p/ reutilizar */
:root {
	/* Cores */
	--white: #fcfffe;
	--blue: #00598f;
	--darkBlue: #00436b;
	--darkerBlue: #001f32;
	--black: #091b2a;
	--header-height: 50px;
	--page-margin: 25px;
	--border-radius: 4px;
	--page-top-space: 180px;
	--page-bottom-margin: 128px;
}

/* Remover paddings */
.noPadding {
	padding-left: 0px;
	padding-right: 0px;
}

body {
	/* margin:0px */
	overflow-x: hidden;
}
/* Opção escondida */
.display-none {
	display: none;
}

.mobileOnly {
	display: none;
}

.desktopOnly {
	display: block;
}

main {
	padding-top: var(--page-top-space);
	padding: var(--page-top-space) var(--page-margin) var(--page-bottom-margin)
		var(--page-margin);
	position: relative;
}
.grecaptcha-badge {
	visibility: hidden !important;
}

/****************************** HEADER ************************************/
.mobile-menu-wrapper {
	display: none;
}
.hide-header {
	transform: translateY(-200px);
	transition: transform 0.3s ease;
}
header {
	position: fixed;
	top: 0px;
	left: 0px;
	width: 100%;
	z-index: 9990;
	transition: all 0.3s ease;
	padding: 50px 0px 10px;
}

header.whiteBG {
	background-color: var(--white);
}

header .menu-desktop-wrapper a,
.menu-desktop-search-wrapper form input::placeholder {
	font-size: 18px;
	line-height: 24px;
	position: relative;
	color: var(--darkerBlue);
	transition: all 250ms linear;
}

header .menu-desktop-wrapper a::before {
	content: "";
	height: 2px;
	width: 0%;
	background-color: #00436B;
	position: absolute;
	bottom: -4px;
	left: 0px;
	transition: all 250ms linear;
}

header .menu-desktop-wrapper a:hover,
header .menu-desktop-wrapper li.current-menu-item a {
	color: #00436B;
	/* font-family: "Poppins-SemiBold", "sans-serif"; */
	font-weight: 600;
}
header .menu-desktop-wrapper li.current-menu-item a::before,
header .menu-desktop-wrapper a:hover::before {
	width: 65%;
}

.wrapper-header {
	padding: 0px var(--page-margin);
	height: var(--header-height);
	display: flex;
	justify-content: space-between;
	align-items: center;
}
/* wrapper com as opçoes de menu apenas em desktop */
.optionsWrapper.desktopOnly,
.menu-desktop-wrapper .menu-menu-principal-container ul {
	display: flex;
	align-items: center;
	gap: 32px;
}

.menu-desktop-search-wrapper form input {
	outline: unset;
	border: 2px solid var(--darkerBlue);
	border-radius: 100px;
	padding-left: 56px;
	padding-right: 10px;
	width: 168px;
	height: 48px;
	transition: all 300ms linear;
}
.menu-desktop-search-wrapper form input:hover,
.menu-desktop-search-wrapper form input:focus {
	color: var(--white);
}
/* hover e focus */
.menu-desktop-search-wrapper form input:hover,
.menu-desktop-search-wrapper form input:focus {
	outline: unset;
	border: 2px solid var(--white);
	background-color: var(--darkerBlue);
}

.menu-desktop-search-wrapper form input::placeholder {
	font-family: "Poppins-Regular", "sans-serif";
	transition: all 300ms linear;
}

/* placeholder com hover */
.menu-desktop-search-wrapper form input:hover::placeholder,
.menu-desktop-search-wrapper form input:focus::placeholder {
	color: var(--white);
}

.menu-desktop-search-wrapper form {
	position: relative;
}

.lupa {
	position: absolute;
	top: 50%;
	left: 24px;
	transform: translate(0%, -50%);
	transition: all 300ms linear;
}

/* inverter o icon */
.menu-desktop-search-wrapper form:has(input:hover, input:focus) .lupa,
.whiteHeader header:not(header.whiteBG) .lupa {
	filter: grayscale(1) invert(1);
}

/* Se existir a classse whiteHeader temos que converter o header em branco */
.whiteHeader header:not(header.whiteBG) .logo {
	filter: grayscale(1) invert(1);
}

.whiteHeader header:not(header.whiteBG) .menu-desktop-wrapper a,
.whiteHeader
	header:not(.whiteBG)
	.menu-desktop-search-wrapper
	form
	input::placeholder {
	color: var(--white);
}

.whiteHeader header:not(.whiteBG) .menu-desktop-search-wrapper form input {
	border: 2px solid var(--white);
	background-color: rgba(255, 255, 255, 0.2); /* White with 50% opacity */
}

.whiteHeader main {
    padding-top: 0;
	padding-bottom: 0px;
}

.bg-video {
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    z-index: 1;
}

.whiteHeader header {
    background: transparent;
    z-index: 9999; /* garantir que está acima do vídeo */
}


/* Wrapper do hero */
.hero-video {
  position: relative;
  min-height: 92vh;           /* ocupa quase ecrã inteiro */
 
  overflow: hidden;
}

/* Vídeo full-bleed */
.hero-bg-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

/* Sombra para legibilidade (podes ajustar o gradiente) */
.hero-video::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.35) 60%, rgba(0,0,0,.45) 100%);
  z-index: 1;
}

/* Conteúdo por cima do vídeo */
.hero-content {
  position: relative;
  z-index: 2;
  max-width: 900px;
  color: var(--white);
  top: 128px;
}

/* Vídeo de fundo injetado via page.php */
.bg-video{
  position: fixed;       /* fica atrás enquanto passas o hero */
  top: 0; left: 0;
  width: 100%;
  height: 100vh;         /* só a altura do ecrã */
  z-index: 1;            /* atrás do conteúdo */
  overflow: hidden;
}
.bg-video__media{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.bg-video::after{
  content: "";
  position: absolute; inset: 0;
  /* mesmo gradiente que usas no hero */
  background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.35) 60%, rgba(0,0,0,.45) 100%);
}

.bg-video > .hero-bg-video{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 1;            /* abaixo do overlay */
}

/* OVERLAY por cima do vídeo */
.bg-video::after{
  content: "";
  position: absolute; inset: 0;
  z-index: 2;            /* acima do vídeo */
  pointer-events: none;  /* não bloqueia cliques/scroll */
  background:
    linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.45) 100%), /* gradiente */
    rgba(27,55,100,.40); /* #1B3764 a 40% (como no Figma) */
  mix-blend-mode: darken; /* “Mais escuro” do Figma */
}


/* Garantir que o conteúdo fica acima do vídeo */
main{ position: relative; z-index: 2; }


/* HERO TITLE — specs do Figma */
.hero-title p{
  color: #fff;
  font-family: "Montserrat-Medium","Montserrat",sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 54px;
  line-height: 61px;              /* ≈1.13 */
  letter-spacing: -0.04em;        /* -4% (≈ -2.16px a 54px) */
  text-transform: uppercase;
}


/* HERO SUB — specs do Figma */
.hero-sub{
  margin-top: 50px;
  max-width: 100%;
  color: #fff; /* ou var(--white) */
  font-family: "Montserrat-Medium","Montserrat",sans-serif;
  font-weight: 500;         /* Medium */
  font-style: normal;
  font-size: 18px;
  line-height: 20px;
  letter-spacing: -0.02em;  /* -2% */
  width: 72%;
}

/* Botão circular “Fale Connosco” */
.btn-ghost-circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 135px;
    height: 135px;
    border-radius: 50%;
    border: 2px solid var(--white);
    color: var(--white);
    transition: .2s ease;
    margin-left: 60%;
    margin-bottom: 100px;
	position: absolute;
}

.hero-content.wpb_column.vc_column_container.vc_col-sm-12 {
    margin-top: -200px;
}

/* Botão circular “Fale Connosco” — overrides */
a.btn-ghost-circle,
a.btn-ghost-circle:hover,
a.btn-ghost-circle:focus,
a.btn-ghost-circle:active {
  color: #fff !important;             /* mantém o texto branco, vence o reset global */
}

.btn-ghost-circle {
  border: 2px solid #fff;             /* borda branca por defeito */
  background: transparent;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

/* Hover: preenche com #1B3764 a 40% e “some” com a borda */
.btn-ghost-circle:hover,
.btn-ghost-circle:focus-visible {
  background-color: rgba(27, 55, 100, .40); /* #1B376466 */
  border-color: transparent;                /* fica invisível sem encolher o círculo */
}



/* Estatísticas fixas ao fundo do hero */
.hero-stats {
  position: absolute;
  left: var(--page-margin);
  right: var(--page-margin);
  bottom: 32px;
  display: flex;
  gap: 56px;
  z-index: 2;
  color: var(--white);
}
.hero-stats .num {
  font-family: "Montserrat-Medium", sans-serif;
  font-size: 72px;
  line-height: 1;
  text-align: center;
  color: #fff;
}
.hero-stats .label {
  font-family: "Montserrat-Regular", sans-serif;
  font-size: 14px;
  line-height: 1.2;
  margin-top: 10px;
  opacity: .9;
  font-weight: 400 !important;

}



/* A Row do hero é o “contentor” do vídeo */
.vc_row.hero-video{
  position: relative;
  min-height: 100vh;
  overflow: hidden;
}

/* WPBakery mete relative na coluna; tiramos para o absolute do vídeo usar a Row */
.vc_row.hero-video > .wpb_column > .vc_column-inner{
  position: static !important;
}

/* Vídeo cobre toda a Row */
.vc_row.hero-video .hero-bg-video{
  position: absolute;
  inset: 0;              /* top/right/bottom/left = 0 */
  width: 100%;
  height: 100vh;
  object-fit: cover;
  z-index: 1;
  margin-top: -100px;
}

/* Sombra/gradiente por cima do vídeo (opcional) */
.vc_row.hero-video::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.35) 60%, rgba(0,0,0,.45) 100%);
  z-index: 2;
}

/* Conteúdo e stats acima do vídeo/sombra */
.vc_row.hero-video .hero-content,
.vc_row.hero-video .hero-stats{
  position: relative;
  z-index: 3;
}

/* (se precisares) alinhar stats ao fundo */
.vc_row.hero-video .hero-stats{
  position: absolute;
  left: var(--page-margin);
  right: var(--page-margin);
  top: 200px;
  display: flex;
  gap: 56px;
  padding-bottom: 200px;
}


.vc_row.hero-video .hero-bg-video::after{
  content:"";
  position:absolute; inset:0; z-index:2; pointer-events:none;
  background:
    #1B376466,
    linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.45) 100%);
} 


.hero-title p {
    color: #fff !important;
}


.hero-sub p {
    color: #fff;
}


/* A row do hero continua full-bleed; usamos flex só para empurrar o conteúdo */
.vc_row.hero-video{
  display: flex;           /* não parte a row; só permite alinhar */
  align-items: center;     /* centrado na vertical */
  position: relative;
}

/* Texto do hero do meio para a direita */
.vc_row.hero-video .hero-content{
  z-index: 3;  
}


/* overlay da Row do hero */
.vc_row.hero-bg-video::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(27,55,100,0.4);   
  background: #1B376466;             
  z-index: 2;

  mix-blend-mode: darken; 
}
 

/* garante que o conteúdo fica acima do overlay */
.vc_row.hero-video .hero-content,
.vc_row.hero-video .hero-stats{
  position: relative;
  z-index: 3;
}






/****************************** FOOTER ************************************/

footer {
    background-color: var(--darkerBlue);
    padding: 64px var(--page-margin) 24px;
    z-index: 2;
    position: relative;
}
/* cor dos links */
footer a,
footer span {
	color: var(--white);
}

/* ZONA DE NAVEGAÇÃO  */
.upperFooter {
	display: flex;
	justify-content: space-between;
	margin-bottom: 161px;
}

.upperFooter img {
	object-fit: contain;
}
/* inverter cor do logo */
.logoCol img {
	filter: invert(1) brightness(100);
	margin-bottom: 16px;
}

/* middle section com menus */
.middleFooterSection {
	display: grid;
	grid-template-columns: repeat(3, 170px);
	gap: 109px;
}

/* Bold nas primeiras opções */
.upperFooter .menu-menu-links-container a,
footer ul li:first-child a,
.secondMenuCol ul li:nth-child(1) a,
.secondMenuCol ul li:nth-child(2) a,
.secondMenuCol ul li:nth-child(3) a {
	font-family: "Poppins-SemiBold", "sans-serif";
	font-size: 16px;
	line-height: 24px;
}
/* margem extra em alguns elementos */
.upperFooter .menu-menu-links-container,
.middleFooterSection ul li:first-child,
.secondMenuCol ul li:nth-child(1) {
	margin-bottom: 16px;
}
/* espaçamentos extra */
.contactMenuCol > div:nth-child(1),
.secondMenuCol ul li:nth-child(1),
.secondMenuCol ul li:nth-child(2) {
	margin-bottom: 32px !important;
}

/* margem entre elementos */
.upperFooter ul li:not(li:last-child) {
	margin-bottom: 8px;
}

/* col com imagens */
.upperFooterCol.imagesCol {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 32px;
}
/* ZONA DE BAIXO  */
.lowerFooter {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
}
.lowerFooterSection {
	display: flex;
	align-items: center;
	justify-content: center;
}
.legalSection {
	justify-content: left;
}
.copyrightSection {
	justify-content: right;
}
/* margem para a opção que tem o icone */
.upperFooter ul li a i {
	margin-left: 10px;
	font-size: 20px;
}
footer a:hover,
footer a:focus {
	color: var(--white);
	position: relative;
}
footer ul a::after {
	content: "";
	height: 1px;
	width: 0%;
	background-color: var(--white);
	position: absolute;
	bottom: 0px;
	left: 0px;
	transition: width 250ms linear;
}

footer ul a:hover::after {
	width: 65%;
}

/****************************** SPLASH SCREEN ************************************/
.splashScreen {
	height: 100dvh;
	width: 100%;
	position: fixed;
	top: 0px;
	left: 0px;
	z-index: 9999;
	display: none;
}

.container-video {
	height: 100dvh;
	width: 100%;
}

.container-video video {
	height: 100%;
	width: 100%;
	object-fit: cover;
	position: relative;
}

.splashScreen .container-video::before {
	content: "";
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
	background: linear-gradient(
			0deg,
			rgba(252, 255, 254, 0.65),
			rgba(252, 255, 254, 0.65)
		),
		linear-gradient(
			180deg,
			#fcfffe -3.82%,
			rgba(252, 255, 254, 0) 10.65%,
			rgba(252, 255, 254, 0) 72.66%,
			#fcfffe 95.2%
		);

	z-index: 1;
}
.splashScreen img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	animation: spinner 7s linear infinite;
	z-index: 2;
}

@keyframes spinner {
	to {
		transform: translate(-50%, -50%) rotate(360deg);
	}
}

/****************************** LEGAL PAGE ************************************/
.legalPage h1,
.legalPage h2 {
	font-family: "Poppins-SemiBold", "sans-serif";
	font-size: 18px;
	line-height: 24px;
	letter-spacing: -0.02em;
}

.legalPage p {
	font-family: "Poppins-Regular", "sans-serif";
	font-size: 18px;
	line-height: 20px;
	letter-spacing: -0.02em;
}

.legalPage .vc_column_container:nth-child(1) h1,
.legalPage .vc_column_container h2,
.legalPage p {
	margin-bottom: 28px;
}
/* paddings */

.legalPage .vc_column_container:nth-child(1) .vc_column-inner {
	padding-right: 120px;
}

.legalPage .vc_column_container:nth-child(2) .vc_column-inner {
	padding-left: 120px;
}
/****************************** CANDIDATURAS PAGGE ************************************/
.candidaturasPage .backgroundVideo * {
	height: 100%;
	overflow-y: hidden;
}
.backgroundVideo {
	position: absolute !important;
	top: 0px !important;
	left: 0px !important;
	z-index: -1;
	height: 100%;
}

.backgroundVideo .container-video {
	height: 100%;
	width: 100%;
}

.backgroundVideo .container-video video {
	height: 100%;
	width: 100%;
	object-fit: cover;
	position: relative;
}

.backgroundVideo .vc_column-inner {
	padding: 0px !important;
}

.candidaturasPage h1,
.candidaturasPage .wpb_column:nth-child(1) p {
	color: var(--white);
	text-transform: uppercase;
}

.candidaturasPage .wpb_column:nth-child(1) p {
	font-family: "Montserrat-Medium";
	font-size: 18px;
	line-height: 24px;
	letter-spacing: -0.02em;
	max-width: 631px;
	margin-top: 17px;
}

/* Formulario de candidatura */
.candidaturasPage .wpb_column:nth-child(2) .vc_column-inner > .wpb_wrapper {
	background: linear-gradient(
			0deg,
			rgba(252, 255, 254, 0.8),
			rgba(252, 255, 254, 0.8)
		),
		linear-gradient(
			168.97deg,
			rgba(252, 255, 254, 0.855) 8.16%,
			rgba(252, 255, 254, 0) 95.99%
		);
	padding: 50px !important;
	border-radius: var(--border-radius);
	margin-top: 150px;
	margin-bottom: 100px;
}

.formTitle {
	font-family: "Montserrat-Medium", "sans-serif";
	font-size: 16px;
	line-height: 21px;
	letter-spacing: -0.02em;
}

form p {
	margin-bottom: 8px;
}
/* espaçamento do span com inputs */
form span:has(.wpcf7-form-control) {
	padding-top: 8px;
	display: inline-block;
}
/* informacao campos obrigatorios */
form .info {
	font-family: "Montserrat-Medium", "sans-serif";
	font-size: 12px;
	line-height: 21px;
	letter-spacing: -0.02em;
}
/* inputs de formulario */
.formInput,
.fakeFile {
	outline: unset;
	background-color: transparent;
	color: var(--darkerBlue);
	border-radius: var(--border-radius);
	border: 1px solid var(--darkerBlue);
	padding: 8px;
	width: 100%;
}
/* input falso de sumissao de ficheiro */
.fakeFile {
	cursor: pointer;
	position: relative;
}

.fakeFile::after {
	content: "";
	background-image: url("/wp-content/uploads/2024/10/upload.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 50%;
	right: 0px;
	transform: translate(-50%, -50%);
}
/* esconder o input original com upload de ficheiro */
p:has(span[data-name="your-file"]) {
	display: none;
}

label:has(.formInput),
span:has(.formInput) {
	width: 100%;
}
/* cor do placeholder */
.formInput::placeholder,
.fakeFile p {
	color: #888888;
}
/* aviso de erro form */
.wpcf7-not-valid-tip {
	font-size: 12px;
}
/* aviso de sucesso de form */
.wpcf7 form.sent .wpcf7-response-output,
.wpcf7 form .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	border: none;
	padding: 0px !important;
	font-family: "Montserrat-Medium", "sans-serif" !important;
	margin-bottom: 0px !important;
}
/* esconder o spinner */
.wpcf7-spinner {
	display: none !important;
}
/* botão principal */
.mainButton {
	outline: none !important;
	border: none !important;
	background-color: transparent !important;
	padding: 0px !important;
	font-family: "Montserrat-Regular", "sans-serif";
	font-size: 16px;
	line-height: 21px;
	letter-spacing: -0.02em;
	height: 100%;
	width: 100%;
	transition: all 300ms linear;
}
/* cirsulo do botão */
.circle {
	content: "";
	height: 100px;
	width: 100px;
	border: 1px solid var(--darkerBlue);
	border-radius: 100%;
	transition: all 300ms linear;
}
/* efeito hover no bcirsulo */
.circle:hover {
	background-color: var(--darkerBlue);
}
/* efeito hover no botão */
.circle:hover .mainButton {
	color: var(--white);
}
/* circulo com o botão */
.circle p {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
	gap: 4px;
}

/* wrapper com info campos obrigatótios e botão */
.infoAndButtonWrapper {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-top: 32px;
}

 .hero-video{
    width: 100%;
    min-height: 100vh;
}

/****************************** CONTACTOS PAGE ************************************/
/* margem entre primeiro elemento */
.locaisEmpresaSection {
	margin-bottom: 155px;
}
/* margem entre os headers */
.contactosPage h1,
.contactosPage h2 {
	margin-bottom: 64px;
}

/* dimsnesao da zona com o form */
.formularioSection .wpb_column:nth-child(1) .vc_column-inner > .wpb_wrapper {
	max-width: 500px;
}

/* gradiente na imagem que acompanha o form */
.formularioSection .wpb_column:nth-child(2) * {
	max-width: unset;
	width: 100%;
}
.formularioSection .wpb_column:nth-child(2) img {
	position: relative;
	z-index: -1;
	max-width: unset;
	width: 100%;
}
.formularioSection .wpb_column:nth-child(2) .vc_single_image-wrapper {
	background: linear-gradient(
		175.94deg,
		#ffffff 9.62%,
		rgba(255, 255, 255, 0) 27.4%
	);
	display: inline-block; /* or any desired display property */
}

/* wrapper com todos os laocais de empresa */
.locaisEmpresaWrapper {
	display: grid;
	gap: 30px;
	max-width: 354px;
}

.localEmpresaIndividual {
	cursor: pointer;
}
/* nome da cidade */
.localEmpresaIndividual .cidade {
	font-family: "Montserrat-SemiBold", "sans-serif";
	font-size: 16px;
	line-height: 22px;
	letter-spacing: -0.02em;
	color: var(--darkerBlue);
	margin-bottom: 15px;
}
/* informações do local (email, morada etc */
.localEmpresaIndividual .infoLocal {
	font-family: "Montserrat-Regular", "sans-serif";
	font-size: 16px;
	line-height: 21px;
	letter-spacing: -0.02em;
	text-align: left;
	color: var(--darkerBlue);
}

#empresaImagem {
	opacity: 0;
	width: 100%;
	width: 100%;
	height: 100%;
}

/****************************** PORTEFOLIO PAGE ************************************/
.portefolioPage h1 {
	width: 50%;
	margin-bottom: 64px;
}
.portefolioCategoriaIndividual {
	border-top: 1px solid var(--darkBlue);
	border-bottom: 1px solid var(--darkBlue);
	padding: 18px 0px;
	position: relative;
}
/* titulo da categoria */
.portefolioCategoriaIndividual h2 {
	font-family: "Montserrat-Regular", "sans-serif";
	font-size: 55px;
	line-height: 67px;
	letter-spacing: -0.03em;
	text-transform: none;
	cursor: pointer;
}
/* link com redirecionamento para página de categoria de projeto que só está ativa em mobile */
.portefolioCategoriaIndividual a {
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
}

.portefolioCategoriaIndividual:has(.categoriaDrawer) a {
	pointer-events: none;
}

/* remover o border top do primeira categoria */
.portefolioCategoriaIndividual:nth-child(1) {
	border-top: 0px;
}

/* elementos da gaveta lado a lado */
.categoriaDrawer {
	display: none;
}

.portefolioCategoriaIndividual:nth-child(2) .categoriaDrawer {
	display: block;
}
/* elementos da gaveta lado a lado */
.catWrap {
	display: grid;
	grid-template-columns: repeat(2, auto);
	grid-template-rows: repeat(1, auto);
	width: 100%;
	margin-top: 18px !important;
	gap: 18px;
	overflow-x: auto;
	overflow-y: hidden;
	white-space: nowrap;
	scrollbar-width: none; /* Firefox */
	-ms-overflow-style: none; /* Internet Explorer 10+ */
}
.taxonomy-categoria_proj-posts.catWrap {
	gap: 0px;
}

.catWrap::-webkit-scrollbar {
	display: none; /* Chrome, Safari, Opera */
}

/* wrapper com descrições da categoria */
.categoriaDrawer .categoriaDescriptions {
	display: flex;
	gap: 20px;
	flex-direction: column;
	grid-area: 1 / 1 / 2 / 2;
}
/* descrições de categoria */
.categoriaDrawer .categoriaDescriptions p:nth-child(1),
.tax-categoria_de_projeto .tax_description.side p:nth-child(1) {
	font-family: "Montserrat-Medium", "sans-serif";
	font-size: 16px;
	font-weight: 500;
	line-height: 21px;
	letter-spacing: -0.02em;
	color:  #091B2A;
	text-transform: uppercase;
	width: 380px;
	white-space: normal;
}

.categoriaDrawer .categoriaDescriptions p:nth-child(2),
.tax-categoria_de_projeto .tax_description.side p:nth-child(2),
.childProjectsIndividual .tax_description p {
	font-family: "Montserrat-Regular", "sans-serif";
	font-size: 16px;
	line-height: 21px;
	letter-spacing: -0.02em;
	color: var(--black);
	width: 364px;
	white-space: normal;
}
.tax-categoria_de_projeto .tax_description.side p:nth-child(2),
.childProjectsIndividual .tax_description p,
.tax-categoria_de_projeto .tax_description.side p:nth-child(1) {
	color: var(--darkBlue);
}
/* na pagina de taxonomias o texto ocupa tudo */
.tax-categoria_de_projeto .tax_description.side p {
	width: 100% !important;
}
/* margem do primeiro p */
.tax-categoria_de_projeto .tax_description.side p:nth-child(1) {
	margin-bottom: 16px;
}

/* warpper com todos os projetos */
.projetosWrapper {
	display: flex;
	gap: 18px;
	grid-area: 1 / 2 / 2 / 3;
}
/* wrapper com projeto */
.projetosWrapper .projetoIndividual {
	white-space: normal; /* Allow wrapping inside individual content */
}

/* caso seja 1 projeto o titilo fica do lado direito */
.projetosWrapper.biggerProject .projetoIndividual {
	display: flex;
	align-items: flex-end;
	gap: 18px;
	/* overflow: hidden; */
}
.projetosWrapper .projetoTituloWrapper {
	margin-top: 18px;
}

/* titulo do projeto */
.projetosWrapper .projetoTituloWrapper h6 {
	font-family: "Montserrat-Italic", "sans-serif";
	font-size: 14px;
	line-height: 16px;
	letter-spacing: -0.03em;
	max-width: 273px;
}

/* titulo do projeto Bigger*/
.projetosWrapper.biggerProject .projetoTituloWrapper h6 {
	max-width: 227px;
}
/* corda atrás de nome de projeto */
.projetosWrapper .projetoTituloWrapper {
	display: flex;
	gap: 18px;
}
/* imagem do projeto */
.projetosWrapper .projetoIndividual img {
	max-width: unset;
	object-fit: cover;
}

/* wrapper com indicação de scroll */
.scrollProjButtonWrapper {
	grid-area: 2 / 1 / 3 / 3;
	position: relative;
	width: 100%;
	height: 100px;
}
/* Indicação de scroll nos projetos */
.scrollProjButtonWrapper .circle {
	position: sticky;
	top: 0px;
	left: 0px;
}

.scrollProjButtonWrapper .circle p {
	font-family: "Montserrat-Italic", "sans-serif";
	font-size: 14px;
	line-height: 16px;
	letter-spacing: -0.03em;
	position: relative;
}

.scrollProjButtonWrapper .circle p::after {
	content: "";
	background-image: url("/wp-content/uploads/2024/10/arrow_right.svg");
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	width: 22px;
	height: 13px;
	display: block;
}

.scrollProjButtonWrapper .circle:hover p {
	color: var(--white);
}
.scrollProjButtonWrapper .circle:hover p::after {
	filter: invert(1) brightness(100%);
}
/****************************** PORTEFOLIO CATEGORIA PAGE ************************************/
.tax-categoria_de_projeto h1 {
	margin-bottom: 48px;
}
/* desricao da pagina de taonomia cat projeto */
.tax_description {
	margin-bottom: 18px;
}
/* wrapper com outras categorias de projetos */
.outrosProjetos {
	margin-top: 64px;
}
/* titulo com outros projetos */
.outrosProjetos h2 {
	margin-bottom: 24px;
	color: var(--darkerBlue);
}
/* linha divisoria de items de lista */
.outrosProjetos-lista li {
	padding-bottom: 12px !important;
	padding-top: 12px;
	border-bottom: 2px solid var(--darkerBlue);
}
.outrosProjetos-lista li:last-child {
	border-bottom: 0px;
}
/* links da sugestão de projetos */
.outrosProjetos-lista a {
	font-family: "Montserrat-Regular", "sans-serif";
	font-size: 24px;
	line-height: 32px;
	letter-spacing: -0.03em;
	color: var(--darkerBlue);
	position: relative;
}

/***************** PORTEFOLIO BIG PAGE *********************/
/* wrapper com conteudo da categoria de projeto */
.parentProjCat .categoriaContentWrapper {
	display: flex;
	gap: 10px;
}
/* descricao de projeto caso seja uma categoria pai */
.parentProjCat .tax_description {
	margin-bottom: 0px;
}

.parentProjCat .stickyParent {
	max-width: 364px;
}
/* zona com navegação de categorias filhos */
.navWrapper {
	margin-top: 18px;
}

nav.navWrapper {
	display: grid;
	gap: 18px;
}

/* Menus de navegação */
nav.navWrapper a {
	font-family: "Montserrat-Italic";
	font-size: 14px;
	line-height: 16px;
	letter-spacing: -0.03em;
	color: var(--darkBlue);
}
/* Menus de navegação */
nav.navWrapper a.childActive {
	font-family: "Montserrat-Bold-Italic";
}

/* corda */
nav.navWrapper .navOption img {
	margin-right: 18px;
}
/* wrapper com todos as categorias filhos com projetos  */
.childProjectsWrapper {
	display: grid;
	gap: 42px;
	width: 100%;
}
/* separador */
.childProjectsWrapper hr {
	color: #e0e0e0;
	width: 170px;
	margin: 0px !important;
}
/* wrapper com categoria filho indivudla */
.childProjectsIndividual {
	width: 100%;
}
/* titulo da categoria filho no wraper individual */
.childProjectsIndividual h3 {
	font-family: "Montserrat-Medium", "sans-serif";
	font-size: 16px;
	line-height: 21px;
	letter-spacing: -0.02em;
	color: var(--darkBlue);
	text-transform: uppercase;
	margin-bottom: 18px;
}

.postHeader {
	margin-bottom: 21px;
}
/* wrapper com botão para voltar */
.voltarWrapper {
	display: flex;
	gap: 10px;
	align-items: center;
}
.voltarWrapper span {
	font-family: "Montserrat-Light", "sans-serif";
	font-size: 19px;
	line-height: 25px;
	letter-spacing: -0.02em;
	color: var(--darkBlue);
}
.single-post .voltarWrapper span {
	color: var(--darkerBlue);
}
.outrosProjetos {
	display: none;
}

/* elementos da gaveta lado a lado */
.childProjectsIndividual .catWrap {
	display: grid;
	grid-template-columns: unset;
	grid-template-rows: unset;
	width: 100%;
	margin-top: 18px !important;
	gap: 18px;
	overflow-x: auto;
	overflow-y: hidden;
	white-space: nowrap;
	overflow: auto;
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.childProjectsIndividual .taxonomy-categoria_proj-posts.catWrap {
	gap: 0px;
}

.childProjectsIndividual .catWrap::-webkit-scrollbar {
	display: none; /* Chrome, Safari, Opera */
}

.childProjectsIndividual .projetosWrapper {
	display: flex;
	overflow-x: auto; /* Enable horizontal scroll */
	white-space: nowrap; /* Prevent line breaks between items */
	scrollbar-width: none;
	-ms-overflow-style: none;
	grid-area: unset;
}

.childProjectsIndividual .projetosWrapper::-webkit-scrollbar {
	display: none; /* Chrome, Safari, Opera */
}

.childProjectsIndividual .projetoIndividual {
	flex: 0 0 auto; /* Prevent shrinking or growing */
}

/****************************** NOTICIAS DETAIL PAGE ************************************/
/* header com voltar para tras e partilha de artigo */
.postHeader,
.partilharNoticia {
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
}
/* zona com partilha de noticia */
.partilharNoticia {
	cursor: pointer;
}
/* wrapper com as opções de partilha */
.shareOptionsWrapper {
	position: absolute;
	top: 100%;
	left: unset;
	right: 0px;
	z-index: 1;
	display: none;
}
/* texto partilhar noticia */
.partilharNoticia span {
	font-family: "Poppins-SemiBold", "sans-serif";
	font-size: 16px;
	line-height: 24px;
	text-align: left;
	color: var(--darkBlue);
	margin-right: 16px;
}
/* margem do post header da noticia */
.single-post .postHeader {
	margin-bottom: 62px;
}

/* excerto da noticia */
.single-post h2 {
	margin-top: 10px;
	margin-bottom: 32px !important;
}

/* Dimensao da zona de rtexto */
.single-post .wpb_column:nth-child(1) .vc_column-inner > .wpb_wrapper {
	max-width: 519px;
}

.single-post:has(.bigPost) .vc_row:has(img) .wpb_column:nth-child(1) {
	width: 519px;
}
/* se noticia grande não dar width à segunda vc_row */
.single-post:has(.bigPost)
	.vc_row:has(img)
	.wpb_column:nth-child(1)
	.vc_column-inner
	> .wpb_wrapper {
	max-width: unset;
}

/* Zona com sugestão de notícias */
.sugestaoNoticiasWrapper {
	margin-top: 250px;
}

.galeriaImagensWrapper,
.sugestaoNoticias {
	display: inline-flex;
	gap: 15px;
}

/* imagens da galeria */
.galeriaImagensWrapper img {
	max-width: unset;
	object-fit: cover;
}

/* CASO NOTICIA BIG */
/* espaçamento entre paragrafos */
.single-post .wpb_column p {
	margin-bottom: 32px !important;
}

.single-post:has(.bigPost) .vc_row:nth-child(2) .wpb_column:nth-child(2) {
	padding-right: 132px;
}

.single-post .vc_row:has(h1) .wpb_column:nth-child(2) {
	padding-top: 40px;
}
/* dar margem à segunda row com noticia */
main:has(.bigPost) .vc_row:nth-child(3) {
	margin-top: 106px !important;
	margin-right: calc(-1 * var(--page-margin));
	position: relative;
	overflow: visible;
}
/* remove rpseudo elementos para não criar conflito com o scroll horizontal */
main:has(.bigPost) .vc_row:has(.galeriaImagensWrapper)::before,
main:has(.bigPost) .vc_row:has(.galeriaImagensWrapper)::after {
	display: none;
}
/* dimensões das imagens quando é noticia grande */
.single-post:has(.bigPost) .vc_row:has(.galeriaImagensWrapper) img {
	width: 448px;
	height: 550px;
}
/* dar size ao texto  da segunda row */
main:has(.bigPost)
	.vc_row:has(.galeriaImagensWrapper)
	.wpb_column:nth-child(1)
	* {
	white-space: normal;
}

/* remover o padding */
main:has(.bigPost) .wpb_column:has(.galeriaImagensWrapper) .vc_column-inner {
	padding: 0px !important;
}

main:has(.bigPost) .wpb_column:has(.scrollProjButtonWrapper) {
	position: absolute;
	bottom: -40px;
	right: 0px;
	width: fit-content;
	transform: translate(0%, 100%);
	z-index: 2;
}

.single-post .wpb_column p:last-child {
	margin-bottom: 0px !important;
}

/* SUGESTAO DE NOTICIAS */
.sugestaoNoticiasWrapper {
	display: flex;
	gap: 15px;
	align-items: flex-start;
}
/* Titulo c/ sugestão */
.sugestaoTitleCol h4 {
	width: 472px;
}
/* Sugestão notícias wrapper */
.sugestaoNoticias {
	margin-top: 0px !important;
}
/* Dimensão específica do artigo apresentado nas sugestões */
.sugestaoNoticias .noticiaWrapper.smallArticle img {
	height: 280px;
	width: 447px;
}

/****************************** NOTICIAS PAGE ************************************/
.listagemNoticiasWrapper a * {
	color: #00598F !important;
}
/* wrapper com noticia */
.noticiaWrapper,
.noticiaInfoWrapper {
	display: flex;
	flex-direction: column;
	gap: 12px;
	cursor: pointer;
	width: fit-content;
}
.noticiaWrapper img {
	max-width: unset;
	object-fit: cover;
}
/* artigo com dimensao pequnea */
.noticiaWrapper.smallArticle img {
	height: 280px;
}
/* artigo com dimensão default (sugestões e elementos de lista) */
.noticiaWrapper.mediumArticle img {
	height: 400px;
}
/* artigo de dimensão grande */
.noticiaWrapper.bigArticle img {
	height: 556px;
}
/* estrutura com as noticias */
.listagemNoticiasWrapper {
	display: inline-flex;
	gap: 15px;
	margin-top: 107px;
	margin-bottom: 80px;
}

/* wrapper com todos os artigos */
.listagemNoticiasWrapper:nth-child(2) {
	margin-top: 0px;
	margin-bottom: 40px;
}
/* ocupar 100% do espaco */
.listagemNoticiasWrapper .noticiaWrapper img {
	width: 100%;
}

/* artigo com dimensão default (sugestões e elementos de lista) */
.listagemNoticiasWrapper .noticiaWrapper.mediumArticle,
.listagemNoticiasWrapper .noticiaWrapper.bigArticle {
	/* width: 539px; */
	width: calc(38%); /* First element at 37% width minus gutter */
}

/* artigo com dimensao pequnea */
.listagemNoticiasWrapper .noticiaWrapper.smallArticle {
	/* width: 447px; */
	width: calc(32%); /* Remaining elements at 31% width minus gutter */
}

/* permitir quebras */
/* escopo correto */
.noticiaInfoWrapper h4,
.noticiaInfoWrapper p,
.noticiaInfoWrapper span{
  white-space: normal;
  color: var(--black);
}



/* estilização do botão ler noticia */
.noticiaInfoWrapper span {
	font-family: "Montserrat-Light", "sans-serif";
	font-size: 19px;
	line-height: 25px;
	letter-spacing: -0.02em;
	display: flex;
	align-items: center;
	gap: 10px;
}
/* icone de botao */
.noticiaInfoWrapper span::after {
	content: "";
	background-image: url("/wp-content/uploads/2024/10/back.svg");
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	transform: rotate(140deg);
	width: 27px;
	height: 27px;
	display: block;
}

/* icone de bota */
.listagemNoticiasWrapper .noticiaInfoWrapper span::after {
	content: "";
	background-image: url("/wp-content/uploads/2024/10/back_blue.svg");
}

/* Paginação */
.paginationWrapper {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.pagination {
	display: flex;
	align-items: center;
	gap: 10px;
}
.pagination span,
.pagination a {
	font-size: 22px;
}


.hero-stats .num { display:inline-block; will-change: contents; }


.menu-desktop-language-wrapper{ display:flex; align-items:center; }

.lang-flag{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%;
  border:2px solid #fff;                 /* anel branco sobre o vídeo */
}

.lang-flag img{ width:100%; height:100%; border-radius:50%; display:block; }

/* quando o header fica branco ao fazer scroll */
header.whiteBG .lang-flag{ border-color: var(--darkerBlue); }

/* opcional: hover subtil */
.lang-flag:hover{ transform: scale(1.03); transition: transform .2s ease; }



/* ===== QUEM SOMOS — primeira secção ===== */
.qs-hero{
  display:grid;
  grid-template-columns: minmax(360px, 36%) 1fr;
  gap: 18px;
  align-items:start;
  margin-top: 18px; /* ajusta se precisares mais aproximação ao header */
}

.qs-hero__lead{
  font-family: "Montserrat-SemiBold","Montserrat",sans-serif;
  font-size: 18px;
  line-height: 26px;
  letter-spacing: -0.02em;
  color: var(--darkBlue);
  text-transform: uppercase;
}

/* a Row que é grid */
.qs-three .wpb_raw_code,
.stats-sec .wpb_raw_code{
  display: contents !important;   /* o wrapper deixa de gerar caixa, o botão já é absolute */
}

.wpb_text_column.wpb_content_element.qs-three_text p {
    color: #00436B;
	margin-bottom: 80px;
}

.qs-three .wpb_raw_code,
.stats-sec .wpb_raw_code{
  position:absolute; width:0; height:0; padding:0; margin:0;
}



/* o botão já tem .scroll-btn { position:absolute; … } – mantém */


.qs-hero__right{ overflow:hidden; }

/* Rail horizontal (snap + scroll suave) */
.qs-rail{
  display:flex;
  gap: 18px !important;
  overflow-x:auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;          /* Firefox */
  -ms-overflow-style: none;       /* IE/Edge Legacy */
  padding-bottom: 8px;
}
.qs-rail::-webkit-scrollbar{ display:none; } /* Chrome/Safari */

/* Cartão da imagem */
.qs-card{
  scroll-snap-align: start;
  min-width: clamp(320px, 32vw, 560px);
}
.qs-card img{
  height: 80% !important;
  object-fit: cover;
  display:block;
}

/* Legendas com “corda” à esquerda */
.qs-caption{
  display:flex;
  align-items:flex-start;
  gap: 12px;
  margin-top: 10px;
}
.qs-rope{ width:56px; height:9px; flex:0 0 auto; }

.qs-caption-lines .cap1,
.qs-caption-lines .cap2{
  font-family: "Montserrat-Medium","Montserrat",sans-serif;
  font-size: 14px;
  line-height: 18px;
  letter-spacing: -0.02em;
  color: #00436B; /* var(--darkBlue) */
}

/* Quem Somos — lead à esquerda */
.qs-hero__lead{
  font-family: "Montserrat-Medium","Montserrat",sans-serif; /* Medium */
  font-weight: 500;
  font-style: normal;
  font-size: 16px;
  line-height: 21px;
  letter-spacing: -0.02em; /* -2% */
  text-transform: uppercase;
  color: #00436B; /* var(--darkBlue) */
}


/* Quem Somos */

.vc_row.vc_row-flex {
	flex-wrap: nowrap !important;
}

.wpb_text_column.wpb_content_element.intro_text p {
    color: #00436B !important;
	width: 475px;
}

.intro_img img {
    width: 50vh !important;
}

.wpb_text_column.wpb_content_element.intro_leg p {
    font-family: "Montserrat-Regular", "sans-serif";
    font-weight: 500;
    font-style: Italic;
    font-size: 14px;
    line-height: 16px;
    letter-spacing: -3%;
    color: #00436B;
}

/* ---- “Quem somos” — linha de imagens em horizontal ---- */
/* Intro: scroll horizontal SEM bloquear o scroll vertical da página */
.vc_row.intro{
  overflow-x: auto;
  overflow-y: visible;           /* ou: unset */
  overscroll-behavior-x: contain;/* mantém o scroll horizontal “preso” à row */
  overscroll-behavior-y: auto;   /* deixa o scroll vertical “subir” para o body */
  touch-action: pan-y;           /* melhora em touchpad/telemóvel */
}


/* Esconder barras de scroll na secção Intro (Chrome/Safari/Edge/Firefox/IE) */
.vc_row.intro,
.vc_row.intro .wpb_wrapper,
.qs-rail{
  -ms-overflow-style: none;   /* IE 10/11 */
  scrollbar-width: none;      /* Firefox */
  margin-right: -25px;
  gap: 18px !important;
}
.vc_row.intro::-webkit-scrollbar,
.vc_row.intro .wpb_wrapper::-webkit-scrollbar,
.qs-rail::-webkit-scrollbar{
  display: none;              /* Chrome/Safari/Edge */
}

/* iOS suaviza o scroll horizontal sem mostrar barra */
.vc_row.intro{
  -webkit-overflow-scrolling: touch;
}



.vc_row.intro > .wpb_column:has(.intro_text){ order: 0; }
.vc_row.intro > .wpb_column.intro-img-col{ order: 1; }

.vc_row.intro::-webkit-scrollbar{ display:none; }

.vc_row.intro > .wpb_column{
  float: none;
  width: auto !important;   /* a largura é a do conteúdo */
  flex: 0 0 auto;           /* não encolher */
  scroll-snap-align: start;
}

/* A coluna da direita passa a rail horizontal */
.intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
  display: flex;
  flex-wrap: nowrap;
  gap: 3px;                /* gap entre imagens */
  overflow: visible;        /* sem scroll aqui — o scroll vive na ROW */
}

.intro .intro_text{
  min-width: clamp(320px, 36vw, 560px);  /* ocupa um bloco fixo agradável */
}

.intro .intro-img-col > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{
  display: none;                          /* esconde barra (WebKit) */
}

/* Cada row interna vira um “cartão” e deixa de ocupar 100% */
.intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row{
  flex: 0 0 auto;
  width: auto;
  margin: 0 !important;       /* remove margens negativas do VC */
  padding: 0 !important;
  scroll-snap-align: start;  
}

/* Nas colunas internas, retira o float/width 100% do VC */
.intro .intro-img-col .vc_row > .wpb_column{
  float: none;
  width: auto !important;
}

/* Remove o espaço inferior padrão dos elementos do VC */
.intro .intro-img-col .wpb_content_element{
  margin-bottom: 0 !important;
}

/* (Opcional) ajuste da imagem/legenda, se precisares */
.intro .intro_img img{ display:block; object-fit:cover; height: 60vh !important;  }
.intro .intro_leg{ margin-top:10px; }

/* ===== Secção de indicadores ===== */
.stats-sec{
  position: relative;
  padding: 80px var(--page-margin) 80px;
  background: #FCFFFE; /* se quiseres “branco do tema” */
  color: #001F32;
}

/* contêiner dos 3 cartões */
.stats-grid{
  display: flex;
  align-items: flex-end;  /* todos em baixo por defeito */
  gap: 0;
  height: 500px;
  margin-bottom: 100px;
}

/* apenas o 1.º vai para o topo */
.stats-grid > *:first-child{
  align-self: flex-start;
}


/* Cartões individuais */
.stat{ color:#001F32; }

.stat--center{ text-align:left; }
.stat--right{ text-align:left; }

/* Número grande (+55, 35%, +20) */
.stat-num p{
  display:block;
  font-family: "Montserrat-SemiBold","Montserrat",sans-serif;
  font-weight: 600;
  font-style: normal;         /* “SemiBold” é o weight 600 */
  font-size: 120px;
  line-height: 110px;         /* CAP-Height aproximado */
  letter-spacing: -0.04em;    /* -4% */
  text-transform: uppercase;
  color:#001F32;
}

/* Texto “ANOS DE HISTÓRIA”, “PESO…”, “MERCADOS” */
.stat-label p{
  font-family: "Montserrat-SemiBold","Montserrat",sans-serif;
  font-weight: 600;
  font-style: normal;
  font-size: 32px;
  line-height: 30px;
  letter-spacing: -0.02em;    /* -2% */
  text-transform: uppercase;
  color:#001F32;
  margin-top: -100px !important;
  margin-left: 230px !important;
}

.stat-label p{ 
  margin: 0;               /* elimina espaçamento extra */
  /* opcional: limita largura para quebras bonitas */
  /* max-width: 420px; */
}

/* Botão circular de scroll (100x100) */
.scroll-btn{
  position: absolute;
  top: 24px;                 /* ajusta conforme quiseres */
  right: var(--page-margin);
  width: 100px;
  height: 100px;
  border: 1px solid #001F32;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  text-decoration: none;
}

.scroll-label{
  display: inline-block;
  color:#001F32;
  font-family: "Montserrat-Italic","Montserrat",sans-serif;
  font-weight: 400;
  font-style: italic;        /* importante para usar a face Itálica */
  font-size: 14px;
  line-height: 16px;
  letter-spacing: -0.03em;   /* -3% */
}

/* Scroll: seta não itálica e mais comprida */
.scroll-btn .scroll-label::after{
  content: "\2193";          /* seta ↓ */
  display: block;
  margin-top: 4px;
  font-style: normal;        /* cancela o itálico do .scroll-label */
  font-weight: 400;
  font-size: 18px;           /* aumenta o tamanho base da seta */
  line-height: 1;
  letter-spacing: 0;
  transform: scaleY(1.8);    /* “estica” para ficar comprida */
  transform-origin: 50% 0;   /* cresce para baixo */
  color: #001F32;
}

/* Linha dos indicadores — manter numa só linha e na ordem do WPBakery */
.stats-sec.vc_row.vc_row-flex{
  flex-wrap: nowrap !important;      /* tudo na mesma linha */
  flex-direction: row !important;    /* esquerda -> direita */
  column-gap: 24px;                  /* espaçamento opcional */
}

/* 3 colunas com larguras iguais */
.stats-sec.vc_row.vc_row-flex > .wpb_column{
  order: initial;               /* reseta qualquer ordem estranha */
  flex: 0 0 33.333% !important;
  max-width: 33.333% !important;
}


/* Label em colunas (linhas empilhadas) */
.stat-label{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  margin:0; /* elimina margens herdadas */
  text-transform:uppercase;
  color:#001F32;
  /* Se estavas a posicionar com margens negativas, mantém só se precisares: */
  /* margin-top:-100px; margin-left:230px; */
}

/* Tamanhos/linhas diferentes por “nível” */
.stat-label .l1{        /* linha mais pequena (ex: “ANOS”, “PESO DO”) */
  font-family:"Montserrat-SemiBold","Montserrat",sans-serif;
  font-weight:600;
  font-size:22px;
  line-height:20px;
  letter-spacing:-0.02em;
}

.stat-label .l2{        /* ainda mais pequena (ex: “DE”) */
  font-family:"Montserrat-SemiBold","Montserrat",sans-serif;
  font-weight:600;
  font-size:18px;
  line-height:18px;
  letter-spacing:-0.02em;
}

.stat-label .l3{        /* maior (ex: “HISTÓRIA”, “MERCADO/INTERNACIONAL”) */
  font-family:"Montserrat-SemiBold","Montserrat",sans-serif;
  font-weight:600;
  font-size:32px;
  line-height:30px;
  letter-spacing:-0.02em;
}

/* Percentagem com altura diferente ao lado do 35 */
.stat-num .pct{
  font-size:.55em;          /* ~55% da altura do número */
  line-height:1;
  display:inline-block;
  transform: translateY(-0px); /* ajusta verticalmente se precisares */
}

/* Secção 3 colunas com legendas */
.qs-three{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 36px 90px;           /* vertical, horizontal */
  align-items: end;
}
.qs-three .wpb_single_image img{
  width: 100%; height: auto; display: block; object-fit: cover;
}

/* Legenda com corda */
.qs-caption{
  display: flex; align-items: flex-start; gap: 12px; margin-top: 8px;
}
.qs-rope{ width:56px; height:9px; display:block; margin-top: 10px; margin-bottom: 10px; }
.qs-caption-lines .cap1,
.qs-caption-lines .cap2{
  font-family: "Montserrat-Regular","sans-serif";
  font-style: italic;
  font-size: 14px; line-height: 16px; letter-spacing: -0.03em;
  color: #00436B;
}
.qs-caption-lines .cap1{ font-weight: 500; }   /* 1ª linha */
.qs-caption-lines .cap2{ opacity: .9; }        /* 2ª linha */


.vc_col-sm-4 {
    width: 100% !important; 
} 

/* Torna a row realmente um grid e neutraliza estilos do VC nos filhos */
.vc_row.qs-three{
  display: flex;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 36px 18px;
  align-items: end !important;
  
}

.vc_row.qs-three > .wpb_column:nth-child(1) .vc_single_image-img, .vc_row.qs-three > .wpb_column:nth-child(3) .vc_single_image-img {
	height: 600px !important;
}

.vc_row.qs-three > .wpb_column{
  float: none !important;         /* ignora floats do VC */
  width: auto !important;         /* deixa o grid controlar a largura */
  margin: 0 !important;           /* remove offsets do VC */
  min-width: 0;                   /* evita “esticar” a coluna pelo conteúdo */

}


/* (opcional) só se precisares mesmo — NÃO global! */
/* .alguma-seccao .vc_col-sm-4 { width: 100% !important; } */

.marcos_historicos p {
    font-family: "Montserrat-Regular","sans-serif";
	font-weight: 600;
	font-style: SemiBold;
	font-size: 37px;
	line-height: 40px;
	letter-spacing: -2%;
	text-transform: uppercase;
	color: #00436B;
	margin-top: 100px;

}

.conheca p {
	font-family: "Poppins-SemiBold", "sans-serif";
	font-weight: 600;
	font-style: SemiBold;
	font-size: 18px;
	color:  #00436B;
	line-height: 24px;
	letter-spacing: -2%;
	text-transform: uppercase;
	margin-top: 40px;
	margin-bottom: 40px !important;
}

.ano_1970_text p{
	font-family: "Montserrat-Regular","sans-serif";
	font-weight: 600;
	font-style: SemiBold;
	font-size: 28px;
	color: #00436B;
	line-height: 32px;
	letter-spacing: -2%;
	margin-bottom: 20px !important;
}

.ano_1980_text p{
	font-family: "Montserrat-Regular","sans-serif";
	font-weight: 600;
	font-style: SemiBold;
	font-size: 28px;
	color: #00436B;
	line-height: 32px;
	letter-spacing: -2%;
	margin-bottom: 20px !important;
}

.ano_1989_text p{
	font-family: "Montserrat-Regular","sans-serif";
	font-weight: 600;
	font-style: SemiBold;
	font-size: 28px;
	color: #00436B;
	line-height: 32px;
	letter-spacing: -2%;
	margin-bottom: 20px !important;
}

.ano_1990_text p{
	font-family: "Montserrat-Regular","sans-serif";
	font-weight: 600;
	font-style: SemiBold;
	font-size: 28px;
	color: #00436B;
	line-height: 32px;
	letter-spacing: -2%;
	margin-bottom: 20px !important;
}

.ano_2000_text p{
	font-family: "Montserrat-Regular","sans-serif";
	font-weight: 600;
	font-style: SemiBold;
	font-size: 28px;
	color: #00436B;
	line-height: 32px;
	letter-spacing: -2%;
	margin-bottom: 20px !important;
}

.ano_2010_text p{
	font-family: "Montserrat-Regular","sans-serif";
	font-weight: 600;
	font-style: SemiBold;
	font-size: 28px;
	color: #00436B;
	line-height: 32px;
	letter-spacing: -2%;
	margin-bottom: 20px !important;
}

.ano_2020_text p{
	font-family: "Montserrat-Regular","sans-serif";
	font-weight: 600;
	font-style: SemiBold;
	font-size: 28px;
	color: #00436B;
	line-height: 32px;
	letter-spacing: -2%;
	margin-bottom: 20px !important;
}


/* Texto de 1970 (descrição) */
.ano_1970 .hist-copy p{
  font-family: "Montserrat-Regular","Montserrat",sans-serif;
  font-weight: 400;           /* Regular */
  font-style: normal;
  font-size: 20px;
  line-height: 24px;
  letter-spacing: -0.02em;    /* “-2%” em CSS é em em, não em % */
  color: #001F32;
}

.ano_1970 .hist-copy1 p{
  font-family: "Montserrat-Regular","Montserrat",sans-serif;
  font-weight: 400;           /* Regular */
  font-style: normal;
  font-size: 20px;
  line-height: 24px;
  letter-spacing: -0.02em;    /* “-2%” em CSS é em em, não em % */
  color: #001F32;
}

.ano_1980 .hist-copy p{
  font-family: "Montserrat-Regular","Montserrat",sans-serif;
  font-weight: 400;           /* Regular */
  font-style: normal;
  font-size: 20px;
  line-height: 24px;
  letter-spacing: -0.02em;    /* “-2%” em CSS é em em, não em % */
  color: #001F32;
  width: 33%;
}

.ano_1980 .hist-copy1 p{
  font-family: "Montserrat-Regular","Montserrat",sans-serif;
  font-weight: 400;           /* Regular */
  font-style: normal;
  font-size: 20px;
  line-height: 24px;
  letter-spacing: -0.02em;    /* “-2%” em CSS é em em, não em % */
  color: #001F32;
}



.principais_projetos p{
font-family: "Poppins-SemiBold", "sans-serif";
font-weight: 600;
font-style: SemiBold;
font-size: 18px;
color: #00436B;
line-height: 24px;
letter-spacing: -2%;
text-transform: uppercase;

margin-top: 100px;
}

/* “Corda” por baixo do texto */
.ano_1970 .rope-wrap{ margin-top: 10px; }
.ano_1970 .qs-rope{ width:56px; height:9px; display:block; }

.ano_1980 .rope-wrap{ margin-top: 10px; }
.ano_1980 .qs-rope{ width:56px; height:9px; display:block; }


.hist_img > .vc_column-inner > .wpb_wrapper{
  display: flex;
  gap: 18px;
}
.hist_img .wpb_single_image{ flex:1 1 0; }


/* Row HISTÓRIA: texto à esquerda, imagens à direita */
.vc_row.historia{
  display: flex;             /* controla o layout com Flex */
                 /* espaço entre as duas colunas */
  align-items: flex-start;
}

/* WPBakery usa floats nas colunas — anulamos só nesta row */
.vc_row.historia > .wpb_column{
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

/* Esconde todas as rows da História por defeito */
.vc_row.historia{ display:none !important; }
/* A ativa aparece com o layout normal da tua página */
.vc_row.historia.is-active{ display:flex !important; }


/* Larguras (ajusta se quiseres 30/70, 35/65, etc.) */
.vc_row.historia .ano_1970{ flex: 0 0 32%; max-width: 32%; }  /* texto à esquerda */
.vc_row.historia .hist_img {
    flex: 1 1 68%;
    max-width: 68%;
    margin-right: -25px !important;
}
/* --- TIMELINE: slider horizontal de anos --- */
.hist-timeline{ margin:10px 0 24px; }
.hist-timeline .tl{
  display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto;
  gap:16px; align-items:center;
}

/* viewport fixa; rail desliza por transform */
.tl-years-viewport{ overflow:hidden; width:100%; }
.tl-years {
    display: flex;
    flex-wrap: nowrap;
    gap: 72px;
    transition: transform .35s ease;
    will-change: transform;
    flex-direction: row;
    justify-content: space-between;
}
.tl-year{ flex:0 0 auto; /* nunca encolher */ }

.tl-year{
  font-family:"Montserrat-Medium",sans-serif;
  font-size:54px; line-height:1; letter-spacing:-.04em; text-transform:uppercase;
  color:#001F32; opacity:.25; border:0; background:transparent; padding:0; cursor:pointer;
  transition:opacity .2s ease, color .2s ease;
}
.tl-year.is-active{ opacity:1; color:#0B3557; }

/* trilho + pontos */
.tl-track{ grid-column:1 / -1; position:relative; height:6px; background:#e7e7e7; border-radius:6px; }
.tl-fill{ position:absolute; left:0; top:0; bottom:0; width:0; background:#0B3557; border-radius:6px; transition:width .35s ease; }
.tl-dot{
  position:absolute; top:50%; transform:translate(-50%,-50%);
  width:18px; height:18px; border-radius:50%;
  background:#e7e7e7; box-shadow:0 0 0 2px #e7e7e7;
}
.tl-dot.is-active{ background:#0B3557; box-shadow:0 0 0 2px #0B3557; }

.tl-nav{ display:flex; gap:10px; justify-self:start; }
.tl-prev,.tl-next{
  width:36px; height:36px; border-radius:50%; border:1px solid #0B3557; background:#fff;
  display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
}
.tl-prev:disabled,.tl-next:disabled{ opacity:.35; cursor:not-allowed; }

.clientes p {
	font-family: "Montserrat-Medium",sans-serif;
	font-weight: 600;
	font-style: SemiBold;
	font-size: 37px;
	color: #00436B;
	line-height: 40px;
	letter-spacing: -2%;
	text-transform: uppercase;
	margin-top: 100px;

}

.projetos .rope-wrap{ margin-top: 10px; }
.projetos .qs-rope{ width:56px; height:9px; display:block; }

.projetos_text p{
	font-family: "Montserrat-Medium",sans-serif;
	font-weight: 700;
	font-style: Italic;
	font-size: 14px;
	color: #00436B;
	line-height: 16px;
	letter-spacing: -3%;

}

.projetos {
	margin-top: 100px;
}


/* linha "Projetos Nacionais" com a corda à esquerda */
.projetos .vc_column-inner > .wpb_wrapper{
  display: flex;
  align-items: center;
  gap: 12px;          /* espaço entre corda e texto */
  flex-wrap: nowrap;
}

/* o Raw HTML (corda) passa para a frente da linha */
.projetos .wpb_raw_code{ order: -1; }

/* ajustes visuais */
.projetos .rope-wrap{ margin: 0; }     /* tirar margem de baixo */
.projetos .qs-rope{ width:56px; height:9px; display:block; }
.projetos .projetos_text p{ margin:0; } /* garantir alinhamento vertical */

.certificacoes p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 600;
font-style: SemiBold;
font-size: 37px;

line-height: 40px;
letter-spacing: -2%;
text-transform: uppercase;
color: #00436B;
margin-top: 100px;
margin-bottom: 40px !important;
}

.certificacoes_text p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 400;
font-style: Regular;
font-size: 16px;
line-height: 21px;
letter-spacing: -2%;
color: #00436B;
width: 30% !important;
margin-bottom: 40px !important;
}


.logo p {

	font-family: "Montserrat-Medium",sans-serif;
font-weight: 400;
font-style: Regular;
font-size: 16px;
line-height: 21px;
letter-spacing: -2%;
text-align: center;
color: #00436B;
}

.vc_row.galeria .vc_column-inner > .wpb_wrapper {
    display: flex;
    flex-wrap: nowrap;
    gap: 18px;
    overflow-x: auto;
    scrollbar-width: none;
    margin-right: -25px;
}
.vc_row.galeria .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{ display:none; }

.vc_row.galeria .vc_inner{
  flex:0 0 auto;
  width:auto !important;
  margin:0 !important;
}
.vc_row.galeria .vc_inner > .wpb_column{
  float:none !important;
  width:auto !important;
}
.vc_row.galeria .wpb_content_element{ margin-bottom:0 !important; }


/* Em cada item da galeria, empilha imagem e legenda na vertical */
.vc_row.galeria .vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper{
  display: inline-flex;       /* o “cartão” mede pela largura do conteúdo */
  flex-direction: column;     /* imagem em cima, legenda em baixo */
  gap: 8px;                   /* espaçamento entre imagem e legenda */
  align-items: flex-start;    /* evita esticar legenda em largura */
}

/* Garantir que o “cartão” não vira um mini-grid horizontal */
.vc_row.galeria .vc_inner{ display:block; }

/* Só para evitar que o VC force larguras/troque linhas dentro do cartão */
.vc_row.galeria .wpb_single_image,
.vc_row.galeria .wpb_raw_code{
  width: 100%;
}



.vc_row.galeria1 .vc_column-inner > .wpb_wrapper {
    display: flex;
    flex-wrap: nowrap;
    gap: 18px;
    overflow-x: auto;
    scrollbar-width: none;
    margin-right: -25px;
}
.vc_row.galeria1 .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{ display:none; }

.vc_row.galeria1 .vc_inner{
  flex:0 0 auto;
  width:auto !important;
  margin:0 !important;
}
.vc_row.galeria1 .vc_inner > .wpb_column{
  float:none !important;
  width:auto !important;
}
.vc_row.galeria1 .wpb_content_element{ margin-bottom:0 !important; }


/* Em cada item da galeria, empilha imagem e legenda na vertical */
.vc_row.galeria1 .vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper{
  display: inline-flex;       /* o “cartão” mede pela largura do conteúdo */
  flex-direction: column;     /* imagem em cima, legenda em baixo */
  gap: 8px;                   /* espaçamento entre imagem e legenda */
  align-items: flex-start;    /* evita esticar legenda em largura */
}

/* Garantir que o “cartão” não vira um mini-grid horizontal */
.vc_row.galeria1 .vc_inner{ display:block; }

/* Só para evitar que o VC force larguras/troque linhas dentro do cartão */
.vc_row.galeria1 .wpb_single_image,
.vc_row.galeria1 .wpb_raw_code{
  width: 100%;
}


/* 0) Corrigir um override global que está a partir colunas 4/8 */
.vc_col-sm-4 { /* REMOVE/COMENTA a tua regra global de 100% aqui! */
  /* width: 100% !important;  <-- apaga isto no ficheiro */
}
/* …e só nesta secção força 4/8 como esperado */
.projetos_internacionais .vc_col-sm-4{ width:33.333% !important; }
.projetos_internacionais .vc_col-sm-8{ width:66.666% !important; }

/* 1) A coluna da direita vira um "rail" horizontal com scroll */
.projetos_internacionais .vc_col-sm-8 > .vc_column-inner > .wpb_wrapper{
  display:flex;
  flex-wrap:nowrap;
  gap:3px;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  -ms-overflow-style:none;
  scrollbar-width:none;
  padding-bottom:8px;         /* respiro para a barra (se aparecer) */
}
.projetos_internacionais .vc_col-sm-8 > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{ display:none; }

/* 2) Cada .projetos_internacionais_img (inner row) passa a “cartão” */
.projetos_internacionais .projetos_internacionais_img{
  flex:0 0 auto;               /* não encolhe, não cresce */
  width:auto !important;       /* deixa medir pelo conteúdo */
  margin:0 !important;
  scroll-snap-align:start;
}
/* dentro do cartão, remove floats/100% típicos do VC */
.projetos_internacionais .projetos_internacionais_img > .wpb_column{
  float:none !important;
  width:auto !important;
}

/* 3) Empilha IMAGEM + LEGENDA na vertical dentro de cada cartão */
.projetos_internacionais .projetos_internacionais_img
> .wpb_column > .vc_column-inner > .wpb_wrapper{
  display:inline-flex;
  flex-direction:column;       /* imagem em cima, legenda em baixo */
  gap:8px;
  align-items:flex-start;
  min-width:clamp(260px, 32vw, 420px);  /* largura agradável por cartão */
}

/* 4) Pequenos resets para não “forçar” quebras */
.projetos_internacionais .projetos_internacionais_img .wpb_content_element{
  margin-bottom:0 !important;
}
.projetos_internacionais .projetos_internacionais_img .vc_single_image-img{
  display:block;

  height:auto;                 /* usa object-fit se quiseres alturas iguais */
}

/* (Opcional) tirar acolchoamento interno da coluna da direita */
.projetos_internacionais .vc_col-sm-8 > .vc_column-inner{
  padding-left:0;
}


.premio p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 600;
font-style: SemiBold;
font-size: 37px;

line-height: 40px;
letter-spacing: -2%;
text-transform: uppercase;
color: #00436B;
margin-top: 100px;
margin-bottom: 40px !important;
}

.logo_section .vc_col-sm-4{
  width: 33.333% !important;
  float: left;              /* deixa o WPBakery alinhar lado a lado */
}

.premio_text p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 400;
font-style: Regular;
font-size: 16px;
line-height: 21px;
letter-spacing: -2%;
color: #00436B;
width: 30% !important;
margin-bottom: 40px !important;
}

.year_1989_title p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 600;
font-style: SemiBold;
font-size: 28px;
line-height: 32px;
letter-spacing: -2%;
color: #00436B;
width: 300px !important;
margin-bottom: 20px !important;
}


.year_1989_text p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 400;
font-style: Regular;
font-size: 20px;
line-height: 24px;
letter-spacing: -2%;
color: #001F32;
width: 300px !important;
margin-bottom: 20px !important;
}

.year_1989_img img {
	margin-top: 20px;
}

.year_2006_title p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 600;
font-style: SemiBold;
font-size: 28px;
line-height: 32px;
letter-spacing: -2%;
color: #00436B;
width: 300px !important;
margin-bottom: 20px !important;
}

.year_2006_title1 p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 600;
font-style: SemiBold;
font-size: 28px;
line-height: 32px;
letter-spacing: -2%;
color: #00436B;
width: 300px !important;
margin-bottom: 20px !important;
}


.year_2006_text p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 400;
font-style: Regular;
font-size: 20px;
line-height: 24px;
letter-spacing: -2%;
color: #001F32;
width: 300px !important;
margin-bottom: 20px !important;
}

.year_2006_img img {
	margin-top: 20px;
}

.year_2009_title p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 600;
font-style: SemiBold;
font-size: 28px;
line-height: 32px;
letter-spacing: -2%;
color: #00436B;
width: 300px !important;
margin-bottom: 20px !important;
}


.year_2009_text p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 400;
font-style: Regular;
font-size: 20px;
line-height: 24px;
letter-spacing: -2%;
color: #001F32;
width: 300px !important;
margin-bottom: 20px !important;
}

.year_2012_title p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 600;
font-style: SemiBold;
font-size: 28px;
line-height: 32px;
letter-spacing: -2%;
color: #00436B;
width: 300px !important;
margin-bottom: 20px !important;
}


.year_2012_text p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 400;
font-style: Regular;
font-size: 20px;
line-height: 24px;
letter-spacing: -2%;
color: #001F32;
width: 300px !important;
margin-bottom: 20px !important;
}

.year_2015_title p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 600;
font-style: SemiBold;
font-size: 28px;
line-height: 32px;
letter-spacing: -2%;
color: #00436B;
width: 300px !important;
margin-bottom: 20px !important;

}


.year_2015_text p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 400;
font-style: Regular;
font-size: 20px;
line-height: 24px;
letter-spacing: -2%;
color: #001F32;
width: 300px !important;
margin-bottom: 20px !important;
}

/* todas as rows de ano ficam escondidas por defeito */
.award_year .vc_inner.vc_row-fluid[class*="year_"]{ display:none; }

/* a row activa aparece */
.award_year .vc_inner.vc_row-fluid.is-active{ display:block; }

/* === TIMELINE: anos por baixo (mantém) === */
.hist-timeline .tl{
  display:grid;
  grid-template-rows:auto auto;
  row-gap:14px;
}
.hist-timeline .tl-track{ grid-row:1; }
.hist-timeline .tl-years-viewport{ grid-row:2; }

/* TRACK da timeline como UMA corda contínua */
.hist-timeline .tl-track{
  position: relative;
  height: 9px;
  background: transparent;
  overflow: visible;
  grid-column: 1 / -1;      /* garante que ocupa a linha toda do grid */
}

.hist-timeline .tl-track::before{
  content:"";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0; bottom: 0;

  /* ocupa toda a largura do ecrã, ignorando o contentor */
  width: 100vw;

  /* desenha a corda repetida, bem nítida */
  background-image: url('/wp-content/uploads/2024/10/rope.svg');
  background-repeat: repeat-x;
  background-position: center;
  background-size: 100% 100%; /* largura x altura do “elo” da corda */
  z-index: 0;
}


/* (opcional) parte “activa” também com corda, mais escura */
.hist-timeline .tl-fill{
  position:absolute; left:0; top:0; bottom:0; width:0;
  background: url('/wp-content/uploads/2024/10/rope.svg')
              repeat-x center;
  background-size: 56px 9px;
  filter: brightness(.7) saturate(1.3);      /* dá contraste à parte activa */
  /* display:none; */
}

/* pontos por cima da corda */
.hist-timeline .tl-dot{
  position:absolute; top:50%; transform:translate(-50%,-50%);
  z-index:2;
}

/* anos por baixo (sem mudar) */
.hist-timeline .tl-years{
  display:flex; justify-content:space-between;
}
.hist-timeline .tl-year{
  background:none; border:0; padding:0;
  font-family:"Montserrat-Medium",sans-serif;
  font-size:54px; letter-spacing:-.04em; line-height:1;
  color:rgba(11,53,87,.30);
  cursor:pointer;
}
.hist-timeline .tl-year.is-active{ color:#0B3557; }

/* === QS-THREE: 3 colunas numa linha + scroll horizontal === */
.vc_row.qs-three{
  display: flex !important;
  flex-wrap: nowrap;                 /* tudo numa só linha */
  align-items: stretch;              /* colunas com a mesma altura */
  gap: 36px 18px;
  overflow-x: auto;                  /* scroll lateral quando não couber */
  -ms-overflow-style: none;
  scrollbar-width: thin;
  min-height: clamp(420px, 55vh, 680px);  /* ALTURA DA SECÇÃO */
}

/* neutraliza regras do WPBakery e do teu override global */
.vc_row.qs-three > .wpb_column{
  float: none !important;
  width: auto !important;            /* impede 100% */
  flex: 0 0 clamp(320px, 33vw, 560px); /* largura “cartão” responsiva */
  min-width: 320px;                  /* evita encolher demais */
}

/* ESQ + DIR: imagem ocupa toda a altura do cartão; legenda fica em baixo */
.vc_row.qs-three > .wpb_column:nth-child(1) > .vc_column-inner > .wpb_wrapper,
.vc_row.qs-three > .wpb_column:nth-child(3) > .vc_column-inner > .wpb_wrapper{
  display: grid;
  grid-template-rows: 1fr auto;      /* [imagem cresce] + [legenda] */
  height: 100%;
}

/* a “caixa” da imagem estica à altura da coluna */
.vc_row.qs-three > .wpb_column:nth-child(1) figure,
.vc_row.qs-three > .wpb_column:nth-child(3) figure{
  margin: 0;
  height: 100%;
}
.vc_row.qs-three > .wpb_column:nth-child(1) .vc_single_image-wrapper,
.vc_row.qs-three > .wpb_column:nth-child(3) .vc_single_image-wrapper{
  height: 100%;
}

/* a imagem preenche e corta excedente */
.vc_row.qs-three > .wpb_column:nth-child(1) .vc_single_image-img,
.vc_row.qs-three > .wpb_column:nth-child(3) .vc_single_image-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* (opcional) esconder barra no Chrome/Safari */
.vc_row.qs-three::-webkit-scrollbar{ height:4px; }



/* QS-THREE — scroll lateral invisível */
.vc_row.qs-three {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    margin-right: -25px;
}

/* Chrome/Safari/WebKit: esconde a barra */
.vc_row.qs-three::-webkit-scrollbar{
  height: 0 !important;  /* esconde a horizontal */
  width: 0 !important;   /* (se houver vertical) */
  display: none;         /* fallback */
}

/* ===== TIMELINE — anos por cima, linha simples, setas à esquerda ===== */
.hist-timeline .tl{
  display: grid;
  grid-template-columns: auto 1fr;   /* [setas] [conteúdo] */
  grid-template-rows: auto auto;     /* [anos] [linha]    */
  column-gap: 18px;
  row-gap: 12px;
  align-items: center;
}

/* ANOS POR CIMA DA LINHA */
.hist-timeline .tl-years-viewport{
  grid-column: 2;
  grid-row: 1;               /* <- cima */
  overflow: visible;
}

/* LINHA simples (sem corda) */
.hist-timeline .tl-track{
  grid-column: 2;
  grid-row: 2;               /* <- baixo */
  position: relative;
  height: 4px;
  background: #E6EBF1;       /* cinza claro */
  border-radius: 4px;
}

/* remove por completo o pseudo-elemento com a “corda” */
.hist-timeline .tl-track::before{ content: none !important; }

/* parte preenchida da linha (progresso) */
.hist-timeline .tl-fill{
  display: block;            /* estava escondido nas regras antigas */
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 0;                  /* o JS ajusta */
  background: #0B3557;       /* azul escuro */
  border-radius: 4px;
  transition: width .35s ease;
}

/* pontos nos anos */
.hist-timeline .tl-dot{
  position: absolute;
  top: 50%; transform: translate(-50%, -50%);
  width: 18px; height: 18px; border-radius: 50%;
  background: #E6EBF1; box-shadow: 0 0 0 2px #E6EBF1;
}
.hist-timeline .tl-dot.is-active{
  background: #0B3557; box-shadow: 0 0 0 2px #0B3557;
}

/* estilo dos anos */
.hist-timeline .tl-years{ display:flex; justify-content:space-between; }
.hist-timeline .tl-year{
  background: none; border: 0; padding: 0;
  font-family: "Montserrat-Medium", sans-serif;
  font-size: 54px; line-height: 1; letter-spacing: -.04em;
  color: rgba(11,53,87,.30);
  cursor: pointer; transition: color .2s, opacity .2s;
}
.hist-timeline .tl-year.is-active{ color: #0B3557; opacity: 1; }

/* SETAS À ESQUERDA (ao nível da linha) */
.hist-timeline .tl-nav{
  grid-column: 1;            /* coluna da esquerda */
  grid-row: 2;               /* alinhadas com a linha */
  display: flex; gap: 10px; justify-self: start;
}
.hist-timeline .tl-prev, .hist-timeline .tl-next{
  width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid #0B3557; background: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  
}
.hist-timeline .tl-prev:disabled, .hist-timeline .tl-next:disabled{
  opacity: .35; cursor: not-allowed;
}

/* TIMELINE — setas por baixo da linha (mantêm-se à esquerda) */
.hist-timeline .tl{
  grid-template-rows: auto auto auto; /* [anos] [linha] [setas] */
  row-gap: 8px;                       /* aproxima ligeiramente */
}

.hist-timeline .tl-nav{
  grid-column: 1;   /* coluna da esquerda */
  grid-row: 3;      /* por baixo da linha */
  align-self: start;
  justify-self: start;
  margin-top: 20px;  /* afasta da linha (ajusta à vontade) */
}

/* TIMELINE — setas por baixo SEM reservar coluna à esquerda */
.hist-timeline .tl{
  grid-template-columns: 1fr !important;  /* 1 coluna apenas */
  grid-template-rows: auto auto auto;      /* [anos] [linha] [setas] */
  row-gap: 8px;
}
.hist-timeline .tl-years-viewport,
.hist-timeline .tl-track{
  grid-column: 1 / -1;  /* ocupam a largura total */
}
.hist-timeline .tl-nav{
  grid-column: 1;       /* mesma coluna */
  grid-row: 3;          /* por baixo da linha */
  justify-self: start;  /* encostadas à esquerda */
  align-self: start;
  margin-top: 4px;
}


.presenca_title p{
	font-family: "Montserrat-Medium", sans-serif;
	font-weight: 600;
	font-style: SemiBold;
	font-size: 37px;
	line-height: 40px;
	letter-spacing: -2%;
	text-transform: uppercase;
	color: #00436B;
	margin-top: 100px;
	margin-bottom: 40px !important;
}

.presenca_subtitle p {

	font-family: "Montserrat-Medium", sans-serif;
	font-weight: 500;
	font-style: Medium;
	font-size: 16px;
    color: #00436B;
	line-height: 21px;
	letter-spacing: -2%;
	width: 20%;
}


/* Coluna fixa de bolas à esquerda (desktop) */
.pp-bullets{
  position: relative;
  left: var(--page-margin);
  top: 0px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  z-index: 5;
  margin-top:-150px;
}

.pp-bullet{
  width: 80px; height: 80px;
  border-radius: 50%;
  border: 2px solid var(--darkerBlue);
  background: #fff;
  color: var(--darkerBlue);
  font-family: "Montserrat-SemiBold", sans-serif;
  font-size: 18px;
  line-height: 1;
  display: inline-flex; align-items: center; justify-content: center;
  opacity: .75;
  cursor: pointer;
  transition: transform .15s ease, background-color .15s ease, color .15s ease, opacity .15s ease, border-color .15s ease;
  margin-bottom: 18px !important;
}
.pp-bullet:hover{ opacity: 1; transform: scale(1.03); }
.pp-bullet.is-active{
  background: #0B3557; border-color: #0B3557; color: #fff; opacity: 1;
}


.year_1970 {
	margin-left: 475px !important;
	margin-top: 20px !important;
}

.year_1980 {
	margin-left: 475px !important;
	margin-top: 20px !important;
}

.year_1990 {
	margin-left: 475px !important;
	margin-top: 20px !important;
}

.year_2000 {
	margin-left: 475px !important;
	margin-top: 20px !important;
}

.year_2010 {
	margin-left: 475px !important;
	margin-top: 20px !important;
}

.year_2020 {
	margin-left: 475px !important;
	margin-top: 20px !important;
}


.principais_projetos_text p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 600;
font-style: SemiBold;
font-size: 37px;
color: #001F32;
line-height: 40px;
letter-spacing: -2%;
text-transform: uppercase;
margin-left: 350px;
    width: 45%;
    margin-top: 100px;
}


.projects p {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 500;
font-style: Medium;
font-size: 18px;
color: #001F32;
line-height: 22px;
letter-spacing: -2%;

}

.projects li {
	font-family: "Montserrat-Medium",sans-serif;
font-weight: 500;
font-style: Medium;
font-size: 18px;
color: #001F32;
line-height: 22px;
letter-spacing: -2%;
width: 70%;
}

/* Bolinha grande do ano */
.pp-year-bubble{
  position: sticky;          /* cola enquanto se faz scroll na secção */
  top: 200px;                /* ajusta conforme precisares */
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background:   #001F32;     /* podes trocar por var(--darkerBlue) */
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Montserrat-SemiBold","sans-serif";
  font-size: 90px;           /* ~ bom para 300x300 */
  line-height: 1;
  z-index: 3;
  margin-left: 350px;        /* alinha com as tuas .year_XXXX */
  margin-top: -300px;
}

span.pp-year {
    color: #fff;
}

/* linha (haste) que sai da bolinha */
.pp-year-bubble{
  position: sticky;  /* já deves ter isto */
  /* ...resto do teu estilo... */
}
.pp-year-bubble::after{
  content: "";
  position: absolute;
  left: 50%;                 /* centro da bolinha */
  top: 100%;                 /* começa na base da bolinha */
  transform: translateX(-50%);
  width: 2px;                /* espessura da linha */
  height: 260px;             /* comprimento – ajusta ao que precisares */
  background: #C8D7E6;       /* mesma cor do mockup */
  border-radius: 2px;
  display: none;
}

/* aplica a todas as listas dos anos */
.vc_row[class*="year_"] ul{
  position: relative;
  margin-left: 36px;       /* espaço para os pontos */
}
.vc_row[class*="year_"] ul li{
  position: relative;
  padding-left: 0;
  margin: 24px 0;          /* espaçamento vertical entre pontos */
  /* width: 175% !important; */
}
.vc_row[class*="year_"] ul li::before{
  content:"";
  position:absolute;
  left: -36px;             /* alinha com a haste; ajusta se precisares */
  top: 0.9em;              /* centra no texto */
  width: 8px; height: 8px;
  background:#C8D7E6;
  border-radius:50%;
  transform: translateX(-50%);
}

.vc_row[class*="year_"] ul::before{
  content:"";
  position:absolute;
  left:-36px; top:-20px;   /* sobe um pouco para “encostar” à bolinha */
  width:2px; height: calc(100% + 20px);
  background:#C8D7E6;
}


/* === PRESENÇA PELO MUNDO === */
.presence-map{ position:relative; margin-top:24px; }
.presence-map .map-canvas{ position:relative; width:100%; }
.presence-map .map-canvas img{ display:block; width:100%; height:auto; }

/* Pin "gota" com número */
.pin{
  position:absolute;
  transform: translate(-50%, -100%) rotate(-45deg); /* ponta para baixo */
  width:32px; height:32px;
  border-radius:50% 50% 50% 0;
  background:#0B3557;           /* azul escuro */
  border:0px solid #fff;
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 10px rgba(0,0,0,.25);
  cursor:pointer;
  -webkit-tap-highlight-color: transparent;
}
.pin span{ color: #fff; transform: rotate(45deg); font-size:12px; font-family:"Montserrat-SemiBold",sans-serif; }
.pin.is-active{ transform: translate(-50%, -100%) rotate(-45deg) scale(1.08); z-index:2; }


.pin, .pin-number { display:none }


/* Legenda (3 colunas) */
.map-legend{
  display:grid;
  grid-template-columns: repeat(6, 1fr);
  gap:12px 28px;
  margin-top: 24px;
  width: 150%;

}

.map-legend{
  grid-auto-flow: column;              /* preenche coluna a coluna */
  grid-template-rows: repeat(4, auto); /* 4 linhas: 1–4, 5–8, 9–12… */
}

.map-legend{
  max-height: 260px;   /* ajusta à tua UI */
  overflow: auto;      /* scroll interno */
  scroll-behavior: auto;  /* evita suavização dupla do CSS */
}




.map-legend li{
  display:grid;
  grid-template-columns: 28px 1fr;   /* coluna do nº | texto */
  align-items:center;
  cursor:pointer;
  color:#00436B;
  font-family:"Montserrat-Regular",sans-serif;
  font-size:16px; line-height:21px; letter-spacing:-.02em;
}

.map-legend li{
  text-transform: uppercase;
}


.map-legend li::before{
  content: attr(data-pin);           /* usa o número do data-pin */
  justify-self: end;                 /* alinha o nº à esquerda da linha */
  width:28px;
  font-family:"Montserrat-SemiBold",sans-serif;
  color:#0B3557;
}

.map-legend li .n{
  width:28px; text-align:right;
  font-family:"Montserrat-SemiBold",sans-serif;
  color:#0B3557;
}
.map-legend li.is-active{ text-decoration:underline; color:#0B3557; }


.map-wrap svg .pin path[fill="#00436B"]{ transition: filter .15s ease; }
.map-wrap svg .pin:hover path[fill="#00436B"]{ filter: brightness(0.85); }


.map-wrap {
    margin-left: 50%;
    margin-top: -20%;
}

.map-legend li.is-active{
  text-decoration: underline;
  color: #00436B;
}

.year_2006 {
    margin-left: 23% !important;
}

.year_2009 {
    margin-left: 46% !important;
}

.year_2012 {
    margin-left: 69% !important;
}

.year_2015 {
    margin-left: 69% !important;
}

.hist_img img {
	height: 500px !important;
}

/* ===== HISTÓRIA — slider horizontal ===== */
.hist-slider{ position:relative; overflow:hidden; width: 100vw; height: 600px !important; }

/* dentro do slider, mostramos todas as .historia (o JS controla a opacidade/transform) */
.hist-slider > .vc_row.historia{
  display:flex !important;          /* sobrepõe o display:none anterior */
  position:absolute; inset:0;       /* todas empilhadas */
  width:100%;
  transition: transform .45s ease, opacity .45s ease;
  will-change: transform, opacity;
  opacity:0;                        /* por defeito, invisíveis */
  transform: translateX(100%);      /* por defeito, fora à direita */
  pointer-events:none;              /* só a ativa capta cliques */
}
.hist-slider > .vc_row.historia.is-active{
  opacity:1; transform: translateX(0);
  z-index:2; pointer-events:auto;
}

.principais_projetos_section {
	width: 188% !important;
}

/* Bolinhas – herdar a cor do botão */
.pp-bullets .pp-bullet .pp-bullet__year{ color: inherit; }

/* Ativa: números a branco */
.pp-bullets .pp-bullet.is-active .pp-bullet__year{ color: #fff !important; }

/* Inativa: números no azul escuro do tema (se quiseres explicitar) */
.pp-bullets .pp-bullet:not(.is-active) .pp-bullet__year{ color: var(--darkerBlue); }

/* === Principais Projetos — slider horizontal === */
.pp-years-viewport{ position: relative; overflow: hidden; }
.pp-year-panel{ position:relative; inset:0; width:100%; }
.pp-year-panel[aria-hidden="true"]{ display:none; pointer-events:none; }

/* keyframes */
@keyframes pp-in-right { from{ transform:translateX(40px); opacity:0 } to{ transform:translateX(0); opacity:1 } }
@keyframes pp-out-left { from{ transform:translateX(0);   opacity:1 } to{ transform:translateX(-40px); opacity:0 } }
@keyframes pp-in-left  { from{ transform:translateX(-40px);opacity:0 } to{ transform:translateX(0); opacity:1 } }
@keyframes pp-out-right{ from{ transform:translateX(0);   opacity:1 } to{ transform:translateX(40px);  opacity:0 } }

.pp-anim-in-right{  animation: pp-in-right  .35s ease both; }
.pp-anim-out-left{  animation: pp-out-left  .35s ease both; }
.pp-anim-in-left{   animation: pp-in-left   .35s ease both; }
.pp-anim-out-right{ animation: pp-out-right .35s ease both; }

/* deixa a animação da bola mais suave */
.pp-year-bubble{ will-change: transform, opacity; }

/* === PRÉMIOS & RECONHECIMENTO — linha em corda, sem barra azul === */
.award_year .hist-timeline .tl-track{
  position: relative;
  height: 9px;                 /* espessura da corda */
  background: transparent;     /* remove a linha cinzenta */
  overflow: visible;
}

/* repõe o ::before (foi desligado globalmente) e desenha a corda */
.award_year .hist-timeline .tl-track::before{
  content: "" !important;      /* necessário para vencer o "content:none" global */
  position: absolute;
  left: 50%;
  top: 0; bottom: 0;
  transform: translateX(-50%);
  /* ocupa a largura total da viewport para dar “de margem a margem” */
  width: 100%;
  background: url('/wp-content/uploads/2025/09/corda.png') repeat-x center;
  background-size: auto 9px;   /* altura certa; largura do tile pela imagem */
  z-index: 0;                  /* fica por baixo dos pontos */
}

/* esconder a barra azul de progresso */
.award_year .hist-timeline .tl-fill{
  display: none !important;
}

/* garante que os pontos ficam por cima da corda */
.award_year .hist-timeline .tl-dot{
  position: absolute;
  z-index: 2;
}


.linha {
    display: flex;
    margin-top: 100px;
}


/* Esconde os Text Blocks do WPBakery usados como fonte */
.map-popup{ display:none !important; }

.map-wrap{ position:relative; }
#worldmap{ display:block; height:auto; }

/* Caixa flutuante com scroll interno */
.map-callout{
  position:absolute; z-index:5;
  width:360px; max-width:min(90%, 420px);
  background:#fff; border:2px solid #00436B; border-radius:12px;
  box-shadow:0 10px 30px rgba(0,0,0,.12);
  padding:16px 18px 12px; display:none;
}
.map-callout.is-open {
    display: block;
    /*top: 300px !important;*/
    /*left: -300px !important;*/
    margin-bottom: -276px;
}
.map-callout__head {
    margin-bottom: 8px;
    color: #00436B;
    font-weight: 700;
    font-style: italic;
    font-size: 14px;
    line-height: 16px;
}

.map-callout__body {
    max-height: 220px;
    overflow: auto;
    padding-right: 8px;
    font-family: "Montserrat-SemiBold",sans-serif;
    font-weight: 500;
    font-style: Italic;
    font-size: 14px;
    line-height: 16px;
    color: #00436B;
}

.map-callout__close{
  position:absolute; right:10px; top:8px; border:0; background:transparent;
  font-size:22px; line-height:1; cursor:pointer; color:#00436B;
}

/* Feedback na legenda (opcional) */
.map-legend li.is-active{ color:#00436B; font-weight:700; }


/* — Caixa — */
.map-callout{ position:absolute; z-index:5; width:360px; max-width:min(90%, 420px);
  background:#fff; border:2px solid #00436B; border-radius:12px;
  box-shadow:0 10px 30px rgba(0,0,0,.12); padding:16px 18px 12px; display:none; }

/* Corpo com overflow (aqui escondemos a barra nativa) */
.map-callout__body{
  max-height:220px; overflow:auto;
  padding-right:28px;                /* espaço para a imagem “barra” */
  -ms-overflow-style: none;          /* IE/Edge legacy */
  scrollbar-width: auto;             /* Firefox */
}
.map-callout__body::-webkit-scrollbar{ width:0; height:0; } /* Chrome/Safari */

/* Mostra o adorno quando houver overflow */
.map-callout.has-scroll::after{
  content:"";
  position:absolute;
  right:8px; top:12px; bottom:12px;  /* margem interna da caixa */
  width:12px;                         /* ajusta à largura do SVG */
  background: url('/wp-content/uploads/2025/09/Group-28.svg') center/contain no-repeat;
  pointer-events:none;                /* decorativo; não intercepta cliques */
}

/* (opcional) estado hover do país na legenda */
.map-legend li.is-active{ color:#00436B; font-weight:700; }


/* Firefox: mostra a barra fina (não suporta imagem no track) */
.rope-scroll{
  overflow: auto;
  scrollbar-width: thin;         /* mostra a barra */
  scrollbar-color: #00436B #ffffff; /* polegar/track fallback */
}

/* WebKit: põe a corda no TRACK da scrollbar */
.rope-scroll::-webkit-scrollbar{
  width: 14px;                   /* largura da barra */
}
.rope-scroll::-webkit-scrollbar-track{
  background: transparent;
  background-image: url('/wp-content/uploads/2025/09/Group-28.svg');
  background-repeat: repeat-y;   /* repete na vertical */
  background-position: center;
  background-size: 10px auto;    /* altura automática, ajusta 10px se precisares */
}

/* Polegar (a “pega” que anda) — discreto mas visível para acessibilidade */
.rope-scroll::-webkit-scrollbar-thumb{
  background-color: rgba(0,67,107,.25); /* azul translúcido */
  border-radius: 8px;
  border: 3px solid transparent;       /* mantém área de clique confortável */
}
.rope-scroll:hover::-webkit-scrollbar-thumb{
  background-color: rgba(0,67,107,.45);
}

#proxima-seccao { scroll-margin-top: 100px; }

.imagem2 .vc_single_image-wrapper{
  aspect-ratio: 438 / 876;    /* (metade da largura) / altura */
  overflow: hidden;
}
.imagem2 .vc_single_image-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left center;  /* direita: right center */
  display: block;
}

.imagem1 .vc_single_image-wrapper{
  aspect-ratio: 438 / 876;    /* (metade da largura) / altura */
  overflow: hidden;
}
.imagem1 .vc_single_image-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right center;  /* direita: right center */
  display: block;
}

/* Ano 1980: imagem à esquerda, texto à direita */
.vc_row.historia:has(.ano_1980){
  flex-direction: row-reverse;           /* inverte as colunas */
}

/* garante as mesmas larguras dessa row */
.vc_row.historia:has(.ano_1980) .ano_1980{
  flex: 0 0 68%;
  max-width: 68%;
}
.vc_row.historia:has(.ano_1980) .hist_img{
  flex: 1 1 32%;
  max-width: 32%;
}

.hist-timeline .tl-years { transform: none !important; }
.hist-timeline .tl-years-viewport { scroll-behavior: auto; }


/********* Alterar o scroll bar **********/
/* Para Chrome, Safari e Edge */
::-webkit-scrollbar {
  width: 10px; /* Ajuste a largura da barra de scroll */
}

::-webkit-scrollbar-track {
  background: transparent; /* Torna o fundo da barra de scroll transparente */
}

::-webkit-scrollbar-thumb {
  background-image: url('/wp-content/uploads/2025/09/Group-28.svg');
  background-size: 100% 100%; /* Garante que a imagem preenche a barra */
  background-repeat: no-repeat;
  border-radius: 5px; /* Adiciona bordas arredondadas ao "polegar" */
}

/* Para Firefox */
html {
  scrollbar-width: thin;
  /* Nota: O Firefox não suporta imagens para a barra de scroll. */
  /* Pode definir uma cor que se assemelhe à sua imagem de corda. */
  scrollbar-color: #888 transparent; 
}

/* Estilo para a caixa de texto com scroll personalizado */
.map-callout__body {
  max-height: 220px;
  overflow: auto;
  padding-right: 28px;
  scrollbar-width: thin;
  scrollbar-color: transparent transparent; /* Firefox - esconde a barra padrão */
}

/* WebKit (Chrome, Safari) - substitui a barra de scroll pela imagem */
.map-callout__body::-webkit-scrollbar {
  width: 14px;
}

.map-callout__body::-webkit-scrollbar-track {
  background: transparent;
  background-image: url('/wp-content/uploads/2025/09/Group-28.svg');
  background-repeat: repeat-y;
  background-position: center;
  background-size: 10px auto;
  border-radius: 0;
}

.map-callout__body::-webkit-scrollbar-thumb {
  background-color: rgba(0, 67, 107, 0.25);
  border-radius: 8px;
  border: 3px solid transparent;
}

.map-callout__body::-webkit-scrollbar-thumb:hover {
  background-color: rgba(0, 67, 107, 0.45);
}

/* Firefox - fallback (não suporta imagens na scrollbar) */
.map-callout__body {
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 67, 107, 0.25) transparent;
}


/* QS — imagem da direita: ver toda a imagem na altura fixa */
.vc_row.qs-three > .wpb_column:nth-child(3) .vc_single_image-img {
  height: 600px !important;   /* mantém a altura que já tinhas */
  width: auto !important;     /* não força 100% da coluna */
  max-width: none;            /* deixa usar a largura real se for maior */
  object-fit: contain !important;  /* sem cortes; cabe dentro dos 600px de altura */
  display: block;
}

/* ponto “passado” */
.tl-track .tl-dot.is-passed{
  background-color: #00436B !important;
  border-color: #00436B !important;
}


/* coluna das bolas */
#pp-bullets{
  width: 92px;              /* diâmetro/borda dos círculos */
  margin-right: 24px;
  transform: translateY(0); /* o JS anima este translate */
}

/* cor de texto dentro da callout do mapa */
.map-callout{
  --darkerBlue: #00436B;     /* tudo lá dentro que usa var(--darkerBlue) passa a #00436B */
}

/* (opcional) garantir links iguais */
.map-callout a{ color:#00436B; }
.map-callout a:hover{ color:#003A58; } /* ligeiro escurecer no hover, ajusta se quiseres */

/* garante posicionamento para a barra */
.map-callout { position: relative; }

/* a área que vai scrollar (usa a tua classe que já existe) */
.map-callout__body.rope-scroll{
  overflow: auto;
  /* esconder scrollbars nativas (Firefox/IE/Edge legacy) */
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.map-callout__body.rope-scroll::-webkit-scrollbar{ display:none; } /* Chrome/Safari */

/* barra e “corda” custom */
.map-ropebar{
  position: absolute;
  right: 6px;                  /* afasta da borda da caixa */
  width: 12px;                 /* ≈ largura da corda */
  pointer-events: auto;
  z-index: 3;                  /* acima do conteúdo */
}
.map-ropebar__track{
  position:absolute; inset:0;
  border-radius:999px;
  background: transparent;
}
.map-ropebar__thumb{
  position:absolute; left:0; right:0;
  min-height: 28px;            /* tamanho mínimo da thumb */
  border-radius:999px;
  background: url('/wp-content/uploads/2025/09/Group-28.svg') center / 10px auto repeat-y;
  cursor: grab;
  box-shadow: 0 0 0 2px transparent; /* espaço de respiro visual */
  height: 56px !important;
}
.map-ropebar.is-dragging .map-ropebar__thumb{ cursor: grabbing; }

/* barra sem bounce */
.hist-timeline .tl-fill{ transition: none !important; }

/* se a tua bolinha é pseudo-elemento ::after no .tl-year */
.hist-timeline .tl-year.is-past::after,
.hist-timeline .tl-year.is-active::after{
  background: #00436B !important;
  border-color: #00436B !important;
}

/* (alternativa) se tens um elemento .tl-dot correspondente por botão */
.hist-timeline .tl-dot.is-active,
.hist-timeline .tl-dot.is-past{
  background: #00436B !important;
  border-color: #00436B !important;
}

/* timeline */
.hist-timeline .tl-track{ position:relative; }
.hist-timeline .tl-fill{
  position:absolute; left:0; top:50%;
  transform:translateY(-50%);
  height:4px; transition:none;   /* sem bounce */
}

/* pintar dots “passados” (opcional) */
.hist-timeline .tl-dot.is-past,
.hist-timeline .tl-dot.is-active{
  background:#00436B; border-color:#00436B;
}

.projetos_internacionais .vc_col-sm-8 > .vc_column-inner > .wpb_wrapper{
  display:flex;
  flex-wrap:nowrap;
                 /* espaçamento entre imagens */
  overflow-x:auto;          /* se não couberem todas, dá scroll lateral */
  scrollbar-width:none;
}
.projetos_internacionais .vc_col-sm-8 > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{ display:none; }

/* altura única para todas as imagens da faixa */
.projetos_internacionais{ --pi-h: 560px; }   /* MUDA este valor para a “altura certa” */

/* garantir que a imagem não é forçada a 100% de largura por wrappers do WPBakery */
.projetos_internacionais .projetos_internacionais_img figure,
.projetos_internacionais .projetos_internacionais_img .vc_single_image-wrapper{
  width:auto !important;
}

/* imagem com altura fixa, largura automática */
.projetos_internacionais .projetos_internacionais_img .vc_single_image-img{
  display:block;
  height:var(--pi-h);   /* mesma altura em todas */
  width:auto;           /* largura livre conforme o ratio */
}

/* qs-three: rail horizontal com barras escondidas */
.vc_row.qs-three{
  overflow-x: auto;
  overflow-y: visible;              /* continua a deixar passar o scroll vertical */
  scroll-snap-type: x proximity;    /* opcional: snap suave */
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;   /* o scroll horizontal não “sai” da row */
  scrollbar-width: none;            /* Firefox */
  -ms-overflow-style: none;         /* IE */
}
.vc_row.qs-three::-webkit-scrollbar{ display:none; } /* Chrome/Safari/Edge */

/* torna o contentor da galeria rolável na horizontal */
.vc_row.galeria,
.galeriaImagensWrapper,
.galeria .wpb_wrapper {
  overflow-x: auto;
  overflow-y: hidden;        /* não mostra barra vertical dentro da galeria */
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity; /* opcional, se quiseres um “encaixe” suave */
}

/* esconder a barra de scroll (Chrome/Edge/Safari) */
.vc_row.galeria::-webkit-scrollbar,
.galeriaImagensWrapper::-webkit-scrollbar,
.galeria .wpb_wrapper::-webkit-scrollbar {
  display: none;
}

/* Firefox: barra fininha invisível */
.vc_row.galeria,
.galeriaImagensWrapper,
.galeria .wpb_wrapper {
  scrollbar-width: none;
}

/* torna o contentor da galeria rolável na horizontal */
.vc_row.galeria1,
.galeria1ImagensWrapper,
.galeria1 .wpb_wrapper {
  overflow-x: auto;
  overflow-y: hidden;        /* não mostra barra vertical dentro da galeria */
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity; /* opcional, se quiseres um “encaixe” suave */
}

/* esconder a barra de scroll (Chrome/Edge/Safari) */
.vc_row.galeria1::-webkit-scrollbar,
.galeria1ImagensWrapper::-webkit-scrollbar,
.galeria1 .wpb_wrapper::-webkit-scrollbar {
  display: none;
}

/* Firefox: barra fininha invisível */
.vc_row.galeria1,
.galeria1ImagensWrapper,
.galeria1 .wpb_wrapper {
  scrollbar-width: none;
}


/* Rail horizontal e sem barra visível */
.projetos_internacionais1 .vc_col-sm-8 > .vc_column-inner > .wpb_wrapper{
  display: flex;
  flex-wrap: nowrap;
  gap: 18px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.projetos_internacionais1 .vc_col-sm-8 > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{
  display: none;
}

/* ================= projetos_internacionais1 ================= */
:root{
  --pi1-h: 520px;            /* <- altura única que pretendes */
}

/* Rail horizontal com espaçamento fixo de 18px e barras escondidas */
.projetos_internacionais1 .vc_col-sm-8 > .vc_column-inner > .wpb_wrapper{
  display:flex;
  flex-wrap:nowrap;
  gap:18px;
  overflow-x:auto;
  overflow-y:hidden;
  -ms-overflow-style:none;
  scrollbar-width:none;
}
.projetos_internacionais1 .vc_col-sm-8 > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{ display:none; }

/* Cada item vira um “cartão” medido pelo conteúdo (não 100%) */
.projetos_internacionais1 .vc_inner{
  flex:0 0 auto;
  width:auto !important;
  margin:0 !important;
}
.projetos_internacionais1 .vc_inner > .wpb_column{
  float:none !important;
  width:auto !important;
}

/* Empilhar IMAGEM + legenda dentro de cada cartão */
.projetos_internacionais1 .vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper{
  display:inline-flex;
  flex-direction:column;
  gap:8px;                   /* espaço entre imagem e legenda */
  align-items:flex-start;
}

/* Imagens: altura fixa, largura automática (mantém proporção) */
.projetos_internacionais1 .vc_single_image-img{
  display:block;
  height: 560px;
  width:auto;                /* não força 100% */
  max-width:none;            /* ignora limites do VC */
}



/* Galeria – remove o gutter da coluna e do row */
.vc_row.galeria > .wpb_column > .vc_column-inner{
  padding-right: 0 !important;
  padding-left: 0 !important;  /* opcional; remove também o vazio do lado esquerdo */
}

/* Galeria – remove o gutter da coluna e do row */
.vc_row.galeria1 > .wpb_column > .vc_column-inner{
  padding-right: 0 !important;
  padding-left: 0 !important;  /* opcional; remove também o vazio do lado esquerdo */
}

/* O VC adiciona pseudo-elementos ::before/::after para gutters — desliga-os nesta row */
.vc_row.galeria::before,
.vc_row.galeria::after{
  display: none !important;
}

/* Se ainda vires um restinho de vazio, “come” a margem de página do lado direito */
.vc_row.galeria{
  margin-right: calc(-1 * var(--page-margin)) !important; /* ou usa um valor fixo (ex. -48px) */
}

/* E garante que o rail não acrescenta acolchoamento no fim */
.vc_row.galeria .vc_column-inner > .wpb_wrapper{
  padding-right: 0 !important;
}

/* O VC adiciona pseudo-elementos ::before/::after para gutters — desliga-os nesta row */
.vc_row.galeria1::before,
.vc_row.galeria1::after{
  display: none !important;
}

/* Se ainda vires um restinho de vazio, “come” a margem de página do lado direito */
.vc_row.galeria1{
  margin-right: calc(-1 * var(--page-margin)) !important; /* ou usa um valor fixo (ex. -48px) */
}

/* E garante que o rail não acrescenta acolchoamento no fim */
.vc_row.galeria1 .vc_column-inner > .wpb_wrapper{
  padding-right: 0 !important;
}

/* garantir empilhamento correto */
.map-wrap{ position:relative; z-index: 1; }
#worldmap{ position:relative; z-index: 10; }         /* o mapa */
.map-callout{ position:absolute; z-index: 20; }      /* a caixa acima do mapa */
.map-legend{ position:relative; z-index: 30; }       /* a legenda acima de tudo */

/* fallback: quando a caixa estiver aberta, o mapa NÃO deve apanhar eventos */
.map-wrap.has-callout #worldmap{ pointer-events: none; }


/* O bloco do mapa e a legenda não devem empurrar o body */
.map-wrap, .map-legend {
  overscroll-behavior: contain;   /* trava o rubber-band e a propagação do scroll */
}

/* Se tiveres smooth em algum lado, desliga-o só aqui para não animar micro-ajustes */
.section-mapa,
.section-mapa * { scroll-behavior: auto !important; }


/* style.css */
html { scroll-behavior: auto; }   /* em vez do smooth global */
html.smooth-scroll { scroll-behavior: smooth; }

/* compensa header fixo ao ir para âncoras */
[id] { scroll-margin-top: calc(var(--header-height) + 40px); }


/* deixa o JS decidir quando é smooth */
html, body { scroll-behavior: auto; }

.map-wrap { position: relative; }
.map-callout {
  position: absolute !important;
  left: 0; top: 0;
  transform: none !important;
}

/* o wrapper que contém o <object id="worldmap"> e a .map-callout */
.map-wrap { position: relative; }

/* a tua caixa: deixa de ser fixa e passa a absoluta, acima de tudo */
.map-callout{
  position: absolute;
  z-index: 50;
  /* remove estilos antigos de left/top se existirem */
}

/* opcional: margem mínima às bordas quando “apertamos” a posição */
:root{ --callout-pad:16px; }


/* === Botão hamburger visível apenas no mobile === */
.hamburger{ display:none; background:none; border:0; width:32px; height:28px; }
.hamburger span{ display:block; height:2px; background:#00436B; margin:6px 0; transition:.2s; }

@media (max-width:1024px){
  .hamburger{ display:inline-block; }
  header .menu-desktop-wrapper{ display:none; } /* esconde o menu desktop */
}

/* === Overlay === */
.mobile-menu-overlay{
  position: fixed; inset: 0; z-index: 9998;
  display: none; /* abre com .is-open */
  background: rgba(0,0,0,.35);
  backdrop-filter: blur(2px);
}
.mobile-menu-overlay.is-open{ display:block; }

.mobile-menu-overlay .mobile-menu{
  position:absolute; inset:0;
  background: #0b2a40 url('/wp-content/uploads/2024/10/menu-bg.jpg') center/cover no-repeat;
  color:#fff;
  padding: calc(var(--header-height) + 20px) var(--page-margin) 40px;
  overflow-y:auto;
}

/* === Lista === */
.menu-mobile-list{ list-style:none; margin:0; padding:0; }
.menu-mobile-list > li{ border-bottom:1px solid rgba(255,255,255,.25); }
.menu-mobile-list > li > a{
  display:flex; align-items:center; gap:12px;
  padding:18px 0;
  color:#fff; font-size:20px; line-height:1.2; text-transform:uppercase;
}
.menu-mobile-list .sub-menu{
  display:none; padding: 0 0 12px 30px; border:0;
}
.menu-mobile-list .menu-item.open > .sub-menu{ display:block; }

/* “bullet” com ícone por categoria (injetado pelo Walker) */
.menu-mobile-list .menu-bullet{
  width:14px; height:14px; flex:0 0 14px;
  background-size:contain; background-repeat:no-repeat; background-position:center;
}

/* botão fechar (X) */
.mobile-menu .close{
  position:absolute; left:18px; top:18px;
  width:36px; height:36px; background:transparent; border:0; cursor:pointer;
}
.mobile-menu .close::before,
.mobile-menu .close::after{
  content:""; position:absolute; left:6px; top:17px; width:24px; height:2px; background:#fff;
}
.mobile-menu .close::before{ transform:rotate(45deg); }
.mobile-menu .close::after{ transform:rotate(-45deg); }

/* overlay */
.mobile-menu-overlay{
  position: fixed; inset:0;
  background: rgba(0,0,0,.6);
  opacity:0; pointer-events:none;
  transition: .3s;
  z-index: 9990;
}
.mobile-menu-overlay[aria-hidden="false"]{ opacity:1; pointer-events:auto; }
.mobile-menu{
  position: absolute; inset:0;
  padding: 96px var(--page-margin) 32px;
  background: url('/wp-content/uploads/2024/10/consulmar.mp4') no-repeat center/cover; /* ou imagem fixa */
  overflow-y:auto;
}
.mm-open, .mm-open body{ overflow: hidden; }
.hamburger{ /* 3 barras */ }
.close{ /* ícone fechar */ }
.menu-mobile-list{ list-style:none; margin:0; padding:0; }
.menu-mobile-list > li{ border-bottom:1px solid rgba(255,255,255,.35); }


/* Barra/“orelha” azul com título centrado para as caixas de clientes */
.clients-cap{
  position: relative;
  display: block;
  margin: 22px 0 14px;           /* distância acima/delimitador superior do bloco de logos */
  height: 28px;                  /* altura do cabeçalho (controla a altura das orelhas)   */
  text-align: center;
}

/* Texto do título vindo do data-title */
.clients-cap::marker { content: none; }
.clients-cap::after{
  content: attr(data-title);
  position: relative;
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  letter-spacing: .02em;
  color: #0A4C70;                /* azul das letras */
  padding: 0 10px;               /* “respiro” entre as linhas e o texto */
  z-index: 1;
}

/* Linhas horizontais à esquerda e à direita do título */
.clients-cap::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  /* 2 horizontais + 2 verticais (as “orelhas”) com um só background */
  background:
    /* linha esquerda */
    linear-gradient(#0A4C70,#0A4C70) left 8% center / 28% 3px no-repeat,
    /* linha direita  */
    linear-gradient(#0A4C70,#0A4C70) right 8% center / 28% 3px no-repeat,
    /* orelha esquerda (vertical) */
    linear-gradient(#0A4C70,#0A4C70) left 8% calc(50% - 11px) / 3px 22px no-repeat,
    /* orelha direita  (vertical) */
    linear-gradient(#0A4C70,#0A4C70) right 8% calc(50% - 11px) / 3px 22px no-repeat;
}





  /* Row do grupo vira grid e neutraliza estilos do VC */
  .logos-grid{
    /* 3 colunas no máx.; se houver 1 ou 2, o grid inteiro centra */
    display: grid !important;
    /* grid-template-columns: repeat(3, max-content); */
    justify-content: center;      /* centra o conjunto de colunas (1, 2 ou 3) */
    gap: 18px 24px;               /* espaço entre logos (linha x coluna) */
    align-items: center;          /* alinha verticalmente cada logo */
  }

  /* Anula floats/larguras do WPBakery dentro da row */
  .logos-grid > .wpb_column{
    float: none !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
  }
  .logos-grid > .wpb_column > .vc_column-inner{
    padding: 0 !important;
  }

  /* Garante que a imagem do logo se comporta bem */
  .logos-grid .wpb_single_image,
  .logos-grid .vc_single_image-wrapper{
    display: inline-block;        /* mede a col a partir do conteúdo */
  }
  .logos-grid img{
    display: block;
    max-width: 110px;             /* ajusta o tamanho limite do logo */
    height: auto;
    object-fit: contain;
  }

.logos-grid > .wpb_column > .vc_column-inner {
    padding: 0px 35px !important;
}


 /* Row do grupo vira grid e neutraliza estilos do VC */
  .logos-grid1{
    /* 3 colunas no máx.; se houver 1 ou 2, o grid inteiro centra */
    display: grid !important;
    grid-template-columns: repeat(4, max-content); 
    justify-content: center;      /* centra o conjunto de colunas (1, 2 ou 3) */
    gap: 18px 24px;               /* espaço entre logos (linha x coluna) */
    align-items: center;          /* alinha verticalmente cada logo */
  }

  /* Anula floats/larguras do WPBakery dentro da row */
  .logos-grid1 > .wpb_column{
    float: none !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
  }
  .logos-grid1 > .wpb_column > .vc_column-inner{
    padding: 0 !important;
  }

  /* Garante que a imagem do logo se comporta bem */
  .logos-grid1 .wpb_single_image,
  .logos-grid1 .vc_single_image-wrapper{
    display: inline-block;        /* mede a col a partir do conteúdo */
  }
  .logos-grid1 img{
    display: block;
    max-width: 110px;             /* ajusta o tamanho limite do logo */
    height: auto;
    object-fit: contain;
  }

.logos-grid1 > .wpb_column > .vc_column-inner {
    padding: 0px 35px !important;
}

/* Wrapper da secção de logos */
.logos-section {
  position: relative;
  margin: 40px 0;
  padding: 24px 0; /* espaço para não colar no texto */
}

/* Linha em cima */
/* .logos-section::before,
.logos-section::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background-color: var(--darkBlue); 
} */

/* linha superior */
/* .logos-section::before {
  top: 0;
} */

/* linha inferior */
/* .logos-section::after {
  bottom: 0;
} */

/* título do grupo (ex: Ambiente, Empreiteiros) */
.logos-section .clients-cap,
.logos-section h3,
.logos-section h4 {
  font-family: "Montserrat-SemiBold", sans-serif;
  font-size: 16px;
  text-transform: uppercase;
  color: var(--darkBlue);
  text-align: center;
  margin-bottom: 20px;
}


/* Aplica a cada secção de logos (Ambiente, Empreiteiros, Energia...) */
.logos-section {
  position: relative;
  margin: 40px 0;
  padding: 40px 0;
  text-align: center;
}

/* Linhas nos cantos */
/* .logos-section::before,
.logos-section::after {
  content: "";
  position: absolute;
  width: 30px;   
  height: 20px;  
  border-color: var(--darkBlue);
  border-style: solid;
} */

/* canto superior esquerdo */
/* .logos-section::before {
  top: 0;
  left: 0;
  border-width: 2px 0 0 2px;
} */

/* canto superior direito */
/* .logos-section::after {
  top: 0;
  right: 0;
  border-width: 2px 2px 0 0;
} */

/* criar cantos inferiores também */
.logos-section .corner-bottom-left,
.logos-section .corner-bottom-right {
  content: "";
  position: absolute;
  width: 81px;
  height: 32px;
  border-color: var(--darkBlue);
  border-style: solid;
  bottom: 0;
}

/* canto inferior esquerdo */
.logos-section .corner-bottom-left {
  left: 20px;
  border-width: 2px 0 0 2px;
  top: 70px;
}

.logos-section .corner-bottom-left1,
.logos-section .corner-bottom-right1 {
  content: "";
  position: absolute;
  width: 6px;
  height: 32px;
  border-color: var(--darkBlue);
  border-style: solid;
  bottom: 0;
}

.logos-section .corner-bottom-left2,
.logos-section .corner-bottom-right2 {
  content: "";
  position: absolute;
  width: 42px;
  height: 32px;
  border-color: var(--darkBlue);
  border-style: solid;
  bottom: 0;
}

/* canto inferior esquerdo */
.logos-section .corner-bottom-left1 {
  left: 20px;
  border-width: 2px 0 0 2px;
  top: 70px;
}

.logos-section .corner-bottom-left2 {
  left: 20px;
  border-width: 2px 0 0 2px;
  top: 70px;
}

/* canto inferior direito */
.logos-section .corner-bottom-right {
  right: 20px;
  border-width: 2px 2px 0 0;
  top: 70px;
}

/* canto inferior direito */
.logos-section .corner-bottom-right1 {
  right: 20px;
  border-width: 2px 2px 0 0;
  top: 70px;
}

.logos-section .corner-bottom-right2 {
  right: 20px;
  border-width: 2px 2px 0 0;
  top: 70px;
}


/* ===== Galeria 1 — linha única com scroll horizontal ===== */
.vc_row.galeria1{
  display: flex;
  flex-wrap: nowrap;             /* tudo na MESMA linha */
  gap: 18px;                     /* espaço entre imagens */
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity; /* opcional: snap suave */
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;/* não “foge” para a página */
  touch-action: pan-y;           /* roda/gesto continua a permitir scroll vertical da página */
}

/* WPBakery costuma forçar float/width — neutraliza para esta row */
.vc_row.galeria1 > .wpb_column{
  float: none !important;
  width: auto !important;
  flex: 0 0 auto;                /* cada coluna ocupa só o seu conteúdo */
  margin: 0 !important;
}

/* Cada imagem/figure também não deve quebrar linha */
.vc_row.galeria1 .vc_single_image,
.vc_row.galeria1 .vc_single_image-wrapper,
.vc_row.galeria1 img{
  flex: 0 0 auto;
  display: block;
}

/* (Opcional) esconder barra de scroll */
.vc_row.galeria1::-webkit-scrollbar{ display: none; }


/* G A L E R I A 1  —  todas as imagens numa linha + scroll horizontal */
.galeria1 .vc_column-inner > .wpb_wrapper{
  display: flex;              /* põe tudo lado a lado */
  flex-wrap: wrap;          /* não quebra de linha */
  gap: 18px;                  /* espaço entre imagens */
  overflow-x: auto;           /* scroll horizontal */
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  -ms-overflow-style: none;   /* IE/Edge antigo */
  scrollbar-width: none;      /* Firefox */
}
.galeria1 .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{ display:none; } /* Chrome/Safari */

/* neutralizar “blocos” internos do WPBakery que forçam 100% de largura */
.galeria1 .vc_row,
.galeria1 .vc_row > .wpb_column,
.galeria1 .wpb_single_image{ 
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

/* cada imagem é um item fixo do carrossel */
.galeria1 figure,
.galeria1 .vc_single_image-wrapper{
  flex: 0 0 auto;             /* não cresce nem encolhe */
  scroll-snap-align: start;
}

/* (opcional) assegurar bom fit das imagens */
.galeria1 img{
  display: block;
  height: auto;
  max-height: 70vh;           /* ajusta se quiseres limitar altura */
  object-fit: cover;
}

.vc_column_container.galeria1 > .vc_column-inner > .wpb_wrapper{
    display: flex;
    flex-wrap: nowrap;         /* tudo na mesma linha */
    gap: 3px;                 /* espaço entre imagens */
    overflow-x: auto;          /* scroll horizontal */
    overflow-y: hidden;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch; /* suave no iOS */
    padding-bottom: 8px;       /* evita cortar sombras/antialias */
    margin-right: -25px !important;
  }

  /* cada imagem (wrapper do WPBakery) ocupa só o necessário e não encolhe */
  .galeria1 .vc_single_image-wrapper{
    flex: 0 0 auto;
  }

  /* o WPBakery força width:100%; anulamos para não “apertar” as imagens */
  .galeria1 .vc_single_image-img{
    width: auto !important;
    height: auto !important;
    max-width: none !important;   /* muito importante: não limitar à largura da coluna */
    display: block;
  }

.conjunto_projetos1 {
    display: flex;
}

.conjunto_projetos {
    display: none !important;
}

.logos-section .corner-bottom-left12 {
  left: 20px;
  border-width: 2px 0 0 2px;
  top: 70px;
}

.logos-section .corner-bottom-right12 {
  right: 20px;
  border-width: 2px 2px 0 0;
  top: 70px;
}


.logos-section .corner-bottom-left12,
.logos-section .corner-bottom-right12 {
  content: "";
  position: absolute;
  width: 540px;
  height: 32px;
  border-color: var(--darkBlue);
  border-style: solid;
  bottom: 0;
}

.conjunto_projetos2 {
  display: none !important;
}

.conjunto_projetos3 {
  display: block !important;
}

.logos-grid1 img {
    
    max-width: 65px !important;
   
}


.logos-grid1 {
    
    margin-left: 74px !important;
}

.logos-section .corner-bottom-left, .logos-section .corner-bottom-right {
    
    width: 58px !important;
    
}


/* — TIMELINE: garantir que os dots podem aparecer — */
.hist-timeline .tl-track{
  position: relative;        /* referência para os dots */
  overflow: visible;         /* não cortar os dots */
             /* alto o suficiente para caber o dot */
}

/* — O ponto em si — */
.hist-timeline .tl-dot{
  position: absolute;
  left: 0;                   /* é sobrescrito em baixo via [data-index] */
  bottom: -9px;              /* encostado à linha; ajusta ± se precisares */
  transform: translateX(-50%);
  transform: translateY(-9px);
  width: 18px; height: 18px;
  border-radius: 50%;
  background: #0a3b5a;       /* visível no tema; muda se quiseres */
  box-shadow: 0 0 2px rgba(0,0,0,.25);
  z-index: 5;                /* acima de tudo */
  pointer-events: none;      /* não apanha cliques */
  display: block;
}

/* — Distribuição ao longo da barra por índice (0..5) — */
/* Ajusta as percentagens ao espaçamento dos teus anos */
.hist-timeline .tl-dot[data-index="0"]{ left: 0%; }
.hist-timeline .tl-dot[data-index="1"]{ left: 20%; }
.hist-timeline .tl-dot[data-index="2"]{ left: 40%; }
.hist-timeline .tl-dot[data-index="3"]{ left: 60%; }
.hist-timeline .tl-dot[data-index="4"]{ left: 80%; }
.hist-timeline .tl-dot[data-index="5"]{ left: 100%; }

/* Se os anos estiverem dentro de .tl-years-viewport, garantes a linha por baixo */
.hist-timeline .tl-years-viewport{
  position: relative;
  z-index: 1;
}


/* Premios & Reconhecimento — 5 pontos (25% cada) */
.award_year .tl-dot {            /* escopo só desta timeline */
  top: 50%;
  transform: translate(-50%, -50%);
  width: 18px; height: 18px;
  background: #E0E0E0;          /* cinza por defeito */
  border-radius: 50%;
  box-shadow: 0 0 0 2px #E6E6F1;
  z-index: 2;
}

/* posicionamento a cada 25% (0..4) */
.award_year .tl-dot[data-index="0"] { left: 0%   !important; }
.award_year .tl-dot[data-index="1"] { left: 25%  !important; }
.award_year .tl-dot[data-index="2"] { left: 50%  !important; }
.award_year .tl-dot[data-index="3"] { left: 75%  !important; }
.award_year .tl-dot[data-index="4"] { left: 100% !important; }

/* estados: ativo e já passados em azul escuro */
.award_year .tl-dot.is-active,
.award_year .tl-dot.is-passed {
  background: #00436B;
  box-shadow: 0 0 0 2px #00436B;
}


.logos-grid{
    overflow-x: visible !important;
    overflow-y: visible !important;
    scroll-snap-type: none !important;
    -webkit-overflow-scrolling: auto !important;
    overscroll-behavior: auto !important;
    touch-action: pan-y !important; /* garante que o gesto do rato/touch é vertical */
  }


  /* permitir que o scroll vertical “passe” pelas secções de logos */
.logos-section .vc_column-inner,
.logos-grid,
.logos-grid * {
  overscroll-behavior: auto !important;
  touch-action: pan-y pan-x !important;
}

/* evita que os cantos/labels fiquem a “apanhar” eventos */
.clients-cap,
.clients-cap::before,
.clients-cap::after {
  pointer-events: none;
}

/* história – permitir que o scroll suba/baixe a página mesmo com o rato
   por cima do conteúdo do ano ativo */
.vc_row.vc_inner[class*="year_"].is-active {
  overflow: visible !important;
  overscroll-behavior: auto !important;   /* deixa o scroll “sair” do elemento */
  touch-action: pan-y !important;         /* só por prevenção em touchpads */
}


#awards-tl {
    overscroll-behavior: auto;   /* já não bloqueia o scroll vertical */
    touch-action: auto;          /* remove a sugestão de só pan-y */
  }
  /* o scroller horizontal continua a conter o scroll só no eixo X */
  #awards-tl .award_year {
    overscroll-behavior-x: contain;
    overscroll-behavior-y: auto;
    touch-action: pan-x;
  }




  /* Galeria1 — não prender a roda do rato no desktop  */
@media (hover:hover) {
  /* o scroller interno não deve ter snap nem smooth no desktop */
  .galeria1 .vc_column-inner > .wpb_wrapper{
    scroll-snap-type: none !important;
    scroll-behavior: auto !important;
  }
}

/* regra segura para ratos e touch: a vertical passa para a página,
   a horizontal continua só dentro da galeria */
.vc_row.galeria1{
  touch-action: pan-y;              /* já tens em algumas versões — reforço aqui */
  overscroll-behavior-x: contain;   /* impede “fuga” lateral */
}

/* garantia extra: o wrapper não bloqueia o scroll vertical */
.galeria1 .vc_column-inner > .wpb_wrapper{
  overscroll-behavior-y: auto;
}

/* Permitir scroll vertical normalmente sobre os blocos de ano ativos */
.vc_row.vc_inner[class^="year_"].is-active,
.award_year .vc_row.vc_inner.is-active,
.award_year .vc_row.vc_inner[class^="year_"].is-active {
  overscroll-behavior-y: auto !important;  /* deixa o scroll “subir” para o body */
  overscroll-behavior: auto !important;
  touch-action: auto !important;           /* evita bloquear gestos no desktop/touchpad */
  overflow: visible !important;            /* garante que não cria um scroller falso */
  pointer-events: auto !important;         /* só por segurança */
}

/* Se existir isto nalgum sítio, neutraliza */
.award_year,
.award_year * {
  overscroll-behavior: auto !important;
}

/* INTRO — permitir scroll vertical mesmo com o ponteiro sobre a secção */
.vc_row.intro{
  overflow-x: auto !important;   /* mantém horizontal */
  overflow-y: visible !important;/* não cria scroll próprio no eixo Y */
  overscroll-behavior-x: contain;/* travar só o eixo X na intro */
  overscroll-behavior-y: auto;   /* deixa o scroll vertical “subir” ao body */
  touch-action: pan-y !important;/* em touch, priorizar o scroll vertical */
}

/* Evitar que wrappers internos criem um novo contexto de scroll em Y */
.vc_row.intro > .wpb_column > .vc_column-inner,
.vc_row.intro > .wpb_column > .vc_column-inner > .wpb_wrapper{
  overflow-y: visible !important;
}

/* Rail das imagens: só horizontal, nunca Y */
.intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
  overflow-x: visible;   /* o scroll horizontal vive na ROW (.vc_row.intro) */
  overflow-y: visible;
}


.vc_row.intro{
  overflow-x: auto !important;
  overflow-y: visible !important;
  overscroll-behavior-x: contain;
  overscroll-behavior-y: auto;
  touch-action: pan-y !important; /* não interfere no desktop */
}
.vc_row.intro > .wpb_column > .vc_column-inner,
.vc_row.intro > .wpb_column > .vc_column-inner > .wpb_wrapper{
  overflow-y: visible !important;
}
.intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
  overflow-x: visible;
  overflow-y: visible;
}


/* ===== INTRO — manter scroll H e devolver scroll V ===== */

/* 1) A row da intro não pode prender a altura da viewport */
.vc_row.intro,
.vc_row.intro > .vc_column_container,
.vc_row.intro > .vc_column_container > .vc_column-inner{
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

/* 2) Nada “sticky/fixed” dentro da intro a bloquear o scroll */
.vc_row.intro [style*="position:sticky"],
.vc_row.intro .sticky,
.vc_row.intro .is-sticky{
  position: static !important;
  top: auto !important;
}

/* 3) Mantém o H na própria row, mas deixa o Y passar para o body */
.vc_row.intro{
  overflow-x: auto !important;     /* horizontal continua a viver aqui */
  overflow-y: visible !important;  /* não cortar o eixo vertical */
  overscroll-behavior-x: contain !important; /* prende só o eixo X à row */
  overscroll-behavior-y: auto !important;    /* deixa o Y “bolhar” para o body */
}

/* 4) Os wrappers das imagens não devem ter overflow no Y */
.vc_row.intro .intro-imgs,
.vc_row.intro .intro-imgs > *{
  overflow-y: visible !important;
  overscroll-behavior-y: auto !important;
}

/* 5) Permite gestos nos dois eixos (ajuda em touchpads) */
.vc_row.intro, .vc_row.intro *{
  touch-action: pan-x pan-y !important;
}

/* 6) Só por segurança: garante que a página pode rolar no Y */
html, body{ overflow-y: auto !important; }


/* Desktop: mostrar cursor de arrastar na faixa de imagens */
@media (hover:hover) and (pointer:fine){
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    cursor: grab;
  }
  .intro-dragging{
    cursor: grabbing !important;
  }
}

/* 1) Voltar a mostrar e remover o posicionamento absoluto herdado */
  #awards-tl .tl-years,
  #awards-tl .tl-year {
    display: inline-block !important;
  }
  #awards-tl .tl-year {
    position: static !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  /* 2) Pôr a “corda” na 1ª linha e os anos na 2ª linha */
  #awards-tl .tl {
    display: grid;
    grid-template-rows: auto auto;
    align-items: start;
  }
  #awards-tl .tl-track { grid-row: 1; }
  #awards-tl .tl-years-viewport {
    grid-row: 2;
    margin-top: 12px; /* espaço entre corda e anos */
  }


  /* AWARDS — anos espaçados 25vw entre si */
#awards-tl .tl-years{
  display: flex !important;
  gap: 13vw !important;       /* distância entre anos */
  flex-wrap: nowrap !important;
  white-space: nowrap;
  align-items: baseline;
}

/* neutraliza margens/overrides antigos nos anos */
#awards-tl .tl-year{
  display: block !important;
  margin: 0 !important;
}

/* Intro (desktop): não prender a roda do rato na horizontal */
@media (hover:hover) and (pointer:fine){
  .vc_row.intro{
    overflow-y: visible !important;
    overscroll-behavior-y: auto !important; /* deixa o Y subir para o body */
    touch-action: auto !important;          /* evita bloquear o Y por engano */
  }
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    scroll-snap-type: none !important;      /* era x mandatory */
    overscroll-behavior-x: contain !important;
    overscroll-behavior-y: auto !important;
  }
}

/* Marcos Históricos: dots começam da cor da barra e ficam #00436B quando “passados” */
.hist_marcs .hist-timeline .tl-dot{
  background: #E6EBF1;           /* mesma cor da barra */
  box-shadow: 0 0 0 2px #E6EBF1; /* idem, para o anel */
}

.hist_marcs .hist-timeline .tl-dot.is-active,
.hist_marcs .hist-timeline .tl-dot.is-passed{
  background: #00436B;
  box-shadow: 0 0 0 2px #00436B;
}

/* .hist-copy p {
    margin-bottom: 20px !important;
} */

/* garantir que o grupo apanha o rato */
g.pin.country{ pointer-events:all; cursor:pointer; }

/* hover geral para QUALQUER país */
g.pin.country:hover path,
g.pin.country.is-hover path{
  fill:#E6EEF4 !important;
  opacity:1 !important;
}

/* (opcional) regras explícitas para os 3 que falham */
g.pin.country[data-pin="6"]:hover   path, /* Espanha  */
g.pin.country[data-pin="16"]:hover  path, /* Portugal */
g.pin.country[data-pin="23"]:hover  path  /* Venezuela*/{
  fill:#E6EEF4 !important;
  opacity:1 !important;
}


#pp-bullets .pp-bullets-inner{
  transition: transform .60s ease;
  will-change: transform;
}

/* rail pode já ter estilos do teu sticky; isto só controla a transição do wrapper */
#pp-bullets .pp-bullets-inner{
  transform: translateY(0);
  /* easing mais suave e elástica */
  transition: transform .60s cubic-bezier(.22,.61,.36,1);
  will-change: transform;
}

/* quando ativa, usa a distância que o JS mete na CSS var --pp-drop */
#pp-bullets .pp-bullets-inner.is-dropped{
  transform: translateY(var(--pp-drop, 140px));
}

/* não bloquear o scroll vertical da página fora do rail */
.galeria1 { overscroll-behavior-y: auto; }


/* Home (id 9) e Candidaturas (id 20): sublinhado branco no menu */
body.page-id-9  header .menu-desktop-wrapper a::before,
body.page-id-20 header .menu-desktop-wrapper a::before{
  background-color: #fff !important;
}


/* Esconde o <p> que tem "Fax:" quando o parágrafo a seguir está vazio */
.localEmpresaIndividual p.infoLocal:has(+ p.infoLocal:empty){
  display:none;
}
/* E esconde o parágrafo vazio também, por via das dúvidas */
.localEmpresaIndividual p.infoLocal:empty{
  display:none;
}

.locaisEmpresaWrapper .localEmpresaIndividual p.infoLocal:empty { display: none; }


/* aqui */

/****************************** HOMEPAGE ************************************/

/****************************** QUEM SOMOS PAGE ************************************/

/****************************** MEDIA QUERIES ************************************/
@media only screen and (min-width: 1880px) {
.logos-section .corner-bottom-right12 {
    right: 220px !important;
   
}

.logos-section .corner-bottom-left12 {
    left: 220px !important;
   
}

.logos-grid img {
    width: 108px !important;
    
}

.logos-grid1 img {
    max-width: 75px !important;
}

}

@media only screen and (min-width: 1650px) {
	/****************************** CONTACTOS PAGE ************************************/

	/* dimsnesao da zona com o form */
	.formularioSection .wpb_column:nth-child(1) .vc_column-inner > .wpb_wrapper {
		max-width: 700px;
	}

	.formularioSection .wpb_column:nth-child(2) * {
		height: 800px;
		object-fit: cover;
	}

	/****************************** NOTICIAS DETAIL PAGE ************************************/

	/* Dimensao da zona de rtexto */
	.single-post .wpb_column:nth-child(1) .vc_column-inner > .wpb_wrapper {
		max-width: 719px;
	}

	/* imagens da galeria */
	.galeriaImagensWrapper img:nth-child(1) {
		width: calc(263px * 1.2);
		height: calc(295px * 1.2);
	}
	.galeriaImagensWrapper img:nth-child(2) {
		width: calc(447px * 1.2);
		height: calc(453px * 1.2);
	}
}


/* HD READY - Resolução Base Desenvolvimento */
@media only screen and (max-width: 1440px) {
	.hero-content.wpb_column.vc_column_container.vc_col-sm-12 {
		margin-left: 42% !important;
	}

	.pp-host{            /* troca .pp-host pela classe do teu wrapper da secção */
    padding-bottom: 110px;   /* ≈ diâmetro da bolinha (80) + 30px de folga */
  }

  .year_1980 {
    margin-bottom: 100px !important;
}

#worldmap {
		width: 90vh;
	}



.map-callout.is-open {
    top: 100px !important;
}

.logos-grid img {

    width: 100px !important;
   
}

.logos-grid1 img {
    max-width: 60px !important;
}

}

/* Media query para menu hamburguer */
@media print, screen and (max-width: 1250px) {

  
	h4 {
		font-size: 22px;
		line-height: 26px;
	}
	p {
		font-size: 17px;
		line-height: 21px;
	}
	/****************************** LEGAL PAGE ************************************/
	.legalPage .vc_column_container:nth-child(1) .vc_column-inner {
		padding-right: 60px;
	}

	.legalPage .vc_column_container:nth-child(2) .vc_column-inner {
		padding-left: 60px;
	}

	/****************************** NOTICIA DETALHE PAGE ************************************/

	.single-post:has(.bigPost) .vc_row:nth-child(2) .wpb_column:nth-child(2) {
		padding-right: 0px;
	}

	/****************************** LISTAGEM NOTICIA ************************************/

	/* artigo com dimensao pequnea */
	.noticiaWrapper.smallArticle img {
		height: 200px;
	}
	/* artigo com dimensão default (sugestões e elementos de lista) */
	.noticiaWrapper.mediumArticle img {
		height: 310px;
	}
	/* artigo de dimensão grande */
	.noticiaWrapper.bigArticle img {
		height: 466px;
	}
	/* estrutura com as noticias */
	.listagemNoticiasWrapper {
		margin-top: 70px !important;
		margin-bottom: 50px;
	}

	/* wrapper com todos os artigos */
	.listagemNoticiasWrapper:nth-child(2) {
		margin-top: 0px !important;
		margin-bottom: 30px;
	}

	.noticiaInfoWrapper span {
		font-size: 16px;
		line-height: 25px;
		gap: 10px;
	}

	.noticiaInfoWrapper span::after {
		width: 21px;
		height: 21px;
	}

	/****************************** FOOTER ************************************/
	.middleFooterSection {
		gap: 40px;
	}

}

/* Media query para menu hamburguer */
@media print, screen and (max-width: 1200px) {
	h1,
	h2 {
		font-size: 32px;
		line-height: 35px;
	}
	h1.smallH1,
	h2.smallH2 {
		font-size: 14px;
		line-height: 19px;
	}
	/****************************** PORTEFOLIO PAGE ************************************/
	.portefolioPage h1 {
		margin-bottom: 44px;
	}
	.portefolioCategoriaIndividual h2 {
		font-size: 42px;
		line-height: 52px;
	}

	.categoriaDrawer .categoriaDescriptions p:nth-child(1) {
		font-size: 14px;
		line-height: 19px;
		width: 324px;
	}

	.categoriaDrawer .categoriaDescriptions p:nth-child(2) {
		font-size: 14px;
		line-height: 19px;
		width: 324px;
	}

	.projetosWrapper
		.projetoIndividual
		img:not(.projetoTituloWrapper img, .taxonomy-categoria_proj-posts img) {
		width: calc(419px * 0.8);
		height: calc(450px * 0.8);
	}

	.projetosWrapper.biggerProject
		.projetoIndividual
		img:not(.projetoTituloWrapper img) {
		width: calc(684px * 0.8);
		height: calc(534px * 0.8);
	}

	.projetosWrapper
		.projetoIndividual
		img:not(.taxonomy-categoria_proj-posts img) {
		max-width: unset;
		object-fit: cover;
		width: calc(56px * 0.8);
		height: calc(9px * 0.8);
	}

	.projetosWrapper .projetoTituloWrapper h6 {
		font-size: 12px;
		line-height: 14px;
		max-width: 223px;
	}

	.projetosWrapper.biggerProject .projetoTituloWrapper h6 {
		max-width: 190px;
	}
	/****************************** NOTICIAS DETAIL PAGE ************************************/

	/* SUGESTAO DE NOTICIAS */
	/* Titulo c/ sugestão */
	.sugestaoTitleCol h4 {
		width: 280px;
	}
	/****************************** NOTICIAS PAGE ************************************/
	/* wrapper com noticia */
	.noticiaWrapper,
	.noticiaInfoWrapper {
		display: flex;
		flex-direction: column;
		gap: 12px;
		cursor: pointer;
	}


	

	.stat-num p {
		font-size: 73px;
		line-height: 110px;
		
	}

	.stat-label p {
		font-size: 20px;
		line-height: 20px;
		margin-top: -90px !important;
		margin-left: 150px !important;
	}

	.vc_row.qs-three {
		height: 550px !important;
	}

	.hero-content.wpb_column.vc_column_container.vc_col-sm-12 {
    margin-left: 30% !important;
}

.logos-section .corner-bottom-left12, .logos-section .corner-bottom-right12 {
    
    width: 500px !important;
  
}

.logos-grid1 img {
    max-width: 60px !important;
}

}

.stat {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: stretch;
}




@media print, screen and (max-width: 1100px) {
	/****************************** HEADER ************************************/
	.optionsWrapper.desktopOnly,
	.menu-desktop-wrapper .menu-menu-principal-container ul {
		gap: 16px;
	}

	/****************************** FOOTER ************************************/
	.middleFooterSection {
		gap: 20px;
	}

  .hero-content.wpb_column.vc_column_container.vc_col-sm-12 {
    margin-left: 20% !important;
}

.upperFooter{
  flex-direction: column;
  gap: 20px;
}

.middleFooterSection{
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.upperFooterCol.imagesCol {
    align-items: flex-start; 
    gap: 35px;
    margin-top: 20px;
}
}

/*tablet landscape or old laptop */
@media print, screen and (max-width: 1024px) {



	.wpb_text_column.wpb_content_element.intro_text p {
		width: 33vw;
	}

	.intro .intro_img img {	
		height: 40vh !important;
	}

	.intro_img img {
		width: 40vh !important;
	}

	.stat-label p {
		font-size: 15px;
		line-height: 15px;
		margin-top: -55px !important;
		margin-left: 117px !important;
	}

	.stat-num p {
		font-size: 58px;
		line-height: 58px;
	}

	.tl-years {
		gap: 36px;
	}

	.hist-timeline .tl-year {
		font-size: 40px;
	}

	.year_2012 {
		margin-left: 46% !important;
	}

	.year_2015 {
		margin-left: 46% !important;
	}

	.certificacoes_text p {
		
		width: 40% !important;
	
	}

	.projetos_internacionais .vc_col-sm-4 {
		width: 100% !important;
	}

	.projetos_internacionais .vc_col-sm-8 > .vc_column-inner > .wpb_wrapper {
		width: 100vw;
	}

	.projetos_internacionais {
		--pi-h: 500px;
	}

	.map-legend {
		
		grid-template-columns: repeat(6, 1fr);
		
		width: 230%;
	}


	.map-legend {

		grid-template-rows: repeat(6, auto);
	}

	.map-wrap {
		margin-left: 0%;
		margin-top: 0%;
	}

	#worldmap {
		width: 70vh;
		margin-top: 100px !important;
	}

	.presenca_subtitle p {
		width: 50%;
	}

	.principais_projetos_text p {
		font-size: 22px;
		line-height: 29px;
		margin-left: 250px;
		width: 66%;
	}

	.pp-year-bubble {
		margin-left: 250px;
		
	}

	.vc_row.projetos .projetosWrapper {
		margin-left: -100px !important;   /* move tudo 100px para a esquerda */

	}
	.year_1970 {
   
        margin-left: 350px !important;
	}

	.year_1980 {
   
        margin-left: 350px !important;
	}

	.year_1990 {
   
        margin-left: 350px !important;
	}

	.year_2000 {
   
        margin-left: 350px !important;
	}

	.year_2010 {
   
        margin-left: 350px !important;
	}

	.year_2020 {
   
        margin-left: 350px !important;
	}


	.map-legend {
		max-height: 270px;
	}

	.pp-years-viewport {
		width: 95vw;
	}

	.projects li {
		width: 50%;
	}


	.hist-slider .vc_row.historia { 
    flex-wrap: wrap;                      /* permite quebrar para a linha seguinte */
  }

  /* coluna do texto do ano 2020 ocupa a linha toda */
  .hist-slider .vc_row.historia .ano_2020 {
    order: 1;
    flex: 0 0 100%;
    max-width: 100%;
  }

  /* a coluna com a imagem que vem a seguir ao texto do 2020 */
  .hist-slider .vc_row.historia .ano_2020 + .hist_img {
    order: 2;
    flex: 0 0 100%;
    max-width: 100%;
    margin-top: 24px;                     /* opcional: espaço entre texto e imagem */
  }

  /* coluna do texto do ano 2020 ocupa a linha toda */
  .hist-slider .vc_row.historia .ano_2000 {
    order: 1;
    flex: 0 0 100%;
    max-width: 100%;
  }

  /* a coluna com a imagem que vem a seguir ao texto do 2020 */
  .hist-slider .vc_row.historia .ano_2000 + .hist_img {
    order: 2;
    flex: 0 0 100%;
    max-width: 100%;
    margin-top: 24px;                     /* opcional: espaço entre texto e imagem */
  }

  /* coluna do texto do ano 2020 ocupa a linha toda */
  .hist-slider .vc_row.historia .ano_1990 {
    order: 1;
    flex: 0 0 100%;
    max-width: 100%;
  }

  /* a coluna com a imagem que vem a seguir ao texto do 2020 */
  .hist-slider .vc_row.historia .ano_1990 + .hist_img {
    order: 2;
    flex: 0 0 100%;
    max-width: 100%;
    margin-top: 24px;                     /* opcional: espaço entre texto e imagem */
  }

  /* coluna do texto do ano 2020 ocupa a linha toda */
  .hist-slider .vc_row.historia .ano_1980 {
    order: 1;
    flex: 0 0 100%;
    max-width: 100%;
  }

  /* a coluna com a imagem que vem a seguir ao texto do 2020 */
  .hist-slider .vc_row.historia .ano_1980 + .hist_img {
    order: 2;
    flex: 0 0 100%;
    max-width: 100%;
    margin-top: 24px;                     /* opcional: espaço entre texto e imagem */
  }

  /* coluna do texto do ano 2020 ocupa a linha toda */
  .hist-slider .vc_row.historia .ano_1970 {
    order: 1;
    flex: 0 0 100%;
    max-width: 100%;
  }

  /* a coluna com a imagem que vem a seguir ao texto do 2020 */
  .hist-slider .vc_row.historia .ano_1970 + .hist_img {
    order: 2;
    flex: 0 0 100%;
    max-width: 100%;
    margin-top: 24px;                     /* opcional: espaço entre texto e imagem */
  }

  .imagem1 {
    margin-left: -20px !important;
}

/* Altura base do slider da História */
.hist-slider { height: 100vh !important; }

/* Quando o slide ativo for o de 1990, sobe para 1000px */
@supports selector(:has(*)) {
  /* O .hist-slider que CONTÉM um .vc_row.historia.is-active que, por sua vez,
     contém a coluna do ano 1990 (.ano_1990) */
  .hist-slider:has(.vc_row.historia.is-active .ano_1990) {
    height: 1000px !important;
  }
}

.hero-content.wpb_column.vc_column_container.vc_col-sm-12 {
    margin-left: 10% !important;
    top: -100px;
}

.logos-section .corner-bottom-left12, .logos-section .corner-bottom-right12 {
    width: 420px !important;
}

.galeria1 img {
   
    max-height: 40vh !important;

}

.logos-grid1 {
  
    gap: 18px 0px !important;
  
}

.logos-grid1 > .wpb_column > .vc_column-inner {
    padding: 0px 34px !important;
}

.logos-grid1 img {
    max-width: 50px !important;
}


.logos-grid1 {
    margin-left: 8px !important;
}

.galeria1 img {
   
    max-height: 38vh !important;

}


}

@media only screen and (max-width: 820px) {
.hero-title p {
    color: #fff;
    font-family: "Montserrat-Medium","Montserrat",sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 36px;
    line-height: 43px;
    letter-spacing: -0.04em;
    text-transform: uppercase;
}

.btn-ghost-circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 135px;
    height: 135px;
    border-radius: 50%;
    border: 2px solid var(--white);
    color: var(--white);
    transition: .2s ease;
    margin-left: 50%;
    margin-top: 44px;
    position: absolute;
}

.hero-stats .num {
    font-family: "Montserrat-Medium", sans-serif;
    font-size: 53px;
    line-height: 1;
    text-align: center;
    color: #fff;
}

.logos-section .corner-bottom-left12, .logos-section .corner-bottom-right12 {
    width: 340px !important;
}

.logos-grid1 > .wpb_column > .vc_column-inner {
    padding: 0px 22px !important;
}

.logos-section .corner-bottom-left, .logos-section .corner-bottom-right {
    width: 30px !important;
}

.logos-grid1 {
    gap: 0px 0px !important;
}

.logos-grid1 img {
    max-width: 44px !important;
}
.galeria1 img {
    max-height: 41vh !important;
}



}

@media only screen and (max-width: 768px) {
.hero-title p {
    font-size: 23px !important;
    line-height: 40px !important;
}

.wpb_text_column.wpb_content_element.intro_text p {
    width: 45vw !important;
  
}

.intro .intro_img img {
    height: 40vh !important;
   
}

}


/* Size considerado para Tablet */
@media only screen and (max-width: 765px) {


  .logos-grid{
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;   /* se estiveres a usar snap */
    -webkit-overflow-scrolling: touch;
  }
	.stats-grid {
    
    height: 300px;
    
}

	.hero-content.wpb_column.vc_column_container.vc_col-sm-12 {
    margin-left: 10% !important;
    top: -50px;
}
	h1.bigH1 {
		font-size: 38px;
		line-height: 46px;
	}
	/* Variáveis p/ reutilizar */
	:root {
		--page-margin: 18px;
		--page-top-space: 120px;
		--page-bottom-margin: 40px;
	}

	.mobileOnly {
		display: block;
	}

	.desktopOnly {
		display: none !important;
	}

	/****************************** HEADER ************************************/

	header {
		padding: 20px 0px 10px;
	}

	.wrapper-header {
		position: relative;
		display: flex;
		justify-content: center;
		align-items: center;
		width: 100%;
	}
	.whiteHeader header:not(.whiteBG) .menu-desktop-search-wrapper form input {
		border: none;
		background-color: transparent;
	}
	.whiteHeader
		header:not(.whiteBG)
		.wrapper-header:not(.open)
		.menu-desktop-search-wrapper
		form
		input:focus {
		border: 2px solid var(--darkerBlue);
		background-color: rgba(255, 255, 255);
	}
	.menu-mobile,
	.mobileSearch {
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
	}

	.menu-mobile {
		left: var(--page-margin);
	}
	.mobileSearch {
		right: var(--page-margin);
	}

	.mobile-menu-wrapper {
		display: block;
		position: fixed;
		top: 0px;
		left: -100%;
		width: 100%;
		height: 100dvh;
		padding: 100px var(--page-margin) 30px;
		z-index: 9990;
		transition: all 500ms ease-in-out;
	}

	.wrapper-header.open .menu-mobile.mobileOnly span,
	.wrapper-header.open .logo.mobileOnly img,
	.wrapper-header.open .mobileSearch.mobileOnly img,
	.wrapper-header .menu-mobile.mobileOnly span,
	.wrapper-header .logo.mobileOnly img,
	.wrapper-header .mobileSearch.mobileOnly img {
		transition: all 500ms ease-in-out;
	}

	.wrapper-header.open .mobile-menu-wrapper {
		left: 0%;
	}

	/* span com abertura de menu */
	.wrapper-header.open .menu-mobile.mobileOnly span {
		color: var(--white);
	}

	/* logotipo */
	body:not(.whiteHeader) .wrapper-header.open .logo.mobileOnly img,
	body:not(.whiteHeader) .wrapper-header.open .mobileSearch.mobileOnly .lupa {
		filter: grayscale(1) invert(1);
	}

	/* input de pesqsuisa */
	.wrapper-header.open .mobileSearch.mobileOnly input {
		background-color: transparent;
	}

	.mobileSearch,
	.logo.mobileOnly,
	.menu-mobile.mobileOnly {
		z-index: 9999;
	}

	.menu-mobile {
		display: grid;
		cursor: pointer;
	}
	.menu-mobile span {
		font-family: "Montserrat-Medium", "sans-serif";
		font-size: 18px;
		font-weight: 500;
		line-height: 22px;
		letter-spacing: -0.02em;
		color: var(--blue);
	}

	.whiteHeader header:not(header.whiteBG) .menu-mobile span {
		color: var(--white);
	}

	.menu-mobile span:nth-child(1) {
		height: 0px;
		transition: all 500ms ease-in-out;
		overflow: hidden;
	}
	.wrapper-header.open .menu-mobile span:nth-child(1) {
		height: 22px;
	}

	.mobile-menu-wrapper::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		/* background-image: inherit;
		background-size: inherit;
		background-position: inherit; */
		/* filter: brightness(0.7); */
		z-index: 1;
	}

	.mobile-menu-wrapper .container-video {
		z-index: 2;
		position: absolute;
		top: 0px;
		left: 0px;
	}

	.mobile-menu-wrapper .container-video::before {
		content: "";
		position: absolute;
		top: 0px;
		left: 0px;
		width: 100%;
		height: 100%;
		z-index: 1;
		background-color: var(--black);
		opacity: 0.32;
	}

	.mobile-menu-wrapper a {
		color: var(--white);
	}
	.mobile-menu-options {
		position: relative;
		z-index: 4;
		overflow-y: scroll;
		height: 100%;
		scrollbar-width: none; /* Firefox */
		-ms-overflow-style: none; /* Internet Explorer 10+ */
	}

	.mobile-menu-options::-webkit-scrollbar {
		display: none; /* Chrome, Safari, Opera */
	}

	.menu-desktop-search-wrapper form input,
	.menu-desktop-search-wrapper form input:hover,
	.whiteHeader .menu-desktop-search-wrapper form input {
		border: 0px solid var(--darkerBlue);
		border-radius: 100px;
		padding-left: 0px;
		padding-right: 0px;
		width: 24px;
		height: 48px;
		transition: all 500ms linear;
		transform-origin: right;
		color: transparent;
		background-color: unset;
	}

	.menu-desktop-search-wrapper form input::placeholder {
		opacity: 0;
	}
	/* placeholder com hover */
	.menu-desktop-search-wrapper form input:hover::placeholder,
	.menu-desktop-search-wrapper form input:focus::placeholder {
		opacity: 1;
	}

	.menu-desktop-search-wrapper form .lupa {
		left: 0px;
		height: 24px;
		width: 24px;
		transform: translate(0px, -50%);
	}
	.menu-desktop-search-wrapper form:has(input:focus) .lupa {
		left: 24px;
	}

	/* hover e focus */

	.menu-desktop-search-wrapper form input:focus {
		outline: unset;
		border: 2px solid var(--white);
		background-color: var(--darkerBlue);
		/* width: 400px; */
		height: 54px;
		padding-left: 60px;
		padding-right: 10px;
		color: var(--white);
	}

	.whiteHeader .menu-desktop-search-wrapper form input:focus {
		border: 2px solid var(--white);
		background-color: rgba(255, 255, 255, 1);
	}

	/* cor de fundo quando o menu está aberto */
	.wrapper-header.open .menu-desktop-search-wrapper form input:focus {
		border: 2px solid var(--white);

		background-color: var(--darkerBlue);
	}

	/* color do texto */
	.whiteHeader
		.wrapper-header:not(.open)
		.menu-desktop-search-wrapper
		form
		input:focus,
	.whiteHeader
		.wrapper-header:not(.open)
		.menu-desktop-search-wrapper
		form
		input::placeholder {
		color: var(--darkerBlue);
	}

	/* lupa quando a pesquisa abre */
	.whiteHeader
		.wrapper-header
		.menu-desktop-search-wrapper
		form:has(input:focus)
		.lupa {
		filter: unset !important;
	}
	/* lupa quando pesquisa abre com o menu aberto, lupa quando ppesquisa abre no header branco com menu aberto, logo quando menu abre e header branco */
	.whiteHeader
		.wrapper-header.open
		.menu-desktop-search-wrapper
		form:has(input:focus)
		.lupa,
	.whiteHeader
		header.whiteBG
		.wrapper-header.open
		.menu-desktop-search-wrapper
		.lupa,
	.whiteHeader header.whiteBG .wrapper-header.open .logo.mobileOnly {
		filter: grayscale(1) invert(1) !important;
	}

	.whiteHeader .menu-desktop-search-wrapper form input:focus {
		border: 2px solid var(--darkerBlue);
	}

	/****** ESTILIZAÇÂO DAS OPÇOES DE MENU MESMO ******/
	.mobile-menu-options ul a {
		font-family: "Montserrat-Medium";
		font-size: 19px;
		line-height: 22px;
		letter-spacing: -0.03em;
		text-transform: uppercase;
		position: relative;
	}
	.mobile-menu-options ul li:not(ul ul li) {
		border-bottom: 2px solid var(--white);
	}
	.mobile-menu-options ul li {
		padding: 16px 0px;
	}

	.mobile-menu-options ul li:last-child {
		border-bottom: 0px;
	}

	.mobile-menu-options ul.sub-menu,
	ul.outrosProjetos-lista {
		margin-left: 24px;
	}
	.mobile-menu-options ul.sub-menu li,
	ul.outrosProjetos-lista li {
		padding-bottom: 0px;
	}

	/* icone cat projeto */
	.mobile-menu-options ul.sub-menu a::before,
	ul.outrosProjetos-lista a::before {
		content: "";
		background-image: url(/wp-content/uploads/2024/10/DROPDOWN.svg);
		background-position: center;
		background-repeat: no-repeat;
		background-size: contain;
		width: 8px;
		height: 8px;
		position: absolute;
		top: 50%;
		left: -14px;
		transform: translate(-100%, -50%);
	}
	ul.outrosProjetos-lista a::before {
		background-image: url("/wp-content/uploads/2024/10/DROPDOWN_blue.svg");
	}

	/****************************** LEGAL PAGE ************************************/
	.legalPage .vc_column_container:nth-child(1) .vc_column-inner {
		padding-right: 30px;
	}

	.legalPage .vc_column_container:nth-child(2) .vc_column-inner {
		padding-left: 30px;
		margin-top: 64px;
	}

	/****************************** CANDIDATURAS PAGE ************************************/
	.candidaturasPage .wpb_column:nth-child(1) p {
		max-width: unset;
	}

	.candidaturasPage .wpb_column:nth-child(2) .vc_column-inner > .wpb_wrapper {
		margin-top: 75px;
		padding: 32px !important;
	}

	.circle {
		content: "";
		height: 80px;
		width: 80px;
		margin-left: auto;
	}

	.infoAndButtonWrapper {
		display: inline-block;
		width: 100%;
	}

	/****************************** CONTACTOS PAGE ************************************/
	.formularioSection .wpb_column:nth-child(1) .vc_column-inner > .wpb_wrapper {
		max-width: unset;
	}

	.formularioSection .wpb_column:nth-child(1) {
		margin-bottom: 16px;
	}

	/****************************** PORTEFOLIO PAGE ************************************/
	.portefolioPage h1 {
		width: 100%;
		margin-bottom: 30px;
	}

	/*  os elementos ficam inativos e só redirecionam para a página de cada caegoria de projeto */
	.portefolioCategoriaIndividual:has(.categoriaDrawer) a {
		pointer-events: all;
	}

	.portefolioCategoriaIndividual .categoriaDrawer {
		display: none !important;
	}

	.portefolioCategoriaIndividual h2 {
		font-size: 30px;
		line-height: 40px;
	}
	.portefolioCategoriaIndividual {
		padding: 12px 0px;
	}

	.outrosProjetos {
		display: block;
	}

	/****************************** NOTICIAS DETAIL PAGE ************************************/

	/* Dimensao da zona de rtexto */
	.single-post .wpb_column:nth-child(1) .vc_column-inner > .wpb_wrapper {
		max-width: 100%;
	}

	/* imagens da galeria */
	.galeriaImagensWrapper img:nth-child(1) {
		width: calc(263px * 1.4);
		height: calc(295px * 1.4);
	}
	.galeriaImagensWrapper img:nth-child(2) {
		width: calc(447px * 1.4);
		height: calc(453px * 1.4);
	}
	.smallPost.galeriaImagensWrapper {
		margin-top: 64px !important;
	}
	.sugestaoNoticiasWrapper {
		margin-top: 200px;
	}

	.single-post .vc_row:has(h1) .wpb_column:nth-child(2) {
		padding-top: 32px;
	}

	main:has(.bigPost) .vc_row:nth-child(3) {
		margin-top: 80px !important;
	}

	main:has(.bigPost) .wpb_column:has(.scrollProjButtonWrapper) {
		bottom: -50px;
	}

	/* SUGESTAO DE NOTICIAS */
	.sugestaoNoticiasWrapper {
		display: flex;
		gap: 15px;
		align-items: flex-start;
		flex-direction: column;
	}
	/* Titulo c/ sugestão */
	.sugestaoTitleCol h4 {
		width: 100%;
	}
	/****************************** NOTICIAS PAGE ************************************/
	/* wrapper com noticia */
	.noticiaWrapper,
	.noticiaInfoWrapper {
		display: flex;
		flex-direction: column;
		gap: 12px;
		cursor: pointer;
	}

	.noticiaWrapper.bigArticle img {
		height: 380px;
	}
	.noticiaWrapper.mediumArticle img {
		height: 300px;
	}
	.noticiaWrapper.smallArticle img,
	.sugestaoNoticias .noticiaWrapper.smallArticle img {
		height: 220px;
	}

	.listagemNoticiasWrapper .noticiaWrapper img {
		width: fit-content;
	}
	.listagemNoticiasWrapper .noticiaWrapper.mediumArticle,
	.listagemNoticiasWrapper .noticiaWrapper.mediumArticle img,
	.listagemNoticiasWrapper .noticiaWrapper.bigArticle,
	.listagemNoticiasWrapper .noticiaWrapper.bigArticle img {
		width: 539px;
	}
	.listagemNoticiasWrapper .noticiaWrapper.smallArticle,
	.listagemNoticiasWrapper .noticiaWrapper.smallArticle img {
		width: 447px;
	}

	/****************************** FOOTER ************************************/
	.upperFooter {
		display: flex;
		justify-content: space-between;
		margin-bottom: 32px;
		flex-direction: column;
		gap: 32px;
	}
	.middleFooterSection {
		gap: 20px;
	}

	.upperFooter .menu-menu-links-container,
	.middleFooterSection ul li:first-child,
	.secondMenuCol ul li:nth-child(1) {
		margin-bottom: unset;
	}

	.middleFooterSection {
		justify-content: space-between;
	}

	.upperFooterCol.imagesCol {
		display: flex;
		flex-direction: unset;
		align-items: flex-end;
		gap: 32px;
		justify-content: space-between;
	}
	.lowerFooter {
		grid-template-columns: 1fr;
		justify-items: center;
		gap: 32px;
	}

	footer ul a:hover::before {
		width: 0px;
	}
}

/* Size considerado para Tablet modo portrait*/
@media only screen and (max-width: 764px) {

	.parentProjCat .categoriaContentWrapper {
		display: flex;
		gap: 36px;
		flex-direction: column;
	}

	.parentProjCat .stickyParent {
		max-width: 100%;
	}
}
/* Size considerado para Tablet modo portrait*/
@media only screen and (max-width: 763px) {
.hero-video .vc_col-sm-6:nth-child(2) {
    padding-left: 10%;
    padding-top: 62%;
}
.vc_row.hero-video .hero-stats {
    position: relative;
    left: var(--page-margin);
    right: var(--page-margin);
    display: flex;
    gap: 56px;
    padding-top: 90px;
}

.hero-sub {
    margin-top: 150px;
    max-width: 100%;
    color: #fff;
    font-family: "Montserrat-Medium","Montserrat",sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 18px;
    line-height: 20px;
    letter-spacing: -0.02em;
    width: 100%;
}

	h1,
	h2 {
		font-size: 28px;
		line-height: 33px;
	}
	/****************************** LEGAL PAGE ************************************/
	.legalPage h1,
	.legalPage h2 {
		font-size: 22px;
		line-height: 32px;
		letter-spacing: -0.03em;
	}

	.legalPage p {
		font-size: 15px;
		line-height: 22px;
		letter-spacing: -0.02em;
	}

	.legalPage .vc_column_container:nth-child(1) h1,
	.legalPage .vc_column_container h2,
	.legalPage p {
		margin-bottom: 18px;
	}

	.legalPage p {
		margin-bottom: 10px;
	}

	.legalPage .vc_column_container:nth-child(1) .vc_column-inner {
		padding-right: 15px;
	}

	.legalPage .vc_column_container:nth-child(2) .vc_column-inner {
		padding-left: 15px;
	}

	/****************************** CONTACTOS PAGE ************************************/
	.contactosPage h1,
	.contactosPage h2 {
		margin-bottom: 16px;
	}

	.locaisEmpresaSection {
		margin-bottom: 64px;
	}
	/****************************** DETALHE NOTICIA  ************************************/

	main:has(.bigPost) .wpb_column:has(.scrollProjButtonWrapper) {
		bottom: -20px;
	}
}

@media only screen and (max-width: 600px) {
	h4 {
		font-size: 18px;
		line-height: 22px;
		letter-spacing: -0.02em;
	}
	/****************************** PORTEFOLIO PAGE ************************************/
	.portefolioCategoriaIndividual h2 {
		font-size: 24px;
		line-height: 32px;
	}
	.portefolioCategoriaIndividual {
		padding: 10px 0px;
	}
	/****************************** PORTEFOLIO DETAIL PAGE ************************************/

	.taxonomy-categoria_proj-posts
		.projetosWrapper
		.projetoIndividual
		img:not(.projetoTituloWrapper img) {
		width: 358px;
		height: 523px;
	}

	/****************************** NOTICIAS DETAIL PAGE ************************************/
	/* imagens da galeria */
	.galeriaImagensWrapper img:nth-child(1) {
		width: calc(263px * 1.2);
		height: calc(295px * 1.2);
	}
	.galeriaImagensWrapper img:nth-child(2) {
		width: calc(447px * 1.2);
		height: calc(453px * 1.2);
	}

	.single-post .wpb_column p,
	.noticiaInfoWrapper p {
		font-size: 15px;
		line-height: 22px;
		letter-spacing: -0.02em;
	}
	.single-post:has(.bigPost) .vc_row:has(img) .wpb_column:nth-child(1) {
		width: unset;
	}

	/****************************** NOTICIAS PAGE ************************************/
	.sugestaoNoticiasWrapper {
		margin-top: 250px;
	}

	.listagemNoticiasWrapper {
		margin-top: 32px !important;
		margin-bottom: 64px;
	}

	.noticiaWrapper.bigArticle img {
		height: 300px;
	}
	.noticiaWrapper.mediumArticle img {
		height: 250px;
	}
	.noticiaWrapper.smallArticle img,
	.sugestaoNoticias .noticiaWrapper.smallArticle img {
		height: 150px;
	}
	.listagemNoticiasWrapper .noticiaWrapper.mediumArticle,
	.listagemNoticiasWrapper .noticiaWrapper.mediumArticle img,
	.listagemNoticiasWrapper .noticiaWrapper.bigArticle,
	.listagemNoticiasWrapper .noticiaWrapper.bigArticle img {
		width: calc(539px * 0.62);
	}
	.listagemNoticiasWrapper .noticiaWrapper.smallArticle,
	.listagemNoticiasWrapper .noticiaWrapper.smallArticle img,
	.sugestaoNoticias .noticiaWrapper.smallArticle img {
		width: calc(447px * 0.67);
	}

	.pagination span,
	.pagination a {
		font-size: 18px;
	}

	/****************************** FOOTER ************************************/
	footer {
		background-color: var(--darkerBlue);
		padding: 55px var(--page-margin) 31px;
    bottom: -20px !important;
	}
	footer a:not(.lowerFooter a) {
		font-size: 16px;
		line-height: 24px;
	}
	.logoCol img {
		margin-bottom: 32px;
		width: 210px;
		height: 36px;
	}
	.upperFooter .menu-menu-links-container a,
	footer ul li:first-child a,
	.secondMenuCol ul li:nth-child(1) a,
	.secondMenuCol ul li:nth-child(2) a,
	.secondMenuCol ul li:nth-child(3) a {
		font-size: 18px;
		line-height: 27px;
	}

	.middleFooterSection {
		display: grid;
		grid-template-columns: repeat(2, auto);
		grid-template-rows: repeat(2, auto);
		gap: 50px;
	}

	.mainMenuCol {
		grid-area: 1 / 1 / 2 / 2;
	}
	.secondMenuCol {
		grid-area: 1 / 2 / 2 / 3;
	}
	.contactMenuCol {
		grid-area: 2 / 1 / 3 / 3;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 20px;
	}

	.contactMenuCol > div:nth-child(1),
	.secondMenuCol ul li:nth-child(1),
	.secondMenuCol ul li:nth-child(2) {
		margin-bottom: 16px !important;
	}
	.contactMenuCol > div:nth-child(1) {
		margin-bottom: 0px !important;
	}

	.upperFooter .imagesCol img:nth-child(1) {
		width: 66.49px;
		height: 20px;
	}
	.upperFooter .imagesCol img:nth-child(2) {
		width: 102.5px;
		height: 20px;
	}
	.upperFooter .imagesCol img:nth-child(3) {
		width: 70.27px;
		height: 20px;
	}
}

@media only screen and (max-width: 500px) {
	/****************************** NOTICIAS DETAIL PAGE ************************************/
	.single-post .postHeader .voltarWrapper span {
		display: none;
	}
}




/* Size considerado Mobile - 440px*/
@media only screen and (max-width: 767px) {



	/****************************** NOTICIAS DETAIL PAGE ************************************/
	/* imagens da galeria */
	.galeriaImagensWrapper img:nth-child(1) {
		width: 221px;
		height: 247px;
	}
	.galeriaImagensWrapper img:nth-child(2) {
		width: 447px;
		height: 502px;
	}

	.hero-title p{
    /* cor */
    color: white !important;

    /* tipografia */
    font-family: "Montserrat", sans-serif;
    font-weight: 500;        /* “SemiBold” em CSS = weight 600 */
    font-style: normal;      /* SemiBold não é um font-style válido */
    font-size: 19px !important;
    line-height: 25px !important;

    /* -4% ≈ -0.04em (percentagens não são válidas em letter-spacing) */
    letter-spacing: -0.04em;

    text-transform: uppercase;
  }

  .hero-sub p {
    color: white !important;

    /* tipografia pedida */
    font-family: "Poppins", sans-serif;
    font-weight: 400;     /* “Regular” = 400 */
    font-style: normal;   /* Regular não é um font-style válido */
    font-size: 16px;
    line-height: 18px;

    /* -2% ≈ -0.02em (letter-spacing não aceita %) */
    letter-spacing: -0.02em;
  }

  .hero-stats .num{
    color: white;
    text-align: center;

    /* tipografia pedida */
    font-family: "Poppins", sans-serif;
    font-weight: 600;     /* “SemiBold” = 600 */
    font-style: normal;   /* “SemiBold” não é um font-style válido */
    font-size: 38px;
    line-height: 87.12px;

    /* 4% ≈ 0.04em (letter-spacing não aceita %) */
    letter-spacing: 0.04em;
  }

  .hero-stats .label{
    color: white;
    font-family: "Montserrat", sans-serif;
    font-weight: 500 !important; /* Medium = 500; sobrescreve o 400 !important existente */
    font-style: normal;
    font-size: 18px !important;
    line-height: 22px;
    letter-spacing: -0.02em; /* -2% */
    opacity: 1;
  }

  .btn-ghost-circle {
    width: 120px;
    height: 120px;
    }

	a.btn-ghost-circle {
		font-family: "Poppins-Regular", "sans-serif";
		font-weight: 400;
		font-style: normal;
		font-size: 14px;
		line-height: 21px;
		letter-spacing: 0.02px;
	}

	.hero-content.wpb_column.vc_column_container.vc_col-sm-12 {
		margin-left: 16px !important;
	}

	.btn-ghost-circle {
		
		border: 2px solid #001F32 !important;
		background-color: #001F32 !important;
		
	}

	.btn-ghost-circle {
   
    margin-top: 100px !important;
    margin-left: 0%;
    right: calc(0% + 32px) !important;
    margin-bottom: 0px;
   
}

.hero-sub {
    width: 80%;
}

.vc_row.hero-video .hero-stats {
    position: absolute !important;
    left: 16px;
    right: auto;
    top: -100px;
    display: flex;
    gap: 56px;
    flex-wrap: wrap;
    justify-content: space-evenly;
}

.hero-stats .num {
	text-align: start;
    line-height: 38px;
}

.hero-content.wpb_column.vc_column_container.vc_col-sm-12 {
    top: -100px;
}

.label {
   
    padding: .2em .0em .3em;
  
    text-align: start;
    
}

.btn-ghost-circle {
    margin-top: 200px !important;
   
}

.vc_row.hero-video::after{
    background: rgba(252,255,254,0.65) !important; /* #FCFFFE 65% */
  }

  /* Desliga os restantes overlays que escurecem */
  .hero-video::after,
  .bg-video::after,
  .vc_row.hero-video .hero-bg-video::after{
    background: none !important;
    mix-blend-mode: normal !important;
  }

  .bg-video::after{
    /* fica por cima do vídeo (já tens z-index:2 e pointer-events:none) */
    background:
      /* “glaze” branco a 65% */
      linear-gradient(0deg, rgba(252,255,254,.65), rgba(252,255,254,.65)),
      /* fade de topo/baixo como no Figma */
      linear-gradient(180deg,
        #FCFFFE -3.82%,
        rgba(252,255,254,0) 10.65%,
        rgba(252,255,254,0) 72.66%,
        #FCFFFE 95.2%
      );
    mix-blend-mode: normal;   /* anula o darken anterior */
  }

  .bg-video::after,
  .vc_row.hero-video::after,
  .vc_row.hero-video .hero-bg-video::after {
    background: none !important;
    mix-blend-mode: normal !important;
    opacity: 1 !important;
  }

  /* 2) Aplica o overlay esbranquiçado (#FCFFFE ~65%) + gradiente vertical */
  .bg-video::after,
  .vc_row.hero-video::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;               /* acima do vídeo, abaixo do texto */
    pointer-events: none;

    /* Camadas:
       - faixas suaves (opcional – comenta a 1ª linha se não quiseres)
       - véu branco 65%
       - gradiente branco->transparente->branco (topo/fundo) */
    background:
      /* faixas claras diagonais (look do Figma) */
      repeating-linear-gradient(
        -8deg,
        rgba(252,255,254,.14) 0 18px,
        rgba(252,255,254,0)   18px 60px
      ),
      /* véu branco */
      linear-gradient(0deg,
        rgba(252,255,254,0.65), rgba(252,255,254,0.65)
      ),
      /* branco em cima/baixo, transparente ao centro */
      linear-gradient(180deg,
        #FCFFFE -4%,
        rgba(252,255,254,0) 11%,
        rgba(252,255,254,0) 73%,
        #FCFFFE 95%
      );
  }

  /* Garante que o conteúdo fica por cima do overlay */
  .hero-content,
  .hero-stats,
  header { z-index: 3; position: relative; }

  .wrapper-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 16px 0; /* 16px à esquerda como pediste */
    background: transparent;
  }

  /* Botão "Menu" */
  .menu-trigger {
    appearance: none;
    background: transparent;
    border: 0;
    padding: 0;
    margin: 0;            /* zera para controlar pela label */
  }
  .menu-trigger .menu-label {
    margin-left: 16px;    /* pedido */
    font-family: "Montserrat", sans-serif;
    font-weight: 500;     /* Medium */
    font-size: 18px;
    line-height: 22px;
    letter-spacing: -0.02em; /* -2% */
    color: #001F32 !important ;
  }

  /* Logo mobile */
  .logo.mobileOnly img {
    width: 56px;
    height: auto;
    /* garante que não herda filtros */
    filter: none !important;
  }

  /* Ícone da lupa à direita */
  .mobile-icons { display: flex; align-items: center; }
  .mobile-icons .mobile-search-btn {
    appearance: none;
    background: transparent;
    border: 0;
    padding: 0;
  }
  .mobile-icons img {
    width: 24px;
    height: 24px;
    display: block;
    filter: none;
  }

  /* Caso exista algum estilo antigo do "hamburger", neutraliza */
  .hamburger, .menu-mobile { display: none !important; }

  .whiteHeader header:not(.whiteBG) .logo.mobileOnly,
  .whiteHeader header:not(.whiteBG) .logo.mobileOnly img {
    filter: none !important;
  }

  /* Dimensão/posicionamento (ajusta se necessário) */
  .logo.mobileOnly .mobile-logo {
    width: 56px;
    height: 73px;
    display: block;
  }

  /* Logo mobile: duas versões, troca por classe no <body> */
.mobile-logo { display:inline-flex; align-items:center; justify-content:center; }
.mobile-logo img { display:block; height:73px; width:auto; }

/* Por defeito: mostra o escuro, esconde o branco */
.mobile-logo .logo-dark  { display:block; }
.mobile-logo .logo-light { display:none; }

/* Quando o menu está aberto (classe no <body>): mostra o branco */
.menu-open .mobile-logo .logo-dark  { display:none; }
.menu-open .mobile-logo .logo-light { display:block; }

/* Enquanto o menu está aberto, “pinta” também texto/ícones do topo */
.menu-open .mobile-header-bar .menu-text { color:#fff; }
.menu-open .mobile-header-bar .mobile-search-btn img { filter:invert(1) brightness(100%); }

 .mobile-header-bar.mobileOnly button {
	display: none !important;
} 

/* Estado normal (menu fechado) */
.mobile-header-bar .menu-text { 
  font-family: "Montserrat-Medium","Montserrat",sans-serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 22px;
  letter-spacing: -0.02em;
  color: #001F32;
  margin-left: 16px;
}

.mobile-logo .logo-dark  { display: inline; }
.mobile-logo .logo-light { display: none; }

.mobile-search-btn img {
  display: none;
  width: 24px; height: 24px;
  transition: filter .2s ease, opacity .2s ease;
  /* ícone escuro por defeito */
  filter: none;
}

/* Overlay já branco por defeito */
.mobile-menu-overlay .mm-search img { filter: brightness(0) invert(1); }

/* ===== Quando o menu está aberto ===== */
/* Usa a classe no <html>: .mm-open */
.mm-open .mobile-header-bar .menu-text { color: #fff; }
.mm-open .mobile-search-btn img       { filter: brightness(0) invert(1); }

/* Troca de logo: mostra o branco, esconde o escuro */
.mm-open .mobile-logo .logo-dark  { display: none; }
.mm-open .mobile-logo .logo-light { display: inline; }

/* Topo do overlay */
.mobile-menu-overlay .mm-top{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 20px;
}

/* Remove qualquer “X” antigo feito com pseudo-elementos */
.mobile-menu-overlay .close,
.mobile-menu-overlay .close::before,
.mobile-menu-overlay .close::after{
  display:none !important;
}

/* Botão de fechar com texto */
.mobile-menu-overlay .mm-close{
  background:none; border:0; padding:0;
  display:flex; flex-direction:column; gap:2px;
  cursor:pointer;
}
.mobile-menu-overlay .mm-close .mm-close-label{
  font-family:"Montserrat",sans-serif;
  font-weight:500;
  font-size:18px; line-height:22px; letter-spacing:-0.02em;
  color:#fff;                     /* branco no overlay */
}

/* Texto “Menu” da barra mobile (quando o menu está fechado) */
.mobile-header-bar .menu-text{
  font-family:"Montserrat-Medium","Montserrat",sans-serif;
  font-weight:500;
  font-size:18px; line-height:22px; letter-spacing:-0.02em;
  color:#001F32;                  /* azul escuro */
  margin-left:16px;
}

/* Quando o menu está aberto: tudo a branco na barra mobile */
.mobile-header-bar.is-open .menu-text{ color:#fff; }
.mobile-header-bar.is-open .mobile-search-btn img{ filter: invert(1) brightness(100%); }

/* Alternar logos (escuro → branco quando aberto) */
.mobile-logo .logo-dark{ display:block; }
.mobile-logo .logo-light{ display:none; }
.mobile-header-bar.is-open .mobile-logo .logo-dark{ display:none; }
.mobile-header-bar.is-open .mobile-logo .logo-light{ display:block; }

/* Lupa branca também no topo do overlay */
.mobile-menu-overlay .mm-search img{ filter: invert(1) brightness(100%); }


/* Overlay ocupa o ecrã todo; quando abrir acrescentas .is-open via JS */
.mobile-menu-overlay{
  position: fixed; inset: 0; z-index: 9999;
  display: none;           /* fecha */
}
.mobile-menu-overlay.is-open{ display:block; } /* abre */

/* Camada do vídeo de fundo */
.mobile-menu-overlay .mm-bg{
  position: absolute; inset: 0; overflow: hidden; z-index: 0;
}
.mobile-menu-overlay .mm-video{
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  min-width: 100%; min-height: 100%;
  width: auto; height: auto;
  object-fit: cover;
  pointer-events: none;   /* não “rouba” cliques */
}

/* Véu por cima do vídeo (ligeiro esbranquiçado) */
.mobile-menu-overlay .mm-dim{
  position: absolute; inset: 0; z-index: 1;
  /* esbranquiçado suave; ajusta a opacidade a gosto */
  background: rgba(252, 255, 254, .65);
  /* Ou um gradiente, se preferires:
  background: linear-gradient(180deg, rgba(252,255,254,.70) 0%, rgba(252,255,254,.35) 100%);
  */
}

/* Conteúdo do menu fica acima do vídeo e do véu */
.mobile-menu-overlay .mobile-menu{ position: relative; z-index: 2; }

/* O resto do teu styling do topo/itens já existente… */

/* Overlay do menu a ocupar o ecrã todo e sem fundo */
.mobile-menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: transparent !important;  /* mata fundos antigos */
}

/* Vídeo de fundo a cobrir tudo */
.mobile-menu-overlay .mm-bg-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;              /* por baixo de tudo */
  pointer-events: none;    /* não bloqueia cliques no menu */
}

/* Véu esbranquiçado por cima do vídeo */
.mobile-menu-overlay::after {
  content: "";
  position: absolute;
  inset: 0;
  /* igual ao mock: #FCFFFE ~65% */
  background: rgba(252, 255, 254, 0.65);
  z-index: 1;
}

/* Conteúdo do menu vem acima do véu */
.mobile-menu-overlay .mobile-menu {
  position: relative;
  z-index: 2;
  height: 100%;
  overflow-y: auto;
  background: transparent !important;   /* sem fundos sólidos */
}

/* Topo do overlay sem fundo */
.mobile-menu-overlay .mm-top {
  background: transparent !important;
}

/* Bordas/linhas do menu mais suaves sobre o vídeo */
.mobile-menu-overlay .menu-mobile-list li {
  border-color: rgba(255,255,255,.35);
}

/* Tipografia/brancos no overlay (já tinhas, mas garantimos) */
.mobile-menu-overlay .mm-close,
.mobile-menu-overlay .mm-close .mm-close-label,
.mobile-menu-overlay .mm-search,
.mobile-menu-overlay .mm-top,
.mobile-menu-overlay .menu-mobile-list a {
  color: #fff !important;
  fill:  #fff !important;
  stroke:#fff !important;
}

/* Se algum bloco antigo insistir em pintar fundo escuro, anulamos */
.mobile-menu-overlay,
.mobile-menu-overlay * {
  background-image: none !important;
}

/* --- NÃO aplicar véu no overlay do menu --- */
.mobile-menu-overlay::after,
.mobile-menu-overlay .mm-dim {
  content: none !important;
  background: transparent !important;
}


/* --- VÉU do vídeo apenas na HOME --- */
.whiteHeader .bg-video::after,
.whiteHeader .vc_row.hero-video::after{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;

  /* o mesmo efeito que já estavas a usar */
  background:
    /* faixas diagonais (se quiseres) */
    repeating-linear-gradient(-8deg, rgba(252,255,254,.14) 0 18px, rgba(252,255,254,0) 18px 60px),
    /* véu branco 65% */
    linear-gradient(0deg, rgba(252,255,254,.65), rgba(252,255,254,.65)),
    /* branco topo/fundo */
    linear-gradient(180deg,#FCFFFE -4%, rgba(252,255,254,0) 11%, rgba(252,255,254,0) 73%, #FCFFFE 95%);
}

/* Barra do topo visível por cima do menu e do vídeo */
.mobile-menu-overlay .mm-top{
  position: sticky;        /* fica colada ao topo do overlay */
  top: 0;
  z-index: 3;              /* acima do conteúdo e do vídeo */
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  background: transparent;
}

/* Logo dentro do overlay */
.mobile-menu-overlay .mm-logo img{ height: 40px; width: auto; display:block; }

/* Lupa branca dentro do overlay (já tens algo semelhante) */
.mobile-menu-overlay .mm-search img{ filter: invert(1) brightness(100%); }

/* Dá espaço no topo da lista para a barra não tapar o 1.º item */
.mobile-menu-overlay .menu-mobile-list{ padding-top: 72px; }

.mobile-menu-overlay .mm-logo img {
    height: 73px;
}

.mobile-menu-overlay .mm-top {

    margin-top: -80px !important;
  
    padding: 30px 0px;
 
}

.mobile-menu-overlay .mobile-menu {
    
    margin-top: -90px !important;
}

.menu-trigger .menu-label {
    margin-left: 0px !important;
   
}

span.mm-close-label {
    font-family: "Montserrat-Medium","Montserrat",sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 18px;
    line-height: 22px;
    letter-spacing: 0.02px;
}


.mobile-menu-overlay .mm-close .mm-close-label {
    
    text-align: start;
}

/* ====== Mobile: lupa sem quadrado e branca no menu aberto ====== */

/* remove fundo/borda nativos dos botões */
.mobile-header-bar .mobile-search-btn,
.mobile-menu-overlay .mm-search,
.mobile-menu-overlay .mobile-search-form button{
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  border: 0;
  box-shadow: none;
  outline: none;
  padding: 0;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* tamanho consistente do ícone */
.mobile-header-bar .mobile-search-btn img,
.mobile-menu-overlay .mm-search img,
.mobile-menu-overlay .mobile-search-form button img{
  width: 22px;
  height: 22px;
  display: block;
}

/* quando o menu está aberto, a lupa fica branca */
.mobile-menu-overlay[aria-hidden="false"] .mm-search img,
.mobile-menu-open .mobile-header-bar .mobile-search-btn img{
  filter: invert(1) brightness(100%);
}

/* (opcional) evita qualquer “highlight” ao tocar no iOS */
.mobile-header-bar .mobile-search-btn,
.mobile-menu-overlay .mm-search{
  -webkit-tap-highlight-color: transparent;
}

/* ===== LUPA – usa mask para controlar a cor ===== */

/* 1) Lupa no topo do OVERLAY (menu aberto) – sempre branca */
#siteMobileMenu .mm-top .mm-search img { display: none !important; }
#siteMobileMenu .mm-top .mm-search::before{
  content: "";
  width: 24px; height: 24px; display: inline-block;
  background: #fff;                    /* cor da lupa */
  -webkit-mask: url('/wp-content/uploads/2024/10/search_desktop.svg') no-repeat center / contain;
          mask: url('/wp-content/uploads/2024/10/search_desktop.svg') no-repeat center / contain;
}

/* 2) Lupa na barra mobile (fora do overlay)
      – azul #001F32 com menu fechado, branca com menu aberto */
.mobile-header-bar .mobile-search-btn img { display: none !important; }
.mobile-header-bar .mobile-search-btn::before{
  content: "";
  width: 24px; height: 24px; display: inline-block;
  background: #001F32;                 /* cor com menu FECHADO */
  -webkit-mask: url('/wp-content/uploads/2024/10/search_desktop.svg') no-repeat center / contain;
          mask: url('/wp-content/uploads/2024/10/search_desktop.svg') no-repeat center / contain;
}
.mobile-header-bar.is-open .mobile-search-btn::before{
  background: #fff;                     /* cor com menu ABERTO */
}

/* remove qualquer fundo/borda dos botões da lupa (evita quadradinhos) */
.mobile-header-bar .mobile-search-btn,
.mobile-menu-overlay .mm-search,
.mobile-menu-overlay .mobile-search-form button{
  background: transparent; border: 0; box-shadow: none; outline: none;
  padding: 0; width: 36px; height: 36px; display: inline-flex;
  align-items: center; justify-content: center; cursor: pointer;
}

.label {
   
    font-size: 19px;
    font-weight: 500;
    line-height: 22px;

    text-align: start;
    letter-spacing: 0.02px;
  
    font-family: "Montserrat-Medium","Montserrat",sans-serif;
}

.menu-mobile-list > li > a {
    
    gap: 10px;
  
}

/* Estado expandido genérico para submenus do mobile */
#siteMobileMenu .menu-mobile-list li.is-expanded > .sub-menu {
  display: block !important;
  max-height: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}


/* --- MOBILE MENU: impedir que os títulos das categorias fiquem cortados --- */
#siteMobileMenu .menu-mobile-list > li {               /* cada <li> do menu */
  height: auto !important;
}

/* o link que contém o bullet e o texto */
#siteMobileMenu .menu-mobile-list .menu-link {
  display: flex;                 /* mantém o bullet e o texto lado a lado   */
  align-items: flex-start;       /* texto começa no topo (evita corte)       */
  gap: 12px;                     /* espaço entre bullet e texto              */
  height: auto !important;       /* NÃO fixar altura                         */
  min-height: 0 !important;
  white-space: normal !important;
  overflow: visible !important;
  padding: 12px 0;               /* mais respiro vertical                    */
}

/* o texto do item */
#siteMobileMenu .menu-mobile-list .menu-link .label {
  display: block;
  flex: 1;                       /* usa a largura disponível                  */
  line-height: 1.25;             /* ~22–24px para 18–19px                     */
  white-space: normal !important;
  overflow: visible !important;
  overflow-wrap: anywhere;       /* quebra mesmo em palavras longas           */
  word-break: normal;
}

/* opcional: bullet com tamanho fixo e alinhado ao topo */
#siteMobileMenu .menu-mobile-list .menu-link .menu-bullet {
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  margin-top: 6px;               /* alinha com a 1.ª linha do texto          */
}


#siteMobileMenu .menu-mobile-list .menu-link {
    
    padding: 8px 0;
}

/* ====== DROPDOWN 8x8 nos itens de "Projetos" (menu mobile) ====== */
/* 1) garantir que o texto não fica cortado e que há espaço p/ o ícone */
.mobile-menu-overlay .menu-mobile-list .menu-link{
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.mobile-menu-overlay .menu-mobile-list .menu-link .label{
  white-space: normal;
  line-height: 1.25;
}

/* 2) esconder o “bullet” antigo (estrelinhas/ícones atuais) */
.mobile-menu-overlay .menu-mobile-list 
li.menu-item-object-categoria_de_projeto .menu-bullet{
  display: none !important;
}

/* 3) inserir o ícone DROPDOWN (8x8) antes do texto da categoria */
.mobile-menu-overlay .menu-mobile-list 
li.menu-item-object-categoria_de_projeto .label::before{
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  background: url("/wp-content/uploads/2025/09/DROPDOWN.svg") center/contain no-repeat;
  margin-right: 10px;
  transform: translateY(2px);    /* pequeno ajuste vertical */
}

/* (opcional) se o teu SVG não for branco, força a ficar branco no overlay */
.mobile-menu-overlay .menu-mobile-list 
li.menu-item-object-categoria_de_projeto .label::before{
  filter: brightness(0) invert(1);
}

/* separadores do menu mobile – 2px */
.mobile-menu-overlay .menu-mobile-list > li{
  border-bottom: 2px solid rgba(255,255,255,.45) !important; /* era 1px */
}

/* se a primeira não tiver linha por cima */
.mobile-menu-overlay .menu-mobile-list > li:first-child{
  border-top: 0 !important;
}

.mobile-header-bar .mobile-search-btn, .mobile-menu-overlay .mm-search, .mobile-menu-overlay .mobile-search-form button {
    
    align-items: end;
    justify-content: end;
  
}

.label {
    font-size: 14px !important;

}
.mobile-menu-overlay .mobile-menu {
   
    padding: calc(var(--header-height) + 20px) var(--page-margin) 0px;
   
}

.hero-stats .label {
   
    margin-top: 0px;


}

.vc_row.hero-video .hero-stats {
    
		gap: 16px;
	
	}

	.btn-ghost-circle {
    margin-top: 100px !important;
}

.scroll-btn {
    
    display: none;
}

.stats-grid {
    
    flex-wrap: wrap;
}

/* a row volta a ser “vertical” */
  .vc_row.intro{
    display:block;
    overflow:visible;
    padding-top: calc(var(--header-height) + 8px);
    -webkit-overflow-scrolling: touch;
  }

  /* coluna do TEXTO fixa (sticky) por baixo do header */
  .vc_row.intro > .wpb_column:has(.intro_text){
    position: sticky;
    top: calc(var(--header-height) + 8px);
    z-index: 3;
    /* opcional: leve véu para legibilidade por cima do vídeo/fundo */
    background: linear-gradient(180deg, rgba(252,255,254,.90) 0%,
                                         rgba(252,255,254,.55) 100%);
    backdrop-filter: blur(1px);
    padding-bottom: 10px;
  }

  /* coluna das IMAGENS logo abaixo do texto */
  .vc_row.intro > .wpb_column.intro-img-col{
    margin-top: 14px;
  }

  /* a “rail” das imagens: horizontal scroll */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    display:flex;
    flex-wrap: nowrap;
    gap: 12px;
    overflow-x: auto;       /* horizontal */
    overflow-y: visible;    /* sem scroll vertical aqui */
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
       /* arrasto lateral suave no touch */
  }
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{ display:none; }
  
  /* cada cartão de imagem ocupa boa parte do ecrã */
  .intro .intro-img-col .vc_row{ flex:0 0 auto; margin:0 !important; padding:0 !important; }
  .intro .intro_img{ flex:0 0 auto; min-width: 80vw; scroll-snap-align: start; }
  .intro .intro_img img{ height: 58vh !important; width:auto; object-fit:cover; display:block; }
  .intro .intro_leg{ margin-top: 8px; }


  .vc_row.vc_row-flex {
    flex-wrap: wrap !important;
}


.stats-sec {
   
    height: 100vh !important;
    padding: 0px !important;
  
    align-content: center;
}

.stat-num p {
    font-size: 80px;
    line-height: 100px;
    text-align: center;
}

.stat-label {
   
    align-items: center;
  
}

.stat-label p {
    font-size: 32px;
    line-height: 30px;
    margin-top: 0px !important;
    margin-left: 0px !important;
    text-align: center !important;
}

.stats-grid {
    height: 100%;
	gap:50px;
}

.stat-label p {
    
    padding-left: 1%;
    padding-right: 1%;
}

.wpb_text_column.wpb_content_element.qs-three_text p {
   
    margin-bottom: 50px;
}

.marcos_historicos p {
   
    font-size: 28px;
    line-height: 33px;

}

/* layout: coluna esquerda = barra vertical ; direita = anos empilhados */
  .hist-timeline .tl{
    display: grid;
    grid-template-columns: 16px 1fr;   /* [barra] [anos] */
    grid-template-rows: auto;
    column-gap: 16px;
    row-gap: 0;
    align-items: start;
  }

  /* lista de anos em coluna */
  .hist-timeline .tl-years-viewport{
    grid-column: 2;
    grid-row: 1;
    overflow: visible;
  }
  .hist-timeline .tl-years{
    display: flex;
    flex-direction: column;
    gap: 18px;               /* espaço entre anos */
  }

  /* a "barra" agora é vertical e estica pela altura da lista */
  .hist-timeline .tl-track{
    grid-column: 1;
    grid-row: 1;
    position: relative;
    width: 4px;              /* espessura da barra */
    height: 100%;
    min-height: 240px;       /* segurança */
    background: #E6EBF1;
    border-radius: 4px;
  }
  .hist-timeline .tl-track::before{ content: none !important; }

  /* a parte preenchida passa a usar altura em vez de largura */
  .hist-timeline .tl-fill{
    left: 0; right: 0;
    width: 100%;
    height: 0;               /* o JS ajusta */
    background: #0B3557;
    border-radius: 4px;
    transition: height .35s ease;
  }

  /* o “ponto” acompanha a altura do fill */
  .hist-timeline .tl-dot{
    left: 50%;
    transform: translate(-50%, -50%);
    width: 18px; height: 18px; border-radius: 50%;
    background: #E6EBF1; box-shadow: 0 0 0 2px #E6EBF1;
  }
  .hist-timeline .tl-dot.is-active{
    background: #0B3557; box-shadow: 0 0 0 2px #0B3557;
  }

  .hist-timeline .tl-years {
   
    display: none;
}

/* cada bloco/ano está numa .vc_row.historia (já usada no teu CSS) */
  .vc_row.historia{ position: relative; z-index: 0; }

  /* desenha a barra no lado esquerdo da secção/ano */
  .vc_row.historia::before{
    content: "";
    position: absolute;
    left: 16px;          /* distância à margem esquerda */
    top: 0;
    bottom: 0;
    width: 4px;          /* espessura da barra */
    background: #0B3557; /* cor da barra */
    border-radius: 2px;
    z-index: 0;          /* por baixo do texto */
  }

  /* abre “gutter” para o texto não ficar por cima da barra */
  .vc_row.historia .vc_column_container > .vc_column-inner{
    padding-left: 56px !important;  /* 16px margem + 4px barra + 36px de respiro */
    position: relative;
    z-index: 1; /* garante texto acima da pseudo-barra */
  }

  /* se tiveres bullets/pontos, alinha-os com a barra */
  .vc_row.historia .hist-dot{
    left: 14px;    /* centra o ponto sobre a barra de 4px */
    position: absolute;
  }

  .hist-timeline .tl-nav {
   
    justify-self: end;
    align-self: end;

}

.hist-timeline .tl-nav{
    display: flex;               /* já existe, mas reforçamos */
    flex-direction: column;      /* <- vertical */
    gap: 12px;
  }

  /* a seta "anterior" (era ←) passa a apontar para cima */
  .hist-timeline .tl-prev{
    transform: rotate(90deg);
  }

  /* a seta "seguinte" (era →) passa a apontar para baixo */
  .hist-timeline .tl-next{
    transform: rotate(90deg);
  }

  /* se o ícone for um <img> ou <svg> dentro do botão,
     estas duas linhas garantem a rotação do próprio ícone */
  .hist-timeline .tl-prev img,
  .hist-timeline .tl-prev svg { transform: rotate(-90deg); }
  .hist-timeline .tl-next img,
  .hist-timeline .tl-next svg { transform: rotate(90deg); }

  /* === Timeline – centralizar as setas nas bolinhas === */
.hist-nav .hist-btn{
  width: 44px;
  height: 44px;
  border: 1px solid var(--darkerBlue);
  border-radius: 50%;
  display: grid;              /* centro perfeito */
  place-items: center;        /* centra conteúdo nos dois eixos */
  padding: 0;
  line-height: 1;
}

/* Se a seta é pseudo-elemento */
.hist-nav .hist-btn::before{
  content: "";
  width: 16px;                /* tamanho do ícone */
  height: 16px;
  background: url("/wp-content/uploads/2024/10/arrow.svg") center/contain no-repeat;
  /* anula qualquer offset antigo */
  position: static;
  margin: 0;
  transform: none;
}

/* Seta de baixo (mesma imagem, rodada) */
.hist-nav .hist-btn--down::before{
  transform: rotate(180deg);
}

/* Se em vez de pseudo-elemento usas <img> dentro do botão */
.hist-nav .hist-btn > img,
.hist-nav .hist-btn > svg{
  width: 16px; height: 16px;
  display: block;
  margin: 0;                  /* remove “empurrões” para a esquerda */
}

.wpb_text_column.wpb_content_element.intro_text p {
    width: 75vw;
}

.vc_row.intro {

    padding-top: 0px;
   
}

.vc_row.intro > .wpb_column:has(.intro_text) {

    top: 0px;
   
}

.hist-timeline .tl {
   
    column-gap: 0px;
    
}

.hist-timeline .tl-track {

    grid-row: 3;
   
}



.hist-slider {
    margin-top: -105vh;
}

.hist-timeline .tl-track {
    
    min-height: 100vh;
  
}

.ano_1970 .hist-copy p {
    
    width: 70vw;
}

.hist-imgs{
    display: grid;
    grid-template-columns: 1fr;  /* 1 coluna = uma imagem por linha */
    gap: 18px;                   /* espaço entre imagens */
    width: 100%;
  }

  /* neutralizar larguras/flutuações do WPBakery */
  .hist-imgs > .wpb_column{
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* as imagens em si ocupam toda a largura */
  .hist-imgs .vc_single_image-wrapper,
  .hist-imgs img{
    display: block;
    width: 100% !important;
    height: auto !important;     /* mantém proporção */
    object-fit: cover;
  }

  .hist-imgs{
    margin-left: calc(-1 * var(--page-margin));
    margin-right: calc(-1 * var(--page-margin));
  }

  .ano_1980 .hist-copy p {
    
    width: 70vw;
}

/* Empilha as imagens: uma coluna, com espaçamento */
  .vc_row.historia .hist_img > .vc_column-inner > .wpb_wrapper{
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
  }

  /* Qualquer coluna interna criada pelo WPBakery passa a 100% */
  .vc_row.historia .hist_img .wpb_column{
    float: none;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Wrapper e imagem ocupam toda a largura */
  .vc_row.historia .hist_img .vc_single_image-wrapper{
    width: 100% !important;
    max-width: 100% !important;
  }
  .vc_row.historia .hist_img img{
    display: block;
    width: 100% !important;
    height: auto !important;      /* mantém proporção */
    object-fit: cover;
  }

  /* Anula os aspect-ratio definidos para .imagem1/.imagem2 nesta secção */
  .vc_row.historia .imagem1 .vc_single_image-wrapper,
  .vc_row.historia .imagem2 .vc_single_image-wrapper{
    aspect-ratio: auto !important;
    height: auto !important;
  }

  .hist-slider {
    height: 590px !important;
}

.hist-timeline .tl-nav {
    
    margin-bottom: 580px;
}

.principais_projetos_text p {
    
    display: none;
}

#pp-bullets {
    
    margin-top: 50px;
}

.hist-timeline .tl-track{
    position: relative;
    width: 4px;              /* espessura da barra */
    background: #E6EBF1;     /* cinza claro do trilho */
    border-radius: 4px;
  }
  .hist-timeline .tl-track .tl-fill{
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 0;               /* o JS ajusta */
    background: #0B3557;     /* cor preenchida */
    border-radius: 4px;
  }
  .hist-timeline .tl-track .tl-dot{
    position: absolute;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 18px; height: 18px; border-radius: 50%;
    background: #E6EBF1;
    box-shadow: 0 0 0 2px #E6EBF1;
  }
  .hist-timeline .tl-track .tl-dot.is-active{
    background: #0B3557;
    box-shadow: 0 0 0 2px #0B3557;
  }
  
  .presenca_title p {
    font-family: "Montserrat-Medium", sans-serif;
    font-weight: 600;
    font-style: SemiBold;
    font-size: 18px;
    line-height: 24px;
    letter-spacing: -2%;
    text-transform: uppercase;
    color: #00436B;
    margin-top: 100px;
    margin-bottom: 40px !important;
}

.presenca_subtitle p {
    width: 100%;
}

.map-legend {
    grid-template-rows: repeat(23, auto);
}

.map-legend {
    grid-template-columns: repeat(1, 1fr);
    width: 230%;
}

.map-legend {
    min-height: 800px !important;
}

.projects .wpb_column { 
    float: none !important;
    width: 100% !important;
  }
  .projects .vc_column-inner { padding-left: 0 !important; padding-right: 0 !important; }

  /* 2) Cada “ano” torna-se um cartão vertical com 2 colunas:
        [bolha do ano] [texto]  */
  .projects .pp-item{
    display: grid;
    grid-template-columns: 64px 1fr;
    column-gap: 16px;
    align-items: start;
    margin: 36px 0;
  }

  /* bolha pequena para mobile */
  .projects .pp-year-bubble{
    position: relative;      /* deixa de ser sticky no mobile */
    top: 0; margin: 0;
    width: 64px; height: 64px;
    border-radius: 50%;
    background:#0B3557;      /* azul da marca */
    color:#fff;
    display:flex; align-items:center; justify-content:center;
    font: 600 18px/1 "Montserrat", sans-serif;
  }

  /* “haste” vertical que desce da bolha (entre anos) */
  .projects .pp-year-bubble::after{
    content:"";
    position:absolute;
    left:50%; transform:translateX(-50%);
    top:64px; bottom:-24px;  /* prolonga até ao próximo cartão */
    width:2px; background:#C8D7E6;
  }

  /* lista de projetos do ano */
  .projects .pp-text ul{ list-style:none; margin:0; padding:0; }
  .projects .pp-text li{
    position:relative;
    margin:14px 0;
    font: 500 18px/22px "Montserrat", sans-serif; /* já tinhas estes valores */ /* :contentReference[oaicite:1]{index=1} */
    color:#001F32;
  }
  /* pontinhos à esquerda de cada item */
  .projects .pp-text li::before{
    content:"";
    position:absolute;
    left:-16px; top:.75em;
    width:8px; height:8px; border-radius:50%;
    background:#C8D7E6;
    transform:translateX(-50%);
  }

  .certificacoes_text p {
   
    display: none;
}

.logo_section .vc_col-sm-4 {
    width: 100% !important;
}

.premio_text p {
   
    width: 100% !important;
    
}

.vc_row.galeria .vc_inner {
    display: none !important;
}

.vc_row.galeria1 .vc_inner {
    display: none !important;
}

.projetos_internacionais1 .vc_inner > .wpb_column {

    display: none !important;
}

.nacionais_img img{
    content: url('/wp-content/uploads/2025/09/Frame-958-1-scaled.png');
    width: 100%;
    height: 2790px !important;
    display: block;
  }

  .nacionais_img1 img{
    content: url('/wp-content/uploads/2025/09/Frame-958-2.png');
    width: 100%;
    height: 968px !important;
    display: block;
  }

  
    #pp-bullets {
   
    display: none;
}

.pp-year-bubble {
    margin-left: 0px;
    margin-top: 100px;
}

.year_1970 {
    margin-left: 50px !important;
}


.award_year .hist-timeline .tl-track{
    position: relative;
    height: 9px;              /* espessura visual da corda */
    background: transparent;  /* remove a linha cinzenta */
    overflow: visible;
  }

  /* desenha a corda por cima do track */
  .award_year .hist-timeline .tl-track::before{
    content: "" !important;   /* reativa o ::before */
    position: absolute;
    top: 0; bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;             /* ocupa a largura da viewport */
    background: url('/wp-content/uploads/2025/09/corda.svg') repeat-x center;
    background-size: auto 9px;/* altura da corda; ajusta se precisares */
    z-index: 0;               /* fica por baixo dos pontos */
    pointer-events: none;
  }

  /* esconde a barra azul de progresso da timeline */
  .award_year .hist-timeline .tl-fill{
    display: none !important;
  }

  /* garante que os pontos ficam por cima da corda */
  .award_year .hist-timeline .tl-dot{
    position: relative;
    z-index: 2;
  }

  .hist-timeline .tl-track {
    min-height: 0vh; 
}

.award_year .hist-timeline .tl-track {
   
    margin-left: 200px;
}

.pp-year-bubble {

    width: 80px;
    height: 80px;

    font-size: 18px;
    line-height: 25;
  
}

.hist-timeline .tl-track .tl-dot {
    
    display: block;
}

.hist-slider > .vc_row.historia {
   
    margin-top: 300px !important;
}

.year_1980 {
    margin-left: 25px !important;
}

.projects li {
    width: 90% !important;
}
.hist-slider {
    height: 89vh !important;
}

.hist-timeline .tl-track {
    min-height: 70vh !important;
}

/* 1) Anular o slider e mostrar todos os painéis/anos */
  .pp-years-viewport{ overflow: visible !important; height: auto !important; }
  .pp-years-viewport .pp-year-panel{
    position: static !important;
    display: block !important;          /* em vez de absolute + overlay */
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    margin: 32px 0 56px;                /* espaço entre anos */
  }
  .pp-year-panel[aria-hidden="true"]{ display:block !important; } /* sobrepõe a regra do slider */

  /* 2) Remover quaisquer animações do slider */
  .pp-anim-in-right,
  .pp-anim-out-left,
  .pp-anim-in-left,
  .pp-anim-out-right{ animation: none !important; }

  /* 3) Corrigir a largura forçada da secção (estava a 188%) */
  .principais_projetos_section{ width: 100% !important; }

  /* 4) (Opcional) Layout simpático do ano + texto em grelha */
  .projects .pp-item{ display:grid; grid-template-columns:64px 1fr; column-gap:16px; align-items:start; margin:36px 0; }
  .projects .pp-year-bubble{
    position:relative; top:0; margin:0; width:64px; height:64px; border-radius:50%;
    background:#0B3557; color:#fff; display:flex; align-items:center; justify-content:center;
    font:600 18px/1 "Montserrat",sans-serif;
  }
  .projects .pp-year-bubble::after{
    content:""; position:absolute; left:50%; transform:translateX(-50%);
    top:64px; bottom:-24px; width:2px; background:#C8D7E6; /* “haste” vertical */
  }
  .projects .pp-text ul{ list-style:none; margin:0; padding:0; }
  .projects .pp-text li{ margin:14px 0; }

  /* garantir que todos os painéis estão “normais” (sem slider) */
  .pp-years-viewport{ overflow: visible !important; height: auto !important; }
  .pp-year-panel{
    position: static !important;
    display: block !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    margin: 32px 0 56px;
  }

  /* bolha de ano por painel (pequena) */
  .pp-year-panel .pp-year-bubble{
    position: relative !important;  /* deixa de ser sticky */
    inset: auto !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    display: flex !important;

    width: 64px; height: 64px;
    border-radius: 50%;
    background:#0B3557;  /* azul */
    color:#fff;
    align-items:center; justify-content:center;
    font:600 18px/1 "Montserrat", sans-serif;
    margin: 0 0 12px;            /* espaço abaixo da bolha */
    z-index: 1;
  }

  /* “haste” vertical que liga à lista do ano seguinte */
  .pp-year-panel .pp-year-bubble::after{
    content:"";
    position:absolute;
    left:50%; transform:translateX(-50%);
    top:64px; bottom:-24px;
    width:2px; background:#C8D7E6;
  }

  /* layout em grelha: bolha + conteúdo ao lado */
  .pp-year-panel .pp-item{
    display:grid; grid-template-columns:64px 1fr; gap:16px; align-items:start;
  }

  /* lista dentro de cada ano (só para manter consistente) */
  .pp-year-panel .pp-text ul{ list-style:none; margin:0; padding:0; }
  .pp-year-panel .pp-text li{
    position:relative; margin:14px 0;
  }
  .pp-year-panel .pp-text li::before{
    content:""; position:absolute; left:-16px; top:.75em;
    width:8px; height:8px; border-radius:50%; background:#C8D7E6;
    transform:translateX(-50%);
  }

  .year_1970 {
    margin-left: 25px !important;
}

  .year_1990 {
    margin-left: 25px !important;
}

.year_2000 {
    margin-left: 25px !important;
}

.year_2010 {
    margin-left: 25px !important;
}

.year_2020 {
    margin-left: 25px !important;
}

/* cada linha de ano vira uma grelha: [bolha][conteúdo] */
  .projects .vc_row[class*="year_"]{
    display: grid;
    grid-template-columns: 64px 1fr;
    column-gap: 16px;
    align-items: start;
  }

  /* a bolha criada via JS ocupa a 1.ª coluna */
  .projects .vc_row[class*="year_"] > .pp-year-bubble{
    grid-column: 1;
    width: 64px; height: 64px;
    border-radius: 50%;
    background:#0B3557; color:#fff;
    display:flex; align-items:center; justify-content:center;
    font:600 18px/1 "Montserrat", sans-serif;
    position: relative;
  }

  /* “haste” vertical que liga aos projetos seguintes */
  .projects .vc_row[class*="year_"] > .pp-year-bubble::after{
    content:"";
    position:absolute;
    left:50%; transform:translateX(-50%);
    top:64px; bottom:-24px;
    width:2px; background:#C8D7E6;
  }

  /* todo o resto do conteúdo dessa linha fica na 2.ª coluna */
  .projects .vc_row[class*="year_"] > *:not(.pp-year-bubble){
    grid-column: 2;
  }

  /* ========= Principais Projetos – bolha do ano para TODOS os anos ========= */
/* 1) transforma o 1º bloco de texto/heading da linha do ano numa bolha */
.projects .vc_row[class*="year_"] .wpb_text_column:first-child,
.projects .vc_row[class*="year_"] .wpb_heading:first-child,
.projects .vc_row[class*="year_"] .wpb_column:first-child .wpb_wrapper > *:first-child {
  display:flex !important;
  align-items:center;
  justify-content:center;
  width:64px; height:64px;
  border-radius:50%;
  background:#0B3557;
  color:#fff;
  font:600 18px/1 "Montserrat", sans-serif;
  margin:0 0 12px;
  position:relative;
}

/* 2) “haste” vertical que desce da bolha para o conteúdo do ano seguinte */
.projects .vc_row[class*="year_"] .wpb_text_column:first-child::after,
.projects .vc_row[class*="year_"] .wpb_heading:first-child::after,
.projects .vc_row[class*="year_"] .wpb_column:first-child .wpb_wrapper > *:first-child::after{
  content:"";
  position:absolute;
  left:50%; transform:translateX(-50%);
  top:64px; bottom:-24px;
  width:2px; background:#C8D7E6;
}


/* garantir que TODAS as bolhas alinham igual */
.projects .vc_row[class*="year_"] .pp-year-bubble{
  margin:0 !important;
}



  /* cada linha de ano vira grelha: [bolha][conteúdo] */
  .projects .vc_row[class*="year_"]{
    display:grid; grid-template-columns:64px 1fr; column-gap:16px; align-items:start;
  }
  .projects .vc_row[class*="year_"] > .pp-year-bubble{
    grid-column:1;
    width:64px; height:64px; border-radius:50%;
    background:#0B3557; color:#fff; display:flex; align-items:center; justify-content:center;
    font:600 18px/1 "Montserrat", sans-serif; position:relative;
  }
  .projects .vc_row[class*="year_"] > .pp-year-bubble::after{
    content:""; position:absolute; left:50%; transform:translateX(-50%);
    top:64px; bottom:-24px; width:2px; background:#C8D7E6;
  }
  .projects .vc_row[class*="year_"] > *:not(.pp-year-bubble){ grid-column:2; }


  

  /* cada row de ano passa a ter espaço à esquerda para a bolinha/linha */
  .vc_row.vc_inner[id^="row_"]{
    position: relative;
    padding-left: 0px;            /* espaço para a bolinha */
  }

  /* a bolinha que vamos injetar por row */
  .pp-year-bubble{
    position: relative !important;
    left: 0;                       /* encostada à esquerda */
    top: -32px;                    /* ligeiramente acima do título */
    width: 80px; height: 80px;
    border-radius: 50%;
    background:#05263B;            /* a mesma cor do desktop */
    display:flex; align-items:center; justify-content:center;
    z-index: 2;
  }
  .pp-year-bubble .pp-year{
    color:#fff; font-family:"Montserrat-SemiBold","Montserrat",sans-serif;
    font-size:18px; line-height:1;
  }

  /* a linha vertical dentro de cada bloco (opcional, para dar continuidade) */
  .vc_row.vc_inner[id^="row_"]::before{
    content:""; position:absolute; left:40px; top:48px; bottom:-32px;
    width:2px; background:#B8CBD7;
  }
  /* pontinho na transição (opcional) */
  .vc_row.vc_inner[id^="row_"] .pp-year-bubble::after{
    content:""; position:absolute; left:39px; bottom:-32px;
    width:8px; height:8px; border-radius:50%; background:#B8CBD7;
  }


  .pp-years-viewport .pp-year-panel {

    margin-bottom: 56px;
    margin-left: 0px !important;
}

.vc_row[class*="year_"] ul::before {
    
    left: -18px !important;
   
}

.vc_row[class*="year_"] ul li::before {
   
    left: -17px !important;
  
}

/* A row deixa de ser o “scroller” */
  .vc_row.intro{
    overflow-x: visible !important;
    -webkit-overflow-scrolling: auto;
  }

  /* O texto fica “preso” (sticky) debaixo do header */
  .intro .intro_text{
    position: sticky;
    top: calc(var(--header-height) + 12px); /* ajusta se precisares */
    z-index: 3;
  }

  /* A coluna das imagens passa a ser o rail horizontal */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    display: flex;
    flex-wrap: nowrap;
    gap: 12px;
    overflow-x: auto;           /* ← só as imagens rolam na horizontal */
    overflow-y: visible;
    scroll-snap-type: x mandatory;
    -ms-overflow-style: none;
    scrollbar-width: none;
    padding-bottom: 6px;        /* evita tap em cima da barra de scroll */
  }
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{
    display: none;
  }

  /* Cada “cartão” de imagem */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row{
    flex: 0 0 auto;
    width: auto;
    margin: 0 !important;
    padding: 0 !important;
    scroll-snap-align: start;
  }
  .intro .intro-img-col .vc_row > .wpb_column{
    float: none;
    width: auto !important;
  }

  /* Dimensão das imagens no rail */
  .intro .intro_img img{
    height: 60vh !important;    /* ou 50–70vh consoante o efeito que queres */
    width: auto;
    object-fit: cover;
    display: block;
  }

   /* a ROW deixa de ser o contentor de scroll */
  .vc_row.intro{ overflow: visible; }

  /* a coluna das imagens passa a ser o trilho */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    display: flex;
    gap: 14px;
    overflow-x: auto;                 /* <- scroll horizontal aqui */
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    width: 100%;
  }
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{ display:none; }

  /* cada “cartão” de imagem ocupa quase toda a largura do ecrã */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row{
    flex: 0 0 86vw;                   /* largura do cartão */
    max-width: 86vw;
    margin: 0 !important;
    padding: 0 !important;
    scroll-snap-align: start;
  }

  /* a imagem preenche o cartão */
  .intro .intro_img img{
    width: 100% !important;
    height: 60vh !important;
    object-fit: cover;
    display: block;
  }

  /* garante que a coluna de texto continua fixa (se ainda não estiver) */
  .intro .intro_text{
    position: sticky;
    top: calc(var(--header-height) + 20px);
    z-index: 1;
  }

  /* a row deixa de ser o contentor do scroll horizontal */
  .vc_row.intro{
    overflow-x: visible !important;
  }

  /* a coluna das imagens passa a ser o contentor do scroll */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    display: flex;
    flex-wrap: nowrap;
    gap: 12px;
    overflow-x: auto;                 /* aqui é que se faz o scroll */
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    width: max-content;               /* cresce pela soma das “cartas” */
    max-width: none;
  }
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{
    display: none;
  }

  /* cada grupo/“carta” de imagem ocupa bem mais que o ecrã, para haver scroll real */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row{
    flex: 0 0 auto;                   /* não encolher */
  }

  /* tamanho das imagens (podes afinar a largura % conforme preferires) */
  .intro .intro_img img{
    width: 85vw !important;           /* cada imagem ~85% da largura do ecrã */
    height: 60vh !important;
    object-fit: cover;
    display: block;
  }

   /* contentor base */
  #awards-tl .tl{ position: relative; margin: 18px 0 24px; }

  /* a “corda” (track) */
  #awards-tl .tl-track{
    position: relative;
    height: 9px;
    margin: 8px 0 22px 56px;                 /* espaço para o dot à esquerda */
    background-image: url("/wp-content/uploads/2025/09/corda.svg");
    background-repeat: repeat-x;
    background-size: auto 9px;               /* altura da corda */
  }

  /* o “dot” antes da corda */
  #awards-tl .tl-track::before{
    content: "";
    position: absolute;
    left: -28px;                              /* encosta ao início da corda */
    top: 50%;
    transform: translateY(-50%);
    width: 18px; height: 18px;
    border-radius: 50%;
    background: #0A2F47;                     /* azul escuro */
    box-shadow: 0 0 0 8px #E7EFF5;           /* aro claro como no mockup */
  }

  /* lista de anos com scroll horizontal */
  #awards-tl .tl-years-viewport{
    overflow-x: auto; -webkit-overflow-scrolling: touch;
  }
  #awards-tl .tl-years{
    display: inline-flex; gap: 40px; width: max-content; padding: 10px 0;
  }

  /* botões/anos */
  #awards-tl .tl-year{
    background: none; border: 0;
    font-family: "Montserrat-SemiBold", sans-serif;
    font-weight: 600; font-size: 28px; line-height: 1;
    color: #00436B; white-space: nowrap;
  }
  #awards-tl .tl-year.is-active{ color: #091B2A; }

  /* escopo só para Prémios */
  #awards-tl{ position:relative; }

  /* a linha onde vai a corda */
  #awards-tl .tl-track{
    position: relative;
    height: 9px;                          /* dá altura ao trilho */
    margin: 8px 32px 22px 106px;          /* ajusta o alinhamento */
    background-image: url('/wp-content/uploads/2025/09/corda.svg');
    background-repeat: repeat-x;
    background-position: left center;
    background-size: auto 9px;            /* a corda à altura do trilho */
  }

  /* o “dot” cheio à esquerda do trilho */
  #awards-tl .tl-track::before {
    content: "";
    position: absolute;
    left: -28px;
    top: 50%;
    width: 18px;
    height: 18px;
    transform: translateY(-50%);
    border-radius: 50%;
    background: var(--darkerBlue);
    box-shadow: 0 0 0 7px #001f32;
}

  /* coluna dos anos (à direita) – apenas estilo, não obrigatório */
  #awards-tl .tl-years-viewport{ overflow:visible; }
  #awards-tl .tl-years{
    display:grid; gap:28px;
    justify-items: end;                   /* anos alinhados à direita */
    margin: -6px 0 0 auto;
    width: fit-content;
  }
  #awards-tl .tl-year{
    background:none; border:0;
    font: 600 28px/32px "Montserrat-Regular", sans-serif;
    color:#B9C7D2;
  }
  #awards-tl .tl-year.is-active{ color: var(--darkBlue); }

  /* PRÉMIOS – corda HORIZONTAL */
#awards-tl .tl-track {
    position: relative;
    display: block;
    width: calc(100% - 56px - 32px);
    height: 9px;
    margin: 8px 32px 22px 36px;
    background-image: url('/wp-content/uploads/2025/09/corda.svg');
    background-repeat: repeat-x;
    background-position: left center;
}

/* Se tiveres criado a versão vertical antes, remove/ comenta:
   #awards-tl .tl-track { width: 9px; height: 100%; background-repeat: repeat-y; }
*/


#awards-tl .tl-track .tl-dot {
    display: none;
}

/* o wrapper onde estão as rows dos anos (ajusta o seletor se for outro) */
  #awards-tl .award_year{
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;                /* põe os “slides” em linha */
    -webkit-overflow-scrolling: touch;  /* inércia no iOS */
    scroll-snap-type: x mandatory;      /* encaixe suave (opcional) */
    padding-bottom: 8px;
  }

  /* cada ano vira um “slide” largo */
  #awards-tl .award_year .vc_inner.vc_row-fluid[class*="year_"]{
    display: inline-block !important;   /* fica lado a lado */
    vertical-align: top;
    width: 85vw;                         /* largura de cada slide */
    margin-right: 24px;                  /* espaço entre slides */
    white-space: normal;                 /* texto normal dentro */
    scroll-snap-align: start;            /* encaixa no início */
  }

  /* um “espaçador” para não colar à borda direita */
  #awards-tl .award_year::after{
    content: ""; display: inline-block; width: 16px;
  }

  /* anos (direita) → rolar na horizontal */
  #awards-tl .tl-years-viewport{
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  #awards-tl .tl-years{
    display: inline-flex !important;
    gap: 28px;
    width: max-content;
    padding: 10px 0;
  }

  /* conteúdo dos anos → slides lado a lado com scroll */
  #awards-tl .award_year{
    display: flex;
    gap: 24px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;     /* opcional: “encaixe” */
    padding-bottom: 8px;
  }
  /* cada “slide” ocupa ~85% da largura do ecrã */
  #awards-tl .award_year > .vc_row,
  #awards-tl .award_year > .wpb_row,
  #awards-tl .award_year :where([class*="year_"]){
    flex: 0 0 85vw;
    scroll-snap-align: start;
  }

  .vc_row.intro {
  
    margin-left: -15px !important;
}

#awards-tl .tl-years-viewport{
    display: flex;
    gap: 24px;
    overflow-x: auto;              /* scroll horizontal */
    overflow-y: hidden;
    scroll-snap-type: x mandatory; /* snap */
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 2px 0 12px;           /* respiro inferior */
  }
  #awards-tl .tl-years-viewport::-webkit-scrollbar{ display:none; }

  /* cada “ano” ocupa a largura do ecrã (ajusta se quiseres) */
  #awards-tl .award_year{
    flex: 0 0 92vw;                /* 92% do viewport */
    scroll-snap-align: start;
  }

  /* estado visual do botão de ano */
  #awards-tl .tl-year{ opacity:.45; transition:opacity .2s; }
  #awards-tl .tl-year.is-active{ opacity:1; }

 #awards-tl .tl-track {
    min-height: 0vh !important;
}

 /* encosta a corda; o ano vai logo abaixo */
  #awards-tl .tl-track{
    margin: 8px 0 6px 56px; /* 56px deixa espaço para o dot da esquerda */
  }

  /* o “contentor” dos anos deixa de ser coluna à direita */
  #awards-tl .tl-years-viewport{
    overflow: visible;       /* já não é uma lista rolável aqui */
    margin: 0;               /* tiramos a margem da coluna direita */
  }

  /* mostra só o ano ativo e coloca-o por baixo da corda */
  #awards-tl .tl-years{
    display: block;
    margin: 0 0 18px 56px;   /* alinha com o início da corda */
  }
  #awards-tl .tl-year{       /* esconde todos… */
    display: none;
  }
  #awards-tl .tl-year.is-active{ /* …menos o ativo */
    display: inline-block;
    font: 600 28px/1 "Montserrat-Regular", sans-serif;
    color: var(--darkBlue);
  }

  /* o wrapper continua no DOM, mas sem ocupar altura */
  #awards-tl .tl-years-viewport{
    position: relative;
    height: 0;
    overflow: visible;        /* importante: deixa ver o ano ativo */
  }

  /* neutraliza o layout em grelha que tinhas na lista */
  #awards-tl .tl-years{
    position: static;
  }

  /* todos os anos ficam “fora do fluxo” e invisíveis por defeito */
  #awards-tl .tl-year{
    position: absolute !important;
    left: 36px;               /* mesmo recuo da corda (margin-left da .tl-track) */
    top: 32px;                /* coloca o número por baixo da corda (ajusta se precisares) */
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    font: 600 28px/32px "Montserrat-SemiBold", sans-serif;
    color: var(--darkBlue);
    white-space: nowrap;
    opacity: 0;               /* escondido por defeito */
    pointer-events: none;
    z-index: 3;               /* acima da corda */
  }

  /* só o ano ativo aparece */
  #awards-tl .tl-year.is-active,
  #awards-tl .tl-year[aria-selected="true"]{
    opacity: 1;
    pointer-events: auto;
  }

  /* corda em HORIZONTAL */
  #awards-tl .tl-track{
    position: relative;
    height: 9px;
    margin: 8px 32px 6px 106px;
    background-image: url('/wp-content/uploads/2025/09/corda.svg');
    background-repeat: repeat-x;
    background-size: auto 9px;
    background-position: left center;
  }

  /* ano por baixo da corda */
  #awards-tl .tl-year-label{
    margin: 12px 32px 16px 106px;
  }
  #awards-tl .tl-year-label .year{
    display:inline-block;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 28px;
    line-height: 32px;
    letter-spacing: -0.02em;
    color:#00436B; /* azul */
  }

  /* carrossel horizontal */
  #awards-tl .awards-scroller{
    display:flex;
    gap: 24px;
    overflow-x:auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding: 0 24px 8px 24px; /* margem interna para respirar */
  }
  #awards-tl .award-card{
    flex: 0 0 85%;              /* cada cartão ocupa ~85% do ecrã */
    scroll-snap-align: start;
  }

  /* (opcional) esconder a coluna com anos da direita se existir nessa secção */
  #awards-tl .tl-years,
  #awards-tl .tl-year { display:none; }

#awards-tl .award_year{
    display: block;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;                /* coloca os painéis em linha */
    -webkit-overflow-scrolling: touch;  /* inércia iOS */
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;      /* encaixe */
    scrollbar-width: none;
    padding-bottom: 8px;
    touch-action: pan-x;
  }
  #awards-tl .award_year::-webkit-scrollbar{ display:none; }

  /* cada ano (row com year_****) passa a “slide” largo */
  #awards-tl .award_year .vc_inner.vc_row-fluid[class*="year_"]{
    display: inline-block !important;   /* lado a lado */
    vertical-align: top;
    width: 88vw;                         /* largura do “slide” */
    margin-right: 24px;                  /* espaço entre slides */
    white-space: normal;                 /* texto normal dentro */
    scroll-snap-align: start;
  }

  /* pequeno espaçador no fim para não colar à direita */
  #awards-tl .award_year::after{
    content:""; display:inline-block; width:16px;
  }

  /* Awards timeline: não “propaga” o overscroll e aceita gestos horizontais */
#awards-tl { overscroll-behavior: contain; touch-action: pan-y; }

/* Garante que só a row ativa está visível mesmo se o WPBakery não esconder */
.vc_row.vc_inner[class*="year_"] { display: none; }
.vc_row.vc_inner.is-active      { display: block; }


#awards-tl .tl-track {
   
    margin: 0px 0px 0px 54px !important;
   
    width: 241px !important;
}

.wpb_text_column[class*="year_"][class*="_title"]::before{
    content: attr(data-year);
    display: block;
    font-family: "Montserrat-Medium","Montserrat",sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 24px;
    line-height: 20px;           /* “leading-trim” não é suportado, usa line-height */
    letter-spacing: -0.03em;     /* -3% */
    color: #00436B;
    margin-bottom: 8px;          /* espaço entre o ano e o título */
  }

  .year_1989_title::before,
  .year_2006_title::before,
  .year_2009_title::before,
  .year_2012_title::before,
  .year_2015_title::before{
    display: block;
    font-family: "Montserrat-Medium","Montserrat",sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 24px;
    line-height: 20px;
    letter-spacing: -0.03em;
    color: #00436B;
    margin-bottom: 8px;
    content: ""; /* será substituído abaixo */
  }

  .year_1989_title::before { content: "1989" !important; }
  .year_2006_title::before { content: "2006" !important; }
  .year_2009_title::before { content: "2009" !important; }
  .year_2012_title::before { content: "2012" !important; }
  .year_2015_title::before { content: "2015" !important; }


  .wpb_text_column[class*="year_"][class*="_title"]::before {
    font-size: 28px;
    line-height: 32px;
    margin-top: 0px !important;
    margin-bottom: 40px !important;
    
}


/* .wpb_column.vc_column_container.vc_col-sm-12 {
    margin-left: -15px!important;
    margin-right: 15px !important;
} */

  /* linha com a corda grande repetida */
  #awards-tl .tl-track{
    position: relative;
    height: 9px;
    margin: 8px 32px 22px 106px;
    background: url('/wp-content/uploads/2025/09/corda.svg') repeat-x left center / auto 9px;

    /* facilita acertar a posição do ponto */
    --dot-left: 106px;         /* ajusta se o teu ponto estiver noutro sítio */
  }

  /* o ponto (fica por cima de tudo) */
  #awards-tl .tl-track::before{
    content:"";
    position:absolute;
    top:50%;
    left: -16px;
    transform: translate(-50%,-50%);
    width:18px; height:18px; border-radius:50%;
    background:#002f46;
    box-shadow: 0 0 0 6px #002f46;
    z-index: 3;                /* acima da corda pequena */
  }

  /* corda pequena à ESQUERDA do ponto (atrás do ponto, na mesma linha) */
  #awards-tl .tl-track::after{
    content:"";
    position:absolute;
    top:50%;
    transform: translateY(-50%);
    /* largura visual da corda pequena — ajusta se precisares */
    width: 64px;               /* ← ajusta conforme o teu SVG */
    height: 9px;
    /* encosta a extremidade direita da corda pequena ao centro do ponto */
    left: -68px !important;
    background: url('/wp-content/uploads/2025/09/corda-1.svg') no-repeat right center / 100% 100%;
    z-index: 2;                /* atrás do ponto, à frente da corda grande */
    pointer-events: none;
  }

  /* O contentor que contém o #awards-tl e as .year_XXXX vira um rail */
  .wpb_column:has(#awards-tl) > .vc_column-inner > .wpb_wrapper{
    display: flex;
    gap: 24px;
    overflow-x: auto;              /* scroll horizontal */
    overflow-y: visible;
    scroll-snap-type: x mandatory; /* snap por cartão */
    -webkit-overflow-scrolling: touch;
    padding-bottom: 6px;
  }
  /* Cada “ano” ocupa a largura toda e faz snap */
  .wpb_column:has(#awards-tl) > .vc_column-inner > .wpb_wrapper > .vc_row.vc_inner{
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
    margin: 0 !important;
    scroll-snap-align: start;
    display: block !important;                    /* garante que não fica escondido */
  }
  /* Se algum JS tiver posto display:none inline, força mostrar */
  .wpb_column:has(#awards-tl) .vc_row.vc_inner[style*="display: none"]{
    display: block !important;
  }
  /* WPBakery mete float/widht:100% nas colunas internas — neutraliza */
  .wpb_column:has(#awards-tl) .vc_row.vc_inner > .wpb_column{
    float: none;
    width: 100% !important;
  }

  /* Esconde a barra de scroll só nesta secção, para ficar “clean” */
  .wpb_column:has(#awards-tl) > .vc_column-inner > .wpb_wrapper{
    scrollbar-width: none;      /* Firefox */
    -ms-overflow-style: none;   /* IE/Edge legacy */
  }
  .wpb_column:has(#awards-tl) > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{
    display: none;              /* Chrome/Safari */
  }

  /* row de cada ano */
  .vc_row.vc_inner[class*="year_"]{
    --aw-left: 56px;          /* onde começa a corda — ajusta para alinhar */
    --aw-h: 9px;              /* espessura da corda */
    position: relative;
    padding-top: 42px;        /* espaço para a corda no topo do cartão */
  }

/* Variáveis que reutilizamos (altura da corda e recuo da esquerda) */
#awards-tl{
  --aw-h: 9px;      /* altura da corda */
  --aw-left: 56px;  /* onde a corda começa (alinha com o dot) */
}
  
/* o bloco do título de cada ano: .wpb_text_column ... year_1989_title, etc. */
  .wpb_text_column[class*="year_"][class*="_title"]{
    position: relative;         /* referência para os ::before/::after */
    padding-top: 20px;          /* espaço extra abaixo da corda */
  }

  /* Corda longa (igual à #awards-tl .tl-track) */
  .wpb_text_column[class*="year_"][class*="_title"]::before{
    content: "";
    position: absolute;
    left: var(--aw-left);
    right: 16px;                /* até quase à margem direita */
    top: -14px;                 /* fica por cima do título */
    height: var(--aw-h);
    background: url('/wp-content/uploads/2025/09/corda.svg')
                left center / auto var(--aw-h) repeat-x;
    pointer-events: none;
    z-index: 1;
  }

  /* Dot igual ao do timeline */
  .wpb_text_column[class*="year_"][class*="_title"]::after{
    content: "";
    position: absolute;
    left: calc(var(--aw-left) - 18px); /* centra o dot na extremidade da corda */
    top: -20px;
    width: 28px; height: 28px; border-radius: 50%;
    background: #00334A;
    box-shadow: 0 0 0 8px #00334A;     /* aro claro */
    z-index: 2;
  }

  /* Opcional: a “corda pequena” antes do dot */
  .wpb_text_column[class*="year_"][class*="_title"] > .wpb_wrapper::before{
    content: "";
    position: absolute;
    left: calc(var(--aw-left) - 24px); /* imediatamente antes do dot */
    top: -12px;
    width: 24px; height: var(--aw-h);
    background: url('/wp-content/uploads/2025/09/corda-1.svg')
                left center / auto var(--aw-h) no-repeat;
    z-index: 1;
  }

  /* bloco do título do ano (onde colocámos a corda) */
  .wpb_text_column[class*="year_"][class*="_title"]{
    --gap-rope-year: 20px;     /* espaço desejado entre corda e ano */
  }

  /* corda */
  .wpb_text_column[class*="year_"][class*="_title"]::before{
    top: calc(-14px - var(--gap-rope-year));
  }

  /* dot */
  .wpb_text_column[class*="year_"][class*="_title"]::after{
    top: calc(-20px - var(--gap-rope-year));
  }

  .wpb_text_column[class*="year_"][class*="_title"] {
   
    padding-top: 80px !important;
}

.wpb_text_column[class*="year_"][class*="_title"]::before {
   
    padding-top: 60px !important;
}

.wpb_text_column[class*="year_"][class*="_title"]::after {
    
    margin-top: 20px !important;
}

.wpb_text_column[class*="year_"][class*="_title"] > .wpb_wrapper::before {
   
    left: 0px;
   
}


.vc_row.vc_inner[class*="year_"] .vc_column-inner > .wpb_wrapper
  > .wpb_text_column[class*="_title"] ~ .wpb_text_column[class*="_title"]::before,
  .vc_row.vc_inner[class*="year_"] .vc_column-inner > .wpb_wrapper
  > .wpb_text_column[class*="_title"] ~ .wpb_text_column[class*="_title"]::after{
    display: none !important;
    content: none !important;
  }

  .vc_row.year_2006 .wpb_text_column.year_2006_title1 > .wpb_wrapper::before{
    display: none !important;
    content: none !important;
  }

  /* só horizontal (recomendado aqui) */


/* ou permite os dois e deixa o browser decidir */
.vc_row.intro{ touch-action: auto; /* ou: pan-x pan-y */ }


/* Intro — permitir scroll horizontal no mobile */
.vc_row.intro{
  overflow-x: auto;
  overflow-y: visible;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y !important;   /* <= antes tinhas pan-y */
}

/* Garantir que há conteúdo a “sair” para poder rolar */
.vc_row.intro > .wpb_column{ 
  width: auto !important;
  flex: 0 0 auto;
}

.intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
  display: flex;
  flex-wrap: nowrap;
  gap: 18px;
}

.intro .intro_img{ flex: 0 0 auto; }

/* Evita a largura fixa em vh (bloqueia o overflow).
   Dá largura em vw para criar overflow horizontal */
.intro .intro_img img{
  width: 80vw !important;   /* antes tinhas 50vh */
  height: 60vh !important;
  object-fit: cover;
  display: block;
}


/* 0) Retira o encurtamento do scroller da row */
  .vc_row.intro,
  .vc_row.intro .wpb_wrapper{
    margin-right: 0 !important; /* tinhas -25px */
  }

  /* 1) O scroller passa a ser o wrapper da coluna das imagens */
  .intro .intro-img-col > .vc_column-inner{
    padding-left: 0 !important;
    padding-right: 0 !important;  /* remove “folga” do WPBakery */
  }
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    display: flex;
    gap: 18px;
    overflow-x: auto;             /* aqui vive o scroll */
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;        /* Firefox */
  }
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{
    display: none;                /* Chrome/Safari */
  }

  /* 2) Cada “cartão” de imagem tem largura própria (não encolhe) */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row{
    flex: 0 0 auto;
    width: auto;
    margin: 0 !important;
    padding: 0 !important;
    scroll-snap-align: start;
  }
  .intro .intro-img-col .vc_row > .wpb_column{
    float: none;
    width: auto !important;
  }

  /* 3) Largura/altura das imagens consistente para o rail ficar longo */
  .intro .intro_img img{
    width: clamp(320px, 80vw, 560px) !important;  /* dá largura real a cada item */
    height: auto !important;                      /* deixa a altura ajustar */
    object-fit: cover;
    display: block;
  }

  .vc_row.intro .wpb_wrapper {
	gap: 3px !important;
  }

  /* a ROW passa a ser o contentor do scroll horizontal */
  .vc_row.intro{
    display:flex;
    gap: 18px;
    overflow-x:auto;               /* <— aqui vive o scroll */
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-y;
  }

  /* cada coluna ocupa só o necessário (nada de 100% do WPBakery) */
  .vc_row.intro > .wpb_column{
    float:none !important;
    width:auto !important;
    flex:0 0 auto;                 /* não encolher nem crescer */
    scroll-snap-align: start;
  }

  /* texto à esquerda (fica sempre visível enquanto deslizas) */
  .vc_row.intro > .wpb_column:has(.intro_text){
    position: sticky;
    left: var(--page-margin);
    align-self: flex-start;
  }

  /* a coluna das imagens vira um “rail” contínuo */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    display:flex;
    flex-wrap:nowrap;
    gap: 18px;
    width:max-content;             /* <— garante largura > viewport */
    overflow:visible;              /* nada de scroll aqui, só na ROW */
  }

  /* cada “cartão” de imagem ocupa largura real (e não 100%) */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row{
    flex:0 0 auto;
    width:auto;
    margin:0 !important;
    padding:0 !important;
  }
  .intro .intro-img-col .vc_row > .wpb_column{
    float:none !important;
    width:auto !important;
  }

  /* tamanho confortável das imagens para scroll horizontal */
  .intro .intro_img img{
    display:block;
    object-fit:cover;
    min-width: 80vw;               /* <— ocupa “cartões” largos */
    height: 60vh !important;
  }

  /* opcional: esconder barras de scroll nessa secção */
  .vc_row.intro::-webkit-scrollbar{ display:none; }
  .vc_row.intro{ scrollbar-width:none; -ms-overflow-style:none; }


  /* a row deixa de ter scroll; não bloqueia o vertical */
  .vc_row.intro{
    overflow: visible;
    overscroll-behavior: auto;
    touch-action: auto;
  }

  /* a coluna das imagens vira um "rail" com scroll horizontal */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    display: flex;
    flex-wrap: nowrap;
    gap: 18px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--page-margin);
    padding-bottom: 8px;
  }
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{ display:none; }

  /* cada bloco de imagem é um "cartão" fixo e encaixa no snap */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row{
    flex: 0 0 auto;
    margin: 0 !important;
    padding: 0 !important;
    scroll-snap-align: start;
  }

  /* dá largura real às imagens (o teu 50vh estava a limitar o comprimento do rail) */
  .intro .intro_img img{
    width: 82vw !important;   /* ajusta 75–90vw ao gosto */
    height: auto !important;
    display: block;
    object-fit: cover;
  }

  /* (opcional) texto “fixo” enquanto deslizas as imagens */
  .intro .intro_text{
    position: sticky;
    top: calc(var(--header-height) + 24px);
    align-self: flex-start;
    min-width: clamp(320px, 36vw, 560px);
  }

  /* container que deve rolar na horizontal */
.vc_row.intro{
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

/* as colunas dentro da row não devem “esticar” para 100% */
.vc_row.intro > .wpb_column{
  float: none;
  width: auto !important;
  flex: 0 0 auto;
}

/* wrapper das imagens em linha única */
.intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
  display: flex;
  flex-wrap: nowrap;
  gap: 18px;
  overflow: visible; /* o scroll vive na row (.vc_row.intro) */
}

/* O scroll horizontal vive na ROW */
  .vc_row.intro{
    overflow-x: auto;
    overflow-y: visible;                 /* não bloqueia o scroll vertical da página */
    -webkit-overflow-scrolling: touch;   /* iOS suave */
    overscroll-behavior-x: contain;      /* o gesto fica “preso” à row */
    touch-action: pan-x pan-y !important;      /* <-- permitir gesto horizontal */
  }

  /* As colunas não devem esticar a 100% — ficam lado a lado */
  .vc_row.intro > .wpb_column{
    float: none;
    width: auto !important;
    flex: 0 0 auto;                      /* não encolher */
    scroll-snap-align: start;            /* opcional: “encaixe” por cartão */
  }

  /* A coluna das imagens vira um rail em linha */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    display: flex;
    flex-wrap: nowrap;
    gap: 18px;
  }

  /* Cada “cartão” de imagem ocupa a maior parte do ecrã */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row{
    flex: 0 0 85vw;                      /* largura de cada item para haver overflow */
  }

  /* Imagens a 100% do cartão */
  .intro .intro_img img{
    width: 100% !important;
    height: auto !important;
    display: block;
  }

  /* vídeo de background injetado (wrapper .bg-video) */
  .bg-video::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:2;                 /* acima do vídeo, abaixo do conteúdo */
    pointer-events:none;
    /* mesmo gradiente do Figma (#FCFFFE a 65%) */
    background:
      linear-gradient(0deg, rgba(252,255,254,.65), rgba(252,255,254,.65)),
      linear-gradient(180deg,
        #FCFFFE 0%,
        rgba(252,255,254,0) 10.65%,
        rgba(252,255,254,0) 72.66%,
        #FCFFFE 95.2%
      );
    mix-blend-mode: normal;    /* garante que não escurece */
  }

  /* se também usas overlay na row do hero, sobrescreve-o no mobile */
  .vc_row.hero-video::after{
    background:
      linear-gradient(0deg, rgba(252,255,254,.65), rgba(252,255,254,.65)),
      linear-gradient(180deg,
        #FCFFFE 0%,
        rgba(252,255,254,0) 10.65%,
        rgba(252,255,254,0) 72.66%,
        #FCFFFE 95.2%
      ) !important;
    mix-blend-mode: normal !important;
  }

  /* A ROW da intro é o rail com scroll horizontal */
.vc_row.intro{
  display:flex;
  gap:18px;
  overflow-x:auto;           /* horizontal */
  overflow-y:visible;        /* deixa o scroll vertical da página passar */
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

/* as colunas dentro da intro não encolhem */
.vc_row.intro > .wpb_column{ flex:0 0 auto; }

/* coluna do TEXTO fixa (sticky) à esquerda do rail */
.vc_row.intro > .wpb_column:has(.intro_text){
  position: sticky;
  left: var(--page-margin);  /* alinha com as margens do tema */
  top: 0;                    /* não precisa de topo para este caso */
  z-index: 2;                /* fica acima das imagens se sobrepuser */
  min-width: clamp(320px, 36vw, 560px);
}

/* a coluna das imagens é um “carrossel” em linha */
.intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
  display:flex;
  gap:18px;
  flex-wrap:nowrap;
}

/* cartões/imagens */
.intro .intro_img img{
  display:block;
  height:60vh;               /* ajuste livre */
  object-fit:cover;
}

/* antes estava .pp-year-panel { … } (global) */
#awards-tl .pp-year-panel{
  position: static !important;
  display: block !important;
  transform: none !important;
  /* resto igual */
}


/* garantir que nenhum ancestor corta o sticky */
  .principais_projetos_section,
  .principais_projetos_section *{
    overflow: visible !important;
    transform: none !important;
  }

  /* viewport onde estão os anos */
  .principais_projetos_section .pp-years-viewport{
    position: relative;
    isolation: isolate;
  }

  /* cada year_XXXX cola ao topo; o seguinte passa “por cima” */
  .principais_projetos_section .pp-years-viewport > .vc_row.vc_inner.pp-year-panel{
    position: sticky !important;                /* sobrepõe o “static” */
    top: calc(var(--header-height,50px) + 16px);
    background: #FCFFFE;                        /* fundo sólido para o efeito */
    z-index: 1;
    min-height: 72vh;                           /* altura do “cartão” */
    margin-bottom: 60vh;                        /* tempo colado antes do próximo */
  }

  /* escada de z-index p/ o debaixo cobrir o de cima */
  .principais_projetos_section .pp-years-viewport > .vc_row.vc_inner.pp-year-panel:nth-of-type(1){ z-index: 6; }
  .principais_projetos_section .pp-years-viewport > .vc_row.vc_inner.pp-year-panel:nth-of-type(2){ z-index: 5; }
  .principais_projetos_section .pp-years-viewport > .vc_row.vc_inner.pp-year-panel:nth-of-type(3){ z-index: 4; }
  .principais_projetos_section .pp-years-viewport > .vc_row.vc_inner.pp-year-panel:nth-of-type(4){ z-index: 3; }
  .principais_projetos_section .pp-years-viewport > .vc_row.vc_inner.pp-year-panel:nth-of-type(5){ z-index: 2; }
  

  .principais_projetos_section .pp-years-viewport > .vc_row.vc_inner.pp-year-panel {
  
    min-height: 0vh !important;
    margin-bottom: 0vh !important;
}

/* botão sempre clicável */
a.btn-ghost-circle{
  z-index: 9999;
  pointer-events: auto;
}

/* overlays do vídeo não bloqueiam cliques */
.hero-video::after,
.bg-video::after{
  pointer-events: none;
}

.btn-ghost-circle {
    border: 2px solid #fcfffe !important;
    background-color: rgba(255,255,255,.15) !important;
}

/* se o teu vídeo está dentro da row “hero-video” */
  .home .vc_row.hero-bg-video{ position: relative; }
  .home .vc_row.hero-bg-video::after{
    content: "";
    position: absolute;
    inset: 0;
    background: #1B376466 !important;      /* #1B3764 com ~40% */
    z-index: 2;                 /* acima do vídeo */
    pointer-events: none;       /* não bloqueia cliques/scroll */
  }
  /* garante as camadas correctas */
  .home .vc_row.hero-bg-video .hero-bg-video{
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    z-index: 1;                 /* vídeo por baixo do overlay */
  }
  .home .vc_row.hero-bg-video .hero-content,
  .home .vc_row.hero-bg-video .hero-stats{
    position: relative;
    z-index: 3;                 /* conteúdo acima do overlay */
  }

  /* ALTERNATIVA: se usares um wrapper .bg-video para o vídeo */
  .home .bg-video{ position: fixed; inset: 0; }
  .home .bg-video::after{
    content: "";
    position: absolute; inset: 0;
    background: #1B376466 !important;      /* mesmo véu a 40% */
    z-index: 2;
    pointer-events: none;
  }

  .mobile-menu-overlay .mm-bg-video::after{
    content: "";
    position: absolute;
    inset: 0;
    background: #1B376466 !important;
    z-index: 2;
    pointer-events: none;
  }

  

  .mobile-menu-overlay.is-open{ position: fixed; inset: 0; }

  /* véu */
  .mobile-menu-overlay.is-open::after{
    content: "";
    position: absolute;   /* relativo ao nav acima */
    inset: 0;
    background: #1B376466 !important; /* 40% */
    z-index: 2;           /* acima do vídeo, abaixo do conteúdo do menu */
    pointer-events: none; /* não bloqueia cliques no menu */
  }

  /* garantir a ordem das “camadas” */
 .mobile-menu-overlay.is-open .mm-bg-video{
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover;
    z-index: 1;          /* vídeo lá em baixo */
  }
 .mobile-menu-overlay.is-open .mobile-menu{
    position: relative;
    z-index: 3;          /* conteúdo do menu por cima do véu */
  }

  .page-id-12 .mobile-header-bar .menu-text,
.page-id-9 .menu-trigger.mobileOnly .menu-label{
  color: white !important;
}


    .page-id-20 .whiteHeader header:not(.whiteBG) .mobile-search-btn::before {
      background: #001F32 !important;
    }

  .page-id-20 .menu-trigger .menu-label {
    color: white !important;
  }

  .page-id-12 .mobile-header-bar.mobileOnly button {
    display: none !important;
  }

  .page-id-12 .whiteHeader header:not(.whiteBG) .mobile-search-btn::before, .whiteHeader header:not(.whiteBG) .mm-search::before {
    
    display: none !important;
    
}

  .page-id-12 .mobile-icons .mobile-search-btn {
      display:inline-block  !important;
  }

      .page-id-12 .mobile-search-btn img {
        display: inline-block !important;

      }

  .page-id-18 .mobile-search-btn img {
        display: inline-block !important;

      }

  .page-id-16 .mobile-search-btn img {
        display: inline-block !important;

      }

  
  .body.archive.tax-categoria_de_projeto.term-transporte-maritimo-e-desenvolvimento-portuario.term-11.wp-theme-consulmar.wpb-js-composer.js-comp-ver-6\.6\.0.vc_responsive.menu-open .mobile-search-btn img {

    display: inline-block !important;
  }

  .is-portefolio .mobile-search-btn img{ display: inline-block !important; }

  .is-portefolio .mobile-search-btn img,
.is-projetos-archive .mobile-search-btn img,
.is-projetos-tax .mobile-search-btn img{
  display: inline-block !important;
}


  .mobile-header-bar.is-open .mobile-logo .logo-light {
    display: none !important;
}

.mobile-header-bar.is-open .mobile-logo .logo-light {
    display: block !important;
}

.tax-categoria_de_projeto .mobile-search-btn img{
  display: inline-block !important;
}


.tax-categoria_de_projeto .mobile-header-bar.is-open .mobile-logo .logo-light {
    display: none !important;
}

.tax-categoria_de_projeto .mobile-header-bar.is-open .mobile-logo .logo-light {
    display: block !important;
}

/* Vídeo do overlay do menu mobile (fica por baixo) */
.mobile-menu-overlay .mm-bg-video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;               /* vídeo na base */
}

/* Overlay por cima do vídeo do menu mobile */
.mobile-menu-overlay::after{
  content: "";
  position: absolute;
  inset: 0;
  background: #1B376466;    /* o véu: #1B3764 a 40% */
  pointer-events: none;
  z-index: 1;               /* acima do vídeo, abaixo do conteúdo */
}

/* Conteúdo do menu por cima do overlay */
.mobile-menu-overlay .mobile-menu{
  position: relative;
  z-index: 2;
}

/* o nav do menu mobile cobre o ecrã todo */
  #siteMobileMenu.mobile-menu-overlay{
    position: fixed;
    inset: 0;
  }

  /* véu por cima do vídeo e por baixo do conteúdo */
  #siteMobileMenu.mobile-menu-overlay::before{
    content: "";
    position: absolute;
    inset: 0;
    background: #1B376466;          /* 40% */
    /* se quiseres igual ao da home, usa também um gradiente por cima: 
       background:
         linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.45) 100%),
         #1B376466;
    */
    z-index: 1;
    pointer-events: none;
  }

  /* garante que o vídeo fica por baixo do véu */
  #siteMobileMenu .mm-bg-video{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
  }

  /* e que o conteúdo do menu fica acima do véu */
  #siteMobileMenu .mobile-menu{
    position: relative;
    z-index: 2;
  }

  .label {
    font-size: 19px !important;
    line-height: 22px !important;
}

.hist-timeline .tl-prev, .hist-timeline .tl-next{
  
  padding-bottom: 5px !important;
}

.clientes p {
    font-size: 28px;
    line-height: 33px;
}

.certificacoes p {
   
    font-size: 28px;
    line-height: 33px;
    
}

.premio p {
    font-size: 28px !important;
    line-height: 33px !important;
}

/* overlay ocupa o ecrã */
  #siteMobileMenu.mobile-menu-overlay{
    position: fixed; inset: 0; z-index: 9999;
  }

  /* vídeo sempre atrás e sem apanhar cliques */
  #siteMobileMenu .mm-bg-video{
    position: absolute; inset: 0;
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
  }

  /* header do overlay (Fechar/Menu + logo + lupa) FIXO */
  #siteMobileMenu .mm-top{
    position: sticky;     /* mantém no topo ao rolar */
    top: 0;
    z-index: 3;
    padding: 14px 18px;
    /* sem blur, apenas uma faixa sólida/semi-transparente */
    background: rgba(0,0,0,0.40); /* ajusta a opacidade/cor se quiseres */
  }

  /* wrapper geral do conteúdo */
  #siteMobileMenu .mobile-menu{
    position: relative;
    z-index: 1;                /* acima do vídeo */
    height: 100dvh;
    overflow: hidden;          /* impede que o conteúdo passe por cima do topo */
    --mm-top-h: 64px;          /* altura aproximada do .mm-top (ajusta se necessário) */
  }

  /* CAIXA que contém a lista do menu — é ESTA que rola */
 #siteMobileMenu .menu-mobile-list {
    background: rgba(0,0,0,0);
    border-radius: 0px;
    margin: 100px 0px 0px;
    padding: 8px 0;
    max-height: calc(100dvh - var(--mm-top-h) - 124px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

  /* se a tua lista vier embrulhada noutro container, aplica a regra ao pai:
     #siteMobileMenu .mobile-menu > * { ... }  ou  #siteMobileMenu .menu-mobile { ... } */

  /* evita que pseudo-elementos do menu saltem para fora da caixa */
  #siteMobileMenu .menu-mobile-list *{
    overflow: visible;
  }

  #siteMobileMenu .mm-top {
    padding: 14px 0px !important;
    margin-bottom: -98px;
    margin-top: 18px !important;
}

#worldmap {
  
    margin-left: -100px;
}

/* contentor que o JS cria/marca */
  .map-legend{ position: relative; }

  /* botão/trigger (substitui o título) */
  .map-legend__toggle{
    display:flex; align-items:center; justify-content:space-between;
    width:100%;
    background: transparent;
    border: 0; padding: 6px 0;
    cursor: pointer;

    /* Specs pedidas */
    font-family: "Montserrat", "Montserrat-SemiBold", sans-serif;
    font-weight: 700;           /* Bold */
    font-style: normal;
    font-size: 16px;
    line-height: 20px;
    letter-spacing: -0.02em;    /* -2% */
    color: #00436B;
    text-transform: none;       /* mantém como está (tens em maiúsculas no conteúdo) */
  }

  /* pequeno ícone (chevron) à direita */
  .map-legend__toggle::after{
    content:"";
    width: 16px; height: 10px; flex: 0 0 16px;
    mask: url('/wp-content/uploads/2024/10/arrow.svg') center/contain no-repeat;
    -webkit-mask: url('/wp-content/uploads/2024/10/arrow.svg') center/contain no-repeat;
    background: currentColor;
    transform: rotate(90deg);     /* apontar para baixo */
    transition: transform .25s ease;
  }
  .map-legend--open .map-legend__toggle::after{
    transform: rotate(-90deg);    /* apontar para cima quando aberto */
  }

  /* a lista da legenda fica colapsada por defeito */
  .map-legend__list{
    overflow: hidden;
    max-height: 0;
    transition: max-height .35s ease;
  }

  /* aberta: altura confortável + scroll vertical próprio */
  .map-legend--open .map-legend__list{
    max-height: 70vh;           /* ajusta se quiseres */
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* a própria row é o scroller horizontal,
     mas não bloqueia o scroll vertical da página */
  .vc_row.intro{
    overflow-x: auto;
    overflow-y: visible !important;      /* não cortar o eixo Y */
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;            /* aceitar ambos os gestos */
    overscroll-behavior-x: contain;       /* scroll horizontal não “salta” para fora */
    overscroll-behavior-y: auto;          /* o vertical propaga para o body */
  }

  /* garantir que os wrappers internos não criam “caixas” com overflow */
  .vc_row.intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    overflow: visible !important;
  }

  /* se algum filho tiver inadvertidamente overflow escondido */
  .vc_row.intro .wpb_wrapper,
  .vc_row.intro .wpb_content_element{
    overflow: visible !important;
  }

  .map-legend{                 /* ← contentor da lista das legendas */
    position: relative;
    margin-top: 12px;          /* ajusta se precisares */
  }
  .map-legend::before{
    content: "SELECIONE UM PAÍS";
    display: block;
    margin: 0 0 10px 0;

    /* Tipografia pedida */
    font-family: "Montserrat", sans-serif;
    font-weight: 700;          /* Bold */
    font-style: normal;
    font-size: 16px;
    line-height: 20px;
    letter-spacing: -0.02em;   /* -2% */
    color: #00436B;
    text-transform: none;      /* remove se quiseres forçar UPPERCASE */
  }

/* wrapper da secção do mapa (muda se o teu wrapper tiver outro nome) */
  .presenca_mundo{ position: relative; }

  /* botão/título */
  .presenca_mundo .legend-toggle{
    display: block;
    width: 100%;
    padding: 16px 0;
    background: transparent;
    border: 0;
    text-align: left;
    cursor: pointer;

    /* specs pedidas */
    font-family: "Montserrat", sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 20px;
    letter-spacing: -0.02em; /* -2% */
    color: #00436B;

    position: relative;
    z-index: 20;          /* acima do mapa */
    pointer-events: auto; /* garante clique */
  }
  .presenca_mundo .legend-toggle::after{
    content: "✚";
    float: right;
    font-weight: 700;
  }
  .presenca_mundo.is-open .legend-toggle::after{ content: "–"; }

  /* lista da legenda (ul/ol) começa escondida */
  .presenca_mundo .legend-list{
    display: none;
    margin-top: 8px;
  }
  /* quando abre */
  .presenca_mundo.is-open .legend-list{ display: block; }

  /* evita que alguma camada do mapa capture o clique */
  .presenca_mundo .map-layer-overlay{ pointer-events: none; }
  

  /* wrapper que o JS cria */
  .pm-legend{
    position: relative;
    z-index: 20;              /* acima do mapa/overlays */
    margin-top: 12px;
  }

  /* botão/título “SELECIONE UM PAÍS” */
  .pm-legend__toggle{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    user-select: none;

    font-family: "Montserrat-SemiBold","Montserrat",sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 16px;
    line-height: 20px;
    letter-spacing: -0.02em;  /* -2% */
    color: #00436B;
    background: transparent;
    border: 0;
    padding: 0;
  }
  .pm-legend__toggle::after{
    content: "＋";            /* ícone abrir */
    font-weight: 700;
  }
  .pm-legend.is-open .pm-legend__toggle::after{
    content: "－";            /* ícone fechar */
  }

  /* a lista (ol/ul) fica escondida por defeito */
  .pm-legend__list{ display: none; margin-top: 12px; }
  .pm-legend.is-open .pm-legend__list{ display: block; }

  /* segurança: nada por cima bloqueia cliques no título */
  .pm-legend, .pm-legend *{ pointer-events: auto; }

   /* o texto "SELECIONE UM PAÍS" */
  #mapSelectTrigger{
    display:inline-flex;             /* para alinhar texto + ícone */
    align-items:center;
    gap:8px;                         /* espaço entre texto e ícone */
    font-family: "Montserrat", sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 20px;
    letter-spacing: -0.02em;
    color:#00436B;
  }

  /* Ícone à DIREITA do texto (como na tua imagem) */
  #mapSelectTrigger::after{
    content:"";
    inline-size:14px;                /* largura */
    block-size:14px;                 /* altura */
    background: url('/wp-content/uploads/2025/09/DROPDOWN-1.svg') no-repeat center / contain;
    display:inline-block;
    transition: transform .2s ease;
  }

  /* Rodar o ícone quando o dropdown estiver aberto (opcional) */
  #mapSelectTrigger.is-open::after{
    transform: rotate(180deg);
  }

  /* Título "SELECIONE UM PAÍS" */
.map-legend{
  position: relative;               /* âncora do ::after */
  display: inline-block;            /* para calcular bem a largura */
  padding-right: 24px;              /* espaço para o ícone */
  font-family: "Montserrat-SemiBold","Montserrat",sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 20px;
  letter-spacing: -0.02em;
  color: #00436B;
}

/* Ícone à direita do texto */
.map-legend::after{
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 16px;                      /* ajusta se precisares */
  height: 16px;
  transform: translateY(-50%);
  background: url("/wp-content/uploads/2025/09/DROPDOWN-1.svg") no-repeat center;
  background-size: contain;
  pointer-events: none;
}


.map-legend li {
   
    margin-bottom: 4px !important;
}



.map-legend::after {
    content: "";
    position: absolute;
    top: 0% !important;
    right: 0;
    width: 16px;
    height: 16px;
    /* transform: translateY(-50%); */
    background: url("/wp-content/uploads/2025/09/DROPDOWN-1.svg") no-repeat center;
    background-size: contain;
    pointer-events: none;
    left: 180px !important;
  
}

.map-legend {
    min-height: 0px !important;
    max-height: 600px !important;
}

/* a lista funciona como botão do dropdown */
  ul.map-legend{
    position: relative;
    display: block;
    padding-top: 28px;         /* faixa clicável do título */
    padding-right: 24px;       /* espaço para o ícone */
    cursor: pointer;
  }

  /* Título (faixa) – clica-se nele; o click "acerta" no UL */
  ul.map-legend::before{
    content: "SELECIONE UM PAÍS";
    font-family: "Montserrat-SemiBold","Montserrat",sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 20px;
    letter-spacing: -0.02em;
    color: #00436B;
    position: absolute;
    left: 0; top: 0;
    height: 20px;
    pointer-events: none;      /* o click passa para o UL */
  }

  /* Ícone à direita do título */
  ul.map-legend::after{
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 16px; height: 16px;
    background: url("/wp-content/uploads/2025/09/DROPDOWN-1.svg") no-repeat center/contain;
    pointer-events: none;
    transform: rotate(0deg);
    transition: transform .2s ease;
  }
  /* roda o ícone quando aberto */
  ul.map-legend.is-open::after{
    transform: rotate(180deg);
  }

  /* Esconde os itens por defeito */
  ul.map-legend li{
    display: none !important;
  }

  /* Mostra quando abrir */
  ul.map-legend.is-open li{
    display: block !important;      /* ou flex, conforme o teu layout */
  }

  .map-legend li{
    display: grid;                 /* já usas isto */
    grid-template-columns: 28px 1fr;/* mantém as colunas que tens */
    column-gap: 8px !important;               /* <-- espaço entre nº e texto */
    align-items: center;
  }

  .map-legend li::before{
    content: attr(data-pin);
    display: inline-block;
    min-width: 28px;               /* largura do “bloco” do número */
    text-align: left;             /* número alinhado à direita */
               /* <-- o espaço pedido */
  }


  .map-legend {
    z-index: 0 !important;
}

.map-callout {
    position: relative !important;
    left: 0;
    top: 0;
    transform: none !important;
    background-color: white !important;
    z-index: 10000 !important;
}



  .hist-timeline .tl-track .tl-fill {
  
    display: none !important;
}

.clients-cap{
    margin: 18px 0 12px;
    height: 26px;
  }
  .clients-cap::after{
    font-size: 13px;
  }
  .clients-cap::before{
    background:
      linear-gradient(#0A4C70,#0A4C70) left 10% center / 26% 3px no-repeat,
      linear-gradient(#0A4C70,#0A4C70) right 10% center / 26% 3px no-repeat,
      linear-gradient(#0A4C70,#0A4C70) left 10% calc(50% - 10px) / 3px 20px no-repeat,
      linear-gradient(#0A4C70,#0A4C70) right 10% calc(50% - 10px) / 3px 20px no-repeat;
  }


  /* Row do grupo vira grid e neutraliza estilos do VC */
  .logos-grid{
    /* 3 colunas no máx.; se houver 1 ou 2, o grid inteiro centra */
    display: grid !important;
    /* grid-template-columns: repeat(3, max-content); */
    justify-content: center;      /* centra o conjunto de colunas (1, 2 ou 3) */
    gap: 18px 24px;               /* espaço entre logos (linha x coluna) */
    align-items: center;          /* alinha verticalmente cada logo */
  }

  /* Anula floats/larguras do WPBakery dentro da row */
  .logos-grid > .wpb_column{
    float: none !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
  }
  .logos-grid > .wpb_column > .vc_column-inner{
    padding: 0 !important;
  }

  /* Garante que a imagem do logo se comporta bem */
  .logos-grid .wpb_single_image,
  .logos-grid .vc_single_image-wrapper{
    display: inline-block;        /* mede a col a partir do conteúdo */
  }
  .logos-grid img{
    display: block;
    max-width: 110px;             /* ajusta o tamanho limite do logo */
    height: auto;
    object-fit: contain;
  }

.logos-grid > .wpb_column > .vc_column-inner {
    padding: 0px 35px !important;
}


/* Wrapper da secção de logos */
.logos-section {
  position: relative;
  margin: 40px 0;
  padding: 24px 0; /* espaço para não colar no texto */
}

/* Linha em cima */
/* .logos-section::before,
.logos-section::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background-color: var(--darkBlue); 
} */

/* linha superior */
/* .logos-section::before {
  top: 0;
} */

/* linha inferior */
/* .logos-section::after {
  bottom: 0;
} */

/* título do grupo (ex: Ambiente, Empreiteiros) */
.logos-section .clients-cap,
.logos-section h3,
.logos-section h4 {
  font-family: "Montserrat-SemiBold", sans-serif;
  font-size: 16px;
  text-transform: uppercase;
  color: var(--darkBlue);
  text-align: center;
  margin-bottom: 20px;
}


/* Aplica a cada secção de logos (Ambiente, Empreiteiros, Energia...) */
.logos-section {
  position: relative;
  margin: 40px 0;
  padding: 40px 0;
  text-align: center;
}

/* Linhas nos cantos */
/* .logos-section::before,
.logos-section::after {
  content: "";
  position: absolute;
  width: 30px;   
  height: 20px;  
  border-color: var(--darkBlue);
  border-style: solid;
} */

/* canto superior esquerdo */
/* .logos-section::before {
  top: 0;
  left: 0;
  border-width: 2px 0 0 2px;
} */

/* canto superior direito */
/* .logos-section::after {
  top: 0;
  right: 0;
  border-width: 2px 2px 0 0;
} */

/* criar cantos inferiores também */
.logos-section .corner-bottom-left,
.logos-section .corner-bottom-right {
  content: "";
  position: absolute;
  width: 81px;
  height: 32px;
  border-color: var(--darkBlue);
  border-style: solid;
  bottom: 0;
}




/* canto inferior esquerdo */
.logos-section .corner-bottom-left {
  left: 20px;
  border-width: 2px 0 0 2px;
  top: 70px;
}



.logos-section .corner-bottom-left1,
.logos-section .corner-bottom-right1 {
  content: "";
  position: absolute;
  width: 6px;
  height: 32px;
  border-color: var(--darkBlue);
  border-style: solid;
  bottom: 0;
}

.logos-section .corner-bottom-left2,
.logos-section .corner-bottom-right2 {
  content: "";
  position: absolute;
  width: 42px;
  height: 32px;
  border-color: var(--darkBlue);
  border-style: solid;
  bottom: 0;
}

/* canto inferior esquerdo */
.logos-section .corner-bottom-left1 {
  left: 20px;
  border-width: 2px 0 0 2px;
  top: 70px;
}

.logos-section .corner-bottom-left2 {
  left: 20px;
  border-width: 2px 0 0 2px;
  top: 70px;
}

/* canto inferior direito */
.logos-section .corner-bottom-right {
  right: 20px;
  border-width: 2px 2px 0 0;
  top: 70px;
}


/* canto inferior direito */
.logos-section .corner-bottom-right1 {
  right: 20px;
  border-width: 2px 2px 0 0;
  top: 70px;
}

.logos-section .corner-bottom-right2 {
  right: 20px;
  border-width: 2px 2px 0 0;
  top: 70px;
}

.galeria1.wpb_column.vc_column_container.vc_col-sm-6 {
    display: none !important;
}


.conjunto_projetos1 {
    display: none !important;
}

.conjunto_projetos {
    display: block !important;
}

.conjunto_projetos2 {
  display: block !important;
}

.conjunto_projetos3 {
  display: none !important;
}

.wpb_text_column.wpb_content_element.intro_text p {
    width: 90vw !important;
  
}

.map-callout.top-align{
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
    margin-bottom: -475px; /* mantém o espaço de respiração sob o callout */
    z-index: 40 !important;
  }


  /* a row da intro não deve capturar o gesto horizontal quando estamos no texto */
  .vc_row.intro { 
    touch-action: pan-y;           /* prioriza o scroll vertical */
    overscroll-behavior-x: contain; 
  }

  /* o próprio contentor do texto também */
  .intro .intro_text,
  .intro .intro_text .wpb_wrapper {
    touch-action: pan-y;
    pointer-events: auto;
  }

  /* opcional: se o sticky do texto estiver a atrapalhar, remove-o em mobile */
  .intro .intro_text { 
    position: static; /* em vez de sticky */
    top: auto;
  }

  /* mantém o scroll horizontal só na coluna das imagens */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }


  .vc_row.intro{
  overflow-x:auto;
  overflow-y:visible;
  overscroll-behavior-x: contain; /* segura o scroll horizontal */
  overscroll-behavior-y: auto;    /* deixa o scroll “subir” para o body */
  touch-action: pan-y;            /* melhora no mobile */
}

/* Intro: desativar o snap quando se volta ao início do carrossel */
.vc_row.intro{
  scroll-snap-type: none !important;
}

.vc_row.intro > .wpb_column{
  scroll-snap-align: none !important;
}

/* se algum cartão interno ainda tiver snap, anulamos também */
.intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row{
  scroll-snap-align: none !important;
}


/* INTRO — rail horizontal como a qs-tree */
.vc_row.intro{
  overflow-x: auto;           /* só horizontal */
  overflow-y: visible;        /* não bloqueia o scroll vertical da página */
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;   /* inércia iOS */
  overscroll-behavior-x: contain;      /* não “salta” para fora ao início/fim */
  overscroll-behavior-y: auto;
                /* no mobile o gesto é horizontal */
}

/* a coluna das imagens vira o rail */
.intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
  display: flex;
  flex-wrap: nowrap;
  gap: 18px;
  overflow: auto;             /* aqui vive o scroll horizontal */
  scrollbar-width: none;      /* Firefox */
}
.intro .intro-img-col > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{ display:none; }

/* cada imagem/cartão “encaixa” no snap */
.intro .intro-img-col .vc_row{ flex: 0 0 auto; scroll-snap-align: start; margin:0!important; padding:0!important; }
.intro .intro_img img{ display:block; object-fit:cover; height: 60vh !important; }

/* texto da intro fica uma “paragem” própria e não recebe o scroll */
.intro .intro_text{ min-width: clamp(320px, 36vw, 560px); }

/* no mobile mantemos o rail, sem efeitos de ancoragem inesperados */

  .vc_row.intro{ margin-right: -25px; }                 /* esconder qualquer barra */
  .vc_row.intro::-webkit-scrollbar{ display:none; }

.vc_row.intro{
    overflow-x: hidden !important;
    overscroll-behavior-x: auto !important;
    scroll-snap-type: none !important;
    -webkit-overflow-scrolling: auto !important;
    touch-action: pan-y !important; /* só scroll vertical */
  }

  /* a coluna das imagens deixa de ser “rail” horizontal */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    display: block !important;     /* em vez de flex horizontal */
    overflow: visible !important;
    gap: 0 !important;
  }

  /* cada “cartão” de imagem ocupa a largura toda e empilha */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row{
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .intro .intro-img-col .vc_row > .wpb_column{
    float: none !important;
    width: 100% !important;
  }

  /* imagem e legenda a 100% (sem largura mínima que force scroll) */
  .intro .intro_img img{
    width: 100% !important;
    height: auto !important;
    object-fit: cover;
  }

  /* bloco de texto mantém-se como cartão inicial */
  .intro .intro_text{
    min-width: 100% !important;
  }

  /* a row deixa de rolar na horizontal */
  .vc_row.intro{
    overflow-x: hidden !important;
    scroll-snap-type: none !important;
    -webkit-overflow-scrolling: auto; /* desativa momentum horizontal do iOS */
    overscroll-behavior-x: auto;
  }

  /* as colunas deixam de estar em linha e passam a largura total */
  .vc_row.intro > .wpb_column{
    flex: 1 1 100% !important;
    width: 100% !important;
  }

  /* o wrapper das imagens deixa de ser “carrossel” */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    display: block !important;
    overflow: visible !important;
    gap: 0 !important;
  }

  /* cada bloco/imagem ocupa a largura total; sem snap */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row{
    width: 100% !important;
    scroll-snap-align: none !important;
  }

  /* imagens fluem a 100% na vertical */
  .intro .intro_img img{
    width: 100% !important;
    height: auto !important;
    object-fit: cover;
  }

  
 /* A row deixa passar o scroll vertical da página */
  .vc_row.intro{
    overflow-x: auto !important;
    overflow-y: visible !important;
    overscroll-behavior-x: contain !important;
    overscroll-behavior-y: auto !important;
    touch-action: pan-x pan-y !important; /* permite ambos os gestos */
  }

  /* Só o “rail” das imagens rola na horizontal */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain !important;
    touch-action: pan-x pan-y !important;      /* horizontal aqui, sem travar o Y da página */
  }

  /* Garantias extra para não criar um scroller vertical interno */
  .vc_row.intro > .wpb_column > .vc_column-inner,
  .vc_row.intro > .wpb_column > .vc_column-inner > .wpb_wrapper{
    overflow-y: visible !important;
  }

  /* Se tiver algum sticky nesta secção, neutraliza no mobile */
  .vc_row.intro [style*="position:sticky"],
  .vc_row.intro .sticky,
  .vc_row.intro .is-sticky{
    position: static !important;
    top: auto !important;
  }

  /* A row da intro não bloqueia o gesto vertical */
  .vc_row.intro{
    overflow-x: auto !important;           /* horizontal vive na row */
    overflow-y: visible !important;        /* deixa o Y passar para o body */
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain !important;
    overscroll-behavior-y: auto !important;
    touch-action: pan-x pan-y !important;  /* permitir ambos os gestos */
  }

  /* O rail horizontal fica só no wrapper das imagens */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain !important;
    touch-action: pan-x pan-y !important;        /* swipe só na horizontal aqui */
  }

  /* Garantir que wrappers internos não criam scroller vertical próprio */
  .vc_row.intro > .wpb_column > .vc_column-inner,
  .vc_row.intro > .wpb_column > .vc_column-inner > .wpb_wrapper{
    overflow-y: visible !important;
  }

  /* Se houver algo sticky nesta secção, não o uses no mobile */
  .vc_row.intro [style*="position:sticky"],
  .vc_row.intro .sticky,
  .vc_row.intro .is-sticky{
    position: static !important;
    top: auto !important;
  }

  /* A row da intro não bloqueia o Y */
  .vc_row.intro{
    overscroll-behavior-y: auto;
    touch-action: pan-x pan-y;
  }

  /* O rail horizontal é o wrapper das imagens */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain; /* não “escapa” para a página */
  }


  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
  }

  .vc_row.intro{
    touch-action: pan-x pan-y !important; /* permitir ambos os gestos */
    overscroll-behavior-x: contain;       /* não “escapa” para fora da row */
  }

  .vc_row.intro{
    overscroll-behavior-y: auto !important;
    touch-action: pan-x pan-y !important; /* em vez de pan-x / pan-x pinch-zoom */
  }

  /* O rail das imagens NÃO deve bloquear o pan-y */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    touch-action: auto !important;        /* retira o pan-x !important */
    overflow-x: auto;                      /* mantém o scroll horizontal */
    overflow-y: hidden;                    /* só para não criar scroller vertical interno */
    -webkit-overflow-scrolling: touch;
  }


  /* A row aceita ambos os gestos e deixa o vertical “subir” para o body */
  .vc_row.intro{
    touch-action: pan-x pan-y !important;
    overscroll-behavior-y: auto !important;
  }

  /* O rail das imagens NÃO bloqueia o pan-y */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    touch-action: auto !important;        /* (não uses pan-x aqui) */
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain !important;
  }

.hist-slider {
    height: 95vh !important;
}

.hist-slider:has(.vc_row.historia.is-active .ano_1990) {
    height: 990px !important;
}

}

/* Por omissão, não mostres a corda decorativa dentro da callout */
.map-callout::after { display: none; }

/* Só mostra a corda decorativa se a caixa tiver overflow vertical
   (classe será colocada por JS abaixo) */
.map-callout.has-overflow::after { display: block; }

/* iPhone/mobile: força a corda decorativa a desaparecer — fica só a do scroll */
@media (max-width: 767px) {
  .map-callout::after { display: none !important; }
  /* se existir alguma imagem de corda dentro da callout, esconde-a */
  .map-callout img.qs-rope,
  .map-callout .rope,
  .map-callout .rope-static { display: none !important; }

  body.page-id-20 footer {
    margin-top: -120px !important;
  }

  .logo p {
   
    margin-top: 50px !important;
}

/* linha vertical/ponto também quando a row só tem a classe year_YYYY */
.vc_row.vc_inner[id^="row_"],
.vc_row[class*="year_"] { position:relative; }

.vc_row.vc_inner[id^="row_"]::before,
.vc_row[class*="year_"]::before {
  content:""; position:absolute; left:40px; top:48px; bottom:-32px;
  width:2px; background:#B8CBD7;
}

.vc_row.vc_inner[id^="row_"] .pp-year-bubble::after,
.vc_row[class*="year_"] .pp-year-bubble::after {
  content:""; position:absolute; left:39px; bottom:-32px;
  width:8px; height:8px; border-radius:50%; background:#B8CBD7;
}


.pp-year-bubble {
    display: none !important;
    position: absolute !important;
}
}

/* Suaviza o scroll em iOS e evita “duplicações” de pintura */
.map-callout { -webkit-overflow-scrolling: touch; }


@media (width: 393px){
   @media (height: 852px) {
    .vc_row.historia .vc_column_container > .vc_column-inner {
        margin-top: 86px !important;
    }
   }

}


@media (width: 390px){
  @media (height: 844px) {
      .vc_row.historia .vc_column_container > .vc_column-inner {
          
          margin-bottom: 3px !important;
      }
  }
}

@media (width: 440px){
  @media (height: 932px) {
    .principais_projetos p {
      
        margin-top: 120px !important;
    }
  }
}



@media (width: 375px){
  @media (height: 812px) {
    .hist-slider {
        height: 73vh !important;
    }
  }

}

@media (width: 375px){
  @media (height: 667px) {
    .hist-slider {
        margin-top: -106vh !important;
    }
  }



}



/* INTRO — permitir scroll horizontal (mobile) e garantir que há “largura” para o swipe */
@media (max-width: 768px){
  /* a própria row é o rail do scroll horizontal */
  .vc_row.intro{
    overflow-x: auto !important;
    /* overflow-y: visible !important; */
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y !important;   /* <- trocar de pan-y para pan-x */
    overscroll-behavior-x: contain;
    overscroll-behavior-y: auto;
    margin-right: -25px !important;
  }

  /* as colunas dentro da row não ocupam 100%: ficam em linha e “largam” overflow */
  .vc_row.intro > .wpb_column{
    float: none !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
  }

  /* wrapper das imagens em linha contínua */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 3px !important;
    overflow: visible !important;   /* o scroll vive na .vc_row.intro */
  }

  /* cada “cartão” de imagem precisa de largura mínima para existir overflow */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row{
    flex: 0 0 auto !important;
    width: auto !important;
    scroll-snap-align: start;
  }

  /* imagens com largura confortável em mobile (ajusta se quiseres) */
  .intro .intro_img img{
    width: 80vw !important;      /* garante que ultrapassam a viewport */
    height: auto !important;
    object-fit: cover;
    display: block;
  }

/* a row deixa de ser o contentor de scroll */
  .vc_row.intro{
    overflow: visible;                 /* nada de scroll aqui */
    touch-action: pan-x pan-y;         /* permite ambos no touch */
  }

  /* garante que nada corta o sticky/scroll */
  .vc_row.intro .vc_column-inner,
  .vc_row.intro .wpb_wrapper{
    overflow: visible !important;
  }

  /* coluna da direita = contentor horizontal */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper{
    display: flex;
    flex-wrap: nowrap;
    gap: 18px;
    overflow-x: auto;                  /* <-- só aqui! */
    overflow-y: visible;
    -webkit-overflow-scrolling: touch; /* suave no iOS */
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;    /* mantém o swipe “preso” ao carrossel */
    overscroll-behavior-y: auto;       /* deixa o scroll vertical subir para o body */
  }

  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper::-webkit-scrollbar{ display:none; }

  /* cada “cartão” de imagem continua a ‘snapiar’ */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row{
    flex: 0 0 auto;
    scroll-snap-align: start;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* texto fixo = usa sticky (não fixed) para não bloquear o scroll */
  .intro .intro_text .vc_column-inner{
    position: sticky;
    top: calc(var(--header-height, 50px) + 16px);
  }


  /* 0) Neutralizar bloqueios de sticky só nesta secção */
  .stats-grid, .stats-grid *{
    overflow: visible !important;
    transform: none !important;     /* WPBakery às vezes põe transform nas colunas */
  }

  /* 1) O grid fica colado ao topo */
  .stats-grid{
    position: sticky !important;
    top: calc(var(--header-height, 50px) + 12px); /* ajusta ao teu header fixo */
    z-index: 5;
    background: #FCFFFE;            /* para as secções seguintes passarem “por trás” */
    height: auto !important;        /* desativa alturas fixas herdadas */
    min-height: 65vh;               /* altura confortável do bloco */
    margin-bottom: 110vh;           /* << tempo que fica ‘colado’ (ajusta 80–150vh) */
    /* Esta row específica pode “partir” as colunas no mobile */
    flex-wrap: wrap !important;
  }

.whiteHeader .mobile-logo .logo-dark  { display: none !important; }
  .whiteHeader .mobile-logo .logo-light { display: inline !important; }


  /* 1) Garante uma altura comum a todas as imagens da intro */
  .intro .intro_img img{
    height: 60vh !important;      /* a que já estás a usar */
    width: auto !important;        /* não forces width em vh */
    object-fit: cover;             /* corta lateralmente quando alarga */
    display: block;
  }

  /* 2) Torna o 3.º “cartão” mais largo mantendo a altura igual */
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row:nth-of-type(3){
    min-width: 85vw;               /* mais largo que os restantes */
  }
  .intro .intro-img-col > .vc_column-inner > .wpb_wrapper > .vc_row:nth-of-type(3) .intro_img img{
    height: 60vh !important;       /* mesma altura das outras */
    width: 100%;                   /* ocupa a largura extra do cartão */
  }

  .wpb_text_column.wpb_content_element.intro_text p {
    width: 45vw !important;
    margin-left: -15px !important;
}

.premio p {
  
    font-size: 36px;
    
}

.vc_row.qs-three {
   
    margin-left: -32px !important;
}

.vc_custom_1756827870732 {
    margin-right: 0px !important;
}


.vc_row.historia .hist_img {

    max-width: 100%;
}

/* Mapa — garantir que a caixa fica por cima da legenda (mobile e desktop) */
.map-callout{ z-index: 40 !important; }   /* acima de tudo o resto do mapa */
.map-legend{  z-index: 0 !important; }

/* Quando a caixa está aberta, legenda não sobrepõe nem captura toques */
.map-wrap.has-callout ~ .map-legend{
  z-index: 1 !important;
  pointer-events: none;      /* evita cliques na legenda por trás da caixa */
}

.map-callout.is-open {
    top: -200px !important;
}

.vc_row[class*="year_"] ul::before {
   
    top: -40px !important;

    height: calc(100% + 40px) !important;
 
}


 /* garantir que a bolha aceita pseudo-elementos */
  .pp-year-panel .pp-year-bubble{ position: relative; }

  /* só no 2020 (quando o painel estiver visível) */
  .pp-year-panel.year_2020[aria-hidden="true"] .pp-year-bubble::before{
    content:"";
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    top:40px;               /* posição vertical do conjunto */
    width:40px; height:18px;
    pointer-events:none;
    z-index:2;
    color:#FCFFFE;

    /* 1º = traço; restantes = três pontos (Ø 4px) a 8px do centro e 6px abaixo do traço */
    background:
      linear-gradient(currentColor,currentColor) center 2px / 22px 2px no-repeat,
      radial-gradient(circle, currentColor 2px, transparent 2.1px) calc(50% - 8px) 8px / 4px 4px no-repeat,
      radial-gradient(circle, currentColor 2px, transparent 2.1px) 50%              8px / 4px 4px no-repeat,
      radial-gradient(circle, currentColor 2px, transparent 2.1px) calc(50% + 8px) 8px / 4px 4px no-repeat;
  }

  .menu-mobile-list .sub-menu {
   
    padding: 0 0 12px 0px !important;
  
}

#siteMobileMenu .menu-mobile-list .menu-link .label{
  
  text-transform: uppercase !important; /* tudo em MAIÚSCULAS */
}

.label {
    font-size: 12px !important;
    line-height: 12px !important;
}


.whiteHeader header {
    background-color: transparent !important;

}


.backgroundVideo {
   
    top: -100px !important;
   
}


    .whiteHeader header:not(.whiteBG) .mobile-search-btn::before {
              background: #001F32 !important;
    }

  

}





/* Fixar a secção de indicadores e deixar a próxima “passar por cima” */
@media (max-width: 765px){ /* remove o @media se quiseres também em desktop */
  /* a própria secção fica “presa” ao topo ao fazer scroll */
  .stats-sec{
    position: sticky;
    top: var(--header-height);     /* ou 0, se quiseres colada ao topo mesmo */
    min-height: calc(100vh - var(--header-height));
    z-index: 1;                    /* fica por baixo da próxima secção */
    overflow: visible;             /* não cortar nada */
    background: #FCFFFE;           /* garante “lona” por baixo dos números */
  }

  /* conteúdo interno continua normal */
  .stats-sec .stats-grid{ height: 100%; }

  /* a secção a seguir sobe por cima desta */
  .stats-sec + .vc_row{
    position: relative;
    z-index: 2;                    /* acima da sticky */
    background: #FCFFFE;           /* ou a cor/gradiente que usas nessa row */
  }


  /* se a lupa for <img> dentro do botão */
  .whiteHeader header:not(.whiteBG) .mobile-search-btn img,
  .whiteHeader header:not(.whiteBG) #mobileSearchToggle img,
  .whiteHeader header:not(.whiteBG) .mm-search img{
    filter: invert(1) brightness(100%) !important;
  }

  /* se a lupa for pseudo-elemento ::before (fallback) */
  .whiteHeader header:not(.whiteBG) .mobile-search-btn::before,
  .whiteHeader header:not(.whiteBG) .mm-search::before{
    content: "";
    width: 24px; height: 24px; display: inline-block;
    background: #fff !important;
    -webkit-mask: url('/wp-content/uploads/2024/10/search_desktop.svg') no-repeat center / contain;
            mask: url('/wp-content/uploads/2024/10/search_desktop.svg') no-repeat center / contain;
  }

.wpb_text_column.wpb_content_element.intro_text p {
    width: 90vw !important;
}

}



@media only screen and (max-width: 430px) {
.principais_projetos p {
    
    margin-top: 120px !important;
}

.hist-slider > .vc_row.historia {
    margin-top: 270px !important;
}

.hist-slider {
    height: 90vh !important;
}

.hist-slider:has(.vc_row.historia.is-active .ano_1990) {
    height: 1000px !important;
}

}


/* smartphones plus */
@media only screen and (max-width: 414px) {
	.single-post:has(.bigPost) .vc_row:has(.galeriaImagensWrapper) img {
		width: calc(448px * 0.8);
		height: calc(550px * 0.8);
	}

	.upperFooter ul li a i {
		margin-left: 0px;
	}

	.upperFooter ul li a:has(i) {
		display: grid;
	}

	.hist-slider > .vc_row.historia {
    margin-top: 100px !important;
}

.vc_row.historia .vc_column_container > .vc_column-inner {
  
    margin-top: 134px !important;
}

.hist-slider {
    height: 111vh !important;
}

.vc_row.historia .vc_column_container > .vc_column-inner {
    margin-top: 134px !important;
    margin-bottom: -138px !important;
}

.vc_row.historia .hist_img > .vc_column-inner > .wpb_wrapper {
  
    gap: 57px !important;
}

.vc_row.historia .hist_img img {
  
    margin-top: 50px !important;
}

}

@media only screen and (max-width: 393px) {

.vc_row.historia .vc_column_container > .vc_column-inner {
    margin-top: 86px !important;
    margin-bottom: -76px !important;
}

.vc_row.historia .hist_img > .vc_column-inner > .wpb_wrapper {
   
    gap: 176px;
}
}

@media only screen and (max-width: 390px) {
.hist-slider > .vc_row.historia {
    margin-top: 180px !important;
}

.vc_row.historia .vc_column_container > .vc_column-inner {
    margin-top: 5px !important;
}

.vc_row.historia .vc_column_container > .vc_column-inner {
   
    margin-bottom: 74px !important;
}

.hist-slider:has(.vc_row.historia.is-active .ano_1990) {
    height: 1114px !important;
}



.vc_row.historia .vc_column_container > .vc_column-inner {
    margin-top: -80px !important;
}

}
/* smartphones normais  */
@media only screen and (max-width: 378px) {
	h1,
	h2 {
		font-size: 26px;
		line-height: 30px;
	}
	/****************************** HEADER ************************************/
	.mobile-menu-options ul a {
		font-size: 15px;
		line-height: 20px;
	}

	.mobile-menu-options ul li {
		padding: 10px 0px;
	}

	/****************************** PORTEFOLIO CATEGORIA PAGE ************************************/
	/* links da sugestão de projetos */
	.outrosProjetos-lista a {
		font-size: 18px;
		line-height: 26px;
	}

	/****************************** DETALHE NOTICIA ************************************/

	.single-post:has(.bigPost) .vc_row:has(.galeriaImagensWrapper) img {
		width: calc(448px * 0.6);
		height: calc(550px * 0.8);
	}
	/****************************** FOOTER  ************************************/

	footer a:not(.lowerFooter a) {
		font-size: 14px;
		line-height: 21px;
	}

	.upperFooter .menu-menu-links-container a,
	footer ul li:first-child a,
	.secondMenuCol ul li:nth-child(1) a,
	.secondMenuCol ul li:nth-child(3) a,
	.secondMenuCol ul li:nth-child(4) a {
		font-size: 16px;
		line-height: 24px;
	}

	.middleFooterSection {
		gap: 30px;
	}
	.contactMenuCol {
		gap: 15px;
	}
}
/* iphone 5 <=  */
@media only screen and (max-width: 375px) {
	  .hist-slider > .vc_row.historia {
    margin-top: 0px !important;
}

	
.hero-content.wpb_column.vc_column_container.vc_col-sm-12 {
    margin-top: -300px !important;
}


.vc_row.hero-video .hero-stats {
    
    top: -50px;
    
}

.hero-content.wpb_column.vc_column_container.vc_col-sm-12 {
    
    top: 50px;
}

.btn-ghost-circle {
    margin-top: 100px !important;
}

.label {
    font-size: 15px;
    
}


.hist-slider {
    margin-top: -87vh !important;
}

.label {
    font-size: 19px !important;
    line-height: 22px !important;
}


#siteMobileMenu .menu-mobile-list .menu-link {
    padding: 2px 0;
}

.map-legend::after {
  
    top: 1% !important;
   
}

.logos-grid > .wpb_column > .vc_column-inner {
    padding: 0px 25px !important;
}

.vc_row.historia .vc_column_container > .vc_column-inner {
    margin-top: 0px !important;
}

.hist-slider {
    height: 73vh !important;
}

.vc_row.historia .vc_column_container > .vc_column-inner {
    margin-top: 0px !important;
    margin-bottom: 0px !important;
}

}


@media only screen and (max-width: 767px) {
  @media only screen and (min-width: 450px) {
    .hist-slider > .vc_row.historia {
        margin-top: 160px !important;
    }

    .hist-timeline .tl-track .tl-dot {
        
        top: 0% !important;
    }

  }

  #worldmap {
    margin-left: -20px !important;
}


}

.hero-title p{
  padding-right: 15px;
}

@media print,
screen and (max-width: 1400px) {
.hero-sub {
    margin-top: 150px;
    max-width: 100%;
    color: #fff;
    font-family: "Montserrat-Medium","Montserrat",sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 18px;
    line-height: 20px;
    letter-spacing: -0.02em;
    width: 72%;
}

.vc_row.hero-video .hero-stats {
    position: relative;
    left: var(--page-margin);
    right: var(--page-margin);
    display: flex;
    gap: 56px;
    padding-bottom: 295px;
}
}

/* Media query para menu hamburguer */
@media print,
screen and (max-width: 1250px) {

  .hero-sub p{
    margin-top: 70px;
  }

.hero-title p {
    color: #fff;
    font-family: "Montserrat-Medium","Montserrat",sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 50px;
    line-height: 61px;
    letter-spacing: -0.04em;
    text-transform: uppercase;
}

  .hero-content.wpb_column.vc_column_container.vc_col-sm-12 {
    margin-left: 30% !important;
}

.stat-num p {
    display: block;
    font-family: "Montserrat-SemiBold","Montserrat",sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 78px;
    line-height: 110px;
    letter-spacing: -0.04em;
    text-transform: uppercase;
    color: #001F32;
}

.stat-label p {
    font-family: "Montserrat-SemiBold","Montserrat",sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 30px;
    line-height: 30px;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: #001F32;
    margin-top: -100px !important;
    margin-left: 163px !important;
}

#awards-tl .tl-years {
    display: flex !important;
    gap: 10vw !important;
    flex-wrap: nowrap !important;
    white-space: nowrap;
    align-items: baseline;
}
}

/* Media query para menu hamburguer */
@media print,
screen and (max-width: 1210px) and (min-width:1025px) {


.hero-title p {
    color: #fff;
    font-family: "Montserrat-Medium","Montserrat",sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 30px;
    line-height: 35px;
    letter-spacing: -0.04em;
    text-transform: uppercase;
}

.hero-title p {
    color: #fff;
    font-family: "Montserrat-Medium","Montserrat",sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 44px;
    line-height: 50px;
    letter-spacing: -0.04em;
    text-transform: uppercase;
}

  .stat-label p {
    font-size: 20px;
}
.stat-num p{
  font-size: 77px;
}

.tl-years-viewport{
  width: 100%;
}

.tl-track{
  width: 95%;
  max-width: 100%;
}

.hero-content.wpb_column.vc_column_container.vc_col-sm-12 {
    margin-left: 15% !important;
}
}


/*tablet landscape or old laptop */
@media print,
screen and (max-width: 1024px) {


  .vc_row.hero-video .hero-stats {
    left: var(--page-margin);
    right: var(--page-margin);
    display: flex;
    gap: 56px;
}

.hero-title{
  padding-top: 0%;
}

.hero-content.wpb_column.vc_column_container.vc_col-sm-12 {
    margin-left: 10% !important;
}

.hero-content .vc_col-sm-6{
  padding-bottom: 200px;
}

.hero-sub p{
  margin-top:0px;
}
  
}

/* Size considerado para Tablet */
@media only screen and (max-width: 991px) {.hero-title p {
    color: #fff;
    font-family: "Montserrat-Medium","Montserrat",sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 36px;
    line-height: 43px;
    letter-spacing: -0.04em;
    text-transform: uppercase;
}}

/* Size considerado para Tablet modo portrait*/
@media only screen and (max-width: 767.5px) {}

@media only screen and (max-width: 600px) {}

/* Size considerado Mobile - 430px*/
@media only screen and (max-width: 430px) {}

/* smartphones plus */
@media only screen and (max-width: 414px) {
  .hero-video .vc_col-sm-6:nth-child(2) {
    padding-left: 10%;
    padding-top: 62%;
}

.hero-sub {
    width: 100%;
}

.stat-label p {
    font-family: "Montserrat-SemiBold","Montserrat",sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 17px;
    line-height: 19px;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: #001F32;
    margin-top: -80px !important;
    margin-left: 100px !important;
}

.stat-num p {
    display: flex;
    font-family: "Montserrat-SemiBold","Montserrat",sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 57px;
    line-height: 100px;
    letter-spacing: -0.04em;
    text-transform: uppercase;
    color: #001F32;
}
}

/* smartphones normais  */
@media only screen and (max-width: 378px) {
.hero-sub {
    margin-top: 240px;
    max-width: 100%;
    color: #fff;
    font-family: "Montserrat-Medium","Montserrat",sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 18px;
    line-height: 20px;
    letter-spacing: -0.02em;
    width: 100%;
}

.vc_row.hero-video .hero-stats {
    top: -100px;
}
}

/* iphone 5 <=  */
@media only screen and (max-width: 320px) {}