/* --- Basic Reset & Defaults --- */
html {
    box-sizing: border-box;
    font-size: 16px; /* Basis-Schriftgröße */
}
*, *:before, *:after {
    box-sizing: inherit;
}
body {
    margin: 0;
    font-family: 'Open Sans', sans-serif; /* Standard-Schriftart (von Google Fonts) */
    line-height: 1.6;
    color: #333;
    background-color: #fff;
}
img {
    max-width: 100%;
    height: auto;
    display: block;
}
a {
    color: #cc0000; /* Hauptlinkfarbe (Rot) */
    text-decoration: none;
}
a:hover {
    text-decoration: underline;
}
ul, ol {
    margin: 0 0 1.5em 0;
    padding-left: 1.5em;
}
ul {
  list-style: disc;
}
ol {
  list-style: decimal;
}
li > ul, li > ol {
  margin-bottom: 0;
  margin-left: 1.5em;
}
h1, h2, h3, h4, h5, h6 {
    margin: 0 0 0.5em 0;
    font-weight: bold;
    line-height: 1.2;
}
/* --- Layout Container --- */
.g1-layout-inner {
    max-width: 1140px; /* Maximale Breite der Seite */
    margin: 0 auto; /* Zentrieren */
    padding: 0 15px; /* Seitlicher Abstand */
    position: relative;
}

/* --- Header --- */
#g1-top {
    border-bottom: 1px solid #eee;
}

/* Pre-Header (Top Bar) */
#g1-preheader {
    background-color: #f8f8f8; /* Leichtes Grau */
    padding: 5px 0;
    font-size: 0.9em;
    min-height: 34px; /* Mindesthöhe für 24px Icons + Padding */
}
#g1-preheader .g1-layout-inner {
    display: flex;
    justify-content: flex-end; /* Elemente nach rechts */
    align-items: center;
}
#g1-preheader-bar {
    display: flex;
    align-items: center;
}
/* Search Form in Pre-Header */
.g1-searchbox {
    margin-right: 15px; /* Abstand zu Social Icons */
    position: relative;
}
.g1-searchbox form {
   display: inline-block;
}
.g1-searchbox input[type="text"] {
   padding: 3px 8px;
   border: 1px solid #ccc;
   border-radius: 3px;
   font-size: 0.9em;
}
.g1-searchbox input[type="submit"] {
    padding: 3px 8px;
    border: 1px solid #ccc;
    background-color: #eee;
    cursor: pointer;
    font-size: 0.9em;
    margin-left: -5px; /* Direkt an Textfeld */
    border-radius: 0 3px 3px 0;
}
.g1-searchbox input[type="submit"]:hover {
    background-color: #ddd;
}

/* Header Main */
#g1-header {
    background-color: #ffffff;
    padding: 15px 0;
}
#g1-header .g1-layout-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
#g1-id .site-title {
    margin: 0;
}
#g1-id img {
    max-height: 50px; /* Logo-Höhe begrenzen */
    width: auto;
}

/* Main Navigation */
#g1-primary-nav {
    position: relative;
}
#g1-primary-nav-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex; /* Menüpunkte nebeneinander */
}
#g1-primary-nav-menu li {
    margin-left: 20px;
}
#g1-primary-nav-menu li a {
    display: block;
    padding: 5px 0;
    color: #333;
    text-decoration: none;
    font-weight: bold;
    border-bottom: 2px solid transparent; /* Platzhalter für Hover/Aktiv-Effekt */
}
#g1-primary-nav-menu li a:hover,
#g1-primary-nav-menu li.current-menu-item a {
    color: #cc0000; /* Rote Farbe */
    border-bottom-color: #cc0000; /* Roter Unterstrich */
}

/* Mobile Menu Toggle */
#g1-primary-nav-switch {
    display: none; /* Standardmäßig ausgeblendet */
    padding: 5px 10px;
    background-color: #333;
    color: #fff;
    text-decoration: none;
    border-radius: 3px;
    cursor: pointer;
}

/* --- Pre-Content (Red Banner) --- */
#g1-precontent {
    background-color: #cc0000; /* Rot */
    color: #ffffff;
    padding: 30px 0;
    text-align: left;
}
#g1-precontent .entry-title {
    color: #ffffff;
    font-size: 2.5em;
    margin-bottom: 0.1em;
}
#g1-precontent .entry-subtitle {
    color: #ffffff;
    font-size: 1.2em;
    font-weight: normal;
    opacity: 0.9;
}

