/*
Theme Name: Natura
Theme URI: https://www.natura-flooring.de/
Author: AI-Erlernt
Author URI: https://ai-erlernt.de
Description: Block-Theme fuer Natura Flooring (Grosshandel Boden, Garten, Wand). Heller warmer Grundton, Natura-Dunkelgruen als Marken-Anker, Lato lokal eingebettet.
Version: 4.3.2
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: natura
*/

/* ============================================================
 * 0 - MARKENWERTE UND ALTLASTEN-BRUECKE
 *
 * Die Palette in theme.json ist auf neun Rollen reduziert. Aeltere
 * Slugs (mist-white, forest-deep, nat-ink, brand-green ...) leben noch
 * im Markup einzelner Seiten und in den Plugin-Stylesheets. Sie werden
 * hier auf die neuen Rollen umgebogen, damit nichts unformatiert
 * zurueckbleibt. Neues Markup benutzt ausschliesslich die neun Rollen.
 * ============================================================ */
:root {
	--nat-base: #FFFFFF;
	--nat-surface: #F5F4EF;
	--nat-sage: #EDF1E4;
	--nat-ink: #1E231C;
	--nat-ink-soft: #5B6157;
	--nat-line: #DFDDD3;
	--nat-accent: #384A32;
	--nat-accent-2: #79A32E;
	--nat-on-dark: #F1F4EA;
	/* Hellgruen als TEXT: #79A32E liegt auf Weiss bei 2,96:1 und auf Warmgrau
	   bei 2,68:1 (Durchsicht 14.09.2026, B-1). Eyebrow, Fokusring und
	   Kleintexte nehmen deshalb diese dunklere Stufe: 5,9 auf Weiss, 5,3 auf
	   Warmgrau, 5,1 auf Sage. Flaechen und Linien bleiben bei --nat-accent-2. */
	--nat-accent-2-text: #4F6E1C;

	--nat-line-dark: rgba(241, 244, 234, 0.22);
	--nat-radius: 4px;
	--nat-sec-y: clamp(3.25rem, 6.5vw, 5.75rem);
	--nat-shadow: 0 18px 40px -28px rgba(30, 35, 28, 0.45);

	/* DIE SEITENSCHIENE (Abschnitt 2a). Aussenrand und Innenbreite stehen
	   genau hier - jede Sektion der Seite rechnet damit. */
	--nat-gutter: clamp(1.25rem, 4vw, 2.5rem);
	--nat-rail: 1400px;
	--nat-rail-pad: max(var(--nat-gutter), calc(50vw - var(--nat-rail) / 2));

	/* Von reveal.js mit der echten Kopfzeilenhoehe ueberschrieben. */
	--nat-header-h: 4.5rem;

	/* Bruecke: alte Preset-Variablen auf die neuen Rollen */
	--wp--preset--color--mist-white: var(--nat-surface);
	--wp--preset--color--paper-pure: var(--nat-base);
	--wp--preset--color--paper: var(--nat-surface);
	--wp--preset--color--sage-mist: var(--nat-sage);
	--wp--preset--color--bone-green: var(--nat-on-dark);
	--wp--preset--color--sage-line: var(--nat-line);
	--wp--preset--color--subtle: var(--nat-line);
	--wp--preset--color--nat-ink: var(--nat-ink);
	--wp--preset--color--contrast: var(--nat-ink);
	--wp--preset--color--nat-ink-soft: var(--nat-ink-soft);
	--wp--preset--color--muted: var(--nat-ink-soft);
	--wp--preset--color--brand-green: var(--nat-accent);
	--wp--preset--color--brand-green-deep: var(--nat-accent);
	--wp--preset--color--natura: var(--nat-accent);
	--wp--preset--color--brand-green-bright: var(--nat-accent-2);
	--wp--preset--color--timber: var(--nat-accent-2);
	--wp--preset--color--forest-deep: var(--nat-accent);
	--wp--preset--color--forest-deep-2: #46603D;
	--wp--preset--color--accent-contrast: var(--nat-base);
}

/* Alte Utility-Klassen aus dem Bestandsmarkup weiter bedienen. */
.has-mist-white-background-color { background-color: var(--nat-surface) !important; }
.has-paper-pure-background-color { background-color: var(--nat-base) !important; }
.has-sage-mist-background-color { background-color: var(--nat-sage) !important; }
.has-forest-deep-background-color { background-color: var(--nat-accent) !important; }
.has-nat-ink-color { color: var(--nat-ink) !important; }
.has-nat-ink-soft-color { color: var(--nat-ink-soft) !important; }
.has-brand-green-color,
.has-brand-green-deep-color { color: var(--nat-accent) !important; }
.has-brand-green-bright-color { color: var(--nat-accent-2) !important; }
.has-mist-white-color,
.has-bone-green-color { color: var(--nat-on-dark) !important; }
.has-sage-line-color { color: var(--nat-line) !important; }

/* ============================================================
 * 1 - GRUNDLAGEN
 * ============================================================ */
* { -webkit-tap-highlight-color: rgba(56, 74, 50, 0.12); }
/* Metrik-Ersatz fuer Lato, solange die woff2 laedt (Durchsicht 14.09.2026,
   T-1): Arial wird auf Latos Masse getrimmt, damit der Wechsel zur echten
   Schrift keine Zeilen verschiebt (CLS Desktop lag bei 0,21 bis 0,66, Ursache
   laut Lighthouse allein der Font-Wechsel). Werte nach Latos Metriken
   (unitsPerEm 2000, Ascender 1974, Descender 426) bezogen auf Arial. */
