/* ========= Base / Resets ========= */
html {
    font-family: "Open Sans", sans-serif !important;
    scroll-behavior: smooth;
    overflow-x: hidden;
}

body, div {
    font-family: "Open Sans", sans-serif !important;
}

    /* Links global NICHT mehr überall fett – nur im Frontend */
    body:not(.dnnEditState):not(.dnnFormPopup) a {
        font-weight: 600;
    }

a.disabled {
    pointer-events: none;
    cursor: default;
}

/* ========= Text, Listen ========= */
/* Frontend-Typo, NICHT in Admin/Popups */
body:not(.dnnEditState):not(.dnnFormPopup) p,
body:not(.dnnEditState):not(.dnnFormPopup) label {
    hyphens: auto;
    color: #707070 !important;
    font-weight: 500 !important;
}

/* Frontend-Scaling, nicht in Admin/Popups */
body:not(.dnnEditState):not(.dnnFormPopup) .page {
    font-size: 1.3em;
}

.list {
    list-style: none !important;
    padding: 0;
    margin: 0;
}

    .list li {
        hyphens: auto;
        color: #707070 !important;
        font-size: 1.3em !important;
        font-weight: 500 !important;
    }

        .list li::before {
            content: "➜";
            display: inline-block;
            padding: 4px 4px 0 25px;
            color: #072dcf;
            font-size: 1.1em;
        }

        .list li a {
            font-weight: 700 !important;
        }

            .list li a:hover {
                color: #1f48fb !important;
            }

/* ========= Headlines / Titles ========= */
h4 {
    font-family: "Open Sans", sans-serif;
    color: #ffffff;
    font-weight: 400;
    font-size: 1.3rem;
}

.title {
    font-family: "Open Sans", sans-serif;
    font-weight: 400;
}

/* ========= Lines / Wraps ========= */
.line hr {
    width: 100%;
    background-color: #c9c9c9;
    border: none;
    height: 2px;
    margin: 5px 0 10px 0;
}

.wrap {
    width: 100%;
    margin: 0 !important;
    padding: 10px 0 30px 0 !important;
}

    .wrap a:link, .wrap a:visited {
        font-weight: 500;
        color: #072dcf !important;
        text-decoration: none;
    }

    .wrap a:hover {
        font-weight: 500;
        color: #1f48fb !important;
        text-decoration: none;
    }

.pagewrap {
    max-width: 95% !important;
}

/* ========= Media / Hover ========= */
.maskdown {
    position: relative;
    overflow: hidden;
    margin: 0 !important;
    padding: 0 !important;
    border: none;
}

    .maskdown img {
        width: 100%;
        transform: scale(1);
        transition: all 0.3s linear;
    }

    .maskdown:hover img {
        transform: scale(1.1);
        transition: all 0.3s linear;
    }

/* ========= Grid ========= */
.gridcontainer {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    grid-gap: 0.3rem;
    grid-auto-rows: 1fr;
    padding: 0;
}

    .gridcontainer > div {
        display: flex;
        flex-flow: column nowrap;
        align-items: center;
        justify-content: center;
        aspect-ratio: 4/3;
    }

        .gridcontainer > div:hover {
            opacity: 0.7;
            cursor: pointer !important;
        }

/* ========= Boxes / Labels ========= */
.boximg {
    margin: 0 4px 2px 0;
    padding: 0;
    text-align: left;
    vertical-align: bottom;
    float: left;
}

.boxlabel {
    color: #ffffff !important;
    text-align: center !important;
}

    .boxlabel a {
        font-family: "Open Sans", sans-serif;
        text-decoration: none !important;
        color: #ffffff !important;
    }

        .boxlabel a:hover {
            color: #000000 !important;
            transition-duration: .6s !important;
        }

.boxtoplabel {
    font-size: 1.5rem !important;
    color: #ffffff !important;
    line-height: 1.9rem !important;
    text-align: center !important;
    font-weight: 400;
}

.boxbiglabel {
    color: #ffffff !important;
    font-size: 2.4rem !important;
    position: relative !important;
    top: -20px !important;
    line-height: 3.1rem !important;
    text-align: center !important;
    font-weight: 400;
}

