 :root {
     --bg: #f5f7fa;
     --card: #ffffff;
     --accent: #f59e0b;
     --muted: #475569;
     --glass: rgba(255, 255, 255, 0.6)
 }

 * {
     box-sizing: border-box
 }

 html {
     scroll-behavior: smooth;
 }

 body {
     font-family: Inter, system-ui, Segoe UI, Roboto, Arial, sans-serif;
     margin: 0;
     background: linear-gradient(180deg, #f0f4f8 0%, #e2e8f0 60%);
     color: #1e293b;
     -webkit-font-smoothing: antialiased
 }

 header {
     padding: 3rem 1rem;
     text-align: center;
     background: linear-gradient(180deg, rgba(245, 247, 250, 0.8), rgba(245, 247, 250, 0.6));
     backdrop-filter: blur(4px)
 }

 .container {
     max-width: 1100px;
     margin: 0 auto;
     padding: 1rem
 }

 h1 {
     font-size: 2.2rem;
     margin: 0 0 .25rem;
     letter-spacing: 0.02em
 }

 .motto {
     font-weight: 700;
     color: var(--accent);
     font-size: 2.1rem
 }

 p.lead {
     color: var(--muted);
     margin: .5rem 0 1.25rem
 }

 .hero {
     display: flex;
     gap: 1.25rem;
     align-items: center;
     justify-content: center;
     flex-wrap: wrap
 }

 .countdown {
     background: var(--card);
     padding: 1rem 1.25rem;
     border-radius: 12px;
     min-width: 260px;
     text-align: center;
     box-shadow: 0 6px 18px rgba(0, 0, 0, 0.1)
 }

 .countdown .nums {
     display: flex;
     gap: .5rem;
     justify-content: center;
     margin-top: .5rem
 }

 .unit {
     background: var(--glass);
     padding: .6rem .8rem;
     border-radius: 8px;
     min-width: 52px;
     color: #1e293b
 }

 .unit strong {
     display: block;
     font-size: 1.25rem
 }

 nav {
     display: flex;
     gap: .5rem;
     justify-content: center;
     margin-top: 1rem
 }

 nav a {
     color: #1e293b;
     text-decoration: none;
     padding: .5rem .8rem;
     border-radius: 8px;
     background: transparent;
     border: 1px solid rgba(30, 41, 59, 0.1);
     cursor: pointer
 }

 section {
     padding: 2rem 0
 }

 .grid {
     display: grid;
     gap: 1rem
 }

 .program-grid {
     grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
 }

 .card {
     background: var(--card);
     padding: 1rem;
     border-radius: 12px;
     box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05)
 }

 .card h3 {
     margin: .25rem 0 0.5rem
 }

 .time {
     color: var(--muted);
     font-size: .95rem
 }

 .sponsors {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
     gap: 1rem;
     align-items: center
 }

 .sponsor {
     background: rgba(245, 247, 250, 0.7);
     padding: 1rem;
     border-radius: 10px;
     text-align: center
 }

 .sponsor img {
     max-width: 100%;
     height: 48px;
     object-fit: contain;
     filter: grayscale(0) brightness(1.05)
 }

 footer {
     padding: 1.25rem 0;
     color: var(--muted);
     text-align: center;
     font-size: .9rem
 }

 @media(min-width:900px) {
     h1 {
         font-size: 2.6rem
     }
 }

 .pill {
     display: inline-block;
     padding: .25rem .6rem;
     border-radius: 999px;
     background: rgba(245, 247, 250, 0.6);
     font-size: .85rem;
     color: #1e293b
 }

 /* Banner-Laufleiste */
 .banner-wrapper {
     overflow: hidden;
     position: relative;
     background: #fef3c7;
     border-radius: 12px;
     padding: 0.5rem 0;
     margin: 2rem 0;
 }

 .banner {
     display: flex;
     gap: 2rem;
     white-space: nowrap;
     animation: scroll 20s linear infinite;
 }

 .banner-wrapper:hover .banner {
     animation-play-state: paused;
 }

 .banner-item {
     display: flex;
     align-items: center;
     gap: 0.5rem;
 }

 .banner-item img {
     height: 48px;
     border-radius: 6px;
 }

 .banner-item span {
     font-weight: 600;
     font-size: 1rem;
     color: #b45309;
 }

 @keyframes scroll {
     0% {
         transform: translateX(100%);
     }

     100% {
         transform: translateX(-100%);
     }
 }

 .back-top {
     display: block;
     text-align: center;
     margin-top: 1rem;
     color: var(--accent);
     cursor: pointer;
     text-decoration: underline;
 }

 .infos {
     display: grid;
     /*grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));*/
     gap: 1rem;
     align-items: center
 }

 .info {
     display: flex;
     background: rgba(245, 247, 250, 0.7);
     padding: 1rem;
     border-radius: 10px;
     text-align: left
 }

 .info img {
     padding: 10px;
     display: flex;
     max-width: 100%;
     height: 150px;
     object-fit: contain;
     filter: grayscale(0) brightness(1.05)
 }