:root {
    /* --- CONTROLS: ADJUST THESE SIZES --- */
    --header-width: 100px;      
    --content-spacing: 0px;   
    
    /* Icon Size Controls */
    --burger-width: 50px;       /* Large Hamburger */
    --burger-line-height: 3px;  /* Thickness of burger lines */
    --social-icon-size: 14px;   /* Small Social Icons */
    
    /* Panel Widths */
    --panel-width-desktop: 45%;
    --panel-width-mobile: 60%;
    
    /* Colors & Transitions */
    --color-inactive: #cccccc;
    --color-active: #000000;
    --bg-white: #ffffff;
    --overlay-color: rgba(0, 0, 0, 0.3);
    --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Hide Blocksy default header */
header[data-device="desktop"],
header[data-device="mobile"],
.site-header {
    display: none !important;
}

body {
    padding-left: calc(var(--header-width) + var(--content-spacing)) !important;
    margin: 0 !important;
}

/* --- THE HEADER (SIDEBAR) --- */
.sidebar {
    position: fixed;
    left: 0;
    top: 0;
    height: 100vh;
    width: var(--header-width);
    background: var(--bg-white);
    display: flex;
    flex-direction: column;
    z-index: 1001;
    margin-right: var(--content-spacing); 
}

.side-top { flex: 1; }

.side-middle {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.side-bottom {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    padding-bottom: 40px;
    gap: 20px;
}

/* --- BURGER ICON --- */
.menu-toggle {
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px;
    z-index: 1002;
    display: flex;
    align-items: center;
    justify-content: center;
}
.burger-icon {
    width: var(--burger-width);
    height: calc(var(--burger-width) * 0.6); 
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    pointer-events: none;
}
.burger-line {
    height: var(--burger-line-height);
    background-color: var(--color-inactive);
    transition: var(--transition);
    width: 100%;
}

/* --- HOVER EFFECT --- */
.menu-toggle:hover .burger-line {
    background-color: var(--color-active);
}
.menu-toggle:hover .line-2 {
    width: 50%;
}
.menu-toggle:hover .line-3 {
    width: 75%;
}

/* --- ACTIVE STATE (CROSS) --- */
.menu-toggle.active .line-1 { 
    transform: translateY(calc(var(--burger-width) * 0.3 - var(--burger-line-height) / 2)) rotate(45deg); 
    background-color: var(--color-active);
    width: 100% !important;
}
.menu-toggle.active .line-2 { 
    opacity: 0; 
    width: 0 !important;
}
.menu-toggle.active .line-3 { 
    transform: translateY(calc(var(--burger-width) * -0.3 + var(--burger-line-height) / 2)) rotate(-45deg); 
    background-color: var(--color-active);
    width: 100% !important;
}

/* --- SOCIAL SVGs --- */
.icon-svg {
    width: var(--social-icon-size);
    height: var(--social-icon-size);
    fill: var(--color-inactive);
    transition: var(--transition);
}
.icon-svg:hover { fill: var(--color-active); }

/* --- SLIDING MENU --- */
.menu-panel {
    position: fixed;
    left: calc(-1 * var(--panel-width-desktop));
    top: 0;
    width: var(--panel-width-desktop);
    height: 100vh;
    background: var(--bg-white);
    z-index: 1000;
    transition: var(--transition);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end; 
    padding-right: 60px;
    box-sizing: border-box;
}
.menu-panel.open { left: 0; }
.menu-panel ul { 
    list-style: none; 
    text-align: right; 
    padding: 0;
    margin: 0;
}
.menu-panel ul li { margin: 25px 0; }
.menu-panel ul li a {
    color: #000;
    text-decoration: none;
    font-size: 26px;
    text-transform: lowercase;
    transition: var(--transition);
}
.menu-panel ul li a:hover {
    color: #666;
}

/* --- OVERLAY --- */
.menu-overlay {
    position: fixed;
    top: 0; left: 0;
    width: 100vw; height: 100vh;
    background: var(--overlay-color);
    opacity: 0; visibility: hidden;
    transition: var(--transition);
    z-index: 999;
}
.menu-overlay.show { opacity: 1; visibility: visible; }

/* --- MOBILE STYLES --- */
@media (max-width: 768px) {
	
    body {
        padding-left: 16px !important;
        padding-right: 16px !important;
        padding-top: 70px !important;
    }
	
    .sidebar {
        width: 100%;
        height: 70px;
        flex-direction: row;
        padding: 0 20px;
        margin-right: 0;
		border-bottom:1px solid #cccccc;
    }
    .side-top, .side-bottom { display: none; }
    .side-middle { justify-content: flex-start; flex: 1; }
    
    .menu-panel {
        width: var(--panel-width-mobile);
        left: calc(-1 * var(--panel-width-mobile));
        padding-right: 0;
        align-items: center;
    }

    .menu-panel ul {
        text-align: center;
        padding: 0;
    }

    .menu-panel.open { left: 0; }
}