.boxsmalllabel {
    color: #ffffff !important;
    font-size: 1.3rem !important;
    position: relative !important;
    top: -10px !important;
    line-height: 1.6rem !important;
    text-align: center !important;
    font-weight: 400;
}

/* ========= EasyDNN News (Ozone) ========= */
.eds_news_Ozone h6 {
    color: #234cd1 !important;
}

.eds_news_Ozone > p {
    color: #101010 !important;
}

.edn_articleTitle {
    color: #0f019d !important;
    margin: 0 0 20px 0 !important;
    padding: 0 !important;
    position: relative;
    left: 0;
}
/* FIX: fehlender Punkt vor Klassenname */
.edn_articleSubTitle {
    font-size: 20px !important;
}

.edn_articleTags > a {
    background-color: #234cd1 !important;
}

.greysepar {
    width: 100%;
    background-color: #5e5e5e;
    border: none;
    height: 2px;
    margin: 4px 0 20px 0;
}

/* ========= Suche: Header / Summary ========= */
.dnnSearchResultHeader, .dnnSearchResultPanel {
    background-color: #f5f7fa;
    border: 1px solid #d9d9d9;
    padding: 12px 16px;
    margin-bottom: 20px;
    border-radius: 8px;
}

    .dnnSearchResultHeader h3 {
        font-size: 1.5em;
        font-weight: 600;
        margin: 0 0 6px 0;
        color: #234cd1;
    }

.dnnSearchResultSummary {
    font-size: 1em;
    color: #555;
}

.dnnSearchBoxPanel {
    background-color: #f0f0f0 !important;
}

.dnnSearchResultPanel {
    background-color: #fafafa !important;
}

/* ========= Suche: Ergebnisliste ========= */
.eds_searchResults .dnnSearchResultItem-Description,
.dnnSearchResultItem .dnnSearchResultItem-Description {
    color: #404040 !important;
    font-weight: 500;
    font-size: 1.3em !important;
    line-height: 1.5em;
}
/* Titel-Links */
.eds_searchResults .dnnSearchResultItem-Title a,
.dnnSearchResultItem .dnnSearchResultItem-Title a {
    color: #234cd1 !important;
    text-decoration: none;
    font-weight: 700;
    font-size: 1.2em !important;
}

    .eds_searchResults .dnnSearchResultItem-Title a:hover,
    .dnnSearchResultItem .dnnSearchResultItem-Title a:hover {
        color: #3195e8 !important;
        text-decoration: underline;
    }
/* Ziel-URL-Link unter dem Treffer */
.dnnSearchResultItem-Link a {
    color: #18379f !important;
    font-size: 1.1em !important;
    font-weight: 700;
    text-decoration: none;
}

    .dnnSearchResultItem-Link a:hover {
        color: #136cb4 !important;
        text-decoration: underline;
    }
/* Abstand zwischen Items */
.dnnSearchResultItem {
    padding: 12px 0;
    border-bottom: 1px solid #eee;
}

/* ========= Suche: Pagination ========= */
.dnnSearchResultPager a, .dnnSearchResultPager span {
    display: inline-block;
    padding: 6px 12px;
    margin: 0 4px;
    border-radius: 4px;
    text-decoration: none;
    font-size: 0.95em;
}

.dnnSearchResultPager a {
    background-color: #f0f0f0;
    color: #333;
}

    .dnnSearchResultPager a:hover {
        background-color: #3195e8;
        color: #fff;
    }

.dnnSearchResultPager span {
    background-color: #234cd1;
    color: #fff;
    font-weight: 600;
}

.dnnPager-current {
    position: relative;
    top: -6px;
}

