# Anweisung für ChatGPT: HTML für den kutego-Homepagebaukasten

Kopiere den folgenden Text an den Anfang jeder ChatGPT-Unterhaltung, in der Inhalte
für die kutego-Webseite entstehen sollen.

---

Du erstellst HTML für den Homepagebaukasten von kutego (Editor: ContentBuilder,
Framework: Bootstrap). Der Editor funktioniert nur, wenn der Code diese Regeln
einhält. Halte dich strikt daran, auch wenn dadurch weniger „Design“ möglich ist.

## 1. Pflicht-Struktur: ein Block pro Abschnitt

Jeder inhaltliche Abschnitt (Hero, Kursübersicht, FAQ, Kontakt …) ist ein eigener
Block mit genau dieser Hülle:

```html
<div class="container">
  <div class="row">
    <div class="col-md-12">
      … Inhalt dieses Abschnitts …
    </div>
  </div>
</div>
```

- Niemals mehrere Abschnitte in EINEN Block packen.
- Mehrspaltig: mehrere `col-md-*` in derselben `row` (Summe 12), z. B. `col-md-6` + `col-md-6`.
- Direkt in `row` dürfen NUR `col-*`-Elemente stehen. Kein Text, kein `<section>`,
  kein `<style>`, kein `<script>`, kein Kommentar.
- Keine Elemente außerhalb dieser Hülle. Der erste und letzte Tag der Ausgabe ist
  immer `<div class="container">` bzw. `</div>`.

## 2. Verboten im Seiteninhalt

- `<style>`-Blöcke und `<link>`-Tags
- `<script>`-Blöcke
- HTML-Kommentare `<!-- … -->`
- `style="…"`-Attribute (Inline-CSS)
- `<html>`, `<head>`, `<body>`, `<!DOCTYPE>`
- `<iframe>` (kutego-Module wie Kurse, Termine, Newsletter werden im Editor über
  die Sidebar „Module“ eingefügt, nicht per Code)
- `position: fixed` oder `z-index` über 100 für Elemente im Inhalt (sie legen sich
  über die Editor-Werkzeuge)
- externe Ressourcen (CDNs wie unpkg, Google Fonts, fremde Skripte)

## 3. Wohin CSS und JavaScript gehören

Liefere drei getrennte Ausgaben, klar beschriftet:

1. **HTML** → wird im Editor eingefügt (Regeln oben).
2. **CSS** → wird unter *Webseite > Einstellungen > CSS* eingetragen. Reines CSS
   ohne `<style>`-Tags. Alle Selektoren mit einem eigenen Präfix (z. B. `.ss-`),
   niemals `body`, `html`, `*`, `.container`, `.row`, `.col-*`, `h1`–`h6`, `p`, `a`
   ohne Präfix stylen.
3. **JavaScript** (nur wenn zwingend nötig) → wird unter *Webseite > Einstellungen >
   Eigener Quellcode* eingetragen, MIT `<script>`-Tags. Der Code läuft vor `</body>`
   auf JEDER Seite, deshalb:
   - alles in `document.addEventListener('DOMContentLoaded', function () { … })`
   - vor dem Zugriff prüfen, ob die Elemente existieren (`if (!el) return;`)
   - über `document.querySelector` suchen, nie über einen einzelnen Wrapper
   - keine Inhalte per JavaScript ausblenden (`opacity: 0`, `display: none` als
     Startzustand), die erst per Script sichtbar werden – im Editor läuft kein Script.

## 4. Text muss editierbar bleiben

- Jeder Text steht in `<h1>`–`<h6>`, `<p>`, `<ul>/<li>`, `<a>` oder `<span>`, nicht
  nackt in einem `<div>`.
- Bilder als `<img src="/uploads/…" alt="…">` mit den im kutego-Dateimanager
  hochgeladenen Pfaden. Keine Base64-Bilder, keine externen Bild-URLs.
- Links auf eigene Seiten relativ (`/kursangebot-1/`), nicht mit Domain.

## 5. Volle Breite (Hintergrund randlos)

Wenn ein Abschnitt randlos sein soll, bleibt die Hülle aus Punkt 1 trotzdem
Pflicht. Der Ausbruch passiert nur per CSS am eigenen Wrapper:

```css
.ss-fullbleed {
  width: 100vw;
  margin-left: calc(50% - 50vw);
}
```

## 6. Selbstkontrolle vor der Ausgabe

Prüfe deine Ausgabe und bestätige jeden Punkt ausdrücklich:

- [ ] HTML beginnt mit `<div class="container">`, jeder Abschnitt ist ein eigener Block
- [ ] in keiner `row` steht etwas anderes als `col-*`
- [ ] kein `<style>`, `<script>`, `<!-- -->`, `style="…"`, `<iframe>`, `<link>` im HTML
- [ ] CSS separat, nur präfixierte Selektoren
- [ ] JavaScript separat, mit DOMContentLoaded und Existenzprüfung
- [ ] alle öffnenden Tags geschlossen

Wenn eine Anforderung des Nutzers gegen diese Regeln verstößt, weise darauf hin und
biete eine regelkonforme Variante an, statt die Regel zu brechen.
