@font-face {
  font-family: "Syncopate";
  src: url("/fonts/Syncopate-Bold.woff2") format("woff2"), url("/fonts/Syncopate-Bold.woff") format("woff");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "RB Rational Neue Medium";
  src: url("/fonts/RBRationalNeue-Medium.woff2") format("woff2"), url("/fonts/RBRationalNeue-Medium.woff") format("woff");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "RB Rational Neue Bold";
  src: url("/fonts/RBRationalNeue-Bold.woff2") format("woff2"), url("/fonts/RBRationalNeue-Bold.woff") format("woff");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

html {
  font-size: 50%;
}

* {
  box-sizing: border-box;
}

:root {
  --preto: #000000;
  --branco: #f3eee8;
  --marrom: #5f5954;
  --cinza: #a39991;
  --verde: #6bcb9d;
  --vermelho: #f68f8f;
  --bordas: 10px;
  --tamanho: 40px;
  --tamanhoMin: calc(var(--tamanho) / 2);
  --tamanhoMin2x: calc(var(--tamanhoMin) / 2);
  --tamanhoMax: calc(var(--tamanho) * 2);
  --tamanhoMax2x: calc(var(--tamanhoMax) * 2);
  --tamanhoH2: 99px;
  --tamanhoImgPrincipalIndex: 795px;
  --tamanhoIcone: 18px;
  --tamanhoHeader: 80px;
  --fontTitulo: 5rem/7.2rem "Syncopate";
  --fontSubTitulo: 3rem/3.6rem "Syncopate";
  --fontCorpo: 2.6rem/3.2rem "RB Rational Neue Medium";
  --fontCorpoMenor: 2rem/2.8rem "RB Rational Neue Medium";
  --fontCorpoContraste: 2.6rem/3.2rem "RB Rational Neue Bold";
  --fontBotao: 1.6rem/1.9rem "Syncopate";
}

body {
  background: var(--branco);
}

.botao {
  font: var(--fontBotao);
  color: var(--preto);
  text-transform: uppercase;
  cursor: pointer;
}
.botao .caixa {
  height: fit-content;
  width: fit-content;
  border: 1px solid var(--preto);
  background: var(--branco);
  position: relative;
}
.botao .caixa a {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--bordas);
  padding: var(--tamanhoMin);
  height: 100%;
  width: 100%;
  transition: background 0.3s ease;
  position: relative;
}
.botao .caixa a::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.botao .caixa a:hover {
  background: var(--verde);
}

.botao2 {
  font: var(--fontBotao);
  color: var(--preto);
  text-transform: uppercase;
  cursor: pointer;
}
.botao2 .caixa {
  height: fit-content;
  width: fit-content;
  position: relative;
}
.botao2 .caixa a {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--bordas);
  padding: var(--tamanhoMin);
  height: 100%;
  width: 100%;
  transition: background 0.3s ease;
  background: var(--branco);
  position: relative;
}
.botao2 .caixa a::before {
  position: absolute;
  top: -1px;
  left: -1px;
  display: block;
  content: "";
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  background: linear-gradient(to bottom, transparent 0, transparent 10px, black 10px, black calc(100% - 10px), transparent calc(100% - 10px), transparent 100%) left/1px 100% no-repeat, linear-gradient(to bottom, transparent 0, transparent 10px, black 10px, black calc(100% - 10px), transparent calc(100% - 10px), transparent 100%) right/1px 100% no-repeat, linear-gradient(to right, transparent 0, transparent 10px, black 10px, black calc(100% - 10px), transparent calc(100% - 10px), transparent 100%) top/100% 1px no-repeat, linear-gradient(to right, transparent 0, transparent 10px, black 10px, black calc(100% - 10px), transparent calc(100% - 10px), transparent 100%) bottom/100% 1px no-repeat;
}
.botao2 .caixa a:hover {
  background: var(--verde);
}
.botao2 .caixa img {
  height: var(--tamanhoIcone);
  width: auto;
}

a {
  font: inherit;
  color: inherit;
  text-decoration: none;
  text-transform: inherit;
}

.texto {
  display: flex;
  flex-direction: column;
  gap: var(--tamanhoMin);
}

header {
  position: fixed;
  display: flex;
  flex-wrap: wrap;
  margin: var(--tamanho);
  width: calc(100% - var(--tamanhoMax) - 2px);
  z-index: 9;
  top: -1px;
  left: 1px;
  transition: top 0.3s ease;
}
header.topo {
  position: initial;
}
header .logo {
  flex: 1;
}
header .logo .caixa {
  display: block;
  height: 100%;
  background: var(--branco);
  border-radius: var(--bordas);
  position: relative;
}
header .logo .caixa::before {
  position: absolute;
  top: -1px;
  left: -1px;
  display: block;
  content: "";
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  background: linear-gradient(to bottom, transparent 0, transparent 10px, black 10px, black calc(100% - 10px), transparent calc(100% - 10px), transparent 100%) left/1px 100% no-repeat, linear-gradient(to bottom, transparent 0, transparent 10px, black 10px, black calc(100% - 10px), transparent calc(100% - 10px), transparent 100%) right/1px 100% no-repeat, linear-gradient(to right, transparent 0, transparent 10px, black 10px, black calc(100% - 10px), transparent calc(100% - 10px), transparent 100%) top/100% 1px no-repeat, linear-gradient(to right, transparent 0, transparent 10px, black 10px, black calc(100% - 10px), transparent calc(100% - 10px), transparent 100%) bottom/100% 1px no-repeat;
}
header .logo img {
  height: var(--tamanhoHeader);
  box-sizing: border-box;
  padding: var(--tamanhoMin);
  display: block;
}
header .botao2 {
  font: var(--fontSubTitulo);
  font-size: 2rem;
}
header .botao2 .caixa {
  border: 0;
  height: 100%;
}
header .botao2 .caixa a {
  display: flex;
  padding-left: calc(var(--tamanho) / 1.4);
  padding-right: calc(var(--tamanho) / 1.4);
}
header .botao2 .caixa a img {
  height: 24px;
  width: auto;
}
header .menu {
  position: absolute;
  top: calc(100% + 1px);
  right: 0;
  width: calc((100% - (1px * (2 - 1))) / 2);
  z-index: -1;
  display: none;
}
header .menu nav li {
  position: relative;
  opacity: 0;
}
header .menu nav li:nth-child(1) {
  z-index: 5;
}
header .menu nav li:nth-child(2) {
  z-index: 4;
}
header .menu nav li:nth-child(3) {
  z-index: 3;
}
header .menu nav li:nth-child(4) {
  z-index: 2;
}
header .menu nav li:nth-child(5) {
  z-index: 1;
}
header .menu nav li .caixa {
  width: 100%;
}
header .menu nav li .caixa a {
  justify-content: start;
  font: var(--fontSubTitulo);
}
header.aberto .menu {
  display: initial;
}
header.aberto .menu nav li {
  opacity: 1;
}
header.escondido {
  top: calc(calc(var(--tamanhoHeader) + var(--tamanho) + 1px) * -1);
}

.header-topo.resetar-translate .grid {
  transform: translateY(0);
}
.header-topo .grid {
  margin-top: calc(var(--tamanhoHeader) + var(--tamanho)) !important;
  transform: translateY(-1px);
}

