/*
Theme Name:     Nira
Author:         Bspacy
Version:        1.0
License:        GNU General Public License v2 or later
License URI:    https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:    nira
*/

/*** Fonts ***/

@font-face {
  font-family: "FontAwesome";
  src: url("assets/fonts/fontawesome-webfont.eot"); /* IE9 Compat Modes */
  src:
    url("assets/fonts/fontawesome-webfont.eot?#iefix")
      format("embedded-opentype"),
    /* IE6-IE8 */ url("assets/fonts/fontawesome-webfont.woff2") format("woff2"),
    /* Super moderno */ url("assets/fonts/fontawesome-webfont.woff")
      format("woff"),
    /* Moderno */ url("assets/fonts/fontawesome-webfont.ttf") format("truetype"),
    /* Safari, Android, iOS */
      url("assets/fonts/fontawesome-webfont.svg#fontawesomeregular")
      format("svg"); /* iOS */
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

@font-face {
  font-family: "CarlaSans";
  src:
    url("assets/fonts/CarlasSans/CarlaSansLight.ttf") format("truetype"),
    url("assets/fonts/CarlasSans/CarlaSansLight.otf") format("opentype"),
    url("assets/fonts/CarlasSans/CarlaSansLight.woff") format("woff"),
    url("assets/fonts/CarlasSans/CarlaSansLight.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: "CooperHewitt";
  src:
    url("assets/fonts/CooperHewitt/CooperHewitt-Light.ttf") format("truetype"),
    url("assets/fonts/CooperHewitt/CooperHewitt-Light.otf") format("opentype"),
    url("assets/fonts/CooperHewitt/CooperHewitt-Light.woff") format("woff"),
    url("assets/fonts/CooperHewitt/CooperHewitt-Light.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: "CooperHewitt";
  src:
    url("assets/fonts/CooperHewitt/CooperHewitt-Book.ttf") format("truetype"),
    url("assets/fonts/CooperHewitt/CooperHewitt-Book.otf") format("opentype"),
    url("assets/fonts/CooperHewitt/CooperHewitt-Book.woff") format("woff"),
    url("assets/fonts/CooperHewitt/CooperHewitt-Book.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
}

/*** Estrutura ***/

* {
  box-sizing: border-box;
}

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

/* Esconder a scrollbar (mantendo o scroll funcional) */
html {
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE / Edge antigo */
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none; /* Chrome / Safari / Edge */
}

a,
a:hover,
a:focus,
a:active {
  text-decoration: none;
  color: var(--grey);
  cursor: pointer;
  overflow-wrap: anywhere;
}

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

/* 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(--black) !important;
}

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

/* Select do Quform igual em Safari e Chrome — tira o estilo nativo
   (degradê/relevo/cantos do Safari) e usa uma seta própria */
.quform-field-select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: transparent;
  border-radius: 0;
  box-shadow: none;
  /* seta (chevron) na cor do texto, #5B4A3A */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%235B4A3A' stroke-width='1.2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 12px 8px;
  padding-right: 35px !important; /* espaço para a seta não ficar por cima do texto */
  cursor: pointer;
}

/* Safari iOS — evita o zoom/realce ao tocar e mantém a cor do texto */
.quform-field-select:focus {
  outline: none;
  box-shadow: none;
}

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

.quform-edit-form {
  display: none;
}

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

.vc_btn3-container,
.wpb_content_element,
.vc_do_custom_heading {
  margin: 0px !important;
}

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

h1,
h1 div {
  font-family: "CarlaSans";
  font-size: 58px;
  line-height: 62px;
  color: var(--white);
  font-weight: 300;
  text-transform: uppercase;
}

h2,
h2 div {
  font-family: "CarlaSans";
  font-size: 58px;
  line-height: 62px;
  color: var(--brown);
  font-weight: 300;
  text-transform: uppercase;
}

h3,
h3 div {
  font-family: "CooperHewitt";
  font-size: 24px;
  line-height: 30px;
  color: var(--orange);
  font-weight: 300;
  text-transform: uppercase;
}

h4 {
}

h5 {
}

h6 {
}

p,
li,
a,
span,
div {
  font-family: "CooperHewitt";
  font-size: 20px;
  line-height: 26px;
  color: var(--brown);
  font-weight: 300;
}

p strong,
p strong span {
  font-weight: 700;
}

button {
  font-family: "CooperHewitt";
  font-size: 14px;
  line-height: 16px;
  color: var(--white);
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
}

header li,
header li a,
header li a div,
header li a span {
  font-size: 12px;
  line-height: 16px;
  color: var(--brown);
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 400;
}

.vc_btn3-container.vc_btn3-inline.vc_do_btn a.vc_btn3,
.vc_btn3-container.vc_btn3-inline.vc_do_btn button.vc_btn3 {
  background: none;
  border: 0px;
  padding: 0px;
  color: var(--orange);
  text-transform: uppercase;
  display: flex;
  gap: 16px;
  align-items: center;
  font-weight: 400;
}

.vc_btn3-container.vc_btn3-inline.vc_do_btn a.vc_btn3::before,
.vc_btn3-container.vc_btn3-inline.vc_do_btn button.vc_btn3::before {
  content: "";
  background-image: url(/wp-content/uploads/btn-arrow.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  width: 60px;
  height: 64px;
  display: block;
}

.vc_btn3-container.vc_btn3-inline.vc_do_btn a.vc_btn3:hover::before,
.vc_btn3-container.vc_btn3-inline.vc_do_btn button.vc_btn3:hover::before {
  background-image: url(/wp-content/uploads/btn-arrow-hover.svg);
}

.wpb_text_column p:not(:last-child) {
  margin-bottom: 10px !important;
}

.wpb_single_image .vc_single_image-wrapper,
.wpb_single_image figure {
  width: 100%;
  height: 100%;
}

.wpb_single_image img {
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
}

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

.nira-template-desembrulhado,
.nira-template-desembrulhado.vc_hidden,
.nira-template-desembrulhado .vc_hidden,
.nira-template-desembrulhado.wpb_animate_when_almost_visible,
.nira-template-desembrulhado .wpb_animate_when_almost_visible {
  opacity: 1 !important;
  visibility: visible !important;
}

.line,
.char {
  will-change: transform;
}

/* Fix Safari: as divs .char-mask/.char (display:inline-block, criadas
   pelo GSAP SplitText via mask:'chars'/'lines') usam vertical-align
   "baseline" por default, que no Safari reserva espaço extra para o
   descender da fonte em cada linha — aumentando o line-height de forma
   visível (não acontece no Chrome). "top" remove essa reserva extra e
   iguala a altura de linha entre browsers. */
.char-mask,
.line-mask,
.char {
  vertical-align: top;
}

div#powerTip {
  display: none !important;
}

:root {
  --black: #000000;
  --white: #f2f1ed;
  --white-body: #edebe0;
  --dark-white: #eae5d8;
  --yellow: #fffbed;
  --orange: #d9a27d;
  --brown: #5c4c45;
  --dark-brown: #4a3d37;
  --padding-x: 30px;
  --padding-y: 0px;
  --header-height: 65px;
}

/* Header */

header {
  position: fixed;
  z-index: 999;
  top: 0px;
  left: 0px;
  width: 100%;
  height: fit-content;
  transition: top 1s;
}

header.header-hidden {
  top: -100%;
}

header.change {
  height: var(--header-height);
  background-color: #e1d0bf;
}

header.change .logo-header img {
  height: 40px;
  width: auto;
}

.logo-header {
  position: absolute;
  top: 40px;
  left: 50%;
  transform: translateX(-50%);
}

header.change .logo-header {
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
}

ul.menu-idiomas {
  display: flex;
  width: fit-content;
  gap: 10px;
  position: absolute;
  top: 50px;
  left: 80px;
  align-items: center;
}

header.change ul.menu-idiomas {
  top: 60%;
  transform: translateY(-50%);
}

ul.menu-idiomas li a,
ul.menu-idiomas li a div,
ul.menu-idiomas li a span {
  font-size: 10px;
}

ul.menu-idiomas li.wpml-ls-current-language a,
ul.menu-idiomas li.wpml-ls-current-language a div,
ul.menu-idiomas li.wpml-ls-current-language a span {
  font-size: 14px;
  line-height: 16px;
  font-weight: 400;
}

ul.main-menu {
  display: flex;
  gap: 40px;
  width: fit-content;
  position: absolute;
  top: 130px;
  left: 50%;
  transform: translateX(-50%);
}

header.change ul.main-menu {
  left: unset;
  right: 80px;
  bottom: 10px;
  top: unset;
  transform: none;
}

header.change ul.main-menu li a div,
header.change ul.menu-idiomas li a div {
  /* text-shadow: 0.5px 0.5px 0px #D1BDAC; */
  /* color:var(--) */
}

.wave-link a {
  position: relative;
  height: fit-content;
  display: inline-block;
  overflow: hidden;
}

.wave-link a span:last-child {
  position: absolute;
  bottom: 0px;
  left: 0px;
  transform: translateY(100%);
}

.btn-contacte-nos {
  position: fixed;
  bottom: 120px;
  right: 80px;
  background-color: var(--orange);
  border-radius: 15px;
  border: 0px;
  width: fit-content;
  height: 52px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "CooperHewitt";
  font-size: 16px;
  line-height: 16px;
  color: var(--brown);
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  z-index: 2;
  padding-inline: 30px;
  padding-top: 3px;
  transition: background-color 0.3s;
}

.btn-contacte-nos:hover {
  background-color: var(--white);
}

/* ── Preloader (ripple) ── */
.nira-preloader {
  position: fixed;
  inset: 0;
  z-index: 999999;
  background-color: var(--white-body);
  /* opacity é animada via GSAP (script.js) — sem transition CSS aqui */
}

/* Sobrepõe o posicionamento absoluto que o .ripple-svg tem no
   .block5-home — aqui é só centrado, sem essas offsets. */
.nira-preloader .ripple-svg {
  position: static;
  width: 80px;
  max-width: 60vw;
  left: auto;
  bottom: auto;
  transform: none;
  overflow: visible;
}

/* No preloader a animação corre sempre em loop (nos outros sítios,
   ex: .block5-home, corre só 1 vez e fica no fim). */
.nira-preloader .ripple--1 {
  animation: rippleFade 2s ease-out 0s infinite;
}

.nira-preloader .ripple--2 {
  animation: rippleFade 2s ease-out 0.4s infinite;
}

.nira-preloader .ripple--3 {
  animation: rippleFinal 2s ease-out 0.8s infinite;
}

.nira-preloader-conteudo {
  position: absolute;
  inset: 0;
  height: 150px;
  top: 50%;
  transform: translateY(-50%);
  overflow: hidden;
}

/* SVG (sai de baixo para cima) e logo do preloader, só na homepage
   (entra de baixo para cima) — ambas máscaras (overflow:hidden)
   centradas no ecrã, com o próprio slide feito via GSAP (yPercent)
   em script.js. */
.nira-preloader-svg-mask,
.nira-preloader-logo-mask {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  overflow: visible;
  display: block;
}

.nira-preloader-svg-mask {
  top: 50%;
}

.nira-preloader-logo {
  display: block;
  max-width: 220px;
  height: auto;
  will-change: transform;
}

/* Home */

.block1-home {
  overflow: visible !important;
}

.block1-home .container-video {
  width: calc(100vw - var(--padding-x) * 2);
  height: calc(100dvh - var(--padding-x));
  margin-left: var(--padding-x);
  overflow: hidden;
  border-radius: 15px;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
}

.block1-home h1 {
  position: absolute;
  width: 550px;
  bottom: 150px;
  left: 50%;
  transform: translateX(-100%);
}

/* O ripple que estiver dentro do 1º vc_row da página (ex: hero da
   homepage — classe "ripple-preloader-gate" adicionada via script.js)
   só pode começar quando o preloader acabar o fade out (classe
   "preloader-ok", também via script.js, com 0.5s de delay). */
.ripple-preloader-gate .ripple--1,
.ripple-preloader-gate .ripple--2,
.ripple-preloader-gate .ripple--3 {
  display: none;
  animation-play-state: paused;
}

.ripple-preloader-gate.preloader-ok .ripple--1,
.ripple-preloader-gate.preloader-ok .ripple--2,
.ripple-preloader-gate.preloader-ok .ripple--3 {
  display: block;
  animation-play-state: running;
}

svg.ripple-svg {
  position: absolute;
  bottom: -175px;
  width: 730px;
  left: calc(50% + 55px);
  transform: translateX(-100%);
  overflow: visible;
}

.ripple {
  transform-box: fill-box;
  transform-origin: center;
  opacity: 0;
}

.ripple path {
  vector-effect: non-scaling-stroke;
}

.ripple--1 {
  --rot: 0deg;
  animation: rippleFade 2s ease-out 0s 1 forwards;
}

.ripple--2 {
  --rot: 6deg;
  animation: rippleFade 2s ease-out 0.4s 1 forwards;
}

.ripple--3 {
  --rot: -4deg;
  animation: rippleFinal 2s ease-out 0.8s 1 forwards;
}

/* Dentro do .block5-home, a animação só arranca quando o JS adicionar
   a class "ripple-ativo" (ligado ao scroll — ver script.js) — até lá
   fica parada no início (0% do keyframe: scale 0.15, opacity 0). */
.block5-home .ripple--1,
.block5-home .ripple--2,
.block5-home .ripple--3 {
  animation-play-state: paused;
}

.block5-home.ripple-ativo .ripple--1,
.block5-home.ripple-ativo .ripple--2,
.block5-home.ripple-ativo .ripple--3 {
  animation-play-state: running;
}

@keyframes rippleFade {
  0% {
    transform: scale(0.15) rotate(var(--rot));
    opacity: 0;
  }

  8% {
    opacity: 1;
  }

  70% {
    opacity: 1;
  }

  100% {
    transform: scale(1) rotate(var(--rot));
    opacity: 0;
  }
}

@keyframes rippleFinal {
  0% {
    transform: scale(0.15) rotate(var(--rot));
    opacity: 0;
  }

  8% {
    opacity: 1;
  }

  100% {
    transform: scale(1) rotate(var(--rot));
    opacity: 1;
  }
}

.block2-home {
  padding-inline: var(--padding-x);
  position: relative;
}

.h3-wrap {
  width: 550px;
  display: flex;
  gap: 35px;
}

.block2-home .h3-wrap {
  position: absolute;
  top: 80px;
  left: 50%;
  transform: translateX(-100%);
  margin-left: 80px;
}

.h3-wrap h3 {
  position: relative;
}

.h3-wrap h3:not(:last-child)::before {
  content: "";
  width: 8px;
  height: 8px;
  background-image: url("/wp-content/uploads/point-nira-brown.svg");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  top: 50%;
  right: -13.5px;
  transform: translateX(100%) translateY(-75%);
}

.block2-home .wpb_text_column {
  padding-block: 190px 100px;
  position: relative;
  max-width: 285px;
  left: 60%;
}

section.section-pinned {
  width: 100vw !important;
  height: 100svh !important;
  padding: var(--padding-x) !important;
  padding-top: calc(var(--padding-x) + var(--header-height)) !important;
  max-width: unset !important;
  inset: unset !important;
}

/* section1-home: padding controlado pelo GSAP (script.js) via estas
   variáveis CSS, animando de var(--padding-x)/calc(...) para 0px nos
   400px seguintes aos primeiros 200px parados do pin. */
section.section-pinned.section1-home {
  padding: var(--nira-section1-padding, var(--padding-x)) !important;
  padding-top: var(
    --nira-section1-padding-top,
    calc(var(--padding-x) + var(--header-height))
  ) !important;
}

/* O ScrollTrigger (pin:true) envolve a section num .pin-spacer próprio
   e copia a largura calculada nesse momento para lá — no telemóvel,
   às vezes essa medição acontece antes de o viewport assentar (ex:
   zoom/escala a estabilizar mesmo no 1º load) e fica um valor mais
   pequeno do que devia, preso nesse .pin-spacer. Como isto é só para
   .section-pinned (sempre 100vw), força-se aqui em vez de depender da
   medição do GSAP. */
.pin-spacer:has(section.section-pinned) {
  width: 100vw !important;
  margin: 0px !important;
}

section.section-pinned > div.row-wrap {
  width: 100%;
  height: 100%;
  position: relative;
}

section.section-pinned .row-wrap > div.vc_row {
  width: 100% !important;
  left: 0px !important;
  border-radius: 15px;
  height: 100% !important;
  margin: 0px !important;
}

section.section-pinned:not(.section1-home) > div.row-wrap:not(:first-child) {
  width: calc(100vw - var(--padding-x) * 2) !important;
  /* svh (e não vh) = mesma referência da section — no Chrome mobile o
     vh ignora a barra do browser e o fundo do painel ficava fora do ecrã */
  height: calc(100svh - var(--padding-x) * 2 - var(--header-height)) !important;
  top: calc(100vh + 200px);
  position: absolute;
  left: 0px;
}

section.section-pinned.section1-home > div.row-wrap:not(:first-child) {
  width: 100vw;
  height: 100vh;
  left: -30px !important;
}

section.section-pinned.transition--clip-path > div.row-wrap:not(:first-child) {
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  left: 0px;
}

section.section-pinned.transition--clip-path
  > div.row-wrap:not(:first-child)::before {
  display: none;
}

section.section-pinned.transition--clip-path > div.row-wrap {
  --wipe: 0;
  clip-path: polygon(
    0% calc(0% - 200px),
    100% calc(0% - 200px),
    100% calc((1 - var(--wipe)) * (100% + 200px)),
    0% calc((1 - var(--wipe)) * (100% + 200px))
  );
}

section.section-pinned .row-wrap:not(:first-child) > div.vc_row {
  width: 100%;
  left: 30px !important;
  height: 100%;
  overflow: visible !important;
}

section.section-pinned > div.row-wrap:not(:first-child)::before {
  content: "";
  width: 100%;
  height: 50px;
  background-color: var(--orange);
  top: var(--before-top, 10px);
  position: absolute;
  left: var(--padding-x);
  transform: translateY(-100%);
  border-top-left-radius: 15px;
  border-top-right-radius: 15px;
}

section.section-pinned .vc_col-sm-12 {
  position: unset;
}

.block3-home h2 {
  position: absolute;
  top: 110px;
  left: 180px;
}

.block3-home > .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper > h3 {
  position: absolute;
  bottom: 135px;
  left: 180px;
  transform: translateY(-100%);
}

.block3-home > .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper > h3,
.block3-home > .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper > h3 div {
  color: var(--brown);
}

.abre-popup .vc_btn3,
.fecha-popup .vc_btn3 {
  background: none !important;
  border-radius: 0px !important;
  border: 0px !important;
  padding: 0px !important;
  color: var(--white) !important;
  display: flex !important;
  gap: 16px;
  align-items: center;
}

.fecha-popup .vc_btn3 {
  justify-content: center;
  flex-direction: column;
  color: var(--brown) !important;
}

.abre-popup .vc_btn3::before,
.fecha-popup .vc_btn3::before {
  content: "";
  width: 60px;
  height: 64px;
  background-image: url("/wp-content/uploads/btn-abrir.svg") !important;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  display: block;
}

.abre-popup:hover .vc_btn3::before {
  background-image: url("/wp-content/uploads/btn-abrir-hover.svg") !important;
}

.fecha-popup .vc_btn3::before {
  background-image: url("/wp-content/uploads/btn-fechar.svg") !important;
}

.fecha-popup:hover .vc_btn3::before {
  background-image: url("/wp-content/uploads/btn-fecha-hover.svg") !important;
}

.block3-home .abre-popup {
  position: absolute;
  bottom: 120px;
  left: 180px;
}

.block3-home .vc_inner {
  position: absolute;
  bottom: 0px;
  transform: translateY(20%) scale(0);
  opacity: 0;
  left: 110px;
  width: 560px;
  height: 580px;
  background-image: url(/wp-content/uploads/shapeorange.svg);
  background-size: contain;
  background-position: top;
  background-repeat: no-repeat;
  transition: 0.5s;
}

.block3-home .vc_inner::before {
  content: "";
  width: 560px;
  height: 580px;
  background-image: url(/wp-content/uploads/shapeorange-stroke.svg);
  background-size: contain;
  background-position: top;
  background-repeat: no-repeat;
  position: absolute;
  top: 0px;
  left: 0px;
}

.block3-home .vc_inner .wpb_text_column,
.block3-home .vc_inner h3 {
  width: 390px;
  margin-inline: auto !important;
  transform: translateX(22px);
}

.block3-home .vc_inner h3 {
  color: var(--white);
  margin-block: 200px 22px !important;
}

.block3-home .fecha-popup {
  position: absolute;
  left: 52%;
  transform: translateX(-50%);
  top: 45px;
}

.block3-home .vc_inner p {
  font-size: 18px;
}

.block3-home .vc_inner.abrir {
  transform: translateY(20%) scale(1);
  opacity: 1;
  transition: 1s;
}

.block3-home .vc_inner.abrir::before {
  transition: 2s;
  transform: scale(1.2);
  opacity: 0;
}

.block4-home h2 {
  position: absolute;
  top: calc(110px + var(--padding-x) + var(--header-height));
  left: 180px;
}

.block4-home h2,
.block4-home h2 div {
  color: var(--white);
}

.block5-home {
  padding-block: 200px;
  padding-right: 100px;
}

.block5-home p {
  margin-top: 80px !important;
  width: fit-content;
  margin-left: 30px !important;
}

.block5-home .wpb_single_image {
  width: 200px;
  margin-left: 30px !important;
}

.block5-home .vc_col-sm-3 {
  width: 35vw;
  padding-left: 60px;
}

.block5-home .vc_col-sm-3 > .vc_column-inner {
  justify-content: center;
  align-items: center;
}

.block5-home svg.ripple-svg {
  bottom: 50%;
  width: calc(100% - 60px);
  left: calc(50% + 30px);
  transform: translateX(-50%) translateY(50%) scale(0.9);
  pointer-events: none;
}

.block5-home .vc_col-sm-9 {
  width: fit-content;
  flex: 1;
  margin-left: -150px;
}

.homepage-video-lightbox,
.folder-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0, 0, 0, 0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s;
}

.homepage-video-lightbox.aberto,
.folder-lightbox.aberto {
  opacity: 1;
  visibility: visible;
}

.homepage-video-lightbox-video {
  width: calc(100% - var(--padding-x) * 2);
  height: auto;
  max-height: calc(100dvh - var(--padding-x) * 2);
  object-fit: cover;
}

.homepage-video-lightbox-fecha,
.folder-lightbox-fecha {
  position: absolute;
  top: 30px;
  right: 40px;
  cursor: pointer;
  z-index: 2;
  background-image: url(/wp-content/uploads/btn-cruz.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: 60px;
  height: 64px;
}

.homepage-video-lightbox-fecha:hover,
.folder-lightbox-fecha:hover {
  filter: brightness(1.2);
}

/* Botão de fechar da lightbox do plugin 3D FlipBook (.fb3d-modal
   .cmd-close) — mesmo design do botão de fechar do vídeo/galeria. */
.fb3d-modal .cmd-close {
  position: absolute !important;
  top: 30px !important;
  right: 40px !important;
  z-index: 2 !important;
  font-size: 0 !important;
  cursor: pointer !important;
  background-image: url(/wp-content/uploads/btn-cruz.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: 60px;
  height: 64px;
}

.fb3d-modal .cmd-close:hover {
  filter: brightness(1.2);
}

.homepage-video-lightbox-aviso,
.folder-lightbox-aviso {
  color: var(--white);
  text-align: center;
  max-width: 500px;
  padding: 0 var(--padding-x);
}

section.section2-home {
  overflow: visible !important;
}

section.section2-home .row-wrap:not(:first-child) > div.vc_row {
  top: 32px !important;
  left: 0px !important;
}

section.section2-home .row-wrap:not(:first-child) {
  left: 30px !important;
}

.section2-home .row-wrap .vc_row .wpb_single_image {
  height: 55vw;
  width: 55vw;
  max-width: 1080px;
  max-height: 1080px;
  clip-path: url(#nira-galeria-capa-clip);
}

section.section2-home .row-wrap > div.vc_row {
  border-radius: 0;
  overflow: visible;
}

.section2-home .vc_col-sm-6 {
  width: fit-content;
}

.section2-home .vc_col-sm-6:first-child {
  width: 35vw;
}

.section2-home .vc_inner {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  justify-content: flex-end;
  background-color: var(--white-body);
}

.section2-home .vc_inner .vc_col-sm-6 > .vc_column-inner {
  justify-content: center;
}

.section2-home .vc_inner .vc_col-sm-6 > .vc_column-inner > .wpb_wrapper {
  position: relative;
}

.section2-home
  .vc_inner
  .vc_col-sm-6:first-child
  > .vc_column-inner
  > .wpb_wrapper::before {
  content: "";
  /* Largura controlada pelo GSAP via --nira-linha-largura (script.js),
     ligada ao scroll do .block6-home — 0 → 60vw. */
  width: var(--nira-linha-largura, 60vw);
  height: 1px;
  background-color: var(--orange);
  position: absolute;
  top: 0px;
  left: 0px;
}

.section2-home h2 {
  padding-top: 90px;
  margin-bottom: 40px !important;
}

.section2-home h3 {
  color: var(--brown);
  margin-bottom: 40px !important;
}

.section2-home .wpb_text_column {
  max-width: 470px;
}

.section2-home .vc_btn3 {
  margin-top: 60px !important;
}

.block8-home {
  overflow: visible !important;
  padding-inline: var(--padding-x);
  margin-block: 200px !important;
}

.block8-home::before {
  content: "";
  width: calc(100vw - 500px);
  height: 1px;
  background-color: var(--orange);
  position: absolute;
  top: -40px;
  left: 50%;
  transform: translateX(-50%);
}

.block8-home h2.vc_custom_heading {
  position: absolute;
  top: 80px;
  left: 10vw;
  z-index: 1;
  color: var(--white);
}

.hotspot-content {
  width: 330px;
  height: 340px;
  background-color: #eae5d8;
  clip-path: url(#nira-galeria-capa-clip);
  position: absolute;
  top: 50%;
  transform: translateY(-50%) scale(0);
  opacity: 0;
  left: 20px;
  z-index: 100;
  transition: 0.5s;
}

.hotspot-content.abre {
  transform: translateY(-50%) scale(1.2);
  opacity: 1;
  transition: 0.5s;
}

.hotspot-content h3.devvn_ihotspot_point_title {
  font-family: "CarlaSans";
  font-weight: 300;
  color: var(--brown);
  width: 210px;
  text-align: left;
  margin-block: 100px 20px !important;
  padding-top: 10px;
  border-top: 1px solid var(--orange);
  margin-inline: auto;
  font-size: 26px;
}

.hotspot-content p {
  font-size: 12px;
  line-height: 14px;
  width: 210px;
  text-align: left;
  margin-inline: auto;
}

.devvn_ihotspot_point_imagem {
  clip-path: url(#nira-hotspot-imagem-clip);
}

.point_style h3.devvn_ihotspot_point_title {
  font-weight: 400;
  font-size: 12px;
  width: 100px;
  line-height: 18px;
  letter-spacing: 1px;
  color: var(--white);
  margin: 0px;
  position: absolute;
  top: 50%;
  transform: translateY(-35%) translateX(28%);
  text-align: left;
  left: 0px;
  text-shadow: 1px 1px 3px black;
}

/* Enquanto o .hotspot-content estiver aberto (hover ou fixado por
   clique), esconde o título duplicado dentro do .point_style. */
.drag_element:has(> .hotspot-content.abre)
  > .point_style
  > h3.devvn_ihotspot_point_title {
  opacity: 0;
}

.block8-home .images_wrap::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0px;
  left: 0px;
  background-color: #5c4c454d;
  mix-blend-mode: darken;
  border-radius: 15px;
}

.drag_element {
  cursor: pointer;
}

.devvn_ihotspot_point_imagem {
  display: none;
  width: 100%;
  width: 53%;
  left: 51.5%;
  margin-top: 8px;
  height: auto;
  transform: translateX(-50%);
  position: relative;
  object-fit: cover;
  margin-bottom: 10px;
}

.devvn_ihotspot_point_imagem.sem-imagem {
  aspect-ratio: 298 / 172;
  background-color: var(--orange);
}

.block8-home img.pins_image.ihotspot_hastooltop,
.block8-home img.pins_image_hover.ihotspot_hastooltop {
  transform: scale(0.7);
}

div#hotspot-point-11 .hotspot-content {
  transform: translateY(-30%) translateX(-10%) scale(0);
}

div#hotspot-point-11 .hotspot-content.abre {
  transform: translateY(-30%) translateX(-10%) scale(1.2);
}

div#hotspot-point-13 .hotspot-content {
  transform: translateY(-12%) translateX(-22%) scale(0);
}

div#hotspot-point-13 .hotspot-content.abre {
  transform: translateY(-12%) translateX(-22%) scale(1.2);
}

div#hotspot-point-14 .hotspot-content {
  transform: translateY(-12%) translateX(-97%) scale(0);
}

div#hotspot-point-14 .hotspot-content.abre {
  transform: translateY(-12%) translateX(-97%) scale(1.2);
}

