/* ==========================================================================
   Altvia | Menu "Painel de controle" (separador + menu suspenso)
   Usado nas páginas novas (altvia.css) e antigas (Bootstrap + style.css).
   Abre ao passar o mouse e também pela navegação por teclado (sem JavaScript).
   ========================================================================== */

/* separador vertical entre "Contato" e "Painel de controle" */
.nav-sep {
    align-self: center;
    width: 1px;
    height: 26px;
    margin: 0 4px;
    background: #d5dde6;
    list-style: none;
}

.nav-panel {
    position: relative;
    list-style: none;
}

.nav-panel-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 4px;
    border: 0;
    background: none;
    color: #002c53;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
}

/* pequena ilustração de computador: monitor em degradê com indicador "online" */
.nav-panel-ico {
    position: relative;
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 7px;
    background: linear-gradient(135deg, #0078b8, #00a0a6);
    box-shadow: 0 4px 10px rgba(0, 120, 184, 0.3);
    color: #fff;
    font-size: 12px;
}

.nav-panel-ico::after {
    content: "";
    position: absolute;
    top: -2px;
    right: -2px;
    width: 8px;
    height: 8px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #3ddc97;
}

.nav-panel-caret {
    font-size: 10px;
    transition: transform 0.2s ease;
}

.nav-panel:hover .nav-panel-toggle,
.nav-panel:focus-within .nav-panel-toggle {
    color: #009ba1;
}

.nav-panel:hover .nav-panel-caret,
.nav-panel:focus-within .nav-panel-caret {
    transform: rotate(180deg);
}

/* cartão suspenso */
.nav-dropdown {
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 1100;
    min-width: 300px;
    margin: 0;
    padding: 14px 0 0;
    list-style: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}

.nav-dropdown::before {
    content: "";
    position: absolute;
    top: 14px;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: -1;
    border: 1px solid #e3eaf1;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(0, 44, 83, 0.18);
}

.nav-panel:hover .nav-dropdown,
.nav-panel:focus-within .nav-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.nav-dropdown li {
    margin: 0;
    padding: 0 8px;
    list-style: none;
}

.nav-dropdown li:first-child { padding-top: 8px; }
.nav-dropdown li:last-child { padding-bottom: 8px; }

.nav-dropdown a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    color: #002c53;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.3;
    text-decoration: none;
    text-transform: none;
    white-space: nowrap;
}

.nav-dropdown a:hover,
.nav-dropdown a:focus-visible {
    background: #eafafb;
    color: #002c53;
}

.nav-dropdown a::after { display: none; }

.nav-dd-ico {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: #e5f6ff;
    color: #0078b8;
    font-size: 15px;
}

.nav-dd-text { display: grid; }

.nav-dd-text small {
    color: #6b7280;
    font-size: 12px;
    font-weight: 500;
}

.nav-dd-go {
    margin-left: auto;
    color: #9aa6b2;
    font-size: 11px;
}

.nav-panel-toggle:focus-visible,
.nav-dropdown a:focus-visible {
    outline: 3px solid #00b1b7;
    outline-offset: 2px;
}