/* --- Breadcrumbs --- */
.g1-nav-breadcrumbs {
    background-color: #ffffff;
    text-align: right;
    padding-top: 10px; /* Padding oben beibehalten */
    padding-bottom: 10px; /* Padding unten beibehalten */
    border-bottom: 1px solid #eee;
    font-size: 0.9em;
    color: #666;
}
.g1-nav-breadcrumbs ol {
    list-style: none;
    padding: 0;
    margin: 0;
}
.g1-nav-breadcrumbs li {
    display: inline-block;
    margin-left: 5px;
}
.g1-nav-breadcrumbs li::before { /* Trennzeichen */
    content: "/";
    margin-right: 5px;
    color: #ccc;
}
.g1-nav-breadcrumbs li:first-child::before {
    content: "";
    margin-right: 0;
}
.g1-nav-breadcrumbs a {
    color: #cc0000;
}
.g1-nav-breadcrumbs a:hover {
    text-decoration: underline;
}

/* --- Main Content Area & Sidebar --- */
#g1-content .g1-layout-inner {
    padding-top: 30px;
    padding-bottom: 30px;
}

.g1-content-area--sidebar-right {
    padding-top: 10px; /* Beibehalten */
    display: flex;
    flex-direction: row; /* Standard: Content links, Sidebar rechts */
    justify-content: space-between;
}

#primary {
    width: 68%; /* Breite für den Hauptinhalt */
}

#secondary.g1-sidebar--right {
    width: 28%; /* Breite für die Sidebar */
}

/* Sidebar Styling */
#secondary .widgettitle, /* Titel in Widgets (z.B. Navi) */
#secondary .widget .widgettitle { /* Allgemeiner Widget-Titel */
    font-size: 1.3em;
    margin-bottom: 1em;
    border-bottom: 2px solid #cc0000;
    padding-bottom: 0.3em;
}
#secondary .widget { /* Allgemeiner Abstand für Widgets */
    margin-bottom: 2em;
}
#secondary .g1-side-nav ul { /* Styling für die Navi-Liste */
    list-style: none;
    padding: 0;
    margin: 0;
}
#secondary .g1-side-nav ul li {
    margin-bottom: 0.5em;
}
#secondary .g1-side-nav ul li a {
    display: block;
    padding: 5px 10px;
    text-decoration: none;
    color: #333;
    border-left: 3px solid transparent;
}
#secondary .g1-side-nav ul li a:hover {
    background-color: #f0f0f0;
    color: #cc0000;
}
#secondary .g1-side-nav ul li.current_page_item > a,
#secondary .g1-side-nav ul li.current_page_ancestor > a {
    border-left-color: #cc0000; /* Roter Rand für aktive/Eltern-Elemente */
    font-weight: bold;
    color: #cc0000;
}
#secondary .g1-side-nav ul ul.children { /* Eingerückte Untermenüs */
    margin-left: 15px;
    margin-top: 0.5em;
    padding-left: 10px;
    border-left: 1px dotted #ccc;
}
#secondary .g1-side-nav ul ul.children li a {
    padding: 3px 8px;
    font-size: 0.95em;
    border-left: none; /* Kein linker Rand für Kinder */
}
#secondary .g1-side-nav ul ul.children li.current_page_item > a {
    font-weight: bold;
    background-color: #f0f0f0;
}

/* --- Pre-Footer --- */
#g1-prefooter {
    background-color: #f8f8f8; /* Leichtes Grau */
    padding: 30px 0;
    border-top: 1px solid #eee;
    overflow: hidden; /* Clearfix für Spalten */
}
/* Layout für Spalten im Pre-Footer */
#g1-prefooter-widget-area {
    display: flex;
    flex-wrap: wrap; /* Umbruch auf kleinen Schirmen */
    justify-content: space-between;
    margin-left: -15px; /* Gegenläufig zum Spalten-Padding */
    margin-right: -15px;
}
#g1-prefooter-widget-area .g1-column {
    padding-left: 15px; /* Abstand zwischen Spalten */
    padding-right: 15px;
    margin-bottom: 20px; /* Abstand unten für mobile Ansicht */
}
/* Breite der Spalten */
.g1-one-half { width: 50%; }