.images_wrap {
  border-radius: 15px;
  overflow: hidden;
}

.block-contactos {
  overflow: visible !important;
  padding-block: 200px;
}

.block-contactos > .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper {
  max-width: 650px;
  margin-inline: auto;
}

.block-contactos > .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper::before {
  content: "";
  width: 1100px;
  height: 1100px;
  background-color: #e4d7c44a;
  clip-path: url(#nira-blob-clip);
  position: absolute;
  top: 50%;
  left: 48%;
  transform: translateY(-50%) translateX(-50%);
}

.block-contactos h3 {
  margin-bottom: 10px !important;
}

.block-contactos h3,
.block-contactos h3 div {
  font-size: 20px;
  line-height: 24px;
  color: var(--brown);
}

.block-contactos h2 {
  margin-block: 35px 30px !important;
}

.block-contactos h2,
.block-contactos h2 div {
  font-size: 24px;
  line-height: 28px;
  font-family: "CooperHewitt";
}

.block-contactos p.vc_custom_heading,
.block-contactos p.vc_custom_heading div {
  color: var(--orange);
  z-index: 1;
  position: relative;
}

.quform form.quform-form input,
.quform form.quform-form select,
.quform form.quform-form textarea {
  background-color: transparent;
  border: 0px;
  border-radius: 0px;
  border-bottom: 1px solid var(--brown);
}

.quform form.quform-form input,
.quform form.quform-form select,
.quform form.quform-form textarea,
.quform-label label {
  padding-inline: 18px;
  padding-bottom: 10px;
}

.quform form.quform-form input,
.quform form.quform-form input::placeholder,
.quform form.quform-form select,
.quform form.quform-form textarea,
.quform form.quform-form textarea::placeholder,
.quform-label label {
  font-family: "CooperHewitt";
  font-weight: 400;
  font-size: 12px;
  line-height: 14px;
  color: var(--brown);
  text-transform: uppercase;
  letter-spacing: 2px;
}

.quform form.quform-form textarea {
  padding-block: 18px;
  border: 1px solid var(--brown);
  height: 80px;
  border-radius: 5px;
}

.quform form.quform-form textarea::placeholder {
  opacity: 0.5;
}

.block-contactos .quform-label {
  display: none;
}

.block-contactos .quform-element-textarea .quform-label {
  display: block;
}

.quform-label > label > .quform-required {
  color: var(--brown);
}

.quform-label {
  margin-bottom: -5px;
}

.quform-spacer {
  padding-bottom: 20px;
}

.quform-element-checkbox .quform-spacer {
  padding-bottom: 0px;
}

.quform-options input {
  display: none;
}

.quform-options label.quform-option-label::before {
  content: "";
  width: 14px;
  height: 14px;
  border-radius: 4px;
  background-color: var(--dark-white);
  border: 1.5px solid var(--brown);
  position: absolute;
  left: -15px;
  top: -3px;
}

.quform-options {
  position: relative;
  margin-left: 20px;
}

.quform-options-simple .quform-option .quform-option-label {
  line-height: 14px;
  font-size: 10px;
}

.quform-options input:hover ~ label::before {
  filter: brightness(0.95);
}

.quform-options input:checked ~ label::after {
  content: "x";
  position: absolute;
  color: var(--brown);
  top: -1.5px;
  left: -10px;
  font-size: 12px;
}

span.quform-option-text span,
span.quform-option-text a,
span.quform-option-text {
  font-size: 10px;
  line-height: 14px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

span.quform-option-text a:hover {
  color: var(--orange);
}

.quform-element-submit button {
  background-color: var(--orange);
  border-radius: 15px;
  border: 0px;
  width: 120px;
  height: 52px;
  padding-top: 8px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 40px !important;
  transition: background-color 0.3s;
}

.quform-element-submit button:hover {
  background-color: var(--white);
}

.quform-element-submit button span {
  font-size: 16px;
  line-height: 16px;
  font-weight: 400;
}
.quform-element-submit {
  margin: 0px 0;
  display: flex;
  justify-content: center;
}
.block-logo .wpb_single_image {
  width: 250px;
  margin-inline: auto !important;
  margin-block: 120px 120px !important;
}

.block-madre {
  height: 700px;
  min-height: unset !important;
  background-color: var(--yellow);
  width: calc(100% - var(--padding-x) * 2) !important;
  margin-left: var(--padding-x) !important;
  border-top-left-radius: 15px;
  border-top-right-radius: 15px;
  overflow: visible !important;
  /* As 2 colunas formam 1 bloco centrado na secção (horizontal e
     vertical), alinhadas pelo topo — logotipo ao nível do "Quem Somos".
     A coluna do texto encolhe até 0 se não houver espaço. */
  display: grid;
  grid-template-columns: auto minmax(0, 611px);
  justify-content: center;
  align-content: center;
  align-items: stretch; /* as 2 colunas com a mesma altura */
  column-gap: 100px;
  /* margem mínima dentro do fundo amarelo em ecrãs mais estreitos */
  padding-inline: 40px;
  box-sizing: border-box;
}

/* Clearfix do WPBakery (.vc_row::before) — não pode contar como
   célula da grelha (o CSS do WPBakery carrega depois, daí o !important) */
.block-madre.vc_row::before {
  display: none !important;
}

/* Posição fixa de cada coluna na grelha: logo | texto, na mesma linha */
.block-madre > .vc_col-sm-6:first-child {
  grid-column: 1;
  grid-row: 1;
}

.block-madre > .vc_col-sm-6:last-child {
  grid-column: 2;
  grid-row: 1;
}

.block-madre .wpb_single_image {
  width: 280px;
  position: relative;
}

.block-madre p.vc_custom_heading {
  position: relative;
}

/* Col 1: logotipo em cima (ao nível do título) e link em baixo (ao
   nível do fim do texto) — a coluna tem a altura da col 2 */
.block-madre .vc_col-sm-6:first-child > .vc_column-inner,
.block-madre .vc_col-sm-6:first-child > .vc_column-inner > .wpb_wrapper {
  height: 100%;
}

.block-madre .vc_col-sm-6:first-child > .vc_column-inner > .wpb_wrapper {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
}

.block-madre p.vc_custom_heading a {
  position: relative;
  height: fit-content;
  display: inline-block;
  overflow: hidden;
}

.block-madre p.vc_custom_heading a span:last-child {
  position: absolute;
  bottom: 0px;
  left: 0px;
  transform: translateY(100%);
}

.block-madre .vc_col-sm-6 {
  width: auto; /* largura vem da grelha do .block-madre */
  height: auto;
}

.block-madre h2 {
  margin-bottom: 35px !important;
  width: 450px;
  max-width: 100%; /* encolhe se a col 2 não tiver espaço */
}

.block-madre h2,
.block-madre h2 div {
  color: var(--black);
  z-index: 1;
  position: relative;
}

.block-madre .wpb_text_column {
  width: 611px;
  max-width: 100%; /* encolhe se a col 2 não tiver espaço */
  z-index: 1;
  position: relative;
}

.block-madre .wpb_text_column p,
.block-madre .wpb_text_column p div,
.block-madre .wpb_text_column p span {
  font-size: 16px;
  line-height: 20px;
  color: var(--black);
}

/* Col 2: "Quem Somos" + texto */
.block-madre .vc_col-sm-6:last-child > .vc_column-inner > .wpb_wrapper {
  position: relative;
  z-index: 1;
}

.block-madre .vc_col-sm-6:last-child > .vc_column-inner > .wpb_wrapper::before {
  content: "";
  width: 850px;
  height: 890px;
  clip-path: url(#nira-galeria-capa-clip);
  background-color: var(--orange);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  display: none;
}

.block-madre::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0px;
  width: 100%;
  height: 15px;
  border-top-left-radius: 15px;
  border-top-right-radius: 15px;
  background-color: var(--dark-brown);
}

/* Footer */

footer {
  background-color: var(--dark-brown);
  width: calc(100% - var(--padding-x) * 2);
  margin-left: var(--padding-x);
  height: 100px;
}

.wrapper-footer {
  width: 100%;
  height: 100%;
  position: relative;
}

footer .col-left {
  display: flex;
  flex-direction: column;
  left: 30px;
  width: 50%;
  position: absolute;
  gap: 24px;
  bottom: 10px;
}

footer .creditos {
  font-size: 10px;
  color: var(--orange);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-left: 33.5%;
}

ul.menu-legal {
  display: flex;
  gap: 30px;
  margin-left: 33.5%;
}

ul.menu-legal li,
ul.menu-legal li a {
  color: var(--orange);
  font-size: 10px;
  line-height: 10px;
  font-weight: 400;
}

ul.menu-legal li a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

ul.menu-legal li a:hover {
  color: var(--white);
}

footer .bspacy {
  position: absolute;
  top: 50%;
  right: 8%;
  transform: translateY(-50%);
}

/* Casas */

.block1-casas h1 {
  width: 600px;
  left: calc(50% + 35px);
}

.block1-casas .container-video::before {
  content: "";
  width: calc(100% - var(--padding-x) * 2);
  height: 100%;
  background: linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.4) 0%,
    rgba(0, 0, 0, 0.15) 40%
  );
  position: absolute;
  top: 0px;
  left: 30px;
  border-bottom-left-radius: 15px;
  border-bottom-right-radius: 15px;
}

