:root{--bg:#0f0b1f;--card:#1b1533;--card2:#241c44;--text:#f4f1ff;--muted:#b7aed6;--accent:#7c5cff;--ok:#3ecf8e} *{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6} a{color:#b9a8ff} nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;background:rgba(15,11,31,.9);backdrop-filter:blur(8px);border-bottom:1px solid #2c2450} nav .logo{font-weight:800;color:var(--text);text-decoration:none} nav ul{list-style:none;display:flex;gap:6px;margin:0;padding:0;flex-wrap:wrap} nav ul a{display:block;padding:6px 12px;border-radius:999px;color:var(--muted);text-decoration:none} nav ul a.active,nav ul a:hover{background:var(--card2);color:var(--text)} .menu-btn{display:none;background:none;border:1px solid #3a3066;color:var(--text);border-radius:8px;padding:6px 10px;font-size:1rem} @media (max-width:640px){.menu-btn{display:block}nav ul{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--bg);padding:10px 20px;border-bottom:1px solid #2c2450}nav ul.open{display:flex}} header.hero{padding:72px 20px 56px;text-align:center;background:radial-gradient(circle at 50% 0,#3a2a85 0,var(--bg) 70%)} h1{font-size:clamp(2rem,6vw,3.2rem);margin:0 0 12px;line-height:1.2} .hero p{color:var(--muted);max-width:600px;margin:0 auto 28px} .btn{display:inline-block;background:var(--accent);color:#fff;padding:12px 24px;border-radius:999px;text-decoration:none;font-weight:600;border:0;cursor:pointer;font-size:1rem} .btn.ghost{background:transparent;border:1px solid var(--accent);color:var(--text)} .hero .btn{margin:4px} .wrap{max-width:1000px;margin:0 auto;padding:32px 20px} h2{font-size:1.6rem;margin:0 0 16px} .grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))} .card{background:var(--card);border-radius:16px;padding:22px} .card h3{margin:0 0 6px;font-size:1.1rem} .card p{margin:0;color:var(--muted);font-size:.95rem} .muted{color:var(--muted)} .stats{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));text-align:center} .stats b{display:block;font-size:2.2rem;color:#fff} .tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px} .tabs button{background:var(--card);color:var(--muted);border:0;border-radius:999px;padding:8px 16px;cursor:pointer;font-size:.95rem} .tabs button.on{background:var(--accent);color:#fff} .tab-panel{display:none}.tab-panel.on{display:block} details{background:var(--card);border-radius:12px;padding:14px 18px;margin-bottom:10px} summary{cursor:pointer;font-weight:600} details p{color:var(--muted);margin:10px 0 0} .gallery{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))} .gallery button{aspect-ratio:4/3;border:0;border-radius:12px;cursor:pointer;color:#fff;font-weight:700;font-size:1.1rem} .lightbox{position:fixed;inset:0;background:rgba(0,0,0,.8);display:none;align-items:center;justify-content:center;z-index:50;padding:20px} .lightbox.on{display:flex} .lightbox div{width:min(560px,100%);aspect-ratio:4/3;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:800} .price{display:flex;flex-direction:column;gap:12px} .price .amount{font-size:2rem;font-weight:800} .price.featured{outline:2px solid var(--accent)} .toggle{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:20px} form{display:grid;gap:14px;max-width:560px} label{display:grid;gap:6px;font-weight:600} input,select,textarea{font:inherit;padding:10px 12px;border-radius:10px;border:1px solid #3a3066;background:var(--card);color:var(--text)} .notice{background:#16352a;color:#c9f5df;border-radius:12px;padding:14px 18px;display:none} .notice.on{display:block} .counter{display:flex;align-items:center;gap:14px} .counter button{width:44px;height:44px;border-radius:50%;border:0;background:var(--card2);color:#fff;font-size:1.4rem;cursor:pointer} .counter output{font-size:1.6rem;font-weight:700;min-width:40px;text-align:center} .timeline{border-left:2px solid var(--accent);padding-left:20px} .timeline div{margin-bottom:22px} .timeline b{color:#fff} footer{text-align:center;color:var(--muted);font-size:.85rem;padding:32px 20px 48px;border-top:1px solid #2c2450;margin-top:32px} footer a{margin:0 8px} /* Nav mit sechs Punkten: zwischen 641 und 780 px würde sie sonst zweizeilig */ @media (min-width:641px) and (max-width:780px){nav{gap:8px;padding:14px 12px}nav .logo{white-space:nowrap}nav ul{gap:0}nav ul a{padding:6px 7px;font-size:.92rem}} /* Terminbuchung: WEBklar-Terminplaner, nur auf termin-buchen.html. Variablen laut docs/funktionen/termine-einbau.md, Abschnitt 3. Akzent #6f4ff0 = Akzent der Seite (#7c5cff), etwas dunkler: Weiß darauf 5,2 : 1 (auch beim Hover des Widgets 4,6 : 1), gegen die Karte 3,4 : 1. --wkt-i-fehler ist im Widget fest #b91c1c (auf dunklem Grund nur 2,7 : 1), daher hier heller. Achtung: --wkt-i-fehler ist eine interne, nicht dokumentierte Widget-Variable. Nach Widget-Updates prüfen, ob Fehlertext und Rand noch hell sind (sonst fällt der Kontrast auf ca. 2,7 : 1 zurück). */ .termin{max-width:720px} .termin [data-webklar-termine]{--wkt-akzent:#6f4ff0;--wkt-akzent-text:#fff;--wkt-hintergrund:var(--card);--wkt-text:var(--text);--wkt-rand:#7468a5;--wkt-radius:12px;--wkt-i-fehler:#ff9b9b;border-color:#3a3066} .termin [data-webklar-termine] .wkt-fuss{border-top-color:#3a3066} /* globale Regeln der Seite (form, label, input) greifen sonst ins Widget */ .termin [data-webklar-termine] form{display:block;max-width:none} .termin [data-webklar-termine] label{display:block} .termin [data-webklar-termine] .wkt-titel{font-size:1.35rem;margin:0 0 .75rem} .termin [data-webklar-termine] .wkt-haken label{font-weight:400} .termin [data-webklar-termine] input[type="checkbox"]{padding:0;border-radius:0;background:transparent} .termin [data-webklar-termine] .wkt-eingabe{border-color:var(--wkt-rand)} .termin [data-webklar-termine] .wkt-eingabe[aria-invalid="true"]{border:2px solid var(--wkt-i-fehler)} /* Datenschutz-Entwurf unter der Terminbuchung */ /* scroll-margin: die Überschrift liegt sonst beim Sprung zum Anker (Footer-Link, Datenschutz-URL im Portal) unter der festen Navigation */ .recht{max-width:720px;scroll-margin-top:48px} .recht p{color:var(--muted);font-size:.95rem;margin:0 0 14px} .recht strong{color:var(--text)} .recht .entwurf{background:var(--card2);border-left:4px solid var(--accent);border-radius:8px;padding:10px 14px;color:var(--text)}