    /* Reset default margins and padding */
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    /* To get 100% height, the html and body must 
       explicitly be told to take up the full viewport 
    */
    html, body {
        height: 100%;
    }

    body {
        background-color: white;
        font-family: sans-serif;
        display: flex;
        flex-direction: column;
    }

    header {
        width: 100%;
        height: 120px; /* Fixed height */
        background-color: #f8f9fa;
        border-bottom: 2px solid #ddd;
        flex-shrink: 0; /* Prevents header from squishing */
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .main-wrapper {
        display: flex;
        flex: 1; 
        justify-content: center; 
        padding: 20px;
        gap: 20px;
        /* CHANGE: Ensure children (boxes) align to the top of the wrapper */
        align-items: flex-start; 
    }

    .box {
        border: 1px solid #ccc;
        background-color: #fff;
        box-shadow: 5px 5px 15px rgba(0,0,0,0.1);
        
        /* ADD: This creates the 20px gap from the edges of the box */
        padding: 20px; 

        /* ADD: This forces text/content to the top-left */
        display: block; 
        text-align: left;
        
        /* To keep the 100% height look while aligned to top */
        align-self: stretch; 
    }

    .menu-box { width: 400px; }
    .content-box { width: 600px; }
    .right-box { width: 400px; }

    footer {
        width: 100%;
        height: 60px; /* Fixed height */
        background-color: #808080;
        flex-shrink: 0; /* Prevents footer from squishing */
        display: flex;
        align-items: center;
        justify-content: center;
    }