.block2-casas .wpb_text_column {
  max-width: 330px;
}

.block3-casas h2 {
  margin-bottom: 30px !important;
}

.block3-casas h2,
.block3-casas h2 div {
  color: var(--white);
}

.block3-casas h3,
.block3-casas h3 div {
  color: var(--white);
}

.block3-casas .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper {
  position: absolute;
  bottom: 80px;
  left: 30%;
}

.block3-casas::before {
  content: "";
  width: 100%;
  height: 100%;
  background: linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.55) 0%,
    rgba(0, 0, 0, 0) 70%
  );
  position: absolute;
  top: 0px;
  left: 0px;
  border-bottom-left-radius: 15px;
  border-bottom-right-radius: 15px;
}

.block4-casas h2 {
  color: var(--white);
  margin-bottom: 30px !important;
  width: fit-content;
  z-index: 1;
  position: relative;
  top: 20px;
  font-size: 50px;
}

.block4-casas table {
  border-spacing: 0px;
}

.block4-casas table th {
  text-transform: uppercase;
  font-weight: 400;
  font-size: 16px;
}

.block4-casas table th:nth-child(2),
.block4-casas table tbody td:first-child {
  padding-right: 20px;
}

.block4-casas table tbody td:first-child {
  padding-left: 12px;
  font-size: 20px;
}

