@import url("footer.css?v=2");

/* Smoothy für moziloCMS 3.0.5; technische Grundlage: bereitgestelltes Simple-Layout. */
/* ========================================================================== 
   simple-9 – schlankes, mobiles Basislayout für moziloCMS
   Mobile First: Grundregeln gelten für kleine Bildschirme.
   ========================================================================== */

/* ========================================================================== 
   1. LAYOUT-EINSTELLUNGEN

   In diesem Bereich können die wichtigsten Eigenschaften des Layouts
   angepasst werden. Alle übrigen CSS-Regeln sollten normalerweise
   unverändert bleiben.
   ========================================================================== */

/* ========================================================================== 
   EIGENE SCHRIFT
   Die Schriftdatei wird unter css/fonts abgelegt; name.woff2 oder name.ttf. WOFF2 ist kleiner,
   wird bevorzugt; TTF als Alternative.

   Das Einbinden mit /* Eigene Schriften: Dateien nach css/fonts legen, @font-face ergänzen.
   Beispiel (erst aktivieren, wenn die Datei vorhanden ist):
   @font-face { font-family: "Praxis"; src: url("fonts/Praxis.woff2") format("woff2");
                font-weight: 400; font-style: normal; font-display: swap; }
*/
:root {
  /* ==============================================================
     FARBEN

     Die fünf Farbwerte bilden gemeinsam das Farbschema des Layouts.
     Fertige, aufeinander abgestimmte Beispiele:

     Neutral mit Rot:
       --clr-accent:     #a13d3d;
       --clr-bg:         #fff;
       --clr-text:       #20252b;
       --clr-header-bg:  #fff;
       --clr-header-text: #2d2a26;

     Kühles Blau:
       --clr-accent:     #176b87;
       --clr-bg:         #f7fafc;
       --clr-text:       #1e2a32;
       --clr-header-bg:  #e6eef3;
       --clr-header-text: #1e2a32;

     Ruhiges Grün:
       --clr-accent:     #2d6b4f;
       --clr-bg:         #fbfcf8;
       --clr-text:       #26302a;
       --clr-header-bg:  #e8f0e9;
       --clr-header-text: #26302a;

     Warmes Sand:
       --clr-accent:     #8a4f20;
       --clr-bg:         #fbf7ef;
       --clr-text:       #302820;
       --clr-header-bg:  #eee2cf;
       --clr-header-text: #302820;

     Für ein Farbschema immer alle fünf Werte gemeinsam übernehmen. */
  --clr-accent: #5a7a3b;
  --clr-bg: #faf8f5;
  --clr-text: #2d2a26;
  --clr-header-bg: #faf8f5;
  --clr-header-text: #2d2a26;

  /* ==============================================================
     INHALTSBREITE UND ABSTÄNDE
     ============================================================== */

  /* Maximale Breite von Headerinhalt, Seiteninhalt und Footerinhalt
     normal:     72rem
     breit:      90rem
     sehr breit: 110rem */
  --content-width: 76rem;

  /* Seitlicher Mindestabstand zum Bildschirmrand */
  --page-gap: clamp(1rem, 3vw, 2.5rem);

  /* Abstand des Seiteninhalts nach oben und unten */
  --content-space-block: clamp(1.5rem, 4vw, 3.5rem);

  /* ==============================================================
     GRUNDSCHRIFT UND ÜBERSCHRIFTEN
     ============================================================== */

  /* Grundschrift der Website */
  --font-base: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  
  /* per @font-face definierte Familie - im Beispiel Paprika - an erste
  Stelle in Schriftenreihe stellen */ 
  --font-custom: var(--font-base);

  /* Schrift für Überschriften
     Gleiche Schrift: var(--font-base)
     Eigene Schrift:  var(--font-custom)
     Serifenschrift:  Georgia, "Times New Roman", serif */
  --font-heading: var(--font-base);

  /* Grundschriftgröße
     klein:  .95rem
     normal: 1rem
     groß:   1.1rem */
  --font-size-base: 1rem;

  /* Zeilenhöhe des Fließtextes
     kompakt: 1.45
     normal:  1.6
     luftig:  1.75 */
  --line-height-base: 1.6;

  /* Abrundung von Schaltflächen, Formularen und Rahmen
     eckig:            0
     leicht gerundet: .35rem
     stark gerundet:  .8rem */
  --radius: .9rem;

  /* ==============================================================
     HEADER, LOGO UND SCHRIFTZUG
     ============================================================== */

  /* Headerhöhe auf kleinen Bildschirmen
     kompakt: 3.5rem
     normal:  4rem
     groß:    4.5rem */
  --header-height-mobile: 5.5rem;

  /* Headerhöhe auf großen Bildschirmen
     kompakt: 4rem
     normal:  5rem
     groß:    6rem
     sehr groß: 8rem */
  --header-height-desktop: 7.5rem;

  /* Schriftart im Header
     Standardschrift: "Segoe UI", Roboto, Helvetica, Arial, sans-serif
     Eigene Schrift:  var(--font-custom)
     Serifenschrift:  Georgia, "Times New Roman", serif
     Technisch:       Consolas, "Liberation Mono", monospace */
  --brand-font-family: var(--font-base);

  /* Schriftgröße im Header
     klein:  clamp(.95rem, 1.5vw, 1.2rem)
     normal: clamp(1rem, 2vw, 1.4rem)
     groß:   clamp(1.1rem, 2.5vw, 1.7rem)
     sehr groß: clamp(1.1rem, 2.5vw, 2.2rem) */
  --brand-font-size: clamp(1.05rem, 2vw, 1.4rem);
}

