/* --------------------------------------------------------------
   Reset / Basis
-------------------------------------------------------------- */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:root {
    --bg: #f5f3ee;
    --bg-soft: #efeae1;
    --surface: rgba(255, 255, 255, 0.72);
    --surface-strong: rgba(255, 255, 255, 0.9);
    --text: #2f342f;
    --text-soft: #667066;
    --accent: #8f9e6d;
    --accent-dark: #6f7c52;
    --line: rgba(80, 77, 68, 0.12);
    --shadow-soft: 0 10px 30px rgba(48, 40, 28, 0.08);
    --shadow-hover: 0 18px 45px rgba(48, 40, 28, 0.12);
    --radius: 22px;
    --radius-small: 14px;
    --site-width: 1600px;
    --content-width: 1400px;
	--hero-compact-height: 180px;
--hero-compact-height-mobile: 110px;
/* Header 	
    --header-height: 96px;
    --header-height-small: 74px;
*/	
    --header-height: 148px;
    --header-height-small: 82px;

    --header-padding-y: 1.35rem;
    --header-padding-y-small: 0.7rem;

    --logo-width: 168px;
    --logo-width-small: 92px;

    --brand-size: 2.15rem;
    --brand-size-small: 1.18rem;

    --brand-weight: 600;
    --brand-weight-small: 600;

    --brand-opacity: 1;
    --brand-opacity-small: 0.88;

    --nav-gap: 0.55rem;
    --nav-gap-small: 0.25rem;

    --nav-link-padding-y: 0.9rem;
    --nav-link-padding-y-small: 0.58rem;

    --nav-link-padding-x: 1.1rem;
    --nav-link-padding-x-small: 0.82rem;

    --header-bg: linear-gradient(
        180deg,
        rgba(28, 34, 38, 0.22) 0%,
        rgba(28, 34, 38, 0.12) 45%,
        rgba(28, 34, 38, 0.04) 100%
    );
    --header-bg-scrolled: rgba(247, 244, 239, 0.82);

    --header-border: transparent;
    --header-border-scrolled: rgba(80, 77, 68, 0.12);

    --header-shadow: none;
    --header-shadow-scrolled: 0 10px 28px rgba(37, 33, 24, 0.08);
/* Anpassung Ende */	
    --ease: cubic-bezier(.22, 1, .36, 1);
    --transition-fast: 0.28s var(--ease);
    --transition-soft: 0.55s var(--ease);
    --transition-slow: 0.9s var(--ease);
}

html,
body {
    scroll-behavior: smooth;
	max-width: 100%;
    overflow-x: hidden;
}

