/* ==================================================================
   nextparty24 - Platzhalterseite "Bald erreichbar"

   Liegt im Wurzelverzeichnis der Domain, vor /beta. Werte nur aus
   tokens.css, Knoepfe aus bausteine.css - beide sind Kopien aus
   html/css/ (siehe coming-soon/README.md), hier wird nichts neu
   gestaltet, was es dort schon gibt.
   ================================================================== */

@font-face {
    font-family: "Plus Jakarta Sans";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("../fonts/plus-jakarta-sans-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
                   U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191,
                   U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: "Plus Jakarta Sans";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("../fonts/plus-jakarta-sans-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
                   U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
                   U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: "Expansiva";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/expansiva-bold.otf") format("opentype");
}

*, *::before, *::after { box-sizing: border-box; }

html { color-scheme: dark; }

body {
    margin: 0;
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    background-color: var(--color-bg);
    /* Zwei Lichtkegel wie auf einer Tanzflaeche: Gelb oben links, Cyan
       unten rechts. Leise genug, dass die Schrift vorne bleibt. */
    background-image:
        radial-gradient(60% 50% at 12% 0%, color-mix(in srgb, var(--color-accent) 14%, transparent), transparent 70%),
        radial-gradient(55% 45% at 95% 100%, color-mix(in srgb, var(--color-accent2) 12%, transparent), transparent 70%);
    background-attachment: fixed;
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

a { color: var(--color-accent); }
a:hover { color: var(--color-accent-300); }
a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; border-radius: var(--radius-xs); }

.cs-wrap {
    width: 100%;
    max-width: var(--wrap);
    margin: 0 auto;
    padding: 0 var(--gutter);
}

/* ---------- Kopf ---------- */
.cs-kopf { padding-top: var(--space-8); }
.cs-logo { display: block; width: 220px; max-width: 60vw; height: auto; }

/* ---------- Hauptteil ---------- */
.cs-haupt {
    flex: 1;
    display: flex;
    align-items: center;
    padding-top: var(--space-16);
    padding-bottom: var(--space-16);
}
.cs-inhalt { max-width: 720px; }

.cs-marke {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-1) var(--space-3);
    border: 1px solid color-mix(in srgb, var(--color-accent2) 45%, transparent);
    border-radius: var(--radius-pill);
    color: var(--color-accent2-300);
    font-size: var(--text-sm);
    font-weight: 600;
}
/* Der Punkt pulsiert langsam: hier tut sich gerade etwas. */
.cs-marke::before {
    content: "";
    width: var(--space-2);
    height: var(--space-2);
    border-radius: var(--radius-pill);
    background: var(--color-accent2);
    animation: cs-puls 2s ease-in-out infinite;
}
@keyframes cs-puls {
    0%, 100% { opacity: 1; }
    50%      { opacity: .3; }
}
@media (prefers-reduced-motion: reduce) {
    .cs-marke::before { animation: none; }
}

.cs-titel {
    margin: var(--space-6) 0 0;
    font-family: var(--font-display);
    font-size: var(--text-display);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: .01em;
}
.cs-titel span { color: var(--color-accent); }

.cs-lead {
    margin: var(--space-5) 0 0;
    color: var(--color-neutral-300);
    font-size: var(--text-lg);
}

.cs-knoepfe {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-8);
}

.cs-notiz {
    margin: var(--space-6) 0 0;
    color: var(--color-neutral-400);
    font-size: var(--text-sm);
}

/* ---------- Fuss mit Impressum und Datenschutz ----------
   Beides als <details>: zu bleibt die Seite ruhig, auf geht es ohne
   JavaScript. Pflichtangaben sind so mit einem Klick erreichbar. */
.cs-fuss {
    border-top: var(--linie);
    padding-top: var(--space-6);
    padding-bottom: var(--space-8);
    color: var(--color-neutral-400);
    font-size: var(--text-sm);
}
.cs-fuss__zeile {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--space-3);
}

.cs-recht { margin-top: var(--space-4); }
.cs-recht + .cs-recht { margin-top: var(--space-2); }
.cs-recht summary {
    cursor: pointer;
    color: var(--color-neutral-300);
    font-weight: 600;
}
.cs-recht summary:hover { color: var(--color-neutral-200); }
.cs-recht summary:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; border-radius: var(--radius-xs); }
.cs-recht__text {
    max-width: 760px;
    padding: var(--space-4) 0 var(--space-2);
    color: var(--color-neutral-300);
}
.cs-recht__text h2 {
    margin: var(--space-6) 0 var(--space-2);
    color: var(--color-text);
    font-size: var(--text-base);
}
.cs-recht__text h2:first-child { margin-top: 0; }
.cs-recht__text p { margin: 0 0 var(--space-3); }

@media (max-width: 520px) {
    .cs-kopf { padding-top: var(--space-6); }
    .cs-haupt { padding-top: var(--space-12); padding-bottom: var(--space-12); }
    .cs-knoepfe .btn { width: 100%; }
}
