Files
test-website/style.css
T

83 lines
6.5 KiB
CSS

: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)}