body {
    min-height: 100vh;
    overflow-x: hidden;
    background:
        radial-gradient(circle at top left, rgba(169, 182, 127, 0.18), transparent 30%),
        radial-gradient(circle at top right, rgba(123, 156, 171, 0.16), transparent 26%),
        linear-gradient(180deg, #f7f4ef 0%, #f1ede5 100%);
    color: var(--text);
    display: flex;
    flex-direction: column;
    font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.site-shell {
    overflow: visible;
}

.container {
    width: min(calc(100% - 2rem), var(--site-width));
    margin: 0 auto;
}

/* --------------------------------------------------------------
   Allgemeiner Style
-------------------------------------------------------------- */
a,
a:link,
a:visited,
a:active {
    color: var(--accent-dark);
    text-decoration: none;
    transition:
        color var(--transition-fast),
        opacity var(--transition-fast),
        transform var(--transition-fast),
        background var(--transition-fast);
}

a:hover {
    color: #4f5f39;
}

p {
    margin-bottom: 1.1em;
    color: var(--text-soft);
    font-size: 1.02rem;
}

iframe {
    border: 0;
    max-width: 100%;
}

fieldset,
fieldset#searchfieldset {
    border: none;
    margin: 0;
    padding: 0;
}

.noborder {
    border: none;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* --------------------------------------------------------------
   Überschriften
-------------------------------------------------------------- */
h1,
h2,
h3 {
    color: #283028;
    font-weight: 500;
    line-height: 1.16;
    letter-spacing: -0.02em;
}

h1 {
    font-size: clamp(2.4rem, 5vw, 4.8rem);
    margin-bottom: 0.35em;
}

h2 {
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    margin-bottom: 0.7em;
}

h3 {
    font-size: clamp(1.25rem, 2vw, 1.7rem);
    margin-bottom: 0.8em;
}

/* --------------------------------------------------------------
   Mozilo Syntax
-------------------------------------------------------------- */
hr {
    border: none;
    border-top: 1px solid var(--line);
    max-width: 100%;
    margin: 2rem auto;
}

.leftcontentimage {
    float: left;
    margin: 0.25em;
}

.rightcontentimage {
    float: right;
    margin: 0.25em;
}

.alignleft {
    text-align: left;
}

.aligncenter {
    text-align: center;
}

.alignright {
    text-align: right;
}

.alignjustify {
    text-align: justify;
}

.highlight {
    padding: 0.08em 0.3em;
    border-radius: 0.35em;
    background: rgba(143, 158, 109, 0.18);
    color: #334033;
}

.unorderedlist,
.orderedlist {
    margin-left: 1.2rem;
}

/* --------------------------------------------------------------
   Tabellen
-------------------------------------------------------------- */
table.contenttable {
    width: 100%;
    border-collapse: collapse;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255,255,255,0.72);
}

th.contenttable,
td.contenttable1,
td.contenttable2 {
    padding: 0.9rem;
    border: 1px solid var(--line);
    text-align: left;
}

th.contenttable {
    background: rgba(143, 158, 109, 0.12);
    color: #2b342b;
}

/* --------------------------------------------------------------
   Sitemap / Search results / tableofcontents
-------------------------------------------------------------- */
.result-list-header {
    display: block;
    font-size: 1.8em;
    margin: 1.176em auto .588em auto;
    padding-bottom: .118em;
    color: #212529;
    border-bottom: 1px solid var(--line);
    width: min(100%, var(--content-width));
}

.result-list-item {
    padding-bottom: .294em;
    padding-left: 2.5em;
    list-style-type: none;
}

#sitemap a,
.searchmap a,
.tableofcontents a {
    text-decoration: none;
    color: var(--text);
}

#sitemap a:hover,
.searchmap a:hover,
.tableofcontents a:hover {
    color: var(--accent-dark);
}

/* --------------------------------------------------------------
   Bilder
-------------------------------------------------------------- */
img {
    display: block;
    max-width: 100%;
    height: auto;
    border: none;
    border-radius: 18px;
    box-shadow: var(--shadow-soft);
}

.contentimage {
    display: inline-block;
    max-width: 100%;
}

span.imagesubtitle {
    display: block;
    margin-top: 0.45rem;
    font-size: 0.84rem;
    color: #7b857b;
    line-height: 1.4;
    text-align: center;
}

img.leftcontentimage,
img.rightcontentimage {
    max-width: min(320px, 42vw);
}

span.leftcontentimage {
    float: left;
    max-width: 100%;
    margin: .3rem 1.2rem 1rem 0;
}

span.rightcontentimage {
    float: right;
    max-width: 100%;
    margin: .3rem 0 1rem 1.2rem;
}

/* --------------------------------------------------------------
   Mozilo Gallery
-------------------------------------------------------------- */
.gallerymenu,
.gallerynumbermenu {
    display: block;
    text-align: center;
    padding: 0 10px 5px 10px;
}

.gallerymenu li,
.gallerynumbermenu > li {
    display: inline-block;
}

/* --------------------------------------------------------------
   Searchfield
-------------------------------------------------------------- */
.searchform {
    width: 100%;
    display: flex;
    align-items: stretch;
}

.searchtextfield {
    width: 100%;
    min-height: 46px;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(90, 98, 78, 0.15);
    border-right: none;
    border-radius: 999px 0 0 999px;
    background: rgba(255,255,255,0.9);
    color: var(--text);
    outline: none;
    transition:
        border-color var(--transition-fast),
        box-shadow var(--transition-fast),
        background var(--transition-fast);
}

.searchtextfield:focus {
    border-color: rgba(111, 124, 82, 0.34);
    box-shadow: inset 0 0 0 1px rgba(111, 124, 82, 0.18);
    background: #fff;
    color: var(--text);
}

.searchbutton {
    width: 50px;
    min-height: 46px;
    border: 1px solid rgba(111, 124, 82, 0.22);
    border-left: none;
    border-radius: 0 999px 999px 0;
    cursor: pointer;
    background-color: rgba(143, 158, 109, 0.92);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'><path fill='%23ffffff' d='M13.22 14.63a8 8 0 1 1 1.41-1.41l4.29 4.29a1 1 0 1 1-1.41 1.41l-4.29-4.29zm-.66-2.07a6 6 0 1 0-8.49-8.49 6 6 0 0 0 8.49 8.49z'></path></svg>");
    background-repeat: no-repeat;
    background-position: center;
    transition:
        background-color var(--transition-fast),
        transform var(--transition-fast);
}

.searchbutton:hover {
    background-color: var(--accent-dark);
}

/* --------------------------------------------------------------
   Header
-------------------------------------------------------------- */
.site-header {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 1000;
    min-height: var(--header-height);
    padding-top: var(--header-padding-y);
    padding-bottom: var(--header-padding-y);
    background: var(--header-bg);
    backdrop-filter: blur(0px);
    -webkit-backdrop-filter: blur(0px);
    box-shadow: var(--header-shadow);
	overflow: visible;
    transition:
        min-height var(--transition-soft),
        padding var(--transition-soft),
        background var(--transition-soft),
        border-color var(--transition-soft),
        box-shadow var(--transition-soft),
        backdrop-filter var(--transition-soft);
}

.site-header.is-scrolled {
    min-height: var(--header-height-small);
    padding-top: var(--header-padding-y-small);
    padding-bottom: var(--header-padding-y-small);
    background: var(--header-bg-scrolled);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom-color: var(--header-border-scrolled);
    box-shadow: var(--header-shadow-scrolled);
}

.header-inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.4rem;
    height: calc(var(--header-height) - (2 * var(--header-padding-y)));
    transition:
        gap var(--transition-soft),
        height var(--transition-soft);
}

