/*
Theme Name:     Hello Elementor Child
Description:    Child theme that contains Google Maps integration and can be used to build projects using Bakery.
Author:         Bspacy
Template:       hello-elementor
Version:        1.0
License:        GNU General Public License v2 or later
License URI:    https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:    cleantheme
*/

/* --------------------- BASE CONFIGURATIONS --------------------- */

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  background-color: var(--white-bg);
}

html.disableScroll {
  overflow-y: hidden;
}

img {
  max-width: 100%;
}

/* --------------------- CUSTOM SCROLLBAR --------------------- */

html {
  scrollbar-width: thin;
  scrollbar-color: #888 transparent;
}

html::-webkit-scrollbar {
  width: 4px;
}

html::-webkit-scrollbar-thumb {
  background-color: #888;
  border-radius: 4px;
}

html::-webkit-scrollbar-track {
  background-color: var(--white-bg);
}
/* Hide elements that have GSAP classes before they animate */
/* ── Esconde elementos GSAP antes da animação ── */
.gsap-fade-in,
.gsap-slide-left,
.gsap-slide-right,
.gsap-slide-up,
.gsap-slide-down,
.gsap-zoom-in,
.gsap-zoom-out,
.gsap-blur-in,
.gsap-skew-up,
[class*="gsap-stagger-children"] > * {
  visibility: hidden;
}

/* Estado inicial das palavras — cinzento, "por preencher".
   O JS troca a cor via inline style quando o scroll avança. */

.porque-ids-fill-words,
.gsap-fill-word {
  color: var(--grey-text);
}

.bold .gsap-fill-word {
  font-weight: 700;
}
/* --------------------- LINK RESET --------------------- */
a,
a:hover,
a:focus,
a:active {
  text-decoration: none;
  color: var(--black);
  cursor: pointer;
  overflow-wrap: anywhere;
}
/* --------------------- TYPOGRAPHY SMOOTHING --------------------- */

h1,
h2,
h3,
h4,
h5,
h6,
p,
label,
input,
a,
span,
li {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin: 0;
}

/* --------------------- FORM COMPONENTS --------------------- */

/* Placeholder Color */
input::placeholder {
  color: var(--black);
  opacity: 1;
}

/* Autofill Background/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 #fbf2eb inset !important;
  -webkit-text-fill-color: var(--salmon) !important;
}

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

/* Remove number input spinners */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* ELEMETOS DE FORMLARIO GERAIS */
.inputForm,
form
  input:not(
    input[type="button"],
    input[type="checkbox"],
    input[type="submit"]
  ) {
  border: 0px !important;
  font-family: "Gilroy", "sans-serif";
  text-transform: uppercase;
  border-bottom: 1px solid var(--burgundy) !important;
  background-color: var(--salmon) !important;
  color: var(--burgundy) !important;
  padding: 5px !important;
  padding-bottom: 7px !important;
  width: 100%;
  outline: unset;
  font-size: 16px !important;
  border-radius: 0px !important;
}

/* .quform .quform-label-text {
  color: var(--white-hero) !important;
}*/
input::placeholder,
textarea::placeholder,
.wpcf7 label {
  color: var(--burgundy) !important;
  opacity: 1;
}

.quform textarea {
  padding: 15px 20px !important;
  margin-top: 5px !important;
  background-color: var(--salmon);
  color: var(--black) !important;
  border-radius: 5px !important;
  resize: none; /* Disables both horizontal and vertical resizing */
  text-transform: uppercase;
  height: 112px !important;
  border: 1px solid var(--burgundy) !important;
}
.quform-spacer:has(textarea) {
  padding: 0px !important;
}
.quform-option:has(.acceptanceInput) label {
  line-height: unset;
  font-size: unset;
}
.quform-option:has(.acceptanceInput) span {
  color: var(--black) !important;
  font-size: 11px;
  font-style: normal;
  font-weight: 400;
  line-height: 118.182%;
}

.quform-spacer {
  padding-bottom: 10px !important;
}
.quform-element-submit {
  display: flex;
  justify-content: flex-start;
}
.quform-element-submit button {
  /* border-radius: 4px;
  background-color: var(--salmon);
  border: 1px solid var(--black);
  padding: 15px 33px;
  line-height: 1;
  font-size: unset;
  display: flex;
  align-items: center;
  justify-content: center; */
}
.quform-element-submit button span {
  /* color: var(--black) !important;

  text-align: center;
  font-size: 10px;
  font-style: normal;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 4px;
  text-transform: uppercase; */
}
.formsub {
  color: var(--burgundy);
  margin-bottom: 0px !important;
  font-weight: 700;
}

.quform-element-submit button:hover {
  /* background-color: transparent; */
}

.quform-input select {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
}
.quform-element:not(:has(textarea)) {
  margin-bottom: 5px;
}
.quform-element:has(textarea) {
  margin-bottom: 11px;
}

.quform-success-message-animate * {
  font-family: "Gilroy";
  color: var(--black) !important;
}

.quform-error > .quform-error-inner {
  padding: 0px;
  margin: 0;
  background-color: transparent;
  color: red;
  border-left: 0px;
  max-width: 100%;
}

.quform-error * {
  color: var(--black) !important;
}
.quform-error {
  margin: 0;
  padding: 0px 0;
}

.quform-error-text {
  font-size: 10px;
  color: var(--black-footer);
}
.quform .quform-elements {
  margin-top: 30px !important;
}
.quform-option-text a,
.quform-option-text {
  color: var(--burgundy);
  font-size: 10px;
  font-style: normal;
  font-weight: 500;
  line-height: 1.4;
}

.quform-option-text a {
  text-decoration: underline;
}
.quform-success-message {
  background-color: transparent;
  border-left: unset;
  color: #000;
  padding: 0px;
  margin: 0px;
  position: relative;
}
.quform-success-message-icon {
  display: none;
}
.quform-required {
  color: var(--black) !important;
  margin: 0px !important;
}
.quform-success-message-content {
  color: var(--black) !important;
  padding: 0px !important;
  margin-bottom: 10px !important;
}

.quform-1 .quform-spacer,
.quform-1 .quform-element-group.quform-group-style-bordered > .quform-spacer,
.quform-1 .quform-group-style-bordered > .quform-child-elements {
  padding-bottom: 0px !important;
}
.quform-label > label[for] {
  color: var(--burgundy);
  font-family: "Gilroy", "sans-serif";
  font-size: 16px;
  font-style: normal;
  font-weight: 300;
  line-height: 48px; /* 218.182% */
}

/********* Alterar o scroll bar **********/
html {
  scrollbar-width: thin; /* Adjust the width of the scrollbar */
  scrollbar-color: var(--salmon) 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(--salmon); /* 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-bg
  ); /* Background color of the scrollbar track */
}
/********* FIM DE Alterar o scroll bar **********/

/* --------------------- RESET ELEMENT MARGINS --------------------- */
/* remover espaçamentos */
.wpb_button,
.wpb_content_element,
ul.wpb_thumbnails-fluid > li,
.vc_btn3-container {
  margin-bottom: 0px !important;
}
header ul,
footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* --------------------- CUSTOM SELECT STYLE (DISABLED) --------------------- */
/*
select {
	-webkit-appearance: none;
	-moz-appearance: none;
	border: 0 !important;
	color: #fff;
	border-radius: 5px;
	font-size: 14px;
	padding: 10px;
	width: 35%;
	cursor: pointer;
	background: #0d98e8 url(https://cdn1.iconfinder.com/data/icons/universal-icons-set-for-web-and-mobile/100/controls_0-12-512.png) no-repeat right center;
	background-size: 40px 37px;
}

select option {
	background-color: #fff;
	color: black;
}

select::-ms-expand {
	display: none;
}
*/

/* --------------------- FONT DEFINITIONS --------------------- */
/* Gilroy ExtraBold - peso 800 */
@font-face {
  font-family: "Gilroy";
  src:
    url("assets/fonts/gilroy/Gilroy-ExtraBold.woff2") format("woff2"),
    url("assets/fonts/gilroy/Gilroy-ExtraBold.ttf") format("truetype"),
    url("assets/fonts/gilroy/Gilroy-ExtraBold.otf") format("opentype");
  font-weight: 800; /* separado do Bold para o browser distinguir os dois */
  font-style: normal;
}

/* Gilroy Bold - peso 700 */
@font-face {
  font-family: "Gilroy";
  src:
    url("assets/fonts/gilroy/Gilroy-Bold.woff2") format("woff2"),
    url("assets/fonts/gilroy/Gilroy-Bold.ttf") format("truetype"),
    url("assets/fonts/gilroy/Gilroy-Bold.otf") format("opentype");
  font-weight: bold; /* equivale a 700 */
  font-style: normal;
}

/* Gilroy Medium - peso 500 */
@font-face {
  font-family: "Gilroy";
  src:
    url("assets/fonts/gilroy/Gilroy-Medium.woff2") format("woff2"),
    url("assets/fonts/gilroy/Gilroy-Medium.ttf") format("truetype"),
    url("assets/fonts/gilroy/Gilroy-Medium.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
}

/* Gilroy Regular - peso 400 */
@font-face {
  font-family: "Gilroy";
  src:
    url("assets/fonts/gilroy/Gilroy-Regular.woff2") format("woff2"),
    url("assets/fonts/gilroy/Gilroy-Regular.ttf") format("truetype"),
    url("assets/fonts/gilroy/Gilroy-Regular.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
}

h1,
h1 .split-title-part,
h1 .hero-phrase-part,
h2,
h2 .split-title-part,
h2 .ids-numeros-title {
  font-family: "Gilroy", sans-serif;
  color: var(--white-hero);
  font-size: 76.8px;
  font-weight: 400;
  line-height: normal;
}

h2,
h2 .split-title-part,
h2 .ids-numeros-title-part1 {
  color: var(--burgundy);
}

h3,
h4,
h5 {
  font-family: "Gilroy", sans-serif;
  color: var(--salmon);
  font-size: 48px;
  font-weight: 700;
  line-height: 96%;
}

p,
a,
label,
input,
select,
textarea,
option,
li,
/* span:not(.quicklinks span), */
span,
button {
  font-family: "Gilroy", sans-serif;
  resize: none;
  color: var(--grey-text);
  font-size: 28px;
  font-weight: 500;
  line-height: normal;
}

/* Exclusão do ::before que não podia viver dentro do :not() acima */
#to_top_scrollup span,
#to_top_scrollup::before {
  font-family: "dashicons";
}
p:not(.backgroundVideo p, header p) {
  margin-bottom: 18px;
}

/* --------------------- VARIABLES --------------------- */
:root {
  /* colors */
  --white-menu: #f3f3f3;
  --white-bg: #f5f4f0;
  --white-hero: #e9e8e8;
  --grey-text: #d0cfcf;
  --salmon: #ff7064;
  --black: #323232;
  --black-footer: #1e1e1e;
  --burgundy: #460f1c;
  --beige: #e4ded2;
  /* spacing */
  --header-height: 108px;
  --padding-inline: 40px;
  --padding-inline-new: 252px;
  --paddingVert: 128px;
  --container-width: 1440px;
  /* default */
  --compensateHeader: calc(var(--header-height) + 40px);
  --adminbar: 30px;
}

/* --------------------- UTILITY CLASSES --------------------- */
.noPadding {
  padding-left: 0;
  padding-right: 0;
}

.pagePaddings {
  padding-left: var(--padding-inline);
  padding-right: var(--padding-inline);
}

.pagePaddings-new {
  padding-left: var(--padding-inline-new);
  padding-right: var(--padding-inline-new);
}

.verticalPadding {
  padding-top: var(--paddingVert);
  padding-bottom: var(--paddingVert);
}
.mainHeroTopPadding {
  padding-top: var(--compensateHeader);
}
body:has(#wpadminbar) .mainHeroTopPadding {
  padding-top: calc(var(--compensateHeader) - var(--adminbar));
}
.pageHeroSection > .vc_column_container,
.pageHeroSection .vc_column-inner,
.pageHeroSection .wpb_wrapper {
  position: relative;
  z-index: 2;
}
.backgroundOverlay {
  content: "";
  position: absolute !important;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000000;
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.4) 0%,
    rgba(0, 0, 0, 0.4) 100%
  );
  z-index: 1 !important;
  pointer-events: none;
}

