/*
 * Layout — Header, Footer e containers
 * Tema Leia
 */

/* =========================================
   Containers
   ========================================= */
.container,
.container--wide {
    width: 100%;
    /* max-width: 1280px; */
    margin-inline: auto;
    /* padding-inline: 2rem; */
}

/* =========================================
   Site wrapper
   ========================================= */
.site {
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
}

.site__conteudo {
    flex: 1;
}

/* =========================================
   Header — .cabecalho
   ========================================= */
.cabecalho {
    /* position: sticky; */
    z-index: var(--z-header);
    background-color: #fff;
}

/* ── Topo: Logo + Redes (desktop) ── */
.cabecalho__topo {
    padding-block-end: 0.875rem;
    padding-block-start: 3rem;
}

.cabecalho__topo-inner {
    max-width: 1280px;
    margin-inline: auto;
    padding-inline: 2rem;
    display: flex;
    align-items: center;
    justify-content: center; /* logo centralizada */
    position: relative;
}

.cabecalho__logo-link {
    display: flex;
    text-decoration: none;
}

.cabecalho__logo-link:hover {
    opacity: 1;
}

.cabecalho__logo {
    height: 60px;
    width: auto;
}

/* Redes no topo (desktop): posicionadas à direita via absolute */
.cabecalho__topo-inner .cabecalho__redes {
    position: absolute;
    right: 2rem;
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

/* ── Nav row: Menu + Busca ── */
.cabecalho__nav-row {
    padding-block: 0;
    padding: 10px 0px 10px 0px;
    border-top: solid 1px #e0e0e0;
    border-bottom: solid 1px #e0e0e0;
}

.cabecalho__nav-inner {
    max-width: 1280px;
    margin-inline: auto;
    padding-inline: 2rem;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 1.5rem;
    min-height: 52px;
}

/* Logo mobile (hidden no desktop) */
.cabecalho__logo-link--mobile {
    display: none;
}

/* ── Navegação principal ── */
.nav-principal {
    flex: 1;
    display: flex;
    align-items: stretch;
}

.nav-principal__lista {
    display: flex;
    align-items: stretch;
    gap: 2rem;
    list-style: none;
}

.nav-principal__lista a {
    font-family: var(--ff-titulo);
    font-size: 1.75rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    color: #000;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0.3rem 0.6rem;
    padding-bottom: 0.25rem;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    transition: border-color var(--transicao);
}

.nav-principal__lista a:hover,
.nav-principal__lista .current-menu-item > a,
.nav-principal__lista .current-page-ancestor > a {
    border-color: #000;
}

/* ── Submenus desktop ── */
.nav-principal__lista > li {
    position: relative;
    display: flex;
    align-items: center;
}

.nav-principal__lista .sub-menu {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 100%; /* rente à linha inferior do header — sem gap */
    left: 0;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 0 0 8px 8px;
    padding: 0.375rem 0;
    min-width: 200px;
    list-style: none;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
    z-index: calc(var(--z-header) + 10);
    transition:
        opacity 150ms ease,
        visibility 0ms ease 150ms;
}

.nav-principal__lista > li:hover > .sub-menu,
.nav-principal__lista > li:focus-within > .sub-menu {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transition-delay: 0ms;
}

.nav-principal__lista .sub-menu a {
    font-size: 1rem;
    line-height: 1;
    letter-spacing: 0.04em;
    padding: 0.45rem 1rem;
    border-bottom: none;
    border-radius: 0;
    display: block;
    white-space: nowrap;
}

.nav-principal__lista .sub-menu a:hover,
.nav-principal__lista .sub-menu .current-menu-item > a {
    text-decoration: underline;
    text-underline-offset: 3px;
    border-color: transparent;
}

/* ── Busca desktop ── */
.cabecalho__busca-desktop {
    align-self: center;
}

.cabecalho__busca-desktop .search-form {
    display: flex;
    align-items: stretch;
    gap: 6px;
}

.cabecalho__busca-desktop .search-field {
    font-family: var(--ff-titulo);
    font-size: 1rem;
    font-weight: 500;
    color: #666;
    background: #f0f0f0;
    border: none;
    border-radius: 4px;
    padding: 0 0.75rem;
    height: 36px;
    width: 180px;
    outline: none;
    transition:
        width var(--transicao),
        background var(--transicao);
}

.cabecalho__busca-desktop .search-field:focus {
    width: 220px;
    background: #e8e8e8;
}

.cabecalho__busca-desktop .search-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 0 0.625rem;
    height: 36px;
    cursor: pointer;
    transition:
        background-color var(--transicao),
        color var(--transicao);
    flex-shrink: 0;
}