.site-header.is-scrolled .header-inner {
    height: calc(var(--header-height-small) - (2 * var(--header-padding-y-small)));
}

.brand {
    position: relative;
    z-index: 4;
    flex: 0 0 auto;
    min-width: 0;
}

.brand-link {
    position: relative;
    display: block;
    text-decoration: none;
    width: auto;
    overflow: visible;
}

/* Bild und Text bewusst separat positionieren */
.brand-link img {
    display: block;
    width: var(--logo-width);
    height: auto;
    object-fit: contain;
    box-shadow: none;
    border-radius: 0;
    transform: translateY(22px);
    transform-origin: top left;
    transition:
        width var(--transition-soft),
        transform var(--transition-soft),
        opacity var(--transition-soft),
        filter var(--transition-soft);
}

.brand-name {
    position: absolute;
    left: calc(var(--logo-width) + 1rem);
    top: 50%;
    max-width: min(42vw, 32rem);
    overflow: visible;
    text-overflow: ellipsis;
    white-space: nowrap;
    transform: translateY(-16%);
    display: block;
    color: #f7f4ef;
    font-size: var(--brand-size);
    font-weight: var(--brand-weight);
    line-height: 1.12;
    letter-spacing: -0.025em;
    opacity: var(--brand-opacity);
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.18);
    transition:
        left var(--transition-soft),
        font-size var(--transition-soft),
        font-weight var(--transition-soft),
        opacity var(--transition-soft),
        color var(--transition-soft),
        text-shadow var(--transition-soft),
        transform var(--transition-soft);
}

