/**********************/
/*    Meniul public   */
/**********************/

.navbar {
    height: 100%;
}
nav {
    background-color: var(--navBg) !important;
    border-bottom: var(--navBorder) solid 1px;
    transition: background-color 0.3s ease;
}
nav .nav-link {
    font-size: var(--fs-text);
    color: var(--navText);
    transition: color 0.2s ease;
}
nav .nav-link:hover,
nav .nav-link:focus {
    color: var(--navTextHover);
}
nav .navbar-brand {
    width: 50%;
}
nav .navbar-brand img {
    filter: var(--navBrandFilter);
}
nav img {
    max-width: 100%;
    height: auto;
}
.navbar-toggler-icon {
    filter: var(--navTogglerFilter);
}
.dropdown-toggle::-moz-placeholder {
    color: var(--navText) !important;
}
.dropdown-toggle::placeholder {
    color: var(--navText) !important;
}
.dropdown-menu {
    background-color: var(--surfaceBg);
    border: 1px solid var(--surfaceBorder);
}
.dropdown-item {
    color: var(--navText);
}
.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--surfaceHoverBg);
    color: var(--navTextHover);
}
.emph-text {
    color: var(--accentColor) !important;
    font-weight: 600;
}
.nav-item-popover {
    display: flex;
}
.auth-profile {
    width: 4rem;
    height: 4rem;
    -webkit-border-radius: 50%;
    -webkit-background-clip: padding-box;
    -moz-border-radius: 50%;
    -moz-background-clip: padding;
    border-radius: 50%;
    background-clip: padding-box;
    float: left;
    background-size: cover;
    background-position: center center;
}
.auth-profile picture {
    width: 100%;
    height: 100%;
}
.auth-profile img {
    width: 100%;
    height: 100%;
    border-radius: 10rem;
    aspect-ratio: 1/1;
    object-fit: cover;
}
.popover-picture {
    width: 4rem;
    height: 4rem;
}
.popover-picture img {
    width: 100%;
    height: 100%;
    border-radius: 10rem;
    aspect-ratio: 1/1;
    object-fit: cover;
}

.nav-item-popover {
    display: flex;
}
.popover-body {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    padding: 0.5rem;
    margin: 0;
    background-color: var(--popoverBg);
    color: var(--popoverText);
}
.popover {
    background-color: var(--popoverBg);
    border-color: var(--popoverBorder);
}
.popover .popover-arrow::after {
    border-bottom-color: var(--popoverBg);
}
.popover-body .popover-content {
    width: 80%;
}
.popover-body .popover-content-body {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}
.popover-body .popover-content-header {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}
.popover-body .popover-content-header .auth-profile {
    width: 6rem;
    height: 6rem;
}
.popover-body .popover-content-header span {
    font-size: var(--fs-text);
    color: var(--popoverText);
}
.popover-body .popover-content-links {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: column;
    width: 90%;
    gap: 1rem;
    padding: 0;
}
.popover-body .popover-content-links .auth {
    display: none !important;
}
.popover-body .popover-content-links .nav-link {
    display: flex;
    justify-content: center;
    align-items: center;
    -moz-column-gap: 1rem;
    column-gap: 1rem;
    padding: 0;
    color: var(--popoverText);
}
.popover-body .popover-content-links .nav-link:hover {
    color: var(--accentColor);
}
.popover-body .popover-content-links .nav-link .popover-links-image {
    width: 1.8rem;
}
.popover-function::first-letter {
    text-transform: capitalize;
}
.popover-content-body i {
    font-size: 2em;
    color: var(--primaryColor);
}
.popover-name {
    color: var(--popoverText);
}

/* Login separator */
.logIn a {
    color: var(--navText);
}
.logIn a:hover {
    color: var(--navTextHover);
}

/* Meniu mobil full-screen (offcanvas) — sub 768px */
@media (max-width: 767.98px) {
    .navbar-offcanvas {
        width: 100% !important;
        max-width: 100% !important;
        background-color: var(--navBg);
        color: var(--navText);
        border-left: none;
    }
    .navbar-offcanvas .offcanvas-header {
        border-bottom: 1px solid var(--navBorder);
        padding: 1rem 1.25rem;
    }
    .navbar-offcanvas .offcanvas-brand {
        width: auto;
        max-width: 60%;
    }
    .navbar-offcanvas .offcanvas-brand img {
        max-height: 2.25rem;
        width: auto;
        filter: var(--navBrandFilter);
    }
    .navbar-offcanvas .btn-close {
        filter: var(--navTogglerFilter);
        opacity: 0.9;
    }
    .navbar-offcanvas .offcanvas-body {
        padding: 0.5rem 1.25rem 2rem;
        overflow-y: auto;
    }
    .navbar-offcanvas .navbar-nav {
        align-items: stretch !important;
        width: 100%;
        gap: 0;
    }
    .navbar-offcanvas .navbar-nav > .nav-item {
        width: 100%;
        border-bottom: 1px solid var(--navBorder);
    }
    .navbar-offcanvas .navbar-nav > .nav-item:last-child {
        border-bottom: none;
    }
    .navbar-offcanvas .navbar-nav > .nav-item > .nav-link {
        font-size: 1.2rem;
        padding: 1rem 0.25rem;
        width: 100%;
    }
    /* Dropdown limbă afișat inline, fără poziționare absolută pe mobil */
    .navbar-offcanvas .nav-item.dropdown .dropdown-menu {
        position: static !important;
        transform: none !important;
        border: none;
        background-color: transparent;
        padding: 0 0 0 1rem;
        margin: 0;
    }
    .navbar-offcanvas .nav-item.dropdown .dropdown-item {
        padding: 0.6rem 0.25rem;
        font-size: 1.05rem;
    }
    /* Zona de profil ocupă lățimea completă, aliniată la stânga */
    .navbar-offcanvas .nav-item-popover {
        justify-content: flex-start;
        padding: 1rem 0.25rem;
    }
    .navbar-offcanvas .nav-item-popover .auth {
        width: 100%;
        display: flex;
        justify-content: flex-start;
        align-items: center;
    }
}

