/* ============================================================================
   Titelbreite in Rasterspalten — globales Control „ag_titel_breite"
   ----------------------------------------------------------------------------
   Auftrag Vincent, 17.09.2026: „alle Titelwidgets bzw. alle Widgets die
   verschachtelte Titel haben sollen die Möglichkeit bekommen, die Breite des
   Titels anzupassen (in Spalten), damit Grid erhalten bleibt. Sehr lange Titel
   sollen lieber umbrechen, aber ich möchte keine manuellen Umbrüche einfügen."

   Quelle des Rasters: Figma Seite `0.4 · Grids`, Regal `shelf/spaltenraster`
   (930:23075) — ab Tablet zwölf Spalten mit 24 px Rinne, Inhaltsbreite 1200.
   Eine Spalte ist damit (1200 − 11 × 24) / 12 = 78 px.

   Die Klasse `ag-titelbreite--N` sitzt per `prefix_class` auf dem
   Elementor-Wrapper des Widgets; das Control steht in der Stil-Sektion
   „agenic · Breite" (includes/breite-control.php).

   Begrenzt werden Headline und Strapline; der Strich folgt der Headline
   von selbst (siehe Block weiter unten).
   Wirkung über die vererbte Variable `--ag-titel-max`. Verschachtelte Titel
   (Karten, Medien-Text-Zeilen) setzen sie zurück — Entscheidung Vincent,
   17.09.2026: „nur der Sektionstitel". Layout `split` bleibt ebenfalls
   unberührt (Entscheidung Vincent, 17.09.2026: „Bei Split ignorieren").
   ========================================================================= */

/* Rasterrechnung. 100 % ist die Breite des Titelblocks — bei
   `ag-breite--container` also die Inhaltsbreite 1200. */
[class*="ag-titelbreite--"] {
    --ag-titel-rinne:  var(--spacing-ml);                                  /* 24 — Figma „Rinne des Spaltenrasters" */
    --ag-titel-spalte: calc((100% - 11 * var(--ag-titel-rinne)) / 12);     /* 78 bei 1200 */
}

.ag-titelbreite--4  { --ag-titel-max: calc(var(--ag-titel-spalte) *  4 +  3 * var(--ag-titel-rinne)); }
.ag-titelbreite--5  { --ag-titel-max: calc(var(--ag-titel-spalte) *  5 +  4 * var(--ag-titel-rinne)); }
.ag-titelbreite--6  { --ag-titel-max: calc(var(--ag-titel-spalte) *  6 +  5 * var(--ag-titel-rinne)); }
.ag-titelbreite--7  { --ag-titel-max: calc(var(--ag-titel-spalte) *  7 +  6 * var(--ag-titel-rinne)); }
.ag-titelbreite--8  { --ag-titel-max: calc(var(--ag-titel-spalte) *  8 +  7 * var(--ag-titel-rinne)); }
.ag-titelbreite--9  { --ag-titel-max: calc(var(--ag-titel-spalte) *  9 +  8 * var(--ag-titel-rinne)); }
.ag-titelbreite--10 { --ag-titel-max: calc(var(--ag-titel-spalte) * 10 +  9 * var(--ag-titel-rinne)); }
.ag-titelbreite--11 { --ag-titel-max: calc(var(--ag-titel-spalte) * 11 + 10 * var(--ag-titel-rinne)); }
.ag-titelbreite--12 { --ag-titel-max: 100%; }

/* Verschachtelte Titel bleiben außen vor: Kartentitel (render-card.php) und
   die Zeilentitel der Medien-Text-Partials liegen im jeweiligen
   `__content`-Block, der Sektionstitel dagegen direkt unter der Wurzel. */
.ag-card,
.ag-media-text__content,
.ag-media-text-list__content {
    --ag-titel-max: 100%;
}

/* Erst ab Tablet begrenzen — darunter hat das Raster nur vier Spalten
   (Figma `shelf/spaltenraster`: Mobile 375, Rand 16, 4 Spalten). */
@media (min-width: 768px) {

    /* Titlekombination: Headline, `split` ausgenommen.

       Der Strich über dem Titel braucht hier KEINE eigene Regel — das ist
       Absicht, kein Vergessen. Die Titlekombination stellt ihn in dieselbe
       Rasterspalte wie die Headline (`grid-template-columns:
       minmax(0, max-content) …` in titlekombinationen.css), er ist also
       immer genau so breit wie die längste Titelzeile und geht damit von
       selbst mit, sobald die Headline enger umbricht. Gemessen 17.09.2026:
       8 Spalten → Titel 544, Strich 544.

       Entscheidung Vincent, 17.09.2026, auf die Frage, ob der Strich
       stattdessen immer die volle eingestellte Spaltenbreite bekommen soll:
       „So breit wie der Titeltext." Also bleibt es beim Rasterverhalten. */
    .ag-titlekombinationen:not(.ag-titlekombinationen--split) .ag-titlekombinationen__headline {
        max-width: var(--ag-titel-max, 100%);
    }

    /* Die Strapline hat eine eigene Grenze (zwei Drittel, Entscheidung
       26.08.2026). Es gilt die jeweils engere der beiden. */
    .ag-titlekombinationen:not(.ag-titlekombinationen--split) .ag-titlekombinationen__strapline {
        max-width: min(var(--ag-titlekombinationen-strapline-max, 100%), var(--ag-titel-max, 100%));
    }

    /* Widgets mit eigenem Titel-Markup (kein Titlekombination-Partial). */
    .ag-hero__headline,
    .ag-hero-form-split__headline,
    .ag-tag-group-blocks__titel {
        max-width: var(--ag-titel-max, 100%);
    }

    /* Text-Block (ergänzt 21.09.2026 — der Regler war dort ohne Wirkung).
       Begrenzt wird der Kopf, nicht der Titel: Der Kopf ist `fit-content`, ein
       Prozentwert am Titel liefe gegen ihn ins Leere. Der Strich im Kopf folgt
       damit der Titelbreite wie in der Titlekombination. Doppelklasse, damit
       die Regel `max-width: 100%` in text-block.css unabhängig von der
       Ladereihenfolge verliert. */
    .ag-text-block .ag-text-block__head {
        max-width: var(--ag-titel-max, 100%);
    }
}