.block4-casas table tbody td {
  color: var(--white);
  padding-block: 22px 5px;
  border-bottom: 1px solid var(--brown);
  font-weight: 300;
}

.block4-casas table tbody td,
.block4-casas table tbody td span {
  font-size: 16px;
}

.block4-casas .wpb_text_column,
.block4-casas .wpb_text_column .wpb_wrapper {
  width: fit-content;
  height: fit-content;
}

.block4-casas .wpb_text_column {
  z-index: 1;
  position: relative;
  top: 20px;
}

.block4-casas .vc_inner .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper {
  display: flex;
  flex-direction: column;
  width: fit-content;
  align-items: center;
  position: absolute;
  bottom: 100px;
  left: 200px;
}

.block4-casas
  .vc_inner
  .vc_col-sm-12
  > .vc_column-inner
  > .wpb_wrapper::before {
  content: "";
  width: 560px;
  height: 580px;
  background-color: var(--orange);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  clip-path: url(#nira-galeria-capa-clip);
}

.block4-casas .abre-popup,
.block4-casas .fecha-popup {
  display: none !important;
}

.vivencia-nira-conteudo {
  display: none;
}

.vivencia-nira-conteudo.ativo {
  display: block;
}

.vivencia-nira-imagem {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-top-left-radius: 15px;
  border-bottom-left-radius: 15px;
  overflow: hidden;
  z-index: 1;
}

.vivencia-nira-imagem img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  transition: clip-path 0.6s ease;
}

.vivencia-nira-imagem.ativo {
  z-index: 2;
}

/* Imagem que está a sair — fica por cima (para se ver a encolher) e o
   clip-path dela é que anima até colapsar, revelando a de baixo. */
.vivencia-nira-imagem.vivencia-sai {
  z-index: 3;
}

.vivencia-nira-imagem.vivencia-sai img {
  clip-path: polygon(0% 0%, 100% 0%, 100% 0%, 0% 0%);
}

.vivencia-nira {
  width: 100vw;
  height: calc(100vh - var(--padding-x) * 2 - 65px);
  display: flex;
  justify-content: flex-end;
  margin-top: 300px;
  padding-left: 100px;
}

.vivencia-nira-imagens {
  width: 60%;
  position: relative;
}

.vivencia-nira-sidebar {
  width: fit-content;
}

span.vivencia-nira-tab-nome {
  font-family: "CarlaSans";
  color: var(--orange);
  font-size: 42px;
}

.vivencia-nira-tab {
  display: flex;
  align-items: center;
  gap: 30px;
  opacity: 50%;
  transition: 0.5s;
  transform: scale(1);
  transform-origin: left;
  cursor: pointer;
}

.vivencia-nira-tab.ativo,
.vivencia-nira-tab:hover {
  opacity: 1;
  transition: 0.5s;
  transform: scale(1.2);
}

.vivencia-nira-tabs {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-top: 80px;
  padding-bottom: 130px;
  border-top: 1px solid var(--orange);
  margin-top: 60px;
}