.backgroundOverlay.red {
  background: #5b0b2ce5;
  background: linear-gradient(90deg, #5b0b2cb8 0%, #5b0b2cb8 100%);
}

.backgroundOverlay .vc_column-inner {
  display: none !important;
}

.backgroundVideo
  *:not(
    .heroSectionContent,
    .heroSectionContent *,
    #heroFixedLogo,
    #heroFixedLogo *
  ) {
  height: 100%;
  overflow: hidden;
}

.backgroundVideo .vc_column-inner {
  padding: 0px !important;
}
.backgroundVideo .container-video {
  height: 100%;
  width: 100%;
}
.backgroundVideo .container-video video,
.backgroundVideo .container-video img {
  max-height: 100dvh;
  width: 100%;
  object-fit: cover;
  position: relative;
  display: block;
}

#main {
  min-height: 100vh;
  /* background-color: var(--beige); */
}
#to_top_scrollup {
  width: fit-content !important;
}
#to_top_scrollup img {
  width: 40px;
  height: 40px;
  transform: rotate(270deg);
}

/* --------------------- PROJECT-SPECIFIC RULES --------------------- */
/* Hide reCAPTCHA badge */
.grecaptcha-badge {
  visibility: hidden !important;
}

/* Hide WPML footer badge */
.otgs-development-site-front-end {
  display: none;
}

/* ==========================================================================
   BOTÕES - RESET E ESTILOS PERSONALIZADOS
   ========================================================================== */
/* botão principal amarelo */
/* button.mainButton,
.vc_btn3-container.mainButton a {
  font-family: "Gilroy", sans-serif;

  background-color: var(--orange);
  padding: 16px 20px;
  text-align: center;
  text-transform: uppercase;
  color: var(--salmon) !important;
  border: 1px solid var(--orange) !important;
  cursor: pointer;
  border-radius: 100px;
  background-color: rgba(255, 255, 255, 0.87);
  text-align: center;
  font-size: 14px;
  font-weight: 800;
  line-height: 14px;
  letter-spacing: 3.456px;
}

button.mainButton:hover,
.vc_btn3-container.mainButton a:hover,
.vc_btn3-container.mainButton a:focus,
.vc_btn3-container.mainButton a:active {
  background-color: var(--salmon) !important;
  color: var(--white-hero) !important;
} */

.mainButton {
  /* Botão circular com diâmetro fixo de 188px */
  width: 188px;
  height: 188px;
  border-radius: 50%;
  border: 2px solid var(--salmon);
  background: transparent;

  /* Necessário para conseguirmos posicionar a bolinha de forma absoluta e centrada */
  position: relative;
  transition: all 300ms linear;
  cursor: pointer;
}

.mainButton:hover {
  background: var(--salmon);
}

.button-text-wrapper {
  /* Texto e logo organizados em coluna, centrados horizontalmente */
  /* Bolinha central — position absolute garante que fica sempre no centro exacto do círculo,
       independentemente do tamanho do texto/logo por baixo */
  position: absolute;
  top: 70%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
}
.mainButton-dot {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: all 300ms linear;

  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--salmon);
}

.mainButton:hover .mainButton-dot {
  background: var(--white-hero);
}

.mainButton.mainButton .mainButton-text {
  font-size: 14px;
  font-weight: 800;
  line-height: 14px;
  letter-spacing: 3.456px;
  text-transform: uppercase;
  color: var(--salmon);
  transition: all 300ms linear;
  text-align: center;
  display: block;
}

.mainButton:hover .mainButton-text {
  color: var(--white-hero);
}

.mainButton.bigButton {
  width: 374px;
  height: 374px;
}

.mainButton.bigButton .mainButton-dot {
  width: 20px;
  height: 20px;
}

.mainButton.bigButton .mainButton-text {
  font-size: 28px;
  letter-spacing: 7px;
}

.mainButton.bigButton .button-text-wrapper {
  top: 73%;
}

.mainButton-logo {
  display: block;
  margin-top: 18px;
  margin-inline: auto;
  width: 118px;
  height: auto;
}

.mainButton-logo path {
  fill: #ff7064;
  transition: fill 300ms linear;
}

.mainButton:hover .mainButton-logo path {
  fill: #fff;
}
/* BOTAO DOS FORMS */
.quform .mainButton-dot {
  background-color: var(--burgundy);
}

.quform .mainButton {
  border: 1px solid var(--burgundy);
  width: calc(188px * 0.7);
  height: calc(188px * 0.7);
}
.quform .mainButton.mainButton .mainButton-text {
  color: var(--burgundy);
}

.quform .mainButton:hover .mainButton-text {
  color: var(--salmon);
}

.quform .mainButton:hover .mainButton-dot {
  background-color: var(--salmon);
}

.quform .mainButton:hover {
  background-color: rgba(255, 255, 255, 0.87);
}

/* ========================================================================== */
/*                            Header (header)                                 */
/* ========================================================================== */
.burger {
  display: none;
}
header {
  padding: 30px var(--padding-inline) 10px;
  position: fixed;
  width: 100%;
  top: 0px;
  left: 0px;
  z-index: 9990;
  transition: all 300ms linear;
}

header.header-colored {
  /* background-color: #00000026; */
  transition: all 300ms linear;
}

/* wrapper com elementos do header */
.wrapper-header {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  position: relative;
  z-index: 9999;
}
.headerMenuWrapper,
.headerMenuWrapper ul {
  display: flex;
  gap: 42px;
  align-items: center;
}

.headerMenuWrapper a,
.headerMenuWrapper span,
.headerMenuWrapper p {
  font-family: "Gilroy", sans-serif;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 3.75px;
  text-transform: uppercase;
  color: var(--white-menu);
}

.menu-above {
  display: none;
}

/* logo normal */
header a:has(.headerLogo) {
  position: absolute;
  left: calc((100% - var(--container-width)) / 2);
  /* top: 125px; */
  top: 7vw;
  transition: all 300ms linear;
  transform: translateY(-50%);
}

/* logo apos scroll */
body:has(.legalPage) header a:has(.headerLogo),
header.header-colored a:has(.headerLogo) {
  top: 0px;
  left: 0px;
  transform: translateY(-20%);
}

header .headerLogo {
  transition: all 300ms linear;
}
body:has(.legalPage) header .headerLogo,
header.header-colored .headerLogo {
  width: 131px;
  height: auto;
  object-fit: contain;
  transition: all 300ms linear;
}

header .headerLogo.is-dark {
  filter: contrast(0.5);
}
.wpcf7-spinner {
  display: none;
}

/* -------  hamburger menu - / floater menu */
.menu-mobile.menu-floater {
  position: fixed;
  right: 30px;
  top: 50%;
  transform: translateY(-50%);
}
.menu-floater--hidden {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.menu-mobile.menu-floater .fakeIdioma,
.menu-mobile.menu-floater .wpml-ls-legacy-list-horizontal {
  display: none;
}

.wpml-ls-legacy-list-horizontal {
  padding: 0px !important;
  border: unset !important;
}
.wpml-ls-legacy-list-horizontal a {
  padding: 0px !important;
}
.wpml-ls-legacy-list-horizontal .wpml-ls-first-item::after,
.wpml-ls-legacy-list-horizontal a span {
  font-size: 15px;
  font-weight: 300;
  line-height: 122%; /* 18.394px */
  letter-spacing: 3.75px;
  color: var(--grey-text);
}
.wpml-ls-legacy-list-horizontal .wpml-ls-current-language a span {
  color: var(--salmon);
  font-weight: 700;
}
.wpml-ls-legacy-list-horizontal .wpml-ls-first-item,
.wpml-ls-legacy-list-horizontal ul {
  display: flex;
  align-items: center;
  flex-direction: row-reverse;
  gap: 10px;
}

.wpml-ls-legacy-list-horizontal .wpml-ls-first-item::after {
  content: "|";
}

.menu-mobile.menu-floater ul {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-end;
}

.menu-mobile.menu-floater ul li {
  font-size: unset;
  font-weight: 800;
  line-height: unset;
}

.menu-mobile.menu-floater ul a {
  color: var(--white-menu);
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  position: relative;
  transition:
    color 300ms linear,
    font-size 300ms linear;
  /* text-shadow: 0px 1px 1px #4e4e4ea6; */
}

.menu-mobile.menu-floater ul a::before {
  content: "";
  background-color: transparent;
  border-radius: 100px;
  width: 6px;
  height: 6px;
  position: absolute;
  left: -12px;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: all 300ms linear;
  text-shadow: 0px 1px 3px #4e4e4ea6;
}

/* Hover — a font cresce enquanto o rato está em cima (via transition normal,
   volta ao tamanho original ao sair) */
.menu-mobile.menu-floater ul a:hover {
  color: var(--salmon) !important;
  font-size: 15px;
}

/* Active — cor persistente + pulso de crescimento (cresce e volta ao
   tamanho normal), disparado sempre que a classe é adicionada */
.menu-mobile.menu-floater ul a.active {
  color: var(--salmon) !important;
  animation: menuActiveGrow 800ms linear;
}

.menu-mobile.menu-floater ul a:hover::before,
.menu-mobile.menu-floater ul a.active::before {
  background-color: var(--salmon);
}

@keyframes menuActiveGrow {
  0% {
    font-size: 11px;
  }
  50% {
    font-size: 15px;
  }
  100% {
    font-size: 11px;
  }
}

.menu-mobile.menu-floater.is-dark ul a {
  color: #c2c2c2;
}

/* ========================================================================== */
/*                    Header New Website (header)                             */
/* ========================================================================== */
/* wrapper com elementos do header */
.wrapper-header-new {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  z-index: 9999;
}
.headerMenuWrapper-new,
.headerMenuWrapper-new ul {
  display: flex;
  gap: 42px;
  align-items: center;
}

.headerMenuWrapper-new a,
.headerMenuWrapper-new span,
.headerMenuWrapper-new p {
  font-family: "Gilroy", sans-serif;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 3.75px;
  text-transform: uppercase;
  color: var(--white-menu);
}

/* logo normal */
header a:has(.headerLogo) {
  position: absolute;
  left: calc((100% - var(--container-width)) / 2);
  /* top: 125px; */
  top: 7vw;
  transition: all 300ms linear;
  transform: translateY(-50%);
}

header .headerLogo-new {
  transition: all 300ms linear;
}
/* ===== Menu mobile (novo header) — escondido no desktop ===== */
.menu-mobile-new {
  display: none;
}
/* ===== Menu principal (novo header) ===== */
ul.main-menu-novo {
  /* Valores base */
  --menu-gap: 10px;
  --menu-pad-top: 18px;
  --menu-pad-inline: 29px;
  --submenu-gap: 32px;
  --submenu-offset: 22px; /* espaço entre o pai e o submenu */
  --menu-radius: 50px;
  --menu-border: 1px solid var(--salmon); /* cor da border: ajustar se necessário */
  --menu-draw: 0.35s; /* duração do "desenho" de cada linha */
  --menu-out: 0.2s; /* duração do fade ao sair */

  display: flex;
  align-items: flex-start;
  gap: var(--menu-gap);
  margin: 0;
  padding: 0;
  list-style: none;
  margin-top: calc(var(--menu-pad-top) * -1);
}

/* Opção pai — border transparente mantém as medidas; a linha visível é o ::after */
/* Opção pai — border transparente mantém as medidas; a linha visível é o ::after */
ul.main-menu-novo > li {
  position: relative;
  padding-top: var(--menu-pad-top);
  padding-inline: var(--menu-pad-inline);
  border: 1px solid transparent;
  border-bottom: 0;
  border-radius: var(--menu-radius) var(--menu-radius) 0 0;
}

/* Linha do pai — desenha de baixo para cima (laterais primeiro, curva do topo no fim) */
ul.main-menu-novo > li::after {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: 0;
  border: var(--menu-border);
  border-bottom: 0;
  border-radius: var(--menu-radius) var(--menu-radius) 0 0;
  pointer-events: none;
  opacity: 0;
  clip-path: inset(100% 0 0 0);
  /* Ao sair: fade e só depois repõe o clip (sem desenhar ao contrário) */
  transition:
    opacity var(--menu-out) ease,
    clip-path 0s linear var(--menu-out);
}

ul.main-menu-novo > li:hover::after,
ul.main-menu-novo > li:focus-within::after {
  opacity: 1;
  clip-path: inset(0 0 0 0);
  transition:
    opacity 0s,
    clip-path var(--menu-draw) ease-out;
}

ul.main-menu-novo > li > a {
  display: block;
  color: inherit;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.3s ease;
}

/* Hover / foco no pai: texto salmon */
ul.main-menu-novo > li:hover > a,
ul.main-menu-novo > li:focus-within > a {
  color: var(--salmon);
}

/* ===== Submenu ===== */
/* Afastado do pai pelo top (em vez de margin) para o espaço poder ter a "ponte" */
/* Largura = pai (left/right -1px incluem as borders do pai) — nunca maior */
ul.main-menu-novo .sub-menu {
  position: absolute;
  top: calc(100% + var(--submenu-offset));
  left: -1px;
  right: -1px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--submenu-gap);
  margin: 0;
  padding-top: var(--menu-pad-top);
  padding-inline: var(--menu-pad-inline);
  padding-bottom: var(--menu-pad-top); /* necessário por causa do radius */
  list-style: none;
  border: 1px solid transparent; /* mantém as medidas; a linha visível é o ::after */
  border-top: 0;
  border-radius: 0 0 var(--menu-radius) var(--menu-radius);
  /* background: var(--black); — descomentar se precisares de fundo por cima do conteúdo */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  /* Ao sair: fade rápido de tudo */
  transition:
    opacity var(--menu-out) ease,
    visibility 0s linear var(--menu-out);
  z-index: 10;
}