.site-header.is-scrolled .brand-link img {
    width: var(--logo-width-small);
    transform: translateY(0);
}

.site-header.is-scrolled .brand-name {
    left: calc(var(--logo-width-small) + 0.8rem);
    top: 50%;
    transform: translateY(-50%);
    color: #2b332b;
    font-size: var(--brand-size-small);
    font-weight: var(--brand-weight-small);
    opacity: var(--brand-opacity-small);
    text-shadow: none;
}

/* --------------------------------------------------------------
   Desktop Navigation
-------------------------------------------------------------- */
.desktop-nav {
    position: absolute;
    right: -0.35rem;
    top: 50%;
    display: block;
    padding-top: 0;
    opacity: 1;
	font-size: 24px;
    visibility: visible;
    transform: translateY(-50%);
    pointer-events: auto;
    transition:
        transform var(--transition-soft),
        opacity var(--transition-soft),
        visibility var(--transition-soft),
        right var(--transition-soft);
}

.site-header.is-scrolled .desktop-nav {
    padding-top: 0;
	transform: translateY(-50%);
}

.desktop-nav .mainmenu {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--nav-gap);
    list-style: none;
    margin: 0;
    padding: 0;
    transition: gap var(--transition-soft);
}

.site-header.is-scrolled .desktop-nav .mainmenu {
    gap: var(--nav-gap-small);
}

.desktop-nav .mainmenu-item,
.desktop-nav li {
    list-style: none;
}

.desktop-nav a.menu,
.desktop-nav a.menuactive,
.desktop-nav a.submenu,
.desktop-nav a.submenuactive {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding:
        var(--nav-link-padding-y)
        var(--nav-link-padding-x);
    border-radius: 999px;
    color: rgba(247, 244, 239, 0.94);
    background: transparent;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
    transition:
        padding var(--transition-soft),
        color var(--transition-soft),
        background var(--transition-fast),
        text-shadow var(--transition-soft),
        transform var(--transition-fast),
        opacity var(--transition-fast);
}

.site-header.is-scrolled .desktop-nav a.menu,
.site-header.is-scrolled .desktop-nav a.menuactive,
.site-header.is-scrolled .desktop-nav a.submenu,
.site-header.is-scrolled .desktop-nav a.submenuactive {
    padding:
        var(--nav-link-padding-y-small)
        var(--nav-link-padding-x-small);
    color: #394239;
    text-shadow: none;
}

.desktop-nav a.menu:hover,
.desktop-nav a.submenu:hover {
    background: rgba(255, 255, 255, 0.12);
    transform: translateY(-1px);
}

.site-header.is-scrolled .desktop-nav a.menu:hover,
.site-header.is-scrolled .desktop-nav a.submenu:hover,
.site-header.is-scrolled .desktop-nav a.menuactive,
.site-header.is-scrolled .desktop-nav a.submenuactive {
    background: rgba(143, 158, 109, 0.14);
    color: #273127;
}

.desktop-nav a.menuactive,
.desktop-nav a.submenuactive {
    background: rgba(255, 255, 255, 0.14);
}

.desktop-nav ul.submenu {
    margin-top: 0.3rem;
    padding-left: 0.6rem;
}

.desktop-nav li.submenu {
    list-style: none;
}

/* --------------------------------------------------------------
   Mobile Navigation Toggle
-------------------------------------------------------------- */
.nav-toggle-wrap {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px) scale(0.92);
    pointer-events: none;
    transition:
        opacity var(--transition-soft),
        transform var(--transition-soft),
        visibility var(--transition-soft);
}

#checkbox_toggle {
    display: none;
}