@font-face {
	font-family: "Lato Fallback";
	src: local("Arial"), local("Helvetica"), local("Liberation Sans");
	size-adjust: 97.4%;
	ascent-override: 101.3%;
	descent-override: 21.9%;
	line-gap-override: 0%;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

/* Das Lesemass steckt in der Inhaltsspalte (contentSize 680 px), nicht im
   einzelnen Absatz. Ein zusaetzliches max-width am Absatz wuerde ihn
   schmaler machen als die Ueberschrift darueber - und damit wieder zwei
   Achsen erzeugen. */

.nat h2 + p,
.nat h3 + p,
.nat h4 + p { margin-top: 0.5rem; }

/* EINE Lesekante. Vorher wechselte die Seite viermal je Bildschirm
   zwischen zentriert und linksbuendig - und auf dem Telefon war ohnehin
   alles links. Damit hatte dieselbe Seite zwei Kompositionen. */
.nat :is(h1, h2, h3, h4, p, li).has-text-align-center { text-align: left; }
.nat .has-text-align-center p { margin-left: 0; margin-right: 0; }

img { max-width: 100%; height: auto; }

:where(a):focus-visible,
:where(button):focus-visible,
:where(summary):focus-visible,
:where(input, textarea, select):focus-visible {
	outline: 2px solid var(--nat-accent-2-text);
	outline-offset: 2px;
	border-radius: 2px;
}

/* Sprungmarken landen nicht unter der mitlaufenden Kopfzeile. */
:target { scroll-margin-top: 6rem; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

/* ============================================================
 * 2 - SEKTIONSRHYTHMUS
 *
 * Eine Sektion = eine volle Breite mit eigenem Grund. Der Wechsel
 * zwischen Weiss und Warmgrau ist die Gliederungssprache; Dunkelgruen
 * ist der Anker und kommt hoechstens einmal pro Seite vor.
 * ============================================================ */
/* Die Sektionen liegen im eingeschraenkten Inhaltsbereich und muessen auf
   die volle Fensterbreite ausbrechen. Ohne diese Regel steht die ganze
   Seite in einer schmalen Mittelspalte. */
main .alignfull,
.wp-block-post-content > .alignfull {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	width: 100vw;
	max-width: 100vw;
}

.nat-sec {
	padding-top: var(--nat-sec-y);
	padding-bottom: var(--nat-sec-y);
}

/* Sektionen stossen ohne Spalt aneinander (Kundenwunsch Runde 9, 10.08.2026:
   "die weissen Balken sollen raus").
   Ursache der Balken: WordPress legt auf jedes Kind des Inhaltsbereichs den
   Blockabstand aus theme.json (blockGap 1,35 rem = 21,6 px) als
   `margin-block-start`. Zwischen zwei randlosen Sektionen entstand daraus ein
   22-px-Streifen, durch den der weisse Seitengrund schien - auf JEDER Seite,
   zwischen JEDER Sektion. Die Sektionen tragen ihren Abstand selbst als
   Polsterung (`--nat-sec-y`), der Blockabstand ist hier also falsch am Platz.
   Bewusst an `.alignfull` gehaengt: alle Sektionen dieser Seite sind randlos,
   der Blockabstand INNERHALB einer Sektion bleibt unangetastet.

   Derselbe Blockabstand sitzt eine Ebene hoeher noch einmal: `.wp-site-blocks`
   legt ihn auf Kopfbereich, Inhalt und Fussbereich. Das war der weisse Streifen
   direkt unter der Navigation und der zwischen Seitenende und Fussbereich. */
main .wp-block-post-content > .alignfull,
main .wp-block-post-content > .nat-sec,
main .wp-block-post-content > .nat-page-hero,
.wp-site-blocks > header,
.wp-site-blocks > main,
.wp-site-blocks > footer {
	margin-block-start: 0;
	margin-block-end: 0;
}

.nat-sec--tight {
	padding-top: clamp(2rem, 4vw, 3rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
}

/* Sektionsgrenzen sind Kanten, keine Uebergaenge (Kundenwunsch Runde 5:
   "keine Blendings, sondern klar deutliche Unterteilungen").
   Regel: JEDE Sektion, die auf eine andere folgt, bekommt eine sichtbare
   Trennlinie oben. Kein Farbverlauf, keine Maske, kein Schlagschatten. */
.nat-sec + .nat-sec { border-top: 1px solid var(--nat-line); }
/* Auf dem dunklen Grund traegt die helle Linie die Kante. */
.nat-sec + .nat-sec.has-accent-background-color,
.nat-sec.has-accent-background-color + .nat-sec { border-top-color: var(--nat-line-dark); }

.nat-sec { position: relative; }

/* ============================================================
 * 2a - DIE SEITENSCHIENE
 *
 * Vorher hatte dieselbe Seite vier linke Kanten: Fliesstext klebte am
 * Fensterrand (Wurzelabstand, 1520 px breit), Kopfbereiche standen auf der
 * Breitstufe (1400 px), das Schaufenster auf einer eigenen 1360-px-Marke und
 * Rechtstexte in einer 680-px-Mittelspalte. Der Grund war die alte Regel
 * `.nat-sec > * { max-width: 100% }` - sie hat die Inhaltsbreite aus
 * theme.json ueberschrieben, ohne einen Ersatz anzubieten.
 *
 * Jetzt traegt die SEKTION die Schiene (als Polsterung), nicht das einzelne
 * Kind. Damit beginnt alles - Kopfbereich, Schaufenster, Ueberschrift,
 * Fliesstext, Formular - auf derselben linken Kante, und der Text bekommt
 * trotzdem ein Lesemass, ohne dazu in die Mitte zu rutschen.
 * ============================================================ */
main .wp-block-post-content > .alignfull,
main .nat-sec,
main .nat-page-hero {
	padding-inline: var(--nat-rail-pad);
}

/* Die Kinder haengen an der linken Schienenkante. WordPress setzt hier sonst
   `margin-left/right: auto !important` (Layout "constrained") und wuerde jedes
   Kind einzeln zentrieren - das erzeugte genau die zweite Achse.
   Auch als "volle Breite" markierte Bloecke INNERHALB einer Sektion (etwa der
   Schaufenster-Block auf den Kategorieseiten) gehoeren auf die Schiene: die
   Sektion selbst ist bereits randlos, der Einzug ist Absicht. Ohne diese
   Zeilen zogen sie sich um den Wurzelabstand nach links aus der Flucht. */
main .wp-block-post-content > .alignfull > *,
main .nat-sec > *,
main .nat-page-hero > * {
	max-width: 100%;
	width: auto;
	margin-inline: 0 !important;
}

/* Lesemass: Fliesstext wird nicht breiter als rund 72 Zeichen - er bleibt
   aber linksbuendig auf der Schiene, statt als schmale Saeule zu zentrieren.
   Ausgenommen sind Zeilen, die bewusst ueber die volle Breite laufen. */
main .nat-sec > :is(p, ul, ol, dl),
main .nat-page-hero > :is(p, ul, ol, dl),
main .wp-block-post-content > .alignfull > :is(p, ul, ol, dl) {
	max-width: 72ch;
}
main :is(.nat-sec, .nat-page-hero) > :is(.ae-eyebrow, .nat-eyebrow, .nat-meta, .nat-stat__num, .nat-stat__label) {
	max-width: none;
}

/* Dunkler Anker */
.nat-dark,
.nat-sec.has-accent-background-color {
	background-color: var(--nat-accent);
	color: var(--nat-on-dark);
}
.nat-dark :is(h1, h2, h3, h4, p, li, span, strong, dt, dd) { color: var(--nat-on-dark); }
.nat-dark a:not(.wp-block-button__link) { color: #FFFFFF; text-decoration-color: rgba(255, 255, 255, 0.5); }
.nat-dark a:not(.wp-block-button__link):hover { color: var(--nat-accent-2); }
.nat-dark hr,
.nat-dark .nat-rule { border-color: var(--nat-line-dark); }

/* ============================================================
 * 3 - TYPOGRAFIE-BAUSTEINE
 * ============================================================ */

/* Eyebrow: sitzt auf derselben Achse wie die Ueberschrift darunter. */
.ae-eyebrow,
.nat-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 0.85rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nat-accent-2-text);
	max-width: none !important;
}
.ae-eyebrow::before,
.nat-eyebrow::before {
	content: "";
	flex: 0 0 auto;
	width: 26px;
	height: 2px;
	background: var(--nat-accent-2);
}
.has-text-align-center > .ae-eyebrow,
.has-text-align-center .nat-eyebrow,
.ae-eyebrow.has-text-align-center,
.nat-eyebrow.has-text-align-center { justify-content: center; }
/* Auf dem dunklen Anker liegt Hellgruen bei 3,2:1, Knochenweiss bei 8,6:1. */
.nat-dark .ae-eyebrow,
.nat-dark .nat-eyebrow { color: var(--nat-on-dark); }

/* Vorspann unter der Seitenueberschrift */
.nat-lead {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.55;
	color: var(--nat-ink-soft);
}
.nat-dark .nat-lead { color: var(--nat-on-dark); opacity: 0.88; }

/* Technische Datenzeile / Meta */
.nat-meta {
	font-size: 0.875rem;
	line-height: 1.45;
	color: var(--nat-ink-soft);
	max-width: none;
}

/* Bestandsklasse aus Runde 1 - jetzt nur noch Feinschliff, keine
   eigene Schriftfamilie und keine Inline-Groessen mehr noetig. */
.nat-display { letter-spacing: -0.018em; }
/* Bestandsmarkup traegt teils harte Schriftgroessen im style-Attribut. Die
   werden verworfen - aber eine Ueberschrift faellt dabei NICHT auf
   Fliesstextgroesse zurueck, sondern auf ihre Stufe aus theme.json. Genau das
   ist auf den Rechtstextseiten passiert: die H1 "Impressum" stand dort in
   Absatzgroesse. */
.nat :is(p, span, div, li).nat-display[style*="font-size"] { font-size: inherit !important; }
.nat h1.nat-display[style*="font-size"] { font-size: var(--wp--preset--font-size--xxx-large) !important; }
.nat h2.nat-display[style*="font-size"] { font-size: var(--wp--preset--font-size--xx-large) !important; }
.nat h3.nat-display[style*="font-size"] { font-size: var(--wp--preset--font-size--x-large) !important; }
.nat h4.nat-display[style*="font-size"] { font-size: var(--wp--preset--font-size--large) !important; }

.nat-rule { border: 0; border-top: 1px solid var(--nat-line); margin: 0; }

/* ============================================================
 * 3a - KNOEPFE
 *
 * Befund aus V2a: gefuellte und umrandete Knoepfe waren unterschiedlich
 * gross, ohne dass im Markup etwas dazu stand. Ursache ist ein reiner
 * Reihenfolge-Gleichstand. theme.json gibt das gefuellte Mass in rem aus
 *
 *   :root :where(.wp-block-button__link) { padding: 0.95rem 1.75rem }
 *
 * der Core-Blockstil setzt die Umriss-Variante in em dagegen
 *
 *   :root :where(.wp-block-button.is-style-outline > .wp-block-button__link)
 *   { border: 2px solid currentColor; padding: 0.667em 1.333em }
 *
 * Beide Selektoren haben Spezifitaet 0,1,0 - :where() zaehlt null. Das
 * Core-Stylesheet wird nach den globalen Stilen ausgegeben und gewinnt
 * deshalb: bei 17 px Schrift war der Umriss-Knopf 4 px niedriger und
 * 7 px schmaler als der gefuellte.
 *
 * Der .nat-Praefix hier hat Spezifitaet 0,3,0 und entscheidet die Sache
 * eindeutig statt ueber die Reihenfolge.
 * ============================================================ */

/* Umriss-Knopf auf exakt dieselben Aussenmasse wie der gefuellte.
   Die 2-px-Kante wird von der Polsterung abgezogen, sonst waere der
   Knopf am Ende 4 px hoeher statt gleich hoch. */
.nat .wp-block-button.is-style-outline > .wp-block-button__link {
	padding: calc(0.95rem - 2px) calc(1.75rem - 2px);
	border-width: 2px;
	font-size: var(--wp--preset--font-size--medium);
	border-radius: var(--nat-radius);
	color: var(--nat-accent);
}

/* Auf dunklem Grund wuerde Dunkelgruen auf Dunkelgruen verschwinden. */
.nat .nat-dark .wp-block-button.is-style-outline > .wp-block-button__link,
.nat-dark .wp-block-button.is-style-outline > .wp-block-button__link {
	color: var(--nat-on-dark);
}

/* .nat-cta war bis V2a eine tote Klasse ohne eine einzige Regel. Sie ist
   jetzt der Marker der Haupt-Handlungsaufforderungen und sorgt dafuer,
   dass zwei Knoepfe nebeneinander wirklich gleich breit sind und nicht
   nur gleich gepolstert. */
.nat .nat-cta .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 16rem;
	text-align: center;
}

/* ============================================================
 * 4 - KOPFZEILE
 * ============================================================ */
header.wp-block-template-part,
.wp-site-blocks > header {
	position: sticky;
	top: 0;
	z-index: 90;
}
.nat-siteheader {
	background: rgba(255, 255, 255, 0.94);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
	backdrop-filter: saturate(140%) blur(10px);
	border-bottom: 1px solid var(--nat-line);
	transition: box-shadow 0.25s ease;
}
.nat-siteheader__logo { margin: 0; }
.nat-siteheader__logo img {
	display: block;
	width: auto;
	height: clamp(30px, 3.4vw, 40px);
}
.nat-siteheader .wp-block-navigation {
	font-size: 0.95rem;
	letter-spacing: 0.005em;
}
.nat-siteheader .wp-block-navigation a {
	color: var(--nat-ink);
	text-decoration: none;
	padding-block: 0.45rem;
	border-bottom: 2px solid transparent;
}
.nat-siteheader .wp-block-navigation a:hover,
.nat-siteheader .wp-block-navigation .current-menu-item > a,
.nat-siteheader .wp-block-navigation .current-menu-ancestor > a {
	color: var(--nat-accent);
	border-bottom-color: var(--nat-accent-2);
}
.nat-siteheader .wp-block-navigation__submenu-container {
	border: 1px solid var(--nat-line);
	border-radius: var(--nat-radius);
	box-shadow: var(--nat-shadow);
	padding-block: 0.4rem;
	min-width: 15rem;
}
.nat-siteheader .wp-block-navigation__submenu-container a { border-bottom: 0; padding-block: 0.55rem; }
.nat-siteheader .wp-block-navigation__submenu-container a:hover { background: var(--nat-sage); }

/* ============================================================
 * 5 - SEITENKOPF (HERO)
 *
 * Zwei Auspraegungen: mit Bild (Standard fuer Sortimentsseiten) und
 * ohne Bild (Rechtstexte, FAQ). Beide sind bewusst halbhoch - kein
 * Fullscreen, kein Scroller (Protokoll 08.07.2026, Abschnitt 3).
 * ============================================================ */
.nat-page-hero {
	background-color: var(--nat-surface);
	padding-top: clamp(2rem, 3.6vw, 3rem);
	padding-bottom: clamp(2rem, 3.6vw, 3rem);
	border-bottom: 1px solid var(--nat-line);
}
.nat-page-hero h1 { margin-top: 0; }
.nat-page-hero > .wp-block-columns { align-items: center; }

/* Der Kopfbereich ist bewusst halbhoch: darunter soll sofort das Schaufenster
   liegen, nicht erst nach einem Bildschirm Text (Kundenwunsch Runde 5). */
.nat-page-hero .nat-hero-media img { max-height: 340px; }

/* Startseite: derselbe halbe Kopfbereich. Das Kennzahlenband soll noch auf
   den ersten Bildschirm passen - die Kante darunter ist dann sichtbar. */
.nat-home-hero {
	padding-top: clamp(2rem, 3.6vw, 3rem);
	padding-bottom: clamp(2rem, 3.6vw, 3rem);
}
.nat-home-hero__img { margin: 0; }
.nat-home-hero__img img {
	display: block;
	width: 100%;
	max-height: 340px;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: var(--nat-radius);
}

/* Die Sektion mit dem Schaufenster rueckt naeher an den Kopfbereich - das
   Schaufenster ist der Grund, warum der Besucher hier ist.
   Die Lesekante der Sektion bleibt links (siehe Abschnitt 1): zentriert wird
   ausschliesslich das Schaufenster selbst, nicht die Ueberschrift darueber. */
.nat-sec:has(.ae-shf--direct) { padding-top: clamp(1.75rem, 3vw, 2.5rem); }
/* Das Schaufenster steht auf derselben linken Kante wie der Rest der Seite
   (Abschnitt 2a). Frueher war seine Buehne als einziger Bereich zentriert -
   im gedockten Zwei-Spalten-Betrieb waere das doppelt falsch. */
.nat-sec:has(.ae-shf--direct) .ae-shf__stage { text-align: left; }

.nat-hero-media {
	margin: 0;
	border-radius: var(--nat-radius);
	overflow: hidden;
	background: var(--nat-sage);
}
.nat-hero-media img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}
.nat-hero-media--tall img { aspect-ratio: 4 / 3; }
/* Steckzaun-Hero (Runde 16b, 19.09.2026): Hochformat-Ambientebild im halbhohen Kopf.
   Mittiger Beschnitt kappte die Zaunoberkante; 44 % zeigt den Zaun von oben bis
   zum Sockel, angeschnitten werden die Blumen unten. */
