/*
  FOOTER — estrutura do tema, cores e tipografia da maquete Global Santos
  Só variáveis do tema:
  --primaryColor --secondaryColor --terciaryColor
  --primaryTextColor --secondaryTextColor
  --primaryTextFont --secondaryTextFont
*/

.site-footer{
    background: var(--primaryColor);
    color: var(--secondaryTextColor);
    font-family: var(--secondaryTextFont), sans-serif;
    font-size: 17px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}
.site-footer *,
.site-footer *::before,
.site-footer *::after{ box-sizing: border-box; }

.site-footer .container{
    width: 100%;
    max-width: 1240px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
}

/* espaçamento do bloco principal (a maquete: 64px em cima, 40px em baixo) */
.site-footer .container > .row{
    padding-top: 64px !important;
    padding-bottom: 40px !important;
    row-gap: 32px;
}

.site-footer p{ margin: 0; }
.site-footer p + p{ margin-top: 14px; }

.site-footer a{
    color: inherit;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
    transition: text-decoration-color .2s ease, opacity .2s ease;
}
.site-footer a:hover{ text-decoration-color: var(--secondaryTextColor); }
.site-footer a strong{ font-weight: 400; }

.site-footer :focus-visible{
    outline: 3px solid var(--terciaryColor);
    outline-offset: 3px;
}

/* títulos vindos do editor da página de contactos */
.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4{
    font-family: var(--primaryTextFont), sans-serif;
    font-weight: 800;
    font-size: 16px;
    line-height: 1.15;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--secondaryTextColor);
    margin: 0 0 14px;
    padding: 0;
    border: 0;
}

/* logo branco (campo logo-footer da página de contactos) */
.site-footer .logo-footer{ display: inline-block; line-height: 0; }
.site-footer .logo-footer img{
    height: 120px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

/* menu do rodapé */
.site-footer .col-lg-6 > .text-lg-end{
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* redes sociais */
.site-footer .socials{ padding: 0 !important; gap: 4px; }
.site-footer .socials a{ display: inline-block; padding: 0 .25rem; }
.site-footer .socials a:hover{ text-decoration-color: transparent; }
.site-footer .socials a svg{
    width: 24px;
    height: 24px;
    fill: var(--secondaryTextColor);
    transition: opacity .2s ease, transform .2s ease;
}
.site-footer .socials a:hover svg{ opacity: .7; }

/* barra inferior */
.site-footer .base{ border-top: 1px solid var(--terciaryColor); }
.site-footer .base .container{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px 24px;
    padding-top: 20px;
    padding-bottom: 20px;
    font-size: 14px;
}

@media (max-width: 991.98px){
    .site-footer .col-lg-6 > .text-lg-end,
    .site-footer .socials{ align-items: flex-start; }
}

/* ---- Efeitos ---- */
.site-footer .logo-footer{ transition: opacity .2s ease; }
.site-footer .logo-footer:hover{ opacity: .85; }
@media (hover: hover){
    .site-footer .socials a:hover svg{ transform: translateY(-2px) scale(1.08); }
}

/* ---- Responsivo ---- */
@media (max-width: 991.98px){
    .site-footer .container > .row{ padding-top: 48px !important; padding-bottom: 32px !important; }
}
@media (max-width: 575.98px){
    .site-footer .logo-footer img{ height: 96px; }
    .site-footer .base .container{ flex-direction: column; gap: 6px; padding-top: 16px; padding-bottom: 16px; }
}
@media (max-width: 480px){
    .site-footer .container{ padding-left: 20px; padding-right: 20px; }
}