.hamburger {
    position: relative;
    width: 34px;
    height: 26px;
    display: inline-block;
    cursor: pointer;
}

.line {
    position: absolute;
    left: 0;
    width: 34px;
    height: 2px;
    border-radius: 999px;
    background: #f5f3ee;
    transition: all 0.45s var(--ease);
}

.site-header.is-scrolled .line {
    background: #303730;
}

.line1 { top: 2px; }
.line2 { top: 12px; width: 24px; }
.line3 { top: 22px; }

#checkbox_toggle:checked + .hamburger .line1 {
    transform: translateY(10px) rotate(45deg);
}

#checkbox_toggle:checked + .hamburger .line2 {
    opacity: 0;
    transform: translateX(8px);
}

#checkbox_toggle:checked + .hamburger .line3 {
    transform: translateY(-10px) rotate(-45deg);
}

/* --------------------------------------------------------------
   Mobile Panel
-------------------------------------------------------------- */
.mobile-panel {
    position: fixed;
    top: var(--header-height);
    left: 0;
    right: 0;
    z-index: 900;
    pointer-events: none;
    transition: top var(--transition-soft);
}

.site-header.is-scrolled ~ .mobile-panel {
    top: var(--header-height-small);
}

.mobile-panel-inner {
    width: min(calc(100% - 1rem), 760px);
    margin: 0.8rem auto 0;
    padding: 1rem;
    border: 1px solid rgba(255,255,255,0.32);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: var(--shadow-soft);
    opacity: 0;
    transform: translateY(-10px) scale(0.985);
    transition:
        opacity var(--transition-soft),
        transform var(--transition-soft);
}

body.menu-open .mobile-panel {
    pointer-events: auto;
}