.nat-hero-media--zaun img { object-position: 50% 44%; }

.nat-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	margin-top: 1.75rem;
	align-items: center;
}

/* ============================================================
 * 6 - VERTRAUENSBAND
 *
 * Hell statt dunkel: das Band sitzt direkt unter dem Hero und wird
 * durch Haarlinien gegliedert, nicht durch eine Fremdflaeche.
 * ============================================================ */
.nat-trust-band {
	background-color: var(--nat-base);
	padding-top: clamp(1.75rem, 3.5vw, 2.75rem);
	padding-bottom: clamp(1.75rem, 3.5vw, 2.75rem);
}
/* Keine eigene Unterkante: seit die Sektionen ohne Spalt aneinanderstossen,
   traegt die Folgesektion die Trennlinie (`.nat-sec + .nat-sec`). Beides
   zusammen ergab eine doppelte, 2 px starke Linie. */
.nat-trust-band { border-bottom: 0; }
/* Das Band trug aus der dunklen Fassung noch eine helle Textfarbe. */
.nat-trust-band.has-surface-color,
.nat-trust-band.has-on-dark-color { color: var(--nat-ink) !important; }

.nat-trust-grid,
.nat-trust-band .nat-stat-grid {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
}
.nat-trust-grid > *,
.nat-trust-band .nat-stat-grid > * {
	flex-basis: auto !important;
	padding: 0.25rem clamp(1rem, 2.5vw, 2rem);
	border-left: 1px solid var(--nat-line);
	margin: 0;
}
.nat-trust-grid > *:first-child,
.nat-trust-band .nat-stat-grid > *:first-child { border-left: 0; padding-left: 0; }

/* Vier Kennzahlen nebeneinander sind ab Tablet die Grenze; auf dem Telefon
   quetscht das Raster die Zahlen ("Witt/en"). Deshalb zwei Spalten mit
   Zeilentrenner statt Spaltentrennern. */
@media (max-width: 900px) {
	.nat-trust-grid,
	.nat-trust-band .nat-stat-grid {
		grid-template-columns: repeat(2, 1fr);
		row-gap: 1.35rem;
	}
	.nat-trust-grid > *,
	.nat-trust-band .nat-stat-grid > * { padding-inline: clamp(0.75rem, 3vw, 1.5rem); }
	.nat-trust-grid > *:nth-child(odd),
	.nat-trust-band .nat-stat-grid > *:nth-child(odd) { border-left: 0; padding-left: 0; }
}
@media (max-width: 420px) {
	.nat-trust-grid,
	.nat-trust-band .nat-stat-grid { grid-template-columns: 1fr; row-gap: 1.1rem; }
	.nat-trust-grid > *,
	.nat-trust-band .nat-stat-grid > * {
		border-left: 0;
		padding-left: 0;
		padding-top: 1.1rem;
		border-top: 1px solid var(--nat-line);
	}
	.nat-trust-grid > *:first-child,
	.nat-trust-band .nat-stat-grid > *:first-child { border-top: 0; padding-top: 0.25rem; }
}

/* .nat-stat sitzt im Bestandsmarkup auf der SPALTE, nicht auf der Zahl -
   die Groesse gehoert deshalb an .nat-stat__num. */
.nat-stat { font-weight: 400; }
.nat-stat__num,
.nat-stat-value {
	display: block;
	margin: 0;
	font-weight: 900;
	font-size: clamp(1.9rem, 3.4vw, 2.9rem);
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--nat-accent);
	max-width: none;
}
.nat-stat__plus { color: var(--nat-accent-2); }
.nat-stat__label,
.nat-stat-label {
	display: block;
	margin: 0.55rem 0 0;
	font-size: 0.875rem !important;
	font-weight: 400;
	line-height: 1.35;
	color: var(--nat-ink-soft);
	max-width: 24ch;
}
.nat-dark .nat-stat__num { color: var(--nat-on-dark); }
.nat-dark .nat-stat__label { color: var(--nat-on-dark); opacity: 0.8; }

/* ============================================================
 * 7 - KACHELN
 *
 * EINE Kachelsprache fuer alles, was anklickbar in eine Kategorie
 * oder auf eine Seite fuehrt. Frueher waren es vier.
 * ============================================================ */
.nat-grid {
	display: grid;
	gap: clamp(1.25rem, 2.2vw, 2rem);
	grid-template-columns: repeat(3, 1fr);
}
.nat-grid--2 { grid-template-columns: repeat(2, 1fr); }
.nat-grid--4 { grid-template-columns: repeat(4, 1fr); }

.nat-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--nat-base);
	border: 1px solid var(--nat-line);
	border-radius: var(--nat-radius);
	overflow: hidden;
	transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}
.nat-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--nat-shadow);
	border-color: #C9CEBD;
}
.nat-card__media,
.nat-card > .wp-block-image,
.nat-card > figure {
	margin: 0;
	overflow: hidden;
	background: var(--nat-sage);
}
.nat-card__media img,
.nat-card > .wp-block-image img,
.nat-card > figure img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.nat-card:hover .nat-card__media img,
.nat-card:hover > .wp-block-image img { transform: scale(1.035); }

/* Bestandsmarkup: Kachel = Spalte mit Bild plus losen Absaetzen (ohne
   eigenen Textkoerper). Die Polsterung muss dann hier entstehen. */
.nat-card > *:not(figure):not(.wp-block-image):not(.nat-card__body) {
	padding-inline: 1.15rem;
	margin-block: 0.1rem;
	max-width: none;
}
.nat-card > :is(figure, .wp-block-image) + *:not(.nat-card__body) { padding-top: 0.95rem; }
.nat-card > *:not(figure):not(.wp-block-image):not(.nat-card__body):last-child { padding-bottom: 1.2rem; }
.nat-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding: 1.15rem 1.25rem 1.35rem;
	flex: 1 1 auto;
}
.nat-card__body :is(h2, h3, h4) {
	margin: 0;
	font-size: 1.25rem;
	line-height: 1.25;
	color: var(--nat-accent);
	text-decoration: none;
}
.nat-card__body p {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.55;
	color: var(--nat-ink-soft);
	max-width: none;
}
.nat-card__count {
	margin-top: auto;
	padding-top: 0.75rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nat-accent-2);
}
/* Ganze Kachel klickbar, Titel bleibt der zugaengliche Link. */
.nat-card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.nat-card a { text-decoration: none; }

/* Textkachel ohne Bild (Zubehoergruppen, Serviceleistungen) */
.nat-card--plain .nat-card__body { padding-top: 1.35rem; }
.nat-card--plain { background: var(--nat-surface); }
.nat-dark .nat-card { background: rgba(255, 255, 255, 0.05); border-color: var(--nat-line-dark); }
.nat-dark .nat-card__body :is(h2, h3, h4) { color: var(--nat-on-dark); }
.nat-dark .nat-card__body p { color: var(--nat-on-dark); opacity: 0.82; }

/* ============================================================
 * 8 - FAQ
 * ============================================================ */
.nat-faq { border-top: 1px solid var(--nat-line); max-width: 46rem; }
.nat-faq details { border-bottom: 1px solid var(--nat-line); }
.nat-faq summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1.5rem;
	padding: 1.15rem 0.15rem;
	font-weight: 700;
	font-size: 1.0625rem;
	line-height: 1.45;
	color: var(--nat-accent);
}
.nat-faq summary::-webkit-details-marker { display: none; }
/* Die Frage ist zugleich Ueberschrift (Excel Spalte P sieht <h3> vor) und
 * Bedienelement des Akkordeons - sie erbt daher die Typografie der Zusammen-
 * fassung und bringt keine eigenen Abstaende mit. */
.nat-faq summary .nat-faq__q {
	margin: 0;
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
	text-transform: none;
}
.nat-faq summary::after {
	content: "+";
	flex: 0 0 auto;
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.2;
	color: var(--nat-accent-2);
	transition: transform 0.28s ease;
}
.nat-faq details[open] summary::after { transform: rotate(45deg); }
.nat-faq .nat-faq__a {
	padding: 0 0.15rem 1.35rem;
	color: var(--nat-ink-soft);
	max-width: 64ch;
	line-height: 1.65;
}
.nat-dark .nat-faq,
.nat-dark .nat-faq details { border-color: var(--nat-line-dark); }
.nat-dark .nat-faq summary { color: var(--nat-on-dark); }

/* --- Block ae/faq (V2b) ---------------------------------------------
   Der Block gibt denselben Klassenvertrag aus wie das fruehere Roh-HTML
   (.nat-faq__item / .nat-faq__q / .nat-faq__a), deshalb greift alles
   oben unveraendert. Hier kommt nur dazu, was der Block neu mitbringt:
   Zwischenueberschriften, die Ein-/Ausklapp-Leiste und der Weg zur
   Gesamtuebersicht.

   Die Farbregeln stehen bewusst hier im Theme und nicht im Plugin -
   dieselbe Hausregel wie beim Schaufenster. */
/* Keine eigene Achse: der Abschnitt haengt wie alles andere an der
   Seitenschiene (Abschnitt 2a). Zentrieren waere hier die zweite
   Komposition, die das Theme ausdruecklich abgeschafft hat. */
.ae-faq .ae-faq__title { margin-bottom: 1.5rem; }
.ae-faq .ae-faq__intro {
	margin: 0 0 1.5rem;
	max-width: 64ch;
	color: var(--nat-ink-soft);
}
/* Keine eigene Schriftgroesse: die Gruppenueberschrift der Vollliste ist
   dieselbe Sektionsueberschrift wie .ae-faq__title auf den Produktseiten und
   holt sich Schrift, Groesse und Laufweite ueber h2.nat-display aus der
   Typo-Achse. Hier bleiben nur Abstand und Farbe - der obere Abstand ist
   groesser als die alte 21-px-Fassung brauchte, sonst klebt die grosse
   Ueberschrift an der letzten Antwort der vorigen Gruppe. */
.ae-faq .ae-faq__gruppe {
	margin: 3.5rem 0 0.75rem;
	color: var(--nat-accent);
}
.ae-faq .ae-faq__gruppe:first-child { margin-top: 0; }

/* Verdeckte Fragen. Die Wirkung haengt an data-js: ohne JavaScript setzt
   view.js das Attribut nicht, dann stehen ALLE Fragen offen. Wer ohne
   Skript unterwegs ist, sieht damit mehr statt weniger - und ein
   einfacher Crawler ebenfalls. Die Antworten stehen ohnehin im HTML. */
.ae-faq[data-js="an"] .nat-faq__item.is-beyond { display: none; }
.ae-faq .is-hidden { display: none !important; }

.ae-faq__mehr {
	display: flex;
	justify-content: flex-start;
	margin-top: 1.5rem;
}
.ae-faq__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 44px;
	padding: 0.55rem 1.35rem;
	border: 1px solid var(--nat-accent);
	border-radius: var(--nat-radius);
	background: transparent;
	color: var(--nat-accent);
	font: inherit;
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.16s ease;
}
.ae-faq__btn:hover { background: var(--nat-accent); color: var(--nat-base); }
.ae-faq__btn:active { transform: scale(0.98); }
.ae-faq__btn:focus-visible { outline: 2px solid var(--nat-accent); outline-offset: 3px; }

