/*
Theme Name: theme.hardenberg
Theme URI:
Author: eric lacaze | lacaze-carnier.com / iuno.co
Author URI:
Description: Theme für Hardenberg Apartments
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.2
Version: 2026.04.27.001
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: theme-hardenberg
Tags:
*/

/* Zentrale Ueberschriften-Groessen: eine Quelle der Wahrheit.
   Hier definiert (blocks.css laedt Editor + Frontend), per theme.json an die echten
   h1-h6 gebunden und von den Absatz-Stilen "wie hN" genutzt (siehe Abschnitt paragraph).
   Werte = aktueller Ist-Zustand (h1 = theme.json, h2-h6 = Browser-Default), damit
   sich am Rendering nichts aendert und das Stripe-System (misst am DOM) stabil bleibt. */
:root {
	--iuno-h1-size: 2rem;
	--iuno-h2-size: 1.5rem;
	--iuno-h3-size: 1.17rem;
	--iuno-h4-size: 1rem;
	--iuno-h5-size: 0.83rem;
	--iuno-h6-size: 0.67rem;
}

/* accessibility → ausgelagert nach blocks/accessibility/style.css */

/* polylang language-switcher (Plugin-Block, bleibt zentral)

   Die beiden Symbole liefen frueher als background-image am select. Ein
   Hintergrundbild kann currentColor nicht folgen, und die SVGs tragen gar
   keine fill-Angabe - sie zeichneten deshalb im SVG-Standard, also reinem
   Schwarz, waehrend der Text in Coffee stand. Im Dunkelmodus waeren sie
   schwarz auf dunklem Grund geblieben.

   Jetzt als Maske auf einem ::after mit background-color: currentColor -
   dasselbe Muster, das der Accessibility-Block schon benutzt. Das ::after
   liegt absolut ueber dem Innenabstand des selects, damit Geometrie und
   Breite unveraendert bleiben.

   Oktober 2026: Polylang bringt ein eigenes Stylesheet mit
   (language-switcher.min.css) und die Klassen pll-switcher,
   pll-layout-select, pll-alignment-left am Wrapper. Darin steht
   .pll-switcher { display: block; width: 100% } - der Umschalter wurde dadurch
   992px breit, und das ::after klebte am rechten Rand dieser Flaeche statt am
   Auswahlfeld. Die Breite holt die Regel unten zurueck; zwei Klassen (0,2,0)
   schlagen Polylangs (0,1,0) unabhaengig von der Ladereihenfolge.

   Gilt fuer das Layout 'Auswahlliste' (pll-layout-select), das einzige mit
   einem <select>. Stellt jemand den Block auf Dropdown oder Liste um, greift
   hier nichts mehr - dann braucht es eigene Regeln. */
.pll-switcher.wp-block-polylang-language-switcher				{	width: fit-content; }
.wp-block-polylang-language-switcher						{	position: relative; display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; column-gap: 0.5rem; z-index: +2; }
.wp-block-polylang-language-switcher .pll-switcher-select					{	appearance: none; -webkit-appearance: none; -moz-appearance: none; cursor: pointer;
																padding: 0 2.5rem 0 0; border: 0; height: 1.4rem; background-color: transparent; color: inherit;
																font-size: 0.75rem; line-height: 1.4rem; font-weight: 500; text-transform: uppercase; text-align-last: right; }
.wp-block-polylang-language-switcher::after						{	content: ""; position: absolute; right: 0; top: 0; bottom: 0; width: 2.5rem; pointer-events: none;
																background-color: currentColor;
																-webkit-mask-image: var(--icon-translation), var(--icon-caret-down); mask-image: var(--icon-translation), var(--icon-caret-down);
																-webkit-mask-position: right center, calc(100% - 1.5rem) center; mask-position: right center, calc(100% - 1.5rem) center;
																-webkit-mask-repeat: no-repeat, no-repeat; mask-repeat: no-repeat, no-repeat;
																-webkit-mask-size: 1rem auto, 0.8rem auto; mask-size: 1rem auto, 0.8rem auto; }


/* Core-Elemente von Header und Footer. Das Menue traegt kein eigenes CSS mehr:
   die Anpassungen stammten aus dem INA-Theme und werden mit dem Overlay-Menue
   neu aufgebaut. Bis dahin gilt, was core/navigation selbst mitbringt. */