/* ---------- Menu recolhido (celular e tablet) ---------- */
@media (max-width: 1199.98px) {
    .nav-sep {
        width: 100%;
        height: 1px;
        margin: 8px 0;
    }

    .nav-panel-toggle {
        padding: 10px 0;
        pointer-events: none;
    }

    .nav-panel-caret { display: none; }

    .nav-dropdown {
        position: static;
        min-width: 0;
        padding: 0;
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .nav-dropdown::before { display: none; }

    .nav-dropdown li { padding: 0; }
    .nav-dropdown li:first-child { padding-top: 0; }
    .nav-dropdown li:last-child { padding-bottom: 0; }

    .nav-dropdown a {
        padding: 9px 0;
        white-space: normal;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nav-dropdown, .nav-panel-caret { transition: none; }
}

/* ---------- Notebooks (1200 a 1439px): menu mais compacto para caber numa linha ---------- */
@media (min-width: 1200px) and (max-width: 1439.98px) {
    /* páginas novas */
    .site-header .header-inner { padding-left: 24px; padding-right: 24px; }
    .site-header .main-nav > ul { gap: 11px; }
    .site-header .main-nav > ul > li > a { font-size: 11px; }

    /* páginas antigas */
    .altvia-navbar .altvia-container { padding-left: 24px; padding-right: 24px; }
    .altvia-navbar .altvia-menu { gap: 11px; }
    .altvia-navbar .altvia-menu .nav-link { font-size: 11px; }

    /* item do painel */
    .nav-panel-toggle { gap: 6px; font-size: 11px; }
    .nav-panel-ico { width: 22px; height: 22px; font-size: 11px; }
    .nav-sep { margin: 0 2px; }
}

/* Correção de um conflito do CSS original: em exatamente 1200px valiam ao mesmo tempo as regras
   de celular (style.css, até 1200px inclusive) e o menu de desktop do Bootstrap (a partir de 1200px).
   A partir de 1200px, vale sempre o menu de desktop. */
@media (min-width: 1200px) {
    .altvia-navbar .navbar-collapse {
        position: static;
        max-height: none;
        padding: 0;
        overflow: visible;
        border-top: 0;
        background: transparent;
        box-shadow: none;
    }

    .altvia-navbar .altvia-menu {
        align-items: center;
        width: auto;
    }

    .altvia-navbar .altvia-menu .nav-item {
        width: auto;
        border-bottom: 0;
    }

    .altvia-navbar .altvia-menu .nav-link {
        display: inline;
        width: auto;
        padding: 0 !important;
    }
}

@media (min-width: 1200px) and (max-width: 1279.98px) {
    .altvia-navbar .altvia-menu .nav-link { font-size: 11px; }
}

/* nas páginas novas, a lista do cartão não herda o layout em linha do menu principal */
.main-nav .nav-dropdown {
    display: block;
}

.main-nav .nav-dropdown li { display: block; }

/* ==========================================================================
   Cabeçalho padronizado em todas as páginas
   Logo com tamanho fixo (38px de altura, definido em altvia.css e style.css)
   e as mesmas margens laterais das páginas novas em todas as larguras:
   60px (telas grandes), 24px (notebooks), 32px (tablet) e 20px (celular).
   ========================================================================== */
@media (min-width: 640px) and (max-width: 1199.98px) {
    .altvia-navbar .altvia-container {
        padding-left: 32px;
        padding-right: 32px;
    }
}

/* Barra separadora: não pode ser espremida pelo menu (páginas antigas) */
.nav-sep {
    flex-shrink: 0;
    min-width: 1px;
}

@media (max-width: 1199.98px) {
    .nav-sep { min-width: 0; }
}

/* Página atual no menu das páginas antigas: mesma cor e mesmo sublinhado das páginas novas */
.altvia-navbar .altvia-menu .nav-link.active {
    color: #008388 !important;
}

@media (min-width: 1200px) {
    .altvia-navbar .altvia-menu .nav-link.active {
        position: relative;
    }

    .altvia-navbar .altvia-menu .nav-link.active::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: -9px;
        height: 2px;
        background: #00b1b7;
    }
}

/* ==========================================================================
   Menu estável: o logo tem SEMPRE 135 x 38 px, em todas as páginas e larguras.
   (regra de segurança: prevalece sobre qualquer outra regra de tamanho do logo)
   ========================================================================== */
.site-header .brand img,
.altvia-navbar .altvia-brand img {
    width: auto !important;
    height: 38px !important;
    max-width: none !important;
    max-height: none !important;
}

/* ==========================================================================
   Margens laterais iguais em todas as páginas (padrão das páginas novas):
   60px no desktop, 32px no tablet e 20px no celular.
   ========================================================================== */
@media (min-width: 640px) and (max-width: 1199.98px) {
    .custom-container {
        padding-left: 32px !important;
        padding-right: 32px !important;
    }
}

@media (max-width: 639.98px) {
    .custom-container {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

/* Rodapé: contato do WhatsApp com o ID @altvia antes do número (todas as páginas) */
.footer-wa {
    display: inline-flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
}

.footer-wa .fa-whatsapp {
    margin-right: 2px !important;
    color: #25d366;
    font-size: 1.15em;
}

.footer-wa .wa-id { font-weight: 700; }

.footer-wa .wa-num { opacity: 0.8; }

/* Rodapé: endereço sem link (Florianópolis) com a mesma aparência dos endereços com link */
.footer-addr {
    font-size: 14px;
}

.site-footer .footer-addr {
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
}

/* páginas antigas: os links do rodapé são em linha, com margem no ícone */
.site-footer .footer-addr:has(i.me-2) {
    display: inline;
    gap: normal;
}
