/* ======================== Farbvariablen ======================== */ :root { --color-background: #F8F9Fa; --color-text: #191A23; --color-text-dark: #F3F3F3; --color-accent: #BBE04C; --color-primary-button-dark: #191A23; --color-primary-button-light: #FFFFFF; --color-link: #607C0E; --color-error: #d9534f; --color-off: #F3F3F3; --color-off-dark: #1D1F29; --color-light: #F8F9Fa; --color-dark: #191A23; } .dark { --color-background: #191A23; --color-text: #F2F2F2; --color-text-dark: #191A23; --color-link: #BBE04C; --color-off: #1D1F29; --color-off-dark: #F3F3F3; } /* ======================== Allgemein ======================== */ html, body { height: 100%; } body { font-family: 'Cairo', sans-serif; background-color: var(--color-background); margin: 0; padding: 0; color: var(--color-text); display: flex; flex-direction: column; justify-content: flex-start; position: relative; overflow-x: hidden; } main { flex: 1; } h1, h2, h3, h4, h5 { font-family: 'Exo 2', sans-serif; font-weight: 500; margin-top: 1rem; margin-bottom: 0.5rem; color: var(--color-text); text-align: left; } p { line-height: 1.6; margin-bottom: 1rem; } .container { width: 100%; max-width: 1200px; margin: 0 auto; } /* ======================== Navbar ======================== */ .navbar { position: sticky; padding: 1rem 1rem 1rem 1rem; top: 0; left: 0; width: 100%; background-color: var(--color-off); color: var(--color-text); border: 1px solid var(--color-text); border-radius: 0 0 30px 30px; box-shadow: 0 4px 0 0 var(--color-text); } .navbar-brand { color: var(--color-text); font-family: 'Exo 2', sans-serif; font-size: 1.5rem; font-weight: bold; } .navbar-brand:hover { color: var(--color-accent); } .navbar-nav .nav-link { color: var(--color-text); font-size: 1.1rem; margin-right: 10px; transition: color 0.3s ease-in-out; margin-left: 1rem; } .navbar-nav .nav-link:hover { text-decoration: underline; } li .dropdown-item-mobile { display: block; } .nav-item.dropdown { position: relative; } .dark .navbar-toggler { border: 1px solid var(--color-text); } .dark .navbar-toggler-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } .show-on-hover:hover > .dropdown-menu { background-color: var(--color-off); display: block; position: absolute; top: 100%; left: 0; margin-top: 0; } .dropdown-icon { margin-left: -1rem; } .dropdown-menu .dropdown-item:active { background-color: var(--color-off); color: var(--color-text); } .dropdown-menu .dropdown-item { color: var(--color-text); padding: 0.3rem 0 0.3rem 1rem; } .dropdown-menu .dropdown-item:active { background-color: var(--color-off); color: var(--color-dark); } .dropdown-menu .dropdown-item:hover { background-color: var(--color-accent); color: var(--color-dark); } #theme-switch { height: 2.3rem; width: 2.3rem; padding: 0; border: none; border-radius: 50%; background-color: transparent; display: flex; justify-content: center; align-items: center; appearance: none; } #theme-switch img#light-icon { display: none; } #theme-switch img#dark-icon { display: inline; } .dark #theme-switch img#light-icon { display: inline; } .dark #theme-switch img#dark-icon { display: none; } /* ======================== Hero ======================== */ .hero-section { padding: 6rem 0 6rem 0; max-width: 45rem; margin: 5rem auto; text-align: center; } .hero-section h1 { padding: 0 1rem 0 1rem; margin-bottom: 1rem; line-height: 1.2; font-size: 3.2rem; } .hero-section p { margin-bottom: 0.5rem; font-size: 1.25rem; color: var(--color-text); max-width: 35rem; margin-left: auto; margin-right: auto; } .hero-card { width: 12rem; height: 10rem; background-color: var(--color-off); color: var(--color-text); border: 1px solid var(--color-text); border-radius: 30px; box-shadow: 0 4px 0 0 var(--color-text); pointer-events: auto; position: relative; } .hero-card-wrapper { position: absolute; top: 25%; left: 0; width: 100vw; display: flex; justify-content: space-between; pointer-events: none; } .hero-card-column { display: flex; flex-direction: column; gap: 1.5rem; pointer-events: auto; } .hero-card-column.left { align-items: flex-start; } .hero-card-column.right { align-items: flex-end; } .hero-card a { color: var(--color-text); text-decoration: none; font-size: 1.1rem; font-weight: 500; } .dark .hero-card.left-1 svg { color: var(--color-accent); } .hero-card.left-1 a:hover, .hero-card.left-1 a:active { color: var(--color-link); } .hero-card.left-1 svg { color: var(--color-text); } .hero-card.right-1 svg { color: var(--color-text); } .hero-card.right-1 svg:hover, .hero-card.right-1 svg:active{ color: var(--color-link); } .left-1 { height: 15rem; width: 17rem; z-index: 2; border-radius: 0 30px 30px 0; padding: 1rem 0 1rem 2rem; display: flex; flex-direction: column; justify-content: space-evenly; } .left-2 { height: 10rem; width: 12rem; z-index: 1; border-radius: 0 30px 30px 0; bottom: 5rem; } .right-1 { height: 18rem; width: 8rem; z-index: 2; border-radius: 30px 0 0 30px; top: 0; padding: 0 0 0 2.7rem; display: flex; flex-direction: column; justify-content: space-evenly; gap: 0.5rem; } .right-2 { height: 14rem; width: 16rem; z-index: 1; border-radius: 30px 0 0 30px; bottom: 12rem; } /* ======================== About ======================== */ .about-section { margin-bottom: 3rem; } .about-image { max-height: 28rem; object-fit: cover; overflow: hidden; display: block; border-radius: 30px; margin-top: 3rem; } .card { background-color: var(--color-off); color: var(--color-text); border: 1px solid var(--color-text); border-radius: 30px; box-shadow: 0 4px 0 0 var(--color-text); } .card-header { font-weight: 600; font-size: 1.25rem; background-color: transparent; border-bottom: none; color: var(--color-text); padding: 1.5rem 0 0 1.25rem; } .card-body, .card-button { padding: 1rem 1.25rem; } .ese-section .card-header { font-size: 2rem; } .ese-section .card-body { font-size: 1.1rem; align-content: center; max-width: 80%; margin-left: auto; margin-right: auto; } /* ======================== Button ======================== */ .btn-primary { border: 1px solid var(--color-primary-button-dark); background-color: var(--color-primary-button-dark); color: var(--color-primary-button-light); } .btn-primary:hover, .btn-primary:active { color: var(--color-primary-button-dark) !important; background-color: transparent !important; border: 1px solid var(--color-primary-button-dark) !important; box-shadow: 0 4px 0 0 var(--color-primary-button-dark); } .dark .btn-primary { border: 1px solid var(--color-accent); background-color: var(--color-accent); color: var(--color-text-dark); } .dark .btn-primary:hover, .dark.btn.btn-primary:active { color: var(--color-text) !important; background-color: transparent; border: 1px solid var(--color-accent) !important; box-shadow: 0 4px 0 0 var(--color-accent); } .btn-secondary { background-color: transparent; color: var(--color-primary-button-dark); border: 1px solid var(--color-primary-button-dark); } .btn-secondary:hover, .btn-secondary:active { text-decoration: none !important; color: var(--color-primary-button-dark) !important; background-color: transparent !important; border-color: var(--color-primary-button-dark); box-shadow: 0 4px 0 0 var(--color-primary-button-dark); } .dark .btn-secondary { background-color: transparent; color: var(--color-primary-button-light); border: 1px solid var(--color-primary-button-light); } .dark .btn-secondary:hover, .dark .btn-secondary:active { background-color: transparent; color: var(--color-primary-button-light) !important; border-color: var(--color-primary-button-light); box-shadow: 0 4px 0 0 var(--color-primary-button-light); } /* ======================== Footer ======================== */ footer { background-color: var(--color-off); } .footer { padding: 3rem 0; width: 100%; margin-top: auto; text-align: center; font-size: 0.95rem; } .footer-nav ul { list-style: none; padding: 0; margin: 0.5rem 0 0; display: flex; justify-content: center; gap: 1.5rem; flex-wrap: wrap; } .footer-nav li { display: inline; } .footer-nav a { color: var(--color-text); text-decoration: none; transition: color 0.3s ease; } .footer-nav a:hover, .footer-nav a:focus { color: var(--color-text); text-decoration: underline; outline: none; } /* ======================== News ======================== */ .feed-section #feed { margin: 2rem auto; padding: 1rem; display: flex; flex-wrap: wrap; gap: 2rem; justify-content: center; } .page { max-width: 80%; margin: 0 auto; } .feed-heading { font-size: 2.5rem; margin-top: 0; display: block; width: max-content; margin-left: auto; margin-right: auto; color: var(--color-text); background-color: var(--color-accent); border-radius: 8px; padding: 5px 10px; box-shadow: 0 4px 0 0 var(--color-text); } .dark .feed-heading { color: var(--color-text-dark); box-shadow: 0 4px 0 0 var(--color-off); } .feed-entry { flex: 0 1 calc(50% - 2rem); box-sizing: border-box; background-color: var(--color-off); border: 1px solid var(--color-text); border-radius: 20px; box-shadow: 0 4px 0 0 var(--color-text); padding: 1.5rem; display: flex; flex-direction: column; justify-content: space-between; } .page .feed-entry { margin-bottom: 2rem; } .feed-content { font-size: 1rem; line-height: 1.6; margin-bottom: 0.75rem; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; text-overflow: ellipsis; } .page .feed-content { overflow: visible !important; display: block !important; -webkit-line-clamp: unset !important; -webkit-box-orient: unset !important; text-overflow: unset !important; white-space: normal !important; } .feed-content a { color: var(--color-link); text-decoration: none; transition: color 0.3s; } .feed-content a:hover { color: var(--color-link); text-decoration: underline; } /* ======================== 404 Error Page ======================== */ .page-not-found { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: 'Exo 2', sans-serif; text-align: center; } .page-not-found .error-code { font-size: 6rem; font-weight: bold; color: var(--color-error); } .page-not-found .error-message { font-size: 1.25rem; color: var(--color-text); } /* ======================== Responsive Design ======================== */ @media (max-width: 991px) { .navbar-collapse .dropdown-menu { display: none !important; } .navbar-nav .nav-link { text-align: center; } .nav-item.dropdown { justify-content: center; } .navbar-nav { margin-top: 1rem; } .nav-item { font-weight: 700; border: 1px solid var(--color-text); border-radius: 30px; box-shadow: 0 4px 0 0 var(--color-text); margin: 0.4rem 0 0.4rem 0; } .nav-item:hover, .nav-item:active { background-color: var(--color-accent); } .nav-item:hover .nav-link, .nav-item:active .nav-link { color: var(--color-dark) !important; } .dropdown-item-mobile { margin: 0.4rem 0 0.4rem 0; } .dropdown-icon { display: none !important; } .hero-section { padding: 0 !important; } .ese-section .card-body .page { max-width: 100%; } } @media (min-width: 992px) { .dropdown-item-mobile { display: none !important; } } @media (max-width: 1260px) { .hero-card-wrapper { display: none; } .hero-section { padding: 0; margin: 2rem auto; } .hero-section h1 { font-size: 2.5rem; } .hero-section p { font-size: 1.1rem; } } @media (max-width: 768px) { .feed-entry { flex: 0 1 100%; } }