/* WBB/RSS Widget spezifisch (Aktualisiert mit Flexbox für Titelkürzung) */
#wbb-feed-widget .widgettitle, /* Oder #rss-feed-widget */
#rss-feed-widget .widgettitle {
    font-size: 1.3em;
    margin-bottom: 1em;
}
/* Container für die Rotation */
.rss-feed-container {
    position: relative;
    height: 40px; /* Feste Höhe beibehalten für Fade-Effekt - ANPASSEN! */
    overflow: hidden;
    border: 1px solid #eee;
    padding: 0 10px; /* Padding nur links/rechts */
    background-color: #fff;
}
/* Liste selbst */
.rss-items {
    list-style: none;
    padding: 0;
    margin: 0;
    position: relative;
    height: 100%;
}
/* Einzelne Listeneinträge (Jetzt Flexbox-Container) */
.rss-items li {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0; /* Unsichtbar für Fade */
    transition: opacity 0.8s ease-in-out;
    z-index: 0;
    pointer-events: none;
    /* Flexbox für Layout */
    display: flex;
    align-items: center; /* Vertikal zentrieren */
    justify-content: space-between; /* Platz zwischen Titel und Datum */
}
/* Aktives Listenelement */
.rss-items li.active {
    opacity: 1;
    z-index: 1;
    pointer-events: auto;
    /* display: flex; ist schon oben bei 'li' gesetzt */
}

/* Link (Titel) - Hier findet die Kürzung statt */
.rss-items li a {
    text-decoration: none;
    color: #333;
    font-size: 0.95em;
    /* Flex-Verhalten und Textkürzung */
    flex-grow: 1;
    flex-shrink: 1;
    min-width: 0; /* Wichtig für Schrumpfen */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-right: 5px; /* Abstand zum Datum */
}
.rss-items li a:hover {
    color: #cc0000;
}
/* Datum */
.rss-items li small.thread-date {
    font-size: 0.85em;
    color: #666;
    white-space: nowrap;
    /* Verhindert Schrumpfen des Datums */
    flex-shrink: 0;
    margin-left: 5px;
}

/* Kontakt Widget im Pre-Footer */
.contact-column .widget p {
    margin-bottom: 0.5em;
}

/* --- Footer --- */
#g1-footer {
    background-color: #333333;
    color: #cccccc;
    padding: 20px 0;
    text-align: center;
    font-size: 0.9em;
}
#g1-footer-nav ul {
    list-style: none;
    padding: 0;
    margin: 0 0 10px 0;
}
#g1-footer-nav li {
    display: inline-block;
    margin: 0 10px;
}
#g1-footer-nav a {
    color: #cccccc;
}
#g1-footer-text {
    margin: 0;
    opacity: 0.8;
}

/* --- Back to Top Button --- */
#g1-back-to-top {
    display: none; /* JS fügt 'g1--on' hinzu zum Einblenden */
    position: fixed;
    bottom: 20px;
    right: 20px;
    background-color: rgba(0, 0, 0, 0.7);
    color: #fff;
    padding: 10px 15px;
    border-radius: 3px;
    text-decoration: none;
    z-index: 100;
    opacity: 0; /* Startet unsichtbar für Fade-In */
    transition: opacity 0.3s ease-in-out;
}
#g1-back-to-top.g1--on {
    display: block; /* Oder 'inline-block' wenn nötig */
    opacity: 1;
}
#g1-back-to-top:hover {
    background-color: rgba(0, 0, 0, 0.9);
}


/* --- Social Icons CSS (Provided by User) --- */
/* Hintergrundfarben für Social Icons (werden aktuell nicht genutzt, wenn nur Bilder angezeigt werden) */
.g1-social-icon--500px { background-color:#444444; }
.g1-social-icon--aboutme { background-color:#00405d; }
/* ... alle anderen Farbdefinitionen ... */
.g1-social-icon--youtube { background-color:#cd332d; }

/* Styles specific to how social icons are used in the header */
#g1-preheader .g1-social-icons {
    margin: 0; /* Reset margin */
    float: none; /* Reset float */
}
#g1-preheader .g1-social-icons > ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex; /* Nebeneinander */
    align-items: center;
}
#g1-preheader .g1-social-icons > ul > li {
    margin-left: 8px; /* Abstand zwischen Icons */
    padding-left: 0; /* Kein Padding nötig */
    min-height: 0; /* Kein min-height nötig */
}
#g1-preheader .g1-social-icon {
    display: block;
    width: 24px; /* Feste Größe */
    height: 24px;
    position: relative;
    overflow: hidden; /* Für Hover-Effekt */
}
#g1-preheader .g1-social-icon img {
    display: block;
    width: 100%;
    height: auto;
}

