/* ========================================================================== 
   simple-8 – 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.
   ========================================================================== */

: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: #20252b;

     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: #a13d3d;
  --clr-bg: #fff;
  --clr-text: #20252b;
  --clr-header-bg: #fff;
  --clr-header-text: #20252b;

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

  /* Maximale Breite von Headerinhalt, Seiteninhalt und Footerinhalt
     normal:     72rem
     breit:      90rem
     sehr breit: 110rem */
 /* --content-width: 110rem;  */
    --content-width: 900px;
  /* 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: Oregano-Regular, Paprika, Helvetica, Arial, sans-serif;

  /* Schrift für Überschriften
     Gleiche Schrift: var(--font-base)
     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: .35rem;

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

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

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

  /* Schriftart im Header
     Standardschrift: "Segoe UI", Roboto, Helvetica, Arial, sans-serif
     Serifenschrift:  Georgia, "Times New Roman", serif
     Technisch:       Consolas, "Liberation Mono", monospace */
  --brand-font-family: Paprika, Oregano-Regular, Helvetica, Arial, sans-serif;

  /* 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.1rem, 2.5vw, 2.2rem);
}

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

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

:root {
  /* Grundfarben */
  --clr-muted: #66717d;
  --clr-line: #d8dee5;
  --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: var(--clr-bg);
  --clr-footer-text: var(--clr-muted);
  --clr-footer-link: var(--clr-accent);
  --footer-padding-block: 1.25rem;
  --footer-gap: .75rem;

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

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

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);*/
  
  font-family: "Paprika", cursive;
      font-size   : 75%;
      color       : #000;
      text-align  : center;
      line-height : 180%;
	  overflow-y: scroll;
      background:    URL(../grafiken/HG-Holzbalken.jpg);
} 

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: #f9f6ea;
  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; 
    background-color: #fff8a6;}


/* Optional: Einblenden nur bei ausdrücklich markierten Inhaltsblöcken. */
.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;  Deaktivierung hheigl */
  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: .7rem;
}

/* 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: calc(100% + .2rem);
    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);
  }

  .main-navigation.is-desktop-submenu-closed .mainmenu > li > ul {
    display: none;
  }

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

  .main-navigation a {
    padding: .65rem .55rem;
    font-size: .75rem;
    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 .3rem .75rem 1.25rem;
  }
}

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

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

@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;
  }
}
