/* ===================================================
   MENU NAVEGAÇÃO - CSS PURO (SEM BOOTSTRAP)
   ===================================================
   Substitui todas as classes Bootstrap por CSS puro
   Mantém compatibilidade com estilos existentes
   =================================================== */

/* ===== CONTAINER ===== */
.menu-container {
    width: 100%;
    padding-right: 0.75rem;
    padding-left: 0.75rem;
    margin-right: auto;
    margin-left: auto;
}

/* ===== NAVBAR BASE ===== */
.menu-navbar {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

/* Navbar Expand SM - Desktop */
@media (min-width: 577px) {
    .menu-navbar {
        flex-wrap: nowrap;
        justify-content: flex-start;
    }
}

/* ===== NAVBAR COLLAPSE ===== */
.menu-collapse {
    flex-basis: 100%;
    flex-grow: 1;
    align-items: center;
}

/* Desktop - sempre visível */
@media (min-width: 577px) {
    .menu-collapse {
        display: flex !important;
        flex-basis: auto;
    }
}

/* Mobile - esconde por padrão, mostrado via checkbox */
@media (max-width: 576px) {
    .menu-collapse {
        display: none !important;
        width: 100%;
        margin-top: 1rem;
    }
}

/* ===== NAVBAR NAV LIST ===== */
.menu-nav-list {
    display: flex;
    flex-direction: column;
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

@media (min-width: 577px) {
    .menu-nav-list {
        flex-direction: row;
    }
}

/* ===== NAV ITEM ===== */
.menu-item {
    /* Classe semântica - estilos aplicados via outras classes */
}

/* ===== NAV LINK ===== */
.menu-link {
    display: block;
    padding: 0.5rem 1rem;
    color: #fff;
    text-decoration: none;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out;
}

.menu-link:hover,
.menu-link:focus {
    color: #fff;
    text-decoration: none;
}

/* ===== DROPDOWN ===== */
.menu-dropdown {
    position: relative;
}

/* ===== DROPDOWN TOGGLE ===== */
.menu-toggle::after {
    display: inline-block;
    margin-left: 0.255em;
    vertical-align: 0.255em;
    content: "";
    border-top: 0.3em solid;
    border-right: 0.3em solid transparent;
    border-bottom: 0;
    border-left: 0.3em solid transparent;
}

/* ===== DROPDOWN MENU ===== */
.menu-dropdown-container {
    position: absolute;
    z-index: 1000;
    display: none;
    min-width: 10rem;
    padding: 0.5rem 0;
    margin: 0;
    font-size: 1rem;
    color: #fff;
    text-align: left;
    list-style: none;
    background-color: #09585e;
    background-clip: padding-box;
    border: 1px solid #8a8b8c;
    border-radius: 0.25rem;
    top: 100%;
    left: 0;
}

/* Desktop: mostra dropdown ao hover */
@media (min-width: 577px) {
    .menu-dropdown:hover .menu-dropdown-container {
        display: block;
    }
}

/* Mobile: mostra dropdown quando checkbox marcado */
@media (max-width: 576px) {
    .menu-dropdown-container {
        position: static;
        width: 100%;
        margin-top: 0.5rem;
    }

    .dropdown-toggle-checkbox:checked ~ .menu-dropdown-container {
        display: block;
    }
}

/* ===== DROPDOWN ITEM ===== */
.menu-dropdown-item {
    display: block;
    width: 100%;
    padding: 0.25rem 1rem;
    clear: both;
    font-weight: 400;
    color: #fff;
    text-align: inherit;
    text-decoration: none;
    white-space: nowrap;
    background-color: transparent;
    border: 0;
}

.menu-dropdown-item:hover,
.menu-dropdown-item:focus {
    color: #fff;
    background-color: #507b81;
    text-decoration: none;
}

/* ===== DROPDOWN DIVIDER ===== */
.menu-divider {
    height: 0;
    margin: 0.5rem 0;
    overflow: hidden;
    border-top: 1px solid #8f8f8f;
}

/* ===== SPACING UTILITIES ===== */

/* Margin Left */
.menu-ml-2 {
    margin-left: 0.5rem;
}

.menu-ml-auto {
    margin-left: auto;
}

/* Margin Horizontal Auto (centering) */
.menu-mx-auto {
    margin-left: auto;
    margin-right: auto;
}

/* Margin Top - Medium screens */
@media (min-width: 768px) {
    .menu-mt-md-5 {
        margin-top: 3rem;
    }
}

/* Padding Right */
.menu-pr-2 {
    padding-right: 0.5rem;
}

/* No Margin */
.menu-m-0 {
    margin: 0;
}

/* No Padding */
.menu-p-0 {
    padding: 0;
}

/* ===== FLEXBOX UTILITIES ===== */
.menu-d-flex {
    display: flex;
}

.menu-justify-content-end {
    justify-content: flex-end;
}

.menu-justify-content-center {
    justify-content: center;
}

/* ===== VISUAL UTILITIES ===== */

/* Shadow */
.menu-shadow {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

/* No Border Radius */
.menu-rounded-0 {
    border-radius: 0;
}

/* ===== COMPATIBILITY COM ESTILOS EXISTENTES ===== */

/* Sobrescrever estilos do menu de navegação para funcionar com label */
#menu-navegacao label.menu-link {
    color: #fff;
    font-size: 16px;
    padding-top: 10px;
    margin-top: -20px;
    margin-bottom: -8px;
    padding-left: 10px;
    padding-right: 10px;
}

#menu-navegacao label.menu-link:hover {
    color: #fff;
    font-size: 16px;
    background-color: #507b81;
    border-top-right-radius: 20px;
    border-top-left-radius: 20px;
    margin-top: -25px;
    padding-left: 10px;
    padding-right: 10px;
}

/* Link normal do menu (não dropdown) */
#menu-navegacao .menu-link {
    color: #fff;
    font-size: 16px;
    padding-top: 10px;
    margin-top: -20px;
    margin-bottom: -8px;
    padding-left: 10px;
    padding-right: 10px;
}

#menu-navegacao .menu-link:hover {
    color: #fff;
    font-size: 16px;
    background-color: #507b81;
    border-top-right-radius: 20px;
    border-top-left-radius: 20px;
    margin-top: -25px;
    padding-left: 10px;
    padding-right: 10px;
}
