html {
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    html {
	scroll-behavior: auto;
    }
}


/* ==========================================================
   SCHLSS MAGAZIN
   Inhaltsverzeichnis

   00 · Schrift
   01 · Variablen
   02 · Basis
   03 · Header
   04 · Hero
   05 · Intro
   06 · Animierte Linien
   07 · Mobil
   08 · Reduzierte Bewegung
   ========================================================== */


/* ==========================================================
   00 · SCHRIFT
   ========================================================== */


/* open-sans-regular - latin */
   @font-face {
     font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
     font-family: 'Open Sans';
     font-style: normal;
     font-weight: 400;
     src: url('../fonts/open-sans-v44-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
   }
   
   /* open-sans-italic - latin */
   @font-face {
     font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
     font-family: 'Open Sans';
     font-style: italic;
     font-weight: 400;
     src: url('../fonts/open-sans-v44-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
   }
   
   /* open-sans-700 - latin */
   @font-face {
     font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
     font-family: 'Open Sans';
     font-style: normal;
     font-weight: 700;
     src: url('../fonts/open-sans-v44-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
   }
   
   /* open-sans-700italic - latin */
   @font-face {
     font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
     font-family: 'Open Sans';
     font-style: italic;
     font-weight: 700;
     src: url('../fonts/open-sans-v44-latin-700italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
   }




/* sora-100 - latin */
   @font-face {
     font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
     font-family: 'Sora';
     font-style: normal;
     font-weight: 100;
     src: url('../fonts/sora-v17-latin-100.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
   }
   
   /* sora-200 - latin */
   @font-face {
     font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
     font-family: 'Sora';
     font-style: normal;
     font-weight: 200;
     src: url('../fonts/sora-v17-latin-200.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
   }
   
   /* sora-300 - latin */
   @font-face {
     font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
     font-family: 'Sora';
     font-style: normal;
     font-weight: 300;
     src: url('../fonts/sora-v17-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
   }
   
   /* sora-regular - latin */
   @font-face {
     font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
     font-family: 'Sora';
     font-style: normal;
     font-weight: 400;
     src: url('../fonts/sora-v17-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
   }
   
   /* sora-500 - latin */
   @font-face {
     font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
     font-family: 'Sora';
     font-style: normal;
     font-weight: 500;
     src: url('../fonts/sora-v17-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
   }
   
   /* sora-600 - latin */
   @font-face {
     font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
     font-family: 'Sora';
     font-style: normal;
     font-weight: 600;
     src: url('../fonts/sora-v17-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
   }
   
   /* sora-700 - latin */
   @font-face {
     font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
     font-family: 'Sora';
     font-style: normal;
     font-weight: 700;
     src: url('../fonts/sora-v17-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
   }
   
   /* sora-800 - latin */
   @font-face {
     font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
     font-family: 'Sora';
     font-style: normal;
     font-weight: 800;
     src: url('../fonts/sora-v17-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
   }



/* ==========================================================
   01 · VARIABLEN
   ========================================================== */

.schlss-mgzn-page {
    /* Farben */
    --schlss-mgzn-color-white: #ffffff;
    --schlss-mgzn-color-text: #494640;
    --schlss-mgzn-color-pink: #e5b6d0;
    --schlss-mgzn-color-purple: #8e014d;
    --schlss-mgzn-color-yellow: #e5bd00;
    --schlss-mgzn-color-light: #f2f0f0;

    /* Schrift */
    --schlss-mgzn-font-body: "Open Sans", Arial, sans-serif;
    --schlss-mgzn-font-heading: "Sora", Arial, sans-serif;

    /* Seitenraster */
    --schlss-mgzn-content-width: 69rem;
    --schlss-mgzn-page-gutter: clamp(1.25rem, 5vw, 4rem);

    /* Header */
    --schlss-mgzn-header-height: 8rem;
    --schlss-mgzn-header-logo-width: 8.5rem;
    --schlss-mgzn-header-sticky-height: 4.5rem;
    --schlss-mgzn-header-mark-width: 3.5rem;
    --schlss-mgzn-header-transition-duration: 250ms;

    /* Kontaktbutton */
    --schlss-mgzn-contact-button-height: 2.75rem;
    --schlss-mgzn-contact-button-padding-x: 1.5rem;
    --schlss-mgzn-contact-button-font-size: 0.75rem;

    /* Hero */
    --schlss-mgzn-hero-height: 100svh;
    --schlss-mgzn-hero-min-height: 38rem;

    /* Video: Skalierung und Ausschnitt */
    --schlss-mgzn-video-scale: 1;
    --schlss-mgzn-video-position-x: 50%;
    --schlss-mgzn-video-position-y: 50%;
    --schlss-mgzn-video-offset-x: 0%;
    --schlss-mgzn-video-offset-y: 0%;

    /* Weißer Übergang hinter dem Header */
    --schlss-mgzn-hero-fade-height: 24%;

    /* Magazin-SVG: Position und Größe */
    --schlss-mgzn-wordmark-width: clamp(24rem, 49vw, 55rem);
    --schlss-mgzn-wordmark-top: 36%;
    --schlss-mgzn-wordmark-right: -1.5%;

    /* Magazin-SVG: Scrollbewegung
       Faktor: 0 = keine Bewegung.
       Limit: maximale Bewegung in Pixeln, ohne Einheit.
    */
    --schlss-mgzn-wordmark-scroll-factor: 0.12;
    --schlss-mgzn-wordmark-scroll-limit: 120;

    /* Intro */
    --schlss-mgzn-intro-padding-top: 3rem;
    --schlss-mgzn-intro-padding-bottom: 6rem;
    --schlss-mgzn-intro-content-width: 42rem;
    --schlss-mgzn-intro-title-size: clamp(2.5rem, 4.5vw, 4.5rem);
    --schlss-mgzn-intro-text-size: clamp(1rem, 1.4vw, 1.25rem);
    --schlss-mgzn-intro-line-width: 10rem;

    /* Gemeinsame Linienanimation */
    --schlss-mgzn-line-width: 10rem;
    --schlss-mgzn-line-height: 0.35rem;
    --schlss-mgzn-line-duration: 900ms;
    --schlss-mgzn-line-delay: 100ms;
    --schlss-mgzn-line-easing: cubic-bezier(0.22, 1, 0.36, 1);
}


/* ==========================================================
   02 · BASIS
   ========================================================== */

.schlss-mgzn-page,
.schlss-mgzn-page *,
.schlss-mgzn-page *::before,
.schlss-mgzn-page *::after {
    box-sizing: border-box;
}

.schlss-mgzn-page {
    margin: 0;
    background: var(--schlss-mgzn-color-white);
    color: var(--schlss-mgzn-color-text);
    font-family: var(--schlss-mgzn-font-body);
    font-size: 1rem;
    line-height: 1.6;
    -webkit-text-size-adjust: 100%;
}

.schlss-mgzn-page :where(h1, h2, h3, p) {
    margin: 0;
}

.schlss-mgzn-page :where(button, input, select, textarea) {
    font: inherit;
}

.schlss-mgzn-page :where(img, svg, video, iframe) {
    display: block;
    max-width: 100%;
}

.schlss-mgzn-page :where(a) {
    color: inherit;
}

.schlss-mgzn-page :where(
    button,
    a,
    input,
    select,
    textarea
):focus-visible {
    outline: 3px solid var(--schlss-mgzn-color-purple);
    outline-offset: 5px;
}

.schlss-mgzn-page [hidden] {
    display: none !important;
}


.schlss-mgzn-page :where(h1, h2, h3, h4, h5, h6) {
    font-family: var(--schlss-mgzn-font-heading);
}



/* Abstand für Sprungziele unter dem feststehenden Header */

.schlss-mgzn-page :where(
    section,
    #schlss-mgzn-main,
    #schlss-mgzn-kontakt
) {
    scroll-margin-top: calc(
	var(--schlss-mgzn-header-sticky-height) + 1rem
    );
}

/* Inhaltsbreite */

.schlss-mgzn-container {
    width: min(
	calc(100% - var(--schlss-mgzn-page-gutter) * 2),
	var(--schlss-mgzn-content-width)
    );
    margin-inline: auto;
}

/* Skip-Link */

.schlss-mgzn-skip-link {
    position: fixed;
    z-index: 100;
    top: 1rem;
    left: 1rem;
    padding: 0.75rem 1.25rem;
    transform: translateY(calc(-100% - 2rem));
    background: var(--schlss-mgzn-color-white);
    color: var(--schlss-mgzn-color-purple);
    font-weight: 700;
}

.schlss-mgzn-skip-link:focus {
    transform: translateY(0);
}


/* ==========================================================
   03 · HEADER
   Anfang: vollständiges Logo über dem Hero.
   Ges scrollt: weißer, kompakter Header mit Bildmarke.
   ========================================================== */

.schlss-mgzn-header {
    position: fixed;
    z-index: 10;
    inset: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    height: var(--schlss-mgzn-header-height);
    padding-inline: var(--schlss-mgzn-page-gutter);
    background: transparent;
    transition:
	height var(--schlss-mgzn-header-transition-duration) ease,
	background-color var(--schlss-mgzn-header-transition-duration) ease;
}

/* Logo */

.schlss-mgzn-header__logo {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: var(--schlss-mgzn-header-logo-width);
    text-decoration: none;
}

.schlss-mgzn-header__logo svg {
    display: block;
    width: 100%;
    height: auto;
}

/* Kontaktbutton */

.schlss-mgzn-header__contact {
    position: absolute;
    right: var(--schlss-mgzn-page-gutter);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--schlss-mgzn-contact-button-height);
    padding: 0.5rem var(--schlss-mgzn-contact-button-padding-x);
    border-radius: 999px;
    background: var(--schlss-mgzn-color-yellow);
    color: var(--schlss-mgzn-color-text);
    font-size: var(--schlss-mgzn-contact-button-font-size);
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.12em;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
}

/* Scrollzustand */

.schlss-mgzn-header.schlss-mgzn-is-scrolled {
    height: var(--schlss-mgzn-header-sticky-height);
    background: var(--schlss-mgzn-color-white);
}

.schlss-mgzn-header.schlss-mgzn-is-scrolled
.schlss-mgzn-header__logo {
    width: var(--schlss-mgzn-header-mark-width);
}

.schlss-mgzn-header.schlss-mgzn-is-scrolled
.schlss-mgzn-header__logo-type {
    display: none;
}


/* ==========================================================
   04 · HERO
   ========================================================== */

.schlss-mgzn-hero {
    position: relative;
    isolation: isolate;
    height: var(--schlss-mgzn-hero-height);
    min-height: var(--schlss-mgzn-hero-min-height);
    overflow: hidden;
    overflow: clip;
    background: var(--schlss-mgzn-color-pink);
}

/* Hintergrundvideo */

.schlss-mgzn-hero__media {
    position: absolute;
    z-index: -2;
    inset: 0;
    overflow: hidden;
}

.schlss-mgzn-hero__video {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position:
	var(--schlss-mgzn-video-position-x)
	var(--schlss-mgzn-video-position-y);
    transform:
	translate(
	    var(--schlss-mgzn-video-offset-x),
	    var(--schlss-mgzn-video-offset-y)
	)
	scale(var(--schlss-mgzn-video-scale));
    transform-origin: center;
}

/* Weißer Verlauf am oberen Rand */

.schlss-mgzn-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0 0 auto;
    height: var(--schlss-mgzn-hero-fade-height);
    background: linear-gradient(
	to bottom,
	var(--schlss-mgzn-color-white),
	rgb(255 255 255 / 0)
    );
    pointer-events: none;
}

/* Magazin-Schriftzug
   JavaScript setzt die Variable --schlss-mgzn-scroll-y.
*/

.schlss-mgzn-hero__wordmark {
    position: absolute;
    top: var(--schlss-mgzn-wordmark-top);
    right: var(--schlss-mgzn-wordmark-right);
    width: var(--schlss-mgzn-wordmark-width);
    color: var(--schlss-mgzn-color-white);
    transform: translate3d(
	0,
	var(--schlss-mgzn-scroll-y, 0px),
	0
    );
    pointer-events: none;
}

.schlss-mgzn-hero__wordmark :where(img, svg) {
    width: 100%;
    height: auto;
}

/* Temporärer Schriftzug bis zum Einsetzen des SVGs */

.schlss-mgzn-hero__wordmark-placeholder {
    font-family: var(--schlss-mgzn-font-wordmark);
    font-size: clamp(10rem, 22vw, 25rem);
    font-weight: 700;
    line-height: 0.7;
    letter-spacing: -0.065em;
}

.schlss-mgzn-hero__wordmark-placeholder span {
    display: block;
}

/* Videosteuerung */

.schlss-mgzn-hero__video-toggle {
    position: absolute;
    z-index: 2;
    right: var(--schlss-mgzn-page-gutter);
    bottom: 1.25rem;
    min-height: 2.75rem;
    padding: 0.5rem 1rem;
    border: 1px solid currentColor;
    border-radius: 999px;
    background: rgb(255 255 255 / 85%);
    color: var(--schlss-mgzn-color-purple);
    font-size: 0.75rem;
    cursor: pointer;
}


/* ==========================================================
   05 · INTRO
   ========================================================== */

.schlss-mgzn-intro {
    padding-block:
	var(--schlss-mgzn-intro-padding-top)
	var(--schlss-mgzn-intro-padding-bottom);
    background: var(--schlss-mgzn-color-pink);
    color: var(--schlss-mgzn-color-white);
}

.schlss-mgzn-intro__content {
    max-width: var(--schlss-mgzn-intro-content-width);
}

.schlss-mgzn-intro__line {
    --schlss-mgzn-line-width: var(--schlss-mgzn-intro-line-width);

    margin-bottom: 2rem;
    color: var(--schlss-mgzn-color-purple);
}

.schlss-mgzn-intro__title {
    font-size: var(--schlss-mgzn-intro-title-size);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.025em;
    text-wrap: balance;
}

.schlss-mgzn-intro__text {
    max-width: 38rem;
    margin-top: 1.5rem;
    font-size: var(--schlss-mgzn-intro-text-size);
    line-height: 1.65;
}


/* ==========================================================
   06 · ANIMIERTE LINIEN
   Ohne JavaScript: vollständig sichtbar.

   JavaScript aktiviert:
   .schlss-mgzn-motion-ready am Body

   Beim Eintritt in den Viewport:
   .schlss-mgzn-is-visible an der Linie
   ========================================================== */

.schlss-mgzn-line {
    display: block;
    width: var(--schlss-mgzn-line-width);
    max-width: 100%;
    height: var(--schlss-mgzn-line-height);
    background: currentColor;
    transform-origin: left center;
}

.schlss-mgzn-motion-ready
.schlss-mgzn-line[data-schlss-mgzn-line] {
    transform: scaleX(0);
    transition:
	transform
	var(--schlss-mgzn-line-duration)
	var(--schlss-mgzn-line-easing)
	var(--schlss-mgzn-line-delay);
}

.schlss-mgzn-motion-ready
.schlss-mgzn-line[data-schlss-mgzn-line].schlss-mgzn-is-visible {
    transform: scaleX(1);
}


/* ==========================================================
   07 · MOBIL
   Breakpoint: 767px
   ========================================================== */

@media (max-width: 767px) {
    .schlss-mgzn-page {
	/* Seitenraster */
	--schlss-mgzn-page-gutter: 1.25rem;

	/* Header */
	--schlss-mgzn-header-height: 6.5rem;
	--schlss-mgzn-header-logo-width: 6.5rem;
	--schlss-mgzn-header-sticky-height: 4rem;
	--schlss-mgzn-header-mark-width: 2.75rem;

	/* Kontaktbutton */
	--schlss-mgzn-contact-button-padding-x: 0.75rem;
	--schlss-mgzn-contact-button-font-size: 0.625rem;

	/* Hero */
	--schlss-mgzn-hero-height: 82svh;
	--schlss-mgzn-hero-min-height: 30rem;

	/* Video: stärkerer Anschnitt */
	--schlss-mgzn-video-scale: 1.35;
	--schlss-mgzn-video-position-x: 35%;
	--schlss-mgzn-video-position-y: 50%;
	--schlss-mgzn-video-offset-x: 12%;
	--schlss-mgzn-video-offset-y: 0%;

	--schlss-mgzn-hero-fade-height: 22%;

	/* Magazin-Schriftzug */
	--schlss-mgzn-wordmark-width: 105%;
	--schlss-mgzn-wordmark-top: 43%;
	--schlss-mgzn-wordmark-right: -9%;
	--schlss-mgzn-wordmark-scroll-factor: 0.08;
	--schlss-mgzn-wordmark-scroll-limit: 60;

	/* Intro */
	--schlss-mgzn-intro-padding-top: 1.5rem;
	--schlss-mgzn-intro-padding-bottom: 3rem;
	--schlss-mgzn-intro-title-size: clamp(2rem, 7vw, 3rem);
	--schlss-mgzn-intro-text-size: 1rem;
	--schlss-mgzn-intro-line-width: 7rem;

	/* Linien */
	--schlss-mgzn-line-height: 0.25rem;
    }

    .schlss-mgzn-header__contact {
	letter-spacing: 0.06em;
    }

    .schlss-mgzn-hero__wordmark-placeholder {
	font-size: 45vw;
    }

    .schlss-mgzn-intro__line {
	margin-bottom: 1.5rem;
    }

    .schlss-mgzn-intro__text {
	margin-top: 1.25rem;
    }
}


/* ==========================================================
   08 · REDUZIERTE BEWEGUNG
   ========================================================== */

@media (prefers-reduced-motion: reduce) {
    .schlss-mgzn-page *,
    .schlss-mgzn-page *::before,
    .schlss-mgzn-page *::after {
	scroll-behavior: auto !important;
    }

    .schlss-mgzn-header {
	transition: none;
    }

    .schlss-mgzn-hero__wordmark {
	transform: none;
    }

    .schlss-mgzn-motion-ready
    .schlss-mgzn-line[data-schlss-mgzn-line] {
	transform: none;
	transition: none;
    }
}

.schlss-mgzn-hero__video-toggle {
	display: none
}


/* ==========================================================
   09 · MAGAZIN
   ========================================================== */

.schlss-mgzn-magazin {
    --schlss-mgzn-magazin-width: 80%;
    --schlss-mgzn-magazin-padding-x: 30px;
    --schlss-mgzn-magazin-padding-y: 0;
    --schlss-mgzn-magazin-height: 800px;

    padding:
	var(--schlss-mgzn-magazin-padding-y)
	var(--schlss-mgzn-magazin-padding-x);

    background: #e6e0dc;
}

.schlss-mgzn-magazin__container {
    width: var(--schlss-mgzn-magazin-width);
    margin-inline: auto;
    padding: 0;
}

.schlss-mgzn-magazin__iframe {
    display: block;
    width: 100%;
    height: var(--schlss-mgzn-magazin-height);
    border: 0;
}

@media (max-width: 767px) {
    .schlss-mgzn-magazin {
	--schlss-mgzn-magazin-width: 100%;
	--schlss-mgzn-magazin-padding-x: 24px;
	--schlss-mgzn-magazin-padding-y: 24px;
	--schlss-mgzn-magazin-height: 550px;
    }
}




/* ==========================================================
   10 · DOWNLOAD
   ========================================================== */

.schlss-mgzn-download {
    --schlss-mgzn-download-padding-y: 80px;
    --schlss-mgzn-download-content-width: 850px;
    --schlss-mgzn-download-text-size: 18px;
    --schlss-mgzn-download-link-size: 12px;
    --schlss-mgzn-download-link-spacing: 32px;
    --schlss-mgzn-download-icon-size: 44px;
    --schlss-mgzn-download-icon-gap: 20px;

    padding-block: var(--schlss-mgzn-download-padding-y);
    background: var(--schlss-mgzn-color-white);
    color: var(--schlss-mgzn-color-text);
}

.schlss-mgzn-download__content {
    max-width: var(--schlss-mgzn-download-content-width);
}

.schlss-mgzn-download__text {
    font-size: var(--schlss-mgzn-download-text-size);
    line-height: 1.75;
    margin: 0 0 1rem 0
}

.schlss-mgzn-download__link {
    display: inline-flex;
    align-items: center;
    gap: var(--schlss-mgzn-download-icon-gap);
    max-width: 100%;
    margin-top: var(--schlss-mgzn-download-link-spacing);
    font-size: var(--schlss-mgzn-download-text-size);
    text-decoration: none;
    font-weight: 500
}

.schlss-mgzn-download__label {
    text-underline-offset: 4px;
    font-weight: 700;
    transition:
    background-color 200ms ease,
    color 200ms ease;
}

.schlss-mgzn-download__icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: var(--schlss-mgzn-download-icon-size);
    height: var(--schlss-mgzn-download-icon-size);
    border: 1px solid var(--schlss-mgzn-color-yellow);
    border-radius: 50%;
    transition:
	background-color 200ms ease,
	color 200ms ease;
}

.schlss-mgzn-download__link:hover
.schlss-mgzn-download__label {
    text-decoration: none;
}

.schlss-mgzn-download__link:hover
.schlss-mgzn-download__icon {
    background: var(--schlss-mgzn-color-yellow);
}

.schlss-mgzn-download__link:hover .schlss-mgzn-download__label {
	color: var(--schlss-mgzn-color-yellow);
}

@media (max-width: 767px) {
    .schlss-mgzn-download {
	--schlss-mgzn-download-padding-y: 48px;
	--schlss-mgzn-download-text-size: 15px;
	--schlss-mgzn-download-link-spacing: 24px;
	--schlss-mgzn-download-icon-gap: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .schlss-mgzn-download__icon {
	transition: none;
    }
}



/* ==========================================================
   11 · ARCHIV
   ========================================================== */

.schlss-mgzn-archiv {
    --schlss-mgzn-archiv-background: #f2f0f0;
    --schlss-mgzn-archiv-padding-y: 80px;
    --schlss-mgzn-archiv-heading-spacing: 24px;
    --schlss-mgzn-archiv-title-size: 32px;
    --schlss-mgzn-archiv-subtitle-size: 14px;
    --schlss-mgzn-archiv-cover-width: 250px;
    --schlss-mgzn-archiv-arrow-size: 44px;
    --schlss-mgzn-archiv-action-size: 44px;
    --schlss-mgzn-archiv-action-gap: 10px;
    --schlss-mgzn-archiv-action-spacing: 20px;

    padding-block: var(--schlss-mgzn-archiv-padding-y);
    background: var(--schlss-mgzn-archiv-background);
    color: var(--schlss-mgzn-color-text);
}

/* Überschrift */

.schlss-mgzn-archiv__heading {
    margin-bottom: var(--schlss-mgzn-archiv-heading-spacing);
}

.schlss-mgzn-archiv__title {
    font-family: var(--schlss-mgzn-font-heading);
    font-size: var(--schlss-mgzn-archiv-title-size);
    font-weight: 700;
    line-height: 1.2;
}

.schlss-mgzn-archiv__subtitle {
    margin-top: 8px;
    font-size: var(--schlss-mgzn-archiv-subtitle-size);
    line-height: 1.5;
}

/* Slider mit seitlichen Pfeilen */

.schlss-mgzn-archiv__slider {
    display: grid;
    grid-template-columns:
	var(--schlss-mgzn-archiv-arrow-size)
	minmax(0, 1fr)
	var(--schlss-mgzn-archiv-arrow-size);
    align-items: center;
}

.schlss-mgzn-archiv__swiper {
    width: 100%;
    min-width: 0;
    padding: 24px 0 12px;
}

.schlss-mgzn-archiv__slide {
    height: auto;
}

/* Ausgabe */

.schlss-mgzn-archiv__card {
    width: 100%;
    max-width: var(--schlss-mgzn-archiv-cover-width);
    margin-inline: auto;
}

.schlss-mgzn-archiv__cover-link {
    display: block;
    text-decoration: none;
}

.schlss-mgzn-archiv__cover {
    width: 100%;
    height: auto;
    aspect-ratio: 210 / 297;
    object-fit: contain;
    box-shadow: -8px 8px 18px rgb(0 0 0 / 22%);
}

/* Online lesen / PDF herunterladen */

.schlss-mgzn-archiv__actions {
    display: flex;
    align-items: center;
    gap: var(--schlss-mgzn-archiv-action-gap);
    margin-top: var(--schlss-mgzn-archiv-action-spacing);
}

.schlss-mgzn-archiv__action {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: var(--schlss-mgzn-archiv-action-size);
    height: var(--schlss-mgzn-archiv-action-size);
    border: 1px solid var(--schlss-mgzn-color-yellow);
    border-radius: 50%;
    color: var(--schlss-mgzn-color-text);
    text-decoration: none;
    transition: background-color 200ms ease;
}

.schlss-mgzn-archiv__action:hover {
    background: var(--schlss-mgzn-color-yellow);
}

/* Navigation */

.schlss-mgzn-archiv__arrow {
    display: grid;
    place-items: center;
    width: var(--schlss-mgzn-archiv-arrow-size);
    height: var(--schlss-mgzn-archiv-arrow-size);
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--schlss-mgzn-color-text);
    cursor: pointer;
}

.schlss-mgzn-archiv__arrow--disabled,
.schlss-mgzn-archiv__arrow--locked {
    opacity: 0.25;
    cursor: default;
    pointer-events: none;
}

/* Mobil */

@media (max-width: 767px) {
    .schlss-mgzn-archiv {
	--schlss-mgzn-archiv-padding-y: 48px;
	--schlss-mgzn-archiv-title-size: 26px;
	--schlss-mgzn-archiv-cover-width: 220px;
	--schlss-mgzn-archiv-heading-spacing: 16px;
    }
}

/* Reduzierte Bewegung */

@media (prefers-reduced-motion: reduce) {
    .schlss-mgzn-archiv__action {
	transition: none;
    }
}



/* ==========================================================
   11 · ARCHIV
   ========================================================== */

.schlss-mgzn-archiv {
    --schlss-mgzn-archiv-background: #f2f0f0;
    --schlss-mgzn-archiv-padding-y: 80px;
    --schlss-mgzn-archiv-title-size: 32px;
    --schlss-mgzn-archiv-subtitle-size: 14px;
    --schlss-mgzn-archiv-cover-width: 250px;
    --schlss-mgzn-archiv-action-size: 44px;
    --schlss-mgzn-archiv-arrow-size: 44px;
    --schlss-mgzn-archiv-fade-width: 32px;
    --schlss-mgzn-archiv-navigation-height: 64px;

    padding-block: var(--schlss-mgzn-archiv-padding-y);
    overflow: hidden;
    background: var(--schlss-mgzn-archiv-background);
    color: var(--schlss-mgzn-color-text);
}

/* Überschrift */

.schlss-mgzn-archiv__heading {
    margin-bottom: 24px;
}

.schlss-mgzn-archiv__title {
    font-family: var(--schlss-mgzn-font-heading);
    font-size: var(--schlss-mgzn-archiv-title-size);
    font-weight: 700;
    line-height: 1.2;
}

.schlss-mgzn-archiv__subtitle {
    margin-top: 8px;
    font-size: var(--schlss-mgzn-archiv-subtitle-size);
    line-height: 1.5;
}

/* Slider über die volle Bildschirmbreite */

.schlss-mgzn-archiv__slider {
    --schlss-mgzn-archiv-content-inset: calc(
	(
	    100% - min(
		calc(100% - var(--schlss-mgzn-page-gutter) * 2),
		var(--schlss-mgzn-content-width)
	    )
	) / 2
    );

    position: relative;
    display: block;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-bottom: var(--schlss-mgzn-archiv-navigation-height);
}

.schlss-mgzn-archiv__swiper {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 24px 0 16px;
    overflow: hidden;
}

.schlss-mgzn-archiv__slide {
    width: var(--schlss-mgzn-archiv-cover-width);
    height: auto;
}

/* Ausgabe */

.schlss-mgzn-archiv__card {
    width: 100%;
    margin: 0;
}

.schlss-mgzn-archiv__cover-link {
    display: block;
    text-decoration: none;
}

.schlss-mgzn-archiv__cover {
    width: 100%;
    height: auto;
    aspect-ratio: 210 / 297;
    object-fit: contain;
    box-shadow: -8px 8px 18px rgb(0 0 0 / 22%);
}

/* Aktionen */

.schlss-mgzn-archiv__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
}

.schlss-mgzn-archiv__action {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: var(--schlss-mgzn-archiv-action-size);
    height: var(--schlss-mgzn-archiv-action-size);
    border: 1px solid var(--schlss-mgzn-color-yellow);
    border-radius: 50%;
    color: var(--schlss-mgzn-color-text);
    text-decoration: none;
    transition: background-color 200ms ease;
}

.schlss-mgzn-archiv__action:hover {
    background: var(--schlss-mgzn-color-yellow);
}

/* Fade am rechten Bildschirmrand.
   Endet oberhalb der separaten Navigation.
*/

.schlss-mgzn-archiv__slider::after {
    content: "";
    position: absolute;
    z-index: 2;
    top: 0;
    right: 0;
    bottom: var(--schlss-mgzn-archiv-navigation-height);
    width: min(
	var(--schlss-mgzn-archiv-fade-width),
	var(--schlss-mgzn-archiv-content-inset)
    );
    background: linear-gradient(
	to right,
	transparent,
	var(--schlss-mgzn-archiv-background)
    );
    pointer-events: none;
}

/* Navigation unterhalb der Cover */

.schlss-mgzn-archiv__arrow {
    position: absolute;
    z-index: 3;
    top: auto;
    right: auto;
    bottom: 0;
    display: grid;
    place-items: center;
    width: var(--schlss-mgzn-archiv-arrow-size);
    height: var(--schlss-mgzn-archiv-arrow-size);
    padding: 0;
    border: 0;
    background: transparent;
    color: #807772;
    transform: none;
    cursor: pointer;
}

.schlss-mgzn-archiv__arrow--prev {
    left: var(--schlss-mgzn-archiv-content-inset);
}

.schlss-mgzn-archiv__arrow--next {
    left: calc(
	var(--schlss-mgzn-archiv-content-inset) +
	var(--schlss-mgzn-archiv-arrow-size) +
	12px
    );
}

.schlss-mgzn-archiv__arrow svg {
    width: 20px;
    height: auto;
}

.schlss-mgzn-archiv__arrow--prev svg {
    transform: scaleX(-1);
}

.schlss-mgzn-archiv__arrow--disabled,
.schlss-mgzn-archiv__arrow--locked {
    opacity: 0.25;
    pointer-events: none;
    cursor: default;
}

/* Mobil */

@media (max-width: 767px) {
    .schlss-mgzn-archiv {
	--schlss-mgzn-archiv-padding-y: 48px;
	--schlss-mgzn-archiv-title-size: 26px;
	--schlss-mgzn-archiv-cover-width: 220px;
	--schlss-mgzn-archiv-fade-width: 20px;
    }
}

/* Reduzierte Bewegung */

@media (prefers-reduced-motion: reduce) {
    .schlss-mgzn-archiv__action {
	transition: none;
    }
}



/* ==========================================================
   12 · OLD BUT GOLD
   ========================================================== */

.schlss-mgzn-old {
    --schlss-mgzn-old-padding-y: 80px;
    --schlss-mgzn-old-button-width: 420px;
    --schlss-mgzn-old-button-height: 44px;
    --schlss-mgzn-old-row-height: 56px;
    --schlss-mgzn-old-list-height: 392px;

    padding-block: var(--schlss-mgzn-old-padding-y);
    background: var(--schlss-mgzn-color-purple);
    color: var(--schlss-mgzn-color-white);
}

.schlss-mgzn-old__title {
    font-size: 36px;
    font-weight: 700;
    line-height: 1.2;
}

.schlss-mgzn-old__text {
    margin-top: 12px;
    font-size: 18px;
    line-height: 1.6;
}

/* Auswahlbutton */

.schlss-mgzn-old__trigger {
    display: flex;
    align-items: center;
    gap: 20px;
    width: var(--schlss-mgzn-old-button-width);
    max-width: 100%;
    min-height: var(--schlss-mgzn-old-button-height);
    margin-top: 44px;
    padding: 0 20px 0 0;
    border: 2px solid var(--schlss-mgzn-color-yellow);
    border-radius: 999px;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.schlss-mgzn-old__download {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    align-self: stretch;
    width: var(--schlss-mgzn-old-button-height);
    min-height: var(--schlss-mgzn-old-button-height);
    margin: -2px 0 -2px -2px;
    border: 2px solid var(--schlss-mgzn-color-yellow);
    border-radius: 50%;
}

.schlss-mgzn-old__trigger-text {
    flex: 1;
    padding-block: 8px;
    font-size: 14px;
    line-height: 1.4;
}

.schlss-mgzn-old__filesize {
    font-size: 12px;
    font-weight: 400;
}

.schlss-mgzn-old__chevron {
    flex: 0 0 auto;
    transition: transform 250ms ease;
}

.schlss-mgzn-old__trigger[aria-expanded="true"]
.schlss-mgzn-old__chevron {
    transform: rotate(180deg);
}

.schlss-mgzn-old__trigger:focus-visible {
    outline-color: var(--schlss-mgzn-color-yellow);
}

/* Weißes Dropdown im obersten Browser-Layer */

.schlss-mgzn-old__dialog {
    position: fixed;
    inset: auto;
    top: var(--schlss-mgzn-old-dialog-top, 0px);
    left: var(--schlss-mgzn-old-dialog-left, 0px);
    width: var(--schlss-mgzn-old-dialog-width, 420px);
    max-width: calc(100% - 32px);
    max-height: var(--schlss-mgzn-old-dialog-max-height, 500px);
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 16px;
    background: var(--schlss-mgzn-color-white);
    color: var(--schlss-mgzn-color-text);
    font-family: var(--schlss-mgzn-font-body);
    box-shadow: 0 16px 50px rgb(0 0 0 / 22%);
}

.schlss-mgzn-old__dialog[open] {
    display: flex;
    flex-direction: column;
}

.schlss-mgzn-old__dialog::backdrop {
    background: transparent;
}

.schlss-mgzn-old__dialog-heading {
    flex: 0 0 auto;
    padding: 24px 64px 20px 24px;
    border-bottom: 1px solid #e6e0dc;
}

.schlss-mgzn-old__dialog-heading h3 {
    font-size: 20px;
    line-height: 1.3;
}

.schlss-mgzn-old__dialog-heading p {
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.5;
}

/* Scrollbare Liste */

.schlss-mgzn-old__list {
    flex: 0 1 auto;
    min-height: 0;
    max-height: var(--schlss-mgzn-old-list-height);
    margin: 0;
    padding: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    list-style: none;
}

.schlss-mgzn-old__list li + li {
    border-top: 1px solid #e6e0dc;
}

.schlss-mgzn-old__list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: var(--schlss-mgzn-old-row-height);
    padding: 12px 24px;
    color: var(--schlss-mgzn-color-text);
    font-size: 14px;
    text-decoration: none;
}

.schlss-mgzn-old__list a:hover {
    background: #f5f2ef;
    color: var(--schlss-mgzn-color-purple);
}

.schlss-mgzn-old__list a:focus-visible {
    outline-offset: -4px;
}

.schlss-mgzn-old__fileinfo {
    flex: 0 0 auto;
    font-size: 12px;
    color: #807772;
}

/* Schließen */

.schlss-mgzn-old__close {
    position: absolute;
    top: 16px;
    right: 12px;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #f2f0f0;
    color: var(--schlss-mgzn-color-purple);
    cursor: pointer;
}

/* Mobil: bildschirmfüllender Layer */

@media (max-width: 767px) {
    .schlss-mgzn-old {
	--schlss-mgzn-old-padding-y: 48px;
    }

    .schlss-mgzn-old__title {
	font-size: 28px;
    }

    .schlss-mgzn-old__text {
	font-size: 15px;
    }

    .schlss-mgzn-old__trigger {
	gap: 12px;
	margin-top: 28px;
    }

    .schlss-mgzn-old__dialog {
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100dvh;
	max-height: none;
	padding-bottom: calc(
	    96px + env(safe-area-inset-bottom, 0px)
	);
	border-radius: 0;
	box-shadow: none;
    }

    .schlss-mgzn-old__dialog-heading {
	padding: 32px 24px 24px;
    }

    .schlss-mgzn-old__list {
	flex: 1;
	max-height: none;
    }

    .schlss-mgzn-old__close {
	top: auto;
	right: 24px;
	bottom: calc(
	    24px + env(safe-area-inset-bottom, 0px)
	);
	width: 56px;
	height: 56px;
	background: var(--schlss-mgzn-color-purple);
	color: var(--schlss-mgzn-color-white);
    }

    .schlss-mgzn-old__close:focus-visible {
	outline-color: var(--schlss-mgzn-color-yellow);
    }
}

@media (prefers-reduced-motion: reduce) {
    .schlss-mgzn-old__chevron {
	transition: none;
    }
}




/* ==========================================================
   13 · KONTAKT
   ========================================================== */

.schlss-mgzn-kontakt {
    /* Fläche und Raster */
    --schlss-mgzn-kontakt-padding-y: 120px;
    --schlss-mgzn-kontakt-column-gap: 100px;
    --schlss-mgzn-kontakt-row-gap: 64px;
    --schlss-mgzn-kontakt-gradient-start: #ed590b;
    --schlss-mgzn-kontakt-gradient-end: #80004d;

    /* Schrift */
    --schlss-mgzn-kontakt-title-size: 36px;
    --schlss-mgzn-kontakt-text-size: 20px;
    --schlss-mgzn-kontakt-detail-size: 18px;
    --schlss-mgzn-kontakt-note-size: 15px;

    /* Linie */
    --schlss-mgzn-kontakt-line-width: 130px;
    --schlss-mgzn-kontakt-line-color: #f58a51;

    /* Logo */
    --schlss-mgzn-kontakt-logo-width: 300px;
    --schlss-mgzn-kontakt-logo-offset-top: 8px;
    --schlss-mgzn-kontakt-logo-start-y: -460px;
    --schlss-mgzn-kontakt-logo-duration: 1200ms;
    --schlss-mgzn-kontakt-logo-delay: 150ms;

    /* Kontakticons */
    --schlss-mgzn-kontakt-icon-size: 56px;
    --schlss-mgzn-kontakt-icon-gap: 24px;
    --schlss-mgzn-kontakt-detail-gap: 24px;

    position: relative;
    z-index: 1;
    padding-block: var(--schlss-mgzn-kontakt-padding-y);
    overflow: visible;
    background: linear-gradient(
	180deg,
	var(--schlss-mgzn-kontakt-gradient-start) 0%,
	var(--schlss-mgzn-kontakt-gradient-end) 80%
    );
    color: var(--schlss-mgzn-color-white);
}

/* Raster
   Links: Intro und Formular.
   Rechts: Bildmarke, Kontaktdaten und Hinweis.
*/

.schlss-mgzn-kontakt__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas:
	"intro brand"
	"form details"
	"form note";
    column-gap: var(--schlss-mgzn-kontakt-column-gap);
    row-gap: var(--schlss-mgzn-kontakt-row-gap);
    align-items: start;
}

/* Intro */

.schlss-mgzn-kontakt__intro {
    grid-area: intro;
}

.schlss-mgzn-kontakt__title {
    font-family: var(--schlss-mgzn-font-heading);
    font-size: var(--schlss-mgzn-kontakt-title-size);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.025em;
}

.schlss-mgzn-kontakt__line {
    --schlss-mgzn-line-width:
	var(--schlss-mgzn-kontakt-line-width);
    --schlss-mgzn-line-height: 8px;

    margin-block: 28px;
    color: var(--schlss-mgzn-kontakt-line-color);
}

.schlss-mgzn-kontakt__text {
    max-width: 460px;
    font-size: var(--schlss-mgzn-kontakt-text-size);
    line-height: 1.7;
}

/* Bildmarke
   Bewusst kein overflow:hidden:
   Das Logo darf aus der vorherigen Section einfliegen.
*/

.schlss-mgzn-kontakt__brand {
    grid-area: brand;
    padding-top: var(--schlss-mgzn-kontakt-logo-offset-top);
    pointer-events: none;
}

.schlss-mgzn-kontakt__logo {
    width: var(--schlss-mgzn-kontakt-logo-width);
    max-width: 100%;
    height: auto;
    color: var(--schlss-mgzn-color-purple);
}

/* Anfangszustand wird ausschließlich per JavaScript aktiviert. */

.schlss-mgzn-kontakt--motion-ready
.schlss-mgzn-kontakt__logo {
    transform: translateY(
	var(--schlss-mgzn-kontakt-logo-start-y)
    );
    transition:
	transform
	var(--schlss-mgzn-kontakt-logo-duration)
	cubic-bezier(0.22, 1, 0.36, 1)
	var(--schlss-mgzn-kontakt-logo-delay);
}

.schlss-mgzn-kontakt--motion-ready.schlss-mgzn-kontakt--visible
.schlss-mgzn-kontakt__logo {
    transform: translateY(0);
}

/* Formularplatzhalter */

.schlss-mgzn-kontakt__form {
    grid-area: form;
    min-width: 0;
}

.schlss-mgzn-kontakt__placeholder {
    display: grid;
    place-items: center;
    min-height: 500px;
    padding: 24px;
    border: 1px dashed rgb(255 255 255 / 40%);
    font-size: 16px;
}

/* Kontaktdaten */

.schlss-mgzn-kontakt__details {
    grid-area: details;
    display: flex;
    flex-direction: column;
    gap: var(--schlss-mgzn-kontakt-detail-gap);
    margin: 0;
    font-style: normal;
}

.schlss-mgzn-kontakt__detail {
    display: flex;
    align-items: center;
    gap: var(--schlss-mgzn-kontakt-icon-gap);
    min-width: 0;
    color: inherit;
    font-size: var(--schlss-mgzn-kontakt-detail-size);
    font-weight: 700;
    line-height: 1.5;
    text-decoration: none;
}

.schlss-mgzn-kontakt__detail span {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Icon-Container */

.schlss-mgzn-kontakt__icon {
    position: relative;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: var(--schlss-mgzn-kontakt-icon-size);
    height: var(--schlss-mgzn-kontakt-icon-size);
}

/* Kreis: Soft Light auf dem Verlauf */

.schlss-mgzn-kontakt__icon::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: #ffffff;
    mix-blend-mode: soft-light;
}

/* Weißes Symbol separat darüber */

.schlss-mgzn-kontakt__icon-symbol {
    position: relative;
    z-index: 1;
    width: 45%;
    height: 45%;
    object-fit: contain;
}

a.schlss-mgzn-kontakt__detail:hover span {
    text-decoration: underline;
    text-underline-offset: 4px;
}

/* Datenschutzhinweis */

.schlss-mgzn-kontakt__note {
    grid-area: note;
    font-size: var(--schlss-mgzn-kontakt-note-size);
    line-height: 1.85;
}

.schlss-mgzn-kontakt__note a {
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.schlss-mgzn-kontakt__required {
    margin-top: 32px;
}

/* Fokus auf dem farbigen Hintergrund */

.schlss-mgzn-kontakt :where(
    a,
    button,
    input,
    textarea,
    select
):focus-visible {
    outline-color: var(--schlss-mgzn-color-yellow);
}

/* Tablet */

@media (min-width: 768px) and (max-width: 1079px) {
    .schlss-mgzn-kontakt {
	--schlss-mgzn-kontakt-column-gap: 48px;
	--schlss-mgzn-kontakt-title-size: 28px;
	--schlss-mgzn-kontakt-text-size: 18px;
	--schlss-mgzn-kontakt-detail-size: 15px;
	--schlss-mgzn-kontakt-logo-width: 240px;
	--schlss-mgzn-kontakt-icon-size: 44px;
	--schlss-mgzn-kontakt-icon-gap: 16px;
    }
}

/* Mobil: entsprechend dem mobilen Entwurf ohne große Bildmarke */

@media (max-width: 767px) {
    .schlss-mgzn-kontakt {
	--schlss-mgzn-kontakt-padding-y: 72px;
	--schlss-mgzn-kontakt-row-gap: 40px;
	--schlss-mgzn-kontakt-title-size: 26px;
	--schlss-mgzn-kontakt-text-size: 16px;
	--schlss-mgzn-kontakt-detail-size: 15px;
	--schlss-mgzn-kontakt-note-size: 13px;
	--schlss-mgzn-kontakt-icon-size: 44px;
	--schlss-mgzn-kontakt-icon-gap: 16px;
	--schlss-mgzn-kontakt-line-width: 100px;
    }

    .schlss-mgzn-kontakt__grid {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas:
	    "intro"
	    "form"
	    "note"
	    "details";
    }

    .schlss-mgzn-kontakt__brand {
	display: none;
    }

    .schlss-mgzn-kontakt__line {
	--schlss-mgzn-line-height: 5px;

	margin-block: 24px;
    }

    .schlss-mgzn-kontakt__placeholder {
	min-height: 440px;
    }
}

/* Reduzierte Bewegung */

@media (prefers-reduced-motion: reduce) {
    .schlss-mgzn-kontakt--motion-ready
    .schlss-mgzn-kontakt__logo {
	transform: none;
	transition: none;
    }
}



/* ==========================================================
   KONTAKT · MOBILES LOGO
   ========================================================== */

@media (max-width: 767px) {
    .schlss-mgzn-kontakt {
	--schlss-mgzn-kontakt-logo-width: 220px;
	--schlss-mgzn-kontakt-logo-offset-top: 0px;
	--schlss-mgzn-kontakt-logo-start-y: -320px;
	--schlss-mgzn-kontakt-logo-duration: 1200ms;
	--schlss-mgzn-kontakt-logo-delay: 100ms;
    }

    .schlss-mgzn-kontakt__grid {
	grid-template-areas:
	    "brand"
	    "intro"
	    "form"
	    "note"
	    "details";
    }

    .schlss-mgzn-kontakt__brand {
	display: block;
	justify-self: center;
	width: var(--schlss-mgzn-kontakt-logo-width);
	max-width: 100%;
    }
}



/* ==========================================================
   14 · FOOTER
   ========================================================== */

.schlss-mgzn-footer {
    /* Fläche */
    --schlss-mgzn-footer-background: #494640;
    --schlss-mgzn-footer-color: #ffffff;
    --schlss-mgzn-footer-divider: rgb(255 255 255 / 25%);
    --schlss-mgzn-footer-padding-top: 48px;
    --schlss-mgzn-footer-padding-bottom: 56px;

    /* Links */
    --schlss-mgzn-footer-font-size: 14px;
    --schlss-mgzn-footer-link-gap: 40px;

    /* Social Media */
    --schlss-mgzn-footer-social-size: 44px;
    --schlss-mgzn-footer-social-gap: 12px;

    /* Awards */
    --schlss-mgzn-footer-awards-spacing-top: 72px;
    --schlss-mgzn-footer-awards-spacing-bottom: 112px;
    --schlss-mgzn-footer-award-height: 140px;
    --schlss-mgzn-footer-award-image-width: 180px;
    --schlss-mgzn-footer-award-image-height: 100px;

    /* Weitere Logos */
    --schlss-mgzn-footer-gwa-width: 200px;
    --schlss-mgzn-footer-ecovadis-width: 84px;
    --schlss-mgzn-footer-credentials-gap: 80px;

    padding-block:
	var(--schlss-mgzn-footer-padding-top)
	var(--schlss-mgzn-footer-padding-bottom);
    background: var(--schlss-mgzn-footer-background);
    color: var(--schlss-mgzn-footer-color);
    font-size: var(--schlss-mgzn-footer-font-size);
}

/* Links und Social Media */

.schlss-mgzn-footer__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
}

.schlss-mgzn-footer__links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: var(--schlss-mgzn-footer-link-gap);
    row-gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.schlss-mgzn-footer__links a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: inherit;
    text-decoration: none;
}

.schlss-mgzn-footer__links a:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}

/* Social Media */

.schlss-mgzn-footer__social {
    display: flex;
    align-items: center;
    gap: var(--schlss-mgzn-footer-social-gap);
}

.schlss-mgzn-footer__social a {
    display: block;
    flex: 0 0 auto;
    width: var(--schlss-mgzn-footer-social-size);
    height: var(--schlss-mgzn-footer-social-size);
    border-radius: 50%;
}

.schlss-mgzn-footer__social img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Awards */

.schlss-mgzn-footer__awards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin:
	var(--schlss-mgzn-footer-awards-spacing-top)
	0
	var(--schlss-mgzn-footer-awards-spacing-bottom);
    padding: 0;
    list-style: none;
}

.schlss-mgzn-footer__award {
    display: grid;
    place-items: center;
    min-width: 0;
    min-height: var(--schlss-mgzn-footer-award-height);
    padding: 20px 24px;
}

.schlss-mgzn-footer__award + .schlss-mgzn-footer__award {
    border-left: 1px solid var(--schlss-mgzn-footer-divider);
}

.schlss-mgzn-footer__award img {
    width: 100%;
    max-width: var(--schlss-mgzn-footer-award-image-width);
    height: var(--schlss-mgzn-footer-award-image-height);
    object-fit: contain;
}

/* Copyright und weitere Logos */

.schlss-mgzn-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.schlss-mgzn-footer__copyright {
    font-size: var(--schlss-mgzn-footer-font-size);
    line-height: 1.6;
}

.schlss-mgzn-footer__credentials {
    display: flex;
    align-items: center;
    gap: var(--schlss-mgzn-footer-credentials-gap);
}

.schlss-mgzn-footer__gwa {
    width: var(--schlss-mgzn-footer-gwa-width);
    height: auto;
}

.schlss-mgzn-footer__ecovadis {
    width: var(--schlss-mgzn-footer-ecovadis-width);
    height: auto;
}

/* Fokus */

.schlss-mgzn-footer a:focus-visible {
    outline-color: var(--schlss-mgzn-color-yellow);
}

/* Tablet */

@media (min-width: 768px) and (max-width: 1079px) {
    .schlss-mgzn-footer {
	--schlss-mgzn-footer-credentials-gap: 32px;
	--schlss-mgzn-footer-gwa-width: 170px;
    }

    .schlss-mgzn-footer__award {
	padding-inline: 16px;
    }
}

/* Mobil */

@media (max-width: 767px) {
    .schlss-mgzn-footer {
	--schlss-mgzn-footer-padding-top: 40px;
	--schlss-mgzn-footer-padding-bottom: 96px;
	--schlss-mgzn-footer-link-gap: 32px;
	--schlss-mgzn-footer-awards-spacing-top: 64px;
	--schlss-mgzn-footer-awards-spacing-bottom: 64px;
	--schlss-mgzn-footer-award-height: 150px;
	--schlss-mgzn-footer-award-image-width: 170px;
	--schlss-mgzn-footer-award-image-height: 100px;
	--schlss-mgzn-footer-gwa-width: 190px;
	--schlss-mgzn-footer-ecovadis-width: 80px;
	--schlss-mgzn-footer-credentials-gap: 24px;
    }

    .schlss-mgzn-footer__top {
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
    }

    /* Das Raster reicht bis zu den Bildschirmrändern. */

    .schlss-mgzn-footer__awards {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-inline: calc(
	    -1 * var(--schlss-mgzn-page-gutter)
	);
    }

    .schlss-mgzn-footer__award {
	padding: 24px var(--schlss-mgzn-page-gutter);
    }

    /* Vorherige Desktop-Trennlinien zurücksetzen. */

    .schlss-mgzn-footer__award + .schlss-mgzn-footer__award {
	border-left: 0;
    }

    /* Senkrechte Linie in der Mitte. */

    .schlss-mgzn-footer__award:nth-child(even) {
	border-left: 1px solid var(--schlss-mgzn-footer-divider);
    }

    /* Waagerechte Linie zwischen den beiden Reihen. */

    .schlss-mgzn-footer__award:nth-child(n + 3) {
	border-top: 1px solid var(--schlss-mgzn-footer-divider);
    }

    .schlss-mgzn-footer__bottom {
	flex-direction: column;
	align-items: stretch;
	gap: 48px;
    }

    .schlss-mgzn-footer__credentials {
	justify-content: space-between;
    }

    .schlss-mgzn-footer__gwa {
	max-width: calc(
	    100% -
	    var(--schlss-mgzn-footer-ecovadis-width) -
	    var(--schlss-mgzn-footer-credentials-gap)
	);
    }
}



/* FOOTER · ÄUSSERE AWARDS BÜNDIG AUSRICHTEN */

@media (min-width: 768px) {
    .schlss-mgzn-footer__award:first-child {
	justify-items: start;
	padding-left: 0;
    }

    .schlss-mgzn-footer__award:last-child {
	justify-items: end;
	padding-right: 0;
    }
}

/* Mobil: linke und rechte Spalte am Content ausrichten */

@media (max-width: 767px) {
    .schlss-mgzn-footer__award:nth-child(odd) {
	justify-items: start;
    }

    .schlss-mgzn-footer__award:nth-child(even) {
	justify-items: end;
    }
}



/* ==========================================================
   FOOTER · GLEICHMÄSSIGE ABSTÄNDE ZWISCHEN DEN AWARDS
   ========================================================== */

@media (min-width: 768px) {
    .schlss-mgzn-footer__awards {
	position: relative;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
    }

    .schlss-mgzn-footer__awards
    .schlss-mgzn-footer__award {
	flex: 0 0 var(--schlss-mgzn-footer-award-image-width);
	width: var(--schlss-mgzn-footer-award-image-width);
	min-width: 0;
	padding: 0;
	border: 0;
	justify-items: stretch;
    }

    .schlss-mgzn-footer__award img {
	width: 100%;
	max-width: none;
	height: auto;
    }

    /* Linien jeweils mittig zwischen zwei Grafiken */

    .schlss-mgzn-footer__award:nth-child(-n + 3)::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 1px;
	background: var(--schlss-mgzn-footer-divider);
    }

    .schlss-mgzn-footer__award:nth-child(1)::after {
	left: calc(
	    var(--schlss-mgzn-footer-award-image-width) +
	    (
		100% -
		4 * var(--schlss-mgzn-footer-award-image-width)
	    ) / 6
	);
    }

    .schlss-mgzn-footer__award:nth-child(2)::after {
	left: 50%;
    }

    .schlss-mgzn-footer__award:nth-child(3)::after {
	right: calc(
	    var(--schlss-mgzn-footer-award-image-width) +
	    (
		100% -
		4 * var(--schlss-mgzn-footer-award-image-width)
	    ) / 6
	);
    }
}

@media (min-width: 768px) and (max-width: 1079px) {
    .schlss-mgzn-footer {
	--schlss-mgzn-footer-award-image-width: 140px;
    }
}



/* HERO · WEICHER ÜBERGANG ZUM INTRO */

.schlss-mgzn-hero {
    --schlss-mgzn-hero-bottom-fade-height: 180px;
}

.schlss-mgzn-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: auto 0 0;
    height: var(--schlss-mgzn-hero-bottom-fade-height);
    background: linear-gradient(
	to bottom,
	transparent 0%,
	var(--schlss-mgzn-color-pink) 100%
    );
    pointer-events: none;
}

@media (max-width: 767px) {
    .schlss-mgzn-hero {
	--schlss-mgzn-hero-bottom-fade-height: 120px;
    }
}



/* ==========================================================
   15 · WPFORMS · KONTAKTFORMULAR
   ========================================================== */

.schlss-mgzn-kontakt__form {
    /* Schrift */
    --schlss-mgzn-form-font: var(--schlss-mgzn-font-body);
    --schlss-mgzn-form-label-size: 14px;
    --schlss-mgzn-form-input-size: 16px;

    /* Felder */
    --schlss-mgzn-form-field-height: 46px;
    --schlss-mgzn-form-textarea-height: 220px;
    --schlss-mgzn-form-border-color: #e64b73;
    --schlss-mgzn-form-border-width: 1px;
    --schlss-mgzn-form-radius: 4px;
    --schlss-mgzn-form-padding-x: 12px;

    /* Abstände */
    --schlss-mgzn-form-column-gap: 24px;
    --schlss-mgzn-form-row-gap: 24px;
    --schlss-mgzn-form-label-gap: 10px;
    --schlss-mgzn-form-submit-gap: 40px;

    /* Button */
    --schlss-mgzn-form-button-height: 48px;
    --schlss-mgzn-form-button-padding-x: 32px;
    --schlss-mgzn-form-button-size: 14px;
}


/* ==========================================================
   01 · FORMULAR-CONTAINER
   ========================================================== */

.schlss-mgzn-kontakt__form div.wpforms-container {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    color: #ffffff;
    font-family: var(--schlss-mgzn-form-font);
}

.schlss-mgzn-kontakt__form .wpforms-form {
    margin: 0;
}


/* ==========================================================
   02 · FELDRASTER
   ========================================================== */

.schlss-mgzn-kontakt__form .wpforms-form .wpforms-field-container {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--schlss-mgzn-form-column-gap);
    row-gap: var(--schlss-mgzn-form-row-gap);
}

.schlss-mgzn-kontakt__form .wpforms-form .wpforms-field {
    grid-column: 1 / -1;
    float: none;
    clear: none;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.schlss-mgzn-kontakt__form
.wpforms-form
.wpforms-field.schlss-mgzn-form-half {
    grid-column: span 1;
}


/* ==========================================================
   03 · LABELS
   ========================================================== */

.schlss-mgzn-kontakt__form .wpforms-form .wpforms-field-label {
    display: block;
    margin: 0 0 var(--schlss-mgzn-form-label-gap);
    padding: 0;
    color: #ffffff;
    font-family: var(--schlss-mgzn-form-font);
    font-size: var(--schlss-mgzn-form-label-size);
    font-weight: 400;
    line-height: 1.5;
}

.schlss-mgzn-kontakt__form
.wpforms-form
.wpforms-field-label
.wpforms-required-label {
    color: inherit;
}


/* ==========================================================
   04 · EINGABEFELDER
   Transparente Fläche, rosa Kontur, weißer Text.
   ========================================================== */

.schlss-mgzn-kontakt__form .wpforms-form :is(
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="url"],
    input[type="number"],
    textarea
) {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100% !important;
    min-height: var(--schlss-mgzn-form-field-height);
    margin: 0;
    padding: 10px var(--schlss-mgzn-form-padding-x);
    border: var(--schlss-mgzn-form-border-width) solid
	var(--schlss-mgzn-form-border-color);
    border-radius: var(--schlss-mgzn-form-radius);
    background: transparent;
    color: #ffffff;
    font-family: var(--schlss-mgzn-form-font);
    font-size: var(--schlss-mgzn-form-input-size);
    font-weight: 400;
    line-height: 1.5;
    box-shadow: none;
}

.schlss-mgzn-kontakt__form .wpforms-form textarea {
    height: var(--schlss-mgzn-form-textarea-height);
    min-height: var(--schlss-mgzn-form-textarea-height);
    resize: vertical;
}

.schlss-mgzn-kontakt__form .wpforms-form :is(input, textarea)::placeholder {
    color: rgb(255 255 255 / 60%);
    opacity: 1;
}

/* Fokus */

.schlss-mgzn-kontakt__form .wpforms-form :is(
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="url"],
    input[type="number"],
    textarea
):focus {
    border-color: var(--schlss-mgzn-color-yellow);
    outline: 2px solid var(--schlss-mgzn-color-yellow);
    outline-offset: 3px;
    box-shadow: none;
}