/* ========================================================================== 
   2. INTERNE LAYOUT-VARIABLEN

   Diese Werte sind aufeinander abgestimmt und sollten normalerweise nicht
   verändert werden.
   ========================================================================== */

:root {
  /* Grundfarben */
  --clr-muted: #706b63;
  --clr-line: #e0d8cc;
  --clr-accent-hover: color-mix(in srgb, var(--clr-accent), #000 22%);
  --clr-focus: var(--clr-accent);

  /* Kopf und Navigation */
  --clr-nav-active-bg: var(--clr-accent);
  --clr-nav-active-text: #fff;
  --header-height: var(--header-height-mobile);
  --header-padding-block: .4rem;
  --shadow-header: 0 2px 12px rgb(24 35 45 / .09);

  /* Logo und Schriftzug */
  --brand-font-weight: 700;
  --brand-line-height: 1.1;
  --brand-gap: .75rem;
  --brand-logo-max-width: min(10rem, 35vw);

  /* Footer */
  --clr-footer-bg: #2d2a26;
  --clr-footer-text: #eee9e1;
  --clr-footer-link: #eee9e1;
  --footer-padding-block: clamp(3rem, 6vw, 5rem);
  --footer-gap: .75rem;

  /* Allgemeine Gestaltung */
  --go-top-size: 3rem;
  --go-top-offset: clamp(1rem, 3vw, 2rem);
  --reveal-distance: 30px;
  --reveal-duration: 1200ms;
}

/* Grundreset */
*,
*::before,
*::after { box-sizing: border-box; }


/* Smoothy: Ergänzende Variablen – alle zentralen Werte an dieser Stelle. */
:root {
  --header-height-compact-mobile: 4.25rem; /* Höhe des kompakten mobilen Headers */
  --header-height-compact-desktop: 5rem; /* Höhe des kompakten Desktop-Headers */
  --header-shrink-after: 100; /* Scrollschwelle in Pixeln, nur Zahl; 0 deaktiviert */
  --header-transition: 350ms; /* Dauer der Header-Verkleinerung */
  --logo-height: 5.5rem; /* Logo im großen Header; z.B. 4–6rem */
  --logo-height-compact: 3.5rem; /* Logo nach dem Scrollen */
  --section-space: clamp(3rem, 7vw, 6rem); /* Oberer und unterer Abschnittsabstand */
  --section-warm: #f0ebe3; /* Hintergrund der warmen Abschnitte */
  --section-light: var(--clr-bg); /* Hintergrund der hellen Abschnitte */
  --hero-height: 38rem; /* Mindesthöhe des Einstiegs, Text darf sie vergrößern */
  --hero-image: url("../grafiken/hero5.webp"); /* z.B. url("../../kategorien/Start/dateien/praxis.jpg") */
  --hero-position: center; /* Bildausschnitt, z.B. center 35% */
  --hero-veil: .72; /* Aufhellung 0–1; höher = blasseres Bild */
  --hero-text-width: 44rem; /* Maximale Breite des Einstiegstexts */
  --reveal-start-delay: 150ms; /* Kurze Startpause beim Laden aller Seiten */
  --reveal-stagger: 100; /* Kartenstaffelung in Millisekunden, nur Zahl */
  --reveal-trigger-inset: 50px; /* Abstand der Auslösung vom unteren Fensterrand */
  --card-background: #fff; /* Optionaler GridCards-Modifikator smoothy-karten */
  --card-gap: 1.5rem; /* Kartenabstand dieses Modifikators */
}

html {
  min-height: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 1rem);
  background: var(--clr-bg);
  -webkit-text-size-adjust: 100%;
}