ul.main-menu-novo > li:hover > .sub-menu,
ul.main-menu-novo > li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition:
    opacity 0s,
    visibility 0s;
}

/* Ponte invisível que preenche o espaço entre o pai e o submenu — mantém o hover ativo */
ul.main-menu-novo .sub-menu::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: var(--submenu-offset);
}

/* Linha do submenu — desenha de cima para baixo (laterais primeiro, curva de baixo no fim) */
ul.main-menu-novo .sub-menu::after {
  content: "";
  position: absolute;
  top: 0;
  left: -1px;
  right: -1px;
  bottom: -1px;
  border: 1px solid var(--white-menu); /* linha do submenu em branco (a do pai mantém salmon) */
  border-top: 0;
  border-radius: 0 0 var(--menu-radius) var(--menu-radius);
  pointer-events: none;
  clip-path: inset(0 0 100% 0);
  /* Repõe o clip só depois do fade do submenu */
  transition: clip-path 0s linear var(--menu-out);
}

/* Começa ligeiramente antes do pai terminar, para parecer uma linha contínua */
ul.main-menu-novo > li:hover > .sub-menu::after,
ul.main-menu-novo > li:focus-within > .sub-menu::after {
  clip-path: inset(0 0 0 0);
  transition: clip-path var(--menu-draw) ease-out calc(var(--menu-draw) * 0.85);
}

/* ===== Opções do submenu — entrada em sequência ===== */
ul.main-menu-novo .sub-menu > li {
  opacity: 0;
  translate: 0 8px;
  /* Repõe o estado inicial só depois do fade do submenu */
  transition:
    opacity 0s linear var(--menu-out),
    translate 0s linear var(--menu-out);
}

ul.main-menu-novo > li:hover > .sub-menu > li,
ul.main-menu-novo > li:focus-within > .sub-menu > li {
  opacity: 1;
  translate: 0 0;
  transition:
    opacity 0.3s ease var(--item-delay, 0.5s),
    translate 0.3s ease var(--item-delay, 0.5s);
}

/* Atraso de cada opção (0.05s entre elas) */
ul.main-menu-novo .sub-menu > li:nth-child(1) {
  --item-delay: 0.5s;
}
ul.main-menu-novo .sub-menu > li:nth-child(2) {
  --item-delay: 0.55s;
}
ul.main-menu-novo .sub-menu > li:nth-child(3) {
  --item-delay: 0.6s;
}
ul.main-menu-novo .sub-menu > li:nth-child(4) {
  --item-delay: 0.65s;
}
ul.main-menu-novo .sub-menu > li:nth-child(5) {
  --item-delay: 0.7s;
}

/* Quebra de linha só entre palavras — nunca a meio de uma palavra */
ul.main-menu-novo .sub-menu a {
  display: block;
  color: #f3f3f3;
  text-decoration: none;
  font-size: 11px;
  line-height: 1.3;
  font-weight: 300;
  letter-spacing: 2.75px;
  white-space: normal;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
  transition: all 0.3s ease;
}

/* Reserva a largura da versão bold (texto do title, invisível e sem altura) — evita salto no hover */
/* Reserva do bold desativada — com texto em várias linhas não funciona corretamente */
ul.main-menu-novo .sub-menu a::after {
  display: none;
}
ul.main-menu-novo .sub-menu a:hover {
  color: #f3f3f3;
  font-weight: 800;
}

/* aqui */