body.menu-open .mobile-panel-inner {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.mobile-nav .mainmenu,
.mobile-nav ul,
.mobile-nav li {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mobile-nav a.menu,
.mobile-nav a.menuactive,
.mobile-nav a.submenu,
.mobile-nav a.submenuactive {
    display: block;
    padding: 0.9rem 1rem;
    border-radius: 14px;
    color: #2f372f;
}

.mobile-nav a.menu:hover,
.mobile-nav a.menuactive,
.mobile-nav a.submenu:hover,
.mobile-nav a.submenuactive {
    background: rgba(143, 158, 109, 0.12);
}

/* --------------------------------------------------------------
   Hero
-------------------------------------------------------------- */
.hero {
    position: relative;
    min-height: 92vh;
    display: flex;
    align-items: end;
    padding: calc(var(--header-height) + 4.25rem) 0 5.5rem;
    overflow: hidden;
    transition:
        min-height 0.9s var(--ease),
        padding 0.9s var(--ease);
}

.hero-media {
    position: absolute;
    inset: -2px 0 -8px 0;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    transform: scale(1.04);
    will-change: transform;
    backface-visibility: hidden;
}

.hero-overlay {
    position: absolute;
    inset: 0 0 -10px 0;
    background:
        linear-gradient(
            180deg,
            rgba(247,244,239,0.18) 0%,
            rgba(247,244,239,0.05) 20%,
            rgba(247,244,239,0.62) 100%
        );
}

.hero-content {
    position: relative;
    z-index: 2;
    max-width: 780px;
    padding: 2rem 2.2rem;
    border: 1px solid rgba(255,255,255,0.32);
    border-radius: 28px;
    background: rgba(255,255,255,0.18);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 10px 30px rgba(25, 20, 15, 0.08);
}

.hero-kicker {
    margin-bottom: 0.6rem;
    color: rgba(40, 48, 40, 0.72);
    font-size: 0.92rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.hero-text {
    max-width: 58ch;
    margin-bottom: 0;
    color: rgba(43, 52, 43, 0.82);
    font-size: 1.08rem;
}

/* Hero beim Scrollbeginn weich einklappen */
.hero-media,
.hero-overlay,
.hero-content {
    transition:
        transform 0.9s var(--ease),
        opacity 0.7s var(--ease);
}

body.hero-lift .hero {
    min-height: var(--header-height-small);
    padding-top: var(--header-height-small);
    padding-bottom: 0;
}

body.hero-lift .hero-media,
body.hero-lift .hero-overlay {
    transform: translateY(-18vh) scale(1.04);
    opacity: 0;
    pointer-events: none;
}

body.hero-lift .hero-content {
    transform: translateY(-8vh);
    opacity: 0;
    pointer-events: none;
}

/* --------------------------------------------------------------
   Main Content
-------------------------------------------------------------- */
.site-main {
    position: relative;
    z-index: 2;
    margin-top: 0;
    padding-top: 2rem;
    padding-bottom: 5rem;
}

.content-wrap {
    display: block;
}

/* --------------------------------------------------------------
   Offener Inhaltsfluss
-------------------------------------------------------------- */
.content {
    position: relative;
}

.content > * {
    width: min(100%, var(--content-width));
    margin-left: auto;
    margin-right: auto;
}

.content > * + * {
    margin-top: 1.25rem;
}

/* Normale Inhaltsblöcke optisch leicht gefasst */
.content > h1,
.content > h2,
.content > h3,
.content > p,
.content > ul,
.content > ol,
.content > blockquote,
.content > table,
.content > hr,
.content > .float_container,
.content > .clearfix,
.content > .gallerymenu,
.content > .gallerynumbermenu,
.content > .searchmap,
.content > #sitemap,
.content > .tableofcontents {
    padding-left: clamp(1rem, 2vw, 1.75rem);
    padding-right: clamp(1rem, 2vw, 1.75rem);
}

.content > p,
.content > ul,
.content > ol,
.content > blockquote,
.content > table,
.content > .float_container,
.content > .clearfix,
.content > .searchmap,
.content > #sitemap,
.content > .tableofcontents {
    background: rgba(255,255,255,0.42);
    border: 1px solid rgba(255,255,255,0.24);
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(48, 40, 28, 0.04);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    padding-top: 1rem;
    padding-bottom: 1rem;
}

/* Überschriften bewusst ohne Kasten */
.content > h1,
.content > h2,
.content > h3 {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding-top: 0;
    padding-bottom: 0;
}

/* Bilder im normalen Inhaltsfluss */
.content img:not(.parallax-bg) {
    max-width: 100%;
}

/* --------------------------------------------------------------
   Parallax-Band
-------------------------------------------------------------- */
.parallax-band {
    position: relative;
    min-height: 44vh;
    overflow: hidden;
    background: #d9d9d9;
    box-shadow:
        inset 0 40px 60px rgba(245, 243, 238, 0.6),
        inset 0 -40px 60px rgba(245, 243, 238, 0.6);
}

.parallax-band.small {
    min-height: 30vh;
}

.parallax-band.large {
    min-height: 65vh;
}

.parallax-bg {
    position: absolute;
    inset: -12vh 0;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    transform: translate3d(0, 0, 0) scale(1.08);
    will-change: transform;
}

.parallax-band::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(245,243,238,0.5) 0%,
        rgba(30,34,28,0.05) 30%,
        rgba(30,34,28,0.05) 70%,
        rgba(245,243,238,0.5) 100%
    );
    pointer-events: none;
}

.parallax-band {
    position: relative !important;
    left: 50% !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* --------------------------------------------------------------
   Content-Elemente Detail
-------------------------------------------------------------- */
.content ul,
.content ol {
    padding-left: calc(clamp(1rem, 2vw, 1.75rem) + 1.2rem);
}

.content li + li {
    margin-top: 0.35rem;
}

.content blockquote {
    border-left: 3px solid rgba(143, 158, 109, 0.45);
    color: #4d544d;
}

.content hr {
    background: transparent;
    border: none;
    box-shadow: none;
    padding-top: 0;
    padding-bottom: 0;
}

/* --------------------------------------------------------------
   Footer
-------------------------------------------------------------- */
.site-footer {
    padding: 2.5rem 0 3rem;
    background: transparent;
}

.footer-inner {
    padding-top: 1.4rem;
    border-top: 1px solid var(--line);
    text-align: center;
}

.footer-inner p {
    margin-bottom: 0.45rem;
    color: #707970;
    font-size: 0.95rem;
}


/* --------------------------------------------------------------
   Scroll Top Button
-------------------------------------------------------------- */
#scrollTopBtn {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 1001;
    width: 48px;
    height: 48px;
    border: none;
    border-radius: 999px;
    background: rgba(111, 124, 82, 0.92);
    color: #fff;
    font-size: 1rem;
    cursor: pointer;
    box-shadow: var(--shadow-soft);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition:
        opacity var(--transition-soft),
        transform var(--transition-soft),
        visibility var(--transition-soft),
        background var(--transition-fast);
}

#scrollTopBtn.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

#scrollTopBtn:hover {
    background: #5d6946;
}