/* ==========================================================
   05 · ABSENDE-BUTTON
   ========================================================== */

.schlss-mgzn-kontakt__form .wpforms-form .wpforms-submit-container {
    margin: var(--schlss-mgzn-form-submit-gap) 0 0;
    padding: 0;
}

.schlss-mgzn-kontakt__form .wpforms-form button.wpforms-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-height: var(--schlss-mgzn-form-button-height);
    height: auto;
    margin: 0;
    padding: 12px var(--schlss-mgzn-form-button-padding-x);
    border: 0;
    border-radius: 999px;
    background: var(--schlss-mgzn-color-yellow);
    color: var(--schlss-mgzn-color-text);
    font-family: var(--schlss-mgzn-form-font);
    font-size: var(--schlss-mgzn-form-button-size);
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 3px;
    text-transform: uppercase;
    box-shadow: none;
    cursor: pointer;
}

.schlss-mgzn-kontakt__form .wpforms-form button.wpforms-submit:hover {
    background: #f0cb18;
    color: var(--schlss-mgzn-color-text);
    box-shadow: none;
}

.schlss-mgzn-kontakt__form .wpforms-form button.wpforms-submit:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 4px;
}

.schlss-mgzn-kontakt__form .wpforms-form button.wpforms-submit:disabled {
    opacity: 0.65;
    cursor: wait;
}