/* ========================================================================== */
/*                            Footer (footer)                                 */
/* ========================================================================== */
footer * {
  font-family: "Gilroy", sans-serif;
  color: var(--grey-text);
}
footer {
  position: relative;
  background-color: var(--black-footer);
  padding-inline: var(--padding-inline);
  padding-block: 54px 20px;
}
.footerWrapper {
  max-width: var(--container-width);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.footer-top,
.footer-middle {
  display: flex;
  justify-content: space-between;
  gap: 0px;
}

.footer-top {
  margin-bottom: 0px;
}

.newsletter-wrapper {
  padding-inline: var(--padding-inline);
  padding-bottom: var(--paddingVert);
  display: flex;
  align-items: center;
  justify-content: center;
}
.footer-top a {
  display: block;

  margin-top: 50px;
}
.footer-text {
  margin-bottom: 10px;
  max-width: 415px;
  margin-bottom: 0px !important;
  margin-block: 50px !important;
}
.footer-text,
.copyright {
  color: var(--grey-text);
  font-size: 15px;
  font-weight: 400;
  line-height: normal;
}
.footer-rightside {
  /* display: flex;
  flex-direction: column;
  gap: 20px; */

  display: flex;
  flex-direction: row-reverse;
  gap: 80px;
  width: fit-content;
  margin-left: auto;
}
.footer-contactos-wrapper {
  margin-top: auto;
}
.contact-address p {
  color: var(--grey-text);
  font-size: 20px;
  font-weight: 400;
  line-height: normal;
  max-width: 300px;
}

.contact-email.contact-address p {
  font-weight: 700;
}
.f-menu-legal li {
  line-height: unset;
  font-size: unset;
  font-weight: unset;
}

.f-menu-legal a {
  color: #cfcfcf;
  font-size: 10px;
  font-weight: 400;
  line-height: 116.122%; /* 11.612px */
  letter-spacing: 2.5px;
}

ul.f-menu-legal {
  display: flex;
  gap: 10px;
}

.social-icons {
  display: flex;
  gap: 23px;
  margin-bottom: 54px;
}

/* Por defeito (desktop): mostra a versão normal, esconde a duplicada */
.footer-middle-left--mobile {
  display: none;
}

/* ------------------ POPUPP CONTACTOS ------------------- */
.bspacy-forms-popup {
  position: fixed;
  top: 50%;
  right: var(--padding-inline);
  transform: translate(150%, -50%);
  z-index: 9999;
  display: block;
  transition: all 500ms linear;
}

.bspacy-forms-popup.is-open {
  transform: translate(0%, -50%);
  transition: all 500ms linear;
}

.bspacy-forms-box {
  background-color: var(--salmon);
  border-radius: 5px;
  padding-top: 118px;
  padding-inline: 81px;
  padding-bottom: 81px;
  max-height: 85vh;
  max-width: 932px;
  overflow-y: auto;
}

.bspacy-forms-close {
  position: absolute;
  top: 20px;
  right: 20px;
  padding: 0px;
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  cursor: pointer;
  color: var(--black-footer);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Só o formulário activo fica visível — os outros ficam sempre no HTML,
   só escondidos, para não haver "flash" de conteúdo a trocar */
.bspacy-forms-content {
  display: none;
}

.bspacy-forms-content.is-active {
  display: block;
}

.menu-mobile.menu-floater {
  transition:
    top 0.3s ease,
    transform 0.3s ease;
}

/* ========================================================================== */
/*                             	Legal Pages    		                          */
/* ========================================================================== */
.legalPage {
  padding: var(--padding-inline);
  padding-bottom: 100px;
  padding-top: calc(var(--header-height) + 20px);
}

.legalPage .vc_column-inner {
  max-width: var(--container-width);
  margin-inline: auto;
}
.legalPage h1 {
  color: var(--black);
  /* margin-top: 0px; */
}
.legalPage h2 {
  font-size: 32px;
  color: var(--black);
  line-height: 42px;
  margin-inline: 0px 0px;
  margin-block: 24px 12px;
}

.legalPage p,
.legalPage a,
.legalPage li,
.legalPage span {
  color: var(--black) !important;
  font-size: 18px !important;
  line-height: 1.4;
}

/* ========================================================================== */
/*                      Hero Section (hero-section)                          */
/* ========================================================================== */
.hero-section {
  position: relative;
}

.hero-section .hero-phrases-pin-wrapper {
  padding-left: var(--padding-inline);
}

/* ========================================================================== */
/*                 Quem Somos Section (quem-somos-section)                    */
/* ========================================================================== */

.quem-somos-section > div > div > .wpb_wrapper {
  position: relative;
  /* V-PIN - comentar */
  /* min-height: 100vh; */
  display: flex;
  align-items: center;
}

.quem-somos-image-anchor {
  position: absolute;
  /* ORIGINAL */
  /* top: 50%; */
  top: 25%; /*V PIN */
  left: calc(50% - 40px);
  transform: translate(-100%, -50%);
  width: 400px;
  height: calc(400px * 357 / 512);
  visibility: hidden;
}

.sliding-image-wrapper {
  position: fixed;
  top: 50%;
  left: 0;
  transform: translateX(-95%) translateY(-50%);
  width: 400px;
  z-index: 20;
}

.sliding-image-wrapper svg {
  width: 100%;
  height: auto;
  display: block;
}

.quem-somos-section .vc_row {
  width: 100%;
  max-width: var(--container-width);
  margin-inline: auto;
}
/* lado com texto */
.quem-somos-section
  .vc_row
  .wpb_column:nth-child(2)
  .wpb_text_column:nth-child(2) {
  max-width: 622px;
}

.quem-somos-section h2 {
  padding-right: 160px;
}
.quem-somos-section
  .vc_row
  .wpb_column:nth-child(2)
  .wpb_text_column:nth-child(1)
  p {
  margin-bottom: 15px;
}
/* bold do texto */
.quem-somos-section .vc_row .wpb_column:nth-child(2) {
  /* V-PIN - comentar */
  transform: translateY(calc(50% - 15px));
}

.quem-somos-section .vc_row {
  /* V-PIN - comentar */
  transform: translateY(-25%);
}

#grupo-ids {
  /* padding-top: 100px !important;
  margin-bottom: 100px !important; */
  padding-block: var(--paddingVert);
}

/* ========================================================================== */
/*              Identificamos Section (identificamos-section)                */
/* ========================================================================== */
.complexSection {
  z-index: 9991;
  position: relative;
  background-color: var(--white-bg);
  margin-top: var(--paddingVert);
}
.identificamos-section {
  /* color: var(--black); */
}

/* .bola-a-wrapper {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  pointer-events: none; 
}

.bola-a-circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background-color: var(--salmon);
  transition:
    width 500ms ease,
    height 500ms ease,
    background-color 500ms ease;
} */

/* ========================================================================== */
/*                Experiência Section (experiencia-section)                   */
/* ========================================================================== */
.experiencia-section {
  position: relative;
  z-index: 2;
}

/* ========================================================================== */
/*                     Porquê Section (porque-section)                       */
/* ========================================================================== */
.porque-section {
  /* background-color: #fff; */
}
/* ========================================================================== */
/*             Áreas de Negócio Section (areas-negocio-section)              */
/* ========================================================================== */

.areas-negocio-section .vc_column-inner {
  max-width: var(--container-width);
  margin-inline: auto;
}
.areas-negocio-section .vc_custom_heading {
  margin-bottom: 40px;
}

.quem-somos-section .bold span,
.areas-negocio-section .bold span {
  font-weight: 700;
}

.areas-negocio-section .wpb_text_column.bold {
  margin-bottom: 8px !important;
}

.areas-negocio-section
  > .wpb_column
  > .vc_column-inner
  > .wpb_wrapper
  > .wpb_text_column {
  max-width: 662px;
}

/* ========================================================================== */
/*         Projetos em Destaque Section (projetos-destaque-section)          */
/* ========================================================================== */

.projetos-destaque-section .vc_custom_heading {
  max-width: var(--container-width);
  margin-inline: auto;
  margin-bottom: 10px;
  padding-left: 40px;
}
/* ========================================================================== */
/*            Sustentabilidade Section (sustentabilidade-section)            */
/* ========================================================================== */

.sustentabilidade-section h2 {
  margin-bottom: 20px;
}

.sustentabilidade-section .vc_column-inner > .wpb_wrapper {
  max-width: var(--container-width);
  margin-inline: auto;
}
.wpb_text_column.bigger-p p,
.wpb_text_column.bigger-p p span {
  font-size: 32px;
  font-weight: 400;
  line-height: normal;
}

.sustentabilidade-section .vc_row {
  margin-top: 70px;
}

.sustentabilidade-section .vc_row .wpb_column:nth-child(1) .vc_column-inner {
  max-width: 645px;
}
/* col com imagens */
.sustentabilidade-section
  .vc_row
  .wpb_column:nth-child(2)
  .vc_column-inner
  > div {
  display: flex;
  gap: 80px;
  align-items: center;
}

.sustentabilidade-section .vc_row .wpb_column:nth-child(2) img {
  max-height: 116px;
  width: auto;
  transition: transform 300ms ease; /* opcional — suaviza a mudança entre breakpoints */
}
.sustentabilidade-section .basicButton:hover a,
.sustentabilidade-section .basicButton:focus a,
.sustentabilidade-section .basicButton a {
  border: unset !important;
  outline: unset !important;
  background-color: unset !important;
  color: var(--salmon) !important;
  padding: 0px !important;
  margin-top: 30px;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: 3.456px;
}

/* ========================================================================== */
/*         Notícias em Destaque Section (noticias-destaque-section)          */
/* ========================================================================== */

.noticias-destaque-section .vc_custom_heading {
  max-width: var(--container-width);
  margin-inline: auto;
  margin-bottom: 40px;
  color: var(--burgundy);
  padding-left: 40px;
}

/* ========================================================================== */
/*                                  NOVA HOMEPAGE                             */
/* ========================================================================== */

/* ================================================= */
/*        Substancia Section (substancia-section)    */
/* ================================================= */
.substancia-section .vc_column-inner {
  padding-inline: calc(var(--padding-inline-new) + 15px) !important;
  padding-block: 20px !important;
}

.text-vertical .split-title-wrapper {
  display: flex;
  flex-direction: column;
}

.substancia-section .split-title-wrapper .split-title-part:nth-child(1) {
  color: var(--white-bg);
}
.substancia-section .split-title-wrapper .split-title-part {
  line-height: 1;
}

.substancia-section .wpb_text_column {
  max-width: 542px;
  margin-top: 60px;
}

.substancia-section .wpb_text_column p {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: 125%;
}

/* ================================================= */
/*        Dimensoes Section (dimensoes-section)      */
/* ================================================= */

.dimensoes-section .wpb_text_column {
  max-width: 720px;
  margin-inline: auto;
  margin-top: 40px;
}

/****************************** MEDIA QUERIES ************************************/
/* PARA ECRAS 4k - criar container para nao ir para as pontas */
@media (min-width: 2100px) {
  :root {
    --bigpage-container: 1420px;
    --padding-inline: calc((100% - var(--bigpage-container)) / 2);
  }
  /* colocar esta classe onde quiser limitar o crescimento em divs genéricas */
  .bigscreen-limit {
    max-width: var(--bigpage-container);
    margin-inline: auto;
  }
  /*Colocar esta classe nas rows principais das páginas para forçar o container*/
  .vc_row_bigscreen-limit {
    padding-left: calc((100% - var(--bigpage-container)) / 2);
    padding-right: calc((100% - var(--bigpage-container)) / 2);
    box-sizing: border-box;
  }
  .menu-mobile.menu-floater {
    /* transform: translate(calc(100% + 30px), -50%);
    right: calc((100% - var(--container-width)) / 2); */
  }

  .bspacy-forms-popup {
    /* display: none; */
    right: 0px;
    /* transform: translate(150%, -50%); */
  }
}

/* Intermédio 2 */
@media print, screen and (max-width: 1750px) {
  :root {
    /* spacing */
    --padding-inline-new: 190px;
    --paddingVert: 100px;
    --container-width: 1200px;
  }

  h1,
  h1 .split-title-part,
  h1 .hero-phrase-part,
  h2,
  h2 .split-title-part,
  h2 .ids-numeros-title {
    font-size: 60px;
  }

  h3,
  h4,
  h5 {
    font-size: 32px;
  }

  p,
  a,
  label,
  input,
  select,
  textarea,
  option,
  li,
  /* span:not(.quicklinks span), */
  span,
  button {
    font-size: 20px;
  }

  .legalPage h2 {
    font-size: 28px;
    line-height: 1.4;
  }

  .mainButton {
    width: calc(188px * 0.9);
    height: calc(188px * 0.9);
  }

  .mainButton.mainButton .mainButton-text {
    font-size: 12px;
    letter-spacing: 2.4px;
  }

  .mainButton-logo {
    width: calc(59px * 0.9);
    height: calc(15px * 0.9);
  }

  /* big button ---- */
  .mainButton.bigButton {
    width: calc(374px * 0.9);
    height: calc(374px * 0.9);
  }

  .mainButton.bigButton .mainButton-dot {
    width: calc(20px * 0.9);
    height: calc(20px * 0.9);
  }

  .mainButton.bigButton .mainButton-text {
    font-size: calc(28px * 0.9);
    letter-spacing: calc(7px * 0.9);
  }

  .mainButton.bigButton .mainButton-logo {
    width: calc(118px * 0.9);
    height: auto;
  }

  /* .mainButton.bigButton .button-text-wrapper {
    top: 73%;
  } */

  /* ========================================================================== */
  /*                            Header (header)                                 */
  /* ========================================================================== */
  /* logo normal */
  header a:has(.headerLogo) {
    top: 5vw;
  }
  header .headerLogo {
    width: calc(157px * 0.8);
    height: auto;
    object-fit: contain;
  }

  /* -------  hamburger menu - / floater menu */

  .menu-mobile.menu-floater ul {
    gap: 9px;
  }

  /* Gap entre menu, idioma e burger */
  .headerMenuWrapper-new,
  .headerMenuWrapper-new ul {
    gap: calc(42px * 0.9);
  }

  /* Texto das opções pai, idioma, etc. */
  .headerMenuWrapper-new a,
  .headerMenuWrapper-new span,
  .headerMenuWrapper-new p {
    font-size: calc(15px * 0.9);
    letter-spacing: calc(3.75px * 0.9);
  }

  header .headerLogo-new {
    width: calc(157px * 0.9);
    height: auto;
  }

  ul.main-menu-novo {
    --menu-gap: calc(10px * 0.9);
    --menu-pad-top: calc(18px * 0.9);
    --menu-pad-inline: calc(29px * 0.9);
    --submenu-gap: calc(32px * 0.9);
    --submenu-offset: calc(22px * 0.9);
    --menu-radius: calc(50px * 0.9);
  }

  ul.main-menu-novo .sub-menu a {
    font-size: calc(11px * 0.9);
    letter-spacing: calc(2.75px * 0.9);
  }

  /* ========================================================================== */
  /*             Áreas de Negócio Section (areas-negocio-section)              */
  /* ========================================================================== */

  .areas-negocio-section
    > .wpb_column
    > .vc_column-inner
    > .wpb_wrapper
    > .wpb_text_column {
    max-width: 470px;
  }

  /* ========================================================================== */
  /*         Projetos em Destaque Section (projetos-destaque-section)          */
  /* ========================================================================== */
  .projetos-destaque-section .vc_custom_heading {
    padding-left: 30px;
  }
  /* ========================================================================== */
  /*            Sustentabilidade Section (sustentabilidade-section)            */
  /* ========================================================================== */
  .sustentabilidade-section h2 {
    margin-bottom: 10px;
  }

  .wpb_text_column.bigger-p p,
  .wpb_text_column.bigger-p p span {
    font-size: 24px;
  }

  .sustentabilidade-section .vc_row {
    margin-top: 50px;
  }

  .sustentabilidade-section .vc_row .wpb_column:nth-child(1) .vc_column-inner {
    max-width: 470px;
  }
  /* col com imagens */
  .sustentabilidade-section
    .vc_row
    .wpb_column:nth-child(2)
    .vc_column-inner
    > div {
    gap: 40px;
  }

  .sustentabilidade-section .vc_row .wpb_column:nth-child(2) img {
    transform: scale(0.9); /* reduz para 80% do tamanho original */
    transform-origin: left center;
  }

  /* ========================================================================== */
  /*         Notícias em Destaque Section (noticias-destaque-section)          */
  /* ========================================================================== */

  .noticias-destaque-section .vc_custom_heading {
    margin-bottom: 40px;
    padding-left: 30px;
  }

  /* --------------------- FORM COMPONENTS --------------------- */

  .quform textarea {
    height: 100px !important;
  }

  /* ------------------ POPUPP CONTACTOS ------------------- */

  .bspacy-forms-box {
    padding-top: 60px;
    padding-inline: 60px;
    padding-bottom: 60px;
    max-width: calc(932px * 0.8);
  }

  .bspacy-forms-close {
    top: 20px;
    right: 20px;
    padding: 0px;
    width: 36px;
    height: 36px;
  }

  .quform .mainButton {
    border: 1px solid var(--burgundy);
    width: calc(188px * 0.6);
    height: calc(188px * 0.6);
  }

  .quform .mainButton-dot {
    width: 5px;
    height: 5px;
  }

  /* ========================================================================== */
  /*                                  NOVA HOMEPAGE                             */
  /* ========================================================================== */

  /* ================================================= */
  /*        Substancia Section (substancia-section)    */
  /* ================================================= */
  .substancia-section .wpb_text_column {
    max-width: 490px;
    margin-top: 30px;
  }

  .substancia-section .wpb_text_column p {
    font-size: 18px;
  }
}

@media print, screen and (max-width: 1550px) {
  :root {
    --container-width: 950px;
    --padding-inline-new: 140px;
  }

  h1,
  h1 .split-title-part,
  h1 .hero-phrase-part,
  h2,
  h2 .split-title-part,
  h2 .ids-numeros-title {
    font-size: 50px;
  }

  h3,
  h4,
  h5 {
    font-size: 26px;
  }

  p,
  a,
  label,
  input,
  select,
  textarea,
  option,
  li,
  /* span:not(.quicklinks span), */
  span,
  button {
    font-size: 18px;
  }

  .legalPage h2 {
    font-size: 26px;
    line-height: 1.4;
  }
  .legalPage p,
  .legalPage a,
  .legalPage li,
  .legalPage span {
    font-size: 16px !important;
  }

  .mainButton {
    width: calc(188px * 0.8);
    height: calc(188px * 0.8);
  }

  .mainButton.mainButton .mainButton-text {
    font-size: 11px;
    letter-spacing: 2.4px;
  }

  .mainButton-logo {
    width: calc(59px * 0.8);
    height: calc(15px * 0.8);
  }

  /* big button ---- */
  .mainButton.bigButton {
    width: calc(374px * 0.8);
    height: calc(374px * 0.8);
  }

  .mainButton.bigButton .mainButton-dot {
    width: calc(20px * 0.8);
    height: calc(20px * 0.8);
  }

  .mainButton.bigButton .mainButton-text {
    font-size: calc(28px * 0.8);
    letter-spacing: calc(7px * 0.8);
  }

  .mainButton.bigButton .mainButton-logo {
    width: calc(118px * 0.8);
    height: auto;
  }

  /* ========================================================================== */
  /*                            Header (header)                                 */
  /* ========================================================================== */
  /* -------  hamburger menu - / floater menu */
  .menu-mobile.menu-floater {
    /* position: fixed;
  right: var(--padding-inline);
  top: 50%;
  transform: translateY(-50%); */
  }

  .menu-mobile.menu-floater ul {
    gap: 10px;
  }

  .headerMenuWrapper-new,
  .headerMenuWrapper-new ul {
    gap: calc(42px * 0.75);
  }

  .headerMenuWrapper-new a,
  .headerMenuWrapper-new span,
  .headerMenuWrapper-new p {
    font-size: calc(15px * 0.75);
    letter-spacing: calc(3.75px * 0.75);
  }

  header .headerLogo-new {
    width: calc(157px * 0.75);
  }

  ul.main-menu-novo {
    --menu-gap: calc(10px * 0.75);
    --menu-pad-top: calc(18px * 0.75);
    --menu-pad-inline: calc(29px * 0.75);
    --submenu-gap: calc(32px * 0.75);
    --submenu-offset: calc(22px * 0.75);
    --menu-radius: calc(50px * 0.75);
  }

  ul.main-menu-novo .sub-menu a {
    font-size: calc(11px * 0.75);
    letter-spacing: calc(2.75px * 0.75);
  }
  /* ========================================================================== */
  /*                            Footer (footer)                                 */
  /* ========================================================================== */

  .contact-address p {
    font-size: 17px;
  }

  /* ========================================================================== */
  /*                      Hero Section (hero-section)                          */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                 Quem Somos Section (quem-somos-section)                    */
  /* ========================================================================== */

  .quem-somos-image-anchor {
    left: calc(50% - 40px);
    width: 300px;
    height: calc(300px * 357 / 512);
  }
  .sliding-image-wrapper {
    width: 300px; /* tem de bater certo com a largura da âncora nesse breakpoint */
  }

  /* lado com texto */
  .quem-somos-section
    .vc_row
    .wpb_column:nth-child(2)
    .wpb_text_column:nth-child(2) {
    max-width: 400px;
  }

  .quem-somos-section h2 {
    padding-right: 140px;
  }
  /* bold do texto */
  .quem-somos-section .vc_row .wpb_column:nth-child(2) {
    transform: translateY(calc(50% - 10px));
  }

  /* ========================================================================== */
  /*              Identificamos Section (identificamos-section)                */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                Experiência Section (experiencia-section)                   */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                     Porquê Section (porque-section)                       */
  /* ========================================================================== */

  /* ========================================================================== */
  /*             Áreas de Negócio Section (areas-negocio-section)              */
  /* ========================================================================== */
  .areas-negocio-section .vc_custom_heading {
    margin-bottom: 10px;
  }

  .areas-negocio-section
    > .wpb_column
    > .vc_column-inner
    > .wpb_wrapper
    > .wpb_text_column {
    max-width: 430px;
  }

  /* ========================================================================== */
  /*            Sustentabilidade Section (sustentabilidade-section)            */
  /* ========================================================================== */

  .wpb_text_column.bigger-p p,
  .wpb_text_column.bigger-p p span {
    font-size: 20px;
  }

  /* .sustentabilidade-section .vc_row {
    margin-top: 50px;
  } */

  .sustentabilidade-section .vc_row .wpb_column:nth-child(1) .vc_column-inner {
    max-width: 420px;
  }
  /* col com imagens */
  .sustentabilidade-section
    .vc_row
    .wpb_column:nth-child(2)
    .vc_column-inner
    > div {
    gap: 40px;
  }

  .sustentabilidade-section .vc_row .wpb_column:nth-child(2) img {
    transform: scale(0.8); /* reduz para 80% do tamanho original */
    transform-origin: left center;
  }

  /* ========================================================================== */
  /*         Notícias em Destaque Section (noticias-destaque-section)          */
  /* ========================================================================== */
  .noticias-destaque-section .vc_custom_heading {
    margin-bottom: 20px;
    /* padding-left: 30px; */
  }

  /* ========================================================================== */
  /*                                  NOVA HOMEPAGE                             */
  /* ========================================================================== */
}

@media only screen and (max-width: 1440px) {
  :root {
    --header-height: 66px;
    --paddingVert: 80px;
    --padding-inline-new: 100px;
  }
  /* ========================================================================== */
  /*                            Header (header)                                 */
  /* ========================================================================== */
  header {
    padding: 24px var(--padding-inline);
  }

  /* logo normal */
  header a:has(.headerLogo) {
    top: 70px;
  }
  header .headerLogo {
    width: calc(157px * 0.7);
  }

  .menu-mobile.menu-floater ul a {
    font-size: 10px;
    letter-spacing: 2.1px;
  }

  .menu-mobile.menu-floater ul a:hover {
    font-size: 13px;
  }

  .menu-mobile.menu-floater ul a.active {
    animation: menuActiveGrow1750 800ms linear;
  }

  @keyframes menuActiveGrow1750 {
    0% {
      font-size: 10px;
    }
    50% {
      font-size: 13px;
    }
    100% {
      font-size: 10px;
    }
  }

  .menu-mobile.menu-floater ul {
    gap: 5px;
  }
  .mainButton {
    width: calc(188px * 0.7);
    height: calc(188px * 0.7);
  }

  .mainButton.mainButton .mainButton-text {
    font-size: 10px;
    letter-spacing: 2.4px;
  }

  .mainButton-logo {
    width: calc(59px * 0.7);
    height: calc(15px * 0.7);
  }

  /* big button ---- */
  .mainButton.bigButton {
    width: calc(374px * 0.7);
    height: calc(374px * 0.7);
  }

  .mainButton.bigButton .mainButton-dot {
    width: calc(20px * 0.7);
    height: calc(20px * 0.7);
  }

  .mainButton.bigButton .mainButton-text {
    font-size: calc(28px * 0.7);
    letter-spacing: calc(7px * 0.7);
  }

  .mainButton.bigButton .mainButton-logo {
    width: calc(118px * 0.7);
    height: auto;
  }

  .mainButton.porque-ids-manifesto-btn {
    width: 180px;
    height: 180px;
  }
  .menu-mobile.menu-floater ul a::before {
    content: "";
    background-color: transparent;
    border-radius: 100px;
    width: 4px;
    height: 4px;
    position: absolute;
    left: -10px;
    top: 50%;
    transform: translate(-50%, -50%);
    transition: all 300ms linear;
    text-shadow: 0px 1px 3px #4e4e4ea6;
  }
  /* ========================================================================== */
  /*                                  NOVA HOMEPAGE                             */
  /* ========================================================================== */
}

/* Media query para menu hamburger */
@media print, screen and (max-width: 1250px) {
  /* ========================================================================== */
  /*                            Header (header)                                 */
  /* ========================================================================== */
  .wrapper-header {
    justify-content: space-between;
  }
  /* logo normal */
  header a:has(.headerLogo) {
    position: relative;
    left: unset;
    top: unset !important;
    top: 7vw;
    transition: all 300ms linear;
    transform: unset;
  }

  .main-menu-wrapper,
  .wpml-ls-legacy-list-horizontal:not(
    .menu-mobile.menu-floater .wpml-ls-legacy-list-horizontal
  ) {
    display: none;
  }
  .menu-mobile.menu-floater .wpml-ls-legacy-list-horizontal {
    display: block;
  }

  .menu-mobile .fakeIdioma {
    color: var(--white-hero);
    font-size: 18px;
    line-height: 1;
  }

  /* MENU NORMAL */

  .burger {
    display: block;
    cursor: pointer;
  }

  .burger-dot {
    transition:
      transform 400ms ease,
      fill 400ms ease;
    transform-origin: center;
    transform-box: fill-box; /* essencial em SVG — sem isto, transform-origin não funciona */
  }

  /* menu mobile */
  .menu-mobile.menu-floater {
    display: block;
    position: fixed;
    top: 50%;
    right: 0px;
    height: fit-content;
    width: fit-content;
    z-index: 9980;
    background-color: var(--salmon);
    transform: translate(150%, -50%);
    transition: all 500ms linear;
    padding: 60px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
  }

  .menu-mobile.open {
    transform: translate(0%, -50%);
    transition: all 500ms linear;
  }

  .menu-mobile.menu-floater ul {
    gap: 18px;
    align-items: flex-start;
  }
  .menu-mobile ul li {
    width: fit-content;
  }

  .menu-mobile.menu-floater ul li a {
    font-size: 19px;
    line-height: 1.1;
    color: var(--burgundy);
    display: block;
  }
  header .headerLogo {
    width: calc(157px * 0.6);
  }
  body:has(.legalPage) header .headerLogo,
  header.header-colored .headerLogo {
    width: 94px;
  }

  header {
    padding: 18px var(--padding-inline);
  }

  .menu-mobile.menu-floater ul a.active {
    color: var(--white-menu) !important;
    animation: none;
    font-size: 19px; /* mesmo valor do .menu-mobile.menu-floater ul li a acima, para não saltar de tamanho */
  }

  .menu-mobile.menu-floater ul a.active::before {
    background-color: var(--white-menu);
  }

  .menu-mobile.menu-floater ul a {
    text-shadow: unset;
  }

  .menu-mobile.menu-floater .wpml-ls-legacy-list-horizontal .wpml-ls-first-item,
  .menu-mobile.menu-floater .wpml-ls-legacy-list-horizontal ul {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-direction: row;
  }

  .wpml-ls-legacy-list-horizontal .wpml-ls-first-item::after,
  .wpml-ls-legacy-list-horizontal a span {
    font-size: 17px;
    font-weight: 700;

    color: var(--black);
  }
  .wpml-ls-legacy-list-horizontal .wpml-ls-current-language a span {
    color: var(--white-menu);
  }

  .headerMenuWrapper-new .main-menu-novo {
    display: none;
  }

  /********** !!!!!!!!!!! NOVO MENU MOBILE !!!!!!!!!! **************/
  /* ===== Menu mobile (novo header) — mesmo comportamento do menu-floater ===== */
  header .headerLogo-new {
    width: calc(157px * 0.6);
  }

  /* Painel salmon fora do ecrã; entra com .open */
  .menu-mobile-new {
    position: fixed;
    top: 50%;
    right: 0;
    width: fit-content;
    height: fit-content;
    max-height: 90vh;
    overflow-y: auto;
    z-index: 9980;
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 60px;
    background-color: var(--salmon);
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
    transform: translate(150%, -50%);
    transition: all 500ms linear;
  }

  .menu-mobile-new.open {
    transform: translate(0%, -50%);
  }

  /* Anula o layout/hover do menu desktop dentro do painel */
  .menu-mobile-new ul.main-menu-novo {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
    margin-top: 0;
  }

  /* Opção pai em grid: linha 2 (submenu) anima de 0fr → 1fr ao abrir */
  .menu-mobile-new ul.main-menu-novo > li {
    display: grid;
    grid-template-rows: auto 0fr;
    padding: 0;
    border: 0;
    border-radius: 0;
    transition: grid-template-rows 0.4s ease;
  }

  .menu-mobile-new ul.main-menu-novo > li.is-open {
    grid-template-rows: auto 1fr;
  }

  .menu-mobile-new ul.main-menu-novo > li::after {
    display: none;
  }

  /* Opções pai */
  .menu-mobile-new ul.main-menu-novo > li > a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    justify-self: start;
    font-size: 19px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: normal;
    text-transform: uppercase;
    color: var(--burgundy);
    white-space: normal;
  }

  /* Seta branca nas opções com filhos — aponta para baixo fechado, para cima aberto */
  /* Seta (bolas do burger aberto) nas opções com filhos — aponta para baixo fechado, para cima aberto */
  .menu-mobile-new ul.main-menu-novo > li.menu-item-has-children > a::after {
    content: "";
    flex-shrink: 0;
    width: 16px;
    height: calc(16px * 23 / 40); /* proporção do SVG 40×23 */
    background-color: var(--white-menu);
    -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 23"><circle cx="2.21" cy="19.71" r="2.21" fill="white"/><circle cx="37.09" cy="19.71" r="2.21" fill="white"/><circle cx="10.94" cy="10.96" r="2.49" fill="white"/><circle cx="28.37" cy="10.99" r="2.49" fill="white"/><circle cx="19.65" cy="2.22" r="2.78" fill="white"/></svg>');
    mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 23"><circle cx="2.21" cy="19.71" r="2.21" fill="white"/><circle cx="37.09" cy="19.71" r="2.21" fill="white"/><circle cx="10.94" cy="10.96" r="2.49" fill="white"/><circle cx="28.37" cy="10.99" r="2.49" fill="white"/><circle cx="19.65" cy="2.22" r="2.78" fill="white"/></svg>');
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    rotate: 180deg;
    transition: rotate 0.3s ease;
  }

  .menu-mobile-new ul.main-menu-novo > li.is-open > a::after {
    rotate: 0deg;
  }

  /* Submenu — fechado por defeito (altura 0 pela grid do pai), abre com .is-open */
  .menu-mobile-new ul.main-menu-novo .sub-menu {
    position: static;
    min-height: 0; /* permite à linha 0fr encolher até 0 */
    overflow: hidden;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    gap: 10px;
    margin: 0;
    padding: 0 0 0 15px; /* sem padding vertical — não encolhe a 0 */
    border: 0;
    border-radius: 0;
    transition: none;
  }

  /* Espaço entre o pai e a 1.ª opção (dentro do overflow, por isso desaparece ao fechar) */
  .menu-mobile-new ul.main-menu-novo .sub-menu > li:first-child {
    margin-top: 10px;
  }

  .menu-mobile-new ul.main-menu-novo .sub-menu::before,
  .menu-mobile-new ul.main-menu-novo .sub-menu::after {
    display: none;
  }

  .menu-mobile-new ul.main-menu-novo .sub-menu > li {
    opacity: 1;
    translate: none;
    transition: none;
  }

  .menu-mobile-new ul.main-menu-novo .sub-menu a {
    font-size: 15px;
    font-weight: 500;
    letter-spacing: normal;
    text-transform: uppercase;
    color: var(--burgundy);
  }

  /* Hover: branco, como o ativo do menu antigo (salmon não se via no fundo salmon) */
  .menu-mobile-new ul.main-menu-novo > li > a:hover,
  .menu-mobile-new ul.main-menu-novo .sub-menu a:hover {
    color: var(--white-menu);
  }

  .menu-mobile-new ul.main-menu-novo .sub-menu a:hover {
    font-weight: 500;
  }

  /* Idioma dentro do painel — especificidade suficiente para vencer o :not() que o esconde */
  .menu-mobile-new
    .wpml-ls.wpml-ls-legacy-list-horizontal.wpml-ls-statics-shortcode_actions {
    display: block;
  }

  .menu-mobile-new .wpml-ls-legacy-list-horizontal .wpml-ls-first-item,
  .menu-mobile-new .wpml-ls-legacy-list-horizontal ul {
    flex-direction: row;
  }

  /* --------------------- FORM COMPONENTS --------------------- */

  .quform textarea {
    height: 80px !important;
  }

  /* ------------------ POPUPP CONTACTOS ------------------- */

  .bspacy-forms-box {
    padding-top: 40px;
    padding-inline: 40px;
    padding-bottom: 40px;
    max-width: calc(932px * 0.75);
  }
  .quform .quform-elements {
    margin-top: 10px !important;
  }
  .bspacy-forms-close {
    width: 30px;
    height: 30px;
  }

  .quform .mainButton-dot {
    width: 5px;
    height: 5px;
  }
  .quform .mainButton {
    width: calc(188px * 0.5) !important;
    height: calc(188px * 0.5) !important;
  }

  .quform .mainButton.mainButton .mainButton-text {
    font-size: 9px;
    letter-spacing: 2px;
  }

  .inputForm,
  form
    input:not(
      input[type="button"],
      input[type="checkbox"],
      input[type="submit"]
    ) {
    padding: 5px !important;
    padding-bottom: 5px !important;
  }

  .quform textarea {
    padding: 8px 15px !important;
  }

  /* ========================================================================== */
  /*                                  NOVA HOMEPAGE                             */
  /* ========================================================================== */
}

