/* ------------------------------------------------------------------
   Personalizações aplicadas ao clone.
   Carregado DEPOIS do CSS do Elementor, para sobrepor-se a ele.

   Mantido num ficheiro separado de propósito: assim as alterações não
   se perdem se o CSS do Elementor for descarregado outra vez.
   ------------------------------------------------------------------ */


/* 1. RODAPÉ — centrar o texto de copyright na página
   ------------------------------------------------------------------
   O rodapé tem duas colunas: 70% para o texto e 30% para a seta de
   "voltar ao topo". O texto estava centrado dentro dos seus 70%, o que
   o deixava visivelmente desviado para a esquerda.

   Solução: o texto passa a ocupar a largura toda (ficando centrado na
   página) e a seta é encostada à direita, por cima, sem ocupar espaço. */

/* A secção do rodapé não trazia padding nenhum no desktop: ficava com 65px
   de altura, o copyright colado ao topo e os links colados ao fundo. */
.elementor-28 .elementor-element.elementor-element-6a4cc804 {
    padding: 30px 20px;
}

.elementor-28 .elementor-element.elementor-element-6a4cc804 > .elementor-container {
    position: relative;
}

/* A coluna é flex: sem isto as duas linhas (links + copyright) não empilham
   nem ficam centradas. */
.elementor-28 .elementor-element.elementor-element-66d1839f > .elementor-widget-wrap {
    flex-direction: column;
    /* nowrap é obrigatório aqui. O .elementor-widget-wrap traz flex-wrap:wrap
       do Elementor; com direção "column" e altura limitada, os itens em vez de
       empilharem transbordam para COLUNAS ao lado — foi o que pôs os links e o
       copyright lado a lado, um deles fora do ecrã. */
    flex-wrap: nowrap;
    align-items: center;
    align-content: center;
    height: auto;
}

.elementor-28 .elementor-element.elementor-element-66d1839f {
    width: 100%;
}

.elementor-28 .elementor-element.elementor-element-640fe234 {
    position: absolute;
    top: 50%;
    right: 0;
    width: auto;
    transform: translateY(-50%);
}

/* O Elementor alinha este título a "start" no desktop (só o centra em ecrãs
   pequenos). Enquanto o texto vivia na coluna estreita da esquerda isso não
   se notava; agora que ocupa a largura toda, ficaria encostado à esquerda.
   Centrar a caixa não chega — é preciso centrar o texto dentro dela. */
.elementor-28 .elementor-element.elementor-element-7298fcc8,
.elementor-28 .elementor-element.elementor-element-7298fcc8 .elementor-heading-title {
    text-align: center;
}

/* SLIDESHOW
   ------------------------------------------------------------------
   O Swiper calcula as larguras a partir do contentor e, na secção esticada,
   sobrava-lhe 2px sobre a largura da janela — o suficiente para aparecer
   barra de deslocação horizontal. */

.elementor-widget-slides,
.elementor-widget-slides .swiper,
.elementor-widget-slides .swiper-wrapper {
    max-width: 100%;
    overflow-x: hidden;
}


/* MENU EM TELEMÓVEL
   ------------------------------------------------------------------
   Painel próprio, construído pelo assets/elementor-fallback.js. Não
   reaproveita o painel do Elementor porque o CSS que o abria não veio no
   clone e o original fica preso a 0 de altura. */

/* O painel de menu do próprio Elementor tem de ficar escondido.
   Ele nasce "aberto" e só era colapsado por CSS que não veio no clone —
   o resultado era as entradas do menu à vista, por baixo do hambúrguer,
   e o meu painel a abrir por cima delas. Quem trata do menu em telemóvel
   é o .jf-menu-movel, logo a seguir. */
.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    display: none !important;
}