/* Overlay-Menue mit eigenem Inhalt (disable-default-overlay): WordPress setzt
   den Schliessen-Knopf ueber --wp--style--root--padding-left, das dieses Theme
   nicht kennt - der Knopf fiel nach oben links. Hier fest 2rem wie der
   Innenabstand der Overlay-Gruppe. z-index ueber den Gruppen: frontend.css hebt
   jede Gruppe in einer Gruppe mit Hintergrund auf z-index 3, die volle
   Overlay-Gruppe lag damit ueber dem Knopf. */
.disable-default-overlay .wp-block-navigation__responsive-container-close	{	top: 2rem; right: 2rem; z-index: 10; }
/* Glas im Overlay-Menue: Die Einblend-Animation von core/navigation behaelt mit
   animation-fill-mode: forwards ein transform am Overlay. Das begrenzt die
   Unschaerfe (backdrop-filter) der Gruppen darin - man sah nur die getoente
   Farbe, nicht die verschwommene Seite. Ohne fill-mode faellt das transform nach
   der Animation weg; Endzustand (deckend, an Ort und Stelle) ist ohnehin der
   Ausgangswert. */
.wp-block-navigation__responsive-container.is-menu-open						{	animation-fill-mode: none; }

/* Block "Navigations-Overlay schliessen" (core/navigation-overlay-close): ersetzt
   den Knopf oben und laesst sich faerben. Direkt in der obersten Overlay-Gruppe
   sitzt er an derselben Stelle oben rechts, tiefer eingesetzt steht er im Fluss.
   width/margin mit !important gegen das Layout "Gruppe" (margin auto) und
   "Inhalt vertikal" (width 100%). */
.wp-block-navigation__overlay-container > .wp-block-group > .wp-block-navigation-overlay-close	{	position: absolute; top: 1.5rem; right: 1.5rem; left: auto; z-index: 10;
																				width: 2.5rem !important; margin: 0 !important; }
/* Aussehen wie die Steuerknoepfe des Buchungskalenders (.iuno-buchung__steuer):
   runde Flaeche, beim Hover leicht in der Akzentfarbe. Der Rahmen ist 0,5rem
   groesser als frueher, darum steht der Knopf oben 0,5rem weiter aussen - das
   Kreuz bleibt ungefaehr, wo es war. */