/*tablet landscape or old laptop */
@media print, screen and (max-width: 1024px) {
  :root {
    --header-height: 74px;
    --paddingVert: 60px;
    --padding-inline-new: 70px;
  }

  /* ========================================================================== */
  /*                            Footer (footer)                                 */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                      Hero Section (hero-section)                          */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                 Quem Somos Section (quem-somos-section)                    */
  /* ========================================================================== */

  .quem-somos-image-anchor {
    left: calc(50% - 20px);
    width: 250px;
    height: calc(250px * 357 / 512);
  }
  .sliding-image-wrapper {
    width: 250px; /* tem de bater certo com a largura da âncora nesse breakpoint */
  }

  .quem-somos-section h2 {
    padding-right: 90px;
  }

  /* ========================================================================== */
  /*              Identificamos Section (identificamos-section)                */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                Experiência Section (experiencia-section)                   */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                     Porquê Section (porque-section)                       */
  /* ========================================================================== */
}

/* Size considerado para Tablet */
@media only screen and (max-width: 991px) {
  :root {
    --padding-inline-new: 30px;
  }
  .backgroundVideo .container-video video,
  .backgroundVideo .container-video img {
    max-height: unset;
    height: 100dvh !important;
    min-height: unset;
  }
  /* ========================================================================== */
  /*                            Header (header)                                 */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                            Footer (footer)                                 */
  /* ========================================================================== */
  footer {
    padding-block: 100px 10px;
  }
  .footerWrapper {
    gap: 30px;
  }
  .footer-top,
  .footer-middle {
    display: flex;
    flex-direction: column;
    gap: 30px;
    align-items: center;
  }

  footer .newsletter-wrapper {
    margin-left: unset;
  }
  /* Em mobile: inverte — esconde a versão desktop, mostra a duplicada
     que já está posicionada a seguir ao footer-contactos-wrapper no HTML */
  .footer-middle-left--desktop {
    display: none;
  }

  .footer-middle-left--mobile {
    display: block;
  }

  .footer-top a {
    margin-top: 0px;
  }

  .contact-address a {
    text-align: center;
    margin-bottom: 30px !important;
    display: block;
  }

  ul.f-menu-legal {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    margin-bottom: 0px;
  }
  .footer-text,
  .copyright {
    text-align: center;
    line-height: normal;
  }

  .footer-text {
    margin-block: 30px 60px !important;
  }

  .contact-address p {
    margin-inline: auto;
  }

  .social-icons {
    display: flex;
    gap: 30px;
    margin-bottom: 30px;
    justify-content: center;
  }
  .f-menu-legal a {
    font-size: 16px;
  }

  .social-icons .social-icon img {
    width: calc(18px * 2);
    height: auto;
  }
  /* ========================================================================== */
  /*                      Hero Section (hero-section)                          */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                 Quem Somos Section (quem-somos-section)                    */
  /* ========================================================================== */
  .quem-somos-image-anchor {
    left: calc(55%);
    width: 300px;
    top: 50%;
    height: calc(300px * 357 / 512);
  }
  .sliding-image-wrapper {
    width: 500px; /* tem de bater certo com a largura da âncora nesse breakpoint */
    opacity: 0;
  }

  /* lado com texto */
  .quem-somos-section
    .vc_row
    .wpb_column:nth-child(2)
    .wpb_text_column:nth-child(2) {
    margin-inline: auto;
    max-width: 400px !important;
  }

  .quem-somos-section
    .vc_row
    .wpb_column:nth-child(2)
    .wpb_text_column:nth-child(2)
    p {
    text-align: center !important;
  }

  .quem-somos-section h2 {
    padding-right: 0px;
    text-align: center !important;
  }
  /* bold do texto */
  .quem-somos-section .vc_row .wpb_column:nth-child(2) {
    transform: unset;
  }

  .quem-somos-section .vc_row .wpb_column {
    width: 100% !important;
  }
  .quem-somos-section
    .vc_row
    .wpb_column:nth-child(2)
    .wpb_text_column:nth-child(1)
    p {
    text-align: center;
  }

  .quem-somos-section .vc_row {
    /* display: flex;
    align-content: center;
    justify-content: center;
    height: 100vh; */
  }

  .quem-somos-section
    .vc_row
    .wpb_column:nth-child(2)
    .wpb_text_column:nth-child(1) {
    text-align: center;
    margin-bottom: 10px !important;
  }
  .quem-somos-section
    .vc_row
    .wpb_column:nth-child(2)
    .wpb_text_column:nth-child(2) {
    text-align: center;
  }
  .quem-somos-section .vc_row {
    transform: unset;
  }
  /* ========================================================================== */
  /*              Identificamos Section (identificamos-section)                */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                Experiência Section (experiencia-section)                   */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                     Porquê Section (porque-section)                       */
  /* ========================================================================== */

  /* ========================================================================== */
  /*            Sustentabilidade Section (sustentabilidade-section)            */
  /* ========================================================================== */

  .sustentabilidade-section .vc_row .wpb_column:nth-child(1) .vc_column-inner {
    max-width: 420px;
  }
  /* col com imagens */
  .sustentabilidade-section
    .vc_row
    .wpb_column:nth-child(2)
    .vc_column-inner
    > div {
    gap: 20px;
  }

  .sustentabilidade-section .vc_row .wpb_column:nth-child(2) img {
    transform: scale(0.75); /* reduz para 80% do tamanho original */
    transform-origin: left center;
  }

  /* ========================================================================== */
  /*                                  NOVA HOMEPAGE                             */
  /* ========================================================================== */
}
/* Size considerado para Tablet modo portrait*/
@media only screen and (max-width: 767.5px) {
  h1,
  h1 .split-title-part,
  h1 .hero-phrase-part,
  h2,
  h2 .split-title-part,
  h2 .ids-numeros-title {
    font-size: 38px;
  }

  h3,
  h4,
  h5 {
    font-size: 24px;
  }

  .legalPage h2 {
    font-size: 24px;
  }

  .mainButton {
    width: calc(188px * 0.7);
    height: calc(188px * 0.7);
  }

  .mainButton.mainButton .mainButton-text {
    font-size: 10px;
    line-height: 1;
    letter-spacing: 2px;
  }

  .mainButton-logo {
    margin-top: 4px;
    width: calc(59px * 0.7);
    height: calc(15px * 0.7);
  }

  /* big button ---- */
  .mainButton.bigButton {
    width: calc(374px * 0.7);
    height: calc(374px * 0.7);
  }

  .mainButton.bigButton .mainButton-dot {
    width: calc(20px * 0.7);
    height: calc(20px * 0.7);
  }

  .mainButton.bigButton .mainButton-text {
    font-size: calc(28px * 0.7);
    letter-spacing: calc(7px * 0.7);
  }

  .mainButton.bigButton .mainButton-logo {
    width: calc(118px * 0.7);
    height: auto;
  }

  .legalPage {
    padding: var(--padding-inline);
    padding-bottom: 100px;
    padding-top: calc(var(--header-height));
  }

  /* ========================================================================== */
  /*                            Header (header)                                 */
  /* ========================================================================== */

  /* menu mobile */
  .menu-mobile.menu-floater {
    padding: 30px;
    gap: 12px;
  }

  .menu-mobile.menu-floater ul a::before {
    left: -14px;
  }
  .menu-mobile.menu-floater ul {
    gap: 12px;
  }
  .menu-mobile.menu-floater ul a.active,
  .menu-mobile.menu-floater ul li a {
    font-size: 14px;
  }

  .menu-mobile.menu-floater .wpml-ls-legacy-list-horizontal .wpml-ls-first-item,
  .menu-mobile.menu-floater .wpml-ls-legacy-list-horizontal ul {
    gap: 10px;
  }

  .wpml-ls-legacy-list-horizontal .wpml-ls-first-item::after,
  .wpml-ls-legacy-list-horizontal a span {
    font-size: 14px;
  }

  /* ************* !!!!!!!!!!!!!!!!! HEADER  !!!!!!!!!!!!!!!!!!!! ********************** */
  /* Menu mobile (novo header) */
  .menu-mobile-new {
    padding: 30px;
    gap: 12px;
  }

  .menu-mobile-new ul.main-menu-novo {
    gap: 12px;
  }

  .menu-mobile-new ul.main-menu-novo > li > a {
    font-size: 16px;
  }

  .menu-mobile-new ul.main-menu-novo .sub-menu {
    gap: 8px;
  }

  .menu-mobile-new ul.main-menu-novo .sub-menu > li:first-child {
    margin-top: 8px;
  }

  .menu-mobile-new ul.main-menu-novo .sub-menu a {
    font-size: 14px;
  }
  /* ========================================================================== */
  /*                            Footer (footer)                                 */
  /* ========================================================================== */
  footer {
    padding-block: 50px 10px;
  }
  .footer-top a img {
    /* width: calc(219px * 0.7);
    height: auto; */
  }

  .contact-address p {
    font-size: 16px;
    line-height: 1.5;
    max-width: 250px;
  }
  .social-icons .social-icon img {
    width: calc(18px * 1.5);
    height: auto;
  }

  .f-menu-legal a,
  .footer-text,
  .copyright {
    font-size: 12px;
    max-width: 250px;
  }

  /* ========================================================================== */
  /*              Identificamos Section (identificamos-section)                */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                Experiência Section (experiencia-section)                   */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                     Porquê Section (porque-section)                       */
  /* ========================================================================== */

  /* ========================================================================== */
  /*             Áreas de Negócio Section (areas-negocio-section)              */
  /* ========================================================================== */
  .areas-negocio-section .vc_custom_heading {
    text-align: center !important;
  }

  .areas-negocio-section
    > .wpb_column
    > .vc_column-inner
    > .wpb_wrapper
    > .wpb_text_column {
    margin-inline: auto;
  }

  .areas-negocio-section
    > .wpb_column
    > .vc_column-inner
    > .wpb_wrapper
    > .wpb_text_column
    p {
    text-align: center;
  }
  /* ========================================================================== */
  /*         Projetos em Destaque Section (projetos-destaque-section)          */
  /* ========================================================================== */

  .projetos-destaque-section .vc_custom_heading {
    padding-inline: var(--padding-inline);
  }

  /* ========================================================================== */
  /*            Sustentabilidade Section (sustentabilidade-section)            */
  /* ========================================================================== */
  .sustentabilidade-section .vc_row .wpb_column:nth-child(1) .vc_column-inner {
    max-width: unset;
  }
  .sustentabilidade-section .vc_row .wpb_column:nth-child(1) {
    display: flex;
    justify-content: center;
  }
  .sustentabilidade-section .vc_row {
    margin-top: 30px;
  }
  /* col com imagens */
  .sustentabilidade-section
    .vc_row
    .wpb_column:nth-child(2)
    .vc_column-inner
    > div {
    gap: 20px;
    justify-content: center;
    margin-top: 20px;
  }

  .sustentabilidade-section
    .vc_row
    .wpb_column:nth-child(1)
    .vc_column-inner
    p {
    text-align: center;
  }
  .sustentabilidade-section .vc_row .wpb_column:nth-child(2) img {
    transform: scale(1); /* reduz para 80% do tamanho original */
    transform-origin: left center;
  }

  .sustentabilidade-section .basicButton {
    width: 100%;
  }
  .sustentabilidade-section .basicButton a {
    margin-block: 30px;
    display: flex;
    justify-content: center;
  }

  /* ========================================================================== */
  /*         Notícias em Destaque Section (noticias-destaque-section)          */
  /* ========================================================================== */

  .noticias-destaque-section .vc_custom_heading {
    padding-left: 0px;
  }

  /* --------------------- FORM COMPONENTS --------------------- */

  .quform textarea {
    height: 80px !important;
  }

  /* ------------------ POPUPP CONTACTOS ------------------- */

  .bspacy-forms-popup {
    right: var(--padding-inline);
    left: var(--padding-inline);
  }
  .bspacy-forms-box {
    padding: 30px !important;
    max-width: unset;
    width: 100%;
    /* margin-inline: var(--padding-inline); */
  }
  .bspacy-forms-close {
    width: 30px;
    height: 30px;
  }

  .quform textarea {
    padding: 10px !important;
    margin-top: 8px !important;
  }
  .quform-option:has(.acceptanceInput) span {
    font-size: 9px;
  }
  .quform-option-text a,
  .quform-option-text {
    font-size: 9px;
    line-height: 1.2;
  }

  .quform-option-label br {
    display: none;
  }

  /* ========================================================================== */
  /*                                  NOVA HOMEPAGE                             */
  /* ========================================================================== */

  /* ================================================= */
  /*        Substancia Section (substancia-section)    */
  /* ================================================= */
  .substancia-section .wpb_text_column {
    margin-top: 20px;
  }

  .substancia-section .wpb_text_column p {
    font-size: 16px;
  }
}