/* --------------------------------------------------------------
   Reveal Animation
-------------------------------------------------------------- */
.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition:
        opacity 0.9s var(--ease),
        transform 0.9s var(--ease);
}

.reveal.is-visible {
    opacity: 1;
    transform: none;
}

/* --------------------------------------------------------------
   Hilfsklassen / individuelle Anpassungen
-------------------------------------------------------------- */
.clearfix {
    width: 100%;
}

.clearfix::after {
    content: "";
    display: block;
    clear: both;
}

.float_container {
    display: flow-root;
}

.img_schmal img.leftcontentimage {
    width: 100px;
}

.img_breit img.leftcontentimage {
    width: 150px;
}

.img_breiter img.leftcontentimage {
    width: 200px;
}

img.leftcontentimage {
    margin-right: 10px;
}

.img_schmal,
.img_breit,
.img_breiter {
    float: left;
    margin-right: 20px;
    margin-bottom: 12px;
    overflow: hidden;
}

body.hero-none .hero {
    min-height: var(--hero-compact-height);
    padding: 0;
    align-items: stretch;
    background:
        linear-gradient(
            180deg,
            rgba(28, 34, 38, 0.88) 0%,
            rgba(28, 34, 38, 0.72) 100%
        );
}

body.hero-none .hero-media,
body.hero-none .hero-overlay,
body.hero-none .hero-content {
    display: none;
}

body.hero-none .site-main {
    padding-top: 2.5rem;
}

.anchor-target {
    display: block;
    scroll-margin-top: calc(var(--header-height-small) + 1.5rem);
}

/* --------------------------------------------------------------
   Responsive
-------------------------------------------------------------- */
@media (max-width: 1100px) {
    .header-inner {
        position: relative;
    }

    .desktop-nav {
        right: 0;
        top: 50%;
        opacity: 0;
        visibility: hidden;
        transform: translateY(calc(-50% - 12px));
        pointer-events: none;
    }

    .nav-toggle-wrap {
        position: relative;
        z-index: 5;
        margin-left: auto;
        opacity: 1;
        visibility: visible;
        transform: translateY(0) scale(1);
        pointer-events: auto;
    }

    .hero {
        min-height: 72vh;
		padding-top: calc(var(--header-height) + 3.25rem);
		padding-bottom: 4.25rem;
    }
}

