/* =========================================================================
 * SchulBuchManager — Visionsseite
 * -------------------------------------------------------------------------
 * Oeffentliche Startseite bis zum Start Anfang 2027. Erzaehlt Idee, Aufbau
 * und Entwicklungsstand — bewusst KEIN Verkaufsauftritt: keine Tarife, kein
 * Abschluss-Trichter, keine Zahlen ohne Beleg.
 *
 * Eigene Datei statt public.css, weil die Seite nur vorübergehend lebt und
 * die bisherige Landing (/entwicklung) unveraendert weiterlaufen muss.
 * Farben aus der Hausmarke: Navy #1F3C5B, Teal #2A5D67, Teal Light #6BC7D1.
 * ========================================================================= */

.vs {
    --navy:#1F3C5B; --navy-d:#152840; --teal:#2A5D67; --teal-l:#6BC7D1;
    --ink:#0F172A; --ink-2:#334155; --muted:#64748B; --faint:#94A3B8;
    --line:#E2E8F0; --wash:#F8FAFC; --wash-2:#F1F5F9;
    --w:1120px;
}
.vs * { box-sizing:border-box; }
.vs-wrap { max-width:var(--w); margin:0 auto; padding:0 24px; }

/* Abschnitts-Rhythmus: eine Leiter, keine Zufallswerte */
.vs-sec { padding:76px 0; }
.vs-sec.is-tight { padding:56px 0; }
.vs-sec.is-wash  { background:var(--wash); border-block:1px solid var(--line); }

.vs-eyebrow {
    font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
    color:var(--teal); margin:0 0 12px;
}
.vs-h2 {
    font-size:clamp(25px, 3.2vw, 34px); font-weight:700; line-height:1.22;
    letter-spacing:-.02em; color:var(--ink); margin:0 0 14px; max-width:22ch;
}
.vs-lead { font-size:17px; line-height:1.68; color:var(--ink-2); max-width:62ch; margin:0 0 8px; }
.vs-sec > .vs-wrap > .vs-lead:last-child { margin-bottom:0; }