@media only screen and (max-width: 600px) {
  h1,
  h1 .split-title-part,
  h1 .hero-phrase-part,
  h2,
  h2 .split-title-part,
  h2 .ids-numeros-title {
    font-size: 32px;
  }

  /* ========================================================================== */
  /*              Identificamos Section (identificamos-section)                */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                Experiência Section (experiencia-section)                   */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                     Porquê Section (porque-section)                       */
  /* ========================================================================== */
}
@media only screen and (max-width: 500px) {
  /* ========================================================================== */
  /*              Identificamos Section (identificamos-section)                */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                Experiência Section (experiencia-section)                   */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                     Porquê Section (porque-section)                       */
  /* ========================================================================== */
}
/* Size considerado Mobile - 430px*/
@media only screen and (max-width: 430px) {
  /* ========================================================================== */
  /*              Identificamos Section (identificamos-section)                */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                Experiência Section (experiencia-section)                   */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                     Porquê Section (porque-section)                       */
  /* ========================================================================== */

  /* ========================================================================== */
  /*             Áreas de Negócio Section (areas-negocio-section)              */
  /* ========================================================================== */

  .areas-negocio-section
    > .wpb_column
    > .vc_column-inner
    > .wpb_wrapper
    > .wpb_text_column {
    max-width: 100%;
  }

  .areas-negocio-section
    > .wpb_column
    > .vc_column-inner
    > .wpb_wrapper
    > .wpb_text_column.bold {
    max-width: 80%;
  }

  /* big button ---- */
  .mainButton.bigButton {
    width: calc(374px * 0.6);
    height: calc(374px * 0.6);
  }

  .mainButton.bigButton .mainButton-dot {
    width: calc(20px * 0.6);
    height: calc(20px * 0.6);
  }

  .mainButton.bigButton .mainButton-text {
    font-size: calc(28px * 0.6);
    letter-spacing: calc(7px * 0.6);
  }

  .mainButton.bigButton .mainButton-logo {
    width: calc(118px * 0.6);
    height: auto;
  }
}
/* smartphones plus */
@media only screen and (max-width: 414px) {
  /* ========================================================================== */
  /*              Identificamos Section (identificamos-section)                */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                Experiência Section (experiencia-section)                   */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                     Porquê Section (porque-section)                       */
  /* ========================================================================== */
}
/* smartphones normais  */
@media only screen and (max-width: 378px) {
  /* ========================================================================== */
  /*              Identificamos Section (identificamos-section)                */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                Experiência Section (experiencia-section)                   */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                     Porquê Section (porque-section)                       */
  /* ========================================================================== */
}
/* iphone 5 <=  */
@media only screen and (max-width: 320px) {
  /* ========================================================================== */
  /*              Identificamos Section (identificamos-section)                */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                Experiência Section (experiencia-section)                   */
  /* ========================================================================== */

  /* ========================================================================== */
  /*                     Porquê Section (porque-section)                       */
  /* ========================================================================== */
}

