:root {
            --bg: #050a11;
            --bg-soft: #0a1622;
            --bg-card: rgba(255, 255, 255, 0.072);
            --bg-card-2: rgba(255, 255, 255, 0.118);
            --text: #f6fbff;
            --muted: #b7c8d5;
            --primary: #16f37a;
            --primary-2: #009cff;
            --accent: #1bd8ff;
            --warning: #ffd44d;
            --violet: #6b7df5;
            --border: rgba(255,255,255,0.14);
            --border-strong: rgba(27,216,255,0.36);
            --shadow: 0 30px 95px rgba(0,0,0,0.54);
            --radius: 28px;
        }

        * { box-sizing: border-box; margin: 0; padding: 0; }
        html { scroll-behavior: smooth; }
        body {
            font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
            color: var(--text);
            background:
                radial-gradient(circle at 8% 10%, rgba(22,243,122,0.18), transparent 28%),
                radial-gradient(circle at 88% 12%, rgba(27,216,255,0.20), transparent 30%),
                radial-gradient(circle at 55% 78%, rgba(255,212,77,0.08), transparent 34%),
                linear-gradient(135deg, #03070c 0%, #07111c 42%, #081b28 100%);
            line-height: 1.62;
            overflow-x: hidden;
        }

        body::before {
            content: "";
            position: fixed;
            inset: 0;
            pointer-events: none;
            background-image:
                linear-gradient(rgba(255,255,255,0.045) 1px, transparent 1px),
                linear-gradient(90deg, rgba(255,255,255,0.045) 1px, transparent 1px);
            background-size: 58px 58px;
            mask-image: linear-gradient(to bottom, rgba(0,0,0,0.95), transparent 84%);
            z-index: -3;
        }

        body::after {
            content: "";
            position: fixed;
            inset: -25%;
            pointer-events: none;
            background:
                conic-gradient(from 120deg at 50% 50%, transparent, rgba(22,243,122,0.085), transparent, rgba(27,216,255,0.075), transparent);
            animation: aurora 18s linear infinite;
            z-index: -4;
        }

        @keyframes aurora {
            to { transform: rotate(360deg); }
        }

        a { color: inherit; text-decoration: none; }
        button { font: inherit; }
        a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid rgba(27,216,255,.44); outline-offset: 4px; }
        .container { width: min(1200px, calc(100% - 40px)); margin: 0 auto; }
        .section { padding: 92px 0; position: relative; }
        .section.compact { padding: 66px 0; }

        .noise {
            position: fixed;
            inset: 0;
            pointer-events: none;
            opacity: 0.035;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
            z-index: 1000;
        }

        header {
            position: sticky;
            top: 0;
            z-index: 100;
            background: rgba(3, 8, 14, 0.78);
            border-bottom: 1px solid var(--border);
            backdrop-filter: blur(20px);
        }

        .navbar {
            min-height: 78px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 26px;
        }

        .brand {
            display: flex;
            align-items: center;
            gap: 13px;
            font-weight: 900;
            letter-spacing: -0.05em;
            white-space: nowrap;
        }

        .brand-mark {
            width: 47px;
            height: 47px;
            border-radius: 17px;
            display: grid;
            place-items: center;
            color: #031008;
            background: linear-gradient(135deg, var(--primary), var(--accent));
            box-shadow: 0 18px 46px rgba(22,243,122,0.24), 0 0 34px rgba(27,216,255,0.12);
            position: relative;
            overflow: hidden;
        }

        .brand-mark::before {
            content: "";
            position: absolute;
            width: 80px;
            height: 18px;
            background: rgba(255,255,255,0.38);
            transform: rotate(-28deg) translateX(-40px);
            animation: shine 5s ease-in-out infinite;
        }

        @keyframes shine {
            0%, 58% { transform: rotate(-28deg) translateX(-65px); }
            76%, 100% { transform: rotate(-28deg) translateX(65px); }
        }

        .brand-mark span { position: relative; font-weight: 950; font-size: 1.12rem; }
        .brand small { display:block; color: var(--muted); letter-spacing: 0; font-weight: 700; font-size: .72rem; margin-top: -4px; }

        nav ul { display: flex; align-items: center; gap: 6px; list-style: none; }
        nav li { position: relative; }
        nav a, .nav-trigger {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 10px 14px;
            border-radius: 999px;
            color: #dcecff;
            font-weight: 750;
            border: 1px solid transparent;
            transition: .22s ease;
            cursor: pointer;
        }
        nav a:hover, .dropdown:hover .nav-trigger, .dropdown:focus-within .nav-trigger, .dropdown.open .nav-trigger {
            background: rgba(255,255,255,.09);
            border-color: var(--border);
            color: #fff;
        }
        .nav-trigger::after { content: "⌄"; color: var(--accent); font-size: .96rem; transition: transform .2s ease; }
        .dropdown:hover .nav-trigger::after, .dropdown:focus-within .nav-trigger::after, .dropdown.open .nav-trigger::after { transform: rotate(180deg); }
        .dropdown { --dropdown-width: 325px; }
        .dropdown.info-dropdown { --dropdown-width: 275px; }
        .dropdown::after {
            content: "";
            position: absolute;
            left: 0;
            top: 100%;
            width: var(--dropdown-width);
            height: 14px;
            display: none;
            z-index: 38;
        }
        .dropdown:hover::after, .dropdown:focus-within::after, .dropdown.open::after { display: block; }
        .dropdown-menu {
            position: absolute;
            top: calc(100% + 8px);
            left: 0;
            min-width: var(--dropdown-width, 325px);
            padding: 10px;
            border-radius: 22px;
            border: 1px solid var(--border);
            background: rgba(7, 20, 37, .96);
            box-shadow: var(--shadow);
            backdrop-filter: blur(22px);
            opacity: 0;
            pointer-events: none;
            transform: translateY(10px) scale(.98);
            transition: .2s ease;
            z-index: 40;
        }
        .dropdown:hover .dropdown-menu, .dropdown:focus-within .dropdown-menu, .dropdown.open .dropdown-menu {
            opacity: 1;
            pointer-events: auto;
            transform: translateY(0) scale(1);
        }
        .dropdown-menu a {
            width: 100%;
            justify-content: flex-start;
            align-items: flex-start;
            border-radius: 16px;
            padding: 14px;
            display: grid;
            gap: 4px;
        }
        .dropdown-menu small { color: var(--muted); font-weight: 650; line-height: 1.35; }
        .nav-cta {
            background: linear-gradient(135deg, var(--primary), var(--accent));
            color: #031008 !important;
            box-shadow: 0 16px 34px rgba(22,243,122,.20), 0 0 30px rgba(27,216,255,.10);
        }
        .nav-auth {
            border-color: rgba(255,255,255,.12);
            background: rgba(255,255,255,.055);
        }
        .nav-auth:hover {
            border-color: rgba(27,216,255,.34);
            background: rgba(27,216,255,.08);
        }
        .nav-register {
            background: linear-gradient(135deg, var(--primary), var(--accent));
            color: #031008 !important;
            box-shadow: 0 16px 34px rgba(22,243,122,.20), 0 0 30px rgba(27,216,255,.10);
        }
        .nav-register:hover {
            background: linear-gradient(135deg, var(--accent), var(--primary));
            border-color: transparent;
            color: #031008 !important;
        }
        .menu-toggle { display:none; background: transparent; color: #fff; border:1px solid var(--border); border-radius: 14px; padding: 9px 11px; }

        .hero { padding: 104px 0 74px; }
        .hero-grid {
            display: grid;
            grid-template-columns: 1.03fr .97fr;
            gap: 48px;
            align-items: center;
        }
        .eyebrow {
            display:inline-flex;
            align-items:center;
            gap:10px;
            padding:8px 14px;
            border:1px solid var(--border);
            background: rgba(255,255,255,.07);
            border-radius:999px;
            font-weight:850;
            color:#e6fbff;
            margin-bottom: 22px;
        }
        .pulse {
            width: 10px; height: 10px; border-radius:50%;
            background: var(--accent);
            box-shadow:0 0 0 8px rgba(22,243,122,.14);
            animation: pulse 2s ease-in-out infinite;
        }
        @keyframes pulse { 50% { box-shadow:0 0 0 13px rgba(22,243,122,.055); } }
        h1 {
            font-size: clamp(3rem, 7vw, 6.6rem);
            line-height: .9;
            letter-spacing: -.085em;
            margin-bottom: 25px;
        }
        .gradient-text {
            background: linear-gradient(135deg, #fff 0%, #d7faff 42%, #74ffb1 72%, #fff 100%);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
            background-size: 220% auto;
            animation: gradientMove 7s ease-in-out infinite alternate;
        }
        @keyframes gradientMove { to { background-position: 100% center; } }
        .lead {
            color: #c2d4e7;
            font-size: clamp(1.08rem, 2vw, 1.34rem);
            max-width: 690px;
            margin-bottom: 31px;
        }
        .hero-actions { display:flex; flex-wrap:wrap; gap:14px; margin-bottom: 32px; }
        .btn {
            display:inline-flex;
            align-items:center;
            justify-content:center;
            gap:10px;
            border-radius: 999px;
            padding: 14px 20px;
            border: 1px solid var(--border);
            background: rgba(255,255,255,.08);
            color: #fff;
            font-weight: 850;
            transition: .22s ease;
        }
        .btn:hover { transform: translateY(-2px); background: rgba(255,255,255,.13); border-color: var(--border-strong); }
        .btn.primary:hover { box-shadow: 0 24px 52px rgba(22,243,122,.22), 0 18px 42px rgba(27,216,255,.18); }
        .btn.primary { background: linear-gradient(135deg, var(--primary), var(--accent)); color: #031008; border:0; box-shadow: 0 20px 45px rgba(22,243,122,.18), 0 0 30px rgba(27,216,255,.10); }
        .trust-row { display:flex; flex-wrap:wrap; gap:10px; color: var(--muted); font-weight: 700; }
        .trust-row span { border:1px solid var(--border); border-radius:999px; padding:8px 12px; background: rgba(255,255,255,.05); }

        .visual-wrap { position:relative; min-height: 540px; }
        .orb {
            position:absolute;
            border-radius:50%;
            filter: blur(1px);
            opacity:.95;
        }
        .orb.one { width:180px; height:180px; right:10%; top:0; background: radial-gradient(circle, rgba(22,243,122,.34), transparent 68%); animation: float 6.5s ease-in-out infinite; }
        .orb.two { width:220px; height:220px; left:3%; bottom:10%; background: radial-gradient(circle, rgba(27,216,255,.28), transparent 68%); animation: float 8s ease-in-out infinite reverse; }
        @keyframes float { 50% { transform: translateY(-18px) translateX(8px); } }

        .dashboard {
            position: relative;
            border: 1px solid var(--border);
            border-radius: 34px;
            background: linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.055));
            box-shadow: var(--shadow);
            padding: 18px;
            overflow: hidden;
            transform: perspective(1000px) rotateY(-7deg) rotateX(4deg);
        }
        .dashboard::before {
            content:"";
            position:absolute; inset:-1px;
            background: linear-gradient(120deg, transparent, rgba(22,243,122,.18), transparent, rgba(27,216,255,.16), transparent);
            opacity:.8;
            animation: scan 7s linear infinite;
        }
        @keyframes scan { to { transform: translateX(38%); } }
        .window { position:relative; border-radius: 24px; background: rgba(3,8,14,.86); border:1px solid var(--border); overflow:hidden; }
        .window-top { height: 48px; display:flex; align-items:center; justify-content:space-between; padding:0 16px; border-bottom:1px solid var(--border); background: rgba(255,255,255,.045); }
        .dots { display:flex; gap:7px; }
        .dots span { width:10px; height:10px; border-radius:50%; background: rgba(255,255,255,.28); }
        .status-pill { color:#031008; background: var(--primary); border-radius:999px; padding:5px 10px; font-weight:900; font-size:.78rem; box-shadow: 0 0 20px rgba(22,243,122,.20); }
        .window-body { padding: 20px; display:grid; gap:15px; }
        .metric-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 12px; }
        .metric { border:1px solid var(--border); border-radius: 20px; padding: 16px; background: rgba(255,255,255,.06); min-height:108px; }
        .metric small { color:var(--muted); font-weight:800; }
        .metric strong { display:block; font-size:1.75rem; line-height:1.1; letter-spacing:-.04em; margin-top:8px; }
        .metric .bar { height: 7px; border-radius:999px; background: rgba(255,255,255,.11); overflow:hidden; margin-top:15px; }
        .metric .bar i { display:block; height:100%; border-radius:inherit; background: linear-gradient(90deg, var(--primary), var(--accent)); animation: grow 2.4s ease both; }
        @keyframes grow { from { width:0; } }
        .process-card { border:1px solid var(--border); border-radius: 22px; padding:16px; background: rgba(255,255,255,.06); }
        .process-card h3 { font-size:1rem; margin-bottom: 12px; }
        .flow { display:grid; gap:9px; }
        .flow span { display:flex; align-items:center; justify-content:space-between; gap:10px; color:#d7e8fb; padding:10px 12px; border-radius:14px; background: rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.08); font-weight:700; }
        .flow em { color:var(--accent); font-style:normal; }
        .floating-chip { position:absolute; border:1px solid var(--border); background:rgba(7,20,37,.82); backdrop-filter: blur(15px); border-radius:999px; padding:10px 14px; font-weight:850; box-shadow: 0 18px 40px rgba(0,0,0,.26); }
        .floating-chip.a { left:-4%; top:16%; animation: float 6.8s ease-in-out infinite; }
        .floating-chip.b { right:-2%; bottom:18%; animation: float 7.3s ease-in-out infinite reverse; }

        .section-head { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:34px; }
        .kicker { color: var(--accent); font-weight:900; letter-spacing:.12em; text-transform:uppercase; font-size:.8rem; margin-bottom: 10px; }
        h2 { font-size: clamp(2.1rem, 4.4vw, 4.2rem); line-height: .98; letter-spacing:-.065em; }
        .section-head p { color:var(--muted); max-width: 520px; font-size:1.06rem; }

        .cards { display:grid; grid-template-columns: repeat(3, 1fr); gap:18px; }
        .card {
            position:relative;
            border:1px solid var(--border);
            border-radius: var(--radius);
            padding: 26px;
            background: linear-gradient(145deg, rgba(255,255,255,.09), rgba(255,255,255,.047));
            box-shadow: 0 16px 46px rgba(0,0,0,.18);
            overflow:hidden;
            transition:.24s ease;
        }
        .card::before {
            content:""; position:absolute; inset:0; pointer-events:none;
            background: radial-gradient(circle at var(--mx, 50%) var(--my, 0%), rgba(22,243,122,.15), transparent 32%);
            opacity:0; transition:.24s ease;
        }
        .card:hover { transform: translateY(-6px); border-color: var(--border-strong); }
        .card:hover::before { opacity:1; }
        .icon {
            width:50px; height:50px; border-radius:18px;
            display:grid; place-items:center;
            background: linear-gradient(135deg, rgba(27,216,255,.18), rgba(22,243,122,.18));
            border:1px solid var(--border);
            margin-bottom: 19px;
            font-size:1.35rem;
        }
        .card h3 { font-size:1.25rem; letter-spacing:-.03em; margin-bottom:10px; }
        .card p { color:var(--muted); }
        .card ul { list-style:none; display:grid; gap:9px; margin-top:18px; color:#d8e8f8; }
        .card li { display:flex; gap:9px; align-items:flex-start; }
        .card li::before { content:"✓"; color:var(--accent); font-weight:900; }

        .municipal-band {
            border:1px solid var(--border);
            border-radius: 34px;
            background:
                linear-gradient(135deg, rgba(27,216,255,.12), rgba(22,243,122,.10)),
                rgba(255,255,255,.055);
            padding: 34px;
            display:grid;
            grid-template-columns: .85fr 1.15fr;
            gap: 26px;
            align-items:center;
            overflow:hidden;
            position:relative;
        }
        .municipal-band::after {
            content:"KOMMUNAL";
            position:absolute;
            right:-24px; bottom:-38px;
            font-size:7rem; font-weight:950; letter-spacing:-.08em;
            color:rgba(255,255,255,.035);
        }
        .seal { width:120px; height:120px; border-radius:32px; background:rgba(255,255,255,.08); border:1px solid var(--border); display:grid; place-items:center; font-size:3rem; margin-bottom:18px; }
        .municipal-band p { color:var(--muted); }
        .municipal-grid { display:grid; grid-template-columns: repeat(2, 1fr); gap:12px; position:relative; z-index:1; }
        .mini { border:1px solid var(--border); border-radius:20px; padding:17px; background:rgba(5,13,25,.38); }
        .mini strong { display:block; margin-bottom:4px; }
        .mini span { color:var(--muted); font-size:.94rem; }

        .solutions-showcase { display:grid; grid-template-columns: .9fr 1.1fr; gap:22px; align-items:stretch; }
        .solution-feature { min-height: 430px; display:flex; flex-direction:column; justify-content:space-between; }
        .tag { display:inline-flex; width:max-content; border:1px solid rgba(22,243,122,.38); color:#c8ffe1; background:rgba(22,243,122,.09); border-radius:999px; padding:7px 11px; font-weight:850; font-size:.85rem; }
        .solution-title { margin-top:18px; font-size:2.25rem; line-height:1; letter-spacing:-.055em; }
        .mock-list { display:grid; gap:12px; }
        .mock-row { display:flex; align-items:center; justify-content:space-between; border:1px solid var(--border); border-radius:18px; padding:14px 15px; background:rgba(255,255,255,.05); }
        .mock-row small { color:var(--muted); font-weight:750; }
        .mock-row b { color:var(--accent); }

        .timeline { display:grid; gap:16px; counter-reset: step; }
        .timeline-item { display:grid; grid-template-columns: 72px 1fr; gap:18px; align-items:start; }
        .timeline-item::before {
            counter-increment: step;
            content: counter(step, decimal-leading-zero);
            height:54px; border-radius:18px;
            display:grid; place-items:center;
            background:linear-gradient(135deg, var(--primary), var(--accent));
            color:#031008; font-weight:950;
        }
        .timeline-content { border:1px solid var(--border); border-radius:24px; padding:22px; background:rgba(255,255,255,.055); }
        .timeline-content p { color:var(--muted); margin-top:5px; }

        .cta {
            border:1px solid var(--border);
            border-radius: 40px;
            padding: 48px;
            background:
                radial-gradient(circle at 18% 10%, rgba(22,243,122,.18), transparent 30%),
                radial-gradient(circle at 86% 88%, rgba(27,216,255,.17), transparent 34%),
                linear-gradient(145deg, rgba(255,255,255,.1), rgba(255,255,255,.05));
            text-align:center;
            box-shadow: var(--shadow);
        }
        .cta p { color:var(--muted); max-width:760px; margin:18px auto 28px; font-size:1.12rem; }

        footer { border-top:1px solid var(--border); padding:34px 0; color:var(--muted); background:rgba(0,0,0,.12); }
        .footer-grid { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
        .footer-links { display:flex; gap:14px; flex-wrap:wrap; }
        .footer-links a { color:#dcecff; font-weight:750; }
        .footer-links a:hover, .back-link:hover { color:#fff; }

        .reveal { opacity:0; transform: translateY(22px); transition: .7s ease; }
        .reveal.visible { opacity:1; transform: translateY(0); }

        @media (max-width: 980px) {
            .menu-toggle { display:inline-flex; }
            nav { position:absolute; left:20px; right:20px; top:86px; border:1px solid var(--border); border-radius:24px; background:rgba(3,8,14,.98); padding:12px; box-shadow:var(--shadow); display:none; }
            nav.open { display:block; }
            nav ul { display:grid; gap:6px; }
            nav a, .nav-trigger { width:100%; justify-content:space-between; border-radius:16px; }
            .dropdown::after { display:none !important; }
            .dropdown-menu { position:static; opacity:1; pointer-events:auto; transform:none; min-width:0; width:100%; box-shadow:none; background:rgba(255,255,255,.04); margin:4px 0 8px; display:block; }
            .hero-grid, .solutions-showcase, .municipal-band { grid-template-columns:1fr; }
            .visual-wrap { min-height:auto; }
            .dashboard { transform:none; }
            .floating-chip { display:none; }
            .cards { grid-template-columns:1fr; }
            .section-head { display:grid; }
        }
        @media (max-width: 640px) {
            .container { width:min(100% - 28px, 1200px); }
            .hero { padding:70px 0 45px; }
            .section { padding:64px 0; }
            .metric-grid, .municipal-grid { grid-template-columns:1fr; }
            .cta, .municipal-band, .card { padding:22px; border-radius:24px; }
            .timeline-item { grid-template-columns:1fr; }
            .brand small { display:none; }
        }

        .subpage-hero { padding: 82px 0 32px; }
        .subpage-shell { display: grid; grid-template-columns: .86fr 1.14fr; gap: 26px; align-items: start; }
        .subpage-card { border:1px solid var(--border); border-radius: 34px; padding: 34px; background: linear-gradient(145deg, rgba(255,255,255,.095), rgba(255,255,255,.048)); box-shadow: 0 18px 52px rgba(0,0,0,.2); }
        .content-card { border:1px solid var(--border); border-radius: 34px; padding: 34px; background: rgba(255,255,255,.055); box-shadow: 0 18px 52px rgba(0,0,0,.18); }
        .content-card h2 { font-size: clamp(1.65rem, 3vw, 2.45rem); margin-top: 30px; margin-bottom: 12px; letter-spacing: -.045em; }
        .content-card h2:first-child { margin-top: 0; }
        .content-card h3 { font-size: 1.12rem; margin-top: 22px; margin-bottom: 8px; }
        .content-card p, .content-card li { color: var(--muted); }
        .content-card ul { margin-left: 18px; display: grid; gap: 8px; }
        .legal-box { border:1px solid var(--border); border-radius: 22px; background: rgba(5,13,25,.38); padding: 18px; margin: 18px 0; color: #d8e8f8; }
        .legal-box strong { color: var(--text); }
        .hint { color: var(--warning); font-weight: 800; }
        .form-grid { display:grid; gap: 16px; }
        .form-row { display:grid; grid-template-columns: 1fr 1fr; gap:16px; }
        label { display:grid; gap:8px; color:#dcecff; font-weight:800; }
        input, textarea { width:100%; border:1px solid var(--border); background:rgba(255,255,255,.07); color:#fff; border-radius:18px; padding:14px 15px; outline:none; transition:.2s ease; font:inherit; }
        textarea { min-height: 170px; resize: vertical; }
        input:focus, textarea:focus { border-color: rgba(27,216,255,.58); box-shadow: 0 0 0 4px rgba(22,243,122,.08); background:rgba(255,255,255,.095); }
        .checkbox-label { display:flex; align-items:flex-start; gap:10px; color:var(--muted); font-weight:700; }
        .checkbox-label input { width:auto; margin-top:5px; }
        .notice { border:1px solid var(--border); border-radius:20px; padding:15px 16px; margin-bottom:18px; font-weight:750; }
        .notice.success { background:rgba(22,243,122,.09); border-color:rgba(22,243,122,.32); color:#c8ffe1; }
        .notice.error { background:rgba(255,99,99,.09); border-color:rgba(255,99,99,.32); color:#ffd8d8; }
        .visually-hidden-field { position:absolute !important; left:-9999px !important; opacity:0 !important; height:0 !important; overflow:hidden !important; }
        .back-link { display:inline-flex; margin-top:22px; color:#bffced; font-weight:850; }
        @media (max-width: 980px) { .subpage-shell, .form-row { grid-template-columns:1fr; } }


        /* Cookie-Hinweis */
        .cookie-consent {
            position: fixed;
            left: 50%;
            bottom: 24px;
            width: min(760px, calc(100% - 32px));
            transform: translate(-50%, 18px);
            z-index: 1200;
            border: 1px solid var(--border-strong);
            border-radius: 26px;
            background:
                radial-gradient(circle at 0% 0%, rgba(22,243,122,.13), transparent 35%),
                linear-gradient(145deg, rgba(3,8,14,.98), rgba(7,20,31,.96));
            box-shadow: 0 28px 90px rgba(0,0,0,.48);
            backdrop-filter: blur(24px);
            padding: 20px;
            display: none;
            gap: 16px;
        }
        .cookie-consent.visible { display: grid; animation: cookieSlide .28s ease forwards; }
        @keyframes cookieSlide { to { transform: translate(-50%, 0); } }
        .cookie-consent h2 { font-size: 1.05rem; margin: 0 0 6px; letter-spacing: -.02em; }
        .cookie-consent p { color: var(--muted); margin: 0; font-size: .94rem; line-height: 1.55; }
        .cookie-consent a, .cookie-consent strong { color: #bffced; font-weight: 850; }
        .cookie-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
        .cookie-btn {
            border: 1px solid var(--border);
            border-radius: 999px;
            padding: 10px 14px;
            cursor: pointer;
            font-weight: 850;
            color: #dcecff;
            background: rgba(255,255,255,.075);
            transition: .2s ease;
        }
        .cookie-btn:hover { border-color: var(--border-strong); background: rgba(255,255,255,.11); transform: translateY(-1px); }
        .cookie-btn.primary { color: #031008; border-color: transparent; background: linear-gradient(135deg, var(--primary), var(--accent)); }
        @media (max-width: 640px) {
            .cookie-consent { bottom: 14px; padding: 16px; border-radius: 22px; }
            .cookie-actions { display: grid; grid-template-columns: 1fr; }
            .cookie-btn { width: 100%; }
        }

        /* Qualitätsverbesserungen: gemeinsame Assets, bessere Lesbarkeit, Barrierefreiheit und reduzierte Bewegung */
        body { isolation: isolate; min-height: 100vh; }
        .noise { z-index: -2; }
        .skip-link {
            position: fixed;
            left: 16px;
            top: 16px;
            z-index: 1300;
            transform: translateY(-140%);
            background: #ffffff;
            color: #031008;
            border-radius: 999px;
            padding: 10px 14px;
            font-weight: 900;
            box-shadow: 0 16px 44px rgba(0,0,0,.32);
            transition: transform .2s ease;
        }
        .skip-link:focus { transform: translateY(0); }
        header, .dropdown-menu, .floating-chip, .cookie-consent { -webkit-backdrop-filter: blur(20px); }
        .brand-mark { flex: 0 0 auto; }
        .brand-mark span { line-height: 1; }
        .nav-trigger { background: transparent; }
        .page-datenschutz .subpage-shell { grid-template-columns: 1fr; }
        .page-datenschutz .subpage-card,
        .page-datenschutz .content-card {
            width: 100%;
            border-left-color: var(--border-strong);
            border-right-color: var(--border-strong);
        }
        .content-card { overflow-wrap: anywhere; }
        .content-card .meta { margin-top: 26px; color: #d8e8f8; font-weight: 800; }
        .content-card a { color: #bffced; font-weight: 850; }
        .content-card a:hover { color: #fff; }
        .homepage-promise { margin-top: -32px; }
        .promise-card strong { display:block; margin-bottom: 6px; font-size: 1.06rem; }
        .promise-card span { color: var(--muted); }
        .hero h1 { max-width: 780px; }
        .dashboard { will-change: transform; }
        input::placeholder, textarea::placeholder { color: rgba(220,236,255,.58); }
        input[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: rgba(255,99,99,.5); }
        .checkbox-label a { color: #bffced; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
        @media (max-width: 980px) {
            .dropdown.open .dropdown-menu { transform: none; }
            .homepage-promise { margin-top: 0; }
        }
        @media (max-width: 640px) {
            h1 { font-size: clamp(2.55rem, 15vw, 4rem); }
            .hero-actions .btn { width: 100%; }
            .solution-title { font-size: 1.95rem; }
            .subpage-hero { padding-top: 54px; }
            .subpage-card, .content-card { padding: 22px; border-radius: 24px; }
            .back-link { margin-top: 14px; }
        }
        @media (prefers-reduced-motion: reduce) {
            *, *::before, *::after {
                animation-duration: .01ms !important;
                animation-iteration-count: 1 !important;
                scroll-behavior: auto !important;
                transition-duration: .01ms !important;
            }
            .reveal { opacity: 1; transform: none; }
            .dashboard, .card:hover, .btn:hover { transform: none; }
        }

/* Helles Weiß-/Grau-Design – Anpassung nach Nutzerwunsch */
:root {
    --bg: #ffffff;
    --bg-soft: #f7f8fa;
    --bg-card: #ffffff;
    --bg-card-2: #f2f4f7;
    --text: #17202a;
    --muted: #65717f;
    --primary: #4f5863;
    --primary-2: #747d88;
    --accent: #8d96a1;
    --warning: #946200;
    --violet: #747d88;
    --border: rgba(31, 41, 55, 0.13);
    --border-strong: rgba(79, 88, 99, 0.34);
    --shadow: 0 24px 70px rgba(15, 23, 42, 0.12);
}

body {
    color: var(--text);
    background:
        radial-gradient(circle at 8% 8%, rgba(148, 163, 184, 0.18), transparent 30%),
        radial-gradient(circle at 90% 10%, rgba(226, 232, 240, 0.90), transparent 34%),
        linear-gradient(180deg, #ffffff 0%, #f9fafb 48%, #f3f5f7 100%);
}

body::before {
    background-image:
        linear-gradient(rgba(31, 41, 55, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(31, 41, 55, 0.035) 1px, transparent 1px);
    mask-image: linear-gradient(to bottom, rgba(0,0,0,0.62), transparent 78%);
}
body::after { display: none; }
.noise { opacity: 0.018; }

header {
    background: rgba(255, 255, 255, 0.86);
    border-bottom-color: rgba(31, 41, 55, 0.10);
    box-shadow: 0 14px 36px rgba(15, 23, 42, 0.06);
}

.brand { color: var(--text); }
.brand small { color: var(--muted); }
.brand-mark {
    color: #ffffff;
    background: linear-gradient(135deg, #303741, #777f89 58%, #a9afb7);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.15);
}
.brand-mark::before { background: rgba(255,255,255,0.30); }

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
    outline-color: rgba(79, 88, 99, 0.34);
}

nav a, .nav-trigger {
    color: #26313d;
}
nav a:hover,
.dropdown:hover .nav-trigger,
.dropdown:focus-within .nav-trigger,
.dropdown.open .nav-trigger {
    background: #f0f2f4;
    border-color: rgba(31, 41, 55, 0.12);
    color: #111827;
}
.nav-trigger::after { color: #6b7280; }
.dropdown-menu {
    background: rgba(255, 255, 255, 0.98);
    border-color: rgba(31, 41, 55, 0.12);
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.13);
}
.dropdown-menu small { color: var(--muted); }
.nav-cta,
.nav-register,
.btn.primary,
.cookie-btn.primary,
.timeline-item::before {
    color: #ffffff !important;
    background: linear-gradient(135deg, #3f4752, #6f7782);
    border-color: transparent;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.16);
}
.nav-cta:hover,
.nav-register:hover,
.btn.primary:hover,
.cookie-btn.primary:hover {
    color: #ffffff !important;
    background: linear-gradient(135deg, #252c35, #59616c);
    box-shadow: 0 20px 44px rgba(15, 23, 42, 0.20);
}
.nav-auth,
.btn,
.cookie-btn {
    color: #26313d;
    background: linear-gradient(180deg, #ffffff, #eef1f4);
    border-color: rgba(31, 41, 55, 0.16);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.07);
}
.nav-auth:hover,
.btn:hover,
.cookie-btn:hover {
    color: #111827;
    background: linear-gradient(180deg, #f8fafc, #e4e7eb);
    border-color: rgba(31, 41, 55, 0.26);
}
.menu-toggle {
    color: #26313d;
    background: #ffffff;
    border-color: rgba(31, 41, 55, 0.16);
}

.eyebrow,
.trust-row span,
.process-card,
.metric,
.timeline-content,
.content-card,
.subpage-card,
.legal-box,
.cookie-consent,
.card,
.municipal-band,
.mini,
.mock-row,
.cta,
.seal {
    background: rgba(255, 255, 255, 0.88);
    border-color: var(--border);
    box-shadow: 0 16px 46px rgba(15, 23, 42, 0.08);
}
.eyebrow { color: #303741; }
.pulse {
    background: #6b7280;
    box-shadow: 0 0 0 8px rgba(107, 114, 128, .12);
}
@keyframes pulse { 50% { box-shadow: 0 0 0 13px rgba(107, 114, 128, .06); } }
.lead,
.section-head p,
.card p,
.card ul,
.municipal-band p,
.mini span,
.timeline-content p,
.content-card p,
.content-card li,
.cookie-consent p,
.promise-card span,
.mock-row small,
.checkbox-label {
    color: var(--muted);
}
.gradient-text {
    background: linear-gradient(135deg, #111827 0%, #4b5563 48%, #9ca3af 100%);
    -webkit-background-clip: text;
    background-clip: text;
}
.kicker,
.flow em,
.mock-row b,
.card li::before,
.back-link,
.content-card a,
.checkbox-label a,
.cookie-consent a,
.cookie-consent strong {
    color: #4f5863;
}
.content-card a:hover,
.footer-links a:hover,
.back-link:hover { color: #111827; }

.orb.one { background: radial-gradient(circle, rgba(156, 163, 175, .28), transparent 68%); }
.orb.two { background: radial-gradient(circle, rgba(203, 213, 225, .58), transparent 68%); }
.dashboard {
    background: linear-gradient(145deg, rgba(255,255,255,.95), rgba(242,244,247,.88));
    box-shadow: 0 28px 75px rgba(15, 23, 42, 0.14);
}
.dashboard::before {
    background: linear-gradient(120deg, transparent, rgba(148, 163, 184, .20), transparent, rgba(226, 232, 240, .35), transparent);
}
.window {
    background: #ffffff;
    border-color: rgba(31, 41, 55, 0.12);
}
.window-top {
    background: #f3f5f7;
    border-bottom-color: rgba(31, 41, 55, 0.10);
}
.dots span { background: #c5cad1; }
.status-pill {
    color: #ffffff;
    background: #4f5863;
    box-shadow: 0 10px 22px rgba(15, 23, 42, .12);
}
.metric .bar { background: #e5e7eb; }
.metric .bar i { background: linear-gradient(90deg, #3f4752, #9aa1aa); }
.flow span {
    color: #26313d;
    background: #f7f8fa;
    border-color: rgba(31, 41, 55, 0.10);
}
.floating-chip {
    color: #26313d;
    background: rgba(255,255,255,.90);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .10);
}
.card,
.subpage-card,
.content-card {
    background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(246,248,250,.92));
}
.card::before {
    background: radial-gradient(circle at var(--mx, 50%) var(--my, 0%), rgba(148, 163, 184, .18), transparent 34%);
}
.card:hover { border-color: var(--border-strong); }
.icon {
    background: linear-gradient(135deg, #f8fafc, #e5e7eb);
    border-color: rgba(31, 41, 55, 0.12);
}
.municipal-band {
    background:
        radial-gradient(circle at 10% 0%, rgba(226, 232, 240, .75), transparent 36%),
        linear-gradient(135deg, #ffffff, #f4f6f8);
}
.municipal-band::after { color: rgba(31, 41, 55, .045); }
.tag {
    color: #303741;
    background: #f0f2f4;
    border-color: rgba(31, 41, 55, 0.14);
}
.cta {
    background:
        radial-gradient(circle at 18% 10%, rgba(226,232,240,.95), transparent 30%),
        radial-gradient(circle at 86% 88%, rgba(243,244,246,.95), transparent 34%),
        linear-gradient(145deg, #ffffff, #f4f6f8);
}
footer {
    color: var(--muted);
    background: #ffffff;
    border-top-color: rgba(31, 41, 55, 0.10);
}
.footer-links a { color: #303741; }

label { color: #26313d; }
input,
textarea {
    color: #17202a;
    background: #ffffff;
    border-color: rgba(31, 41, 55, 0.14);
}
input::placeholder,
textarea::placeholder { color: rgba(101, 113, 127, .72); }
input:focus,
textarea:focus {
    border-color: rgba(79, 88, 99, .45);
    box-shadow: 0 0 0 4px rgba(79, 88, 99, .09);
    background: #ffffff;
}
.legal-box { color: #26313d; }
.content-card .meta { color: #303741; }
.hint { color: #7c4a03; }
.notice.success {
    background: rgba(34, 197, 94, .08);
    border-color: rgba(34, 197, 94, .22);
    color: #166534;
}
.notice.error {
    background: rgba(239, 68, 68, .08);
    border-color: rgba(239, 68, 68, .24);
    color: #991b1b;
}

.cookie-consent {
    background: rgba(255,255,255,.96);
    border-color: rgba(31, 41, 55, .16);
    box-shadow: 0 28px 78px rgba(15, 23, 42, .16);
}
.cookie-btn { cursor: pointer; }
.skip-link {
    background: #17202a;
    color: #ffffff;
}

@media (max-width: 980px) {
    nav {
        background: rgba(255,255,255,.98);
        box-shadow: 0 24px 60px rgba(15, 23, 42, 0.14);
    }
    .dropdown-menu { background: #f7f8fa; }
}

/* Feine Nachjustierung: leichter graublauer Akzent, dunklen Schatten oben links entfernen */
:root {
    --primary: #526b80;
    --primary-2: #6f8293;
    --accent: #8ea4b7;
    --violet: #6f8293;
    --border-strong: rgba(82, 107, 128, 0.34);
    --shadow: 0 24px 70px rgba(37, 54, 70, 0.10);
}

body {
    background:
        radial-gradient(circle at 90% 10%, rgba(142, 164, 183, 0.22), transparent 32%),
        radial-gradient(circle at 65% 100%, rgba(211, 222, 231, 0.45), transparent 36%),
        linear-gradient(180deg, #ffffff 0%, #fafbfc 48%, #f4f7f9 100%);
}

body::before {
    background-image: none;
    mask-image: none;
}

header {
    box-shadow: 0 12px 28px rgba(37, 54, 70, 0.045);
}

.brand-mark {
    background: linear-gradient(135deg, #405463, #6f8293 58%, #a9bac8);
    box-shadow: none;
}

.nav-cta,
.nav-register,
.btn.primary,
.cookie-btn.primary,
.timeline-item::before {
    background: linear-gradient(135deg, #526b80, #7f92a3);
    box-shadow: 0 14px 30px rgba(37, 54, 70, 0.13);
}

.nav-cta:hover,
.nav-register:hover,
.btn.primary:hover,
.cookie-btn.primary:hover {
    background: linear-gradient(135deg, #405463, #6f8293);
    box-shadow: 0 18px 38px rgba(37, 54, 70, 0.16);
}

.nav-auth:hover,
.btn:hover,
.cookie-btn:hover {
    border-color: rgba(82, 107, 128, 0.24);
}

.gradient-text {
    background: linear-gradient(135deg, #17202a 0%, #526b80 52%, #9cafbf 100%);
    -webkit-background-clip: text;
    background-clip: text;
}

.kicker,
.flow em,
.mock-row b,
.card li::before,
.back-link,
.content-card a,
.checkbox-label a,
.cookie-consent a,
.cookie-consent strong,
.nav-trigger::after {
    color: #526b80;
}

.pulse {
    background: #6f8293;
    box-shadow: 0 0 0 8px rgba(111, 130, 147, .12);
}

@keyframes pulse { 50% { box-shadow: 0 0 0 13px rgba(111, 130, 147, .06); } }

.orb.one { background: radial-gradient(circle, rgba(142, 164, 183, .24), transparent 68%); }
.orb.two { background: radial-gradient(circle, rgba(211, 222, 231, .52), transparent 68%); }
.metric .bar i { background: linear-gradient(90deg, #526b80, #a9bac8); }
.status-pill { background: #526b80; }
input:focus,
textarea:focus {
    border-color: rgba(82, 107, 128, .42);
    box-shadow: 0 0 0 4px rgba(82, 107, 128, .08);
}

/* Anpassung neuer Stand: dunkle Headlines und ruhiger Hintergrund ohne bewegte Linien */
.page-index .hero h1,
.page-index #promise-heading {
    color: #26313d;
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    -webkit-text-fill-color: #26313d;
    text-shadow: none;
}

body {
    background: linear-gradient(180deg, #ffffff 0%, #fbfcfd 50%, #f4f7f9 100%);
}

body::before,
body::after,
.noise,
.dashboard::before {
    display: none !important;
    content: none !important;
    background: none !important;
    animation: none !important;
}


/* Korrektur: diagonale farbige Linie im Dashboard-Bereich vollständig entfernen */
.page-index .dashboard {
    transform: none !important;
    background: linear-gradient(180deg, #ffffff 0%, #f7f9fb 100%) !important;
}
.page-index .dashboard::before {
    display: none !important;
    content: none !important;
    background: none !important;
    animation: none !important;
}
.page-index .window,
.page-index .metric,
.page-index .process-card {
    background: #ffffff !important;
}
		.image-wrapper {
  max-width: 1200px;
  margin: 0 auto;
}
		.hero-image {
  width: 100%;
  aspect-ratio: 16 / 5;
  object-fit: cover;
  display: block;
  border-radius: 24px;
}

/* Anmeldeseite Tourismusmeldung */
.nav-cta.active {
    box-shadow: 0 18px 38px rgba(37, 54, 70, 0.18);
}

.page-anmelden .auth-hero {
    padding-bottom: 34px;
}

.page-anmelden .auth-shell {
    grid-template-columns: .9fr 1.1fr;
}

.page-anmelden .auth-intro p {
    color: var(--muted);
    margin: 16px 0 18px;
}

.page-anmelden .auth-benefits {
    list-style: none;
    display: grid;
    gap: 10px;
    margin: 24px 0 0;
    padding: 0;
    color: var(--muted);
}

.page-anmelden .auth-benefits li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-weight: 750;
}

.page-anmelden .auth-benefits li::before {
    content: "✓";
    color: #526b80;
    font-weight: 900;
}

.page-anmelden .auth-card .tag,
.page-anmelden .auth-grid .tag {
    width: max-content;
    margin-bottom: 16px;
}

.page-anmelden .auth-form {
    margin-top: 22px;
}

.page-anmelden .auth-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-top: 4px;
}

.page-anmelden .auth-helper {
    margin: 0;
    font-weight: 800;
}

.page-anmelden .auth-section {
    padding-top: 18px;
}

.page-anmelden .auth-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 26px;
    align-items: start;
}

.page-anmelden textarea {
    min-height: 128px;
}

@media (max-width: 980px) {
    .page-anmelden .auth-shell,
    .page-anmelden .auth-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .page-anmelden .auth-actions .btn,
    .page-anmelden form .btn.primary {
        width: 100% !important;
        justify-content: center;
    }
}

/* Login-Ansicht: Anmeldeseite im Tourismusmeldung-Design */
.page-login {
    min-height: 100vh;
    background: linear-gradient(180deg, #ffffff 0%, #ffffff 25%, #ffffff 100%);
}

.page-login .login-page {
    min-height: calc(100vh - 156px);
    position: relative;
    display: grid;
    place-items: center;
    padding: 82px 20px 68px;
    overflow: hidden;
}

.page-login .login-background {
    display: none;
}

.page-login .login-panel {
    width: min(548px, 100%);
    position: relative;
    z-index: 1;
    display: grid;
    gap: 22px;
}

.page-login .login-brand {
    justify-self: center;
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: #17202a;
    font-weight: 900;
    letter-spacing: -0.04em;
}

.page-login .login-brand small {
    display: block;
    color: #65717f;
    font-size: .72rem;
    letter-spacing: 0;
    font-weight: 750;
    margin-top: -4px;
}

.page-login .login-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(31, 41, 55, 0.12);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 30px 80px rgba(37, 54, 70, 0.14);
    padding: clamp(26px, 5vw, 38px);
}

.page-login .login-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 7px;
    background: #8ea4b7;
}

.page-login .login-card .tag {
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #ffffff;
    background: #526b80;
    border: 0;
    border-radius: 999px;
    padding: 6px 12px;
    font-size: .78rem;
    font-weight: 900;
    box-shadow: 0 0 20px rgba(82, 107, 128, .14);
    margin-bottom: 18px;
}

.page-login .login-card h1 {
    font-size: clamp(2.35rem, 8vw, 3.35rem);
    line-height: .96;
    letter-spacing: -0.075em;
    color: #17202a;
    margin: 0 0 12px;
}

.page-login .login-lead {
    color: #65717f;
    font-size: 1.03rem;
    line-height: 1.58;
    margin: 0 0 24px;
}

.page-login .login-form {
    display: grid;
    gap: 11px;
}

.page-login .login-form label {
    color: #26313d;
    font-weight: 900;
    margin-top: 8px;
}

.page-login .login-form input {
    border-radius: 16px;
    min-height: 52px;
    padding: 13px 15px;
    color: #17202a;
    background: #ffffff;
    border: 1px solid rgba(82, 107, 128, 0.24);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.78);
}

.page-login .login-form input:focus {
    border-color: rgba(82, 107, 128, .52);
    box-shadow: 0 0 0 4px rgba(82, 107, 128, .09);
}

.page-login .login-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-top: 14px;
}

.page-login .login-actions .btn {
    min-height: 52px;
    padding-inline: 19px;
}

.page-login .login-divider {
    height: 1px;
    background: rgba(31, 41, 55, 0.12);
    margin: 22px 0 16px;
}

.page-login .login-forgot {
    display: flex;
    justify-content: center;
    color: #526b80;
    font-weight: 900;
}

.page-login .login-forgot:hover {
    color: #17202a;
}

.page-login .login-footerline {
    color: #65717f;
    text-align: center;
    font-size: .95rem;
    margin: 36px 0 0;
}

@media (max-width: 640px) {
    .page-login .login-page {
        min-height: calc(100vh - 150px);
        padding: 52px 16px 44px;
        place-items: start center;
    }

    .page-login .login-brand {
        justify-self: start;
    }

    .page-login .login-actions .btn {
        width: 100%;
    }
}