.vivencia-nira-descricao {
  width: 540px;
  padding-right: 120px;
  margin-top: 25px;
}

.vivencia-nira-titulo {
  font-family: "CarlaSans";
  font-size: 58px;
  line-height: 58px;
  margin-bottom: 20px;
}

.vivencia-nira-subtitulo {
  font-size: 24px;
  line-height: 24px;
}

.block6-casas {
  padding-top: 240px;
  overflow: visible !important;
}

.block6-casas h2 {
  position: relative;
  z-index: 1;
}

.info-plantas {
  display: flex;
  align-items: center;
  padding-block: 50px 75px;
  gap: 60px;
}

.info-plantas-sidebar {
  position: relative;
  height: fit-content;
}

.info-plantas-sidebar::before {
  content: "";
  width: 650px;
  height: 670px;
  position: absolute;
  top: 55%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  background-color: #e4d7c44a;
  clip-path: url(#nira-galeria-capa-clip);
}

.info-plantas-areas,
.info-plantas-imagem {
  display: none;
}

.info-plantas-areas.ativo,
.info-plantas-imagem.ativo {
  display: block;
}

.info-plantas-tabs {
  display: flex;
  gap: 50px;
  padding-block: 30px;
  padding-left: 25px;
}

.info-plantas-tab {
  position: relative;
}

span.info-plantas-tab-nome {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  position: relative;
}

span.info-plantas-tab-nome::before,
.info-plantas-aumentar span.info-plantas-aumentar-icon::before,
.info-plantas-lightbox-cruz::before {
  content: "";
  background-image: url(/wp-content/uploads/btn-stroke-orange.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: 68px;
  height: 70px;
  position: absolute;
  top: 45%;
  left: 48%;
  transform: translateY(-50%) translateX(-50%);
}

span.info-plantas-tab-nome:hover::before,
.info-plantas-tab.ativo span.info-plantas-tab-nome::before,
.info-plantas-aumentar:hover span.info-plantas-aumentar-icon::before {
  background-image: url(/wp-content/uploads/btn-background-orange.svg);
}

.info-plantas-tabs span span {
  color: var(--orange);
  font-size: 15px;
  letter-spacing: 1px;
  line-height: 15px;
  width: fit-content;
  display: block;
  text-transform: uppercase;
  z-index: 1;
  position: relative;
}

.info-plantas-tabs span.info-plantas-tab-nome:hover span,
.info-plantas-tab.ativo span.info-plantas-tab-nome span {
  color: var(--white);
}

.info-plantas-tabs span.info-plantas-tab-designacao {
  font-size: 10px;
  line-height: 10px;
}

.info-plantas-areas {
  padding-top: 100px;
  z-index: 1;
  position: relative;
}

.info-plantas-area:not(:last-child) {
  margin-bottom: 38px;
}

.info-plantas-area {
  display: flex;
}

span.info-plantas-area-nome {
  width: 210px;
  display: block;
  font-weight: 400;
  font-size: 18px;
  line-height: 18px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

span.info-plantas-area-valor {
  font-size: 18px;
  line-height: 18px;
  width: 135px;
  text-align: right;
}

.info-plantas-imagens {
  position: relative;
  z-index: 1;
}

.info-plantas-imagem {
  width: calc(100% - 80px);
}

.info-plantas-imagem img {
  width: 100%;
}

.info-plantas-aumentar-wrap {
  position: relative;
  display: flex;
  justify-content: space-between;
  padding-left: 100px;
}

.info-plantas-pisos {
  flex-direction: row;
  display: none;
  gap: 15px;
  z-index: 2;
}

.info-plantas-pisos.ativo {
  display: flex;
}

.info-plantas-piso {
  background-color: transparent;
  border: 1px solid var(--orange);
  border-radius: 8px;
  padding: 9px 65px 8px;
  cursor: pointer;
  font-family: "CooperHewitt";
  font-size: 10px;
  line-height: 11px;
  color: var(--orange);
  letter-spacing: 1px;
  text-transform: uppercase;
  transition:
    background-color 0.3s,
    color 0.3s;
  white-space: nowrap;
}

.info-plantas-piso.ativo,
.info-plantas-piso:hover {
  background-color: var(--orange);
  color: var(--white);
}

.info-plantas-aumentar {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding-right: 150px;
  gap: 40px;
  cursor: pointer;
}

.info-plantas-aumentar span {
  font-size: 14px;
  color: var(--orange);
  text-transform: uppercase;
  letter-spacing: 1px;
  line-height: 14px;
  font-weight: 400;
}

.info-plantas-aumentar span.info-plantas-aumentar-icon {
  position: relative;
}

.info-plantas-aumentar span.info-plantas-aumentar-icon span {
  font-size: 30px;
  line-height: 30px;
  position: relative;
  z-index: 1;
}

.info-plantas-aumentar span.info-plantas-aumentar-icon::before {
  width: 60px;
  height: 62px;
  top: 40%;
}

.info-plantas-aumentar:hover span.info-plantas-aumentar-icon span {
  color: var(--white);
}

/* ── Lightbox (Aumentar planta) ── */
.info-plantas-lightbox {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(0, 0, 0, 0.8);
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.info-plantas-lightbox.ativo {
  display: flex;
}

.info-plantas-lightbox .info-plantas-lightbox-img {
  max-width: 90vw;
  max-height: 90vh;
  object-fit: contain;
  display: block;
  transform-origin: center center;
  user-select: none;
  -webkit-user-drag: none;
}

.info-plantas-lightbox .info-plantas-lightbox-cruz {
  position: absolute;
  top: 30px;
  right: 30px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.info-plantas-lightbox .info-plantas-lightbox-cruz span {
  position: absolute;
  width: 24px;
  height: 1px;
  background: var(--white);
  display: block;
  z-index: 1;
}

.info-plantas-lightbox .info-plantas-lightbox-cruz:hover span {
  background: var(--orange);
}

.info-plantas-lightbox .info-plantas-lightbox-cruz span:first-child {
  transform: rotate(45deg);
}

.info-plantas-lightbox .info-plantas-lightbox-cruz span:last-child {
  transform: rotate(-45deg);
}

/* ── Controlos de zoom ── */
.info-plantas-lightbox .info-plantas-lightbox-controls {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 2;
}

.info-plantas-lightbox .info-plantas-lightbox-controls button {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.4);
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  font-size: 18px;
  line-height: 2;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}

.info-plantas-lightbox
  .info-plantas-lightbox-controls
  button:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.2);
}

.info-plantas-lightbox .info-plantas-lightbox-controls button:disabled {
  opacity: 0.3;
  cursor: default;
}

.info-plantas-lightbox-cruz::before {
  content: "";
  background-image: url(/wp-content/uploads/btn-background-orange.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: 68px;
  height: 70px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
}

.info-plantas-lightbox-cruz:hover::before {
  background-image: url(/wp-content/uploads/btn-stroke-orange.svg);
}

/* Docs */

.block1-doc {
  max-width: 1200px !important;
  margin-inline: auto !important;
  left: 0px !important;
  margin-block: 150px;
  padding-inline: var(--padding-x);
}

.block1-doc h2 {
  margin-block: 40px 15px;
  font-size: 30px;
  line-height: 35px;
}

.block1-doc h1.vc_custom_heading {
  color: var(--orange);
  margin-bottom: 40px !important;
  font-weight: 500;
  font-size: 50px;
  line-height: 50px;
}

.block1-doc p,
.block1-doc li,
.block1-doc a,
.block1-doc span,
.block1-doc div {
  font-weight: 300;
  color: var(--black);
}

.block1-doc a {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.block1-doc li {
  list-style: disc;
}

.block1-doc ul {
  padding-left: 20px;
}

/* Media Queries */

@media only screen and (max-height: 950px) {
  /* Casas */

  .vivencia-nira-tabs {
    padding-top: 40px;
    padding-bottom: 80px;
  }

  span.vivencia-nira-tab-logo img {
    width: 50px;
  }

  span.vivencia-nira-tab-nome {
    font-size: 36px;
  }

  .vivencia-nira-titulo {
    font-size: 45px;
    line-height: 45px;
  }
}

@media only screen and (max-height: 800px) {
  /* Casas */

  .vivencia-nira-tabs {
    padding-top: 40px;
    padding-bottom: 80px;
    gap: 10px;
  }

  .vivencia-nira-tab {
    gap: 15px;
  }

  span.vivencia-nira-tab-logo img {
    width: 40px;
  }

  span.vivencia-nira-tab-nome {
    font-size: 28px;
  }

  .vivencia-nira-titulo {
    font-size: 38px;
    line-height: 38px;
  }
}

@media only screen and (max-width: 1680px) {
  /* Homepage */

  .block5-home .vc_col-sm-9 {
    margin-left: -100px;
  }

  .hotspot-content {
    left: -12px;
  }

  .hotspot-content.abre {
    transform: translateY(-50%) scale(1);
  }

  div#hotspot-point-11 .hotspot-content.abre {
    transform: translateY(-30%) translateX(-10%) scale(1);
  }

  div#hotspot-point-13 .hotspot-content {
    transform: translateY(-12%) translateX(-25%) scale(0);
  }

  div#hotspot-point-13 .hotspot-content.abre {
    transform: translateY(-12%) translateX(-25%) scale(1);
  }

  div#hotspot-point-14 .hotspot-content {
    transform: translateY(-12%) translateX(-75%) scale(0);
  }

  div#hotspot-point-14 .hotspot-content.abre {
    transform: translateY(-12%) translateX(-75%) scale(1);
  }
}