/* ==========================================================
   06 · HINWEISE UND VALIDIERUNG
   ========================================================== */

.schlss-mgzn-kontakt__form .wpforms-form :is(
    .wpforms-field-description,
    .wpforms-field-sublabel
) {
    margin-top: 8px;
    color: #ffffff;
    font-family: var(--schlss-mgzn-form-font);
    font-size: 13px;
    line-height: 1.7;
}

.schlss-mgzn-kontakt__form .wpforms-form .wpforms-field-description a {
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.schlss-mgzn-kontakt__form .wpforms-form :is(
    label.wpforms-error,
    em.wpforms-error,
    .wpforms-error-container
) {
    color: #fff0a8;
    font-size: 13px;
    line-height: 1.5;
}

.schlss-mgzn-kontakt__form .wpforms-form :is(
    input.wpforms-error,
    textarea.wpforms-error
) {
    border-color: #fff0a8 !important;
}

/* Bestätigung nach erfolgreichem Versand */

.schlss-mgzn-kontakt__form .wpforms-confirmation-container-full {
    margin: 0;
    padding: 24px;
    border: 1px solid var(--schlss-mgzn-color-yellow);
    border-radius: 4px;
    background: transparent;
    color: #ffffff;
    font-family: var(--schlss-mgzn-form-font);
    line-height: 1.7;
}


/* ==========================================================
   07 · MOBIL
   ========================================================== */

@media (max-width: 767px) {
    .schlss-mgzn-kontakt__form {
	--schlss-mgzn-form-label-size: 13px;
	--schlss-mgzn-form-column-gap: 16px;
	--schlss-mgzn-form-row-gap: 20px;
	--schlss-mgzn-form-textarea-height: 220px;
	--schlss-mgzn-form-submit-gap: 32px;
    }
}



/* ==========================================================
   WPFORMS · RASTER KORRIGIEREN
   ========================================================== */

#schlss-mgzn-kontakt .wpforms-container .wpforms-field-container {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--schlss-mgzn-form-column-gap, 24px);
    row-gap: var(--schlss-mgzn-form-row-gap, 24px);
}

