﻿/* Reset */
.menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.menu a {
    text-decoration: none;
    color: var(--gray);
    font-size: 16px;
    display: block;
    transition: 0.3s ease;
}

/* Arrow indicator */
.menu li:has(ul) > a::after {
    content: "▼";
    font-size: 10px;
    margin-left: 8px;
    display: inline-block;
    transition: 0.3s;
}



/* ==========================================
   2. DESKTOP STYLES ( > 768px )
   ========================================== */
@media (min-width: 769px) {

    .menu-toggle {
        display: none;
    }

    /* Top bar */
    .menu > ul {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 10px;
    }

    .menu li {
        position: relative; text-align:left;
    }

    .menu a {
        padding: 10px 20px;
    }

    .menu li:hover > a {
        color: var(--pink);
    }

    /* Dropdown (level 2+) */
    .menu li ul {
        position: absolute;
        top: 100%;
        left: 0;
        background: #fff;
        min-width: 200px;
        box-shadow: 0 8px 20px rgba(0,0,0,0.1);

        opacity: 0;
        visibility: hidden;
        transform: translateY(10px);
        transition: 0.25s ease;

        z-index: 999;
    }

    /* Show on hover */
    .menu li:hover > ul {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    /* 3rd level alignment */
    .menu li ul li ul {
        left: 100%;
        top: 0;
    }

    /* Right arrow for deeper menus */
    .menu li ul li:has(ul) > a::after {
        content: "▶";
        float: right;
		position: relative;
    	top: 5px;
    }
}


/* hide on desktop automatically (safe) */
.mobile-logo-item,
.mobile-social-item{
    display:none;
}



/* ==========================================
   3. MOBILE STYLES ( <= 768px )
   ========================================== */
@media (max-width: 768px) {

    /* Toggle button */
    .menu-toggle {
        display: block;
        font-size: 28px;
        cursor: pointer;
        padding: 10px;
        color: var(--dark);
        position: absolute;
	    right: 15px;
	    top: -55px;
    }
    
    #menu-mobile{padding:0;}

    /* Sidebar container */
    .menu > ul {
        position: fixed;
        top: 0;
        left: -100%;
        width: 85vw;
        max-width: 320px;
        height: 100vh;

        background: #fff;

        display: flex;
        flex-direction: column;

        padding: 20px 0;
        overflow-y: auto;

        transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);

        z-index: 1100;
        box-shadow: 10px 0 30px rgba(0,0,0,0.1);
    }

    /* Sidebar open */
    .menu.active > ul {
        left: 0;
    }


    /* ======================
       ACCORDION
    ====================== */

    /* Hide all submenus */
    .menu li ul {
        display: none;
        position: static !important;

        background: var(--bg-light);
        padding-left: 15px;

        box-shadow: none;
    }

    /* Show when open */
    .menu li.open > ul {
        display: block;
    }


    /* Links */
    .menu a {
        padding: 14px 20px;
        border-bottom: 1px solid #eee;

        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    /* Level styling */
    .menu li ul li a {
        background: #fdfdfd;
        font-size: 15px;
    }

    .menu li ul li ul li a {
        background: #f5f5f5;
        font-size: 14px;
    }

    /* Rotate arrow when open */
    .menu li.open > a::after {
        transform: rotate(180deg);
        color: var(--pink);
    }
    
    
    
    /* show only mobile */
    .mobile-logo-item,
    .mobile-social-item{
        display:block;
    }

    /* logo style */
    .mobile-logo-item{
        text-align:center;
        padding:18px 0;
        border-bottom:1px solid #eee;
    }

    .mobile-logo-item img{
        max-width:140px;
    }

    /* smooth accordion animation */
    .menu li ul{
        max-height:0;
        overflow:hidden;
        opacity:0;
        transition:max-height .35s ease, opacity .25s ease;
    }

    .menu li.open > ul{
        max-height:600px;
        opacity:1;
    }

        
    
}



/* ==========================================
   4. OVERLAY
   ========================================== */
.menu-overlay {
    position: fixed;
    inset: 0;

    background: rgba(0,0,0,0.5);

    opacity: 0;
    visibility: hidden;

    transition: 0.3s;

    z-index: 1050;
}

.menu-overlay.active {
    opacity: 1;
    visibility: visible;
}