@media only screen and (max-width: 1441px) {
  /* Estrutura */

  h1,
  h1 div,
  h2,
  h2 div {
    font-size: 50px;
    line-height: 54px;
  }

  h3,
  h3 div {
    font-size: 20px;
    line-height: 25px;
  }

  p,
  li,
  a,
  span,
  div {
    font-size: 16px;
    line-height: 22px;
  }

  .vc_btn3-container.vc_btn3-inline.vc_do_btn a.vc_btn3::before,
  .vc_btn3-container.vc_btn3-inline.vc_do_btn button.vc_btn3::before {
    width: 45px;
    height: 50px;
  }

  /* Homepage */

  .block1-home svg.ripple-svg {
    width: 620px;
    left: calc(50% + -35px);
    bottom: -220px;
  }

  .block1-home h1 {
    bottom: 90px;
  }

  .block2-home .h3-wrap {
    margin-left: 50px;
  }

  .block3-home h2 {
    top: 60px;
    left: 90px;
  }

  .block4-home h2 {
    top: calc(60px + var(--padding-x) + var(--header-height));
    left: 90px;
  }

  .block3-home > .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper > h3 {
    bottom: 100px;
    left: 90px;
  }

  .block3-home .abre-popup {
    bottom: 80px;
    left: 90px;
  }

  .block3-home .vc_inner {
    left: 30px;
    width: 500px;
    height: 520px;
  }

  .block3-home .vc_inner::before {
    content: "";
    width: 500px;
    height: 520px;
  }

  .block5-home .wpb_single_image {
    width: 140px;
    margin-left: 0px !important;
  }

  .block5-home p {
    margin-top: 30px !important;
    margin-left: -10px !important;
  }

  .section2-home .wpb_text_column {
    max-width: 375px;
  }

  .section2-home h2,
  .section2-home h2 div {
    font-size: 44px;
    line-height: 48px;
  }

  .block-contactos h2,
  .block-contactos h2 div {
    font-size: 20px;
    line-height: 24px;
  }

  .block-contactos h3,
  .block-contactos h3 div {
    font-size: 16px;
    line-height: 20px;
  }

  .block-madre {
    height: 600px;
  }

  .block-madre .wpb_single_image {
    width: 200px;
  }

  /* Espaço entre o logotipo e o texto */
  .block-madre {
    column-gap: 80px;
  }

  .block-madre h2,
  .block-madre h2 div {
    font-size: 44px;
    line-height: 48px;
  }

  .block-madre .wpb_text_column p,
  .block-madre .wpb_text_column p span,
  .block-madre .wpb_text_column p div {
    font-size: 14px;
    line-height: 18px;
  }

  .block-madre
    .vc_col-sm-6:last-child
    > .vc_column-inner
    > .wpb_wrapper::before {
    width: 700px;
    height: 740px;
    left: 44%;
  }

  /* Footer */

  footer .creditos,
  ul.menu-legal {
    margin-left: 19.5%;
  }

  /* Casas */

  .block4-casas .vc_inner .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper {
    transform: scale(0.8);
    transform-origin: bottom;
  }

  .vivencia-nira {
    margin-top: 200px;
  }
  .block-logo .wpb_single_image {
    width: 220px;
    margin-inline: auto !important;
    margin-block: 110px 110px !important;
  }
}

@media only screen and (max-width: 1281px) {
  /* Homepage */

  .block1-home h1 {
    left: 150px;
    transform: none;
  }

  .block1-home svg.ripple-svg {
    left: 45px;
    bottom: -185px;
    transform: none;
  }

  .block2-home .h3-wrap {
    margin-left: 190px;
    top: 70px;
    left: 0;
    transform: none;
  }

  .block2-home .wpb_text_column {
    padding-block: 150px 60px;
  }

  .block5-home .wpb_single_image {
    width: 140px;
    margin-left: -20px !important;
  }

  .block5-home p {
    margin-top: 30px !important;
    margin-left: -30px !important;
  }

  .block5-home svg.ripple-svg {
    transform: translateX(-66%) translateY(50%);
  }

  .block5-home .vc_col-sm-3 {
    padding-left: 0px;
  }

  .block8-home h2.vc_custom_heading {
    top: 50px;
    left: 50px;
    transform: scale(0.8);
    transform-origin: left;
  }

  /* Casas */

  .vivencia-nira {
    padding-left: var(--padding-x);
  }

  .info-plantas-sidebar::before {
    width: 500px;
    height: 520px;
  }

  span.info-plantas-tab-nome {
    width: 55px;
  }

  span.info-plantas-tab-nome::before,
  .info-plantas-aumentar span.info-plantas-aumentar-icon::before,
  .info-plantas-lightbox-cruz::before {
    width: 55px;
    height: 60px;
  }

  .info-plantas-tabs span span {
    font-size: 12px;
    letter-spacing: 1px;
    line-height: 12px;
  }

  .info-plantas-tabs span.info-plantas-tab-designacao {
    font-size: 8px;
    line-height: 8px;
  }

  .info-plantas-tabs {
    gap: 10px;
  }

  .info-plantas-areas {
    padding-top: 45px;
  }

  .info-plantas-piso {
    padding: 9px 35px 8px;
  }

  span.info-plantas-area-nome {
    font-size: 16px;
    line-height: 16px;
    width: 190px;
  }

  .info-plantas-area:not(:last-child) {
    margin-bottom: 20px;
  }

  .info-plantas {
    gap: 30px;
  }
}

@media only screen and (max-width: 1100px) {
  /* Estrutura */

  h1,
  h1 div,
  h2,
  h2 div {
    font-size: 38px;
    line-height: 42px;
  }

  h3,
  h3 div {
    font-size: 16px;
    line-height: 20px;
  }

  p,
  li,
  a,
  span,
  div {
    font-size: 14px;
    line-height: 18px;
  }

  header li,
  header li a,
  header li a div,
  header li a span {
    font-size: 10px;
    line-height: 14px;
  }

  /* Header */

  header.change ul.main-menu {
    gap: 20px;
  }

  .btn-contacte-nos {
    right: 80px;
  }

  /* Homepage */

  .block1-home h1 {
    left: 150px;
    transform: none;
  }

  .block1-home svg.ripple-svg {
    left: 45px;
    bottom: -185px;
    transform: none;
    width: 535px;
  }

  .block2-home .h3-wrap {
    margin-left: 150px;
  }

  .block2-home .wpb_text_column {
    padding-block: 150px 60px;
  }

  .block3-home .vc_inner p {
    font-size: 14px;
    line-height: 16px;
  }

  .block3-home .vc_inner {
    left: 30px;
    width: 420px;
    height: 460px;
  }

  .block3-home .vc_inner h3 {
    margin-block: 165px 22px !important;
  }

  .block3-home .vc_inner .wpb_text_column,
  .block3-home .vc_inner h3 {
    width: 310px;
  }

  .block3-home .vc_inner::before {
    width: 420px;
    height: 440px;
  }

  .block5-home .wpb_single_image {
    width: 100px;
    margin-left: -10px !important;
  }

  .block5-home svg.ripple-svg {
    transform: translateX(-66%) translateY(50%);
  }

  .block5-home .vc_col-sm-3 {
    padding-left: 0px;
  }

  .block5-home .vc_col-sm-9 {
    margin-left: -125px;
  }

  .section2-home h2 {
    padding-top: 40px;
  }

  .section2-home h2,
  .section2-home h2 div {
    font-size: 34px;
    line-height: 38px;
  }

  .section2-home .wpb_text_column {
    max-width: 270px;
  }

  .section2-home .vc_btn3 {
    margin-top: 30px !important;
  }

  .block8-home img.pins_image.ihotspot_hastooltop,
  .block8-home img.pins_image_hover.ihotspot_hastooltop {
    transform: scale(0.5);
  }

  .block8-home {
    margin-block: 200px 100px !important;
  }

  .block8-home h2.vc_custom_heading {
    top: 30px;
  }

  .point_style h3.devvn_ihotspot_point_title {
    font-size: 9px;
    width: 70px;
    line-height: 12px;
  }

  .quform form.quform-form input,
  .quform form.quform-form input::placeholder,
  .quform form.quform-form select,
  .quform form.quform-form textarea,
  .quform form.quform-form textarea::placeholder,
  .quform-label label {
    font-size: 10px;
    line-height: 12px;
    letter-spacing: 1px;
  }

  span.quform-option-text span,
  span.quform-option-text a,
  span.quform-option-text,
  .quform-options-simple .quform-option .quform-option-label,
  .quform-option {
    font-size: 8px;
    line-height: 10px;
  }

  .quform-option .quform-option-label {
    padding-left: 0px;
  }

  .quform-option {
    padding-left: 8px;
  }

  .quform-options label.quform-option-label::before {
    left: -26px;
  }

  .quform-options input:checked ~ label::after {
    top: -0.5px;
    left: -21px;
  }

  .quform-element-submit button {
    width: 100% !important;
    height: fit-content;
    padding: 10px 20px;
    display: block;
  }
  .quform-element-submit button span {
    font-size: 13px;
    line-height: 13px;
  }

  .quform-spacer {
    padding-bottom: 14px;
  }

  .block-contactos > .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper {
    max-width: 520px;
  }

  .block-contactos > .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper::before {
    width: 850px;
    height: 850px;
  }

  .block-logo .wpb_single_image {
    width: 210px;
    margin-block: 100px 100px !important;
  }

  .block-madre h2,
  .block-madre h2 div {
    font-size: 34px;
    line-height: 40px;
  }

  .block-madre .wpb_text_column p,
  .block-madre .wpb_text_column p span,
  .block-madre .wpb_text_column p div {
    font-size: 12px;
    line-height: 16px;
  }

  .block-madre
    .vc_col-sm-6:last-child
    > .vc_column-inner
    > .wpb_wrapper::before {
    width: 600px;
    height: 640px;
    left: 33%;
  }

  .block-madre {
    height: 500px;
  }

  /* Espaço entre o logotipo e o texto */
  .block-madre {
    column-gap: 60px;
  }

  /* Casas */

  .block1-casas h1 {
    left: 140px;
    transform: none;
  }

  .block3-casas .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper {
    bottom: 50px;
    left: 80px;
  }

  .block4-casas
    .vc_inner.vc_col-sm-12
    > .vc_column-inner
    > .wpb_wrapper::before {
    width: 450px;
    height: 470px;
  }

  .block4-casas .vc_inner .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper {
    bottom: 60px;
  }

  .block4-casas
    .vc_inner
    .vc_col-sm-12
    > .vc_column-inner
    > .wpb_wrapper::before {
    width: 490px;
    height: 500px;
  }

  .vivencia-nira-sidebar {
    width: fit-content;
    padding-left: var(--padding-x);
  }

  span.vivencia-nira-tab-logo img {
    width: 30px;
  }

  span.vivencia-nira-tab-nome {
    font-size: 20px;
  }

  .vivencia-nira-tabs {
    padding-top: 20px;
    padding-bottom: 40px;
    margin-top: 30px;
  }

  .vivencia-nira-titulo {
    font-size: 30px;
    line-height: 38px;
  }

  .vivencia-nira-subtitulo {
    font-size: 20px;
    line-height: 20px;
  }

  .vivencia-nira-descricao {
    width: 480px;
    padding-right: 65px;
    margin-top: 15px;
  }

  .info-plantas {
    gap: 30px;
    padding-left: var(--padding-x) !important;
  }

  span.info-plantas-area-nome {
    font-size: 14px;
    line-height: 14px;
    width: 165px;
  }

  .info-plantas-area:not(:last-child) {
    margin-bottom: 14px;
  }

  span.info-plantas-area-valor {
    font-size: 14px;
    line-height: 14px;
    width: 90px;
  }

  .info-plantas-aumentar span {
    font-size: 12px;
    line-height: 12px;
  }

  .info-plantas-aumentar span.info-plantas-aumentar-icon::before,
  .info-plantas-lightbox-cruz::before {
    width: 45px;
    height: 45px;
  }

  .info-plantas-aumentar span.info-plantas-aumentar-icon span {
    font-size: 24px;
    line-height: 25px;
  }

  .block6-casas h2 {
    padding-inline: var(--padding-x) !important;
  }

  .info-plantas-sidebar::before {
    width: 400px;
    height: 420px;
  }

  .info-plantas-aumentar-wrap {
    padding-left: 35px;
  }
}