/* WPForms-Clearfix darf keine Grid-Zelle belegen. */

#schlss-mgzn-kontakt .wpforms-field-container::before,
#schlss-mgzn-kontakt .wpforms-field-container::after {
    content: none !important;
    display: none !important;
}

/* Standard: volle Breite, ohne alte Spaltenabstände. */

#schlss-mgzn-kontakt
.wpforms-container
.wpforms-field-container > .wpforms-field {
    grid-column: 1 / -1 !important;
    float: none !important;
    clear: none !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
}

/* Halbe Breite: eigene oder vorhandene WPForms-Klasse. */

#schlss-mgzn-kontakt
.wpforms-container
.wpforms-field-container > .wpforms-field:is(
    .schlss-mgzn-form-half,
    .wpforms-one-half
) {
    grid-column: span 1 !important;
}

/* Eingabefelder innerhalb ihrer jeweiligen Spalte. */

#schlss-mgzn-kontakt .wpforms-container .wpforms-form :is(
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    textarea
) {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
}

/* Beschriftungen */

#schlss-mgzn-kontakt
.wpforms-container
.wpforms-form
.wpforms-field-label {
    font-weight: 400 !important;
}

/* Nachrichtenfeld */

#schlss-mgzn-kontakt .wpforms-container .wpforms-form textarea {
    height: var(--schlss-mgzn-form-textarea-height, 220px) !important;
    min-height: var(--schlss-mgzn-form-textarea-height, 220px) !important;
}