.carrosel {
  height: 100vh;
  width: 100%;
}
.carrosel > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.carrosel > img.ativa {
  opacity: 1;
}
.carrosel .anterior, .carrosel .proximo {
  user-select: none;
  position: absolute;
  bottom: 0;
  margin: var(--tamanho);
}
.carrosel .anterior {
  left: 0;
}
.carrosel .anterior img {
  transform: rotate(270deg);
}
.carrosel .proximo {
  right: 0;
}
.carrosel .proximo img {
  transform: rotate(90deg);
}

footer {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
footer .caixa, footer form {
  width: 50%;
}
footer .caixa {
  display: flex;
  flex-direction: column;
}
footer .caixa h2 {
  border-bottom: 1px solid var(--preto);
  font: var(--fontTitulo);
  text-transform: uppercase;
  position: relative;
}
footer .caixa h2::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
footer .caixa .infos {
  display: flex;
  flex-direction: column;
  gap: var(--tamanhoMin);
  padding: var(--tamanhoMin);
  background: var(--branco);
  flex: 1;
  justify-content: flex-start;
  position: relative;
}
footer .caixa .infos .info:last-of-type {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
footer .caixa .infos::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
footer .caixa .infos dt {
  font: var(--fontSubTitulo);
  text-transform: uppercase;
  margin-bottom: var(--tamanhoMin2x);
}
footer .caixa .infos dd, footer form .checkbox p, footer .copy span {
  font: var(--fontCorpo);
  color: var(--marrom);
}
footer .copy span, footer .checkbox p {
  font: var(--fontCorpoMenor) !important;
}
footer form {
  padding: 0 !important;
  border-left: 1px solid var(--preto);
  flex-wrap: wrap;
  justify-content: initial !important;
  flex-direction: row !important;
  height: fit-content;
}
footer form .campo:nth-child(1) {
  border-right: 1px solid var(--preto);
}
footer form .campo:nth-child(1), footer form .campo:nth-child(2) {
  flex: 0 0 50%;
}
footer form .campo {
  background: none;
  border: none;
  outline: none;
  margin: 0;
  height: calc(var(--tamanhoH2) / 2);
  flex: 0 0 100%;
  border-bottom: 1px solid var(--preto);
  position: relative;
}
footer form .campo::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
footer form .campo:last-of-type {
  border-bottom: 0;
}
footer form .campo:has(textarea) {
  height: calc(100vh - calc(var(--tamanhoH2) * 4) - var(--tamanho));
  border-bottom: 0;
}
footer form input, footer form textarea {
  padding: var(--tamanhoMin);
  background: none;
  border: none;
  outline: none;
  margin: 0;
  height: 100%;
  width: 100%;
}
footer form input::placeholder, footer form textarea::placeholder {
  color: var(--cinza);
}
footer form input, footer form input::placeholder, footer form textarea, footer form textarea::placeholder {
  font: var(--fontCorpo) !important;
}
footer form textarea {
  height: calc(100vh - calc(var(--tamanhoH2) * 4) - var(--tamanho));
}
footer form .checkbox {
  height: calc(var(--tamanhoH2) / 2);
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}
footer form .checkbox .check {
  display: block;
  width: auto;
  height: calc(var(--tamanhoH2) / 2);
  aspect-ratio: 1/1;
  border-right: 1px solid var(--preto);
  border-top: 1px solid var(--preto);
  border-bottom: 1px solid var(--preto);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
footer form .checkbox .check img {
  width: 30%;
  height: 30%;
  opacity: 0;
  transform: rotate(0deg);
  transition: opacity 0.3s ease, transform 0.3s ease 0.3s;
}
footer form .checkbox .check::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
footer form .checkbox p {
  padding: var(--tamanhoMin);
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  gap: 0.5ch;
  box-sizing: border-box;
  border-top: 1px solid var(--preto);
  border-bottom: 1px solid var(--preto);
  position: relative;
}
footer form .checkbox p::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
footer form .checkbox.aceito .check img {
  opacity: 1;
  transform: rotate(45deg);
}
footer form .submit {
  display: flex;
  align-items: center;
}
footer form .submit input[type=submit] {
  padding: 0;
  font: var(--fontBotao) !important;
  text-transform: uppercase;
  box-sizing: content-box;
  border-radius: var(--bordas);
  transition: background 0.3s ease, color 0.3s ease;
}
footer form .submit input[type=submit]:hover {
  background: var(--verde);
  cursor: pointer;
}
footer form .submit input[type=submit]:disabled:hover {
  background: var(--cinza);
  color: var(--branco);
}
footer .copy {
  padding: 0 !important;
  border-top: 1px solid var(--preto);
  position: relative;
  justify-items: center;
  flex-direction: row !important;
}
footer .copy span {
  flex: 1;
  padding: var(--tamanhoMin);
  position: relative;
}
footer .copy span::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
footer .copy .seta-topo {
  display: flex;
  justify-content: center;
  align-items: center;
  border-left: 1px solid var(--preto);
  position: relative;
  height: 100%;
  cursor: pointer;
  position: relative;
}
footer .copy .seta-topo::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
footer .copy .seta-topo img {
  height: var(--tamanhoIcone);
  width: auto;
  padding: var(--tamanhoMin);
  box-sizing: content-box;
  border-radius: var(--bordas);
  display: block;
  transition: background 0.3s ease;
}
footer .copy .seta-topo:hover img {
  background: var(--verde);
}

.p-index .grid, .p-apartamentos .grid, .p-legal .grid, .p-contacto .grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 1px;
  background: var(--preto);
  padding: 1px;
  margin: var(--tamanho);
  position: relative;
  width: calc(100% - var(--tamanhoMax));
}
.p-index .grid main, .p-index .grid section.dados, .p-index .grid section.dados dl, .p-index .grid section.infos, .p-index .grid ul.infos, .p-index .grid section.detalhes, .p-index .grid section.apresentacao, .p-index .grid table.listagem, .p-index .grid table.listagem thead, .p-index .grid table.listagem tbody, .p-apartamentos .grid main, .p-apartamentos .grid section.dados, .p-apartamentos .grid section.dados dl, .p-apartamentos .grid section.infos, .p-apartamentos .grid ul.infos, .p-apartamentos .grid section.detalhes, .p-apartamentos .grid section.apresentacao, .p-apartamentos .grid table.listagem, .p-apartamentos .grid table.listagem thead, .p-apartamentos .grid table.listagem tbody, .p-legal .grid main, .p-legal .grid section.dados, .p-legal .grid section.dados dl, .p-legal .grid section.infos, .p-legal .grid ul.infos, .p-legal .grid section.detalhes, .p-legal .grid section.apresentacao, .p-legal .grid table.listagem, .p-legal .grid table.listagem thead, .p-legal .grid table.listagem tbody, .p-contacto .grid main, .p-contacto .grid section.dados, .p-contacto .grid section.dados dl, .p-contacto .grid section.infos, .p-contacto .grid ul.infos, .p-contacto .grid section.detalhes, .p-contacto .grid section.apresentacao, .p-contacto .grid table.listagem, .p-contacto .grid table.listagem thead, .p-contacto .grid table.listagem tbody {
  display: contents;
}
.p-index .grid .dado, .p-index .grid section.infos .info, .p-index .grid ul.infos .info, .p-index .grid .detalhe, .p-index .grid h2, .p-index .grid form, .p-index .grid .copy, .p-index .grid h1, .p-index .grid iframe, .p-index .grid table.listagem tr, .p-apartamentos .grid .dado, .p-apartamentos .grid section.infos .info, .p-apartamentos .grid ul.infos .info, .p-apartamentos .grid .detalhe, .p-apartamentos .grid h2, .p-apartamentos .grid form, .p-apartamentos .grid .copy, .p-apartamentos .grid h1, .p-apartamentos .grid iframe, .p-apartamentos .grid table.listagem tr, .p-legal .grid .dado, .p-legal .grid section.infos .info, .p-legal .grid ul.infos .info, .p-legal .grid .detalhe, .p-legal .grid h2, .p-legal .grid form, .p-legal .grid .copy, .p-legal .grid h1, .p-legal .grid iframe, .p-legal .grid table.listagem tr, .p-contacto .grid .dado, .p-contacto .grid section.infos .info, .p-contacto .grid ul.infos .info, .p-contacto .grid .detalhe, .p-contacto .grid h2, .p-contacto .grid form, .p-contacto .grid .copy, .p-contacto .grid h1, .p-contacto .grid iframe, .p-contacto .grid table.listagem tr {
  background: var(--branco);
  padding: var(--tamanhoMin);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.p-index .grid section.detalhes h2, .p-index .grid section.infos h2, .p-apartamentos .grid section.detalhes h2, .p-apartamentos .grid section.infos h2, .p-legal .grid section.detalhes h2, .p-legal .grid section.infos h2, .p-contacto .grid section.detalhes h2, .p-contacto .grid section.infos h2 {
  padding: 0;
}
.p-index .grid section.detalhes h2, .p-index .grid section.dados dd, .p-index .grid section.apresentacao h2, .p-apartamentos .grid section.detalhes h2, .p-apartamentos .grid section.dados dd, .p-apartamentos .grid section.apresentacao h2, .p-legal .grid section.detalhes h2, .p-legal .grid section.dados dd, .p-legal .grid section.apresentacao h2, .p-contacto .grid section.detalhes h2, .p-contacto .grid section.dados dd, .p-contacto .grid section.apresentacao h2 {
  font: var(--fontTitulo);
  text-transform: uppercase;
}
.p-index .grid section.infos p, .p-index .grid section.infos dd, .p-index .grid ul.infos .info, .p-apartamentos .grid section.infos p, .p-apartamentos .grid section.infos dd, .p-apartamentos .grid ul.infos .info, .p-legal .grid section.infos p, .p-legal .grid section.infos dd, .p-legal .grid ul.infos .info, .p-contacto .grid section.infos p, .p-contacto .grid section.infos dd, .p-contacto .grid ul.infos .info {
  font: var(--fontSubTitulo);
  text-transform: uppercase;
}
.p-index .grid section.dados dt, .p-index .grid section.infos h2, .p-index .grid section.infos dt, .p-index .grid section.detalhes p, .p-index .grid section.detalhes .texto a, .p-index .grid footer .copy, .p-index .grid footer form, .p-index .grid section.apresentacao p, .p-index .grid table.listagem th, .p-index .grid table.listagem td, .p-apartamentos .grid section.dados dt, .p-apartamentos .grid section.infos h2, .p-apartamentos .grid section.infos dt, .p-apartamentos .grid section.detalhes p, .p-apartamentos .grid section.detalhes .texto a, .p-apartamentos .grid footer .copy, .p-apartamentos .grid footer form, .p-apartamentos .grid section.apresentacao p, .p-apartamentos .grid table.listagem th, .p-apartamentos .grid table.listagem td, .p-legal .grid section.dados dt, .p-legal .grid section.infos h2, .p-legal .grid section.infos dt, .p-legal .grid section.detalhes p, .p-legal .grid section.detalhes .texto a, .p-legal .grid footer .copy, .p-legal .grid footer form, .p-legal .grid section.apresentacao p, .p-legal .grid table.listagem th, .p-legal .grid table.listagem td, .p-contacto .grid section.dados dt, .p-contacto .grid section.infos h2, .p-contacto .grid section.infos dt, .p-contacto .grid section.detalhes p, .p-contacto .grid section.detalhes .texto a, .p-contacto .grid footer .copy, .p-contacto .grid footer form, .p-contacto .grid section.apresentacao p, .p-contacto .grid table.listagem th, .p-contacto .grid table.listagem td {
  font: var(--fontCorpo);
  color: var(--marrom);
}
.p-index .grid section.dados .dado, .p-apartamentos .grid section.dados .dado, .p-legal .grid section.dados .dado, .p-contacto .grid section.dados .dado {
  width: calc((100% - (1px * (3 - 1))) / 3);
  height: 300px;
  position: relative;
}
.p-index .grid section.dados .dado::before, .p-apartamentos .grid section.dados .dado::before, .p-legal .grid section.dados .dado::before, .p-contacto .grid section.dados .dado::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.p-index .grid section.infos .info, .p-index .grid ul.infos .info, .p-apartamentos .grid section.infos .info, .p-apartamentos .grid ul.infos .info, .p-legal .grid section.infos .info, .p-legal .grid ul.infos .info, .p-contacto .grid section.infos .info, .p-contacto .grid ul.infos .info {
  width: calc((100% - (1px * (2 - 1))) / 2);
  height: 300px;
  position: relative;
}
.p-index .grid section.infos .info::before, .p-index .grid ul.infos .info::before, .p-apartamentos .grid section.infos .info::before, .p-apartamentos .grid ul.infos .info::before, .p-legal .grid section.infos .info::before, .p-legal .grid ul.infos .info::before, .p-contacto .grid section.infos .info::before, .p-contacto .grid ul.infos .info::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.p-index .grid footer h2, .p-apartamentos .grid footer h2, .p-legal .grid footer h2, .p-contacto .grid footer h2 {
  width: calc((100% - (1px * (1 - 1))) / 1);
}
.p-index .grid .copy, .p-apartamentos .grid .copy, .p-legal .grid .copy, .p-contacto .grid .copy {
  width: calc((100% - (1px * (1 - 1))) / 1);
}
.p-index .grid section.detalhes .detalhe, .p-apartamentos .grid section.detalhes .detalhe, .p-legal .grid section.detalhes .detalhe, .p-contacto .grid section.detalhes .detalhe {
  width: calc((100% - (1px * (1 - 1))) / 1);
  padding: 0;
  position: relative;
}
.p-index .grid section.detalhes .detalhe.aberto h2, .p-apartamentos .grid section.detalhes .detalhe.aberto h2, .p-legal .grid section.detalhes .detalhe.aberto h2, .p-contacto .grid section.detalhes .detalhe.aberto h2 {
  border-bottom: 1px solid var(--preto);
}
.p-index .grid section.detalhes .detalhe.aberto > .caixa, .p-apartamentos .grid section.detalhes .detalhe.aberto > .caixa, .p-legal .grid section.detalhes .detalhe.aberto > .caixa, .p-contacto .grid section.detalhes .detalhe.aberto > .caixa {
  height: calc(var(--tamanhoImgPrincipalIndex) - var(--tamanhoH2));
}
.p-index .grid section.detalhes .detalhe.aberto .imagem-atrelada .imagem, .p-apartamentos .grid section.detalhes .detalhe.aberto .imagem-atrelada .imagem, .p-legal .grid section.detalhes .detalhe.aberto .imagem-atrelada .imagem, .p-contacto .grid section.detalhes .detalhe.aberto .imagem-atrelada .imagem {
  opacity: 1 !important;
}
.p-index .grid section.detalhes .detalhe h2, .p-apartamentos .grid section.detalhes .detalhe h2, .p-legal .grid section.detalhes .detalhe h2, .p-contacto .grid section.detalhes .detalhe h2 {
  padding: var(--tamanhoMin);
  position: relative;
}
.p-index .grid section.detalhes .detalhe h2::before, .p-apartamentos .grid section.detalhes .detalhe h2::before, .p-legal .grid section.detalhes .detalhe h2::before, .p-contacto .grid section.detalhes .detalhe h2::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.p-index .grid section.detalhes .detalhe h2, .p-index .grid section.detalhes .detalhe > .caixa, .p-apartamentos .grid section.detalhes .detalhe h2, .p-apartamentos .grid section.detalhes .detalhe > .caixa, .p-legal .grid section.detalhes .detalhe h2, .p-legal .grid section.detalhes .detalhe > .caixa, .p-contacto .grid section.detalhes .detalhe h2, .p-contacto .grid section.detalhes .detalhe > .caixa {
  width: calc(50%);
  border-right: 1px solid var(--preto);
}
.p-index .grid section.detalhes .detalhe > .caixa, .p-apartamentos .grid section.detalhes .detalhe > .caixa, .p-legal .grid section.detalhes .detalhe > .caixa, .p-contacto .grid section.detalhes .detalhe > .caixa {
  height: 0;
  transition: height 0.6s ease, padding 0.6s ease, margin 0.6s ease;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
}
.p-index .grid section.detalhes .detalhe > .caixa::before, .p-apartamentos .grid section.detalhes .detalhe > .caixa::before, .p-legal .grid section.detalhes .detalhe > .caixa::before, .p-contacto .grid section.detalhes .detalhe > .caixa::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.p-index .grid section.detalhes .detalhe > .caixa .texto, .p-apartamentos .grid section.detalhes .detalhe > .caixa .texto, .p-legal .grid section.detalhes .detalhe > .caixa .texto, .p-contacto .grid section.detalhes .detalhe > .caixa .texto {
  padding: var(--tamanhoMin);
}
.p-index .grid section.detalhes .detalhe > .caixa .texto p, .p-index .grid section.detalhes .detalhe > .caixa .texto li, .p-apartamentos .grid section.detalhes .detalhe > .caixa .texto p, .p-apartamentos .grid section.detalhes .detalhe > .caixa .texto li, .p-legal .grid section.detalhes .detalhe > .caixa .texto p, .p-legal .grid section.detalhes .detalhe > .caixa .texto li, .p-contacto .grid section.detalhes .detalhe > .caixa .texto p, .p-contacto .grid section.detalhes .detalhe > .caixa .texto li {
  width: 85%;
}
.p-index .grid section.detalhes .detalhe > .caixa .botao2, .p-apartamentos .grid section.detalhes .detalhe > .caixa .botao2, .p-legal .grid section.detalhes .detalhe > .caixa .botao2, .p-contacto .grid section.detalhes .detalhe > .caixa .botao2 {
  padding: var(--tamanhoMin);
}
.p-index .grid section.detalhes .detalhe .imagem-atrelada, .p-apartamentos .grid section.detalhes .detalhe .imagem-atrelada, .p-legal .grid section.detalhes .detalhe .imagem-atrelada, .p-contacto .grid section.detalhes .detalhe .imagem-atrelada {
  height: 100%;
  aspect-ratio: 1/1;
  width: calc((100% - (1px * (2 - 1))) / 2);
  right: 0;
  top: 0;
  padding: var(--tamanhoMin);
  position: absolute !important;
  transition: padding 0.3s ease;
  position: relative;
}
.p-index .grid section.detalhes .detalhe .imagem-atrelada:hover, .p-apartamentos .grid section.detalhes .detalhe .imagem-atrelada:hover, .p-legal .grid section.detalhes .detalhe .imagem-atrelada:hover, .p-contacto .grid section.detalhes .detalhe .imagem-atrelada:hover {
  padding: 0;
}
.p-index .grid section.detalhes .detalhe .imagem-atrelada::before, .p-apartamentos .grid section.detalhes .detalhe .imagem-atrelada::before, .p-legal .grid section.detalhes .detalhe .imagem-atrelada::before, .p-contacto .grid section.detalhes .detalhe .imagem-atrelada::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.p-index .grid section.detalhes .detalhe .imagem-atrelada .caixa, .p-apartamentos .grid section.detalhes .detalhe .imagem-atrelada .caixa, .p-legal .grid section.detalhes .detalhe .imagem-atrelada .caixa, .p-contacto .grid section.detalhes .detalhe .imagem-atrelada .caixa {
  height: 100%;
  border-radius: var(--bordas);
  overflow: hidden;
}
.p-index .grid section.detalhes .detalhe .imagem-atrelada .caixa .imagem, .p-apartamentos .grid section.detalhes .detalhe .imagem-atrelada .caixa .imagem, .p-legal .grid section.detalhes .detalhe .imagem-atrelada .caixa .imagem, .p-contacto .grid section.detalhes .detalhe .imagem-atrelada .caixa .imagem {
  transition: opacity 0.6s ease;
  opacity: 0;
  height: 100%;
  width: 100%;
  object-fit: cover;
}
.p-index .grid section.imagem-principal, .p-apartamentos .grid section.imagem-principal, .p-legal .grid section.imagem-principal, .p-contacto .grid section.imagem-principal {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  height: auto;
  aspect-ratio: 1/1;
  width: calc((100% - (1px * (2 - 1))) / 2);
  top: calc(600px + 3px);
  right: 1px;
  background: var(--branco);
  z-index: 1;
  position: relative;
  position: absolute;
  padding: var(--tamanhoMin);
}
.p-index .grid section.imagem-principal::before, .p-apartamentos .grid section.imagem-principal::before, .p-legal .grid section.imagem-principal::before, .p-contacto .grid section.imagem-principal::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.p-index .grid section.imagem-principal > .caixa, .p-apartamentos .grid section.imagem-principal > .caixa, .p-legal .grid section.imagem-principal > .caixa, .p-contacto .grid section.imagem-principal > .caixa {
  height: 100%;
  border-radius: var(--bordas);
  overflow: hidden;
}
.p-index .grid section.imagem-principal img, .p-apartamentos .grid section.imagem-principal img, .p-legal .grid section.imagem-principal img, .p-contacto .grid section.imagem-principal img {
  height: 100%;
  width: 100%;
  display: block;
  object-fit: cover;
  transition: padding 0.3s ease;
}
.p-index .grid section.apresentacao .conteudo, .p-index .grid section.apresentacao .imagem, .p-apartamentos .grid section.apresentacao .conteudo, .p-apartamentos .grid section.apresentacao .imagem, .p-legal .grid section.apresentacao .conteudo, .p-legal .grid section.apresentacao .imagem, .p-contacto .grid section.apresentacao .conteudo, .p-contacto .grid section.apresentacao .imagem {
  width: calc((100% - (1px * (2 - 1))) / 2);
}
.p-index .grid section.apresentacao .conteudo, .p-apartamentos .grid section.apresentacao .conteudo, .p-legal .grid section.apresentacao .conteudo, .p-contacto .grid section.apresentacao .conteudo {
  display: flex;
  flex-direction: column;
}
.p-index .grid section.apresentacao .conteudo h2, .p-apartamentos .grid section.apresentacao .conteudo h2, .p-legal .grid section.apresentacao .conteudo h2, .p-contacto .grid section.apresentacao .conteudo h2 {
  border-bottom: 1px solid var(--preto);
  position: relative;
}
.p-index .grid section.apresentacao .conteudo h2::before, .p-apartamentos .grid section.apresentacao .conteudo h2::before, .p-legal .grid section.apresentacao .conteudo h2::before, .p-contacto .grid section.apresentacao .conteudo h2::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.p-index .grid section.apresentacao .conteudo > .caixa, .p-apartamentos .grid section.apresentacao .conteudo > .caixa, .p-legal .grid section.apresentacao .conteudo > .caixa, .p-contacto .grid section.apresentacao .conteudo > .caixa {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: var(--branco);
  padding: var(--tamanhoMin);
  position: relative;
}
.p-index .grid section.apresentacao .conteudo > .caixa::before, .p-apartamentos .grid section.apresentacao .conteudo > .caixa::before, .p-legal .grid section.apresentacao .conteudo > .caixa::before, .p-contacto .grid section.apresentacao .conteudo > .caixa::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.p-index .grid section.apresentacao .conteudo > .caixa .texto p, .p-apartamentos .grid section.apresentacao .conteudo > .caixa .texto p, .p-legal .grid section.apresentacao .conteudo > .caixa .texto p, .p-contacto .grid section.apresentacao .conteudo > .caixa .texto p {
  width: 85%;
}
.p-index .grid section.apresentacao .imagem, .p-apartamentos .grid section.apresentacao .imagem, .p-legal .grid section.apresentacao .imagem, .p-contacto .grid section.apresentacao .imagem {
  height: 100%;
  aspect-ratio: 1/1;
  background: var(--branco);
  padding: var(--tamanhoMin);
  transition: padding 0.3s ease;
  position: relative;
}
.p-index .grid section.apresentacao .imagem:hover, .p-apartamentos .grid section.apresentacao .imagem:hover, .p-legal .grid section.apresentacao .imagem:hover, .p-contacto .grid section.apresentacao .imagem:hover {
  padding: 0;
}
.p-index .grid section.apresentacao .imagem::before, .p-apartamentos .grid section.apresentacao .imagem::before, .p-legal .grid section.apresentacao .imagem::before, .p-contacto .grid section.apresentacao .imagem::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.p-index .grid section.apresentacao .imagem > .caixa, .p-apartamentos .grid section.apresentacao .imagem > .caixa, .p-legal .grid section.apresentacao .imagem > .caixa, .p-contacto .grid section.apresentacao .imagem > .caixa {
  height: 100%;
  border-radius: var(--bordas);
  overflow: hidden;
}
.p-index .grid section.apresentacao .imagem > .caixa img, .p-apartamentos .grid section.apresentacao .imagem > .caixa img, .p-legal .grid section.apresentacao .imagem > .caixa img, .p-contacto .grid section.apresentacao .imagem > .caixa img {
  object-fit: cover;
  height: 100%;
  width: 100%;
}

.p-apartamentos section#mapa .info {
  height: 100vh !important;
}
.p-apartamentos section#mapa .info img {
  object-position: center bottom !important;
}
.p-apartamentos section.infos.completo .info, .p-apartamentos ul.infos.completo .info {
  width: calc((100% - (1px * (1 - 1))) / 1) !important;
  height: var(--tamanhoImgPrincipalIndex) !important;
}
.p-apartamentos section.infos .info, .p-apartamentos ul.infos .info {
  width: calc((100% - (1px * (3 - 1))) / 3) !important;
  padding: 0 !important;
  height: calc(var(--tamanhoImgPrincipalIndex) / 2) !important;
}
.p-apartamentos section.infos .info.col1, .p-apartamentos ul.infos .info.col1 {
  width: calc((100% - (1px * (4 - 1))) / 4) !important;
}
.p-apartamentos section.infos .info.col2, .p-apartamentos ul.infos .info.col2 {
  width: calc((100% - (1px * (2 - 1))) / 2) !important;
}
.p-apartamentos section.infos .info .imagem, .p-apartamentos ul.infos .info .imagem {
  height: 100%;
  padding: var(--tamanhoMin);
  transition: padding 0.3s ease;
}
.p-apartamentos section.infos .info .imagem:hover, .p-apartamentos ul.infos .info .imagem:hover {
  padding: 0;
}
.p-apartamentos section.infos .info .imagem .caixa, .p-apartamentos ul.infos .info .imagem .caixa {
  height: 100%;
  border-radius: var(--bordas);
  overflow: hidden;
}
.p-apartamentos section.infos .info .imagem .caixa img, .p-apartamentos ul.infos .info .imagem .caixa img {
  object-fit: cover;
  height: 100%;
  width: 100%;
}
.p-apartamentos section.infos .info h2, .p-apartamentos ul.infos .info h2 {
  font: var(--fontSubTitulo);
  text-transform: uppercase;
  color: var(--preto);
  border-bottom: 1px solid var(--preto);
  padding: var(--tamanhoMin);
  position: relative;
}
.p-apartamentos section.infos .info h2::before, .p-apartamentos ul.infos .info h2::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.p-apartamentos section.infos .info ul, .p-apartamentos section.infos .info p, .p-apartamentos section.infos .info dl, .p-apartamentos ul.infos .info ul, .p-apartamentos ul.infos .info p, .p-apartamentos ul.infos .info dl {
  font: var(--fontCorpo);
  color: var(--marrom);
  text-transform: initial;
  height: 100%;
  padding: var(--tamanhoMin);
  position: relative;
}
.p-apartamentos section.infos .info ul::before, .p-apartamentos section.infos .info p::before, .p-apartamentos section.infos .info dl::before, .p-apartamentos ul.infos .info ul::before, .p-apartamentos ul.infos .info p::before, .p-apartamentos ul.infos .info dl::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.p-apartamentos section.infos .info ul dt, .p-apartamentos section.infos .info p dt, .p-apartamentos section.infos .info dl dt, .p-apartamentos ul.infos .info ul dt, .p-apartamentos ul.infos .info p dt, .p-apartamentos ul.infos .info dl dt {
  font: var(--fontCorpoContraste);
}
.p-apartamentos section.infos .info ul dd, .p-apartamentos section.infos .info p dd, .p-apartamentos section.infos .info dl dd, .p-apartamentos ul.infos .info ul dd, .p-apartamentos ul.infos .info p dd, .p-apartamentos ul.infos .info dl dd {
  font: var(--fontCorpo);
  text-transform: initial;
  margin-bottom: var(--tamanhoMin);
}
.p-apartamentos section.infos .info ul dd:last-of-type, .p-apartamentos section.infos .info p dd:last-of-type, .p-apartamentos section.infos .info dl dd:last-of-type, .p-apartamentos ul.infos .info ul dd:last-of-type, .p-apartamentos ul.infos .info p dd:last-of-type, .p-apartamentos ul.infos .info dl dd:last-of-type {
  margin-bottom: 0;
}

.p-legal .grid {
  height: calc(100vh - var(--tamanhoHeader) - var(--tamanhoMax));
  overflow: hidden;
  flex-direction: column;
  flex-wrap: nowrap;
  transition: height 0.3s ease;
}
.p-legal .grid section.detalhes .detalhe {
  justify-content: flex-start;
}
.p-legal .grid section.detalhes .detalhe h2 {
  font: var(--fontSubTitulo);
}
.p-legal .grid section.detalhes .detalhe.aberto {
  flex: 1;
}
.p-legal .grid section.detalhes .detalhe.aberto > .caixa {
  height: calc(100vh - var(--tamanhoH2) - var(--tamanhoH2) - var(--tamanhoH2) - var(--tamanhoH2) - var(--tamanhoHeader));
  flex: 1;
}
.p-legal .grid section.detalhes .detalhe.aberto .imagem-atrelada .texto {
  opacity: 1;
  height: 100%;
  overflow-y: auto;
}
.p-legal .grid section.detalhes .detalhe > .caixa .texto {
  gap: 0;
}
.p-legal .grid section.detalhes .detalhe .imagem-atrelada {
  padding: var(--tamanhoMin) !important;
}
.p-legal .grid section.detalhes .detalhe .imagem-atrelada .texto {
  opacity: 0;
}
.p-legal .grid section.detalhes .detalhe .imagem-atrelada .texto .titulo {
  color: var(--preto);
}

html.sem-scroll {
  height: 100vh !important;
  overflow: hidden;
}

.p-contacto {
  height: 100vh !important;
  overflow: hidden;
}
.p-contacto .grid {
  height: calc(100vh - var(--tamanhoHeader) - var(--tamanhoMax) + 2px);
}
.p-contacto .grid h2 {
  background: var(--branco);
}
.p-contacto .grid footer {
  height: 100%;
}
.p-contacto .grid footer form textarea, .p-contacto .grid footer form .campo:has(textarea) {
  height: calc(100vh - calc(var(--tamanhoH2) * 4) - var(--tamanho) - var(--tamanhoMax));
}

.p-sobrenos section.infos.missao-visao-valores {
  align-items: stretch;
}
.p-sobrenos section.infos.missao-visao-valores .info {
  height: 100% !important;
}

.p-disponibilidade ul.infos .info {
  width: calc((100% - (1px * (5 - 1))) / 5) !important;
  height: fit-content !important;
  text-align: center;
}
.p-disponibilidade ul.infos .info.ativo, .p-disponibilidade ul.infos .info:hover {
  cursor: pointer;
}
.p-disponibilidade ul.infos .info.ativo span, .p-disponibilidade ul.infos .info:hover span {
  background: var(--verde);
}
.p-disponibilidade ul.infos .info span {
  border-radius: var(--bordas);
  padding: var(--tamanhoMin) !important;
  transition: background 0.3s ease;
}
.p-disponibilidade table.listagem thead tr th {
  padding: 0;
  height: fit-content;
}
.p-disponibilidade table.listagem thead tr th:first-of-type span {
  border-top-left-radius: var(--bordas);
  border-bottom-left-radius: var(--bordas);
}
.p-disponibilidade table.listagem thead tr th:last-of-type span {
  border-top-right-radius: var(--bordas);
  border-bottom-right-radius: var(--bordas);
}
.p-disponibilidade table.listagem thead tr th span {
  font: var(--fontCorpoMenor);
  background: var(--marrom);
  color: var(--branco);
  padding: var(--tamanhoMin);
  display: block;
}
.p-disponibilidade table.listagem tbody tr.escondido {
  display: none;
}
.p-disponibilidade table.listagem tbody tr td:nth-last-child(3) {
  position: relative;
}
.p-disponibilidade table.listagem tbody tr td:nth-last-child(3)::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.p-disponibilidade table.listagem tbody tr td:nth-last-child(3)::before {
  background: linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat !important;
}
.p-disponibilidade table.listagem tr {
  width: calc((100% - (1px * (1 - 1))) / 1);
  flex-direction: row !important;
  padding: 0 !important;
  position: relative;
}
.p-disponibilidade table.listagem tr::before {
  --canto: 10px;
  --esp: 1px;
  content: "";
  position: absolute;
  inset: calc(-1 * var(--esp));
  pointer-events: none;
  background: linear-gradient(var(--branco) 0 0) top left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) top right/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom left/var(--esp) var(--canto) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--canto) var(--esp) no-repeat, linear-gradient(var(--branco) 0 0) bottom right/var(--esp) var(--canto) no-repeat;
}
.p-disponibilidade table.listagem tr th, .p-disponibilidade table.listagem tr td {
  flex: 1;
  padding: var(--tamanhoMin) 0;
  text-align: center;
  color: var(--cinza) !important;
}
.p-disponibilidade table.listagem tr th:not(.botao-caixa) span, .p-disponibilidade table.listagem tr td:not(.botao-caixa) span {
  font: var(--fontCorpoMenor);
}
.p-disponibilidade table.listagem tr th.botao-caixa, .p-disponibilidade table.listagem tr td.botao-caixa {
  padding: 0 !important;
  position: relative !important;
}
.p-disponibilidade table.listagem tr th.botao-caixa:last-of-type .botao .caixa, .p-disponibilidade table.listagem tr td.botao-caixa:last-of-type .botao .caixa {
  border-left: 0;
  border-right: 0;
}
.p-disponibilidade table.listagem tr th.botao-caixa .botao, .p-disponibilidade table.listagem tr td.botao-caixa .botao {
  height: 100% !important;
  display: block;
}
.p-disponibilidade table.listagem tr th.botao-caixa .botao .caixa, .p-disponibilidade table.listagem tr td.botao-caixa .botao .caixa {
  height: 100%;
  width: 100%;
  border-top: 0;
  border-bottom: 0;
}
.p-disponibilidade table.listagem tr.reservado td.botao-caixa, .p-disponibilidade table.listagem tr.vendido td.botao-caixa {
  pointer-events: none;
}
.p-disponibilidade table.listagem tr.reservado td.botao-caixa:not(:last-of-type) .caixa a, .p-disponibilidade table.listagem tr.vendido td.botao-caixa:not(:last-of-type) .caixa a {
  color: var(--cinza);
}
.p-disponibilidade table.listagem tr.reservado td.botao-caixa:last-of-type a, .p-disponibilidade table.listagem tr.vendido td.botao-caixa:last-of-type a {
  background: var(--cinza);
}