/**
 * ********************************************************************************************
 * ********************************************** GOOGLE MAPS SETTINGS PAGE CONFIGURATION
 * ********************************************************************************************
 */
/*remove o overlay "Use Ctrl + ...*/
.gm-style-moc {
  display: none !important;
}
/* Ensure the map container also has a position context for absolute positioning */
.googleMapsWrapper {
  overflow: hidden;
}
#map {
  position: relative; /* Important for absolute positioning of the infowindow inside/relative to it */
  height: 950px;
  width: 100%;
  /* padding-bottom: 100px; */
  /* margin-top: 30px; */
}

/* Map Wrapper */
.map-menu-wrapper {
  position: absolute;
  top: 10px;
  left: 10px;
  background-color: #ffffffa8;
  padding: 10px;
  border-radius: 5px;
  z-index: 100;
  overflow: visible;
  max-width: 300px;
  border-radius: 10px;
  box-shadow: -1px 1px 15px 0px #232323;
}

.map-menu-wrapper::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
/* Map Filter Wrapper */
div#map-menu {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Styles for markers that do NOT start with 'adicional_' */
.googleMapsWrapper .default-marker-icon {
  width: 20px !important;
  height: 20px !important;

  /* Especifico para o THE FRAME */
  box-shadow: -1px 1px 15px 0px #232323;
  border-radius: 100%;
}