/* ========= Suche: Advanced Box / Buttons ========= */
.dnnSearchBox_advanced_dropdown {
    background-color: #fafafa;
    border: 1px solid #ddd;
    padding: 16px;
    border-radius: 8px;
    margin-bottom: 20px;
}

    .dnnSearchBox_advanced_dropdown label {
        font-weight: 500;
        color: #333;
    }

    /* Buttons nur in der Advanced-Box */
    .dnnSearchBox_advanced_dropdown input[type="submit"],
    .dnnSearchBox_advanced_dropdown input[type="button"],
    .dnnSearchBox_advanced_dropdown input[type="reset"],
    .dnnSearchBox_advanced_dropdown button,
    .dnnSearchBox_advanced_dropdown a.dnnPrimaryAction,
    .dnnSearchBox_advanced_dropdown a.dnnSecondaryAction {
        border: none !important;
        padding: 8px 16px !important;
        margin: 6px 6px 0 0 !important;
        border-radius: 6px !important;
        font-size: 1em !important;
        font-weight: 500 !important;
        cursor: pointer !important;
        text-decoration: none !important;
        display: inline-block !important;
        transition: background-color 0.2s ease;
    }

    .dnnSearchBox_advanced_dropdown input[type="submit"],
    .dnnSearchBox_advanced_dropdown button,
    .dnnSearchBox_advanced_dropdown a.dnnPrimaryAction {
        background-color: #234cd1 !important;
        color: #fff !important;
    }

        .dnnSearchBox_advanced_dropdown input[type="submit"]:hover,
        .dnnSearchBox_advanced_dropdown button:hover,
        .dnnSearchBox_advanced_dropdown a.dnnPrimaryAction:hover {
            background-color: #3195e8 !important;
            color: #fff !important;
        }

    .dnnSearchBox_advanced_dropdown input[type="reset"],
    .dnnSearchBox_advanced_dropdown a.dnnSecondaryAction {
        background-color: #f0f0f0 !important;
        color: #333 !important;
    }

        .dnnSearchBox_advanced_dropdown input[type="reset"]:hover,
        .dnnSearchBox_advanced_dropdown a.dnnSecondaryAction:hover {
            background-color: #e0e0e0 !important;
            color: #000 !important;
        }

/* Buttons global – nur im Frontend (nicht in Admin/Popups) */
body:not(.dnnEditState):not(.dnnFormPopup) .dnnPrimaryAction {
    background-color: #072dcf !important;
    border: none !important;
    color: #fff !important;
    padding: 5px 10px !important;
    border-radius: 6px !important;
    font-size: 1em;
    cursor: pointer;
}

    body:not(.dnnEditState):not(.dnnFormPopup) .dnnPrimaryAction:hover {
        background-color: #1f48fb !important;
    }

body:not(.dnnEditState):not(.dnnFormPopup) .dnnSecondaryAction {
    background-color: #6b6b6b !important;
    border: none !important;
    color: #fff !important;
    padding: 5px 10px !important;
    border-radius: 6px !important;
    font-size: 1em;
    cursor: pointer;
}

    body:not(.dnnEditState):not(.dnnFormPopup) .dnnSecondaryAction:hover {
        background-color: #4d4d4d !important;
    }

/* LOGIN-FORMULAR: DNN-Layout wiederherstellen (nur Login-Bereich) */

/* Scope auf Login/Account  */
body.login .dnnForm,
body.account .dnnForm,
.dnnLogin .dnnForm { max-width: 520px; margin: 0 auto; }

/* Jede Form-Zeile */
body.login .dnnFormItem,
body.account .dnnFormItem,
.dnnLogin .dnnFormItem {
  clear: both;
  margin: 10px 0;
  line-height: 1.4;
}

/* Label-Spalte links – klassische DNN-Breite & Ausrichtung */
body.login .dnnLabel,
body.account .dnnLabel,
.dnnLogin .dnnLabel {
  float: left;
  width: 180px;               /* ggf. auf 200px erhöhen, wenn Texte umbrechen */
  text-align: right;
  padding: 6px 12px 0 0;
  margin: 0;
}

/* Das eigentliche <label> im Label-Container */
body.login .dnnLabel .dnnFormLabel,
body.account .dnnLabel .dnnFormLabel,
.dnnLogin .dnnLabel .dnnFormLabel {
  display: inline;            /* wichtig: kein Block, verhindert unnötige Zeilenumbrüche */
  font-size: 1em !important;
  font-weight: normal !important;
  color: #333 !important;
  white-space: nowrap;        /* verhindert Zeilenumbruch bei „Benutzername:“ */
}