/* Der Button wird aktuell ebenfalls von WPForms überschrieben. */

#schlss-mgzn-kontakt
.wpforms-container
.wpforms-form
button.wpforms-submit {
    min-height: 48px;
    height: auto !important;
    padding: 12px 32px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--schlss-mgzn-color-yellow) !important;
    color: var(--schlss-mgzn-color-text) !important;
    font-family: var(--schlss-mgzn-font-body);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 3px;
    text-transform: uppercase;
    box-shadow: none !important;
}



/* ==========================================================
   WPFORMS · FOKUS UND FEHLERZUSTAND
   ========================================================== */

/* Text und Platzhalter grundsätzlich weiß */

#schlss-mgzn-kontakt .wpforms-form :is(input, textarea) {
    color: #ffffff !important;
    caret-color: #ffffff;
}

#schlss-mgzn-kontakt .wpforms-form :is(input, textarea)::placeholder {
    color: #ffffff !important;
    opacity: 1;
}

/* Fokus: weißer Rahmen */

#schlss-mgzn-kontakt .wpforms-form :is(input, textarea):focus {
    border-color: #ffffff !important;
    outline: 2px solid #ffffff;
    outline-offset: 2px;
    box-shadow: none !important;
}

/* Validierungsfehler: gelber Rahmen und Inhalt */

