html, body {
            margin: 0;
            padding: 0;
            height: 100%;
            width: 100%;
            overflow: hidden; /* Prevent body scrollbars */
            font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
            background-color: #e9ecef; /* Softer background grey */
            color: #333; /* Default text color */
        }

        #table-of-contents {
            position: fixed;
            left: 0;
            top: 0;
            bottom: 0;
            width: 250px; /* Sidebar width */
            background-color: #e9ecef; /* Match body background */
            padding: 25px 15px;
            overflow-y: auto;
            z-index: 50;
            box-shadow: 3px 0 8px rgba(0,0,0,0.07); /* Softer shadow */
            border-right: 1px solid #dee2e6; /* Subtle border */
            box-sizing: border-box;
        }
        #table-of-contents ol {
            list-style: none;
            padding: 0;
            margin: 0;
        }
        #table-of-contents li a {
            display: block;
            padding: 8px 15px;
            text-decoration: none;
            color: #333;
            border-radius: 4px;
            margin-bottom: 5px;
            font-size: 0.85em; /* Slightly smaller font */
            transition: background-color 0.2s ease, color 0.2s ease;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis; /* Add ellipsis for long titles */
        }
        #table-of-contents li a:hover {
            background-color: #e0e0e0;
        }
        #table-of-contents li.active a {
            background-color: #669900; /* UKA Green */
            color: white;
            font-weight: bold;
        }

        .presentation-container {
            width: calc(100vw - 250px); /* Adjust width */
            margin-left: 250px; /* Make space for sidebar */
            height: 100vh; /* Full viewport height */
            background-color: #ffffff; /* White slide background */
            position: relative;
            overflow: hidden; /* Hide non-active slides */
        }

        .slide {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            padding: 5vh 8vw; /* Responsive padding */
            /* Adjust bottom padding to avoid overlap with controls when scrolling */
            padding-bottom: calc(5vh + 80px); /* 5vh base + approx height of controls + buffer */
            box-sizing: border-box;
            display: flex; /* Use flex for layout */
            flex-direction: column;
            justify-content: center; /* Default: center vertically */
            align-items: center; /* Default: center horizontally */
            text-align: center;
            opacity: 0;
            border-radius: 8px; /* Slightly rounded corners for the slide 'card' */
            box-shadow: 0 6px 20px rgba(0,0,0,0.08); /* Add subtle shadow to active slide */
            /* Subtle slide-in effect from the right */
            transform: translateX(30px);
            transition: opacity 0.6s ease-in-out, transform 0.6s ease-in-out, box-shadow 0.6s ease-in-out;
            visibility: hidden; /* Hide inactive slides completely */
            overflow-x: hidden; /* Prevent horizontal scroll */
            overflow-y: auto; /* Allow vertical scroll if content overflows */
        }

        .slide.active {
            opacity: 1;
            transform: translateX(0);
            visibility: visible; /* Make active slide visible */
        }

        /* Content alignment for non-title slides */
        .slide:not(.title-slide):not(.agenda-slide):not(.qa-slide) {
            align-items: center; /* Center the content block horizontally */
            text-align: left; /* Keep text left-aligned within block */
             justify-content: flex-start; /* Align content top */
             padding-top: 10vh;
        }

        .slide h1 {
            font-size: clamp(2.5em, 6vw, 4em);
            color: #495057; /* Darker grey for titles */
            margin-bottom: 25px; /* Slightly more margin */
            font-weight: 600;
             width: 100%; /* Ensure h1 takes full width */
             max-width: 1000px; /* Consistent max width */
             margin-left: auto;
             margin-right: auto;
        }

         .slide h2 {
            font-size: clamp(1.8em, 4vw, 2.8em);
            color: #669900; /* UKA Green for slide titles */
            margin-bottom: 30px; /* Adjusted margin */
            font-weight: 500;
            width: 100%; /* Take full width within container */
            max-width: 1000px; /* Consistent max width */
            align-self: center; /* Center the heading block itself */
            text-align: left; /* Keep text left-aligned */
            padding-bottom: 10px; /* Space for border */
            border-bottom: 1px solid #e9ecef; /* Lighter separator line */
             /* Animation applied separately */
         }

        /* Remove border for centered titles */
        .slide.title-slide h1,
        .slide.agenda-slide h2,
        .slide.qa-slide h1 {
            border-bottom: none;
            text-align: center;
            align-self: center; /* Center title */
        }
         .slide.agenda-slide h2 {
             margin-bottom: 40px; /* Slightly more space */
         }

        /* General content block styling (layout) */
         .slide p, .slide ul {
            font-size: clamp(1em, 2.2vw, 1.3em);
            line-height: 1.7;
            color: #495057; /* Slightly darker grey for text */
            max-width: 1000px; /* Consistent max width */
            width: 100%; /* Take available width up to max */
            text-align: left;
            align-self: center; /* Center the block itself */
            margin-left: auto;
            margin-right: auto;
            margin-bottom: 20px; /* Consistent bottom margin */
            /* Animation applied separately */
         }
         /* Specific alignment for centered slides */
         .slide.title-slide p,
         .slide.agenda-slide ul,
         .slide.qa-slide p {
             text-align: center;
             color: #5a6268; /* Slightly lighter grey for subtitle text */
         }
         .slide.agenda-slide ul {
             max-width: 600px; /* Keep agenda list narrower */
             text-align: left; /* Keep list items left-aligned */
         }


         .slide ul {
             list-style: none;
             padding-left: 0; /* Reset padding */
             margin-top: 0; /* Remove default top margin */
         }

         .slide li {
             margin-bottom: 15px;
             padding-left: 1.5em; /* Indentation for bullet */
             position: relative;
         }
         /* Align nested lists correctly */
         .slide ul ul {
             margin-top: 10px;
             padding-left: 1.5em; /* Indent nested list */
             /* Explicitly inherit font styles from parent ul/p rule */
             font-size: inherit; /* Inherit clamped size */
             line-height: inherit; /* Inherit line-height */
             color: inherit; /* Inherit color */
             /* Reset any specific margins that might affect appearance */
             margin-bottom: 0;
         }


         /* Custom bullets */
         .slide li::before {
             content: '\2022'; /* CSS escape for bullet point */
             color: #669900;
             font-weight: bold;
             display: inline-block;
             width: 1em;
             margin-left: -1.5em; /* Pull bullet back */
             position: absolute;
             left: 0.5em; /* Position bullet inside padding */
         }

         .slide strong {
             color: #558000;
             font-weight: 600;
         }

         /* Logo Styles */
         .logo-container {
             display: flex;
             flex-wrap: wrap;
             gap: 25px;
             margin-top: 30px; /* Consistent top margin */
             padding-top: 20px; /* Internal padding */
             justify-content: flex-start; /* Default align logos left */
             align-items: center;
             width: 100%;
             max-width: 1000px; /* Consistent max width */
             box-sizing: border-box;
             align-self: center; /* Center the container block */
             margin-left: auto;
             margin-right: auto;
             margin-bottom: 20px; /* Consistent bottom margin */
            /* padding-bottom: calc(5vh + 30px); Remove fixed bottom padding */
             /* Animation applied separately */
         }

         /* Center logos when slide content is centered */
         .slide.title-slide .logo-container,
         .slide.agenda-slide .logo-container,
         .slide.qa-slide .logo-container {
             justify-content: center;
             align-self: center;
             /* margin-top: 30px; Already set above */
            /* padding-bottom: calc(5vh + 30px); Remove fixed bottom padding */
         }

         .logo-img {
             height: 40px;
             max-width: 150px;
             object-fit: contain;
             vertical-align: middle;
         }

         .corporate-logo {
             position: absolute;
             bottom: 3vh;
             right: 3vw;
             height: 50px;
             opacity: 0.7; /* Slightly more subtle */
             z-index: 5; /* Ensure it's above scrolled content */
         }

        .navigation-controls {
            position: fixed;
            bottom: 30px;
            left: calc(50% + 125px); /* Shift right by half sidebar width */
            transform: translateX(-50%);
            display: flex;
            align-items: center;
            gap: 20px;
            background-color: rgba(248, 249, 250, 0.9); /* Lighter, slightly opaque background */
            padding: 10px 20px; /* Slightly larger padding */
            border-radius: 25px; /* More rounded */
            box-shadow: 0 4px 12px rgba(0,0,0,0.1); /* Refined shadow */
            z-index: 100;
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
        }

        .nav-button {
            padding: 10px 22px; /* Larger padding */
            font-size: 0.9em;
            cursor: pointer;
            background-color: #669900;
            color: white;
            border: none;
            border-radius: 20px; /* More rounded */
            transition: background-color 0.3s ease, transform 0.1s ease, box-shadow 0.3s ease;
        }

        .nav-button:hover {
            background-color: #558000;
            box-shadow: 0 3px 8px rgba(0,0,0,0.15); /* Add shadow on hover */
        }

        .nav-button:active {
             transform: scale(0.95);
        }

        .nav-button:disabled {
            background-color: #bdc3c7;
            cursor: not-allowed;
            opacity: 0.7;
        }

        .slide-counter {
            font-size: 0.9em;
            color: #333;
            min-width: 70px;
            text-align: center;
        }

         /* Specific slide styling */
         .slide.title-slide {
             /* Use a very light solid color instead of gradient for cleaner look */
             background-color: #f7f9f3; 
         }
         .slide.title-slide h1 {
             color: #446600;
         }
          .slide.title-slide p {
              font-size: clamp(1.1em, 2.5vw, 1.4em);
             color: #5a6268; /* Already defined above, ensures consistency */
             text-align: center;
             align-self: center;
         }

         .slide.agenda-slide ul {
             font-size: clamp(1.1em, 2.5vw, 1.4em);
             align-self: center;
             text-align: left;
             max-width: 600px;
             margin-top: 30px; /* More space after title */
             color: #5a6268; /* Already defined above */
         }
          .slide.agenda-slide li::before {
              left: 0.2em;
          }

         .slide.qa-slide {
             /* Use a very light solid color */
             background-color: #f7f9f3;
         }
         .slide.qa-slide h1 {
            font-size: clamp(2.5em, 6vw, 4em);
            margin-bottom: 25px;
             color: #446600;
         }
         .slide.qa-slide p {
             font-size: clamp(1.1em, 2.5vw, 1.4em);
             text-align: center;
             align-self: center;
             color: #555;
             max-width: 1000px; /* Consistent width */
             margin-left: auto;
             margin-right: auto;
         }

        /* Style for maps */
        .map-container {
            width: 100%;
            max-width: 1000px; /* Consistent max width */
            margin: 25px auto 15px auto;
            text-align: center;
            align-self: center;
            /* Animation applied separately */
        }
        .map-img {
            max-width: 80%; /* Adjust as needed */
            height: auto;
            display: block;
            margin: 0 auto; /* Center block element */
            border: 1px solid #eee; /* Optional subtle border */
            border-radius: 4px; /* Optional rounded corners */
        }

        /* Thumbnail styles */
        .map-thumbnail {
            max-width: 200px; /* Adjust thumbnail size */
            height: auto;
            display: block;
            margin: 0 auto; /* Center block element */
            border: 1px solid #ccc;
            border-radius: 4px;
            cursor: pointer;
            transition: opacity 0.3s ease, box-shadow 0.3s ease;
            box-shadow: 0 2px 8px rgba(0,0,0,0.1); /* Add subtle shadow */
        }
        .map-thumbnail:hover {
            opacity: 0.8;
            box-shadow: 0 4px 12px rgba(0,0,0,0.15); /* Enhance shadow on hover */
        }
        .map-thumbnail-trigger {
            display: block; /* Make link block level */
            text-align: center;
        }

        /* Modal Popup Styles */
        .image-popup {
            display: none; /* Hidden by default */
            position: fixed; /* Stay in place */
            z-index: 1000; /* Sit on top */
            left: 0;
            top: 0;
            width: 100%; /* Full width */
            height: 100%; /* Full height */
            overflow: auto; /* Enable scroll if needed */
            background-color: rgba(0,0,0,0.8); /* Black w/ opacity */
            display: flex; /* Use flexbox for centering */
            justify-content: center;
            align-items: center;
            padding: 20px; /* Add padding around image */
            box-sizing: border-box;
        }

        .popup-img {
            margin: auto;
            display: block;
            max-width: 95%;
            max-height: 90vh; /* Limit height */
            object-fit: contain;
            background-color: white; /* Add white background for transparent images */
        }

        .close-popup {
            position: absolute;
            top: 20px;
            right: 35px;
            color: #f1f1f1;
            font-size: 40px;
            font-weight: bold;
            transition: 0.3s;
            cursor: pointer;
        }

        .close-popup:hover,
        .close-popup:focus {
            color: #bbb;
            text-decoration: none;
            cursor: pointer;
            transform: scale(1.1); /* Slight scale effect on hover */
        }

        @media (max-width: 768px) {
            .slide {
                 padding: 8vh 5vw;
                 padding-bottom: calc(8vh + 70px); /* Adjust mobile bottom padding */
            }
             .slide:not(.title-slide):not(.agenda-slide):not(.qa-slide) {
                 padding-top: 8vh;
             }
            .corporate-logo {
                 height: 35px;
                 bottom: 2vh;
                 right: 3vw;
             }
            .logo-container {
                 gap: 15px;
                 padding-top: 15px;
                 /* padding-bottom: calc(3vh + 20px); Remove fixed bottom padding */
                 justify-content: center; /* Center logos on mobile */
                 align-self: center; /* Center container on mobile */
                 max-width: 90%; /* Adjust max width for mobile */
             }
             .logo-img {
                 height: 30px;
                 max-width: 100px;
             }
            .navigation-controls {
                bottom: 15px;
                gap: 10px;
                padding: 5px 10px;
            }
            .nav-button { padding: 6px 12px; font-size: 0.8em; border-radius: 10px;}
            .slide-counter { font-size: 0.8em; min-width: 60px; }
        }

        /* Media Query for hiding sidebar on smaller screens */
        @media (max-width: 1024px) {
            #table-of-contents {
                display: none;
            }
            .presentation-container {
                width: 100vw;
                margin-left: 0;
            }
            .navigation-controls {
                left: 50%; /* Reset position */
            }
        }

        /* Animation Styles - Separated from layout */
        .slide h2,
        .slide p,
        .slide ul,
        .slide .logo-container,
        .slide .map-container {
          opacity: 0;
          transform: translateY(20px);
          transition: opacity 0.6s ease-out, transform 0.6s ease-out;
          transition-delay: 0.3s; /* Delay content appearance */
        }

        .slide.active h2,
        .slide.active p,
        .slide.active ul,
        .slide.active .logo-container,
        .slide.active .map-container {
          opacity: 1;
          transform: translateY(0);
        }

        /* Style nested lists in Agenda */
        .slide.agenda-slide ul ul {
            margin-top: 8px; /* Space above nested list */
            margin-bottom: 10px; /* Space below nested list */
            padding-left: 25px; /* Indentation for nested list */
            list-style-type: circle; /* Different bullet for sub-items */
        }
        .slide.agenda-slide ul ul li {
            font-size: 0.9em; /* Slightly smaller font for sub-items */
            margin-bottom: 8px;
        }
         /* Style nested lists in TOC */
         #table-of-contents li.toc-sub-item a {
             padding-left: 30px; /* Indent sub-items in TOC */
             font-size: 0.8em; /* Slightly smaller font for TOC sub-items */
         } 