/*
 * Landingpage (index.php) - eigener Auftritt der Plattform.
 *
 * Nur diese Seite laedt die Datei; alles haengt unter body.landing, damit
 * nichts in die Funktionsseiten hineinregiert. Grundfarben laut Vorgabe:
 * Schwarz, Orange, Weiss - das Orange #FF5100 stammt aus dem Favicon, so
 * bleibt die Marke ueberall dieselbe. Schrift bleibt die Systemschrift
 * (Projektregel: der oeffentliche Pfad laedt nichts von fremden Servern);
 * Charakter kommt aus Gewicht, Laufweite und Tabellenziffern.
 */

body.landing {
  --ink:      #0d0d0b;   /* Tiefschwarz, leicht warm */
  --coal:     #171613;   /* Flaechen auf Schwarz */
  --paper:    #ffffff;
  --orange:   #FF5100;   /* wie der Zeiger im Favicon */
  --orange-t: #c74000;   /* Verweise auf Weiss: dunkler, sonst zu grell */
  --mut-d:    #a6a29a;   /* Nebentext auf Schwarz */
  --mut-l:    #6f6d66;   /* Nebentext auf Weiss */
  --line-d:   #2b2a26;
  --line-l:   #e8e6df;
  background: var(--paper);
  color: var(--ink);
}

/* Die Standard-Huelle aufmachen: der Held laeuft ueber die volle Breite,
   die Breitenbegrenzung uebernimmt .ld-in je Abschnitt. */
body.landing .wrap { max-width: none; padding: 0; }
.ld-in { max-width: 1060px; margin: 0 auto; padding: 0 22px; }

/* Linkfarbe NUR im weissen Inhaltsbereich - eine seitenweite Regel hatte
   mehr Spezifitaet als .ld-logo und faerbte die komplette Kopfzeile orange
   (genau so beim ersten Rendern passiert). :where haelt sie zusaetzlich
   bei null, damit Knoepfe und Kachel-Verweise sie muehelos ueberstimmen. */
.ld-sek :where(a) { color: var(--orange-t); }

