/*
Theme Name: Larissazev Project
Theme URI: https://wpastra.com/
Template: astra
Author: Dev Team
Author URI: http://wpastra.com/about/
Description: Tema filho exclusivo para o projeto, otimizado e estruturado para performance.
Version: 1.0.0
Text Domain: lrsszv
*/
/* ==========================================================================
   Variáveis e Reset Básico
   ========================================================================== */

@font-face {
    font-family: 'Walkway';
    src: url('./assets/fonts/Walkway_Black.ttf') format('truetype');
    font-weight: 900;
    font-style: normal;
}

@font-face {
    font-family: 'Walkway';
    src: url('./assets/fonts/Walkway_UltraBold.ttf') format('truetype');
    font-weight: 800;
    font-style: normal;
}

/*
@font-face {
  font-family: 'Walkway';
  src: url('./assets/fonts/Walkway_Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
}
*/
:root {
    --color-bg-header: #FCFAF2;
    --color-text-dark: #333333;
    --color-border: #D1D1D1;
    /* --font-main: 'Walkway', sans-serif; */
    --font-main: 'Roboto', sans-serif;

    /* brand colors */
    --baunilha: #FFFFDE;
    --noite: #1b1b19;
    --curry: #EEAB21;
    --curry-50: hsla(40, 86%, 53%, 0.50);
    --curry-30: hsla(40, 86%, 53%, 0.30);
    --abacate: #C6CD5F;
    --jaspe: #EA5B13;
    --jaspe-50: rgba(234, 91, 19, 0.5);
    --jaspe-20: rgba(234, 91, 19, 0.2);
    --luar: #FFFFED;
    --pacifico: #ACC8D0;
    --pacifico-50: rgba(173, 201, 209, 0.5);
    --pacifico-30: rgba(173, 201, 209, 0.3);
    background-color: var(--baunilha);
}

/* Sobrescrevendo a fonte de forma agressiva nos cabeçalhos e menus */
body,
h1,
h2,
h3,
h4,
h5,
h6,
.site-title,
.header-menu-list a,
.ast-global-color-primary {
    font-family: var(--font-main) !important;
}

/* Como sua fonte não tem peso regular (400), garanta que os 
   elementos que a usam estejam puxando o Bold (700) no mínimo */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 900;
}

span,
h4,
p {
    letter-spacing: 0.05rem;
}

html {
    background-color: var(--baunilha);
}

body {
    margin: 0;
    font-family: var(--font-main);
    background-color: var(--baunilha);
}

#primary {
    margin: 0 !important;
}

.container {
    margin: 0 auto;
    padding: 0 20px;
}

button:hover,
button:active,
button:focus,
button:visited {
    background-color: transparent;
    color: var(--color-text-dark);
}

/* ==========================================================================
   Limpeza de Estilos do Tema Astra no Botão
   ========================================================================== */
.menu-toggle,
.menu-toggle:hover,
.menu-toggle:focus,
.menu-toggle:active {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    color: inherit !important;
}

/* ==========================================================================
   Posicionamento do Hambúrguer / Botão X
   ========================================================================== */
@media (max-width: 992px) {
    .menu-toggle {
        display: block;
        position: relative;
        z-index: 1000;
    }

    /* Fixa o "X" no canto superior direito enquanto o menu estiver aberto, 
       garantindo que ele nunca suma se a tela de fundo rolar acidentalmente */
    .menu-toggle.is-active {
        position: fixed;
        top: 20px;
        /* Ajuste para bater com o alinhamento da sua logo */
        right: 20px;
    }
}

/* ==========================================================================
   Header Site
   ========================================================================== */
