/* ==========================================================================
   Layout: Container, Sections, Raster, Header, Footer, Seitenkopf
   ========================================================================== */

.fuz-container { width: min(100% - 2 * var(--fuz-rand), var(--fuz-content)); margin-inline: auto; }
.fuz-container--text { width: min(100% - 2 * var(--fuz-rand), var(--fuz-text)); margin-inline: auto; }
.fuz-section { padding-block: var(--fuz-space-10); }
.fuz-section--tight { padding-block: var(--fuz-space-8); }

.fuz-grid { display: grid; gap: var(--fuz-space-7) var(--fuz-gutter); }
.fuz-grid--2 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); }
.fuz-grid--3 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }

/* ---------- Header ---------- */
.fuz-header { position: sticky; top: 0; z-index: 100; background: var(--fuz-c-basalt-950); color: var(--fuz-c-weiss); border-bottom: 1px solid var(--fuz-c-basalt-700); transition: background-color var(--fuz-dur) var(--fuz-ease), color var(--fuz-dur) var(--fuz-ease), transform .3s var(--fuz-ease); }
.fuz-header--transparent { position: fixed; inset-inline: 0; background: transparent; color: var(--fuz-c-weiss); border-bottom-color: rgb(255 255 255 / .2); }
.fuz-header--transparent.is-scrolled, .fuz-header.is-open { background: var(--fuz-c-basalt-950); color: var(--fuz-c-weiss); border-bottom-color: var(--fuz-c-basalt-700); }
.fuz-header.is-hidden { transform: translateY(-100%); }
.fuz-header__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--fuz-space-6); min-height: var(--fuz-header-h); padding: 16px var(--fuz-rand); }
.fuz-header__logo { display: block; flex: none; color: inherit; }
.fuz-logo { width: 162px; height: auto; }
.admin-bar .fuz-header { top: var(--wp-admin--admin-bar--height, 0); }

/* Burger */
.fuz-header__toggle { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-right: -12px; padding: 0; background: none; border: 0; color: inherit; }
.fuz-burger { position: relative; width: 26px; height: 12px; }
.fuz-burger span { position: absolute; left: 0; width: 100%; height: 2px; background: currentColor; transition: transform var(--fuz-dur) var(--fuz-ease), top var(--fuz-dur) var(--fuz-ease); }
.fuz-burger span:first-child { top: 0; }
.fuz-burger span:last-child { top: 10px; }
[aria-expanded="true"] .fuz-burger span:first-child { top: 5px; transform: rotate(45deg); }
[aria-expanded="true"] .fuz-burger span:last-child { top: 5px; transform: rotate(-45deg); }

/* Mobile Navigation: Vollbild-Panel */
.fuz-nav { position: fixed; inset: var(--fuz-header-h) 0 0; z-index: 99; display: flex; flex-direction: column; gap: var(--fuz-space-7); padding: var(--fuz-space-7) var(--fuz-rand) var(--fuz-space-8); background: var(--fuz-c-basalt-950); color: var(--fuz-c-weiss); overflow-y: auto; overscroll-behavior: contain; visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity var(--fuz-dur) var(--fuz-ease), transform var(--fuz-dur) var(--fuz-ease), visibility 0s linear var(--fuz-dur); }
.fuz-header.is-open .fuz-nav { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
.fuz-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--fuz-space-2); }
.fuz-nav__list a { display: block; padding-block: 6px; font-size: var(--fuz-fs-titel-s); font-weight: 700; line-height: 1.25; text-decoration: none; }
.fuz-nav__list a:hover, .fuz-nav__list [aria-current] { color: var(--fuz-c-porphyr-500); }
.fuz-nav__lang { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--fuz-space-4); font-size: var(--fuz-fs-body-s); font-weight: 700; }
.fuz-nav__lang a { display: inline-block; min-width: 24px; padding-block: 12px; text-decoration: none; opacity: .6; }
.fuz-nav__lang [aria-current], .fuz-nav__lang a:hover { opacity: 1; }
.fuz-nav__cta { align-self: flex-start; --fuz-btn-bg: var(--fuz-c-weiss); --fuz-btn-text: var(--fuz-c-basalt-950); --fuz-btn-bg-hover: var(--fuz-c-kalk-100); }
.fuz-header :focus-visible { outline-color: var(--fuz-c-porphyr-500); }
html.is-nav-open { overflow: hidden; }