.g-texto {
  opacity: 0;
  display: block !important;
}

@media (max-width: 1028px) {
  html {
    font-size: 45%;
  }

  :root {
    --tamanho: 20px;
    --fontTitulo: 5rem/7.2rem "Syncopate";
    --fontSubTitulo: 3rem/3.6rem "Syncopate";
    --fontCorpo: 2.6rem/3.2rem "RB Rational Neue Medium";
    --fontCorpoMenor: 1.6rem/2rem "RB Rational Neue Medium";
    --fontCorpoContraste: 2.6rem/3.2rem "RB Rational Neue Bold";
    --fontBotao: 1.6rem/1.9rem "Syncopate";
  }

  header .logo img {
    height: initial;
  }
  header > .botao2:not([onclick]) {
    display: none;
  }
  header.aberto .menu {
    width: 100%;
    left: 0;
    right: initial;
  }

  .p-index .grid section.dados .dado, .p-apartamentos .grid section.dados .dado, .p-contacto .grid section.dados .dado, .p-sobrenos .grid section.dados .dado, .p-legal .grid section.dados .dado {
    width: calc((100% - (1px * (1 - 1))) / 1);
  }
  .p-index .grid section.infos .info, .p-apartamentos .grid section.infos .info, .p-contacto .grid section.infos .info, .p-sobrenos .grid section.infos .info, .p-legal .grid section.infos .info {
    width: calc((100% - (1px * (1 - 1))) / 1) !important;
  }
  .p-index .grid section.detalhes .detalhe, .p-apartamentos .grid section.detalhes .detalhe, .p-contacto .grid section.detalhes .detalhe, .p-sobrenos .grid section.detalhes .detalhe, .p-legal .grid section.detalhes .detalhe {
    width: calc((100% - (1px * (1 - 1))) / 1);
  }
  .p-index .grid section.detalhes .detalhe .imagem-atrelada, .p-apartamentos .grid section.detalhes .detalhe .imagem-atrelada, .p-contacto .grid section.detalhes .detalhe .imagem-atrelada, .p-sobrenos .grid section.detalhes .detalhe .imagem-atrelada, .p-legal .grid section.detalhes .detalhe .imagem-atrelada {
    position: relative !important;
    width: 100%;
    border-bottom: 1px solid var(--preto);
  }
  .p-index .grid section.detalhes .detalhe .imagem-atrelada .imagem, .p-apartamentos .grid section.detalhes .detalhe .imagem-atrelada .imagem, .p-contacto .grid section.detalhes .detalhe .imagem-atrelada .imagem, .p-sobrenos .grid section.detalhes .detalhe .imagem-atrelada .imagem, .p-legal .grid section.detalhes .detalhe .imagem-atrelada .imagem {
    opacity: 1 !important;
    border-bottom: 1px solid var(--preto);
  }
  .p-index .grid section.detalhes .detalhe .imagem-atrelada .imagem img, .p-apartamentos .grid section.detalhes .detalhe .imagem-atrelada .imagem img, .p-contacto .grid section.detalhes .detalhe .imagem-atrelada .imagem img, .p-sobrenos .grid section.detalhes .detalhe .imagem-atrelada .imagem img, .p-legal .grid section.detalhes .detalhe .imagem-atrelada .imagem img {
    opacity: 1 !important;
  }
  .p-index .grid section.detalhes .detalhe h2, .p-index .grid section.detalhes .detalhe .caixa, .p-apartamentos .grid section.detalhes .detalhe h2, .p-apartamentos .grid section.detalhes .detalhe .caixa, .p-contacto .grid section.detalhes .detalhe h2, .p-contacto .grid section.detalhes .detalhe .caixa, .p-sobrenos .grid section.detalhes .detalhe h2, .p-sobrenos .grid section.detalhes .detalhe .caixa, .p-legal .grid section.detalhes .detalhe h2, .p-legal .grid section.detalhes .detalhe .caixa {
    width: calc((100% - (1px * (1 - 1))) / 1);
    height: fit-content !important;
    border-right: none !important;
  }
  .p-index .grid section.detalhes .detalhe h2, .p-apartamentos .grid section.detalhes .detalhe h2, .p-contacto .grid section.detalhes .detalhe h2, .p-sobrenos .grid section.detalhes .detalhe h2, .p-legal .grid section.detalhes .detalhe h2 {
    border-bottom: 1px solid var(--preto);
    order: 1;
    height: calc(var(--tamanhoH2) / 2) !important;
  }
  .p-index .grid section.detalhes .detalhe .imagem-atrelada, .p-apartamentos .grid section.detalhes .detalhe .imagem-atrelada, .p-contacto .grid section.detalhes .detalhe .imagem-atrelada, .p-sobrenos .grid section.detalhes .detalhe .imagem-atrelada, .p-legal .grid section.detalhes .detalhe .imagem-atrelada {
    height: initial;
    order: 2;
  }
  .p-index .grid section.detalhes .detalhe > .caixa, .p-apartamentos .grid section.detalhes .detalhe > .caixa, .p-contacto .grid section.detalhes .detalhe > .caixa, .p-sobrenos .grid section.detalhes .detalhe > .caixa, .p-legal .grid section.detalhes .detalhe > .caixa {
    order: 3;
  }
  .p-index .grid section.detalhes .detalhe > .caixa .texto p, .p-apartamentos .grid section.detalhes .detalhe > .caixa .texto p, .p-contacto .grid section.detalhes .detalhe > .caixa .texto p, .p-sobrenos .grid section.detalhes .detalhe > .caixa .texto p, .p-legal .grid section.detalhes .detalhe > .caixa .texto p {
    width: 100%;
  }
  .p-index .grid section.detalhes .detalhe > .caixa .botao2, .p-apartamentos .grid section.detalhes .detalhe > .caixa .botao2, .p-contacto .grid section.detalhes .detalhe > .caixa .botao2, .p-sobrenos .grid section.detalhes .detalhe > .caixa .botao2, .p-legal .grid section.detalhes .detalhe > .caixa .botao2 {
    margin-bottom: var(--tamanhoMin2x);
  }
  .p-index .grid section.apresentacao > .conteudo, .p-apartamentos .grid section.apresentacao > .conteudo, .p-contacto .grid section.apresentacao > .conteudo, .p-sobrenos .grid section.apresentacao > .conteudo, .p-legal .grid section.apresentacao > .conteudo {
    width: calc((100% - (1px * (1 - 1))) / 1) !important;
  }
  .p-index .grid section.apresentacao > .conteudo > .caixa .botao2, .p-apartamentos .grid section.apresentacao > .conteudo > .caixa .botao2, .p-contacto .grid section.apresentacao > .conteudo > .caixa .botao2, .p-sobrenos .grid section.apresentacao > .conteudo > .caixa .botao2, .p-legal .grid section.apresentacao > .conteudo > .caixa .botao2 {
    margin-top: var(--tamanho);
  }
  .p-index .grid section.apresentacao > .conteudo > .caixa .texto p, .p-apartamentos .grid section.apresentacao > .conteudo > .caixa .texto p, .p-contacto .grid section.apresentacao > .conteudo > .caixa .texto p, .p-sobrenos .grid section.apresentacao > .conteudo > .caixa .texto p, .p-legal .grid section.apresentacao > .conteudo > .caixa .texto p {
    width: 100%;
  }
  .p-index .grid section.apresentacao .imagem, .p-apartamentos .grid section.apresentacao .imagem, .p-contacto .grid section.apresentacao .imagem, .p-sobrenos .grid section.apresentacao .imagem, .p-legal .grid section.apresentacao .imagem {
    width: calc((100% - (1px * (1 - 1))) / 1) !important;
  }

  .p-disponibilidade .grid ul.infos .info {
    width: calc((100% - (1px * (2 - 1))) / 2) !important;
  }
  .p-disponibilidade .grid ul.infos .info:last-of-type {
    width: calc((100% - (1px * (1 - 1))) / 1) !important;
  }
  .p-disponibilidade .grid table.listagem {
    display: flex !important;
    flex-direction: column;
    width: 100vw;
    overflow-x: scroll;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows, .p-disponibilidade .grid table.listagem thead {
    display: grid;
    gap: 1px;
    width: 100%;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows th span, .p-disponibilidade .grid table.listagem #sheet-rows td span, .p-disponibilidade .grid table.listagem thead th span, .p-disponibilidade .grid table.listagem thead td span {
    display: block;
    text-wrap: nowrap;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows td:nth-child(1) span, .p-disponibilidade .grid table.listagem #sheet-rows th:nth-child(1) span, .p-disponibilidade .grid table.listagem thead td:nth-child(1) span, .p-disponibilidade .grid table.listagem thead th:nth-child(1) span {
    width: 80px;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows td:nth-child(2) span, .p-disponibilidade .grid table.listagem #sheet-rows th:nth-child(2) span, .p-disponibilidade .grid table.listagem thead td:nth-child(2) span, .p-disponibilidade .grid table.listagem thead th:nth-child(2) span {
    width: 80px;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows td:nth-child(3) span, .p-disponibilidade .grid table.listagem #sheet-rows th:nth-child(3) span, .p-disponibilidade .grid table.listagem thead td:nth-child(3) span, .p-disponibilidade .grid table.listagem thead th:nth-child(3) span {
    width: 80px;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows td:nth-child(4) span, .p-disponibilidade .grid table.listagem #sheet-rows th:nth-child(4) span, .p-disponibilidade .grid table.listagem thead td:nth-child(4) span, .p-disponibilidade .grid table.listagem thead th:nth-child(4) span {
    width: 120px;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows td:nth-child(5) span, .p-disponibilidade .grid table.listagem #sheet-rows th:nth-child(5) span, .p-disponibilidade .grid table.listagem thead td:nth-child(5) span, .p-disponibilidade .grid table.listagem thead th:nth-child(5) span {
    width: 80px;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows td:nth-child(6) span, .p-disponibilidade .grid table.listagem #sheet-rows th:nth-child(6) span, .p-disponibilidade .grid table.listagem thead td:nth-child(6) span, .p-disponibilidade .grid table.listagem thead th:nth-child(6) span {
    width: 80px;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows td:nth-child(7) span, .p-disponibilidade .grid table.listagem #sheet-rows th:nth-child(7) span, .p-disponibilidade .grid table.listagem thead td:nth-child(7) span, .p-disponibilidade .grid table.listagem thead th:nth-child(7) span {
    width: 80px;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows td:nth-child(8) span, .p-disponibilidade .grid table.listagem #sheet-rows th:nth-child(8) span, .p-disponibilidade .grid table.listagem thead td:nth-child(8) span, .p-disponibilidade .grid table.listagem thead th:nth-child(8) span {
    width: 80px;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows td:nth-child(9) span, .p-disponibilidade .grid table.listagem #sheet-rows th:nth-child(9) span, .p-disponibilidade .grid table.listagem thead td:nth-child(9) span, .p-disponibilidade .grid table.listagem thead th:nth-child(9) span {
    width: 100px;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows td:nth-child(10) span, .p-disponibilidade .grid table.listagem #sheet-rows th:nth-child(10) span, .p-disponibilidade .grid table.listagem thead td:nth-child(10) span, .p-disponibilidade .grid table.listagem thead th:nth-child(10) span {
    width: 100px;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows td:nth-child(11) span, .p-disponibilidade .grid table.listagem #sheet-rows th:nth-child(11) span, .p-disponibilidade .grid table.listagem thead td:nth-child(11) span, .p-disponibilidade .grid table.listagem thead th:nth-child(11) span {
    width: 140px;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows td:nth-child(12) span, .p-disponibilidade .grid table.listagem #sheet-rows th:nth-child(12) span, .p-disponibilidade .grid table.listagem thead td:nth-child(12) span, .p-disponibilidade .grid table.listagem thead th:nth-child(12) span {
    width: 120px;
  }
  .p-disponibilidade .grid table.listagem #sheet-rows td:nth-child(13) span, .p-disponibilidade .grid table.listagem #sheet-rows th:nth-child(13) span, .p-disponibilidade .grid table.listagem thead td:nth-child(13) span, .p-disponibilidade .grid table.listagem thead th:nth-child(13) span {
    width: 120px;
  }
  .p-disponibilidade .grid table.listagem tr {
    width: 100%;
  }

  footer {
    display: contents;
  }
  footer > .caixa, footer #formulario {
    width: calc((100% - (1px * (1 - 1))) / 1);
  }
  footer > .caixa {
    display: contents;
  }
  footer > .caixa h2 {
    order: 1;
    border-bottom: none;
  }
  footer > .caixa .infos {
    order: 3;
  }
  footer #formulario {
    order: 2;
    border-left: none;
  }
  footer #formulario p {
    display: inline;
  }
  footer .copy {
    order: 4;
    border-top: none;
  }

  .p-apartamentos section#mapa .info {
    height: auto !important;
  }

  .p-index .grid section.apresentacao h2, .p-index .grid section.detalhes h2, .p-index .grid footer h2, .p-apartamentos .grid section.apresentacao h2, .p-apartamentos .grid section.detalhes h2, .p-apartamentos .grid footer h2, .p-contacto .grid section.apresentacao h2, .p-contacto .grid section.detalhes h2, .p-contacto .grid footer h2 {
    font: var(--fontSubTitulo) !important;
    height: calc(var(--tamanhoH2) / 2) !important;
  }

  .p-contacto {
    height: auto !important;
    overflow: auto !important;
  }
  .p-contacto .grid {
    height: initial;
  }

  .p-legal .grid {
    height: initial;
  }
  .p-legal .grid section.detalhes .detalhe h2 {
    height: fit-content !important;
  }
  .p-legal .grid section.detalhes .detalhe .caixa {
    display: none !important;
  }
  .p-legal .grid section.detalhes .detalhe .texto {
    opacity: 1 !important;
  }
  .p-legal .grid section.detalhes .detalhe .imagem-atrelada {
    border-bottom: 0px !important;
  }
}
.feedback {
  position: fixed;
  top: 50%;
  right: var(--tamanho);
  z-index: 9;
  font: var(--fontCorpoMenor);
  transform: translateY(-50%);
}
.feedback .positivo, .feedback .negativo {
  padding: var(--tamanhoMin2x);
  border-radius: var(--bordas);
  display: none;
}
.feedback .positivo.visivel, .feedback .negativo.visivel {
  display: block;
}
.feedback .positivo {
  background: var(--verde);
}
.feedback .negativo {
  background: var(--vermelho);
}