body {
            font-family: 'Open Sans', sans-serif;
            color: #374151;
            font-size: 1rem;
            line-height: 1.65;
            overflow-x: hidden;
        }
         h1, h2, h3, h4, h5, h6 {
            font-family: 'Open Sans', sans-serif;
            font-weight: 600;
         }
        .bg-pro2future-blue {
            background-color: #002060;
        }
        .text-pro2future-blue {
            color: #002060;
        }
        .text-pro2future-light-blue {
            color: #0170B9;
        }
        .border-pro2future-light-blue {
             border-color: #0170B9;
        }
        .bg-pro2future-very-light-blue {
             background-color: #B4C7E7;
        }
         .hover\:text-white:hover {
            color: white;
        }

        .icon-wrapper {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 44px;
            height: 44px;
            border-radius: 50%;
            margin-right: 12px;
            flex-shrink: 0;
        }


        .subtle-shadow {
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -1px rgba(0, 0, 0, 0.04);
        }
        .medium-shadow {
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.07), 0 4px 6px -2px rgba(0, 0, 0, 0.03);
        }
        .strong-shadow-on-hover:hover {
            box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
            transform: translateY(-4px);
        }

        .list-item-with-icon {
            display: flex;
            align-items: flex-start;
            margin-bottom: 0.5rem;
        }
        .list-item-with-icon .icon-wrapper {
            margin-top: 0.1rem;
        }
        .list-item-with-icon p {
            margin-bottom: 0;
            flex: 1;
        }

        .angebot-box {
            transition: box-shadow 0.3s ease-in-out, transform 0.3s ease-in-out;
            position: relative;
            overflow: hidden;
        }
        .corner-badge-container {
            position: absolute;
            top: -1px;
            right: -1px;
            width: 150px;
            height: 150px;
            overflow: hidden;
            pointer-events: none;
        }
        .corner-badge-content {
            position: absolute;
            background-color: #e11d48;
            color: white;
            padding: 6px 0;
            width: 200px;
            text-align: center;
            font-size: 0.75rem;
            line-height: 1rem;
            font-weight: 600;
            white-space: nowrap;
            box-shadow: 0 2px 4px rgba(0,0,0,0.2);
            transform-origin: center;
            top: 35px;
            right: -50px;
            transform: rotate(45deg);
            z-index: 5;
        }
        .module-block {
            background-color: #f9fafb;
            padding: 1rem;
            border-radius: 0.5rem;
            border: 1px solid #e5e7eb;
        }
        .module-block h3 {
            margin-bottom: 0.5rem;
        }
        .module-block p {
            font-size: 0.9rem;
            color: #4b5563;
            line-height: 1.5;
        }
        .page-header {
            background-color: #002060;
            color: white;
            padding: 2rem;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
            display: block;
            text-decoration: none;
        }
        .page-header:hover {
            background-color: #001a4c;
        }

        .hover\:bg-pro2future-dark-blue:hover {
            background-color: #001a4c;
        }

        /* Styles from syllabus.html */
        .pro2future-blue-text {
            color: #002060; /* Pro2Future Blue */
        }
        .pro2future-blue-border {
            border-color: #002060; /* Pro2Future Blue */
        }
        .main-phase-title { /* Styling for the main group titles */
            font-size: 2.25rem; /* text-4xl */
            font-weight: 700; /* font-bold */
            color: #002060; /* Pro2Future Blue for text */
            margin-top: 2.5rem; /* mt-10 */
            margin-bottom: 1.5rem; /* mb-6 */
            padding-bottom: 0.5rem; /* pb-2 */
            border-bottom-width: 2px;
            border-bottom-color: #002060; /* Pro2Future Blue for border */
        }
        .module-grid { /* Container for the module cards */
            display: grid;
            grid-template-columns: repeat(1, minmax(0, 1fr)); /* 1 column by default */
            gap: 1.5rem; /* gap-6 */
        }
        @media (min-width: 768px) { /* md breakpoint */
            .module-grid:not(.list-layout) { /* Apply only if not in list-layout */
                grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2 columns on medium screens */
            }
        }
        @media (min-width: 1024px) { /* lg breakpoint */
            .module-grid:not(.list-layout) { /* Apply only if not in list-layout */
                grid-template-columns: repeat(3, minmax(0, 1fr)); /* 3 columns on large screens */
            }
        }
        .module-grid.list-layout { /* Styles for list layout */
            grid-template-columns: repeat(1, minmax(0, 1fr));
        }
        .module-card {
            background-color: white;
            border-radius: 0.75rem; /* 12px */
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
            transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
            display: flex;
            flex-direction: column;
        }
        .module-card.hidden-by-filter {
            display: none;
        }
        .module-header {
            padding: 1.25rem;
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
            /* border-bottom: 1px solid #e5e7eb; */ /* Border removed from header, added to details when open */
        }
        .module-header:hover {
            background-color: #f9fafb;
        }
        .header-left-content {
            display: flex;
            flex-grow: 1;
            flex-direction: column;
            align-items: flex-start;
        }
        .module-grid.list-layout .header-left-content {
            flex-direction: row;
            align-items: center;
        }

        .module-title {
            font-size: 1.125rem;
            font-weight: 600;
            color: #002060;
        }
        .module-grid:not(.list-layout) .module-title {
            margin-bottom: 0.25rem;
        }
        .module-grid.list-layout .module-title {
            margin-bottom: 0;
            margin-right: auto;
        }

        .module-target-audience {
            font-size: 0.8rem;
            color: #4B5563;
            display: flex;
            align-items: center;
            gap: 0.375rem;
        }
         .module-grid:not(.list-layout) .module-target-audience {
            margin-top: 0.5rem;
        }
        .module-grid.list-layout .module-target-audience {
            margin-top: 0;
            margin-left: 0.75rem;
            padding: 0;
        }
        .module-target-audience .fas {
            color: #002060;
        }

        .module-markers {
            display: flex;
            gap: 0.75rem;
            align-items: center;
            font-size: 0.875rem;
            color: #4B5563;
        }
        .module-grid:not(.list-layout) .module-markers {
             margin-top: 0.5rem;
        }
        .module-grid.list-layout .module-markers {
            margin-bottom: 0;
            margin-left: 0.75rem;
        }

        .marker-item {
            display: flex;
            align-items: center;
            gap: 0.25rem;
        }
        .marker-item .fas {
            font-size: 0.8rem;
        }
        .marker-item .fa-brain {
            color: #FFC0CB; /* Pink */
        }
        .marker-item .fa-book {
            color: #22C55E; /* Green */
        }
        .module-details {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.5s ease-in-out, padding 0.5s ease-in-out;
            padding: 0 1.25rem;
            background-color: #fdfdff;
            flex-grow: 1;
        }
        .module-details.open {
            max-height: 2000px;
            padding: 1.25rem;
            border-top: 1px solid #e5e7eb; /* Line appears only when details are open */
        }
        .module-details h4 {
            font-size: 1rem;
            font-weight: 600;
            color: #002060;
            margin-top: 0.5rem;
            margin-bottom: 0.5rem;
        }
        .module-details ul {
            list-style-type: disc;
            margin-left: 1.5rem;
            color: #374151;
        }
        .module-details li {
            margin-bottom: 0.25rem;
        }
        .accordion-icon {
            transition: transform 0.3s ease-in-out;
            color: #6B7280;
            font-size: 0.9rem;
            margin-left: 0.5rem;
        }
        .accordion-icon.open {
            transform: rotate(180deg);
        }

        /* Filter Section Styles */
        .control-buttons-group {
            display: flex;
            gap: 0.5rem;
        }
        .control-icon-button {
            background-color: #002060;
            color: white;
            padding: 0.5rem;
            border-radius: 9999px;
            font-weight: 600;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 2px 4px -1px rgba(0,0,0,0.06), 0 4px 5px 0 rgba(0,0,0,0.06);
            transition: background-color 0.2s;
        }
        .control-icon-button:hover {
            background-color: #001744;
        }
        .control-icon-button .fas {
            font-size: 1rem;
            width: 1.25rem;
            height: 1.25rem;
            text-align: center;
        }

        #filter-controls-panel {
            background-color: white;
            padding: 1.5rem;
            border-radius: 0.5rem;
            box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
            margin-bottom: 1.5rem;
            display: none;
        }
        #filter-controls-panel.open {
            display: block;
        }
        .filter-controls-inner {
            display: flex;
            flex-direction: row;
            align-items: flex-end;
            gap: 1.5rem;
            overflow-x: auto;
            padding-bottom: 1rem;
            -ms-overflow-style: none;
            scrollbar-width: none;
        }
        .filter-controls-inner::-webkit-scrollbar {
            display: none;
        }

        .filter-group {
            flex-shrink: 0;
        }
        .filter-group label {
            font-weight: 600;
            color: #002060;
            margin-bottom: 0.5rem;
            display: block;
            font-size: 0.875rem;
        }
        .filter-options {
            display: flex;
            flex-wrap: nowrap;
            gap: 0.5rem;
        }
        .filter-option {
            padding: 0.5rem 0.75rem;
            border: 1px solid #D1D5DB;
            border-radius: 0.375rem;
            cursor: pointer;
            transition: background-color 0.2s, border-color 0.2s;
            font-size: 0.875rem;
            display: flex;
            align-items: center;
            gap: 0.375rem;
            white-space: nowrap;
        }
        .filter-option:hover {
            background-color: #E5E7EB;
        }
        .filter-option.active {
            background-color: #002060;
            color: white;
            border-color: #002060;
        }
        .filter-option.active .fas, .filter-option.active .far {
            color: white !important;
        }
        .filter-stichwort-input {
            min-width: 180px;
            padding: 0.5rem 0.75rem;
            border: 1px solid #D1D5DB;
            border-radius: 0.375rem;
            box-shadow: inset 0 1px 2px 0 rgba(0,0,0,0.05);
            font-size: 0.875rem;
        }
        .reset-filter-btn {
            padding: 0.5rem 1rem;
            border-radius: 0.375rem;
            font-weight: 600;
            transition: background-color 0.2s;
            background-color: #D1D5DB;
            color: #1F2937;
            border: none;
            height: fit-content;
            font-size: 0.875rem;
        }
        .reset-filter-btn:hover {
            background-color: #9CA3AF;
        }
        .page-footer {
            background-color: #002060; /* Pro2Future Blue */
            color: white;
            padding: 3rem 1rem 1rem 1rem; /* pt-12 pb-4 px-4 */
            margin-top: 3rem; /* mt-12 */
        }
        .footer-main-content {
            max-width: 64rem; /* max-w-screen-lg */
            margin-left: auto;
            margin-right: auto;
        }
        .footer-contact-grid {
            display: grid;
            grid-template-columns: 1fr; /* Single column by default */
            gap: 1.5rem; /* gap-6 */
            text-align: center; /* Center text for single column layout */
            margin-bottom: 2rem; /* mb-8 */
        }
        @media (min-width: 768px) { /* md breakpoint */
            .footer-contact-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr)); /* Two columns */
                justify-items: center; /* Center grid items (the divs) */
                gap: 2rem; /* Adjust gap as needed */
            }
            .footer-contact-grid > div {
                text-align: left; /* Left-align text within each column */
                max-width: 300px; /* Optional: constrain width of columns */
            }
        }
        .footer-contact-button {
            background-color: #001744; /* Darker Pro2Future Blue for button */
            color: white;
            padding: 0.75rem 1.5rem; /* py-3 px-6 */
            border-radius: 0.375rem; /* rounded-md */
            font-weight: 600; /* font-semibold */
            text-decoration: none;
            display: inline-block;
            margin-top: 1.5rem; /* mt-6 */
            transition: background-color 0.2s;
        }
        .footer-contact-button:hover {
            background-color: #000f2b; /* Even darker blue on hover */
        }
        .footer-bottom-bar {
            margin-top: 2rem; /* mt-8 */
            padding-top: 1rem; /* pt-4 */
            border-top: 1px solid #4A5568; /* gray-600 or similar for a subtle line */
            text-align: center;
            font-size: 0.875rem; /* text-sm */
        }
        .footer-bottom-bar a, .footer-contact-details a {
            text-decoration: none;
            color: #A0AEC0;
        }
        .footer-bottom-bar a:hover, .footer-contact-details a:hover {
            text-decoration: underline;
        }
        .footer-contact-details p {
            margin-bottom: 0.25rem;
        }