/* Hover Animation (wie bereitgestellt) */
@-webkit-keyframes g1_social_icon { 0% { -webkit-transform: translate(0, 0); } 50% { -webkit-transform: translate(0, -100%); } 51% { -webkit-transform: translate(0, 100%); } 100% { -webkit-transform: translate(0, 0); } }
@-moz-keyframes g1_social_icon { 0% { -moz-transform: translate(0, 0); } 50% { -moz-transform: translate(0, -100%); } 51% { -moz-transform: translate(0, 100%); } 100% { -moz-transform: translate(0, 0); } }
@-o-keyframes g1_social_icon { 0% { -o-transform: translate(0, 0); } 50% { -o-transform: translate(0, -100%); } 51% { -o-transform: translate(0, 100%); } 100% { -o-transform: translate(0, 0); } }
@keyframes g1_social_icon { 0% { transform: translate(0, 0); } 50% { transform: translate(0, -100%); } 51% { transform: translate(0, 100%); } 100% { transform: translate(0, 0); } }

#g1-preheader a:hover .g1-social-icon > img {
    -webkit-animation: g1_social_icon 0.35s;
    -moz-animation: g1_social_icon 0.35s;
    -ms-animation: g1_social_icon 0.35s;
    -o-animation: g1_social_icon 0.35s;
    animation: g1_social_icon 0.35s;
}

/* --- Responsive Design --- */
@media (max-width: 768px) {
    /* Mobile Menu anpassen */
    #g1-header .g1-layout-inner {
        flex-wrap: wrap; /* Erlaubt Umbruch */
    }
    #g1-primary-nav {
        width: 100%; /* Volle Breite für Navigationsbereich */
        order: 3; /* Nach Logo/Toggle anzeigen */
        margin-top: 10px;
    }
    #g1-primary-nav-switch {
        display: inline-block; /* Menü-Button anzeigen */
        position: absolute; /* Positionieren */
        right: 15px; /* Rechts im Header */
        top: 15px; /* Beispiel: Gleicher Abstand wie Header-Padding */
        transform: translateY(50%); /* Vertikal mittig zum Logo (ungefähr) */
    }
    #g1-primary-nav-menu {
        display: none; /* Menü standardmäßig ausblenden */
        flex-direction: column; /* Untereinander anordnen */
        width: 100%;
        background-color: #f8f8f8; /* Hintergrund für mobiles Menü */
        border: 1px solid #eee;
        margin-top: 10px; /* Abstand zum Header-Inhalt */
        position: absolute; /* Damit es über den Inhalt fließt */
        left: 0;
        top: 100%; /* Direkt unterhalb des #g1-primary-nav Containers */
        z-index: 99; /* Über anderen Elementen */
        box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    }
    #g1-primary-nav-menu.active {
        display: flex; /* Menü anzeigen, wenn aktiv */
    }
    #g1-primary-nav-menu li {
        margin-left: 0;
        width: 100%;
    }
    #g1-primary-nav-menu li a {
        padding: 10px 15px;
        border-bottom: 1px solid #eee; /* Trennlinien */
    }
     #g1-primary-nav-menu li:last-child a {
         border-bottom: none;
     }
    #g1-primary-nav-menu li a:hover,
    #g1-primary-nav-menu li.current-menu-item a {
         background-color: #eee; /* Hervorhebung im mobilen Menü */
         border-bottom-color: #eee; /* Trennlinie bleibt, kein roter Strich */
     }

    /* Content & Sidebar Layout anpassen */
    .g1-content-area--sidebar-right {
        flex-direction: column; /* Untereinander */
    }
    #primary,
    #secondary.g1-sidebar--right {
        width: 100%; /* Volle Breite */
        margin-left: 0; /* Reset margins */
        margin-right: 0;
    }
    #secondary.g1-sidebar--right {
        margin-top: 30px; /* Abstand zwischen Inhalt und Sidebar */
    }

    /* Pre-Header vereinfachen */
     #g1-preheader .g1-layout-inner {
         justify-content: center; /* Zentrieren oder anpassen */
         flex-wrap: wrap; /* Erlaube Umbruch für Suche/Icons */
     }
    .g1-searchbox { margin-right: 0; margin-bottom: 5px; order: 2;} /* Suche nach Icons, Abstand unten */
     #g1-preheader .g1-social-icons { order: 1; margin-bottom: 5px; } /* Icons zuerst, Abstand unten */
     #g1-preheader-bar { flex-direction: row; justify-content: center; flex-wrap: wrap;} /* Flex-wrap auch hier */


     /* Pre-Footer Spalten */
     #g1-prefooter-widget-area .g1-one-half {
          width: 100%; /* Volle Breite auf kleinen Bildschirmen */
          margin-bottom: 25px;
      }
     #g1-prefooter-widget-area {
        margin-left: 0; /* Kein negativer Margin mehr nötig */
        margin-right: 0;
     }
     #g1-prefooter-widget-area .g1-column {
        padding-left: 0; /* Kein seitliches Padding mehr nötig */
        padding-right: 0;
     }
}