/* Styles for markers whose ID DOES start with 'adicional_' */
.googleMapsWrapper .adicional-marker-icon {
  width: auto !important; /* Make them larger, use !important if necessary */
  height: 50px !important;
  /* transform: translate(50%, 50%); */
}
/* Menu Map Title */
.map-menu-title {
  font-size: 30px;
  line-height: 1.2;
  color: black;
  margin-bottom: 15px;
}
#map-menu button {
  display: flex;
  gap: 15px;
  outline: unset;
  padding: unset;
  border: unset;
  color: black;
  background-color: unset;
  cursor: pointer;
  align-items: center;
  font-family: "Gilroy", Sans-serif;
}
#map-menu button:active,
#map-menu button:focus,
#map-menu button:hover {
  background-color: transparent;
  color: inherit;
  color: black;
}
#map-menu button img {
  width: 25px;
  height: 25px;
}

/* POI side bar with information */
div#poi-sidebar {
  position: absolute;
  top: 0px;
  right: 0px;
  background-color: #000000c4;
  height: 100%;
  min-width: 200px;
  width: 400px;
  padding: 20px;
  transform: translate(120%, 0px);
  transition: all 300ms linear;
  -webkit-box-shadow: -7px 1px 16px 3px rgb(0 0 0 / 41%);
  color: white;
  z-index: 1001;
}
div#poi-sidebar.open {
  transform: translate(0%, 0px);
  transition: all 300ms linear;
}

.POIWrapper {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
#poi-sidebar h2,
#poi-sidebar p,
#poi-sidebar a,
#poi-sidebar span {
  color: white;
}

#poi-sidebar a {
  text-decoration: underline;
}
/* Side bar close button wrapper */
#poi-sidebarbutton {
  position: absolute;
  top: 5px;
  right: 5px;
  background: none;
  border: none;
  color: white;
  font-size: 1.2em;
  cursor: pointer;
  padding: 0px !important;
}
#sidebar-close-btn {
  padding: 0px !important;
  border: unset !important;
  width: 20px;
  height: 20px;
  position: relative;
  cursor: pointer;
  margin-left: auto;
}
#sidebar-close-btn span.line {
  height: 3px;
  display: block;
  position: absolute;
  top: 50%;
  left: 0px;
  width: 100%;
  background-color: white;
  transform: rotate(45deg);
}
#sidebar-close-btn span.line:nth-child(2) {
  top: 50%;
  left: 0px;
  transform: rotate(-45deg);
}

#sidebar-poi-category {
  margin-top: 10px;
  font-size: 14px;
  line-height: 1;
}
#sidebar-poi-title {
  font-size: 30px;
  margin-bottom: 10px;
}

#poi-sidebar p,
#poi-sidebar a,
#poi-sidebar span {
  font-size: 14px;
}

#sidebar-poi-img img {
  height: 170px !important;
  width: 100%;
  object-fit: cover;
  border-radius: 10px;
}

#map-menu button {
  gap: 8px;
}

.map-bottom {
  display: flex;
  gap: 10px;
  background-color: white;
  border-radius: 0px 10px 00px 0px;
  position: absolute;
  bottom: 0px;
  left: 0px;
  padding: 5px 10px;
}
@media only screen and (max-width: 991px) {
  .filter-wrapper form .row {
    display: flex !important;
    width: 100%;
    flex-direction: column;
    gap: 12px;
    margin: 0px !important;
  }

  .filter-wrapper form .row > div {
    padding: 0px 10px !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  .search-wrapper2 .search2 button.submit {
    width: 100% !important;
  }

  .search-wrapper2 .search2 .form-control {
    margin: 0px 0px;
  }
}
@media only screen and (max-width: 600px) {
  .map-menu-wrapper {
    max-width: 300px;
  }

  div#poi-sidebar {
    width: 300px;
  }

  #sidebar-poi-img img {
    height: 150px !important;
  }
  #sidebar-poi-category {
    font-size: 12px;
  }

  #sidebar-poi-title {
    font-size: 24px;
    line-height: 1;
  }

  #poi-sidebar p,
  #poi-sidebar a,
  #poi-sidebar span {
    font-size: 14px;
  }

  .map-bottom span {
    font-size: 12px;
  }
}
@media only screen and (max-width: 430px) {
  div#map-menu {
    gap: 10px;
  }
}

/* STYLE COPIADO DO PARQUE DA CIDADE */
.googleMapsWrapper .map-menu-wrapper {
  position: absolute;
  top: 50%;
  left: 40px;
  transform: translateY(-50%);
  background-color: #f1f1f1;
  padding: 44px;
  border-radius: 5px;
  z-index: 100;
  overflow: visible;
  max-width: fit-content;
  border-radius: 0px;
  box-shadow: none;
  padding-bottom: 145px;
}

.googleMapsWrapper .map-menu-title {
  font-size: 36px;
  font-weight: 500;
  font-family: "Gilroy";
  line-height: 1.2;
  color: var(--brown);
  margin-bottom: 52px;
  display: flex;
  flex-direction: column;
}

.googleMapsWrapper .map-menu-title span {
  font-size: 24px;
  font-weight: 300;
  font-family: "Gilroy";
  line-height: 29px;
  color: var(--grey);
  padding-top: 8px;
}

.googleMapsWrapper div#map-menu {
  display: grid;
  grid-template-columns: auto auto;
  gap: 10px;
}

.googleMapsWrapper #map-menu button {
  color: var(--grey);
  font-family: "Gilroy", Sans-serif;
  gap: 15px;
}

.googleMapsWrapper #map-menu button img {
  width: 35px;
  height: 35px;
}

.googleMapsWrapper #map-menu button[data-category="all"] {
  margin-top: 42px;
  position: absolute;
  bottom: 44px;
}

.googleMapsWrapper #map-menu button[data-category="all"] img {
  width: 56px;
  height: 56px;
}

.googleMapsWrapper #map .default-marker-icon {
  box-shadow: none;
  width: 30px !important;
  height: 30px !important;
  transform: none !important;
}

.googleMapsWrapper div#poi-sidebar {
  width: fit-content;
  height: fit-content;
  background-color: #f1f1f1;
  box-shadow: none;
  top: 50%;
  right: 10px;
  transform: translateY(-50%) translateX(120%) !important;
  min-width: 300px;
}

.googleMapsWrapper div#poi-sidebar.open {
  transform: translateY(-50%) translateX(0%) !important;
}

.googleMapsWrapper #sidebar-close-btn span.line {
  background-color: var(--brown);
}

.googleMapsWrapper span#sidebar-poi-category {
  font-size: 12px;
  font-weight: 500;
  font-family: "Gilroy";
  text-transform: uppercase;
  letter-spacing: 1px;
  line-height: 1.2;
  color: var(--brown);
  margin-bottom: 50px;
}

.googleMapsWrapper #sidebar-poi-title {
  font-size: 20px;
  margin-bottom: 15px;
  margin-top: 0px;
  color: var(--grey);
  font-family: "Gilroy";
  line-height: 32px;
}

.googleMapsWrapper div#sidebar-poi-content img {
  width: 300px;
}

.googleMapsWrapper div#sidebar-poi-content p {
  max-width: 300px;
  line-height: 18px;
  color: var(--grey);
  margin: 0px;
}

gmp-advanced-marker:has(.adicional-marker-icon) {
  position: relative;
  z-index: 10;
}
gmp-advanced-marker:has(.default-marker-icon) {
  position: relative;
  z-index: 5;
}

@media only screen and (max-width: 1280px) {
  .googleMapsWrapper .map-menu-title {
    font-size: 30px;
    margin-bottom: 30px;
  }

  .googleMapsWrapper .map-menu-title span {
    font-size: 20px;
    padding-top: 0;
  }

  .googleMapsWrapper #map-menu button img {
    width: 28px;
    height: 28px;
  }

  .googleMapsWrapper #map-menu button[data-category="all"] {
    margin-top: 30px;
  }

  .googleMapsWrapper #map-menu button[data-category="all"] img {
    width: 45px;
    height: 45px;
  }

  .googleMapsWrapper #map-menu button {
    gap: 8px;
  }

  .all-apartments .filtros-ordenacao {
    position: relative;
  }
}

@media only screen and (max-width: 991px) {
  .googleMapsWrapper {
    display: flex;
    flex-direction: column-reverse;
  }

  .googleMapsWrapper .map-menu-wrapper {
    position: relative;
    top: 0px;
    left: 0px;
    transform: none;
    max-width: 100%;
    box-shadow: none;
    width: calc(100% - 60px);
    margin-left: 30px;
    margin-bottom: 30px !important;
  }

  .googleMapsWrapper div#poi-sidebar {
    width: calc(100% - 60px);
    top: unset;
    bottom: 30px;
    right: 30px;
    transform: translateY(120%) translateX(0%) !important;
  }

  .googleMapsWrapper div#poi-sidebar.open {
    transform: translateY(0%) translateX(0%) !important;
    width: fit-content;
  }

  #sidebar-close-btn {
    width: 15px;
    height: 15px;
  }
}

@media only screen and (max-width: 600px) {
  .googleMapsWrapper div#map-menu {
    grid-template-columns: none;
  }

  .googleMapsWrapper .map-menu-wrapper {
    padding: 30px;
    padding-bottom: 110px;
  }

  .googleMapsWrapper #map-menu button[data-category="all"] {
    bottom: 30px;
  }

  .googleMapsWrapper .map-menu-title {
    font-size: 25px;
  }

  .googleMapsWrapper .map-menu-title span {
    font-size: 16px;
  }

  .googleMapsWrapper div#sidebar-poi-content img {
    width: 100%;
  }

  .googleMapsWrapper div#sidebar-poi-content p {
    max-width: 100%;
  }

  .googleMapsWrapper div#poi-sidebar.open {
    width: calc(100% - 60px);
  }
}