/* ------------------------------------------------------------------ Hero */
.vs-hero {
    position:relative; overflow:hidden;
    background:
        radial-gradient(1100px 520px at 12% -12%, rgba(107,199,209,.20), transparent 62%),
        radial-gradient(900px 480px at 92% 8%, rgba(42,93,103,.16), transparent 60%),
        linear-gradient(180deg, #fbfdfe 0%, #ffffff 74%);
    border-bottom:1px solid var(--line);
}
.vs-hero .vs-wrap { padding-block:92px 84px; }
.vs-badge {
    display:inline-flex; align-items:center; gap:9px;
    padding:6px 14px 6px 11px; border-radius:999px;
    background:#fff; border:1px solid #cfe6ea;
    font-size:13px; font-weight:600; color:var(--teal);
    box-shadow:0 1px 2px rgba(15,23,42,.05);
}
.vs-badge .dot {
    width:7px; height:7px; border-radius:50%; background:var(--teal-l);
    box-shadow:0 0 0 3px rgba(107,199,209,.28);
}
.vs-h1 {
    font-size:clamp(34px, 5.4vw, 57px); font-weight:700; line-height:1.08;
    letter-spacing:-.032em; color:var(--navy); margin:22px 0 0; max-width:17ch;
}
.vs-hero-lead {
    font-size:clamp(17px, 1.9vw, 19.5px); line-height:1.62; color:var(--ink-2);
    max-width:58ch; margin:20px 0 0;
}
.vs-hero-note {
    margin:26px 0 0; padding:13px 17px; border-left:3px solid var(--teal-l);
    background:#fff; border-radius:0 8px 8px 0;
    font-size:14.5px; line-height:1.6; color:var(--ink-2);
    box-shadow:0 1px 2px rgba(15,23,42,.04); max-width:62ch;
}
.vs-cta-row { display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }

/* Schaltflaechen — eigene Familie, damit public.css unberuehrt bleibt */
.vs-btn {
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    min-height:46px; padding:0 22px; border-radius:10px;
    font-size:15px; font-weight:600; text-decoration:none; cursor:pointer;
    border:1px solid transparent; transition:background .14s, border-color .14s, color .14s;
}
.vs-btn-primary { background:var(--navy); color:#fff; }
.vs-btn-primary:hover { background:var(--navy-d); color:#fff; text-decoration:none; }
.vs-btn-ghost { background:#fff; color:var(--navy); border-color:var(--line); }
.vs-btn-ghost:hover { border-color:#b9c7d6; color:var(--navy-d); text-decoration:none; }
.vs-btn:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }

/* --------------------------------------------------------------- Problem */
.vs-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:34px; }
.vs-card {
    background:#fff; border:1px solid var(--line); border-radius:14px;
    padding:24px 22px; box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.vs-sec.is-wash .vs-card { box-shadow:0 1px 3px rgba(15,23,42,.06); }
.vs-card h3 { font-size:16.5px; font-weight:700; color:var(--ink); margin:0 0 9px; line-height:1.35; }
.vs-card p  { font-size:14.5px; line-height:1.65; color:var(--ink-2); margin:0; }

/* ---------------------------------------------------------------- Vision */
.vs-quote {
    margin:34px 0 0; padding:30px 34px; border-radius:16px;
    background:linear-gradient(135deg, var(--navy) 0%, var(--teal) 128%);
    color:#fff; box-shadow:0 10px 30px rgba(31,60,91,.18);
}
.vs-quote p {
    color:#fff;
    font-size:clamp(19px, 2.3vw, 24px); font-weight:600; line-height:1.46;
    letter-spacing:-.012em; margin:0; max-width:34ch;
}
.vs-quote .src { display:block; margin-top:14px; font-size:14px; font-weight:400; color:rgba(255,255,255,.76); letter-spacing:0; }

/* ----------------------------------------------------------- Jahresablauf */
.vs-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px 24px; margin-top:36px; }
.vs-step { position:relative; padding-top:6px; }
.vs-step .n {
    display:inline-flex; align-items:center; justify-content:center;
    width:30px; height:30px; border-radius:9px;
    background:var(--navy); color:#fff; font-size:14px; font-weight:700;
    font-variant-numeric:tabular-nums; margin-bottom:13px;
}
.vs-step h3 { font-size:16px; font-weight:700; color:var(--ink); margin:0 0 7px; line-height:1.35; }
.vs-step p  { font-size:14.5px; line-height:1.65; color:var(--ink-2); margin:0; }

/* ------------------------------------------------------------- Prinzipien */
.vs-grid2 { display:grid; grid-template-columns:repeat(2,1fr); gap:14px 34px; margin-top:32px; }
.vs-principle { display:flex; gap:14px; padding:4px 0; }
.vs-principle .ic {
    flex:none; width:38px; height:38px; border-radius:10px;
    background:#eef6f7; color:var(--teal);
    display:flex; align-items:center; justify-content:center;
}
.vs-principle .ic svg { width:19px; height:19px; }
.vs-principle h3 { font-size:15.5px; font-weight:700; color:var(--ink); margin:2px 0 5px; line-height:1.35; }
.vs-principle p  { font-size:14.5px; line-height:1.62; color:var(--ink-2); margin:0; }

/* -------------------------------------------------------------- Zeitleiste */
.vs-time { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:38px; }
.vs-time-item { position:relative; padding:30px 20px 0 0; }
.vs-time-item::before {
    content:""; position:absolute; top:9px; left:0; right:0; height:2px; background:var(--line);
}
.vs-time-item:last-child::before { right:calc(100% - 13px); }
.vs-time-item::after {
    content:""; position:absolute; top:4px; left:0; width:13px; height:13px; border-radius:50%;
    background:#fff; border:2.5px solid var(--line);
}
.vs-time-item.is-done::before { background:var(--teal-l); }
.vs-time-item.is-done::after  { background:var(--teal); border-color:var(--teal); }
.vs-time-item.is-now::after   { background:#fff; border-color:var(--teal); box-shadow:0 0 0 4px rgba(107,199,209,.25); }
.vs-time-item .when {
    font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
    color:var(--teal); margin-bottom:6px;
}
.vs-time-item.is-future .when { color:var(--faint); }
.vs-time-item h3 { font-size:15.5px; font-weight:700; color:var(--ink); margin:0 0 6px; line-height:1.35; }
.vs-time-item p  { font-size:14px; line-height:1.6; color:var(--ink-2); margin:0; padding-right:8px; }

/* ------------------------------------------------------------------ Team */
.vs-about {
    display:grid; grid-template-columns:1.25fr 1fr; gap:40px; align-items:start;
}
.vs-facts { background:#fff; border:1px solid var(--line); border-radius:14px; padding:6px 22px; box-shadow:0 1px 2px rgba(15,23,42,.04); }
.vs-fact { display:flex; justify-content:space-between; gap:18px; padding:14px 0; border-bottom:1px solid var(--wash-2); }
.vs-fact:last-child { border-bottom:none; }
.vs-fact dt { font-size:13.5px; color:var(--muted); margin:0; }
.vs-fact dd { font-size:13.5px; color:var(--ink); font-weight:600; margin:0; text-align:right; }

/* -------------------------------------------------------------- Abschluss */
.vs-close { background:var(--navy); color:#fff; }
.vs-close .vs-wrap { padding-block:66px; text-align:center; }
/* Farbe ausdruecklich setzen: Die Element-Regel fuer Ueberschriften in
   base.css hat hoehere Spezifitaet als die geerbte Farbe des Bandes —
   ohne diese Zeile steht die Ueberschrift dunkel auf Navy. */
.vs-close h2 { color:#fff; font-size:clamp(24px, 3vw, 32px); font-weight:700; line-height:1.24; letter-spacing:-.02em; margin:0 auto 14px; max-width:20ch; }
.vs-close p  { font-size:16.5px; line-height:1.62; color:rgba(255,255,255,.82); margin:0 auto; max-width:56ch; }
.vs-close .vs-cta-row { justify-content:center; margin-top:28px; }
/* Element+Klasse: `.vs-close p` (0,1,1) setzt `margin:0 auto` und schlaegt
   eine einfache Klasse (0,1,0) — derselbe Spezifitaets-Fall wie oben. */
.vs-close p.vs-close-note { margin:26px auto 0; max-width:48ch; font-size:13.5px; line-height:1.6;
                 color:rgba(255,255,255,.62); }
.vs-close .vs-btn-primary { background:#fff; color:var(--navy); }
.vs-close .vs-btn-primary:hover { background:#e8eef5; color:var(--navy-d); }
.vs-close .vs-btn-ghost { background:transparent; color:#fff; border-color:rgba(255,255,255,.4); }
.vs-close .vs-btn-ghost:hover { border-color:#fff; color:#fff; }
.vs-close .vs-btn:focus-visible { outline-color:var(--teal-l); }

/* ==================== Kleinere Bildschirme ==================== */
@media (max-width:980px) {
    .vs-cards, .vs-steps { grid-template-columns:repeat(2,1fr); }
    .vs-about { grid-template-columns:1fr; gap:28px; }
    .vs-time  { grid-template-columns:repeat(2,1fr); gap:28px 0; }
    .vs-time-item:nth-child(2)::before { right:calc(100% - 13px); }
}
@media (max-width:700px) {
    .vs-wrap { padding:0 18px; }
    .vs-sec { padding:54px 0; }
    .vs-hero .vs-wrap { padding-block:60px 54px; }
    .vs-cards, .vs-steps, .vs-grid2 { grid-template-columns:1fr; }
    .vs-grid2 { gap:20px; }
    .vs-quote { padding:24px 22px; }
    .vs-cta-row .vs-btn { width:100%; }

    /* Zeitleiste senkrecht: Linie links, Punkte daran aufgereiht */
    .vs-time { grid-template-columns:1fr; gap:0; }
    .vs-time-item { padding:0 0 26px 26px; }
    .vs-time-item::before { top:6px; bottom:-6px; left:6px; right:auto; width:2px; height:auto; }
    .vs-time-item:last-child::before { display:none; }
    .vs-time-item::after { top:3px; left:0; }
    .vs-time-item:nth-child(2)::before { right:auto; }
    .vs-time-item p { padding-right:0; }
}