@media (min-width: 1100px) {
	.fuz-header__toggle { display: none; }
	.fuz-nav { position: static; inset: auto; z-index: auto; flex-direction: row; align-items: center; gap: 40px; padding: 0; background: none; color: inherit; overflow: visible; visibility: visible; opacity: 1; transform: none; transition: none; }
	.fuz-nav__list { flex-direction: row; align-items: center; gap: 16px; }
	.fuz-nav__list > li { display: flex; align-items: center; gap: 16px; }
	.fuz-nav__list > li + li::before { content: "/"; font-size: var(--fuz-fs-body-s); font-weight: 700; line-height: 1; opacity: .35; }
	.fuz-nav__list a { position: relative; padding-block: 12px; font-size: var(--fuz-fs-body-s); line-height: 1; }
	.fuz-nav__list a::after { content: ""; position: absolute; left: 0; bottom: 4px; width: 20px; height: 2px; background: var(--fuz-c-porphyr-500); transform: scaleX(0); transform-origin: left; transition: transform var(--fuz-dur) var(--fuz-ease); }
	.fuz-nav__list a:hover { color: inherit; }
	.fuz-nav__list a:hover::after, .fuz-nav__list [aria-current]::after { transform: none; }
	.fuz-nav__list [aria-current] { color: inherit; }
	.fuz-nav__cta { align-self: auto; }
	html.is-nav-open { overflow: auto; }
}

/* ---------- Seitenkopf (Figma: SST Page Hero) ---------- */
.fuz-page-hero { position: relative; isolation: isolate; padding-block: var(--fuz-space-10) var(--fuz-space-9); }
.fuz-page-hero--image { display: flex; align-items: flex-end; min-height: min(820px, 85svh); }
.fuz-page-hero__media { position: absolute; inset: 0; z-index: -1; }
.fuz-page-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgb(0 0 0 / .65), rgb(0 0 0 / .15) 60%, rgb(0 0 0 / .3)); }
.fuz-page-hero__inner { display: grid; gap: var(--fuz-space-5); }
.fuz-page-hero__title { max-width: 18ch; font-size: min(var(--fuz-fs-display), 9.4vw); overflow-wrap: break-word; hyphens: auto; }
.fuz-page-hero__lead { max-width: 760px; color: var(--fuz-text-secondary); }
.fuz-page-hero--image .fuz-page-hero__lead { color: var(--fuz-c-weiss); }

.fuz-breadcrumbs { font-size: var(--fuz-fs-caption); font-weight: 500; color: var(--fuz-text-secondary); }
.fuz-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 .6em; }
.fuz-breadcrumbs li + li::before { content: "/"; margin-right: .6em; opacity: .7; }
.fuz-breadcrumbs a { text-decoration: none; }
.fuz-breadcrumbs a:hover { text-decoration: underline; }
.fuz-page-hero--image .fuz-breadcrumbs { color: rgb(255 255 255 / .85); }

/* ---------- Inhalt (Blockeditor) ----------
   Eigene Blöcke (<section>) bringen Breite und Abstände selbst mit;
   Core-Blöcke (Absatz, Liste, Bild …) laufen in der Textbreite. */
.fuz-content > :not(section) { width: min(100% - 2 * var(--fuz-rand), var(--fuz-text)); margin-inline: auto; }
.fuz-content > :not(section):first-child { margin-top: var(--fuz-space-9); }
.fuz-content > :not(section):last-child { margin-bottom: var(--fuz-space-10); }
.fuz-content > :not(section) + :not(section) { margin-top: var(--fuz-space-5); }
.fuz-content > .alignwide { width: min(100% - 2 * var(--fuz-rand), var(--fuz-content)); }
.fuz-content > .alignfull { width: 100%; }
.fuz-content > :not(section) a:not(.fuz-button) { color: var(--fuz-accent); text-decoration: underline; }

/* ---------- Footer (Figma: SST Footer) ---------- */
.fuz-footer { padding-block: var(--fuz-space-10) var(--fuz-space-7); }
.fuz-footer__cta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: var(--fuz-space-7); padding-bottom: var(--fuz-space-9); border-bottom: 1px solid var(--fuz-line); }
.fuz-footer__cta .fuz-label { margin-bottom: var(--fuz-space-4); color: var(--fuz-text-secondary); }
.fuz-footer__cta h2 { max-width: 12ch; }
.fuz-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: var(--fuz-space-7) var(--fuz-space-6); padding-block: var(--fuz-space-8); }
.fuz-footer__logo .fuz-logo { width: 182px; }
.fuz-footer__title { margin: 0 0 var(--fuz-space-3); font-size: var(--fuz-fs-label); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; line-height: 1.2; color: var(--fuz-text-secondary); }
.fuz-footer__title:not(:first-child) { margin-top: var(--fuz-space-6); }
.fuz-footer__text, .fuz-footer__list { font-size: var(--fuz-fs-body-s); line-height: 1.55; }
.fuz-footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.fuz-footer__list a, .fuz-footer__meta a { text-decoration: none; display: inline-block; padding-block: 4px; }
.fuz-footer__list a:hover, .fuz-footer__meta a:hover { color: var(--fuz-accent); text-decoration: underline; }
.fuz-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--fuz-space-4) var(--fuz-space-6); padding-top: var(--fuz-space-5); border-top: 1px solid var(--fuz-line); font-size: var(--fuz-fs-caption); color: var(--fuz-text-secondary); }
.fuz-footer__bottom nav { display: flex; flex-wrap: wrap; gap: var(--fuz-space-5); }
.fuz-footer__meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--fuz-space-5); }

@media print {
	.fuz-header, .fuz-footer__cta, .fuz-skip { display: none !important; }
	body { color: #000; background: #fff; }
}
