/* ==================================================
   NEW DEX - HEADER / MENU BAR ALIGNMENT FIX
   Loaded LAST on every page so it wins over page CSS.
================================================== */

header .navbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    width:92%;
    max-width:1350px;
    height:85px;
    margin:0 auto;
}

/* ---------- Logo ---------- */
header .navbar .logo{
    display:flex;
    align-items:center;
    flex-shrink:0;
}
header .navbar .logo a{
    display:flex;
    align-items:center;
}
header .navbar .logo img{
    display:block;
    height:60px;
    width:auto;
}

/* ---------- Menu list ---------- */
header .navbar .nav-links{
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:clamp(16px, 2.1vw, 34px);
    margin:0;
    padding:0;
    list-style:none;
}
header .navbar .nav-links li{
    display:flex;
    align-items:center;
    margin:0;
    padding:0;
    position:relative;
}
header .navbar .nav-links li a{
    display:inline-flex;
    align-items:center;
    gap:0;
    white-space:nowrap;
    font-size:16px;
    font-weight:500;
    line-height:1;
    padding:10px 0;
    margin:0;
    background:none;
    border-radius:0;
    color:#fff;
}
header .navbar .nav-links li a:hover,
header .navbar .nav-links li a.active{
    background:none;
    color:#d4af37;
}
header .navbar .nav-links li a::after{
    bottom:0;
}
header .navbar .nav-links li a.active::after{
    width:100%;
}
/* Login / profile link keeps its own look (avatar + name) */
header .navbar .nav-links li a#accountNavLink,
header .navbar .nav-links li a#accountNavLink:hover{
    color:#fff;
    padding:4px 0;
}
header .navbar .nav-links li a#accountNavLink::after{
    display:none;
}

/* ---------- Logged-in dropdown (now same on every page) ---------- */
.account-nav-item{ position:relative; }
.account-dropdown-menu{
    display:none;
    position:absolute;
    top:120%;
    right:0;
    background:#fff;
    border-radius:10px;
    box-shadow:0 8px 24px rgba(0,0,0,.18);
    min-width:190px;
    overflow:hidden;
    z-index:999;
}
.account-dropdown-menu.open{ display:block; }
.account-dropdown-toggle{
    background:none;
    border:none;
    cursor:pointer;
    color:#fff;
    font-size:20px;
    padding:2px 4px;
    line-height:1;
}
.account-dropdown-menu a,
.account-dropdown-menu button{
    display:block;
    width:100%;
    text-align:left;
    padding:12px 18px;
    font-size:14px;
    font-weight:600;
    color:#14532d;
    text-decoration:none;
    background:none;
    border:none;
    cursor:pointer;
    font-family:'Poppins',sans-serif;
}
.account-dropdown-menu a:hover,
.account-dropdown-menu button:hover{ background:#f0ede5; }
.account-dropdown-menu .logout-item{
    color:#dc3545;
    border-top:1px solid #eee;
}

/* ---------- Hamburger (hidden on desktop) ---------- */
header .navbar .menu-toggle{
    display:none;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    cursor:pointer;
}

/* ==================================================
   TABLET / MOBILE  (menu becomes hamburger)
================================================== */
@media (max-width:1200px){

    header .navbar{
        position:relative;
        width:94%;
    }

    header .navbar .menu-toggle{
        display:flex;
    }

    header .navbar .nav-links{
        position:absolute;
        top:100%;
        left:-3.2%;
        width:106.4%;
        flex-direction:column;
        align-items:center;
        flex-wrap:nowrap;
        gap:0;
        margin:0;
        background:#14532d;
        max-height:0;
        overflow:hidden;
        transition:max-height .4s ease;
    }
    header .navbar .nav-links.active{
        max-height:80vh;
        overflow-y:auto;
        padding:10px 0 16px;
        box-shadow:0 15px 25px rgba(0,0,0,.2);
    }
    header .navbar .nav-links li{
        width:100%;
        flex-direction:column;
        align-items:center;
        justify-content:center;
    }
    header .navbar .nav-links li a{
        width:100%;
        justify-content:center;
        padding:14px 0;
        font-size:17px;
    }
    header .navbar .nav-links li a::after{
        display:none;
    }
    header .navbar .nav-links li a#accountNavLink{
        padding:14px 0;
    }

    .account-dropdown-menu{
        position:static;
        box-shadow:none;
        min-width:auto;
        width:100%;
        background:transparent;
        border-radius:0;
    }
    .account-dropdown-menu a,
    .account-dropdown-menu button{
        text-align:center;
        color:#fff;
    }
    .account-dropdown-menu .logout-item{
        color:#ffb3b3;
        border-top:1px solid rgba(255,255,255,.2);
    }
}