.cabecalho__busca-desktop .search-submit:hover {
    background-color: var(--cor-hover);
    color: #000;
}

/* ── Ações mobile (hidden no desktop) ── */
.cabecalho__mobile-acoes {
    display: none;
}

/* ── Busca expandida mobile ── */
.cabecalho__busca-mobile {
    background: #fff;
    border-top: 1px solid #e0e0e0;
}

.cabecalho__busca-mobile-inner {
    max-width: 1280px;
    margin-inline: auto;
    padding: 0.75rem 1.25rem;
}

.cabecalho__busca-mobile .search-form {
    display: flex;
    align-items: stretch;
    gap: 6px;
    width: 100%;
}

.cabecalho__busca-mobile .search-field {
    flex: 1;
    font-family: var(--ff-titulo);
    font-size: 1rem;
    font-weight: 500;
    background: #f0f0f0;
    border: none;
    border-radius: 4px;
    padding: 0 0.875rem;
    height: 40px;
    outline: none;
}

.cabecalho__busca-mobile .search-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 0 0.75rem;
    height: 40px;
    cursor: pointer;
    transition:
        background-color var(--transicao),
        color var(--transicao);
    flex-shrink: 0;
}

.cabecalho__busca-mobile .search-submit:hover {
    background-color: var(--cor-hover);
    color: #000;
}

/* ── Nav mobile dropdown ── */
.cabecalho__nav-mobile {
    background: #fff;
    border-top: 1px solid #e0e0e0;
}

.nav-mobile__lista {
    max-width: 1280px;
    margin-inline: auto;
    padding: 1rem 1.25rem;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.nav-mobile__lista li {
    border-bottom: 1px solid #f0f0f0;
}

.nav-mobile__lista li:last-child {
    border-bottom: none;
}

.nav-mobile__lista a {
    display: block;
    font-family: var(--ff-titulo);
    font-size: var(--fonte-md);
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-decoration: none;
    color: #000;
    padding: 0.3rem 0rem 0.2rem;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    transition: border-color var(--transicao);
}

.nav-mobile__lista a:hover,
.nav-mobile__lista .current-menu-item > a {
    border-color: #000;
}

/* Itens pai no mobile: linha com link + botão toggle */
.nav-mobile__lista .menu-item-has-children {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.nav-mobile__lista .menu-item-has-children > a {
    flex: 1;
}

/* Botão de abrir/fechar submenu no mobile */
.nav-mobile__submenu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    color: #000;
    border-radius: var(--raio-sm);
    transition: background-color var(--transicao);
    flex-shrink: 0;
}

.nav-mobile__submenu-toggle:hover {
    background-color: var(--cor-hover);
}

/* Seta chevron via SVG inline no botão */
.nav-mobile__submenu-toggle svg {
    display: block;
    transition: transform 250ms ease;
}

.nav-mobile__submenu-toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

/* Sub-menu mobile: escondido por padrão, ocupa linha completa */
.nav-mobile__lista .sub-menu {
    display: none;
    width: 100%;
    list-style: none;
    padding: 0.25rem 0 0.5rem 1rem;
    border-left: 2px solid #e0e0e0;
    margin-top: 0.25rem;
}

.nav-mobile__lista .sub-menu.nav-submenu--aberto {
    display: block;
}

.nav-mobile__lista .sub-menu li {
    border-bottom: none;
}

.nav-mobile__lista .sub-menu a {
    font-size: var(--fonte-sm);
    font-weight: 500;
    padding: 0.25rem 0;
    border-bottom: none;
}

/* ── Links de rede social ── */
.cabecalho__rede-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1.5px solid #000;
    border-radius: 50%;
    text-decoration: none;
    transition: background-color var(--transicao);
}