#schlss-mgzn-kontakt .wpforms-form :is(input, textarea):is(
    .wpforms-error,
    [aria-invalid="true"]
) {
    border-color: var(--schlss-mgzn-color-yellow) !important;
    color: var(--schlss-mgzn-color-yellow) !important;
    caret-color: var(--schlss-mgzn-color-yellow);
}

#schlss-mgzn-kontakt .wpforms-form :is(input, textarea):is(
    .wpforms-error,
    [aria-invalid="true"]
)::placeholder {
    color: var(--schlss-mgzn-color-yellow) !important;
}

#schlss-mgzn-kontakt .wpforms-form :is(input, textarea):is(
    .wpforms-error,
    [aria-invalid="true"]
):focus {
    outline-color: var(--schlss-mgzn-color-yellow);
}

/* Fehlermeldungen ebenfalls gelb */

#schlss-mgzn-kontakt .wpforms-form :is(
    label.wpforms-error,
    em.wpforms-error,
    .wpforms-error-container
) {
    color: var(--schlss-mgzn-color-yellow) !important;
}


/* WPFORMS · NUR EIN RAHMEN BEIM FOKUS */

#schlss-mgzn-kontakt .wpforms-form :is(input, textarea):focus {
    outline: none !important;
    box-shadow: none !important;
}