.site-header {
    background-color: var(--color-bg-header);
    padding: 15px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.header-inner {
    display: flex;
    justify-content: space-between;
    /* Separa Logo (Esq) e Wrapper (Dir) */
    align-items: center;
}

/* O Wrapper se comporta como um container Flex no Desktop */
.header-mobile-wrapper {
    display: flex;
    align-items: center;
    gap: 40px;
    /* Distância entre os links do menu e a pílula de idiomas */
}

/* Branding */
.site-branding img {
    max-width: 150px;
    height: auto;
    display: block;
}

/* Navegação WP */
.header-menu-list {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 30px;
}

.header-menu-list a {
    text-decoration: none;
    color: var(--color-text-dark);
    font-weight: 600;
    font-size: 14px;
    transition: opacity 0.3s ease;
}

.header-menu-list a:hover {
    opacity: 0.7;
}

/* Language Switcher (Polylang) */
.lang-switcher-list {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 4px 12px;
    gap: 15px;
    border: 1px solid var(--color-border);
    border-radius: 30px;
    /* Estilo pílula */
    background-color: transparent;
    align-items: center;
}

.lang-switcher-list li {
    display: flex;
    align-items: center;
}

.lang-switcher-list a {
    display: flex;
    align-items: center;
    gap: 5px;
    text-decoration: none;
    color: var(--color-text-dark);
    font-size: 12px;
    font-weight: bold;
    text-transform: uppercase;
}

.lang-switcher-list img {
    width: 16px;
    /* Tamanho da bandeira */
    height: auto;
    border-radius: 2px;
}

/* Opacidade para idioma inativo */
.lang-switcher-list li:not(.current-lang) {
    opacity: 0.4;
}

/* ==========================================================================
   Menu Hambúrguer (Base)
   ========================================================================== */
.menu-toggle {
    display: none;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 10px;
    z-index: 1000;
}

.hamburger-box {
    width: 30px;
    height: 20px;
    display: inline-block;
    position: relative;
}

.hamburger-inner {
    display: block;
    top: 50%;
    margin-top: -1px;
}

.hamburger-inner,
.hamburger-inner::before,
.hamburger-inner::after {
    width: 30px;
    height: 2px;
    background-color: var(--color-text-dark);
    border-radius: 4px;
    position: absolute;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.hamburger-inner::before,
.hamburger-inner::after {
    content: "";
    display: block;
}

.hamburger-inner::before {
    top: -8px;
}

.hamburger-inner::after {
    bottom: -8px;
}

/* Animação do "X" */
/* .menu-toggle.is-active .hamburger-inner {
    background-color: transparent;
} */

.menu-toggle.is-active .hamburger-inner::before {
    transform: translateY(8px) rotate(45deg);
}

.menu-toggle.is-active .hamburger-inner::after {
    transform: translateY(-8px) rotate(-45deg);
}

/* ==========================================================================
   Responsividade: Off-Canvas Mobile
   ========================================================================== */
.header-mobile-wrapper {
    display: flex;
    align-items: center;
    gap: 40px;
}

@media (max-width: 992px) {
    .menu-toggle {
        display: block;
    }

    .header-mobile-wrapper {
        position: fixed;
        top: 0;
        right: -100%;
        width: 100%;
        height: 100dvh;
        background-color: var(--color-bg-header);
        flex-direction: column;
        justify-content: center;
        padding: 40px;
        box-sizing: border-box;
        transition: right 0.6s cubic-bezier(0.77, 0, 0.175, 1);
        z-index: 999;
    }

    .header-mobile-wrapper.is-active {
        right: 0;
    }

    .header-menu-list {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 30px;
    }

    .header-menu-list a {
        font-size: 24px;
    }

    .lang-switcher-list {
        margin-top: 30px;
        padding: 4px 12px;
    }
}

/* ==========================================================================
   Footer Site
   ========================================================================== */
.site-footer {
    background-color: #111111;
    /* Cor de fundo escura */
    color: #FFFFFF;
    padding-top: 80px;
    border-top: 1px solid #222;
}

.footer-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 60px;
}

.footer-group {
    flex: 1;
}

/* Marca / Logo */
.footer-brand {
    flex: 2;
    max-width: 400px;
}

.footer-logo-img {
    max-width: 50px;
    height: auto;
    display: block;
    filter: brightness(0) invert(1);
    /* Torna a logo branca caso seja preta */
}

/* Títulos das Colunas */
.footer-heading {
    color: #E24F2A;
    /* Laranja da paleta */
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 25px 0;
}

/* Menu de Navegação */
.footer-menu-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.footer-menu-list a {
    color: #AAAAAA;
    text-decoration: none;
    font-size: 15px;
    transition: color 0.3s ease;
}

.footer-menu-list a:hover {
    color: #FFFFFF;
}

/* Redes Sociais */
.footer-social-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 20px;
}

.footer-social-list a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background-color: #222222;
    color: #FFFFFF;
    transition: background-color 0.3s ease, transform 0.3s ease;
}

.footer-social-list a:hover {
    background-color: #E24F2A;
    transform: translateY(-3px);
}

/* ==========================================================================
   Footer Bottom (Dados Legais e Copyright)
   ========================================================================== */
.footer-bottom {
    padding: 30px 0;
    /* Adicione uma borda sutil no topo para separar dos links do footer.
       Use rgba(255,255,255,0.1) se o fundo do seu footer for escuro */
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    text-align: center;
}

.footer-legal-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
    /* Espaço entre a linha de copyright e os dados da empresa */
}

.footer-legal-info p {
    margin: 0;
    line-height: 1.6;
}

.copyright-line {
    font-size: 14px;
    font-weight: 500;
    color: #1a1a1a;
    /* Cor principal de texto do footer */
}

.company-details {
    font-size: 12px;
    color: #666666;
    /* Tom mais claro para as informações fiscais (dados secundários) */
}

/* Ajustes Mobile */
@media (max-width: 768px) {
    .footer-bottom {
        padding: 20px 0;
    }

    .copyright-line {
        font-size: 13px;
        /* No mobile, quebra a linha no pontinho para não espremer o texto */
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .copyright-line span {
        display: none;
        /* Oculta o &middot; no mobile se usar flex column */
    }
}

/* Responsividade */
@media (max-width: 992px) {
    /* .footer-inner {
        flex-direction: row;
        gap: 50px;
    } */
}