body {
  min-height: 100vh;
  margin: 0;
  display: flex;
  flex-direction: column;
  background: var(--clr-bg);
  color: var(--clr-text);
  font-family: var(--font-base);
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
}

img,
svg,
video,
canvas,
audio,
iframe { max-width: 100%; }

img,
svg,
video,
canvas { height: auto; }

img { vertical-align: middle; }

button,
input,
select,
textarea {
  color: inherit;
  font: inherit;
}

button,
select { text-transform: none; }

button,
[type="button"],
[type="submit"],
[type="reset"] { cursor: pointer; }

[hidden] { display: none !important; }

/* Barrierefreiheit */
.skip-link {
  position: fixed;
  top: .5rem;
  left: .5rem;
  z-index: 2000;
  padding: .6rem .85rem;
  border-radius: var(--radius);
  background: var(--clr-accent);
  color: #fff;
  transform: translateY(-150%);
  transition: transform .18s ease;
}

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

:focus-visible {
  outline: .18rem solid var(--clr-focus);
  outline-offset: .18rem;
}

/* Typografie und allgemeine Inhalte */
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 1.4em 0 .55em;
  color: var(--clr-text);
  font-family: var(--font-heading);
  line-height: 1.2;
  text-wrap: balance;
}

h1 { font-size: clamp(1.8rem, 5vw, 2.6rem); }
h2 { font-size: clamp(1.45rem, 4vw, 2rem); }
h3 { font-size: clamp(1.2rem, 3vw, 1.5rem); }
h4 { font-size: 1.1rem; }

p,
ul,
ol,
dl,
blockquote,
pre,
table,
figure { margin: 0 0 1.1rem; }

ul,
ol { padding-inline-start: 1.5rem; }

a {
  color: var(--clr-accent);
  text-decoration-thickness: .08em;
  text-underline-offset: .16em;
}

a:hover { color: var(--clr-accent-hover); }

blockquote {
  margin-inline: 0;
  padding: .75rem 1rem;
  border-inline-start: .25rem solid var(--clr-accent);
  background: #eef3f5;
}

hr {
  margin: 2rem 0;
  border: 0;
  border-top: 1px solid var(--clr-line);
}

code,
pre { font-family: Consolas, "Liberation Mono", monospace; }

pre {
  max-width: 100%;
  overflow: auto;
  padding: 1rem;
  border: 1px solid var(--clr-line);
  border-radius: var(--radius);
}

/* Fixierter Kopfbereich – Mobilansicht ist die Grundansicht */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  min-height: var(--header-height);
  border-bottom: 1px solid var(--clr-line);
  background: var(--clr-header-bg);
  color: var(--clr-header-text);
  box-shadow: var(--shadow-header);
}