#schlss-mgzn-kontakt .wpforms-form .wpforms-submit-container {
    margin-top: 40px !important;
    padding-top: 0 !important;
}

#schlss-mgzn-main {
	width: 100%;
	overflow: hidden
}



/* HERO · SCROLLBEWEGUNG DES SCHRIFTZUGS */

.schlss-mgzn-hero {
    --schlss-mgzn-wordmark-scroll-factor: 0.35;
    --schlss-mgzn-wordmark-bottom-gap: 24px;
}

@media (max-width: 767px) {
    .schlss-mgzn-hero {
	--schlss-mgzn-wordmark-scroll-factor: 0.2;
	--schlss-mgzn-wordmark-bottom-gap: 16px;
    }
}



/* ARCHIV · COVER OHNE UNTEREN RAND */

.schlss-mgzn-archiv__cover-link {
    display: block;
    line-height: 0;
    border: 0;
    background: transparent;
}

.schlss-mgzn-archiv__cover {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    border: 0;
}



/* WPFORMS · MOBIL ALLE FELDER UNTEREINANDER */

@media (max-width: 767px) {
    #schlss-mgzn-kontakt .wpforms-container .wpforms-field-container {
	grid-template-columns: minmax(0, 1fr);
    }

    #schlss-mgzn-kontakt
    .wpforms-container
    .wpforms-field-container > .wpforms-field {
	grid-column: 1 / -1 !important;
    }

    /* Auch Unterfelder wie die E-Mail-Bestätigung stapeln. */

    #schlss-mgzn-kontakt .wpforms-form .wpforms-field-row {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 100%;
    }

    #schlss-mgzn-kontakt .wpforms-form .wpforms-field-row-block {
	float: none !important;
	width: 100% !important;
	margin-left: 0 !important;
    }
}