@media only screen and (max-width: 991px) {
  /* Header */

  .btn-contacte-nos {
    right: 55px;
    height: 46px;
    font-size: 12px;
    line-height: 12px;
    padding-inline: 24px;
  }

  /* Homepage */

  .block1-home svg.ripple-svg {
    bottom: -150px;
    width: 510px;
  }

  .block2-home .wpb_text_column {
    left: unset;
    margin-left: auto !important;
    max-width: 200px;
    margin-right: 50px !important;
  }

  .block2-home .wpb_text_column {
    padding-block: 170px 0px;
  }

  .block5-home {
    flex-direction: column;
    align-items: center;
    padding-right: 0px !important;
    padding-top: 300px;
  }

  .block5-home .wpb_single_image {
    width: 100px;
    margin-left: 0px !important;
    margin-inline: auto !important;
  }

  .block5-home p {
    margin-top: 30px !important;
    margin-left: 0px !important;
  }

  .block5-home .vc_col-sm-3 {
    width: 400px;
  }

  .block5-home svg.ripple-svg {
    transform: translateX(-60%) translateY(50%);
  }

  .block5-home .vc_col-sm-9 {
    margin-left: 0;
    width: 100vw;
  }

  .homepage-video-lightbox-fecha,
  .folder-lightbox-fecha {
    width: 40px;
    height: 44px;
  }

  .fb3d-modal .cmd-close {
    width: 40px;
    height: 44px;
  }

  .section2-home .vc_inner {
    flex-direction: column-reverse;
    align-items: center;
    /*height: 100dvh;*/
    /*padding-top: calc(var(--padding-x) + 60px);*/
  }

  .section2-home .row-wrap .vc_row .wpb_single_image {
    height: 35vh;
    width: 35vh;
  }

  .section2-home .vc_col-sm-6:first-child {
    width: 100vw;
    margin-top: 30px;
  }

  .section2-home
    .vc_inner
    .vc_col-sm-6:first-child
    > .vc_column-inner
    > .wpb_wrapper::before {
    width: 40vh;
    left: 50%;
    transform: translateX(-50%);
  }

  .section2-home h2 div,
  .section2-home h3 div {
    width: fit-content;
    margin-inline: auto;
  }

  .section2-home h2,
  .section2-home h3 {
    margin-inline: auto !important;
    text-align: center !important;
  }

  .section2-home .wpb_text_column {
    max-width: 70vw;
    text-align: center;
    margin-inline: auto !important;
  }

  .section2-home .vc_btn3-container {
    margin-inline: auto !important;
    display: block !important;
    width: fit-content;
  }

  .section2-home h3 {
    margin-bottom: 20px !important;
  }

  .block8-home {
    margin-block: 100px !important;
    margin-left: 0px !important;
  }

  .block8-home h2.vc_custom_heading {
    top: 0px;
    transform: none;
    left: 0px;
    position: relative;
    color: var(--brown);
    text-align: center !important;
    margin-bottom: 30px !important;
  }

  .pin-numero-wrap {
    position: relative;
    width: fit-content;
    height: fit-content;
  }

  span.pin-numero {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-40%);
    font-size: 10px;
    z-index: 1;
  }

  .drag_element h3.devvn_ihotspot_point_title {
    display: none;
  }

  .hotspot-content.abre h3.devvn_ihotspot_point_title {
    display: block;
    font-size: 25px;
    line-height: 30px;
    width: 70vw;
    padding-top: 20px;
    margin-top: 60px !important;
    margin-bottom: 35px !important;
    text-align: center;
  }

  body .wrap_svl .point_style.has-hover:hover img.pins_image {
    display: block !important;
  }

  body .wrap_svl .point_style.has-hover:hover img.pins_image_hover {
    display: none !important;
  }

  .block8-home::before {
    display: none !important;
  }

  .block8-home li.pins-lista-item img.pins_image.ihotspot_hastooltop {
    transform: scale(1);
    width: 40px;
  }

  li.pins-lista-item span.pin-numero {
    color: var(--white);
    transform: translateX(-50%) translateY(-50%);
  }

  li.pins-lista-item h3.devvn_ihotspot_point_title {
    color: var(--brown);
  }

  li.pins-lista-item {
    display: flex;
    align-items: center;
    width: calc((100% / 3) - 10px);
    gap: 10px;
  }

  ul.pins-lista {
    display: flex;
    flex-wrap: wrap;
    column-gap: 5px;
    row-gap: 10px;
    margin-top: 40px;
    width: calc(100% - 60px);
    margin-inline: auto;
  }

  .hotspot-content {
    clip-path: none;
    width: 100vw;
    height: 100dvh;
    position: fixed;
    top: 100%;
    left: 0px;
    z-index: 998;
    transform: none !important;
  }

  .hotspot-content.abre {
    top: 0px;
    transform: none !important;
  }

  .devvn_ihotspot_point_imagem {
    width: 50vw;
    height: 50vw !important;
    max-height: unset;
    margin-top: 90px;
  }

  img.hotspot-fechar-btn {
    position: absolute;
    top: 90px;
    right: var(--padding-x);
  }

  .hotspot-content p {
    font-size: 14px;
    line-height: 16px;
    width: 300px;
    text-align: left;
    margin-inline: auto;
    text-align: center;
  }

  .block-contactos > .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper {
    max-width: 450px;
  }

  .block-contactos h2,
  .block-contactos h2 div {
    font-size: 20px;
    line-height: 26px;
  }

  .block-contactos > .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper::before {
    width: 800px;
    height: 800px;
  }

  .block-logo .wpb_single_image {
    margin-block: 60px 60px !important;
  }

  /* Footer */

  footer .creditos,
  ul.menu-legal {
    margin-left: var(--padding-x);
  }

  footer .bspacy {
    right: calc(var(--padding-x) * 2);
  }

  /* Casas */

  .vivencia-nira-imagens {
    flex: 1;
    width: calc(100% - var(--padding-x) * 2);
    margin-left: var(--padding-x) !important;
  }

  .vivencia-nira {
    flex-direction: column-reverse;
    padding-left: 0px;
  }

  .vivencia-nira-imagem {
    border-radius: 15px;
  }

  .vivencia-nira-tabs {
    flex-direction: row;
    gap: 30px;
  }

  .vivencia-nira-tab.ativo,
  .vivencia-nira-tab:hover {
    transform: none;
  }

  .vivencia-nira-tab {
    gap: 10px;
  }

  .info-plantas {
    flex-direction: column;
  }

  .block6-casas h2 {
    padding-inline: var(--padding-x) !important;
    max-width: 500px;
    margin-inline: auto !important;
  }

  .block6-casas h2,
  .block6-casas h2 div {
    text-align: center !important;
  }
}

@media only screen and (max-width: 768px) {
  /* .block-madre — layout mobile (empilhado) a partir dos 768px.
     Regras movidas dos breakpoints 991px e 600px. */

  /* Repõe a base (bloco em grelha) para o layout empilhado */
  .block-madre .vc_col-sm-6:first-child > .vc_column-inner,
  .block-madre .vc_col-sm-6:first-child > .vc_column-inner > .wpb_wrapper {
    height: auto;
  }

  .block-madre .vc_col-sm-6:first-child > .vc_column-inner > .wpb_wrapper {
    display: block;
  }

  .block-madre {
    padding-inline: 0;
  }

  .block-madre {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    height: fit-content;
  }

  .block-madre p.vc_custom_heading {
    left: 0px;
    position: relative;
    bottom: 0px;
    margin-bottom: 30px !important;
    width: fit-content;
    margin-inline: auto !important;
  }

  .block-madre .wpb_single_image {
    width: 200px;
    left: 0px;
    position: relative;
    top: 0px;
    margin-block: 50px !important;
    margin-inline: auto !important;
  }

  .block-madre .vc_col-sm-6 {
    width: 100%;
    float: none;
  }

  .block-madre .vc_col-sm-6:last-child > .vc_column-inner > .wpb_wrapper {
    position: relative;
    width: fit-content;
    height: fit-content;
    top: 0px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    margin-bottom: 150px;
  }

  .block-madre
    .vc_col-sm-6:last-child
    > .vc_column-inner
    > .wpb_wrapper::before {
    left: 50%;
  }

  .block-madre h2 {
    width: fit-content;
    margin-left: 70px !important;
  }

  .block-madre .wpb_text_column {
    width: 350px;
    margin-left: 40px !important;
  }

  .block-madre {
    position: relative;
  }

  .block-madre
    .vc_col-sm-6:last-child
    > .vc_column-inner
    > .wpb_wrapper::before {
    display: none;
  }

  .block-madre .vc_col-sm-6:last-child > .vc_column-inner > .wpb_wrapper {
    width: calc(100% - var(--padding-x) * 2);
    background-color: var(--orange);
    margin-top: var(--padding-x);
    border-radius: 15px;
    margin-bottom: 20px;
  }

  .block-madre h2,
  .block-madre h2 div {
    font-size: 28px;
    line-height: 34px;
  }

  .block-madre h2 {
    width: fit-content;
    margin-left: 0px !important;
    margin-bottom: 0px !important;
    padding: 20px;
  }

  .block-madre .wpb_text_column {
    width: 100%;
    margin-left: 0px !important;
    padding: 20px;
    padding-top: 0px;
  }
}