.cabecalho__rede-link:hover {
    opacity: 1;
    background-color: var(--cor-hover);
}

/* ── Hambúrguer → X ── */
.cabecalho__btn-menu .icon-close {
    display: none;
}

.cabecalho__btn-menu[aria-expanded="true"] .icon-menu {
    display: none;
}
.cabecalho__btn-menu[aria-expanded="true"] .icon-close {
    display: block;
}

/* Botões mobile */
.cabecalho__btn-busca,
.cabecalho__btn-menu {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.25rem;
    color: #000;
    border-radius: var(--raio-sm);
    transition:
        color var(--transicao),
        background-color var(--transicao);
}

.cabecalho__btn-menu:hover {
    color: #000;
    background-color: var(--cor-hover);
}

/* Lupa mobile: hover e estado ativo (busca aberta) */
.cabecalho__btn-busca:hover,
.cabecalho__btn-busca[aria-expanded="true"] {
    color: #000;
    background-color: var(--cor-hover);
}

/* =========================================
   Footer — .rodape
   ========================================= */
.rodape {
    background-color: #000;
    color: #fff;
    padding-block: clamp(2.5rem, 5vw, 4rem);
}

.rodape__inner {
    max-width: 1280px;
    margin-inline: auto;
    padding-inline: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(3rem, 8vw, 8rem);
}

.rodape__marca {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
}

.rodape__logo {
    height: 40px;
    width: auto;
}

.rodape__redes {
    display: flex;
    gap: 0.5rem;
}

.rodape__redes a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1.5px solid #fff;
    border-radius: 50%;
    transition: background-color var(--transicao);
}

.rodape__redes a:hover {
    opacity: 1;
    background-color: var(--cor-hover);
}

.rodape__redes a img {
    display: block;
    transition: filter var(--transicao);
}

.rodape__redes a:hover img {
    filter: invert(1);
}

.rodape__menu .nav-rodape__lista {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.rodape__menu .nav-rodape__lista a {
    display: block;
    font-family: var(--ff-titulo);
    color: #fff;
    text-decoration: none;
    font-size: var(--fonte-sm);
    font-weight: 600;
    line-height: 1.3;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.rodape__menu .nav-rodape__lista a:hover {
    opacity: 1;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* =========================================
   Responsividade — Mobile (≤ 768px)
   ========================================= */
@media (max-width: 768px) {
    /* Esconde estrutura desktop */
    .cabecalho__topo,
    .nav-principal,
    .cabecalho__busca-desktop {
        display: none;
    }

    /* Mostra estrutura mobile */
    .cabecalho__logo-link--mobile {
        display: flex;
        align-items: center;
    }

    .cabecalho__logo {
        height: 30px;
    }

    .cabecalho__mobile-acoes {
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

    .cabecalho__nav-inner {
        min-height: 56px;
        padding-inline: 1.25rem;
        justify-content: space-between;
    }

    /* Redes sociais menores no mobile */
    .cabecalho__mobile-acoes .cabecalho__redes {
        display: flex;
        gap: 0.375rem;
    }

    .cabecalho__mobile-acoes .cabecalho__rede-link {
        width: 26px;
        height: 26px;
    }

    /* Footer */
    .rodape__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 2rem;
        padding-inline: 1.25rem;
    }

    .container--wide {
        padding-inline: 1.25rem;
    }
}