/* Responsive media */
@media (min-width: 768px) {
    nav .navbar-nav {
        align-items: center !important;
    }
    .logIn a::before {
        content: "";
        border-left: 2px solid var(--navBorder);
        padding-right: 1rem;
        padding-top: 0.25rem;
        padding-bottom: 0.25rem;
        opacity: 0.5;
    }
}

@media (min-width: 600px) {
    nav .navbar-brand {
        width: 30%;
    }
    .popover {
        max-width: 20rem;
    }
    .popover-body .popover-content-links .nav-link span {
        font-size: var(--fs-text);
    }
}
@media (min-width: 900px) {
    nav .navbar-brand {
        width: 30%;
    }
}
@media (min-width: 1024px) {
    nav .navbar-brand {
        width: 15%;
    }
    .white-nav {
        background-color: var(--navBg) !important;
    }
}

/* =========================================================
   FIX scroll orizontal pe mobil: meniul offcanvas (width:100%) e parcat
   în afara ecranului la translateX(100%) → împinge scrollWidth la 2x lățime.
   overflow-x:clip taie surplusul FĂRĂ a crea scroll-container, deci NU
   strică position:sticky al meniului. Regula e doar pe paginile publice
   (public_navbar.css se încarcă doar acolo).
   ========================================================= */
html { overflow-x: clip; }

/* =========================================================
   DS polish (Faza B) — meniu public lipicios + CTA pill teal.
   Folosește tokenii de brand (meniul e în afara .ds-scope).
   ========================================================= */
nav.navbar {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 1030;
}
/* NB: fără backdrop-filter/filter/transform pe <nav> — ar deveni containing-block
   pentru meniul offcanvas (position:fixed) și l-ar închide în bara de ~70px.
   Bară solidă lipicioasă cu umbră subtilă. */
nav {
    background-color: var(--navBg) !important;
    box-shadow: 0 2px 14px rgba(19, 45, 78, 0.06);
}
nav .navbar-brand,
nav .nav-link {
    font-family: 'Hanken Grotesk', sans-serif;
}
nav .nav-link {
    font-weight: 500;
}
/* CTA „Începe gratuit" — pastilă teal */
.nav-cta {
    background-color: var(--secondaryColor);
    color: #fff !important;
    border-radius: 10rem;
    padding: 0.5rem 1.25rem !important;
    font-weight: 700 !important;
    line-height: 1.2;
    box-shadow: 0 10px 24px -10px rgba(20, 181, 190, 0.6);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.nav-cta:hover,
.nav-cta:focus {
    color: #fff !important;
    background-color: #0fa3ab;
    transform: translateY(-2px);
    box-shadow: 0 16px 32px -12px rgba(20, 181, 190, 0.7);
}
@media (max-width: 767.98px) {
    .navbar-offcanvas .nav-item-cta { padding: 1rem 0.25rem; }
    .navbar-offcanvas .nav-cta { display: block; text-align: center; }
}

/* =========================================================
   ifs-brand-cap: logo-ul era dimensionat DOAR procentual (15% peste 1024px),
   fara plafon. Pe 2560px ieseau 380px latime dintr-un PNG de 300px nativ =
   logo urias SI upscalat (neclar), iar bara de meniu crestea la 160px inaltime.
   Plafonul pastreaza exact randarea de la ~1366px pe orice ecran mai mare.
   ========================================================= */
nav .navbar-brand {
    width: auto;
    flex: 0 0 auto;
}
nav .navbar-brand img {
    width: auto;
    height: clamp(44px, 5vw, 72px);
    max-width: 100%;
}
/* Peste 1200px oprim si sprawl-ul barii: container-fluid intindea brand-ul
   pana in marginea ecranului, in timp ce continutul paginii sta in 1180px. */
@media (min-width: 1200px) {
    nav.navbar > .container-fluid {
        max-width: 1180px;
        margin-inline: auto;
        padding-inline: clamp(18px, 5vw, 40px);
    }
}