.wp-block-navigation-overlay-close											{	display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box;
																				width: 2.5rem; height: 2.5rem; padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
.wp-block-navigation-overlay-close svg										{	width: 1.25rem; height: 1.25rem; }
.wp-block-navigation-overlay-close:hover									{	background: color-mix(in srgb, var(--iuno-accent) 18%, transparent); }
.wp-block-navigation-overlay-close:focus-visible							{	outline: 2px solid currentColor; outline-offset: -3px; }

/* Menue-Stil "Textmenue": Eintraege ohne Unterstrich, beim Hover/Fokus mit -
   Strich wie bei allen Links (frontend.css), die Farbe bleibt. Abstand zwischen
   den Eintraegen: Blockabstand in der Seitenleiste; Gross/Klein: Typografie. */
.wp-block-navigation.is-style-iuno-textmenue .wp-block-navigation-item__content	{	text-decoration-line: none; }
.wp-block-navigation.is-style-iuno-textmenue .wp-block-navigation-item__content:is(:hover, :focus-visible)	{	color: inherit; text-decoration-line: underline; }
/* Schalter "Bei Platzmangel ausblenden" (editor.js): frontend.js setzt
   .is-iuno-platzmangel, sobald das Menue nicht mehr in eine Zeile passt. Damit das
   messbar ist, brechen die Eintraege selbst nicht um. */
.wp-block-navigation.iuno-platz-ausblenden .wp-block-navigation-item__content	{	white-space: nowrap; }
.wp-block-navigation.iuno-platz-ausblenden.is-iuno-platzmangel				{	display: none !important; }
/* Dasselbe am Button (editor.js): ausgeblendet wird sein Buttons-Block, das Kind
   der Zeile. Die Beschriftung bricht dafuer nicht um. */
.wp-block-button.iuno-platz-ausblenden > .wp-block-button__link				{	white-space: nowrap; }
.wp-block-buttons.is-iuno-platzmangel										{	display: none !important; }

/* Seitenabstand der Header-Zeile. Die Zeile ist hoechstens so breit wie der Inhalt
   (992px) und steht mittig - auf grossen Bildschirmen fluchtet das Logo damit von
   selbst mit Leiste und Seite. Erst wenn das Fenster schmaler wird, stiesse es an
   den Rand: dann 1rem wie die Leiste darueber (blocks/accessibility/style.css). */
.wp-block-group:is(.is-style-iuno-header, .is-style-iuno-header-glas:not(main *))	{	gap: 0; padding: 0; }
@media (max-width: calc(992px + 2rem)) {
	.wp-block-group:is(.is-style-iuno-header, .is-style-iuno-header-glas:not(main *))	{	padding: 0 1rem; }
}

/* Transparenter Header: Beginnt der Inhalt mit einem Cover, liegt die Zeile mit
   Logo und Menue durchsichtig auf dem Bild. Die Leiste mit Barrierefreiheit und
   Sprache bleibt oben im Fluss; die Zeile wird absolut direkt darunter gelegt
   (top: 100% des Headers), das Cover rueckt dadurch nach oben. Breite und
   Zentrierung kommen weiter aus dem Layout (alignwide: max-width, margin auto).
   Zwei Template-Varianten: main ist selbst post-content (DB-Kopien) oder main
   umschliesst post-content (Theme-Dateien). */
.wp-site-blocks:has(> main > .wp-block-cover:first-child, > main > .wp-block-post-content:first-child > .wp-block-cover:first-child) {
	> header																{	position: relative; overflow-x: clip; }
	> header .wp-block-group:is(.is-style-iuno-header, .is-style-iuno-header-glas)	{	position: absolute; top: 100%; left: 0; right: 0; z-index: 10; --iuno-flaeche: var(--base-white); }
}
/* Farbe nach Cover-Helligkeit: WordPress setzt .is-light, wenn die Ueberlagerung
   hell ist. Auf dunklem Cover werden Logo und Menue-Symbol weiss - die feste
   Logo-Farbe (has-coffee-color, mit !important) wird dafuer ueberstimmt.
   --iuno-flaeche: gefuellte Buttons in der Zeile schreiben in der Farbe des Covers
   (hell weiss, dunkel coffee), nicht in der des Seitengrunds (frontend.css). */
.wp-site-blocks:has(> main > .wp-block-cover:first-child:not(.is-light), > main > .wp-block-post-content:first-child > .wp-block-cover:first-child:not(.is-light)) {
	> header .wp-block-group:is(.is-style-iuno-header, .is-style-iuno-header-glas)	{	color: var(--wp--preset--color--white); --iuno-flaeche: var(--base-coffee); }
	> header .wp-block-group:is(.is-style-iuno-header, .is-style-iuno-header-glas) .has-text-color	{	color: inherit !important; }
}

/* Stil "Header Glas": Glas nur beim Hover (oder Tastaturfokus), mit dem Schalter
   "Immer zeigen" (.is-iuno-glas-immer) dauerhaft. Farbe, Deckkraft und Unschaerfe
   kommen aus der Gruppe (Hintergrundfarbe, Bereich "Glas"); das Glas selbst
   zeichnet der Abschnitt "groups" weiter unten. Solange es nur beim Hover kommt,
   greift auch die Textfarbe der Hintergrundfarbe nicht - sonst stuende die Schrift
   ohne Hover auf dem falschen Grund.
   Im Header zusaetzlich: wie "Header" (Abstand, transparent auf dem Cover), das
   Glas reicht von Rand zu Rand (inset seitlich 50% - 50vw; der Header schneidet
   den Ueberstand ab, overflow-x: clip) und erscheint nur auf einem Cover. */
.wp-block-group.is-style-iuno-header-glas:not(.is-iuno-glas-immer)			{	color: inherit; --iuno-flaeche: inherit; }
.wp-block-group.is-style-iuno-header-glas::before							{	opacity: 0; transition: opacity 0.3s; }
.wp-block-group.is-style-iuno-header-glas:is(:hover, :focus-within, .is-iuno-glas-immer)::before	{	opacity: 1; }
header .wp-block-group.is-style-iuno-header-glas::before					{	display: none; }
.wp-site-blocks:has(> main > .wp-block-cover:first-child, > main > .wp-block-post-content:first-child > .wp-block-cover:first-child) {
	> header .wp-block-group.is-style-iuno-header-glas::before					{	display: block; inset: 0 calc(50% - 50vw); }
}

footer .is-style-iuno-footer												{	gap: 0; }


/* cover */
.wp-block-cover																{	overflow: visible; }
.wp-block-cover + div.wp-block-group 										{	padding-top: 5rem; }


/* paragraph */
/* Absaetze und Listen haben nie Aussenabstand nach oben oder unten - Abstaende
   entstehen ausschliesslich mit Abstandshaltern. Ohne !important: ein im Editor
   bewusst gesetzter Abstand (Inline-Stil) gewinnt weiterhin. Der fruehere
   Standard von 1rem nach unten und der Stil "kein Abstand" sind damit entfallen. */
p, .wp-block-list															{	margin-top: 0; margin-bottom: 0; }
/* Zwei Standard-Absaetze (ohne Absatz-Stil) direkt hintereinander: 1rem dazwischen.
   is-style-default setzt WordPress, wenn "Standard" einmal ausdruecklich gewaehlt
   wurde - auch das ist Standard. Ein im Editor gesetzter Aussenabstand steht inline
   und gewinnt. */
.wp-block-paragraph:is(:not([class*="is-style-"]), .is-style-default) + .wp-block-paragraph:is(:not([class*="is-style-"]), .is-style-default)	{	margin-top: 1rem; }

/* Stile "wie h1".."wie h6": Absatz sieht aus wie die jeweilige Ueberschrift.
   Groessen kommen aus denselben Variablen wie die echten Headings
   (--iuno-hN-size, oben im :root definiert, per theme.json auch an h1-h6 gebunden).
   So laufen Headings und diese Stile nie auseinander - auch beim Gewicht: H1 und H2
   sind ExtraLight (200), "fett" darin Medium (500), siehe frontend.css. */
.wp-block-paragraph.is-style-iuno-h1,
.wp-block-paragraph.is-style-iuno-h2,
.wp-block-paragraph.is-style-iuno-h3,
.wp-block-paragraph.is-style-iuno-h4,
.wp-block-paragraph.is-style-iuno-h5,
.wp-block-paragraph.is-style-iuno-h6										{	font-family: var(--wp--preset--font-family--montserrat); font-weight: 700; line-height: 1.2; -webkit-hyphens: none; hyphens: none; }
.wp-block-paragraph.is-style-iuno-h1										{	font-size: var(--iuno-h1-size); text-transform: uppercase; font-weight: 200; }
.wp-block-paragraph.is-style-iuno-h2										{	font-size: var(--iuno-h2-size); text-transform: uppercase; font-weight: 200; }
.wp-block-paragraph.is-style-iuno-h3										{	font-size: var(--iuno-h3-size); text-transform: uppercase; }
.wp-block-paragraph.is-style-iuno-h4										{	font-size: var(--iuno-h4-size); text-transform: none; }
.wp-block-paragraph.is-style-iuno-h5										{	font-size: var(--iuno-h5-size); text-transform: none; }
.wp-block-paragraph.is-style-iuno-h6										{	font-size: var(--iuno-h6-size); text-transform: none; }
.wp-block-paragraph.is-style-iuno-h1 :is(strong, b),
.wp-block-paragraph.is-style-iuno-h2 :is(strong, b)							{	font-weight: 500; }

/* Stil "Dachzeile": die kleine Zeile ueber einer Ueberschrift ("Ueber Hardenberg
   Apartments"). Bleibt ein Absatz - als Ueberschrift stuende sie in der Gliederung
   und vor der eigentlichen Ueberschrift. Grossbuchstaben nur per CSS: der Text wird
   normal getippt, durchgehend gross geschriebene Woerter buchstabieren manche
   Screenreader. Abstand zur Ueberschrift per Abstandshalter. */
.wp-block-paragraph.is-style-iuno-dachzeile									{	font-size: 0.75rem; font-weight: 600; line-height: 1.4; letter-spacing: 0.12em; text-transform: uppercase; -webkit-hyphens: none; hyphens: none; }

/* Stil "...": zu lange Inhalte optisch auf 3 Zeilen kuerzen (mehrzeilige Ellipsis). */
.wp-block-paragraph.is-style-iuno-ellipsis									{	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }


/* button */
/* Stil "Kontur": Rahmen 1.5px und Innenabstand stehen in der theme.json
   (styles.blocks.core/button.variations.outline), nicht hier. Nur so gewinnen die
   Werte, die im Editor oder unter Stile pro Button gesetzt werden: WordPress
   schreibt sie in eine eigene Klasse (.is-style-outline--N), die eine Theme-Regel
   mit hoeherer Spezifitaet sonst ueberstimmt. */
/* Farben: gefuellt in der Schriftfarbe, Kontur umgekehrt, beim Hover tauschen
   beide. Eine eigene Schriftfarbe am Button (has-text-color) tritt nur an die
   Stelle der geerbten, das Verhalten bleibt. Eine Hintergrundfarbe gibt es fuer
   Buttons nicht (theme.json, settings.blocks.core/button). Der Rahmen (theme.json,
   1.5px currentColor) bleibt in jedem Zustand stehen - kein Groessensprung. Die
   Beschriftung kommt per -webkit-text-fill-color in der Flaechenfarbe
   (frontend.css): so bleibt color und damit currentColor fuer Fuellung und Rahmen
   die Schriftfarbe. */
.wp-block-button > .wp-block-button__link									{	transition: background-color 0.2s, -webkit-text-fill-color 0.2s; }
.wp-block-button.iuno-umbruch-verhindern > .wp-block-button__link			{	white-space: nowrap; }
.wp-block-button:not(.is-style-outline) > .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link:is(:hover, :focus-visible)	{	background-color: currentColor; -webkit-text-fill-color: var(--iuno-flaeche); }
.wp-block-button:not(.is-style-outline) > .wp-block-button__link:is(:hover, :focus-visible)	{	background-color: transparent; -webkit-text-fill-color: currentColor; }


/* group */
/* Gruppen im normalen Fluss (flow, constrained) sind ein eigener Block-Formatierungs-
   kontext. Sonst fiele ein Aussenabstand des ersten Blocks darin mit dem der Gruppe
   zusammen: ein negativer Abstand nach oben (Buchungsformular, das in den Abschnitt
   darueber ragt) zoege die ganze Gruppe samt Hintergrund mit hoch. Flex- und Raster-
   Gruppen sind ohnehin eigene Kontexte und bleiben unberuehrt. */
.wp-block-group.is-layout-flow,
.wp-block-group.is-layout-constrained										{	display: flow-root; }
.is-style-iuno-margin-1														{	margin: 1rem; }


/* groups */
/* Glas (Bereich "Glas" in der Seitenleiste, editor.js): die Hintergrundfarbe der
   Gruppe mit eigener Deckkraft, dahinter verschwommen (backdrop-filter). Beides
   liegt auf ::before, die Gruppe selbst bleibt durchsichtig - so sperrt der Filter
   keine fest positionierten Inhalte ein. Ohne Palettenfarbe nur die Unschaerfe.
   Gilt auch fuer den Stil "Header Glas", dort ein- und ausgeblendet (siehe oben). */
.wp-block-group:is(.has-iuno-glas, .is-style-iuno-header-glas)				{	position: relative; isolation: isolate; }
.wp-block-group:is(.has-iuno-glas, .is-style-iuno-header-glas):is(.has-toffee-background-color, .has-black-background-color, .has-white-background-color, .has-taupe-background-color, .has-coffee-background-color, .has-dust-background-color, .has-parchment-background-color)	{	background-color: transparent !important; }
.wp-block-group:is(.has-iuno-glas, .is-style-iuno-header-glas)::before		{	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; border-radius: inherit;
																			background-color: color-mix(in srgb, var(--overlap-color, transparent) var(--iuno-glas-deckkraft, 100%), transparent);
																			-webkit-backdrop-filter: blur(var(--iuno-glas-unschaerfe, 0px)) saturate(var(--iuno-glas-saettigung, 100%)); backdrop-filter: blur(var(--iuno-glas-unschaerfe, 0px)) saturate(var(--iuno-glas-saettigung, 100%)); }
.wp-block-group.is-style-iuno-narrow										{	width: 100%; max-width: 800px; }
/* Die Spalten-Stile machen aus der Gruppe ein Grid. Das gap kommt aus dem
   eingestellten Blockabstand, 4rem ist der Rueckfall: --iuno-spalten-gap setzt
   iuno_render_spalten_stil_blockabstand() (inc/blocks.php) inline am Block, im
   Editor der HOC withSpaltenStilBlockabstand (editor.js). Direkt auf WordPress'
   Wert kann die Regel nicht hoeren — bei den Layouts Fluss/Eingeschraenkt schreibt
   WordPress den Blockabstand als margin an die Kinder statt als gap. */
.wp-block-group.is-style-iuno-33-33-33,
.wp-block-post-template.is-style-iuno-33-33-33								{	gap: var(--iuno-spalten-gap, 4rem); display: grid; grid-template-columns: repeat(3, 1fr); }
.wp-block-group.is-style-iuno-50-50,
.wp-block-post-template.is-style-iuno-50-50									{	gap: var(--iuno-spalten-gap, 4rem); display: grid; grid-template-columns: repeat(2, 1fr); }
/* Ab welcher Fensterbreite die Spalten untereinander stehen, stellt HARDENBERG →
   General ein; die Media Queries dazu erzeugt inc/spalten.php (inline an dieser
   Datei), ebenso die von "Spaltenhoehe fuellen" und den Abstandshaltern. */
/* Im Grid steht jede Spalte in ihrer eigenen Zelle — die Kind-Margins, die WordPress
   fuer den Blockabstand schreibt, wuerden dort zusaetzlich Luft machen. */
.wp-block-group.is-style-iuno-33-33-33 > *,
.wp-block-group.is-style-iuno-50-50 > *,
.wp-block-post-template.is-style-iuno-33-33-33 > *,
.wp-block-post-template.is-style-iuno-50-50 > *								{	margin-block-start: 0; margin-block-end: 0; }


/* image */
.wp-block-image																{	margin: 0; }
/* Stil "Spaltenhoehe fuellen": Steht das Bild nebeneinander mit anderen Spalten
   (Gruppen-Stile 50 50 / 33 33 33), bestimmt allein der Inhalt der Nachbarspalten
   die Zeilenhoehe. Das Bild liegt absolut im <figure> und fuellt es per object-fit
   cover - es wird also beschnitten, nicht verzerrt. Gestapelt (mobil) bleibt es ein
   normales Bild. !important gegen die Inline-Masse aus dem Editor (Breite, Hoehe,
   Seitenverhaeltnis); im Editor sitzt das Bild zusaetzlich in der Resize-Box.
   Die Regeln stehen in inc/spalten.php, weil sie am einstellbaren Umbruch haengen. */


/* video */
figure.wp-block-video														{	margin-block-end: 0; }


/* custom-icon → ausgelagert nach blocks/custom-icon/style.css */


/* accordion */
.wp-block-accordion															{	display: flex; flex-direction: column; gap: 2rem; }
/* Kopfzeile immer in h3-Groesse, unabhaengig von der gewaehlten Ebene: die Ebene waehlt
   man fuer die Dokumentstruktur, nicht fuer die Optik. Der Toggle traegt von Core
   font-size: inherit und gibt sie an den Titel weiter. Die Gross-/Kleinschreibung haengt
   davon NICHT ab — dafuer gibt es den Schalter am Container. */
.wp-block-accordion .wp-block-accordion-heading								{	margin: 0; font-size: var(--iuno-h3-size); }
.wp-block-accordion .wp-block-accordion-heading__toggle 					{	position: relative; width: auto; overflow: visible; transform: translateZ(0);
																				display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center;
																				column-gap: 0; padding: 0.15rem 0.5rem 0.15rem 0; margin: 0;
																										column-gap: 0; }
.wp-block-accordion .wp-block-accordion-heading__toggle-title				{	font-family: inherit }
.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title		{	text-decoration: none; }

.wp-block-accordion .wp-block-accordion-item.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon	{	transform: none; }
.wp-block-accordion .wp-block-accordion-heading__toggle-icon 				{	position: relative; visibility: hidden; width: 1.5rem; }
.wp-block-accordion .wp-block-accordion-heading__toggle-icon::before 		{	content: "+"; visibility: visible; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.wp-block-accordion .wp-block-accordion-item.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon::before		{	content: "−"; }

.wp-block-accordion-panel													{	width: fit-content; }


/* Groß-/Kleinschreibung der Köpfe — Schalter am Container (editor.js, Attribut
   'grossschreibung'). Eigene Klassennamen statt has-uppercase/has-mixedcase: deren Regel
   in frontend.css setzt ein vererbbares text-transform, das am Container bis in den
   Panel-Inhalt durchschlüge. Ohne Wahl bleibt es bei der Ebene des Kopfes (h1–h3 groß). */
.wp-block-accordion.has-uppercase-headings .wp-block-accordion-heading__toggle-title		{	text-transform: uppercase; }
.wp-block-accordion.has-mixedcase-headings .wp-block-accordion-heading__toggle-title		{	text-transform: none; }


/* Gruppenstil "Mobil stapeln" (Zeilen-Gruppe): bis 600px untereinander, der Gap
   der Gruppe wird zum Zeilenabstand. Die Ausrichtung mobil setzt editor.js als
   Klasse (iuno-mobil-mitte / -rechts / -breit), ohne Wahl links. Fliesstext
   behaelt volle Breite und linke Kante (sonst rueckt ein kurzer Absatz als
   Kaestchen in die Mitte). flex-basis auto: Eine feste Breite der Kinder
   (Kind-Layout "Fest") stuende in der Spalte sonst als Hoehe da. */
@media (max-width: 600px) {
	.wp-block-group.is-style-iuno-mobil-stapeln.is-layout-flex					{	flex-direction: column; align-items: flex-start; }
	.wp-block-group.is-style-iuno-mobil-stapeln.is-layout-flex > *				{	flex-basis: auto; max-width: 100%; }
	.wp-block-group.is-style-iuno-mobil-stapeln.is-layout-flex.iuno-mobil-mitte	{	align-items: center; }
	.wp-block-group.is-style-iuno-mobil-stapeln.is-layout-flex.iuno-mobil-rechts	{	align-items: flex-end; }
	.wp-block-group.is-style-iuno-mobil-stapeln.is-layout-flex.iuno-mobil-breit	{	align-items: stretch; }
	.wp-block-group.is-style-iuno-mobil-stapeln.is-layout-flex
		> :where(p, h1, h2, h3, h4, h5, h6, ul, ol)							{	align-self: stretch; }
}


/* Schalter "Volle Bildschirmhoehe" an der Gruppe (editor.js, Klasse
   iuno-volle-hoehe): mindestens so hoch wie das Browserfenster. 100dvh folgt
   mobil der ein- und ausfahrenden Adressleiste, 100vh ist der Rueckfall fuer
   aeltere Browser. Eine eingetragene Mindesthoehe steht inline und gewinnt.
   "Inhalt vertikal" (iuno-hoehe-mitte / -unten / -verteilt) richtet den Inhalt
   der Layouts Gruppe und Fluss aus, die selbst keine vertikale Ausrichtung
   kennen: als Flex-Spalte. width 100%: Die Kinder tragen dort margin auto
   (Inhaltsbreite) und wuerden sonst auf ihre Textbreite schrumpfen. Zeile und
   Stapel haben die Ausrichtung schon in der Werkzeugleiste. */
.wp-block-group.iuno-volle-hoehe											{	min-height: 100vh; min-height: 100dvh; }
.wp-block-group.iuno-volle-hoehe:is(.is-layout-flow, .is-layout-constrained):is(.iuno-hoehe-mitte, .iuno-hoehe-unten, .iuno-hoehe-verteilt)	{	display: flex; flex-direction: column; }
.wp-block-group.iuno-volle-hoehe:is(.is-layout-flow, .is-layout-constrained):is(.iuno-hoehe-mitte, .iuno-hoehe-unten, .iuno-hoehe-verteilt) > *	{	width: 100%; }
.wp-block-group.iuno-volle-hoehe:is(.is-layout-flow, .is-layout-constrained).iuno-hoehe-mitte	{	justify-content: center; }
.wp-block-group.iuno-volle-hoehe:is(.is-layout-flow, .is-layout-constrained).iuno-hoehe-unten	{	justify-content: flex-end; }
.wp-block-group.iuno-volle-hoehe:is(.is-layout-flow, .is-layout-constrained).iuno-hoehe-verteilt	{	justify-content: space-between; }


/* core/spacer: Abstand nur in einem Layout-Regime ("Nur mobil" / "Nur Desktop").
   Der Umschaltpunkt ist der Umbruch der 2 Spalten - "mobil" heisst hier also
   dasselbe wie dort. Die Regeln erzeugt inc/spalten.php (display:none statt
   Hoehe 0, damit in Containern mit blockGap auch dessen Luecke verschwindet). */