@media (max-width:480px){
    header .navbar .logo img{ height:50px; }
}

/* ==================================================
   FOOTER FIX (same layout on every page)
================================================== */
footer{
    background:linear-gradient(135deg,#0f3d23,#14532d);
    color:#fff;
    margin-top:80px;
    position:relative;
    overflow:hidden;
}
footer .footer-container{
    display:grid;
    grid-template-columns:1.6fr 1fr 1fr 1.5fr;
    gap:48px;
    align-items:start;
    width:92%;
    max-width:1350px;
    margin:0 auto;
    padding:70px 0 50px;
    position:relative;
    z-index:2;
}
footer .footer-logo img{
    display:block;
    width:170px;
    height:auto;
    margin:0 0 18px;
}
footer .footer-logo p{
    color:#ddd;
    font-size:15px;
    line-height:1.8;
    max-width:300px;
    margin:0;
}
footer .footer-links{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
}
footer .footer-links h3,
footer .footer-contact h3{
    color:#d4af37;
    font-size:20px;
    font-weight:600;
    margin:0 0 20px;
}
footer .footer-links a{
    color:#ddd;
    font-size:15px;
    text-decoration:none;
    margin:0 0 12px;
    transition:.3s;
}
footer .footer-links a:hover{
    color:#d4af37;
    padding-left:6px;
}
footer .footer-contact p{
    display:flex;
    align-items:flex-start;
    gap:10px;
    color:#ddd;
    font-size:15px;
    line-height:1.7;
    margin:0 0 14px;
}
footer .footer-contact .fi{
    flex-shrink:0;
    width:22px;
    text-align:center;
}
footer .footer-contact a{
    color:#ddd;
    text-decoration:none;
    word-break:break-word;
    transition:.3s;
}
footer .footer-contact a:hover{ color:#d4af37; }
footer .copyright{
    position:relative;
    z-index:2;
    text-align:center;
    padding:20px 16px;
    font-size:14px;
    color:#cfd8d2;
    border-top:1px solid rgba(255,255,255,.15);
}

@media (max-width:1000px){
    footer .footer-container{
        grid-template-columns:1fr 1fr;
        gap:40px 30px;
        padding:55px 0 40px;
    }
}
@media (max-width:600px){
    footer .footer-container{
        grid-template-columns:1fr;
        gap:32px;
        text-align:center;
        padding:45px 0 30px;
    }
    footer .footer-logo img{ margin:0 auto 16px; }
    footer .footer-logo p{ margin:0 auto; }
    footer .footer-links{ align-items:center; }
    footer .footer-links a:hover{ padding-left:0; }
    footer .footer-contact p{ flex-direction:column; align-items:center; gap:2px; text-align:center; }
}

/* ==================================================
   LOGGED-IN HEADER: long customer names must never
   push the menu out of the header
================================================== */
header .navbar .nav-links li a#accountNavLink{
    max-width:100%;
}
header .navbar .nav-links li a#accountNavLink > span:not(.account-dropdown-toggle){
    display:block;
    max-width:clamp(80px, 9vw, 140px);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
header .navbar .nav-links li a#accountNavLink img,
header .navbar .nav-links li a#accountNavLink .account-dropdown-toggle{
    flex-shrink:0;
}
@media (max-width:1200px){
    header .navbar .nav-links li a#accountNavLink > span:not(.account-dropdown-toggle){
        max-width:60vw;
    }
}