/* ---------------------------------------------------------------- Kopf */
.ld-top { background: var(--ink); color: #fff; }
.ld-top .ld-in {
  display: flex; align-items: center; gap: 18px; height: 64px;
}
.ld-logo { display: flex; align-items: center; gap: 11px; color: #fff; text-decoration: none; }
.ld-logo svg { display: block; }
.ld-wort {
  font-size: 21px; font-weight: 800; letter-spacing: .01em;
  font-style: italic;                 /* ein Hauch Vorlage - Bewegung */
}
.ld-wort b { color: var(--orange); font-style: normal; }
.ld-nav { margin-left: auto; display: flex; gap: 22px; }
.ld-nav a {
  color: var(--mut-d); text-decoration: none; font-size: 14px; font-weight: 600;
}
.ld-nav a:hover { color: #fff; }
@media (max-width: 560px) { .ld-nav { display: none; } }

/* ---------------------------------------------------------------- Held */
.ld-hero { background: var(--ink); color: #fff; overflow: hidden; }
.ld-hero .ld-in {
  display: flex; align-items: center; gap: 40px;
  padding-top: 40px; padding-bottom: 48px;
}
.ld-hero-txt { flex: 1 1 auto; min-width: 0; }
.ld-eyebrow {
  color: var(--orange); font-size: 12.5px; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; margin-bottom: 14px;
}
.ld-hero h1 {
  font-size: clamp(34px, 5.4vw, 56px); line-height: 1.04;
  font-weight: 800; letter-spacing: -0.02em; margin: 0 0 16px;
  text-wrap: balance;
}
.ld-hero h1 em { font-style: normal; color: var(--orange); }
.ld-claim {
  color: var(--mut-d); font-size: 17px; line-height: 1.55;
  max-width: 34em; margin: 0 0 26px;
}
.ld-cta { display: flex; gap: 12px; flex-wrap: wrap; }
.ld-btn {
  display: inline-block; border-radius: 10px; padding: 12px 22px;
  font-size: 15px; font-weight: 700; text-decoration: none;
  border: 1.5px solid transparent;
}
a.ld-btn-o { background: var(--orange); color: var(--ink); }
a.ld-btn-o:hover { background: #ff6a26; color: var(--ink); }
a.ld-btn-g { border-color: var(--line-d); color: #fff; }
a.ld-btn-g:hover { border-color: var(--mut-d); color: #fff; }

/* Die Stoppuhr-Illustration mit laufendem Sieben-Segment-LCD. Auf
   schmalen Schirmen bleibt sie - nur kleiner und unter dem Text. */
.ld-uhr { flex: 0 0 auto; }
/* frontal wie die Foto-Vorlage; Tiefe kommt aus der Schattierung im SVG */
.ld-stoppuhr { display: block; }
@media (max-width: 760px) {
  .ld-hero .ld-in { flex-direction: column; align-items: flex-start; gap: 8px; }
  .ld-uhr { align-self: center; }
  .ld-stoppuhr { width: 236px; height: auto; }
}

/* Kennzahlen unterm Claim: echte Zahlen aus dem Archiv, Tabellenziffern. */
.ld-stats {
  display: flex; gap: 34px; flex-wrap: wrap;
  border-top: 1px solid var(--line-d);
  margin-top: 34px; padding-top: 22px;
}
.ld-stat b {
  display: block; font-size: 27px; font-weight: 800;
  font-variant-numeric: tabular-nums; letter-spacing: -0.01em;
}
.ld-stat span { color: var(--mut-d); font-size: 13px; }

/* Chronographen-Lineal als Trennlinie Schwarz -> Weiss: feine orange Ticks. */
.ld-lineal {
  height: 12px; background: var(--ink);
  background-image: repeating-linear-gradient(90deg,
    var(--orange) 0 2px, transparent 2px 13px);
  background-size: 100% 7px; background-position: 0 100%; background-repeat: no-repeat;
}

/* ------------------------------------------------------------ Abschnitte */
.ld-sek { padding: 44px 0 6px; }
.ld-kopf { display: flex; align-items: baseline; gap: 14px; margin-bottom: 18px; }
.ld-kopf h2 {
  font-size: clamp(22px, 3vw, 30px); font-weight: 800; letter-spacing: -0.015em;
}
.ld-kopf h2::before {
  content: ''; display: inline-block; width: 5px; height: 0.78em;
  background: var(--orange); border-radius: 2px; margin-right: 13px;
}
.ld-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 700px) { .ld-grid { grid-template-columns: 1fr; } }

/* Rennkacheln - gleiche Mechanik wie bisher (DIV + gestreckter Hauptlink,
   ein <a> im <a> waere ungueltig), neues Kleid. */
.ld-kachel {
  position: relative; background: var(--paper);
  border: 1px solid var(--line-l); border-radius: 14px; padding: 20px 22px;
  transition: border-color .15s, box-shadow .15s;
}
.ld-kachel:hover { border-color: var(--ink); box-shadow: 0 4px 18px rgba(13,13,11,.08); }
/* Namenlose Einstiegskachel der Demo: fuehrt in den Rennen-Assistenten.
   Gestrichelt = hier ist noch nichts, hier entsteht etwas. */
.ld-kachel-neu { border: 2px dashed var(--line-l); }
.ld-kachel-neu:hover { border-color: var(--orange); box-shadow: 0 4px 18px rgba(255,81,0,.10); }
.ld-kplus {
  width: 34px; height: 34px; border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  background: var(--orange); color: #fff;
  font-size: 24px; font-weight: 700; line-height: 1;
}
.ld-datum {
  display: flex; align-items: center; gap: 10px;
  color: var(--mut-l); font-size: 13.5px; font-variant-numeric: tabular-nums;
}
.ld-badge {
  background: var(--ink); color: #fff; border-radius: 999px;
  font-size: 11.5px; font-weight: 700; letter-spacing: .05em;
  text-transform: uppercase; padding: 3px 10px;
}
.ld-badge-o { background: var(--orange); color: var(--ink); }
.ld-kname { font-size: 21px; font-weight: 800; letter-spacing: -0.01em; margin: 7px 0 3px; }
.ld-kinfo { color: var(--mut-l); font-size: 13.5px; }
.ld-klogo { float: right; width: 126px; height: auto; margin: 0 0 8px 16px; }
@media (max-width: 640px) { .ld-klogo { width: 98px; margin-left: 12px; } }
.ld-kinfo a { position: relative; z-index: 1; }
.ld-dots { display: flex; gap: 5px; margin-top: 12px; }
.ld-dots i { width: 13px; height: 13px; border-radius: 4px; display: block; }
.ld-kcta {
  margin-top: 14px; display: flex; gap: 18px; flex-wrap: wrap;
  font-size: 14.5px; font-weight: 700;
}
.ld-kcta a { color: var(--orange-t); text-decoration: none; }
.ld-kcta a:hover { text-decoration: underline; }
a.ld-haupt::after { content: ''; position: absolute; inset: 0; }
a.ld-neben { position: relative; z-index: 1; }
.ld-kbtns { margin-top: 14px; display: flex; gap: 10px; flex-wrap: wrap; }
.ld-kbtns .ld-btn { position: relative; z-index: 1; padding: 9px 16px; font-size: 14px; }
a.ld-btn-s { background: var(--ink); color: #fff; }
a.ld-btn-s:hover { background: #262521; color: #fff; }
a.ld-btn-r { border-color: var(--line-l); color: var(--ink); }
a.ld-btn-r:hover { border-color: var(--ink); color: var(--ink); }
.ld-leer { color: var(--mut-l); border: 1.5px dashed var(--line-l); border-radius: 14px;
           padding: 26px 22px; font-size: 15px; }

/* Leistungen: sechs Karten mit Strichsymbol. */
.ld-feat { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 900px) { .ld-feat { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ld-feat { grid-template-columns: 1fr; } }
.ld-f {
  border: 1px solid var(--line-l); border-radius: 14px; padding: 18px 20px 20px;
}
.ld-f svg { display: block; color: var(--ink); margin-bottom: 12px; }
.ld-f strong { display: block; font-size: 16px; font-weight: 750; margin-bottom: 5px; }
.ld-f p { color: var(--mut-l); font-size: 13.5px; line-height: 1.55; margin: 0; }

/* ------------------------------------------------------------- Fusszeile */
.ld-foot { background: var(--ink); color: var(--mut-d); margin-top: 52px; }
.ld-foot .ld-in {
  padding-top: 26px; padding-bottom: 30px;
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
}
.ld-foot .sponsor { justify-content: flex-start; }
.ld-foot .sponsor a { color: var(--mut-d); text-decoration: none;
  display: flex; align-items: center; gap: 12px; }
.ld-foot .sponsor svg { height: 20px; width: 109px; color: var(--mut-d); }
.ld-foot .sponsor .sponsor-text { color: var(--mut-d); font-size: 12.5px; }
.ld-foot .sponsor a:hover svg, .ld-foot .sponsor a:hover .sponsor-text { color: #fff; }
.ld-klein { margin-left: auto; font-size: 12.5px; }
@media (max-width: 560px) { .ld-klein { margin-left: 0; } }

/* Ausprobieren-Kasten und Spielwiesen-Banner */
.ld-try { display: flex; align-items: center; gap: 22px; flex-wrap: wrap;
          border: 1px solid var(--line-l); border-left: 5px solid var(--orange);
          border-radius: 14px; padding: 18px 22px; }
.ld-try > div { flex: 1 1 280px; }
.ld-demo-banner { background: #fff7ef; border: 1px solid var(--orange);
                  border-radius: 12px; padding: 14px 18px; font-size: 14.5px; }
.ld-demo-banner a { color: var(--orange-t); }
