/* Acrescentos do site novo ao tema: aviso de cookies, seletor de língua, formulário e "Read More". */
.aviso-cookies {
  position: fixed; z-index: 100000; left: 20px; right: 20px; bottom: 20px; max-width: 520px;
  background: #171717; color: #fff; border: 1px solid #333; padding: 22px 24px; font: 400 14px/1.6 'Poppins', sans-serif;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}
@media (min-width: 768px) { .aviso-cookies { left: auto; right: 40px; bottom: 40px; } }
.aviso-cookies p { margin: 0 0 16px; color: #fff; font-size: 14px; }
.aviso-cookies a { color: #d4af37; text-decoration: underline; }
.aviso-cookies div { display: flex; gap: 10px; }
.aviso-cookies button {
  flex: 1; cursor: pointer; font: 500 12px/1 'Poppins', sans-serif; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 14px 16px; background: transparent; color: #fff; border: 1px solid #d4af37;
}
.aviso-cookies button:hover, .aviso-cookies button:focus-visible { background: #d4af37; color: #171717; }

.menu-lingua span { opacity: 0.75; }

.contacto-armadilha { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contacto-form .wpforms-field { margin-bottom: 24px; }
.contacto-form input, .contacto-form textarea { width: 100%; }
.contacto-estado:empty { display: none; }
.contacto-estado { margin-top: 20px; padding: 14px 18px; font-size: 15px; border-left: 2px solid #d4af37; background: #f6f1e4; color: #171717; }
.contacto-estado[data-tipo='erro'] { border-color: #a3361f; background: #f8ece7; }
.contacto-form button:disabled { opacity: 0.6; cursor: progress; }

/* O título da abertura passou de <div> a <h1> (SEO); o tamanho vem das regras do tema para .hero-title. */
#hero h1.hero-title { margin: 0; }

/* Menu legível na abertura: um degradê escuro suave no topo, por trás do dourado, que some ao descer
   (a classe menu-com-fundo vem do src/site.js). */
header::before {
  content: ''; position: absolute; left: 0; right: 0; top: 0; height: 230px; pointer-events: none;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.42), rgba(0, 0, 0, 0.18) 55%, rgba(0, 0, 0, 0));
  transition: opacity 0.4s ease;
}
.menu-com-fundo header::before { opacity: 0; }
body:not(.menu-com-fundo) .classic-menu .flexnav li a span { text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); }

/* Logótipos dos clientes (About): cada um numa caixa da mesma altura, centrado. Com tamanhos tão diferentes,
   as caixas de 30 px do tema deixavam-nos encostados uns aos outros. */
.clients-table li { display: flex; align-items: center; justify-content: center; height: 110px; padding: 20px 24px; }
.clients-table li img { width: auto; max-width: 100%; height: auto; max-height: 54px; object-fit: contain; }
@media (max-width: 767px) { .clients-table li { height: 90px; padding: 16px; } .clients-table li img { max-height: 42px; } }

/* Rodapé no telemóvel: o texto dos direitos (com Privacy e Cookies) ocupa duas linhas e ficava por baixo dos
   ícones das redes; em coluna, cada coisa na sua linha. */
@media (max-width: 767px) {
  footer, #footer-container { height: auto; }
  #footer-container { position: relative; margin: 0; padding: 28px 24px 32px; display: flex; flex-direction: column; align-items: center; gap: 16px; }
  #footer-container > * { float: none !important; position: static !important; }
  .footer-middle { display: block; height: auto; order: 1; }
  .copyright { top: 0; height: auto; line-height: 1.7; padding: 0; text-align: center; }
  footer .socials-wrap { width: auto; height: auto; order: 2; transform: none !important; -webkit-transform: none !important; }
  .socials-wrap .socials { margin: 0; text-align: center; }
  #footer-container #backtotop.button-wrap.left { order: 3; width: 40px; height: 40px; }
  #backtotop.button-wrap.left .icon-wrap { position: relative; right: auto; }
}