.jf-menu-movel {
    position: absolute;
    z-index: 9999;
    /* top:100% é essencial. Sem isto o painel abre à altura do próprio
       botão e tapa-o: o toque seguinte, em vez de fechar o menu, acertava
       num link e navegava. Tem de começar ABAIXO do botão. */
    top: 100%;
    right: 0;
    left: 0;
    display: none;
    /* mesmo verde-sálvia do cabeçalho, para o painel ler como uma
       extensão da faixa e não como uma caixa solta */
    background: #8E937C;
    padding: 8px 0;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .35);
    text-align: center;
}

.jf-menu-movel.aberto { display: block; }

.jf-menu-movel a {
    display: block;
    padding: 13px 20px;
    color: #F0EBEB;
    font-family: "League Spartan", Sans-serif;
    font-size: 18px;
    font-weight: 200;
    text-decoration: none;
}

.jf-menu-movel a:hover,
.jf-menu-movel a:focus-visible { background: #7D8269; }

/* o botão precisa de um contexto de posicionamento para o painel encaixar */
.elementor-widget-nav-menu { position: relative; }


/* 2. RODAPÉ — links para as páginas legais
   ------------------------------------------------------------------
   A lei exige que a Política de Privacidade, a Política de Cookies e o
   Livro de Reclamações estejam acessíveis a partir do site. O rodapé é
   o sítio habitual. */

.links-legais {
    /* O contentor à volta (.elementor-widget-wrap) é flex. Sem esta largura
       forçada, o <nav> encolhe até ao tamanho do texto e encosta à esquerda —
       e o text-align:center passa a centrar dentro dessa caixa estreita, não
       na página. Os widgets do Elementor não têm este problema porque já
       trazem width:100%; este <nav> não é um widget, por isso leva-o aqui. */
    /* O contentor é flex em coluna, logo o eixo principal é o VERTICAL.
       Um flex-basis de 100% aqui significaria "100% da altura" e empurrava o
       copyright para fora da caixa. O tamanho vem do conteúdo; a largura
       total consegue-se pelo align-self, que atua no eixo horizontal. */
    flex: 0 0 auto;
    align-self: stretch;
    width: 100%;
    /* fica ACIMA do copyright: a folga é por baixo */
    margin: 0 0 14px;
    /* folga simétrica dos dois lados: impede que o último link passe por
       baixo da seta de "voltar ao topo", sem desviar o centro */
    padding: 0 56px;
    font-family: "League Spartan", Sans-serif;
    font-size: 14px;
    font-weight: 300;
    text-align: center;
}

@media (max-width: 767px) {
    .links-legais { padding: 0; }   /* no telemóvel a seta passa para baixo */

    /* alvos de toque maiores: a 14px o link fica com ~17px de altura,
       pequeno demais para o dedo */
    .links-legais a,
    nav.links-legais .def-cookies { padding: 9px 4px; }
}

/* O botão "Definições de cookies" entra nesta lista de propósito: é um
   <button> a fazer de link e tem de ficar igual aos <a> do lado. Sem ele
   aqui, saía com outra cor e sem espaçamento. */
/* nav.links-legais (e não só .links-legais) porque o cookies.css carrega
   depois deste ficheiro: com a mesma especificidade, ganhava ele e o botão
   saía com a cor errada. O nome do elemento desempata a favor daqui. */
.links-legais a,
nav.links-legais .def-cookies {
    display: inline-block;
    margin: 0 9px;
    color: #686868;
    font-family: "League Spartan", Sans-serif;
    font-size: 14px;
    font-weight: 300;
    line-height: 21px;
    text-decoration: none;
}

.links-legais a:hover,
.links-legais a:focus-visible,
nav.links-legais .def-cookies:hover,
nav.links-legais .def-cookies:focus-visible {
    text-decoration: underline;
}

/* Em ecrãs pequenos a seta fica sobreposta ao texto; passa para baixo. */
@media (max-width: 767px) {
    .elementor-28 .elementor-element.elementor-element-6a4cc804 > .elementor-container {
        position: static;
    }
    .elementor-28 .elementor-element.elementor-element-640fe234 {
        position: static;
        width: 100%;
        transform: none;
    }
}