.ae-faq .ae-faq__alle { margin-top: 1.25rem; }
.nat-dark .ae-faq__btn { border-color: var(--nat-on-dark); color: var(--nat-on-dark); }
.nat-dark .ae-faq__btn:hover { background: var(--nat-on-dark); color: var(--nat-accent); }

/* ============================================================
 * 9 - INFOZEILE / STANDORTKARTE
 * ============================================================ */
.nat-factbar {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.25rem, 2.5vw, 2.25rem);
	padding: clamp(1.4rem, 2.5vw, 2rem) clamp(1.4rem, 2.5vw, 2rem);
	background: var(--nat-sage);
	border-radius: var(--nat-radius);
}
.nat-factbar h3 {
	margin: 0 0 0.35rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nat-accent-2);
}
.nat-factbar p { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--nat-ink); max-width: none; }

.nat-map__card {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	text-decoration: none;
	color: inherit;
	padding: 1rem 1.1rem;
	border-radius: var(--nat-radius);
	border: 1px solid var(--nat-line);
	background: var(--nat-base);
	transition: transform 0.18s ease, box-shadow 0.2s ease;
}
.nat-map__card:hover { transform: translateY(-2px); box-shadow: var(--nat-shadow); }
.nat-map__pin {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--nat-accent);
	color: #fff;
}
.nat-map__text { display: flex; flex-direction: column; line-height: 1.35; }
.nat-map__text strong { color: var(--nat-ink); }
.nat-map__text span { font-size: 0.9rem; color: var(--nat-ink-soft); }
.nat-map__cta { margin-left: auto; font-weight: 700; font-size: 0.9rem; color: var(--nat-accent); white-space: nowrap; }

/* ============================================================
 * 10 - DOWNLOADS
 * ============================================================ */
.nat-dl {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1rem, 2vw, 1.5rem);
}
/* Einzelner Download mitten im Fliesstext, z. B. je AGB-Block auf /agb/.
   Ohne diese Regel saesse die einzelne Kachel als schmales Drittel im Raster. */
.nat-dl--einzeln {
	grid-template-columns: minmax(0, 460px);
	margin-block: clamp(1rem, 2vw, 1.4rem);
}
.nat-dl__item {
	display: flex;
	align-items: flex-start;
	gap: 0.9rem;
	padding: 1.1rem 1.2rem;
	background: var(--nat-base);
	border: 1px solid var(--nat-line);
	border-radius: var(--nat-radius);
	text-decoration: none;
	color: inherit;
	transition: transform 0.18s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.nat-dl__item:hover { transform: translateY(-2px); box-shadow: var(--nat-shadow); border-color: #C9CEBD; }
/* Der Slot traegt seit 12.08.2026 das freigestellte Katalog-Cover statt des
   Woertchens PDF. Traegt er ausnahmsweise doch wieder Text, greifen Kasten und
   Schrift unveraendert - deshalb bleiben beide Regelsaetze stehen. */
.nat-dl__icon {
	flex: 0 0 auto;
	width: 72px;
	height: 72px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 3px;
	color: var(--nat-accent);
	font-size: 0.6875rem;
	font-weight: 900;
	letter-spacing: 0.04em;
}
.nat-dl__icon:not(:has(img)) { background: var(--nat-sage); }
.nat-dl__icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.nat-dl__text { display: flex; flex-direction: column; gap: 0.2rem; }
.nat-dl__title { font-weight: 700; color: var(--nat-accent); line-height: 1.35; }
.nat-dl__meta { font-size: 0.8125rem; color: var(--nat-ink-soft); }

/* ============================================================
 * 10b - NEWSLETTER (Block ae/newsletter)
 * ============================================================
 * Die Felder gehoeren Natura, abgeschickt wird zu rapidmail. Deshalb steht
 * die Gestaltung hier im Theme und nicht im Plugin - dieselbe Hausregel wie
 * beim Schaufenster und beim FAQ-Block.
 *
 * Zwei Varianten mit demselben Vokabular: --voll steht auf hellem Grund und
 * setzt die Felder untereinander, --schlank steht im dunkelgruenen Fussbereich
 * und legt E-Mail und Knopf in eine Zeile. Was beide teilen, steht oben; was
 * die dunkle Leiste anders braucht, steht unten und nur dort. */
.nat-nl { max-width: 40rem; }
/* Steht der Block direkt in einer Sektion, haelt die Seitenschiene (Abschnitt
   2a) jedes Kind auf voller Breite - gewollt fuer Raster, falsch fuer Eingabe-
   felder. Ein Formular braucht sein Mass wie der Fliesstext sein Lesemass,
   deshalb dieselbe Spezifitaet wie dort und nicht ein !important. */
main .nat-sec > .nat-nl,
main .nat-page-hero > .nat-nl,
main .wp-block-post-content > .alignfull > .nat-nl { max-width: 40rem; }
.nat-nl__heading { margin: 0 0 0.5rem; }
.nat-nl__intro { margin: 0 0 1.5rem; color: var(--nat-ink-soft); max-width: 60ch; }
.nat-nl__form { display: flex; flex-direction: column; gap: 1rem; align-items: stretch; }
.nat-nl__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}
.nat-nl__field { display: flex; flex-direction: column; gap: 0.4rem; min-width: 0; }
.nat-nl__label {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--nat-accent);
	letter-spacing: 0.01em;
}
/* Im Fussbereich traegt das Feld seinen Namen im Platzhalter. Die Beschriftung
   bleibt trotzdem im Markup - sie verschwindet nur fuer das Auge, nicht fuer
   die Vorlesesoftware. */
.nat-nl__label--nur-vorlesen {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.nat-nl__input {
	width: 100%;
	/* Ohne border-box kommen Innenabstand und Kante auf die volle Breite
	   obendrauf. Das Feld stand dadurch 11 px ueber den Schirmrand hinaus und
	   liess auf dem Telefon JEDE Seite waagerecht rollen, weil die Leiste im
	   Fussbereich ueberall steht (gefunden im Mobil-Prueflauf 12.08.2026). */
	box-sizing: border-box;
	min-height: 3rem;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--nat-line);
	border-radius: var(--nat-radius);
	background: var(--nat-base);
	color: var(--nat-ink);
	font: inherit;
}
.nat-nl__input::placeholder { color: var(--nat-ink-soft); opacity: 1; }
.nat-nl__input:focus-visible {
	outline: 2px solid var(--nat-accent-2-text);
	outline-offset: 1px;
	border-color: var(--nat-accent);
}
.nat-nl__btn {
	align-self: flex-start;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.95rem 1.75rem;
	border: 0;
	border-radius: var(--nat-radius);
	background: var(--nat-accent);
	color: var(--nat-base);
	font: inherit;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.16s ease;
}
.nat-nl__btn:hover { background: var(--nat-accent-2); }
.nat-nl__btn:active { transform: scale( 0.98 ); }
.nat-nl__btn:focus-visible { outline: 2px solid var(--nat-accent); outline-offset: 3px; }
.nat-nl__hinweis {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--nat-ink-soft);
	max-width: 60ch;
}
.nat-nl__hinweis a { color: inherit; }
/* Einwilligungssatz aus rapidmails Formular 1540 (16.09.2026). Steht ueber dem
   Knopf, weil das Absenden die Einwilligung ist; gleiche Groesse wie der
   Hinweis darunter, aber in Tinte statt weicher Tinte, damit er als Satz
   vor dem Klick gelesen wird. */
.nat-nl__einwilligung {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--nat-ink);
	max-width: 60ch;
}

/* --- Schlanke Leiste im Fussbereich --------------------------------------
   Dunkler Grund, eine Zeile, ein Pflichtfeld. Ab der Handybreite bricht sie
   von selbst um, weil das Feld eine Mindestbreite behaelt. */