/* ==========================================================
   WPFORMS · MOBIL EINSPALTIG UND BÜNDIG
   ========================================================== */

@media (max-width: 767px) {

    #schlss-mgzn-kontakt
    .wpforms-container
    .wpforms-form
    .wpforms-field-container {
	grid-template-columns: minmax(0, 1fr) !important;
    }

    #schlss-mgzn-kontakt
    .wpforms-container
    .wpforms-form
    .wpforms-field-container > .wpforms-field {
	grid-column: 1 / -1 !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
    }

    /* Innere Feldreihen, z. B. E-Mail + Bestätigung */

    #schlss-mgzn-kontakt
    .wpforms-container
    .wpforms-form
    .wpforms-field-row {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
    }

    #schlss-mgzn-kontakt
    .wpforms-container
    .wpforms-form
    .wpforms-field-row-block {
	display: block !important;
	float: none !important;
	clear: both !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
    }

    #schlss-mgzn-kontakt
    .wpforms-container
    .wpforms-form
    .wpforms-field-row-block + .wpforms-field-row-block {
	margin-top: 20px !important;
    }
}



/* ==========================================================
   NACHRICHT VERSCHICKT · SEITENTEMPLATE
   ========================================================== */

.schlss-mgzn-message-sent {
    min-height: 100svh;
    padding-top: 220px;
    padding-bottom: 120px;
}

.schlss-mgzn-message-sent__content {
    max-width: 740px;
}

.schlss-mgzn-message-sent__title {
    font-family: var(--schlss-mgzn-font-heading);
    font-size: 44px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.025em;
}

.schlss-mgzn-message-sent__text {
    font-family: var(--schlss-mgzn-font-body);
    font-size: 20px;
    line-height: 1.7;
}

.schlss-mgzn-message-sent__text > * + * {
    margin-top: 20px;
}

.schlss-mgzn-message-sent__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin-top: 40px;
    padding: 12px 28px;
    border-radius: 999px;
    background: var(--schlss-mgzn-color-yellow);
    color: var(--schlss-mgzn-color-text);
    font-size: 14px;
    text-decoration: none;
}

/* Header über dem orangen Verlauf */

.schlss-mgzn-page--message-sent .schlss-mgzn-header {
    background: transparent;
}

/* Alle Logo-Pfade weiß, inklusive Wortmarke */

.schlss-mgzn-page--message-sent
.schlss-mgzn-header__logo
svg path {
    fill: #ffffff !important;
}

/* Kontaktbutton ausblenden */

.schlss-mgzn-page--message-sent
.schlss-mgzn-header__contact {
    display: none;
}

@media (max-width: 767px) {
    .schlss-mgzn-message-sent {
	padding-top: 160px;
	padding-bottom: 80px;
    }

    .schlss-mgzn-message-sent__title {
	font-size: 30px;
    }

    .schlss-mgzn-message-sent__text {
	font-size: 17px;
    }
}



/* ==========================================================
   404 · SEITE NICHT GEFUNDEN
   ========================================================== */

.schlss-mgzn-error {
    --schlss-mgzn-error-number-size: 200px;
    --schlss-mgzn-error-title-size: 44px;

    display: flex;
    align-items: center;
    min-height: 100svh;
    padding-top: 180px;
    padding-bottom: 100px;
}

.schlss-mgzn-error__content {
    max-width: 740px;
}

.schlss-mgzn-error__number {
    display: block;
    margin-bottom: 32px;
    color: var(--schlss-mgzn-color-purple);
    font-family: var(--schlss-mgzn-font-heading);
    font-size: var(--schlss-mgzn-error-number-size);
    font-weight: 800;
    line-height: 0.9;
    letter-spacing: -0.08em;
}

.schlss-mgzn-error__title {
    font-family: var(--schlss-mgzn-font-heading);
    font-size: var(--schlss-mgzn-error-title-size);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.025em;
}

.schlss-mgzn-error__text {
    max-width: 580px;
    font-family: var(--schlss-mgzn-font-body);
    font-size: 20px;
    line-height: 1.7;
}

@media (max-width: 767px) {
    .schlss-mgzn-error {
	--schlss-mgzn-error-number-size: 130px;
	--schlss-mgzn-error-title-size: 30px;

	padding-top: 150px;
	padding-bottom: 72px;
    }

    .schlss-mgzn-error__text {
	font-size: 17px;
    }
}