/* ---------- Footer: developer credit ---------- */
footer .copyright .dev-credit{
    display:inline;
    margin:0 0 0 6px;
    font-size:inherit;
    color:#cfd8d2;
}
footer .copyright .dev-credit::before{
    content:"|";
    margin-right:8px;
    color:rgba(255,255,255,.35);
}
@media (max-width:700px){
    footer .copyright .dev-credit{
        display:block;
        margin:6px 0 0;
    }
    footer .copyright .dev-credit::before{ content:none; }
}
footer .copyright .dev-credit a{
    color:#d4af37;
    font-weight:600;
    text-decoration:none;
    transition:.3s;
}
footer .copyright .dev-credit a:hover{
    color:#fff;
    text-decoration:underline;
}

/* ==================================================
   FOOTER: TIGHTER SPACING (less empty gap)
================================================== */
footer{
    margin-top:0;
}
footer .footer-container{
    grid-template-columns:minmax(220px,1.3fr) 1fr 1fr 1.4fr;
    gap:32px;
    max-width:1200px;
    padding:38px 0 26px;
}
footer .footer-logo img{
    width:150px;
    margin:0 0 12px;
}
footer .footer-logo p{
    font-size:14px;
    line-height:1.7;
}
footer .footer-links h3,
footer .footer-contact h3{
    font-size:18px;
    margin:0 0 14px;
}
footer .footer-links a{
    font-size:14px;
    margin:0 0 9px;
}
footer .footer-contact p{
    font-size:14px;
    line-height:1.6;
    margin:0 0 10px;
}
footer .copyright{
    padding:14px 16px;
    font-size:13px;
}
footer .copyright .dev-credit{ font-size:inherit; }

@media (max-width:1000px){
    footer .footer-container{
        gap:28px 24px;
        padding:32px 0 22px;
    }
}
@media (max-width:600px){
    footer .footer-container{
        gap:22px;
        padding:30px 0 18px;
    }
}

/* Re-assert column counts for smaller screens (must stay last) */
@media (max-width:1000px){
    footer .footer-container{
        grid-template-columns:1fr 1fr;
    }
}
@media (max-width:600px){
    footer .footer-container{
        grid-template-columns:1fr;
    }
    footer .footer-logo img{
        margin:0 auto 12px;
    }
}

/* Tablet: everything left-aligned and consistent */
@media (min-width:601px) and (max-width:1000px){
    footer .footer-container{ text-align:left; }
    footer .footer-logo img{ margin:0 0 12px; }
    footer .footer-logo p{ margin:0; text-align:left; }
    footer .footer-links{ align-items:flex-start; }
    footer .footer-contact h3{ text-align:left; }
    footer .footer-contact p{
        flex-direction:row;
        align-items:flex-start;
        justify-content:flex-start;
        text-align:left;
        gap:10px;
    }
}

/* ==================================================
   FOOTER - MOBILE LAYOUT (compact)
   logo on top, Quick Links + Policies side by side,
   contact below
================================================== */
@media (max-width:600px){
    footer .footer-container{
        grid-template-columns:1fr 1fr;
        gap:22px 16px;
        padding:28px 0 16px;
        text-align:left;
    }
    footer .footer-logo{
        grid-column:1 / -1;
        text-align:center;
    }
    footer .footer-logo img{
        width:130px;
        margin:0 auto 10px;
    }
    footer .footer-logo p{
        margin:0 auto;
        max-width:300px;
        font-size:13.5px;
        text-align:center;
    }
    footer .footer-links{
        align-items:flex-start;
        padding-left:10px;
    }
    footer .footer-links h3,
    footer .footer-contact h3{
        font-size:16px;
        margin:0 0 10px;
    }
    footer .footer-links a{
        font-size:13.5px;
        margin:0 0 8px;
    }
    footer .footer-contact{
        grid-column:1 / -1;
        padding-top:16px;
        border-top:1px solid rgba(255,255,255,.12);
    }
    footer .footer-contact h3{
        text-align:center;
    }
    footer .footer-contact p{
        flex-direction:row;
        align-items:flex-start;
        justify-content:flex-start;
        text-align:left;
        gap:10px;
        font-size:13.5px;
        margin:0 0 8px;
        max-width:320px;
        margin-left:auto;
        margin-right:auto;
    }
    footer .copyright{
        padding:12px 14px;
        font-size:12.5px;
        line-height:1.6;
    }
    footer .copyright .dev-credit{
        margin:2px 0 0;
    }
}