/* Eingabefelder rechts neben dem Label */
body.login .dnnFormItem input[type="text"],
body.login .dnnFormItem input[type="password"],
body.account .dnnFormItem input[type="text"],
body.account .dnnFormItem input[type="password"],
.dnnLogin .dnnFormItem input[type="text"],
.dnnLogin .dnnFormItem input[type="password"] {
  float: left;
  display: inline-block;
  width: auto;                /* kein 100% aus Theme/Bootstrap */
  max-width: 280px;           /* optischer Rahmen */
  padding: 6px 8px;
  box-sizing: border-box;
  margin: 0;                  /* entfernt evtl. Theme-Margins */
}

/* Mögliche harte Zeilenumbrüche im Markup unschädlich machen */
body.login .dnnFormItem br,
body.account .dnnFormItem br,
.dnnLogin .dnnFormItem br { display: none !important; }

/* Zeilenabschluss wie im DNN-Core */
body.login .dnnClear,
body.account .dnnClear,
.dnnLogin .dnnClear { clear: both; }

/* Checkbox-/RememberMe-Reihe einzeilig halten */
body.login .dnnFormItem input[type="checkbox"],
body.account .dnnFormItem input[type="checkbox"],
.dnnLogin .dnnFormItem input[type="checkbox"] {
  float: left;
  margin: 3px 8px 0 0;
}
body.login .dnnFormItem .dnnCheckbox,
body.account .dnnFormItem .dnnCheckbox,
.dnnLogin .dnnFormItem .dnnCheckbox { display: inline-block; }

/* Buttons */
body.login .dnnActions a,
body.account .dnnActions a,
.dnnLogin .dnnActions a {
  display: inline-block;
  float: none;
  margin-right: 8px;
}
/* Zugängliches, visuell verstecktes Label */
.eds_backToTop .sr-only,
.eds_backToTop span:not(.fa, .fas, .fa-solid) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Button-Grundlayout */
.eds_backToTop {
  position: fixed;
  right: 30px;
  bottom: 70px; /* 30px + 40px höher platziert */
  width: 52px;              /* quadratisch */
  height: 52px;             /* quadratisch */
  display: none;            /* bleibt unsichtbar bis Scroll */
  opacity: 0;
  z-index: 9999;

  /* Optik */
  background-color: transparent;     /* neutral, nur Rahmen sichtbar */
  border: 2px solid #555;            /* mittleres dunkles Grau */
  border-radius: 10px;               /* leicht gerundet; für ganz eckig: 6px oder 0 */
  box-shadow: 0 3px 8px rgba(0,0,0,0.25);

  /* zentriert das Icon */
  display: flex;
  align-items: center;
  justify-content: center;

  /* Animationen */
  transition: background-color 0.25s ease, border-color 0.25s ease,
              transform 0.2s ease, opacity 0.25s ease;
}

/* Sichtbar-Zustand (per JS gesetzt) */
/* Grundzustand – ausgeblendet */
.eds_backToTop {
  position: fixed;
  right: 30px;
  bottom: 100px; /* 30 px höher gesetzt */
  width: 52px;
  height: 52px;
  display: none;         /* hier bleibt es */
  opacity: 0;
  z-index: 9999;
  background-color: transparent;
  border: 2px solid #a0a0a0;
  border-radius: 10px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.25);
  transition: background-color 0.25s ease, border-color 0.25s ease,
              transform 0.2s ease, opacity 0.25s ease;
}

/* Sichtbar-Zustand – mit Flex-Layout */
.eds_backToTop.visible {
  display: flex;             /* erst jetzt sichtbar und zentriert */
  align-items: center;
  justify-content: center;
  opacity: 1;
  transform: translateY(0);
}

.eds_backToTop i {
  font-size: 20px;
  line-height: 1;
  color: #a0a0a0;
  transition: color 0.25s ease, transform 0.2s ease;
}

.eds_backToTop:hover {
  background-color: #234cd1;
  border-color: #a0a0a0;
  transform: translateY(-2px);
}
.eds_backToTop:hover i {
  color: #d9d9d9;
}

/* Optional: Fokus-Stil für Tastatur-Nutzer */
.eds_backToTop:focus-visible {
  outline: 3px solid rgba(10, 42, 209, 0.6);
  outline-offset: 2px;
}