.header-inner {
  position: relative;
  width: min(100%, var(--content-width));
  min-height: var(--header-height);
  margin-inline: auto;
  padding-inline: var(--page-gap);
  padding-block: var(--header-padding-block);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.site-brand {
  flex: 0 1 auto;
  min-width: 0;
  color: var(--clr-header-text);
  text-decoration: none;
}

.site-brand:hover { color: var(--clr-accent); }

.site-brand-content,
.site-brand-content > p,
.site-brand-content > div {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: var(--brand-gap);
}

.site-brand-content {
  font-family: var(--brand-font-family);
  font-size: var(--brand-font-size);
  font-weight: var(--brand-font-weight);
  line-height: var(--brand-line-height);
}

.site-brand-content > p,
.site-brand-content > div,
.site-brand-content figure {
  margin: 0;
}

.site-brand-content img {
  flex: 0 0 auto;
  width: auto;
  max-width: var(--brand-logo-max-width);
  max-height: calc(var(--header-height) - 2 * var(--header-padding-block));
  object-fit: contain;
}

.site-brand-text {
  min-width: 0;
  display: block;
  max-height: 2.2em;
  overflow: hidden;
  text-overflow: ellipsis;
  overflow-wrap: anywhere;
}

.menu-toggle {
  display: block;
  width: 2.75rem;
  height: 2.75rem;
  margin-inline-start: auto;
  padding: .6rem;
  border: 1px solid var(--clr-line);
  border-radius: var(--radius);
  background: var(--clr-header-bg);
}

.menu-toggle span {
  display: block;
  height: 2px;
  margin: .28rem 0;
  border-radius: 2px;
  background: var(--clr-header-text);
  transition: transform .18s ease, opacity .18s ease;
}

.menu-toggle.is-open span:nth-child(1) { transform: translateY(.38rem) rotate(45deg); }
.menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.menu-toggle.is-open span:nth-child(3) { transform: translateY(-.38rem) rotate(-45deg); }

.main-navigation {
  position: absolute;
  top: 100%;
  inset-inline: 0;
  display: none;
  width: auto;
  max-height: calc(100vh - var(--header-height));
  max-height: calc(100dvh - var(--header-height));
  margin-inline: 0;
  overflow-y: auto;
  border-top: 1px solid var(--clr-line);
  background: var(--clr-header-bg);
  box-shadow: var(--shadow-header);
}

.main-navigation.is-open { display: block; }

.main-navigation ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.main-navigation .mainmenu,
.main-navigation > ul {
  display: block;
  padding: .5rem var(--page-gap) 1rem;
}

.main-navigation li { position: relative; }

/* Inhaltsseiten der aktiven Kategorie: unterhalb des Hauptmenüpunkts. */
.main-navigation .mainmenu > li > ul {
  padding: 0 0 .35rem 1rem;
}

.main-navigation .mainmenu > li > ul a {
  padding-block: .6rem;
  font-size: .9rem;
  font-weight: 500;
}

.main-navigation a {
  display: block;
  padding: .75rem;
  border-radius: var(--radius);
  color: var(--clr-header-text);
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
}

.main-navigation a:hover,
.main-navigation a:focus-visible,
.main-navigation a.menuactive,
.main-navigation a.submenuactive,
.main-navigation a.cat-active,
.main-navigation a.active {
  color: var(--clr-nav-active-text);
  background: var(--clr-nav-active-bg);
}

/* Breiter, neutraler Rahmen für layouttragende Plugins */
.site-main {
  flex: 1 0 auto;
  width: min(100%, var(--content-width));
  min-width: 0;
  margin-inline: auto;
  padding: var(--content-space-block) var(--page-gap);
}

.site-main > :first-child { margin-top: 0; }
.site-main > :last-child { margin-bottom: 0; }
.site-main > * { min-width: 0; }

/* Zusätzliche manuelle Reveal-Markierungen; Automatik siehe Dateiende. */
.reveal.is-reveal-ready,
[data-reveal].is-reveal-ready {
  opacity: 0;
  transform: translateY(var(--reveal-distance));
  transition:
    opacity var(--reveal-duration) ease,
    transform var(--reveal-duration) ease;
}

.reveal.is-revealed,
[data-reveal].is-revealed {
  opacity: 1;
  transform: none;
}

/* mozilo-Bilder und Ausrichtungen */
.contentimage {
  display: block;
  max-width: 100%;
  margin: 0 0 1rem;
}

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

.alignleft { text-align: left; }
.aligncenter { text-align: center; }
.alignright { text-align: right; }
.alignjustify { text-align: justify; }

.clearfix::after,
.float_container::after,
.site-main::after {
  display: table;
  clear: both;
  content: "";
}

figure { max-width: 100%; }

figcaption {
  margin-top: .4rem;
  color: var(--clr-muted);
  font-size: .9rem;
}

/* Tabellen und Formulare */
.table-scroll {
  max-width: 100%;
  overflow-x: auto;
}

table,
.contenttable {
  width: 100%;
  border-collapse: collapse;
}

th,
td,
.contenttable th,
.contenttable td {
  padding: .65rem .75rem;
  border: 1px solid var(--clr-line);
  text-align: left;
  vertical-align: top;
}

th,
.contenttable th { background: #eef2f5; }

input,
select,
textarea {
  max-width: 100%;
  padding: .55rem .7rem;
  border: 1px solid var(--clr-line);
  border-radius: var(--radius);
  background: var(--clr-bg);
}

textarea {
  width: 100%;
  min-height: 8rem;
  resize: vertical;
}

button,
input[type="submit"],
input[type="button"] {
  padding: .55rem .85rem;
  border: 1px solid var(--clr-accent);
  border-radius: var(--radius);
  background: var(--clr-accent);
  color: #fff;
}

button:hover,
input[type="submit"]:hover,
input[type="button"]:hover { background: var(--clr-accent-hover); }

.menu-toggle:hover { background: var(--clr-header-bg); }

/* mozilo-Galerie und Systemhinweise */
.gallerymenu,
.gallerynumbermenu {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: 1rem 0;
  padding: 0;
  list-style: none;
}

.gallerymenu li,
.gallerynumbermenu li { margin: 0; }

.deadlink,
.error,
.warning {
  display: inline-block;
  padding: .15rem .4rem;
  border-radius: .2rem;
  color: #8a1c1c;
  background: #fff0f0;
}

/* Footer */
.site-footer {
  flex: 0 0 auto;
  padding: var(--footer-padding-block) var(--page-gap);
  border-top: 1px solid var(--clr-line);
  background: var(--clr-footer-bg);
  color: var(--clr-footer-text);
  text-align: center;
}

.footer-inner {
  width: min(100%, var(--content-width));
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--footer-gap);
}

.footer-content,
.footer-copyright {
  min-width: 0;
}

.footer-content > :first-child { margin-top: 0; }
.footer-content > :last-child { margin-bottom: 0; }
.footer-copyright { margin: 0; }

.footer-content a { color: var(--clr-footer-link); }
.footer-content a:hover { color: var(--clr-accent-hover); }

/* GoTop: bleibt bis zur festgelegten Scrollstrecke unsichtbar. */
.go-top {
  position: fixed;
  right: var(--go-top-offset);
  bottom: var(--go-top-offset);
  z-index: 950;
  display: grid;
  width: var(--go-top-size);
  height: var(--go-top-size);
  padding: 0;
  place-items: center;
  border: 1px solid var(--clr-accent);
  border-radius: 50%;
  background: var(--clr-accent);
  color: #fff;
  font-size: 1.45rem;
  line-height: 1;
  opacity: 0;
  pointer-events: none;
  transform: translateY(.75rem);
  transition: opacity .2s ease, transform .2s ease, background-color .2s ease;
}

.go-top.is-visible {
  opacity: .9;
  pointer-events: auto;
  transform: none;
}

.go-top:hover {
  opacity: 1;
  background: var(--clr-accent-hover);
}

.footer-content {
  width: 100%;
  text-align: center;
}

.footer-copyright {
  width: 100%;
  text-align: center;
} 

/* Desktop: Navigation wird zur einzeiligen Leiste. */
@media (min-width: 64rem) {
  :root { --header-height: var(--header-height-desktop); }

  .header-inner {
    flex-wrap: nowrap;
    gap: .75rem;
  }

  .site-brand { flex: 0 1 auto; }
  .menu-toggle { display: none; }

  .main-navigation {
    position: static;
    display: block;
    flex: 0 1 auto;
    width: auto;
    max-height: none;
    min-width: 0;
    margin-inline: auto 0;
    overflow: visible;
    border-top: 0;
    box-shadow: none;
  }

  .main-navigation .mainmenu,
  .main-navigation > ul {
    display: flex;
    flex-flow: row nowrap;
    align-items: flex-start;
    gap: .15rem;
    padding: 0;
  }

  .main-navigation .mainmenu > li,
  .main-navigation > ul > li {
    flex: 0 0 auto;
  }

  .main-navigation .mainmenu > li > ul {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 10;
    width: max-content;
    min-width: 100%;
    margin: 0;
    padding: .25rem;
    border: 1px solid var(--clr-line);
    border-radius: var(--radius);
    background: var(--clr-header-bg);
    box-shadow: var(--shadow-header);
  }

  /* Desktop: Untermenü erst bei Hover oder Tastaturfokus anzeigen.
     Mobil bleiben die Unterseiten im geöffneten Hauptmenü sichtbar. */
  .main-navigation .mainmenu > li > ul {
    display: none;
  }

  .main-navigation .mainmenu > li.is-submenu-open > ul {
    display: block;
  }

  .main-navigation .mainmenu > li > ul a {
    padding-block: .5rem;
  }

  .main-navigation a {
    padding: .65rem .55rem;
    font-size: .88rem;
    white-space: nowrap;
  }

  img.leftcontentimage,
  .leftcontentimage {
    float: left;
    display: block;
    max-width: min(45%, 32rem);
    margin: .3rem 1.25rem .75rem 0;
  }

  img.rightcontentimage,
  .rightcontentimage {
    float: right;
    display: block;
    max-width: min(45%, 32rem);
    margin: .3rem 0 .75rem 1.25rem;
  }
}

@media (min-width: 75rem) {
  .header-inner { gap: clamp(1rem, 3vw, 2.5rem); }

  .main-navigation a {
    padding-inline: .8rem;
    font-size: .95rem;
  }
}

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

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }

  .reveal,
  [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Smoothy: Abschnittsflächen reichen über die gesamte Breite. */
.site-main { width: 100%; max-width: none; padding: 0; }
.site-main > :not(.smoothy-section):not(.smoothy-hero):not(.smoothy-content-shell) {
  max-width: var(--content-width); margin-inline: auto;
}
.smoothy-page { padding: var(--content-space-block) var(--page-gap); }
.smoothy-section { padding-block: var(--section-space); background: var(--section-light); }
.smoothy-section--warm { background: var(--section-warm); }
.smoothy-section--green { background: var(--clr-accent); color: #fff; }
.smoothy-inner { width: min(100%, var(--content-width)); margin-inline: auto; padding-inline: var(--page-gap); }
.smoothy-section--green :is(h1,h2,h3,h4,a) { color: inherit; }
.smoothy-section--green a:hover { color: #fff; }
.smoothy-hero {
  min-height: var(--hero-height); display: flex; align-items: center;
  padding-block: var(--section-space);
  background-image: linear-gradient(rgb(250 248 245 / var(--hero-veil)),rgb(250 248 245 / var(--hero-veil))),var(--hero-image);
  background-color: var(--section-warm); background-size: cover; background-position: var(--hero-position);
}
.smoothy-hero-text { max-width: var(--hero-text-width); }
.smoothy-hero h1 { font-size: clamp(2.25rem, 5vw, 4rem); line-height: 1.12; letter-spacing: -.035em; }
.smoothy-lead { font-size: clamp(1.05rem, 2vw, 1.2rem); line-height: 1.7; }
.smoothy-kicker { color: var(--clr-accent); font-size: .8rem; letter-spacing: .12em; font-weight: 700; text-transform: uppercase; }
.smoothy-button { display: inline-block; margin: .5rem .5rem .5rem 0; padding: .8rem 1.3rem; border-radius: var(--radius); background: var(--clr-accent); color: #fff; text-decoration: none; font-weight: 600; }
.smoothy-button:hover { background: var(--clr-accent-hover); color: #fff; }
.smoothy-section--green .smoothy-button { background: #fff; color: var(--clr-accent); }
.site-header,.header-inner { transition: min-height var(--header-transition) ease; }
.site-brand-content img { height: var(--logo-height); width: auto; object-fit: contain; transition: height var(--header-transition) ease; }
.site-brand-content { font-size: var(--brand-font-size); }
.site-header.is-compact { --header-height: var(--header-height-compact-mobile); }
.site-header.is-compact .site-brand-content img { height: var(--logo-height-compact); }
.site-header.is-compact .site-brand-content { font-size: calc(var(--brand-font-size) * .9); }
.site-brand-content { transition: font-size var(--header-transition) ease; }
.main-navigation a:hover { background: var(--section-warm); }
.main-navigation :is(.menuactive,.mainmenuactive) > a { background: var(--section-warm); color: var(--clr-accent); }
.footer-inner { display: block; }
.footer-content { width: 100%; }
.footer-content > br { display: none; } /* mozilo-Zeilenumbrüche zwischen Blockelementen */
.site-footer :is(h1,h2,h3,h4) { color: inherit; }
.site-footer a:hover { color: #fff; }
.footer-copyright { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid rgb(255 255 255 / .15); font-size: .85rem; text-align: left; }
/* Optional: Aufruf von GridCards mit Modifikatorklasse smoothy-karten. */
.gc-grid.smoothy-karten { --gc-max-width: var(--content-width); --gc-gap: var(--card-gap); --gc-item-background: var(--card-background); --gc-item-color: var(--clr-text); }
/* Individuelle translate-Eigenschaft lässt bestehende Plugin-transforms bestehen. */
.smoothy-reveal.is-reveal-ready { opacity: 0; translate: 0 var(--reveal-distance); transition: opacity var(--reveal-duration) ease, translate var(--reveal-duration) cubic-bezier(.22,1,.36,1); transition-delay: var(--smoothy-delay,0ms); }
.smoothy-reveal.is-revealed { opacity: 1; translate: 0 0; }
@media (min-width: 64rem) { .site-header.is-compact { --header-height: var(--header-height-compact-desktop); } }
@media (max-width: 40rem) { :root { --logo-height: 4rem; --logo-height-compact: 3rem; --hero-height: 30rem; } }
@media (prefers-reduced-motion: reduce) { .smoothy-reveal { opacity: 1 !important; translate: none !important; transition: none !important; } }
.smoothy-button-wrap > a { display: inline-block; margin: .5rem .5rem .5rem 0; padding: .8rem 1.3rem; border-radius: var(--radius); background: var(--clr-accent); color: #fff; text-decoration: none; font-weight: 600; }
.smoothy-button-wrap > a:hover { background: var(--clr-accent-hover); color: #fff; }
.smoothy-section--green .smoothy-button-wrap > a { background: #fff; color: var(--clr-accent); }
@media print { .smoothy-reveal { opacity: 1 !important; translate: none !important; } .site-header { position: static; } .go-top,.menu-toggle { display: none; } }

/* Inhalts-Hüllen von mozilo: breite Flächen außen, begrenzter Inhalt innen. */
.site-main .smoothy-content-shell {
  width: 100%; max-width: none; margin-inline: 0; padding-inline: 0;
}
.site-main .smoothy-section, .site-main .smoothy-hero {
  width: 100%; max-width: none; margin-inline: 0;
}
.site-main > .smoothy-text-block,
.smoothy-content-shell > .smoothy-text-block {
  width: min(100%, var(--content-width)); margin-inline: auto;
  padding-inline: var(--page-gap);
}

/* Hero-Bild bleibt sichtbar; Text startet bereits vor der JS-Auswahl verborgen. */
html.smoothy-starting .smoothy-hero-text,
html.smoothy-starting .smoothy-section > .smoothy-inner {
  opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
  html.smoothy-starting .smoothy-hero-text,
  html.smoothy-starting .smoothy-section > .smoothy-inner {
    opacity: 1; translate: none;
  }
}

/* Startzustand ohne Bewegung setzen; nur das spätere Einblenden animieren. */
html.smoothy-preparing .smoothy-reveal {
  transition: none !important;
}

/* Normale Seiten vor dem ersten Zeichnen ausblenden. Der Inhalt behält
   seine Abmessungen; JS bereitet die einzelnen Einblendeblöcke vor.
   Bei Hero-Seiten bleibt das Hintergrundbild wie bisher sichtbar. */
html.smoothy-starting .site-main:not(:has(.smoothy-hero)) {
  opacity: 0;
  transition: none !important;
}
@media (prefers-reduced-motion: reduce) {
  html.smoothy-starting .site-main:not(:has(.smoothy-hero)) { opacity: 1; }
}
@media print {
  html.smoothy-starting .site-main { opacity: 1 !important; }
}
