
    /* General Body Styles */
    body {
        font-family: 'Open Sans', sans-serif;
        background-color: #f8f8f8;
        margin: 0;
        padding: 20px;
        color: #333;
    }

    /* Menu Container Styles */
    .menu-container {
        max-width: 1200px;
        margin: 20px auto;
        padding: 30px;
        background-color: #fff;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
        border-radius: 10px;
    }

    /* Menu Header Styles */
    .menu-header {
        text-align: center;
        margin-bottom: 40px;
    }

    .menu-header h1 {
        font-family: 'Playfair Display', serif;
        font-size: 3.5em;
        color: #5a2d00;
        /* Darker brown for a rich feel */
        margin-bottom: 10px;
        position: relative;
        display: inline-block;
    }

    .menu-header h1::after {
        content: '';
        display: block;
        width: 80px;
        height: 3px;
        background-color: #e09f3e;
        /* Golden brown accent */
        margin: 10px auto 0;
        border-radius: 2px;
    }

    .menu-header p {
        font-size: 1.2em;
        color: #666;
        line-height: 1.6;
    }

    /* Print Button Styles */
    .print-button-container {
        text-align: center;
        margin-bottom: 30px;
    }

    .print-button {
        padding: 12px 25px;
        font-size: 1.1em;
        background-color: #e09f3e;
        /* Golden brown */
        color: white;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        transition: background-color 0.3s ease, transform 0.2s ease;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    }

    .print-button:hover {
        background-color: #c78931;
        /* Slightly darker */
        transform: translateY(-2px);
    }

    /* Category Grid (Collage Layout) Styles */
    .category-grid {
        column-count: 3;
        /* Number of columns for desktop */
        column-gap: 30px;
        /* Space between columns */
        padding-bottom: 20px;
    }

    /* Category Card Styles */
    .category-card {
        background-color: #fefefe;
        border: 1px solid #eee;
        border-radius: 8px;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
        overflow: hidden;
        transition: transform 0.3s ease, box-shadow 0.3s ease;
        margin-bottom: 30px;
        /* Space between cards in columns */
        /* Ensure cards do not break inside a column (for print/column layout) */
        break-inside: avoid-column;
        -webkit-column-break-inside: avoid;
        /* For Safari */
        page-break-inside: avoid;
        /* For other browsers */
        display: block;
        /* Important for column layout */
    }

    .category-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
    }

    /* Category Image Styles */
    .category-image-container {
        width: 100%;
        height: 200px;
        /* Fixed height for consistent image display */
        overflow: hidden;
        background-color: #f0f0f0;
        /* Placeholder background */
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .category-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        /* Ensures image covers the area without distortion */
        display: block;
    }

    .category-image-container.placeholder::before {
        content: 'Category Image';
        color: #ccc;
        font-size: 1.2em;
    }

    /* Category Content Styles */
    .category-content {
        padding: 25px;
        display: block;
        /* Ensures content flows naturally within the card */
    }

    .category-content h2 {
        font-family: 'Playfair Display', serif;
        font-size: 1.8em;
        color: #7a4f21;
        /* Slightly lighter brown */
        margin-top: 0;
        margin-bottom: 20px;
        text-align: center;
        position: relative;
        padding-bottom: 10px;
    }

    .category-content h2::after {
        content: '';
        display: block;
        width: 60px;
        height: 2px;
        background-color: #e09f3e;
        margin: 10px auto 0;
        border-radius: 1px;
    }

    /* Product List Styles */
    .product-list {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .product-item {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        margin-bottom: 15px;
        padding-bottom: 15px;
        border-bottom: 1px dashed #eee;
    }

    .product-item:last-child {
        border-bottom: none;
        margin-bottom: 0;
        padding-bottom: 0;
    }

    .product-details {
        flex-grow: 1;
        margin-right: 15px;
    }

    .product-name {
        font-weight: 600;
        color: #444;
        font-size: 1.1em;
        margin-bottom: 5px;
    }

    .product-description {
        font-size: 0.9em;
        color: #777;
        line-height: 1.4;
    }

    .product-price {
        font-weight: 700;
        color: #5a2d00;
        font-size: 1.1em;
        white-space: nowrap;
        /* Prevents price from wrapping */
    }

    /* Responsive adjustments for screen display */
    @media (max-width: 992px) {
        .category-grid {
            column-count: 2;
            /* 2 columns on medium screens */
        }
    }

    @media (max-width: 768px) {
        .menu-container {
            padding: 15px;
        }

        .menu-header h1 {
            font-size: 2.5em;
        }

        .menu-header p {
            font-size: 1em;
        }

        .category-grid {
            column-count: 1;
            /* 1 column on small screens */
            column-gap: 0;
            /* No gap when single column */
        }

        .category-card {
            margin-bottom: 20px;
            /* Adjust margin for single column */
        }

        .category-content h2 {
            font-size: 1.5em;
        }
    }

    /* ****************************************************** */
    /* PRINT STYLES (@media print)            */
    /* ****************************************************** */
    @media print {
        body {
            background-color: #fff;
            /* White background for print */
            margin: 0;
            padding: 0;
            -webkit-print-color-adjust: exact;
            /* Ensure background colors and images print if desired */
            print-color-adjust: exact;
        }

        /* Set A4 page size and margins for printing */
        @page {
            /* size: A4;
            margin: 1cm; */
            /* Adjust margins as needed */
        }

        .menu-container {
            box-shadow: none;
            /* Remove shadows for print */
            border-radius: 0;
            /* Remove border-radius */
            padding: 0;
            /* Remove container padding */
            margin: 0 auto;
            /* Center on page */
            max-width: 100%;
            /* Use full width for printing */
        }

        .menu-header {
            margin-bottom: 20px;
            /* Adjust header margin for print */
        }

        .menu-header h1 {
            font-size: 2.5em;
            /* Smaller header for print */
            color: #333;
            /* Default black for text */
        }

        .menu-header h1::after {
            background-color: #888;
            /* Grey line for print */
        }

        .menu-header p {
            color: #555;
            /* Slightly lighter text */
        }

        .print-button-container {
            display: none;
            /* Hide the print button when printing */
        }

        .category-grid {
            column-count: 2;
            /* Optimal 2 columns for A4 print */
            column-gap: 20px;
            /* Adjust gap for print */
        }

        .category-card {
            box-shadow: none;
            /* Remove shadows for print */
            border: 1px solid #ddd;
            /* Lighter border for print */
            margin-bottom: 20px;
            /* Consistent margin for print */
        }

        .category-image-container {
            height: 150px;
            /* Slightly smaller images for print */
        }

        /* Ensure text colors are dark enough to print well */
        .category-content h2 {
            color: #333;
        }

        .category-content h2::after {
            background-color: #ccc;
        }

        .product-name,
        .product-price {
            color: #333;
        }

        .product-description {
            color: #666;
        }

        .product-item {
            border-bottom: 1px dashed #ccc;
            /* Lighter dashed line */
        }
    }