.nat-nl--schlank { max-width: none; }
/* Derselbe Kopf wie ueber den Spalten Produkte, Service, Unternehmen. */
.nat-nl--schlank .nat-nl__heading {
	margin: 0 0 0.35rem;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.nat-nl--schlank .nat-nl__intro { margin: 0 0 1rem; font-size: 0.95rem; }
.nat-nl--schlank .nat-nl__form {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
}
.nat-nl--schlank .nat-nl__field--mail { flex: 1 1 16rem; max-width: 26rem; }
.nat-nl--schlank .nat-nl__btn { flex: 0 0 auto; align-self: auto; }
.nat-nl--schlank .nat-nl__hinweis { flex: 1 1 100%; order: 2; }
/* In der Zeile bleiben Feld und Knopf nebeneinander; Einwilligung und Hinweis
   ruecken per order unter die Zeile. */
.nat-nl--schlank .nat-nl__einwilligung { flex: 1 1 100%; order: 1; max-width: none; }

.nat-sitefooter .nat-nl__heading,
.nat-sitefooter .nat-nl__label { color: var(--nat-on-dark); }
.nat-sitefooter .nat-nl__intro,
.nat-sitefooter .nat-nl__hinweis { color: var(--nat-on-dark); opacity: 0.78; }
.nat-sitefooter .nat-nl__einwilligung { color: var(--nat-on-dark); }
.nat-sitefooter .nat-nl__input {
	background: var(--nat-base);
	border-color: transparent;
	color: var(--nat-ink);
}
/* Knopftext in Tinte statt Dunkelgruen: Dunkelgruen auf Hellgruen lag bei
   3,2:1 (Durchsicht 14.09.2026, B-3), Tinte auf Hellgruen liegt bei 8,9:1. */
.nat-sitefooter .nat-nl__btn {
	background: var(--nat-accent-2);
	color: var(--nat-ink);
}
.nat-sitefooter .nat-nl__btn:hover { background: var(--nat-on-dark); }
.nat-sitefooter .nat-nl__btn:focus-visible,
.nat-sitefooter .nat-nl__input:focus-visible { outline-color: var(--nat-on-dark); }

@media (max-width: 560px) {
	.nat-nl__row { grid-template-columns: 1fr; }
	.nat-nl--schlank .nat-nl__btn { width: 100%; }
}

/* ============================================================
 * 10c - STELLENANGEBOTE (Liste aus HRlab, /jobs/)
 * ============================================================
 * Dieselbe Kachelsprache wie die Downloads eine Sektion weiter oben: heller
 * Grund, feine Kante, Anheben beim Zeigen. Der Unterschied ist die Rolle -
 * eine Downloadkachel liefert eine Datei, diese hier fuehrt aus dem Haus, und
 * deshalb sitzt der Weg nach draussen als eigener Knopf rechts statt als
 * ganzflaechiger Link. */
.nat-jobs {
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
	display: grid;
	gap: 1rem;
}
/* Die Liste ist eine <ul> und faellt damit unter das Lesemass fuer Fliesstext
   (Abschnitt 2a, 72ch). Fuer Kacheln mit Knopf ist das zu schmal: der lange
   Stellentitel drueckt den Knopf in die naechste Zeile, und die Liste steht
   ungleich neben den Downloadkacheln. Dieselbe Spezifitaet, eigenes Mass. */
main .nat-sec > .nat-jobs,
main .wp-block-post-content > .alignfull > .nat-jobs { max-width: 56rem; }
.nat-jobs__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	/* Rasterfelder haben min-width:auto und wachsen sonst mit dem laengsten
	   Wort. Auf 320 px sprengte "Vertriebsaussendienstmitarbeiter" die Kachel
	   um 4 px und liess die Seite waagerecht rollen. */
	min-width: 0;
	box-sizing: border-box;
	padding: 1.35rem 1.5rem;
	background: var(--nat-base);
	border: 1px solid var(--nat-line);
	border-radius: var(--nat-radius);
	transition: transform 0.18s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.nat-jobs__item:hover { transform: translateY(-2px); box-shadow: var(--nat-shadow); border-color: #C9CEBD; }
/* Der Text darf schrumpfen und umbrechen, der Knopf nicht: sonst rutscht er
   bei langen Stellentiteln unter den Text und die Zeilen stehen unruhig. */
.nat-jobs__text {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	flex: 1 1 18rem;
	min-width: 0;
	overflow-wrap: break-word;
}
.nat-jobs__titel {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--nat-accent);
	letter-spacing: normal;
}
.nat-jobs__meta { margin: 0; font-size: 0.875rem; color: var(--nat-ink-soft); }
.nat-jobs__btn {
	flex: 0 0 auto;
	/* Ohne border-box sprengt der Knopf auf schmalen Schirmen die Kachel:
	   dort steht width:100%, und die Innenabstaende kaemen oben drauf. */
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.85rem 1.5rem;
	border-radius: var(--nat-radius);
	background: var(--nat-accent);
	color: var(--nat-base);
	font-weight: 700;
	text-decoration: none;
	line-height: 1;
	transition: background-color 0.2s ease;
}
.nat-jobs__btn:hover { background: var(--nat-accent-2); color: var(--nat-base); }
.nat-jobs__btn:focus-visible { outline: 2px solid var(--nat-accent); outline-offset: 3px; }
.nat-jobs__ersatz { margin-top: 1.5rem; }

/* Der Hinweis vor dem Wechsel. Ein <dialog>, also modal ohne eigene
   Aufraeumarbeit: Fokusfalle, Escape und die Flaeche dahinter bringt der
   Browser mit. */
.nat-jobs__dialog {
	width: min(34rem, calc(100vw - 2rem));
	padding: clamp(1.5rem, 4vw, 2.25rem);
	border: 1px solid var(--nat-line);
	border-radius: var(--nat-radius);
	background: var(--nat-base);
	color: var(--nat-ink);
	box-shadow: 0 30px 60px -30px rgba(30, 35, 28, 0.55);
}
.nat-jobs__dialog::backdrop { background: rgba(30, 35, 28, 0.55); }
.nat-jobs__dialog-titel {
	margin: 0 0 0.75rem;
	font-size: 1.4rem;
	font-weight: 900;
	line-height: 1.2;
	color: var(--nat-accent);
}
.nat-jobs__dialog-text { margin: 0 0 1rem; color: var(--nat-ink-soft); line-height: 1.6; }
.nat-jobs__dialog-text strong { color: var(--nat-ink); }
.nat-jobs__dialog-alt { margin: 0 0 1.5rem; font-size: 0.875rem; color: var(--nat-ink-soft); }
.nat-jobs__dialog-knoepfe { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.nat-jobs__dialog-weiter,
.nat-jobs__dialog-abbruch {
	min-height: 48px;
	padding: 0.85rem 1.5rem;
	border-radius: var(--nat-radius);
	font: inherit;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}
.nat-jobs__dialog-weiter { border: 0; background: var(--nat-accent); color: var(--nat-base); }
.nat-jobs__dialog-weiter:hover { background: var(--nat-accent-2); }
.nat-jobs__dialog-abbruch { border: 1px solid var(--nat-line); background: transparent; color: var(--nat-accent); }
.nat-jobs__dialog-abbruch:hover { background: var(--nat-surface); }
.nat-jobs__dialog-weiter:focus-visible,
.nat-jobs__dialog-abbruch:focus-visible { outline: 2px solid var(--nat-accent); outline-offset: 3px; }

@media (max-width: 640px) {
	.nat-jobs__item { align-items: flex-start; }
	.nat-jobs__text { flex-basis: 100%; }
	.nat-jobs__btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.nat-jobs__item { transition: none; }
}

/* --- Einbettung mit Einwilligung (HRlab-Stellenliste auf /jobs/) ---------
   Vor dem Klick steht hier nur eine Karte, kein iframe. Die Gestaltung lehnt
   sich bewusst an .nat-pending an: gestrichelte Kante als Zeichen, dass hier
   noch etwas passieren muss. */
.nat-embed { margin: 0; }
.nat-embed__card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.75rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--nat-surface);
	border: 1px dashed var(--nat-line);
	border-radius: var(--nat-radius);
}
.nat-embed__head { font-weight: 700; color: var(--nat-accent); margin: 0; }
.nat-embed__text { margin: 0; color: var(--nat-ink-soft); max-width: 46rem; }
.nat-embed__alt { margin: 0; font-size: 0.875rem; color: var(--nat-ink-soft); }
.nat-embed__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.95rem 1.75rem;
	border: 0;
	border-radius: var(--nat-radius);
	background: var(--nat-accent);
	color: var(--nat-base);
	font: inherit;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.16s ease;
}
.nat-embed__btn:hover { background: var(--nat-accent-2); }
.nat-embed__btn:active { transform: scale( 0.98 ); }
.nat-embed__btn:focus-visible { outline: 2px solid var(--nat-accent); outline-offset: 3px; }
.nat-embed__frame {
	display: block;
	width: 100%;
	border: 1px solid var(--nat-line);
	border-radius: var(--nat-radius);
	background: var(--nat-base);
}
.nat-embed__frame:focus-visible { outline: 2px solid var(--nat-accent); outline-offset: 3px; }

/* Sektion, deren Inhalt noch aussteht - ehrlich statt leerem Versprechen.

   Kundenwunsch Runde 10, 08.09.2026: der Block war display:flex. Ein
   Flex-Container macht aus jedem einzelnen Kindknoten ein eigenes Element,
   und dazu zaehlt auch der Textknoten, der nur aus dem Satzpunkt hinter dem
   Kontaktlink besteht. Der Punkt stand dadurch als eigenes Kaestchen mit dem
   vollen gap-Abstand allein am rechten Rand; genau das hat Laura als
   "orangefarbenen Punkt" gemeldet. Ein Flex-Container ist fuer laufenden
   Fliesstext das falsche Werkzeug, deshalb ist der Absatz wieder ein Block
   und der Satz wieder ein Satz.
   Das Informationssymbol bleibt unveraendert sichtbar. Es steht jetzt
   absolut, damit es bei mehrzeiligem Text oben bleibt statt mitzuwandern.
   Der linke Innenabstand haelt ihm den Platz frei und rechnet sich aus
   denselben drei Werten zusammen, die vorher Innenabstand, Symbolbreite und
   gap waren, damit sich am Bild nichts verschiebt. */
.nat-pending {
	position: relative;
	padding: 1.1rem 1.25rem 1.1rem calc(1.25rem + 22px + 0.85rem);
	background: var(--nat-surface);
	border: 1px dashed var(--nat-line);
	border-radius: var(--nat-radius);
	color: var(--nat-ink-soft);
	font-size: 0.95rem;
	max-width: 60ch;
}
.nat-pending::before {
	content: "i";
	position: absolute;
	left: 1.25rem;
	top: 1.1rem;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--nat-accent-2);
	color: #fff;
	font-weight: 900;
	font-size: 0.8125rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ============================================================
 * 11 - PLUGIN-ANBINDUNG
 * ============================================================ */

/* --- Kontaktformular ------------------------------------------------ */
.nat .ae-cf {
	--ae-cf-accent: var(--nat-accent);
	max-width: 34rem;
}
.nat .ae-cf--katalog,
.nat .ae-cf.is-wide { max-width: 46rem; }
.nat .ae-cf__heading { color: var(--nat-accent); }
.nat .ae-cf__input,
.nat .ae-cf textarea,
.nat .ae-cf select,
.nat .ae-cf input[type="text"],
.nat .ae-cf input[type="email"],
.nat .ae-cf input[type="tel"] {
	border-radius: 3px;
	border: 1px solid var(--nat-line);
	background: var(--nat-base);
	font-size: 1rem;
}
.nat .ae-cf__input:focus,
.nat .ae-cf textarea:focus { border-color: var(--nat-accent-2); }
.nat .ae-cf__submit {
	border-radius: var(--nat-radius);
	font-weight: 700;
	padding-inline: 1.75rem;
	min-height: 48px;
}
.nat .ae-cf__submit:hover { background: var(--nat-accent-2); }

/* Datei-Auswahl: der rohe Systemknopf wird zum Markenknopf. */
.nat .ae-cf input[type="file"] { font-size: 0.9375rem; color: var(--nat-ink-soft); }
.nat .ae-cf input[type="file"]::file-selector-button {
	margin-right: 0.85rem;
	padding: 0.5rem 1rem;
	border: 1px solid var(--nat-accent);
	border-radius: 3px;
	background: transparent;
	color: var(--nat-accent);
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.18s ease, color 0.18s ease;
}
.nat .ae-cf input[type="file"]::file-selector-button:hover {
	background: var(--nat-accent);
	color: #fff;
}

/* Einwilligungs-Kaestchen auf bedienbare Groesse. */
.nat .ae-cf input[type="checkbox"] {
	width: 22px;
	height: 22px;
	min-width: 22px;
	margin-top: 1px;
	accent-color: var(--nat-accent);
	cursor: pointer;
}
.nat .ae-cf label:has(input[type="checkbox"]) {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	line-height: 1.5;
}

/* --- Kontaktkarten -------------------------------------------------- */
/* 16 Personen in drei Spalten brauchen mehr als die Lesespalte - sie nutzen
   die volle Seitenschiene (Abschnitt 2a), nicht mehr ein eigenes Mass. */
.nat .ae-cc { max-width: none; width: 100%; }
.nat .ae-cc__grid,
.nat .ae-cc__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1.25rem, 2.2vw, 1.75rem);
	align-items: stretch;
}
.nat .ae-cc__card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--nat-base);
	border: 1px solid var(--nat-line);
	border-radius: var(--nat-radius);
	overflow: hidden;
	box-shadow: none;
}
.nat .ae-cc__card img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center top;
	display: block;
}
/* Textkasten sitzt unter dem Bild statt darueber zu ragen. */
.nat .ae-cc__card > *:last-child {
	position: static !important;
	transform: none !important;
	margin: 0 !important;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 0.95rem 1.05rem 1.1rem;
	border: 0;
	box-shadow: none;
	background: var(--nat-base);
}
.nat .ae-cc__name,
.nat .ae-cc__card strong { color: var(--nat-accent); font-size: 1rem; }
.nat .ae-cc__role { color: var(--nat-accent-2); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.04em; }
.nat .ae-cc__card a { color: var(--nat-ink-soft); text-decoration: none; font-size: 0.9375rem; }
.nat .ae-cc__card a:hover { color: var(--nat-accent); text-decoration: underline; }
/* Platzhalter erkennbar als bewusste Leerstelle, nicht als Ladefehler. */
.nat .ae-cc__ph,
.nat .ae-cc__placeholder {
	aspect-ratio: 4 / 5;
	background:
		repeating-linear-gradient(135deg, rgba(56, 74, 50, 0.05) 0 10px, transparent 10px 20px),
		var(--nat-surface);
	border-bottom: 1px solid var(--nat-line);
	color: var(--nat-ink-soft);
}