@media only screen and (max-width: 600px) {
  /* .block5-home — a coluna da galeria (100vw) encosta à esquerda.
     Centrada, ficava desviada porque a .vc_col-sm-3 é mais larga que
     o ecrã, e o slider da galeria ficava assimétrico. */
  .block5-home .vc_col-sm-9 {
    align-self: flex-start;
  }

  /* Estrutura */

  header li,
  header li a,
  header li a div,
  header li a span {
    color: var(--brown);
    font-size: 14px;
    line-height: 20px;
  }

  h1,
  h1 div,
  h2,
  h2 div {
    font-size: 30px;
    line-height: 36px;
  }

  /* Header */

  ul.menu-idiomas {
    left: 50px;
  }

  .hamburguer-menu {
    width: 25px;
    height: 10px;
    position: absolute;
    top: 50px;
    right: 50px;
  }

  .hamburguer-menu::before,
  .hamburguer-menu::after {
    content: "";
    width: 100%;
    height: 2px;
    background-color: var(--white);
    top: 0px;
    left: 50%;
    transform: translateX(-50%);
    position: absolute;
    transition: 0.5s;
  }

  .hamburguer-menu::after {
    top: unset;
    bottom: 0px;
  }

  .hamburguer-menu.open::before {
    top: 50%;
    transform: translateX(-50%) translateY(-50%) rotate(45deg);
    transition: 0.5s;
    background-color: var(--orange);
  }

  .hamburguer-menu.open::after {
    bottom: 50%;
    transform: translateX(-50%) translateY(50%) rotate(-45deg);
    transition: 0.5s;
    background-color: var(--orange);
  }

  header.change .hamburguer-menu {
    top: 50%;
    transform: translateY(-50%);
  }

  ul.main-menu li {
    border-bottom: 1px solid var(--orange);
    padding-bottom: 10px;
  }

  ul.main-menu,
  header.change ul.main-menu {
    width: 100vw;
    height: 100dvh;
    background-color: var(--white-body);
    position: fixed;
    top: 100%;
    left: 0px;
    transform: none;
    transition: 0.5s;
    gap: 20px;
    padding: 100px var(--padding-x);
    flex-direction: column;
  }

  ul.main-menu.open,
  header.change ul.main-menu.open {
    top: 0px;
    transition: 0.5s;
  }

  ul.menu-idiomas li:last-child a,
  ul.menu-idiomas li:last-child a div,
  ul.menu-idiomas li:last-child a span {
    line-height: 20px;
  }

  ul.menu-idiomas li a,
  ul.menu-idiomas li a div,
  ul.menu-idiomas li a span {
    color: var(--white);
  }

  header.change ul.menu-idiomas {
    top: 60%;
  }

  .btn-contacte-nos {
    bottom: 0px;
    right: 0px;
    border-radius: 15px;
    height: 40px;
    font-size: 10px;
    line-height: 10px;
    padding-inline: 20px;
    border-bottom-right-radius: 0px;
  }

  /* Homepage */

  .block1-home h1 {
    left: calc(var(--padding-x) * 2);
    transform: none;
    width: calc(100% - var(--padding-x) * 4);
    bottom: 50px;
  }

  .block1-home svg.ripple-svg {
    bottom: -100px;
    width: 98vw;
    left: 0px;
  }

  .block2-home .h3-wrap {
    margin-left: 50px;
    width: 100%;
    top: 30px;
  }

  .correction {
    position: absolute;
    bottom: 0px;
    left: var(--padding-x);
    z-index: 20;
    width: calc(100% - var(--padding-x) * 2);
    height: 30px;
    background-color: var(--white-body);
    display: none;
  }

  .correction::before {
    content: "";
    width: 30px;
    height: 30px;
    background-color: transparent;
    position: absolute;
    top: 0px;
    left: 0px;
    transform: translateY(-100%);
    border-bottom-left-radius: 15px;
    box-shadow: -6px 6px 0px 0px var(--white-body);
  }

  .correction::after {
    content: "";
    width: 30px;
    height: 30px;
    background-color: transparent;
    position: absolute;
    top: 0px;
    right: 0px;
    transform: translateY(-100%);
    border-bottom-right-radius: 15px;
    box-shadow: 6px 6px 0px 0px var(--white-body);
  }

  .block3-home h2 {
    top: 50px;
    left: var(--padding-x);
  }

  .block4-home h2 {
    top: calc(50px + var(--padding-x) + var(--header-height));
    left: var(--padding-x);
  }

  .block3-home > .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper > h3 {
    bottom: 100px;
    left: var(--padding-x);
  }

  .block3-home .abre-popup {
    left: var(--padding-x);
  }

  .block3-home .vc_inner {
    left: calc(var(--padding-x) / 2);
    width: calc(100% - var(--padding-x));
    height: fit-content;
    background-image: none;
    background-color: var(--orange);
    border-radius: 15px;
    padding-bottom: 50px;
    top: 50%;
    /* scale(0) quando fechado — sem isto o popup ficava invisível
       (opacity 0) mas por cima do painel, a bloquear os cliques */
    transform: translateY(-50%) scale(0);
  }

  .block3-home .vc_inner.abrir {
    transform: translateY(-50%) scale(1);
  }

  .block3-home
    .vc_btn3-container.vc_btn3-inline.vc_do_btn
    button.vc_btn3::before {
    width: 35px;
    height: 38px;
    gap: 10px;
  }

  .block3-home .vc_inner h3 {
    margin-block: 140px 22px !important;
    width: calc(100% - 100px);
  }

  .block3-home .vc_inner h3 br,
  .block3-home .vc_inner p br {
    display: none;
  }

  .block3-home .vc_inner .wpb_text_column,
  .block3-home .vc_inner h3 {
    width: calc(100% - 50px);
    transform: translateX(0px);
  }

  .block3-home .vc_inner .wpb_text_column p,
  .block3-home .vc_inner h3 {
    font-size: 14px;
    line-height: 18px;
  }

  .block3-home .vc_inner::before {
    width: 420px;
    height: 440px;
    background-image: none;
  }

  .block4-home h2 br {
    display: none;
  }

  .block5-home {
    padding-block: 120px 70px;
  }

  .section2-home .vc_col-sm-6:first-child {
    width: 100%;
    margin-top: 30px;
  }

  .section2-home .row-wrap .vc_row .wpb_single_image {
    height: 55vw;
    width: 100%;
  }

  .section2-home .vc_inner {
    height: 100dvh !important;
    padding-top: 60px;
  }

  .section2-home .vc_col-sm-6 {
    width: 65%;
  }

  .section2-home .wpb_text_column {
    max-width: 100%;
  }

  .section2-home h2,
  .section2-home h2 div {
    font-size: 26px;
    line-height: 30px;
  }

  .section2-home h2 {
    margin-bottom: 20px !important;
    padding-top: 20px;
  }

  .block8-home .wrap_svl_center {
    border-radius: 15px;
    overflow: hidden;
    touch-action: pan-y;
  }

  .wrap_svl {
    width: 200vw;
  }

  .wrap-svl-scrollbar {
    position: relative;
    width: 70vw;
    height: 1px;
    margin: 30px auto 0;
    background-color: var(--orange);
    border-radius: 10px;
  }

  .wrap-svl-scrollbar-thumb {
    position: absolute;
    top: -2.5px;
    left: 0;
    width: 60px;
    height: 6px;
    background-color: var(--orange);
    border-radius: 10px;
    cursor: grab;
    touch-action: none;
  }

  .wrap-svl-scrollbar-thumb:active {
    cursor: grabbing;
    background-color: var(--brown);
  }

  li.pins-lista-item {
    width: calc((100% / 2) - 10px);
  }

  .block8-home li.pins-lista-item img.pins_image.ihotspot_hastooltop {
    width: 32px;
  }

  ul.pins-lista {
    width: 100%;
    row-gap: 0px;
  }

  li.pins-lista-item h3.devvn_ihotspot_point_title {
    font-size: 12px;
    line-height: 14px;
  }

  .block-contactos > .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper::before {
    width: calc(100vw - 60px);
    height: calc(100% + 60px);
    clip-path: unset;
    left: 50%;
    border-radius: 15px;
  }

  .block-contactos > .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper {
    max-width: calc(100% - 120px);
    padding-top: 20px;
  }

  .block-contactos {
    overflow: visible !important;
    padding-block: 70px 50px;
  }

  .block-logo .wpb_single_image {
    margin-block: 50px 50px !important;
    width: 180px;
  }

  /* Footer */

  .wrapper-footer,
  footer {
    height: fit-content;
  }

  footer .col-left {
    flex-direction: column;
    left: 0;
    position: relative;
    gap: 15px;
    bottom: 0px;
    padding-top: 20px;
    align-items: center;
    width: 100%;
  }

  footer .creditos,
  ul.menu-legal {
    margin-left: 0px;
    gap: 15px;
  }

  footer .bspacy {
    right: 0px;
    top: 0px;
    transform: none;
    position: relative;
    display: flex;
    justify-content: center;
    margin-top: 30px;
    padding-bottom: 20px;
  }

  /* Casas */

  .vivencia-nira-tabs {
    gap: 20px;
    width: calc(100% - var(--padding-x));
  }

  .vivencia-nira-descricao {
    width: 100%;
    padding-right: 65px;
    margin-top: 15px;
  }

  .info-plantas-imagem {
    width: 100%;
  }

  .info-plantas-aumentar {
    padding: 0px;
  }

  .info-plantas {
    gap: 30px;
    padding-inline: var(--padding-x) !important;
  }

  .info-plantas-pisos {
    margin-bottom: 30px;
  }

  .info-plantas-sidebar::before {
    width: 100vw;
    height: 100vw;
  }

  .info-plantas-lightbox .info-plantas-lightbox-cruz span {
    width: 15px;
  }

  .info-plantas-aumentar-wrap {
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
    padding: 0px;
  }

  .block3-casas .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper {
    bottom: 60px;
    left: 30px;
  }

  .block4-casas h2 {
    margin-bottom: 25px !important;
    font-size: 28px;
  }

  .block4-casas .vc_inner .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper {
    transform: scale(0) translateY(50%);
    transform-origin: center;
    left: calc(var(--padding-x) / 2);
    width: calc(100% - var(--padding-x));
    background-color: var(--orange);
    border-radius: 15px;
    bottom: 50%;
    height: fit-content;
    padding: 20px;
    padding-bottom: 45px;
    transition: 0.5s;
    opacity: 0;
  }

  .block4-casas
    .vc_inner.abrir
    .vc_col-sm-12
    > .vc_column-inner
    > .wpb_wrapper {
    transform: scale(1) translateY(50%);
    transition: 0.5s;
    opacity: 1;
  }

  .block4-casas .abre-popup,
  .block4-casas .fecha-popup {
    display: block !important;
  }

  .block4-casas .abre-popup {
    position: absolute;
    bottom: 30px;
    left: var(--padding-x);
  }

  /* Tabela do popup — tamanhos reduzidos para caber no mobile */
  .block4-casas table th {
    font-size: 12px;
  }

  .block4-casas table tbody td,
  .block4-casas table tbody td span {
    font-size: 12px;
  }

  .block4-casas table tbody td {
    padding-block: 14px 4px;
  }

  .block4-casas table tbody td:first-child {
    font-size: 15px;
  }

  .block4-casas table th:nth-child(2),
  .block4-casas table tbody td:first-child {
    padding-right: 12px;
  }

  .block4-casas
    .vc_inner
    .vc_col-sm-12
    > .vc_column-inner
    > .wpb_wrapper::before {
    display: none;
  }

  /* Docs */

  .block1-doc h1.vc_custom_heading {
    font-size: 30px;
    line-height: 30px;
  }

  .block1-doc h2 {
    font-size: 22px;
    line-height: 26px;
  }
}

@media only screen and (max-width: 400px) {
  /* Estrutrura */

  h1,
  h1 div,
  h2,
  h2 div {
    font-size: 28px;
    line-height: 34px;
  }
}
