:root{
            --bg:#111214;
            --bg-soft:#18191c;
            --card:#1c1b1d;
            --card-2:#222124;
            --text:#d6d7d6;
            --muted:#adadad;
            --white:#ffffff;
            --gold:#fbb037;
            --gold-soft:#ffd17a;
            --red:#e2341d;
            --border:#35363a;
            --shadow:0 10px 30px rgba(0,0,0,.35);
            --radius:16px;
            --max:1180px;
        }

        *{box-sizing:border-box;margin:0;padding:0;}
        html{scroll-behavior:smooth;}
        body{
            font-family:'Montserrat',sans-serif;
            background:
                radial-gradient(circle at top right, rgba(251,176,55,.08), transparent 20%),
                radial-gradient(circle at top left, rgba(226,52,29,.06), transparent 20%),
                var(--bg);
            color:var(--text);
            line-height:1.65;
        }
        img{max-width:100%;display:block;}
        a{color:inherit;}
        .container{width:min(var(--max), calc(100% - 32px));margin:0 auto;}

        /* Topbar & Header */
        .topbar{
            background:#060606;
            border-bottom:1px solid rgba(251,176,55,.18);
            font-size:14px;
        }
        .topbar-inner{
            width:min(var(--max), calc(100% - 32px));
            margin:0 auto;
            display:flex;
            justify-content:space-between;
            align-items:center;
            gap:14px;
            padding:10px 0;
            flex-wrap:wrap;
        }
        .topbar a{color:var(--gold-soft);text-decoration:none;font-weight:600;}

        header{
            position:sticky;
            top:0;
            z-index:1000;
            backdrop-filter:blur(8px);
            background:rgba(10,10,10,.92);
            border-bottom:1px solid rgba(255,255,255,.06);
        }
        .header-inner{
            width:min(var(--max), calc(100% - 32px));
            margin:0 auto;
            display:flex;
            justify-content:space-between;
            align-items:center;
            gap:20px;
            padding:14px 0;
        }
        .brand{
            display:flex;
            align-items:center;
            gap:14px;
            text-decoration:none;
            min-width:0;
        }
        .brand img{
            width:220px;
            height:auto;
            object-fit:contain;
            filter:drop-shadow(0 4px 14px rgba(0,0,0,.25));
        }
        .brand-text{min-width:0;}
        .brand-title{
            color:var(--white);
            font-size:30px;
            font-weight:800;
            letter-spacing:1px;
            text-transform:uppercase;
            line-height:1;
        }
        .brand-subtitle{
            color:var(--gold);
            font-size:13px;
            font-style:italic;
            margin-top:6px;
            letter-spacing:.3px;
        }

        nav ul{
            list-style:none;
            display:flex;
            gap:10px;
            flex-wrap:wrap;
            justify-content:flex-end;
        }
        nav li{display:flex;}
        nav a{
            text-decoration:none;
            color:var(--text);
            font-weight:700;
            font-size:18px;
            padding:12px 16px;
            border-radius:10px;
            transition:.2s ease;
            display:inline-flex;
            align-items:center;
            justify-content:center;
            min-height:48px;
            text-align:center;
        }
        nav a:hover,
        nav a.active{
            color:var(--gold);
            background:rgba(255,255,255,.04);
        }

        /* Hero Bereich */
        .hero{
            position:relative;
            overflow:hidden;
            border-bottom:3px solid var(--red);
            background:
                linear-gradient(90deg, rgba(0,0,0,.84) 0%, rgba(0,0,0,.68) 42%, rgba(0,0,0,.48) 100%),
                image-set(url('../images/hero-ekule-bg.webp') type('image/webp'), url('../images/hero-ekule-bg.jpg') type('image/jpeg')) center/cover no-repeat;
        }
        .hero-inner{
            width:min(var(--max), calc(100% - 32px));
            margin:0 auto;
            padding:82px 0 78px;
            text-align:center;
        }
        .eyebrow{
            display:inline-flex;
            align-items:center;
            gap:10px;
            background:rgba(251,176,55,.12);
            border:1px solid rgba(251,176,55,.28);
            color:var(--gold-soft);
            padding:8px 14px;
            border-radius:999px;
            font-size:13px;
            font-weight:700;
            letter-spacing:.4px;
            text-transform:uppercase;
            margin-bottom:18px;
        }
        .hero h1{
            font-size:clamp(34px, 5vw, 54px);
            line-height:1.05;
            color:var(--white);
            margin-bottom:20px;
            font-weight:800;
            text-shadow:0 3px 14px rgba(0,0,0,.45);
        }
        .hero h1 span{color:var(--gold);}
        .hero-lead{
            font-size:18px;
            color:#ececec;
            max-width:800px;
            margin:0 auto;
        }

        /* Hauptbereich & Kalender-Einbettung */
        main{padding:60px 0 70px;}
        .section-title{
            font-size:34px;
            color:var(--white);
            line-height:1.15;
            margin-bottom:12px;
            text-align:center;
        }
        .section-title span{color:var(--gold);}
        .section-intro{
            color:var(--muted);
            font-size:17px;
            max-width:820px;
            margin:0 auto 40px auto;
            text-align:center;
        }

        /* Responsive Google Calendar Container */
        .calendar-container {
            background: linear-gradient(180deg, var(--card), var(--card-2));
            border: 1px solid var(--border);
            border-radius: var(--radius);
            padding: 24px;
            box-shadow: var(--shadow);
            margin-bottom: 40px;
        }

        /* Der Gummiband-Rahmen, der das Handy-Problem löst! */
        .calendar-wrapper {
            position: relative;
            padding-bottom: 75%; /* Aspect Ratio für PC und Tablet */
            height: 0;
            overflow: hidden;
            border-radius: 8px;
            background: #ffffff; /* Weißer Hintergrund, da der Kalender meist weiß ist */
        }
        
        /* Sorgt dafür, dass der Kalender auf Handys höher wird und scrollbar bleibt */
        @media (max-width: 680px) {
            .calendar-wrapper {
                padding-bottom: 130%; /* Mehr Höhe auf dem Handy */
            }
        }

        .calendar-wrapper iframe {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%; /* HIER IST DIE MAGIE: Immer 100% Breite statt starr 750px! */
            height: 100%;
            border: 0;
        }

        .notice{
            display:flex;
            flex-direction: column;
            align-items: center;
            padding:40px 24px;
            border:1px solid var(--border);
            color:var(--white);
            border-radius:var(--radius);
            background:linear-gradient(180deg, var(--card), var(--card-2));
            box-shadow: var(--shadow);
            text-align: center;
            margin-top: 20px;
        }
        .notice h3 {
            color: var(--white);
            font-size: 32px;
            margin-bottom: 15px;
        }
        .notice p {
            font-size: 16px;
            color: var(--muted);
            margin-bottom: 25px;
            max-width: 700px;
        }
        .btn{
            display:inline-flex;
            align-items:center;
            justify-content:center;
            gap:10px;
            min-height:56px;
            padding:15px 30px;
            border-radius:12px;
            text-decoration:none;
            font-weight:800;
            font-size:18px;
            transition:transform .18s ease, background .18s ease;
            background:var(--gold);
            color:#111;
        }
        .btn:hover{transform:translateY(-2px); background:#ffc04f;}

        /* Footer */
        footer{
            background:#090909;
            border-top:1px solid rgba(255,255,255,.06);
            padding:32px 0;
            margin-top:18px;
        }
        .footer-inner{width:min(var(--max), calc(100% - 32px));margin:0 auto;text-align:center;}
        .footer-inner p{margin:8px 0;color:#9d9d9d;font-size:14px;}
        .footer-inner a{color:var(--gold);text-decoration:none;font-weight:700;}

        @media (max-width: 1080px){
            .header-inner{flex-direction:column;align-items:flex-start;}
            nav ul{justify-content:flex-start;}
        }
        @media (max-width: 680px){
            .brand img{width:170px;}
            .brand-title{font-size:24px;}
            .hero-inner{padding:68px 0 64px;}
            .hero h1{font-size:34px;}
            .hero-lead{font-size:17px;}
            .section-title{font-size:28px;}
            nav a{font-size:16px;padding:10px 12px;min-height:44px;}
            .topbar-inner{font-size:13px;}
            .calendar-container { padding: 12px; }
            .notice h3{font-size: 28px;}
        }
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/montserrat-latin-v31.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/montserrat-latin-v31.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/montserrat-latin-v31.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/montserrat-latin-v31.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/montserrat-latin-v31.woff2') format('woff2');}


/* Technische Reparaturen ohne Aenderung der Desktop-Designidentitaet. */
:focus-visible{outline:3px solid #7fb6ff;outline-offset:3px;}
.skip-link{position:fixed;left:12px;top:-100px;z-index:10000;background:#fff;color:#111;padding:10px 14px;border-radius:8px;font-weight:800;text-decoration:none;}
.skip-link:focus{top:12px;}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
.external-consent{min-height:420px;display:grid;place-items:center;padding:28px;text-align:center;background:#f4f4f4;color:#222;border:1px solid #777;}
.external-consent-inner{max-width:620px;}
.external-consent h3{margin-bottom:10px;color:#111;}
.external-consent p{margin-bottom:18px;color:#444;}
.external-consent .btn{display:inline-flex;width:auto;}
.external-widget-note{display:block;margin:12px 0;color:#adadad;font-size:14px;}
.form-note{margin:0 0 18px;color:#adadad;font-size:13px;line-height:1.55;}
.form-note a{color:#ffd17a;}
.center-buttons{justify-content:center;}
.lightbox-close{border:0;background:transparent;font:inherit;line-height:1;cursor:pointer;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important;}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}}
@media (max-width:680px){header{position:static;}nav{width:100%;}nav ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}nav li,nav a{width:100%;}.topbar-inner{align-items:flex-start;}.external-consent{min-height:360px;padding:20px;}}