/* --- Schaufenster --------------------------------------------------- */
.nat .ae-shf {
	--shf-panel: var(--nat-base);
	--shf-ink: var(--nat-ink);
	--shf-ink-soft: var(--nat-ink-soft);
	--shf-line: var(--nat-line);
	--shf-accent: var(--nat-accent);
	--shf-accent-2: var(--nat-accent-2);
	--shf-radius: var(--nat-radius);
	color: var(--nat-ink);
	padding-top: 0;
	/* Breite und Rand kommen aus der Seitenschiene (Abschnitt 2a) - frueher
	   stand hier ein eigenes Mass von 1360 px und damit eine fuenfte Kante. */
	max-width: none;
	width: 100%;

	/* Ankerhoehe fuer das gedockte Schaufenster: knapp unter der
	   mitlaufenden Kopfzeile. --nat-header-h kommt gemessen aus reveal.js. */
	--shf-dock-top: calc(var(--nat-header-h, 4.5rem) + 1.25rem);
}
.nat .ae-shf :is(h2, h3, h4) { color: var(--nat-accent); }
.nat .ae-shf :is(p, span, li, button, .ae-shf__stage-sub, .ae-shf__strip-count) { color: var(--nat-ink); }
.nat .ae-shf__stage-eyebrow,
.nat .ae-shf__featured-coll { color: var(--nat-accent-2); }
.nat .ae-shf__featured-spec,
.nat .ae-shf__strip-count { color: var(--nat-ink-soft); }
.nat .ae-shf__alldoor,
.nat .ae-shf__back,
.nat .ae-shf__cat {
	color: var(--nat-accent);
	border: 1px solid var(--nat-line);
	background: var(--nat-base);
	border-radius: var(--nat-radius);
}
.nat .ae-shf__cat.is-active {
	background: var(--nat-accent);
	color: #fff;
	border-color: var(--nat-accent);
}
/* Der Filmstreifen wird zum Dekor-Raster: das ist der Kern-Content
   der Kategorieseiten und steht damit ohne Klick auf der Seite. */
.nat .ae-shf__strip {
	display: grid;
	/* Automatisch statt fest vierspaltig: im gedockten Betrieb steht dem
	   Raster nur noch die rechte Spalte zur Verfuegung. */
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: clamp(0.85rem, 1.6vw, 1.35rem);
	overflow: visible;
	max-height: none;
	padding: 0;
	margin: 0;
	list-style: none;
	scroll-snap-type: none;
}
/* min-width:0 gegen die Voreinstellung min-width:auto bei Rasterfeldern: sonst
   waechst die Kachel mit ihrem laengsten Dekornamen. Auf 320 px ragte die
   Kachel "Essentials-Stone-Collection" auf /kork/ 52 px aus dem Schirm und
   liess die Seite waagerecht rollen (Mobil-Prueflauf 12.08.2026). */
.nat .ae-shf__strip > li { list-style: none; width: auto; flex: none; min-width: 0; }
.nat .ae-shf__thumb-body { min-width: 0; }
.nat .ae-shf__thumb-name,
.nat .ae-shf__thumb-coll,
.nat .ae-shf__thumb-spec { overflow-wrap: break-word; }
.nat .ae-shf__thumb {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	padding: 0;
	text-align: left;
	background: var(--nat-base);
	border: 1px solid var(--nat-line);
	border-radius: var(--nat-radius);
	overflow: hidden;
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.nat .ae-shf__thumb:hover,
.nat .ae-shf__thumb.is-active {
	transform: translateY(-3px);
	box-shadow: var(--nat-shadow);
	border-color: var(--nat-accent-2);
}
.nat .ae-shf__thumb img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
	border-radius: 0;
}
/* Team-Teaser auf /ueber-uns/: die sieben freigegebenen Portraets als Streifen,
   statt die 16 Personen ein zweites Mal aufzulisten (markt-b2b.md Kap. 7, Nr. 9). */
.nat .nat-team-strip {
	list-style: none;
	margin: 1.6rem 0 1.4rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}
.nat .nat-team-strip li { margin: 0; }
.nat .nat-team-strip img {
	display: block;
	box-sizing: border-box;
	width: 84px;
	height: 84px;
	object-fit: cover;
	object-position: center 22%;
	border-radius: 50%;
	border: 2px solid var(--nat-base);
	box-shadow: 0 1px 3px rgba(30, 35, 28, 0.12);
}
@media (max-width: 480px) {
	.nat .nat-team-strip img { width: 62px; height: 62px; }
}

/* Karten, bei denen die Spalte selbst die Kartenhuelle ist (Ueber uns).
   Bewusst ohne inneren <div>-Wrapper: rohe Auszeichnung zwischen zwei Bloecken
   macht die core/column im Editor ungueltig. Die Polsterung kommt deshalb
   ueber die Kinder, passend zu den vorhandenen .nat-card-Regeln. */
.nat .wp-block-column.nat-card > *:first-child { padding-top: 1.25rem; }
.nat .wp-block-column.nat-card > :is(h2, h3) {
	margin: 0 0 0.35rem;
	font-size: 1.25rem;
	line-height: 1.25;
	color: var(--nat-accent);
	letter-spacing: -0.01em;
}
.nat .wp-block-column.nat-card > p {
	font-size: 0.95rem;
	line-height: 1.55;
}

/* CTA-Doppel: zwei gleichwertige Wege am Seitenende. */
.nat .nat-cta-band .wp-block-buttons { justify-content: center; }

/* Kategorie-Kacheln: der Link steht in jeder Spalte auf derselben Grundlinie,
   auch wenn die Texte unterschiedlich lang sind. */
.nat .wp-block-column:has(> .nat-cat-card__link) {
	display: flex;
	flex-direction: column;
}
.nat .wp-block-column > .nat-cat-card__link {
	margin-top: auto;
	padding-top: 0.9rem;
}
.nat .nat-cat-card__link a {
	font-weight: 700;
	text-decoration: none;
}
.nat .nat-cat-card__link a:hover { text-decoration: underline; }

/* Kategorie-Kachel ohne freigegebenes Motiv (aktuell: Kork, Sortimentsfrage
   offen). Gleiche Schraffur wie im Schaufenster - Leerstelle, kein Ladefehler. */
.nat .nat-card__noimg {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	aspect-ratio: 4 / 3;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nat-ink-soft);
	background:
		repeating-linear-gradient(135deg,
			var(--nat-sage) 0 10px,
			var(--nat-base) 10px 20px);
}

/* ---- In-Klaerung-Sektion (Runde 10) ---------------------------------
   Wiederverwendbare Kennzeichnung fuer Inhalte, die auf eine Entscheidung
   oder Freigabe warten (erster Einsatz: Kork-Platzhalter auf /boden/kork/).
   Der Ocker-Ton ist bewusst KEIN Markengruen: die Sektion soll als
   Zwischenstand lesbar sein, nicht als Sortiment. */
.nat .nat-klaerung {
	margin-top: 1.35rem;
	padding: 1.15rem 1.25rem 1.35rem;
	background: var(--nat-base);
	border: 1px dashed #C4C1B2; /* eine Stufe dunkler als --nat-line, sonst unsichtbar */
	border-radius: var(--nat-radius);
}
.nat .nat-klaerung__badge {
	display: inline-block;
	margin: 0 0 0.55rem;
	padding: 0.18rem 0.7rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #7A5A16;
	background: #F4EBD6;
	border-radius: 999px;
}
.nat .nat-klaerung__text {
	margin: 0 0 1.1rem;
	max-width: 62ch;
	color: var(--nat-ink-soft);
	font-size: 0.9375rem;
}
.nat .nat-klaerung__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: clamp(0.85rem, 1.6vw, 1.35rem);
}
.nat .nat-klaerung__card {
	display: flex;
	flex-direction: column;
	margin: 0;
	background: var(--nat-surface);
	border: 1px solid var(--nat-line);
	border-radius: var(--nat-radius);
	overflow: hidden;
}
.nat .nat-klaerung__card .nat-card__noimg { border-bottom: 1px solid var(--nat-line); }
.nat .nat-klaerung__coll {
	margin: 0.65rem 0.85rem 0;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nat-ink-soft);
}
.nat .nat-klaerung__name {
	margin: 0.15rem 0.85rem 0;
	font-weight: 600;
	color: var(--nat-ink);
	line-height: 1.35;
}
.nat .nat-klaerung__art {
	margin: 0.15rem 0.85rem 0.8rem;
	font-size: 0.8125rem;
	color: var(--nat-ink-soft);
	font-variant-numeric: tabular-nums;
}

/* Grobe Zubehoeruebersicht (Protokoll Â§4): uebergeordnete Gruppen, keine
   Artikel, keine Artikelnummern. */
.nat .nat-zub-gruppen {
	list-style: none;
	margin: 1.35rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.6rem;
}
.nat .nat-zub-gruppen li {
	margin: 0;
	padding: 0.42rem 0.85rem;
	font-size: 0.9375rem;
	color: var(--nat-accent);
	background: var(--nat-base);
	border: 1px solid var(--nat-line);
	border-radius: 999px;
}

/* Dekor ohne freigegebenes Produktfoto: erkennbare Leerstelle statt eines
   fremden Stimmungsbildes. Schraffur wie bei den Personenkarten, damit die
   Luecke als Absicht und nicht als Ladefehler gelesen wird. */
.nat .ae-shf__noimg {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 4 / 3;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nat-ink-soft);
	background:
		repeating-linear-gradient(135deg,
			var(--nat-sage) 0 9px,
			var(--nat-base) 9px 18px);
	border-bottom: 1px solid var(--nat-line);
}
.nat .ae-shf__featured.is-imageless::after {
	content: "Bild folgt";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nat-ink-soft);
	background:
		repeating-linear-gradient(135deg,
			var(--nat-sage) 0 12px,
			var(--nat-base) 12px 24px);
}
.nat .ae-shf__featured.is-imageless .ae-shf__featured-zoomcue { display: none; }

.nat .ae-shf__thumb-body {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 0.7rem 0.8rem 0.85rem;
	flex: 1 1 auto;
}
.nat .ae-shf__thumb-coll {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nat-accent-2-text);
}
/* Kollektion und Artikelnummer stehen untereinander (Runde 15, 18.09.2026,
   Kunden-PDF S10): die Kollektion oben, die Nummer darunter als eigener
   Block, den das Plugin-Stylesheet setzt (display:block). Der fruehere
   Trennpunkt aus dem Nachbar-Selektor ist weg. Die Nummer erbt Groesse,
   Sperrung und Ausrichtung der Zeile, bekommt aber wie unter
   .nat-klaerung__art gleich breite Ziffern, damit sie im Raster
   untereinander stehen. Gilt fuer Karte und Buehne gleichermassen. */
.nat .ae-shf__art { font-variant-numeric: tabular-nums; }
.nat .ae-shf__thumb-name {
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--nat-accent);
}
.nat .ae-shf__thumb-spec {
	font-size: 0.8125rem;
	line-height: 1.4;
	color: var(--nat-ink-soft);
}
/* Kataloghinweis zum Dekor - steht bewusst UNTER den technischen Daten und
   klar abgesetzt, damit er nicht als Teil des Produktnamens gelesen wird
   (Audit: „Spiritstone zwischen den Fliesen" war beides in einer Zeile). */
/* Fehlende Angaben und offene Sortimentsentscheidungen stehen rot (Runde
   11.09.2026), damit sie vor der Freigabe auffallen. Die Regel muss hier im
   Theme stehen, weil .nat .ae-shf :is(span, ...) weiter oben sonst jede
   Farbe aus dem Plugin ueberstimmt. Gilt fuer Karte, Buehne und Zoom. */
