/* ==========================================================================
   zeus-base.css — Container-Grundlayout für alle Zeus-Sections.
   ==========================================================================

   Diese Regeln bringen dem Core-Markup (`<section class="zeus-section"
   data-zeus-container="…"><div class="zeus-section-inner">`) die Breite bei,
   die das Attribut verspricht. Bisher musste jedes Pack sie selbst mitbringen —
   fehlten sie, lief der Inhalt über die volle Fensterbreite.

   BOX-SIZING-SEMANTIK (der Grund für die krummen Zahlen):
   Das horizontale Container-Padding aus `Trait_Section_Spacing`
   (`zeus_container_padding_x`) sitzt INNEN am `.zeus-section-inner`. Die
   max-width umschließt dieses Padding also mit. Damit die sichtbare
   CONTENT-Breite der des abgenommenen Prototyps entspricht, gilt:

       max-width = Prototyp-Contentbreite + 2 × container_pad

   Bei den Prototyp-üblichen 32px Padding ergibt boxed-1500 also
   1504 + 2×32 = 1568px sichtbare Contentbreite von 1504px.

   Nuance: Der CORE-Default von `zeus_container_padding_x` ist 40px, nicht 32.
   Wer den Default stehen lässt, bekommt entsprechend 1488px Content. Das ist
   Absicht und kein Fehler — die Werte hier folgen der Prototyp-Konvention,
   der Trait-Default ist großzügiger.

   SPEZIFITÄT IST TRAGEND: Alle Regeln liegen bei (0,2,0) — exakt so hoch wie
   die gleichlautenden Pack-Regeln. Da Pack-CSS SPÄTER in der Kaskade steht
   (dieses Bundle wird als Dependency davor geladen), gewinnt ein Pack, das
   dieselben Selektoren mitbringt. Bestehende Packs rendern damit unverändert.

   Die vier Enum-Werte sind deckungsgleich mit dem Control
   `zeus_container_width` in includes/elementor/traits/trait-section-spacing.php —
   kommt dort einer dazu, gehört er auch hierher.
   ========================================================================== */

.zeus-section > .zeus-section-inner {
	width: 100%;
	margin-inline: auto;
}

[data-zeus-container="boxed-1500"] > .zeus-section-inner {
	max-width: 1568px;
}

[data-zeus-container="boxed-1200"] > .zeus-section-inner {
	max-width: 1264px;
}

[data-zeus-container="narrow-960"] > .zeus-section-inner {
	max-width: 1024px;
}

[data-zeus-container="full"] > .zeus-section-inner {
	max-width: none;
}

/* ==========================================================================
   Preflight-Parität und Core-DOM-Vertrag (seit Core 0.6.0 hier, vorher nur im
   Tailwind-Input jedes Packs). Beides gilt für JEDES Pack — auch für Packs ohne
   Tailwind (css_mode "components"), die kein pack-tailwind.css mehr bauen.

   Spezifität 0 via :where(), gescoped auf .zeus-section: jede Komponentenklasse
   und jedes Utility gewinnt, die nackten Element-Defaults sind trotzdem
   korrigiert (kein @layer — gelayerte Regeln verlieren gegen ungelayertes
   Vendor-CSS von Elementor/Theme). Bestandspacks, deren Bundle dieselben Regeln
   noch trägt, rendern unverändert: identische Deklarationen, gleiche Wirkung.

   Bewusst NICHT enthalten: der aggressive h1–h6-Reset (font-size/weight
   inherit) — er würde Theme-Headline-Größen einreißen.
   ========================================================================== */
:where(.zeus-section) {
	line-height: 1.5;
}
:where(.zeus-section) :where(h1, h2, h3, h4, h5, h6) {
	margin: 0;
}
:where(.zeus-section) :where(p, blockquote, pre, dl, dd, ol, ul, figure) {
	margin: 0;
}
:where(.zeus-section) :where(ol, ul) {
	list-style: none;
	padding: 0;
}
:where(.zeus-section) :where(a) {
	color: inherit;
	text-decoration: inherit;
}
:where(.zeus-section) :where(button, input, select, textarea) {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	color: inherit;
	background: transparent;
	border: 0 solid;
	padding: 0;
	margin: 0;
}
:where(.zeus-section) :where(button) {
	cursor: pointer;
}
/* vertical-align: middle ist Teil des Vertrags — ein inline-block-img fiele sonst auf
   die Baseline zurück und die Strut-Unterlänge verlängert den Container (Formeta U21). */
:where(.zeus-section) :where(img, svg, video, canvas) {
	display: block;
	vertical-align: middle;
	max-width: 100%;
	height: auto;
}

/* Layout-transparenter Section-Wrapper — gesetzt vom Core über
   render_section_inner_open( true ). Trägt die <section> selbst das Grid/Flex,
   macht display:contents die Inhalte wieder zu direkten Grid-Items; ohne diese
   Regel stapelt sich jeder Split (Formeta-Befund 21.07.2026). Padding, Hintergrund
   und max-width am Wrapper wirken dann NICHT — das Widget trägt sein Section-
   Padding über die eigene Section-Klasse. */
.zeus-section-inner--contents {
	display: contents;
}