@media (max-width: 768px) {
    body {
        font-size: 15px;
    }

	.mobile-panel {
		top: 92px;
	}

	.site-header.is-scrolled ~ .mobile-panel {
		top: 72px;
	}

    .container {
        width: min(calc(100% - 1rem), var(--site-width));
    }

    .site-header {
        min-height: 92px;
        padding-top: 0.85rem;
        padding-bottom: 0.85rem;
    }

    .site-header.is-scrolled {
        min-height: 72px;
        padding-top: 0.55rem;
        padding-bottom: 0.55rem;
    }

    .header-inner {
        height: 56px;
        align-items: center;
    }

	.brand {
		min-width: 0;
		max-width: calc(100% - 74px);
	}

	.brand-link {
		position: relative;
		display: flex;
		align-items: center;
		gap: clamp(0.45rem, 1.8vw, 0.8rem);
		min-width: 0;
	}

	.brand-link img {
		width: clamp(44px, 8vw, 62px);
		height: auto;
		flex: 0 0 auto;
		transform: translateY(0);
	}

	.brand-name {
		position: static;
		display: block;
		min-width: 0;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		transform: none;
		font-size: clamp(1.05rem, 3vw, 1.45rem);
		line-height: 1.16;
		text-shadow: 0 2px 10px rgba(0, 0, 0, 0.16);
	}

	.site-header.is-scrolled .brand-link img {
		width: clamp(40px, 7vw, 52px);
		transform: translateY(0);
	}

	.site-header.is-scrolled .brand-name {
		position: static;
		transform: none;
		font-size: clamp(0.95rem, 2.4vw, 1.15rem);
	}
    .desktop-nav {
        opacity: 0;
        visibility: hidden;
        transform: translateY(-12px);
        pointer-events: none;
    }

    .nav-toggle-wrap {
        opacity: 1;
        visibility: visible;
        transform: translateY(0) scale(1);
        pointer-events: auto;
    }

    .hero {
		min-height: 58vh;
		padding-top: calc(92px + 1.5rem);
		padding-bottom: 2.25rem;
		align-items: end;
	}
	
	.hero-title {
    color: #283028;
    font-weight: 500;
    line-height: 1.16;
    letter-spacing: -0.02em;
    font-size: clamp(2.4rem, 5vw, 4.8rem);
    margin-bottom: 0.35em;
}

	.hero-content {
		max-width: 100%;
		padding: 1.15rem 1rem;
		border-radius: 20px;
	}
	
	body.hero-none .hero {
        min-height: var(--hero-compact-height-mobile);
    }

    .content > p,
    .content > ul,
    .content > ol,
    .content > blockquote,
    .content > table,
    .content > .float_container,
    .content > .clearfix,
    .content > .searchmap,
    .content > #sitemap,
    .content > .tableofcontents {
        border-radius: 16px;
    }

    .parallax-band {
        min-height: 30vh;
    }

    .parallax-band.large {
        min-height: 40vh;
    }

    .content > .parallax-band {
        margin-top: 2.25rem;
        margin-bottom: 2.25rem;
    }

    span.leftcontentimage,
    span.rightcontentimage {
        float: none;
        display: block;
        margin: 0 0 1rem 0;
        max-width: 100%;
    }

    img.leftcontentimage,
    img.rightcontentimage {
        max-width: 100%;
    }
	
	@media (max-width: 768px) {
    body.hero-lift .hero {
        min-height: 72px;
        padding-top: 72px;
    }
}
	
}

@media (max-width: 550px) {
    body {
        font-size: 14px;
    }

    .mobile-panel-inner {
        border-radius: 18px;
    }

    #scrollTopBtn {
        width: 44px;
        height: 44px;
    }

    .parallax-band {
        min-height: 26vh;
    }

    .parallax-band.small {
        min-height: 22vh;
    }

    .parallax-band.large {
        min-height: 34vh;
    }
	
	.hero {
    min-height: 46vh;
    padding-top: calc(84px + 1rem);
    padding-bottom: 1.5rem;
	}

	.hero-content {
		padding: 0.95rem 0.9rem;
		border-radius: 18px;
	}

	.hero-kicker {
		margin-bottom: 0.45rem;
		font-size: 0.82rem;
		letter-spacing: 0.14em;
	}

	.hero-text {
		font-size: 0.98rem;
	}
	
	body.hero-none .hero {
        min-height: 84px;
    }
}