.nat .ae-shf .ae-shf__fehlt,
.nat .ae-shf .ae-shf__thumb-hint.is-klaerung,
.nat .ae-shf .ae-shf__spec-part.is-klaerung { color: #B3261E; }
.nat .ae-shf .ae-shf__fehlt { font-weight: 700; }
.nat .ae-shf__thumb-hint {
	margin-top: 0.2rem;
	padding-top: 0.3rem;
	border-top: 1px solid var(--nat-line);
	font-size: 0.75rem;
	line-height: 1.4;
	font-style: italic;
	color: var(--nat-ink-soft);
}

/* Direktmodus: keine Tuer, kein Zurueck-Knopf - die Auswahl ist schon getroffen. */
.nat .ae-shf--direct .ae-shf__doors,
.nat .ae-shf--direct .ae-shf__alldoor,
.nat .ae-shf--direct .ae-shf__back { display: none !important; }
/* Eine Kategorie (Parkett, Laminat, ...): der Umschalter waere sinnlos. */
.nat .ae-shf--direct-one .ae-shf__cats { display: none !important; }
/* Bereichsseite (/boden/, /garten/, /wand/) und Startseite: der Umschalter
   bleibt - er ist dort der eigentliche Filter ueber alle Dekore des Bereichs. */
.nat .ae-shf--direct-all .ae-shf__cats { justify-content: flex-start; margin-bottom: 0.4rem; }
/* Buehnenkopf linksbuendig auf der Seitenschiene. Ab 1024 px sitzt er im
   gedockten Block und stapelt dort (Regeln im Plugin) - deshalb steht die
   nebeneinander-Anordnung nur unterhalb der Andock-Schwelle. */
.nat .ae-shf--direct .ae-shf__stage-heading { align-items: flex-start; }
.nat .ae-shf--direct .ae-shf__stage-title { font-size: var(--wp--preset--font-size--x-large); }

@media (max-width: 1023px) {
	.nat .ae-shf--direct .ae-shf__stage-top {
		margin-bottom: 0.5rem;
		flex-direction: row;
		align-items: center;
		padding-right: 0;
		text-align: left;
		gap: 0.7rem 1rem;
	}
	.nat .ae-shf--direct .ae-shf__optik { margin-left: auto; justify-content: flex-start; }
}

/* Ungedockt (schmale Fenster) bleibt die grosse Vorschau die
   Zweitinformation - das Raster traegt die Seite. Deshalb gedeckelt statt
   bildschirmfuellend. Hoehe am Rahmen deckeln, nicht am Bild: die
   Bildebenen liegen absolut im Rahmen, sonst entsteht ein schwarzer
   Streifen darunter. Die gedockte Ansicht regelt das Plugin selbst. */
@media (max-width: 1023px) {
	.nat .ae-shf--direct .ae-shf__featured-row { max-width: 820px; }
	.nat .ae-shf--direct .ae-shf__featured { height: min(34vh, 340px); }
}

/* --- Instagram ------------------------------------------------------ */
.nat .ae-igf { --ae-igf-accent: var(--nat-accent-2); }
.nat .ae-igf__cell { border-radius: var(--nat-radius); }
.nat .ae-igf :is(.ae-eyebrow, .ae-igf__handle) { color: var(--nat-accent-2-text); }

/* ============================================================
 * 12 - FUSSZEILE
 * ============================================================ */
.nat-sitefooter { background-color: var(--nat-accent); color: var(--nat-on-dark); }
.nat-sitefooter :is(h2, h3, h4) { color: var(--nat-on-dark); }
.nat-sitefooter__logo { margin: 0 0 1.1rem; }
.nat-sitefooter__logo img { width: auto; height: 34px; display: block; }
.nat-sitefooter__addr,
.nat-sitefooter p { color: var(--nat-on-dark); max-width: none; }
.nat-sitefooter a { color: var(--nat-on-dark); text-decoration: none; }
.nat-sitefooter a:hover { color: #FFFFFF; text-decoration: underline; }
.nat-sitefooter__links { line-height: 2; font-size: 0.95rem; }
.nat-sitefooter__legal { opacity: 0.75; }
.nat-sitefooter .wp-block-social-links { margin-top: 1.1rem; }

/* ============================================================
 * 13 - EINBLENDEN BEIM SCROLLEN (JS-gated, editorsicher)
 * ============================================================ */
.ae-reveal-on .ae-reveal {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.ae-reveal-on .ae-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.ae-reveal-on .ae-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ============================================================
 * 14 - RESPONSIV
 *
 * Erstmals eigene Natura-Regeln. Vorher lief alles auf
 * WordPress-Standardverhalten.
 * ============================================================ */

/* Tablet quer / kleiner Desktop */
@media (max-width: 1100px) {
	.nat-grid,
	.nat-dl,
	.nat .ae-cc__grid,
	.nat .ae-cc__cards { grid-template-columns: repeat(2, 1fr); }
	.nat-grid--4 { grid-template-columns: repeat(2, 1fr); }
	.nat .ae-shf__strip { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
	.nat-factbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Tablet hoch: Navigation klappt hier bereits, also auch das Layout. */
@media (max-width: 900px) {
	.nat-trust-grid { grid-template-columns: repeat(2, 1fr); row-gap: 1.5rem; }
	.nat-trust-grid > * { border-left: 0; padding-left: 0; padding-right: 1rem; }
	.nat-trust-grid > *:nth-child(n + 3) { padding-top: 1.25rem; border-top: 1px solid var(--nat-line); }
	.nat-page-hero > .wp-block-columns { gap: 2rem; }
}

/* Telefon */
@media (max-width: 781px) {
	:root { --nat-sec-y: clamp(2.5rem, 8vw, 3.25rem); }

	.nat-grid,
	.nat-grid--2,
	.nat-grid--4,
	.nat-dl { grid-template-columns: 1fr; }

	.nat .ae-shf__strip { grid-template-columns: repeat(2, 1fr); }

	/* 16 Ansprechpartner einspaltig ergaeben acht Bildschirme nur mit
	   Portraits. Zweispaltig mit quadratischem Bild halbiert das. */
	.nat .ae-cc__grid,
	.nat .ae-cc__cards { grid-template-columns: repeat(2, 1fr); gap: 0.85rem; }
	.nat .ae-cc__card img,
	.nat .ae-cc__ph,
	.nat .ae-cc__placeholder { aspect-ratio: 1 / 1; }
	.nat .ae-cc__card > *:last-child { padding: 0.7rem 0.75rem 0.85rem; }
	.nat .ae-cc__name,
	.nat .ae-cc__card strong { font-size: 0.9375rem; }
	.nat .ae-cc__card a { font-size: 0.875rem; word-break: break-word; }

	/* Highlights bleiben zweispaltig - es sind reine Bildkacheln. */
	.nat-home-showcase .wp-block-columns {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 0.9rem;
	}
	.nat-home-showcase .wp-block-columns > .wp-block-column { flex-basis: auto !important; margin: 0; }

	.nat-factbar { grid-template-columns: 1fr; }

	/* Auf dem Telefon steht alles links - also auch auf dem Desktop
	   nichts zentrieren, was hier links landet. */
	.nat :is(h1, h2, h3, p, .ae-eyebrow, .nat-eyebrow) { text-align: left; }
	.nat .has-text-align-center { text-align: left; }
	.ae-eyebrow,
	.nat-eyebrow { justify-content: flex-start; }

	/* Silbentrennung ist auf dem Telefon AUS (Verdict 12.08.2026). Vorher stand
	   hier hyphens:auto gegen den Bestandsbefund aus dem V2a-Prueflauf, dass
	   "Datenschutzerklaerung" und "Geschaeftsbedingungen" nicht in die
	   H1-Groesse passen und die Seite waagerecht rollte. Der Trennstrich hat
	   das geloest, aber er zerlegte auch Woerter, die gut in die naechste Zeile
	   gepasst haetten ("Gross-handel", "Fachhan-del") - fuer eine Marke, die
	   ueber Sortiment und Klarheit verkauft, liest sich das zerhackt.
	   Jetzt bleibt jedes Wort ganz und wandert als Ganzes in die naechste
	   Zeile. Gegen das waagerechte Rollen steht weiterhin break-word: es
	   greift ausschliesslich dann, wenn ein einzelnes Wort BREITER ALS DER
	   SCHIRM ist und sonst hinausragen wuerde. Genau dafuer sind die
	   Schriftgroessen unten zusaetzlich gedeckelt. */
	.nat :is(h1, h2, h3, h4, p, li, dd, dt, .ae-eyebrow, .nat-eyebrow) {
		hyphens: none;
		-webkit-hyphens: none;
		overflow-wrap: break-word;
	}

	/* Damit break-word gar nicht erst zuschlagen muss, folgt die Seiten-
	   ueberschrift auf dem Telefon der Fensterbreite. Gemessen am 12.08.2026
	   bei 390 px: verfuegbar sind 350 px, "Geschaeftsbedingungen" braucht in
	   der alten Groesse 403 px und "Datenschutzerklaerung" 395 px - beide
	   waeren mitten im Wort gebrochen. Mit 8vw bleiben sie bei rund 320 px und
	   stehen ganz in einer Zeile, auch auf 360er und 320er Geraeten. Der
	   Deckel von 2,5rem haelt die Groesse an der oberen Kante des
	   Breakpoints genau dort, wo sie vorher war.

	   Das !important ist hier kein Notnagel, sondern die Fortsetzung der
	   Typo-Achse aus Abschnitt 3: Zeile 310 holt inline gesetzte H1-Groessen
	   mit derselben Kennzeichnung auf die Preset-Stufe zurueck. Ohne sie
	   gewinnt jene Zeile, und die Ueberschrift bliebe auf dem Telefon zu
	   gross. */
	.nat h1,
	.nat h1.nat-display,
	.nat h1.nat-display[style*="font-size"] { font-size: clamp( 1.6rem, 8vw, 2.5rem ) !important; }

	/* Dasselbe eine Stufe tiefer. Ausloeser war "Sortimentsanforderungen" auf
	   /wpc-bpc-terrassendielen/: 370 px Wortbreite bei 350 px Platz. Die
	   Abstufung zur H1 bleibt erhalten (auf 390 px: 31 zu 26 px). */
	.nat h2,
	.nat h2.nat-display,
	.nat h2.nat-display[style*="font-size"] { font-size: clamp( 1.35rem, 6.6vw, 1.9375rem ) !important; }

	.nat-page-hero { padding-top: 2rem; padding-bottom: 2rem; }
	.nat-hero-media img { aspect-ratio: 3 / 2; }
	.nat-hero-actions { gap: 0.65rem; }
	.nat-hero-actions .wp-block-button,
	.nat-hero-actions .wp-block-button__link { width: 100%; text-align: center; }

	/* V2a: dieselbe Regel fuer die Haupt-Handlungsaufforderungen. Die
	   16rem-Mindestbreite von oben passt auf einem 390er Telefon nicht mehr
	   neben eine zweite, deshalb wird sie hier zurueckgenommen und beide
	   Knoepfe stehen untereinander auf voller Breite - also weiterhin
	   exakt gleich gross. */
	.nat .wp-block-buttons > .nat-cta { width: 100%; }
	.nat .nat-cta .wp-block-button__link { width: 100%; min-width: 0; }

	/* Stehen zwei oder mehr Knoepfe in einer Gruppe, gehen auf dem Telefon
	   ALLE auf volle Breite. Vorher ging nur der gefuellte auf 100 % und der
	   Umriss-Knopf daneben blieb auf Textbreite stehen - das sah auf
	   /ueber-uns/ und /wand/spc-wandpaneele/ nach einem Fehler aus. */
	.nat .wp-block-buttons:has(> .wp-block-button + .wp-block-button) > .wp-block-button,
	.nat .wp-block-buttons:has(> .wp-block-button + .wp-block-button) .wp-block-button__link {
		width: 100%;
		min-width: 0;
		text-align: center;
	}

	.nat p, .nat li { max-width: none; }

	.nat .ae-cf,
	.nat .ae-cf--katalog { max-width: none; }

	/* Fusszeile faltbar statt 1800 px Linkliste */
	.nat-sitefooter .wp-block-columns { gap: 1.75rem; }
	.nat-sitefooter__links { line-height: 1.9; }

}

@media (max-width: 480px) {
	.nat-trust-grid { grid-template-columns: 1fr 1fr; }
	.nat .ae-shf__strip { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
	.nat-card__body { padding: 1rem 1rem 1.15rem; }
}

/* Druck: Marke, Adresse und Text erhalten, Zierrat weg. */
@media print {
	.nat-siteheader,
	.nat .ae-cf { display: none !important; }
	.nat-sec { padding: 1rem 0 !important; }
	.nat-dark, .nat-sitefooter { background: #fff !important; color: #000 !important; }
}

/* ============================================================
 * 15 - MOBILE NAVIGATION: KLAPPMENUE UNTER DER KOPFZEILE
 *
 * Vorgeschichte (Runde 11): der Core-Navigation-Block legt sein Menue
 * als position:fixed-Overlay ueber den ganzen Bildschirm. Genau das
 * konnte hier nie aufgehen, weil .nat-siteheader mit backdrop-filter
 * arbeitet - eine gefilterte Box wird zum Bezugsrahmen fuer fixierte
 * Kinder. Das Overlay war deshalb auf Kopfzeilenhoehe (57 px)
 * zusammengefaltet, die Menuepunkte liefen seitlich aus dem Bild.
 *
 * Jetzt klappt das Menue als Panel nach unten in die Seite, wie auf
 * Telefonen ueblich. Bedienung, ESC, Fokusfalle und aria bleiben beim
 * Core-Block; hier wird ausschliesslich die Geometrie vorgegeben.
 *
 * Doppelte Klassen (.is-menu-open.is-menu-open) heben die Spezifitaet
 * ueber die Core-Regeln - der Core arbeitet an derselben Stelle mit
 * demselben Kniff. --nat-headerh misst functions.php am echten Kopf.
 * ============================================================ */

/* Bezugsrahmen fuer das Panel ausdruecklich setzen, statt ihn dem
   Nebeneffekt des backdrop-filter zu ueberlassen. */
.nat-siteheader { position: relative; }

/* Kein Rollriegel fuer das Klapp-Panel (12.08.2026).
 *
 * Der Core haengt beim Oeffnen has-modal-open an das <html> und sperrt damit
 * das Rollen - sinnvoll fuer ein Vollbild-Overlay, das den Hintergrund
 * verdeckt. Dieses Menue ist aber ein Panel, das unter der klebenden
 * Kopfzeile aufklappt und mit ihr im Bild bleibt. Der Riegel brachte hier
 * keinen Gewinn, sondern einen Verlust: ein Behaelter mit overflow:hidden hat
 * keine Rollposition mehr, sie fiel auf 0. Wer auf halber Seite das Menue
 * oeffnete, stand danach wieder ganz oben.
 *
 * Die Regel gilt ueber :has() ausdruecklich nur, solange das Navigationspanel
 * offen ist. Andere Overlays mit derselben Klasse - etwa die Bild-Lightbox
 * des Cores - behalten ihren Riegel. */
html.has-modal-open:has( .nat-siteheader .wp-block-navigation__responsive-container.is-menu-open ) {
	overflow: visible;
}

@media (max-width: 900px) {

	/* 15.1 - Burger schon ab 900 px statt erst ab 600 px (Core-Vorgabe).
	   Dazwischen stand die volle Leiste mit sieben Punkten im Kopf und
	   lief rechts aus dem Bild; das Layout klappt hier ohnehin bereits. */
	.nat-siteheader .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.nat-siteheader .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }

	/* 15.2 - Das Panel: volle Breite, direkt unter der Kopfzeile.
	   Der Core setzt position:relative auf das nav-Element. Weil das nav
	   im eingeklappten Zustand nur noch aus dem 24 px breiten Burger
	   besteht, waere es der Bezugsrahmen und das Panel 24 px schmal.
	   Also hier abschalten - Bezug ist die Kopfzeile. Untermenues
	   verankern sich am li, nicht am nav, und bleiben unberuehrt. */
	.nat-siteheader .wp-block-navigation { position: static; }

	.nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open {
		position: absolute;
		top: 100%;
		right: 0;
		bottom: auto;
		left: 0;
		z-index: 95;
		display: block;
		max-height: none;
		padding: 0;
		overflow: visible; /* gescrollt wird der Inhalt, siehe 15.3 */
		border-bottom: 1px solid var(--nat-line);
		box-shadow: 0 16px 34px -14px rgba(30, 35, 28, 0.32);
		gap: 0;
		/* Die Flaeche kommt aus der Hintergrundklasse des Blocks (mist-white,
		   ueber die Altlasten-Bruecke der Kopfzeilenton) - Preset-Klassen
		   tragen !important, dagegen anzuschreiben braechte nichts. */
	}

	/* Der Core richtet die Punkte im offenen Menue nach den
	   --navigation-layout-*-Variablen aus. Die Liste traegt selbst die
	   Klasse items-justified-right und setzt sie erneut auf flex-end,
	   deshalb wird hier direkt ausgerichtet: volle Zeilenbreite, links. */
	.nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__responsive-container-content,
	.nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
	.nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container,
	.nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
		align-items: stretch;
		justify-content: flex-start;
		text-align: left;
	}

	/* 15.3 - Scrollbereich: nie hoeher als der Rest des Bildschirms. */
	.nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__responsive-container-content {
		max-height: calc(100vh - var(--nat-headerh, 57px));
		max-height: calc(100dvh - var(--nat-headerh, 57px));
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
		padding: 0.25rem var(--wp--style--root--padding-right, 1.25rem) 1.25rem var(--wp--style--root--padding-left, 1.25rem);
	}
	.nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__responsive-close {
		max-width: none;
		margin: 0;
	}
	/* Der Core schiebt den Dialog bei eingeblendeter Adminleiste um 46 px
	   nach unten - richtig fuer ein Vollbild-Overlay, falsch fuer ein
	   Panel, das ohnehin unter dem Kopf haengt. */
	.admin-bar .nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__responsive-dialog {
		margin-top: 0;
	}

	/* 15.4 - Menuepunkte als Zeilen mit Trennlinie. */
	.nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation-item__content {
		display: block;
		width: 100%;
		padding: 0.95rem 0;
		border-bottom: 1px solid var(--nat-line);
		font-size: 1.0625rem;
	}
	.nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:last-child > .wp-block-navigation-item__content {
		border-bottom: 0;
	}

	/* Untermenues stehen im offenen Menue aufgeklappt (Core-Verhalten):
	   kein Aufklapp-Tippen noetig, alles ist mit einem Blick da. */
	.nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .has-child .wp-block-navigation__submenu-container {
		padding: 0 0 0 1rem;
		margin: 0;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		min-width: 0;
		background: transparent;
	}
	.nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: 0.8rem 0;
		font-size: 1rem;
		font-weight: 400;
		color: var(--nat-ink-soft);
	}
	/* Ein Punkt mit Unterpunkten bekommt keine Linie: er gehoert mit seinen
	   Unterpunkten zu einer Gruppe, die Linie kommt erst nach der Gruppe. */
	.nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .has-child > .wp-block-navigation-item__content {
		border-bottom: 0;
		padding-bottom: 0.5rem;
	}

	/* 15.5 - Aus dem Burger wird an Ort und Stelle ein Kreuz: der
	   Core-Schliessknopf wandert aus dem Panel hoch auf die Position des
	   Burgers, der Burger selbst wird ausgeblendet (die Klasse
	   has-modal-open setzt der Core-Block am <html>-Element). */
	html.has-modal-open .nat-siteheader .wp-block-navigation__responsive-container-open { visibility: hidden; }
	.nat-siteheader .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__responsive-container-close {
		position: absolute;
		top: calc(var(--nat-headerh, 57px) / -2 - 12px);
		right: var(--wp--style--root--padding-right, 1.25rem);
		left: auto;
		z-index: 3;
		color: var(--nat-ink);
	}
}

/* Sichtbarer Fokuszustand fuer Menuepunkte und FAQ-Akkordeons (Tastaturbedienung) */
.nat-siteheader .wp-block-navigation a:focus-visible,
.nat-faq__item summary:focus-visible {
	outline: 2px solid var(--nat-accent, #79A32E);
	outline-offset: 2px;
}

/* Bildleiste (Feinschliff 14.09.2026): drei Hochformate nebeneinander ergeben
   ein Querformat. Ersetzt das verzerrte Einzelbild auf den Wand-Seiten.
   Bleibt auch auf dem Handy dreispaltig (isStackedOnMobile false), damit die
   Leiste ihre Wirkung behaelt; das Seitenverhaeltnis haelt die Hoehe gleich. */
.nat-bildleiste { gap: 0.6rem; margin: 0; }
.nat-bildleiste .wp-block-column { min-width: 0; }
.nat-bildleiste__bild { margin: 0; border-radius: var(--nat-radius); overflow: hidden; background: var(--nat-sage); }
.nat-bildleiste__bild img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.nat-bildleiste__bild a { display: block; }
.nat-hero-media + .nat-bildleiste, .nat-bildleiste + .nat-cat-card__link { margin-top: 1rem; }
@media (max-width: 600px) { .nat-bildleiste { gap: 0.4rem; } }

/* SPC-Bildband (Runde 15, T6b, Kunden-PDF S7): drei Querformat-Produktbilder
   statt Schlafzimmer-Ambiente in der Hero-Spalte von /wand/spc-wandpaneele/.
   Ab 768 px drei Spalten, darunter eine; festes 4:3, kein Ueberlauf. */
.nat-spc-band {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.6rem;
	margin: 0;
	max-width: 100%;
}
.nat-spc-band > .nat-spc-band__bild {
	margin: 0;
	min-width: 0;
	border-radius: var(--nat-radius);
	overflow: hidden;
	background: var(--nat-sage);
}
.nat-spc-band__bild img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
@media (min-width: 768px) {
	.nat-spc-band { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* KI-Kennzeichnung unter Skizzen (Feinschliff 14.09.2026): Bildunterschrift leise,
   ohne den gruenen Figur-Hintergrund als Balken. */
/* Bildunterschrift ohne Deckkraft 0,8: lag bei 4,0:1 (Durchsicht 14.09.2026, B-4). */
.nat-card__media:has(.wp-element-caption) { background: transparent; }
.nat-card__media:has(.wp-element-caption) img { border-radius: var(--nat-radius); }
.nat-card__media .wp-element-caption { margin: 0.4rem 0 0; font-size: 0.72rem; letter-spacing: 0.04em; color: var(--nat-ink-soft); text-align: left; }
